@amcharts/amcharts5 5.14.3 → 5.15.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.
- package/.internal/charts/flow/FlowNodes.d.ts +1 -0
- package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
- package/.internal/charts/flow/FlowNodes.js +7 -0
- package/.internal/charts/flow/FlowNodes.js.map +1 -1
- package/.internal/charts/gantt/Gantt.d.ts +1 -0
- package/.internal/charts/gantt/Gantt.d.ts.map +1 -1
- package/.internal/charts/gantt/Gantt.js +7 -0
- package/.internal/charts/gantt/Gantt.js.map +1 -1
- package/.internal/charts/gantt/GanttCategoryAxis.d.ts +1 -0
- package/.internal/charts/gantt/GanttCategoryAxis.d.ts.map +1 -1
- package/.internal/charts/gantt/GanttCategoryAxis.js +7 -0
- package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.d.ts +1 -0
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +7 -0
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/map/ClusteredPointSeries.d.ts +2 -2
- package/.internal/charts/map/ClusteredPointSeries.d.ts.map +1 -1
- package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
- package/.internal/charts/percent/PercentSeries.d.ts +1 -0
- package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +7 -0
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/stock/StockChart.js +1 -1
- package/.internal/charts/stock/StockChart.js.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.js +6 -0
- package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.js +2 -2
- package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/IconSeries.js +1 -1
- package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/AccelerationBands.d.ts +0 -3
- package/.internal/charts/stock/indicators/AccelerationBands.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/AccelerationBands.js +19 -19
- package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
- package/.internal/charts/stock/indicators/AccumulationDistribution.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/AccumulationDistribution.js +33 -31
- package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
- package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +1 -1
- package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/Aroon.js +2 -2
- package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
- package/.internal/charts/stock/indicators/AverageTrueRange.js +1 -1
- package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
- package/.internal/charts/stock/indicators/AwesomeOscillator.js +1 -1
- package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.js +2 -2
- package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
- package/.internal/charts/stock/indicators/BullBearPower.js +1 -1
- package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
- package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +1 -1
- package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
- package/.internal/charts/stock/indicators/ChaikinOscillator.js +1 -1
- package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js +1 -1
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/DisparityIndex.js +1 -1
- package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/HeikinAshi.js +1 -1
- package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.js +139 -91
- package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
- package/.internal/charts/stock/indicators/MACD.js +3 -3
- package/.internal/charts/stock/indicators/MACD.js.map +1 -1
- package/.internal/charts/stock/indicators/MACross.js +2 -2
- package/.internal/charts/stock/indicators/MACross.js.map +1 -1
- package/.internal/charts/stock/indicators/MedianPrice.js +1 -1
- package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
- package/.internal/charts/stock/indicators/Momentum.js +1 -1
- package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverage.js +1 -1
- package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverageDeviation.js +1 -1
- package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +2 -2
- package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
- package/.internal/charts/stock/indicators/OnBalanceVolume.js +1 -1
- package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
- package/.internal/charts/stock/indicators/PVT.js +1 -1
- package/.internal/charts/stock/indicators/PVT.js.map +1 -1
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +3 -3
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StandardDeviation.js +1 -1
- package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -2
- package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -2
- package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/SuperTrend.js +2 -2
- package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
- package/.internal/charts/stock/indicators/Trix.js +2 -2
- package/.internal/charts/stock/indicators/Trix.js.map +1 -1
- package/.internal/charts/stock/indicators/TypicalPrice.js +1 -1
- package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
- package/.internal/charts/stock/indicators/VWAP.js +1 -1
- package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
- package/.internal/charts/stock/indicators/Volume.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/Volume.js +1 -1
- package/.internal/charts/stock/indicators/Volume.js.map +1 -1
- package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/VolumeProfile.js +1 -0
- package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
- package/.internal/charts/stock/indicators/WilliamsR.js +1 -1
- package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
- package/.internal/charts/stock/indicators/ZigZag.js +1 -1
- package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
- package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/DateRangeSelector.js +1 -1
- package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.d.ts +1 -0
- package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.js +8 -1
- package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
- package/.internal/charts/venn/Venn.d.ts +1 -0
- package/.internal/charts/venn/Venn.d.ts.map +1 -1
- package/.internal/charts/venn/Venn.js +7 -0
- package/.internal/charts/venn/Venn.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +1 -0
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +8 -0
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.js +6 -1
- package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +18 -14
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +6 -4
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.js +19 -19
- package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.js +0 -1
- package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +10 -8
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts +2 -0
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +28 -28
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Registry.d.ts +7 -1
- package/.internal/core/Registry.d.ts.map +1 -1
- package/.internal/core/Registry.js +14 -3
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +43 -4
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/render/Component.d.ts +5 -0
- package/.internal/core/render/Component.d.ts.map +1 -1
- package/.internal/core/render/Component.js +44 -0
- package/.internal/core/render/Component.js.map +1 -1
- package/.internal/core/render/Container.d.ts +1 -1
- package/.internal/core/render/Container.d.ts.map +1 -1
- package/.internal/core/render/Container.js +7 -2
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Series.d.ts +9 -0
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js +89 -74
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/plugins/exporting/ExportingMenu.d.ts +6 -0
- package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
- package/.internal/plugins/exporting/ExportingMenu.js +2 -2
- package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
- package/.internal/plugins/json/ChartSerializer.d.ts +82 -0
- package/.internal/plugins/json/ChartSerializer.d.ts.map +1 -0
- package/.internal/plugins/json/ChartSerializer.js +782 -0
- package/.internal/plugins/json/ChartSerializer.js.map +1 -0
- package/.internal/plugins/json/Json.d.ts.map +1 -1
- package/.internal/plugins/json/Json.js +158 -54
- package/.internal/plugins/json/Json.js.map +1 -1
- package/.internal/plugins/json/Serializer.d.ts +40 -6
- package/.internal/plugins/json/Serializer.d.ts.map +1 -1
- package/.internal/plugins/json/Serializer.js +97 -24
- package/.internal/plugins/json/Serializer.js.map +1 -1
- package/CHANGELOG.md +37 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gantt/package.json +1 -1
- package/examples/javascript/gantt-multilevel/package.json +1 -1
- package/examples/javascript/gantt-simple/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-clustered-points/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-spiral-chart/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gantt/package.json +1 -1
- package/examples/typescript/gantt-multilevel/package.json +1 -1
- package/examples/typescript/gantt-simple/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-clustered-points/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-spiral-chart/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +4 -4
- package/plugins/json.d.ts +1 -0
- package/plugins/json.d.ts.map +1 -1
- package/plugins/json.js +1 -0
- package/plugins/json.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSerializer.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/json/ChartSerializer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Entity } from \"../../core/util/Entity\";\nimport type { Sprite } from \"../../core/render/Sprite\";\nimport type { SerialChart } from \"../../core/render/SerialChart\";\nimport type { Series } from \"../../core/render/Series\";\nimport type { XYChart } from \"../../charts/xy/XYChart\";\nimport type { XYSeries } from \"../../charts/xy/series/XYSeries\";\nimport type { XYChartScrollbar } from \"../../charts/xy/XYChartScrollbar\";\nimport type { MapChart } from \"../../charts/map/MapChart\";\nimport type { CurveChart } from \"../../charts/timeline/CurveChart\";\nimport type { Gantt } from \"../../charts/gantt/Gantt\";\nimport type { StockChart } from \"../../charts/stock/StockChart\";\nimport type { Hierarchy } from \"../../charts/hierarchy/Hierarchy\";\nimport type { Legend } from \"../../core/render/Legend\";\nimport type { HeatLegend } from \"../../core/render/HeatLegend\";\nimport type { Axis } from \"../../charts/xy/axes/Axis\";\nimport type { CategoryAxis } from \"../../charts/xy/axes/CategoryAxis\";\n\nimport { Container } from \"../../core/render/Container\";\nimport { DataItem } from \"../../core/render/Component\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { Serializer, ISerializerEvents, ISerializerSettings, ISerializerPrivate } from \"./Serializer\";\n\nimport * as $object from \"../../core/util/Object\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $array from \"../../core/util/Array\";\n\nexport interface IChartSerializerSettings extends ISerializerSettings {\n\n\t/**\n\t * Remove empty objects from the output.\n\t *\n\t * @default true\n\t */\n\tremoveEmptyObjects?: boolean;\n\n\t/**\n\t * Include projection settings in the output.\n\t *\n\t * If enabled, the projection function will be included in the output,\n\t * according to the `functionsAs` setting.\n\t *\n\t * @default false\n\t */\n\tincludeProjection?: boolean;\n\n}\n\nexport interface IChartSerializerPrivate extends ISerializerPrivate {\n}\n\nexport interface IChartSerializerEvents extends ISerializerEvents {\n}\n\n\n/**\n * Serializes whole charts into simple objects or JSON.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/serializing/chart-serializer/} for more info\n * @since 5.15.0\n */\nexport class ChartSerializer extends Serializer {\n\n\tpublic static className: string = \"ChartSerializer\";\n\tpublic static classNames: Array<string> = Serializer.classNames.concat([ChartSerializer.className]);\n\n\tdeclare public _settings: IChartSerializerSettings;\n\tdeclare public _privateSettings: IChartSerializerPrivate;\n\tdeclare public _events: IChartSerializerEvents;\n\n\tprivate _disableDataSerialization: boolean = false;\n\tprivate _globalRefs: Array<any> = [];\n\tprivate _internalRefs: any = {};\n\tprivate _counters: { [index: string]: number } = {};\n\tprivate _lists: { [index: string]: any } = {};\n\tprivate _mainRefs: { [index: string]: Array<any> } = {};\n\n\tprotected _afterNew(): void {\n\t\tsuper._afterNew();\n\t\tthis._setSoft(\"maxDepth\", 10);\n\t\tthis._setSoft(\"removeEmptyObjects\", true);\n\t\tthis._setSoft(\"includeEvents\", true);\n\t\tthis._setSoft(\"includeAdapters\", true);\n\t\tthis._setSoft(\"includeStates\", true);\n\t\tthis._setSoft(\"functionsAs\", \"function\");\n\t\t//this._setSoft(\"includeProperties\", [\"label\"]);\n\t\tthis._setSoft(\"excludeSettings\", [\n\t\t\t\"chart\",\n\t\t\t\"themeTags\",\n\t\t\t\"draw\",\n\t\t\t\"curveFactory\",\n\t\t\t\"tooltipDataItem\",\n\t\t\t\"legendDataItem\",\n\t\t\t\"vcx\",\n\t\t\t\"vcy\",\n\t\t\t\"bounds\",\n\t\t\t\"pointTo\",\n\t\t\t\"tooltipTarget\",\n\t\t\t\"translateX\",\n\t\t\t\"translateY\",\n\t\t\t// Handled directly\n\t\t\t\"heatRules\"\n\t\t]); // \"x\", \"y\"\n\n\t\tthis.adapters.add(\"excludeProperties\", (exclude: Array<string> | undefined) => {\n\t\t\tif (this._disableDataSerialization) {\n\t\t\t\treturn (exclude || []).concat([\"data\"]);\n\t\t\t}\n\t\t\treturn exclude;\n\t\t});\n\n\t\tthis.reset();\n\t}\n\n\tpublic reset(): void {\n\t\tthis._disableDataSerialization = false;\n\t\tthis._globalRefs = [];\n\t\tthis._internalRefs = {};\n\t\tthis._counters = {};\n\t\tthis._lists = {\n\t\t\tdata: {},\n\t\t\taxes: {},\n\t\t\tseries: {},\n\t\t\tsprites: {},\n\t\t\telements: {}\n\t\t};\n\t\tthis._mainRefs = {\n\t\t\tfunctions: [],\n\t\t\tdata: [],\n\t\t\ttemplates: [],\n\t\t\taxes: [],\n\t\t\tseries: [],\n\t\t\taxisRanges: [],\n\t\t\tseriesAxisRanges: []\n\t\t};\n\t}\n\n\t/**\n\t * Serializes target object into a simple object.\n\t *\n\t * @param source Target object\n\t * @return Serialized data\n\t */\n\tpublic serializeAll(source: Container): any {\n\n\t\t// This will go as deep in the structure to find either chart or a series,\n\t\t// then will pass on to specialized serializers\n\n\t\t// Map out the structure\n\t\tthis._examineStructure(source);\n\n\t\t// Kick off serializing\n\t\tconst result = this._serializeEntity(source);\n\n\t\t// Finally, add in global references\n\t\tresult.refs = [];\n\t\t$object.each(this._mainRefs, (_key, value) => {\n\t\t\tif (value.length) {\n\t\t\t\tvalue.forEach((item) => {\n\t\t\t\t\tresult.refs.push(item);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// Cleanup\n\t\tif (this.get(\"removeEmptyObjects\")) {\n\t\t\tthis._pruneEmptyObjects(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _serializeEntity(source: Entity): any {\n\t\t// Initialize the result object\n\t\tlet result: any;\n\n\t\t// Process series differently\n\t\tif (source.isType<Series>(\"Series\") && !this._isLegend(source)) {\n\t\t\tthis._disableDataSerialization = true;\n\t\t\tresult = this.serialize(source, 0, true);\n\t\t\tthis._disableDataSerialization = false;\n\t\t\tthis._processSeries(source, result);\n\t\t\t// const seriesId = this._processSeries(source, result);\n\t\t\t// this._lists.series[seriesId];\n\t\t}\n\t\telse {\n\t\t\tresult = this.serialize(source, 0, true)!;\n\t\t}\n\n\t\t// Only go deeper if it's a plain Container\n\t\tif (source.className === \"Container\") {\n\t\t\tresult.children = [];\n\t\t\t(source as Container).children.each((child: Sprite) => {\n\t\t\t\tif (!this._isLegend(child)) {\n\t\t\t\t\tconst serializedChild = this._serializeEntity(child);\n\t\t\t\t\tif (child.isType<Series>(\"Series\")) {\n\t\t\t\t\t\tresult.children.push(\"#\" + this._getInternalRef(child.uid));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresult.children.push(serializedChild);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Specialized serializers\n\t\tif (source.isType<SerialChart>(\"SerialChart\")) {\n\t\t\tthis._processSerialChart(source, result);\n\t\t}\n\n\t\tif (source.isType<XYChart>(\"XYChart\")) {\n\t\t\tthis._processXYChart(source, result);\n\t\t}\n\n\t\tif (source.isType<MapChart>(\"MapChart\")) {\n\t\t\tthis._processMapChart(source, result);\n\t\t}\n\n\t\tif (source.isType<CurveChart>(\"CurveChart\")) {\n\t\t\tthis._processCurveChart(source, result);\n\t\t}\n\n\t\tif (source.isType<StockChart>(\"StockChart\")) {\n\t\t\tthis._processStockChart(source, result);\n\t\t}\n\n\t\tif (source.isType<Gantt>(\"Gantt\")) {\n\t\t\tthis._processGantt(source, result);\n\t\t}\n\n\t\tif (source.isType<Hierarchy>(\"Hierarchy\")) {\n\t\t\tthis._processHierarchy(source, result);\n\t\t}\n\n\t\t// Process custom children\n\t\tif (source.isType<Container>(\"Container\")) {\n\t\t\tthis._processCustomChildren(source, result);\n\n\t\t\t// Check for custom children in property-linked internal containers\n\t\t\t$object.each(source, (key: string, child: any) => {\n\t\t\t\tif (child instanceof Container && !key.match(/^\\_/)) {\n\t\t\t\t\tthis._maybeInit(result, \"properties\", {})\n\t\t\t\t\tthis._maybeInit(result.properties, key, {})\n\t\t\t\t\tthis._processCustomChildren(child, result.properties[key]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _examineStructure(source: Container) {\n\t\t// Collect serializable custom children\n\t\tsource.children.each((child: Sprite) => {\n\t\t\tthis._lists.elements[child.uid] = child;\n\t\t\tif (child.hasTag(\"serialize\") || this._isLegend(child)) {\n\t\t\t\tthis._lists.sprites[child.uid] = child;\n\t\t\t}\n\n\t\t\tif (child.isType<Container>(\"Container\")) {\n\t\t\t\tthis._examineStructure(child);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _processCustomChildren(source: Container, result: any) {\n\t\tsource.children.each((child: Sprite) => {\n\t\t\tif (this._lists.sprites[child.uid] !== undefined) {\n\t\t\t\tdelete this._lists.sprites[child.uid];\n\t\t\t\tthis._maybeInit(result, \"children\", []);\n\t\t\t\tlet childItem: any;\n\n\t\t\t\t// Additional processing for Legend\n\t\t\t\tif (child.isType<Legend>(\"Legend\")) {\n\t\t\t\t\t// Do not let serializer serialize legend's data\n\t\t\t\t\t// It can contain big objects like Series, we'll build the data array\n\t\t\t\t\t// ourselves\n\t\t\t\t\tthis._disableDataSerialization = true;\n\t\t\t\t\tchildItem = this.serialize(child, 0, false);\n\t\t\t\t\tthis._maybeInit(childItem, \"properties\", {});\n\t\t\t\t\tchildItem.properties.data = [];\n\t\t\t\t\tchild.data.values.forEach((item: any, index: number) => {\n\t\t\t\t\t\tif (item instanceof DataItem) {\n\t\t\t\t\t\t\tconst series = item.component;\n\t\t\t\t\t\t\tchildItem.properties.data[index] = \"#\" + this._getInternalRef(series.uid) + \".dataItems.\" + index;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if ((item as Entity).isType<Series>(\"Series\")) {\n\t\t\t\t\t\t\tchildItem.properties.data[index] = \"#\" + this._getInternalRef(item.uid);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tchildItem.properties.data[index] = item;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tthis._disableDataSerialization = false;\n\n\t\t\t\t\t// Populate templates\n\t\t\t\t\tthis._populateTemplates(child, childItem.properties, [\n\t\t\t\t\t\t\"labels\", \"valueLabels\", \"markers\", \"markerRectangles\", \"itemContainers\"\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchildItem = this.serialize(child, 0, true);\n\t\t\t\t}\n\n\t\t\t\tchildItem.index = child.parent!.children.indexOf(child);\n\t\t\t\tresult.children.push(childItem);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _processSeries(series: Series, result: any): string {\n\t\tconst datahash = this._hashObject(series.data.values);\n\t\tlet dataId: any = this._getInternalRef(datahash);\n\t\tconst seriesId = this._getId(\"series\");\n\t\tthis._lists.series[seriesId] = result;\n\n\t\tthis._saveInternalRef(series.uid, seriesId);\n\t\tif (dataId === undefined) {\n\t\t\tdataId = this._getId(\"data\");\n\t\t\tthis._lists.data[dataId] = this.serialize(series.data.values, 0, true, true);\n\t\t\tthis._saveInternalRef(datahash, dataId);\n\t\t\t//_datas[dataId] = this._lists.data[dataId];\n\t\t\tthis._saveRefId(\"data\", dataId, this._lists.data[dataId]);\n\t\t}\n\t\tthis._maybeInit(this._lists.series[seriesId], \"properties\", {});\n\t\tthis._lists.series[seriesId].properties.data = \"#\" + dataId;\n\n\t\t// Populate templates\n\t\tthis._populateTemplates(series, this._lists.series[seriesId].properties, [\n\t\t\t// XY\n\t\t\t\"strokes\", \"fills\", \"columns\",\n\t\t\t// Percent\n\t\t\t\"slices\", \"labels\", \"ticks\", \"links\",\n\t\t\t// Hierarchy\n\t\t\t\"nodes\", \"circles\", \"outerCircles\",\n\t\t\t// Map\n\t\t\t\"mapPolygons\", \"mapLines\"\n\t\t]);\n\n\t\t// Handle bullets\n\t\tseries.bullets.each((bulletFunction: any) => {\n\t\t\tthis._maybeInit(this._lists.series[seriesId].properties, \"bullets\", []);\n\t\t\tconst sampleDataItem = series.dataItems.length ? series.dataItems[0] : new DataItem(series, {}, {});\n\t\t\tconst bullet = bulletFunction(series.root, series, sampleDataItem);\n\t\t\tconst serializedBullet: any = this.serialize(bullet, 0, true);\n\t\t\tconst bulletSprite = bullet.get(\"sprite\");\n\t\t\tif (bulletSprite) {\n\t\t\t\t// Serialize the sprite (including children)\n\t\t\t\tserializedBullet.settings.sprite = this._serializeEntity(bullet.get(\"sprite\"));\n\t\t\t\tthis._lists.series[seriesId].properties.bullets.push(serializedBullet);\n\n\t\t\t\t// Look for templates\n\t\t\t\tthis._processTemplate(bullet.get(\"sprite\"), serializedBullet.settings.sprite);\n\t\t\t}\n\n\t\t});\n\n\t\t// Handle heat rules\n\t\tconst heatRules = series.get(\"heatRules\");\n\t\tif (heatRules) {\n\n\t\t\tthis._lists.series[seriesId].settings.heatRules = [];\n\t\t\theatRules.forEach((rule: any) => {\n\n\t\t\t\t// Figure out target\n\t\t\t\tlet targetId: any = this._findInternalRef(rule.target);\n\t\t\t\tif (targetId) {\n\t\t\t\t\ttargetId = \"#\" + targetId;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Let's search in series template lists\n\t\t\t\t\t$object.each(series, (key: any, value: any) => {\n\t\t\t\t\t\tif (value instanceof ListTemplate && value.template === rule.target) {\n\t\t\t\t\t\t\tconst templateId = this._getId(\"template\");\n\t\t\t\t\t\t\tconst serializedTemplate = this.serialize(value.template, 0, true);\n\t\t\t\t\t\t\ttargetId = \"#\" + templateId;\n\t\t\t\t\t\t\tresult.properties[key].properties.template = \"#\" + templateId;\n\t\t\t\t\t\t\tthis._saveRefId(\"templates\", templateId, serializedTemplate);\n\t\t\t\t\t\t\tthis._saveInternalRef(templateId, value.template);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (targetId) {\n\t\t\t\t\tconst serializedRule: any = this.serialize(rule, 0, true);\n\t\t\t\t\tserializedRule.target = targetId;\n\t\t\t\t\tserializedRule.__parse = true;\n\t\t\t\t\tthis._lists.series[seriesId].settings.heatRules.push(serializedRule);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._saveRefId(\"series\", seriesId, this._lists.series[seriesId]);\n\t\tthis._processCustomChildren(series, this._lists.series[seriesId]);\n\n\t\treturn seriesId;\n\t}\n\n\tprivate _processTemplate(source: Sprite, result: any): void {\n\t\tif (source.template) {\n\t\t\tconst template = source.template;\n\t\t\tconst templateId = this._getId(\"template\");\n\t\t\tconst serializedTemplate = this.serialize(template, 0, true);\n\t\t\tthis._maybeInit(result, \"properties\", {})\n\t\t\tresult.properties.template = \"#\" + templateId;\n\t\t\tthis._saveRefId(\"templates\", templateId, serializedTemplate);\n\t\t\tthis._saveInternalRef(templateId, template);\n\t\t}\n\n\t\tif (source.isType<Container>(\"Container\")) {\n\t\t\tsource.children.each((child: any, index: number) => {\n\t\t\t\tif (result.children && (result.children.length > index)) {\n\t\t\t\t\tthis._processTemplate(child, result.children[index]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _processSerialChart(source: SerialChart, result: any): void {\n\n\t\t// Process series\n\t\tconst _series: any = [];\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tthis._disableDataSerialization = true;\n\t\t\tconst serializedSeries = this.serialize(series, 0, true);\n\t\t\tthis._disableDataSerialization = false;\n\t\t\tconst seriesId = this._processSeries(series, serializedSeries);\n\t\t\tthis._lists.series[seriesId];\n\t\t\t_series.push(\"#\" + seriesId);\n\t\t});\n\n\t\t// Add series to chart\n\t\tthis._maybeInit(result, \"properties\", {});\n\t\tthis._maybeInit(result.properties, \"series\", []);\n\t\tresult.properties.series = _series;\n\n\t\t// Custom children\n\t\tthis._processCustomChildren(source, result);\n\t}\n\n\tprivate _processXYChart(source: XYChart, result: any) {\n\n\t\tthis._maybeInit(result.properties, \"xAxes\", []);\n\t\tthis._maybeInit(result.properties, \"yAxes\", []);\n\n\t\t// Add axes\n\t\t[\"x\", \"y\"].forEach((axisType: string) => {\n\t\t\t(source as any)[axisType + \"Axes\"].each((axis: Axis<any>, _index: number) => {\n\t\t\t\tconst axisId = this._processAxis(axis, null);\n\t\t\t\tresult.properties[axisType + \"Axes\"].push(\"#\" + axisId);\n\t\t\t});\n\n\t\t});\n\n\t\t// Populate series with axe references\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tconst id = this._getInternalRef(series.uid);\n\t\t\tthis._lists.series[id].settings.xAxis = \"#\" + this._getInternalRef(series.get(\"xAxis\").uid);\n\t\t\tthis._lists.series[id].settings.yAxis = \"#\" + this._getInternalRef(series.get(\"yAxis\").uid);\n\t\t\tthis._lists.series[id].settings.baseAxis = \"#\" + this._getInternalRef(series.get(\"baseAxis\").uid);\n\t\t});\n\n\t\t// Process series axis ranges\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tconst axisRanges = (series as XYSeries).axisRanges.values;\n\t\t\tif (axisRanges.length) {\n\t\t\t\tfor (let i = 0; i < axisRanges.length; i++) {\n\t\t\t\t\tconst rangeId = this._getId(\"seriesAxisRange\");\n\t\t\t\t\tconst range = axisRanges[i];\n\t\t\t\t\tconst axis = range.axisDataItem.component;\n\t\t\t\t\tconst axisId = this._getInternalRef(axis.uid)\n\t\t\t\t\tconst seriesId = this._getInternalRef(series.uid)\n\t\t\t\t\tconst serializedRange: any = {\n\t\t\t\t\t\taxis: \"#\" + axisId,\n\t\t\t\t\t\tseries: \"#\" + seriesId,\n\t\t\t\t\t\tsettings: this.serialize(range.axisDataItem._settings, 0, true),\n\t\t\t\t\t\t__parseLogic: \"axisRange\"\n\t\t\t\t\t};\n\t\t\t\t\t[\"fills\", \"strokes\", \"graphics\"].forEach((key: string) => {\n\t\t\t\t\t\tconst value = (range as any)[key];\n\t\t\t\t\t\tif (value && value instanceof ListTemplate) {\n\t\t\t\t\t\t\tserializedRange[key] = this.serialize(value.template._settings, 0, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tthis._saveRefId(\"seriesAxisRanges\", rangeId, serializedRange);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Handle layout for axis containers\n\t\t[\"leftAxesContainer\", \"rightAxesContainer\"].forEach((key: string) => {\n\t\t\tconst serializedContainer = this.serialize((source as any)[key], 0, true);\n\t\t\tif (serializedContainer) {\n\t\t\t\tthis._stripType(serializedContainer);\n\t\t\t\tthis._maybeInit(result, \"properties\", {});\n\t\t\t\tresult.properties[key] = serializedContainer;\n\t\t\t}\n\t\t});\n\n\t\t// Process cursor\n\t\tconst cursor: any = source.get(\"cursor\");\n\t\tif (cursor) {\n\t\t\t[\"x\", \"y\"].forEach((axisType: string) => {\n\t\t\t\tconst axis = cursor.get(axisType + \"Axis\");\n\t\t\t\tif (axis) {\n\t\t\t\t\tresult.settings.cursor.settings[axisType + \"Axis\"] = \"#\" + this._getInternalRef(axis.uid);\n\t\t\t\t}\n\t\t\t\tthis._maybeInit(result.settings.cursor, \"properties\", {});\n\t\t\t});\n\t\t\tresult.settings.cursor.properties.lineX = this.serialize(cursor.lineX);\n\t\t\tresult.settings.cursor.properties.lineY = this.serialize(cursor.lineY);\n\t\t\tthis._stripType(result.settings.cursor.properties.lineX);\n\t\t\tthis._stripType(result.settings.cursor.properties.lineY);\n\n\t\t\tcursor.get(\"snapToSeries\", []).forEach((series: any, index: number) => {\n\t\t\t\tresult.settings.cursor.settings.snapToSeries[index] = \"#\" + this._getInternalRef(series.uid);\n\t\t\t});\n\t\t}\n\n\t\t// Process the rest of the XY stuff\n\t\tresult.properties.zoomOutButton = this.serialize(source.zoomOutButton, 0, false);\n\t\tthis._stripType(result.properties.zoomOutButton);\n\t\tthis._stripKeys(result.properties.zoomOutButton.settings, [\"background\", \"icon\"])\n\n\t\t// Process the scrollbar\n\t\tconst scrollbarX = source.get(\"scrollbarX\");\n\t\tif (scrollbarX && scrollbarX.isType<XYChartScrollbar>(\"XYChartScrollbar\")) {\n\t\t\tconst serializedScrollbarChart: any = this._serializeEntity(scrollbarX.chart);\n\t\t\tthis._stripType(serializedScrollbarChart);\n\t\t\tthis._maybeInit(result.settings.scrollbarX, \"properties\", {});\n\t\t\tresult.settings.scrollbarX.properties.chart = serializedScrollbarChart;\n\t\t}\n\t}\n\n\tprivate _processAxis(axis: Axis<any>, _result: any, stripType?: boolean): string {\n\t\tconst axisId = this._getId(\"axis\");\n\t\tconst serializedAxis: any = this.serialize(axis, 0, true);\n\t\tthis._saveRefId(\"axes\", axisId, serializedAxis);\n\n\t\t// Renderer\n\t\tthis._maybeInit(serializedAxis.settings, \"renderer\", {});\n\t\tthis._maybeInit(serializedAxis.settings.renderer, \"properties\", {});\n\t\tthis._populateTemplates(axis.get(\"renderer\"), serializedAxis.settings.renderer.properties, [\n\t\t\t\"labels\", \"grid\", \"minorGrid\", \"ticks\"\n\t\t]);\n\n\t\t// Axis syncing\n\t\tconst syncedAxis = (axis as any).get(\"syncWithAxis\");\n\t\tif (syncedAxis) {\n\t\t\tserializedAxis.settings.syncWithAxis = \"#\" + this._getInternalRef(syncedAxis.uid);\n\t\t}\n\n\t\t// Axis header\n\t\tif (axis.axisHeader && axis.axisHeader.children.length) {\n\t\t\tthis._maybeInit(serializedAxis, \"properties\", {});\n\t\t\tserializedAxis.properties.axisHeader = this.serialize(axis.axisHeader, 0, true);\n\t\t\tthis._processCustomChildren(axis.axisHeader, serializedAxis.properties.axisHeader);\n\t\t}\n\n\t\t// Axis bullet\n\t\tconst bulletFunction = axis.get(\"bullet\");\n\t\tif (bulletFunction) {\n\t\t\tconst sampleDataItem = axis.dataItems.length ? axis.dataItems[0] : new DataItem(axis, {}, {});\n\t\t\tconst bullet = bulletFunction(axis.root, axis, sampleDataItem);\n\t\t\tconst serializedBullet: any = this.serialize(bullet, 0, true);\n\t\t\tserializedAxis.properties.bullet = serializedBullet;\n\t\t}\n\n\t\t// Axis ranges\n\t\tconst axisRanges = axis.axisRanges.values;\n\t\tif (axisRanges.length) {\n\t\t\tfor (let i = 0; i < axisRanges.length; i++) {\n\t\t\t\tconst rangeId = this._getId(\"axisRange\");\n\t\t\t\tconst range = axisRanges[i];\n\t\t\t\tconst serializedRange: any = {\n\t\t\t\t\taxis: \"#\" + axisId,\n\t\t\t\t\tsettings: this.serialize(range._settings, 0, true),\n\t\t\t\t\t__parseLogic: \"axisRange\"\n\t\t\t\t};\n\t\t\t\tthis._saveRefId(\"axisRanges\", rangeId, serializedRange);\n\t\t\t}\n\t\t}\n\n\t\t// Process CategoryAxis data\n\t\tif (axis.isType<CategoryAxis<any>>(\"CategoryAxis\")) {\n\t\t\tlet dataid: any = this._getInternalRef(this._hashObject(axis.data.values));\n\t\t\tif (dataid === undefined) {\n\t\t\t\tdataid = this._getId(\"data\");\n\t\t\t\tthis._lists.data[dataid] = this.serialize(axis.data.values, 0, true, true);\n\t\t\t\tthis._saveInternalRef(this._hashObject(axis.data.values), dataid);\n\t\t\t\tthis._saveRefId(\"data\", dataid, this._lists.data[dataid]);\n\t\t\t}\n\t\t\tthis._maybeInit(serializedAxis, \"properties\", {});\n\t\t\tserializedAxis.properties.data = \"#\" + dataid;\n\t\t}\n\t\tthis._saveInternalRef(axis.uid, axisId);\n\n\t\tif (stripType) {\n\t\t\tthis._stripType(serializedAxis);\n\t\t\tthis._stripType(serializedAxis.settings.renderer);\n\t\t}\n\n\t\tconst axisItem: any = {};\n\t\taxisItem[axisId] = serializedAxis;\n\t\tthis._processCustomChildren(axis, axisItem[axisId]);\n\t\tthis._globalRefs.push(axisItem);\n\n\t\treturn axisId;\n\t}\n\n\tprivate _processCurveChart(source: CurveChart, _result: any) {\n\t\t// Curve Chart needs special treament, as it's X axis references Y axis\n\t\t// via `yAxis` of its renderer\n\t\tsource.xAxes.each((axis: Axis<any>) => {\n\t\t\tconst xRenderer = axis.get(\"renderer\");\n\t\t\tconst yRenderer = xRenderer.get(\"yRenderer\");\n\t\t\tif (yRenderer) {\n\t\t\t\t// Add reference\n\t\t\t\tconst xAxisId = this._getInternalRef(axis.uid);\n\t\t\t\tconst yAxisId = this._getInternalRef(yRenderer.axis.uid);\n\t\t\t\tconst serializedXAxis = this._getRef(\"axes\", xAxisId);\n\t\t\t\tserializedXAxis.settings.renderer.settings.yRenderer = \"#\" + yAxisId + \".get('renderer')\";\n\n\t\t\t\tconst serializedYAxis = this._getRef(\"axes\", yAxisId);\n\t\t\t\tdelete serializedYAxis.settings.renderer.settings.xRenderer;\n\n\t\t\t\t// Swap positions of the axes\n\t\t\t\tconst xIndex = this._getRefIndex(\"axes\", xAxisId);\n\t\t\t\tconst yIndex = this._getRefIndex(\"axes\", yAxisId);\n\t\t\t\tif (xIndex < yIndex) {\n\t\t\t\t\t[this._mainRefs.axes[xIndex], this._mainRefs.axes[yIndex]] = [this._mainRefs.axes[yIndex], this._mainRefs.axes[xIndex]];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _processMapChart(source: MapChart, result: any) {\n\t\t// Clean up auto-populated data\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tconst seriesId = this._getInternalRef(series.uid);\n\t\t\tconst serializedSeries = this._lists.series[seriesId];\n\t\t\tlet serializedData = this._getRef(\"data\", serializedSeries.properties.data.substr(1))\n\t\t\t$array.keepIf(serializedData, (item: any) => !item.madeFromGeoData);\n\t\t\t$array.map(serializedData, (item: any) => {\n\t\t\t\tif (item.geometry) {\n\t\t\t\t\t//delete item.geometry;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (serializedData.length === 0) {\n\t\t\t\tdelete serializedSeries.properties.data;\n\t\t\t}\n\n\t\t\t// Clustered bullet\n\t\t\tif (series.get(\"clusteredBullet\")) {\n\t\t\t\tconst bulletFunction = series.get(\"clusteredBullet\");\n\t\t\t\tconst sampleDataItem = series.clusteredDataItems.length ? series.clusteredDataItems[0] : new DataItem(series, {}, {});\n\t\t\t\tconst bullet = bulletFunction(series.root, series, sampleDataItem);\n\t\t\t\tconst serializedBullet: any = this.serialize(bullet, 0, true);\n\t\t\t\tif (bullet.get(\"sprite\")) {\n\t\t\t\t\tserializedBullet.settings.sprite = this._serializeEntity(bullet.get(\"sprite\"));\n\t\t\t\t\tthis._lists.series[seriesId].settings.clusteredBullet = serializedBullet;\n\t\t\t\t\tthis._processTemplate(bullet.get(\"sprite\"), serializedBullet.settings.sprite);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Remove target from ZoomControl\n\t\tif (result.settings.zoomControl && result.settings.zoomControl.settings.target) {\n\t\t\tdelete result.settings.zoomControl.settings.target;\n\t\t\tthis._maybeInit(result.settings.zoomControl, \"properties\", {});\n\t\t\t[\"homeButton\", \"minusButton\", \"plusButton\"].forEach((button) => {\n\t\t\t\tresult.settings.zoomControl.properties[button] = {\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tvisible: (source.get(\"zoomControl\") as any)[button].get(\"visible\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Handle projection setting\n\t\tconst projection = source.get(\"projection\")\n\t\tif (projection && this.get(\"includeProjection\", false)) {\n\t\t\t// @TODO: use references for functions instead\n\t\t\t//result.settings.projection = \"#\" + this._saveFunction(projection);\n\t\t\tconst asString = this.get(\"functionsAs\", \"string\") == \"string\";\n\t\t\tif (asString) {\n\t\t\t\tresult.settings.projection = projection.toString();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tresult.settings.projection = projection;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _processGantt(source: Gantt, result: any) {\n\n\t\tthis._notSupported(source, result);\n\n\t\t/*\n\t\t// Process series and axis data\n\t\tthis._maybeInit(result, \"properties\", {});\n\n\t\t// Process series\n\t\tthis._disableDataSerialization = true;\n\t\tconst serializedSeries = this.serialize(source.series, 0, true);\n\t\tthis._stripType(serializedSeries);\n\t\tresult.properties.series = \"#\" + this._processSeries(source.series, serializedSeries);\n\n\t\t// Process category axis\n\t\tconst serializedYAxis = this.serialize(source.yAxis, 0, true);\n\t\tthis._stripType(serializedYAxis);\n\t\tconst yAxisId = this._processAxis(source.yAxis, serializedYAxis, true);\n\t\tresult.properties.yAxis = \"#\" + yAxisId;\n*/\n\t}\n\n\tprivate _processStockChart(source: StockChart, result: any) {\n\t\tthis._notSupported(source, result);\n\t}\n\n\tprivate _processHierarchy(source: Hierarchy, result: any) {\n\t\tconst selectedDataItem = source.get(\"selectedDataItem\");\n\t\tif (selectedDataItem) {\n\t\t\tconst index = source.dataItems.indexOf(selectedDataItem);\n\t\t\tresult.settings.selectedDataItem = \"@series.dataItems.\" + index;\n\t\t}\n\t}\n\n\tprivate _populateTemplates(source: any, result: any, templateKeys: Array<any>): void {\n\t\ttemplateKeys.forEach((key: string) => {\n\t\t\tif (source[key]) {\n\t\t\t\tthis._maybeInit(result, key, {});\n\t\t\t\tresult[key] = {\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\ttemplate: this.serialize(source[key].template, 0, true)\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis._stripType(result[key].properties.template);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _stripKeys(source: any, keys: Array<string>): void {\n\t\tkeys.forEach((key: string) => {\n\t\t\tif (source[key] !== undefined) {\n\t\t\t\tdelete source[key];\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _stripType(source: any): void {\n\t\tthis._stripKeys(source, [\"type\"]);\n\t}\n\n\tprivate _saveInternalRef(ref: any, value: any): any {\n\t\treturn this._internalRefs[ref] = value;\n\t}\n\n\tprivate _getInternalRef(ref: any): any {\n\t\treturn this._internalRefs[ref];\n\t}\n\n\tprivate _findInternalRef(ref: any): any {\n\t\tlet res: any;\n\t\t$object.eachContinue(this._internalRefs, (key, value) => {\n\t\t\tif (value === ref) {\n\t\t\t\tres = key;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\treturn res;\n\t}\n\n\tprivate _getRef(key: string, id: string): any {\n\t\tlet found: any;\n\t\tthis._mainRefs[key].forEach((value: any) => {\n\t\t\tif (value[id] !== undefined) {\n\t\t\t\tfound = value[id];\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\t\treturn found;\n\t}\n\n\tprivate _getRefIndex(key: string, id: string): number {\n\t\tlet found: number = -1;\n\t\tthis._mainRefs[key].forEach((value: any, index: number) => {\n\t\t\tif (value[id] !== undefined) {\n\t\t\t\tfound = index;\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\t\treturn found;\n\t}\n\n\tprivate _saveRef(key: string, value: any): void {\n\t\tthis._mainRefs[key].push(value);\n\t}\n\n\tprivate _saveRefId(key: string, id: string, value: any): void {\n\t\tconst ref: any = {};\n\t\tref[id] = value;\n\t\tthis._saveRef(key, ref);\n\t}\n\n\t// private _saveFunction(callback: any): string {\n\t// \tconst id = this._getId(\"function\");\n\t// \tthis._saveRefId(\"functions\", id, this.get(\"functionsAs\") == \"string\" ? callback.toString() : callback);\n\t// \treturn id;\n\t// }\n\n\tprivate _hashObject(obj: any) {\n\t\tconst json = JSON.stringify(obj, (_key, value) => {\n\t\t\tif ($type.isObject(value) && value instanceof Entity) {\n\t\t\t\treturn JSON.stringify(Object.keys(value));\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < json.length; i++) {\n\t\t\tconst chr = json.charCodeAt(i);\n\t\t\thash = (hash << 5) - hash + chr;\n\t\t\thash |= 0; // convert to 32-bit int\n\t\t}\n\n\t\treturn \"h\" + (hash >>> 0).toString(16); // unsigned hex\n\t}\n\n\tprivate _maybeInit(source: any, key: string, value: any): void {\n\t\tif (!source[key]) {\n\t\t\tsource[key] = value;\n\t\t}\n\t}\n\n\tprivate _counter(id: string): number {\n\t\tif (this._counters[id] === undefined) {\n\t\t\tthis._counters[id] = 0;\n\t\t}\n\t\telse {\n\t\t\tthis._counters[id]++;\n\t\t}\n\t\treturn this._counters[id];\n\t}\n\n\tprivate _getId(id: string): string {\n\t\treturn id + \"-\" + this._counter(id);\n\t}\n\n\tprivate _pruneEmptyObjects(value: any): boolean {\n\t\t// Non-object primitives → never empty\n\t\tif (value === null || !$type.isObject(value)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Process arrays\n\t\tif ($type.isArray(value)) {\n\t\t\tfor (let i = value.length - 1; i >= 0; i--) {\n\t\t\t\tconst el = value[i];\n\t\t\t\tif (el && $type.isObject(el) && !$type.isArray(el)) {\n\t\t\t\t\tconst empty = this._pruneEmptyObjects(el);\n\t\t\t\t\tif (empty) {\n\t\t\t\t\t\tvalue.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\t// Regular object\n\t\tfor (const key of $object.keys(value)) {\n\t\t\tconst child = value[key];\n\n\t\t\tif (key === \"states\" && $type.isArray(value)) {\n\t\t\t\tdelete value[key];\n\t\t\t}\n\t\t\telse if (child && $type.isObject(child)) {\n\t\t\t\tconst childEmpty = this._pruneEmptyObjects(child);\n\t\t\t\tif (childEmpty) {\n\t\t\t\t\tdelete value[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Object.keys(value).length === 0;\n\t}\n\n\tprivate _isLegend(source: Entity): boolean {\n\t\treturn source.isType<Legend>(\"Legend\") || source.isType<HeatLegend>(\"HeatLegend\");\n\t}\n\n\tprivate _notSupported(_source: Entity, result: any) {\n\t\tthrow new Error(\"Unsupported type for serialization: \" + result.type);\n\t}\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/json/Json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/json/Json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA2pBxD,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACtB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;IAEtB;;;;;;;OAOG;gBACS,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IAQvC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,UAAU,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;IAI1F;;;;;OAKG;IACG,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBzF;;;;;OAKG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMhE"}
|
|
@@ -5,6 +5,7 @@ import { Container } from "../../core/render/Container";
|
|
|
5
5
|
import { Color } from "../../core/util/Color";
|
|
6
6
|
import { Percent } from "../../core/util/Percent";
|
|
7
7
|
import { Template } from "../../core/util/Template";
|
|
8
|
+
import { ListData } from "../../core/util/Data";
|
|
8
9
|
import * as $type from "../../core/util/Type";
|
|
9
10
|
import * as $array from "../../core/util/Array";
|
|
10
11
|
import * as $object from "../../core/util/Object";
|
|
@@ -12,6 +13,9 @@ import classes from "./Classes";
|
|
|
12
13
|
function isObject(value) {
|
|
13
14
|
return $type.isObject(value);
|
|
14
15
|
}
|
|
16
|
+
function isObjectParsed(value) {
|
|
17
|
+
return value instanceof Entity || value instanceof Color || value instanceof Percent || value instanceof Template;
|
|
18
|
+
}
|
|
15
19
|
function lookupRef(refs, name) {
|
|
16
20
|
let i = refs.length;
|
|
17
21
|
while (i--) {
|
|
@@ -72,10 +76,15 @@ function mergeEntity(entity, parsed) {
|
|
|
72
76
|
entity.adapters.add(adapter.key, adapter.callback);
|
|
73
77
|
});
|
|
74
78
|
}
|
|
79
|
+
if (parsed.states) {
|
|
80
|
+
$array.each(parsed.states, (state) => {
|
|
81
|
+
entity.states.create(state.key, state.settings);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
75
84
|
if (entity instanceof Container) {
|
|
76
85
|
if (parsed.children) {
|
|
77
86
|
parsed.children.forEach((child) => {
|
|
78
|
-
if (child.index == null) {
|
|
87
|
+
if (child.index == null || child.index >= entity.children.length) {
|
|
79
88
|
entity.children.push(child.value);
|
|
80
89
|
}
|
|
81
90
|
else {
|
|
@@ -130,7 +139,14 @@ class ParserState {
|
|
|
130
139
|
}
|
|
131
140
|
storeClass(name) {
|
|
132
141
|
return __awaiter(this, void 0, void 0, function* () {
|
|
142
|
+
if (name === "Template") {
|
|
143
|
+
// Do nothing
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
133
146
|
const promise = classes[name];
|
|
147
|
+
if (promise == null) {
|
|
148
|
+
throw new Error("Unknown object type `" + name + "`");
|
|
149
|
+
}
|
|
134
150
|
this._cache[name] = (yield promise());
|
|
135
151
|
});
|
|
136
152
|
}
|
|
@@ -146,30 +162,33 @@ class ParserState {
|
|
|
146
162
|
yield Promise.all($array.map(array, (x) => this.parseAsync(x)));
|
|
147
163
|
});
|
|
148
164
|
}
|
|
149
|
-
|
|
165
|
+
parseAsyncObjectKey(key, value) {
|
|
150
166
|
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
167
|
+
if (key === "type") {
|
|
168
|
+
if ($type.isString(value)) {
|
|
169
|
+
yield this.cacheClass(value);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
yield this.parseAsync(value);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else if (key === "geoJSON" || key === "geometry") {
|
|
176
|
+
// Do nothing
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
162
179
|
yield this.parseAsync(value);
|
|
163
180
|
}
|
|
164
181
|
});
|
|
165
182
|
}
|
|
166
|
-
|
|
183
|
+
parseAsyncObject(object) {
|
|
167
184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
185
|
+
switch (object.type) {
|
|
186
|
+
case "Color":
|
|
187
|
+
case "Percent":
|
|
188
|
+
// Do nothing
|
|
189
|
+
break;
|
|
190
|
+
default:
|
|
191
|
+
yield Promise.all($array.map($object.keys(object), (key) => this.parseAsyncObjectKey(key, object[key])));
|
|
173
192
|
}
|
|
174
193
|
});
|
|
175
194
|
}
|
|
@@ -179,26 +198,10 @@ class ParserState {
|
|
|
179
198
|
yield this.parseAsyncArray(value);
|
|
180
199
|
}
|
|
181
200
|
else if (isObject(value)) {
|
|
182
|
-
if (value
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
yield Promise.all([
|
|
187
|
-
(value.refs ? this.parseAsyncRefs(value.refs) : Promise.resolve(undefined)),
|
|
188
|
-
(value.settings ? this.parseAsyncObject(value.settings) : Promise.resolve(undefined)),
|
|
189
|
-
]);
|
|
190
|
-
}
|
|
191
|
-
else if (value.__parse === true) {
|
|
192
|
-
yield this.parseAsyncObject(value);
|
|
193
|
-
}
|
|
194
|
-
else if (value.__parse !== false) {
|
|
195
|
-
yield Promise.all([
|
|
196
|
-
(value.type ? this.cacheClass(value.type) : Promise.resolve(undefined)),
|
|
197
|
-
(value.refs ? this.parseAsyncRefs(value.refs) : Promise.resolve(undefined)),
|
|
198
|
-
(value.settings ? this.parseAsyncSettings(value.settings) : Promise.resolve(undefined)),
|
|
199
|
-
(value.properties ? this.parseAsyncObject(value.properties) : Promise.resolve(undefined)),
|
|
200
|
-
(value.children ? this.parseAsyncArray(value.children) : Promise.resolve(undefined)),
|
|
201
|
-
]);
|
|
201
|
+
if (!isObjectParsed(value)) {
|
|
202
|
+
if (value.__parse === true || value.__parse !== false) {
|
|
203
|
+
yield this.parseAsyncObject(value);
|
|
204
|
+
}
|
|
202
205
|
}
|
|
203
206
|
}
|
|
204
207
|
});
|
|
@@ -230,6 +233,16 @@ class ParserState {
|
|
|
230
233
|
return root.gridLayout;
|
|
231
234
|
}
|
|
232
235
|
}
|
|
236
|
+
if (key === "clusteredBullet") {
|
|
237
|
+
return (_, series) => {
|
|
238
|
+
const newRefs = refs.concat([{ "@series": series }]);
|
|
239
|
+
return this.parse(root, value, newRefs);
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
if (key === "projection") {
|
|
243
|
+
// @todo: implement
|
|
244
|
+
return value;
|
|
245
|
+
}
|
|
233
246
|
if (key === "geoJSON") {
|
|
234
247
|
return value;
|
|
235
248
|
}
|
|
@@ -245,6 +258,18 @@ class ParserState {
|
|
|
245
258
|
});
|
|
246
259
|
return settings;
|
|
247
260
|
}
|
|
261
|
+
parseState(root, object, refs) {
|
|
262
|
+
return {
|
|
263
|
+
key: object.key,
|
|
264
|
+
settings: this.parseSettings(root, object.settings, refs),
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
parseAdapter(root, object, refs) {
|
|
268
|
+
return {
|
|
269
|
+
key: object.key,
|
|
270
|
+
callback: this.parse(root, object.callback, refs),
|
|
271
|
+
};
|
|
272
|
+
}
|
|
248
273
|
parseProperties(root, object, refs) {
|
|
249
274
|
return $array.map($object.keys(object), (key) => {
|
|
250
275
|
const rawValue = object[key];
|
|
@@ -256,9 +281,14 @@ class ParserState {
|
|
|
256
281
|
if (parsed.isValue) {
|
|
257
282
|
// Merge Array into List
|
|
258
283
|
if ($type.isArray(parsed.value)) {
|
|
259
|
-
|
|
260
|
-
old.
|
|
261
|
-
}
|
|
284
|
+
if (old instanceof ListData) {
|
|
285
|
+
old.setAll(parsed.value);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
$array.each(parsed.value, (value) => {
|
|
289
|
+
old.push(value);
|
|
290
|
+
});
|
|
291
|
+
}
|
|
262
292
|
}
|
|
263
293
|
else {
|
|
264
294
|
entity[key] = parsed.value;
|
|
@@ -299,16 +329,65 @@ class ParserState {
|
|
|
299
329
|
});
|
|
300
330
|
});
|
|
301
331
|
}
|
|
332
|
+
else if (key === "bullet") {
|
|
333
|
+
entity.set("bullet", (_, axis) => {
|
|
334
|
+
const newRefs = refs.concat([{ "@axis": axis }]);
|
|
335
|
+
return this.parse(root, rawValue, newRefs);
|
|
336
|
+
});
|
|
337
|
+
}
|
|
302
338
|
else {
|
|
303
339
|
run();
|
|
304
340
|
}
|
|
305
341
|
};
|
|
306
342
|
});
|
|
307
343
|
}
|
|
344
|
+
parseAxisRange(root, value, refs) {
|
|
345
|
+
const settings = this.parseSettings(root, value.settings, refs);
|
|
346
|
+
return {
|
|
347
|
+
isValue: false,
|
|
348
|
+
type: undefined,
|
|
349
|
+
construct: undefined,
|
|
350
|
+
settings,
|
|
351
|
+
adapters: undefined,
|
|
352
|
+
states: undefined,
|
|
353
|
+
children: undefined,
|
|
354
|
+
properties: undefined,
|
|
355
|
+
index: undefined,
|
|
356
|
+
value,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
308
359
|
parseRefsObject(root, object, refs) {
|
|
309
360
|
const newRefs = {};
|
|
310
|
-
$
|
|
311
|
-
|
|
361
|
+
$object.each(object, (key, value) => {
|
|
362
|
+
if (value.__parseLogic == "axisRange" || value.__parseLogic == "seriesAxisRange") {
|
|
363
|
+
// Parse axis range
|
|
364
|
+
const parsed = this.parseAxisRange(root, value, refs);
|
|
365
|
+
const axis = lookupRef(refs, value.axis);
|
|
366
|
+
const axisDataItem = axis.makeDataItem({});
|
|
367
|
+
// Apply settings to data item
|
|
368
|
+
mergeExisting(axisDataItem, parsed);
|
|
369
|
+
let seriesRange;
|
|
370
|
+
const series = value.series ? lookupRef(refs, value.series) : undefined;
|
|
371
|
+
if (series) {
|
|
372
|
+
seriesRange = series.createAxisRange(axisDataItem);
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
axis.createAxisRange(axisDataItem);
|
|
376
|
+
}
|
|
377
|
+
// Set series range settings
|
|
378
|
+
if (seriesRange) {
|
|
379
|
+
["fills", "strokes", "graphics"].forEach((targetKey) => {
|
|
380
|
+
if (seriesRange[targetKey] !== undefined && value[targetKey] !== undefined) {
|
|
381
|
+
value[targetKey].__parse = true;
|
|
382
|
+
const parsedSetting = this.parse(root, value[targetKey], refs);
|
|
383
|
+
seriesRange[targetKey].template.setAll(parsedSetting);
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
newRefs["#" + key] = this.parse(root, value, refs);
|
|
390
|
+
}
|
|
312
391
|
});
|
|
313
392
|
return newRefs;
|
|
314
393
|
}
|
|
@@ -354,19 +433,45 @@ class ParserState {
|
|
|
354
433
|
const settings = (value.settings ? this.parseSettings(root, value.settings, refs) : undefined);
|
|
355
434
|
const properties = (value.properties ? this.parseProperties(root, value.properties, refs) : undefined);
|
|
356
435
|
const children = (value.children ? this.parseChildren(root, value.children, refs) : undefined);
|
|
436
|
+
const states = (value.states ? $array.map(value.states, (value) => this.parseState(root, value, refs)) : undefined);
|
|
437
|
+
const adapters = (value.adapters ? $array.map(value.adapters, (value) => this.parseAdapter(root, value, refs)) : undefined);
|
|
357
438
|
const index = (value.index == null ? undefined : value.index);
|
|
358
439
|
return {
|
|
359
440
|
isValue: false,
|
|
360
441
|
type: value.type,
|
|
361
442
|
construct,
|
|
362
443
|
settings,
|
|
363
|
-
adapters
|
|
444
|
+
adapters,
|
|
445
|
+
states,
|
|
364
446
|
children,
|
|
365
447
|
properties,
|
|
366
448
|
index,
|
|
367
449
|
value,
|
|
368
450
|
};
|
|
369
451
|
}
|
|
452
|
+
parseTemplate(root, value, refs) {
|
|
453
|
+
if (value.refs) {
|
|
454
|
+
refs = this.parseRefs(root, value.refs, refs);
|
|
455
|
+
}
|
|
456
|
+
const settings = (value.settings ? this.parseSettings(root, value.settings, refs) : {});
|
|
457
|
+
const template = Template.new(settings);
|
|
458
|
+
const states = (value.states ? $array.map(value.states, (value) => this.parseState(root, value, refs)) : undefined);
|
|
459
|
+
const adapters = (value.adapters ? $array.map(value.adapters, (value) => this.parseAdapter(root, value, refs)) : undefined);
|
|
460
|
+
if (adapters) {
|
|
461
|
+
$array.each(adapters, (adapter) => {
|
|
462
|
+
template.adapters.add(adapter.key, adapter.callback);
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
if (states) {
|
|
466
|
+
$array.each(states, (state) => {
|
|
467
|
+
template.states.create(state.key, state.settings);
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
return {
|
|
471
|
+
isValue: true,
|
|
472
|
+
value: template,
|
|
473
|
+
};
|
|
474
|
+
}
|
|
370
475
|
parseValue(root, value, refs) {
|
|
371
476
|
if (value instanceof Entity) {
|
|
372
477
|
return { isValue: true, value: value };
|
|
@@ -378,7 +483,13 @@ class ParserState {
|
|
|
378
483
|
};
|
|
379
484
|
}
|
|
380
485
|
else if (isObject(value)) {
|
|
381
|
-
if (value
|
|
486
|
+
if (isObjectParsed(value)) {
|
|
487
|
+
return {
|
|
488
|
+
isValue: true,
|
|
489
|
+
value,
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
else if (value.type === "Color") {
|
|
382
493
|
return {
|
|
383
494
|
isValue: true,
|
|
384
495
|
value: Color.fromAny(value.value),
|
|
@@ -391,14 +502,7 @@ class ParserState {
|
|
|
391
502
|
};
|
|
392
503
|
}
|
|
393
504
|
else if (value.type === "Template") {
|
|
394
|
-
|
|
395
|
-
refs = this.parseRefs(root, value.refs, refs);
|
|
396
|
-
}
|
|
397
|
-
const settings = (value.settings ? this.parseSettings(root, value.settings, refs) : {});
|
|
398
|
-
return {
|
|
399
|
-
isValue: true,
|
|
400
|
-
value: Template.new(settings),
|
|
401
|
-
};
|
|
505
|
+
return this.parseTemplate(root, value, refs);
|
|
402
506
|
}
|
|
403
507
|
else if (value.__parse === true) {
|
|
404
508
|
return {
|