@amcharts/amcharts5 5.5.7 → 5.6.1
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/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +3 -1
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/Treemap.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Treemap.js +4 -1
- package/.internal/charts/hierarchy/Treemap.js.map +1 -1
- package/.internal/charts/stock/indicators/ChartIndicator.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/ChartIndicator.js +2 -0
- package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
- package/.internal/charts/stock/toolbar/Dropdown.d.ts +1 -1
- package/.internal/charts/stock/toolbar/Dropdown.js +1 -1
- package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownList.d.ts +1 -1
- package/.internal/charts/stock/toolbar/DropdownList.js +1 -1
- package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +7 -0
- package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.js +42 -21
- package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockControl.d.ts +1 -1
- package/.internal/charts/stock/toolbar/StockControl.js +1 -1
- package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbar.d.ts +3 -1
- package/.internal/charts/stock/toolbar/StockToolbar.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbar.js +3 -1
- package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.js +12 -0
- package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts +5 -1
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +79 -5
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.d.ts +17 -0
- package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.js +22 -2
- package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts +10 -0
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +100 -1
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +7 -0
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +215 -48
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.d.ts +4 -0
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +68 -8
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts +4 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +132 -25
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts +8 -1
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +8 -4
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/render/Bullet.d.ts +24 -0
- package/.internal/core/render/Bullet.d.ts.map +1 -1
- package/.internal/core/render/Bullet.js.map +1 -1
- package/.internal/core/render/Polygon.d.ts.map +1 -1
- package/.internal/core/render/Polygon.js +4 -0
- package/.internal/core/render/Polygon.js.map +1 -1
- package/.internal/core/render/Series.d.ts +17 -1
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js +55 -27
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +17 -17
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/util/Time.d.ts.map +1 -1
- package/.internal/core/util/Time.js +14 -11
- package/.internal/core/util/Time.js.map +1 -1
- package/.internal/plugins/json/Json.d.ts.map +1 -1
- package/.internal/plugins/json/Json.js +1 -1
- package/.internal/plugins/json/Json.js.map +1 -1
- package/.internal/themes/ResponsiveTheme.d.ts +6 -1
- package/.internal/themes/ResponsiveTheme.d.ts.map +1 -1
- package/.internal/themes/ResponsiveTheme.js +66 -24
- package/.internal/themes/ResponsiveTheme.js.map +1 -1
- package/CHANGELOG.md +34 -1
- 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/index.js +3 -2
- 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/index.js +2 -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/index.js +3 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/index.js +3 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/index.js +3 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/index.js +6 -2
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/index.js +3 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/index.js +3 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/index.js +6 -2
- 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/index.js +3 -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/index.js +1 -0
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/index.js +3 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/index.js +3 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/index.js +1 -0
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/index.js +3 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/index.js +3 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/index.js +2 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/index.js +4 -5
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/index.js +1 -0
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/index.js +3 -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/index.js +4 -2
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/index.js +3 -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/index.js +3 -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/index.js +7 -2
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/index.js +4 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/index.js +3 -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/index.ts +3 -2
- 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/index.ts +2 -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/index.ts +3 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/index.ts +3 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/index.ts +3 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/index.ts +6 -2
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/index.ts +3 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/index.ts +3 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/index.ts +6 -2
- 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/index.ts +3 -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/index.ts +1 -0
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/index.ts +3 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/index.ts +3 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/index.ts +1 -0
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/index.ts +3 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/index.ts +3 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/index.ts +2 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/index.ts +4 -5
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/index.ts +1 -0
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/index.ts +3 -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/index.ts +4 -2
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/index.ts +3 -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/index.ts +3 -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/index.ts +7 -2
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/index.ts +4 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/index.ts +3 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +1 -1
|
@@ -21,6 +21,12 @@ export class GaplessDateAxis extends DateAxis {
|
|
|
21
21
|
writable: true,
|
|
22
22
|
value: 1
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(this, "_m", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: 0
|
|
29
|
+
});
|
|
24
30
|
Object.defineProperty(this, "_dates", {
|
|
25
31
|
enumerable: true,
|
|
26
32
|
configurable: true,
|
|
@@ -157,9 +163,13 @@ export class GaplessDateAxis extends DateAxis {
|
|
|
157
163
|
this._seriesValuesDirty = false;
|
|
158
164
|
this._updateAllDates();
|
|
159
165
|
}
|
|
166
|
+
const firstDay = this._root.locale.firstDayOfWeek;
|
|
167
|
+
const utc = this._root.utc;
|
|
168
|
+
const timezone = this._root.timezone;
|
|
160
169
|
const dates = this._dates;
|
|
161
170
|
const renderer = this.get("renderer");
|
|
162
171
|
const len = dates.length;
|
|
172
|
+
const baseDuration = this.baseDuration();
|
|
163
173
|
let startIndex = this.valueToIndex(startTime);
|
|
164
174
|
if (startIndex > 0) {
|
|
165
175
|
startIndex--;
|
|
@@ -173,59 +183,52 @@ export class GaplessDateAxis extends DateAxis {
|
|
|
173
183
|
frequency = Math.max(1, frequency);
|
|
174
184
|
startIndex = Math.floor(startIndex / frequency) * frequency;
|
|
175
185
|
this._frequency = frequency;
|
|
176
|
-
|
|
177
|
-
this._toggleDataItem(
|
|
178
|
-
}
|
|
179
|
-
|
|
186
|
+
$array.each(this.dataItems, (dataItem) => {
|
|
187
|
+
this._toggleDataItem(dataItem, false);
|
|
188
|
+
});
|
|
189
|
+
$array.each(this.minorDataItems, (dataItem) => {
|
|
190
|
+
this._toggleDataItem(dataItem, false);
|
|
191
|
+
});
|
|
192
|
+
let realDuration = (endTime - startTime) - ((endTime - startTime) / baseDuration - (endIndex - startIndex)) * baseDuration;
|
|
180
193
|
// if all items are on axis
|
|
181
194
|
let gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get("gridIntervals"));
|
|
182
195
|
const baseInterval = this.getPrivate("baseInterval");
|
|
183
196
|
let intervalDuration = $time.getIntervalDuration(gridInterval);
|
|
184
|
-
if (intervalDuration <
|
|
197
|
+
if (intervalDuration < baseDuration) {
|
|
185
198
|
gridInterval = Object.assign({}, baseInterval);
|
|
186
199
|
intervalDuration = $time.getIntervalDuration(gridInterval);
|
|
187
200
|
}
|
|
188
201
|
this._intervalDuration = intervalDuration;
|
|
202
|
+
const timeUnit = gridInterval.timeUnit;
|
|
189
203
|
const formats = this.get("dateFormats");
|
|
190
|
-
let selectedItems = [];
|
|
191
204
|
let firstDate = new Date();
|
|
192
205
|
if (this._dates[0]) {
|
|
193
206
|
firstDate = new Date(this._dates[0]);
|
|
194
207
|
}
|
|
195
|
-
let
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
let
|
|
199
|
-
let
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
for (let i = index, len = this._dates.length; i < len; i++) {
|
|
205
|
-
let realValue = this._dates[i];
|
|
206
|
-
if (realValue >= value) {
|
|
207
|
-
index = i;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
let position = this.valueToPosition(realValue);
|
|
213
|
-
if (position - previousPosition >= minDifference * 0.95) {
|
|
214
|
-
$array.move(selectedItems, index);
|
|
215
|
-
previousPosition = position;
|
|
216
|
-
}
|
|
217
|
-
let previousValue = value;
|
|
218
|
-
value += $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));
|
|
219
|
-
value = $time.round(new Date(value), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();
|
|
220
|
-
if (value == previousValue) {
|
|
221
|
-
break;
|
|
222
|
-
}
|
|
208
|
+
let value = $time.round(new Date(this.getPrivate("selectionMin", 0)), timeUnit, gridInterval.count, firstDay, utc, firstDate, timezone).getTime();
|
|
209
|
+
const minorLabelsEnabled = renderer.get("minorLabelsEnabled");
|
|
210
|
+
const minorGridEnabled = renderer.get("minorGridEnabled", minorLabelsEnabled);
|
|
211
|
+
let minorGridInterval;
|
|
212
|
+
let minorDuration = 0;
|
|
213
|
+
let previousDataItem;
|
|
214
|
+
if (minorGridEnabled) {
|
|
215
|
+
minorGridInterval = this._getMinorInterval(gridInterval);
|
|
216
|
+
minorDuration = $time.getIntervalDuration(minorGridInterval);
|
|
223
217
|
}
|
|
218
|
+
let selectedItems = this._getIndexes(value, this.getPrivate("selectionMax", value) + intervalDuration, gridInterval, this.getPrivate("min", value));
|
|
224
219
|
if (selectedItems.length > 0) {
|
|
225
220
|
let i = 0;
|
|
221
|
+
this._m = 0;
|
|
226
222
|
let previousValue = value - intervalDuration * 10;
|
|
227
|
-
const nextGridUnit = $time.getNextUnit(
|
|
223
|
+
const nextGridUnit = $time.getNextUnit(timeUnit);
|
|
224
|
+
// MINOR GRID
|
|
225
|
+
if (minorGridInterval) {
|
|
226
|
+
let first = dates[selectedItems[0]];
|
|
227
|
+
this._addMinorGrid(first - intervalDuration, first, minorDuration, minorGridInterval);
|
|
228
|
+
}
|
|
229
|
+
let minDistance = renderer.axisLength() / renderer.gridCount() * 0.5;
|
|
228
230
|
$array.each(selectedItems, (index) => {
|
|
231
|
+
var _a;
|
|
229
232
|
let dataItem;
|
|
230
233
|
if (this.dataItems.length < i + 1) {
|
|
231
234
|
dataItem = new DataItem(this, undefined, {});
|
|
@@ -247,25 +250,73 @@ export class GaplessDateAxis extends DateAxis {
|
|
|
247
250
|
dataItem.setRaw("value", value);
|
|
248
251
|
dataItem.setRaw("endValue", endValue);
|
|
249
252
|
dataItem.setRaw("index", i);
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
if (
|
|
254
|
-
if (
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
dataItem.setRaw("labelEndValue", undefined);
|
|
254
|
+
let format = formats[timeUnit];
|
|
255
|
+
if (nextGridUnit && this.get("markUnitChange") && $type.isNumber(previousValue)) {
|
|
256
|
+
if (timeUnit != "year") {
|
|
257
|
+
if ($time.checkChange(value, previousValue, nextGridUnit, utc, timezone)) {
|
|
258
|
+
format = this.get("periodChangeDateFormats")[timeUnit];
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
this._createAssets(dataItem, []);
|
|
263
|
+
const label = dataItem.get("label");
|
|
264
|
+
if (label) {
|
|
265
|
+
label.set("text", this._root.dateFormatter.format(date, format));
|
|
266
|
+
}
|
|
267
|
+
this._toggleDataItem(dataItem, true);
|
|
268
|
+
let count = gridInterval.count;
|
|
269
|
+
// so that labels of week would always be at the beginning of the grid
|
|
270
|
+
if (timeUnit == "week") {
|
|
271
|
+
dataItem.setRaw("labelEndValue", value);
|
|
272
|
+
}
|
|
273
|
+
if (minorGridEnabled) {
|
|
274
|
+
let timeUnit2 = gridInterval.timeUnit;
|
|
275
|
+
if (timeUnit2 == "week") {
|
|
276
|
+
timeUnit2 = "day";
|
|
277
|
+
}
|
|
278
|
+
if (count > 1 || gridInterval.timeUnit == "week") {
|
|
279
|
+
let labelEndValue = $time.round(new Date(value), timeUnit2, 1, firstDay, utc, undefined, timezone).getTime() + $time.getDuration(timeUnit2, this._getM(timeUnit2));
|
|
280
|
+
let index = this.valueToIndex(labelEndValue);
|
|
281
|
+
labelEndValue = this._dates[index];
|
|
282
|
+
if (labelEndValue == value) {
|
|
283
|
+
let next = this._dates[index + 1];
|
|
284
|
+
if (next) {
|
|
285
|
+
labelEndValue = next;
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
labelEndValue += minorDuration;
|
|
257
289
|
}
|
|
258
290
|
}
|
|
291
|
+
dataItem.setRaw("labelEndValue", labelEndValue);
|
|
259
292
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
293
|
+
count = 1;
|
|
294
|
+
}
|
|
295
|
+
this._prepareDataItem(dataItem, count);
|
|
296
|
+
if (label && previousDataItem) {
|
|
297
|
+
if (renderer.getPrivate("letter") == "X") {
|
|
298
|
+
let previousLabel = previousDataItem.get("label");
|
|
299
|
+
if (previousLabel) {
|
|
300
|
+
let x = label.x();
|
|
301
|
+
let previousX = previousLabel.x();
|
|
302
|
+
if (x - previousX < minDistance) {
|
|
303
|
+
let worse = this._pickWorse(previousDataItem, dataItem, gridInterval);
|
|
304
|
+
if (worse) {
|
|
305
|
+
(_a = worse.get("label")) === null || _a === void 0 ? void 0 : _a.setPrivate("visible", false);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
264
309
|
}
|
|
265
|
-
|
|
266
|
-
|
|
310
|
+
// todo y?
|
|
311
|
+
}
|
|
312
|
+
// MINOR GRID
|
|
313
|
+
if (minorGridInterval) {
|
|
314
|
+
this._addMinorGrid(value, endValue, minorDuration, minorGridInterval);
|
|
267
315
|
}
|
|
268
316
|
i++;
|
|
317
|
+
if (label && label.getPrivate("visible")) {
|
|
318
|
+
previousDataItem = dataItem;
|
|
319
|
+
}
|
|
269
320
|
previousValue = value;
|
|
270
321
|
});
|
|
271
322
|
}
|
|
@@ -277,6 +328,122 @@ export class GaplessDateAxis extends DateAxis {
|
|
|
277
328
|
}
|
|
278
329
|
this._updateGhost();
|
|
279
330
|
}
|
|
331
|
+
_pickWorse(dataItemA, dataItemB, interval) {
|
|
332
|
+
const timeUnit = interval.timeUnit;
|
|
333
|
+
const valueA = dataItemA.get("value", 0);
|
|
334
|
+
const valueB = dataItemB.get("value", 0);
|
|
335
|
+
if (timeUnit == "hour") {
|
|
336
|
+
if (new Date(valueA).getDate() != new Date(valueB).getDate()) {
|
|
337
|
+
return dataItemA;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return dataItemB;
|
|
341
|
+
}
|
|
342
|
+
_addMinorGrid(startValue, endValue, minorDuration, gridInterval) {
|
|
343
|
+
const minorFormats = this.get("minorDateFormats", this.get("dateFormats"));
|
|
344
|
+
const mTimeUnit = gridInterval.timeUnit;
|
|
345
|
+
const firstDay = this._root.locale.firstDayOfWeek;
|
|
346
|
+
const utc = this._root.utc;
|
|
347
|
+
const timezone = this._root.timezone;
|
|
348
|
+
let value = startValue + $time.getDuration(mTimeUnit, this._getM(mTimeUnit));
|
|
349
|
+
value = $time.round(new Date(value), mTimeUnit, 1, firstDay, utc, undefined, timezone).getTime();
|
|
350
|
+
let maxValue = endValue - minorDuration * 0.5;
|
|
351
|
+
let minorSelectedItems = this._getIndexes(value, maxValue, gridInterval, value);
|
|
352
|
+
$array.each(minorSelectedItems, (index) => {
|
|
353
|
+
let minorDataItem;
|
|
354
|
+
if (this.minorDataItems.length < this._m + 1) {
|
|
355
|
+
minorDataItem = new DataItem(this, undefined, {});
|
|
356
|
+
this.minorDataItems.push(minorDataItem);
|
|
357
|
+
this.processDataItem(minorDataItem);
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
minorDataItem = this.minorDataItems[this._m];
|
|
361
|
+
}
|
|
362
|
+
value = this._dates[index];
|
|
363
|
+
minorDataItem.setRaw("value", value);
|
|
364
|
+
minorDataItem.setRaw("endValue", value + minorDuration);
|
|
365
|
+
minorDataItem.setRaw("index", index);
|
|
366
|
+
this._createAssets(minorDataItem, ["minor"], true);
|
|
367
|
+
const label = minorDataItem.get("label");
|
|
368
|
+
if (label) {
|
|
369
|
+
if (this.get("renderer").get("minorLabelsEnabled")) {
|
|
370
|
+
let date = new Date(value);
|
|
371
|
+
let format = minorFormats[mTimeUnit];
|
|
372
|
+
label.set("text", this._root.dateFormatter.format(date, format));
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
label.setPrivate("visible", false);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
this._toggleDataItem(minorDataItem, true);
|
|
379
|
+
this._prepareDataItem(minorDataItem, 1);
|
|
380
|
+
this._m++;
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
_getIndexes(value, maxValue, interval, firstValue) {
|
|
384
|
+
const items = [];
|
|
385
|
+
const timeUnit = interval.timeUnit;
|
|
386
|
+
const count = interval.count;
|
|
387
|
+
const baseInterval = this.getPrivate("baseInterval");
|
|
388
|
+
const firstDay = this._root.locale.firstDayOfWeek;
|
|
389
|
+
const utc = this._root.utc;
|
|
390
|
+
const timezone = this._root.timezone;
|
|
391
|
+
let c = count - 1;
|
|
392
|
+
let previousValue = -Infinity;
|
|
393
|
+
let duration = $time.getDuration(timeUnit, this._getM(timeUnit));
|
|
394
|
+
let fullDuration = $time.getDuration(timeUnit, count * this._getM(timeUnit));
|
|
395
|
+
let originalValue = value;
|
|
396
|
+
if (timeUnit == "day") {
|
|
397
|
+
value = firstValue;
|
|
398
|
+
}
|
|
399
|
+
while (value <= maxValue) {
|
|
400
|
+
value = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();
|
|
401
|
+
let index = this.valueToIndex(value);
|
|
402
|
+
let realValue = this._dates[index];
|
|
403
|
+
if (timeUnit == "day" && baseInterval.timeUnit == "day") {
|
|
404
|
+
if (this._hasDate(value)) {
|
|
405
|
+
c++;
|
|
406
|
+
}
|
|
407
|
+
if (c == count) {
|
|
408
|
+
if (value >= originalValue - fullDuration * 2) {
|
|
409
|
+
$array.move(items, index);
|
|
410
|
+
}
|
|
411
|
+
c = 0;
|
|
412
|
+
}
|
|
413
|
+
value += duration;
|
|
414
|
+
value = $time.round(new Date(value), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
if (realValue < value) {
|
|
418
|
+
for (let i = index, len = this._dates.length; i < len; i++) {
|
|
419
|
+
realValue = this._dates[i];
|
|
420
|
+
if (realValue >= value) {
|
|
421
|
+
index = i;
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
$array.move(items, index);
|
|
427
|
+
value += fullDuration;
|
|
428
|
+
value = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();
|
|
429
|
+
}
|
|
430
|
+
if (value == previousValue) {
|
|
431
|
+
value += fullDuration + duration;
|
|
432
|
+
value = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();
|
|
433
|
+
}
|
|
434
|
+
if (value == previousValue) {
|
|
435
|
+
break;
|
|
436
|
+
}
|
|
437
|
+
previousValue = value;
|
|
438
|
+
}
|
|
439
|
+
return items;
|
|
440
|
+
}
|
|
441
|
+
_hasDate(time) {
|
|
442
|
+
const result = $array.getSortedIndex(this._dates, (date) => {
|
|
443
|
+
return $order.compareNumber(date, time);
|
|
444
|
+
});
|
|
445
|
+
return result.found;
|
|
446
|
+
}
|
|
280
447
|
}
|
|
281
448
|
Object.defineProperty(GaplessDateAxis, "className", {
|
|
282
449
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GaplessDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\r\n\r\nimport { DateAxis, IDateAxisSettings, IDateAxisPrivate, IDateAxisDataItem, IDateAxisEvents } from \"./DateAxis\";\r\nimport { DataItem } from \"../../../core/render/Component\";\r\nimport type { XYSeries } from \"../../xy/series/XYSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\"\r\nimport * as $order from \"../../../core/util/Order\";\r\nimport * as $time from \"../../../core/util/Time\";\r\nimport * as $type from \"../../../core/util/Type\";\r\nimport * as $math from \"../../../core/util/Math\";\r\n\r\nexport interface IGaplessDateAxisSettings<R extends AxisRenderer> extends IDateAxisSettings<R> {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisDataItem extends IDateAxisDataItem {\r\n\r\n\t/**\r\n\t * An index of a data item.\r\n\t */\r\n\tindex?: number\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisPrivate extends IDateAxisPrivate {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisEvents extends IDateAxisEvents {\r\n}\r\n\r\n/**\r\n * A version of a [[DateAxis]] which removes intervals that don't have any data\r\n * items in them.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/gapless-date-axis/} for more info\r\n * @important\r\n */\r\nexport class GaplessDateAxis<R extends AxisRenderer> extends DateAxis<R> {\r\n\tpublic static className: string = \"GaplessDateAxis\";\r\n\tpublic static classNames: Array<string> = DateAxis.classNames.concat([GaplessDateAxis.className]);\r\n\r\n\tdeclare public _settings: IGaplessDateAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGaplessDateAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGaplessDateAxisDataItem;\r\n\tdeclare public _events: IGaplessDateAxisEvents;\r\n\r\n\tprotected _frequency: number = 1;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis.valueFields.push(\"date\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tprotected _dates: Array<number> = [];\r\n\r\n\tprotected _updateDates(date: number, series: XYSeries) {\r\n\t\tif (!series.get(\"ignoreMinMax\")) {\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, date));\r\n\t\t\tif (!result.found) {\r\n\t\t\t\t$array.insertIndex(dates, result.index, date);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateAllDates() {\r\n\t\tthis._dates.length = 0;\r\n\r\n\t\t$array.each(this.series, (series) => {\r\n\t\t\tlet field = \"valueX\";\r\n\t\t\tif (series.get(\"yAxis\") == this) {\r\n\t\t\t\tfield = \"valueY\"\r\n\t\t\t}\r\n\t\t\t$array.each(series.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(field as any);\r\n\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\tif (dataItem.open) {\r\n\t\t\t\t\t\tthis._updateDates(dataItem.open![field], series);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Convers value to a relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tconst len = dates.length - startLocation - (1 - endLocation);\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn (index - startLocation) / len;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet itemValue = dates[index];\r\n\r\n\t\t\tlet d = 0;\r\n\t\t\tif (itemValue > value && value > this.getPrivate(\"min\", 0)) {\r\n\t\t\t\td = itemValue - value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = value - itemValue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn (index - startLocation) / len + d / this.baseDuration() / len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value from axis scale to index.\r\n\t * \r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic valueToIndex(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\treturn index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to a corresponding numeric value from axis\r\n\t * scale.\r\n\t *\r\n\t * @param position Relative position\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tlet len = Math.round(this._dates.length - startLocation - (1 - endLocation));\r\n\t\tlet index = position * len;\r\n\t\tlet findex = Math.floor(index);\r\n\t\tif (findex < 0) {\r\n\t\t\tfindex = 0;\r\n\t\t}\r\n\r\n\t\tif (findex > len - 1) {\r\n\t\t\tfindex = len - 1\r\n\t\t}\r\n\r\n\t\treturn this._dates[findex] + (index - findex + startLocation) * this.baseDuration();\r\n\t}\r\n\r\n\tprotected _fixZoomFactor() {\r\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", this._dates.length - this.get(\"startLocation\", 0) - (1 - this.get(\"endLocation\", 1)));\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to specific `start` and `end` values.\r\n\t *\r\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\r\n\t *\r\n\t * @param start Start value\r\n\t * @param end End value\r\n\t * @param duration Duration in milliseconds\r\n\t */\r\n\tpublic zoomToValues(start: number, end: number, duration?: number) {\r\n\t\tconst min = this.getPrivate(\"min\", 0);\r\n\t\tconst max = this.getPrivate(\"max\", 0);\r\n\t\tstart = $math.fitToRange(start, min, max);\r\n\t\tend = $math.fitToRange(end, min, max);\r\n\t\tthis.zoom(this.valueToPosition(start), this.valueToPosition(end), duration);\r\n\t}\r\n\r\n\tprotected _prepareAxisItems() {\r\n\t\tlet startTime = this.getPrivate(\"selectionMin\", 0);\r\n\t\tlet endTime = this.getPrivate(\"selectionMax\", 0);\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\r\n\t\t\tif (this._seriesValuesDirty) {\r\n\t\t\t\tthis._seriesValuesDirty = false;\r\n\t\t\t\tthis._updateAllDates();\r\n\t\t\t}\r\n\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\tconst len = dates.length;\r\n\r\n\t\t\tlet startIndex = this.valueToIndex(startTime);\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tstartIndex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet endIndex = this.valueToIndex(endTime);\r\n\t\t\tif (endIndex < len - 1) {\r\n\t\t\t\tendIndex++;\r\n\t\t\t}\r\n\t\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\r\n\t\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\r\n\t\t\tfrequency = Math.max(1, frequency);\r\n\r\n\t\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\r\n\r\n\t\t\tthis._frequency = frequency;\r\n\r\n\t\t\tfor (let j = 0, length = this.dataItems.length; j < length; j++) {\r\n\t\t\t\tthis._toggleDataItem(this.dataItems[j], false);\r\n\t\t\t}\r\n\r\n\t\t\tlet realDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\r\n\r\n\t\t\t// if all items are on axis\r\n\t\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\r\n\r\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\t\t\tlet intervalDuration = $time.getIntervalDuration(gridInterval);\r\n\r\n\t\t\tif (intervalDuration < this.baseDuration()) {\r\n\t\t\t\tgridInterval = { ...baseInterval };\r\n\t\t\t\tintervalDuration = $time.getIntervalDuration(gridInterval);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._intervalDuration = intervalDuration;\r\n\r\n\t\t\tconst formats = this.get(\"dateFormats\")!;\r\n\r\n\t\t\tlet selectedItems: Array<number> = [];\r\n\t\t\tlet firstDate = new Date();\r\n\t\t\tif (this._dates[0]) {\r\n\t\t\t\tfirstDate = new Date(this._dates[0]);\r\n\t\t\t}\r\n\r\n\t\t\tlet startDate = $time.round(new Date(this.getPrivate(\"min\", 0)), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, firstDate, this._root.timezone);\r\n\t\t\tlet value = $time.add(startDate, gridInterval.timeUnit, -1, this._root.utc, this._root.timezone).getTime();\r\n\r\n\t\t\tlet selectionMax = this.getPrivate(\"selectionMax\")\r\n\r\n\t\t\tlet previousPosition = -Infinity;\r\n\t\t\tlet minDifference = (this.get(\"end\", 1) - this.get(\"start\", 0)) / maxCount;\r\n\r\n\t\t\twhile (value <= selectionMax) {\r\n\t\t\t\tlet index = this.valueToIndex(value);\r\n\t\t\t\tlet realValue = this._dates[index];\r\n\r\n\t\t\t\tif (realValue < value) {\r\n\t\t\t\t\tfor (let i = index, len = this._dates.length; i < len; i++) {\r\n\t\t\t\t\t\tlet realValue = this._dates[i];\r\n\t\t\t\t\t\tif (realValue >= value) {\r\n\t\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet position = this.valueToPosition(realValue);\r\n\t\t\t\tif (position - previousPosition >= minDifference * 0.95) {\r\n\t\t\t\t\t$array.move(selectedItems, index);\r\n\t\t\t\t\tpreviousPosition = position;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet previousValue = value;\r\n\t\t\t\tvalue += $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\r\n\t\t\t\tvalue = $time.round(new Date(value), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();\r\n\r\n\t\t\t\tif (value == previousValue) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (selectedItems.length > 0) {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tlet previousValue = value - intervalDuration * 10;\r\n\t\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t\t\t$array.each(selectedItems, (index) => {\r\n\t\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\t\t\tif (this.dataItems.length < i + 1) {\r\n\t\t\t\t\t\tdataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\t\t\tthis._dataItems.push(dataItem);\r\n\t\t\t\t\t\tthis.processDataItem(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tdataItem = this.dataItems[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet value = dates[index];\r\n\t\t\t\t\tlet date = new Date(value);\r\n\r\n\t\t\t\t\tlet endValue = value;\r\n\t\t\t\t\tif (i < selectedItems.length - 1) {\r\n\t\t\t\t\t\tendValue = dates[selectedItems[i + 1]];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tendValue += intervalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.setRaw(\"value\", value);\r\n\t\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\r\n\t\t\t\t\tdataItem.setRaw(\"index\", i);\r\n\r\n\t\t\t\t\tif (index > startIndex - 100 && index < endIndex + 100) {\r\n\r\n\t\t\t\t\t\tlet format = formats[gridInterval.timeUnit];\r\n\r\n\t\t\t\t\t\tformat = formats[gridInterval.timeUnit];\r\n\t\t\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\r\n\t\t\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\r\n\t\t\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {\r\n\t\t\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._createAssets(dataItem, []);\r\n\r\n\t\t\t\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._toggleDataItem(dataItem, true);\r\n\t\t\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tpreviousValue = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.series, (series) => {\r\n\t\t\t\tif (series.inited) {\r\n\t\t\t\t\tseries._markDirtyAxes();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._updateGhost();\r\n\t}\r\n}"]}
|
|
1
|
+
{"version":3,"file":"GaplessDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\r\n\r\nimport { DateAxis, IDateAxisSettings, IDateAxisPrivate, IDateAxisDataItem, IDateAxisEvents } from \"./DateAxis\";\r\nimport { DataItem } from \"../../../core/render/Component\";\r\nimport type { XYSeries } from \"../../xy/series/XYSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\"\r\nimport * as $order from \"../../../core/util/Order\";\r\nimport * as $time from \"../../../core/util/Time\";\r\nimport * as $type from \"../../../core/util/Type\";\r\nimport * as $math from \"../../../core/util/Math\";\r\nimport type { ITimeInterval } from \"../../../core/util/Time\";\r\n\r\nexport interface IGaplessDateAxisSettings<R extends AxisRenderer> extends IDateAxisSettings<R> {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisDataItem extends IDateAxisDataItem {\r\n\r\n\t/**\r\n\t * An index of a data item.\r\n\t */\r\n\tindex?: number\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisPrivate extends IDateAxisPrivate {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisEvents extends IDateAxisEvents {\r\n}\r\n\r\n/**\r\n * A version of a [[DateAxis]] which removes intervals that don't have any data\r\n * items in them.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/gapless-date-axis/} for more info\r\n * @important\r\n */\r\nexport class GaplessDateAxis<R extends AxisRenderer> extends DateAxis<R> {\r\n\tpublic static className: string = \"GaplessDateAxis\";\r\n\tpublic static classNames: Array<string> = DateAxis.classNames.concat([GaplessDateAxis.className]);\r\n\r\n\tdeclare public _settings: IGaplessDateAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGaplessDateAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGaplessDateAxisDataItem;\r\n\tdeclare public _events: IGaplessDateAxisEvents;\r\n\r\n\tprotected _frequency: number = 1;\r\n\tprotected _m: number = 0;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis.valueFields.push(\"date\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tprotected _dates: Array<number> = [];\r\n\r\n\tprotected _updateDates(date: number, series: XYSeries) {\r\n\t\tif (!series.get(\"ignoreMinMax\")) {\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, date));\r\n\t\t\tif (!result.found) {\r\n\t\t\t\t$array.insertIndex(dates, result.index, date);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateAllDates() {\r\n\t\tthis._dates.length = 0;\r\n\r\n\t\t$array.each(this.series, (series) => {\r\n\t\t\tlet field = \"valueX\";\r\n\t\t\tif (series.get(\"yAxis\") == this) {\r\n\t\t\t\tfield = \"valueY\"\r\n\t\t\t}\r\n\t\t\t$array.each(series.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(field as any);\r\n\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\tif (dataItem.open) {\r\n\t\t\t\t\t\tthis._updateDates(dataItem.open![field], series);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Convers value to a relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tconst len = dates.length - startLocation - (1 - endLocation);\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn (index - startLocation) / len;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet itemValue = dates[index];\r\n\r\n\t\t\tlet d = 0;\r\n\t\t\tif (itemValue > value && value > this.getPrivate(\"min\", 0)) {\r\n\t\t\t\td = itemValue - value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = value - itemValue;\r\n\t\t\t}\r\n\r\n\t\t\treturn (index - startLocation) / len + d / this.baseDuration() / len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value from axis scale to index.\r\n\t * \r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic valueToIndex(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\t\t\treturn index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to a corresponding numeric value from axis\r\n\t * scale.\r\n\t *\r\n\t * @param position Relative position\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\t\tconst startLocation = this.get(\"startLocation\", 0);\r\n\t\tconst endLocation = this.get(\"endLocation\", 1);\r\n\t\tlet len = Math.round(this._dates.length - startLocation - (1 - endLocation));\r\n\t\tlet index = position * len;\r\n\t\tlet findex = Math.floor(index);\r\n\t\tif (findex < 0) {\r\n\t\t\tfindex = 0;\r\n\t\t}\r\n\r\n\t\tif (findex > len - 1) {\r\n\t\t\tfindex = len - 1\r\n\t\t}\r\n\r\n\t\treturn this._dates[findex] + (index - findex + startLocation) * this.baseDuration();\r\n\t}\r\n\r\n\tprotected _fixZoomFactor() {\r\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", this._dates.length - this.get(\"startLocation\", 0) - (1 - this.get(\"endLocation\", 1)));\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to specific `start` and `end` values.\r\n\t *\r\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\r\n\t *\r\n\t * @param start Start value\r\n\t * @param end End value\r\n\t * @param duration Duration in milliseconds\r\n\t */\r\n\tpublic zoomToValues(start: number, end: number, duration?: number) {\r\n\t\tconst min = this.getPrivate(\"min\", 0);\r\n\t\tconst max = this.getPrivate(\"max\", 0);\r\n\t\tstart = $math.fitToRange(start, min, max);\r\n\t\tend = $math.fitToRange(end, min, max);\r\n\t\tthis.zoom(this.valueToPosition(start), this.valueToPosition(end), duration);\r\n\t}\r\n\r\n\r\n\tprotected _prepareAxisItems() {\r\n\t\tlet startTime = this.getPrivate(\"selectionMin\", 0);\r\n\t\tlet endTime = this.getPrivate(\"selectionMax\", 0);\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\r\n\t\t\tif (this._seriesValuesDirty) {\r\n\t\t\t\tthis._seriesValuesDirty = false;\r\n\t\t\t\tthis._updateAllDates();\r\n\t\t\t}\r\n\r\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\r\n\t\t\tconst utc = this._root.utc;\r\n\t\t\tconst timezone = this._root.timezone;\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\tconst len = dates.length;\r\n\t\t\tconst baseDuration = this.baseDuration();\r\n\r\n\t\t\tlet startIndex = this.valueToIndex(startTime);\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tstartIndex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet endIndex = this.valueToIndex(endTime);\r\n\t\t\tif (endIndex < len - 1) {\r\n\t\t\t\tendIndex++;\r\n\t\t\t}\r\n\t\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\r\n\t\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\r\n\t\t\tfrequency = Math.max(1, frequency);\r\n\r\n\t\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\r\n\r\n\t\t\tthis._frequency = frequency;\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tthis._toggleDataItem(dataItem, false);\r\n\t\t\t})\r\n\r\n\t\t\t$array.each(this.minorDataItems, (dataItem) => {\r\n\t\t\t\tthis._toggleDataItem(dataItem, false);\r\n\t\t\t})\r\n\r\n\t\t\tlet realDuration = (endTime - startTime) - ((endTime - startTime) / baseDuration - (endIndex - startIndex)) * baseDuration;\r\n\r\n\t\t\t// if all items are on axis\r\n\t\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\r\n\r\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\t\t\tlet intervalDuration = $time.getIntervalDuration(gridInterval);\r\n\r\n\t\t\tif (intervalDuration < baseDuration) {\r\n\t\t\t\tgridInterval = { ...baseInterval };\r\n\t\t\t\tintervalDuration = $time.getIntervalDuration(gridInterval);\r\n\t\t\t}\r\n\r\n\t\t\tthis._intervalDuration = intervalDuration;\r\n\r\n\t\t\tconst timeUnit = gridInterval.timeUnit;\r\n\t\t\tconst formats = this.get(\"dateFormats\")!;\r\n\r\n\t\t\tlet firstDate = new Date();\r\n\t\t\tif (this._dates[0]) {\r\n\t\t\t\tfirstDate = new Date(this._dates[0]);\r\n\t\t\t}\r\n\r\n\t\t\tlet value = $time.round(new Date(this.getPrivate(\"selectionMin\", 0)), timeUnit, gridInterval.count, firstDay, utc, firstDate, timezone).getTime();\r\n\r\n\t\t\tconst minorLabelsEnabled = renderer.get(\"minorLabelsEnabled\");\r\n\t\t\tconst minorGridEnabled = renderer.get(\"minorGridEnabled\", minorLabelsEnabled);\r\n\r\n\t\t\tlet minorGridInterval: ITimeInterval | undefined;\r\n\t\t\tlet minorDuration = 0;\r\n\t\t\tlet previousDataItem: DataItem<IGaplessDateAxisDataItem> | undefined;\r\n\r\n\t\t\tif (minorGridEnabled) {\r\n\t\t\t\tminorGridInterval = this._getMinorInterval(gridInterval);\r\n\t\t\t\tminorDuration = $time.getIntervalDuration(minorGridInterval);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tlet selectedItems: Array<number> = this._getIndexes(value, this.getPrivate(\"selectionMax\", value) + intervalDuration, gridInterval, this.getPrivate(\"min\", value));\r\n\t\t\tif (selectedItems.length > 0) {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tthis._m = 0;\r\n\t\t\t\tlet previousValue = value - intervalDuration * 10;\r\n\t\t\t\tconst nextGridUnit = $time.getNextUnit(timeUnit);\r\n\r\n\t\t\t\t// MINOR GRID\r\n\t\t\t\tif (minorGridInterval) {\r\n\t\t\t\t\tlet first = dates[selectedItems[0]];\r\n\t\t\t\t\tthis._addMinorGrid(first - intervalDuration, first, minorDuration, minorGridInterval);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet minDistance = renderer.axisLength() / renderer.gridCount() * 0.5;\r\n\r\n\t\t\t\t$array.each(selectedItems, (index) => {\r\n\t\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\t\t\tif (this.dataItems.length < i + 1) {\r\n\t\t\t\t\t\tdataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\t\t\tthis._dataItems.push(dataItem);\r\n\t\t\t\t\t\tthis.processDataItem(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tdataItem = this.dataItems[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet value = dates[index];\r\n\t\t\t\t\tlet date = new Date(value);\r\n\r\n\t\t\t\t\tlet endValue = value;\r\n\t\t\t\t\tif (i < selectedItems.length - 1) {\r\n\t\t\t\t\t\tendValue = dates[selectedItems[i + 1]];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tendValue += intervalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.setRaw(\"value\", value);\r\n\t\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\r\n\t\t\t\t\tdataItem.setRaw(\"index\", i);\r\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", undefined);\r\n\r\n\t\t\t\t\tlet format = formats[timeUnit];\r\n\t\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\r\n\t\t\t\t\t\tif (timeUnit != \"year\") {\r\n\t\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, utc, timezone)) {\r\n\t\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![timeUnit];\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\r\n\t\t\t\t\tthis._createAssets(dataItem, []);\r\n\r\n\t\t\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._toggleDataItem(dataItem, true);\r\n\r\n\t\t\t\t\tlet count = gridInterval.count;\r\n\r\n\t\t\t\t\t// so that labels of week would always be at the beginning of the grid\r\n\t\t\t\t\tif (timeUnit == \"week\") {\r\n\t\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (minorGridEnabled) {\r\n\t\t\t\t\t\tlet timeUnit2 = gridInterval.timeUnit;\r\n\t\t\t\t\t\tif (timeUnit2 == \"week\") {\r\n\t\t\t\t\t\t\ttimeUnit2 = \"day\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (count > 1 || gridInterval.timeUnit == \"week\") {\r\n\t\t\t\t\t\t\tlet labelEndValue = $time.round(new Date(value), timeUnit2, 1, firstDay, utc, undefined, timezone).getTime() + $time.getDuration(timeUnit2, this._getM(timeUnit2));\r\n\t\t\t\t\t\t\tlet index = this.valueToIndex(labelEndValue)\r\n\t\t\t\t\t\t\tlabelEndValue = this._dates[index];\r\n\t\t\t\t\t\t\tif (labelEndValue == value) {\r\n\t\t\t\t\t\t\t\tlet next = this._dates[index + 1];\r\n\t\t\t\t\t\t\t\tif (next) {\r\n\t\t\t\t\t\t\t\t\tlabelEndValue = next;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tlabelEndValue += minorDuration;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", labelEndValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcount = 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._prepareDataItem(dataItem, count);\r\n\r\n\t\t\t\t\tif (label && previousDataItem) {\r\n\t\t\t\t\t\tif (renderer.getPrivate(\"letter\") == \"X\") {\r\n\t\t\t\t\t\t\tlet previousLabel = previousDataItem.get(\"label\");\r\n\t\t\t\t\t\t\tif (previousLabel) {\r\n\t\t\t\t\t\t\t\tlet x = label.x();\r\n\t\t\t\t\t\t\t\tlet previousX = previousLabel.x();\r\n\r\n\t\t\t\t\t\t\t\tif (x - previousX < minDistance) {\r\n\t\t\t\t\t\t\t\t\tlet worse = this._pickWorse(previousDataItem, dataItem, gridInterval)\r\n\t\t\t\t\t\t\t\t\tif (worse) {\r\n\t\t\t\t\t\t\t\t\t\tworse.get(\"label\")?.setPrivate(\"visible\", false);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// todo y?\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// MINOR GRID\r\n\t\t\t\t\tif (minorGridInterval) {\r\n\t\t\t\t\t\tthis._addMinorGrid(value, endValue, minorDuration, minorGridInterval);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ti++;\r\n\r\n\t\t\t\t\tif (label && label.getPrivate(\"visible\")) {\r\n\t\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpreviousValue = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.series, (series) => {\r\n\t\t\t\tif (series.inited) {\r\n\t\t\t\t\tseries._markDirtyAxes();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._updateGhost();\r\n\t}\r\n\r\n\tprotected _pickWorse(dataItemA: DataItem<IGaplessDateAxisDataItem>, dataItemB: DataItem<IGaplessDateAxisDataItem>, interval: ITimeInterval): DataItem<IGaplessDateAxisDataItem> {\r\n\t\tconst timeUnit = interval.timeUnit;\r\n\r\n\t\tconst valueA = dataItemA.get(\"value\", 0);\r\n\t\tconst valueB = dataItemB.get(\"value\", 0);\r\n\r\n\t\tif (timeUnit == \"hour\") {\r\n\t\t\tif (new Date(valueA).getDate() != new Date(valueB).getDate()) {\r\n\t\t\t\treturn dataItemA;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn dataItemB;\r\n\t}\r\n\r\n\tprotected _addMinorGrid(startValue: number, endValue: number, minorDuration: number, gridInterval: ITimeInterval) {\r\n\t\tconst minorFormats = this.get(\"minorDateFormats\", this.get(\"dateFormats\"))!;\r\n\t\tconst mTimeUnit = gridInterval.timeUnit;\r\n\t\tconst firstDay = this._root.locale.firstDayOfWeek;\r\n\t\tconst utc = this._root.utc;\r\n\t\tconst timezone = this._root.timezone;\r\n\r\n\t\tlet value = startValue + $time.getDuration(mTimeUnit, this._getM(mTimeUnit));\r\n\t\tvalue = $time.round(new Date(value), mTimeUnit, 1, firstDay, utc, undefined, timezone).getTime();\r\n\r\n\t\tlet maxValue = endValue - minorDuration * 0.5;\r\n\r\n\t\tlet minorSelectedItems: Array<number> = this._getIndexes(value, maxValue, gridInterval, value);\r\n\r\n\t\t$array.each(minorSelectedItems, (index) => {\r\n\t\t\tlet minorDataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\tif (this.minorDataItems.length < this._m + 1) {\r\n\t\t\t\tminorDataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\tthis.minorDataItems.push(minorDataItem);\r\n\t\t\t\tthis.processDataItem(minorDataItem);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tminorDataItem = this.minorDataItems[this._m];\r\n\t\t\t}\r\n\r\n\t\t\tvalue = this._dates[index];\r\n\t\t\tminorDataItem.setRaw(\"value\", value);\r\n\t\t\tminorDataItem.setRaw(\"endValue\", value + minorDuration);\r\n\t\t\tminorDataItem.setRaw(\"index\", index);\r\n\r\n\t\t\tthis._createAssets(minorDataItem, [\"minor\"], true);\r\n\r\n\t\t\tconst label = minorDataItem.get(\"label\");\r\n\t\t\tif (label) {\r\n\t\t\t\tif (this.get(\"renderer\").get(\"minorLabelsEnabled\")) {\r\n\t\t\t\t\tlet date = new Date(value);\r\n\t\t\t\t\tlet format = minorFormats[mTimeUnit];\r\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlabel.setPrivate(\"visible\", false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._toggleDataItem(minorDataItem, true);\r\n\t\t\tthis._prepareDataItem(minorDataItem, 1);\r\n\t\t\tthis._m++;\r\n\t\t})\r\n\t}\r\n\r\n\r\n\tprotected _getIndexes(value: number, maxValue: number, interval: ITimeInterval, firstValue: number): Array<number> {\r\n\t\tconst items: Array<number> = [];\r\n\t\tconst timeUnit = interval.timeUnit;\r\n\t\tconst count = interval.count;\r\n\r\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\r\n\t\tconst firstDay = this._root.locale.firstDayOfWeek;\r\n\t\tconst utc = this._root.utc;\r\n\t\tconst timezone = this._root.timezone;\r\n\r\n\t\tlet c = count - 1;\r\n\t\tlet previousValue = -Infinity;\r\n\t\tlet duration = $time.getDuration(timeUnit, this._getM(timeUnit));\r\n\t\tlet fullDuration = $time.getDuration(timeUnit, count * this._getM(timeUnit));\r\n\t\tlet originalValue = value;\r\n\r\n\t\tif (timeUnit == \"day\") {\r\n\t\t\tvalue = firstValue;\r\n\t\t}\r\n\r\n\t\twhile (value <= maxValue) {\r\n\t\t\tvalue = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\r\n\r\n\t\t\tlet index = this.valueToIndex(value);\r\n\t\t\tlet realValue = this._dates[index];\r\n\r\n\t\t\tif (timeUnit == \"day\" && baseInterval.timeUnit == \"day\") {\r\n\t\t\t\tif (this._hasDate(value)) {\r\n\t\t\t\t\tc++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c == count) {\r\n\t\t\t\t\tif (value >= originalValue - fullDuration * 2) {\r\n\t\t\t\t\t\t$array.move(items, index);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tc = 0;\r\n\t\t\t\t}\r\n\t\t\t\tvalue += duration;\r\n\t\t\t\tvalue = $time.round(new Date(value), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (realValue < value) {\r\n\t\t\t\t\tfor (let i = index, len = this._dates.length; i < len; i++) {\r\n\t\t\t\t\t\trealValue = this._dates[i];\r\n\t\t\t\t\t\tif (realValue >= value) {\r\n\t\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$array.move(items, index);\r\n\r\n\t\t\t\tvalue += fullDuration;\r\n\t\t\t\tvalue = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\r\n\t\t\t}\r\n\r\n\t\t\tif (value == previousValue) {\r\n\t\t\t\tvalue += fullDuration + duration;\r\n\t\t\t\tvalue = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\r\n\t\t\t}\r\n\t\t\tif (value == previousValue) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tpreviousValue = value;\r\n\t\t}\r\n\r\n\t\treturn items;\r\n\t}\r\n\r\n\tprotected _hasDate(time: number) {\r\n\t\tconst result = $array.getSortedIndex(this._dates, (date) => {\r\n\t\t\treturn $order.compareNumber(date, time);\r\n\t\t});\r\n\r\n\t\treturn result.found;\r\n\t}\r\n\r\n}"]}
|
|
@@ -174,6 +174,10 @@ export interface IValueAxisDataItem extends IAxisDataItem {
|
|
|
174
174
|
* End value for axis items that span multiple values, like axis ranges.
|
|
175
175
|
*/
|
|
176
176
|
endValue?: number;
|
|
177
|
+
/**
|
|
178
|
+
* @ignore
|
|
179
|
+
*/
|
|
180
|
+
labelEndValue?: number;
|
|
177
181
|
/**
|
|
178
182
|
* If set to `true` the values fo this data item will be factored in when
|
|
179
183
|
* calculating scale of the [[ValueAxis]]. Useful for axis ranges.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ValueAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,7 +149,6 @@ export class ValueAxis extends Axis {
|
|
|
149
149
|
const selectionMin = this.getPrivate("selectionMin");
|
|
150
150
|
const selectionMax = this.getPrivate("selectionMax") + step;
|
|
151
151
|
let value = selectionMin - step;
|
|
152
|
-
let i = 0;
|
|
153
152
|
let differencePower = 1;
|
|
154
153
|
let minLog = min;
|
|
155
154
|
if (logarithmic) {
|
|
@@ -171,6 +170,23 @@ export class ValueAxis extends Axis {
|
|
|
171
170
|
value = Math.pow(10, Math.log(minLog) * Math.LOG10E - 5);
|
|
172
171
|
}
|
|
173
172
|
}
|
|
173
|
+
/// minor grid
|
|
174
|
+
const renderer = this.get("renderer");
|
|
175
|
+
const minorLabelsEnabled = renderer.get("minorLabelsEnabled");
|
|
176
|
+
const minorGridEnabled = renderer.get("minorGridEnabled", minorLabelsEnabled);
|
|
177
|
+
let stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));
|
|
178
|
+
const stepAdjusted = Math.round(step / stepPower);
|
|
179
|
+
let minorGridCount = 2;
|
|
180
|
+
if ($math.round(stepAdjusted / 5, 10) % 1 == 0) {
|
|
181
|
+
minorGridCount = 5;
|
|
182
|
+
}
|
|
183
|
+
if ($math.round(stepAdjusted / 10, 10) % 1 == 0) {
|
|
184
|
+
minorGridCount = 10;
|
|
185
|
+
}
|
|
186
|
+
let minorStep = step / minorGridCount;
|
|
187
|
+
// end of minor grid
|
|
188
|
+
let i = 0;
|
|
189
|
+
let m = 0;
|
|
174
190
|
let previous = -Infinity;
|
|
175
191
|
while (value < selectionMax) {
|
|
176
192
|
let dataItem;
|
|
@@ -190,17 +206,56 @@ export class ValueAxis extends Axis {
|
|
|
190
206
|
label.set("text", this._formatText(value));
|
|
191
207
|
}
|
|
192
208
|
this._prepareDataItem(dataItem);
|
|
209
|
+
let nextValue = value;
|
|
193
210
|
if (!logarithmic) {
|
|
194
|
-
|
|
211
|
+
nextValue += step;
|
|
195
212
|
}
|
|
196
213
|
else {
|
|
197
214
|
if (differencePower > 2) {
|
|
198
|
-
|
|
215
|
+
nextValue = Math.pow(10, Math.log(minLog) * Math.LOG10E + i - 5);
|
|
199
216
|
}
|
|
200
217
|
else {
|
|
201
|
-
|
|
218
|
+
nextValue += step;
|
|
202
219
|
}
|
|
203
220
|
}
|
|
221
|
+
// minor grid
|
|
222
|
+
if (minorGridEnabled) {
|
|
223
|
+
let minorValue = value + minorStep;
|
|
224
|
+
if (logarithmic) {
|
|
225
|
+
if (differencePower > 2) {
|
|
226
|
+
let minorMinMaxStep = this._adjustMinMax(value, nextValue, 10);
|
|
227
|
+
minorStep = minorMinMaxStep.step;
|
|
228
|
+
}
|
|
229
|
+
minorValue = value + minorStep;
|
|
230
|
+
}
|
|
231
|
+
while (minorValue < nextValue - step * 0.00000000001) {
|
|
232
|
+
let minorDataItem;
|
|
233
|
+
if (this.minorDataItems.length < m + 1) {
|
|
234
|
+
minorDataItem = new DataItem(this, undefined, {});
|
|
235
|
+
this.minorDataItems.push(minorDataItem);
|
|
236
|
+
this.processDataItem(minorDataItem);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
minorDataItem = this.minorDataItems[m];
|
|
240
|
+
}
|
|
241
|
+
this._createAssets(minorDataItem, ["minor"], true);
|
|
242
|
+
this._toggleDataItem(minorDataItem, true);
|
|
243
|
+
minorDataItem.setRaw("value", minorValue);
|
|
244
|
+
const minorLabel = minorDataItem.get("label");
|
|
245
|
+
if (minorLabel) {
|
|
246
|
+
if (minorLabelsEnabled) {
|
|
247
|
+
minorLabel.set("text", this._formatText(minorValue));
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
minorLabel.setPrivate("visible", false);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
this._prepareDataItem(minorDataItem);
|
|
254
|
+
minorValue += minorStep;
|
|
255
|
+
m++;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
value = nextValue;
|
|
204
259
|
if (previous == value) {
|
|
205
260
|
break;
|
|
206
261
|
}
|
|
@@ -217,6 +272,9 @@ export class ValueAxis extends Axis {
|
|
|
217
272
|
for (let j = i; j < this.dataItems.length; j++) {
|
|
218
273
|
this._toggleDataItem(this.dataItems[j], false);
|
|
219
274
|
}
|
|
275
|
+
for (let j = m; j < this.minorDataItems.length; j++) {
|
|
276
|
+
this._toggleDataItem(this.minorDataItems[j], false);
|
|
277
|
+
}
|
|
220
278
|
$array.each(this.series, (series) => {
|
|
221
279
|
if (series.inited) {
|
|
222
280
|
series._markDirtyAxes();
|
|
@@ -241,7 +299,12 @@ export class ValueAxis extends Axis {
|
|
|
241
299
|
fillEndPosition = position;
|
|
242
300
|
}
|
|
243
301
|
}
|
|
244
|
-
|
|
302
|
+
let labelEndPosition = endPosition;
|
|
303
|
+
let labelEndValue = dataItem.get("labelEndValue");
|
|
304
|
+
if (labelEndValue != null) {
|
|
305
|
+
labelEndPosition = this.valueToPosition(labelEndValue);
|
|
306
|
+
}
|
|
307
|
+
renderer.updateLabel(dataItem.get("label"), position, labelEndPosition, count);
|
|
245
308
|
const grid = dataItem.get("grid");
|
|
246
309
|
renderer.updateGrid(grid, position, endPosition);
|
|
247
310
|
if (grid) {
|
|
@@ -1010,10 +1073,7 @@ export class ValueAxis extends Axis {
|
|
|
1010
1073
|
}
|
|
1011
1074
|
else {
|
|
1012
1075
|
return formatter.format(value, undefined, decimals);
|
|
1013
|
-
//label.set("text", this.getNumberFormatter().format(value, undefined, this.getPrivate("stepDecimalPlaces")));
|
|
1014
1076
|
}
|
|
1015
|
-
// //@todo number formatter + tag
|
|
1016
|
-
// return $math.round(this.positionToValue(position), this.getPrivate("stepDecimalPlaces")).toString();
|
|
1017
1077
|
}
|
|
1018
1078
|
/**
|
|
1019
1079
|
* Returns a data item from series that is closest to the `position`.
|