@amcharts/amcharts5 5.1.4 → 5.1.5

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 (172) hide show
  1. package/.internal/charts/flow/Chord.d.ts.map +1 -1
  2. package/.internal/charts/flow/Chord.js +7 -0
  3. package/.internal/charts/flow/Chord.js.map +1 -1
  4. package/.internal/charts/flow/Flow.d.ts +11 -0
  5. package/.internal/charts/flow/Flow.d.ts.map +1 -1
  6. package/.internal/charts/flow/Flow.js +17 -5
  7. package/.internal/charts/flow/Flow.js.map +1 -1
  8. package/.internal/charts/flow/SankeyLink.d.ts +2 -0
  9. package/.internal/charts/flow/SankeyLink.d.ts.map +1 -1
  10. package/.internal/charts/flow/SankeyLink.js +8 -0
  11. package/.internal/charts/flow/SankeyLink.js.map +1 -1
  12. package/.internal/charts/hierarchy/ForceDirected.d.ts.map +1 -1
  13. package/.internal/charts/hierarchy/ForceDirected.js +1 -2
  14. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  15. package/.internal/charts/map/MapSeries.d.ts.map +1 -1
  16. package/.internal/charts/map/MapSeries.js +7 -1
  17. package/.internal/charts/map/MapSeries.js.map +1 -1
  18. package/.internal/charts/radar/RadarCursor.d.ts.map +1 -1
  19. package/.internal/charts/radar/RadarCursor.js +6 -0
  20. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  21. package/.internal/charts/xy/XYChart.d.ts +2 -2
  22. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  23. package/.internal/charts/xy/XYChart.js +25 -21
  24. package/.internal/charts/xy/XYChart.js.map +1 -1
  25. package/.internal/charts/xy/XYCursor.d.ts +7 -1
  26. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  27. package/.internal/charts/xy/XYCursor.js +7 -1
  28. package/.internal/charts/xy/XYCursor.js.map +1 -1
  29. package/.internal/charts/xy/axes/Axis.d.ts +1 -1
  30. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  31. package/.internal/charts/xy/axes/Axis.js +20 -6
  32. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  33. package/.internal/charts/xy/axes/DateAxis.d.ts +1 -1
  34. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  35. package/.internal/charts/xy/axes/DateAxis.js +12 -11
  36. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  37. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +1 -0
  38. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  39. package/.internal/charts/xy/axes/GaplessDateAxis.js +21 -39
  40. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  41. package/.internal/core/render/Scrollbar.d.ts +2 -0
  42. package/.internal/core/render/Scrollbar.d.ts.map +1 -1
  43. package/.internal/core/render/Scrollbar.js +10 -1
  44. package/.internal/core/render/Scrollbar.js.map +1 -1
  45. package/.internal/core/render/Sprite.d.ts.map +1 -1
  46. package/.internal/core/render/Sprite.js +2 -1
  47. package/.internal/core/render/Sprite.js.map +1 -1
  48. package/.internal/core/util/DateFormatter.js +1 -1
  49. package/.internal/core/util/DateFormatter.js.map +1 -1
  50. package/.internal/core/util/Modal.d.ts.map +1 -1
  51. package/.internal/core/util/Modal.js +5 -3
  52. package/.internal/core/util/Modal.js.map +1 -1
  53. package/CHANGELOG.md +34 -11
  54. package/examples/javascript/flow-chord/package.json +1 -1
  55. package/examples/javascript/flow-chord-directed/package.json +1 -1
  56. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  57. package/examples/javascript/flow-sankey/package.json +1 -1
  58. package/examples/javascript/gauge/package.json +1 -1
  59. package/examples/javascript/gauge-bands/package.json +1 -1
  60. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  61. package/examples/javascript/hierarchy-pack/package.json +1 -1
  62. package/examples/javascript/hierarchy-partition/package.json +1 -1
  63. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  64. package/examples/javascript/hierarchy-tree/package.json +1 -1
  65. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  66. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  67. package/examples/javascript/map-day-and-night/package.json +1 -1
  68. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  69. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  70. package/examples/javascript/map-with-bubbles/package.json +1 -1
  71. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  72. package/examples/javascript/misc-40-charts/package.json +1 -1
  73. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  74. package/examples/javascript/pie-chart/package.json +1 -1
  75. package/examples/javascript/pie-donut-chart/package.json +1 -1
  76. package/examples/javascript/pie-variable-radius/package.json +1 -1
  77. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  78. package/examples/javascript/radar-heat-map/package.json +1 -1
  79. package/examples/javascript/radar-line/package.json +1 -1
  80. package/examples/javascript/radar-time-line/package.json +1 -1
  81. package/examples/javascript/sliced-funnel/package.json +1 -1
  82. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  83. package/examples/javascript/sliced-pyramid/package.json +1 -1
  84. package/examples/javascript/venn-diagram/package.json +1 -1
  85. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  86. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  87. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  88. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  89. package/examples/javascript/xy-bubble/package.json +1 -1
  90. package/examples/javascript/xy-candlestick/package.json +1 -1
  91. package/examples/javascript/xy-clustered-column/package.json +1 -1
  92. package/examples/javascript/xy-column/package.json +1 -1
  93. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  94. package/examples/javascript/xy-data-grouping/package.json +1 -1
  95. package/examples/javascript/xy-draggable-range/package.json +1 -1
  96. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  97. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  98. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  99. package/examples/javascript/xy-line/package.json +1 -1
  100. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  101. package/examples/javascript/xy-live-data/package.json +1 -1
  102. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  103. package/examples/javascript/xy-ohlc/package.json +1 -1
  104. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  105. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  106. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  107. package/examples/javascript/xy-stacked-column/package.json +1 -1
  108. package/examples/javascript/xy-stacked-step/package.json +1 -1
  109. package/examples/javascript/xy-stock/index.js +1 -1
  110. package/examples/javascript/xy-stock/package.json +1 -1
  111. package/examples/javascript/xy-stock-comparing/index.js +1 -1
  112. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  113. package/examples/typescript/flow-chord/package.json +1 -1
  114. package/examples/typescript/flow-chord-directed/package.json +1 -1
  115. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  116. package/examples/typescript/flow-sankey/package.json +1 -1
  117. package/examples/typescript/gauge/package.json +1 -1
  118. package/examples/typescript/gauge-bands/package.json +1 -1
  119. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  120. package/examples/typescript/hierarchy-pack/package.json +1 -1
  121. package/examples/typescript/hierarchy-partition/package.json +1 -1
  122. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  123. package/examples/typescript/hierarchy-tree/package.json +1 -1
  124. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  125. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  126. package/examples/typescript/map-day-and-night/package.json +1 -1
  127. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  128. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  129. package/examples/typescript/map-with-bubbles/package.json +1 -1
  130. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  131. package/examples/typescript/misc-40-charts/package.json +1 -1
  132. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  133. package/examples/typescript/pie-chart/package.json +1 -1
  134. package/examples/typescript/pie-donut-chart/package.json +1 -1
  135. package/examples/typescript/pie-variable-radius/package.json +1 -1
  136. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  137. package/examples/typescript/radar-heat-map/package.json +1 -1
  138. package/examples/typescript/radar-line/package.json +1 -1
  139. package/examples/typescript/radar-time-line/package.json +1 -1
  140. package/examples/typescript/sliced-funnel/package.json +1 -1
  141. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  142. package/examples/typescript/sliced-pyramid/package.json +1 -1
  143. package/examples/typescript/venn-diagram/package.json +1 -1
  144. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  145. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  146. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  147. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  148. package/examples/typescript/xy-bubble/package.json +1 -1
  149. package/examples/typescript/xy-candlestick/package.json +1 -1
  150. package/examples/typescript/xy-clustered-column/package.json +1 -1
  151. package/examples/typescript/xy-column/package.json +1 -1
  152. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  153. package/examples/typescript/xy-data-grouping/package.json +1 -1
  154. package/examples/typescript/xy-draggable-range/package.json +1 -1
  155. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  156. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  157. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  158. package/examples/typescript/xy-line/package.json +1 -1
  159. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  160. package/examples/typescript/xy-live-data/package.json +1 -1
  161. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  162. package/examples/typescript/xy-ohlc/package.json +1 -1
  163. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  164. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  165. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  166. package/examples/typescript/xy-stacked-column/package.json +1 -1
  167. package/examples/typescript/xy-stacked-step/package.json +1 -1
  168. package/examples/typescript/xy-stock/index.ts +1 -1
  169. package/examples/typescript/xy-stock/package.json +1 -1
  170. package/examples/typescript/xy-stock-comparing/index.ts +1 -1
  171. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  172. package/package.json +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DateFormatter.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/DateFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ILocaleSettings } from \"./Language\"\n\nimport { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport { TextFormatter } from \"./TextFormatter\"\n\nimport * as $type from \"./Type\"\nimport * as $utils from \"./Utils\";\n\n/**\n * Interface describing parsed date format definition.\n *\n * @ignore\n */\nexport interface DateFormatInfo {\n\t\"template\": string;\n\t\"parts\": any[];\n}\n\nexport interface IDateFormatterSettings extends IEntitySettings {\n\n\t/**\n\t * Should the first letter of the formatted date be capitalized?\n\t *\n\t * @default true\n\t */\n\tcapitalize?: boolean;\n\n\t/**\n\t * A date format to be used when formatting dates.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tdateFormat?: string | Intl.DateTimeFormatOptions;\n\n\t/**\n\t * An array of data fields that hold date values and should be formatted\n\t * with a [[DateFormatter]].\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/data-placeholders/#Formatting_placeholders} for more info\n\t */\n\tdateFields?: string[];\n\n\t/**\n\t * Locales to use when formatting using `Intl.DateFormatter`.\n\t */\n\tintlLocales?: string;\n\n}\n\nexport interface IDateFormatterPrivate extends IEntityPrivate {\n}\n\ntype Months = \"January\" | \"February\" | \"March\" | \"April\" | \"May\" | \"June\" | \"July\" | \"August\" | \"September\" | \"October\" | \"November\" | \"December\";\ntype ShortMonths = \"Jan\" | \"Feb\" | \"Mar\" | \"Apr\" | \"May(short)\" | \"Jun\" | \"Jul\" | \"Aug\" | \"Sep\" | \"Oct\" | \"Nov\" | \"Dec\";\ntype Weekdays = \"Sunday\" | \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"Saturday\";\ntype ShortWeekdays = \"Sun\" | \"Mon\" | \"Tue\" | \"Wed\" | \"Thu\" | \"Fri\" | \"Sat\";\n\nexport class DateFormatter extends Entity {\n\tdeclare public _settings: IDateFormatterSettings;\n\tdeclare public _privateSettings: IDateFormatterPrivate;\n\n\tprotected _setDefaults() {\n\t\t// Defaults\n\t\tthis._setDefault(\"capitalize\", true);\n\t\tthis._setDefault(\"dateFormat\", \"yyyy-MM-dd\");\n\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\t}\n\n\tpublic format(source: any, format?: string | Intl.DateTimeFormatOptions): string {\n\n\t\t// Locale?\n\t\t// TODO\n\n\t\t// No format passed in or it's empty\n\t\tif (typeof format === \"undefined\" || format === \"\") {\n\t\t\tformat = this.get(\"dateFormat\", \"yyyy-MM-dd\");\n\t\t}\n\n\t\t// Init return value\n\t\tlet formatted;\n\n\t\t// Cast?\n\t\t// TODO: decide if we need to cast\n\t\tlet date: Date = source;\n\n\t\t// Is it a built-in format or Intl.DateTimeFormat\n\t\tif ($type.isObject(format)) {\n\n\t\t\ttry {\n\t\t\t\tconst locales = this.get(\"intlLocales\");\n\t\t\t\tif (locales) {\n\t\t\t\t\treturn new Intl.DateTimeFormat(locales, <Intl.DateTimeFormatOptions>format).format(date);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn new Intl.DateTimeFormat(undefined, <Intl.DateTimeFormatOptions>format).format(date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\treturn \"Invalid\";\n\t\t\t}\n\n\t\t}\n\n\t\t// get format info (it will also deal with parser caching)\n\t\tlet info = this.parseFormat(format);\n\n\t\t// Should we apply custom time zone?\n\t\tconst timezone = this._root.timezone;\n\t\tif (timezone && !this._root.utc) {\n\t\t\tdate = timezone.convertLocal(date);\n\t\t}\n\n\n\t\t// Check if it's a valid date\n\t\tif (!$type.isNumber(date.getTime())) {\n\t\t\t// TODO translation\n\t\t\t//return this._t(\"Invalid date\");\n\t\t\treturn \"Invalid date\";\n\t\t}\n\n\t\t// Apply format\n\t\tformatted = this.applyFormat(date, info);\n\n\t\t// Capitalize\n\t\tif (this.get(\"capitalize\")) {\n\t\t\tformatted = formatted.replace(\n\t\t\t\t/^.{1}/, formatted.substr(0, 1).toUpperCase()\n\t\t\t);\n\t\t}\n\n\t\t// We're done\n\t\treturn formatted;\n\t}\n\n\t/**\n\t * Applies format to Date.\n\t *\n\t * @param date Date object\n\t * @param info Parsed format information\n\t * @return Formatted date string\n\t */\n\tprotected applyFormat(date: Date, info: DateFormatInfo): string {\n\n\t\t// Init return value\n\t\tlet res = info.template;\n\n\t\t// Get values\n\t\tlet fullYear: number,\n\t\t\tmonth: number,\n\t\t\tweekday: number,\n\t\t\tday: number,\n\t\t\thours: number,\n\t\t\tminutes: number,\n\t\t\tseconds: number,\n\t\t\tmilliseconds: number,\n\t\t\toffset: number = date.getTimezoneOffset(),\n\t\t\ttimestamp: number = date.getTime();\n\t\tif (this._root.utc) {\n\t\t\tfullYear = date.getUTCFullYear();\n\t\t\tmonth = date.getUTCMonth();\n\t\t\tweekday = date.getUTCDay();\n\t\t\tday = date.getUTCDate();\n\t\t\thours = date.getUTCHours();\n\t\t\tminutes = date.getUTCMinutes();\n\t\t\tseconds = date.getUTCSeconds();\n\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t}\n\t\telse {\n\t\t\tfullYear = date.getFullYear();\n\t\t\tmonth = date.getMonth();\n\t\t\tweekday = date.getDay();\n\t\t\tday = date.getDate();\n\t\t\thours = date.getHours();\n\t\t\tminutes = date.getMinutes();\n\t\t\tseconds = date.getSeconds();\n\t\t\tmilliseconds = date.getMilliseconds();\n\t\t}\n\n\t\t// Go through each part and format/replace it in template\n\t\tfor (let i = 0, len = info.parts.length; i < len; i++) {\n\t\t\tlet value: string = \"\";\n\t\t\tswitch (info.parts[i]) {\n\n\t\t\t\tcase \"G\":\n\t\t\t\t\tvalue = this._t(\n\t\t\t\t\t\tfullYear < 0\n\t\t\t\t\t\t\t? \"_era_bc\"\n\t\t\t\t\t\t\t: \"_era_ad\"\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yyyy\":\n\t\t\t\t\tvalue = Math.abs(fullYear).toString();\n\t\t\t\t\tif (fullYear < 0) {\n\t\t\t\t\t\tvalue += this._t(\"_era_bc\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yyy\":\n\t\t\t\tcase \"yy\":\n\t\t\t\tcase \"y\":\n\t\t\t\t\tvalue = Math.abs(fullYear).toString().substr(-info.parts[i].length);\n\t\t\t\t\tif (fullYear < 0) {\n\t\t\t\t\t\tvalue += this._t(\"_era_bc\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"YYYY\":\n\t\t\t\tcase \"YYY\":\n\t\t\t\tcase \"YY\":\n\t\t\t\tcase \"Y\":\n\t\t\t\t\tlet week = $utils.getWeek(date);\n\t\t\t\t\tlet year = fullYear;\n\t\t\t\t\tif (week == 1 && (weekday > 4)) {\n\t\t\t\t\t\tyear--;\n\t\t\t\t\t}\n\t\t\t\t\tif (info.parts[i] == \"YYYY\") {\n\t\t\t\t\t\tvalue = Math.abs(year).toString();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = Math.abs(year).toString().substr(-info.parts[i].length);\n\t\t\t\t\t}\n\t\t\t\t\tif (year < 0) {\n\t\t\t\t\t\tvalue += this._t(\"_era_bc\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"u\":\n\t\t\t\t\t// @todo\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"q\":\n\t\t\t\t\tvalue = \"\" + Math.ceil((date.getMonth() + 1) / 3);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMMMM\":\n\t\t\t\t\tvalue = this._t(this._getMonth(month)).substr(0, 1);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMMM\":\n\t\t\t\t\tvalue = this._t(this._getMonth(month));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMM\":\n\t\t\t\t\tvalue = this._t(this._getShortMonth(month));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MM\":\n\t\t\t\t\tvalue = $utils.padString(month + 1, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"M\":\n\t\t\t\t\tvalue = (month + 1).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ww\":\n\t\t\t\t\tvalue = $utils.padString($utils.getWeek(date, this._root.utc), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"w\":\n\t\t\t\t\tvalue = $utils.getWeek(date, this._root.utc).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"W\":\n\t\t\t\t\tvalue = $utils.getMonthWeek(date, this._root.utc).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"dd\":\n\t\t\t\t\tvalue = $utils.padString(day, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"d\":\n\t\t\t\t\tvalue = day.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"DD\":\n\t\t\t\tcase \"DDD\":\n\t\t\t\t\tvalue = $utils.padString($utils.getYearDay(date, this._root.utc).toString(), info.parts[i].length, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"D\":\n\t\t\t\t\tvalue = $utils.getYearDay(date, this._root.utc).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"F\":\n\t\t\t\t\t// @todo\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"g\":\n\t\t\t\t\t// @todo\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"t\":\n\t\t\t\t\tvalue = this._root.language.translateFunc(\"_dateOrd\").call(this, day);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"E\":\n\t\t\t\t\tvalue = (weekday || 7).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EE\":\n\t\t\t\t\tvalue = $utils.padString((weekday || 7).toString(), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EEE\":\n\t\t\t\tcase \"eee\":\n\t\t\t\t\tvalue = this._t(this._getShortWeekday(weekday));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EEEE\":\n\t\t\t\tcase \"eeee\":\n\t\t\t\t\tvalue = this._t(this._getShortWeekday(weekday));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EEEEE\":\n\t\t\t\tcase \"eeeee\":\n\t\t\t\t\tvalue = this._t(this._getShortWeekday(weekday)).substr(0, 1);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"e\":\n\t\t\t\tcase \"ee\":\n\t\t\t\t\tvalue = (weekday - (this._root.locale.firstDayOfWeek || 1) + 1).toString();\n\t\t\t\t\tif (info.parts[i] == \"ee\") {\n\t\t\t\t\t\tvalue = $utils.padString(value, 2, \"0\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif (hours >= 12) {\n\t\t\t\t\t\tvalue = this._t(\"PM\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = this._t(\"AM\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"aa\":\n\t\t\t\t\tif (hours >= 12) {\n\t\t\t\t\t\tvalue = this._t(\"P.M.\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = this._t(\"A.M.\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"aaa\":\n\t\t\t\t\tif (hours >= 12) {\n\t\t\t\t\t\tvalue = this._t(\"P\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = this._t(\"A\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"h\":\n\t\t\t\t\tvalue = $utils.get12Hours(hours).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"hh\":\n\t\t\t\t\tvalue = $utils.padString($utils.get12Hours(hours), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"H\":\n\t\t\t\t\tvalue = hours.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"HH\":\n\t\t\t\t\tvalue = $utils.padString(hours, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"K\":\n\t\t\t\t\tvalue = $utils.get12Hours(hours, 0).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"KK\":\n\t\t\t\t\tvalue = $utils.padString($utils.get12Hours(hours, 0), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"k\":\n\t\t\t\t\tvalue = (hours + 1).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"kk\":\n\t\t\t\t\tvalue = $utils.padString(hours + 1, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"m\":\n\t\t\t\t\tvalue = minutes.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"mm\":\n\t\t\t\t\tvalue = $utils.padString(minutes, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"s\":\n\t\t\t\t\tvalue = seconds.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ss\":\n\t\t\t\t\tvalue = $utils.padString(seconds, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"S\":\n\t\t\t\tcase \"SS\":\n\t\t\t\tcase \"SSS\":\n\t\t\t\t\tvalue = Math.round((milliseconds / 1000) * Math.pow(10, info.parts[i].length)).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"x\":\n\t\t\t\t\tvalue = timestamp.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"n\":\n\t\t\t\tcase \"nn\":\n\t\t\t\tcase \"nnn\":\n\t\t\t\t\tvalue = $utils.padString(milliseconds, info.parts[i].length, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"z\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, false, false, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"zz\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, true, false, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"zzz\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, false, true, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"zzzz\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, true, true, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Z\":\n\t\t\t\tcase \"ZZ\":\n\t\t\t\t\tlet tz = Math.abs(offset) / 60;\n\t\t\t\t\tlet tzh = Math.floor(tz);\n\t\t\t\t\tlet tzm = tz * 60 - tzh * 60;\n\n\t\t\t\t\tif (this._root.utc) {\n\t\t\t\t\t\ttzh = 0;\n\t\t\t\t\t\ttzm = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (info.parts[i] == \"Z\") {\n\t\t\t\t\t\tvalue = \"GMT\";\n\t\t\t\t\t\tvalue += offset > 0 ? \"-\" : \"+\";\n\t\t\t\t\t\tvalue += $utils.padString(tzh, 2) + \":\" + $utils.padString(tzm, 2);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = offset > 0 ? \"-\" : \"+\";\n\t\t\t\t\t\tvalue += $utils.padString(tzh, 2) + $utils.padString(tzm, 2);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"i\":\n\t\t\t\t\tvalue = date.toISOString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"I\":\n\t\t\t\t\tvalue = date.toUTCString();\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\t\t\tres = res.replace($type.PLACEHOLDER, value);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * Parses format into structured infromation.\n\t *\n\t * @param format Format template\n\t */\n\tprotected parseFormat(format: string): DateFormatInfo {\n\n\t\t// Check cache\n\t\t// TODO: implement caching of the parsed format\n\n\t\t// Init format parse info holder\n\t\tlet info: DateFormatInfo = {\n\t\t\t\"template\": \"\",\n\t\t\t\"parts\": <any>[]\n\t\t};\n\n\t\t// Let TextFormatter split into chunks\n\t\tlet chunks = TextFormatter.chunk(format, true);\n\t\tfor (let i: number = 0; i < chunks.length; i++) {\n\t\t\tlet chunk = chunks[i];\n\n\t\t\tif (chunk.type === \"value\") {\n\n\t\t\t\t// Just \"Date\"?\n\t\t\t\tif (chunk.text.match(/^date$/i)) {\n\t\t\t\t\tlet dateFormat = this.get(\"dateFormat\", \"yyyy-MM-dd\");\n\t\t\t\t\tif (!$type.isString(dateFormat)) {\n\t\t\t\t\t\tdateFormat = \"yyyy-MM-dd\";\n\t\t\t\t\t}\n\t\t\t\t\tchunk.text = dateFormat;\n\t\t\t\t}\n\n\t\t\t\t// Find all possible parts\n\t\t\t\tlet matches = chunk.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|q|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g);\n\n\t\t\t\t// Found?\n\t\t\t\tif (matches) {\n\n\t\t\t\t\t// Populate template\n\t\t\t\t\tfor (let x = 0; x < matches.length; x++) {\n\t\t\t\t\t\tinfo.parts.push(matches[x]);\n\t\t\t\t\t\tchunk.text = chunk.text.replace(matches[x], $type.PLACEHOLDER);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Apply to template\n\t\t\tinfo.template += chunk.text;\n\t\t}\n\n\t\t// Save cache\n\t\t// TODO\n\n\t\treturn info;\n\t}\n\n\tprotected _months(): Months[] {\n\t\treturn [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\t}\n\n\tprotected _getMonth(index: number): Months {\n\t\treturn this._months()[index];\n\t}\n\n\tprotected _shortMonths(): ShortMonths[] {\n\t\treturn [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May(short)\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\t}\n\n\tprotected _getShortMonth(index: number): ShortMonths {\n\t\treturn this._shortMonths()[index];\n\t}\n\n\tprotected _weekdays(): Weekdays[] {\n\t\treturn [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n\t}\n\n\tprotected _getWeekday(index: number): Weekdays {\n\t\treturn this._weekdays()[index];\n\t}\n\n\tprotected _shortWeekdays(): ShortWeekdays[] {\n\t\treturn [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\t}\n\n\tprotected _getShortWeekday(index: number): ShortWeekdays {\n\t\treturn this._shortWeekdays()[index];\n\t}\n\n\tpublic parse(source: any, format: string): Date {\n\n\t\t// Is it already a Date\n\t\tif (source instanceof Date) {\n\t\t\treturn source;\n\t\t}\n\n\t\t// Is it a numeric timestamp\n\t\tif ($type.isNumber(source)) {\n\t\t\treturn new Date(source);\n\t\t}\n\n\t\t// No? Let's check if it's string, and try converting to it if nec\n\t\tif (!$type.isString(source)) {\n\t\t\tsource = source.toString();\n\t\t}\n\n\t\t// Init return value\n\t\tlet res: Date;\n\n\t\t// Init RegEx for parsing\n\t\tlet reg: string = \"\";\n\n\t\t// Clean format\n\t\tformat = $utils.cleanFormat(format);\n\n\t\t// Clip format to length of the source string\n\t\tformat = format.substr(0, source.length);\n\n\t\t// Parse format\n\t\tlet info = this.parseFormat(format);\n\n\t\t// Init parsed items holder\n\t\tlet parsedIndexes = {\n\t\t\t\"year\": -1,\n\t\t\t\"year3\": -1,\n\t\t\t\"year2\": -1,\n\t\t\t\"year1\": -1,\n\t\t\t\"month\": -1,\n\t\t\t\"monthShort\": -1,\n\t\t\t\"monthLong\": -1,\n\t\t\t\"weekdayShort\": -1,\n\t\t\t\"weekdayLong\": -1,\n\t\t\t\"day\": -1,\n\t\t\t\"yearDay\": -1,\n\t\t\t\"week\": -1,\n\t\t\t\"hourBase0\": -1,\n\t\t\t\"hour12Base0\": -1,\n\t\t\t\"hourBase1\": -1,\n\t\t\t\"hour12Base1\": -1,\n\t\t\t\"minute\": -1,\n\t\t\t\"second\": -1,\n\t\t\t\"millisecond\": -1,\n\t\t\t\"millisecondDigits\": -1,\n\t\t\t\"am\": -1,\n\t\t\t\"zone\": -1,\n\t\t\t\"timestamp\": -1,\n\t\t\t\"iso\": -1\n\t\t};\n\n\t\t// Init values\n\t\tlet resValues = {\n\t\t\t\"year\": 1970,\n\t\t\t\"month\": 0,\n\t\t\t\"day\": 1,\n\t\t\t\"hour\": 0,\n\t\t\t\"minute\": 0,\n\t\t\t\"second\": 0,\n\t\t\t\"millisecond\": 0,\n\t\t\t\"timestamp\": <any>null,\n\t\t\t\"offset\": 0,\n\t\t\t\"utc\": this._root.utc\n\t\t}\n\n\t\t// Index adjuster\n\t\tlet indexAdjust: number = 0;\n\t\tlet index: number = 0;\n\n\t\t// Iterate through all of the parts\n\t\tfor (let i: number = 0; i < info.parts.length; i++) {\n\n\t\t\t// Set current match index\n\t\t\tindex = i + indexAdjust + 1;\n\n\t\t\tswitch (info.parts[i]) {\n\n\t\t\t\tcase \"yyyy\":\n\t\t\t\tcase \"YYYY\":\n\t\t\t\t\treg += \"([0-9]{4})\";\n\t\t\t\t\tparsedIndexes.year = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yyy\":\n\t\t\t\tcase \"YYY\":\n\t\t\t\t\treg += \"([0-9]{3})\";\n\t\t\t\t\tparsedIndexes.year3 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yy\":\n\t\t\t\tcase \"YY\":\n\t\t\t\t\treg += \"([0-9]{2})\";\n\t\t\t\t\tparsedIndexes.year2 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"y\":\n\t\t\t\tcase \"Y\":\n\t\t\t\t\treg += \"([0-9]{1})\";\n\t\t\t\t\tparsedIndexes.year1 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMMM\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._months()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.monthLong = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMM\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._shortMonths()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.monthShort = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MM\":\n\t\t\t\tcase \"M\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.month = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ww\":\n\t\t\t\tcase \"w\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.week = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"dd\":\n\t\t\t\tcase \"d\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.day = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"DDD\":\n\t\t\t\tcase \"DD\":\n\t\t\t\tcase \"D\":\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.yearDay = index;\n\t\t\t\t\tbreak;\n\n\n\t\t\t\tcase \"dddd\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._weekdays()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.weekdayLong = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ddd\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._shortWeekdays()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.weekdayShort = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"aaa\":\n\t\t\t\tcase \"aa\":\n\t\t\t\tcase \"a\":\n\t\t\t\t\t// TODO: fix (escape regex)\n\t\t\t\t\treg += \"(\" + this.getStringList([\"AM\", \"PM\", \"A\\.M\\.\", \"P\\.M\\.\", \"A\", \"P\"]).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.am = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"hh\":\n\t\t\t\tcase \"h\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hour12Base1 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"HH\":\n\t\t\t\tcase \"H\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hourBase0 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"KK\":\n\t\t\t\tcase \"K\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hour12Base0 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"kk\":\n\t\t\t\tcase \"k\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hourBase1 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"mm\":\n\t\t\t\tcase \"m\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.minute = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ss\":\n\t\t\t\tcase \"s\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.second = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"SSS\":\n\t\t\t\tcase \"SS\":\n\t\t\t\tcase \"S\":\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.millisecond = index;\n\t\t\t\t\tparsedIndexes.millisecondDigits = info.parts[i].length;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"nnn\":\n\t\t\t\tcase \"nn\":\n\t\t\t\tcase \"n\":\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.millisecond = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"x\":\n\t\t\t\t\treg += \"([0-9]{1,})\";\n\t\t\t\t\tparsedIndexes.timestamp = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Z\":\n\t\t\t\t\treg += \"GMT([-+]+[0-9]{2}:[0-9]{2})\";\n\t\t\t\t\tparsedIndexes.zone = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ZZ\":\n\t\t\t\t\treg += \"([\\\\-+]+[0-9]{2}[0-9]{2})\";\n\t\t\t\t\tparsedIndexes.zone = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"i\":\n\t\t\t\t\treg += \"([0-9]{4})-?([0-9]{2})-?([0-9]{2})T?([0-9]{2}):?([0-9]{2}):?([0-9]{2})\\.?([0-9]{0,3})([zZ]|[+\\-][0-9]{2}:?[0-9]{2}|$)\";\n\t\t\t\t\tparsedIndexes.iso = index;\n\t\t\t\t\tindexAdjust += 7;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"G\":\n\t\t\t\tcase \"YYYY\":\n\t\t\t\tcase \"YYY\":\n\t\t\t\tcase \"YY\":\n\t\t\t\tcase \"Y\":\n\t\t\t\tcase \"MMMMM\":\n\t\t\t\tcase \"W\":\n\t\t\t\tcase \"EEEEE\":\n\t\t\t\tcase \"EEEE\":\n\t\t\t\tcase \"EEE\":\n\t\t\t\tcase \"EE\":\n\t\t\t\tcase \"E\":\n\t\t\t\tcase \"eeeee\":\n\t\t\t\tcase \"eeee\":\n\t\t\t\tcase \"eee\":\n\t\t\t\tcase \"ee\":\n\t\t\t\tcase \"e\":\n\t\t\t\tcase \"zzzz\":\n\t\t\t\tcase \"zzz\":\n\t\t\t\tcase \"zz\":\n\t\t\t\tcase \"z\":\n\t\t\t\tcase \"t\":\n\t\t\t\t\t// Ignore\n\t\t\t\t\tindexAdjust--;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treg += \"[^0-9]*\";\n\t\t}\n\n\t\t// Try matching\n\t\tlet regex = new RegExp(reg);\n\t\tlet matches: RegExpMatchArray = source.match(regex);\n\n\t\tif (matches) {\n\t\t\t// Populate the date object\n\n\t\t\t// Full year\n\t\t\tif (parsedIndexes.year > -1) {\n\t\t\t\tresValues.year = parseInt(matches[parsedIndexes.year]);\n\t\t\t}\n\n\t\t\t// 3-digit year\n\t\t\tif (parsedIndexes.year3 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year3]);\n\t\t\t\tval += 1000;\n\t\t\t\tresValues.year = val;\n\t\t\t}\n\n\t\t\t// 2-digit year\n\t\t\tif (parsedIndexes.year2 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year2]);\n\t\t\t\tif (val > 50) {\n\t\t\t\t\tval += 1000;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tval += 2000;\n\t\t\t\t}\n\t\t\t\tresValues.year = val;\n\t\t\t}\n\n\t\t\t// 1-digit year\n\t\t\tif (parsedIndexes.year1 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year1]);\n\t\t\t\tval = Math.floor((new Date().getFullYear()) / 10) * 10 + val;\n\t\t\t\tresValues.year = val;\n\t\t\t}\n\n\t\t\t// Full month\n\t\t\tif (parsedIndexes.monthLong > -1) {\n\t\t\t\tresValues.month = this.resolveMonth(<any>matches[parsedIndexes.monthLong]);\n\t\t\t}\n\n\t\t\t// Short month\n\t\t\tif (parsedIndexes.monthShort > -1) {\n\t\t\t\tresValues.month = this.resolveShortMonth(<any>matches[parsedIndexes.monthShort]);\n\t\t\t}\n\n\t\t\t// Numeric month\n\t\t\tif (parsedIndexes.month > -1) {\n\t\t\t\tresValues.month = parseInt(matches[parsedIndexes.month]) - 1;\n\t\t\t}\n\n\t\t\t// Weekday\n\t\t\t// @todo\n\n\t\t\t// Week\n\t\t\tif ((parsedIndexes.week > -1) && (parsedIndexes.day === -1)) {\n\t\t\t\t// We parse weeks ONLY if day is not explicitly set\n\t\t\t\t// TODO: this needs work\n\t\t\t\t// (but maybe later - I can hardly imagine anyone passing their dates in weeks)\n\t\t\t\tresValues.month = 0;\n\t\t\t\tresValues.day = $utils.getDayFromWeek(\n\t\t\t\t\tparseInt(matches[parsedIndexes.week]),\n\t\t\t\t\tresValues.year,\n\t\t\t\t\t1,\n\t\t\t\t\tthis._root.utc\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Day\n\t\t\tif (parsedIndexes.day > -1) {\n\t\t\t\tresValues.day = parseInt(matches[parsedIndexes.day]);\n\t\t\t}\n\n\t\t\t// Year day\n\t\t\tif (parsedIndexes.yearDay > -1) {\n\t\t\t\tresValues.month = 0;\n\t\t\t\tresValues.day = parseInt(matches[parsedIndexes.yearDay]);\n\t\t\t}\n\n\t\t\t// 24 Hour (0-23)\n\t\t\tif (parsedIndexes.hourBase0 > -1) {\n\t\t\t\tresValues.hour = parseInt(matches[parsedIndexes.hourBase0]);\n\t\t\t}\n\n\t\t\t// 24 Hour (1-24)\n\t\t\tif (parsedIndexes.hourBase1 > -1) {\n\t\t\t\tresValues.hour = parseInt(matches[parsedIndexes.hourBase1]) - 1;\n\t\t\t}\n\n\t\t\t// 12 Hour (0-11)\n\t\t\tif (parsedIndexes.hour12Base0 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.hour12Base0]);\n\t\t\t\tif (val == 11) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tif ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\n\t\t\t\t\tval += 12;\n\t\t\t\t}\n\t\t\t\tresValues.hour = val;\n\t\t\t}\n\n\t\t\t// 12 Hour (1-12)\n\t\t\tif (parsedIndexes.hour12Base1 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.hour12Base1]);\n\t\t\t\tif (val == 12) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tif ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\n\t\t\t\t\tval += 12;\n\t\t\t\t}\n\t\t\t\tresValues.hour = val;\n\t\t\t}\n\n\t\t\t// Minute\n\t\t\tif (parsedIndexes.minute > -1) {\n\t\t\t\tresValues.minute = parseInt(matches[parsedIndexes.minute]);\n\t\t\t}\n\n\t\t\t// Second\n\t\t\tif (parsedIndexes.second > -1) {\n\t\t\t\tresValues.second = parseInt(matches[parsedIndexes.second]);\n\t\t\t}\n\n\t\t\t// Millisecond\n\t\t\tif (parsedIndexes.millisecond > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.millisecond]);\n\t\t\t\tif (parsedIndexes.millisecondDigits == 2) {\n\t\t\t\t\tval *= 10;\n\t\t\t\t}\n\t\t\t\telse if (parsedIndexes.millisecondDigits == 1) {\n\t\t\t\t\tval *= 100;\n\t\t\t\t}\n\t\t\t\tresValues.millisecond = val;\n\t\t\t}\n\n\t\t\t// Timestamp\n\t\t\tif (parsedIndexes.timestamp > -1) {\n\t\t\t\tresValues.timestamp = parseInt(matches[parsedIndexes.timestamp]);\n\n\t\t\t\tconst ts = new Date(resValues.timestamp);\n\t\t\t\tresValues.year = ts.getUTCFullYear();\n\t\t\t\tresValues.month = ts.getUTCMonth();\n\t\t\t\tresValues.day = ts.getUTCDate();\n\t\t\t\tresValues.hour = ts.getUTCHours();\n\t\t\t\tresValues.minute = ts.getUTCMinutes();\n\t\t\t\tresValues.second = ts.getUTCSeconds();\n\t\t\t\tresValues.millisecond = ts.getUTCMilliseconds();\n\t\t\t}\n\n\t\t\t// Adjust time zone\n\t\t\tif (parsedIndexes.zone > -1) {\n\t\t\t\tresValues.offset = this.resolveTimezoneOffset(new Date(resValues.year, resValues.month, resValues.day), matches[parsedIndexes.zone]);\n\t\t\t}\n\n\t\t\t// ISO\n\t\t\tif (parsedIndexes.iso > -1) {\n\n\t\t\t\tresValues.year = $type.toNumber(matches[parsedIndexes.iso + 0]);\n\t\t\t\tresValues.month = $type.toNumber(matches[parsedIndexes.iso + 1]) - 1;\n\t\t\t\tresValues.day = $type.toNumber(matches[parsedIndexes.iso + 2]);\n\t\t\t\tresValues.hour = $type.toNumber(matches[parsedIndexes.iso + 3]);\n\t\t\t\tresValues.minute = $type.toNumber(matches[parsedIndexes.iso + 4]);\n\t\t\t\tresValues.second = $type.toNumber(matches[parsedIndexes.iso + 5]);\n\t\t\t\tresValues.millisecond = $type.toNumber(matches[parsedIndexes.iso + 6]);\n\n\t\t\t\tif (matches[parsedIndexes.iso + 7] == \"Z\" || matches[parsedIndexes.iso + 7] == \"z\") {\n\t\t\t\t\tresValues.utc = true;\n\t\t\t\t}\n\t\t\t\telse if (matches[parsedIndexes.iso + 7] != \"\") {\n\t\t\t\t\tresValues.offset = this.resolveTimezoneOffset(new Date(resValues.year, resValues.month, resValues.day), matches[parsedIndexes.iso + 7]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Create Date object\n\t\t\tif (resValues.utc) {\n\t\t\t\tres = new Date(Date.UTC(\n\t\t\t\t\tresValues.year,\n\t\t\t\t\tresValues.month,\n\t\t\t\t\tresValues.day,\n\t\t\t\t\tresValues.hour,\n\t\t\t\t\tresValues.minute,\n\t\t\t\t\tresValues.second,\n\t\t\t\t\tresValues.millisecond\n\t\t\t\t));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tres = new Date(\n\t\t\t\t\tresValues.year,\n\t\t\t\t\tresValues.month,\n\t\t\t\t\tresValues.day,\n\t\t\t\t\tresValues.hour,\n\t\t\t\t\tresValues.minute + resValues.offset,\n\t\t\t\t\tresValues.second,\n\t\t\t\t\tresValues.millisecond\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\t// Didn't match anything\n\t\t\t// Let's try dropping it into Date constructor and hope for the best\n\t\t\tres = new Date(source);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tprotected resolveTimezoneOffset(date: Date, zone: string): number {\n\t\tlet value = zone.match(/([+\\-]?)([0-9]{2}):?([0-9]{2})/);\n\t\tif (value) {\n\t\t\tlet match = zone.match(/([+\\-]?)([0-9]{2}):?([0-9]{2})/)!;\n\t\t\tlet dir = match[1];\n\t\t\tlet hour = match[2];\n\t\t\tlet minute = match[3];\n\t\t\tlet offset = parseInt(hour) * 60 + parseInt(minute);\n\n\t\t\t// Adjust offset\n\t\t\t// Making it negative does not seem to make sense, but it's right\n\t\t\t// because of how JavaScript calculates GMT offsets\n\t\t\tif (dir == \"+\") {\n\t\t\t\toffset *= -1;\n\t\t\t}\n\n\t\t\t// Check the difference in offset\n\t\t\tlet originalOffset = (date || new Date()).getTimezoneOffset();\n\t\t\tlet diff = offset - originalOffset;\n\t\t\treturn diff;\n\t\t}\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Resolves month name (i.e. \"December\") into a month number (11).\n\t *\n\t * @param value Month name\n\t * @return Month number\n\t */\n\tprotected resolveMonth(value: Months): number {\n\n\t\t// Let's try English first\n\t\tlet month: number = this._months().indexOf(value);\n\t\tif (month > -1) {\n\t\t\treturn month;\n\t\t}\n\n\t\t// Try the translation\n\t\tif (!this._root.language.isDefault()) {\n\t\t\tmonth = this._root.language.translateAll(this._months()).indexOf(value);\n\t\t\tif (month > -1) {\n\t\t\t\treturn month\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Resolves short month name (i.e. \"Dec\") into a month number.\n\t *\n\t * @param value Short month name\n\t * @return Month number\n\t */\n\tprotected resolveShortMonth(value: ShortMonths): number {\n\n\t\t// Let's try English first\n\t\tlet month: number = this._shortMonths().indexOf(value);\n\t\tif (month > -1) {\n\t\t\treturn month;\n\t\t}\n\n\t\t// Maybe long month (workaround for May)\n\t\tmonth = this._months().indexOf(<any>value);\n\t\tif (month > -1) {\n\t\t\treturn month;\n\t\t}\n\n\t\t// Try the translation\n\t\tif (this._root.language && !this._root.language.isDefault()) {\n\t\t\tmonth = this._root.language.translateAll(this._shortMonths()).indexOf(value);\n\t\t\tif (month > -1) {\n\t\t\t\treturn month\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Checks if passed in string represents AM/PM notation in many of its\n\t * versions.\n\t *\n\t * @param value Source string\n\t * @return Is it AM/PM?\n\t */\n\tprotected isAm(value: string): boolean {\n\t\tlet list = this.getStringList([\"AM\", \"A.M.\", \"A\"]);\n\t\treturn list.indexOf(value.toUpperCase()) > -1;\n\t}\n\n\t/**\n\t * Translates list of strings.\n\t *\n\t * @param list Source strings\n\t * @return Translated strings\n\t */\n\tprotected getStringList(list: Array<keyof ILocaleSettings>): Array<string> {\n\t\tlet res: string[] = [];\n\t\tfor (let i: number = 0; i < list.length; i++) {\n\t\t\t// translate?\n\t\t\tif (this._root.language) {\n\t\t\t\tres.push($utils.escapeForRgex(this._t(list[i])));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tres.push($utils.escapeForRgex(list[i]));\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"DateFormatter.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/DateFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ILocaleSettings } from \"./Language\"\n\nimport { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport { TextFormatter } from \"./TextFormatter\"\n\nimport * as $type from \"./Type\"\nimport * as $utils from \"./Utils\";\n\n/**\n * Interface describing parsed date format definition.\n *\n * @ignore\n */\nexport interface DateFormatInfo {\n\t\"template\": string;\n\t\"parts\": any[];\n}\n\nexport interface IDateFormatterSettings extends IEntitySettings {\n\n\t/**\n\t * Should the first letter of the formatted date be capitalized?\n\t *\n\t * @default true\n\t */\n\tcapitalize?: boolean;\n\n\t/**\n\t * A date format to be used when formatting dates.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tdateFormat?: string | Intl.DateTimeFormatOptions;\n\n\t/**\n\t * An array of data fields that hold date values and should be formatted\n\t * with a [[DateFormatter]].\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/data-placeholders/#Formatting_placeholders} for more info\n\t */\n\tdateFields?: string[];\n\n\t/**\n\t * Locales to use when formatting using `Intl.DateFormatter`.\n\t */\n\tintlLocales?: string;\n\n}\n\nexport interface IDateFormatterPrivate extends IEntityPrivate {\n}\n\ntype Months = \"January\" | \"February\" | \"March\" | \"April\" | \"May\" | \"June\" | \"July\" | \"August\" | \"September\" | \"October\" | \"November\" | \"December\";\ntype ShortMonths = \"Jan\" | \"Feb\" | \"Mar\" | \"Apr\" | \"May(short)\" | \"Jun\" | \"Jul\" | \"Aug\" | \"Sep\" | \"Oct\" | \"Nov\" | \"Dec\";\ntype Weekdays = \"Sunday\" | \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"Saturday\";\ntype ShortWeekdays = \"Sun\" | \"Mon\" | \"Tue\" | \"Wed\" | \"Thu\" | \"Fri\" | \"Sat\";\n\nexport class DateFormatter extends Entity {\n\tdeclare public _settings: IDateFormatterSettings;\n\tdeclare public _privateSettings: IDateFormatterPrivate;\n\n\tprotected _setDefaults() {\n\t\t// Defaults\n\t\tthis._setDefault(\"capitalize\", true);\n\t\tthis._setDefault(\"dateFormat\", \"yyyy-MM-dd\");\n\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\t}\n\n\tpublic format(source: any, format?: string | Intl.DateTimeFormatOptions): string {\n\n\t\t// Locale?\n\t\t// TODO\n\n\t\t// No format passed in or it's empty\n\t\tif (typeof format === \"undefined\" || format === \"\") {\n\t\t\tformat = this.get(\"dateFormat\", \"yyyy-MM-dd\");\n\t\t}\n\n\t\t// Init return value\n\t\tlet formatted;\n\n\t\t// Cast?\n\t\t// TODO: decide if we need to cast\n\t\tlet date: Date = source;\n\n\t\t// Is it a built-in format or Intl.DateTimeFormat\n\t\tif ($type.isObject(format)) {\n\n\t\t\ttry {\n\t\t\t\tconst locales = this.get(\"intlLocales\");\n\t\t\t\tif (locales) {\n\t\t\t\t\treturn new Intl.DateTimeFormat(locales, <Intl.DateTimeFormatOptions>format).format(date);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn new Intl.DateTimeFormat(undefined, <Intl.DateTimeFormatOptions>format).format(date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\treturn \"Invalid\";\n\t\t\t}\n\n\t\t}\n\n\t\t// get format info (it will also deal with parser caching)\n\t\tlet info = this.parseFormat(format);\n\n\t\t// Should we apply custom time zone?\n\t\tconst timezone = this._root.timezone;\n\t\tif (timezone && !this._root.utc) {\n\t\t\tdate = timezone.convertLocal(date);\n\t\t}\n\n\n\t\t// Check if it's a valid date\n\t\tif (!$type.isNumber(date.getTime())) {\n\t\t\t// TODO translation\n\t\t\t//return this._t(\"Invalid date\");\n\t\t\treturn \"Invalid date\";\n\t\t}\n\n\t\t// Apply format\n\t\tformatted = this.applyFormat(date, info);\n\n\t\t// Capitalize\n\t\tif (this.get(\"capitalize\")) {\n\t\t\tformatted = formatted.replace(\n\t\t\t\t/^.{1}/, formatted.substr(0, 1).toUpperCase()\n\t\t\t);\n\t\t}\n\n\t\t// We're done\n\t\treturn formatted;\n\t}\n\n\t/**\n\t * Applies format to Date.\n\t *\n\t * @param date Date object\n\t * @param info Parsed format information\n\t * @return Formatted date string\n\t */\n\tprotected applyFormat(date: Date, info: DateFormatInfo): string {\n\n\t\t// Init return value\n\t\tlet res = info.template;\n\n\t\t// Get values\n\t\tlet fullYear: number,\n\t\t\tmonth: number,\n\t\t\tweekday: number,\n\t\t\tday: number,\n\t\t\thours: number,\n\t\t\tminutes: number,\n\t\t\tseconds: number,\n\t\t\tmilliseconds: number,\n\t\t\toffset: number = date.getTimezoneOffset(),\n\t\t\ttimestamp: number = date.getTime();\n\t\tif (this._root.utc) {\n\t\t\tfullYear = date.getUTCFullYear();\n\t\t\tmonth = date.getUTCMonth();\n\t\t\tweekday = date.getUTCDay();\n\t\t\tday = date.getUTCDate();\n\t\t\thours = date.getUTCHours();\n\t\t\tminutes = date.getUTCMinutes();\n\t\t\tseconds = date.getUTCSeconds();\n\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t}\n\t\telse {\n\t\t\tfullYear = date.getFullYear();\n\t\t\tmonth = date.getMonth();\n\t\t\tweekday = date.getDay();\n\t\t\tday = date.getDate();\n\t\t\thours = date.getHours();\n\t\t\tminutes = date.getMinutes();\n\t\t\tseconds = date.getSeconds();\n\t\t\tmilliseconds = date.getMilliseconds();\n\t\t}\n\n\t\t// Go through each part and format/replace it in template\n\t\tfor (let i = 0, len = info.parts.length; i < len; i++) {\n\t\t\tlet value: string = \"\";\n\t\t\tswitch (info.parts[i]) {\n\n\t\t\t\tcase \"G\":\n\t\t\t\t\tvalue = this._t(\n\t\t\t\t\t\tfullYear < 0\n\t\t\t\t\t\t\t? \"_era_bc\"\n\t\t\t\t\t\t\t: \"_era_ad\"\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yyyy\":\n\t\t\t\t\tvalue = Math.abs(fullYear).toString();\n\t\t\t\t\tif (fullYear < 0) {\n\t\t\t\t\t\tvalue += this._t(\"_era_bc\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yyy\":\n\t\t\t\tcase \"yy\":\n\t\t\t\tcase \"y\":\n\t\t\t\t\tvalue = Math.abs(fullYear).toString().substr(-info.parts[i].length);\n\t\t\t\t\tif (fullYear < 0) {\n\t\t\t\t\t\tvalue += this._t(\"_era_bc\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"YYYY\":\n\t\t\t\tcase \"YYY\":\n\t\t\t\tcase \"YY\":\n\t\t\t\tcase \"Y\":\n\t\t\t\t\tlet week = $utils.getWeek(date);\n\t\t\t\t\tlet year = fullYear;\n\t\t\t\t\tif (week == 1 && (weekday > 4)) {\n\t\t\t\t\t\tyear--;\n\t\t\t\t\t}\n\t\t\t\t\tif (info.parts[i] == \"YYYY\") {\n\t\t\t\t\t\tvalue = Math.abs(year).toString();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = Math.abs(year).toString().substr(-info.parts[i].length);\n\t\t\t\t\t}\n\t\t\t\t\tif (year < 0) {\n\t\t\t\t\t\tvalue += this._t(\"_era_bc\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"u\":\n\t\t\t\t\t// @todo\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"q\":\n\t\t\t\t\tvalue = \"\" + Math.ceil((date.getMonth() + 1) / 3);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMMMM\":\n\t\t\t\t\tvalue = this._t(this._getMonth(month)).substr(0, 1);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMMM\":\n\t\t\t\t\tvalue = this._t(this._getMonth(month));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMM\":\n\t\t\t\t\tvalue = this._t(this._getShortMonth(month));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MM\":\n\t\t\t\t\tvalue = $utils.padString(month + 1, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"M\":\n\t\t\t\t\tvalue = (month + 1).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ww\":\n\t\t\t\t\tvalue = $utils.padString($utils.getWeek(date, this._root.utc), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"w\":\n\t\t\t\t\tvalue = $utils.getWeek(date, this._root.utc).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"W\":\n\t\t\t\t\tvalue = $utils.getMonthWeek(date, this._root.utc).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"dd\":\n\t\t\t\t\tvalue = $utils.padString(day, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"d\":\n\t\t\t\t\tvalue = day.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"DD\":\n\t\t\t\tcase \"DDD\":\n\t\t\t\t\tvalue = $utils.padString($utils.getYearDay(date, this._root.utc).toString(), info.parts[i].length, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"D\":\n\t\t\t\t\tvalue = $utils.getYearDay(date, this._root.utc).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"F\":\n\t\t\t\t\t// @todo\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"g\":\n\t\t\t\t\t// @todo\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"t\":\n\t\t\t\t\tvalue = this._root.language.translateFunc(\"_dateOrd\").call(this, day);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"E\":\n\t\t\t\t\tvalue = (weekday || 7).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EE\":\n\t\t\t\t\tvalue = $utils.padString((weekday || 7).toString(), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EEE\":\n\t\t\t\tcase \"eee\":\n\t\t\t\t\tvalue = this._t(this._getShortWeekday(weekday));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EEEE\":\n\t\t\t\tcase \"eeee\":\n\t\t\t\t\tvalue = this._t(this._getShortWeekday(weekday));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"EEEEE\":\n\t\t\t\tcase \"eeeee\":\n\t\t\t\t\tvalue = this._t(this._getShortWeekday(weekday)).substr(0, 1);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"e\":\n\t\t\t\tcase \"ee\":\n\t\t\t\t\tvalue = (weekday - (this._root.locale.firstDayOfWeek || 1) + 1).toString();\n\t\t\t\t\tif (info.parts[i] == \"ee\") {\n\t\t\t\t\t\tvalue = $utils.padString(value, 2, \"0\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif (hours >= 12) {\n\t\t\t\t\t\tvalue = this._t(\"PM\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = this._t(\"AM\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"aa\":\n\t\t\t\t\tif (hours >= 12) {\n\t\t\t\t\t\tvalue = this._t(\"P.M.\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = this._t(\"A.M.\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"aaa\":\n\t\t\t\t\tif (hours >= 12) {\n\t\t\t\t\t\tvalue = this._t(\"P\");\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = this._t(\"A\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"h\":\n\t\t\t\t\tvalue = $utils.get12Hours(hours).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"hh\":\n\t\t\t\t\tvalue = $utils.padString($utils.get12Hours(hours), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"H\":\n\t\t\t\t\tvalue = hours.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"HH\":\n\t\t\t\t\tvalue = $utils.padString(hours, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"K\":\n\t\t\t\t\tvalue = $utils.get12Hours(hours, 0).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"KK\":\n\t\t\t\t\tvalue = $utils.padString($utils.get12Hours(hours, 0), 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"k\":\n\t\t\t\t\tvalue = (hours + 1).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"kk\":\n\t\t\t\t\tvalue = $utils.padString(hours + 1, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"m\":\n\t\t\t\t\tvalue = minutes.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"mm\":\n\t\t\t\t\tvalue = $utils.padString(minutes, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"s\":\n\t\t\t\t\tvalue = seconds.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ss\":\n\t\t\t\t\tvalue = $utils.padString(seconds, 2, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"S\":\n\t\t\t\tcase \"SS\":\n\t\t\t\tcase \"SSS\":\n\t\t\t\t\tvalue = Math.round((milliseconds / 1000) * Math.pow(10, info.parts[i].length)).toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"x\":\n\t\t\t\t\tvalue = timestamp.toString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"n\":\n\t\t\t\tcase \"nn\":\n\t\t\t\tcase \"nnn\":\n\t\t\t\t\tvalue = $utils.padString(milliseconds, info.parts[i].length, \"0\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"z\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, false, false, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"zz\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, true, false, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"zzz\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, false, true, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"zzzz\":\n\t\t\t\t\tvalue = $utils.getTimeZone(date, true, true, this._root.utc);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Z\":\n\t\t\t\tcase \"ZZ\":\n\t\t\t\t\tlet tz = Math.abs(offset) / 60;\n\t\t\t\t\tlet tzh = Math.floor(tz);\n\t\t\t\t\tlet tzm = tz * 60 - tzh * 60;\n\n\t\t\t\t\tif (this._root.utc) {\n\t\t\t\t\t\ttzh = 0;\n\t\t\t\t\t\ttzm = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (info.parts[i] == \"Z\") {\n\t\t\t\t\t\tvalue = \"GMT\";\n\t\t\t\t\t\tvalue += offset > 0 ? \"-\" : \"+\";\n\t\t\t\t\t\tvalue += $utils.padString(tzh, 2) + \":\" + $utils.padString(tzm, 2);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = offset > 0 ? \"-\" : \"+\";\n\t\t\t\t\t\tvalue += $utils.padString(tzh, 2) + $utils.padString(tzm, 2);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"i\":\n\t\t\t\t\tvalue = date.toISOString();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"I\":\n\t\t\t\t\tvalue = date.toUTCString();\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\t\t\tres = res.replace($type.PLACEHOLDER, value);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * Parses format into structured infromation.\n\t *\n\t * @param format Format template\n\t */\n\tprotected parseFormat(format: string): DateFormatInfo {\n\n\t\t// Check cache\n\t\t// TODO: implement caching of the parsed format\n\n\t\t// Init format parse info holder\n\t\tlet info: DateFormatInfo = {\n\t\t\t\"template\": \"\",\n\t\t\t\"parts\": <any>[]\n\t\t};\n\n\t\t// Let TextFormatter split into chunks\n\t\tlet chunks = TextFormatter.chunk(format, true);\n\t\tfor (let i: number = 0; i < chunks.length; i++) {\n\t\t\tlet chunk = chunks[i];\n\n\t\t\tif (chunk.type === \"value\") {\n\n\t\t\t\t// Just \"Date\"?\n\t\t\t\tif (chunk.text.match(/^date$/i)) {\n\t\t\t\t\tlet dateFormat = this.get(\"dateFormat\", \"yyyy-MM-dd\");\n\t\t\t\t\tif (!$type.isString(dateFormat)) {\n\t\t\t\t\t\tdateFormat = \"yyyy-MM-dd\";\n\t\t\t\t\t}\n\t\t\t\t\tchunk.text = dateFormat;\n\t\t\t\t}\n\n\t\t\t\t// Find all possible parts\n\t\t\t\tlet matches = chunk.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|q|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g);\n\n\t\t\t\t// Found?\n\t\t\t\tif (matches) {\n\n\t\t\t\t\t// Populate template\n\t\t\t\t\tfor (let x = 0; x < matches.length; x++) {\n\t\t\t\t\t\tinfo.parts.push(matches[x]);\n\t\t\t\t\t\tchunk.text = chunk.text.replace(matches[x], $type.PLACEHOLDER);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Apply to template\n\t\t\tinfo.template += chunk.text;\n\t\t}\n\n\t\t// Save cache\n\t\t// TODO\n\n\t\treturn info;\n\t}\n\n\tprotected _months(): Months[] {\n\t\treturn [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\t}\n\n\tprotected _getMonth(index: number): Months {\n\t\treturn this._months()[index];\n\t}\n\n\tprotected _shortMonths(): ShortMonths[] {\n\t\treturn [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May(short)\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\t}\n\n\tprotected _getShortMonth(index: number): ShortMonths {\n\t\treturn this._shortMonths()[index];\n\t}\n\n\tprotected _weekdays(): Weekdays[] {\n\t\treturn [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n\t}\n\n\tprotected _getWeekday(index: number): Weekdays {\n\t\treturn this._weekdays()[index];\n\t}\n\n\tprotected _shortWeekdays(): ShortWeekdays[] {\n\t\treturn [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\t}\n\n\tprotected _getShortWeekday(index: number): ShortWeekdays {\n\t\treturn this._shortWeekdays()[index];\n\t}\n\n\tpublic parse(source: any, format: string): Date {\n\n\t\t// Is it already a Date\n\t\tif (source instanceof Date) {\n\t\t\treturn source;\n\t\t}\n\n\t\t// Is it a numeric timestamp\n\t\tif ($type.isNumber(source)) {\n\t\t\treturn new Date(source);\n\t\t}\n\n\t\t// No? Let's check if it's string, and try converting to it if nec\n\t\tif (!$type.isString(source)) {\n\t\t\tsource = source.toString();\n\t\t}\n\n\t\t// Init return value\n\t\tlet res: Date;\n\n\t\t// Init RegEx for parsing\n\t\tlet reg: string = \"\";\n\n\t\t// Clean format\n\t\tformat = $utils.cleanFormat(format);\n\n\t\t// Clip format to length of the source string\n\t\tformat = format.substr(0, source.length);\n\n\t\t// Parse format\n\t\tlet info = this.parseFormat(format);\n\n\t\t// Init parsed items holder\n\t\tlet parsedIndexes = {\n\t\t\t\"year\": -1,\n\t\t\t\"year3\": -1,\n\t\t\t\"year2\": -1,\n\t\t\t\"year1\": -1,\n\t\t\t\"month\": -1,\n\t\t\t\"monthShort\": -1,\n\t\t\t\"monthLong\": -1,\n\t\t\t\"weekdayShort\": -1,\n\t\t\t\"weekdayLong\": -1,\n\t\t\t\"day\": -1,\n\t\t\t\"yearDay\": -1,\n\t\t\t\"week\": -1,\n\t\t\t\"hourBase0\": -1,\n\t\t\t\"hour12Base0\": -1,\n\t\t\t\"hourBase1\": -1,\n\t\t\t\"hour12Base1\": -1,\n\t\t\t\"minute\": -1,\n\t\t\t\"second\": -1,\n\t\t\t\"millisecond\": -1,\n\t\t\t\"millisecondDigits\": -1,\n\t\t\t\"am\": -1,\n\t\t\t\"zone\": -1,\n\t\t\t\"timestamp\": -1,\n\t\t\t\"iso\": -1\n\t\t};\n\n\t\t// Init values\n\t\tlet resValues = {\n\t\t\t\"year\": 1970,\n\t\t\t\"month\": 0,\n\t\t\t\"day\": 1,\n\t\t\t\"hour\": 0,\n\t\t\t\"minute\": 0,\n\t\t\t\"second\": 0,\n\t\t\t\"millisecond\": 0,\n\t\t\t\"timestamp\": <any>null,\n\t\t\t\"offset\": 0,\n\t\t\t\"utc\": this._root.utc\n\t\t}\n\n\t\t// Index adjuster\n\t\tlet indexAdjust: number = 0;\n\t\tlet index: number = 0;\n\n\t\t// Iterate through all of the parts\n\t\tfor (let i: number = 0; i < info.parts.length; i++) {\n\n\t\t\t// Set current match index\n\t\t\tindex = i + indexAdjust + 1;\n\n\t\t\tswitch (info.parts[i]) {\n\n\t\t\t\tcase \"yyyy\":\n\t\t\t\tcase \"YYYY\":\n\t\t\t\t\treg += \"([0-9]{4})\";\n\t\t\t\t\tparsedIndexes.year = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yyy\":\n\t\t\t\tcase \"YYY\":\n\t\t\t\t\treg += \"([0-9]{3})\";\n\t\t\t\t\tparsedIndexes.year3 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"yy\":\n\t\t\t\tcase \"YY\":\n\t\t\t\t\treg += \"([0-9]{2})\";\n\t\t\t\t\tparsedIndexes.year2 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"y\":\n\t\t\t\tcase \"Y\":\n\t\t\t\t\treg += \"([0-9]{1})\";\n\t\t\t\t\tparsedIndexes.year1 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMMM\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._months()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.monthLong = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MMM\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._shortMonths()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.monthShort = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"MM\":\n\t\t\t\tcase \"M\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.month = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ww\":\n\t\t\t\tcase \"w\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.week = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"dd\":\n\t\t\t\tcase \"d\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.day = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"DDD\":\n\t\t\t\tcase \"DD\":\n\t\t\t\tcase \"D\":\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.yearDay = index;\n\t\t\t\t\tbreak;\n\n\n\t\t\t\tcase \"dddd\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._weekdays()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.weekdayLong = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ddd\":\n\t\t\t\t\treg += \"(\" + this.getStringList(this._shortWeekdays()).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.weekdayShort = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"aaa\":\n\t\t\t\tcase \"aa\":\n\t\t\t\tcase \"a\":\n\t\t\t\t\t// TODO: fix (escape regex)\n\t\t\t\t\treg += \"(\" + this.getStringList([\"AM\", \"PM\", \"A\\.M\\.\", \"P\\.M\\.\", \"A\", \"P\"]).join(\"|\") + \")\";\n\t\t\t\t\tparsedIndexes.am = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"hh\":\n\t\t\t\tcase \"h\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hour12Base1 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"HH\":\n\t\t\t\tcase \"H\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hourBase0 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"KK\":\n\t\t\t\tcase \"K\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hour12Base0 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"kk\":\n\t\t\t\tcase \"k\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.hourBase1 = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"mm\":\n\t\t\t\tcase \"m\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.minute = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ss\":\n\t\t\t\tcase \"s\":\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.second = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"SSS\":\n\t\t\t\tcase \"SS\":\n\t\t\t\tcase \"S\":\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.millisecond = index;\n\t\t\t\t\tparsedIndexes.millisecondDigits = info.parts[i].length;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"nnn\":\n\t\t\t\tcase \"nn\":\n\t\t\t\tcase \"n\":\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\n\t\t\t\t\tparsedIndexes.millisecond = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"x\":\n\t\t\t\t\treg += \"([0-9]{1,})\";\n\t\t\t\t\tparsedIndexes.timestamp = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Z\":\n\t\t\t\t\treg += \"GMT([-+]+[0-9]{2}:[0-9]{2})\";\n\t\t\t\t\tparsedIndexes.zone = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ZZ\":\n\t\t\t\t\treg += \"([\\\\-+]+[0-9]{2}[0-9]{2})\";\n\t\t\t\t\tparsedIndexes.zone = index;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"i\":\n\t\t\t\t\treg += \"([0-9]{4})-?([0-9]{2})-?([0-9]{2})T?([0-9]{2}):?([0-9]{2}):?([0-9]{2})\\\\.?([0-9]{0,3})([zZ]|[+\\\\-][0-9]{2}:?[0-9]{2}|$)\";\n\t\t\t\t\tparsedIndexes.iso = index;\n\t\t\t\t\tindexAdjust += 7;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"G\":\n\t\t\t\tcase \"YYYY\":\n\t\t\t\tcase \"YYY\":\n\t\t\t\tcase \"YY\":\n\t\t\t\tcase \"Y\":\n\t\t\t\tcase \"MMMMM\":\n\t\t\t\tcase \"W\":\n\t\t\t\tcase \"EEEEE\":\n\t\t\t\tcase \"EEEE\":\n\t\t\t\tcase \"EEE\":\n\t\t\t\tcase \"EE\":\n\t\t\t\tcase \"E\":\n\t\t\t\tcase \"eeeee\":\n\t\t\t\tcase \"eeee\":\n\t\t\t\tcase \"eee\":\n\t\t\t\tcase \"ee\":\n\t\t\t\tcase \"e\":\n\t\t\t\tcase \"zzzz\":\n\t\t\t\tcase \"zzz\":\n\t\t\t\tcase \"zz\":\n\t\t\t\tcase \"z\":\n\t\t\t\tcase \"t\":\n\t\t\t\t\t// Ignore\n\t\t\t\t\tindexAdjust--;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treg += \"[^0-9]*\";\n\t\t}\n\n\t\t// Try matching\n\t\tlet regex = new RegExp(reg);\n\t\tlet matches: RegExpMatchArray = source.match(regex);\n\n\t\tif (matches) {\n\t\t\t// Populate the date object\n\n\t\t\t// Full year\n\t\t\tif (parsedIndexes.year > -1) {\n\t\t\t\tresValues.year = parseInt(matches[parsedIndexes.year]);\n\t\t\t}\n\n\t\t\t// 3-digit year\n\t\t\tif (parsedIndexes.year3 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year3]);\n\t\t\t\tval += 1000;\n\t\t\t\tresValues.year = val;\n\t\t\t}\n\n\t\t\t// 2-digit year\n\t\t\tif (parsedIndexes.year2 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year2]);\n\t\t\t\tif (val > 50) {\n\t\t\t\t\tval += 1000;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tval += 2000;\n\t\t\t\t}\n\t\t\t\tresValues.year = val;\n\t\t\t}\n\n\t\t\t// 1-digit year\n\t\t\tif (parsedIndexes.year1 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year1]);\n\t\t\t\tval = Math.floor((new Date().getFullYear()) / 10) * 10 + val;\n\t\t\t\tresValues.year = val;\n\t\t\t}\n\n\t\t\t// Full month\n\t\t\tif (parsedIndexes.monthLong > -1) {\n\t\t\t\tresValues.month = this.resolveMonth(<any>matches[parsedIndexes.monthLong]);\n\t\t\t}\n\n\t\t\t// Short month\n\t\t\tif (parsedIndexes.monthShort > -1) {\n\t\t\t\tresValues.month = this.resolveShortMonth(<any>matches[parsedIndexes.monthShort]);\n\t\t\t}\n\n\t\t\t// Numeric month\n\t\t\tif (parsedIndexes.month > -1) {\n\t\t\t\tresValues.month = parseInt(matches[parsedIndexes.month]) - 1;\n\t\t\t}\n\n\t\t\t// Weekday\n\t\t\t// @todo\n\n\t\t\t// Week\n\t\t\tif ((parsedIndexes.week > -1) && (parsedIndexes.day === -1)) {\n\t\t\t\t// We parse weeks ONLY if day is not explicitly set\n\t\t\t\t// TODO: this needs work\n\t\t\t\t// (but maybe later - I can hardly imagine anyone passing their dates in weeks)\n\t\t\t\tresValues.month = 0;\n\t\t\t\tresValues.day = $utils.getDayFromWeek(\n\t\t\t\t\tparseInt(matches[parsedIndexes.week]),\n\t\t\t\t\tresValues.year,\n\t\t\t\t\t1,\n\t\t\t\t\tthis._root.utc\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Day\n\t\t\tif (parsedIndexes.day > -1) {\n\t\t\t\tresValues.day = parseInt(matches[parsedIndexes.day]);\n\t\t\t}\n\n\t\t\t// Year day\n\t\t\tif (parsedIndexes.yearDay > -1) {\n\t\t\t\tresValues.month = 0;\n\t\t\t\tresValues.day = parseInt(matches[parsedIndexes.yearDay]);\n\t\t\t}\n\n\t\t\t// 24 Hour (0-23)\n\t\t\tif (parsedIndexes.hourBase0 > -1) {\n\t\t\t\tresValues.hour = parseInt(matches[parsedIndexes.hourBase0]);\n\t\t\t}\n\n\t\t\t// 24 Hour (1-24)\n\t\t\tif (parsedIndexes.hourBase1 > -1) {\n\t\t\t\tresValues.hour = parseInt(matches[parsedIndexes.hourBase1]) - 1;\n\t\t\t}\n\n\t\t\t// 12 Hour (0-11)\n\t\t\tif (parsedIndexes.hour12Base0 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.hour12Base0]);\n\t\t\t\tif (val == 11) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tif ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\n\t\t\t\t\tval += 12;\n\t\t\t\t}\n\t\t\t\tresValues.hour = val;\n\t\t\t}\n\n\t\t\t// 12 Hour (1-12)\n\t\t\tif (parsedIndexes.hour12Base1 > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.hour12Base1]);\n\t\t\t\tif (val == 12) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tif ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\n\t\t\t\t\tval += 12;\n\t\t\t\t}\n\t\t\t\tresValues.hour = val;\n\t\t\t}\n\n\t\t\t// Minute\n\t\t\tif (parsedIndexes.minute > -1) {\n\t\t\t\tresValues.minute = parseInt(matches[parsedIndexes.minute]);\n\t\t\t}\n\n\t\t\t// Second\n\t\t\tif (parsedIndexes.second > -1) {\n\t\t\t\tresValues.second = parseInt(matches[parsedIndexes.second]);\n\t\t\t}\n\n\t\t\t// Millisecond\n\t\t\tif (parsedIndexes.millisecond > -1) {\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.millisecond]);\n\t\t\t\tif (parsedIndexes.millisecondDigits == 2) {\n\t\t\t\t\tval *= 10;\n\t\t\t\t}\n\t\t\t\telse if (parsedIndexes.millisecondDigits == 1) {\n\t\t\t\t\tval *= 100;\n\t\t\t\t}\n\t\t\t\tresValues.millisecond = val;\n\t\t\t}\n\n\t\t\t// Timestamp\n\t\t\tif (parsedIndexes.timestamp > -1) {\n\t\t\t\tresValues.timestamp = parseInt(matches[parsedIndexes.timestamp]);\n\n\t\t\t\tconst ts = new Date(resValues.timestamp);\n\t\t\t\tresValues.year = ts.getUTCFullYear();\n\t\t\t\tresValues.month = ts.getUTCMonth();\n\t\t\t\tresValues.day = ts.getUTCDate();\n\t\t\t\tresValues.hour = ts.getUTCHours();\n\t\t\t\tresValues.minute = ts.getUTCMinutes();\n\t\t\t\tresValues.second = ts.getUTCSeconds();\n\t\t\t\tresValues.millisecond = ts.getUTCMilliseconds();\n\t\t\t}\n\n\t\t\t// Adjust time zone\n\t\t\tif (parsedIndexes.zone > -1) {\n\t\t\t\tresValues.offset = this.resolveTimezoneOffset(new Date(resValues.year, resValues.month, resValues.day), matches[parsedIndexes.zone]);\n\t\t\t}\n\n\t\t\t// ISO\n\t\t\tif (parsedIndexes.iso > -1) {\n\n\t\t\t\tresValues.year = $type.toNumber(matches[parsedIndexes.iso + 0]);\n\t\t\t\tresValues.month = $type.toNumber(matches[parsedIndexes.iso + 1]) - 1;\n\t\t\t\tresValues.day = $type.toNumber(matches[parsedIndexes.iso + 2]);\n\t\t\t\tresValues.hour = $type.toNumber(matches[parsedIndexes.iso + 3]);\n\t\t\t\tresValues.minute = $type.toNumber(matches[parsedIndexes.iso + 4]);\n\t\t\t\tresValues.second = $type.toNumber(matches[parsedIndexes.iso + 5]);\n\t\t\t\tresValues.millisecond = $type.toNumber(matches[parsedIndexes.iso + 6]);\n\n\t\t\t\tif (matches[parsedIndexes.iso + 7] == \"Z\" || matches[parsedIndexes.iso + 7] == \"z\") {\n\t\t\t\t\tresValues.utc = true;\n\t\t\t\t}\n\t\t\t\telse if (matches[parsedIndexes.iso + 7] != \"\") {\n\t\t\t\t\tresValues.offset = this.resolveTimezoneOffset(new Date(resValues.year, resValues.month, resValues.day), matches[parsedIndexes.iso + 7]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Create Date object\n\t\t\tif (resValues.utc) {\n\t\t\t\tres = new Date(Date.UTC(\n\t\t\t\t\tresValues.year,\n\t\t\t\t\tresValues.month,\n\t\t\t\t\tresValues.day,\n\t\t\t\t\tresValues.hour,\n\t\t\t\t\tresValues.minute,\n\t\t\t\t\tresValues.second,\n\t\t\t\t\tresValues.millisecond\n\t\t\t\t));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tres = new Date(\n\t\t\t\t\tresValues.year,\n\t\t\t\t\tresValues.month,\n\t\t\t\t\tresValues.day,\n\t\t\t\t\tresValues.hour,\n\t\t\t\t\tresValues.minute + resValues.offset,\n\t\t\t\t\tresValues.second,\n\t\t\t\t\tresValues.millisecond\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\t// Didn't match anything\n\t\t\t// Let's try dropping it into Date constructor and hope for the best\n\t\t\tres = new Date(source);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tprotected resolveTimezoneOffset(date: Date, zone: string): number {\n\t\tlet value = zone.match(/([+\\-]?)([0-9]{2}):?([0-9]{2})/);\n\t\tif (value) {\n\t\t\tlet match = zone.match(/([+\\-]?)([0-9]{2}):?([0-9]{2})/)!;\n\t\t\tlet dir = match[1];\n\t\t\tlet hour = match[2];\n\t\t\tlet minute = match[3];\n\t\t\tlet offset = parseInt(hour) * 60 + parseInt(minute);\n\n\t\t\t// Adjust offset\n\t\t\t// Making it negative does not seem to make sense, but it's right\n\t\t\t// because of how JavaScript calculates GMT offsets\n\t\t\tif (dir == \"+\") {\n\t\t\t\toffset *= -1;\n\t\t\t}\n\n\t\t\t// Check the difference in offset\n\t\t\tlet originalOffset = (date || new Date()).getTimezoneOffset();\n\t\t\tlet diff = offset - originalOffset;\n\t\t\treturn diff;\n\t\t}\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Resolves month name (i.e. \"December\") into a month number (11).\n\t *\n\t * @param value Month name\n\t * @return Month number\n\t */\n\tprotected resolveMonth(value: Months): number {\n\n\t\t// Let's try English first\n\t\tlet month: number = this._months().indexOf(value);\n\t\tif (month > -1) {\n\t\t\treturn month;\n\t\t}\n\n\t\t// Try the translation\n\t\tif (!this._root.language.isDefault()) {\n\t\t\tmonth = this._root.language.translateAll(this._months()).indexOf(value);\n\t\t\tif (month > -1) {\n\t\t\t\treturn month\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Resolves short month name (i.e. \"Dec\") into a month number.\n\t *\n\t * @param value Short month name\n\t * @return Month number\n\t */\n\tprotected resolveShortMonth(value: ShortMonths): number {\n\n\t\t// Let's try English first\n\t\tlet month: number = this._shortMonths().indexOf(value);\n\t\tif (month > -1) {\n\t\t\treturn month;\n\t\t}\n\n\t\t// Maybe long month (workaround for May)\n\t\tmonth = this._months().indexOf(<any>value);\n\t\tif (month > -1) {\n\t\t\treturn month;\n\t\t}\n\n\t\t// Try the translation\n\t\tif (this._root.language && !this._root.language.isDefault()) {\n\t\t\tmonth = this._root.language.translateAll(this._shortMonths()).indexOf(value);\n\t\t\tif (month > -1) {\n\t\t\t\treturn month\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t/**\n\t * Checks if passed in string represents AM/PM notation in many of its\n\t * versions.\n\t *\n\t * @param value Source string\n\t * @return Is it AM/PM?\n\t */\n\tprotected isAm(value: string): boolean {\n\t\tlet list = this.getStringList([\"AM\", \"A.M.\", \"A\"]);\n\t\treturn list.indexOf(value.toUpperCase()) > -1;\n\t}\n\n\t/**\n\t * Translates list of strings.\n\t *\n\t * @param list Source strings\n\t * @return Translated strings\n\t */\n\tprotected getStringList(list: Array<keyof ILocaleSettings>): Array<string> {\n\t\tlet res: string[] = [];\n\t\tfor (let i: number = 0; i < list.length; i++) {\n\t\t\t// translate?\n\t\t\tif (this._root.language) {\n\t\t\t\tres.push($utils.escapeForRgex(this._t(list[i])));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tres.push($utils.escapeForRgex(list[i]));\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t}\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Modal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA8ElF,MAAM,WAAW,cAAe,SAAQ,eAAe;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACpD,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IAClD,QAAQ,EAAE,EAAE,CAAA;IACZ,QAAQ,EAAE,EAAE,CAAA;IACZ,WAAW,EAAE,EAAE,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAChC,OAAc,SAAS,EAAE,MAAM,CAAW;IAC1C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA+C;IAEvE,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,aAAa,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;IAIrC,SAAS,CAAC,SAAS;IAgDZ,cAAc;IAQrB;;;;OAIG;IACI,MAAM,IAAI,OAAO;IAIxB;;OAEG;IACI,IAAI,IAAI,IAAI;IAQnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB;;OAEG;IACI,MAAM,IAAI,IAAI;IAQrB;;OAEG;IACI,OAAO;CAKd"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Modal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgFlF,MAAM,WAAW,cAAe,SAAQ,eAAe;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACpD,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IAClD,QAAQ,EAAE,EAAE,CAAA;IACZ,QAAQ,EAAE,EAAE,CAAA;IACZ,WAAW,EAAE,EAAE,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAChC,OAAc,SAAS,EAAE,MAAM,CAAW;IAC1C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA+C;IAEvE,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,aAAa,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;IAIrC,SAAS,CAAC,SAAS;IAgDZ,cAAc;IAQrB;;;;OAIG;IACI,MAAM,IAAI,OAAO;IAIxB;;OAEG;IACI,IAAI,IAAI,IAAI;IAQnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB;;OAEG;IACI,MAAM,IAAI,IAAI;IAQrB;;OAEG;IACI,OAAO;CAKd"}
@@ -17,8 +17,10 @@ function modalCSS(element, root, _prefix) {
17
17
  new StyleRule(element, ".am5-modal", {
18
18
  "width": "100%",
19
19
  "height": "100%",
20
- "position": "relative",
21
- "z-index": "1000"
20
+ "position": "absolute",
21
+ "z-index": "100000",
22
+ "top": "0",
23
+ "left": "0"
22
24
  }),
23
25
  new StyleRule(element, ".am5-modal-curtain", {
24
26
  "top": "0",
@@ -85,7 +87,7 @@ var Modal = /** @class */ (function (_super) {
85
87
  var container = document.createElement("div");
86
88
  container.className = "am5-modal";
87
89
  container.style.display = "none";
88
- this.root.dom.appendChild(container);
90
+ this.root._inner.appendChild(container);
89
91
  this.setPrivate("container", container);
90
92
  var curtain = document.createElement("div");
91
93
  curtain.className = "am5-modal-curtain";
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Modal.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../Root\"\n\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"./Entity\";\nimport { StyleRule } from \"./Utils\"\nimport { MultiDisposer, IDisposer, CounterDisposer } from \"../../core/util/Disposer\";\n\nimport * as $utils from \"./Utils\"\n\n\n/**\n * @ignore\n */\nlet rules: CounterDisposer | undefined;\n\n/**\n * @ignore\n */\nfunction modalCSS(element: ShadowRoot | null, root: Root, _prefix?: string): IDisposer {\n\tconst ic = root.interfaceColors;\n\n\tif (!rules) {\n\t\tconst disposer = new MultiDisposer([\n\n\t\t\tnew StyleRule(element, \".am5-modal\", {\n\t\t\t\t\"width\": \"100%\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"position\": \"relative\",\n\t\t\t\t\"z-index\": \"1000\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-curtain\", {\n\t\t\t\t\"top\": \"0\",\n\t\t\t\t\"left\": \"0\",\n\t\t\t\t\"width\": \"100%\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"position\": \"absolute\",\n\t\t\t\t\"background\": ic.get(\"background\")!.toCSS(0.5),\n\t\t\t\t\"z-index\": \"100\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-wrapper\", {\n\t\t\t\t\"top\": \"0\",\n\t\t\t\t\"left\": \"0\",\n\t\t\t\t\"width\": \"100%\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"position\": \"absolute\",\n\t\t\t\t\"text-align\": \"center\",\n\t\t\t\t\"white-space\": \"nowrap\",\n\t\t\t\t\"background\": ic.get(\"background\")!.toCSS(0.5),\n\t\t\t\t\"z-index\": \"101\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-wrapper:before\", {\n\t\t\t\t\"content\": \"''\",\n\t\t\t\t\"display\": \"inline-block\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"vertical-align\": \"middle\",\n\t\t\t\t\"margin-right\": \"-0.25em\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-content\", {\n\t\t\t\t\"display\": \"inline-block\",\n\t\t\t\t\"padding\": \"1em\",\n\t\t\t\t\"vertical-align\": \"middle\",\n\t\t\t\t\"background\": ic.get(\"background\")!.toCSS(),\n\t\t\t\t\"border\": \"1px solid \" + ic.get(\"alternativeBackground\")!.toCSS()\n\t\t\t}),\n\n\t\t]);\n\n\t\trules = new CounterDisposer(() => {\n\t\t\trules = undefined;\n\t\t\tdisposer.dispose();\n\t\t});\n\t}\n\n\treturn rules.increment();\n}\n\n\nexport interface IModalSettings extends IEntitySettings {\n\tcontent?: string;\n}\n\nexport interface IModalPrivate extends IEntityPrivate {\n\tcontainer: HTMLDivElement;\n\tcurtain: HTMLDivElement;\n\twrapper: HTMLDivElement;\n\tcontent: HTMLDivElement;\n}\n\nexport interface IModalEvents extends IEntityEvents {\n\t\"opened\": {}\n\t\"closed\": {}\n\t\"cancelled\": {}\n}\n\n/**\n * Used to display a modal dialog with HTML content.\n */\nexport class Modal extends Entity {\n\tpublic static className: string = \"Modal\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([Modal.className]);\n\n\tdeclare public _settings: IModalSettings;\n\tdeclare public _privateSettings: IModalPrivate;\n\tdeclare public _events: IModalEvents;\n\n\t//protected _currentPass: number = 0;\n\n\tprotected _afterNew() {\n\t\t// Applying themes because this will not have parents\n\t\tsuper._afterNewApplyThemes();\n\n\t\t// Load CSS\n\t\tmodalCSS($utils.getShadowRoot(this._root.dom), this._root);\n\n\t\t// Create elements\n\t\tconst container = document.createElement(\"div\");\n\t\tcontainer.className = \"am5-modal\";\n\t\tcontainer.style.display = \"none\";\n\t\tthis.root.dom.appendChild(container);\n\t\tthis.setPrivate(\"container\", container);\n\n\t\tconst curtain = document.createElement(\"div\");\n\t\tcurtain.className = \"am5-modal-curtain\";\n\t\tcontainer.appendChild(curtain);\n\t\tthis.setPrivate(\"curtain\", curtain);\n\n\t\t$utils.addEventListener(curtain, \"click\", () => {\n\t\t\tthis.cancel();\n\t\t});\n\n\t\tconst wrapper = document.createElement(\"div\");\n\t\twrapper.className = \"am5-modal-wrapper\";\n\t\tcontainer.appendChild(wrapper);\n\t\tthis.setPrivate(\"wrapper\", wrapper);\n\n\t\tconst content = document.createElement(\"div\");\n\t\tcontent.className = \"am5-modal-content\";\n\t\twrapper.appendChild(content);\n\t\tthis.setPrivate(\"content\", content);\n\n\t\tconst html = this.get(\"content\");\n\t\tif (html) {\n\t\t\tcontent.innerHTML = html;\n\t\t}\n\n\t\t// Close on ESC\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tif (this.isOpen() && ev.keyCode == 27) {\n\t\t\t\t\tthis.cancel();\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"content\")) {\n\t\t\tthis.getPrivate(\"content\").innerHTML = this.get(\"content\", \"\");\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if modal is currently open.\n\t * \n\t * @return Modal open?\n\t */\n\tpublic isOpen(): boolean {\n\t\treturn this.getPrivate(\"container\").style.display != \"none\";\n\t}\n\n\t/**\n\t * Opens modal.\n\t */\n\tpublic open(): void {\n\t\tthis.getPrivate(\"container\").style.display = \"block\";\n\t\tthis.events.dispatch(\"opened\", {\n\t\t\ttype: \"opened\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Closes modal.\n\t */\n\tpublic close(): void {\n\t\tthis.getPrivate(\"container\").style.display = \"none\";\n\t\tthis.events.dispatch(\"closed\", {\n\t\t\ttype: \"closed\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Closes modal and invokes `cancelled` event.\n\t */\n\tpublic cancel(): void {\n\t\tthis.getPrivate(\"container\").style.display = \"none\";\n\t\tthis.events.dispatch(\"cancelled\", {\n\t\t\ttype: \"cancelled\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Disposes modal.\n\t */\n\tpublic dispose() {\n\t\tsuper.dispose();\n\t\tthis.root.dom.removeChild(this.getPrivate(\"container\"));\n\t}\n\n}"]}
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Modal.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../Root\"\n\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"./Entity\";\nimport { StyleRule } from \"./Utils\"\nimport { MultiDisposer, IDisposer, CounterDisposer } from \"../../core/util/Disposer\";\n\nimport * as $utils from \"./Utils\"\n\n\n/**\n * @ignore\n */\nlet rules: CounterDisposer | undefined;\n\n/**\n * @ignore\n */\nfunction modalCSS(element: ShadowRoot | null, root: Root, _prefix?: string): IDisposer {\n\tconst ic = root.interfaceColors;\n\n\tif (!rules) {\n\t\tconst disposer = new MultiDisposer([\n\n\t\t\tnew StyleRule(element, \".am5-modal\", {\n\t\t\t\t\"width\": \"100%\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"position\": \"absolute\",\n\t\t\t\t\"z-index\": \"100000\",\n\t\t\t\t\"top\": \"0\",\n\t\t\t\t\"left\": \"0\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-curtain\", {\n\t\t\t\t\"top\": \"0\",\n\t\t\t\t\"left\": \"0\",\n\t\t\t\t\"width\": \"100%\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"position\": \"absolute\",\n\t\t\t\t\"background\": ic.get(\"background\")!.toCSS(0.5),\n\t\t\t\t\"z-index\": \"100\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-wrapper\", {\n\t\t\t\t\"top\": \"0\",\n\t\t\t\t\"left\": \"0\",\n\t\t\t\t\"width\": \"100%\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"position\": \"absolute\",\n\t\t\t\t\"text-align\": \"center\",\n\t\t\t\t\"white-space\": \"nowrap\",\n\t\t\t\t\"background\": ic.get(\"background\")!.toCSS(0.5),\n\t\t\t\t\"z-index\": \"101\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-wrapper:before\", {\n\t\t\t\t\"content\": \"''\",\n\t\t\t\t\"display\": \"inline-block\",\n\t\t\t\t\"height\": \"100%\",\n\t\t\t\t\"vertical-align\": \"middle\",\n\t\t\t\t\"margin-right\": \"-0.25em\"\n\t\t\t}),\n\n\t\t\tnew StyleRule(element, \".am5-modal-content\", {\n\t\t\t\t\"display\": \"inline-block\",\n\t\t\t\t\"padding\": \"1em\",\n\t\t\t\t\"vertical-align\": \"middle\",\n\t\t\t\t\"background\": ic.get(\"background\")!.toCSS(),\n\t\t\t\t\"border\": \"1px solid \" + ic.get(\"alternativeBackground\")!.toCSS()\n\t\t\t}),\n\n\t\t]);\n\n\t\trules = new CounterDisposer(() => {\n\t\t\trules = undefined;\n\t\t\tdisposer.dispose();\n\t\t});\n\t}\n\n\treturn rules.increment();\n}\n\n\nexport interface IModalSettings extends IEntitySettings {\n\tcontent?: string;\n}\n\nexport interface IModalPrivate extends IEntityPrivate {\n\tcontainer: HTMLDivElement;\n\tcurtain: HTMLDivElement;\n\twrapper: HTMLDivElement;\n\tcontent: HTMLDivElement;\n}\n\nexport interface IModalEvents extends IEntityEvents {\n\t\"opened\": {}\n\t\"closed\": {}\n\t\"cancelled\": {}\n}\n\n/**\n * Used to display a modal dialog with HTML content.\n */\nexport class Modal extends Entity {\n\tpublic static className: string = \"Modal\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([Modal.className]);\n\n\tdeclare public _settings: IModalSettings;\n\tdeclare public _privateSettings: IModalPrivate;\n\tdeclare public _events: IModalEvents;\n\n\t//protected _currentPass: number = 0;\n\n\tprotected _afterNew() {\n\t\t// Applying themes because this will not have parents\n\t\tsuper._afterNewApplyThemes();\n\n\t\t// Load CSS\n\t\tmodalCSS($utils.getShadowRoot(this._root.dom), this._root);\n\n\t\t// Create elements\n\t\tconst container = document.createElement(\"div\");\n\t\tcontainer.className = \"am5-modal\";\n\t\tcontainer.style.display = \"none\";\n\t\tthis.root._inner.appendChild(container);\n\t\tthis.setPrivate(\"container\", container);\n\n\t\tconst curtain = document.createElement(\"div\");\n\t\tcurtain.className = \"am5-modal-curtain\";\n\t\tcontainer.appendChild(curtain);\n\t\tthis.setPrivate(\"curtain\", curtain);\n\n\t\t$utils.addEventListener(curtain, \"click\", () => {\n\t\t\tthis.cancel();\n\t\t});\n\n\t\tconst wrapper = document.createElement(\"div\");\n\t\twrapper.className = \"am5-modal-wrapper\";\n\t\tcontainer.appendChild(wrapper);\n\t\tthis.setPrivate(\"wrapper\", wrapper);\n\n\t\tconst content = document.createElement(\"div\");\n\t\tcontent.className = \"am5-modal-content\";\n\t\twrapper.appendChild(content);\n\t\tthis.setPrivate(\"content\", content);\n\n\t\tconst html = this.get(\"content\");\n\t\tif (html) {\n\t\t\tcontent.innerHTML = html;\n\t\t}\n\n\t\t// Close on ESC\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tif (this.isOpen() && ev.keyCode == 27) {\n\t\t\t\t\tthis.cancel();\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"content\")) {\n\t\t\tthis.getPrivate(\"content\").innerHTML = this.get(\"content\", \"\");\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if modal is currently open.\n\t * \n\t * @return Modal open?\n\t */\n\tpublic isOpen(): boolean {\n\t\treturn this.getPrivate(\"container\").style.display != \"none\";\n\t}\n\n\t/**\n\t * Opens modal.\n\t */\n\tpublic open(): void {\n\t\tthis.getPrivate(\"container\").style.display = \"block\";\n\t\tthis.events.dispatch(\"opened\", {\n\t\t\ttype: \"opened\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Closes modal.\n\t */\n\tpublic close(): void {\n\t\tthis.getPrivate(\"container\").style.display = \"none\";\n\t\tthis.events.dispatch(\"closed\", {\n\t\t\ttype: \"closed\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Closes modal and invokes `cancelled` event.\n\t */\n\tpublic cancel(): void {\n\t\tthis.getPrivate(\"container\").style.display = \"none\";\n\t\tthis.events.dispatch(\"cancelled\", {\n\t\t\ttype: \"cancelled\",\n\t\t\ttarget: this\n\t\t});\n\t}\n\n\t/**\n\t * Disposes modal.\n\t */\n\tpublic dispose() {\n\t\tsuper.dispose();\n\t\tthis.root.dom.removeChild(this.getPrivate(\"container\"));\n\t}\n\n}"]}
package/CHANGELOG.md CHANGED
@@ -5,29 +5,52 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
5
5
  Please note, that this project, while following numbering syntax, it DOES NOT
6
6
  adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
7
7
 
8
+ ## [5.1.5] - 2022-02-22
9
+
10
+ ### Added
11
+ - `minSize` setting added to `Flow` (`Chord` and `Sankey`) series. It's a relative value to the sum of all values in the series. If set, this relative value will be used for small-value nodes when calculating their size. For example, if it's set to `0.01`, small nodes will be sized like their value is 1% of the total sum of all values in series.
12
+
13
+ ### Changed
14
+ - Direction of vertical panning with mouse wheel in an `XYChart` was inverted to make it consistent with OS native scrolling direction.
15
+
16
+ ### Fixed
17
+ - Fixing ES6 module detection by BundlePhobia ([Issue 294](https://github.com/amcharts/amcharts5/issues/294)).
18
+ - Parsing of dates using `"i"` format was not working properly when no milliseconds were supplied.
19
+ - Using `minZoomCount` and `maxZoomCount` on a `GaplessDateAxis` was not working properly.
20
+ - Sometimes vertical `XYChart` scrollbar was not reacting to chart's pan via mouse drag or wheel.
21
+ - Using mouse wheel on a chart that was setup to pan was also zooming in/out in addition to pan.
22
+ - In some cases grid on `GaplessDateAxis` was not being placed properly. Grid and Label placement improved.
23
+ - `ForceDirectedTree` could freeze when used with Animated theme in some cases.
24
+ - Changing of baseInterval on DateAxis was not properly working in some cases.
25
+ - In some cases, when no animated theme was used, a state on a Sprite was not applied.
26
+ - Setting data on `MapSeries` after `geoJSON` was updated was not working properly which resulted heat rules not to be applied.
27
+ - It was difficult to make a selection close to the start/end of plot area on `RadarChart`.
28
+ - When `XYChart` was fully zoomed in, using mouse wheel would start panning the chart instead of zoom.
29
+
30
+
8
31
  ## [5.1.4] - 2022-02-11
9
32
 
10
- ## Added
33
+ ### Added
11
34
  - `affectsMinMax` added to value axis range.
12
35
  - `segments` property added to `Line` class. Allows passing multiple segments instead of continous line.
13
36
  - `tooltipIntervalOffset` setting added to `DateAxis`. If not set, axis' tooltip will use value of the `-tooltipLocation` (cell start timestamp by default), so that tooltip would should rounded value, like 06:00 instead of 06:30 when interval is hourly. [More info](https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip).
14
37
  - `tooltipDateFormats` setting added to `DateAxis`. Allows specifying axis' tooltip date formats for time each time unit, different from `dateFormats`. NOTE: `tooltipDateFormat` will override the format if set. [More info](https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip).
15
38
  - `syncWith` setting added to `XYCursor`. Set it to an array of other `XYCursor` objects to automatically position them as the cursor moves. [More info](https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/#syncing-cursors).
16
39
 
17
- ## Changed
40
+ ### Changed
18
41
  - Default tooltip date formats have changed slightly for `DateAxis`. Previously, it was using formats from `dateFormats`. Now it uses defaults/user values from newly-introduced `tooltipDateFormats` setting.
19
42
 
20
- ## Fixed
43
+ ### Fixed
21
44
  - In some cases `DurationAxis` with "second" as its base duration was going to stack overflow.
22
45
  - Background on a `ValueAxis` was not showing.
23
- - Imporoved performance for charts with lots of stacked series with null.
46
+ - Improved performance for charts with lots of stacked series with null.
24
47
  - Fixing mouse position when using `transform: scale` or `zoom` ([Issue 258](https://github.com/amcharts/amcharts5/issues/258)).
25
- - Some touch iteractions were not working in iOS 12.
48
+ - Some touch interactions were not working in iOS 12.
26
49
 
27
50
 
28
51
  ## [5.1.3] - 2022-02-03
29
52
 
30
- ## Added
53
+ ### Added
31
54
  - Added second parameter to `Root` constructor which contains settings object. For now, there's only one setting: `useSafeResolution` (default: `true`). [More info](https://www.amcharts.com/docs/v5/getting-started/root-element/#settings).
32
55
 
33
56
  ### Fixed
@@ -36,12 +59,12 @@ adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
36
59
 
37
60
  ## [5.1.2] - 2022-02-01
38
61
 
39
- ## Added
62
+ ### Added
40
63
  - `"x!"` and `"y!"` options added to `XYCursor`'s `snapToSeriesBy` setting. Setting it to `"y!"` will make cursor will choose the nearest data point to snap to by measuring only
41
64
  vertical distance and looking at the data items which are at the current X axis position (date or category). The same applies for `"x!"`.
42
65
  - `tooltipDataItem` setting added to `XYSeries`. It's a read-only reference to a data item which series tooltip currently uses.
43
66
 
44
- ## Fixed
67
+ ### Fixed
45
68
  - `LineSeries` legend markers' stroke was not using series' color if `series.appear()` was called after series was initialized.
46
69
  - `LineSeries` legend marker wasn't working properly if legend was using different `Root` element.
47
70
  - Better disposing of `<canvas>` elements to work around iOS Safari GC bug.
@@ -49,7 +72,7 @@ vertical distance and looking at the data items which are at the current X axis
49
72
 
50
73
  ## [5.1.1] - 2022-01-31
51
74
 
52
- ## Added
75
+ ### Added
53
76
  - New method `remove(key)` on Template's adapaters.
54
77
  - Each chart-type package now exports its default theme as `DefaultTheme`. E.g. `am5xy.DefaultTheme`, `am5flow.DefaultTheme`, etc.
55
78
  - TypeScript: Settings interfaces for all objects are now being exposed via bundled re-export files like `index.ts`, `xy.ts`, etc.
@@ -57,12 +80,12 @@ vertical distance and looking at the data items which are at the current X axis
57
80
  - New `Container` setting: `reverseChildren`. If set to `true`, will start rendering from the last child, effectively flipping the order in how children of the cotainer are laid out. Useful for [right-to-left setups](
58
81
  https://www.amcharts.com/docs/v5/concepts/locales/right-to-left-support/).
59
82
 
60
- ## Changed
83
+ ### Changed
61
84
  - Charts on iOS devices will now automatically use lesser resolution to work around canvas memory restriction introduced in iOS 15 Safari.
62
85
  - Charts will now use less built-in layers, and thus less `<canvas>` elements by default, reducing memory consumption.
63
86
  - All low/high-related settings and fields moved from `CandlestickSeries` to `XYSeries`. Sometimes it could be useful to have low/high on other series even if they are not shown visually.
64
87
 
65
- ## Fixed
88
+ ### Fixed
66
89
  - `XYCursor` was not being hidden when its `positionX` or `positionY` was changed to `undefined` and `alwaysShow` was set to `false`.
67
90
  - Auto-wrapped right-aligned labels were being rendered in wrong position.
68
91
  - Auto-wrapped labels were not being trimmed for whitespace on each line.
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-non-ribbon",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-sankey",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge-bands",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-force-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-pack",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-partition",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-sunburst",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-tree",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-treemap",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.1.4",
6
+ "@amcharts/amcharts5": "^5.1.5",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",