@amcharts/amcharts5 5.6.1 → 5.6.2
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.
- package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.js +1 -0
- package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/ParallelChannelSeries.d.ts +1 -0
- package/.internal/charts/stock/drawing/ParallelChannelSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/ParallelChannelSeries.js +73 -0
- package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/PolylineSeries.d.ts +1 -3
- package/.internal/charts/stock/drawing/PolylineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/PolylineSeries.js +34 -37
- package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +10 -3
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +32 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/util/Math.d.ts.map +1 -1
- package/.internal/core/util/Math.js +3 -1
- package/.internal/core/util/Math.js.map +1 -1
- package/CHANGELOG.md +15 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-clustered-points/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-clustered-points/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +1 -1
|
@@ -27,28 +27,32 @@ export class PolylineSeries extends DrawingSeries {
|
|
|
27
27
|
_handlePointerClick(event) {
|
|
28
28
|
if (this._drawingEnabled) {
|
|
29
29
|
super._handlePointerClick(event);
|
|
30
|
-
if (
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
if (event.target.get("userData") == "grip") {
|
|
31
|
+
this._endPolyline(event.target.dataItem);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
if (!this._isDragging) {
|
|
35
|
+
this._isDrawing = true;
|
|
36
|
+
// for consistency with other series
|
|
37
|
+
if (this._index == 0) {
|
|
38
|
+
this._index = 1;
|
|
39
|
+
}
|
|
40
|
+
if (this._pIndex == 0) {
|
|
41
|
+
this.data.push({ stroke: this._getStrokeTemplate(), index: this._index, corner: "e" });
|
|
42
|
+
}
|
|
43
|
+
this._drawingLine.show();
|
|
44
|
+
this._addPoint(event);
|
|
38
45
|
}
|
|
39
|
-
this._drawingLine.
|
|
40
|
-
this._addPoint(event);
|
|
46
|
+
this._drawingLine.set("stroke", this.get("strokeColor"));
|
|
41
47
|
}
|
|
42
|
-
this._drawingLine.set("stroke", this.get("strokeColor"));
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
_handleBulletDragStop(event) {
|
|
46
51
|
super._handleBulletDragStop(event);
|
|
47
|
-
this._checkClosing(event);
|
|
48
52
|
}
|
|
49
53
|
disableDrawing() {
|
|
50
54
|
super.disableDrawing();
|
|
51
|
-
this.
|
|
55
|
+
this._endPolyline();
|
|
52
56
|
}
|
|
53
57
|
_afterDataChange() {
|
|
54
58
|
super._afterDataChange();
|
|
@@ -82,35 +86,28 @@ export class PolylineSeries extends DrawingSeries {
|
|
|
82
86
|
this._positionBullets(dataItem);
|
|
83
87
|
this._setXLocation(dataItem, valueX);
|
|
84
88
|
this._pIndex++;
|
|
85
|
-
this._handleClosing(dataItem, point);
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const sprite = event.target;
|
|
92
|
-
const point = { x: sprite.x(), y: sprite.y() };
|
|
93
|
-
this._handleClosing(dataItem, point);
|
|
91
|
+
_endPolyline(dataItem) {
|
|
92
|
+
if (!dataItem) {
|
|
93
|
+
dataItem = this.dataItems[this.dataItems.length - 1];
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (!dataContext.closing) {
|
|
95
|
+
if (dataItem) {
|
|
96
|
+
this._pIndex = 0;
|
|
97
|
+
const dataContext = dataItem.dataContext;
|
|
99
98
|
const index = dataContext.index;
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
this._drawingLine.hide();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
99
|
+
if (dataContext.corner == 0) {
|
|
100
|
+
this.data.push({ valueX: dataItem.get("valueX"), valueY: dataItem.get("valueY"), index: index, corner: this._pIndex + 1, closing: true });
|
|
101
|
+
const dataItems = this.dataItems;
|
|
102
|
+
const len = dataItems.length - 1;
|
|
103
|
+
this.setPrivate("startIndex", 0);
|
|
104
|
+
this.setPrivate("endIndex", len);
|
|
105
|
+
dataItem = dataItems[len];
|
|
106
|
+
this._positionBullets(dataItem);
|
|
107
|
+
this._setXLocation(dataItem, dataItem.get("valueX", 0));
|
|
113
108
|
}
|
|
109
|
+
this.data.push({ stroke: this._getStrokeTemplate(), index: index + 1, corner: "e" });
|
|
110
|
+
this._drawingLine.hide();
|
|
114
111
|
}
|
|
115
112
|
}
|
|
116
113
|
_handlePointerMove(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolylineSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/PolylineSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISpritePointerEvent } from \"../../../core/render/Sprite\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { IPoint } from \"../../../core/util/IPoint\";\r\nimport { Line } from \"../../../core/render/Line\";\r\n\r\nimport { DrawingSeries, IDrawingSeriesSettings, IDrawingSeriesPrivate, IDrawingSeriesDataItem } from \"./DrawingSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IPolylineSeriesDataItem extends IDrawingSeriesDataItem { }\r\n\r\nexport interface IPolylineSeriesSettings extends IDrawingSeriesSettings { }\r\n\r\nexport interface IPolylineSeriesPrivate extends IDrawingSeriesPrivate { }\r\n\r\nexport class PolylineSeries extends DrawingSeries {\r\n\tpublic static className: string = \"PolylineSeries\";\r\n\tpublic static classNames: Array<string> = DrawingSeries.classNames.concat([PolylineSeries.className]);\r\n\r\n\tdeclare public _settings: IPolylineSeriesSettings;\r\n\tdeclare public _privateSettings: IPolylineSeriesPrivate;\r\n\tdeclare public _dataItemSettings: IPolylineSeriesDataItem;\r\n\r\n\t// point index in segment\r\n\tprotected _pIndex: number = 0;\r\n\r\n\tprotected _tag = \"polyline\";\r\n\r\n\tprotected _drawingLine: Line = this.mainContainer.children.push(Line.new(this._root, { forceInactive: true }));\r\n\r\n\tprotected _handlePointerClick(event: ISpritePointerEvent) {\r\n\t\tif (this._drawingEnabled) {\r\n\t\t\tsuper._handlePointerClick(event);\r\n\r\n\t\t\tif (!this._isDragging) {\r\n\t\t\t\tthis._isDrawing = true;\r\n\t\t\t\t// for consistency with other series\r\n\t\t\t\tif (this._index == 0) {\r\n\t\t\t\t\tthis._index = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._pIndex == 0) {\r\n\t\t\t\t\tthis.data.push({ stroke: this._getStrokeTemplate(), index: this._index, corner: \"e\" });\r\n\t\t\t\t}\r\n\t\t\t\tthis._drawingLine.show();\r\n\t\t\t\tthis._addPoint(event);\r\n\t\t\t}\r\n\r\n\t\t\tthis._drawingLine.set(\"stroke\", this.get(\"strokeColor\"));\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleBulletDragStop(event: ISpritePointerEvent) {\r\n\t\tsuper._handleBulletDragStop(event);\r\n\t\tthis._checkClosing(event);\r\n\t}\r\n\r\n\tpublic disableDrawing() {\r\n\t\tsuper.disableDrawing();\r\n\t\tthis._drawingLine.hide();\r\n\t}\r\n\r\n\tprotected _afterDataChange() {\r\n\t\tsuper._afterDataChange();\r\n\t\tconst dataItems = this.dataItems;\r\n\t\tif (dataItems.length > 0) {\r\n\t\t\tconst lastDataItem = dataItems[dataItems.length - 1];\r\n\t\t\tconst dataContext = lastDataItem.dataContext as any;\r\n\t\t\tif (dataContext.closing) {\r\n\t\t\t\tthis._pIndex = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic clearDrawings(): void {\r\n\t\tsuper.clearDrawings();\r\n\t\tthis._drawingLine.hide();\r\n\t}\r\n\r\n\tprotected _addPoint(event: ISpritePointerEvent) {\r\n\t\tconst chart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\tconst xAxis = this.get(\"xAxis\");\r\n\t\t\tconst yAxis = this.get(\"yAxis\");\r\n\r\n\t\t\tconst point = chart.plotContainer.toLocal(event.point);\r\n\r\n\t\t\tconst valueX = this._getXValue(xAxis.positionToValue(xAxis.coordinateToPosition(point.x)));\r\n\t\t\tconst valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(point.y)), valueX);\r\n\r\n\t\t\tconst dataItems = this.dataItems;\r\n\t\t\tconst len = dataItems.length;\r\n\r\n\t\t\tthis.data.push({ valueY: valueY, valueX: valueX, index: this._index, corner: this._pIndex });\r\n\t\t\tthis.setPrivate(\"startIndex\", 0);\r\n\t\t\tthis.setPrivate(\"endIndex\", len);\r\n\r\n\t\t\tconst dataItem = dataItems[len];\r\n\t\t\tthis._positionBullets(dataItem);\r\n\t\t\tthis._setXLocation(dataItem, valueX);\r\n\r\n\t\t\tthis._pIndex++;\r\n\t\t\tthis._handleClosing(dataItem, point);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _checkClosing(event: ISpritePointerEvent) {\r\n\t\tconst dataItem = event.target.dataItem;\r\n\t\tif (dataItem) {\r\n\t\t\tconst sprite = event.target;\r\n\t\t\tconst point = { x: sprite.x(), y: sprite.y() }\r\n\t\t\tthis._handleClosing(dataItem, point);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleClosing(dataItem: DataItem<this[\"_dataItemSettings\"]>, point: IPoint) {\r\n\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\tif (!dataContext.closing) {\r\n\t\t\tconst index = dataContext.index;\r\n\t\t\tif (this._di[index]) {\r\n\t\t\t\tconst firstDataItem = this._di[index][0];\r\n\r\n\t\t\t\tif (firstDataItem && firstDataItem != dataItem) {\r\n\t\t\t\t\tconst dPoint = firstDataItem.get(\"point\");\r\n\t\t\t\t\tif (dPoint) {\r\n\t\t\t\t\t\tif (Math.hypot(point.x - dPoint.x, point.y - dPoint.y) < 5) {\r\n\t\t\t\t\t\t\tdataContext.closing = true;\r\n\t\t\t\t\t\t\tthis._pIndex = 0;\r\n\t\t\t\t\t\t\tthis.data.push({ stroke: this._getStrokeTemplate(), index: index + 1, corner: \"e\" });\r\n\t\t\t\t\t\t\tthis._drawingLine.hide();\r\n\t\t\t\t\t\t}\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\tprotected _handlePointerMove(event: ISpritePointerEvent) {\r\n\t\tsuper._handlePointerMove(event);\r\n\t\tif (this._isDrawing) {\r\n\t\t\tconst movePoint = this._movePointerPoint;\r\n\r\n\t\t\tif (movePoint) {\r\n\t\t\t\tconst dataItems = this.dataItems;\r\n\t\t\t\tconst len = dataItems.length;\r\n\t\t\t\tif(len > 0){\r\n\t\t\t\t\tconst lastItem = dataItems[len - 1];\r\n\r\n\t\t\t\t\tconst point = lastItem.get(\"point\");\r\n\t\t\t\t\tif (point) {\r\n\t\t\t\t\t\tthis._drawingLine.set(\"points\", [point, movePoint]);\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\tprotected _updateElements() {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\tif (dataContext) {\r\n\t\t\t\tconst closing = dataContext.closing;\r\n\t\t\t\tif (closing) {\r\n\t\t\t\t\tif (this._di[dataContext.index]) {\r\n\t\t\t\t\t\tconst closingDataItem = this._di[dataContext.index][0];\r\n\t\t\t\t\t\tconst valueX = closingDataItem.get(\"valueX\", 0);\r\n\t\t\t\t\t\tconst valueY = closingDataItem.get(\"valueY\");\r\n\r\n\t\t\t\t\t\tthis._setContext(dataItem, \"valueX\", valueX);\r\n\t\t\t\t\t\tthis._setContext(dataItem, \"valueY\", valueY, true);\r\n\r\n\t\t\t\t\t\tthis._setXLocation(dataItem, valueX);\r\n\t\t\t\t\t\tthis._positionBullets(dataItem);\r\n\r\n\t\t\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\t\t\tif (bullets) {\r\n\t\t\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\t\tsprite.set(\"forceHidden\", true);\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\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}"]}
|
|
1
|
+
{"version":3,"file":"PolylineSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/PolylineSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISpritePointerEvent } from \"../../../core/render/Sprite\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport { Line } from \"../../../core/render/Line\";\r\n\r\nimport { DrawingSeries, IDrawingSeriesSettings, IDrawingSeriesPrivate, IDrawingSeriesDataItem } from \"./DrawingSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IPolylineSeriesDataItem extends IDrawingSeriesDataItem { }\r\n\r\nexport interface IPolylineSeriesSettings extends IDrawingSeriesSettings { }\r\n\r\nexport interface IPolylineSeriesPrivate extends IDrawingSeriesPrivate { }\r\n\r\nexport class PolylineSeries extends DrawingSeries {\r\n\tpublic static className: string = \"PolylineSeries\";\r\n\tpublic static classNames: Array<string> = DrawingSeries.classNames.concat([PolylineSeries.className]);\r\n\r\n\tdeclare public _settings: IPolylineSeriesSettings;\r\n\tdeclare public _privateSettings: IPolylineSeriesPrivate;\r\n\tdeclare public _dataItemSettings: IPolylineSeriesDataItem;\r\n\r\n\t// point index in segment\r\n\tprotected _pIndex: number = 0;\r\n\r\n\tprotected _tag = \"polyline\";\r\n\r\n\tprotected _drawingLine: Line = this.mainContainer.children.push(Line.new(this._root, { forceInactive: true }));\r\n\r\n\tprotected _handlePointerClick(event: ISpritePointerEvent) {\r\n\t\tif (this._drawingEnabled) {\r\n\t\t\tsuper._handlePointerClick(event);\r\n\r\n\t\t\tif (event.target.get(\"userData\") == \"grip\") {\r\n\t\t\t\tthis._endPolyline(event.target.dataItem);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!this._isDragging) {\r\n\t\t\t\t\tthis._isDrawing = true;\r\n\t\t\t\t\t// for consistency with other series\r\n\t\t\t\t\tif (this._index == 0) {\r\n\t\t\t\t\t\tthis._index = 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this._pIndex == 0) {\r\n\t\t\t\t\t\tthis.data.push({ stroke: this._getStrokeTemplate(), index: this._index, corner: \"e\" });\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._drawingLine.show();\r\n\t\t\t\t\tthis._addPoint(event);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._drawingLine.set(\"stroke\", this.get(\"strokeColor\"));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handleBulletDragStop(event: ISpritePointerEvent) {\r\n\t\tsuper._handleBulletDragStop(event);\r\n\t}\r\n\r\n\tpublic disableDrawing() {\r\n\t\tsuper.disableDrawing();\r\n\t\tthis._endPolyline();\r\n\t}\r\n\r\n\tprotected _afterDataChange() {\r\n\t\tsuper._afterDataChange();\r\n\t\tconst dataItems = this.dataItems;\r\n\t\tif (dataItems.length > 0) {\r\n\t\t\tconst lastDataItem = dataItems[dataItems.length - 1];\r\n\t\t\tconst dataContext = lastDataItem.dataContext as any;\r\n\t\t\tif (dataContext.closing) {\r\n\t\t\t\tthis._pIndex = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic clearDrawings(): void {\r\n\t\tsuper.clearDrawings();\r\n\t\tthis._drawingLine.hide();\r\n\t}\r\n\r\n\tprotected _addPoint(event: ISpritePointerEvent) {\r\n\t\tconst chart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\tconst xAxis = this.get(\"xAxis\");\r\n\t\t\tconst yAxis = this.get(\"yAxis\");\r\n\r\n\t\t\tconst point = chart.plotContainer.toLocal(event.point);\r\n\r\n\t\t\tconst valueX = this._getXValue(xAxis.positionToValue(xAxis.coordinateToPosition(point.x)));\r\n\t\t\tconst valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(point.y)), valueX);\r\n\r\n\t\t\tconst dataItems = this.dataItems;\r\n\t\t\tconst len = dataItems.length;\r\n\r\n\t\t\tthis.data.push({ valueY: valueY, valueX: valueX, index: this._index, corner: this._pIndex });\r\n\t\t\tthis.setPrivate(\"startIndex\", 0);\r\n\t\t\tthis.setPrivate(\"endIndex\", len);\r\n\r\n\t\t\tconst dataItem = dataItems[len];\r\n\t\t\tthis._positionBullets(dataItem);\r\n\t\t\tthis._setXLocation(dataItem, valueX);\r\n\r\n\t\t\tthis._pIndex++;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _endPolyline(dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tif (!dataItem) {\r\n\t\t\tdataItem = this.dataItems[this.dataItems.length - 1];\r\n\t\t}\r\n\r\n\t\tif (dataItem) {\r\n\t\t\tthis._pIndex = 0;\r\n\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\r\n\t\t\tconst index = dataContext.index;\r\n\r\n\t\t\tif (dataContext.corner == 0) {\r\n\t\t\t\tthis.data.push({ valueX: dataItem.get(\"valueX\"), valueY: dataItem.get(\"valueY\"), index: index, corner: this._pIndex + 1, closing: true })\r\n\r\n\t\t\t\tconst dataItems = this.dataItems;\r\n\t\t\t\tconst len = dataItems.length - 1;\r\n\r\n\t\t\t\tthis.setPrivate(\"startIndex\", 0);\r\n\t\t\t\tthis.setPrivate(\"endIndex\", len);\r\n\r\n\t\t\t\tdataItem = dataItems[len];\r\n\t\t\t\tthis._positionBullets(dataItem);\r\n\t\t\t\tthis._setXLocation(dataItem, dataItem.get(\"valueX\", 0));\r\n\t\t\t}\r\n\t\t\tthis.data.push({ stroke: this._getStrokeTemplate(), index: index + 1, corner: \"e\" });\r\n\t\t\tthis._drawingLine.hide();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handlePointerMove(event: ISpritePointerEvent) {\r\n\t\tsuper._handlePointerMove(event);\r\n\t\tif (this._isDrawing) {\r\n\t\t\tconst movePoint = this._movePointerPoint;\r\n\r\n\t\t\tif (movePoint) {\r\n\t\t\t\tconst dataItems = this.dataItems;\r\n\t\t\t\tconst len = dataItems.length;\r\n\t\t\t\tif (len > 0) {\r\n\t\t\t\t\tconst lastItem = dataItems[len - 1];\r\n\r\n\t\t\t\t\tconst point = lastItem.get(\"point\");\r\n\t\t\t\t\tif (point) {\r\n\t\t\t\t\t\tthis._drawingLine.set(\"points\", [point, movePoint]);\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\tprotected _updateElements() {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\tif (dataContext) {\r\n\t\t\t\tconst closing = dataContext.closing;\r\n\t\t\t\tif (closing) {\r\n\t\t\t\t\tif (this._di[dataContext.index]) {\r\n\t\t\t\t\t\tconst closingDataItem = this._di[dataContext.index][0];\r\n\t\t\t\t\t\tconst valueX = closingDataItem.get(\"valueX\", 0);\r\n\t\t\t\t\t\tconst valueY = closingDataItem.get(\"valueY\");\r\n\r\n\t\t\t\t\t\tthis._setContext(dataItem, \"valueX\", valueX);\r\n\t\t\t\t\t\tthis._setContext(dataItem, \"valueY\", valueY, true);\r\n\r\n\t\t\t\t\t\tthis._setXLocation(dataItem, valueX);\r\n\t\t\t\t\t\tthis._positionBullets(dataItem);\r\n\r\n\t\t\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\t\t\tif (bullets) {\r\n\t\t\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\t\tsprite.set(\"forceHidden\", true);\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\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}"]}
|
|
@@ -42,7 +42,7 @@ export interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSet
|
|
|
42
42
|
*/
|
|
43
43
|
groupCount?: number;
|
|
44
44
|
/**
|
|
45
|
-
* Force data item grouping to specific interval.
|
|
45
|
+
* Force data item grouping to specific interval. This interval must be within groupIntervals array for this to work.
|
|
46
46
|
*
|
|
47
47
|
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info
|
|
48
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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"}
|
|
@@ -322,12 +322,16 @@ export class DateAxis extends ValueAxis {
|
|
|
322
322
|
}
|
|
323
323
|
if (this.get("groupData") && !this._groupingCalculated) {
|
|
324
324
|
this._groupingCalculated = true;
|
|
325
|
-
let modifiedDifference = (selectionMax - selectionMin) + (this.get("startLocation", 0) + (1 - this.get("endLocation", 1)) * this.baseDuration());
|
|
326
325
|
let groupInterval = this.get("groupInterval");
|
|
326
|
+
let current = this.getPrivate("groupInterval");
|
|
327
|
+
let modifiedDifference = (selectionMax - selectionMin) + (this.get("startLocation", 0) + (1 - this.get("endLocation", 1)) * this.baseDuration());
|
|
328
|
+
if (current) {
|
|
329
|
+
let duration = $time.getIntervalDuration(current);
|
|
330
|
+
modifiedDifference = Math.ceil(modifiedDifference / duration) * duration;
|
|
331
|
+
}
|
|
327
332
|
if (!groupInterval) {
|
|
328
333
|
groupInterval = this.getGroupInterval(modifiedDifference);
|
|
329
334
|
}
|
|
330
|
-
let current = this.getPrivate("groupInterval");
|
|
331
335
|
if (groupInterval && (!current || (current.timeUnit !== groupInterval.timeUnit || current.count !== groupInterval.count) || this._seriesDataGrouped)) {
|
|
332
336
|
this._seriesDataGrouped = false;
|
|
333
337
|
this.setPrivateRaw("groupInterval", groupInterval);
|
|
@@ -416,6 +420,7 @@ export class DateAxis extends ValueAxis {
|
|
|
416
420
|
return 1.01;
|
|
417
421
|
}
|
|
418
422
|
_getMinorInterval(interval) {
|
|
423
|
+
var _a;
|
|
419
424
|
let minorGridInterval;
|
|
420
425
|
let count = interval.count;
|
|
421
426
|
let timeUnit = interval.timeUnit;
|
|
@@ -441,7 +446,9 @@ export class DateAxis extends ValueAxis {
|
|
|
441
446
|
minorGridInterval = { timeUnit: timeUnit, count: count };
|
|
442
447
|
}
|
|
443
448
|
if (timeUnit == "week") {
|
|
444
|
-
|
|
449
|
+
if (((_a = this.getPrivate("baseInterval")) === null || _a === void 0 ? void 0 : _a.timeUnit) != "week") {
|
|
450
|
+
minorGridInterval = { timeUnit: "day", count: 1 };
|
|
451
|
+
}
|
|
445
452
|
}
|
|
446
453
|
return minorGridInterval;
|
|
447
454
|
}
|
|
@@ -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 minor grid labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Minor_grid_formats} for more info\n\t * @since 5.6.0\n\t */\n\tminorDateFormats?: { [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\tthis._handleRangeChange();\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\tseries.resetGrouping();\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 != null) {\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\tnewDataItem.setRaw(field as any, currentValue + value);\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\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.getFirstSortedIndex(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\t\t\t\t\tlet endIndex2 = endIndex;\n\n\t\t\t\t\tif (endIndex2 > 1) {\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 _getMinorInterval(interval:ITimeInterval):ITimeInterval | undefined{\n\t\tlet minorGridInterval:ITimeInterval | undefined;\n\t\tlet count = interval.count;\n\t\tlet timeUnit = interval.timeUnit;\n\t\tif (count > 1) {\n\t\t\tif (count == 10) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 15) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 12) {\n\t\t\t\tcount = 2;\n\t\t\t}\t\t\t\n\t\t\telse if (count == 6) {\n\t\t\t\tcount = 1;\n\t\t\t}\t\t\t\t\t\t\n\t\t\telse if (count == 30) {\n\t\t\t\tcount = 10;\n\t\t\t}\n\t\t\telse if (count < 10) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\tminorGridInterval = { timeUnit: timeUnit, count: count };\n\t\t}\n\t\tif (timeUnit == \"week\") {\n\t\t\tminorGridInterval = { timeUnit: \"day\", count: 1 };\n\t\t}\n\t\treturn minorGridInterval;\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\tconst minorLabelsEnabled = renderer.get(\"minorLabelsEnabled\");\n\t\t\tconst minorGridEnabled = renderer.get(\"minorGridEnabled\", minorLabelsEnabled);\n\n\t\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\t\tlet minorDuration = 0;\n\n\t\t\tif (minorGridEnabled) {\n\t\t\t\tminorGridInterval = this._getMinorInterval(gridInterval);\n\t\t\t\tminorDuration = $time.getIntervalDuration(minorGridInterval);\n\t\t\t}\n\n\t\t\tlet m = 0;\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\tthis._toggleDataItem(dataItem, true);\n\n\t\t\t\tdataItem.setRaw(\"value\", value);\n\t\t\t\tdataItem.setRaw(\"labelEndValue\", undefined);\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\tlet count = gridInterval.count;\n\t\t\t\t// so that labels of week would always be at the beginning of the grid\n\t\t\t\tif (gridInterval.timeUnit == \"week\") {\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", value);\n\t\t\t\t}\n\n\t\t\t\tif (minorGridEnabled) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t\tlet timeUnit = gridInterval.timeUnit;\n\t\t\t\t\tif (timeUnit == \"week\") {\n\t\t\t\t\t\ttimeUnit = \"day\";\n\t\t\t\t\t}\n\n\t\t\t\t\tlet labelEndValue = value + $time.getDuration(timeUnit, this._getM(timeUnit));\n\t\t\t\t\tlabelEndValue = $time.round(new Date(labelEndValue), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", labelEndValue);\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem, count);\n\n\t\t\t\tpreviousValue = value;\n\t\t\t\tvalue = endValue;\n\n\t\t\t\t// min grid\n\t\t\t\tif (minorGridInterval) {\n\t\t\t\t\tlet minorValue = $time.round(new Date(previousValue + minorDuration * this._getM(minorGridInterval.timeUnit)), minorGridInterval.timeUnit, minorGridInterval.count, firstDay, utc, new Date(previousValue), timezone).getTime();\n\t\t\t\t\tlet previousMinorValue: number | undefined;\n\t\t\t\t\tlet minorFormats = this.get(\"minorDateFormats\", this.get(\"dateFormats\"))!;\n\n\t\t\t\t\twhile (minorValue < value - 0.01 * minorDuration) {\n\t\t\t\t\t\tlet minorDataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\t\t\tif (this.minorDataItems.length < m + 1) {\n\t\t\t\t\t\t\tminorDataItem = new DataItem(this, undefined, {});\n\t\t\t\t\t\t\tthis.minorDataItems.push(minorDataItem);\n\t\t\t\t\t\t\tthis.processDataItem(minorDataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminorDataItem = this.minorDataItems[m];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._createAssets(minorDataItem, [\"minor\"], true);\n\n\t\t\t\t\t\tthis._toggleDataItem(minorDataItem, true);\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"value\", minorValue);\n\n\t\t\t\t\t\tlet minorEndValue = minorValue + $time.getDuration(minorGridInterval.timeUnit, minorGridInterval.count * this._getM(minorGridInterval.timeUnit));\n\t\t\t\t\t\tminorEndValue = $time.round(new Date(minorEndValue), minorGridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"endValue\", minorEndValue);\n\n\t\t\t\t\t\tlet date = new Date(minorValue);\n\n\t\t\t\t\t\tformat = minorFormats[minorGridInterval.timeUnit];\n\n\t\t\t\t\t\tconst minorLabel = minorDataItem.get(\"label\");\n\n\t\t\t\t\t\tif (minorLabel) {\n\t\t\t\t\t\t\tif (minorLabelsEnabled) {\n\t\t\t\t\t\t\t\tminorLabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tminorLabel.setPrivate(\"visible\", false);\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._prepareDataItem(minorDataItem, 1);\n\n\t\t\t\t\t\tif (minorValue == previousMinorValue) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpreviousMinorValue = minorValue;\n\t\t\t\t\t\tminorValue = minorEndValue;\n\t\t\t\t\t\tm++;\n\t\t\t\t\t}\n\t\t\t\t}\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._toggleDataItem(this.dataItems[j], false);\n\t\t\t}\n\n\t\t\tfor (let j = m; j < this.minorDataItems.length; j++) {\n\t\t\t\tthis._toggleDataItem(this.minorDataItems[j], false);\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, _series: XYSeries) {\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, dataItem.component as XYSeries);\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\tif ($type.isNumber(value)) {\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, date, this._root.locale.firstDayOfWeek, this._root.utc, this._root.timezone);\n\n\t\t\t\tif (adjustPosition !== false) {\n\t\t\t\t\tdate = new Date(value + this.get(\"tooltipIntervalOffset\", -this.get(\"tooltipLocation\", 0.5)) * duration)\n\t\t\t\t}\n\n\t\t\t\treturn this._root.dateFormatter.format(date, this.get(\"tooltipDateFormat\", format));\n\t\t\t}\n\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, snap?: boolean): 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 (snap || 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\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. This interval must be within groupIntervals array for this to work.\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 minor grid labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Minor_grid_formats} for more info\n\t * @since 5.6.0\n\t */\n\tminorDateFormats?: { [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\tthis._handleRangeChange();\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\tseries.resetGrouping();\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 != null) {\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\tnewDataItem.setRaw(field as any, currentValue + value);\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 groupInterval = this.get(\"groupInterval\");\n\t\t\t\tlet current = this.getPrivate(\"groupInterval\");\n\n\t\t\t\tlet modifiedDifference = (selectionMax - selectionMin) + (this.get(\"startLocation\", 0) + (1 - this.get(\"endLocation\", 1)) * this.baseDuration());\n\n\t\t\t\tif (current) {\n\t\t\t\t\tlet duration = $time.getIntervalDuration(current);\n\t\t\t\t\tmodifiedDifference = Math.ceil(modifiedDifference / duration) * duration;\n\t\t\t\t}\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\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\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.getFirstSortedIndex(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\t\t\t\t\tlet endIndex2 = endIndex;\n\n\t\t\t\t\tif (endIndex2 > 1) {\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 _getMinorInterval(interval: ITimeInterval): ITimeInterval | undefined {\n\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\tlet count = interval.count;\n\t\tlet timeUnit = interval.timeUnit;\n\t\tif (count > 1) {\n\t\t\tif (count == 10) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 15) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 12) {\n\t\t\t\tcount = 2;\n\t\t\t}\n\t\t\telse if (count == 6) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\telse if (count == 30) {\n\t\t\t\tcount = 10;\n\t\t\t}\n\t\t\telse if (count < 10) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\tminorGridInterval = { timeUnit: timeUnit, count: count };\n\t\t}\n\t\tif (timeUnit == \"week\") {\n\t\t\tif(this.getPrivate(\"baseInterval\")?.timeUnit != \"week\"){\n\t\t\t\tminorGridInterval = { timeUnit: \"day\", count: 1 };\n\t\t\t}\n\t\t}\n\t\treturn minorGridInterval;\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\tconst minorLabelsEnabled = renderer.get(\"minorLabelsEnabled\");\n\t\t\tconst minorGridEnabled = renderer.get(\"minorGridEnabled\", minorLabelsEnabled);\n\n\t\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\t\tlet minorDuration = 0;\n\n\t\t\tif (minorGridEnabled) {\n\t\t\t\tminorGridInterval = this._getMinorInterval(gridInterval);\n\t\t\t\tminorDuration = $time.getIntervalDuration(minorGridInterval);\n\t\t\t}\n\n\t\t\tlet m = 0;\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\tthis._toggleDataItem(dataItem, true);\n\n\t\t\t\tdataItem.setRaw(\"value\", value);\n\t\t\t\tdataItem.setRaw(\"labelEndValue\", undefined);\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\tlet count = gridInterval.count;\n\t\t\t\t// so that labels of week would always be at the beginning of the grid\n\t\t\t\tif (gridInterval.timeUnit == \"week\") {\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", value);\n\t\t\t\t}\n\n\t\t\t\tif (minorGridEnabled) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t\tlet timeUnit = gridInterval.timeUnit;\n\t\t\t\t\tif (timeUnit == \"week\") {\n\t\t\t\t\t\ttimeUnit = \"day\";\n\t\t\t\t\t}\n\n\t\t\t\t\tlet labelEndValue = value + $time.getDuration(timeUnit, this._getM(timeUnit));\n\t\t\t\t\tlabelEndValue = $time.round(new Date(labelEndValue), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", labelEndValue);\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem, count);\n\n\t\t\t\tpreviousValue = value;\n\t\t\t\tvalue = endValue;\n\n\t\t\t\t// min grid\n\t\t\t\tif (minorGridInterval) {\n\t\t\t\t\tlet minorValue = $time.round(new Date(previousValue + minorDuration * this._getM(minorGridInterval.timeUnit)), minorGridInterval.timeUnit, minorGridInterval.count, firstDay, utc, new Date(previousValue), timezone).getTime();\n\t\t\t\t\tlet previousMinorValue: number | undefined;\n\t\t\t\t\tlet minorFormats = this.get(\"minorDateFormats\", this.get(\"dateFormats\"))!;\n\n\t\t\t\t\twhile (minorValue < value - 0.01 * minorDuration) {\n\t\t\t\t\t\tlet minorDataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\t\t\tif (this.minorDataItems.length < m + 1) {\n\t\t\t\t\t\t\tminorDataItem = new DataItem(this, undefined, {});\n\t\t\t\t\t\t\tthis.minorDataItems.push(minorDataItem);\n\t\t\t\t\t\t\tthis.processDataItem(minorDataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminorDataItem = this.minorDataItems[m];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._createAssets(minorDataItem, [\"minor\"], true);\n\n\t\t\t\t\t\tthis._toggleDataItem(minorDataItem, true);\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"value\", minorValue);\n\n\t\t\t\t\t\tlet minorEndValue = minorValue + $time.getDuration(minorGridInterval.timeUnit, minorGridInterval.count * this._getM(minorGridInterval.timeUnit));\n\t\t\t\t\t\tminorEndValue = $time.round(new Date(minorEndValue), minorGridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"endValue\", minorEndValue);\n\n\t\t\t\t\t\tlet date = new Date(minorValue);\n\n\t\t\t\t\t\tformat = minorFormats[minorGridInterval.timeUnit];\n\n\t\t\t\t\t\tconst minorLabel = minorDataItem.get(\"label\");\n\n\t\t\t\t\t\tif (minorLabel) {\n\t\t\t\t\t\t\tif (minorLabelsEnabled) {\n\t\t\t\t\t\t\t\tminorLabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tminorLabel.setPrivate(\"visible\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._prepareDataItem(minorDataItem, 1);\n\n\t\t\t\t\t\tif (minorValue == previousMinorValue) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpreviousMinorValue = minorValue;\n\t\t\t\t\t\tminorValue = minorEndValue;\n\t\t\t\t\t\tm++;\n\t\t\t\t\t}\n\t\t\t\t}\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._toggleDataItem(this.dataItems[j], false);\n\t\t\t}\n\n\t\t\tfor (let j = m; j < this.minorDataItems.length; j++) {\n\t\t\t\tthis._toggleDataItem(this.minorDataItems[j], false);\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, _series: XYSeries) {\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, dataItem.component as XYSeries);\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\tif ($type.isNumber(value)) {\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, date, this._root.locale.firstDayOfWeek, this._root.utc, this._root.timezone);\n\n\t\t\t\tif (adjustPosition !== false) {\n\t\t\t\t\tdate = new Date(value + this.get(\"tooltipIntervalOffset\", -this.get(\"tooltipLocation\", 0.5)) * duration)\n\t\t\t\t}\n\n\t\t\t\treturn this._root.dateFormatter.format(date, this.get(\"tooltipDateFormat\", format));\n\t\t\t}\n\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, snap?: boolean): 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 (snap || 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\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GaplessDateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;CAE7F;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAElE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CAEd;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;CAEhE;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;CAC9D;AAED;;;;;;GAMG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IACvE,OAAc,SAAS,EAAE,MAAM,CAAqB;IACpD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA2D;IAEnF,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACvC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,OAAO,EAAE,sBAAsB,CAAC;IAE/C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAK;IACjC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAK;IAElB,SAAS;IAKhB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAErC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;IAU9C,eAAe;
|
|
1
|
+
{"version":3,"file":"GaplessDateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;CAE7F;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAElE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CAEd;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;CAEhE;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;CAC9D;AAED;;;;;;GAMG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IACvE,OAAc,SAAS,EAAE,MAAM,CAAqB;IACpD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA2D;IAEnF,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACvC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,OAAO,EAAE,sBAAsB,CAAC;IAE/C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAK;IACjC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAK;IAElB,SAAS;IAKhB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAErC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;IAU9C,eAAe;IAyDtB;;;;;OAKG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA8B7C;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAiB1C;;;;;;OAMG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiBhD,SAAS,CAAC,cAAc;IAIxB;;;;;;;;OAQG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IASjE,SAAS,CAAC,iBAAiB;IA2N3B,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAC,wBAAwB,CAAC;IAe/K,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa;IAmDhH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAwElH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;CAQ/B"}
|