@amcharts/amcharts5 5.3.15 → 5.3.17

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 (209) hide show
  1. package/.internal/charts/hierarchy/Treemap.d.ts +2 -0
  2. package/.internal/charts/hierarchy/Treemap.d.ts.map +1 -1
  3. package/.internal/charts/hierarchy/Treemap.js +32 -0
  4. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  5. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
  6. package/.internal/charts/stock/toolbar/DateRangeSelector.js +8 -2
  7. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  8. package/.internal/charts/xy/XYChart.js +2 -2
  9. package/.internal/charts/xy/XYChart.js.map +1 -1
  10. package/.internal/charts/xy/XYCursor.js +1 -1
  11. package/.internal/charts/xy/XYCursor.js.map +1 -1
  12. package/.internal/charts/xy/axes/Axis.d.ts +4 -3
  13. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  14. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  15. package/.internal/charts/xy/axes/AxisBullet.d.ts +1 -0
  16. package/.internal/charts/xy/axes/AxisBullet.d.ts.map +1 -1
  17. package/.internal/charts/xy/axes/AxisBullet.js +12 -0
  18. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  19. package/.internal/charts/xy/axes/CategoryAxis.d.ts +1 -1
  20. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  21. package/.internal/charts/xy/axes/CategoryAxis.js +1 -1
  22. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  23. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts +1 -1
  24. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
  25. package/.internal/charts/xy/axes/CategoryDateAxis.js +1 -1
  26. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  27. package/.internal/charts/xy/axes/DateAxis.d.ts +10 -5
  28. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  29. package/.internal/charts/xy/axes/DateAxis.js +11 -4
  30. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  31. package/.internal/charts/xy/axes/DurationAxis.d.ts +1 -1
  32. package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -1
  33. package/.internal/charts/xy/axes/DurationAxis.js +1 -1
  34. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  35. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  36. package/.internal/charts/xy/axes/ValueAxis.d.ts +1 -1
  37. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  38. package/.internal/charts/xy/axes/ValueAxis.js +1 -1
  39. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  40. package/.internal/core/Registry.js +1 -1
  41. package/.internal/core/Registry.js.map +1 -1
  42. package/.internal/core/Root.d.ts +25 -0
  43. package/.internal/core/Root.d.ts.map +1 -1
  44. package/.internal/core/Root.js +16 -4
  45. package/.internal/core/Root.js.map +1 -1
  46. package/.internal/core/render/Label.d.ts +2 -0
  47. package/.internal/core/render/Label.d.ts.map +1 -1
  48. package/.internal/core/render/Label.js.map +1 -1
  49. package/.internal/core/render/Legend.d.ts.map +1 -1
  50. package/.internal/core/render/Legend.js +2 -1
  51. package/.internal/core/render/Legend.js.map +1 -1
  52. package/.internal/core/render/RadialLabel.d.ts +5 -0
  53. package/.internal/core/render/RadialLabel.d.ts.map +1 -1
  54. package/.internal/core/render/RadialLabel.js.map +1 -1
  55. package/.internal/core/render/Sprite.d.ts +8 -0
  56. package/.internal/core/render/Sprite.d.ts.map +1 -1
  57. package/.internal/core/render/Sprite.js +9 -1
  58. package/.internal/core/render/Sprite.js.map +1 -1
  59. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  60. package/.internal/core/render/backend/CanvasRenderer.js +1 -0
  61. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  62. package/.internal/core/util/Entity.js.map +1 -1
  63. package/.internal/plugins/exporting/Annotator.d.ts.map +1 -1
  64. package/.internal/plugins/exporting/Annotator.js +5 -1
  65. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  66. package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
  67. package/.internal/plugins/exporting/ExportingMenu.js +11 -6
  68. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  69. package/.internal/plugins/json/Json.d.ts.map +1 -1
  70. package/.internal/plugins/json/Json.js +37 -21
  71. package/.internal/plugins/json/Json.js.map +1 -1
  72. package/CHANGELOG.md +29 -0
  73. package/examples/javascript/flow-chord/package.json +1 -1
  74. package/examples/javascript/flow-chord-directed/package.json +1 -1
  75. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  76. package/examples/javascript/flow-sankey/package.json +1 -1
  77. package/examples/javascript/gauge/package.json +1 -1
  78. package/examples/javascript/gauge-bands/package.json +1 -1
  79. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  80. package/examples/javascript/hierarchy-pack/package.json +1 -1
  81. package/examples/javascript/hierarchy-partition/package.json +1 -1
  82. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  83. package/examples/javascript/hierarchy-tree/package.json +1 -1
  84. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  85. package/examples/javascript/jest/package.json +1 -1
  86. package/examples/javascript/json-pie/package.json +1 -1
  87. package/examples/javascript/json-xy/index.js +11 -0
  88. package/examples/javascript/json-xy/package.json +1 -1
  89. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  90. package/examples/javascript/map-day-and-night/package.json +1 -1
  91. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  92. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  93. package/examples/javascript/map-with-bubbles/package.json +1 -1
  94. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  95. package/examples/javascript/misc-40-charts/package.json +1 -1
  96. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  97. package/examples/javascript/pie-chart/package.json +1 -1
  98. package/examples/javascript/pie-donut-chart/package.json +1 -1
  99. package/examples/javascript/pie-variable-radius/package.json +1 -1
  100. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  101. package/examples/javascript/radar-heat-map/package.json +1 -1
  102. package/examples/javascript/radar-line/package.json +1 -1
  103. package/examples/javascript/radar-time-line/package.json +1 -1
  104. package/examples/javascript/sliced-funnel/package.json +1 -1
  105. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  106. package/examples/javascript/sliced-pyramid/package.json +1 -1
  107. package/examples/javascript/stock-chart/package.json +1 -1
  108. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  109. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  110. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  111. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  112. package/examples/javascript/stock-chart-live/package.json +1 -1
  113. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  114. package/examples/javascript/venn-diagram/package.json +1 -1
  115. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  116. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  117. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  118. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  119. package/examples/javascript/xy-bubble/package.json +1 -1
  120. package/examples/javascript/xy-candlestick/package.json +1 -1
  121. package/examples/javascript/xy-clustered-column/package.json +1 -1
  122. package/examples/javascript/xy-column/package.json +1 -1
  123. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  124. package/examples/javascript/xy-data-grouping/package.json +1 -1
  125. package/examples/javascript/xy-draggable-range/package.json +1 -1
  126. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  127. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  128. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  129. package/examples/javascript/xy-line/package.json +1 -1
  130. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  131. package/examples/javascript/xy-live-data/package.json +1 -1
  132. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  133. package/examples/javascript/xy-ohlc/package.json +1 -1
  134. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  135. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  136. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  137. package/examples/javascript/xy-stacked-column/package.json +1 -1
  138. package/examples/javascript/xy-stacked-step/package.json +1 -1
  139. package/examples/javascript/xy-stock/package.json +1 -1
  140. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  141. package/examples/typescript/flow-chord/package.json +1 -1
  142. package/examples/typescript/flow-chord-directed/package.json +1 -1
  143. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  144. package/examples/typescript/flow-sankey/package.json +1 -1
  145. package/examples/typescript/gauge/package.json +1 -1
  146. package/examples/typescript/gauge-bands/package.json +1 -1
  147. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  148. package/examples/typescript/hierarchy-pack/package.json +1 -1
  149. package/examples/typescript/hierarchy-partition/package.json +1 -1
  150. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  151. package/examples/typescript/hierarchy-tree/package.json +1 -1
  152. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  153. package/examples/typescript/jest/package.json +1 -1
  154. package/examples/typescript/json-pie/package.json +1 -1
  155. package/examples/typescript/json-xy/index.ts +11 -0
  156. package/examples/typescript/json-xy/package.json +1 -1
  157. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  158. package/examples/typescript/map-day-and-night/package.json +1 -1
  159. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  160. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  161. package/examples/typescript/map-with-bubbles/package.json +1 -1
  162. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  163. package/examples/typescript/misc-40-charts/package.json +1 -1
  164. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  165. package/examples/typescript/pie-chart/package.json +1 -1
  166. package/examples/typescript/pie-donut-chart/package.json +1 -1
  167. package/examples/typescript/pie-variable-radius/package.json +1 -1
  168. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  169. package/examples/typescript/radar-heat-map/package.json +1 -1
  170. package/examples/typescript/radar-line/package.json +1 -1
  171. package/examples/typescript/radar-time-line/package.json +1 -1
  172. package/examples/typescript/sliced-funnel/package.json +1 -1
  173. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  174. package/examples/typescript/sliced-pyramid/package.json +1 -1
  175. package/examples/typescript/stock-chart/package.json +1 -1
  176. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  177. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  178. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  179. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  180. package/examples/typescript/stock-chart-live/package.json +1 -1
  181. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  182. package/examples/typescript/venn-diagram/package.json +1 -1
  183. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  184. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  185. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  186. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  187. package/examples/typescript/xy-bubble/package.json +1 -1
  188. package/examples/typescript/xy-candlestick/package.json +1 -1
  189. package/examples/typescript/xy-clustered-column/package.json +1 -1
  190. package/examples/typescript/xy-column/package.json +1 -1
  191. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  192. package/examples/typescript/xy-data-grouping/package.json +1 -1
  193. package/examples/typescript/xy-draggable-range/package.json +1 -1
  194. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  195. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  196. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  197. package/examples/typescript/xy-line/package.json +1 -1
  198. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  199. package/examples/typescript/xy-live-data/package.json +1 -1
  200. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  201. package/examples/typescript/xy-ohlc/package.json +1 -1
  202. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  203. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  204. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  205. package/examples/typescript/xy-stacked-column/package.json +1 -1
  206. package/examples/typescript/xy-stacked-step/package.json +1 -1
  207. package/examples/typescript/xy-stock/package.json +1 -1
  208. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  209. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"DateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport type { XYSeries, IXYSeriesDataItem } from \"../series/XYSeries\";\nimport { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from \"./ValueAxis\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $order from \"../../../core/util/Order\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $object from \"../../../core/util/Object\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport * as $time from \"../../../core/util/Time\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport type { TimeUnit } from \"../../../core/util/Time\";\n\nexport interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Relative location of where axis cell starts: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `startLocation` is not supported by [[GaplessDateAxis]].\n\t *\n\t * @default 0\n\t */\n\tstartLocation?: number;\n\n\t/**\n\t * Relative location of where axis cell ends: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `endLocation` is not supported by [[GaplessDateAxis]].\n\t * \n\t * @default 1\n\t */\n\tendLocation?: number;\n\n\t/**\n\t * Should axis group data items togeter dynamically?\n\t *\n\t * @default false\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupData?: boolean;\n\n\t/**\n\t * Maximum number of data items in the view before data grouping kicks in.\n\t *\n\t * @default 500\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupCount?: number;\n\n\t/**\n\t * Force data item grouping to specific interval.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to group data items into.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t */\n\ttooltipDateFormat?: string | Intl.DateTimeFormatOptions;\n\n\t/**\n\t * Time unit-specific formats to use for axis tooltip.\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A value which indicates relative position within axis cell to get timestamp\n\t * for the tooltip from.\n\t *\n\t * Values are from `0` (zero) to `1` (one), meaning start and end of the cell.\n\t *\n\t * If not set, it will use cell's start tiemstamp.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipIntervalOffset?: number;\n}\n\nexport interface IDateAxisDataItem extends IValueAxisDataItem {\n}\n\nexport interface IDateAxisPrivate extends IValueAxisPrivate {\n\n\t/**\n\t * Current group interval.\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Current grid interval.\n\t */\n\tgridInterval: ITimeInterval;\n}\n\nexport interface IDateAxisEvents extends IValueAxisEvents {\n\n\t/**\n\t * Kicks in when data grouping is on, and current group interval changes, e.g. via zooming the chart.\n\t *\n\t * @since 5.2.43\n\t */\n\tgroupintervalchanged: {}\n\n}\n\n/**\n * Creates a date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/} for more info\n * @important\n */\nexport class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {\n\tpublic static className: string = \"DateAxis\";\n\tpublic static classNames: Array<string> = ValueAxis.classNames.concat([DateAxis.className]);\n\n\tdeclare public _settings: IDateAxisSettings<R>;\n\tdeclare public _privateSettings: IDateAxisPrivate;\n\tdeclare public _dataItemSettings: IDateAxisDataItem;\n\tdeclare public _events: IDateAxisEvents;\n\n\tprotected _dataGrouped: boolean = false;\n\tprotected _seriesDataGrouped: boolean = false;\n\tprotected _groupingCalculated: boolean = false;\n\tprotected _intervalDuration: number = 1;\n\tprotected _baseDuration: number = 1;\n\n\tprotected _intervalMax: { [index: string]: number } = {};\n\tprotected _intervalMin: { [index: string]: number } = {};\n\n\tpublic _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tsuper._afterNew();\n\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\tthis.on(\"baseInterval\", () => {\n\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t})\n\t}\n\n\tprotected _setBaseInterval(interval: ITimeInterval) {\n\t\tthis.setPrivateRaw(\"baseInterval\", interval);\n\t\tthis._baseDuration = $time.getIntervalDuration(interval);\n\t}\n\n\tprotected _fixZoomFactor() {\n\t\tconst maxZoomFactor = this.get(\"maxZoomFactor\");\n\t\tif (maxZoomFactor != null && maxZoomFactor != Infinity) {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", maxZoomFactor);\n\t\t}\n\t\telse {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", Math.round((this.getPrivate(\"max\", 0) - this.getPrivate(\"min\", 0)) / this.baseMainDuration()));\n\t\t}\n\t}\n\n\tprotected _groupData() {\n\t\tconst min = this.getPrivate(\"min\");\n\t\tconst max = this.getPrivate(\"max\");\n\n\t\tif (($type.isNumber(min) && $type.isNumber(max))) {\n\n\t\t\tthis._fixZoomFactor();\n\n\t\t\tconst groupInterval = this.getPrivate(\"groupInterval\")!;\n\t\t\tif (groupInterval) {\n\t\t\t\tthis._setBaseInterval(groupInterval);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t\t}\n\n\n\t\t\tif (this.isDirty(\"groupInterval\")) {\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\")!;\n\t\t\t\tif (groupInterval) {\n\t\t\t\t\tthis.setRaw(\"groupIntervals\", [groupInterval]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isDirty(\"groupData\")) {\n\t\t\t\tif (!this._dataGrouped) {\n\t\t\t\t\tif (this.get(\"groupData\")) {\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tthis._groupSeriesData(series);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._handleRangeChange();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\t\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tseries.setDataSet(mainDataSetId);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._setBaseInterval(baseInterval);\n\t\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", undefined);\n\t\t\t\t\t\tthis.markDirtyExtremes();\n\t\t\t\t\t}\n\t\t\t\t\tthis._dataGrouped = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\tpublic _groupSeriesData(series: XYSeries) {\n\t\tif (this.get(\"groupData\") && !series.get(\"groupDataDisabled\")) {\n\n\t\t\tthis._dataGrouped = true; // helps to avoid double grouping\n\n\t\t\tthis._seriesDataGrouped = true;\n\n\t\t\t// make array of intervals which will be used;\n\t\t\tlet intervals: ITimeInterval[] = [];\n\t\t\tlet baseDuration = this.baseMainDuration();\n\n\t\t\tlet groupIntervals = this.get(\"groupIntervals\")!;\n\t\t\tif (groupIntervals) { }\n\t\t\t$array.each(groupIntervals, (interval) => {\n\t\t\t\tlet intervalDuration = $time.getIntervalDuration(interval);\n\t\t\t\tif (intervalDuration > baseDuration) {\n\t\t\t\t\tintervals.push(interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tseries._dataSets = {};\n\n\t\t\tconst key = this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!;\n\t\t\tlet fields: Array<string>;\n\n\t\t\tconst baseAxis = series.get(\"baseAxis\");\n\n\t\t\tif (series.get(\"xAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueYFields;\n\t\t\t}\n\t\t\telse if (series.get(\"yAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueXFields;\n\t\t\t}\n\n\t\t\tlet dataItems = series._mainDataItems;\n\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\n\t\t\tseries._dataSets[mainDataSetId] = dataItems;\n\n\t\t\tconst groupCallback = series.get(\"groupDataCallback\");\n\t\t\tlet groupOriginals = series.get(\"groupDataWithOriginals\", false);\n\t\t\tif (groupCallback) {\n\t\t\t\tgroupOriginals = true;\n\t\t\t}\n\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\n\t\t\t$array.each(intervals, (interval) => {\n\n\t\t\t\tlet previousTime = -Infinity;\n\t\t\t\tlet dataSetId = interval.timeUnit + interval.count;\n\t\t\t\tseries._dataSets[dataSetId] = [];\n\n\t\t\t\tlet newDataItem: DataItem<IXYSeriesDataItem>;\n\n\t\t\t\tlet sum: { [index: string]: number } = {};\n\t\t\t\tlet count: { [index: string]: number } = {};\n\n\t\t\t\tlet groupFieldValues: { [index: string]: string } = {};\n\t\t\t\tlet workingFields: { [index: string]: string } = {};\n\n\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\tgroupFieldValues[field] = series.get((field + \"Grouped\") as any);\n\t\t\t\t\tworkingFields[field] = field + \"Working\";\n\t\t\t\t})\n\n\t\t\t\tlet intervalDuration = $time.getDuration(interval.timeUnit);\n\n\t\t\t\tlet firstItem = dataItems[0];\n\t\t\t\tlet firstDate: Date;\n\t\t\t\tif (firstItem) {\n\t\t\t\t\tfirstDate = new Date(dataItems[0].get(key as any));\n\t\t\t\t}\n\n\t\t\t\tlet prevNewDataItem: DataItem<IXYSeriesDataItem> | undefined;\n\t\t\t\t$array.each(dataItems, (dataItem) => {\n\t\t\t\t\tlet time = dataItem.get(key as any);\n\t\t\t\t\tlet roundedTime = $time.round(new Date(time), interval.timeUnit, interval.count, firstDay, utc, firstDate, timezone).getTime();\n\t\t\t\t\tlet dataContext: any;\n\n\t\t\t\t\tif (previousTime < roundedTime - intervalDuration / 24) {\n\t\t\t\t\t\tdataContext = $object.copy(dataItem.dataContext);\n\n\t\t\t\t\t\tnewDataItem = new DataItem(series, dataContext, series._makeDataItem(dataContext));\n\t\t\t\t\t\tnewDataItem.setRaw(key as any, roundedTime);\n\n\t\t\t\t\t\tseries._dataSets[dataSetId].push(newDataItem);\n\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\t\t\t\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, value);\n\t\t\t\t\t\t\t\tcount[field] = 1;\n\t\t\t\t\t\t\t\tsum[field] = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.set(\"originals\", [dataItem]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprevNewDataItem = newDataItem;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet groupKey = groupFieldValues[field];\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\n\t\t\t\t\t\t\tif (value !== undefined) {\n\n\t\t\t\t\t\t\t\tlet currentValue = newDataItem.get(field as any);\n\n\t\t\t\t\t\t\t\tswitch (groupKey) {\n\t\t\t\t\t\t\t\t\tcase \"close\":\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"sum\":\n\t\t\t\t\t\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, currentValue + value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"open\":\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"low\":\n\t\t\t\t\t\t\t\t\t\tif (value < currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"high\":\n\t\t\t\t\t\t\t\t\t\tif (value > currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"average\":\n\t\t\t\t\t\t\t\t\t\tcount[field]++;\n\t\t\t\t\t\t\t\t\t\tsum[field] += value;\n\t\t\t\t\t\t\t\t\t\tlet average = sum[field] / count[field];\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, average);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"extreme\":\n\t\t\t\t\t\t\t\t\t\tif (Math.abs(value) > Math.abs(currentValue)) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, newDataItem.get(field as any));\n\t\t\t\t\t\t\t\tlet dataContext: any = $object.copy(dataItem.dataContext);\n\t\t\t\t\t\t\t\tdataContext[key as any] = roundedTime;\n\t\t\t\t\t\t\t\tnewDataItem.dataContext = dataContext;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.get(\"originals\")!.push(dataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpreviousTime = roundedTime;\n\t\t\t\t})\n\n\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (series._dataSetId) {\n\t\t\t\tseries.setDataSet(series._dataSetId);\n\t\t\t}\n\t\t\tthis.markDirtySize();\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._groupingCalculated = false;\n\t\tthis._dataGrouped = false;\n\t}\n\n\t/**\n\t * Returns a time interval axis would group data to for a specified duration.\n\t *\n\t * @since 5.2.1\n\t */\n\tpublic getGroupInterval(duration: number): ITimeInterval {\n\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\tlet groupInterval = $time.chooseInterval(0, duration, this.get(\"groupCount\", Infinity), this.get(\"groupIntervals\")!);\n\t\tif ($time.getIntervalDuration(groupInterval) < $time.getIntervalDuration(baseInterval)) {\n\t\t\tgroupInterval = { ...baseInterval };\n\t\t}\n\t\treturn groupInterval;\n\t}\n\n\t/**\n\t * Return `max` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Max\n\t */\n\tpublic getIntervalMax(interval: ITimeInterval): number {\n\t\treturn this._intervalMax[interval.timeUnit + interval.count];\n\t}\n\n\t/**\n\t * Return `min` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Min\n\t */\n\tpublic getIntervalMin(interval: ITimeInterval): number {\n\t\treturn this._intervalMin[interval.timeUnit + interval.count];\n\t}\n\n\tprotected _handleRangeChange() {\n\t\tsuper._handleRangeChange();\n\n\t\tlet selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\tlet selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\n\t\tif ($type.isNumber(selectionMin) && $type.isNumber(selectionMax)) {\n\n\t\t\tif (this.get(\"endLocation\") == 0) {\n\t\t\t\tselectionMax += 1;\n\t\t\t}\n\n\t\t\tif (this.get(\"groupData\") && !this._groupingCalculated) {\n\t\t\t\tthis._groupingCalculated = true;\n\n\t\t\t\tlet modifiedDifference = (selectionMax - selectionMin) + (this.get(\"startLocation\", 0) + (1 - this.get(\"endLocation\", 1)) * this.baseDuration());\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\");\n\n\t\t\t\tif (!groupInterval) {\n\t\t\t\t\tgroupInterval = this.getGroupInterval(modifiedDifference);\n\t\t\t\t}\n\n\t\t\t\tlet current = this.getPrivate(\"groupInterval\");\n\n\t\t\t\tif (groupInterval && (!current || (current.timeUnit !== groupInterval.timeUnit || current.count !== groupInterval.count) || this._seriesDataGrouped)) {\n\t\t\t\t\tthis._seriesDataGrouped = false;\n\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", groupInterval);\n\t\t\t\t\tthis._setBaseInterval(groupInterval)\n\n\n\t\t\t\t\tlet newId = groupInterval.timeUnit + groupInterval.count;\n\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\t\t\tseries.setDataSet(newId);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tthis.markDirtyExtremes();\n\n\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\t\tconst type = \"groupintervalchanged\";\n\t\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\n\t\t\t\t\tconst start = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMin);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet startIndex = start.index;\n\n\t\t\t\t\tif (startIndex > 0) {\n\t\t\t\t\t\tstartIndex -= 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectionMax += this.baseDuration() * (1 - this.get(\"endLocation\", 1));\n\n\t\t\t\t\tconst end = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMax);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet endIndex = end.index;\n\n\t\t\t\t\tlet endIndex2 = endIndex;\n\t\t\t\t\tif (endIndex2 > 0) {\n\t\t\t\t\t\tendIndex2--;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst firstDataItem = series.dataItems[startIndex];\n\t\t\t\t\tconst lastDataItem = series.dataItems[endIndex2];\n\n\t\t\t\t\tlet lastDate: number | undefined;\n\t\t\t\t\tlet firstDate: number | undefined;\n\t\t\t\t\tif (firstDataItem) {\n\t\t\t\t\t\tfirstDate = firstDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lastDataItem) {\n\t\t\t\t\t\tlastDate = lastDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet outOfSelection = false;\n\t\t\t\t\tif (lastDate != null && firstDate != null) {\n\t\t\t\t\t\tif (lastDate < selectionMin || firstDate > selectionMax) {\n\t\t\t\t\t\t\toutOfSelection = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tseries.setPrivate(\"outOfSelection\", outOfSelection);\n\t\t\t\t\tseries.setPrivate(\"startIndex\", startIndex);\n\t\t\t\t\tseries.setPrivate(\"endIndex\", endIndex);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, _strictMode?: boolean): IMinMaxStep {\n\t\treturn { min: min, max: max, step: (max - min) / gridCount };\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic intervalDuration(): number {\n\t\treturn this._intervalDuration;\n\t}\n\n\tprotected _saveMinMax(min: number, max: number) {\n\t\tlet groupInterval = this.getPrivate(\"groupInterval\");\n\n\t\tif (!groupInterval) {\n\t\t\tgroupInterval = this.get(\"baseInterval\");\n\t\t}\n\n\t\tlet id = groupInterval.timeUnit + groupInterval.count;\n\t\tthis._intervalMin[id] = min;\n\t\tthis._intervalMax[id] = max;\n\t}\n\n\tprotected _getM(timeUnit: TimeUnit) {\n\t\tif (timeUnit == \"month\" || timeUnit == \"year\" || timeUnit == \"day\") {\n\t\t\treturn 1.05;\n\t\t}\n\t\treturn 1.01;\n\t}\n\n\tprotected _prepareAxisItems() {\n\t\tconst min = this.getPrivate(\"min\");\n\t\tconst max = this.getPrivate(\"max\");\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\t\t\tconst selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\t\tconst selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\t\t\tconst renderer = this.get(\"renderer\");\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\t\tlet value = selectionMin;\n\t\t\tlet i = 0;\n\n\t\t\tconst intervals = this.get(\"gridIntervals\")!;\n\t\t\tlet gridInterval = $time.chooseInterval(0, selectionMax - selectionMin, renderer.gridCount(), intervals);\n\n\t\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\t\tgridInterval = { ...baseInterval };\n\t\t\t}\n\n\t\t\tconst intervalDuration = $time.getIntervalDuration(gridInterval);\n\t\t\tthis._intervalDuration = intervalDuration;\n\n\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\n\t\t\tvalue = $time.round(new Date(selectionMin - intervalDuration), gridInterval.timeUnit, gridInterval.count, firstDay, utc, new Date(min), timezone).getTime();\n\t\t\tlet previousValue = value - intervalDuration;\n\t\t\tlet format: string | Intl.DateTimeFormatOptions;\n\t\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\t\tthis.setPrivateRaw(\"gridInterval\", gridInterval);\n\n\t\t\twhile (value < selectionMax + intervalDuration) {\n\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\tif (this.dataItems.length < i + 1) {\n\t\t\t\t\tdataItem = new DataItem(this, undefined, {});\n\t\t\t\t\tthis._dataItems.push(dataItem);\n\t\t\t\t\tthis.processDataItem(dataItem);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdataItem = this.dataItems[i];\n\t\t\t\t}\n\n\t\t\t\tthis._createAssets(dataItem, []);\n\n\t\t\t\tif (dataItem.isHidden()) {\n\t\t\t\t\tdataItem.show();\n\t\t\t\t}\n\n\t\t\t\tdataItem.setRaw(\"value\", value);\n\n\n\n\t\t\t\tlet endValue = value + $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\n\t\t\t\tendValue = $time.round(new Date(endValue), gridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\n\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\n\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, utc, timezone)) {\n\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\n\n\t\t\t\tpreviousValue = value;\n\t\t\t\tvalue = endValue;\n\n\t\t\t\tif (value == previousValue) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\tfor (let j = i; j < this.dataItems.length; j++) {\n\t\t\t\tthis.dataItems[j].hide();\n\t\t\t}\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.inited) {\n\t\t\t\t\tseries._markDirtyAxes();\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tthis._updateGhost();\n\t}\n\n\tprotected _updateFinals(start: number, end: number) {\n\t\tthis.setPrivateRaw(\"selectionMinFinal\", this.positionToValue(start));\n\t\tthis.setPrivateRaw(\"selectionMaxFinal\", this.positionToValue(end));\n\t}\n\n\tprotected _getDelta() {\n\t\tthis._deltaMinMax = this.baseDuration() / 2;\n\t}\n\n\tprotected _fixMin(min: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\tconst timezone = this._root.timezone;\n\t\tconst utc = this._root.utc;\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\tlet startTime = $time.round(new Date(min), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\tendTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\treturn startTime + (endTime - startTime) * this.get(\"startLocation\", 0);\n\t}\n\n\tprotected _fixMax(max: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\tconst timezone = this._root.timezone;\n\t\tconst utc = this._root.utc;\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\tlet startTime = $time.round(new Date(max), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\tendTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\treturn startTime + (endTime - startTime) * this.get(\"endLocation\", 1);\n\t}\n\n\tprotected _updateDates(_date: number) {\n\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t * \n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn this._baseDuration;\n\t\t//return $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\t/**\n\t * Returns a duration of user-defined `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseMainDuration(): number {\n\t\treturn $time.getIntervalDuration(this.get(\"baseInterval\"));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processSeriesDataItem(dataItem: DataItem<IXYSeriesDataItem>, fields: Array<string>) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif (!dataItem.open) {\n\t\t\tdataItem.open = {};\n\t\t}\n\t\tif (!dataItem.close) {\n\t\t\tdataItem.close = {};\n\t\t}\n\n\t\t$array.each(fields, (field) => {\n\t\t\tlet value = dataItem.get(field as any);\n\t\t\tif ($type.isNumber(value)) {\n\t\t\t\tlet startTime = dataItem.open![field];\n\t\t\t\tlet endTime = dataItem.close![field];\n\t\t\t\t// this is done to save cpu, as rounding is quite expensive, especially with timezone set. \n\t\t\t\t// if value is between prev start and end, it means it didn't change, all is fine.\n\t\t\t\tif (value >= startTime && value <= endTime) {\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\t\t\tconst utc = this._root.utc;\n\t\t\t\t\tconst timezone = this._root.timezone\n\t\t\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\t\t\tconst count = baseInterval.count;\n\t\t\t\t\tstartTime = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tendTime = startTime + $time.getDuration(timeUnit, count * this._getM(timeUnit));\n\t\t\t\t\tendTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\t\t\t\tdataItem.open![field] = startTime;\n\t\t\t\t\tdataItem.close![field] = endTime;\n\t\t\t\t}\n\n\t\t\t\tthis._updateDates(startTime);\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\n\t\tlet openValue;\n\t\tlet closeValue;\n\n\t\tif (dataItem.open && dataItem.close) {\n\t\t\topenValue = dataItem.open[field];\n\t\t\tcloseValue = dataItem.close[field];\n\t\t}\n\t\telse {\n\t\t\topenValue = dataItem.get(field as any)\n\t\t\tcloseValue = openValue;\n\t\t}\n\n\t\tlet value = openValue + (closeValue - openValue) * cellLocation;\n\n\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionX(dataItem, field, cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\t\tlet openValue;\n\t\tlet closeValue;\n\n\t\tif (dataItem.open && dataItem.close) {\n\t\t\topenValue = dataItem.open[field];\n\t\t\tcloseValue = dataItem.close[field];\n\t\t}\n\t\telse {\n\t\t\topenValue = dataItem.get(field as any)\n\t\t\tcloseValue = openValue;\n\t\t}\n\n\t\tlet value = openValue + (closeValue - openValue) * cellLocation;\n\n\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionY(dataItem, field, cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic roundAxisPosition(position: number, location: number): number {\n\t\tlet value = this.positionToValue(position);\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\tif (!$type.isNaN(value)) {\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\t\t\tconst count = baseInterval.count;\n\n\t\t\tvalue = $time.round(new Date(value), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\n\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, new Date(value), firstDay, utc, timezone);\n\t\t\tif (timezone) {\n\t\t\t\tvalue = $time.round(new Date(value + this.baseDuration() * 0.05), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\t\t\t\tduration = $time.getDateIntervalDuration(baseInterval, new Date(value + duration * location), firstDay, utc, timezone);\n\t\t\t}\n\n\t\t\treturn this.valueToPosition(value + duration * location);\n\t\t}\n\t\treturn NaN;\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tif (this.getPrivate(\"min\") != null) {\n\t\t\tlet format = this.get(\"tooltipDateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\tlet value = this.positionToValue(position);\n\t\t\tlet date = new Date(value);\n\n\t\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, date, this._root.locale.firstDayOfWeek, this._root.utc, this._root.timezone);\n\t\t\treturn this._root.dateFormatter.format(new Date(value + this.get(\"tooltipIntervalOffset\", -this.get(\"tooltipLocation\", 0.5)) * duration), this.get(\"tooltipDateFormat\", format));\n\t\t}\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Returns a data item from series that is closest to the `position`.\n\t *\n\t * @param series Series\n\t * @param position Relative position\n\t * @return Data item\n\t */\n\tpublic getSeriesItem(series: XYSeries, position: number, location?: number): DataItem<IXYSeriesDataItem> | undefined {\n\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\t\tlet value = this.positionToValue(position);\n\n\t\tif (location == null) {\n\t\t\tlocation = 0.5;\n\t\t}\n\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tconst result = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\tlet diValue = 0;\n\t\t\tif (dataItem.open) {\n\t\t\t\tdiValue = dataItem.open[fieldName];\n\t\t\t}\n\n\t\t\treturn $order.compare(diValue, value);\n\t\t});\n\n\t\tif (series.get(\"snapTooltip\")) {\n\t\t\tlet first = series.dataItems[result.index - 1];\n\t\t\tlet second = series.dataItems[result.index];\n\n\t\t\tif (first && second) {\n\t\t\t\tif (first.open && second.close) {\n\t\t\t\t\tlet open = first.open[fieldName];\n\t\t\t\t\tlet close = second.close[fieldName];\n\n\t\t\t\t\tif (Math.abs(value - open) > Math.abs(value - close)) {\n\t\t\t\t\t\treturn second;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (first) {\n\t\t\t\treturn first;\n\t\t\t}\n\n\t\t\tif (second) {\n\t\t\t\treturn second;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// @todo check if is in range\n\t\t\tconst dataItem = series.dataItems[result.index - 1];\n\n\t\t\tif (dataItem) {\n\t\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\t\tlet open = dataItem.open[fieldName];\n\t\t\t\t\tlet close = dataItem.close[fieldName];\n\n\t\t\t\t\tif (value >= open && value <= close) {\n\t\t\t\t\t\treturn dataItem;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic shouldGap(dataItem: DataItem<IXYSeriesDataItem>, nextItem: DataItem<IXYSeriesDataItem>, autoGapCount: number, fieldName: string): boolean {\n\t\tconst value1 = dataItem.get(fieldName as any);\n\t\tconst value2 = nextItem.get(fieldName as any);\n\n\t\tif (value2 - value1 > this.baseDuration() * autoGapCount) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Zooms the axis to specific `start` and `end` dates.\n\t *\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\n\t *\n\t * @param start Start Date\n\t * @param end End Date\n\t * @param duration Duration in milliseconds\n\t */\n\tpublic zoomToDates(start: Date, end: Date, duration?: number) {\n\t\tthis.zoomToValues(start.getTime(), end.getTime(), duration);\n\t}\n\n\t/**\n\t * Returns a `Date` object corresponding to specific position within plot\n\t * area.\n\t *\n\t * @param position Pposition\n\t * @return Date\n\t */\n\tpublic positionToDate(position: number): Date {\n\t\treturn new Date(this.positionToValue(position));\n\t}\n\n\t/**\n\t * Returns a relative position within plot area that corresponds to specific\n\t * date.\n\t *\n\t * @param date Date\n\t * @return Position\n\t */\n\tpublic dateToPosition(date: Date): number {\n\t\treturn this.valueToPosition(date.getTime());\n\t}\n\n\t/**\n\t * Returns relative position between two grid lines of the axis.\n\t *\n\t * @since 5.2.30\n\t * @return Position\n\t */\n\tpublic getCellWidthPosition(): number {\n\t\tlet max = this.getPrivate(\"selectionMax\", this.getPrivate(\"max\"));\n\t\tlet min = this.getPrivate(\"selectionMin\", this.getPrivate(\"min\"));\n\n\t\tif ($type.isNumber(max) && $type.isNumber(min)) {\n\t\t\treturn this._intervalDuration / (max - min);\n\t\t}\n\t\treturn 0.05;\n\t}\n}\n"]}
1
+ {"version":3,"file":"DateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport type { XYSeries, IXYSeriesDataItem } from \"../series/XYSeries\";\nimport { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from \"./ValueAxis\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $order from \"../../../core/util/Order\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $object from \"../../../core/util/Object\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport * as $time from \"../../../core/util/Time\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport type { TimeUnit } from \"../../../core/util/Time\";\n\nexport interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Relative location of where axis cell starts: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `startLocation` is not supported by [[GaplessDateAxis]].\n\t *\n\t * @default 0\n\t */\n\tstartLocation?: number;\n\n\t/**\n\t * Relative location of where axis cell ends: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `endLocation` is not supported by [[GaplessDateAxis]].\n\t * \n\t * @default 1\n\t */\n\tendLocation?: number;\n\n\t/**\n\t * Should axis group data items togeter dynamically?\n\t *\n\t * @default false\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupData?: boolean;\n\n\t/**\n\t * Maximum number of data items in the view before data grouping kicks in.\n\t *\n\t * @default 500\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupCount?: number;\n\n\t/**\n\t * Force data item grouping to specific interval.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to group data items into.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t */\n\ttooltipDateFormat?: string | Intl.DateTimeFormatOptions;\n\n\t/**\n\t * Time unit-specific formats to use for axis tooltip.\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A value which indicates relative position within axis cell to get timestamp\n\t * for the tooltip from.\n\t *\n\t * Values are from `-1` to `1`.\n\t *\n\t * If not set, it will use `tooltipLocation` value, if `tooltipLocation`` is\n\t * not set, it will use -0.5.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipIntervalOffset?: number;\n}\n\nexport interface IDateAxisDataItem extends IValueAxisDataItem {\n}\n\nexport interface IDateAxisPrivate extends IValueAxisPrivate {\n\n\t/**\n\t * Current group interval.\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Current grid interval.\n\t */\n\tgridInterval: ITimeInterval;\n}\n\nexport interface IDateAxisEvents extends IValueAxisEvents {\n\n\t/**\n\t * Kicks in when data grouping is on, and current group interval changes, e.g. via zooming the chart.\n\t *\n\t * @since 5.2.43\n\t */\n\tgroupintervalchanged: {}\n\n}\n\n/**\n * Creates a date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/} for more info\n * @important\n */\nexport class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {\n\tpublic static className: string = \"DateAxis\";\n\tpublic static classNames: Array<string> = ValueAxis.classNames.concat([DateAxis.className]);\n\n\tdeclare public _settings: IDateAxisSettings<R>;\n\tdeclare public _privateSettings: IDateAxisPrivate;\n\tdeclare public _dataItemSettings: IDateAxisDataItem;\n\tdeclare public _events: IDateAxisEvents;\n\n\tprotected _dataGrouped: boolean = false;\n\tprotected _seriesDataGrouped: boolean = false;\n\tprotected _groupingCalculated: boolean = false;\n\tprotected _intervalDuration: number = 1;\n\tprotected _baseDuration: number = 1;\n\n\tprotected _intervalMax: { [index: string]: number } = {};\n\tprotected _intervalMin: { [index: string]: number } = {};\n\n\tpublic _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tsuper._afterNew();\n\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\tthis.on(\"baseInterval\", () => {\n\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t})\n\t}\n\n\tprotected _setBaseInterval(interval: ITimeInterval) {\n\t\tthis.setPrivateRaw(\"baseInterval\", interval);\n\t\tthis._baseDuration = $time.getIntervalDuration(interval);\n\t}\n\n\tprotected _fixZoomFactor() {\n\t\tconst maxZoomFactor = this.get(\"maxZoomFactor\");\n\t\tif (maxZoomFactor != null && maxZoomFactor != Infinity) {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", maxZoomFactor);\n\t\t}\n\t\telse {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", Math.round((this.getPrivate(\"max\", 0) - this.getPrivate(\"min\", 0)) / this.baseMainDuration()));\n\t\t}\n\t}\n\n\tprotected _groupData() {\n\t\tconst min = this.getPrivate(\"min\");\n\t\tconst max = this.getPrivate(\"max\");\n\n\t\tif (($type.isNumber(min) && $type.isNumber(max))) {\n\n\t\t\tthis._fixZoomFactor();\n\n\t\t\tconst groupInterval = this.getPrivate(\"groupInterval\")!;\n\t\t\tif (groupInterval) {\n\t\t\t\tthis._setBaseInterval(groupInterval);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t\t}\n\n\n\t\t\tif (this.isDirty(\"groupInterval\")) {\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\")!;\n\t\t\t\tif (groupInterval) {\n\t\t\t\t\tthis.setRaw(\"groupIntervals\", [groupInterval]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isDirty(\"groupData\")) {\n\t\t\t\tif (!this._dataGrouped) {\n\t\t\t\t\tif (this.get(\"groupData\")) {\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tthis._groupSeriesData(series);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._handleRangeChange();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\t\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tseries.setDataSet(mainDataSetId);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._setBaseInterval(baseInterval);\n\t\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", undefined);\n\t\t\t\t\t\tthis.markDirtyExtremes();\n\t\t\t\t\t}\n\t\t\t\t\tthis._dataGrouped = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\tpublic _groupSeriesData(series: XYSeries) {\n\t\tif (this.get(\"groupData\") && !series.get(\"groupDataDisabled\")) {\n\n\t\t\tthis._dataGrouped = true; // helps to avoid double grouping\n\n\t\t\tthis._seriesDataGrouped = true;\n\n\t\t\t// make array of intervals which will be used;\n\t\t\tlet intervals: ITimeInterval[] = [];\n\t\t\tlet baseDuration = this.baseMainDuration();\n\n\t\t\tlet groupIntervals = this.get(\"groupIntervals\")!;\n\t\t\tif (groupIntervals) { }\n\t\t\t$array.each(groupIntervals, (interval) => {\n\t\t\t\tlet intervalDuration = $time.getIntervalDuration(interval);\n\t\t\t\tif (intervalDuration > baseDuration) {\n\t\t\t\t\tintervals.push(interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tseries._dataSets = {};\n\n\t\t\tconst key = this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!;\n\t\t\tlet fields: Array<string>;\n\n\t\t\tconst baseAxis = series.get(\"baseAxis\");\n\n\t\t\tif (series.get(\"xAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueYFields;\n\t\t\t}\n\t\t\telse if (series.get(\"yAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueXFields;\n\t\t\t}\n\n\t\t\tlet dataItems = series._mainDataItems;\n\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\n\t\t\tseries._dataSets[mainDataSetId] = dataItems;\n\n\t\t\tconst groupCallback = series.get(\"groupDataCallback\");\n\t\t\tlet groupOriginals = series.get(\"groupDataWithOriginals\", false);\n\t\t\tif (groupCallback) {\n\t\t\t\tgroupOriginals = true;\n\t\t\t}\n\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\n\t\t\t$array.each(intervals, (interval) => {\n\n\t\t\t\tlet previousTime = -Infinity;\n\t\t\t\tlet dataSetId = interval.timeUnit + interval.count;\n\t\t\t\tseries._dataSets[dataSetId] = [];\n\n\t\t\t\tlet newDataItem: DataItem<IXYSeriesDataItem>;\n\n\t\t\t\tlet sum: { [index: string]: number } = {};\n\t\t\t\tlet count: { [index: string]: number } = {};\n\n\t\t\t\tlet groupFieldValues: { [index: string]: string } = {};\n\t\t\t\tlet workingFields: { [index: string]: string } = {};\n\n\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\tgroupFieldValues[field] = series.get((field + \"Grouped\") as any);\n\t\t\t\t\tworkingFields[field] = field + \"Working\";\n\t\t\t\t})\n\n\t\t\t\tlet intervalDuration = $time.getDuration(interval.timeUnit);\n\n\t\t\t\tlet firstItem = dataItems[0];\n\t\t\t\tlet firstDate: Date;\n\t\t\t\tif (firstItem) {\n\t\t\t\t\tfirstDate = new Date(dataItems[0].get(key as any));\n\t\t\t\t}\n\n\t\t\t\tlet prevNewDataItem: DataItem<IXYSeriesDataItem> | undefined;\n\t\t\t\t$array.each(dataItems, (dataItem) => {\n\t\t\t\t\tlet time = dataItem.get(key as any);\n\t\t\t\t\tlet roundedTime = $time.round(new Date(time), interval.timeUnit, interval.count, firstDay, utc, firstDate, timezone).getTime();\n\t\t\t\t\tlet dataContext: any;\n\n\t\t\t\t\tif (previousTime < roundedTime - intervalDuration / 24) {\n\t\t\t\t\t\tdataContext = $object.copy(dataItem.dataContext);\n\n\t\t\t\t\t\tnewDataItem = new DataItem(series, dataContext, series._makeDataItem(dataContext));\n\t\t\t\t\t\tnewDataItem.setRaw(key as any, roundedTime);\n\n\t\t\t\t\t\tseries._dataSets[dataSetId].push(newDataItem);\n\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\t\t\t\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, value);\n\t\t\t\t\t\t\t\tcount[field] = 1;\n\t\t\t\t\t\t\t\tsum[field] = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.set(\"originals\", [dataItem]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprevNewDataItem = newDataItem;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet groupKey = groupFieldValues[field];\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\n\t\t\t\t\t\t\tif (value !== undefined) {\n\n\t\t\t\t\t\t\t\tlet currentValue = newDataItem.get(field as any);\n\n\t\t\t\t\t\t\t\tswitch (groupKey) {\n\t\t\t\t\t\t\t\t\tcase \"close\":\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"sum\":\n\t\t\t\t\t\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, currentValue + value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"open\":\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"low\":\n\t\t\t\t\t\t\t\t\t\tif (value < currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"high\":\n\t\t\t\t\t\t\t\t\t\tif (value > currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"average\":\n\t\t\t\t\t\t\t\t\t\tcount[field]++;\n\t\t\t\t\t\t\t\t\t\tsum[field] += value;\n\t\t\t\t\t\t\t\t\t\tlet average = sum[field] / count[field];\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, average);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"extreme\":\n\t\t\t\t\t\t\t\t\t\tif (Math.abs(value) > Math.abs(currentValue)) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, newDataItem.get(field as any));\n\t\t\t\t\t\t\t\tlet dataContext: any = $object.copy(dataItem.dataContext);\n\t\t\t\t\t\t\t\tdataContext[key as any] = roundedTime;\n\t\t\t\t\t\t\t\tnewDataItem.dataContext = dataContext;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.get(\"originals\")!.push(dataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpreviousTime = roundedTime;\n\t\t\t\t})\n\n\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (series._dataSetId) {\n\t\t\t\tseries.setDataSet(series._dataSetId);\n\t\t\t}\n\t\t\tthis.markDirtySize();\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._groupingCalculated = false;\n\t\tthis._dataGrouped = false;\n\t}\n\n\t/**\n\t * Returns a time interval axis would group data to for a specified duration.\n\t *\n\t * @since 5.2.1\n\t */\n\tpublic getGroupInterval(duration: number): ITimeInterval {\n\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\tlet groupInterval = $time.chooseInterval(0, duration, this.get(\"groupCount\", Infinity), this.get(\"groupIntervals\")!);\n\t\tif ($time.getIntervalDuration(groupInterval) < $time.getIntervalDuration(baseInterval)) {\n\t\t\tgroupInterval = { ...baseInterval };\n\t\t}\n\t\treturn groupInterval;\n\t}\n\n\t/**\n\t * Return `max` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Max\n\t */\n\tpublic getIntervalMax(interval: ITimeInterval): number {\n\t\treturn this._intervalMax[interval.timeUnit + interval.count];\n\t}\n\n\t/**\n\t * Return `min` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Min\n\t */\n\tpublic getIntervalMin(interval: ITimeInterval): number {\n\t\treturn this._intervalMin[interval.timeUnit + interval.count];\n\t}\n\n\tprotected _handleRangeChange() {\n\t\tsuper._handleRangeChange();\n\n\t\tlet selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\tlet selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\n\t\tif ($type.isNumber(selectionMin) && $type.isNumber(selectionMax)) {\n\n\t\t\tif (this.get(\"endLocation\") == 0) {\n\t\t\t\tselectionMax += 1;\n\t\t\t}\n\n\t\t\tif (this.get(\"groupData\") && !this._groupingCalculated) {\n\t\t\t\tthis._groupingCalculated = true;\n\n\t\t\t\tlet modifiedDifference = (selectionMax - selectionMin) + (this.get(\"startLocation\", 0) + (1 - this.get(\"endLocation\", 1)) * this.baseDuration());\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\");\n\n\t\t\t\tif (!groupInterval) {\n\t\t\t\t\tgroupInterval = this.getGroupInterval(modifiedDifference);\n\t\t\t\t}\n\n\t\t\t\tlet current = this.getPrivate(\"groupInterval\");\n\n\t\t\t\tif (groupInterval && (!current || (current.timeUnit !== groupInterval.timeUnit || current.count !== groupInterval.count) || this._seriesDataGrouped)) {\n\t\t\t\t\tthis._seriesDataGrouped = false;\n\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", groupInterval);\n\t\t\t\t\tthis._setBaseInterval(groupInterval)\n\n\n\t\t\t\t\tlet newId = groupInterval.timeUnit + groupInterval.count;\n\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\t\t\tseries.setDataSet(newId);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tthis.markDirtyExtremes();\n\n\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\t\tconst type = \"groupintervalchanged\";\n\t\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\n\t\t\t\t\tconst start = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMin);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet startIndex = start.index;\n\n\t\t\t\t\tif (startIndex > 0) {\n\t\t\t\t\t\tstartIndex -= 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectionMax += this.baseDuration() * (1 - this.get(\"endLocation\", 1));\n\n\t\t\t\t\tconst end = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMax);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet endIndex = end.index;\n\n\t\t\t\t\tlet endIndex2 = endIndex;\n\t\t\t\t\tif (endIndex2 > 0) {\n\t\t\t\t\t\tendIndex2--;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst firstDataItem = series.dataItems[startIndex];\n\t\t\t\t\tconst lastDataItem = series.dataItems[endIndex2];\n\n\t\t\t\t\tlet lastDate: number | undefined;\n\t\t\t\t\tlet firstDate: number | undefined;\n\t\t\t\t\tif (firstDataItem) {\n\t\t\t\t\t\tfirstDate = firstDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lastDataItem) {\n\t\t\t\t\t\tlastDate = lastDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet outOfSelection = false;\n\t\t\t\t\tif (lastDate != null && firstDate != null) {\n\t\t\t\t\t\tif (lastDate < selectionMin || firstDate > selectionMax) {\n\t\t\t\t\t\t\toutOfSelection = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tseries.setPrivate(\"outOfSelection\", outOfSelection);\n\t\t\t\t\tseries.setPrivate(\"startIndex\", startIndex);\n\t\t\t\t\tseries.setPrivate(\"endIndex\", endIndex);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, _strictMode?: boolean): IMinMaxStep {\n\t\treturn { min: min, max: max, step: (max - min) / gridCount };\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic intervalDuration(): number {\n\t\treturn this._intervalDuration;\n\t}\n\n\tprotected _saveMinMax(min: number, max: number) {\n\t\tlet groupInterval = this.getPrivate(\"groupInterval\");\n\n\t\tif (!groupInterval) {\n\t\t\tgroupInterval = this.get(\"baseInterval\");\n\t\t}\n\n\t\tlet id = groupInterval.timeUnit + groupInterval.count;\n\t\tthis._intervalMin[id] = min;\n\t\tthis._intervalMax[id] = max;\n\t}\n\n\tprotected _getM(timeUnit: TimeUnit) {\n\t\tif (timeUnit == \"month\" || timeUnit == \"year\" || timeUnit == \"day\") {\n\t\t\treturn 1.05;\n\t\t}\n\t\treturn 1.01;\n\t}\n\n\tprotected _prepareAxisItems() {\n\t\tconst min = this.getPrivate(\"min\");\n\t\tconst max = this.getPrivate(\"max\");\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\t\t\tconst selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\t\tconst selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\t\t\tconst renderer = this.get(\"renderer\");\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\t\tlet value = selectionMin;\n\t\t\tlet i = 0;\n\n\t\t\tconst intervals = this.get(\"gridIntervals\")!;\n\t\t\tlet gridInterval = $time.chooseInterval(0, selectionMax - selectionMin, renderer.gridCount(), intervals);\n\n\t\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\t\tgridInterval = { ...baseInterval };\n\t\t\t}\n\n\t\t\tconst intervalDuration = $time.getIntervalDuration(gridInterval);\n\t\t\tthis._intervalDuration = intervalDuration;\n\n\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\n\t\t\tvalue = $time.round(new Date(selectionMin - intervalDuration), gridInterval.timeUnit, gridInterval.count, firstDay, utc, new Date(min), timezone).getTime();\n\t\t\tlet previousValue = value - intervalDuration;\n\t\t\tlet format: string | Intl.DateTimeFormatOptions;\n\t\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\t\tthis.setPrivateRaw(\"gridInterval\", gridInterval);\n\n\t\t\twhile (value < selectionMax + intervalDuration) {\n\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\tif (this.dataItems.length < i + 1) {\n\t\t\t\t\tdataItem = new DataItem(this, undefined, {});\n\t\t\t\t\tthis._dataItems.push(dataItem);\n\t\t\t\t\tthis.processDataItem(dataItem);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdataItem = this.dataItems[i];\n\t\t\t\t}\n\n\t\t\t\tthis._createAssets(dataItem, []);\n\n\t\t\t\tif (dataItem.isHidden()) {\n\t\t\t\t\tdataItem.show();\n\t\t\t\t}\n\n\t\t\t\tdataItem.setRaw(\"value\", value);\n\n\n\n\t\t\t\tlet endValue = value + $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\n\t\t\t\tendValue = $time.round(new Date(endValue), gridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\n\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\n\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, utc, timezone)) {\n\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\n\n\t\t\t\tpreviousValue = value;\n\t\t\t\tvalue = endValue;\n\n\t\t\t\tif (value == previousValue) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\tfor (let j = i; j < this.dataItems.length; j++) {\n\t\t\t\tthis.dataItems[j].hide();\n\t\t\t}\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.inited) {\n\t\t\t\t\tseries._markDirtyAxes();\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tthis._updateGhost();\n\t}\n\n\tprotected _updateFinals(start: number, end: number) {\n\t\tthis.setPrivateRaw(\"selectionMinFinal\", this.positionToValue(start));\n\t\tthis.setPrivateRaw(\"selectionMaxFinal\", this.positionToValue(end));\n\t}\n\n\tprotected _getDelta() {\n\t\tthis._deltaMinMax = this.baseDuration() / 2;\n\t}\n\n\tprotected _fixMin(min: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\tconst timezone = this._root.timezone;\n\t\tconst utc = this._root.utc;\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\tlet startTime = $time.round(new Date(min), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\tendTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\treturn startTime + (endTime - startTime) * this.get(\"startLocation\", 0);\n\t}\n\n\tprotected _fixMax(max: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\tconst timezone = this._root.timezone;\n\t\tconst utc = this._root.utc;\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\tlet startTime = $time.round(new Date(max), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\tendTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\treturn startTime + (endTime - startTime) * this.get(\"endLocation\", 1);\n\t}\n\n\tprotected _updateDates(_date: number) {\n\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t * \n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn this._baseDuration;\n\t\t//return $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\t/**\n\t * Returns a duration of user-defined `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseMainDuration(): number {\n\t\treturn $time.getIntervalDuration(this.get(\"baseInterval\"));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processSeriesDataItem(dataItem: DataItem<IXYSeriesDataItem>, fields: Array<string>) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif (!dataItem.open) {\n\t\t\tdataItem.open = {};\n\t\t}\n\t\tif (!dataItem.close) {\n\t\t\tdataItem.close = {};\n\t\t}\n\n\t\t$array.each(fields, (field) => {\n\t\t\tlet value = dataItem.get(field as any);\n\t\t\tif ($type.isNumber(value)) {\n\t\t\t\tlet startTime = dataItem.open![field];\n\t\t\t\tlet endTime = dataItem.close![field];\n\t\t\t\t// this is done to save cpu, as rounding is quite expensive, especially with timezone set. \n\t\t\t\t// if value is between prev start and end, it means it didn't change, all is fine.\n\t\t\t\tif (value >= startTime && value <= endTime) {\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\t\t\tconst utc = this._root.utc;\n\t\t\t\t\tconst timezone = this._root.timezone\n\t\t\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\t\t\tconst count = baseInterval.count;\n\t\t\t\t\tstartTime = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tendTime = startTime + $time.getDuration(timeUnit, count * this._getM(timeUnit));\n\t\t\t\t\tendTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\t\t\t\tdataItem.open![field] = startTime;\n\t\t\t\t\tdataItem.close![field] = endTime;\n\t\t\t\t}\n\n\t\t\t\tthis._updateDates(startTime);\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\n\t\tlet openValue;\n\t\tlet closeValue;\n\n\t\tif (dataItem.open && dataItem.close) {\n\t\t\topenValue = dataItem.open[field];\n\t\t\tcloseValue = dataItem.close[field];\n\t\t}\n\t\telse {\n\t\t\topenValue = dataItem.get(field as any)\n\t\t\tcloseValue = openValue;\n\t\t}\n\n\t\tlet value = openValue + (closeValue - openValue) * cellLocation;\n\n\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionX(dataItem, field, cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\t\tlet openValue;\n\t\tlet closeValue;\n\n\t\tif (dataItem.open && dataItem.close) {\n\t\t\topenValue = dataItem.open[field];\n\t\t\tcloseValue = dataItem.close[field];\n\t\t}\n\t\telse {\n\t\t\topenValue = dataItem.get(field as any)\n\t\t\tcloseValue = openValue;\n\t\t}\n\n\t\tlet value = openValue + (closeValue - openValue) * cellLocation;\n\n\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionY(dataItem, field, cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic roundAxisPosition(position: number, location: number): number {\n\t\tlet value = this.positionToValue(position);\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\tif (!$type.isNaN(value)) {\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\t\t\tconst count = baseInterval.count;\n\n\t\t\tvalue = $time.round(new Date(value), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\n\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, new Date(value), firstDay, utc, timezone);\n\t\t\tif (timezone) {\n\t\t\t\tvalue = $time.round(new Date(value + this.baseDuration() * 0.05), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\t\t\t\tduration = $time.getDateIntervalDuration(baseInterval, new Date(value + duration * location), firstDay, utc, timezone);\n\t\t\t}\n\n\t\t\treturn this.valueToPosition(value + duration * location);\n\t\t}\n\t\treturn NaN;\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * NOTE: Unless `adjustPosition` (2nd parameter) is set to `false`, the method\n\t * will adjust position by `tooltipIntervalOffset`.\n\t *\n\t * @param position Position\n\t * @param adjustPosition Adjust position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number, adjustPosition?: boolean): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tif (this.getPrivate(\"min\") != null) {\n\t\t\tlet format = this.get(\"tooltipDateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\tlet value = this.positionToValue(position);\n\t\t\tlet date = new Date(value);\n\n\t\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, date, this._root.locale.firstDayOfWeek, this._root.utc, this._root.timezone);\n\n\t\t\tif (adjustPosition !== false) {\n\t\t\t\tdate = new Date(value + this.get(\"tooltipIntervalOffset\", -this.get(\"tooltipLocation\", 0.5)) * duration)\n\t\t\t}\n\n\t\t\treturn this._root.dateFormatter.format(date, this.get(\"tooltipDateFormat\", format));\n\t\t}\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Returns a data item from series that is closest to the `position`.\n\t *\n\t * @param series Series\n\t * @param position Relative position\n\t * @return Data item\n\t */\n\tpublic getSeriesItem(series: XYSeries, position: number, location?: number): DataItem<IXYSeriesDataItem> | undefined {\n\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\t\tlet value = this.positionToValue(position);\n\n\t\tif (location == null) {\n\t\t\tlocation = 0.5;\n\t\t}\n\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tconst result = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\tlet diValue = 0;\n\t\t\tif (dataItem.open) {\n\t\t\t\tdiValue = dataItem.open[fieldName];\n\t\t\t}\n\n\t\t\treturn $order.compare(diValue, value);\n\t\t});\n\n\t\tif (series.get(\"snapTooltip\")) {\n\t\t\tlet first = series.dataItems[result.index - 1];\n\t\t\tlet second = series.dataItems[result.index];\n\n\t\t\tif (first && second) {\n\t\t\t\tif (first.open && second.close) {\n\t\t\t\t\tlet open = first.open[fieldName];\n\t\t\t\t\tlet close = second.close[fieldName];\n\n\t\t\t\t\tif (Math.abs(value - open) > Math.abs(value - close)) {\n\t\t\t\t\t\treturn second;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (first) {\n\t\t\t\treturn first;\n\t\t\t}\n\n\t\t\tif (second) {\n\t\t\t\treturn second;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// @todo check if is in range\n\t\t\tconst dataItem = series.dataItems[result.index - 1];\n\n\t\t\tif (dataItem) {\n\t\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\t\tlet open = dataItem.open[fieldName];\n\t\t\t\t\tlet close = dataItem.close[fieldName];\n\n\t\t\t\t\tif (value >= open && value <= close) {\n\t\t\t\t\t\treturn dataItem;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic shouldGap(dataItem: DataItem<IXYSeriesDataItem>, nextItem: DataItem<IXYSeriesDataItem>, autoGapCount: number, fieldName: string): boolean {\n\t\tconst value1 = dataItem.get(fieldName as any);\n\t\tconst value2 = nextItem.get(fieldName as any);\n\n\t\tif (value2 - value1 > this.baseDuration() * autoGapCount) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Zooms the axis to specific `start` and `end` dates.\n\t *\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\n\t *\n\t * @param start Start Date\n\t * @param end End Date\n\t * @param duration Duration in milliseconds\n\t */\n\tpublic zoomToDates(start: Date, end: Date, duration?: number) {\n\t\tthis.zoomToValues(start.getTime(), end.getTime(), duration);\n\t}\n\n\t/**\n\t * Returns a `Date` object corresponding to specific position within plot\n\t * area.\n\t *\n\t * @param position Pposition\n\t * @return Date\n\t */\n\tpublic positionToDate(position: number): Date {\n\t\treturn new Date(this.positionToValue(position));\n\t}\n\n\t/**\n\t * Returns a relative position within plot area that corresponds to specific\n\t * date.\n\t *\n\t * @param date Date\n\t * @return Position\n\t */\n\tpublic dateToPosition(date: Date): number {\n\t\treturn this.valueToPosition(date.getTime());\n\t}\n\n\t/**\n\t * Returns relative position between two grid lines of the axis.\n\t *\n\t * @since 5.2.30\n\t * @return Position\n\t */\n\tpublic getCellWidthPosition(): number {\n\t\tlet max = this.getPrivate(\"selectionMax\", this.getPrivate(\"max\"));\n\t\tlet min = this.getPrivate(\"selectionMin\", this.getPrivate(\"min\"));\n\n\t\tif ($type.isNumber(max) && $type.isNumber(min)) {\n\t\t\treturn this._intervalDuration / (max - min);\n\t\t}\n\t\treturn 0.05;\n\t}\n}\n"]}
@@ -51,6 +51,6 @@ export declare class DurationAxis<R extends AxisRenderer> extends ValueAxis<R> {
51
51
  * @param position Position
52
52
  * @return Tooltip text
53
53
  */
54
- getTooltipText(position: number): string | undefined;
54
+ getTooltipText(position: number, _adjustPosition?: boolean): string | undefined;
55
55
  }
56
56
  //# sourceMappingURL=DurationAxis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DurationAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DurationAxis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAKlI,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAE3F;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAEnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAChE;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAE9D;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;CAEvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACrE,OAAc,SAAS,EAAE,MAAM,CAAkB;IACjD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAyD;IAEjF,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpC,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,OAAO,EAAE,mBAAmB,CAAC;IAE5C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAS;IACxC,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAS;IAC/C,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;IAEjC,SAAS;IAMhB,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW;IAiFvG,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM;IAKnC;;;;;OAKG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAQ3D"}
1
+ {"version":3,"file":"DurationAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DurationAxis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAKlI,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAE3F;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAEnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAChE;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAE9D;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;CAEvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACrE,OAAc,SAAS,EAAE,MAAM,CAAkB;IACjD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAyD;IAEjF,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpC,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,OAAO,EAAE,mBAAmB,CAAC;IAE5C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAS;IACxC,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAS;IAC/C,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;IAEjC,SAAS;IAMhB,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW;IAiFvG,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM;IAKnC;;;;;OAKG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;CAQtF"}
@@ -106,7 +106,7 @@ export class DurationAxis extends ValueAxis {
106
106
  * @param position Position
107
107
  * @return Tooltip text
108
108
  */
109
- getTooltipText(position) {
109
+ getTooltipText(position, _adjustPosition) {
110
110
  const formatter = this.getDurationFormatter();
111
111
  const extraDecimals = this.get("extraTooltipPrecision", 0);
112
112
  const decimals = this.getPrivate("stepDecimalPlaces", 0) + extraDecimals;
@@ -1 +1 @@
1
- {"version":3,"file":"DurationAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DurationAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\nimport type { TimeUnit } from \"../../../core/util/Time\"\n\nimport { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IValueAxisEvents, IMinMaxStep } from \"./ValueAxis\";\n\nimport * as $utils from \"../../../core/util/Utils\";\nimport * as $math from \"../../../core/util/Math\";\n\nexport interface IDurationAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {\n\n\t/**\n\t * A base unit (granularity) of data.\n\t *\n\t * Used to indicate what are the base units of your data.\n\t *\n\t * Available options: `\"millisecond\"`, `\"second\"` (default), `\"minute\"`, `\"hour\"`, `\"day\"`, `\"week\"`, `\"month\"`, and `\"year\"`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-durations/#Base_unit} for more info\n\t * @default \"second\"\n\t */\n\tbaseUnit?: TimeUnit\n\n}\n\nexport interface IDurationAxisDataItem extends IValueAxisDataItem {\n}\n\nexport interface IDurationAxisPrivate extends IValueAxisPrivate {\n\n\t/**\n\t * A format to used by axis to format its labels.\n\t *\n\t * @readonly\n\t */\n\tdurationFormat: string;\n\n}\n\nexport interface IDurationAxisEvents extends IValueAxisEvents {\n}\n\n/**\n * Creates a duration axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/duration-axis/} for more info\n * @important\n */\nexport class DurationAxis<R extends AxisRenderer> extends ValueAxis<R> {\n\tpublic static className: string = \"DurationAxis\";\n\tpublic static classNames: Array<string> = ValueAxis.classNames.concat([DurationAxis.className]);\n\n\tdeclare public _settings: IDurationAxisSettings<R>;\n\tdeclare public _privateSettings: IDurationAxisPrivate;\n\tdeclare public _dataItemSettings: IDurationAxisDataItem;\n\tdeclare public _events: IDurationAxisEvents;\n\n\tprotected _dataGrouped: boolean = false;\n\tprotected _groupingCalculated: boolean = false;\n\tprotected _intervalDuration: number = 1;\n\n\tpublic _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tsuper._afterNew();\n\t}\n\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, strictMode?: boolean): IMinMaxStep {\n\t\tlet minMaxStep: IMinMaxStep;\n\n\t\tconst durationFormatter = this.getDurationFormatter();\n\t\tconst baseUnit = this.get(\"baseUnit\");\n\t\t// we don't allow to go to smaller units, setting so to avoid invalidation\n\t\tthis.setRaw(\"maxPrecision\", 0);\n\n\t\tif (baseUnit == \"millisecond\" || baseUnit == \"second\" || baseUnit == \"minute\" || baseUnit == \"hour\") {\n\t\t\t// will fail if 0\n\t\t\tif (gridCount <= 1) {\n\t\t\t\tgridCount = 1;\n\t\t\t}\n\n\t\t\tgridCount = Math.round(gridCount);\n\n\t\t\t//let initialMin: number = min;\n\t\t\t//let initialMax: number = max;\n\n\t\t\tlet difference = max - min;\n\n\t\t\t// in case min and max is the same, use max\n\t\t\tif (difference === 0) {\n\t\t\t\tdifference = Math.abs(max);\n\t\t\t}\n\n\t\t\tlet step = difference / gridCount;\n\n\t\t\tlet divisors = [60, 30, 20, 15, 10, 2, 1];\n\t\t\tlet realDivisor = 1;\n\n\t\t\tif (baseUnit == \"hour\") {\n\t\t\t\tdivisors = [24, 12, 6, 4, 2, 1];\n\t\t\t}\n\n\t\t\tfor (let divisor of divisors) {\n\t\t\t\tif (difference / divisor > gridCount) {\n\t\t\t\t\trealDivisor = divisor;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet count = Math.ceil(((max - min) / realDivisor) / gridCount);\n\n\t\t\tlet exponent: number = Math.log(Math.abs(count)) * Math.LOG10E;\n\t\t\tlet power = Math.pow(10, Math.floor(exponent)) / 10;\n\t\t\tlet reducedCount = count / power;\n\n\t\t\t// find closest to divisor\n\t\t\tlet closest = $math.closest(divisors, reducedCount);\n\t\t\tcount = closest * power;\n\n\t\t\tstep = realDivisor * count;\n\n\t\t\tmin = Math.floor(min / step) * step;\n\t\t\tmax = Math.ceil(max / step) * step;\n\n\t\t\t/*\n\t\t\tcausese SO with seconds\n\t\t\tif (strictMode) {\n\t\t\t\tmin -= step;\n\t\t\t\tif (min < 0 && initialMin >= 0) {\n\t\t\t\t\tmin = 0;\n\t\t\t\t}\n\t\t\t\tmax += step;\n\n\t\t\t\tif (max > 0 && initialMax <= 0) {\n\t\t\t\t\tmax = 0;\n\t\t\t\t}\n\t\t\t}*/\t\t\t\n\t\t\tminMaxStep = { min: min, max: max, step: step };\n\t\t}\n\t\telse {\n\t\t\tminMaxStep = super._adjustMinMax(min, max, gridCount, strictMode);\n\t\t}\n\n\t\t// choose duration formatter based on step\n\t\tthis.setPrivateRaw(\"durationFormat\", durationFormatter.getFormat(minMaxStep.step, minMaxStep.max, baseUnit));\n\n\t\treturn minMaxStep;\n\t}\n\n\tprotected _formatText(value: number) {\n\t\tconst formatter = this.getDurationFormatter();\n\t\treturn formatter.format(value, this.getPrivate(\"durationFormat\"), this.get(\"baseUnit\"));\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number): string | undefined {\n\t\tconst formatter = this.getDurationFormatter();\n\t\tconst extraDecimals = this.get(\"extraTooltipPrecision\", 0);\n\t\tconst decimals = this.getPrivate(\"stepDecimalPlaces\", 0) + extraDecimals;\n\t\tconst value = $math.round(this.positionToValue(position), decimals);\n\n\t\treturn formatter.format(value, this.getPrivate(\"durationFormat\"), this.get(\"baseUnit\"));\n\t}\n}\n"]}
1
+ {"version":3,"file":"DurationAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DurationAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\nimport type { TimeUnit } from \"../../../core/util/Time\"\n\nimport { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IValueAxisEvents, IMinMaxStep } from \"./ValueAxis\";\n\nimport * as $utils from \"../../../core/util/Utils\";\nimport * as $math from \"../../../core/util/Math\";\n\nexport interface IDurationAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {\n\n\t/**\n\t * A base unit (granularity) of data.\n\t *\n\t * Used to indicate what are the base units of your data.\n\t *\n\t * Available options: `\"millisecond\"`, `\"second\"` (default), `\"minute\"`, `\"hour\"`, `\"day\"`, `\"week\"`, `\"month\"`, and `\"year\"`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-durations/#Base_unit} for more info\n\t * @default \"second\"\n\t */\n\tbaseUnit?: TimeUnit\n\n}\n\nexport interface IDurationAxisDataItem extends IValueAxisDataItem {\n}\n\nexport interface IDurationAxisPrivate extends IValueAxisPrivate {\n\n\t/**\n\t * A format to used by axis to format its labels.\n\t *\n\t * @readonly\n\t */\n\tdurationFormat: string;\n\n}\n\nexport interface IDurationAxisEvents extends IValueAxisEvents {\n}\n\n/**\n * Creates a duration axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/duration-axis/} for more info\n * @important\n */\nexport class DurationAxis<R extends AxisRenderer> extends ValueAxis<R> {\n\tpublic static className: string = \"DurationAxis\";\n\tpublic static classNames: Array<string> = ValueAxis.classNames.concat([DurationAxis.className]);\n\n\tdeclare public _settings: IDurationAxisSettings<R>;\n\tdeclare public _privateSettings: IDurationAxisPrivate;\n\tdeclare public _dataItemSettings: IDurationAxisDataItem;\n\tdeclare public _events: IDurationAxisEvents;\n\n\tprotected _dataGrouped: boolean = false;\n\tprotected _groupingCalculated: boolean = false;\n\tprotected _intervalDuration: number = 1;\n\n\tpublic _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tsuper._afterNew();\n\t}\n\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, strictMode?: boolean): IMinMaxStep {\n\t\tlet minMaxStep: IMinMaxStep;\n\n\t\tconst durationFormatter = this.getDurationFormatter();\n\t\tconst baseUnit = this.get(\"baseUnit\");\n\t\t// we don't allow to go to smaller units, setting so to avoid invalidation\n\t\tthis.setRaw(\"maxPrecision\", 0);\n\n\t\tif (baseUnit == \"millisecond\" || baseUnit == \"second\" || baseUnit == \"minute\" || baseUnit == \"hour\") {\n\t\t\t// will fail if 0\n\t\t\tif (gridCount <= 1) {\n\t\t\t\tgridCount = 1;\n\t\t\t}\n\n\t\t\tgridCount = Math.round(gridCount);\n\n\t\t\t//let initialMin: number = min;\n\t\t\t//let initialMax: number = max;\n\n\t\t\tlet difference = max - min;\n\n\t\t\t// in case min and max is the same, use max\n\t\t\tif (difference === 0) {\n\t\t\t\tdifference = Math.abs(max);\n\t\t\t}\n\n\t\t\tlet step = difference / gridCount;\n\n\t\t\tlet divisors = [60, 30, 20, 15, 10, 2, 1];\n\t\t\tlet realDivisor = 1;\n\n\t\t\tif (baseUnit == \"hour\") {\n\t\t\t\tdivisors = [24, 12, 6, 4, 2, 1];\n\t\t\t}\n\n\t\t\tfor (let divisor of divisors) {\n\t\t\t\tif (difference / divisor > gridCount) {\n\t\t\t\t\trealDivisor = divisor;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet count = Math.ceil(((max - min) / realDivisor) / gridCount);\n\n\t\t\tlet exponent: number = Math.log(Math.abs(count)) * Math.LOG10E;\n\t\t\tlet power = Math.pow(10, Math.floor(exponent)) / 10;\n\t\t\tlet reducedCount = count / power;\n\n\t\t\t// find closest to divisor\n\t\t\tlet closest = $math.closest(divisors, reducedCount);\n\t\t\tcount = closest * power;\n\n\t\t\tstep = realDivisor * count;\n\n\t\t\tmin = Math.floor(min / step) * step;\n\t\t\tmax = Math.ceil(max / step) * step;\n\n\t\t\t/*\n\t\t\tcausese SO with seconds\n\t\t\tif (strictMode) {\n\t\t\t\tmin -= step;\n\t\t\t\tif (min < 0 && initialMin >= 0) {\n\t\t\t\t\tmin = 0;\n\t\t\t\t}\n\t\t\t\tmax += step;\n\n\t\t\t\tif (max > 0 && initialMax <= 0) {\n\t\t\t\t\tmax = 0;\n\t\t\t\t}\n\t\t\t}*/\n\t\t\tminMaxStep = { min: min, max: max, step: step };\n\t\t}\n\t\telse {\n\t\t\tminMaxStep = super._adjustMinMax(min, max, gridCount, strictMode);\n\t\t}\n\n\t\t// choose duration formatter based on step\n\t\tthis.setPrivateRaw(\"durationFormat\", durationFormatter.getFormat(minMaxStep.step, minMaxStep.max, baseUnit));\n\n\t\treturn minMaxStep;\n\t}\n\n\tprotected _formatText(value: number) {\n\t\tconst formatter = this.getDurationFormatter();\n\t\treturn formatter.format(value, this.getPrivate(\"durationFormat\"), this.get(\"baseUnit\"));\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number, _adjustPosition?: boolean): string | undefined {\n\t\tconst formatter = this.getDurationFormatter();\n\t\tconst extraDecimals = this.get(\"extraTooltipPrecision\", 0);\n\t\tconst decimals = this.getPrivate(\"stepDecimalPlaces\", 0) + extraDecimals;\n\t\tconst value = $math.round(this.positionToValue(position), decimals);\n\n\t\treturn formatter.format(value, this.getPrivate(\"durationFormat\"), this.get(\"baseUnit\"));\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GaplessDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\r\n\r\nimport { DateAxis, IDateAxisSettings, IDateAxisPrivate, IDateAxisDataItem, IDateAxisEvents } from \"./DateAxis\";\r\nimport { DataItem } from \"../../../core/render/Component\";\r\n\r\nimport * as $array from \"../../../core/util/Array\"\r\nimport * as $order from \"../../../core/util/Order\";\r\nimport * as $time from \"../../../core/util/Time\";\r\nimport * as $type from \"../../../core/util/Type\";\r\nimport * as $math from \"../../../core/util/Math\";\r\n\r\nexport interface IGaplessDateAxisSettings<R extends AxisRenderer> extends IDateAxisSettings<R> {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisDataItem extends IDateAxisDataItem {\r\n\r\n\t/**\r\n\t * An index of a data item.\r\n\t */\r\n\tindex?: number\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisPrivate extends IDateAxisPrivate {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisEvents extends IDateAxisEvents {\r\n}\r\n\r\n/**\r\n * A version of a [[DateAxis]] which removes intervals that don't have any data\r\n * items in them.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/gapless-date-axis/} for more info\r\n * @important\r\n */\r\nexport class GaplessDateAxis<R extends AxisRenderer> extends DateAxis<R> {\r\n\tpublic static className: string = \"GaplessDateAxis\";\r\n\tpublic static classNames: Array<string> = DateAxis.classNames.concat([GaplessDateAxis.className]);\r\n\r\n\tdeclare public _settings: IGaplessDateAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGaplessDateAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGaplessDateAxisDataItem;\r\n\tdeclare public _events: IGaplessDateAxisEvents;\r\n\r\n\tprotected _frequency: number = 1;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis.valueFields.push(\"date\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tprotected _dates: Array<number> = [];\r\n\r\n\tprotected _updateDates(date: number) {\r\n\t\tconst dates = this._dates;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, date));\r\n\t\tif (!result.found) {\r\n\t\t\t$array.insertIndex(dates, result.index, date);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateAllDates() {\r\n\t\tthis._dates.length = 0;\r\n\r\n\t\t$array.each(this.series, (series) => {\r\n\t\t\tlet field = \"valueX\";\r\n\t\t\tif (series.get(\"yAxis\") == this) {\r\n\t\t\t\tfield = \"valueY\"\r\n\t\t\t}\r\n\t\t\t$array.each(series.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(field as any);\r\n\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\tif (dataItem.open) {\r\n\t\t\t\t\t\tthis._updateDates(dataItem.open![field]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Convers value to a relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tconst len = dates.length - startLocation - (1 - endLocation);\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn (index - startLocation) / len;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet itemValue = dates[index];\r\n\r\n\t\t\tlet d = 0;\r\n\t\t\tif (itemValue > value) {\r\n\t\t\t\td = itemValue - value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = value - itemValue;\r\n\t\t\t}\r\n\r\n\t\t\treturn (index - startLocation) / len + d / this.baseDuration() / len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value from axis scale to index.\r\n\t * \r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic valueToIndex(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\treturn index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to a corresponding numeric value from axis\r\n\t * scale.\r\n\t *\r\n\t * @param position Relative position\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tlet len = Math.round(this._dates.length - startLocation - (1 - endLocation));\r\n\t\tlet index = position * len;\r\n\t\tlet findex = Math.floor(index);\r\n\t\tif (findex < 0) {\r\n\t\t\tfindex = 0;\r\n\t\t}\r\n\r\n\t\tif (findex > len - 1) {\r\n\t\t\tfindex = len - 1\r\n\t\t}\r\n\r\n\t\treturn this._dates[findex] + (index - findex + startLocation) * this.baseDuration();\r\n\t}\r\n\r\n\tprotected _fixZoomFactor() {\r\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", this._dates.length - this.get(\"startLocation\", 0) - (1 - this.get(\"endLocation\", 1)));\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to specific `start` and `end` values.\r\n\t *\r\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\r\n\t *\r\n\t * @param start Start value\r\n\t * @param end End value\r\n\t * @param duration Duration in milliseconds\r\n\t */\r\n\tpublic zoomToValues(start: number, end: number, duration?: number) {\r\n\t\tconst min = this.getPrivate(\"min\", 0);\r\n\t\tconst max = this.getPrivate(\"max\", 0);\r\n\t\tstart = $math.fitToRange(start, min, max);\r\n\t\tend = $math.fitToRange(end, min, max);\r\n\t\tthis.zoom(this.valueToPosition(start), this.valueToPosition(end), duration);\r\n\t}\t\r\n\r\n\tprotected _prepareAxisItems() {\r\n\t\tlet startTime = this.getPrivate(\"selectionMin\", 0);\r\n\t\tlet endTime = this.getPrivate(\"selectionMax\", 0);\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\r\n\t\t\tif (this._seriesValuesDirty) {\r\n\t\t\t\tthis._seriesValuesDirty = false;\r\n\t\t\t\tthis._updateAllDates();\r\n\t\t\t}\r\n\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\tconst len = dates.length;\r\n\r\n\t\t\tlet startIndex = this.valueToIndex(startTime);\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tstartIndex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet endIndex = this.valueToIndex(endTime);\r\n\t\t\tif (endIndex < len - 1) {\r\n\t\t\t\tendIndex++;\r\n\t\t\t}\r\n\t\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\r\n\t\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\r\n\t\t\tfrequency = Math.max(1, frequency);\r\n\r\n\t\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\r\n\r\n\t\t\tthis._frequency = frequency;\r\n\r\n\t\t\tfor (let j = 0, length = this.dataItems.length; j < length; j++) {\r\n\t\t\t\tthis.dataItems[j].hide();\r\n\t\t\t}\r\n\r\n\t\t\tlet realDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\r\n\r\n\t\t\t// if all items are on axis\r\n\t\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\r\n\r\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\t\t\tlet intervalDuration = $time.getIntervalDuration(gridInterval);\r\n\r\n\t\t\tif (intervalDuration < this.baseDuration()) {\r\n\t\t\t\tgridInterval = { ...baseInterval };\r\n\t\t\t\tintervalDuration = $time.getIntervalDuration(gridInterval);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._intervalDuration = intervalDuration;\r\n\r\n\t\t\tconst formats = this.get(\"dateFormats\")!;\r\n\r\n\t\t\tlet selectedItems: Array<number> = [];\r\n\t\t\tlet firstDate = new Date();\r\n\t\t\tif (this._dates[0]) {\r\n\t\t\t\tfirstDate = new Date(this._dates[0]);\r\n\t\t\t}\r\n\r\n\t\t\tlet startDate = $time.round(new Date(this.getPrivate(\"min\", 0)), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, firstDate, this._root.timezone);\r\n\t\t\tlet value = $time.add(startDate, gridInterval.timeUnit, -1, this._root.utc, this._root.timezone).getTime();\r\n\r\n\t\t\tlet selectionMax = this.getPrivate(\"selectionMax\")\r\n\r\n\t\t\tlet previousPosition = -Infinity;\r\n\t\t\tlet minDifference = (this.get(\"end\", 1) - this.get(\"start\", 0)) / maxCount;\r\n\r\n\t\t\twhile (value <= selectionMax) {\r\n\t\t\t\tlet index = this.valueToIndex(value);\r\n\t\t\t\tlet realValue = this._dates[index];\r\n\r\n\t\t\t\tif (realValue < value) {\r\n\t\t\t\t\tfor (let i = index, len = this._dates.length; i < len; i++) {\r\n\t\t\t\t\t\tlet realValue = this._dates[i];\r\n\t\t\t\t\t\tif (realValue >= value) {\r\n\t\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet position = this.valueToPosition(realValue);\r\n\t\t\t\tif (position - previousPosition >= minDifference * 0.95) {\r\n\t\t\t\t\t$array.move(selectedItems, index);\r\n\t\t\t\t\tpreviousPosition = position;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet previousValue = value;\r\n\t\t\t\tvalue += $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\r\n\t\t\t\tvalue = $time.round(new Date(value), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();\r\n\r\n\t\t\t\tif (value == previousValue) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (selectedItems.length > 0) {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tlet previousValue = value - intervalDuration * 10;\r\n\t\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t\t\t$array.each(selectedItems, (index) => {\r\n\t\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\t\t\tif (this.dataItems.length < i + 1) {\r\n\t\t\t\t\t\tdataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\t\t\tthis._dataItems.push(dataItem);\r\n\t\t\t\t\t\tthis.processDataItem(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tdataItem = this.dataItems[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet value = dates[index];\r\n\t\t\t\t\tlet date = new Date(value);\r\n\r\n\t\t\t\t\tlet endValue = value;\r\n\t\t\t\t\tif (i < selectedItems.length - 1) {\r\n\t\t\t\t\t\tendValue = dates[selectedItems[i + 1]];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tendValue += intervalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.setRaw(\"value\", value);\r\n\t\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\r\n\t\t\t\t\tdataItem.setRaw(\"index\", i);\r\n\r\n\t\t\t\t\tif (index > startIndex - 100 && index < endIndex + 100) {\r\n\r\n\t\t\t\t\t\tlet format = formats[gridInterval.timeUnit];\r\n\r\n\t\t\t\t\t\tformat = formats[gridInterval.timeUnit];\r\n\t\t\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\r\n\t\t\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\r\n\t\t\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {\r\n\t\t\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._createAssets(dataItem, []);\r\n\r\n\t\t\t\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (dataItem.isHidden()) {\r\n\t\t\t\t\t\t\tdataItem.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tpreviousValue = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.series, (series) => {\r\n\t\t\t\tif (series.inited) {\r\n\t\t\t\t\tseries._markDirtyAxes();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._updateGhost();\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"GaplessDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\r\n\r\nimport { DateAxis, IDateAxisSettings, IDateAxisPrivate, IDateAxisDataItem, IDateAxisEvents } from \"./DateAxis\";\r\nimport { DataItem } from \"../../../core/render/Component\";\r\n\r\nimport * as $array from \"../../../core/util/Array\"\r\nimport * as $order from \"../../../core/util/Order\";\r\nimport * as $time from \"../../../core/util/Time\";\r\nimport * as $type from \"../../../core/util/Type\";\r\nimport * as $math from \"../../../core/util/Math\";\r\n\r\nexport interface IGaplessDateAxisSettings<R extends AxisRenderer> extends IDateAxisSettings<R> {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisDataItem extends IDateAxisDataItem {\r\n\r\n\t/**\r\n\t * An index of a data item.\r\n\t */\r\n\tindex?: number\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisPrivate extends IDateAxisPrivate {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisEvents extends IDateAxisEvents {\r\n}\r\n\r\n/**\r\n * A version of a [[DateAxis]] which removes intervals that don't have any data\r\n * items in them.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/gapless-date-axis/} for more info\r\n * @important\r\n */\r\nexport class GaplessDateAxis<R extends AxisRenderer> extends DateAxis<R> {\r\n\tpublic static className: string = \"GaplessDateAxis\";\r\n\tpublic static classNames: Array<string> = DateAxis.classNames.concat([GaplessDateAxis.className]);\r\n\r\n\tdeclare public _settings: IGaplessDateAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGaplessDateAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGaplessDateAxisDataItem;\r\n\tdeclare public _events: IGaplessDateAxisEvents;\r\n\r\n\tprotected _frequency: number = 1;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis.valueFields.push(\"date\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tprotected _dates: Array<number> = [];\r\n\r\n\tprotected _updateDates(date: number) {\r\n\t\tconst dates = this._dates;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, date));\r\n\t\tif (!result.found) {\r\n\t\t\t$array.insertIndex(dates, result.index, date);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateAllDates() {\r\n\t\tthis._dates.length = 0;\r\n\r\n\t\t$array.each(this.series, (series) => {\r\n\t\t\tlet field = \"valueX\";\r\n\t\t\tif (series.get(\"yAxis\") == this) {\r\n\t\t\t\tfield = \"valueY\"\r\n\t\t\t}\r\n\t\t\t$array.each(series.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(field as any);\r\n\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\tif (dataItem.open) {\r\n\t\t\t\t\t\tthis._updateDates(dataItem.open![field]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Convers value to a relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tconst len = dates.length - startLocation - (1 - endLocation);\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn (index - startLocation) / len;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet itemValue = dates[index];\r\n\r\n\t\t\tlet d = 0;\r\n\t\t\tif (itemValue > value) {\r\n\t\t\t\td = itemValue - value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = value - itemValue;\r\n\t\t\t}\r\n\r\n\t\t\treturn (index - startLocation) / len + d / this.baseDuration() / len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value from axis scale to index.\r\n\t * \r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic valueToIndex(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\treturn index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to a corresponding numeric value from axis\r\n\t * scale.\r\n\t *\r\n\t * @param position Relative position\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tlet len = Math.round(this._dates.length - startLocation - (1 - endLocation));\r\n\t\tlet index = position * len;\r\n\t\tlet findex = Math.floor(index);\r\n\t\tif (findex < 0) {\r\n\t\t\tfindex = 0;\r\n\t\t}\r\n\r\n\t\tif (findex > len - 1) {\r\n\t\t\tfindex = len - 1\r\n\t\t}\r\n\r\n\t\treturn this._dates[findex] + (index - findex + startLocation) * this.baseDuration();\r\n\t}\r\n\r\n\tprotected _fixZoomFactor() {\r\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", this._dates.length - this.get(\"startLocation\", 0) - (1 - this.get(\"endLocation\", 1)));\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to specific `start` and `end` values.\r\n\t *\r\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\r\n\t *\r\n\t * @param start Start value\r\n\t * @param end End value\r\n\t * @param duration Duration in milliseconds\r\n\t */\r\n\tpublic zoomToValues(start: number, end: number, duration?: number) {\r\n\t\tconst min = this.getPrivate(\"min\", 0);\r\n\t\tconst max = this.getPrivate(\"max\", 0);\r\n\t\tstart = $math.fitToRange(start, min, max);\r\n\t\tend = $math.fitToRange(end, min, max);\r\n\t\tthis.zoom(this.valueToPosition(start), this.valueToPosition(end), duration);\r\n\t}\r\n\r\n\tprotected _prepareAxisItems() {\r\n\t\tlet startTime = this.getPrivate(\"selectionMin\", 0);\r\n\t\tlet endTime = this.getPrivate(\"selectionMax\", 0);\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\r\n\t\t\tif (this._seriesValuesDirty) {\r\n\t\t\t\tthis._seriesValuesDirty = false;\r\n\t\t\t\tthis._updateAllDates();\r\n\t\t\t}\r\n\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\tconst len = dates.length;\r\n\r\n\t\t\tlet startIndex = this.valueToIndex(startTime);\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tstartIndex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet endIndex = this.valueToIndex(endTime);\r\n\t\t\tif (endIndex < len - 1) {\r\n\t\t\t\tendIndex++;\r\n\t\t\t}\r\n\t\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\r\n\t\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\r\n\t\t\tfrequency = Math.max(1, frequency);\r\n\r\n\t\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\r\n\r\n\t\t\tthis._frequency = frequency;\r\n\r\n\t\t\tfor (let j = 0, length = this.dataItems.length; j < length; j++) {\r\n\t\t\t\tthis.dataItems[j].hide();\r\n\t\t\t}\r\n\r\n\t\t\tlet realDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\r\n\r\n\t\t\t// if all items are on axis\r\n\t\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\r\n\r\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\t\t\tlet intervalDuration = $time.getIntervalDuration(gridInterval);\r\n\r\n\t\t\tif (intervalDuration < this.baseDuration()) {\r\n\t\t\t\tgridInterval = { ...baseInterval };\r\n\t\t\t\tintervalDuration = $time.getIntervalDuration(gridInterval);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._intervalDuration = intervalDuration;\r\n\r\n\t\t\tconst formats = this.get(\"dateFormats\")!;\r\n\r\n\t\t\tlet selectedItems: Array<number> = [];\r\n\t\t\tlet firstDate = new Date();\r\n\t\t\tif (this._dates[0]) {\r\n\t\t\t\tfirstDate = new Date(this._dates[0]);\r\n\t\t\t}\r\n\r\n\t\t\tlet startDate = $time.round(new Date(this.getPrivate(\"min\", 0)), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, firstDate, this._root.timezone);\r\n\t\t\tlet value = $time.add(startDate, gridInterval.timeUnit, -1, this._root.utc, this._root.timezone).getTime();\r\n\r\n\t\t\tlet selectionMax = this.getPrivate(\"selectionMax\")\r\n\r\n\t\t\tlet previousPosition = -Infinity;\r\n\t\t\tlet minDifference = (this.get(\"end\", 1) - this.get(\"start\", 0)) / maxCount;\r\n\r\n\t\t\twhile (value <= selectionMax) {\r\n\t\t\t\tlet index = this.valueToIndex(value);\r\n\t\t\t\tlet realValue = this._dates[index];\r\n\r\n\t\t\t\tif (realValue < value) {\r\n\t\t\t\t\tfor (let i = index, len = this._dates.length; i < len; i++) {\r\n\t\t\t\t\t\tlet realValue = this._dates[i];\r\n\t\t\t\t\t\tif (realValue >= value) {\r\n\t\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet position = this.valueToPosition(realValue);\r\n\t\t\t\tif (position - previousPosition >= minDifference * 0.95) {\r\n\t\t\t\t\t$array.move(selectedItems, index);\r\n\t\t\t\t\tpreviousPosition = position;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet previousValue = value;\r\n\t\t\t\tvalue += $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\r\n\t\t\t\tvalue = $time.round(new Date(value), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();\r\n\r\n\t\t\t\tif (value == previousValue) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (selectedItems.length > 0) {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tlet previousValue = value - intervalDuration * 10;\r\n\t\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t\t\t$array.each(selectedItems, (index) => {\r\n\t\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\t\t\tif (this.dataItems.length < i + 1) {\r\n\t\t\t\t\t\tdataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\t\t\tthis._dataItems.push(dataItem);\r\n\t\t\t\t\t\tthis.processDataItem(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tdataItem = this.dataItems[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet value = dates[index];\r\n\t\t\t\t\tlet date = new Date(value);\r\n\r\n\t\t\t\t\tlet endValue = value;\r\n\t\t\t\t\tif (i < selectedItems.length - 1) {\r\n\t\t\t\t\t\tendValue = dates[selectedItems[i + 1]];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tendValue += intervalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.setRaw(\"value\", value);\r\n\t\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\r\n\t\t\t\t\tdataItem.setRaw(\"index\", i);\r\n\r\n\t\t\t\t\tif (index > startIndex - 100 && index < endIndex + 100) {\r\n\r\n\t\t\t\t\t\tlet format = formats[gridInterval.timeUnit];\r\n\r\n\t\t\t\t\t\tformat = formats[gridInterval.timeUnit];\r\n\t\t\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\r\n\t\t\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\r\n\t\t\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {\r\n\t\t\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._createAssets(dataItem, []);\r\n\r\n\t\t\t\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (dataItem.isHidden()) {\r\n\t\t\t\t\t\t\tdataItem.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tpreviousValue = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.series, (series) => {\r\n\t\t\t\tif (series.inited) {\r\n\t\t\t\t\tseries._markDirtyAxes();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._updateGhost();\r\n\t}\r\n}"]}
@@ -398,7 +398,7 @@ export declare class ValueAxis<R extends AxisRenderer> extends Axis<R> {
398
398
  * @param position Position
399
399
  * @return Tooltip text
400
400
  */
401
- getTooltipText(position: number): string | undefined;
401
+ getTooltipText(position: number, _adjustPosition?: boolean): string | undefined;
402
402
  /**
403
403
  * Returns a data item from series that is closest to the `position`.
404
404
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ValueAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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"}
@@ -983,7 +983,7 @@ export class ValueAxis extends Axis {
983
983
  * @param position Position
984
984
  * @return Tooltip text
985
985
  */
986
- getTooltipText(position) {
986
+ getTooltipText(position, _adjustPosition) {
987
987
  const numberFormat = this.get("tooltipNumberFormat", this.get("numberFormat"));
988
988
  const formatter = this.getNumberFormatter();
989
989
  const extraDecimals = this.get("extraTooltipPrecision", 0);