@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.
Files changed (279) hide show
  1. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  2. package/.internal/charts/hierarchy/Hierarchy.js +3 -1
  3. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  4. package/.internal/charts/hierarchy/Treemap.d.ts.map +1 -1
  5. package/.internal/charts/hierarchy/Treemap.js +4 -1
  6. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  7. package/.internal/charts/stock/indicators/ChartIndicator.d.ts.map +1 -1
  8. package/.internal/charts/stock/indicators/ChartIndicator.js +2 -0
  9. package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
  10. package/.internal/charts/stock/toolbar/Dropdown.d.ts +1 -1
  11. package/.internal/charts/stock/toolbar/Dropdown.js +1 -1
  12. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  13. package/.internal/charts/stock/toolbar/DropdownList.d.ts +1 -1
  14. package/.internal/charts/stock/toolbar/DropdownList.js +1 -1
  15. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  16. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +7 -0
  17. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
  18. package/.internal/charts/stock/toolbar/IndicatorControl.js +42 -21
  19. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  20. package/.internal/charts/stock/toolbar/StockControl.d.ts +1 -1
  21. package/.internal/charts/stock/toolbar/StockControl.js +1 -1
  22. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  23. package/.internal/charts/stock/toolbar/StockToolbar.d.ts +3 -1
  24. package/.internal/charts/stock/toolbar/StockToolbar.d.ts.map +1 -1
  25. package/.internal/charts/stock/toolbar/StockToolbar.js +3 -1
  26. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  27. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  28. package/.internal/charts/xy/XYChartDefaultTheme.js +12 -0
  29. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  30. package/.internal/charts/xy/axes/Axis.d.ts +5 -1
  31. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  32. package/.internal/charts/xy/axes/Axis.js +79 -5
  33. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  34. package/.internal/charts/xy/axes/AxisRenderer.d.ts +17 -0
  35. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  36. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  37. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  38. package/.internal/charts/xy/axes/CategoryAxis.js +22 -2
  39. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  40. package/.internal/charts/xy/axes/DateAxis.d.ts +10 -0
  41. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  42. package/.internal/charts/xy/axes/DateAxis.js +100 -1
  43. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  44. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +7 -0
  45. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  46. package/.internal/charts/xy/axes/GaplessDateAxis.js +215 -48
  47. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  48. package/.internal/charts/xy/axes/ValueAxis.d.ts +4 -0
  49. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  50. package/.internal/charts/xy/axes/ValueAxis.js +68 -8
  51. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  52. package/.internal/charts/xy/series/XYSeries.d.ts +4 -1
  53. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  54. package/.internal/charts/xy/series/XYSeries.js +132 -25
  55. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  56. package/.internal/core/Registry.js +1 -1
  57. package/.internal/core/Registry.js.map +1 -1
  58. package/.internal/core/Root.d.ts +8 -1
  59. package/.internal/core/Root.d.ts.map +1 -1
  60. package/.internal/core/Root.js +8 -4
  61. package/.internal/core/Root.js.map +1 -1
  62. package/.internal/core/render/Bullet.d.ts +24 -0
  63. package/.internal/core/render/Bullet.d.ts.map +1 -1
  64. package/.internal/core/render/Bullet.js.map +1 -1
  65. package/.internal/core/render/Polygon.d.ts.map +1 -1
  66. package/.internal/core/render/Polygon.js +4 -0
  67. package/.internal/core/render/Polygon.js.map +1 -1
  68. package/.internal/core/render/Series.d.ts +17 -1
  69. package/.internal/core/render/Series.d.ts.map +1 -1
  70. package/.internal/core/render/Series.js +55 -27
  71. package/.internal/core/render/Series.js.map +1 -1
  72. package/.internal/core/render/backend/CanvasRenderer.js +17 -17
  73. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  74. package/.internal/core/util/Time.d.ts.map +1 -1
  75. package/.internal/core/util/Time.js +14 -11
  76. package/.internal/core/util/Time.js.map +1 -1
  77. package/.internal/plugins/json/Json.d.ts.map +1 -1
  78. package/.internal/plugins/json/Json.js +1 -1
  79. package/.internal/plugins/json/Json.js.map +1 -1
  80. package/.internal/themes/ResponsiveTheme.d.ts +6 -1
  81. package/.internal/themes/ResponsiveTheme.d.ts.map +1 -1
  82. package/.internal/themes/ResponsiveTheme.js +66 -24
  83. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  84. package/CHANGELOG.md +34 -1
  85. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  86. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  87. package/examples/javascript/flow-chord/package.json +1 -1
  88. package/examples/javascript/flow-chord-directed/package.json +1 -1
  89. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  90. package/examples/javascript/flow-sankey/package.json +1 -1
  91. package/examples/javascript/gauge/package.json +1 -1
  92. package/examples/javascript/gauge-bands/package.json +1 -1
  93. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  94. package/examples/javascript/hierarchy-pack/package.json +1 -1
  95. package/examples/javascript/hierarchy-partition/package.json +1 -1
  96. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  97. package/examples/javascript/hierarchy-tree/package.json +1 -1
  98. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  99. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  100. package/examples/javascript/jest/package.json +1 -1
  101. package/examples/javascript/json-pie/package.json +1 -1
  102. package/examples/javascript/json-xy/index.js +3 -2
  103. package/examples/javascript/json-xy/package.json +1 -1
  104. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  105. package/examples/javascript/map-clustered-points/package.json +1 -1
  106. package/examples/javascript/map-day-and-night/package.json +1 -1
  107. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  108. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  109. package/examples/javascript/map-with-bubbles/package.json +1 -1
  110. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  111. package/examples/javascript/misc-40-charts/package.json +1 -1
  112. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  113. package/examples/javascript/pie-chart/package.json +1 -1
  114. package/examples/javascript/pie-donut-chart/package.json +1 -1
  115. package/examples/javascript/pie-variable-radius/package.json +1 -1
  116. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  117. package/examples/javascript/radar-heat-map/package.json +1 -1
  118. package/examples/javascript/radar-line/package.json +1 -1
  119. package/examples/javascript/radar-time-line/index.js +2 -1
  120. package/examples/javascript/radar-time-line/package.json +1 -1
  121. package/examples/javascript/sliced-funnel/package.json +1 -1
  122. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  123. package/examples/javascript/sliced-pyramid/package.json +1 -1
  124. package/examples/javascript/stock-chart/index.js +3 -1
  125. package/examples/javascript/stock-chart/package.json +1 -1
  126. package/examples/javascript/stock-chart-comparing-stocks/index.js +3 -1
  127. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  128. package/examples/javascript/stock-chart-data-granularity/index.js +3 -1
  129. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  130. package/examples/javascript/stock-chart-data-grouping/index.js +6 -2
  131. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  132. package/examples/javascript/stock-chart-intraday/index.js +3 -1
  133. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  134. package/examples/javascript/stock-chart-live/index.js +3 -1
  135. package/examples/javascript/stock-chart-live/package.json +1 -1
  136. package/examples/javascript/stock-chart-volume-separate-panel/index.js +6 -2
  137. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  138. package/examples/javascript/venn-diagram/package.json +1 -1
  139. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  140. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  141. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  142. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/index.js +3 -1
  143. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  144. package/examples/javascript/xy-bubble/package.json +1 -1
  145. package/examples/javascript/xy-candlestick/index.js +1 -0
  146. package/examples/javascript/xy-candlestick/package.json +1 -1
  147. package/examples/javascript/xy-clustered-column/package.json +1 -1
  148. package/examples/javascript/xy-column/index.js +3 -1
  149. package/examples/javascript/xy-column/package.json +1 -1
  150. package/examples/javascript/xy-comparing-series-google-analytics-style/index.js +3 -1
  151. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  152. package/examples/javascript/xy-data-grouping/index.js +1 -0
  153. package/examples/javascript/xy-data-grouping/package.json +1 -1
  154. package/examples/javascript/xy-draggable-range/index.js +3 -1
  155. package/examples/javascript/xy-draggable-range/package.json +1 -1
  156. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/index.js +3 -1
  157. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  158. package/examples/javascript/xy-dumbbell plot/index.js +2 -1
  159. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  160. package/examples/javascript/xy-evenly-spaced-date-axis/index.js +4 -5
  161. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  162. package/examples/javascript/xy-line/index.js +1 -0
  163. package/examples/javascript/xy-line/package.json +1 -1
  164. package/examples/javascript/xy-line-highlight-on-legend-hover/index.js +3 -1
  165. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  166. package/examples/javascript/xy-live-data/package.json +1 -1
  167. package/examples/javascript/xy-multiple-synced-value-axes/index.js +4 -2
  168. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  169. package/examples/javascript/xy-ohlc/index.js +3 -1
  170. package/examples/javascript/xy-ohlc/package.json +1 -1
  171. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  172. package/examples/javascript/xy-smoothed-line/index.js +3 -1
  173. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  174. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  175. package/examples/javascript/xy-stacked-column/package.json +1 -1
  176. package/examples/javascript/xy-stacked-step/index.js +7 -2
  177. package/examples/javascript/xy-stacked-step/package.json +1 -1
  178. package/examples/javascript/xy-stock/index.js +4 -1
  179. package/examples/javascript/xy-stock/package.json +1 -1
  180. package/examples/javascript/xy-stock-comparing/index.js +3 -1
  181. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  182. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  183. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  184. package/examples/typescript/flow-chord/package.json +1 -1
  185. package/examples/typescript/flow-chord-directed/package.json +1 -1
  186. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  187. package/examples/typescript/flow-sankey/package.json +1 -1
  188. package/examples/typescript/gauge/package.json +1 -1
  189. package/examples/typescript/gauge-bands/package.json +1 -1
  190. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  191. package/examples/typescript/hierarchy-pack/package.json +1 -1
  192. package/examples/typescript/hierarchy-partition/package.json +1 -1
  193. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  194. package/examples/typescript/hierarchy-tree/package.json +1 -1
  195. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  196. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  197. package/examples/typescript/jest/package.json +1 -1
  198. package/examples/typescript/json-pie/package.json +1 -1
  199. package/examples/typescript/json-xy/index.ts +3 -2
  200. package/examples/typescript/json-xy/package.json +1 -1
  201. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  202. package/examples/typescript/map-clustered-points/package.json +1 -1
  203. package/examples/typescript/map-day-and-night/package.json +1 -1
  204. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  205. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  206. package/examples/typescript/map-with-bubbles/package.json +1 -1
  207. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  208. package/examples/typescript/misc-40-charts/package.json +1 -1
  209. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  210. package/examples/typescript/pie-chart/package.json +1 -1
  211. package/examples/typescript/pie-donut-chart/package.json +1 -1
  212. package/examples/typescript/pie-variable-radius/package.json +1 -1
  213. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  214. package/examples/typescript/radar-heat-map/package.json +1 -1
  215. package/examples/typescript/radar-line/package.json +1 -1
  216. package/examples/typescript/radar-time-line/index.ts +2 -1
  217. package/examples/typescript/radar-time-line/package.json +1 -1
  218. package/examples/typescript/sliced-funnel/package.json +1 -1
  219. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  220. package/examples/typescript/sliced-pyramid/package.json +1 -1
  221. package/examples/typescript/stock-chart/index.ts +3 -1
  222. package/examples/typescript/stock-chart/package.json +1 -1
  223. package/examples/typescript/stock-chart-comparing-stocks/index.ts +3 -1
  224. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  225. package/examples/typescript/stock-chart-data-granularity/index.ts +3 -1
  226. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  227. package/examples/typescript/stock-chart-data-grouping/index.ts +6 -2
  228. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  229. package/examples/typescript/stock-chart-intraday/index.ts +3 -1
  230. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  231. package/examples/typescript/stock-chart-live/index.ts +3 -1
  232. package/examples/typescript/stock-chart-live/package.json +1 -1
  233. package/examples/typescript/stock-chart-volume-separate-panel/index.ts +6 -2
  234. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  235. package/examples/typescript/venn-diagram/package.json +1 -1
  236. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  237. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  238. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  239. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/index.ts +3 -1
  240. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  241. package/examples/typescript/xy-bubble/package.json +1 -1
  242. package/examples/typescript/xy-candlestick/index.ts +1 -0
  243. package/examples/typescript/xy-candlestick/package.json +1 -1
  244. package/examples/typescript/xy-clustered-column/package.json +1 -1
  245. package/examples/typescript/xy-column/index.ts +3 -1
  246. package/examples/typescript/xy-column/package.json +1 -1
  247. package/examples/typescript/xy-comparing-series-google-analytics-style/index.ts +3 -1
  248. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  249. package/examples/typescript/xy-data-grouping/index.ts +1 -0
  250. package/examples/typescript/xy-data-grouping/package.json +1 -1
  251. package/examples/typescript/xy-draggable-range/index.ts +3 -1
  252. package/examples/typescript/xy-draggable-range/package.json +1 -1
  253. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/index.ts +3 -1
  254. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  255. package/examples/typescript/xy-dumbbell plot/index.ts +2 -1
  256. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  257. package/examples/typescript/xy-evenly-spaced-date-axis/index.ts +4 -5
  258. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  259. package/examples/typescript/xy-line/index.ts +1 -0
  260. package/examples/typescript/xy-line/package.json +1 -1
  261. package/examples/typescript/xy-line-highlight-on-legend-hover/index.ts +3 -1
  262. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  263. package/examples/typescript/xy-live-data/package.json +1 -1
  264. package/examples/typescript/xy-multiple-synced-value-axes/index.ts +4 -2
  265. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  266. package/examples/typescript/xy-ohlc/index.ts +3 -1
  267. package/examples/typescript/xy-ohlc/package.json +1 -1
  268. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  269. package/examples/typescript/xy-smoothed-line/index.ts +3 -1
  270. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  271. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  272. package/examples/typescript/xy-stacked-column/package.json +1 -1
  273. package/examples/typescript/xy-stacked-step/index.ts +7 -2
  274. package/examples/typescript/xy-stacked-step/package.json +1 -1
  275. package/examples/typescript/xy-stock/index.ts +4 -1
  276. package/examples/typescript/xy-stock/package.json +1 -1
  277. package/examples/typescript/xy-stock-comparing/index.ts +3 -1
  278. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  279. 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
- for (let j = 0, length = this.dataItems.length; j < length; j++) {
177
- this._toggleDataItem(this.dataItems[j], false);
178
- }
179
- let realDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();
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 < this.baseDuration()) {
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 startDate = $time.round(new Date(this.getPrivate("min", 0)), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, firstDate, this._root.timezone);
196
- let value = $time.add(startDate, gridInterval.timeUnit, -1, this._root.utc, this._root.timezone).getTime();
197
- let selectionMax = this.getPrivate("selectionMax");
198
- let previousPosition = -Infinity;
199
- let minDifference = (this.get("end", 1) - this.get("start", 0)) / maxCount;
200
- while (value <= selectionMax) {
201
- let index = this.valueToIndex(value);
202
- let realValue = this._dates[index];
203
- if (realValue < value) {
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(gridInterval.timeUnit);
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
- if (index > startIndex - 100 && index < endIndex + 100) {
251
- let format = formats[gridInterval.timeUnit];
252
- format = formats[gridInterval.timeUnit];
253
- if (nextGridUnit && this.get("markUnitChange") && $type.isNumber(previousValue)) {
254
- if (gridInterval.timeUnit != "year") {
255
- if ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {
256
- format = this.get("periodChangeDateFormats")[gridInterval.timeUnit];
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
- this._createAssets(dataItem, []);
261
- const label = dataItem.get("label");
262
- if (label) {
263
- label.set("text", this._root.dateFormatter.format(date, format));
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
- this._toggleDataItem(dataItem, true);
266
- this._prepareDataItem(dataItem, gridInterval.count);
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
- value += step;
211
+ nextValue += step;
195
212
  }
196
213
  else {
197
214
  if (differencePower > 2) {
198
- value = Math.pow(10, Math.log(minLog) * Math.LOG10E + i - 5);
215
+ nextValue = Math.pow(10, Math.log(minLog) * Math.LOG10E + i - 5);
199
216
  }
200
217
  else {
201
- value += step;
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
- renderer.updateLabel(dataItem.get("label"), position, endPosition, count);
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`.