@js-joda/locale 4.8.12 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/js-joda-locale.esm.js +1 -1
  2. package/dist/js-joda-locale.js +1 -1
  3. package/dist/js-joda-locale.js.map +1 -1
  4. package/dist/js-joda-locale.min.js +1 -1
  5. package/dist/prebuilt/da/index.esm.js +1 -1
  6. package/dist/prebuilt/da/index.esm.js.map +1 -1
  7. package/dist/prebuilt/da/index.js +1 -1
  8. package/dist/prebuilt/da/index.js.map +1 -1
  9. package/dist/prebuilt/da/index.min.js +1 -1
  10. package/dist/prebuilt/de/index.esm.js +1 -1
  11. package/dist/prebuilt/de/index.esm.js.map +1 -1
  12. package/dist/prebuilt/de/index.js +1 -1
  13. package/dist/prebuilt/de/index.js.map +1 -1
  14. package/dist/prebuilt/de/index.min.js +1 -1
  15. package/dist/prebuilt/de-de/index.esm.js +1 -1
  16. package/dist/prebuilt/de-de/index.esm.js.map +1 -1
  17. package/dist/prebuilt/de-de/index.js +1 -1
  18. package/dist/prebuilt/de-de/index.js.map +1 -1
  19. package/dist/prebuilt/de-de/index.min.js +1 -1
  20. package/dist/prebuilt/el/index.esm.js +1 -1
  21. package/dist/prebuilt/el/index.esm.js.map +1 -1
  22. package/dist/prebuilt/el/index.js +1 -1
  23. package/dist/prebuilt/el/index.js.map +1 -1
  24. package/dist/prebuilt/el/index.min.js +1 -1
  25. package/dist/prebuilt/en/index.esm.js +1 -1
  26. package/dist/prebuilt/en/index.esm.js.map +1 -1
  27. package/dist/prebuilt/en/index.js +1 -1
  28. package/dist/prebuilt/en/index.js.map +1 -1
  29. package/dist/prebuilt/en/index.min.js +1 -1
  30. package/dist/prebuilt/en-gb/index.esm.js +1 -1
  31. package/dist/prebuilt/en-gb/index.esm.js.map +1 -1
  32. package/dist/prebuilt/en-gb/index.js +1 -1
  33. package/dist/prebuilt/en-gb/index.js.map +1 -1
  34. package/dist/prebuilt/en-gb/index.min.js +1 -1
  35. package/dist/prebuilt/en-us/index.esm.js +1 -1
  36. package/dist/prebuilt/en-us/index.esm.js.map +1 -1
  37. package/dist/prebuilt/en-us/index.js +1 -1
  38. package/dist/prebuilt/en-us/index.js.map +1 -1
  39. package/dist/prebuilt/en-us/index.min.js +1 -1
  40. package/dist/prebuilt/es/index.esm.js +1 -1
  41. package/dist/prebuilt/es/index.esm.js.map +1 -1
  42. package/dist/prebuilt/es/index.js +1 -1
  43. package/dist/prebuilt/es/index.js.map +1 -1
  44. package/dist/prebuilt/es/index.min.js +1 -1
  45. package/dist/prebuilt/fi/index.esm.js +1 -1
  46. package/dist/prebuilt/fi/index.esm.js.map +1 -1
  47. package/dist/prebuilt/fi/index.js +1 -1
  48. package/dist/prebuilt/fi/index.js.map +1 -1
  49. package/dist/prebuilt/fi/index.min.js +1 -1
  50. package/dist/prebuilt/fi-fi/index.esm.js +1 -1
  51. package/dist/prebuilt/fi-fi/index.esm.js.map +1 -1
  52. package/dist/prebuilt/fi-fi/index.js +1 -1
  53. package/dist/prebuilt/fi-fi/index.js.map +1 -1
  54. package/dist/prebuilt/fi-fi/index.min.js +1 -1
  55. package/dist/prebuilt/fr/index.esm.js +1 -1
  56. package/dist/prebuilt/fr/index.esm.js.map +1 -1
  57. package/dist/prebuilt/fr/index.js +1 -1
  58. package/dist/prebuilt/fr/index.js.map +1 -1
  59. package/dist/prebuilt/fr/index.min.js +1 -1
  60. package/dist/prebuilt/fr-fr/index.esm.js +1 -1
  61. package/dist/prebuilt/fr-fr/index.esm.js.map +1 -1
  62. package/dist/prebuilt/fr-fr/index.js +1 -1
  63. package/dist/prebuilt/fr-fr/index.js.map +1 -1
  64. package/dist/prebuilt/fr-fr/index.min.js +1 -1
  65. package/dist/prebuilt/hi/index.esm.js +1 -1
  66. package/dist/prebuilt/hi/index.esm.js.map +1 -1
  67. package/dist/prebuilt/hi/index.js +1 -1
  68. package/dist/prebuilt/hi/index.js.map +1 -1
  69. package/dist/prebuilt/hi/index.min.js +1 -1
  70. package/dist/prebuilt/it/index.esm.js +1 -1
  71. package/dist/prebuilt/it/index.esm.js.map +1 -1
  72. package/dist/prebuilt/it/index.js +1 -1
  73. package/dist/prebuilt/it/index.js.map +1 -1
  74. package/dist/prebuilt/it/index.min.js +1 -1
  75. package/dist/prebuilt/it-it/index.esm.js +1 -1
  76. package/dist/prebuilt/it-it/index.esm.js.map +1 -1
  77. package/dist/prebuilt/it-it/index.js +1 -1
  78. package/dist/prebuilt/it-it/index.js.map +1 -1
  79. package/dist/prebuilt/it-it/index.min.js +1 -1
  80. package/dist/prebuilt/ja/index.esm.js +1 -1
  81. package/dist/prebuilt/ja/index.esm.js.map +1 -1
  82. package/dist/prebuilt/ja/index.js +1 -1
  83. package/dist/prebuilt/ja/index.js.map +1 -1
  84. package/dist/prebuilt/ja/index.min.js +1 -1
  85. package/dist/prebuilt/ja-jp/index.esm.js +1 -1
  86. package/dist/prebuilt/ja-jp/index.esm.js.map +1 -1
  87. package/dist/prebuilt/ja-jp/index.js +1 -1
  88. package/dist/prebuilt/ja-jp/index.js.map +1 -1
  89. package/dist/prebuilt/ja-jp/index.min.js +1 -1
  90. package/dist/prebuilt/ko/index.esm.js +1 -1
  91. package/dist/prebuilt/ko/index.esm.js.map +1 -1
  92. package/dist/prebuilt/ko/index.js +1 -1
  93. package/dist/prebuilt/ko/index.js.map +1 -1
  94. package/dist/prebuilt/ko/index.min.js +1 -1
  95. package/dist/prebuilt/pl/index.esm.js +1 -1
  96. package/dist/prebuilt/pl/index.esm.js.map +1 -1
  97. package/dist/prebuilt/pl/index.js +1 -1
  98. package/dist/prebuilt/pl/index.js.map +1 -1
  99. package/dist/prebuilt/pl/index.min.js +1 -1
  100. package/dist/prebuilt/ro/index.esm.js +1 -1
  101. package/dist/prebuilt/ro/index.esm.js.map +1 -1
  102. package/dist/prebuilt/ro/index.js +1 -1
  103. package/dist/prebuilt/ro/index.js.map +1 -1
  104. package/dist/prebuilt/ro/index.min.js +1 -1
  105. package/dist/prebuilt/ru/index.esm.js +1 -1
  106. package/dist/prebuilt/ru/index.esm.js.map +1 -1
  107. package/dist/prebuilt/ru/index.js +1 -1
  108. package/dist/prebuilt/ru/index.js.map +1 -1
  109. package/dist/prebuilt/ru/index.min.js +1 -1
  110. package/dist/prebuilt/sv/index.esm.js +1 -1
  111. package/dist/prebuilt/sv/index.esm.js.map +1 -1
  112. package/dist/prebuilt/sv/index.js +1 -1
  113. package/dist/prebuilt/sv/index.js.map +1 -1
  114. package/dist/prebuilt/sv/index.min.js +1 -1
  115. package/dist/prebuilt/sv-se/index.esm.js +1 -1
  116. package/dist/prebuilt/sv-se/index.esm.js.map +1 -1
  117. package/dist/prebuilt/sv-se/index.js +1 -1
  118. package/dist/prebuilt/sv-se/index.js.map +1 -1
  119. package/dist/prebuilt/sv-se/index.min.js +1 -1
  120. package/dist/prebuilt/zh/index.esm.js +1 -1
  121. package/dist/prebuilt/zh/index.esm.js.map +1 -1
  122. package/dist/prebuilt/zh/index.js +1 -1
  123. package/dist/prebuilt/zh/index.js.map +1 -1
  124. package/dist/prebuilt/zh/index.min.js +1 -1
  125. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"js-joda-locale.js","sources":["../src/format/parser/TextPrinterParser.js","../src/format/LocaleStore.js","../src/format/cldr/CldrCache.js","../src/format/cldr/CldrDateTimeTextProvider.js","../src/format/cldr/CldrZoneTextPrinterParser.js","../src/format/parser/LocalizedOffsetPrinterParser.js","../src/temporal/WeekFields.js","../src/format/parser/WeekFieldsPrinterParser.js","../src/format/cldr/CldrDateTimeFormatterBuilder.js","../src/Locale.js","../src/format/LocaleDateTimeFormatter.js","../src/_init.js","../src/plug.js","../src/js-joda-locale.js"],"sourcesContent":["/**\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { DateTimeFormatterBuilder, IllegalArgumentException, SignStyle, TextStyle } from '@js-joda/core';\n\n//-----------------------------------------------------------------------\n/**\n * Prints or parses field text.\n * @private\n */\nexport default class TextPrinterParser {\n /**\n * Constructor.\n *\n * @param {!TemporalField} field the field to output, not null\n * @param {!TextStyle} textStyle the text style, not null\n * @param {!DateTimeProvider} provider the text provider, not null\n */\n constructor(field, textStyle, provider) {\n // validated by caller\n this._field = field;\n this._textStyle = textStyle;\n this._provider = provider;\n }\n\n field() {\n return this._field;\n }\n\n textStyle() {\n return this._textStyle;\n }\n\n provider() {\n return this._provider;\n }\n\n print(context, buf) {\n const value = context.getValue(this._field);\n if (value === null) {\n return false;\n }\n const text = this._provider.getText(this._field, value, this._textStyle, context.locale());\n if (text === null) {\n return this._numberPrinterParser().print(context, buf);\n }\n buf.append(text);\n return true;\n }\n\n parse(context, parseText, position) {\n const length = parseText.length;\n if (position < 0 || position > length) {\n throw new IllegalArgumentException(`The position is invalid: ${position}`);\n }\n const style = (context.isStrict() ? this._textStyle : null);\n const it = this._provider.getTextIterator(this._field, style, context.locale());\n if (it != null) {\n for (const entry of it) {\n const itText = entry.key;\n if (context.subSequenceEquals(itText, 0, parseText, position, itText.length)) {\n return context.setParsedField(this._field, entry.value, position, position + itText.length);\n }\n }\n if (context.isStrict()) {\n return ~position;\n }\n }\n return this._numberPrinterParser().parse(context, parseText, position);\n }\n\n /**\n * Create and cache a number printer parser.\n * @return the number printer parser for this field, not null\n */\n _numberPrinterParser() {\n if (this._currentNumberPrinterParser == null) {\n this._currentNumberPrinterParser = new DateTimeFormatterBuilder.NumberPrinterParser(this._field, 1, 19, SignStyle.NORMAL);\n }\n return this._currentNumberPrinterParser;\n }\n\n toString() {\n if (this._textStyle === TextStyle.FULL) {\n return `Text(${this._field})`;\n }\n return `Text(${this._field},${this._textStyle})`;\n }\n}\n\n//-----------------------------------------------------------------------\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\n\n/**\n * @private\n *\n * Helper method to create an immutable entry.\n *\n * @param text the text, not null\n * @param field the field, not null\n * @return the entry, not null\n */\nexport const createEntry = (text, field) => {\n return {\n key: text,\n value: field,\n toString: function () {\n return `${text}->${field}`;\n }\n };\n};\n\nconst _comparator = (obj1, obj2) => {\n return obj2.key.length - obj1.key.length; // longest to shortest\n};\n\n/**\n * Stores the text for a single locale.\n * <p>\n * Some fields have a textual representation, such as day-of-week or month-of-year.\n * These textual representations can be captured in this class for printing\n * and parsing.\n */\nexport class LocaleStore {\n //-----------------------------------------------------------------------\n /**\n * Constructor.\n *\n * @param {Object} valueTextMap the map of values to text to store, assigned and not altered, not null\n */\n constructor(valueTextMap) {\n this._valueTextMap = valueTextMap;\n const map = {};\n let allList = [];\n Object.keys(valueTextMap).forEach((style) => {\n const reverse = {};\n const list = [];\n Object.keys(valueTextMap[style]).forEach((key) => {\n const value = valueTextMap[style][key];\n if (reverse[value] === undefined) {\n reverse[value] = createEntry(value, parseInt(key));\n list.push(reverse[value]);\n }\n });\n list.sort(_comparator);\n map[style] = list;\n allList = allList.concat(list);\n map[null] = allList;\n });\n allList.sort(_comparator);\n this._parsable = map;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the text for the specified field value, locale and style\n * for the purpose of printing.\n *\n * @param {Number} value the value to get text for, not null\n * @param {TextStyle} style the style to get text for, not null\n * @return the text for the field value, null if no text found\n */\n getText(value, style) {\n const map = this._valueTextMap[style];\n return map != null ? map[value] : null;\n }\n\n /**\n * Gets an iterator of text to field for the specified style for the purpose of parsing.\n * <p>\n * The iterator must be returned in order from the longest text to the shortest.\n *\n * @param style the style to get text for, null for all parsable text\n * @return the iterator of text to field pairs, in order from longest text to shortest text,\n * null if the style is not parsable\n */\n getTextIterator(style) {\n const list = this._parsable[style];\n return list != null ? list[Symbol.iterator]() : null;\n }\n}\n","/*\n* @copyright (c) 2020, Philipp Thuerwaechter & Pattrick Hueper\n* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n*/\n\nimport cldrData from 'cldr-data';\nimport Cldr from 'cldrjs';\n\nconst cldrDataLoaded = new Set();\n/**\n * @private\n *\n* Loads the Cldr data for the given path if it hasn't been loaded before.\n*/\nexport const loadCldrData = (path) => {\n if (!cldrDataLoaded.has(path)) {\n Cldr.load(cldrData(path));\n cldrDataLoaded.add(path);\n }\n};\n\nconst localeToCldrInstanceCache = {};\n/**\n * @private\n *\n* Returns a Cldr instance for the given locale.\n* Memoized, so a given locale will always return the exact same cldr instance.\n*/\nexport const getOrCreateCldrInstance = (locale) => {\n if (localeToCldrInstanceCache[locale] == null) {\n localeToCldrInstanceCache[locale] = new Cldr(locale);\n }\n\n return localeToCldrInstanceCache[locale];\n};\n\nconst localeToMapZonesCache = {};\n/**\n * @private\n *\n* Returns a map zones object for a Cldr instance.\n* Memoized, so for any given Cldr instance locale, the same object will be returned.\n*/\nexport const getOrCreateMapZones = (cldr) => {\n if (localeToMapZonesCache[cldr.locale] == null) {\n const mapZones = {};\n\n cldr.get('supplemental/metaZones/metazones').forEach((metaZone) => {\n if (metaZone.mapZone) {\n if (!mapZones[metaZone.mapZone._other]) {\n mapZones[metaZone.mapZone._other] = {};\n }\n mapZones[metaZone.mapZone._other][metaZone.mapZone._territory] = metaZone.mapZone._type;\n }\n });\n\n localeToMapZonesCache[cldr.locale] = mapZones;\n }\n\n return localeToMapZonesCache[cldr.locale];\n};\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport { ChronoField, IsoFields, TextStyle } from '@js-joda/core';\n\nimport cldrData from 'cldr-data';\n\nimport { LocaleStore, createEntry } from '../LocaleStore';\nimport { getOrCreateCldrInstance, loadCldrData } from './CldrCache';\n\n/**\n * The Service Provider Implementation to obtain date-time text for a field.\n * <p>\n * This implementation is based on data from cldr.\n *\n * @private\n */\nexport default class CldrDateTimeTextProvider {\n\n constructor() {\n this._cache = {};\n loadCldrData('supplemental/likelySubtags.json');\n }\n\n //-----------------------------------------------------------------------\n getAvailableLocales() {\n return cldrData('availableLocales.json').availableLocales;\n }\n\n //-----------------------------------------------------------------------\n getText(field, value, style, locale) {\n const store = this._findStore(field, locale);\n if (store instanceof LocaleStore) {\n return store.getText(value, style);\n }\n return null;\n }\n\n getTextIterator(field, style, locale) {\n const store = this._findStore(field, locale);\n if (store instanceof LocaleStore) {\n return store.getTextIterator(style);\n }\n return null;\n }\n\n //-----------------------------------------------------------------------\n _findStore(field, locale) {\n const key = createEntry(field, locale);\n let store = this._cache[key];\n if (store === undefined) {\n store = this._createStore(field, locale);\n this._cache[key] = store;\n }\n return store;\n }\n\n _createStore(field, locale) {\n loadCldrData(`main/${locale.localeString()}/ca-gregorian.json`);\n const cldr = getOrCreateCldrInstance(locale.localeString());\n if (field === ChronoField.MONTH_OF_YEAR) {\n const monthsData = cldr.main('dates/calendars/gregorian/months/format');\n const styleMap = {};\n let data = {};\n data[1] = monthsData.wide[1];\n data[2] = monthsData.wide[2];\n data[3] = monthsData.wide[3];\n data[4] = monthsData.wide[4];\n data[5] = monthsData.wide[5];\n data[6] = monthsData.wide[6];\n data[7] = monthsData.wide[7];\n data[8] = monthsData.wide[8];\n data[9] = monthsData.wide[9];\n data[10] = monthsData.wide[10];\n data[11] = monthsData.wide[11];\n data[12] = monthsData.wide[12];\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[1] = monthsData.narrow[1];\n data[2] = monthsData.narrow[2];\n data[3] = monthsData.narrow[3];\n data[4] = monthsData.narrow[4];\n data[5] = monthsData.narrow[5];\n data[6] = monthsData.narrow[6];\n data[7] = monthsData.narrow[7];\n data[8] = monthsData.narrow[8];\n data[9] = monthsData.narrow[9];\n data[10] = monthsData.narrow[10];\n data[11] = monthsData.narrow[11];\n data[12] = monthsData.narrow[12];\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[1] = monthsData.abbreviated[1];\n data[2] = monthsData.abbreviated[2];\n data[3] = monthsData.abbreviated[3];\n data[4] = monthsData.abbreviated[4];\n data[5] = monthsData.abbreviated[5];\n data[6] = monthsData.abbreviated[6];\n data[7] = monthsData.abbreviated[7];\n data[8] = monthsData.abbreviated[8];\n data[9] = monthsData.abbreviated[9];\n data[10] = monthsData.abbreviated[10];\n data[11] = monthsData.abbreviated[11];\n data[12] = monthsData.abbreviated[12];\n styleMap[TextStyle.SHORT] = data;\n return this._createLocaleStore(styleMap);\n }\n if (field === ChronoField.DAY_OF_WEEK) {\n const daysData = cldr.main('dates/calendars/gregorian/days/format');\n const styleMap = {};\n let data = {};\n data[1] = daysData.wide.mon;\n data[2] = daysData.wide.tue;\n data[3] = daysData.wide.wed;\n data[4] = daysData.wide.thu;\n data[5] = daysData.wide.fri;\n data[6] = daysData.wide.sat;\n data[7] = daysData.wide.sun;\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[1] = daysData.narrow.mon;\n data[2] = daysData.narrow.tue;\n data[3] = daysData.narrow.wed;\n data[4] = daysData.narrow.thu;\n data[5] = daysData.narrow.fri;\n data[6] = daysData.narrow.sat;\n data[7] = daysData.narrow.sun;\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[1] = daysData.abbreviated.mon;\n data[2] = daysData.abbreviated.tue;\n data[3] = daysData.abbreviated.wed;\n data[4] = daysData.abbreviated.thu;\n data[5] = daysData.abbreviated.fri;\n data[6] = daysData.abbreviated.sat;\n data[7] = daysData.abbreviated.sun;\n styleMap[TextStyle.SHORT] = data;\n return this._createLocaleStore(styleMap);\n }\n if (field === ChronoField.AMPM_OF_DAY) {\n const dayPeriodsData = cldr.main('dates/calendars/gregorian/dayPeriods/format');\n const styleMap = {};\n let data = {};\n data[0] = dayPeriodsData.wide.am;\n data[1] = dayPeriodsData.wide.pm;\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[0] = dayPeriodsData.narrow.am;\n data[1] = dayPeriodsData.narrow.pm;\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[0] = dayPeriodsData.abbreviated.am;\n data[1] = dayPeriodsData.abbreviated.pm;\n styleMap[TextStyle.SHORT] = data;\n\n return this._createLocaleStore(styleMap);\n }\n if (field === ChronoField.ERA) {\n const erasData = cldr.main('dates/calendars/gregorian/eras');\n const styleMap = {};\n let data = {};\n data[0] = erasData.eraNames['0'];\n data[1] = erasData.eraNames['1'];\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[0] = erasData.eraNarrow['0'];\n data[1] = erasData.eraNarrow['1'];\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[0] = erasData.eraAbbr['0'];\n data[1] = erasData.eraAbbr['1'];\n styleMap[TextStyle.SHORT] = data;\n\n return this._createLocaleStore(styleMap);\n }\n if (field === IsoFields.QUARTER_OF_YEAR) {\n const quartersData = cldr.main('dates/calendars/gregorian/quarters/format');\n const styleMap = {};\n let data = {};\n data[1] = quartersData.wide['1'];\n data[2] = quartersData.wide['2'];\n data[3] = quartersData.wide['3'];\n data[4] = quartersData.wide['4'];\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[1] = quartersData.narrow['1'];\n data[2] = quartersData.narrow['2'];\n data[3] = quartersData.narrow['3'];\n data[4] = quartersData.narrow['4'];\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[1] = quartersData.abbreviated['1'];\n data[2] = quartersData.abbreviated['2'];\n data[3] = quartersData.abbreviated['3'];\n data[4] = quartersData.abbreviated['4'];\n styleMap[TextStyle.SHORT] = data;\n\n return this._createLocaleStore(styleMap);\n }\n return null; // null marker for map\n }\n\n //-----------------------------------------------------------------------\n _createLocaleStore(valueTextMap) {\n valueTextMap[TextStyle.FULL_STANDALONE] = valueTextMap[TextStyle.FULL];\n valueTextMap[TextStyle.SHORT_STANDALONE] = valueTextMap[TextStyle.SHORT];\n /* istanbul ignore if */ // this doesn't seem to happen?\n if (Object.keys(valueTextMap).indexOf(TextStyle.NARROW) > -1\n && Object.keys(valueTextMap).indexOf(TextStyle.NARROW_STANDALONE) === -1) {\n valueTextMap[TextStyle.NARROW_STANDALONE] = valueTextMap[TextStyle.NARROW];\n }\n return new LocaleStore(valueTextMap);\n }\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n TextStyle,\n TemporalQueries,\n ZoneId,\n ZoneOffset,\n ZoneRulesProvider,\n} from '@js-joda/core';\n\nimport { getOrCreateCldrInstance, getOrCreateMapZones, loadCldrData } from './CldrCache';\n\nconst { assert: { requireNonNull, requireInstance } } = jodaInternal;\n\n//-----------------------------------------------------------------------\nconst LENGTH_COMPARATOR = (str1, str2) => {\n let cmp = str2.length - str1.length;\n if (cmp === 0) {\n cmp = str1.localeCompare(str2);\n }\n return cmp;\n};\n\n/**\n * Cache for `_cachedResolveZoneIdText`.\n *\n * Its basic structure is:\n * Obj { locale: zoneId }\n * Obj { zoneId: style}\n * Obj { style: type}\n * Obj { type: resolvedZoneIdText}\n */\nconst resolveZoneIdTextCache = {};\n\n/**\n * Prints or parses a zone ID.\n */\nexport default class CldrZoneTextPrinterParser {\n /** The text style to output. */\n\n constructor(textStyle) {\n requireNonNull(textStyle, 'textStyle');\n requireInstance(textStyle, TextStyle, 'textStyle');\n this._textStyle = textStyle;\n this._zoneIdsLocales = {};\n loadCldrData('supplemental/likelySubtags.json');\n loadCldrData('supplemental/metaZones.json');\n }\n\n _cachedResolveZoneIdText(cldr, zoneId, style, type) {\n if (resolveZoneIdTextCache[cldr.locale] == null) {\n resolveZoneIdTextCache[cldr.locale] = {};\n }\n\n const zoneIdToStyle = resolveZoneIdTextCache[cldr.locale];\n if (zoneIdToStyle[zoneId] == null) {\n zoneIdToStyle[zoneId] = {};\n }\n\n const styleToType = zoneIdToStyle[zoneId];\n if (styleToType[style] == null) {\n styleToType[style] = {};\n }\n\n const typeToResolvedZoneIdText = styleToType[style];\n if (typeToResolvedZoneIdText[type] == null) {\n typeToResolvedZoneIdText[type] = this._resolveZoneIdText(cldr, zoneId, style, type);\n }\n\n return typeToResolvedZoneIdText[type];\n }\n\n _resolveZoneIdText(cldr, zoneId, style, type) {\n const zoneData = cldr.main(`dates/timeZoneNames/zone/${zoneId}/${style}/${type}`);\n if (zoneData) {\n return zoneData;\n } else {\n const metazoneInfo = cldr.get(`supplemental/metaZones/metazoneInfo/timezone/${zoneId}`);\n if (metazoneInfo) {\n // const zoneData = cldr.main(`dates/timeZoneNames/metazone/Acre`);\n // TODO: determine metaZone for current temporal, for now, we use the last one :/\n const metazone = metazoneInfo[metazoneInfo.length - 1]['usesMetazone']['_mzone'];\n let metaZoneData = cldr.main(`dates/timeZoneNames/metazone/${metazone}/${style}/${type}`);\n if (metaZoneData) {\n return metaZoneData;\n } else {\n // type fallback, first generic, then standard\n metaZoneData = cldr.main(`dates/timeZoneNames/metazone/${metazone}/${style}/generic`);\n if (!metaZoneData) {\n metaZoneData = cldr.main(`dates/timeZoneNames/metazone/${metazone}/${style}/standard`);\n }\n if (metaZoneData) {\n return metaZoneData;\n } else {\n const mapZones = getOrCreateMapZones(cldr);\n // find preferred Zone and resolve again\n const preferredZone = mapZones[metazone][cldr.attributes.territory];\n if (preferredZone) {\n if (preferredZone !== zoneId) {\n return this._cachedResolveZoneIdText(cldr, preferredZone, style, type);\n }\n } else {\n // find golden Zone and resolve again\n const goldenZone = mapZones[metazone]['001'];\n if (goldenZone !== zoneId) {\n return this._cachedResolveZoneIdText(cldr, goldenZone, style, type);\n }\n }\n }\n }\n }\n }\n }\n\n //-----------------------------------------------------------------------\n print(context, buf) {\n\n //see http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Zone_Names\n\n const zone = context.getValueQuery(TemporalQueries.zoneId());\n /* istanbul ignore if */ // shouldn't happen... getValueQuery throws before returning null\n if (zone == null) {\n return false;\n }\n if (zone.normalized() instanceof ZoneOffset) {\n buf.append(zone.id());\n return true;\n }\n const daylight = false;\n const hasDaylightSupport = false;\n /* TODO: currently js-joda-timezone does not support ZoneRules.isDaylightSavings() ... uncomment if it does\n const temporal = context.temporal();\n if (temporal.isSupported(ChronoField.INSTANT_SECONDS)) {\n hasDaylightSupport = true;\n const instant = Instant.ofEpochSecond(temporal.getLong(ChronoField.INSTANT_SECONDS));\n daylight = zone.rules().isDaylightSavings(instant);\n }*/\n const tzType = hasDaylightSupport ? (daylight ? 'daylight' : 'standard') : 'generic';\n const tzstyle = (this._textStyle.asNormal() === TextStyle.FULL ? 'long' : 'short');\n loadCldrData(`main/${context.locale().localeString()}/timeZoneNames.json`);\n const cldr = getOrCreateCldrInstance(context.locale().localeString());\n\n const text = this._cachedResolveZoneIdText(cldr, zone.id(), tzstyle, tzType);\n if (text) {\n buf.append(text);\n } else {\n // fallback, print zoneId\n buf.append(zone.id());\n }\n return true;\n }\n\n _resolveZoneIds(localString) {\n if(this._zoneIdsLocales[localString] != null) {\n return this._zoneIdsLocales[localString];\n }\n const ids = {};\n loadCldrData(`main/${localString}/timeZoneNames.json`);\n const cldr = getOrCreateCldrInstance(localString);\n\n for (const id of ZoneRulesProvider.getAvailableZoneIds()) {\n ids[id] = id;\n const tzstyle = (this._textStyle.asNormal() === TextStyle.FULL ? 'long' : 'short');\n\n const genericText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'generic');\n if (genericText) {\n ids[genericText] = id;\n }\n const standardText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'standard');\n if (standardText) {\n ids[standardText] = id;\n }\n const daylightText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'daylight');\n if (daylightText) {\n ids[daylightText] = id;\n }\n }\n // threeten is using a (sorted) TreeMap... so we need to sort the keys\n const sortedKeys = Object.keys(ids).sort(LENGTH_COMPARATOR);\n\n this._zoneIdsLocales[localString] = { ids, sortedKeys };\n return this._zoneIdsLocales[localString];\n }\n\n // That's a very poor implementation, there are missing bug fixes and functionality from threeten and jdk\n parse(context, text, position) {\n for (const name of ['UTC', 'GMT']) {\n if (context.subSequenceEquals(text, position, name, 0, name.length)) {\n context.setParsedZone(ZoneId.of(name));\n return position + name.length;\n }\n }\n const { ids, sortedKeys } = this._resolveZoneIds(context.locale().localeString());\n for (const name of sortedKeys) {\n if (context.subSequenceEquals(text, position, name, 0, name.length)) {\n context.setParsedZone(ZoneId.of(ids[name]));\n return position + name.length;\n }\n }\n return ~position;\n }\n\n toString() {\n return `ZoneText(${this._textStyle})`;\n }\n}\n","/**\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeFormatterBuilder,\n ChronoField,\n TextStyle\n} from '@js-joda/core';\n\nconst { MathUtil } = jodaInternal;\n//-----------------------------------------------------------------------\n/**\n * Prints or parses field text.\n * @private\n */\nexport default class LocalizedOffsetPrinterParser {\n /**\n * Constructor.\n *\n * @param {!TextStyle} textStyle the text style, not null\n */\n constructor(textStyle) {\n this._textStyle = textStyle;\n }\n\n textStyle() {\n return this._textStyle;\n }\n\n print(context, buf) {\n const offsetSecs = context.getValue(ChronoField.OFFSET_SECONDS);\n /* istanbul ignore if */ // shouldn't happen... getValue throws for unsupported fields?\n if (offsetSecs == null) {\n return false;\n }\n buf.append('GMT');\n if (this._textStyle === TextStyle.FULL) {\n return new DateTimeFormatterBuilder.OffsetIdPrinterParser('', '+HH:MM:ss').print(context, buf);\n }\n const totalSecs = MathUtil.safeToInt(offsetSecs);\n if (totalSecs !== 0) {\n const absHours = Math.abs(MathUtil.intMod(MathUtil.intDiv(totalSecs, 3600), 100)); // anything larger than 99 silently dropped\n const absMinutes = Math.abs(MathUtil.intMod(MathUtil.intDiv(totalSecs,60), 60));\n const absSeconds = Math.abs(MathUtil.intMod(totalSecs, 60));\n buf.append(totalSecs < 0 ? '-' : '+').append(absHours);\n if (absMinutes > 0 || absSeconds > 0) {\n buf.append(':')\n .append(MathUtil.intDiv(absMinutes, 10)).append(MathUtil.intMod(absMinutes,10));\n if (absSeconds > 0) {\n buf.append(':')\n .append(MathUtil.intDiv(absSeconds, 10)).append(MathUtil.intMod(absSeconds, 10));\n }\n }\n }\n return true;\n }\n\n parse(context, text, position) {\n if (context.subSequenceEquals(text, position, 'GMT', 0, 3) === false) {\n return ~position;\n }\n position += 3;\n if (this._textStyle === TextStyle.FULL) {\n return new DateTimeFormatterBuilder.OffsetIdPrinterParser('', '+HH:MM:ss').parse(context, text, position);\n }\n const end = text.length;\n if (position === end) {\n return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);\n }\n const sign = text.charAt(position);\n if (sign !== '+' && sign !== '-') {\n return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);\n }\n const negative = (sign === '-' ? -1 : 1);\n /* istanbul ignore if */ // cannot happen, already checked before\n if (position === end) {\n return ~position;\n }\n position++;\n // hour\n let ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n let hour = MathUtil.parseInt(ch);\n if (position !== end) {\n ch = text.charAt(position);\n if (ch >= '0' && ch <= '9') {\n hour = hour * 10 + MathUtil.parseInt(ch);\n if (hour > 23) {\n return ~position;\n }\n position++;\n }\n }\n if (position === end || text.charAt(position) !== ':') {\n const offset = negative * 3600 * hour;\n return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);\n }\n position++;\n // minute\n if (position > end - 2) {\n return ~position;\n }\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n let min = MathUtil.parseInt(ch);\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n min = min * 10 + MathUtil.parseInt(ch);\n if (min > 59) {\n return ~position;\n }\n if (position === end || text.charAt(position) !== ':') {\n const offset = negative * (3600 * hour + 60 * min);\n return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);\n }\n position++;\n // second\n if (position > end - 2) {\n return ~position;\n }\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n let sec = MathUtil.parseInt(ch);\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n sec = sec * 10 + MathUtil.parseInt(ch);\n if (sec > 59) {\n return ~position;\n }\n const offset = negative * (3600 * hour + 60 * min + sec);\n return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);\n }\n\n toString() {\n return `LocalizedOffset(${this._textStyle})`;\n }\n\n}\n\n//-----------------------------------------------------------------------\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeException,\n DayOfWeek,\n ChronoField,\n ChronoUnit,\n IllegalArgumentException,\n IllegalStateException,\n IsoChronology,\n IsoFields,\n LocalDate,\n ResolverStyle,\n ValueRange,\n Year\n} from '@js-joda/core';\nimport cldrData from 'cldr-data';\nimport Cldr from 'cldrjs';\n\nconst { MathUtil, assert: { requireNonNull, requireInstance } } = jodaInternal;\n\n//-----------------------------------------------------------------------\nconst DAY_OF_WEEK_RANGE = ValueRange.of(1, 7);\nconst WEEK_OF_MONTH_RANGE = ValueRange.of(0, 1, 4, 6);\nconst WEEK_OF_YEAR_RANGE = ValueRange.of(0, 1, 52, 54);\nconst WEEK_OF_WEEK_BASED_YEAR_RANGE = ValueRange.of(1, 52, 53);\nconst WEEK_BASED_YEAR_RANGE = ChronoField.YEAR.range();\n\n/* map from the string from cldr `firstDay()` to DayOfWeek */\nconst _weekDayMap = {\n 'mon': DayOfWeek.MONDAY,\n 'tue': DayOfWeek.TUESDAY,\n 'wed': DayOfWeek.WEDNESDAY,\n 'thu': DayOfWeek.THURSDAY,\n 'fri': DayOfWeek.FRIDAY,\n 'sat': DayOfWeek.SATURDAY,\n 'sun': DayOfWeek.SUNDAY,\n};\n\n/**\n * Field type that computes DayOfWeek, WeekOfMonth, and WeekOfYear\n * based on a WeekFields.\n * A separate Field instance is required for each different WeekFields;\n * combination of start of week and minimum number of days.\n * Constructors are provided to create fields for DayOfWeek, WeekOfMonth,\n * and WeekOfYear.\n */\nexport class ComputedDayOfField {\n\n /**\n * Returns a field to access the day of week,\n * computed based on a WeekFields.\n * <p>\n * The WeekDefintion of the first day of the week is used with\n * the ISO DAY_OF_WEEK field to compute week boundaries.\n */\n static ofDayOfWeekField(weekDef) {\n return new ComputedDayOfField('DayOfWeek', weekDef,\n ChronoUnit.DAYS, ChronoUnit.WEEKS, DAY_OF_WEEK_RANGE);\n }\n\n /**\n * Returns a field to access the week of month,\n * computed based on a WeekFields.\n * @see WeekFields#weekOfMonth()\n */\n static ofWeekOfMonthField(weekDef) {\n return new ComputedDayOfField('WeekOfMonth', weekDef,\n ChronoUnit.WEEKS, ChronoUnit.MONTHS, WEEK_OF_MONTH_RANGE);\n }\n\n /**\n * Returns a field to access the week of year,\n * computed based on a WeekFields.\n * @see WeekFields#weekOfYear()\n */\n static ofWeekOfYearField(weekDef) {\n return new ComputedDayOfField('WeekOfYear', weekDef,\n ChronoUnit.WEEKS, ChronoUnit.YEARS, WEEK_OF_YEAR_RANGE);\n }\n\n /**\n * Returns a field to access the week of week-based-year,\n * computed based on a WeekFields.\n * @see WeekFields#weekOfWeekBasedYear()\n */\n static ofWeekOfWeekBasedYearField(weekDef) {\n return new ComputedDayOfField('WeekOfWeekBasedYear', weekDef,\n ChronoUnit.WEEKS, IsoFields.WEEK_BASED_YEARS, WEEK_OF_WEEK_BASED_YEAR_RANGE);\n }\n\n /**\n * Returns a field to access the week-based-year,\n * computed based on a WeekFields.\n * @see WeekFields#weekBasedYear()\n */\n static ofWeekBasedYearField(weekDef) {\n return new ComputedDayOfField('WeekBasedYear', weekDef,\n IsoFields.WEEK_BASED_YEARS, ChronoUnit.FOREVER, WEEK_BASED_YEAR_RANGE);\n }\n\n /**\n *@private\n */\n constructor(name, weekDef, baseUnit, rangeUnit, range) {\n this._name = name;\n this._weekDef = weekDef;\n this._baseUnit = baseUnit;\n this._rangeUnit = rangeUnit;\n this._range = range;\n }\n\n getFrom(temporal) {\n // Offset the ISO DOW by the start of this week\n const sow = this._weekDef.firstDayOfWeek().value();\n const dow = this._localizedDayOfWeek(temporal, sow);\n\n if (this._rangeUnit === ChronoUnit.WEEKS) {\n return dow;\n } else if (this._rangeUnit === ChronoUnit.MONTHS) {\n return this._localizedWeekOfMonth(temporal, dow);\n } else if (this._rangeUnit === ChronoUnit.YEARS) {\n return this._localizedWeekOfYear(temporal, dow);\n } else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {\n return this._localizedWOWBY(temporal);\n } else if (this._rangeUnit === ChronoUnit.FOREVER) {\n return this._localizedWBY(temporal);\n } else {\n throw new IllegalStateException('unreachable');\n }\n }\n\n _localizedDayOfWeek(temporal, sow) {\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n return MathUtil.floorMod(isoDow - sow, 7) + 1;\n }\n\n _localizedWeekOfMonth(temporal, dow) {\n const dom = temporal.get(ChronoField.DAY_OF_MONTH);\n const offset = this._startOfWeekOffset(dom, dow);\n return ComputedDayOfField._computeWeek(offset, dom);\n }\n\n _localizedWeekOfYear(temporal, dow) {\n const doy = temporal.get(ChronoField.DAY_OF_YEAR);\n const offset = this._startOfWeekOffset(doy, dow);\n return ComputedDayOfField._computeWeek(offset, doy);\n }\n\n _localizedWOWBY(temporal) {\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const woy = this._localizedWeekOfYear(temporal, dow);\n if (woy === 0) {\n const previous = LocalDate.from(temporal).minus(1, ChronoUnit.WEEKS);\n return this._localizedWeekOfYear(previous, dow) + 1;\n } else if (woy >= 53) {\n const offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);\n const year = temporal.get(ChronoField.YEAR);\n const yearLen = Year.isLeap(year) ? 366 : 365;\n const weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());\n if (woy >= weekIndexOfFirstWeekNextYear) {\n return (woy - (weekIndexOfFirstWeekNextYear - 1));\n }\n }\n return woy;\n }\n\n _localizedWBY(temporal) {\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const year = temporal.get(ChronoField.YEAR);\n const woy = this._localizedWeekOfYear(temporal, dow);\n if (woy === 0) {\n return year - 1;\n } else if (woy < 53) {\n return year;\n }\n const offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);\n const yearLen = Year.isLeap(year) ? 366 : 365;\n const weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());\n if (woy >= weekIndexOfFirstWeekNextYear) {\n return year + 1;\n }\n return year;\n }\n\n /**\n * Returns an offset to align week start with a day of month or day of year.\n *\n * @param day the day; 1 through infinity\n * @param dow the day of the week of that day; 1 through 7\n * @return an offset in days to align a day with the start of the first 'full' week\n */\n _startOfWeekOffset(day, dow) {\n // offset of first day corresponding to the day of week in first 7 days (zero origin)\n const weekStart = MathUtil.floorMod(day - dow, 7);\n let offset = -weekStart;\n if (weekStart + 1 > this._weekDef.minimalDaysInFirstWeek()) {\n // The previous week has the minimum days in the current month to be a 'week'\n offset = 7 - weekStart;\n }\n return offset;\n }\n\n /**\n * Returns the week number computed from the reference day and reference dayOfWeek.\n *\n * @param offset the offset to align a date with the start of week\n * from {@link #startOfWeekOffset}.\n * @param day the day for which to compute the week number\n * @return the week number where zero is used for a partial week and 1 for the first full week\n */\n static _computeWeek(offset, day) {\n return MathUtil.intDiv((7 + offset + (day - 1)), 7);\n }\n\n adjustInto(temporal, newValue) {\n // Check the new value and get the old value of the field\n const newVal = this._range.checkValidIntValue(newValue, this);\n const currentVal = temporal.get(this);\n if (newVal === currentVal) {\n return temporal;\n }\n if (this._rangeUnit === ChronoUnit.FOREVER) {\n // adjust in whole weeks so dow never changes\n const baseWowby = temporal.get(this._weekDef.weekOfWeekBasedYear());\n const diffWeeks = MathUtil.roundDown((newValue - currentVal) * 52.1775);\n let result = temporal.plus(diffWeeks, ChronoUnit.WEEKS);\n if (result.get(this) > newVal) {\n // ended up in later week-based-year\n // move to last week of previous year\n const newWowby = result.get(this._weekDef.weekOfWeekBasedYear());\n result = result.minus(newWowby, ChronoUnit.WEEKS);\n } else {\n if (result.get(this) < newVal) {\n // ended up in earlier week-based-year\n result = result.plus(2, ChronoUnit.WEEKS);\n }\n // reset the week-of-week-based-year\n const newWowby = result.get(this._weekDef.weekOfWeekBasedYear());\n result = result.plus(baseWowby - newWowby, ChronoUnit.WEEKS);\n if (result.get(this) > newVal) {\n result = result.minus(1, ChronoUnit.WEEKS);\n }\n }\n return result;\n }\n // Compute the difference and add that using the base using of the field\n const delta = newVal - currentVal;\n return temporal.plus(delta, this._baseUnit);\n }\n\n resolve(fieldValues, partialTemporal, resolverStyle) {\n const sow = this._weekDef.firstDayOfWeek().value();\n if (this._rangeUnit === ChronoUnit.WEEKS) { // day-of-week\n const value = fieldValues.remove(this);\n const localDow = this._range.checkValidIntValue(value, this);\n const isoDow = MathUtil.floorMod((sow - 1) + (localDow - 1), 7) + 1;\n fieldValues.put(ChronoField.DAY_OF_WEEK, isoDow);\n return null;\n }\n if (fieldValues.containsKey(ChronoField.DAY_OF_WEEK) === false) {\n return null;\n }\n\n // week-based-year\n if (this._rangeUnit === ChronoUnit.FOREVER) {\n if (fieldValues.containsKey(this._weekDef.weekOfWeekBasedYear()) === false) {\n return null;\n }\n // const chrono = IsoChronology.INSTANCE; //TODO: Chronology.from(partialTemporal); // defaults to ISO\n const isoDow = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.get(ChronoField.DAY_OF_WEEK));\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const wby = this.range().checkValidIntValue(fieldValues.get(this), this);\n let date;\n let days;\n if (resolverStyle === ResolverStyle.LENIENT) {\n date = LocalDate.of(wby, 1, this._weekDef.minimalDaysInFirstWeek()); //TODO: chrono.date(wby, 1, this._weekDef.minimalDaysInFirstWeek());\n const wowby = fieldValues.get(this._weekDef.weekOfWeekBasedYear());\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = wowby - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n } else {\n date = LocalDate.of(wby, 1, this._weekDef.minimalDaysInFirstWeek()); //TODO: chrono.date(wby, 1, this._weekDef.minimalDaysInFirstWeek());\n const wowby = this._weekDef.weekOfWeekBasedYear().range().checkValidIntValue(\n fieldValues.get(this._weekDef.weekOfWeekBasedYear()), this._weekDef.weekOfWeekBasedYear);\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = wowby - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n }\n date = date.plus(days, ChronoUnit.DAYS);\n if (resolverStyle === ResolverStyle.STRICT) {\n if (date.getLong(this) !== fieldValues.get(this)) {\n throw new DateTimeException('Strict mode rejected date parsed to a different year');\n }\n }\n fieldValues.remove(this);\n fieldValues.remove(this._weekDef.weekOfWeekBasedYear());\n fieldValues.remove(ChronoField.DAY_OF_WEEK);\n return date;\n }\n\n if (fieldValues.containsKey(ChronoField.YEAR) === false) {\n return null;\n }\n const isoDow = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.get(ChronoField.DAY_OF_WEEK));\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const year = ChronoField.YEAR.checkValidIntValue(fieldValues.get(ChronoField.YEAR));\n // const chrono = IsoChronology.INSTANCE; //TODO: Chronology.from(partialTemporal); // defaults to ISO\n if (this._rangeUnit === ChronoUnit.MONTHS) { // week-of-month\n if (fieldValues.containsKey(ChronoField.MONTH_OF_YEAR) === false) {\n return null;\n }\n const value = fieldValues.remove(this);\n let date;\n let days;\n if (resolverStyle === ResolverStyle.LENIENT) {\n const month = fieldValues.get(ChronoField.MONTH_OF_YEAR);\n date = LocalDate.of(year, 1, 1); // TODO: chrono.date(year, 1, 1);\n date = date.plus(month - 1, ChronoUnit.MONTHS);\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = value - this._localizedWeekOfMonth(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n } else {\n const month = ChronoField.MONTH_OF_YEAR.checkValidIntValue(fieldValues.get(ChronoField.MONTH_OF_YEAR));\n date = LocalDate.of(year, month, 8); // TODO: chrono.date(year, month, 8);\n const dateDow = this._localizedDayOfWeek(date, sow);\n const wom = this._range.checkValidIntValue(value, this);\n const weeks = wom - this._localizedWeekOfMonth(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n }\n date = date.plus(days, ChronoUnit.DAYS);\n if (resolverStyle === ResolverStyle.STRICT) {\n if (date.getLong(ChronoField.MONTH_OF_YEAR) !== fieldValues.get(ChronoField.MONTH_OF_YEAR)) {\n throw new DateTimeException('Strict mode rejected date parsed to a different month');\n }\n }\n fieldValues.remove(this);\n fieldValues.remove(ChronoField.YEAR);\n fieldValues.remove(ChronoField.MONTH_OF_YEAR);\n fieldValues.remove(ChronoField.DAY_OF_WEEK);\n return date;\n } else if (this._rangeUnit === ChronoUnit.YEARS) { // week-of-year\n const value = fieldValues.remove(this);\n let date = LocalDate.of(year, 1, 1); // TODO: chrono.date(year, 1, 1);\n let days;\n if (resolverStyle === ResolverStyle.LENIENT) {\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = value - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n } else {\n const dateDow = this._localizedDayOfWeek(date, sow);\n const woy = this._range.checkValidIntValue(value, this);\n const weeks = woy - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n }\n date = date.plus(days, ChronoUnit.DAYS);\n if (resolverStyle === ResolverStyle.STRICT) {\n if (date.getLong(ChronoField.YEAR) !== fieldValues.get(ChronoField.YEAR)) {\n throw new DateTimeException('Strict mode rejected date parsed to a different year');\n }\n }\n fieldValues.remove(this);\n fieldValues.remove(ChronoField.YEAR);\n fieldValues.remove(ChronoField.DAY_OF_WEEK);\n return date;\n } else {\n throw new IllegalStateException('unreachable');\n }\n }\n\n //-----------------------------------------------------------------------\n name() {\n return this._name;\n }\n\n baseUnit() {\n return this._baseUnit;\n }\n\n rangeUnit() {\n return this._rangeUnit;\n }\n\n range() {\n return this._range;\n }\n\n //-----------------------------------------------------------------------\n isDateBased() {\n return true;\n }\n\n isTimeBased() {\n return false;\n }\n\n isSupportedBy(temporal) {\n if (temporal.isSupported(ChronoField.DAY_OF_WEEK)) {\n if (this._rangeUnit === ChronoUnit.WEEKS) {\n return true;\n } else if (this._rangeUnit === ChronoUnit.MONTHS) {\n return temporal.isSupported(ChronoField.DAY_OF_MONTH);\n } else if (this._rangeUnit === ChronoUnit.YEARS) {\n return temporal.isSupported(ChronoField.DAY_OF_YEAR);\n } else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {\n return temporal.isSupported(ChronoField.EPOCH_DAY);\n } else if (this._rangeUnit === ChronoUnit.FOREVER) {\n return temporal.isSupported(ChronoField.EPOCH_DAY);\n }\n }\n return false;\n }\n\n rangeRefinedBy(temporal) {\n if (this._rangeUnit === ChronoUnit.WEEKS) {\n return this._range;\n }\n\n let field = null;\n if (this._rangeUnit === ChronoUnit.MONTHS) {\n field = ChronoField.DAY_OF_MONTH;\n } else if (this._rangeUnit === ChronoUnit.YEARS) {\n field = ChronoField.DAY_OF_YEAR;\n } else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {\n return this._rangeWOWBY(temporal);\n } else if (this._rangeUnit === ChronoUnit.FOREVER) {\n return temporal.range(ChronoField.YEAR);\n } else {\n throw new IllegalStateException('unreachable');\n }\n\n // Offset the ISO DOW by the start of this week\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n\n const offset = this._startOfWeekOffset(temporal.get(field), dow);\n const fieldRange = temporal.range(field);\n return ValueRange.of(ComputedDayOfField._computeWeek(offset, fieldRange.minimum()),\n ComputedDayOfField._computeWeek(offset, fieldRange.maximum()));\n }\n\n _rangeWOWBY(temporal) {\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const woy = this._localizedWeekOfYear(temporal, dow);\n if (woy === 0) {\n // TODO: we use IsoChronology for now\n return this._rangeWOWBY(IsoChronology.INSTANCE.date(temporal).minus(2, ChronoUnit.WEEKS));\n // return this._rangeWOWBY(Chronology.from(temporal).date(temporal).minus(2, ChronoUnit.WEEKS));\n }\n const offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);\n const year = temporal.get(ChronoField.YEAR);\n const yearLen = Year.isLeap(year) ? 366 : 365;\n const weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());\n if (woy >= weekIndexOfFirstWeekNextYear) {\n // TODO: we use IsoChronology for now\n return this._rangeWOWBY(IsoChronology.INSTANCE.date(temporal).plus(2, ChronoUnit.WEEKS));\n // return this._rangeWOWBY(Chronology.from(temporal).date(temporal).plus(2, ChronoUnit.WEEKS));\n }\n return ValueRange.of(1, weekIndexOfFirstWeekNextYear - 1);\n }\n\n displayName(locale) {\n requireNonNull(locale, 'locale');\n if (this._rangeUnit === ChronoUnit.YEARS) { // week-of-year\n return 'Week';\n }\n return this.toString();\n }\n\n //-----------------------------------------------------------------------\n toString() {\n return `${this._name}[${this._weekDef.toString()}]`;\n }\n}\n\n/**\n * The cache of rules by firstDayOfWeek plus minimalDays.\n * Initialized first to be available for definition of ISO, etc.\n */\nconst WeekFieldsCache = new Map();\n\n\n/**\n * Localized definitions of the day-of-week, week-of-month and week-of-year fields.\n * <p>\n * A standard week is seven days long, but cultures have different definitions for some\n * other aspects of a week. This class represents the definition of the week, for the\n * purpose of providing {@link TemporalField} instances.\n * <p>\n * WeekFields provides three fields,\n * {@link #dayOfWeek()}, {@link #weekOfMonth()}, and {@link #weekOfYear()}\n * that provide access to the values from any {@link Temporal temporal object}.\n * <p>\n * The computations for day-of-week, week-of-month, and week-of-year are based\n * on the {@link ChronoField#YEAR proleptic-year},\n * {@link ChronoField#MONTH_OF_YEAR month-of-year},\n * {@link ChronoField#DAY_OF_MONTH day-of-month}, and\n * {@link ChronoField#DAY_OF_WEEK ISO day-of-week} which are based on the\n * {@link ChronoField#EPOCH_DAY epoch-day} and the chronology.\n * The values may not be aligned with the {@link ChronoField#YEAR_OF_ERA year-of-Era}\n * depending on the Chronology.\n * <p>A week is defined by:\n * <ul>\n * <li>The first day-of-week.\n * For example, the ISO-8601 standard considers Monday to be the first day-of-week.\n * <li>The minimal number of days in the first week.\n * For example, the ISO-8601 standard counts the first week as needing at least 4 days.\n * </ul><p>\n * Together these two values allow a year or month to be divided into weeks.\n * <p>\n * <h3>Week of Month</h3>\n * One field is used: week-of-month.\n * The calculation ensures that weeks never overlap a month boundary.\n * The month is divided into periods where each period starts on the defined first day-of-week.\n * The earliest period is referred to as week 0 if it has less than the minimal number of days\n * and week 1 if it has at least the minimal number of days.\n * <p>\n * <table cellpadding=\"0\" cellspacing=\"3\" border=\"0\" style=\"text-align: left; width: 50%;\">\n * <caption>Examples of WeekFields</caption>\n * <tr><th>Date</th><td>Day-of-week</td>\n * <td>First day: Monday<br>Minimal days: 4</td><td>First day: Monday<br>Minimal days: 5</td></tr>\n * <tr><th>2008-12-31</th><td>Wednesday</td>\n * <td>Week 5 of December 2008</td><td>Week 5 of December 2008</td></tr>\n * <tr><th>2009-01-01</th><td>Thursday</td>\n * <td>Week 1 of January 2009</td><td>Week 0 of January 2009</td></tr>\n * <tr><th>2009-01-04</th><td>Sunday</td>\n * <td>Week 1 of January 2009</td><td>Week 0 of January 2009</td></tr>\n * <tr><th>2009-01-05</th><td>Monday</td>\n * <td>Week 2 of January 2009</td><td>Week 1 of January 2009</td></tr>\n * </table>\n * <p>\n * <h3>Week of Year</h3>\n * One field is used: week-of-year.\n * The calculation ensures that weeks never overlap a year boundary.\n * The year is divided into periods where each period starts on the defined first day-of-week.\n * The earliest period is referred to as week 0 if it has less than the minimal number of days\n * and week 1 if it has at least the minimal number of days.\n * <p>\n * This class is immutable and thread-safe.\n */\nexport class WeekFields {\n // implementation notes\n // querying week-of-month or week-of-year should return the week value bound within the month/year\n // however, setting the week value should be lenient (use plus/minus weeks)\n // allow week-of-month outer range [0 to 5]\n // allow week-of-year outer range [0 to 53]\n // this is because callers shouldn't be expected to know the details of validity\n\n /**\n * function overloading for {@link WeekFields#of}\n *\n * if called with 1 arguments then {@link WeekFields.ofLocale} is executed.\n *\n * Otherwise {@link WeekFields.ofFirstDayOfWeekMinDays} is executed.\n *\n * @param {!DayOfWeek | Locale} firstDayOrLocale\n * @param {Number} minDays\n * @returns {WeekFields} this for chaining\n */\n static of(firstDayOrLocale, minDays) {\n if (minDays === undefined) {\n return WeekFields.ofLocale(firstDayOrLocale);\n } else {\n return WeekFields.ofFirstDayOfWeekMinDays(firstDayOrLocale, minDays);\n }\n }\n\n /**\n * Obtains an instance of {@code WeekFields} appropriate for a locale.\n * <p>\n * This will look up appropriate values from the provider of localization data.\n *\n * @param {!Locale} locale the locale to use, not null\n * @return the week-definition, not null\n */\n static ofLocale(locale) {\n requireNonNull(locale, 'locale');\n\n Cldr.load(cldrData('supplemental/weekData.json'));\n const cldr = new Cldr(locale.localeString());\n const worldRegion = '001';\n const weekData = cldr.get('supplemental/weekData');\n let dow = _weekDayMap[weekData.firstDay[locale.country()]];\n if (!dow) {\n dow = _weekDayMap[weekData.firstDay[worldRegion]];\n }\n let minDays = weekData.minDays[locale.country()];\n if (!minDays) {\n minDays = weekData.minDays[worldRegion];\n }\n return WeekFields.ofFirstDayOfWeekMinDays(dow, minDays);\n }\n\n /**\n * Obtains an instance of {@code WeekFields} from the first day-of-week and minimal days.\n * <p>\n * The first day-of-week defines the ISO {@code DayOfWeek} that is day 1 of the week.\n * The minimal number of days in the first week defines how many days must be present\n * in a month or year, starting from the first day-of-week, before the week is counted\n * as the first week. A value of 1 will count the first day of the month or year as part\n * of the first week, whereas a value of 7 will require the whole seven days to be in\n * the new month or year.\n * <p>\n * WeekFields instances are singletons; for each unique combination\n * of {@code firstDayOfWeek} and {@code minimalDaysInFirstWeek} the\n * the same instance will be returned.\n *\n * @param {!DayOfWeek} firstDayOfWeek the first day of the week, not null\n * @param {!Number} minimalDaysInFirstWeek the minimal number of days in the first week, from\n * 1 to 7\n * @return {WeekFields} the week-definition, not null\n * @throws IllegalArgumentException if the minimal days value is less than one\n * or greater than 7\n */\n static ofFirstDayOfWeekMinDays(firstDayOfWeek, minimalDaysInFirstWeek) {\n requireNonNull(firstDayOfWeek, 'firstDayOfWeek');\n requireInstance(firstDayOfWeek, DayOfWeek, 'firstDayOfWeek');\n requireNonNull(minimalDaysInFirstWeek, 'minimalDaysInFirstWeek');\n const key = firstDayOfWeek.toString() + minimalDaysInFirstWeek;\n let rules = WeekFieldsCache.get(key);\n if (rules == null) {\n rules = new WeekFields(firstDayOfWeek, minimalDaysInFirstWeek);\n WeekFieldsCache.set(key, rules);\n rules = WeekFieldsCache.get(key);\n }\n return rules;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Creates an instance of the definition.\n *\n * @param {!DayOfWeek} firstDayOfWeek the first day of the week, not null\n * @param {!Number} minimalDaysInFirstWeek the minimal number of days in the first week, from\n * 1 to 7\n * @throws IllegalArgumentException if the minimal days value is invalid\n *\n * @private\n */\n constructor(firstDayOfWeek, minimalDaysInFirstWeek) {\n requireNonNull(firstDayOfWeek, 'firstDayOfWeek');\n requireInstance(firstDayOfWeek, DayOfWeek, 'firstDayOfWeek');\n requireNonNull(minimalDaysInFirstWeek, 'minimalDaysInFirstWeek');\n if (minimalDaysInFirstWeek < 1 || minimalDaysInFirstWeek > 7) {\n throw new IllegalArgumentException('Minimal number of days is invalid');\n }\n this._firstDayOfWeek = firstDayOfWeek;\n this._minimalDays = minimalDaysInFirstWeek;\n this._dayOfWeek = ComputedDayOfField.ofDayOfWeekField(this);\n this._weekOfMonth = ComputedDayOfField.ofWeekOfMonthField(this);\n this._weekOfYear = ComputedDayOfField.ofWeekOfYearField(this);\n this._weekOfWeekBasedYear = ComputedDayOfField.ofWeekOfWeekBasedYearField(this);\n this._weekBasedYear = ComputedDayOfField.ofWeekBasedYearField(this);\n Cldr.load(cldrData('supplemental/likelySubtags.json'));\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the first day-of-week.\n * <p>\n * The first day-of-week varies by culture.\n * For example, the US uses Sunday, while France and the ISO-8601 standard use Monday.\n * This method returns the first day using the standard {@code DayOfWeek} enum.\n *\n * @return {DayOfWeek} the first day-of-week, not null\n */\n firstDayOfWeek() {\n return this._firstDayOfWeek;\n }\n\n /**\n * Gets the minimal number of days in the first week.\n * <p>\n * The number of days considered to define the first week of a month or year\n * varies by culture.\n * For example, the ISO-8601 requires 4 days (more than half a week) to\n * be present before counting the first week.\n *\n * @return {Number} the minimal number of days in the first week of a month or year, from 1 to 7\n */\n minimalDaysInFirstWeek() {\n return this._minimalDays;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Returns a field to access the day of week based on this {@code WeekFields}.\n * <p>\n * This is similar to {@link ChronoField#DAY_OF_WEEK} but uses values for\n * the day-of-week based on this {@code WeekFields}.\n * The days are numbered from 1 to 7 where the\n * {@link #getFirstDayOfWeek() first day-of-week} is assigned the value 1.\n * <p>\n * For example, if the first day-of-week is Sunday, then that will have the\n * value 1, with other days ranging from Monday as 2 to Saturday as 7.\n * <p>\n * In the resolving phase of parsing, a localized day-of-week will be converted\n * to a standardized {@code ChronoField} day-of-week.\n * The day-of-week must be in the valid range 1 to 7.\n * Other fields in this class build dates using the standardized day-of-week.\n *\n * @return {TemporalField} a field providing access to the day-of-week with localized\n * numbering, not null\n */\n dayOfWeek() {\n return this._dayOfWeek;\n }\n\n /**\n * Returns a field to access the week of month based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the count of weeks within the month where weeks\n * start on a fixed day-of-week, such as Monday.\n * This field is typically used with {@link WeekFields#dayOfWeek()}.\n * <p>\n * Week one (1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the month.\n * Thus, week one may start up to {@code minDays} days before the start of the month.\n * If the first week starts after the start of the month then the period before is week zero\n * (0).\n * <p>\n * For example:<br>\n * - if the 1st day of the month is a Monday, week one starts on the 1st and there is no week\n * zero<br>\n * - if the 2nd day of the month is a Monday, week one starts on the 2nd and the 1st is in week\n * zero<br>\n * - if the 4th day of the month is a Monday, week one starts on the 4th and the 1st to 3rd is\n * in week zero<br>\n * - if the 5th day of the month is a Monday, week two starts on the 5th and the 1st to 4th is\n * in week one<br>\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a year,\n * week-of-month, month-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all four fields are\n * validated against their range of valid values. The week-of-month field\n * is validated to ensure that the resulting month is the month requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all four fields are\n * validated against their range of valid values. The week-of-month field\n * is validated from 0 to 6, meaning that the resulting date can be in a\n * different month to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following four stage approach.\n * First, create a date on the first day of the first week of January in the requested year.\n * Then take the month-of-year, subtract one, and add the amount in months to the date.\n * Then take the week-of-month, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-of-month, not null\n */\n weekOfMonth() {\n return this._weekOfMonth;\n }\n\n /**\n * Returns a field to access the week of year based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the count of weeks within the year where weeks\n * start on a fixed day-of-week, such as Monday.\n * This field is typically used with {@link WeekFields#dayOfWeek()}.\n * <p>\n * Week one(1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the year.\n * Thus, week one may start up to {@code minDays} days before the start of the year.\n * If the first week starts after the start of the year then the period before is week zero\n * (0).\n * <p>\n * For example:<br>\n * - if the 1st day of the year is a Monday, week one starts on the 1st and there is no week\n * zero<br>\n * - if the 2nd day of the year is a Monday, week one starts on the 2nd and the 1st is in week\n * zero<br>\n * - if the 4th day of the year is a Monday, week one starts on the 4th and the 1st to 3rd is\n * in week zero<br>\n * - if the 5th day of the year is a Monday, week two starts on the 5th and the 1st to 4th is\n * in week one<br>\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a year,\n * week-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated to ensure that the resulting year is the year requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated from 0 to 54, meaning that the resulting date can be in a\n * different year to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following three stage approach.\n * First, create a date on the first day of the first week in the requested year.\n * Then take the week-of-year, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-of-year, not null\n */\n weekOfYear() {\n return this._weekOfYear;\n }\n\n /**\n * Returns a field to access the week of a week-based-year based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the count of weeks within the year where weeks\n * start on a fixed day-of-week, such as Monday and each week belongs to exactly one year.\n * This field is typically used with {@link WeekFields#dayOfWeek()} and\n * {@link WeekFields#weekBasedYear()}.\n * <p>\n * Week one(1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the year.\n * If the first week starts after the start of the year then the period before\n * is in the last week of the previous year.\n * <p>\n * For example:<br>\n * - if the 1st day of the year is a Monday, week one starts on the 1st<br>\n * - if the 2nd day of the year is a Monday, week one starts on the 2nd and\n * the 1st is in the last week of the previous year<br>\n * - if the 4th day of the year is a Monday, week one starts on the 4th and\n * the 1st to 3rd is in the last week of the previous year<br>\n * - if the 5th day of the year is a Monday, week two starts on the 5th and\n * the 1st to 4th is in week one<br>\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a week-based-year,\n * week-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated to ensure that the resulting week-based-year is the\n * week-based-year requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all three fields are\n * validated against their range of valid values. The week-of-week-based-year field\n * is validated from 1 to 53, meaning that the resulting date can be in the\n * following week-based-year to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following three stage approach.\n * First, create a date on the first day of the first week in the requested week-based-year.\n * Then take the week-of-week-based-year, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-of-week-based-year, not null\n */\n weekOfWeekBasedYear() {\n return this._weekOfWeekBasedYear;\n }\n\n /**\n * Returns a field to access the year of a week-based-year based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the year where weeks start on a fixed day-of-week,\n * such as Monday and each week belongs to exactly one year.\n * This field is typically used with {@link WeekFields#dayOfWeek()} and\n * {@link WeekFields#weekOfWeekBasedYear()}.\n * <p>\n * Week one(1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the year.\n * Thus, week one may start before the start of the year.\n * If the first week starts after the start of the year then the period before\n * is in the last week of the previous year.\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a week-based-year,\n * week-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated to ensure that the resulting week-based-year is the\n * week-based-year requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all three fields are\n * validated against their range of valid values. The week-of-week-based-year field\n * is validated from 1 to 53, meaning that the resulting date can be in the\n * following week-based-year to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following three stage approach.\n * First, create a date on the first day of the first week in the requested week-based-year.\n * Then take the week-of-week-based-year, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-based-year, not null\n */\n weekBasedYear() {\n return this._weekBasedYear;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Checks if this {@code WeekFields} is equal to the specified other.\n * <p>\n * The comparison is based on the entire state of the rules, which is\n * the first day-of-week and minimal days.\n *\n * @param {*} other the other rules to compare to, null returns false\n * @return true if this is equal to the specified rules\n */\n equals(other) {\n if (this === other) {\n return true;\n }\n if (other instanceof WeekFields) {\n return this.hashCode() === other.hashCode();\n }\n return false;\n }\n\n /**\n * A hash code for this {@code WeekFields}.\n *\n * @return a suitable hash code\n */\n hashCode() {\n return this._firstDayOfWeek.ordinal() * 7 + this._minimalDays;\n }\n\n //-----------------------------------------------------------------------\n /**\n * A string representation of this {@code WeekFields} instance.\n *\n * @return the string representation, not null\n */\n toString() {\n return `WeekFields[${this._firstDayOfWeek},${this._minimalDays}]`;\n }\n\n}\n\nexport function _init() {\n /**\n * The ISO-8601 definition, where a week starts on Monday and the first week\n * has a minimum of 4 days.\n * <p>\n * The ISO-8601 standard defines a calendar system based on weeks.\n * It uses the week-based-year and week-of-week-based-year concepts to split\n * up the passage of days instead of the standard year/month/day.\n * <p>\n * Note that the first week may start in the previous calendar year.\n * Note also that the first few days of a calendar year may be in the\n * week-based-year corresponding to the previous calendar year.\n */\n WeekFields.ISO = WeekFields.of(DayOfWeek.MONDAY, 4);\n\n /**\n * The common definition of a week that starts on Sunday.\n * <p>\n * Defined as starting on Sunday and with a minimum of 1 day in the month.\n * This week definition is in use in the US and other European countries.\n *\n */\n WeekFields.SUNDAY_START = WeekFields.of(DayOfWeek.SUNDAY, 1);\n\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport { _ as jodaInternal, DateTimeFormatterBuilder, SignStyle } from '@js-joda/core';\n\nimport { WeekFields } from '../../temporal/WeekFields';\n\nconst { StringBuilder } = jodaInternal;\n\nexport default class WeekFieldsPrinterParser {\n constructor(letter, count) {\n this._letter = letter;\n this._count = count;\n }\n\n print(context, buf) {\n const weekFields = WeekFields.of(context.locale());\n const pp = this._evaluate(weekFields);\n return pp.print(context, buf);\n }\n\n parse(context, text, position) {\n const weekFields = WeekFields.of(context.locale());\n const pp = this._evaluate(weekFields);\n return pp.parse(context, text, position);\n }\n\n _evaluate(weekFields) {\n let pp = null;\n switch (this._letter) {\n case 'e': // day-of-week\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.dayOfWeek(), this._count, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'c': // day-of-week\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.dayOfWeek(), this._count, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'w': // week-of-year\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekOfWeekBasedYear(), this._count, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'W': // week-of-month\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekOfMonth(), 1, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'Y': // weekyear\n if (this._count === 2) {\n pp = new DateTimeFormatterBuilder.ReducedPrinterParser(weekFields.weekBasedYear(), 2, 2, 0, DateTimeFormatterBuilder.ReducedPrinterParser.BASE_DATE);\n } else {\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekBasedYear(), this._count, 19,\n (this._count < 4) ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD, -1);\n }\n break;\n }\n return pp;\n }\n\n toString() {\n const sb = new StringBuilder(30);\n sb.append('Localized(');\n if (this._letter === 'Y') {\n if (this._count === 1) {\n sb.append('WeekBasedYear');\n } else if (this._count === 2) {\n sb.append('ReducedValue(WeekBasedYear,2,2,2000-01-01)');\n } else {\n sb.append('WeekBasedYear,').append(this._count).append(',')\n .append(19).append(',')\n .append((this._count < 4) ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD);\n }\n } else {\n if (this._letter === 'c' || this._letter === 'e') {\n sb.append('DayOfWeek');\n } else if (this._letter === 'w') {\n sb.append('WeekOfWeekBasedYear');\n } else if (this._letter === 'W') {\n sb.append('WeekOfMonth');\n }\n sb.append(',');\n sb.append(this._count);\n }\n sb.append(')');\n return sb.toString();\n }\n}\n","/**\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeFormatterBuilder,\n IllegalArgumentException,\n TextStyle,\n ChronoField,\n TemporalField\n} from '@js-joda/core';\n\nimport TextPrinterParser from '../parser/TextPrinterParser';\nimport CldrDateTimeTextProvider from './CldrDateTimeTextProvider';\nimport CldrZoneTextPrinterParser from './CldrZoneTextPrinterParser';\nimport { LocaleStore } from '../LocaleStore';\nimport LocalizedOffsetPrinterParser from '../parser/LocalizedOffsetPrinterParser';\nimport WeekFieldsPrinterParser from '../parser/WeekFieldsPrinterParser';\n\nconst { assert: { requireNonNull, requireInstance } } = jodaInternal;\n\n/** DateTimeFormatterBuilder extension functions implementing locale handling using cldr data (http://cldr.unicode.org/)\n */\nexport default class CldrDateTimeFormatterBuilder extends DateTimeFormatterBuilder {\n\n //-------------------------------------------------------------------------\n /**\n * function overloading for {@link CldrDateTimeFormatterBuilder#appendText}\n *\n * if called with 1 arguments and first argument is an instance of ChronoField,\n * then {@link CldrDateTimeFormatterBuilder.appendTextField} is executed.\n * if called with 2 arguments and second argument is an instance of TextStyle,\n * then {@link CldrDateTimeFormatterBuilder.appendTextFieldStyle} is executed.\n *\n * Otherwise {@link CldrDateTimeFormatterBuilder.appendTextFieldMap} is executed.\n *\n * @param {!ChronoField} field\n * @param {!(TextStyle|Object)} styleOrMap\n * @returns {DateTimeFormatterBuilder} this for chaining\n */\n appendText(field, styleOrMap) {\n if (styleOrMap === undefined) {\n return this.appendTextField(field);\n } else if (styleOrMap instanceof TextStyle) {\n return this.appendTextFieldStyle(field, styleOrMap);\n } else {\n return this.appendTextFieldMap(field, styleOrMap);\n }\n }\n\n /**\n * Appends the text of a date-time field to the formatter using the full\n * text style.\n * <p>\n * The text of the field will be output during a print.\n * The value must be within the valid range of the field.\n * If the value cannot be obtained then an exception will be thrown.\n * If the field has no textual representation, then the numeric value will be used.\n * <p>\n * The value will be printed as per the normal print of an integer value.\n * Only negative numbers will be signed. No padding will be added.\n *\n * @param {!TemporalField} field the field to append, not null\n * @return {DateTimeFormatterBuilder} this, for chaining, not null\n */\n appendTextField(field) {\n return this.appendTextFieldStyle(field, TextStyle.FULL);\n }\n\n /**\n * Appends the text of a date-time field to the formatter.\n * <p>\n * The text of the field will be output during a print.\n * The value must be within the valid range of the field.\n * If the value cannot be obtained then an exception will be thrown.\n * If the field has no textual representation, then the numeric value will be used.\n * <p>\n * The value will be printed as per the normal print of an integer value.\n * Only negative numbers will be signed. No padding will be added.\n *\n * @param {!TemporalField} field the field to append, not null\n * @param {!TextStyle} textStyle the text style to use, not null\n * @return {DateTimeFormatterBuilder} this, for chaining, not null\n */\n appendTextFieldStyle(field, textStyle) {\n requireNonNull(field, 'field');\n requireInstance(field, TemporalField, 'field');\n requireNonNull(textStyle, 'textStyle');\n requireInstance(textStyle, TextStyle, 'textStyle');\n this._appendInternal(new TextPrinterParser(field, textStyle, new CldrDateTimeTextProvider()));\n return this;\n }\n\n /**\n * Appends the text of a date-time field to the formatter using the specified\n * map to supply the text.\n * <p>\n * The standard text outputting methods use the localized text in the JDK.\n * This method allows that text to be specified directly.\n * The supplied map is not validated by the builder to ensure that printing or\n * parsing is possible, thus an invalid map may throw an error during later use.\n * <p>\n * Supplying the map of text provides considerable flexibility in printing and parsing.\n * For example, a legacy application might require or supply the months of the\n * year as \"JNY\", \"FBY\", \"MCH\" etc. These do not match the standard set of text\n * for localized month names. Using this method, a map can be created which\n * defines the connection between each value and the text:\n * <pre>\n * Map&lt;Long, String&gt; map = new HashMap&lt;&gt;();\n * map.put(1, \"JNY\");\n * map.put(2, \"FBY\");\n * map.put(3, \"MCH\");\n * ...\n * builder.appendText(MONTH_OF_YEAR, map);\n * </pre>\n * <p>\n * Other uses might be to output the value with a suffix, such as \"1st\", \"2nd\", \"3rd\",\n * or as Roman numerals \"I\", \"II\", \"III\", \"IV\".\n * <p>\n * During printing, the value is obtained and checked that it is in the valid range.\n * If text is not available for the value then it is output as a number.\n * During parsing, the parser will match against the map of text and numeric values.\n *\n * @param {!ChronoField} field the field to append, not null\n * @param {!Object} textLookup the map from the value to the text\n * @return {DateTimeFormatterBuilder} this, for chaining, not null\n */\n appendTextFieldMap(field, textLookup) {\n requireNonNull(field, 'field');\n requireInstance(field, ChronoField, 'field');\n requireNonNull(textLookup, 'textLookup');\n const copy = { ...textLookup };\n const map = {};\n map[TextStyle.FULL] = copy;\n const store = new LocaleStore(map);\n const provider = {\n getText: function(field, value, style) {\n return store.getText(value, style);\n },\n getTextIterator: function(field, style) {\n return store.getTextIterator(style);\n }\n };\n this._appendInternal(new TextPrinterParser(field, TextStyle.FULL, provider));\n return this;\n }\n\n appendWeekField(field, count) {\n requireNonNull(field, 'field');\n requireNonNull(count, 'count');\n this._appendInternal(new WeekFieldsPrinterParser(field, count));\n return this;\n }\n\n /**\n * Appends the time-zone name, such as 'British Summer Time', to the formatter.\n * <p>\n * This appends an instruction to print the textual name of the zone to the builder.\n * <p>\n * During printing, the zone is obtained using a mechanism equivalent\n * to querying the temporal with {@link TemporalQueries#zoneId()}.\n * If the zone is a {@code ZoneOffset} it will be printed using the\n * result of {@link ZoneOffset#getId()}.\n * If the zone is not an offset, the textual name will be looked up\n * for the locale set in the {@link DateTimeFormatter}.\n * If the temporal object being printed represents an instant, then the text\n * will be the summer or winter time text as appropriate.\n * If the lookup for text does not find any suitable reuslt, then the\n * {@link ZoneId#getId() ID} will be printed instead.\n * If the zone cannot be obtained then an exception is thrown unless the\n * section of the formatter is optional.\n * <p>\n * Parsing is not currently supported.\n *\n * @param {!TextStyle} textStyle the text style to use, not null\n * @return this, for chaining, not null\n */\n appendZoneText(textStyle) {\n this._appendInternal(new CldrZoneTextPrinterParser(textStyle));\n return this;\n }\n\n /**\n * Appends the localized zone offset, such as 'GMT+01:00', to the formatter.\n * <p>\n * This appends a localized zone offset to the builder, the format of the\n * localized offset is controlled by the specified {@link FormatStyle style}\n * to this method:\n * <ul>\n * <li>{@link TextStyle#FULL full} - formats with localized offset text, such\n * as 'GMT, 2-digit hour and minute field, optional second field if non-zero,\n * and colon.\n * <li>{@link TextStyle#SHORT short} - formats with localized offset text,\n * such as 'GMT, hour without leading zero, optional 2-digit minute and\n * second if non-zero, and colon.\n * </ul>\n * <p>\n * During formatting, the offset is obtained using a mechanism equivalent\n * to querying the temporal with {@link TemporalQueries#offset()}.\n * If the offset cannot be obtained then an exception is thrown unless the\n * section of the formatter is optional.\n * <p>\n * During parsing, the offset is parsed using the format defined above.\n * If the offset cannot be parsed then an exception is thrown unless the\n * section of the formatter is optional.\n * <p>\n * @param {TextStyle} textStyle the format style to use, not null\n * @return this, for chaining, not null\n * @throws IllegalArgumentException if style is neither {@link TextStyle#FULL\n * full} nor {@link TextStyle#SHORT short}\n */\n appendLocalizedOffset(textStyle) {\n requireNonNull(textStyle, 'textStyle');\n if (textStyle !== TextStyle.FULL && textStyle !== TextStyle.SHORT) {\n throw new IllegalArgumentException('Style must be either full or short');\n }\n this._appendInternal(new LocalizedOffsetPrinterParser(textStyle));\n return this;\n }\n\n //-----------------------------------------------------------------------\n\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport CldrDateTimeTextProvider from './format/cldr/CldrDateTimeTextProvider';\n\nexport default class Locale {\n static getAvailableLocales() {\n return new CldrDateTimeTextProvider().getAvailableLocales();\n }\n\n // TODO: maybe use new Cldr(<'en'>) constructor instead?\n // see https://github.com/rxaviers/cldrjs#instantiate-a-locale-and-get-it-normalized\n constructor(language, country = '', localeString = '') {\n this._language = language;\n this._country = country;\n this._localeString = localeString;\n }\n\n language() {\n return this._language;\n }\n\n country() {\n return this._country;\n }\n\n localeString() {\n if (this._localeString.length > 0) {\n return this._localeString;\n }\n if (this._country.length > 0) {\n return `${this._language}-${this._country}`;\n } else {\n return this._language;\n }\n }\n\n toString() {\n return `Locale[${this.localeString()}]`;\n }\n\n equals(other) {\n if (!other) {\n return false;\n }\n if (!(other instanceof Locale)) {\n return false;\n }\n return this.localeString() === other.localeString();\n }\n}\n\nexport function _init() {\n //some samples/consts\n Locale.ENGLISH = new Locale('en');\n Locale.US = new Locale('en', 'US', 'en'); // default in cldr-data, no en-US\n Locale.UK = new Locale('en', 'GB');\n Locale.CANADA = new Locale('en', 'CA');\n Locale.FRENCH = new Locale('fr');\n Locale.FRANCE = new Locale('fr', 'FR', 'fr'); // default in cldr-data, no fr-FR\n Locale.GERMAN = new Locale('de');\n Locale.GERMANY = new Locale('de', 'DE', 'de'); // default in cldr-data, no de-DE\n Locale.KOREAN = new Locale('ko');\n Locale.JAPANESE = new Locale('ja', 'JP');\n Locale.JAPAN = new Locale('ja', 'JP', 'ja');\n Locale.ITALIAN = new Locale('it');\n Locale.ITALY = new Locale('it', 'IT', 'it');\n Locale.CHINESE = new Locale('zh');\n Locale.ROMANIAN = new Locale('ro');\n Locale.SWEDISH = new Locale('sv');\n Locale.SWEDEN = new Locale('sv', 'SE', 'sv');\n Locale.HINDI = new Locale('hi');\n Locale.RUSSIAN = new Locale('ru');\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeFormatter,\n ChronoField,\n ResolverStyle,\n IsoChronology,\n} from '@js-joda/core';\n// eslint-disable-next-line no-unused-vars\nimport Locale from '../Locale';\nimport CldrDateTimeFormatterBuilder from './cldr/CldrDateTimeFormatterBuilder';\n\nconst { assert: { requireNonNull } } = jodaInternal;\n\nexport default class LocaleDateTimeFormatter extends DateTimeFormatter {\n\n /**\n * Returns a copy of this formatter with a new locale.\n * <p>\n * This is used to lookup any part of the formatter needing specific\n * localization, such as the text or localized pattern.\n * <p>\n * This instance is immutable and unaffected by this method call.\n *\n * @param {!Locale} locale the new locale, not null\n * @return a formatter based on this formatter with the requested locale, not null\n */\n withLocale(locale) {\n requireNonNull(locale, 'locale');\n if (locale.equals(this._locale)) {\n return this;\n }\n return new DateTimeFormatter(this._printerParser, locale, this._decimalStyle, this._resolverStyle, this._resolverFields, this._chrono, this._zone);\n }\n}\n\nexport function _init() {\n const dow = {\n 1: 'Mon',\n 2: 'Tue',\n 3: 'Wed',\n 4: 'Thu',\n 5: 'Fri',\n 6: 'Sat',\n 7: 'Sun',\n };\n\n const moy = {\n 1: 'Jan',\n 2: 'Feb',\n 3: 'Mar',\n 4: 'Apr',\n 5: 'May',\n 6: 'Jun',\n 7: 'Jul',\n 8: 'Aug',\n 9: 'Sep',\n 10: 'Oct',\n 11: 'Nov',\n 12: 'Dec',\n };\n\n LocaleDateTimeFormatter.RFC_1123_DATE_TIME = new CldrDateTimeFormatterBuilder()\n .parseCaseInsensitive()\n .parseLenient()\n .optionalStart()\n .appendText(ChronoField.DAY_OF_WEEK, dow)\n .appendLiteral(', ')\n .optionalEnd()\n .appendValue(ChronoField.DAY_OF_MONTH, 2)\n .appendLiteral(' ')\n .appendText(ChronoField.MONTH_OF_YEAR, moy)\n .appendLiteral(' ')\n .appendValue(ChronoField.YEAR, 4) // 2 digit year not handled\n .appendLiteral(' ')\n .appendValue(ChronoField.HOUR_OF_DAY, 2)\n .appendLiteral(':')\n .appendValue(ChronoField.MINUTE_OF_HOUR, 2)\n .optionalStart()\n .appendLiteral(':')\n .appendValue(ChronoField.SECOND_OF_MINUTE, 2)\n .optionalEnd()\n .appendLiteral(' ')\n .appendZoneId()\n .toFormatter(ResolverStyle.SMART).withChronology(IsoChronology.INSTANCE);\n}\n","/*\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { _init as localeInit } from './Locale';\nimport { _init as weekFieldsInit } from './temporal/WeekFields';\nimport { _init as dateTimeFormatterInit } from './format/LocaleDateTimeFormatter';\n\nlet isInit = false;\n\nfunction init() {\n /* istanbul ignore if */\n if (isInit) {\n return;\n }\n\n isInit = true;\n\n localeInit();\n weekFieldsInit();\n dateTimeFormatterInit();\n}\n\ninit();\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\n/* eslint-disable no-param-reassign */\n\nimport CldrDateTimeFormatterBuilder from './format/cldr/CldrDateTimeFormatterBuilder';\nimport LocaleDateTimeFormatter from './format/LocaleDateTimeFormatter';\n\nimport './_init';\n\n/**\n * @private\n *\n * plugin Function, call using js-jodas use()\n *\n * @param jsJoda\n */\nexport default function (jsJoda) {\n // inject all prototype properties (except constructor) from CldrDateTimeFormatterBuilder into DateTimeFormatterBuilder\n Object.getOwnPropertyNames(CldrDateTimeFormatterBuilder.prototype).forEach((prop) => {\n if (prop !== 'constructor') {\n jsJoda.DateTimeFormatterBuilder.prototype[prop] = CldrDateTimeFormatterBuilder.prototype[prop];\n }\n });\n // inject all prototype properties (except constructor) from LocaleDateTimeFormatter into DateTimeFormatter\n Object.getOwnPropertyNames(LocaleDateTimeFormatter.prototype).forEach((prop) => {\n if (prop !== 'constructor') {\n jsJoda.DateTimeFormatter.prototype[prop] = LocaleDateTimeFormatter.prototype[prop];\n }\n });\n // copy statics manually\n jsJoda.DateTimeFormatter.RFC_1123_DATE_TIME = LocaleDateTimeFormatter.RFC_1123_DATE_TIME;\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\nimport { use } from '@js-joda/core';\nimport plug from './plug';\nimport Locale from './Locale';\nimport { WeekFields } from './temporal/WeekFields';\n\nuse(plug);\n\nexport {\n Locale,\n WeekFields\n};\n"],"names":["TextPrinterParser","field","textStyle","provider","_field","_textStyle","_provider","print","context","buf","value","getValue","text","getText","locale","_numberPrinterParser","append","parse","parseText","position","length","IllegalArgumentException","style","isStrict","it","getTextIterator","entry","itText","key","subSequenceEquals","setParsedField","_currentNumberPrinterParser","DateTimeFormatterBuilder","NumberPrinterParser","SignStyle","NORMAL","toString","TextStyle","FULL","createEntry","_comparator","obj1","obj2","LocaleStore","valueTextMap","_valueTextMap","map","allList","Object","keys","forEach","reverse","list","undefined","parseInt","push","sort","concat","_parsable","Symbol","iterator","cldrDataLoaded","Set","loadCldrData","path","has","Cldr","load","cldrData","add","localeToCldrInstanceCache","getOrCreateCldrInstance","localeToMapZonesCache","getOrCreateMapZones","cldr","mapZones","get","metaZone","mapZone","_other","_territory","_type","CldrDateTimeTextProvider","_cache","getAvailableLocales","availableLocales","store","_findStore","_createStore","localeString","ChronoField","MONTH_OF_YEAR","monthsData","main","styleMap","data","wide","narrow","NARROW","abbreviated","SHORT","_createLocaleStore","DAY_OF_WEEK","daysData","mon","tue","wed","thu","fri","sat","sun","AMPM_OF_DAY","dayPeriodsData","am","pm","ERA","erasData","eraNames","eraNarrow","eraAbbr","IsoFields","QUARTER_OF_YEAR","quartersData","FULL_STANDALONE","SHORT_STANDALONE","indexOf","NARROW_STANDALONE","jodaInternal","assert","requireNonNull","requireInstance","LENGTH_COMPARATOR","str1","str2","cmp","localeCompare","resolveZoneIdTextCache","CldrZoneTextPrinterParser","_zoneIdsLocales","_cachedResolveZoneIdText","zoneId","type","zoneIdToStyle","styleToType","typeToResolvedZoneIdText","_resolveZoneIdText","zoneData","metazoneInfo","metazone","metaZoneData","preferredZone","attributes","territory","goldenZone","zone","getValueQuery","TemporalQueries","normalized","ZoneOffset","id","tzType","tzstyle","asNormal","_resolveZoneIds","localString","ids","ZoneRulesProvider","getAvailableZoneIds","genericText","standardText","daylightText","sortedKeys","name","setParsedZone","ZoneId","of","MathUtil","LocalizedOffsetPrinterParser","offsetSecs","OFFSET_SECONDS","OffsetIdPrinterParser","totalSecs","safeToInt","absHours","Math","abs","intMod","intDiv","absMinutes","absSeconds","end","sign","charAt","negative","ch","hour","offset","min","sec","_jodaInternal$assert","DAY_OF_WEEK_RANGE","ValueRange","WEEK_OF_MONTH_RANGE","WEEK_OF_YEAR_RANGE","WEEK_OF_WEEK_BASED_YEAR_RANGE","WEEK_BASED_YEAR_RANGE","YEAR","range","_weekDayMap","DayOfWeek","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY","ComputedDayOfField","ofDayOfWeekField","weekDef","ChronoUnit","DAYS","WEEKS","ofWeekOfMonthField","MONTHS","ofWeekOfYearField","YEARS","ofWeekOfWeekBasedYearField","WEEK_BASED_YEARS","ofWeekBasedYearField","FOREVER","baseUnit","rangeUnit","_name","_weekDef","_baseUnit","_rangeUnit","_range","getFrom","temporal","sow","firstDayOfWeek","dow","_localizedDayOfWeek","_localizedWeekOfMonth","_localizedWeekOfYear","_localizedWOWBY","_localizedWBY","IllegalStateException","isoDow","floorMod","dom","DAY_OF_MONTH","_startOfWeekOffset","_computeWeek","doy","DAY_OF_YEAR","woy","previous","LocalDate","from","minus","year","yearLen","Year","isLeap","weekIndexOfFirstWeekNextYear","minimalDaysInFirstWeek","day","weekStart","adjustInto","newValue","newVal","checkValidIntValue","currentVal","baseWowby","weekOfWeekBasedYear","diffWeeks","roundDown","result","plus","newWowby","delta","resolve","fieldValues","partialTemporal","resolverStyle","remove","localDow","put","containsKey","wby","date","days","ResolverStyle","LENIENT","wowby","dateDow","weeks","STRICT","getLong","DateTimeException","month","wom","isDateBased","isTimeBased","isSupportedBy","isSupported","EPOCH_DAY","rangeRefinedBy","_rangeWOWBY","fieldRange","minimum","maximum","IsoChronology","INSTANCE","displayName","WeekFieldsCache","Map","WeekFields","firstDayOrLocale","minDays","ofLocale","ofFirstDayOfWeekMinDays","worldRegion","weekData","firstDay","country","rules","set","_firstDayOfWeek","_minimalDays","_dayOfWeek","_weekOfMonth","_weekOfYear","_weekOfWeekBasedYear","_weekBasedYear","dayOfWeek","weekOfMonth","weekOfYear","weekBasedYear","equals","other","hashCode","ordinal","_init","ISO","SUNDAY_START","StringBuilder","WeekFieldsPrinterParser","letter","count","_letter","_count","weekFields","pp","_evaluate","NOT_NEGATIVE","ReducedPrinterParser","BASE_DATE","EXCEEDS_PAD","sb","CldrDateTimeFormatterBuilder","appendText","styleOrMap","appendTextField","appendTextFieldStyle","appendTextFieldMap","TemporalField","_appendInternal","textLookup","copy","appendWeekField","appendZoneText","appendLocalizedOffset","Locale","language","_language","_country","_localeString","ENGLISH","US","UK","CANADA","FRENCH","FRANCE","GERMAN","GERMANY","KOREAN","JAPANESE","JAPAN","ITALIAN","ITALY","CHINESE","ROMANIAN","SWEDISH","SWEDEN","HINDI","RUSSIAN","LocaleDateTimeFormatter","withLocale","_locale","DateTimeFormatter","_printerParser","_decimalStyle","_resolverStyle","_resolverFields","_chrono","_zone","moy","RFC_1123_DATE_TIME","parseCaseInsensitive","parseLenient","optionalStart","appendLiteral","optionalEnd","appendValue","HOUR_OF_DAY","MINUTE_OF_HOUR","SECOND_OF_MINUTE","appendZoneId","toFormatter","SMART","withChronology","isInit","init","localeInit","weekFieldsInit","dateTimeFormatterInit","jsJoda","getOwnPropertyNames","prototype","prop","use","plug"],"mappings":"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"}
1
+ {"version":3,"file":"js-joda-locale.js","sources":["../src/format/parser/TextPrinterParser.js","../src/format/LocaleStore.js","../src/format/cldr/CldrCache.js","../src/format/cldr/CldrDateTimeTextProvider.js","../src/format/cldr/CldrZoneTextPrinterParser.js","../src/format/parser/LocalizedOffsetPrinterParser.js","../src/temporal/WeekFields.js","../src/format/parser/WeekFieldsPrinterParser.js","../src/format/cldr/CldrDateTimeFormatterBuilder.js","../src/Locale.js","../src/format/LocaleDateTimeFormatter.js","../src/_init.js","../src/plug.js","../src/js-joda-locale.js"],"sourcesContent":["/**\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { DateTimeFormatterBuilder, IllegalArgumentException, SignStyle, TextStyle } from '@js-joda/core';\n\n//-----------------------------------------------------------------------\n/**\n * Prints or parses field text.\n * @private\n */\nexport default class TextPrinterParser {\n /**\n * Constructor.\n *\n * @param {!TemporalField} field the field to output, not null\n * @param {!TextStyle} textStyle the text style, not null\n * @param {!DateTimeProvider} provider the text provider, not null\n */\n constructor(field, textStyle, provider) {\n // validated by caller\n this._field = field;\n this._textStyle = textStyle;\n this._provider = provider;\n }\n\n field() {\n return this._field;\n }\n\n textStyle() {\n return this._textStyle;\n }\n\n provider() {\n return this._provider;\n }\n\n print(context, buf) {\n const value = context.getValue(this._field);\n if (value === null) {\n return false;\n }\n const text = this._provider.getText(this._field, value, this._textStyle, context.locale());\n if (text === null) {\n return this._numberPrinterParser().print(context, buf);\n }\n buf.append(text);\n return true;\n }\n\n parse(context, parseText, position) {\n const length = parseText.length;\n if (position < 0 || position > length) {\n throw new IllegalArgumentException(`The position is invalid: ${position}`);\n }\n const style = (context.isStrict() ? this._textStyle : null);\n const it = this._provider.getTextIterator(this._field, style, context.locale());\n if (it != null) {\n for (const entry of it) {\n const itText = entry.key;\n if (context.subSequenceEquals(itText, 0, parseText, position, itText.length)) {\n return context.setParsedField(this._field, entry.value, position, position + itText.length);\n }\n }\n if (context.isStrict()) {\n return ~position;\n }\n }\n return this._numberPrinterParser().parse(context, parseText, position);\n }\n\n /**\n * Create and cache a number printer parser.\n * @return the number printer parser for this field, not null\n */\n _numberPrinterParser() {\n if (this._currentNumberPrinterParser == null) {\n this._currentNumberPrinterParser = new DateTimeFormatterBuilder.NumberPrinterParser(this._field, 1, 19, SignStyle.NORMAL);\n }\n return this._currentNumberPrinterParser;\n }\n\n toString() {\n if (this._textStyle === TextStyle.FULL) {\n return `Text(${this._field})`;\n }\n return `Text(${this._field},${this._textStyle})`;\n }\n}\n\n//-----------------------------------------------------------------------\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\n\n/**\n * @private\n *\n * Helper method to create an immutable entry.\n *\n * @param text the text, not null\n * @param field the field, not null\n * @return the entry, not null\n */\nexport const createEntry = (text, field) => {\n return {\n key: text,\n value: field,\n toString: function () {\n return `${text}->${field}`;\n }\n };\n};\n\nconst _comparator = (obj1, obj2) => {\n return obj2.key.length - obj1.key.length; // longest to shortest\n};\n\n/**\n * Stores the text for a single locale.\n * <p>\n * Some fields have a textual representation, such as day-of-week or month-of-year.\n * These textual representations can be captured in this class for printing\n * and parsing.\n */\nexport class LocaleStore {\n //-----------------------------------------------------------------------\n /**\n * Constructor.\n *\n * @param {Object} valueTextMap the map of values to text to store, assigned and not altered, not null\n */\n constructor(valueTextMap) {\n this._valueTextMap = valueTextMap;\n const map = {};\n let allList = [];\n Object.keys(valueTextMap).forEach((style) => {\n const reverse = {};\n const list = [];\n Object.keys(valueTextMap[style]).forEach((key) => {\n const value = valueTextMap[style][key];\n if (reverse[value] === undefined) {\n reverse[value] = createEntry(value, parseInt(key));\n list.push(reverse[value]);\n }\n });\n list.sort(_comparator);\n map[style] = list;\n allList = allList.concat(list);\n map[null] = allList;\n });\n allList.sort(_comparator);\n this._parsable = map;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the text for the specified field value, locale and style\n * for the purpose of printing.\n *\n * @param {Number} value the value to get text for, not null\n * @param {TextStyle} style the style to get text for, not null\n * @return the text for the field value, null if no text found\n */\n getText(value, style) {\n const map = this._valueTextMap[style];\n return map != null ? map[value] : null;\n }\n\n /**\n * Gets an iterator of text to field for the specified style for the purpose of parsing.\n * <p>\n * The iterator must be returned in order from the longest text to the shortest.\n *\n * @param style the style to get text for, null for all parsable text\n * @return the iterator of text to field pairs, in order from longest text to shortest text,\n * null if the style is not parsable\n */\n getTextIterator(style) {\n const list = this._parsable[style];\n return list != null ? list[Symbol.iterator]() : null;\n }\n}\n","/*\n* @copyright (c) 2020, Philipp Thuerwaechter & Pattrick Hueper\n* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n*/\n\nimport cldrData from 'cldr-data';\nimport Cldr from 'cldrjs';\n\nconst cldrDataLoaded = new Set();\n/**\n * @private\n *\n* Loads the Cldr data for the given path if it hasn't been loaded before.\n*/\nexport const loadCldrData = (path) => {\n if (!cldrDataLoaded.has(path)) {\n Cldr.load(cldrData(path));\n cldrDataLoaded.add(path);\n }\n};\n\nconst localeToCldrInstanceCache = {};\n/**\n * @private\n *\n* Returns a Cldr instance for the given locale.\n* Memoized, so a given locale will always return the exact same cldr instance.\n*/\nexport const getOrCreateCldrInstance = (locale) => {\n if (localeToCldrInstanceCache[locale] == null) {\n localeToCldrInstanceCache[locale] = new Cldr(locale);\n }\n\n return localeToCldrInstanceCache[locale];\n};\n\nconst localeToMapZonesCache = {};\n/**\n * @private\n *\n* Returns a map zones object for a Cldr instance.\n* Memoized, so for any given Cldr instance locale, the same object will be returned.\n*/\nexport const getOrCreateMapZones = (cldr) => {\n if (localeToMapZonesCache[cldr.locale] == null) {\n const mapZones = {};\n\n cldr.get('supplemental/metaZones/metazones').forEach((metaZone) => {\n if (metaZone.mapZone) {\n if (!mapZones[metaZone.mapZone._other]) {\n mapZones[metaZone.mapZone._other] = {};\n }\n mapZones[metaZone.mapZone._other][metaZone.mapZone._territory] = metaZone.mapZone._type;\n }\n });\n\n localeToMapZonesCache[cldr.locale] = mapZones;\n }\n\n return localeToMapZonesCache[cldr.locale];\n};\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport { ChronoField, IsoFields, TextStyle } from '@js-joda/core';\n\nimport cldrData from 'cldr-data';\n\nimport { LocaleStore, createEntry } from '../LocaleStore';\nimport { getOrCreateCldrInstance, loadCldrData } from './CldrCache';\n\n/**\n * The Service Provider Implementation to obtain date-time text for a field.\n * <p>\n * This implementation is based on data from cldr.\n *\n * @private\n */\nexport default class CldrDateTimeTextProvider {\n\n constructor() {\n this._cache = {};\n loadCldrData('supplemental/likelySubtags.json');\n }\n\n //-----------------------------------------------------------------------\n getAvailableLocales() {\n return cldrData('availableLocales.json').availableLocales;\n }\n\n //-----------------------------------------------------------------------\n getText(field, value, style, locale) {\n const store = this._findStore(field, locale);\n if (store instanceof LocaleStore) {\n return store.getText(value, style);\n }\n return null;\n }\n\n getTextIterator(field, style, locale) {\n const store = this._findStore(field, locale);\n if (store instanceof LocaleStore) {\n return store.getTextIterator(style);\n }\n return null;\n }\n\n //-----------------------------------------------------------------------\n _findStore(field, locale) {\n const key = createEntry(field, locale);\n let store = this._cache[key];\n if (store === undefined) {\n store = this._createStore(field, locale);\n this._cache[key] = store;\n }\n return store;\n }\n\n _createStore(field, locale) {\n loadCldrData(`main/${locale.localeString()}/ca-gregorian.json`);\n const cldr = getOrCreateCldrInstance(locale.localeString());\n if (field === ChronoField.MONTH_OF_YEAR) {\n const monthsData = cldr.main('dates/calendars/gregorian/months/format');\n const styleMap = {};\n let data = {};\n data[1] = monthsData.wide[1];\n data[2] = monthsData.wide[2];\n data[3] = monthsData.wide[3];\n data[4] = monthsData.wide[4];\n data[5] = monthsData.wide[5];\n data[6] = monthsData.wide[6];\n data[7] = monthsData.wide[7];\n data[8] = monthsData.wide[8];\n data[9] = monthsData.wide[9];\n data[10] = monthsData.wide[10];\n data[11] = monthsData.wide[11];\n data[12] = monthsData.wide[12];\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[1] = monthsData.narrow[1];\n data[2] = monthsData.narrow[2];\n data[3] = monthsData.narrow[3];\n data[4] = monthsData.narrow[4];\n data[5] = monthsData.narrow[5];\n data[6] = monthsData.narrow[6];\n data[7] = monthsData.narrow[7];\n data[8] = monthsData.narrow[8];\n data[9] = monthsData.narrow[9];\n data[10] = monthsData.narrow[10];\n data[11] = monthsData.narrow[11];\n data[12] = monthsData.narrow[12];\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[1] = monthsData.abbreviated[1];\n data[2] = monthsData.abbreviated[2];\n data[3] = monthsData.abbreviated[3];\n data[4] = monthsData.abbreviated[4];\n data[5] = monthsData.abbreviated[5];\n data[6] = monthsData.abbreviated[6];\n data[7] = monthsData.abbreviated[7];\n data[8] = monthsData.abbreviated[8];\n data[9] = monthsData.abbreviated[9];\n data[10] = monthsData.abbreviated[10];\n data[11] = monthsData.abbreviated[11];\n data[12] = monthsData.abbreviated[12];\n styleMap[TextStyle.SHORT] = data;\n return this._createLocaleStore(styleMap);\n }\n if (field === ChronoField.DAY_OF_WEEK) {\n const daysData = cldr.main('dates/calendars/gregorian/days/format');\n const styleMap = {};\n let data = {};\n data[1] = daysData.wide.mon;\n data[2] = daysData.wide.tue;\n data[3] = daysData.wide.wed;\n data[4] = daysData.wide.thu;\n data[5] = daysData.wide.fri;\n data[6] = daysData.wide.sat;\n data[7] = daysData.wide.sun;\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[1] = daysData.narrow.mon;\n data[2] = daysData.narrow.tue;\n data[3] = daysData.narrow.wed;\n data[4] = daysData.narrow.thu;\n data[5] = daysData.narrow.fri;\n data[6] = daysData.narrow.sat;\n data[7] = daysData.narrow.sun;\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[1] = daysData.abbreviated.mon;\n data[2] = daysData.abbreviated.tue;\n data[3] = daysData.abbreviated.wed;\n data[4] = daysData.abbreviated.thu;\n data[5] = daysData.abbreviated.fri;\n data[6] = daysData.abbreviated.sat;\n data[7] = daysData.abbreviated.sun;\n styleMap[TextStyle.SHORT] = data;\n return this._createLocaleStore(styleMap);\n }\n if (field === ChronoField.AMPM_OF_DAY) {\n const dayPeriodsData = cldr.main('dates/calendars/gregorian/dayPeriods/format');\n const styleMap = {};\n let data = {};\n data[0] = dayPeriodsData.wide.am;\n data[1] = dayPeriodsData.wide.pm;\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[0] = dayPeriodsData.narrow.am;\n data[1] = dayPeriodsData.narrow.pm;\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[0] = dayPeriodsData.abbreviated.am;\n data[1] = dayPeriodsData.abbreviated.pm;\n styleMap[TextStyle.SHORT] = data;\n\n return this._createLocaleStore(styleMap);\n }\n if (field === ChronoField.ERA) {\n const erasData = cldr.main('dates/calendars/gregorian/eras');\n const styleMap = {};\n let data = {};\n data[0] = erasData.eraNames['0'];\n data[1] = erasData.eraNames['1'];\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[0] = erasData.eraNarrow['0'];\n data[1] = erasData.eraNarrow['1'];\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[0] = erasData.eraAbbr['0'];\n data[1] = erasData.eraAbbr['1'];\n styleMap[TextStyle.SHORT] = data;\n\n return this._createLocaleStore(styleMap);\n }\n if (field === IsoFields.QUARTER_OF_YEAR) {\n const quartersData = cldr.main('dates/calendars/gregorian/quarters/format');\n const styleMap = {};\n let data = {};\n data[1] = quartersData.wide['1'];\n data[2] = quartersData.wide['2'];\n data[3] = quartersData.wide['3'];\n data[4] = quartersData.wide['4'];\n styleMap[TextStyle.FULL] = data;\n\n data = {};\n data[1] = quartersData.narrow['1'];\n data[2] = quartersData.narrow['2'];\n data[3] = quartersData.narrow['3'];\n data[4] = quartersData.narrow['4'];\n styleMap[TextStyle.NARROW] = data;\n\n data = {};\n data[1] = quartersData.abbreviated['1'];\n data[2] = quartersData.abbreviated['2'];\n data[3] = quartersData.abbreviated['3'];\n data[4] = quartersData.abbreviated['4'];\n styleMap[TextStyle.SHORT] = data;\n\n return this._createLocaleStore(styleMap);\n }\n return null; // null marker for map\n }\n\n //-----------------------------------------------------------------------\n _createLocaleStore(valueTextMap) {\n valueTextMap[TextStyle.FULL_STANDALONE] = valueTextMap[TextStyle.FULL];\n valueTextMap[TextStyle.SHORT_STANDALONE] = valueTextMap[TextStyle.SHORT];\n /* istanbul ignore if */ // this doesn't seem to happen?\n if (Object.keys(valueTextMap).indexOf(TextStyle.NARROW) > -1\n && Object.keys(valueTextMap).indexOf(TextStyle.NARROW_STANDALONE) === -1) {\n valueTextMap[TextStyle.NARROW_STANDALONE] = valueTextMap[TextStyle.NARROW];\n }\n return new LocaleStore(valueTextMap);\n }\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n TextStyle,\n TemporalQueries,\n ZoneId,\n ZoneOffset,\n ZoneRulesProvider,\n} from '@js-joda/core';\n\nimport { getOrCreateCldrInstance, getOrCreateMapZones, loadCldrData } from './CldrCache';\n\nconst { assert: { requireNonNull, requireInstance } } = jodaInternal;\n\n//-----------------------------------------------------------------------\nconst LENGTH_COMPARATOR = (str1, str2) => {\n let cmp = str2.length - str1.length;\n if (cmp === 0) {\n cmp = str1.localeCompare(str2);\n }\n return cmp;\n};\n\n/**\n * Cache for `_cachedResolveZoneIdText`.\n *\n * Its basic structure is:\n * Obj { locale: zoneId }\n * Obj { zoneId: style}\n * Obj { style: type}\n * Obj { type: resolvedZoneIdText}\n */\nconst resolveZoneIdTextCache = {};\n\n/**\n * Prints or parses a zone ID.\n */\nexport default class CldrZoneTextPrinterParser {\n /** The text style to output. */\n\n constructor(textStyle) {\n requireNonNull(textStyle, 'textStyle');\n requireInstance(textStyle, TextStyle, 'textStyle');\n this._textStyle = textStyle;\n this._zoneIdsLocales = {};\n loadCldrData('supplemental/likelySubtags.json');\n loadCldrData('supplemental/metaZones.json');\n }\n\n _cachedResolveZoneIdText(cldr, zoneId, style, type) {\n if (resolveZoneIdTextCache[cldr.locale] == null) {\n resolveZoneIdTextCache[cldr.locale] = {};\n }\n\n const zoneIdToStyle = resolveZoneIdTextCache[cldr.locale];\n if (zoneIdToStyle[zoneId] == null) {\n zoneIdToStyle[zoneId] = {};\n }\n\n const styleToType = zoneIdToStyle[zoneId];\n if (styleToType[style] == null) {\n styleToType[style] = {};\n }\n\n const typeToResolvedZoneIdText = styleToType[style];\n if (typeToResolvedZoneIdText[type] == null) {\n typeToResolvedZoneIdText[type] = this._resolveZoneIdText(cldr, zoneId, style, type);\n }\n\n return typeToResolvedZoneIdText[type];\n }\n\n _resolveZoneIdText(cldr, zoneId, style, type) {\n const zoneData = cldr.main(`dates/timeZoneNames/zone/${zoneId}/${style}/${type}`);\n if (zoneData) {\n return zoneData;\n } else {\n const metazoneInfo = cldr.get(`supplemental/metaZones/metazoneInfo/timezone/${zoneId}`);\n if (metazoneInfo) {\n // const zoneData = cldr.main(`dates/timeZoneNames/metazone/Acre`);\n // TODO: determine metaZone for current temporal, for now, we use the last one :/\n const metazone = metazoneInfo[metazoneInfo.length - 1]['usesMetazone']['_mzone'];\n let metaZoneData = cldr.main(`dates/timeZoneNames/metazone/${metazone}/${style}/${type}`);\n if (metaZoneData) {\n return metaZoneData;\n } else {\n // type fallback, first generic, then standard\n metaZoneData = cldr.main(`dates/timeZoneNames/metazone/${metazone}/${style}/generic`);\n if (!metaZoneData) {\n metaZoneData = cldr.main(`dates/timeZoneNames/metazone/${metazone}/${style}/standard`);\n }\n if (metaZoneData) {\n return metaZoneData;\n } else {\n const mapZones = getOrCreateMapZones(cldr);\n // find preferred Zone and resolve again\n const preferredZone = mapZones[metazone][cldr.attributes.territory];\n if (preferredZone) {\n if (preferredZone !== zoneId) {\n return this._cachedResolveZoneIdText(cldr, preferredZone, style, type);\n }\n } else {\n // find golden Zone and resolve again\n const goldenZone = mapZones[metazone]['001'];\n if (goldenZone !== zoneId) {\n return this._cachedResolveZoneIdText(cldr, goldenZone, style, type);\n }\n }\n }\n }\n }\n }\n }\n\n //-----------------------------------------------------------------------\n print(context, buf) {\n\n //see http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Zone_Names\n\n const zone = context.getValueQuery(TemporalQueries.zoneId());\n /* istanbul ignore if */ // shouldn't happen... getValueQuery throws before returning null\n if (zone == null) {\n return false;\n }\n if (zone.normalized() instanceof ZoneOffset) {\n buf.append(zone.id());\n return true;\n }\n const daylight = false;\n const hasDaylightSupport = false;\n /* TODO: currently js-joda-timezone does not support ZoneRules.isDaylightSavings() ... uncomment if it does\n const temporal = context.temporal();\n if (temporal.isSupported(ChronoField.INSTANT_SECONDS)) {\n hasDaylightSupport = true;\n const instant = Instant.ofEpochSecond(temporal.getLong(ChronoField.INSTANT_SECONDS));\n daylight = zone.rules().isDaylightSavings(instant);\n }*/\n const tzType = hasDaylightSupport ? (daylight ? 'daylight' : 'standard') : 'generic';\n const tzstyle = (this._textStyle.asNormal() === TextStyle.FULL ? 'long' : 'short');\n loadCldrData(`main/${context.locale().localeString()}/timeZoneNames.json`);\n const cldr = getOrCreateCldrInstance(context.locale().localeString());\n\n const text = this._cachedResolveZoneIdText(cldr, zone.id(), tzstyle, tzType);\n if (text) {\n buf.append(text);\n } else {\n // fallback, print zoneId\n buf.append(zone.id());\n }\n return true;\n }\n\n _resolveZoneIds(localString) {\n if(this._zoneIdsLocales[localString] != null) {\n return this._zoneIdsLocales[localString];\n }\n const ids = {};\n loadCldrData(`main/${localString}/timeZoneNames.json`);\n const cldr = getOrCreateCldrInstance(localString);\n\n for (const id of ZoneRulesProvider.getAvailableZoneIds()) {\n ids[id] = id;\n const tzstyle = (this._textStyle.asNormal() === TextStyle.FULL ? 'long' : 'short');\n\n const genericText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'generic');\n if (genericText) {\n ids[genericText] = id;\n }\n const standardText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'standard');\n if (standardText) {\n ids[standardText] = id;\n }\n const daylightText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'daylight');\n if (daylightText) {\n ids[daylightText] = id;\n }\n }\n // threeten is using a (sorted) TreeMap... so we need to sort the keys\n const sortedKeys = Object.keys(ids).sort(LENGTH_COMPARATOR);\n\n this._zoneIdsLocales[localString] = { ids, sortedKeys };\n return this._zoneIdsLocales[localString];\n }\n\n // That's a very poor implementation, there are missing bug fixes and functionality from threeten and jdk\n parse(context, text, position) {\n for (const name of ['UTC', 'GMT']) {\n if (context.subSequenceEquals(text, position, name, 0, name.length)) {\n context.setParsedZone(ZoneId.of(name));\n return position + name.length;\n }\n }\n const { ids, sortedKeys } = this._resolveZoneIds(context.locale().localeString());\n for (const name of sortedKeys) {\n if (context.subSequenceEquals(text, position, name, 0, name.length)) {\n context.setParsedZone(ZoneId.of(ids[name]));\n return position + name.length;\n }\n }\n return ~position;\n }\n\n toString() {\n return `ZoneText(${this._textStyle})`;\n }\n}\n","/**\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeFormatterBuilder,\n ChronoField,\n TextStyle\n} from '@js-joda/core';\n\nconst { MathUtil } = jodaInternal;\n//-----------------------------------------------------------------------\n/**\n * Prints or parses field text.\n * @private\n */\nexport default class LocalizedOffsetPrinterParser {\n /**\n * Constructor.\n *\n * @param {!TextStyle} textStyle the text style, not null\n */\n constructor(textStyle) {\n this._textStyle = textStyle;\n }\n\n textStyle() {\n return this._textStyle;\n }\n\n print(context, buf) {\n const offsetSecs = context.getValue(ChronoField.OFFSET_SECONDS);\n /* istanbul ignore if */ // shouldn't happen... getValue throws for unsupported fields?\n if (offsetSecs == null) {\n return false;\n }\n buf.append('GMT');\n if (this._textStyle === TextStyle.FULL) {\n return new DateTimeFormatterBuilder.OffsetIdPrinterParser('', '+HH:MM:ss').print(context, buf);\n }\n const totalSecs = MathUtil.safeToInt(offsetSecs);\n if (totalSecs !== 0) {\n const absHours = Math.abs(MathUtil.intMod(MathUtil.intDiv(totalSecs, 3600), 100)); // anything larger than 99 silently dropped\n const absMinutes = Math.abs(MathUtil.intMod(MathUtil.intDiv(totalSecs,60), 60));\n const absSeconds = Math.abs(MathUtil.intMod(totalSecs, 60));\n buf.append(totalSecs < 0 ? '-' : '+').append(absHours);\n if (absMinutes > 0 || absSeconds > 0) {\n buf.append(':')\n .append(MathUtil.intDiv(absMinutes, 10)).append(MathUtil.intMod(absMinutes,10));\n if (absSeconds > 0) {\n buf.append(':')\n .append(MathUtil.intDiv(absSeconds, 10)).append(MathUtil.intMod(absSeconds, 10));\n }\n }\n }\n return true;\n }\n\n parse(context, text, position) {\n if (context.subSequenceEquals(text, position, 'GMT', 0, 3) === false) {\n return ~position;\n }\n position += 3;\n if (this._textStyle === TextStyle.FULL) {\n return new DateTimeFormatterBuilder.OffsetIdPrinterParser('', '+HH:MM:ss').parse(context, text, position);\n }\n const end = text.length;\n if (position === end) {\n return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);\n }\n const sign = text.charAt(position);\n if (sign !== '+' && sign !== '-') {\n return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);\n }\n const negative = (sign === '-' ? -1 : 1);\n /* istanbul ignore if */ // cannot happen, already checked before\n if (position === end) {\n return ~position;\n }\n position++;\n // hour\n let ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n let hour = MathUtil.parseInt(ch);\n if (position !== end) {\n ch = text.charAt(position);\n if (ch >= '0' && ch <= '9') {\n hour = hour * 10 + MathUtil.parseInt(ch);\n if (hour > 23) {\n return ~position;\n }\n position++;\n }\n }\n if (position === end || text.charAt(position) !== ':') {\n const offset = negative * 3600 * hour;\n return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);\n }\n position++;\n // minute\n if (position > end - 2) {\n return ~position;\n }\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n let min = MathUtil.parseInt(ch);\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n min = min * 10 + MathUtil.parseInt(ch);\n if (min > 59) {\n return ~position;\n }\n if (position === end || text.charAt(position) !== ':') {\n const offset = negative * (3600 * hour + 60 * min);\n return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);\n }\n position++;\n // second\n if (position > end - 2) {\n return ~position;\n }\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n let sec = MathUtil.parseInt(ch);\n ch = text.charAt(position);\n if (ch < '0' || ch > '9') {\n return ~position;\n }\n position++;\n sec = sec * 10 + MathUtil.parseInt(ch);\n if (sec > 59) {\n return ~position;\n }\n const offset = negative * (3600 * hour + 60 * min + sec);\n return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);\n }\n\n toString() {\n return `LocalizedOffset(${this._textStyle})`;\n }\n\n}\n\n//-----------------------------------------------------------------------\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeException,\n DayOfWeek,\n ChronoField,\n ChronoUnit,\n IllegalArgumentException,\n IllegalStateException,\n IsoChronology,\n IsoFields,\n LocalDate,\n ResolverStyle,\n ValueRange,\n Year\n} from '@js-joda/core';\nimport cldrData from 'cldr-data';\nimport Cldr from 'cldrjs';\n\nconst { MathUtil, assert: { requireNonNull, requireInstance } } = jodaInternal;\n\n//-----------------------------------------------------------------------\nconst DAY_OF_WEEK_RANGE = ValueRange.of(1, 7);\nconst WEEK_OF_MONTH_RANGE = ValueRange.of(0, 1, 4, 6);\nconst WEEK_OF_YEAR_RANGE = ValueRange.of(0, 1, 52, 54);\nconst WEEK_OF_WEEK_BASED_YEAR_RANGE = ValueRange.of(1, 52, 53);\nconst WEEK_BASED_YEAR_RANGE = ChronoField.YEAR.range();\n\n/* map from the string from cldr `firstDay()` to DayOfWeek */\nconst _weekDayMap = {\n 'mon': DayOfWeek.MONDAY,\n 'tue': DayOfWeek.TUESDAY,\n 'wed': DayOfWeek.WEDNESDAY,\n 'thu': DayOfWeek.THURSDAY,\n 'fri': DayOfWeek.FRIDAY,\n 'sat': DayOfWeek.SATURDAY,\n 'sun': DayOfWeek.SUNDAY,\n};\n\n/**\n * Field type that computes DayOfWeek, WeekOfMonth, and WeekOfYear\n * based on a WeekFields.\n * A separate Field instance is required for each different WeekFields;\n * combination of start of week and minimum number of days.\n * Constructors are provided to create fields for DayOfWeek, WeekOfMonth,\n * and WeekOfYear.\n */\nexport class ComputedDayOfField {\n\n /**\n * Returns a field to access the day of week,\n * computed based on a WeekFields.\n * <p>\n * The WeekDefintion of the first day of the week is used with\n * the ISO DAY_OF_WEEK field to compute week boundaries.\n */\n static ofDayOfWeekField(weekDef) {\n return new ComputedDayOfField('DayOfWeek', weekDef,\n ChronoUnit.DAYS, ChronoUnit.WEEKS, DAY_OF_WEEK_RANGE);\n }\n\n /**\n * Returns a field to access the week of month,\n * computed based on a WeekFields.\n * @see WeekFields#weekOfMonth()\n */\n static ofWeekOfMonthField(weekDef) {\n return new ComputedDayOfField('WeekOfMonth', weekDef,\n ChronoUnit.WEEKS, ChronoUnit.MONTHS, WEEK_OF_MONTH_RANGE);\n }\n\n /**\n * Returns a field to access the week of year,\n * computed based on a WeekFields.\n * @see WeekFields#weekOfYear()\n */\n static ofWeekOfYearField(weekDef) {\n return new ComputedDayOfField('WeekOfYear', weekDef,\n ChronoUnit.WEEKS, ChronoUnit.YEARS, WEEK_OF_YEAR_RANGE);\n }\n\n /**\n * Returns a field to access the week of week-based-year,\n * computed based on a WeekFields.\n * @see WeekFields#weekOfWeekBasedYear()\n */\n static ofWeekOfWeekBasedYearField(weekDef) {\n return new ComputedDayOfField('WeekOfWeekBasedYear', weekDef,\n ChronoUnit.WEEKS, IsoFields.WEEK_BASED_YEARS, WEEK_OF_WEEK_BASED_YEAR_RANGE);\n }\n\n /**\n * Returns a field to access the week-based-year,\n * computed based on a WeekFields.\n * @see WeekFields#weekBasedYear()\n */\n static ofWeekBasedYearField(weekDef) {\n return new ComputedDayOfField('WeekBasedYear', weekDef,\n IsoFields.WEEK_BASED_YEARS, ChronoUnit.FOREVER, WEEK_BASED_YEAR_RANGE);\n }\n\n /**\n *@private\n */\n constructor(name, weekDef, baseUnit, rangeUnit, range) {\n this._name = name;\n this._weekDef = weekDef;\n this._baseUnit = baseUnit;\n this._rangeUnit = rangeUnit;\n this._range = range;\n }\n\n getFrom(temporal) {\n // Offset the ISO DOW by the start of this week\n const sow = this._weekDef.firstDayOfWeek().value();\n const dow = this._localizedDayOfWeek(temporal, sow);\n\n if (this._rangeUnit === ChronoUnit.WEEKS) {\n return dow;\n } else if (this._rangeUnit === ChronoUnit.MONTHS) {\n return this._localizedWeekOfMonth(temporal, dow);\n } else if (this._rangeUnit === ChronoUnit.YEARS) {\n return this._localizedWeekOfYear(temporal, dow);\n } else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {\n return this._localizedWOWBY(temporal);\n } else if (this._rangeUnit === ChronoUnit.FOREVER) {\n return this._localizedWBY(temporal);\n } else {\n throw new IllegalStateException('unreachable');\n }\n }\n\n _localizedDayOfWeek(temporal, sow) {\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n return MathUtil.floorMod(isoDow - sow, 7) + 1;\n }\n\n _localizedWeekOfMonth(temporal, dow) {\n const dom = temporal.get(ChronoField.DAY_OF_MONTH);\n const offset = this._startOfWeekOffset(dom, dow);\n return ComputedDayOfField._computeWeek(offset, dom);\n }\n\n _localizedWeekOfYear(temporal, dow) {\n const doy = temporal.get(ChronoField.DAY_OF_YEAR);\n const offset = this._startOfWeekOffset(doy, dow);\n return ComputedDayOfField._computeWeek(offset, doy);\n }\n\n _localizedWOWBY(temporal) {\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const woy = this._localizedWeekOfYear(temporal, dow);\n if (woy === 0) {\n const previous = LocalDate.from(temporal).minus(1, ChronoUnit.WEEKS);\n return this._localizedWeekOfYear(previous, dow) + 1;\n } else if (woy >= 53) {\n const offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);\n const year = temporal.get(ChronoField.YEAR);\n const yearLen = Year.isLeap(year) ? 366 : 365;\n const weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());\n if (woy >= weekIndexOfFirstWeekNextYear) {\n return (woy - (weekIndexOfFirstWeekNextYear - 1));\n }\n }\n return woy;\n }\n\n _localizedWBY(temporal) {\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const year = temporal.get(ChronoField.YEAR);\n const woy = this._localizedWeekOfYear(temporal, dow);\n if (woy === 0) {\n return year - 1;\n } else if (woy < 53) {\n return year;\n }\n const offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);\n const yearLen = Year.isLeap(year) ? 366 : 365;\n const weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());\n if (woy >= weekIndexOfFirstWeekNextYear) {\n return year + 1;\n }\n return year;\n }\n\n /**\n * Returns an offset to align week start with a day of month or day of year.\n *\n * @param day the day; 1 through infinity\n * @param dow the day of the week of that day; 1 through 7\n * @return an offset in days to align a day with the start of the first 'full' week\n */\n _startOfWeekOffset(day, dow) {\n // offset of first day corresponding to the day of week in first 7 days (zero origin)\n const weekStart = MathUtil.floorMod(day - dow, 7);\n let offset = -weekStart;\n if (weekStart + 1 > this._weekDef.minimalDaysInFirstWeek()) {\n // The previous week has the minimum days in the current month to be a 'week'\n offset = 7 - weekStart;\n }\n return offset;\n }\n\n /**\n * Returns the week number computed from the reference day and reference dayOfWeek.\n *\n * @param offset the offset to align a date with the start of week\n * from {@link #startOfWeekOffset}.\n * @param day the day for which to compute the week number\n * @return the week number where zero is used for a partial week and 1 for the first full week\n */\n static _computeWeek(offset, day) {\n return MathUtil.intDiv((7 + offset + (day - 1)), 7);\n }\n\n adjustInto(temporal, newValue) {\n // Check the new value and get the old value of the field\n const newVal = this._range.checkValidIntValue(newValue, this);\n const currentVal = temporal.get(this);\n if (newVal === currentVal) {\n return temporal;\n }\n if (this._rangeUnit === ChronoUnit.FOREVER) {\n // adjust in whole weeks so dow never changes\n const baseWowby = temporal.get(this._weekDef.weekOfWeekBasedYear());\n const diffWeeks = MathUtil.roundDown((newValue - currentVal) * 52.1775);\n let result = temporal.plus(diffWeeks, ChronoUnit.WEEKS);\n if (result.get(this) > newVal) {\n // ended up in later week-based-year\n // move to last week of previous year\n const newWowby = result.get(this._weekDef.weekOfWeekBasedYear());\n result = result.minus(newWowby, ChronoUnit.WEEKS);\n } else {\n if (result.get(this) < newVal) {\n // ended up in earlier week-based-year\n result = result.plus(2, ChronoUnit.WEEKS);\n }\n // reset the week-of-week-based-year\n const newWowby = result.get(this._weekDef.weekOfWeekBasedYear());\n result = result.plus(baseWowby - newWowby, ChronoUnit.WEEKS);\n if (result.get(this) > newVal) {\n result = result.minus(1, ChronoUnit.WEEKS);\n }\n }\n return result;\n }\n // Compute the difference and add that using the base using of the field\n const delta = newVal - currentVal;\n return temporal.plus(delta, this._baseUnit);\n }\n\n resolve(fieldValues, partialTemporal, resolverStyle) {\n const sow = this._weekDef.firstDayOfWeek().value();\n if (this._rangeUnit === ChronoUnit.WEEKS) { // day-of-week\n const value = fieldValues.remove(this);\n const localDow = this._range.checkValidIntValue(value, this);\n const isoDow = MathUtil.floorMod((sow - 1) + (localDow - 1), 7) + 1;\n fieldValues.put(ChronoField.DAY_OF_WEEK, isoDow);\n return null;\n }\n if (fieldValues.containsKey(ChronoField.DAY_OF_WEEK) === false) {\n return null;\n }\n\n // week-based-year\n if (this._rangeUnit === ChronoUnit.FOREVER) {\n if (fieldValues.containsKey(this._weekDef.weekOfWeekBasedYear()) === false) {\n return null;\n }\n // const chrono = IsoChronology.INSTANCE; //TODO: Chronology.from(partialTemporal); // defaults to ISO\n const isoDow = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.get(ChronoField.DAY_OF_WEEK));\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const wby = this.range().checkValidIntValue(fieldValues.get(this), this);\n let date;\n let days;\n if (resolverStyle === ResolverStyle.LENIENT) {\n date = LocalDate.of(wby, 1, this._weekDef.minimalDaysInFirstWeek()); //TODO: chrono.date(wby, 1, this._weekDef.minimalDaysInFirstWeek());\n const wowby = fieldValues.get(this._weekDef.weekOfWeekBasedYear());\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = wowby - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n } else {\n date = LocalDate.of(wby, 1, this._weekDef.minimalDaysInFirstWeek()); //TODO: chrono.date(wby, 1, this._weekDef.minimalDaysInFirstWeek());\n const wowby = this._weekDef.weekOfWeekBasedYear().range().checkValidIntValue(\n fieldValues.get(this._weekDef.weekOfWeekBasedYear()), this._weekDef.weekOfWeekBasedYear);\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = wowby - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n }\n date = date.plus(days, ChronoUnit.DAYS);\n if (resolverStyle === ResolverStyle.STRICT) {\n if (date.getLong(this) !== fieldValues.get(this)) {\n throw new DateTimeException('Strict mode rejected date parsed to a different year');\n }\n }\n fieldValues.remove(this);\n fieldValues.remove(this._weekDef.weekOfWeekBasedYear());\n fieldValues.remove(ChronoField.DAY_OF_WEEK);\n return date;\n }\n\n if (fieldValues.containsKey(ChronoField.YEAR) === false) {\n return null;\n }\n const isoDow = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.get(ChronoField.DAY_OF_WEEK));\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const year = ChronoField.YEAR.checkValidIntValue(fieldValues.get(ChronoField.YEAR));\n // const chrono = IsoChronology.INSTANCE; //TODO: Chronology.from(partialTemporal); // defaults to ISO\n if (this._rangeUnit === ChronoUnit.MONTHS) { // week-of-month\n if (fieldValues.containsKey(ChronoField.MONTH_OF_YEAR) === false) {\n return null;\n }\n const value = fieldValues.remove(this);\n let date;\n let days;\n if (resolverStyle === ResolverStyle.LENIENT) {\n const month = fieldValues.get(ChronoField.MONTH_OF_YEAR);\n date = LocalDate.of(year, 1, 1); // TODO: chrono.date(year, 1, 1);\n date = date.plus(month - 1, ChronoUnit.MONTHS);\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = value - this._localizedWeekOfMonth(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n } else {\n const month = ChronoField.MONTH_OF_YEAR.checkValidIntValue(fieldValues.get(ChronoField.MONTH_OF_YEAR));\n date = LocalDate.of(year, month, 8); // TODO: chrono.date(year, month, 8);\n const dateDow = this._localizedDayOfWeek(date, sow);\n const wom = this._range.checkValidIntValue(value, this);\n const weeks = wom - this._localizedWeekOfMonth(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n }\n date = date.plus(days, ChronoUnit.DAYS);\n if (resolverStyle === ResolverStyle.STRICT) {\n if (date.getLong(ChronoField.MONTH_OF_YEAR) !== fieldValues.get(ChronoField.MONTH_OF_YEAR)) {\n throw new DateTimeException('Strict mode rejected date parsed to a different month');\n }\n }\n fieldValues.remove(this);\n fieldValues.remove(ChronoField.YEAR);\n fieldValues.remove(ChronoField.MONTH_OF_YEAR);\n fieldValues.remove(ChronoField.DAY_OF_WEEK);\n return date;\n } else if (this._rangeUnit === ChronoUnit.YEARS) { // week-of-year\n const value = fieldValues.remove(this);\n let date = LocalDate.of(year, 1, 1); // TODO: chrono.date(year, 1, 1);\n let days;\n if (resolverStyle === ResolverStyle.LENIENT) {\n const dateDow = this._localizedDayOfWeek(date, sow);\n const weeks = value - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n } else {\n const dateDow = this._localizedDayOfWeek(date, sow);\n const woy = this._range.checkValidIntValue(value, this);\n const weeks = woy - this._localizedWeekOfYear(date, dateDow);\n days = weeks * 7 + (dow - dateDow);\n }\n date = date.plus(days, ChronoUnit.DAYS);\n if (resolverStyle === ResolverStyle.STRICT) {\n if (date.getLong(ChronoField.YEAR) !== fieldValues.get(ChronoField.YEAR)) {\n throw new DateTimeException('Strict mode rejected date parsed to a different year');\n }\n }\n fieldValues.remove(this);\n fieldValues.remove(ChronoField.YEAR);\n fieldValues.remove(ChronoField.DAY_OF_WEEK);\n return date;\n } else {\n throw new IllegalStateException('unreachable');\n }\n }\n\n //-----------------------------------------------------------------------\n name() {\n return this._name;\n }\n\n baseUnit() {\n return this._baseUnit;\n }\n\n rangeUnit() {\n return this._rangeUnit;\n }\n\n range() {\n return this._range;\n }\n\n //-----------------------------------------------------------------------\n isDateBased() {\n return true;\n }\n\n isTimeBased() {\n return false;\n }\n\n isSupportedBy(temporal) {\n if (temporal.isSupported(ChronoField.DAY_OF_WEEK)) {\n if (this._rangeUnit === ChronoUnit.WEEKS) {\n return true;\n } else if (this._rangeUnit === ChronoUnit.MONTHS) {\n return temporal.isSupported(ChronoField.DAY_OF_MONTH);\n } else if (this._rangeUnit === ChronoUnit.YEARS) {\n return temporal.isSupported(ChronoField.DAY_OF_YEAR);\n } else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {\n return temporal.isSupported(ChronoField.EPOCH_DAY);\n } else if (this._rangeUnit === ChronoUnit.FOREVER) {\n return temporal.isSupported(ChronoField.EPOCH_DAY);\n }\n }\n return false;\n }\n\n rangeRefinedBy(temporal) {\n if (this._rangeUnit === ChronoUnit.WEEKS) {\n return this._range;\n }\n\n let field = null;\n if (this._rangeUnit === ChronoUnit.MONTHS) {\n field = ChronoField.DAY_OF_MONTH;\n } else if (this._rangeUnit === ChronoUnit.YEARS) {\n field = ChronoField.DAY_OF_YEAR;\n } else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {\n return this._rangeWOWBY(temporal);\n } else if (this._rangeUnit === ChronoUnit.FOREVER) {\n return temporal.range(ChronoField.YEAR);\n } else {\n throw new IllegalStateException('unreachable');\n }\n\n // Offset the ISO DOW by the start of this week\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n\n const offset = this._startOfWeekOffset(temporal.get(field), dow);\n const fieldRange = temporal.range(field);\n return ValueRange.of(ComputedDayOfField._computeWeek(offset, fieldRange.minimum()),\n ComputedDayOfField._computeWeek(offset, fieldRange.maximum()));\n }\n\n _rangeWOWBY(temporal) {\n const sow = this._weekDef.firstDayOfWeek().value();\n const isoDow = temporal.get(ChronoField.DAY_OF_WEEK);\n const dow = MathUtil.floorMod(isoDow - sow, 7) + 1;\n const woy = this._localizedWeekOfYear(temporal, dow);\n if (woy === 0) {\n // TODO: we use IsoChronology for now\n return this._rangeWOWBY(IsoChronology.INSTANCE.date(temporal).minus(2, ChronoUnit.WEEKS));\n // return this._rangeWOWBY(Chronology.from(temporal).date(temporal).minus(2, ChronoUnit.WEEKS));\n }\n const offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);\n const year = temporal.get(ChronoField.YEAR);\n const yearLen = Year.isLeap(year) ? 366 : 365;\n const weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());\n if (woy >= weekIndexOfFirstWeekNextYear) {\n // TODO: we use IsoChronology for now\n return this._rangeWOWBY(IsoChronology.INSTANCE.date(temporal).plus(2, ChronoUnit.WEEKS));\n // return this._rangeWOWBY(Chronology.from(temporal).date(temporal).plus(2, ChronoUnit.WEEKS));\n }\n return ValueRange.of(1, weekIndexOfFirstWeekNextYear - 1);\n }\n\n displayName(locale) {\n requireNonNull(locale, 'locale');\n if (this._rangeUnit === ChronoUnit.YEARS) { // week-of-year\n return 'Week';\n }\n return this.toString();\n }\n\n //-----------------------------------------------------------------------\n toString() {\n return `${this._name}[${this._weekDef.toString()}]`;\n }\n}\n\n/**\n * The cache of rules by firstDayOfWeek plus minimalDays.\n * Initialized first to be available for definition of ISO, etc.\n */\nconst WeekFieldsCache = new Map();\n\n\n/**\n * Localized definitions of the day-of-week, week-of-month and week-of-year fields.\n * <p>\n * A standard week is seven days long, but cultures have different definitions for some\n * other aspects of a week. This class represents the definition of the week, for the\n * purpose of providing {@link TemporalField} instances.\n * <p>\n * WeekFields provides three fields,\n * {@link #dayOfWeek()}, {@link #weekOfMonth()}, and {@link #weekOfYear()}\n * that provide access to the values from any {@link Temporal temporal object}.\n * <p>\n * The computations for day-of-week, week-of-month, and week-of-year are based\n * on the {@link ChronoField#YEAR proleptic-year},\n * {@link ChronoField#MONTH_OF_YEAR month-of-year},\n * {@link ChronoField#DAY_OF_MONTH day-of-month}, and\n * {@link ChronoField#DAY_OF_WEEK ISO day-of-week} which are based on the\n * {@link ChronoField#EPOCH_DAY epoch-day} and the chronology.\n * The values may not be aligned with the {@link ChronoField#YEAR_OF_ERA year-of-Era}\n * depending on the Chronology.\n * <p>A week is defined by:\n * <ul>\n * <li>The first day-of-week.\n * For example, the ISO-8601 standard considers Monday to be the first day-of-week.\n * <li>The minimal number of days in the first week.\n * For example, the ISO-8601 standard counts the first week as needing at least 4 days.\n * </ul><p>\n * Together these two values allow a year or month to be divided into weeks.\n * <p>\n * <h3>Week of Month</h3>\n * One field is used: week-of-month.\n * The calculation ensures that weeks never overlap a month boundary.\n * The month is divided into periods where each period starts on the defined first day-of-week.\n * The earliest period is referred to as week 0 if it has less than the minimal number of days\n * and week 1 if it has at least the minimal number of days.\n * <p>\n * <table cellpadding=\"0\" cellspacing=\"3\" border=\"0\" style=\"text-align: left; width: 50%;\">\n * <caption>Examples of WeekFields</caption>\n * <tr><th>Date</th><td>Day-of-week</td>\n * <td>First day: Monday<br>Minimal days: 4</td><td>First day: Monday<br>Minimal days: 5</td></tr>\n * <tr><th>2008-12-31</th><td>Wednesday</td>\n * <td>Week 5 of December 2008</td><td>Week 5 of December 2008</td></tr>\n * <tr><th>2009-01-01</th><td>Thursday</td>\n * <td>Week 1 of January 2009</td><td>Week 0 of January 2009</td></tr>\n * <tr><th>2009-01-04</th><td>Sunday</td>\n * <td>Week 1 of January 2009</td><td>Week 0 of January 2009</td></tr>\n * <tr><th>2009-01-05</th><td>Monday</td>\n * <td>Week 2 of January 2009</td><td>Week 1 of January 2009</td></tr>\n * </table>\n * <p>\n * <h3>Week of Year</h3>\n * One field is used: week-of-year.\n * The calculation ensures that weeks never overlap a year boundary.\n * The year is divided into periods where each period starts on the defined first day-of-week.\n * The earliest period is referred to as week 0 if it has less than the minimal number of days\n * and week 1 if it has at least the minimal number of days.\n * <p>\n * This class is immutable and thread-safe.\n */\nexport class WeekFields {\n // implementation notes\n // querying week-of-month or week-of-year should return the week value bound within the month/year\n // however, setting the week value should be lenient (use plus/minus weeks)\n // allow week-of-month outer range [0 to 5]\n // allow week-of-year outer range [0 to 53]\n // this is because callers shouldn't be expected to know the details of validity\n\n /**\n * function overloading for {@link WeekFields#of}\n *\n * if called with 1 arguments then {@link WeekFields.ofLocale} is executed.\n *\n * Otherwise {@link WeekFields.ofFirstDayOfWeekMinDays} is executed.\n *\n * @param {!DayOfWeek | Locale} firstDayOrLocale\n * @param {Number} minDays\n * @returns {WeekFields} this for chaining\n */\n static of(firstDayOrLocale, minDays) {\n if (minDays === undefined) {\n return WeekFields.ofLocale(firstDayOrLocale);\n } else {\n return WeekFields.ofFirstDayOfWeekMinDays(firstDayOrLocale, minDays);\n }\n }\n\n /**\n * Obtains an instance of {@code WeekFields} appropriate for a locale.\n * <p>\n * This will look up appropriate values from the provider of localization data.\n *\n * @param {!Locale} locale the locale to use, not null\n * @return the week-definition, not null\n */\n static ofLocale(locale) {\n requireNonNull(locale, 'locale');\n\n Cldr.load(cldrData('supplemental/weekData.json'));\n const cldr = new Cldr(locale.localeString());\n const worldRegion = '001';\n const weekData = cldr.get('supplemental/weekData');\n let dow = _weekDayMap[weekData.firstDay[locale.country()]];\n if (!dow) {\n dow = _weekDayMap[weekData.firstDay[worldRegion]];\n }\n let minDays = weekData.minDays[locale.country()];\n if (!minDays) {\n minDays = weekData.minDays[worldRegion];\n }\n return WeekFields.ofFirstDayOfWeekMinDays(dow, minDays);\n }\n\n /**\n * Obtains an instance of {@code WeekFields} from the first day-of-week and minimal days.\n * <p>\n * The first day-of-week defines the ISO {@code DayOfWeek} that is day 1 of the week.\n * The minimal number of days in the first week defines how many days must be present\n * in a month or year, starting from the first day-of-week, before the week is counted\n * as the first week. A value of 1 will count the first day of the month or year as part\n * of the first week, whereas a value of 7 will require the whole seven days to be in\n * the new month or year.\n * <p>\n * WeekFields instances are singletons; for each unique combination\n * of {@code firstDayOfWeek} and {@code minimalDaysInFirstWeek} the\n * the same instance will be returned.\n *\n * @param {!DayOfWeek} firstDayOfWeek the first day of the week, not null\n * @param {!Number} minimalDaysInFirstWeek the minimal number of days in the first week, from\n * 1 to 7\n * @return {WeekFields} the week-definition, not null\n * @throws IllegalArgumentException if the minimal days value is less than one\n * or greater than 7\n */\n static ofFirstDayOfWeekMinDays(firstDayOfWeek, minimalDaysInFirstWeek) {\n requireNonNull(firstDayOfWeek, 'firstDayOfWeek');\n requireInstance(firstDayOfWeek, DayOfWeek, 'firstDayOfWeek');\n requireNonNull(minimalDaysInFirstWeek, 'minimalDaysInFirstWeek');\n const key = firstDayOfWeek.toString() + minimalDaysInFirstWeek;\n let rules = WeekFieldsCache.get(key);\n if (rules == null) {\n rules = new WeekFields(firstDayOfWeek, minimalDaysInFirstWeek);\n WeekFieldsCache.set(key, rules);\n rules = WeekFieldsCache.get(key);\n }\n return rules;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Creates an instance of the definition.\n *\n * @param {!DayOfWeek} firstDayOfWeek the first day of the week, not null\n * @param {!Number} minimalDaysInFirstWeek the minimal number of days in the first week, from\n * 1 to 7\n * @throws IllegalArgumentException if the minimal days value is invalid\n *\n * @private\n */\n constructor(firstDayOfWeek, minimalDaysInFirstWeek) {\n requireNonNull(firstDayOfWeek, 'firstDayOfWeek');\n requireInstance(firstDayOfWeek, DayOfWeek, 'firstDayOfWeek');\n requireNonNull(minimalDaysInFirstWeek, 'minimalDaysInFirstWeek');\n if (minimalDaysInFirstWeek < 1 || minimalDaysInFirstWeek > 7) {\n throw new IllegalArgumentException('Minimal number of days is invalid');\n }\n this._firstDayOfWeek = firstDayOfWeek;\n this._minimalDays = minimalDaysInFirstWeek;\n this._dayOfWeek = ComputedDayOfField.ofDayOfWeekField(this);\n this._weekOfMonth = ComputedDayOfField.ofWeekOfMonthField(this);\n this._weekOfYear = ComputedDayOfField.ofWeekOfYearField(this);\n this._weekOfWeekBasedYear = ComputedDayOfField.ofWeekOfWeekBasedYearField(this);\n this._weekBasedYear = ComputedDayOfField.ofWeekBasedYearField(this);\n Cldr.load(cldrData('supplemental/likelySubtags.json'));\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the first day-of-week.\n * <p>\n * The first day-of-week varies by culture.\n * For example, the US uses Sunday, while France and the ISO-8601 standard use Monday.\n * This method returns the first day using the standard {@code DayOfWeek} enum.\n *\n * @return {DayOfWeek} the first day-of-week, not null\n */\n firstDayOfWeek() {\n return this._firstDayOfWeek;\n }\n\n /**\n * Gets the minimal number of days in the first week.\n * <p>\n * The number of days considered to define the first week of a month or year\n * varies by culture.\n * For example, the ISO-8601 requires 4 days (more than half a week) to\n * be present before counting the first week.\n *\n * @return {Number} the minimal number of days in the first week of a month or year, from 1 to 7\n */\n minimalDaysInFirstWeek() {\n return this._minimalDays;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Returns a field to access the day of week based on this {@code WeekFields}.\n * <p>\n * This is similar to {@link ChronoField#DAY_OF_WEEK} but uses values for\n * the day-of-week based on this {@code WeekFields}.\n * The days are numbered from 1 to 7 where the\n * {@link #getFirstDayOfWeek() first day-of-week} is assigned the value 1.\n * <p>\n * For example, if the first day-of-week is Sunday, then that will have the\n * value 1, with other days ranging from Monday as 2 to Saturday as 7.\n * <p>\n * In the resolving phase of parsing, a localized day-of-week will be converted\n * to a standardized {@code ChronoField} day-of-week.\n * The day-of-week must be in the valid range 1 to 7.\n * Other fields in this class build dates using the standardized day-of-week.\n *\n * @return {TemporalField} a field providing access to the day-of-week with localized\n * numbering, not null\n */\n dayOfWeek() {\n return this._dayOfWeek;\n }\n\n /**\n * Returns a field to access the week of month based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the count of weeks within the month where weeks\n * start on a fixed day-of-week, such as Monday.\n * This field is typically used with {@link WeekFields#dayOfWeek()}.\n * <p>\n * Week one (1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the month.\n * Thus, week one may start up to {@code minDays} days before the start of the month.\n * If the first week starts after the start of the month then the period before is week zero\n * (0).\n * <p>\n * For example:<br>\n * - if the 1st day of the month is a Monday, week one starts on the 1st and there is no week\n * zero<br>\n * - if the 2nd day of the month is a Monday, week one starts on the 2nd and the 1st is in week\n * zero<br>\n * - if the 4th day of the month is a Monday, week one starts on the 4th and the 1st to 3rd is\n * in week zero<br>\n * - if the 5th day of the month is a Monday, week two starts on the 5th and the 1st to 4th is\n * in week one<br>\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a year,\n * week-of-month, month-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all four fields are\n * validated against their range of valid values. The week-of-month field\n * is validated to ensure that the resulting month is the month requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all four fields are\n * validated against their range of valid values. The week-of-month field\n * is validated from 0 to 6, meaning that the resulting date can be in a\n * different month to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following four stage approach.\n * First, create a date on the first day of the first week of January in the requested year.\n * Then take the month-of-year, subtract one, and add the amount in months to the date.\n * Then take the week-of-month, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-of-month, not null\n */\n weekOfMonth() {\n return this._weekOfMonth;\n }\n\n /**\n * Returns a field to access the week of year based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the count of weeks within the year where weeks\n * start on a fixed day-of-week, such as Monday.\n * This field is typically used with {@link WeekFields#dayOfWeek()}.\n * <p>\n * Week one(1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the year.\n * Thus, week one may start up to {@code minDays} days before the start of the year.\n * If the first week starts after the start of the year then the period before is week zero\n * (0).\n * <p>\n * For example:<br>\n * - if the 1st day of the year is a Monday, week one starts on the 1st and there is no week\n * zero<br>\n * - if the 2nd day of the year is a Monday, week one starts on the 2nd and the 1st is in week\n * zero<br>\n * - if the 4th day of the year is a Monday, week one starts on the 4th and the 1st to 3rd is\n * in week zero<br>\n * - if the 5th day of the year is a Monday, week two starts on the 5th and the 1st to 4th is\n * in week one<br>\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a year,\n * week-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated to ensure that the resulting year is the year requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated from 0 to 54, meaning that the resulting date can be in a\n * different year to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following three stage approach.\n * First, create a date on the first day of the first week in the requested year.\n * Then take the week-of-year, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-of-year, not null\n */\n weekOfYear() {\n return this._weekOfYear;\n }\n\n /**\n * Returns a field to access the week of a week-based-year based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the count of weeks within the year where weeks\n * start on a fixed day-of-week, such as Monday and each week belongs to exactly one year.\n * This field is typically used with {@link WeekFields#dayOfWeek()} and\n * {@link WeekFields#weekBasedYear()}.\n * <p>\n * Week one(1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the year.\n * If the first week starts after the start of the year then the period before\n * is in the last week of the previous year.\n * <p>\n * For example:<br>\n * - if the 1st day of the year is a Monday, week one starts on the 1st<br>\n * - if the 2nd day of the year is a Monday, week one starts on the 2nd and\n * the 1st is in the last week of the previous year<br>\n * - if the 4th day of the year is a Monday, week one starts on the 4th and\n * the 1st to 3rd is in the last week of the previous year<br>\n * - if the 5th day of the year is a Monday, week two starts on the 5th and\n * the 1st to 4th is in week one<br>\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a week-based-year,\n * week-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated to ensure that the resulting week-based-year is the\n * week-based-year requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all three fields are\n * validated against their range of valid values. The week-of-week-based-year field\n * is validated from 1 to 53, meaning that the resulting date can be in the\n * following week-based-year to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following three stage approach.\n * First, create a date on the first day of the first week in the requested week-based-year.\n * Then take the week-of-week-based-year, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-of-week-based-year, not null\n */\n weekOfWeekBasedYear() {\n return this._weekOfWeekBasedYear;\n }\n\n /**\n * Returns a field to access the year of a week-based-year based on this {@code WeekFields}.\n * <p>\n * This represents the concept of the year where weeks start on a fixed day-of-week,\n * such as Monday and each week belongs to exactly one year.\n * This field is typically used with {@link WeekFields#dayOfWeek()} and\n * {@link WeekFields#weekOfWeekBasedYear()}.\n * <p>\n * Week one(1) is the week starting on the {@link WeekFields#firstDayOfWeek}\n * where there are at least {@link WeekFields#getMinimalDaysInFirstWeek()} days in the year.\n * Thus, week one may start before the start of the year.\n * If the first week starts after the start of the year then the period before\n * is in the last week of the previous year.\n * <p>\n * This field can be used with any calendar system.\n * <p>\n * In the resolving phase of parsing, a date can be created from a week-based-year,\n * week-of-year and day-of-week.\n * <p>\n * In {@linkplain ResolverStyle#STRICT strict mode}, all three fields are\n * validated against their range of valid values. The week-of-year field\n * is validated to ensure that the resulting week-based-year is the\n * week-based-year requested.\n * <p>\n * In {@linkplain ResolverStyle#SMART smart mode}, all three fields are\n * validated against their range of valid values. The week-of-week-based-year field\n * is validated from 1 to 53, meaning that the resulting date can be in the\n * following week-based-year to that specified.\n * <p>\n * In {@linkplain ResolverStyle#LENIENT lenient mode}, the year and day-of-week\n * are validated against the range of valid values. The resulting date is calculated\n * equivalent to the following three stage approach.\n * First, create a date on the first day of the first week in the requested week-based-year.\n * Then take the week-of-week-based-year, subtract one, and add the amount in weeks to the date.\n * Finally, adjust to the correct day-of-week within the localized week.\n *\n * @return {TemporalField} a field providing access to the week-based-year, not null\n */\n weekBasedYear() {\n return this._weekBasedYear;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Checks if this {@code WeekFields} is equal to the specified other.\n * <p>\n * The comparison is based on the entire state of the rules, which is\n * the first day-of-week and minimal days.\n *\n * @param {*} other the other rules to compare to, null returns false\n * @return true if this is equal to the specified rules\n */\n equals(other) {\n if (this === other) {\n return true;\n }\n if (other instanceof WeekFields) {\n return this.hashCode() === other.hashCode();\n }\n return false;\n }\n\n /**\n * A hash code for this {@code WeekFields}.\n *\n * @return a suitable hash code\n */\n hashCode() {\n return this._firstDayOfWeek.ordinal() * 7 + this._minimalDays;\n }\n\n //-----------------------------------------------------------------------\n /**\n * A string representation of this {@code WeekFields} instance.\n *\n * @return the string representation, not null\n */\n toString() {\n return `WeekFields[${this._firstDayOfWeek},${this._minimalDays}]`;\n }\n\n}\n\nexport function _init() {\n /**\n * The ISO-8601 definition, where a week starts on Monday and the first week\n * has a minimum of 4 days.\n * <p>\n * The ISO-8601 standard defines a calendar system based on weeks.\n * It uses the week-based-year and week-of-week-based-year concepts to split\n * up the passage of days instead of the standard year/month/day.\n * <p>\n * Note that the first week may start in the previous calendar year.\n * Note also that the first few days of a calendar year may be in the\n * week-based-year corresponding to the previous calendar year.\n */\n WeekFields.ISO = WeekFields.of(DayOfWeek.MONDAY, 4);\n\n /**\n * The common definition of a week that starts on Sunday.\n * <p>\n * Defined as starting on Sunday and with a minimum of 1 day in the month.\n * This week definition is in use in the US and other European countries.\n *\n */\n WeekFields.SUNDAY_START = WeekFields.of(DayOfWeek.SUNDAY, 1);\n\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport { _ as jodaInternal, DateTimeFormatterBuilder, SignStyle } from '@js-joda/core';\n\nimport { WeekFields } from '../../temporal/WeekFields';\n\nconst { StringBuilder } = jodaInternal;\n\nexport default class WeekFieldsPrinterParser {\n constructor(letter, count) {\n this._letter = letter;\n this._count = count;\n }\n\n print(context, buf) {\n const weekFields = WeekFields.of(context.locale());\n const pp = this._evaluate(weekFields);\n return pp.print(context, buf);\n }\n\n parse(context, text, position) {\n const weekFields = WeekFields.of(context.locale());\n const pp = this._evaluate(weekFields);\n return pp.parse(context, text, position);\n }\n\n _evaluate(weekFields) {\n let pp = null;\n switch (this._letter) {\n case 'e': // day-of-week\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.dayOfWeek(), this._count, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'c': // day-of-week\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.dayOfWeek(), this._count, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'w': // week-of-year\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekOfWeekBasedYear(), this._count, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'W': // week-of-month\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekOfMonth(), 1, 2, SignStyle.NOT_NEGATIVE);\n break;\n case 'Y': // weekyear\n if (this._count === 2) {\n pp = new DateTimeFormatterBuilder.ReducedPrinterParser(weekFields.weekBasedYear(), 2, 2, 0, DateTimeFormatterBuilder.ReducedPrinterParser.BASE_DATE);\n } else {\n pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekBasedYear(), this._count, 19,\n (this._count < 4) ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD, -1);\n }\n break;\n }\n return pp;\n }\n\n toString() {\n const sb = new StringBuilder(30);\n sb.append('Localized(');\n if (this._letter === 'Y') {\n if (this._count === 1) {\n sb.append('WeekBasedYear');\n } else if (this._count === 2) {\n sb.append('ReducedValue(WeekBasedYear,2,2,2000-01-01)');\n } else {\n sb.append('WeekBasedYear,').append(this._count).append(',')\n .append(19).append(',')\n .append((this._count < 4) ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD);\n }\n } else {\n if (this._letter === 'c' || this._letter === 'e') {\n sb.append('DayOfWeek');\n } else if (this._letter === 'w') {\n sb.append('WeekOfWeekBasedYear');\n } else if (this._letter === 'W') {\n sb.append('WeekOfMonth');\n }\n sb.append(',');\n sb.append(this._count);\n }\n sb.append(')');\n return sb.toString();\n }\n}\n","/**\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeFormatterBuilder,\n IllegalArgumentException,\n TextStyle,\n ChronoField,\n TemporalField\n} from '@js-joda/core';\n\nimport TextPrinterParser from '../parser/TextPrinterParser';\nimport CldrDateTimeTextProvider from './CldrDateTimeTextProvider';\nimport CldrZoneTextPrinterParser from './CldrZoneTextPrinterParser';\nimport { LocaleStore } from '../LocaleStore';\nimport LocalizedOffsetPrinterParser from '../parser/LocalizedOffsetPrinterParser';\nimport WeekFieldsPrinterParser from '../parser/WeekFieldsPrinterParser';\n\nconst { assert: { requireNonNull, requireInstance } } = jodaInternal;\n\n/** DateTimeFormatterBuilder extension functions implementing locale handling using cldr data (http://cldr.unicode.org/)\n */\nexport default class CldrDateTimeFormatterBuilder extends DateTimeFormatterBuilder {\n\n //-------------------------------------------------------------------------\n /**\n * function overloading for {@link CldrDateTimeFormatterBuilder#appendText}\n *\n * if called with 1 arguments and first argument is an instance of ChronoField,\n * then {@link CldrDateTimeFormatterBuilder.appendTextField} is executed.\n * if called with 2 arguments and second argument is an instance of TextStyle,\n * then {@link CldrDateTimeFormatterBuilder.appendTextFieldStyle} is executed.\n *\n * Otherwise {@link CldrDateTimeFormatterBuilder.appendTextFieldMap} is executed.\n *\n * @param {!ChronoField} field\n * @param {!(TextStyle|Object)} styleOrMap\n * @returns {DateTimeFormatterBuilder} this for chaining\n */\n appendText(field, styleOrMap) {\n if (styleOrMap === undefined) {\n return this.appendTextField(field);\n } else if (styleOrMap instanceof TextStyle) {\n return this.appendTextFieldStyle(field, styleOrMap);\n } else {\n return this.appendTextFieldMap(field, styleOrMap);\n }\n }\n\n /**\n * Appends the text of a date-time field to the formatter using the full\n * text style.\n * <p>\n * The text of the field will be output during a print.\n * The value must be within the valid range of the field.\n * If the value cannot be obtained then an exception will be thrown.\n * If the field has no textual representation, then the numeric value will be used.\n * <p>\n * The value will be printed as per the normal print of an integer value.\n * Only negative numbers will be signed. No padding will be added.\n *\n * @param {!TemporalField} field the field to append, not null\n * @return {DateTimeFormatterBuilder} this, for chaining, not null\n */\n appendTextField(field) {\n return this.appendTextFieldStyle(field, TextStyle.FULL);\n }\n\n /**\n * Appends the text of a date-time field to the formatter.\n * <p>\n * The text of the field will be output during a print.\n * The value must be within the valid range of the field.\n * If the value cannot be obtained then an exception will be thrown.\n * If the field has no textual representation, then the numeric value will be used.\n * <p>\n * The value will be printed as per the normal print of an integer value.\n * Only negative numbers will be signed. No padding will be added.\n *\n * @param {!TemporalField} field the field to append, not null\n * @param {!TextStyle} textStyle the text style to use, not null\n * @return {DateTimeFormatterBuilder} this, for chaining, not null\n */\n appendTextFieldStyle(field, textStyle) {\n requireNonNull(field, 'field');\n requireInstance(field, TemporalField, 'field');\n requireNonNull(textStyle, 'textStyle');\n requireInstance(textStyle, TextStyle, 'textStyle');\n this._appendInternal(new TextPrinterParser(field, textStyle, new CldrDateTimeTextProvider()));\n return this;\n }\n\n /**\n * Appends the text of a date-time field to the formatter using the specified\n * map to supply the text.\n * <p>\n * The standard text outputting methods use the localized text in the JDK.\n * This method allows that text to be specified directly.\n * The supplied map is not validated by the builder to ensure that printing or\n * parsing is possible, thus an invalid map may throw an error during later use.\n * <p>\n * Supplying the map of text provides considerable flexibility in printing and parsing.\n * For example, a legacy application might require or supply the months of the\n * year as \"JNY\", \"FBY\", \"MCH\" etc. These do not match the standard set of text\n * for localized month names. Using this method, a map can be created which\n * defines the connection between each value and the text:\n * <pre>\n * Map&lt;Long, String&gt; map = new HashMap&lt;&gt;();\n * map.put(1, \"JNY\");\n * map.put(2, \"FBY\");\n * map.put(3, \"MCH\");\n * ...\n * builder.appendText(MONTH_OF_YEAR, map);\n * </pre>\n * <p>\n * Other uses might be to output the value with a suffix, such as \"1st\", \"2nd\", \"3rd\",\n * or as Roman numerals \"I\", \"II\", \"III\", \"IV\".\n * <p>\n * During printing, the value is obtained and checked that it is in the valid range.\n * If text is not available for the value then it is output as a number.\n * During parsing, the parser will match against the map of text and numeric values.\n *\n * @param {!ChronoField} field the field to append, not null\n * @param {!Object} textLookup the map from the value to the text\n * @return {DateTimeFormatterBuilder} this, for chaining, not null\n */\n appendTextFieldMap(field, textLookup) {\n requireNonNull(field, 'field');\n requireInstance(field, ChronoField, 'field');\n requireNonNull(textLookup, 'textLookup');\n const copy = { ...textLookup };\n const map = {};\n map[TextStyle.FULL] = copy;\n const store = new LocaleStore(map);\n const provider = {\n getText: function(field, value, style) {\n return store.getText(value, style);\n },\n getTextIterator: function(field, style) {\n return store.getTextIterator(style);\n }\n };\n this._appendInternal(new TextPrinterParser(field, TextStyle.FULL, provider));\n return this;\n }\n\n appendWeekField(field, count) {\n requireNonNull(field, 'field');\n requireNonNull(count, 'count');\n this._appendInternal(new WeekFieldsPrinterParser(field, count));\n return this;\n }\n\n /**\n * Appends the time-zone name, such as 'British Summer Time', to the formatter.\n * <p>\n * This appends an instruction to print the textual name of the zone to the builder.\n * <p>\n * During printing, the zone is obtained using a mechanism equivalent\n * to querying the temporal with {@link TemporalQueries#zoneId()}.\n * If the zone is a {@code ZoneOffset} it will be printed using the\n * result of {@link ZoneOffset#getId()}.\n * If the zone is not an offset, the textual name will be looked up\n * for the locale set in the {@link DateTimeFormatter}.\n * If the temporal object being printed represents an instant, then the text\n * will be the summer or winter time text as appropriate.\n * If the lookup for text does not find any suitable reuslt, then the\n * {@link ZoneId#getId() ID} will be printed instead.\n * If the zone cannot be obtained then an exception is thrown unless the\n * section of the formatter is optional.\n * <p>\n * Parsing is not currently supported.\n *\n * @param {!TextStyle} textStyle the text style to use, not null\n * @return this, for chaining, not null\n */\n appendZoneText(textStyle) {\n this._appendInternal(new CldrZoneTextPrinterParser(textStyle));\n return this;\n }\n\n /**\n * Appends the localized zone offset, such as 'GMT+01:00', to the formatter.\n * <p>\n * This appends a localized zone offset to the builder, the format of the\n * localized offset is controlled by the specified {@link FormatStyle style}\n * to this method:\n * <ul>\n * <li>{@link TextStyle#FULL full} - formats with localized offset text, such\n * as 'GMT, 2-digit hour and minute field, optional second field if non-zero,\n * and colon.\n * <li>{@link TextStyle#SHORT short} - formats with localized offset text,\n * such as 'GMT, hour without leading zero, optional 2-digit minute and\n * second if non-zero, and colon.\n * </ul>\n * <p>\n * During formatting, the offset is obtained using a mechanism equivalent\n * to querying the temporal with {@link TemporalQueries#offset()}.\n * If the offset cannot be obtained then an exception is thrown unless the\n * section of the formatter is optional.\n * <p>\n * During parsing, the offset is parsed using the format defined above.\n * If the offset cannot be parsed then an exception is thrown unless the\n * section of the formatter is optional.\n * <p>\n * @param {TextStyle} textStyle the format style to use, not null\n * @return this, for chaining, not null\n * @throws IllegalArgumentException if style is neither {@link TextStyle#FULL\n * full} nor {@link TextStyle#SHORT short}\n */\n appendLocalizedOffset(textStyle) {\n requireNonNull(textStyle, 'textStyle');\n if (textStyle !== TextStyle.FULL && textStyle !== TextStyle.SHORT) {\n throw new IllegalArgumentException('Style must be either full or short');\n }\n this._appendInternal(new LocalizedOffsetPrinterParser(textStyle));\n return this;\n }\n\n //-----------------------------------------------------------------------\n\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport CldrDateTimeTextProvider from './format/cldr/CldrDateTimeTextProvider';\n\nexport default class Locale {\n static getAvailableLocales() {\n return new CldrDateTimeTextProvider().getAvailableLocales();\n }\n\n // TODO: maybe use new Cldr(<'en'>) constructor instead?\n // see https://github.com/rxaviers/cldrjs#instantiate-a-locale-and-get-it-normalized\n constructor(language, country = '', localeString = '') {\n this._language = language;\n this._country = country;\n this._localeString = localeString;\n }\n\n language() {\n return this._language;\n }\n\n country() {\n return this._country;\n }\n\n localeString() {\n if (this._localeString.length > 0) {\n return this._localeString;\n }\n if (this._country.length > 0) {\n return `${this._language}-${this._country}`;\n } else {\n return this._language;\n }\n }\n\n toString() {\n return `Locale[${this.localeString()}]`;\n }\n\n equals(other) {\n if (!other) {\n return false;\n }\n if (!(other instanceof Locale)) {\n return false;\n }\n return this.localeString() === other.localeString();\n }\n}\n\nexport function _init() {\n //some samples/consts\n Locale.ENGLISH = new Locale('en');\n Locale.US = new Locale('en', 'US', 'en'); // default in cldr-data, no en-US\n Locale.UK = new Locale('en', 'GB');\n Locale.CANADA = new Locale('en', 'CA');\n Locale.FRENCH = new Locale('fr');\n Locale.FRANCE = new Locale('fr', 'FR', 'fr'); // default in cldr-data, no fr-FR\n Locale.GERMAN = new Locale('de');\n Locale.GERMANY = new Locale('de', 'DE', 'de'); // default in cldr-data, no de-DE\n Locale.KOREAN = new Locale('ko');\n Locale.JAPANESE = new Locale('ja', 'JP');\n Locale.JAPAN = new Locale('ja', 'JP', 'ja');\n Locale.ITALIAN = new Locale('it');\n Locale.ITALY = new Locale('it', 'IT', 'it');\n Locale.CHINESE = new Locale('zh');\n Locale.ROMANIAN = new Locale('ro');\n Locale.SWEDISH = new Locale('sv');\n Locale.SWEDEN = new Locale('sv', 'SE', 'sv');\n Locale.HINDI = new Locale('hi');\n Locale.RUSSIAN = new Locale('ru');\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\nimport {\n _ as jodaInternal,\n DateTimeFormatter,\n ChronoField,\n ResolverStyle,\n IsoChronology,\n} from '@js-joda/core';\n// eslint-disable-next-line no-unused-vars\nimport Locale from '../Locale';\nimport CldrDateTimeFormatterBuilder from './cldr/CldrDateTimeFormatterBuilder';\n\nconst { assert: { requireNonNull } } = jodaInternal;\n\nexport default class LocaleDateTimeFormatter extends DateTimeFormatter {\n\n /**\n * Returns a copy of this formatter with a new locale.\n * <p>\n * This is used to lookup any part of the formatter needing specific\n * localization, such as the text or localized pattern.\n * <p>\n * This instance is immutable and unaffected by this method call.\n *\n * @param {!Locale} locale the new locale, not null\n * @return a formatter based on this formatter with the requested locale, not null\n */\n withLocale(locale) {\n requireNonNull(locale, 'locale');\n if (locale.equals(this._locale)) {\n return this;\n }\n return new DateTimeFormatter(this._printerParser, locale, this._decimalStyle, this._resolverStyle, this._resolverFields, this._chrono, this._zone);\n }\n}\n\nexport function _init() {\n const dow = {\n 1: 'Mon',\n 2: 'Tue',\n 3: 'Wed',\n 4: 'Thu',\n 5: 'Fri',\n 6: 'Sat',\n 7: 'Sun',\n };\n\n const moy = {\n 1: 'Jan',\n 2: 'Feb',\n 3: 'Mar',\n 4: 'Apr',\n 5: 'May',\n 6: 'Jun',\n 7: 'Jul',\n 8: 'Aug',\n 9: 'Sep',\n 10: 'Oct',\n 11: 'Nov',\n 12: 'Dec',\n };\n\n LocaleDateTimeFormatter.RFC_1123_DATE_TIME = new CldrDateTimeFormatterBuilder()\n .parseCaseInsensitive()\n .parseLenient()\n .optionalStart()\n .appendText(ChronoField.DAY_OF_WEEK, dow)\n .appendLiteral(', ')\n .optionalEnd()\n .appendValue(ChronoField.DAY_OF_MONTH, 2)\n .appendLiteral(' ')\n .appendText(ChronoField.MONTH_OF_YEAR, moy)\n .appendLiteral(' ')\n .appendValue(ChronoField.YEAR, 4) // 2 digit year not handled\n .appendLiteral(' ')\n .appendValue(ChronoField.HOUR_OF_DAY, 2)\n .appendLiteral(':')\n .appendValue(ChronoField.MINUTE_OF_HOUR, 2)\n .optionalStart()\n .appendLiteral(':')\n .appendValue(ChronoField.SECOND_OF_MINUTE, 2)\n .optionalEnd()\n .appendLiteral(' ')\n .appendZoneId()\n .toFormatter(ResolverStyle.SMART).withChronology(IsoChronology.INSTANCE);\n}\n","/*\n * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { _init as localeInit } from './Locale';\nimport { _init as weekFieldsInit } from './temporal/WeekFields';\nimport { _init as dateTimeFormatterInit } from './format/LocaleDateTimeFormatter';\n\nlet isInit = false;\n\nfunction init() {\n /* istanbul ignore if */\n if (isInit) {\n return;\n }\n\n isInit = true;\n\n localeInit();\n weekFieldsInit();\n dateTimeFormatterInit();\n}\n\ninit();\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\n\n/* eslint-disable no-param-reassign */\n\nimport CldrDateTimeFormatterBuilder from './format/cldr/CldrDateTimeFormatterBuilder';\nimport LocaleDateTimeFormatter from './format/LocaleDateTimeFormatter';\n\nimport './_init';\n\n/**\n * @private\n *\n * plugin Function, call using js-jodas use()\n *\n * @param jsJoda\n */\nexport default function (jsJoda) {\n // inject all prototype properties (except constructor) from CldrDateTimeFormatterBuilder into DateTimeFormatterBuilder\n Object.getOwnPropertyNames(CldrDateTimeFormatterBuilder.prototype).forEach((prop) => {\n if (prop !== 'constructor') {\n jsJoda.DateTimeFormatterBuilder.prototype[prop] = CldrDateTimeFormatterBuilder.prototype[prop];\n }\n });\n // inject all prototype properties (except constructor) from LocaleDateTimeFormatter into DateTimeFormatter\n Object.getOwnPropertyNames(LocaleDateTimeFormatter.prototype).forEach((prop) => {\n if (prop !== 'constructor') {\n jsJoda.DateTimeFormatter.prototype[prop] = LocaleDateTimeFormatter.prototype[prop];\n }\n });\n // copy statics manually\n jsJoda.DateTimeFormatter.RFC_1123_DATE_TIME = LocaleDateTimeFormatter.RFC_1123_DATE_TIME;\n}\n","/*\n * @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper\n * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)\n */\nimport { use } from '@js-joda/core';\nimport plug from './plug';\nimport Locale from './Locale';\nimport { WeekFields } from './temporal/WeekFields';\n\nuse(plug);\n\nexport {\n Locale,\n WeekFields\n};\n"],"names":["TextPrinterParser","field","textStyle","provider","_field","_textStyle","_provider","_proto","prototype","print","context","buf","value","getValue","text","getText","locale","_numberPrinterParser","append","parse","parseText","position","length","IllegalArgumentException","style","isStrict","it","getTextIterator","_iterator","_createForOfIteratorHelperLoose","_step","done","entry","itText","key","subSequenceEquals","setParsedField","_currentNumberPrinterParser","DateTimeFormatterBuilder","NumberPrinterParser","SignStyle","NORMAL","toString","TextStyle","FULL","createEntry","_comparator","obj1","obj2","LocaleStore","valueTextMap","_valueTextMap","map","allList","Object","keys","forEach","reverse","list","undefined","parseInt","push","sort","concat","_parsable","Symbol","iterator","cldrDataLoaded","Set","loadCldrData","path","has","Cldr","load","cldrData","add","localeToCldrInstanceCache","getOrCreateCldrInstance","localeToMapZonesCache","getOrCreateMapZones","cldr","mapZones","get","metaZone","mapZone","_other","_territory","_type","CldrDateTimeTextProvider","_cache","getAvailableLocales","availableLocales","store","_findStore","_createStore","localeString","ChronoField","MONTH_OF_YEAR","monthsData","main","styleMap","data","wide","narrow","NARROW","abbreviated","SHORT","_createLocaleStore","DAY_OF_WEEK","daysData","mon","tue","wed","thu","fri","sat","sun","AMPM_OF_DAY","dayPeriodsData","am","pm","ERA","erasData","eraNames","eraNarrow","eraAbbr","IsoFields","QUARTER_OF_YEAR","quartersData","FULL_STANDALONE","SHORT_STANDALONE","indexOf","NARROW_STANDALONE","_jodaInternal$assert","jodaInternal","assert","requireNonNull","requireInstance","LENGTH_COMPARATOR","str1","str2","cmp","localeCompare","resolveZoneIdTextCache","CldrZoneTextPrinterParser","_zoneIdsLocales","_cachedResolveZoneIdText","zoneId","type","zoneIdToStyle","styleToType","typeToResolvedZoneIdText","_resolveZoneIdText","zoneData","metazoneInfo","metazone","metaZoneData","preferredZone","attributes","territory","goldenZone","zone","getValueQuery","TemporalQueries","normalized","ZoneOffset","id","tzType","tzstyle","asNormal","_resolveZoneIds","localString","ids","ZoneRulesProvider","getAvailableZoneIds","genericText","standardText","daylightText","sortedKeys","_i","_arr","name","setParsedZone","ZoneId","of","_this$_resolveZoneIds","_iterator2","_step2","MathUtil","LocalizedOffsetPrinterParser","offsetSecs","OFFSET_SECONDS","OffsetIdPrinterParser","totalSecs","safeToInt","absHours","Math","abs","intMod","intDiv","absMinutes","absSeconds","end","sign","charAt","negative","ch","hour","offset","min","sec","DAY_OF_WEEK_RANGE","ValueRange","WEEK_OF_MONTH_RANGE","WEEK_OF_YEAR_RANGE","WEEK_OF_WEEK_BASED_YEAR_RANGE","WEEK_BASED_YEAR_RANGE","YEAR","range","_weekDayMap","DayOfWeek","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY","ComputedDayOfField","ofDayOfWeekField","weekDef","ChronoUnit","DAYS","WEEKS","ofWeekOfMonthField","MONTHS","ofWeekOfYearField","YEARS","ofWeekOfWeekBasedYearField","WEEK_BASED_YEARS","ofWeekBasedYearField","FOREVER","baseUnit","rangeUnit","_name","_weekDef","_baseUnit","_rangeUnit","_range","getFrom","temporal","sow","firstDayOfWeek","dow","_localizedDayOfWeek","_localizedWeekOfMonth","_localizedWeekOfYear","_localizedWOWBY","_localizedWBY","IllegalStateException","isoDow","floorMod","dom","DAY_OF_MONTH","_startOfWeekOffset","_computeWeek","doy","DAY_OF_YEAR","woy","previous","LocalDate","from","minus","year","yearLen","Year","isLeap","weekIndexOfFirstWeekNextYear","minimalDaysInFirstWeek","day","weekStart","adjustInto","newValue","newVal","checkValidIntValue","currentVal","baseWowby","weekOfWeekBasedYear","diffWeeks","roundDown","result","plus","newWowby","delta","resolve","fieldValues","partialTemporal","resolverStyle","remove","localDow","put","containsKey","wby","date","days","ResolverStyle","LENIENT","wowby","dateDow","weeks","STRICT","getLong","DateTimeException","month","wom","isDateBased","isTimeBased","isSupportedBy","isSupported","EPOCH_DAY","rangeRefinedBy","_rangeWOWBY","fieldRange","minimum","maximum","IsoChronology","INSTANCE","displayName","WeekFieldsCache","Map","WeekFields","firstDayOrLocale","minDays","ofLocale","ofFirstDayOfWeekMinDays","worldRegion","weekData","firstDay","country","rules","set","_firstDayOfWeek","_minimalDays","_dayOfWeek","_weekOfMonth","_weekOfYear","_weekOfWeekBasedYear","_weekBasedYear","_proto2","dayOfWeek","weekOfMonth","weekOfYear","weekBasedYear","equals","other","hashCode","ordinal","_init","ISO","SUNDAY_START","StringBuilder","WeekFieldsPrinterParser","letter","count","_letter","_count","weekFields","pp","_evaluate","NOT_NEGATIVE","ReducedPrinterParser","BASE_DATE","EXCEEDS_PAD","sb","CldrDateTimeFormatterBuilder","_DateTimeFormatterBui","_inheritsLoose","apply","arguments","appendText","styleOrMap","appendTextField","appendTextFieldStyle","appendTextFieldMap","TemporalField","_appendInternal","textLookup","copy","_extends","appendWeekField","appendZoneText","appendLocalizedOffset","Locale","language","_language","_country","_localeString","ENGLISH","US","UK","CANADA","FRENCH","FRANCE","GERMAN","GERMANY","KOREAN","JAPANESE","JAPAN","ITALIAN","ITALY","CHINESE","ROMANIAN","SWEDISH","SWEDEN","HINDI","RUSSIAN","LocaleDateTimeFormatter","_DateTimeFormatter","withLocale","_locale","DateTimeFormatter","_printerParser","_decimalStyle","_resolverStyle","_resolverFields","_chrono","_zone","moy","RFC_1123_DATE_TIME","parseCaseInsensitive","parseLenient","optionalStart","appendLiteral","optionalEnd","appendValue","HOUR_OF_DAY","MINUTE_OF_HOUR","SECOND_OF_MINUTE","appendZoneId","toFormatter","SMART","withChronology","isInit","init","localeInit","weekFieldsInit","dateTimeFormatterInit","jsJoda","getOwnPropertyNames","prop","use","plug"],"mappings":"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"}