@deephaven/chart 0.20.1-beta.5 → 0.21.1-beta.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.
@@ -20,6 +20,9 @@ export interface SeriesData {
20
20
  xLow?: number;
21
21
  xHigh?: number;
22
22
  }
23
+ export declare type RangeParser = (range: Range) => unknown[];
24
+ export declare type AxisRangeParser = (axis: Axis) => RangeParser;
25
+ export declare type ChartAxisRangeParser = (chart: Chart) => AxisRangeParser;
23
26
  declare type LayoutAxisKey = 'xaxis' | 'xaxis2' | 'xaxis3' | 'xaxis4' | 'xaxis5' | 'xaxis6' | 'xaxis7' | 'xaxis8' | 'xaxis9' | 'yaxis' | 'yaxis2' | 'yaxis3' | 'yaxis4' | 'yaxis5' | 'yaxis6' | 'yaxis7' | 'yaxis8' | 'yaxis9';
24
27
  export interface TreeMapData extends PlotData {
25
28
  tiling: {
@@ -35,6 +38,12 @@ interface Rangebreaks {
35
38
  pattern?: 'day of week' | 'hour' | '';
36
39
  values?: string[];
37
40
  }
41
+ export declare type ChartBounds = {
42
+ left: number;
43
+ right: number;
44
+ top: number;
45
+ bottom: number;
46
+ };
38
47
  export declare type AxisTypeMap = Map<AxisType, Axis[]>;
39
48
  declare type AxisPositionMap = Map<AxisPosition, Axis[]>;
40
49
  declare class ChartUtils {
@@ -177,6 +186,11 @@ declare class ChartUtils {
177
186
  * @param axisPosition The Iris AxisPosition of the axis
178
187
  */
179
188
  static getAxisSide(axisPosition: AxisPosition): LayoutAxis['side'] | undefined;
189
+ /**
190
+ * Get all axes for a given `Figure`. Iterates through all charts axes and concatenates them.
191
+ * @param figure Figure to get all axes for
192
+ */
193
+ static getAllAxes(figure: Figure): Axis[];
180
194
  /**
181
195
  * Retrieve the chart that contains the passed in series from the figure
182
196
  * @param figure The figure to retrieve the chart from
@@ -189,18 +203,48 @@ declare class ChartUtils {
189
203
  * @returns An object mapping the axis name to it's range
190
204
  */
191
205
  static getLayoutRanges(layout: Layout): Record<string, Range[]>;
206
+ /**
207
+ * Update the layout with all the axes information for the provided figure
208
+ * @param figure Figure to update the axes for
209
+ * @param layoutParam Layout object to update in place
210
+ * @param chartAxisRangeParser Function to retrieve the axis range parser
211
+ * @param plotWidth Width of the plot in pixels
212
+ * @param plotHeight Height of the plot in pixels
213
+ * @param theme Theme used for displaying the plot
214
+ */
215
+ static updateFigureAxes(layoutParam: Partial<Layout>, figure: Figure, chartAxisRangeParser?: ChartAxisRangeParser, plotWidth?: number, plotHeight?: number, theme?: Readonly<{
216
+ paper_bgcolor: string;
217
+ plot_bgcolor: string;
218
+ title_color: string;
219
+ colorway: string;
220
+ gridcolor: string;
221
+ linecolor: string;
222
+ zerolinecolor: string;
223
+ activecolor: string;
224
+ rangebgcolor: string;
225
+ area_color: string;
226
+ trend_color: string;
227
+ line_color: string;
228
+ error_band_line_color: string;
229
+ error_band_fill_color: string;
230
+ ohlc_increasing: string;
231
+ ohlc_decreasing: string;
232
+ }>): void;
233
+ static getChartBounds(figure: Figure, chart: Chart, plotWidth?: number, plotHeight?: number): ChartBounds;
192
234
  /**
193
235
  * Updates the axes positions and sizes in the layout object provided.
194
236
  * If the axis did not exist in the layout previously, it is created and added.
195
237
  * Any axis that no longer exists in axes is removed.
196
238
  * With Downsampling enabled, will also update the range on the axis itself as appropriate
197
239
  * @param layoutParam The layout object to update
198
- * @param axes The axes to update the layout with
240
+ * @param chartAxes The chart axes to update the layout with
241
+ * @param figureAxes All figure axes to update the layout with
199
242
  * @param plotWidth The width of the plot to calculate the axis sizes for
200
243
  * @param plotHeight The height of the plot to calculate the axis sizes for
201
- * @param getRangeParser A function to retrieve the range parser for a given axis
244
+ * @param bounds The bounds for this set of axes
245
+ * @param axisRangeParser A function to retrieve the range parser for a given axis
202
246
  */
203
- static updateLayoutAxes(layoutParam: Partial<Layout>, axes: Axis[], plotWidth?: number, plotHeight?: number, getRangeParser?: ((axis: Axis) => (range: Range) => unknown[]) | null, theme?: Readonly<{
247
+ static updateLayoutAxes(layoutParam: Partial<Layout>, chartAxes: Axis[], figureAxes: Axis[], plotWidth?: number, plotHeight?: number, bounds?: ChartBounds, axisRangeParser?: AxisRangeParser, theme?: Readonly<{
204
248
  paper_bgcolor: string;
205
249
  plot_bgcolor: string;
206
250
  title_color: string;
@@ -218,6 +262,12 @@ declare class ChartUtils {
218
262
  ohlc_increasing: string;
219
263
  ohlc_decreasing: string;
220
264
  }>): void;
265
+ /**
266
+ * Remove any axes from the layout param that no longer belong to any series
267
+ * @param layoutParam Layout object to remove stale axes from
268
+ * @param axes All axes in the figure
269
+ */
270
+ static removeStaleAxes(layoutParam: Partial<Layout>, axes: Axis[]): void;
221
271
  static getAxisLayoutProperty(axisProperty: 'x' | 'y', axisIndex: number): LayoutAxisKey;
222
272
  /**
223
273
  * Updates the layout axis object in place
@@ -1 +1 @@
1
- {"version":3,"file":"ChartUtils.d.ts","sourceRoot":"","sources":["../src/ChartUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartUtils.d.ts","sourceRoot":"","sources":["../src/ChartUtils.ts"],"names":[],"mappings":"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"}
@@ -601,16 +601,17 @@ class ChartUtils {
601
601
  tickformat: null,
602
602
  ticksuffix: null
603
603
  };
604
+ var allAxes = ChartUtils.getAllAxes(figure);
605
+ var axisTypeMap = ChartUtils.groupArray(allAxes, 'type');
604
606
  var {
605
607
  charts
606
608
  } = figure;
607
609
 
608
610
  for (var i = 0; i < charts.length; i += 1) {
609
- var chart = charts[i];
610
- var axisTypeMap = ChartUtils.groupArray(chart.axes, 'type');
611
+ var _chart = charts[i];
611
612
 
612
- for (var j = 0; j < chart.series.length; j += 1) {
613
- var series = chart.series[j];
613
+ for (var j = 0; j < _chart.series.length; j += 1) {
614
+ var series = _chart.series[j];
614
615
  var {
615
616
  sources
616
617
  } = series;
@@ -684,7 +685,7 @@ class ChartUtils {
684
685
  })();
685
686
  }
686
687
 
687
- if (axisFormats.size === chart.axes.length) {
688
+ if (axisFormats.size === _chart.axes.length) {
688
689
  return axisFormats;
689
690
  }
690
691
  }
@@ -750,6 +751,15 @@ class ChartUtils {
750
751
  return undefined;
751
752
  }
752
753
  }
754
+ /**
755
+ * Get all axes for a given `Figure`. Iterates through all charts axes and concatenates them.
756
+ * @param figure Figure to get all axes for
757
+ */
758
+
759
+
760
+ static getAllAxes(figure) {
761
+ return figure.charts.reduce((axes, chart) => [...axes, ...chart.axes], []);
762
+ }
753
763
  /**
754
764
  * Retrieve the chart that contains the passed in series from the figure
755
765
  * @param figure The figure to retrieve the chart from
@@ -763,11 +773,11 @@ class ChartUtils {
763
773
  } = figure;
764
774
 
765
775
  for (var i = 0; i < charts.length; i += 1) {
766
- var chart = charts[i];
776
+ var _chart2 = charts[i];
767
777
 
768
- for (var j = 0; j < chart.series.length; j += 1) {
769
- if (series === chart.series[j]) {
770
- return chart;
778
+ for (var j = 0; j < _chart2.series.length; j += 1) {
779
+ if (series === _chart2.series[j]) {
780
+ return _chart2;
771
781
  }
772
782
  }
773
783
  }
@@ -798,47 +808,108 @@ class ChartUtils {
798
808
  return ranges;
799
809
  }
800
810
  /**
801
- * Updates the axes positions and sizes in the layout object provided.
802
- * If the axis did not exist in the layout previously, it is created and added.
803
- * Any axis that no longer exists in axes is removed.
804
- * With Downsampling enabled, will also update the range on the axis itself as appropriate
805
- * @param layoutParam The layout object to update
806
- * @param axes The axes to update the layout with
807
- * @param plotWidth The width of the plot to calculate the axis sizes for
808
- * @param plotHeight The height of the plot to calculate the axis sizes for
809
- * @param getRangeParser A function to retrieve the range parser for a given axis
811
+ * Update the layout with all the axes information for the provided figure
812
+ * @param figure Figure to update the axes for
813
+ * @param layoutParam Layout object to update in place
814
+ * @param chartAxisRangeParser Function to retrieve the axis range parser
815
+ * @param plotWidth Width of the plot in pixels
816
+ * @param plotHeight Height of the plot in pixels
817
+ * @param theme Theme used for displaying the plot
810
818
  */
811
819
 
812
820
 
813
- static updateLayoutAxes(layoutParam, axes) {
821
+ static updateFigureAxes(layoutParam, figure, chartAxisRangeParser) {
822
+ var plotWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
823
+ var plotHeight = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
824
+ var theme = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : ChartTheme;
825
+ var layout = layoutParam;
826
+ var figureAxes = ChartUtils.getAllAxes(figure);
827
+
828
+ for (var i = 0; i < figure.charts.length; i += 1) {
829
+ var _chart3 = figure.charts[i];
830
+ var axisRangeParser = chartAxisRangeParser === null || chartAxisRangeParser === void 0 ? void 0 : chartAxisRangeParser(_chart3);
831
+ var bounds = ChartUtils.getChartBounds(figure, _chart3, plotWidth, plotHeight);
832
+ ChartUtils.updateLayoutAxes(layout, _chart3.axes, figureAxes, plotWidth, plotHeight, bounds, axisRangeParser, theme);
833
+ }
834
+
835
+ ChartUtils.removeStaleAxes(layout, figureAxes);
836
+ }
837
+
838
+ static getChartBounds(figure, chart) {
839
+ var _axisPositionMap$get;
840
+
814
841
  var plotWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
815
842
  var plotHeight = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
816
- var getRangeParser = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
817
- var theme = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : ChartTheme;
818
- var xAxisSize = plotWidth > 0 ? Math.max(ChartUtils.MIN_AXIS_SIZE, Math.min(ChartUtils.AXIS_SIZE_PX / plotHeight, ChartUtils.MAX_AXIS_SIZE)) : ChartUtils.DEFAULT_AXIS_SIZE;
819
- var yAxisSize = plotHeight > 0 ? Math.max(ChartUtils.MIN_AXIS_SIZE, Math.min(ChartUtils.AXIS_SIZE_PX / plotWidth, ChartUtils.MAX_AXIS_SIZE)) : ChartUtils.DEFAULT_AXIS_SIZE; // Adjust the bounds based on where the legend is
843
+ var {
844
+ cols,
845
+ rows
846
+ } = figure;
847
+ var {
848
+ column,
849
+ colspan,
850
+ row,
851
+ rowspan
852
+ } = chart;
853
+ var endColumn = column + colspan;
854
+ var endRow = row + rowspan;
855
+ var columnSize = 1 / cols;
856
+ var rowSize = 1 / rows;
857
+ var xMarginSize = ChartUtils.AXIS_SIZE_PX / plotWidth;
858
+ var yMarginSize = ChartUtils.AXIS_SIZE_PX / plotHeight;
859
+ var bounds = {
860
+ left: column * columnSize + (column > 0 ? xMarginSize / 2 : 0),
861
+ bottom: row * rowSize + (row > 0 ? yMarginSize / 2 : 0),
862
+ top: endRow * rowSize - (endRow < rows ? yMarginSize / 2 : 0),
863
+ right: endColumn * columnSize - (endColumn < cols ? xMarginSize / 2 : 0)
864
+ }; // Adjust the bounds based on where the legend is
820
865
  // For now, always assume the legend is shown on the right
821
866
 
822
- var bounds = {
823
- left: 0,
824
- bottom: 0,
825
- top: 1,
826
- right: 1
827
- };
828
- var axisPositionMap = ChartUtils.groupArray(axes, 'position');
829
- var rightAxes = axisPositionMap.get(dh.plot.AxisPosition.RIGHT) || [];
867
+ var axisPositionMap = ChartUtils.groupArray(chart.axes, 'position');
868
+ var rightAxes = (_axisPositionMap$get = axisPositionMap.get(dh.plot.AxisPosition.RIGHT)) !== null && _axisPositionMap$get !== void 0 ? _axisPositionMap$get : [];
830
869
 
831
870
  if (rightAxes.length > 0) {
832
871
  if (plotWidth > 0) {
833
- bounds.right = 1 - Math.max(0, Math.min(ChartUtils.LEGEND_WIDTH_PX / plotWidth, ChartUtils.MAX_LEGEND_SIZE));
872
+ bounds.right -= (bounds.right - bounds.left) * Math.max(0, Math.min(ChartUtils.LEGEND_WIDTH_PX / plotWidth, ChartUtils.MAX_LEGEND_SIZE));
834
873
  } else {
835
- bounds.right = 1 - ChartUtils.DEFAULT_AXIS_SIZE;
874
+ bounds.right -= (bounds.right - bounds.left) * ChartUtils.DEFAULT_AXIS_SIZE;
836
875
  }
837
876
  }
838
877
 
878
+ return bounds;
879
+ }
880
+ /**
881
+ * Updates the axes positions and sizes in the layout object provided.
882
+ * If the axis did not exist in the layout previously, it is created and added.
883
+ * Any axis that no longer exists in axes is removed.
884
+ * With Downsampling enabled, will also update the range on the axis itself as appropriate
885
+ * @param layoutParam The layout object to update
886
+ * @param chartAxes The chart axes to update the layout with
887
+ * @param figureAxes All figure axes to update the layout with
888
+ * @param plotWidth The width of the plot to calculate the axis sizes for
889
+ * @param plotHeight The height of the plot to calculate the axis sizes for
890
+ * @param bounds The bounds for this set of axes
891
+ * @param axisRangeParser A function to retrieve the range parser for a given axis
892
+ */
893
+
894
+
895
+ static updateLayoutAxes(layoutParam, chartAxes, figureAxes) {
896
+ var plotWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
897
+ var plotHeight = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
898
+ var bounds = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
899
+ left: 0,
900
+ top: 0,
901
+ right: 1,
902
+ bottom: 1
903
+ };
904
+ var axisRangeParser = arguments.length > 6 ? arguments[6] : undefined;
905
+ var theme = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : ChartTheme;
906
+ var xAxisSize = plotWidth > 0 ? Math.max(ChartUtils.MIN_AXIS_SIZE, Math.min(ChartUtils.AXIS_SIZE_PX / plotHeight, ChartUtils.MAX_AXIS_SIZE)) : ChartUtils.DEFAULT_AXIS_SIZE;
907
+ var yAxisSize = plotHeight > 0 ? Math.max(ChartUtils.MIN_AXIS_SIZE, Math.min(ChartUtils.AXIS_SIZE_PX / plotWidth, ChartUtils.MAX_AXIS_SIZE)) : ChartUtils.DEFAULT_AXIS_SIZE;
839
908
  var layout = layoutParam;
840
- var axisTypeMap = ChartUtils.groupArray(axes, 'type');
909
+ var axisPositionMap = ChartUtils.groupArray(chartAxes, 'position');
910
+ var axisTypeMap = ChartUtils.groupArray(chartAxes, 'type');
841
911
  var axisTypes = [...axisTypeMap.keys()];
912
+ var figureAxisTypeMap = ChartUtils.groupArray(figureAxes, 'type');
842
913
 
843
914
  for (var j = 0; j < axisTypes.length; j += 1) {
844
915
  var axisType = axisTypes[j];
@@ -846,31 +917,32 @@ class ChartUtils {
846
917
 
847
918
  if (axisProperty != null) {
848
919
  var typeAxes = axisTypeMap.get(axisType);
920
+ var figureTypeAxes = figureAxisTypeMap.get(axisType);
849
921
  var isYAxis = axisType === dh.plot.AxisType.Y;
850
922
  var plotSize = isYAxis ? plotHeight : plotWidth;
851
923
  assertNotNull(typeAxes);
852
- var axisIndex = 0;
853
-
854
- for (axisIndex = 0; axisIndex < typeAxes.length; axisIndex += 1) {
855
- var _axis3 = typeAxes[axisIndex];
924
+ assertNotNull(figureTypeAxes);
856
925
 
857
- var _axisLayoutProperty = ChartUtils.getAxisLayoutProperty(axisProperty, axisIndex);
926
+ for (var chartAxisIndex = 0; chartAxisIndex < typeAxes.length; chartAxisIndex += 1) {
927
+ var _axis3 = typeAxes[chartAxisIndex];
928
+ var figureAxisIndex = figureTypeAxes.indexOf(_axis3);
929
+ var axisLayoutProperty = ChartUtils.getAxisLayoutProperty(axisProperty, figureAxisIndex);
858
930
 
859
- if (layout[_axisLayoutProperty] == null) {
860
- layout[_axisLayoutProperty] = ChartUtils.makeLayoutAxis(axisType, theme);
931
+ if (layout[axisLayoutProperty] == null) {
932
+ layout[axisLayoutProperty] = ChartUtils.makeLayoutAxis(axisType, theme);
861
933
  }
862
934
 
863
- var layoutAxis = layout[_axisLayoutProperty];
935
+ var layoutAxis = layout[axisLayoutProperty];
864
936
 
865
937
  if (layoutAxis != null) {
866
- ChartUtils.updateLayoutAxis(layoutAxis, _axis3, axisIndex, axisPositionMap, xAxisSize, yAxisSize, bounds);
938
+ ChartUtils.updateLayoutAxis(layoutAxis, _axis3, chartAxisIndex, axisPositionMap, xAxisSize, yAxisSize, bounds);
867
939
  var {
868
940
  range: _range,
869
941
  autorange
870
942
  } = layoutAxis;
871
943
 
872
- if (getRangeParser != null && _range !== undefined && (autorange === undefined || autorange === false)) {
873
- var rangeParser = getRangeParser(_axis3);
944
+ if (axisRangeParser != null && _range !== undefined && (autorange === undefined || autorange === false)) {
945
+ var rangeParser = axisRangeParser(_axis3);
874
946
  var [rangeStart, rangeEnd] = rangeParser(_range);
875
947
  log.debug('Setting downsample range', plotSize, rangeStart, rangeEnd);
876
948
 
@@ -880,7 +952,30 @@ class ChartUtils {
880
952
  }
881
953
  }
882
954
  }
955
+ }
956
+ }
957
+ }
958
+ /**
959
+ * Remove any axes from the layout param that no longer belong to any series
960
+ * @param layoutParam Layout object to remove stale axes from
961
+ * @param axes All axes in the figure
962
+ */
883
963
 
964
+
965
+ static removeStaleAxes(layoutParam, axes) {
966
+ var layout = layoutParam;
967
+ var figureAxisTypeMap = ChartUtils.groupArray(axes, 'type');
968
+ var figureAxisTypes = [...figureAxisTypeMap.keys()];
969
+
970
+ for (var i = 0; i < figureAxisTypes.length; i += 1) {
971
+ var axisType = figureAxisTypes[i];
972
+ var typeAxes = figureAxisTypeMap.get(axisType);
973
+ assertNotNull(typeAxes);
974
+ var axisIndex = typeAxes.length; // Delete any axes that may no longer exist
975
+
976
+ var axisProperty = ChartUtils.getAxisPropertyName(axisType);
977
+
978
+ if (axisProperty != null) {
884
979
  var axisLayoutProperty = ChartUtils.getAxisLayoutProperty(axisProperty, axisIndex);
885
980
 
886
981
  while (layout[axisLayoutProperty] != null) {
@@ -932,10 +1027,10 @@ class ChartUtils {
932
1027
  layoutAxis.side = ChartUtils.getAxisSide(axis.position);
933
1028
 
934
1029
  if (axisIndex > 0) {
935
- var _ChartUtils$getAxisPr, _axisPositionMap$get;
1030
+ var _ChartUtils$getAxisPr, _axisPositionMap$get2;
936
1031
 
937
1032
  layoutAxis.overlaying = (_ChartUtils$getAxisPr = ChartUtils.getAxisPropertyName(axis.type)) !== null && _ChartUtils$getAxisPr !== void 0 ? _ChartUtils$getAxisPr : undefined;
938
- var positionAxes = (_axisPositionMap$get = axisPositionMap.get(axis.position)) !== null && _axisPositionMap$get !== void 0 ? _axisPositionMap$get : [];
1033
+ var positionAxes = (_axisPositionMap$get2 = axisPositionMap.get(axis.position)) !== null && _axisPositionMap$get2 !== void 0 ? _axisPositionMap$get2 : [];
939
1034
  var sideIndex = positionAxes.indexOf(axis);
940
1035
 
941
1036
  if (sideIndex > 0) {