@amcharts/amcharts5 5.15.6 → 5.16.0

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 (726) hide show
  1. package/.internal/charts/flow/ArcDiagram.js +4 -24
  2. package/.internal/charts/flow/ArcDiagram.js.map +1 -1
  3. package/.internal/charts/flow/ArcDiagramLink.js +3 -30
  4. package/.internal/charts/flow/ArcDiagramLink.js.map +1 -1
  5. package/.internal/charts/flow/ArcDiagramNodes.js +5 -39
  6. package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -1
  7. package/.internal/charts/flow/Chord.js +7 -42
  8. package/.internal/charts/flow/Chord.js.map +1 -1
  9. package/.internal/charts/flow/ChordDirected.js +5 -30
  10. package/.internal/charts/flow/ChordDirected.js.map +1 -1
  11. package/.internal/charts/flow/ChordLink.js +2 -33
  12. package/.internal/charts/flow/ChordLink.js.map +1 -1
  13. package/.internal/charts/flow/ChordLinkDirected.js +2 -12
  14. package/.internal/charts/flow/ChordLinkDirected.js.map +1 -1
  15. package/.internal/charts/flow/ChordNodes.js +6 -45
  16. package/.internal/charts/flow/ChordNodes.js.map +1 -1
  17. package/.internal/charts/flow/ChordNonRibbon.js +2 -12
  18. package/.internal/charts/flow/ChordNonRibbon.js.map +1 -1
  19. package/.internal/charts/flow/Flow.js +8 -48
  20. package/.internal/charts/flow/Flow.js.map +1 -1
  21. package/.internal/charts/flow/FlowLink.js +2 -33
  22. package/.internal/charts/flow/FlowLink.js.map +1 -1
  23. package/.internal/charts/flow/FlowNode.js +2 -24
  24. package/.internal/charts/flow/FlowNode.js.map +1 -1
  25. package/.internal/charts/flow/FlowNodes.js +5 -30
  26. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  27. package/.internal/charts/flow/Sankey.js +7 -48
  28. package/.internal/charts/flow/Sankey.js.map +1 -1
  29. package/.internal/charts/flow/SankeyLink.js +4 -24
  30. package/.internal/charts/flow/SankeyLink.js.map +1 -1
  31. package/.internal/charts/flow/SankeyNodes.js +3 -27
  32. package/.internal/charts/flow/SankeyNodes.js.map +1 -1
  33. package/.internal/charts/funnel/FunnelSeries.js +8 -48
  34. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  35. package/.internal/charts/funnel/FunnelSlice.js +15 -90
  36. package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
  37. package/.internal/charts/funnel/PictorialStackedSeries.js +5 -30
  38. package/.internal/charts/funnel/PictorialStackedSeries.js.map +1 -1
  39. package/.internal/charts/funnel/PyramidSeries.js +3 -24
  40. package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
  41. package/.internal/charts/funnel/SlicedChart.js +2 -12
  42. package/.internal/charts/funnel/SlicedChart.js.map +1 -1
  43. package/.internal/charts/gantt/Gantt.js +57 -188
  44. package/.internal/charts/gantt/Gantt.js.map +1 -1
  45. package/.internal/charts/gantt/GanttCategoryAxis.js +9 -110
  46. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
  47. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js +27 -72
  48. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js.map +1 -1
  49. package/.internal/charts/gantt/GanttDateAxis.js +2 -24
  50. package/.internal/charts/gantt/GanttDateAxis.js.map +1 -1
  51. package/.internal/charts/gantt/GanttDateAxisRenderer.js +2 -12
  52. package/.internal/charts/gantt/GanttDateAxisRenderer.js.map +1 -1
  53. package/.internal/charts/gantt/GanttSeries.js +49 -173
  54. package/.internal/charts/gantt/GanttSeries.js.map +1 -1
  55. package/.internal/charts/hierarchy/BreadcrumbBar.js +8 -29
  56. package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
  57. package/.internal/charts/hierarchy/ForceDirected.js +10 -60
  58. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  59. package/.internal/charts/hierarchy/Hierarchy.js +11 -64
  60. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  61. package/.internal/charts/hierarchy/HierarchyLink.js +3 -24
  62. package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
  63. package/.internal/charts/hierarchy/HierarchyNode.js +2 -30
  64. package/.internal/charts/hierarchy/HierarchyNode.js.map +1 -1
  65. package/.internal/charts/hierarchy/LinkedHierarchy.js +18 -58
  66. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  67. package/.internal/charts/hierarchy/LinkedHierarchyNode.js +2 -12
  68. package/.internal/charts/hierarchy/LinkedHierarchyNode.js.map +1 -1
  69. package/.internal/charts/hierarchy/Pack.js +7 -38
  70. package/.internal/charts/hierarchy/Pack.js.map +1 -1
  71. package/.internal/charts/hierarchy/Partition.js +7 -32
  72. package/.internal/charts/hierarchy/Partition.js.map +1 -1
  73. package/.internal/charts/hierarchy/Sunburst.js +10 -40
  74. package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
  75. package/.internal/charts/hierarchy/Tree.js +4 -30
  76. package/.internal/charts/hierarchy/Tree.js.map +1 -1
  77. package/.internal/charts/hierarchy/Treemap.js +8 -38
  78. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  79. package/.internal/charts/hierarchy/VoronoiTreemap.js +7 -32
  80. package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -1
  81. package/.internal/charts/map/ClusteredPointSeries.js +11 -72
  82. package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
  83. package/.internal/charts/map/GraticuleSeries.js +3 -18
  84. package/.internal/charts/map/GraticuleSeries.js.map +1 -1
  85. package/.internal/charts/map/MapChart.d.ts +39 -1
  86. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  87. package/.internal/charts/map/MapChart.js +168 -187
  88. package/.internal/charts/map/MapChart.js.map +1 -1
  89. package/.internal/charts/map/MapLine.js +3 -18
  90. package/.internal/charts/map/MapLine.js.map +1 -1
  91. package/.internal/charts/map/MapLineSeries.js +4 -24
  92. package/.internal/charts/map/MapLineSeries.js.map +1 -1
  93. package/.internal/charts/map/MapPointSeries.js +3 -24
  94. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  95. package/.internal/charts/map/MapPolygon.js +3 -27
  96. package/.internal/charts/map/MapPolygon.js.map +1 -1
  97. package/.internal/charts/map/MapPolygonSeries.js +4 -24
  98. package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
  99. package/.internal/charts/map/MapSeries.js +7 -42
  100. package/.internal/charts/map/MapSeries.js.map +1 -1
  101. package/.internal/charts/map/ZoomControl.js +2 -12
  102. package/.internal/charts/map/ZoomControl.js.map +1 -1
  103. package/.internal/charts/percent/PercentChart.js +2 -12
  104. package/.internal/charts/percent/PercentChart.js.map +1 -1
  105. package/.internal/charts/percent/PercentSeries.js +11 -66
  106. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  107. package/.internal/charts/pie/PieChart.js +3 -18
  108. package/.internal/charts/pie/PieChart.js.map +1 -1
  109. package/.internal/charts/pie/PieSeries.js +2 -12
  110. package/.internal/charts/pie/PieSeries.js.map +1 -1
  111. package/.internal/charts/radar/AxisRendererCircular.js +9 -34
  112. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  113. package/.internal/charts/radar/AxisRendererRadial.js +6 -26
  114. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  115. package/.internal/charts/radar/ClockHand.js +4 -24
  116. package/.internal/charts/radar/ClockHand.js.map +1 -1
  117. package/.internal/charts/radar/RadarChart.js +5 -30
  118. package/.internal/charts/radar/RadarChart.js.map +1 -1
  119. package/.internal/charts/radar/RadarColumnSeries.js +6 -21
  120. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  121. package/.internal/charts/radar/RadarCursor.js +3 -18
  122. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  123. package/.internal/charts/radar/RadarLineSeries.js +2 -12
  124. package/.internal/charts/radar/RadarLineSeries.js.map +1 -1
  125. package/.internal/charts/radar/SmoothedRadarLineSeries.js +2 -12
  126. package/.internal/charts/radar/SmoothedRadarLineSeries.js.map +1 -1
  127. package/.internal/charts/stock/PanelControls.js +26 -56
  128. package/.internal/charts/stock/PanelControls.js.map +1 -1
  129. package/.internal/charts/stock/SettingsModal.js +3 -30
  130. package/.internal/charts/stock/SettingsModal.js.map +1 -1
  131. package/.internal/charts/stock/StockChart.js +11 -108
  132. package/.internal/charts/stock/StockChart.js.map +1 -1
  133. package/.internal/charts/stock/StockLegend.js +14 -34
  134. package/.internal/charts/stock/StockLegend.js.map +1 -1
  135. package/.internal/charts/stock/StockPanel.js +3 -38
  136. package/.internal/charts/stock/StockPanel.js.map +1 -1
  137. package/.internal/charts/stock/drawing/AverageSeries.js +3 -18
  138. package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
  139. package/.internal/charts/stock/drawing/CalloutSeries.js +3 -18
  140. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  141. package/.internal/charts/stock/drawing/DoodleSeries.js +5 -42
  142. package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
  143. package/.internal/charts/stock/drawing/DrawingSeries.js +32 -200
  144. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  145. package/.internal/charts/stock/drawing/EllipseSeries.js +7 -42
  146. package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
  147. package/.internal/charts/stock/drawing/FibonacciSeries.js +7 -42
  148. package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
  149. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +3 -18
  150. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
  151. package/.internal/charts/stock/drawing/HorizontalLineSeries.js +3 -18
  152. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  153. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +3 -18
  154. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  155. package/.internal/charts/stock/drawing/IconSeries.js +3 -24
  156. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  157. package/.internal/charts/stock/drawing/LabelSeries.js +5 -36
  158. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  159. package/.internal/charts/stock/drawing/LineArrowSeries.js +4 -24
  160. package/.internal/charts/stock/drawing/LineArrowSeries.js.map +1 -1
  161. package/.internal/charts/stock/drawing/Measure.js +6 -36
  162. package/.internal/charts/stock/drawing/Measure.js.map +1 -1
  163. package/.internal/charts/stock/drawing/ParallelChannelSeries.js +5 -30
  164. package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -1
  165. package/.internal/charts/stock/drawing/PolylineSeries.js +4 -24
  166. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  167. package/.internal/charts/stock/drawing/QuadrantLineSeries.js +3 -18
  168. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  169. package/.internal/charts/stock/drawing/RectangleSeries.js +4 -24
  170. package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
  171. package/.internal/charts/stock/drawing/RegressionSeries.js +3 -18
  172. package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
  173. package/.internal/charts/stock/drawing/SimpleLineSeries.js +9 -54
  174. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  175. package/.internal/charts/stock/drawing/TrendLineSeries.js +3 -18
  176. package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
  177. package/.internal/charts/stock/drawing/VerticalLineSeries.js +3 -18
  178. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  179. package/.internal/charts/stock/indicators/AccelerationBands.js +23 -56
  180. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
  181. package/.internal/charts/stock/indicators/AccumulationDistribution.js +11 -26
  182. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  183. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +15 -42
  184. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  185. package/.internal/charts/stock/indicators/Aroon.js +15 -30
  186. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  187. package/.internal/charts/stock/indicators/AverageTrueRange.js +11 -26
  188. package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
  189. package/.internal/charts/stock/indicators/AwesomeOscillator.js +11 -26
  190. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  191. package/.internal/charts/stock/indicators/BollingerBands.js +33 -66
  192. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  193. package/.internal/charts/stock/indicators/BullBearPower.js +11 -26
  194. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
  195. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +11 -26
  196. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  197. package/.internal/charts/stock/indicators/ChaikinOscillator.js +15 -30
  198. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  199. package/.internal/charts/stock/indicators/ChartIndicator.js +3 -54
  200. package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
  201. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +2 -12
  202. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  203. package/.internal/charts/stock/indicators/DisparityIndex.js +21 -36
  204. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  205. package/.internal/charts/stock/indicators/HeikinAshi.js +11 -26
  206. package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
  207. package/.internal/charts/stock/indicators/Indicator.js +4 -42
  208. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  209. package/.internal/charts/stock/indicators/MACD.js +31 -64
  210. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  211. package/.internal/charts/stock/indicators/MACross.js +19 -34
  212. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  213. package/.internal/charts/stock/indicators/MedianPrice.js +11 -26
  214. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  215. package/.internal/charts/stock/indicators/Momentum.js +18 -33
  216. package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
  217. package/.internal/charts/stock/indicators/MovingAverage.js +25 -40
  218. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  219. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +33 -48
  220. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  221. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +42 -75
  222. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  223. package/.internal/charts/stock/indicators/OnBalanceVolume.js +7 -22
  224. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  225. package/.internal/charts/stock/indicators/OverboughtOversold.js +19 -64
  226. package/.internal/charts/stock/indicators/OverboughtOversold.js.map +1 -1
  227. package/.internal/charts/stock/indicators/PVT.js +7 -22
  228. package/.internal/charts/stock/indicators/PVT.js.map +1 -1
  229. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +2 -24
  230. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  231. package/.internal/charts/stock/indicators/StandardDeviation.js +16 -31
  232. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  233. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -24
  234. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
  235. package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -24
  236. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  237. package/.internal/charts/stock/indicators/SuperTrend.js +19 -52
  238. package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
  239. package/.internal/charts/stock/indicators/Trix.js +20 -49
  240. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  241. package/.internal/charts/stock/indicators/TypicalPrice.js +11 -26
  242. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  243. package/.internal/charts/stock/indicators/VWAP.js +16 -31
  244. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  245. package/.internal/charts/stock/indicators/Volume.js +11 -26
  246. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  247. package/.internal/charts/stock/indicators/VolumeProfile.js +32 -65
  248. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  249. package/.internal/charts/stock/indicators/WilliamsR.js +2 -12
  250. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  251. package/.internal/charts/stock/indicators/ZigZag.js +15 -30
  252. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  253. package/.internal/charts/stock/toolbar/ColorControl.js +2 -12
  254. package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
  255. package/.internal/charts/stock/toolbar/ComparisonControl.js +2 -12
  256. package/.internal/charts/stock/toolbar/ComparisonControl.js.map +1 -1
  257. package/.internal/charts/stock/toolbar/DataSaveControl.js +2 -12
  258. package/.internal/charts/stock/toolbar/DataSaveControl.js.map +1 -1
  259. package/.internal/charts/stock/toolbar/DateRangeSelector.js +2 -12
  260. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  261. package/.internal/charts/stock/toolbar/DrawingControl.js +4 -24
  262. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  263. package/.internal/charts/stock/toolbar/DrawingToolControl.js +2 -12
  264. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  265. package/.internal/charts/stock/toolbar/Dropdown.js +2 -12
  266. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  267. package/.internal/charts/stock/toolbar/DropdownColors.js +2 -12
  268. package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
  269. package/.internal/charts/stock/toolbar/DropdownControl.js +2 -12
  270. package/.internal/charts/stock/toolbar/DropdownControl.js.map +1 -1
  271. package/.internal/charts/stock/toolbar/DropdownList.js +2 -21
  272. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  273. package/.internal/charts/stock/toolbar/DropdownListControl.js +2 -12
  274. package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
  275. package/.internal/charts/stock/toolbar/IconControl.js +2 -12
  276. package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
  277. package/.internal/charts/stock/toolbar/IndicatorControl.js +2 -12
  278. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  279. package/.internal/charts/stock/toolbar/IntervalControl.js +2 -12
  280. package/.internal/charts/stock/toolbar/IntervalControl.js.map +1 -1
  281. package/.internal/charts/stock/toolbar/PeriodSelector.js +2 -27
  282. package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
  283. package/.internal/charts/stock/toolbar/ResetControl.js +2 -12
  284. package/.internal/charts/stock/toolbar/ResetControl.js.map +1 -1
  285. package/.internal/charts/stock/toolbar/SeriesTypeControl.js +2 -12
  286. package/.internal/charts/stock/toolbar/SeriesTypeControl.js.map +1 -1
  287. package/.internal/charts/stock/toolbar/SettingsControl.js +2 -12
  288. package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
  289. package/.internal/charts/stock/toolbar/StockControl.js +2 -12
  290. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  291. package/.internal/charts/stock/toolbar/StockIcons.js +52 -57
  292. package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
  293. package/.internal/charts/stock/toolbar/StockToolbar.js +2 -21
  294. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  295. package/.internal/charts/timeline/AxisRendererCurveX.js +11 -46
  296. package/.internal/charts/timeline/AxisRendererCurveX.js.map +1 -1
  297. package/.internal/charts/timeline/AxisRendererCurveY.js +6 -26
  298. package/.internal/charts/timeline/AxisRendererCurveY.js.map +1 -1
  299. package/.internal/charts/timeline/CurveChart.js +3 -18
  300. package/.internal/charts/timeline/CurveChart.js.map +1 -1
  301. package/.internal/charts/timeline/CurveColumnSeries.js +6 -21
  302. package/.internal/charts/timeline/CurveColumnSeries.js.map +1 -1
  303. package/.internal/charts/timeline/CurveCursor.js +2 -12
  304. package/.internal/charts/timeline/CurveCursor.js.map +1 -1
  305. package/.internal/charts/timeline/CurveLineSeries.js +2 -12
  306. package/.internal/charts/timeline/CurveLineSeries.js.map +1 -1
  307. package/.internal/charts/timeline/SerpentineChart.js +2 -12
  308. package/.internal/charts/timeline/SerpentineChart.js.map +1 -1
  309. package/.internal/charts/timeline/SpiralChart.js +2 -12
  310. package/.internal/charts/timeline/SpiralChart.js.map +1 -1
  311. package/.internal/charts/venn/Venn.js +8 -54
  312. package/.internal/charts/venn/Venn.js.map +1 -1
  313. package/.internal/charts/wordcloud/WordCloud.js +9 -66
  314. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  315. package/.internal/charts/xy/XYChart.js +23 -149
  316. package/.internal/charts/xy/XYChart.js.map +1 -1
  317. package/.internal/charts/xy/XYChartScrollbar.js +15 -35
  318. package/.internal/charts/xy/XYChartScrollbar.js.map +1 -1
  319. package/.internal/charts/xy/XYCursor.js +16 -93
  320. package/.internal/charts/xy/XYCursor.js.map +1 -1
  321. package/.internal/charts/xy/axes/Axis.js +27 -166
  322. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  323. package/.internal/charts/xy/axes/AxisBullet.js +2 -24
  324. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  325. package/.internal/charts/xy/axes/AxisLabel.js +3 -18
  326. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  327. package/.internal/charts/xy/axes/AxisLabelRadial.js +3 -18
  328. package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
  329. package/.internal/charts/xy/axes/AxisRenderer.js +21 -131
  330. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  331. package/.internal/charts/xy/axes/AxisRendererX.js +3 -18
  332. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  333. package/.internal/charts/xy/axes/AxisRendererY.js +3 -24
  334. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  335. package/.internal/charts/xy/axes/AxisTick.js +3 -18
  336. package/.internal/charts/xy/axes/AxisTick.js.map +1 -1
  337. package/.internal/charts/xy/axes/CategoryAxis.js +4 -24
  338. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  339. package/.internal/charts/xy/axes/CategoryDateAxis.js +4 -24
  340. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  341. package/.internal/charts/xy/axes/DateAxis.js +9 -54
  342. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  343. package/.internal/charts/xy/axes/DurationAxis.js +5 -30
  344. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  345. package/.internal/charts/xy/axes/EditableAxisLabel.js +3 -18
  346. package/.internal/charts/xy/axes/EditableAxisLabel.js.map +1 -1
  347. package/.internal/charts/xy/axes/GaplessDateAxis.js +5 -36
  348. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  349. package/.internal/charts/xy/axes/Grid.js +2 -12
  350. package/.internal/charts/xy/axes/Grid.js.map +1 -1
  351. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  352. package/.internal/charts/xy/axes/ValueAxis.js +15 -73
  353. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  354. package/.internal/charts/xy/series/BaseColumnSeries.js +5 -30
  355. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  356. package/.internal/charts/xy/series/Candlestick.js +2 -12
  357. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  358. package/.internal/charts/xy/series/CandlestickSeries.js +7 -22
  359. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  360. package/.internal/charts/xy/series/ColumnSeries.js +8 -33
  361. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  362. package/.internal/charts/xy/series/LineSeries.js +13 -89
  363. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  364. package/.internal/charts/xy/series/OHLC.js +2 -12
  365. package/.internal/charts/xy/series/OHLC.js.map +1 -1
  366. package/.internal/charts/xy/series/OHLCSeries.js +7 -22
  367. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  368. package/.internal/charts/xy/series/SmoothedXLineSeries.js +2 -12
  369. package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
  370. package/.internal/charts/xy/series/SmoothedXYLineSeries.js +2 -12
  371. package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
  372. package/.internal/charts/xy/series/SmoothedYLineSeries.js +2 -12
  373. package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
  374. package/.internal/charts/xy/series/StepLineSeries.js +2 -12
  375. package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
  376. package/.internal/charts/xy/series/XYSeries.js +33 -282
  377. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  378. package/.internal/core/Registry.js +5 -30
  379. package/.internal/core/Registry.js.map +1 -1
  380. package/.internal/core/Root.d.ts.map +1 -1
  381. package/.internal/core/Root.js +38 -398
  382. package/.internal/core/Root.js.map +1 -1
  383. package/.internal/core/Theme.js +1 -12
  384. package/.internal/core/Theme.js.map +1 -1
  385. package/.internal/core/render/Bullet.js +2 -31
  386. package/.internal/core/render/Bullet.js.map +1 -1
  387. package/.internal/core/render/Button.js +2 -12
  388. package/.internal/core/render/Button.js.map +1 -1
  389. package/.internal/core/render/Chart.js +4 -24
  390. package/.internal/core/render/Chart.js.map +1 -1
  391. package/.internal/core/render/Circle.js +2 -12
  392. package/.internal/core/render/Circle.js.map +1 -1
  393. package/.internal/core/render/Component.js +11 -135
  394. package/.internal/core/render/Component.js.map +1 -1
  395. package/.internal/core/render/ConfirmButton.js +2 -21
  396. package/.internal/core/render/ConfirmButton.js.map +1 -1
  397. package/.internal/core/render/Container.js +13 -108
  398. package/.internal/core/render/Container.js.map +1 -1
  399. package/.internal/core/render/EditableLabel.js +2 -21
  400. package/.internal/core/render/EditableLabel.js.map +1 -1
  401. package/.internal/core/render/Ellipse.js +2 -12
  402. package/.internal/core/render/Ellipse.js.map +1 -1
  403. package/.internal/core/render/Graphics.js +4 -24
  404. package/.internal/core/render/Graphics.js.map +1 -1
  405. package/.internal/core/render/GridLayout.js +2 -12
  406. package/.internal/core/render/GridLayout.js.map +1 -1
  407. package/.internal/core/render/HeatLegend.js +9 -44
  408. package/.internal/core/render/HeatLegend.js.map +1 -1
  409. package/.internal/core/render/HorizontalLayout.js +2 -12
  410. package/.internal/core/render/HorizontalLayout.js.map +1 -1
  411. package/.internal/core/render/Label.js +41 -62
  412. package/.internal/core/render/Label.js.map +1 -1
  413. package/.internal/core/render/Layout.js +2 -12
  414. package/.internal/core/render/Layout.js.map +1 -1
  415. package/.internal/core/render/Legend.js +22 -57
  416. package/.internal/core/render/Legend.js.map +1 -1
  417. package/.internal/core/render/Line.js +2 -12
  418. package/.internal/core/render/Line.js.map +1 -1
  419. package/.internal/core/render/Link.js +10 -40
  420. package/.internal/core/render/Link.js.map +1 -1
  421. package/.internal/core/render/MonotoneXTension.js +8 -54
  422. package/.internal/core/render/MonotoneXTension.js.map +1 -1
  423. package/.internal/core/render/MonotoneYTension.js +8 -54
  424. package/.internal/core/render/MonotoneYTension.js.map +1 -1
  425. package/.internal/core/render/NumericStepper.js +6 -36
  426. package/.internal/core/render/NumericStepper.js.map +1 -1
  427. package/.internal/core/render/OrthogonalLine.js +2 -12
  428. package/.internal/core/render/OrthogonalLine.js.map +1 -1
  429. package/.internal/core/render/Picture.js +3 -18
  430. package/.internal/core/render/Picture.js.map +1 -1
  431. package/.internal/core/render/PointedRectangle.js +2 -12
  432. package/.internal/core/render/PointedRectangle.js.map +1 -1
  433. package/.internal/core/render/Polygon.js +2 -21
  434. package/.internal/core/render/Polygon.js.map +1 -1
  435. package/.internal/core/render/ProgressPie.js +8 -38
  436. package/.internal/core/render/ProgressPie.js.map +1 -1
  437. package/.internal/core/render/RadialLabel.js +3 -18
  438. package/.internal/core/render/RadialLabel.js.map +1 -1
  439. package/.internal/core/render/RadialText.js +3 -18
  440. package/.internal/core/render/RadialText.js.map +1 -1
  441. package/.internal/core/render/Rectangle.js +2 -12
  442. package/.internal/core/render/Rectangle.js.map +1 -1
  443. package/.internal/core/render/RoundedRectangle.js +2 -12
  444. package/.internal/core/render/RoundedRectangle.js.map +1 -1
  445. package/.internal/core/render/Scrollbar.js +9 -60
  446. package/.internal/core/render/Scrollbar.js.map +1 -1
  447. package/.internal/core/render/SerialChart.js +4 -24
  448. package/.internal/core/render/SerialChart.js.map +1 -1
  449. package/.internal/core/render/Series.js +8 -69
  450. package/.internal/core/render/Series.js.map +1 -1
  451. package/.internal/core/render/Slice.js +5 -30
  452. package/.internal/core/render/Slice.js.map +1 -1
  453. package/.internal/core/render/Slider.js +2 -12
  454. package/.internal/core/render/Slider.js.map +1 -1
  455. package/.internal/core/render/Sprite.js +86 -249
  456. package/.internal/core/render/Sprite.js.map +1 -1
  457. package/.internal/core/render/SpriteResizer.js +11 -72
  458. package/.internal/core/render/SpriteResizer.js.map +1 -1
  459. package/.internal/core/render/Star.js +2 -12
  460. package/.internal/core/render/Star.js.map +1 -1
  461. package/.internal/core/render/Text.js +35 -66
  462. package/.internal/core/render/Text.js.map +1 -1
  463. package/.internal/core/render/Tick.js +2 -12
  464. package/.internal/core/render/Tick.js.map +1 -1
  465. package/.internal/core/render/Tooltip.js +7 -78
  466. package/.internal/core/render/Tooltip.js.map +1 -1
  467. package/.internal/core/render/Triangle.js +2 -12
  468. package/.internal/core/render/Triangle.js.map +1 -1
  469. package/.internal/core/render/VerticalLayout.js +2 -12
  470. package/.internal/core/render/VerticalLayout.js.map +1 -1
  471. package/.internal/core/render/ZoomTools.js +5 -42
  472. package/.internal/core/render/ZoomTools.js.map +1 -1
  473. package/.internal/core/render/ZoomableContainer.js +17 -82
  474. package/.internal/core/render/ZoomableContainer.js.map +1 -1
  475. package/.internal/core/render/backend/CanvasRenderer.js +142 -1205
  476. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  477. package/.internal/core/render/gradients/Gradient.js +2 -12
  478. package/.internal/core/render/gradients/Gradient.js.map +1 -1
  479. package/.internal/core/render/gradients/LinearGradient.js +2 -12
  480. package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
  481. package/.internal/core/render/gradients/RadialGradient.js +2 -12
  482. package/.internal/core/render/gradients/RadialGradient.js.map +1 -1
  483. package/.internal/core/render/patterns/CirclePattern.js +2 -12
  484. package/.internal/core/render/patterns/CirclePattern.js.map +1 -1
  485. package/.internal/core/render/patterns/GrainPattern.js +5 -30
  486. package/.internal/core/render/patterns/GrainPattern.js.map +1 -1
  487. package/.internal/core/render/patterns/LinePattern.js +2 -12
  488. package/.internal/core/render/patterns/LinePattern.js.map +1 -1
  489. package/.internal/core/render/patterns/PathPattern.js +2 -12
  490. package/.internal/core/render/patterns/PathPattern.js.map +1 -1
  491. package/.internal/core/render/patterns/Pattern.js +5 -36
  492. package/.internal/core/render/patterns/Pattern.js.map +1 -1
  493. package/.internal/core/render/patterns/PicturePattern.js +2 -21
  494. package/.internal/core/render/patterns/PicturePattern.js.map +1 -1
  495. package/.internal/core/render/patterns/RectanglePattern.js +2 -12
  496. package/.internal/core/render/patterns/RectanglePattern.js.map +1 -1
  497. package/.internal/core/util/Animation.js +6 -54
  498. package/.internal/core/util/Animation.js.map +1 -1
  499. package/.internal/core/util/Benchmark.js +3 -18
  500. package/.internal/core/util/Benchmark.js.map +1 -1
  501. package/.internal/core/util/Children.js +1 -18
  502. package/.internal/core/util/Children.js.map +1 -1
  503. package/.internal/core/util/Color.js +0 -6
  504. package/.internal/core/util/Color.js.map +1 -1
  505. package/.internal/core/util/ColorSet.js +2 -12
  506. package/.internal/core/util/ColorSet.js.map +1 -1
  507. package/.internal/core/util/Counter.js +2 -18
  508. package/.internal/core/util/Counter.js.map +1 -1
  509. package/.internal/core/util/Data.js +0 -26
  510. package/.internal/core/util/Data.js.map +1 -1
  511. package/.internal/core/util/DataProcessor.js +5 -30
  512. package/.internal/core/util/DataProcessor.js.map +1 -1
  513. package/.internal/core/util/Disposer.js +2 -66
  514. package/.internal/core/util/Disposer.js.map +1 -1
  515. package/.internal/core/util/DurationFormatter.js +8 -13
  516. package/.internal/core/util/DurationFormatter.js.map +1 -1
  517. package/.internal/core/util/Entity.js +31 -271
  518. package/.internal/core/util/Entity.js.map +1 -1
  519. package/.internal/core/util/EventDispatcher.js +0 -45
  520. package/.internal/core/util/EventDispatcher.js.map +1 -1
  521. package/.internal/core/util/InterfaceColors.js +2 -12
  522. package/.internal/core/util/InterfaceColors.js.map +1 -1
  523. package/.internal/core/util/List.js +3 -39
  524. package/.internal/core/util/List.js.map +1 -1
  525. package/.internal/core/util/Matrix.js +0 -36
  526. package/.internal/core/util/Matrix.js.map +1 -1
  527. package/.internal/core/util/Modal.js +2 -12
  528. package/.internal/core/util/Modal.js.map +1 -1
  529. package/.internal/core/util/PatternSet.js +2 -12
  530. package/.internal/core/util/PatternSet.js.map +1 -1
  531. package/.internal/core/util/Percent.js +0 -9
  532. package/.internal/core/util/Percent.js.map +1 -1
  533. package/.internal/core/util/ResizeSensor.js +5 -54
  534. package/.internal/core/util/ResizeSensor.js.map +1 -1
  535. package/.internal/core/util/States.js +2 -30
  536. package/.internal/core/util/States.js.map +1 -1
  537. package/.internal/core/util/Template.js +10 -96
  538. package/.internal/core/util/Template.js.map +1 -1
  539. package/.internal/core/util/TextFormatter.js +1 -6
  540. package/.internal/core/util/TextFormatter.js.map +1 -1
  541. package/.internal/core/util/Throttler.js +2 -18
  542. package/.internal/core/util/Throttler.js.map +1 -1
  543. package/.internal/core/util/Timezone.js +0 -18
  544. package/.internal/core/util/Timezone.js.map +1 -1
  545. package/.internal/core/util/Utils.js +0 -21
  546. package/.internal/core/util/Utils.js.map +1 -1
  547. package/.internal/core/util/Value.js +1 -18
  548. package/.internal/core/util/Value.js.map +1 -1
  549. package/.internal/plugins/colorPicker/ColorPicker.js +96 -235
  550. package/.internal/plugins/colorPicker/ColorPicker.js.map +1 -1
  551. package/.internal/plugins/colorPicker/ColorPickerButton.js +8 -34
  552. package/.internal/plugins/colorPicker/ColorPickerButton.js.map +1 -1
  553. package/.internal/plugins/exporting/Annotator.js +3 -36
  554. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  555. package/.internal/plugins/exporting/Exporting.js +2 -12
  556. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  557. package/.internal/plugins/exporting/ExportingMenu.js +6 -66
  558. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  559. package/.internal/plugins/json/ChartSerializer.js +8 -48
  560. package/.internal/plugins/json/ChartSerializer.js.map +1 -1
  561. package/.internal/plugins/json/Json.js +3 -24
  562. package/.internal/plugins/json/Json.js.map +1 -1
  563. package/.internal/plugins/json/Serializer.js +3 -18
  564. package/.internal/plugins/json/Serializer.js.map +1 -1
  565. package/.internal/plugins/sliceGrouper/SliceGrouper.js +2 -24
  566. package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
  567. package/.internal/themes/ResponsiveTheme.js +8 -54
  568. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  569. package/CHANGELOG.md +12 -0
  570. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  571. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  572. package/examples/javascript/flow-chord/package.json +1 -1
  573. package/examples/javascript/flow-chord-directed/package.json +1 -1
  574. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  575. package/examples/javascript/flow-sankey/package.json +1 -1
  576. package/examples/javascript/gantt/package.json +1 -1
  577. package/examples/javascript/gantt-multilevel/package.json +1 -1
  578. package/examples/javascript/gantt-simple/package.json +1 -1
  579. package/examples/javascript/gauge/package.json +1 -1
  580. package/examples/javascript/gauge-bands/package.json +1 -1
  581. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  582. package/examples/javascript/hierarchy-pack/package.json +1 -1
  583. package/examples/javascript/hierarchy-partition/package.json +1 -1
  584. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  585. package/examples/javascript/hierarchy-tree/package.json +1 -1
  586. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  587. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  588. package/examples/javascript/jest/package.json +1 -1
  589. package/examples/javascript/json-pie/package.json +1 -1
  590. package/examples/javascript/json-xy/package.json +1 -1
  591. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  592. package/examples/javascript/map-clustered-points/package.json +1 -1
  593. package/examples/javascript/map-day-and-night/package.json +1 -1
  594. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  595. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  596. package/examples/javascript/map-with-bubbles/package.json +1 -1
  597. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  598. package/examples/javascript/misc-40-charts/package.json +1 -1
  599. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  600. package/examples/javascript/pie-chart/package.json +1 -1
  601. package/examples/javascript/pie-donut-chart/package.json +1 -1
  602. package/examples/javascript/pie-variable-radius/package.json +1 -1
  603. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  604. package/examples/javascript/radar-heat-map/package.json +1 -1
  605. package/examples/javascript/radar-line/package.json +1 -1
  606. package/examples/javascript/radar-time-line/package.json +1 -1
  607. package/examples/javascript/sliced-funnel/package.json +1 -1
  608. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  609. package/examples/javascript/sliced-pyramid/package.json +1 -1
  610. package/examples/javascript/stock-chart/package.json +1 -1
  611. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  612. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  613. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  614. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  615. package/examples/javascript/stock-chart-live/package.json +1 -1
  616. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  617. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  618. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  619. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  620. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  621. package/examples/javascript/venn-diagram/package.json +1 -1
  622. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  623. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  624. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  625. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  626. package/examples/javascript/xy-bubble/package.json +1 -1
  627. package/examples/javascript/xy-candlestick/package.json +1 -1
  628. package/examples/javascript/xy-clustered-column/package.json +1 -1
  629. package/examples/javascript/xy-column/package.json +1 -1
  630. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  631. package/examples/javascript/xy-data-grouping/package.json +1 -1
  632. package/examples/javascript/xy-draggable-range/package.json +1 -1
  633. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  634. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  635. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  636. package/examples/javascript/xy-line/package.json +1 -1
  637. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  638. package/examples/javascript/xy-live-data/package.json +1 -1
  639. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  640. package/examples/javascript/xy-ohlc/package.json +1 -1
  641. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  642. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  643. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  644. package/examples/javascript/xy-stacked-column/package.json +1 -1
  645. package/examples/javascript/xy-stacked-step/package.json +1 -1
  646. package/examples/javascript/xy-stock/package.json +1 -1
  647. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  648. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  649. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  650. package/examples/typescript/flow-chord/package.json +1 -1
  651. package/examples/typescript/flow-chord-directed/package.json +1 -1
  652. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  653. package/examples/typescript/flow-sankey/package.json +1 -1
  654. package/examples/typescript/gantt/package.json +1 -1
  655. package/examples/typescript/gantt-multilevel/package.json +1 -1
  656. package/examples/typescript/gantt-simple/package.json +1 -1
  657. package/examples/typescript/gauge/package.json +1 -1
  658. package/examples/typescript/gauge-bands/package.json +1 -1
  659. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  660. package/examples/typescript/hierarchy-pack/package.json +1 -1
  661. package/examples/typescript/hierarchy-partition/package.json +1 -1
  662. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  663. package/examples/typescript/hierarchy-tree/package.json +1 -1
  664. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  665. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  666. package/examples/typescript/jest/package.json +1 -1
  667. package/examples/typescript/json-pie/package.json +1 -1
  668. package/examples/typescript/json-xy/package.json +1 -1
  669. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  670. package/examples/typescript/map-clustered-points/package.json +1 -1
  671. package/examples/typescript/map-day-and-night/package.json +1 -1
  672. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  673. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  674. package/examples/typescript/map-with-bubbles/package.json +1 -1
  675. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  676. package/examples/typescript/misc-40-charts/package.json +1 -1
  677. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  678. package/examples/typescript/pie-chart/package.json +1 -1
  679. package/examples/typescript/pie-donut-chart/package.json +1 -1
  680. package/examples/typescript/pie-variable-radius/package.json +1 -1
  681. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  682. package/examples/typescript/radar-heat-map/package.json +1 -1
  683. package/examples/typescript/radar-line/package.json +1 -1
  684. package/examples/typescript/radar-time-line/package.json +1 -1
  685. package/examples/typescript/sliced-funnel/package.json +1 -1
  686. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  687. package/examples/typescript/sliced-pyramid/package.json +1 -1
  688. package/examples/typescript/stock-chart/package.json +1 -1
  689. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  690. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  691. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  692. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  693. package/examples/typescript/stock-chart-live/package.json +1 -1
  694. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  695. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  696. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  697. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  698. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  699. package/examples/typescript/venn-diagram/package.json +1 -1
  700. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  701. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  702. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  703. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  704. package/examples/typescript/xy-bubble/package.json +1 -1
  705. package/examples/typescript/xy-candlestick/package.json +1 -1
  706. package/examples/typescript/xy-clustered-column/package.json +1 -1
  707. package/examples/typescript/xy-column/package.json +1 -1
  708. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  709. package/examples/typescript/xy-data-grouping/package.json +1 -1
  710. package/examples/typescript/xy-draggable-range/package.json +1 -1
  711. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  712. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  713. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  714. package/examples/typescript/xy-line/package.json +1 -1
  715. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  716. package/examples/typescript/xy-live-data/package.json +1 -1
  717. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  718. package/examples/typescript/xy-ohlc/package.json +1 -1
  719. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  720. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  721. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  722. package/examples/typescript/xy-stacked-column/package.json +1 -1
  723. package/examples/typescript/xy-stacked-step/package.json +1 -1
  724. package/examples/typescript/xy-stock/package.json +1 -1
  725. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  726. package/package.json +1 -1
@@ -15,15 +15,6 @@ export class DisposerClass {
15
15
  * Constructor.
16
16
  */
17
17
  constructor() {
18
- /**
19
- * Is object disposed?
20
- */
21
- Object.defineProperty(this, "_disposed", {
22
- enumerable: true,
23
- configurable: true,
24
- writable: true,
25
- value: void 0
26
- });
27
18
  this._disposed = false;
28
19
  }
29
20
  /**
@@ -56,24 +47,6 @@ export class Disposer {
56
47
  * @param dispose Function that disposes object
57
48
  */
58
49
  constructor(dispose) {
59
- /**
60
- * Is object disposed?
61
- */
62
- Object.defineProperty(this, "_disposed", {
63
- enumerable: true,
64
- configurable: true,
65
- writable: true,
66
- value: void 0
67
- });
68
- /**
69
- * Method that disposes the object.
70
- */
71
- Object.defineProperty(this, "_dispose", {
72
- enumerable: true,
73
- configurable: true,
74
- writable: true,
75
- value: void 0
76
- });
77
50
  this._disposed = false;
78
51
  this._dispose = dispose;
79
52
  }
@@ -103,12 +76,7 @@ export class Disposer {
103
76
  export class ArrayDisposer extends DisposerClass {
104
77
  constructor() {
105
78
  super(...arguments);
106
- Object.defineProperty(this, "_disposers", {
107
- enumerable: true,
108
- configurable: true,
109
- writable: true,
110
- value: []
111
- });
79
+ this._disposers = [];
112
80
  }
113
81
  _dispose() {
114
82
  $array.each(this._disposers, (x) => {
@@ -124,12 +92,6 @@ export class ArrayDisposer extends DisposerClass {
124
92
  export class MultiDisposer extends DisposerClass {
125
93
  constructor(disposers) {
126
94
  super();
127
- Object.defineProperty(this, "_disposers", {
128
- enumerable: true,
129
- configurable: true,
130
- writable: true,
131
- value: void 0
132
- });
133
95
  this._disposers = disposers;
134
96
  }
135
97
  _dispose() {
@@ -151,27 +113,6 @@ export class MultiDisposer extends DisposerClass {
151
113
  * @todo Description
152
114
  */
153
115
  export class MutableValueDisposer extends DisposerClass {
154
- constructor() {
155
- super(...arguments);
156
- /**
157
- * Current disposer.
158
- */
159
- Object.defineProperty(this, "_disposer", {
160
- enumerable: true,
161
- configurable: true,
162
- writable: true,
163
- value: void 0
164
- });
165
- /**
166
- * Current value.
167
- */
168
- Object.defineProperty(this, "_value", {
169
- enumerable: true,
170
- configurable: true,
171
- writable: true,
172
- value: void 0
173
- });
174
- }
175
116
  _dispose() {
176
117
  if (this._disposer != null) {
177
118
  this._disposer.dispose();
@@ -218,12 +159,7 @@ export class CounterDisposer extends Disposer {
218
159
  *
219
160
  * @todo Description
220
161
  */
221
- Object.defineProperty(this, "_counter", {
222
- enumerable: true,
223
- configurable: true,
224
- writable: true,
225
- value: 0
226
- });
162
+ this._counter = 0;
227
163
  }
228
164
  /**
229
165
  * [increment description]
@@ -1 +1 @@
1
- {"version":3,"file":"Disposer.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Disposer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport * as $array from \"./Array\";\nimport type { Optional } from \"./Type\";\n\n/**\n * Defines interface for disposable objects.\n *\n * @ignore Exclude from docs\n */\nexport interface IDisposer {\n\tisDisposed(): boolean;\n\tdispose(): void;\n}\n\n/**\n * A base class for disposable objects.\n *\n * @ignore Exclude from docs\n */\nexport abstract class DisposerClass implements IDisposer {\n\n\t/**\n\t * Is object disposed?\n\t */\n\tprivate _disposed: boolean;\n\n\t/**\n\t * Constructor.\n\t */\n\tconstructor() {\n\t\tthis._disposed = false;\n\t}\n\n\t/**\n\t * Checks if object is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\tprotected abstract _dispose(): void;\n\n\t/**\n\t * Disposes the object.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * A class for creating an IDisposer.\n *\n * @ignore Exclude from docs\n */\nexport class Disposer implements IDisposer {\n\n\t/**\n\t * Is object disposed?\n\t */\n\tprivate _disposed: boolean;\n\n\t/**\n\t * Method that disposes the object.\n\t */\n\tprivate _dispose: () => void;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param dispose Function that disposes object\n\t */\n\tconstructor(dispose: () => void) {\n\t\tthis._disposed = false;\n\t\tthis._dispose = dispose;\n\t}\n\n\t/**\n\t * Checks if object is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes the object.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * This can be extended by other classes to add a `_disposers` property.\n *\n * @ignore Exclude from docs\n */\nexport class ArrayDisposer extends DisposerClass {\n\tprotected _disposers: Array<IDisposer> = [];\n\n\tprotected _dispose(): void {\n\t\t$array.each(this._disposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\t}\n}\n\n/**\n * A collection of related disposers that can be disposed in one go.\n *\n * @ignore Exclude from docs\n */\nexport class MultiDisposer extends DisposerClass {\n\tprotected _disposers: Array<IDisposer>;\n\n\tconstructor(disposers: Array<IDisposer>) {\n\t\tsuper();\n\t\tthis._disposers = disposers;\n\t}\n\n\tprotected _dispose(): void {\n\t\t$array.each(this._disposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\t}\n\n\tpublic get disposers(): Array<IDisposer> {\n\t\treturn this._disposers;\n\t}\n}\n\n/**\n * A special kind of Disposer that has attached value set.\n *\n * If a new value is set using `set()` method, the old disposer value is\n * disposed.\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class MutableValueDisposer<T extends IDisposer> extends DisposerClass {\n\n\t/**\n\t * Current disposer.\n\t */\n\tprivate _disposer: Optional<IDisposer>;\n\n\t/**\n\t * Current value.\n\t */\n\tprivate _value: Optional<T>;\n\n\tprotected _dispose(): void {\n\t\tif (this._disposer != null) {\n\t\t\tthis._disposer.dispose();\n\t\t\tthis._disposer = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns current value.\n\t *\n\t * @return Value\n\t */\n\tpublic get(): Optional<T> {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Sets value and disposes previous disposer if it was set.\n\t *\n\t * @param value New value\n\t * @param disposer Disposer\n\t */\n\tpublic set(value: Optional<T>, disposer: Optional<IDisposer>): void {\n\t\tif (this._disposer != null) {\n\t\t\tthis._disposer.dispose();\n\t\t}\n\n\t\tthis._disposer = disposer;\n\t\tthis._value = value;\n\t}\n\n\t/**\n\t * Resets the disposer value.\n\t */\n\tpublic reset(): void {\n\t\tthis.set(undefined, undefined);\n\t}\n\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class CounterDisposer extends Disposer {\n\n\t/**\n\t * [_counter description]\n\t *\n\t * @todo Description\n\t */\n\tprivate _counter: number = 0;\n\n\t/**\n\t * [increment description]\n\t *\n\t * @todo Description\n\t */\n\tpublic increment() {\n\t\t// TODO throw an error if it is disposed\n\t\t++this._counter;\n\n\t\t// TODO make this more efficient\n\t\treturn new Disposer(() => {\n\t\t\t--this._counter;\n\n\t\t\tif (this._counter === 0) {\n\t\t\t\tthis.dispose();\n\t\t\t}\n\t\t});\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Disposer.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Disposer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport * as $array from \"./Array\";\nimport type { Optional } from \"./Type\";\n\n/**\n * Defines interface for disposable objects.\n *\n * @ignore Exclude from docs\n */\nexport interface IDisposer {\n\tisDisposed(): boolean;\n\tdispose(): void;\n}\n\n/**\n * A base class for disposable objects.\n *\n * @ignore Exclude from docs\n */\nexport abstract class DisposerClass implements IDisposer {\n\n\t/**\n\t * Is object disposed?\n\t */\n\tprivate _disposed: boolean;\n\n\t/**\n\t * Constructor.\n\t */\n\tconstructor() {\n\t\tthis._disposed = false;\n\t}\n\n\t/**\n\t * Checks if object is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\tprotected abstract _dispose(): void;\n\n\t/**\n\t * Disposes the object.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * A class for creating an IDisposer.\n *\n * @ignore Exclude from docs\n */\nexport class Disposer implements IDisposer {\n\n\t/**\n\t * Is object disposed?\n\t */\n\tprivate _disposed: boolean;\n\n\t/**\n\t * Method that disposes the object.\n\t */\n\tprivate _dispose: () => void;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param dispose Function that disposes object\n\t */\n\tconstructor(dispose: () => void) {\n\t\tthis._disposed = false;\n\t\tthis._dispose = dispose;\n\t}\n\n\t/**\n\t * Checks if object is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes the object.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * This can be extended by other classes to add a `_disposers` property.\n *\n * @ignore Exclude from docs\n */\nexport class ArrayDisposer extends DisposerClass {\n\tprotected _disposers: Array<IDisposer> = [];\n\n\tprotected _dispose(): void {\n\t\t$array.each(this._disposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\t}\n}\n\n/**\n * A collection of related disposers that can be disposed in one go.\n *\n * @ignore Exclude from docs\n */\nexport class MultiDisposer extends DisposerClass {\n\tprotected _disposers: Array<IDisposer>;\n\n\tconstructor(disposers: Array<IDisposer>) {\n\t\tsuper();\n\t\tthis._disposers = disposers;\n\t}\n\n\tprotected _dispose(): void {\n\t\t$array.each(this._disposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\t}\n\n\tpublic get disposers(): Array<IDisposer> {\n\t\treturn this._disposers;\n\t}\n}\n\n/**\n * A special kind of Disposer that has attached value set.\n *\n * If a new value is set using `set()` method, the old disposer value is\n * disposed.\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class MutableValueDisposer<T extends IDisposer> extends DisposerClass {\n\n\t/**\n\t * Current disposer.\n\t */\n\tprivate _disposer: Optional<IDisposer>;\n\n\t/**\n\t * Current value.\n\t */\n\tprivate _value: Optional<T>;\n\n\tprotected _dispose(): void {\n\t\tif (this._disposer != null) {\n\t\t\tthis._disposer.dispose();\n\t\t\tthis._disposer = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns current value.\n\t *\n\t * @return Value\n\t */\n\tpublic get(): Optional<T> {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Sets value and disposes previous disposer if it was set.\n\t *\n\t * @param value New value\n\t * @param disposer Disposer\n\t */\n\tpublic set(value: Optional<T>, disposer: Optional<IDisposer>): void {\n\t\tif (this._disposer != null) {\n\t\t\tthis._disposer.dispose();\n\t\t}\n\n\t\tthis._disposer = disposer;\n\t\tthis._value = value;\n\t}\n\n\t/**\n\t * Resets the disposer value.\n\t */\n\tpublic reset(): void {\n\t\tthis.set(undefined, undefined);\n\t}\n\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class CounterDisposer extends Disposer {\n\n\t/**\n\t * [_counter description]\n\t *\n\t * @todo Description\n\t */\n\tprivate _counter: number = 0;\n\n\t/**\n\t * [increment description]\n\t *\n\t * @todo Description\n\t */\n\tpublic increment() {\n\t\t// TODO throw an error if it is disposed\n\t\t++this._counter;\n\n\t\t// TODO make this more efficient\n\t\treturn new Disposer(() => {\n\t\t\t--this._counter;\n\n\t\t\tif (this._counter === 0) {\n\t\t\t\tthis.dispose();\n\t\t\t}\n\t\t});\n\t}\n\n}\n"]}
@@ -14,19 +14,14 @@ export class DurationFormatter extends Entity {
14
14
  /**
15
15
  * Collection of aliases for units.
16
16
  */
17
- Object.defineProperty(this, "_unitAliases", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: {
22
- "Y": "y",
23
- "D": "d",
24
- "H": "h",
25
- "K": "h",
26
- "k": "h",
27
- "n": "S"
28
- }
29
- });
17
+ this._unitAliases = {
18
+ "Y": "y",
19
+ "D": "d",
20
+ "H": "h",
21
+ "K": "h",
22
+ "k": "h",
23
+ "n": "S"
24
+ };
30
25
  }
31
26
  _setDefaults() {
32
27
  const dmillisecond = "_duration_millisecond";
@@ -1 +1 @@
1
- {"version":3,"file":"DurationFormatter.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/DurationFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TimeUnit } from \"./Time\";\r\n\r\nimport { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\r\nimport { TextFormatter } from \"./TextFormatter\";\r\n\r\nimport * as $object from \"./Object\";\r\nimport * as $utils from \"./Utils\";\r\nimport * as $type from \"./Type\";\r\n\r\n\r\nexport interface IDurationFormatterSettings extends IEntitySettings {\r\n\r\n\t/**\r\n\t * A universal duration format to use wherever number needs to be formatted\r\n\t * as a duration.\r\n\t */\r\n\tdurationFormat?: string;\r\n\r\n\t/**\r\n\t * A base value. Any number below it will be considered \"negative\".\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tnegativeBase?: number;\r\n\r\n\t/**\r\n\t * Identifies what values are used in duration.\r\n\t *\r\n\t * Available options: `\"millisecond\"`, `\"second\"` (default), `\"minute\"`, `\"hour\"`, `\"day\"`, `\"week\"`, `\"month\"`, and `\"year\"`.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-durations/#Base_unit} for more info\r\n\t * @default \"second\"\r\n\t */\r\n\tbaseUnit?: TimeUnit;\r\n\r\n\t/**\r\n\t * Time unit dependent duration formats.\r\n\t *\r\n\t * Used be [[DurationAxis]].\r\n\t */\r\n\tdurationFormats?: Partial<Record<TimeUnit, Partial<Record<TimeUnit, string>>>>;\r\n\r\n\t/**\r\n\t * An array of data fields that hold duration values and should be formatted\r\n\t * with a [[DurationFormatter]].\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/data-placeholders/#Formatting_placeholders} for more info\r\n\t */\r\n\tdurationFields?: string[];\r\n\r\n}\r\n\r\nexport interface IDurationFormatterPrivate extends IEntityPrivate {\r\n}\r\n\r\n/**\r\n * A class used to format numberic values as time duration.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-durations/} for more info\r\n */\r\nexport class DurationFormatter extends Entity {\r\n\tdeclare public _settings: IDurationFormatterSettings;\r\n\tdeclare public _privateSettings: IDurationFormatterPrivate;\r\n\r\n\tprotected _setDefaults() {\r\n\t\tconst dmillisecond = \"_duration_millisecond\";\r\n\t\tconst dsecond = \"_duration_second\";\r\n\t\tconst dminute = \"_duration_minute\";\r\n\t\tconst dhour = \"_duration_hour\";\r\n\t\tconst dday = \"_duration_day\";\r\n\t\tconst dweek = \"_duration_week\";\r\n\t\tconst dmonth = \"_duration_month\";\r\n\t\tconst dyear = \"_duration_year\";\r\n\r\n\t\tconst asecond = \"_second\";\r\n\t\tconst aminute = \"_minute\";\r\n\t\tconst ahour = \"_hour\";\r\n\t\tconst aday = \"_day\";\r\n\t\tconst aweek = \"_week\";\r\n\t\tconst amonth = \"_week\";\r\n\t\tconst ayear = \"_year\";\r\n\r\n\t\t// Defaults\r\n\t\tthis._setDefault(\"negativeBase\", 0);\r\n\t\tthis._setDefault(\"baseUnit\", \"second\");\r\n\t\tthis._setDefault(\"durationFormats\", {\r\n\t\t\t\"millisecond\": {\r\n\t\t\t\t\"millisecond\": this._t(dmillisecond),\r\n\t\t\t\t\"second\": this._t((dmillisecond + asecond) as any),\r\n\t\t\t\t\"minute\": this._t((dmillisecond + aminute) as any),\r\n\t\t\t\t\"hour\": this._t((dmillisecond + ahour) as any),\r\n\t\t\t\t\"day\": this._t((dmillisecond + aday) as any),\r\n\t\t\t\t\"week\": this._t((dmillisecond + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dmillisecond + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dmillisecond + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"second\": {\r\n\t\t\t\t\"second\": this._t((dsecond) as any),\r\n\t\t\t\t\"minute\": this._t((dsecond + aminute) as any),\r\n\t\t\t\t\"hour\": this._t((dsecond + ahour) as any),\r\n\t\t\t\t\"day\": this._t((dsecond + aday) as any),\r\n\t\t\t\t\"week\": this._t((dsecond + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dsecond + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dsecond + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"minute\": {\r\n\t\t\t\t\"minute\": this._t((dminute) as any),\r\n\t\t\t\t\"hour\": this._t((dminute + ahour) as any),\r\n\t\t\t\t\"day\": this._t((dminute + aday) as any),\r\n\t\t\t\t\"week\": this._t((dminute + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dminute + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dminute + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"hour\": {\r\n\t\t\t\t\"hour\": this._t((dhour) as any),\r\n\t\t\t\t\"day\": this._t((dhour + aday) as any),\r\n\t\t\t\t\"week\": this._t((dhour + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dhour + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dhour + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"day\": {\r\n\t\t\t\t\"day\": this._t((dday) as any),\r\n\t\t\t\t\"week\": this._t((dday + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dday + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dday + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"week\": {\r\n\t\t\t\t\"week\": this._t((dweek) as any),\r\n\t\t\t\t\"month\": this._t((dweek + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dweek + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"month\": {\r\n\t\t\t\t\"month\": this._t((dmonth) as any),\r\n\t\t\t\t\"year\": this._t((dmonth + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"year\": {\r\n\t\t\t\t\"year\": this._t(dyear)\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tsuper._setDefaults();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Collection of aliases for units.\r\n\t */\r\n\tprotected _unitAliases: { [index: string]: string } = {\r\n\t\t\"Y\": \"y\",\r\n\t\t\"D\": \"d\",\r\n\t\t\"H\": \"h\",\r\n\t\t\"K\": \"h\",\r\n\t\t\"k\": \"h\",\r\n\t\t\"n\": \"S\"\r\n\t};\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\t}\r\n\r\n\t/**\r\n\t * Formats the number as duration.\r\n\t *\r\n\t * For example `1000` (base unit seconds) would be converted to `16:40` as in\r\n\t * 16 minutes and 40 seconds.\r\n\t *\r\n\t * @param value Value to format\r\n\t * @param format Format to apply\r\n\t * @param base Override base unit\r\n\t * @return Formatted number\r\n\t */\r\n\tpublic format(value: number | string, format?: string, base?: TimeUnit): string {\r\n\r\n\t\t// no base unit?\r\n\t\tlet baseUnit = base || this.get(\"baseUnit\");\r\n\r\n\t\t// no format passed in or empty\r\n\t\tif (typeof format === \"undefined\" || format === \"\") {\r\n\t\t\tif (this.get(\"durationFormat\") != null) {\r\n\t\t\t\tformat = this.get(\"durationFormat\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tformat = this.getFormat($type.toNumber(value), undefined, baseUnit);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Clean format\r\n\t\tformat = $utils.cleanFormat(format!);\r\n\r\n\t\t// get format info (it will also deal with parser caching)\r\n\t\tlet info = this.parseFormat(format, baseUnit);\r\n\r\n\t\t// cast to number just in case\r\n\t\t// TODO: maybe use better casting\r\n\t\tlet source: number = Number(value);\r\n\r\n\t\t// format and replace the number\r\n\t\tlet details;\r\n\t\tif (source > this.get(\"negativeBase\")) {\r\n\t\t\tdetails = info.positive;\r\n\t\t}\r\n\t\telse if (source < this.get(\"negativeBase\")) {\r\n\t\t\tdetails = info.negative;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdetails = info.zero;\r\n\t\t}\r\n\r\n\r\n\t\t// Format\r\n\t\tlet formatted = this.applyFormat(source, details);\r\n\r\n\t\t// Apply color?\r\n\t\tif (details.color !== \"\") {\r\n\t\t\tformatted = \"[\" + details.color + \"]\" + formatted + \"[/]\";\r\n\t\t}\r\n\r\n\t\treturn formatted;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses supplied format into structured object which can be used to format\r\n\t * the number.\r\n\t *\r\n\t * @param format Format string, i.e. \"#,###.00\"\r\n\t * @param base Override base unit\r\n\t * @return Parsed information\r\n\t */\r\n\tprotected parseFormat(format: string, base?: TimeUnit): any {\r\n\r\n\t\t// Check cache\r\n\t\t// TODO\r\n\t\t// let cached = this.getCache(format);\r\n\t\t// if (cached != null) {\r\n\t\t// \treturn cached;\r\n\t\t// }\r\n\r\n\t\t// no base unit?\r\n\t\tlet baseUnit = base || this.get(\"baseUnit\");\r\n\r\n\t\t// Initialize duration parsing info\r\n\t\tlet info = {\r\n\t\t\t\"positive\": {\r\n\t\t\t\t\"color\": \"\",\r\n\t\t\t\t\"template\": \"\",\r\n\t\t\t\t\"parts\": <any>[],\r\n\t\t\t\t\"source\": \"\",\r\n\t\t\t\t\"baseUnit\": baseUnit,\r\n\t\t\t\t\"parsed\": false,\r\n\t\t\t\t\"absolute\": false\r\n\t\t\t},\r\n\t\t\t\"negative\": {\r\n\t\t\t\t\"color\": \"\",\r\n\t\t\t\t\"template\": \"\",\r\n\t\t\t\t\"parts\": <any>[],\r\n\t\t\t\t\"source\": \"\",\r\n\t\t\t\t\"baseUnit\": baseUnit,\r\n\t\t\t\t\"parsed\": false,\r\n\t\t\t\t\"absolute\": false\r\n\t\t\t},\r\n\t\t\t\"zero\": {\r\n\t\t\t\t\"color\": \"\",\r\n\t\t\t\t\"template\": \"\",\r\n\t\t\t\t\"parts\": <any>[],\r\n\t\t\t\t\"source\": \"\",\r\n\t\t\t\t\"baseUnit\": baseUnit,\r\n\t\t\t\t\"parsed\": false,\r\n\t\t\t\t\"absolute\": false\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Escape double vertical bars (that mean display one vertical bar)\r\n\t\tformat = format.replace(\"||\", $type.PLACEHOLDER2);\r\n\r\n\t\t// Split it up and deal with different formats\r\n\t\tlet parts = format.split(\"|\");\r\n\t\tinfo.positive.source = parts[0];\r\n\r\n\t\tif (typeof parts[2] === \"undefined\") {\r\n\t\t\tinfo.zero = info.positive;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tinfo.zero.source = parts[2];\r\n\t\t}\r\n\r\n\t\tif (typeof parts[1] === \"undefined\") {\r\n\t\t\tinfo.negative = info.positive;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tinfo.negative.source = parts[1];\r\n\t\t}\r\n\r\n\t\t// Parse each\r\n\t\t$object.each(info, (_part, item) => {\r\n\t\t\t// Already parsed\r\n\t\t\tif (item.parsed) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Check cached\r\n\t\t\t// TODO\r\n\t\t\t// if (typeof this.getCache(item.source) !== \"undefined\") {\r\n\t\t\t// \tinfo[part] = this.getCache(item.source);\r\n\t\t\t// \treturn;\r\n\t\t\t// }\r\n\r\n\t\t\t// Begin parsing\r\n\t\t\tlet partFormat: string = item.source;\r\n\r\n\t\t\t// Check for [] directives\r\n\t\t\tlet dirs: string[] | null = [];\r\n\t\t\tdirs = item.source.match(/^\\[([^\\]]*)\\]/);\r\n\t\t\tif (dirs && dirs.length && dirs[0] !== \"\") {\r\n\t\t\t\tpartFormat = item.source.substr(dirs[0].length);\r\n\t\t\t\titem.color = dirs[1];\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Let TextFormatter split into chunks\r\n\t\t\tlet chunks = TextFormatter.chunk(partFormat, true);\r\n\t\t\tfor (let i: number = 0; i < chunks.length; i++) {\r\n\t\t\t\tlet chunk = chunks[i];\r\n\r\n\t\t\t\t// replace back double vertical bar\r\n\t\t\t\tchunk.text = chunk.text.replace($type.PLACEHOLDER2, \"|\");\r\n\r\n\t\t\t\tif (chunk.type === \"value\") {\r\n\r\n\t\t\t\t\t// Just \"Duration\"?\r\n\t\t\t\t\t// if (chunk.text.toLowerCase() === \"duration\") {\r\n\t\t\t\t\t// \tchunk.text = durationFormat;\r\n\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t// Check for \"a\" (absolute) modifier\r\n\t\t\t\t\tif (chunk.text.match(/[yYMdDwhHKkmsSn]+a/)) {\r\n\t\t\t\t\t\titem.absolute = true;\r\n\t\t\t\t\t\tchunk.text = chunk.text.replace(/([yYMdDwhHKkmsSn]+)a/, \"$1\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Find all possible parts\r\n\t\t\t\t\tlet matches = chunk.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g);\r\n\r\n\t\t\t\t\tif (matches) {\r\n\t\t\t\t\t\t// Populate template\r\n\t\t\t\t\t\tfor (let x = 0; x < matches.length; x++) {\r\n\t\t\t\t\t\t\t// Is it an alias?\r\n\t\t\t\t\t\t\tif (matches[x] == null) {\r\n\t\t\t\t\t\t\t\tmatches[x] = this._unitAliases[matches[x]];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\titem.parts.push(matches[x]);\r\n\t\t\t\t\t\t\tchunk.text = chunk.text.replace(matches[x], $type.PLACEHOLDER);\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// Apply to template\r\n\t\t\t\titem.template += chunk.text;\r\n\t\t\t}\r\n\r\n\t\t\t// Apply style formatting\r\n\t\t\t//item.template = TextFormatter.format(item.template, this.outputFormat);\r\n\r\n\t\t\t// Save cache\r\n\t\t\t// TODO\r\n\t\t\t//this.setCache(item.source, item);\r\n\r\n\t\t\t// Mark this as parsed\r\n\t\t\titem.parsed = true;\r\n\t\t});\r\n\r\n\t\t// Save cache (the whole thing)\r\n\t\t// TODO\r\n\t\t//this.setCache(format, info);\r\n\r\n\t\treturn info;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies parsed format to a numeric value.\r\n\t *\r\n\t * @param value Value\r\n\t * @param details Parsed format as returned by {parseFormat}\r\n\t * @return Formatted duration\r\n\t */\r\n\tprotected applyFormat(value: number, details: any): string {\r\n\r\n\t\t// Use absolute values\r\n\t\tlet negative = !details.absolute && (value < this.get(\"negativeBase\"));\r\n\t\tvalue = Math.abs(value);\r\n\r\n\r\n\t\t// Recalculate to milliseconds\r\n\t\tlet tstamp = this.toTimeStamp(value, details.baseUnit);\r\n\r\n\t\t// Init return value\r\n\t\tlet res = details.template;\r\n\t\tconst values: any = {\r\n\t\t\tmillisecond: 0,\r\n\t\t\tsecond: 0,\r\n\t\t\tminute: 0,\r\n\t\t\thour: 0,\r\n\t\t\tday: 0,\r\n\t\t\tweek: 0,\r\n\t\t\tmonth: 0,\r\n\t\t\tyear: 0\r\n\t\t};\r\n\r\n\t\t// Iterate through duration parts\r\n\t\tfor (let i = 0, len = details.parts.length; i < len; i++) {\r\n\r\n\t\t\t// Gather the part\r\n\t\t\tlet part = details.parts[i];\r\n\t\t\tlet unit: any = this._toTimeUnit(part.substr(0, 1));\r\n\r\n\t\t\t// Calculate current unit value\r\n\t\t\tlet ints: number;\r\n\t\t\tconst unitValue = this._getUnitValue(unit!);\r\n\t\t\tif (i < (len -1)) {\r\n\t\t\t\tints = Math.floor(tstamp / unitValue);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tints = Math.round(tstamp / unitValue);\r\n\t\t\t}\r\n\r\n\t\t\tvalues[unit] += ints;\r\n\r\n\t\t\t// Reduce timestamp\r\n\t\t\ttstamp -= ints * unitValue;\r\n\t\t}\r\n\r\n\t\t// Check if we have full unit that we need to bump up to higher unit\r\n\t\t$object.each(values, (unit, value) => {\r\n\t\t\tif (unit == \"millisecond\" && value == 1000) {\r\n\t\t\t\tvalues[\"second\"]++;\r\n\t\t\t\tvalues[\"millisecond\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"second\" && value == 60) {\r\n\t\t\t\tvalues[\"minute\"]++;\r\n\t\t\t\tvalues[\"second\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"minute\" && value == 60) {\r\n\t\t\t\tvalues[\"hour\"]++;\r\n\t\t\t\tvalues[\"minute\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"hour\" && value == 24) {\r\n\t\t\t\tvalues[\"day\"]++;\r\n\t\t\t\tvalues[\"hour\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"day\" && value == 7 && details.parts.indexOf(\"w\") !== -1) {\r\n\t\t\t\tvalues[\"week\"]++;\r\n\t\t\t\tvalues[\"day\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"day\" && value == 30) {\r\n\t\t\t\tvalues[\"month\"]++;\r\n\t\t\t\tvalues[\"day\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"month\" && value == 12) {\r\n\t\t\t\tvalues[\"year\"]++;\r\n\t\t\t\tvalues[\"month\"] = 0;\r\n\t\t\t}\r\n\t\t\t// if (val > 0) {\r\n\t\t\t// \tres = res.replace($type.PLACEHOLDER, $utils.padString(val, 2, \"0\"));\r\n\t\t\t// }\r\n\t\t\t// else {\r\n\t\t\t// \tres = res.replace($type.PLACEHOLDER, \"\");\r\n\t\t\t// }\r\n\t\t});\r\n\r\n\t\t// Iterate again\r\n\t\tfor (let i = 0, len = details.parts.length; i < len; i++) {\r\n\t\t\t// Gather the part\r\n\t\t\tlet part = details.parts[i];\r\n\t\t\tlet unit: any = this._toTimeUnit(part.substr(0, 1));\r\n\t\t\tlet digits = part.length;\r\n\r\n\t\t\t// Calculate current unit value\r\n\t\t\tres = res.replace($type.PLACEHOLDER, $utils.padString(values[unit], digits, \"0\"));\r\n\t\t}\r\n\r\n\r\n\t\t// Reapply negative sign\r\n\t\tif (negative) {\r\n\t\t\tres = \"-\" + res;\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value to timestamp in milliseconds.\r\n\t *\r\n\t * @param value A source value\r\n\t * @param baseUnit Base unit the source value is in: \"q\", \"s\", \"i\", \"h\", \"d\", \"w\", \"m\", \"y\"\r\n\t * @return Value representation as a timestamp in milliseconds\r\n\t */\r\n\tpublic toTimeStamp(value: number, baseUnit: TimeUnit): number {\r\n\t\treturn value * this._getUnitValue(baseUnit);\r\n\t}\r\n\r\n\tprotected _toTimeUnit(code: string): TimeUnit | undefined {\r\n\t\tswitch (code) {\r\n\t\t\tcase \"S\":\r\n\t\t\t\treturn \"millisecond\";\r\n\t\t\tcase \"s\":\r\n\t\t\t\treturn \"second\";\r\n\t\t\tcase \"m\":\r\n\t\t\t\treturn \"minute\";\r\n\t\t\tcase \"h\":\r\n\t\t\t\treturn \"hour\";\r\n\t\t\tcase \"d\":\r\n\t\t\t\treturn \"day\";\r\n\t\t\tcase \"w\":\r\n\t\t\t\treturn \"week\";\r\n\t\t\tcase \"M\":\r\n\t\t\t\treturn \"month\";\r\n\t\t\tcase \"y\":\r\n\t\t\t\treturn \"year\";\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Returns appropriate default format for the value.\r\n\t *\r\n\t * If `maxValue` is sepcified, it will use that value to determine the time\r\n\t * unit for the format.\r\n\t *\r\n\t * For example if your `baseUnit` is `\"second\"` and you pass in `10`, you\r\n\t * will get `\"10\"`.\r\n\t *\r\n\t * However, you might want it to be formatted in the context of bigger scale,\r\n\t * say 10 minutes (600 seconds). If you pass in `600` as `maxValue`, all\r\n\t * values, including small ones will use format with minutes, e.g.:\r\n\t * `00:10`, `00:50`, `12: 30`, etc.\r\n\t *\r\n\t * @param value Value to format\r\n\t * @param maxValue Maximum value to be used to determine format\r\n\t * @param baseUnit Base unit of the value\r\n\t * @return Format\r\n\t */\r\n\tpublic getFormat(value: number, maxValue?: number, baseUnit?: TimeUnit): string {\r\n\r\n\t\t// Is format override set?\r\n\t\tif (this.get(\"durationFormat\") != null) {\r\n\t\t\treturn this.get(\"durationFormat\")!;\r\n\t\t}\r\n\r\n\t\t// Get base unit\r\n\t\tif (!baseUnit) {\r\n\t\t\tbaseUnit = this.get(\"baseUnit\");\r\n\t\t}\r\n\r\n\t\tif (maxValue != null && value != maxValue) {\r\n\t\t\tvalue = Math.abs(value);\r\n\t\t\tmaxValue = Math.abs(maxValue);\r\n\t\t\tlet maxUnit = this.getValueUnit(Math.max(value, maxValue), baseUnit);\r\n\t\t\treturn (<any>this.get(\"durationFormats\"))[baseUnit!][maxUnit!];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet unit = this.getValueUnit(value, baseUnit);\r\n\t\t\treturn (<any>this.get(\"durationFormats\"))[baseUnit!][unit!];\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns value's closest denominator time unit, e.g 100 seconds is\r\n\t * `\"minute\"`, while 59 seconds would still be `second`.\r\n\t *\r\n\t * @param value Source duration value\r\n\t * @param baseUnit Base unit\r\n\t * @return Denominator\r\n\t */\r\n\tpublic getValueUnit(value: number, baseUnit?: TimeUnit): TimeUnit | undefined {\r\n\r\n\t\t// Get base unit\r\n\t\tif (!baseUnit) {\r\n\t\t\tbaseUnit = this.get(\"baseUnit\");\r\n\t\t}\r\n\r\n\t\t// Convert to milliseconds\r\n\t\tlet currentUnit: any;\r\n\t\tlet ms = this.getMilliseconds(value, baseUnit);\r\n\t\t$object.eachContinue(this._getUnitValues(), (key, val) => {\r\n\t\t\tif (key == baseUnit || currentUnit) {\r\n\t\t\t\tlet num = ms / val;\r\n\t\t\t\tif (num <= 1) {\r\n\t\t\t\t\tif (!currentUnit) {\r\n\t\t\t\t\t\tcurrentUnit = key;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUnit = key;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\treturn currentUnit;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts value to milliseconds according to `baseUnit`.\r\n\t *\r\n\t * @param value Source duration value\r\n\t * @param baseUnit Base unit\r\n\t * @return Value in milliseconds\r\n\t */\r\n\tpublic getMilliseconds(value: number, baseUnit?: TimeUnit): number {\r\n\r\n\t\t// Get base unit\r\n\t\tif (!baseUnit) {\r\n\t\t\tbaseUnit = this.get(\"baseUnit\");\r\n\t\t}\r\n\r\n\t\treturn value * this._getUnitValue(baseUnit!);\r\n\t}\r\n\r\n\tprotected _getUnitValue(timeUnit: TimeUnit): number {\r\n\t\treturn this._getUnitValues()[timeUnit];\r\n\t}\r\n\r\n\tprotected _getUnitValues(): any {\r\n\t\treturn {\r\n\t\t\t\"millisecond\": 1,\r\n\t\t\t\"second\": 1000,\r\n\t\t\t\"minute\": 60000,\r\n\t\t\t\"hour\": 3600000,\r\n\t\t\t\"day\": 86400000,\r\n\t\t\t\"week\": 604800000,\r\n\t\t\t\"month\": 2592000000,\r\n\t\t\t\"year\": 31536000000,\r\n\t\t};\r\n\t}\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"DurationFormatter.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/DurationFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TimeUnit } from \"./Time\";\r\n\r\nimport { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\r\nimport { TextFormatter } from \"./TextFormatter\";\r\n\r\nimport * as $object from \"./Object\";\r\nimport * as $utils from \"./Utils\";\r\nimport * as $type from \"./Type\";\r\n\r\n\r\nexport interface IDurationFormatterSettings extends IEntitySettings {\r\n\r\n\t/**\r\n\t * A universal duration format to use wherever number needs to be formatted\r\n\t * as a duration.\r\n\t */\r\n\tdurationFormat?: string;\r\n\r\n\t/**\r\n\t * A base value. Any number below it will be considered \"negative\".\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tnegativeBase?: number;\r\n\r\n\t/**\r\n\t * Identifies what values are used in duration.\r\n\t *\r\n\t * Available options: `\"millisecond\"`, `\"second\"` (default), `\"minute\"`, `\"hour\"`, `\"day\"`, `\"week\"`, `\"month\"`, and `\"year\"`.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-durations/#Base_unit} for more info\r\n\t * @default \"second\"\r\n\t */\r\n\tbaseUnit?: TimeUnit;\r\n\r\n\t/**\r\n\t * Time unit dependent duration formats.\r\n\t *\r\n\t * Used be [[DurationAxis]].\r\n\t */\r\n\tdurationFormats?: Partial<Record<TimeUnit, Partial<Record<TimeUnit, string>>>>;\r\n\r\n\t/**\r\n\t * An array of data fields that hold duration values and should be formatted\r\n\t * with a [[DurationFormatter]].\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/data-placeholders/#Formatting_placeholders} for more info\r\n\t */\r\n\tdurationFields?: string[];\r\n\r\n}\r\n\r\nexport interface IDurationFormatterPrivate extends IEntityPrivate {\r\n}\r\n\r\n/**\r\n * A class used to format numberic values as time duration.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-durations/} for more info\r\n */\r\nexport class DurationFormatter extends Entity {\r\n\tdeclare public _settings: IDurationFormatterSettings;\r\n\tdeclare public _privateSettings: IDurationFormatterPrivate;\r\n\r\n\tprotected _setDefaults() {\r\n\t\tconst dmillisecond = \"_duration_millisecond\";\r\n\t\tconst dsecond = \"_duration_second\";\r\n\t\tconst dminute = \"_duration_minute\";\r\n\t\tconst dhour = \"_duration_hour\";\r\n\t\tconst dday = \"_duration_day\";\r\n\t\tconst dweek = \"_duration_week\";\r\n\t\tconst dmonth = \"_duration_month\";\r\n\t\tconst dyear = \"_duration_year\";\r\n\r\n\t\tconst asecond = \"_second\";\r\n\t\tconst aminute = \"_minute\";\r\n\t\tconst ahour = \"_hour\";\r\n\t\tconst aday = \"_day\";\r\n\t\tconst aweek = \"_week\";\r\n\t\tconst amonth = \"_week\";\r\n\t\tconst ayear = \"_year\";\r\n\r\n\t\t// Defaults\r\n\t\tthis._setDefault(\"negativeBase\", 0);\r\n\t\tthis._setDefault(\"baseUnit\", \"second\");\r\n\t\tthis._setDefault(\"durationFormats\", {\r\n\t\t\t\"millisecond\": {\r\n\t\t\t\t\"millisecond\": this._t(dmillisecond),\r\n\t\t\t\t\"second\": this._t((dmillisecond + asecond) as any),\r\n\t\t\t\t\"minute\": this._t((dmillisecond + aminute) as any),\r\n\t\t\t\t\"hour\": this._t((dmillisecond + ahour) as any),\r\n\t\t\t\t\"day\": this._t((dmillisecond + aday) as any),\r\n\t\t\t\t\"week\": this._t((dmillisecond + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dmillisecond + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dmillisecond + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"second\": {\r\n\t\t\t\t\"second\": this._t((dsecond) as any),\r\n\t\t\t\t\"minute\": this._t((dsecond + aminute) as any),\r\n\t\t\t\t\"hour\": this._t((dsecond + ahour) as any),\r\n\t\t\t\t\"day\": this._t((dsecond + aday) as any),\r\n\t\t\t\t\"week\": this._t((dsecond + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dsecond + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dsecond + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"minute\": {\r\n\t\t\t\t\"minute\": this._t((dminute) as any),\r\n\t\t\t\t\"hour\": this._t((dminute + ahour) as any),\r\n\t\t\t\t\"day\": this._t((dminute + aday) as any),\r\n\t\t\t\t\"week\": this._t((dminute + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dminute + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dminute + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"hour\": {\r\n\t\t\t\t\"hour\": this._t((dhour) as any),\r\n\t\t\t\t\"day\": this._t((dhour + aday) as any),\r\n\t\t\t\t\"week\": this._t((dhour + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dhour + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dhour + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"day\": {\r\n\t\t\t\t\"day\": this._t((dday) as any),\r\n\t\t\t\t\"week\": this._t((dday + aweek) as any),\r\n\t\t\t\t\"month\": this._t((dday + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dday + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"week\": {\r\n\t\t\t\t\"week\": this._t((dweek) as any),\r\n\t\t\t\t\"month\": this._t((dweek + amonth) as any),\r\n\t\t\t\t\"year\": this._t((dweek + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"month\": {\r\n\t\t\t\t\"month\": this._t((dmonth) as any),\r\n\t\t\t\t\"year\": this._t((dmonth + ayear) as any)\r\n\t\t\t},\r\n\t\t\t\"year\": {\r\n\t\t\t\t\"year\": this._t(dyear)\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tsuper._setDefaults();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Collection of aliases for units.\r\n\t */\r\n\tprotected _unitAliases: { [index: string]: string } = {\r\n\t\t\"Y\": \"y\",\r\n\t\t\"D\": \"d\",\r\n\t\t\"H\": \"h\",\r\n\t\t\"K\": \"h\",\r\n\t\t\"k\": \"h\",\r\n\t\t\"n\": \"S\"\r\n\t};\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\t}\r\n\r\n\t/**\r\n\t * Formats the number as duration.\r\n\t *\r\n\t * For example `1000` (base unit seconds) would be converted to `16:40` as in\r\n\t * 16 minutes and 40 seconds.\r\n\t *\r\n\t * @param value Value to format\r\n\t * @param format Format to apply\r\n\t * @param base Override base unit\r\n\t * @return Formatted number\r\n\t */\r\n\tpublic format(value: number | string, format?: string, base?: TimeUnit): string {\r\n\r\n\t\t// no base unit?\r\n\t\tlet baseUnit = base || this.get(\"baseUnit\");\r\n\r\n\t\t// no format passed in or empty\r\n\t\tif (typeof format === \"undefined\" || format === \"\") {\r\n\t\t\tif (this.get(\"durationFormat\") != null) {\r\n\t\t\t\tformat = this.get(\"durationFormat\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tformat = this.getFormat($type.toNumber(value), undefined, baseUnit);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Clean format\r\n\t\tformat = $utils.cleanFormat(format!);\r\n\r\n\t\t// get format info (it will also deal with parser caching)\r\n\t\tlet info = this.parseFormat(format, baseUnit);\r\n\r\n\t\t// cast to number just in case\r\n\t\t// TODO: maybe use better casting\r\n\t\tlet source: number = Number(value);\r\n\r\n\t\t// format and replace the number\r\n\t\tlet details;\r\n\t\tif (source > this.get(\"negativeBase\")) {\r\n\t\t\tdetails = info.positive;\r\n\t\t}\r\n\t\telse if (source < this.get(\"negativeBase\")) {\r\n\t\t\tdetails = info.negative;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdetails = info.zero;\r\n\t\t}\r\n\r\n\r\n\t\t// Format\r\n\t\tlet formatted = this.applyFormat(source, details);\r\n\r\n\t\t// Apply color?\r\n\t\tif (details.color !== \"\") {\r\n\t\t\tformatted = \"[\" + details.color + \"]\" + formatted + \"[/]\";\r\n\t\t}\r\n\r\n\t\treturn formatted;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses supplied format into structured object which can be used to format\r\n\t * the number.\r\n\t *\r\n\t * @param format Format string, i.e. \"#,###.00\"\r\n\t * @param base Override base unit\r\n\t * @return Parsed information\r\n\t */\r\n\tprotected parseFormat(format: string, base?: TimeUnit): any {\r\n\r\n\t\t// Check cache\r\n\t\t// TODO\r\n\t\t// let cached = this.getCache(format);\r\n\t\t// if (cached != null) {\r\n\t\t// \treturn cached;\r\n\t\t// }\r\n\r\n\t\t// no base unit?\r\n\t\tlet baseUnit = base || this.get(\"baseUnit\");\r\n\r\n\t\t// Initialize duration parsing info\r\n\t\tlet info = {\r\n\t\t\t\"positive\": {\r\n\t\t\t\t\"color\": \"\",\r\n\t\t\t\t\"template\": \"\",\r\n\t\t\t\t\"parts\": <any>[],\r\n\t\t\t\t\"source\": \"\",\r\n\t\t\t\t\"baseUnit\": baseUnit,\r\n\t\t\t\t\"parsed\": false,\r\n\t\t\t\t\"absolute\": false\r\n\t\t\t},\r\n\t\t\t\"negative\": {\r\n\t\t\t\t\"color\": \"\",\r\n\t\t\t\t\"template\": \"\",\r\n\t\t\t\t\"parts\": <any>[],\r\n\t\t\t\t\"source\": \"\",\r\n\t\t\t\t\"baseUnit\": baseUnit,\r\n\t\t\t\t\"parsed\": false,\r\n\t\t\t\t\"absolute\": false\r\n\t\t\t},\r\n\t\t\t\"zero\": {\r\n\t\t\t\t\"color\": \"\",\r\n\t\t\t\t\"template\": \"\",\r\n\t\t\t\t\"parts\": <any>[],\r\n\t\t\t\t\"source\": \"\",\r\n\t\t\t\t\"baseUnit\": baseUnit,\r\n\t\t\t\t\"parsed\": false,\r\n\t\t\t\t\"absolute\": false\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Escape double vertical bars (that mean display one vertical bar)\r\n\t\tformat = format.replace(\"||\", $type.PLACEHOLDER2);\r\n\r\n\t\t// Split it up and deal with different formats\r\n\t\tlet parts = format.split(\"|\");\r\n\t\tinfo.positive.source = parts[0];\r\n\r\n\t\tif (typeof parts[2] === \"undefined\") {\r\n\t\t\tinfo.zero = info.positive;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tinfo.zero.source = parts[2];\r\n\t\t}\r\n\r\n\t\tif (typeof parts[1] === \"undefined\") {\r\n\t\t\tinfo.negative = info.positive;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tinfo.negative.source = parts[1];\r\n\t\t}\r\n\r\n\t\t// Parse each\r\n\t\t$object.each(info, (_part, item) => {\r\n\t\t\t// Already parsed\r\n\t\t\tif (item.parsed) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Check cached\r\n\t\t\t// TODO\r\n\t\t\t// if (typeof this.getCache(item.source) !== \"undefined\") {\r\n\t\t\t// \tinfo[part] = this.getCache(item.source);\r\n\t\t\t// \treturn;\r\n\t\t\t// }\r\n\r\n\t\t\t// Begin parsing\r\n\t\t\tlet partFormat: string = item.source;\r\n\r\n\t\t\t// Check for [] directives\r\n\t\t\tlet dirs: string[] | null = [];\r\n\t\t\tdirs = item.source.match(/^\\[([^\\]]*)\\]/);\r\n\t\t\tif (dirs && dirs.length && dirs[0] !== \"\") {\r\n\t\t\t\tpartFormat = item.source.substr(dirs[0].length);\r\n\t\t\t\titem.color = dirs[1];\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Let TextFormatter split into chunks\r\n\t\t\tlet chunks = TextFormatter.chunk(partFormat, true);\r\n\t\t\tfor (let i: number = 0; i < chunks.length; i++) {\r\n\t\t\t\tlet chunk = chunks[i];\r\n\r\n\t\t\t\t// replace back double vertical bar\r\n\t\t\t\tchunk.text = chunk.text.replace($type.PLACEHOLDER2, \"|\");\r\n\r\n\t\t\t\tif (chunk.type === \"value\") {\r\n\r\n\t\t\t\t\t// Just \"Duration\"?\r\n\t\t\t\t\t// if (chunk.text.toLowerCase() === \"duration\") {\r\n\t\t\t\t\t// \tchunk.text = durationFormat;\r\n\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t// Check for \"a\" (absolute) modifier\r\n\t\t\t\t\tif (chunk.text.match(/[yYMdDwhHKkmsSn]+a/)) {\r\n\t\t\t\t\t\titem.absolute = true;\r\n\t\t\t\t\t\tchunk.text = chunk.text.replace(/([yYMdDwhHKkmsSn]+)a/, \"$1\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Find all possible parts\r\n\t\t\t\t\tlet matches = chunk.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g);\r\n\r\n\t\t\t\t\tif (matches) {\r\n\t\t\t\t\t\t// Populate template\r\n\t\t\t\t\t\tfor (let x = 0; x < matches.length; x++) {\r\n\t\t\t\t\t\t\t// Is it an alias?\r\n\t\t\t\t\t\t\tif (matches[x] == null) {\r\n\t\t\t\t\t\t\t\tmatches[x] = this._unitAliases[matches[x]];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\titem.parts.push(matches[x]);\r\n\t\t\t\t\t\t\tchunk.text = chunk.text.replace(matches[x], $type.PLACEHOLDER);\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// Apply to template\r\n\t\t\t\titem.template += chunk.text;\r\n\t\t\t}\r\n\r\n\t\t\t// Apply style formatting\r\n\t\t\t//item.template = TextFormatter.format(item.template, this.outputFormat);\r\n\r\n\t\t\t// Save cache\r\n\t\t\t// TODO\r\n\t\t\t//this.setCache(item.source, item);\r\n\r\n\t\t\t// Mark this as parsed\r\n\t\t\titem.parsed = true;\r\n\t\t});\r\n\r\n\t\t// Save cache (the whole thing)\r\n\t\t// TODO\r\n\t\t//this.setCache(format, info);\r\n\r\n\t\treturn info;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies parsed format to a numeric value.\r\n\t *\r\n\t * @param value Value\r\n\t * @param details Parsed format as returned by {parseFormat}\r\n\t * @return Formatted duration\r\n\t */\r\n\tprotected applyFormat(value: number, details: any): string {\r\n\r\n\t\t// Use absolute values\r\n\t\tlet negative = !details.absolute && (value < this.get(\"negativeBase\"));\r\n\t\tvalue = Math.abs(value);\r\n\r\n\r\n\t\t// Recalculate to milliseconds\r\n\t\tlet tstamp = this.toTimeStamp(value, details.baseUnit);\r\n\r\n\t\t// Init return value\r\n\t\tlet res = details.template;\r\n\t\tconst values: any = {\r\n\t\t\tmillisecond: 0,\r\n\t\t\tsecond: 0,\r\n\t\t\tminute: 0,\r\n\t\t\thour: 0,\r\n\t\t\tday: 0,\r\n\t\t\tweek: 0,\r\n\t\t\tmonth: 0,\r\n\t\t\tyear: 0\r\n\t\t};\r\n\r\n\t\t// Iterate through duration parts\r\n\t\tfor (let i = 0, len = details.parts.length; i < len; i++) {\r\n\r\n\t\t\t// Gather the part\r\n\t\t\tlet part = details.parts[i];\r\n\t\t\tlet unit: any = this._toTimeUnit(part.substr(0, 1));\r\n\r\n\t\t\t// Calculate current unit value\r\n\t\t\tlet ints: number;\r\n\t\t\tconst unitValue = this._getUnitValue(unit!);\r\n\t\t\tif (i < (len -1)) {\r\n\t\t\t\tints = Math.floor(tstamp / unitValue);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tints = Math.round(tstamp / unitValue);\r\n\t\t\t}\r\n\r\n\t\t\tvalues[unit] += ints;\r\n\r\n\t\t\t// Reduce timestamp\r\n\t\t\ttstamp -= ints * unitValue;\r\n\t\t}\r\n\r\n\t\t// Check if we have full unit that we need to bump up to higher unit\r\n\t\t$object.each(values, (unit, value) => {\r\n\t\t\tif (unit == \"millisecond\" && value == 1000) {\r\n\t\t\t\tvalues[\"second\"]++;\r\n\t\t\t\tvalues[\"millisecond\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"second\" && value == 60) {\r\n\t\t\t\tvalues[\"minute\"]++;\r\n\t\t\t\tvalues[\"second\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"minute\" && value == 60) {\r\n\t\t\t\tvalues[\"hour\"]++;\r\n\t\t\t\tvalues[\"minute\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"hour\" && value == 24) {\r\n\t\t\t\tvalues[\"day\"]++;\r\n\t\t\t\tvalues[\"hour\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"day\" && value == 7 && details.parts.indexOf(\"w\") !== -1) {\r\n\t\t\t\tvalues[\"week\"]++;\r\n\t\t\t\tvalues[\"day\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"day\" && value == 30) {\r\n\t\t\t\tvalues[\"month\"]++;\r\n\t\t\t\tvalues[\"day\"] = 0;\r\n\t\t\t}\r\n\t\t\telse if (unit == \"month\" && value == 12) {\r\n\t\t\t\tvalues[\"year\"]++;\r\n\t\t\t\tvalues[\"month\"] = 0;\r\n\t\t\t}\r\n\t\t\t// if (val > 0) {\r\n\t\t\t// \tres = res.replace($type.PLACEHOLDER, $utils.padString(val, 2, \"0\"));\r\n\t\t\t// }\r\n\t\t\t// else {\r\n\t\t\t// \tres = res.replace($type.PLACEHOLDER, \"\");\r\n\t\t\t// }\r\n\t\t});\r\n\r\n\t\t// Iterate again\r\n\t\tfor (let i = 0, len = details.parts.length; i < len; i++) {\r\n\t\t\t// Gather the part\r\n\t\t\tlet part = details.parts[i];\r\n\t\t\tlet unit: any = this._toTimeUnit(part.substr(0, 1));\r\n\t\t\tlet digits = part.length;\r\n\r\n\t\t\t// Calculate current unit value\r\n\t\t\tres = res.replace($type.PLACEHOLDER, $utils.padString(values[unit], digits, \"0\"));\r\n\t\t}\r\n\r\n\r\n\t\t// Reapply negative sign\r\n\t\tif (negative) {\r\n\t\t\tres = \"-\" + res;\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value to timestamp in milliseconds.\r\n\t *\r\n\t * @param value A source value\r\n\t * @param baseUnit Base unit the source value is in: \"q\", \"s\", \"i\", \"h\", \"d\", \"w\", \"m\", \"y\"\r\n\t * @return Value representation as a timestamp in milliseconds\r\n\t */\r\n\tpublic toTimeStamp(value: number, baseUnit: TimeUnit): number {\r\n\t\treturn value * this._getUnitValue(baseUnit);\r\n\t}\r\n\r\n\tprotected _toTimeUnit(code: string): TimeUnit | undefined {\r\n\t\tswitch (code) {\r\n\t\t\tcase \"S\":\r\n\t\t\t\treturn \"millisecond\";\r\n\t\t\tcase \"s\":\r\n\t\t\t\treturn \"second\";\r\n\t\t\tcase \"m\":\r\n\t\t\t\treturn \"minute\";\r\n\t\t\tcase \"h\":\r\n\t\t\t\treturn \"hour\";\r\n\t\t\tcase \"d\":\r\n\t\t\t\treturn \"day\";\r\n\t\t\tcase \"w\":\r\n\t\t\t\treturn \"week\";\r\n\t\t\tcase \"M\":\r\n\t\t\t\treturn \"month\";\r\n\t\t\tcase \"y\":\r\n\t\t\t\treturn \"year\";\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Returns appropriate default format for the value.\r\n\t *\r\n\t * If `maxValue` is sepcified, it will use that value to determine the time\r\n\t * unit for the format.\r\n\t *\r\n\t * For example if your `baseUnit` is `\"second\"` and you pass in `10`, you\r\n\t * will get `\"10\"`.\r\n\t *\r\n\t * However, you might want it to be formatted in the context of bigger scale,\r\n\t * say 10 minutes (600 seconds). If you pass in `600` as `maxValue`, all\r\n\t * values, including small ones will use format with minutes, e.g.:\r\n\t * `00:10`, `00:50`, `12: 30`, etc.\r\n\t *\r\n\t * @param value Value to format\r\n\t * @param maxValue Maximum value to be used to determine format\r\n\t * @param baseUnit Base unit of the value\r\n\t * @return Format\r\n\t */\r\n\tpublic getFormat(value: number, maxValue?: number, baseUnit?: TimeUnit): string {\r\n\r\n\t\t// Is format override set?\r\n\t\tif (this.get(\"durationFormat\") != null) {\r\n\t\t\treturn this.get(\"durationFormat\")!;\r\n\t\t}\r\n\r\n\t\t// Get base unit\r\n\t\tif (!baseUnit) {\r\n\t\t\tbaseUnit = this.get(\"baseUnit\");\r\n\t\t}\r\n\r\n\t\tif (maxValue != null && value != maxValue) {\r\n\t\t\tvalue = Math.abs(value);\r\n\t\t\tmaxValue = Math.abs(maxValue);\r\n\t\t\tlet maxUnit = this.getValueUnit(Math.max(value, maxValue), baseUnit);\r\n\t\t\treturn (<any>this.get(\"durationFormats\"))[baseUnit!][maxUnit!];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet unit = this.getValueUnit(value, baseUnit);\r\n\t\t\treturn (<any>this.get(\"durationFormats\"))[baseUnit!][unit!];\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns value's closest denominator time unit, e.g 100 seconds is\r\n\t * `\"minute\"`, while 59 seconds would still be `second`.\r\n\t *\r\n\t * @param value Source duration value\r\n\t * @param baseUnit Base unit\r\n\t * @return Denominator\r\n\t */\r\n\tpublic getValueUnit(value: number, baseUnit?: TimeUnit): TimeUnit | undefined {\r\n\r\n\t\t// Get base unit\r\n\t\tif (!baseUnit) {\r\n\t\t\tbaseUnit = this.get(\"baseUnit\");\r\n\t\t}\r\n\r\n\t\t// Convert to milliseconds\r\n\t\tlet currentUnit: any;\r\n\t\tlet ms = this.getMilliseconds(value, baseUnit);\r\n\t\t$object.eachContinue(this._getUnitValues(), (key, val) => {\r\n\t\t\tif (key == baseUnit || currentUnit) {\r\n\t\t\t\tlet num = ms / val;\r\n\t\t\t\tif (num <= 1) {\r\n\t\t\t\t\tif (!currentUnit) {\r\n\t\t\t\t\t\tcurrentUnit = key;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUnit = key;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\treturn currentUnit;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts value to milliseconds according to `baseUnit`.\r\n\t *\r\n\t * @param value Source duration value\r\n\t * @param baseUnit Base unit\r\n\t * @return Value in milliseconds\r\n\t */\r\n\tpublic getMilliseconds(value: number, baseUnit?: TimeUnit): number {\r\n\r\n\t\t// Get base unit\r\n\t\tif (!baseUnit) {\r\n\t\t\tbaseUnit = this.get(\"baseUnit\");\r\n\t\t}\r\n\r\n\t\treturn value * this._getUnitValue(baseUnit!);\r\n\t}\r\n\r\n\tprotected _getUnitValue(timeUnit: TimeUnit): number {\r\n\t\treturn this._getUnitValues()[timeUnit];\r\n\t}\r\n\r\n\tprotected _getUnitValues(): any {\r\n\t\treturn {\r\n\t\t\t\"millisecond\": 1,\r\n\t\t\t\"second\": 1000,\r\n\t\t\t\"minute\": 60000,\r\n\t\t\t\"hour\": 3600000,\r\n\t\t\t\"day\": 86400000,\r\n\t\t\t\"week\": 604800000,\r\n\t\t\t\"month\": 2592000000,\r\n\t\t\t\"year\": 31536000000,\r\n\t\t};\r\n\t}\r\n\r\n}\r\n"]}