@splunk/visualizations 28.4.0 → 28.5.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 (160) hide show
  1. package/Area.config.js +28 -7
  2. package/Area.config.js.map +2 -2
  3. package/Area.js +106 -39
  4. package/Area.js.map +2 -2
  5. package/Bar.config.js +28 -7
  6. package/Bar.config.js.map +2 -2
  7. package/Bar.js +106 -39
  8. package/Bar.js.map +2 -2
  9. package/Bubble.config.js +4 -4
  10. package/Bubble.config.js.map +2 -2
  11. package/Bubble.js +78 -30
  12. package/Bubble.js.map +2 -2
  13. package/CHANGELOG.external.md +89 -0
  14. package/ChoroplethSvg.js +74 -26
  15. package/ChoroplethSvg.js.map +2 -2
  16. package/Column.config.js +28 -7
  17. package/Column.config.js.map +2 -2
  18. package/Column.js +106 -39
  19. package/Column.js.map +2 -2
  20. package/Ellipse/config.d.ts.map +1 -1
  21. package/Ellipse.config.js +14 -5
  22. package/Ellipse.config.js.map +4 -4
  23. package/Ellipse.js +130 -73
  24. package/Ellipse.js.map +4 -4
  25. package/Events.js +74 -26
  26. package/Events.js.map +2 -2
  27. package/FillerGauge.js +234 -47
  28. package/FillerGauge.js.map +2 -2
  29. package/Image.js +74 -26
  30. package/Image.js.map +2 -2
  31. package/Line/lineUtils.d.ts.map +1 -1
  32. package/Line/mockdata/LineData.d.ts +95 -0
  33. package/Line/mockdata/LineData.d.ts.map +1 -1
  34. package/Line.config.js +28 -7
  35. package/Line.config.js.map +2 -2
  36. package/Line.js +122 -41
  37. package/Line.js.map +2 -2
  38. package/LinkGraph.js +74 -26
  39. package/LinkGraph.js.map +2 -2
  40. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  41. package/Map/PureMap/ClusterLayer.d.ts.map +1 -1
  42. package/Map/PureMap/MapUtils.d.ts +2 -2
  43. package/Map/PureMap/MapUtils.d.ts.map +1 -1
  44. package/Map/PureMap/PureMap.d.ts.map +1 -1
  45. package/Map.js +111 -37
  46. package/Map.js.map +2 -2
  47. package/Markdown/config.d.ts.map +1 -1
  48. package/Markdown.config.js +14 -5
  49. package/Markdown.config.js.map +4 -4
  50. package/Markdown.js +91 -34
  51. package/Markdown.js.map +4 -4
  52. package/MarkerGauge.js +243 -56
  53. package/MarkerGauge.js.map +4 -4
  54. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -1
  55. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -1
  56. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts.map +1 -1
  57. package/NetworkGraph/PureNetworkGraph/utils/dragUtils.d.ts +78 -0
  58. package/NetworkGraph/PureNetworkGraph/utils/dragUtils.d.ts.map +1 -0
  59. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +1 -2
  60. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  61. package/NetworkGraph.config.js.map +2 -2
  62. package/NetworkGraph.js +365 -105
  63. package/NetworkGraph.js.map +4 -4
  64. package/PERFORMANCE.md +23 -0
  65. package/ParallelCoordinates/ParallelCoordinates.d.ts +1 -46
  66. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -1
  67. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts +12 -58
  68. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts.map +1 -1
  69. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts +1 -0
  70. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts.map +1 -1
  71. package/ParallelCoordinates.js +150 -153
  72. package/ParallelCoordinates.js.map +4 -4
  73. package/Pie/Pie.d.ts.map +1 -1
  74. package/Pie/config.d.ts.map +1 -1
  75. package/Pie/pieUtils.d.ts +4 -0
  76. package/Pie/pieUtils.d.ts.map +1 -1
  77. package/Pie.config.js +16 -0
  78. package/Pie.config.js.map +2 -2
  79. package/Pie.js +118 -35
  80. package/Pie.js.map +2 -2
  81. package/Punchcard.js +74 -26
  82. package/Punchcard.js.map +2 -2
  83. package/Rectangle/config.d.ts.map +1 -1
  84. package/Rectangle.config.js +14 -5
  85. package/Rectangle.config.js.map +4 -4
  86. package/Rectangle.js +92 -35
  87. package/Rectangle.js.map +4 -4
  88. package/Sankey/PureSankey/PureSankey.d.ts +26 -72
  89. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  90. package/Sankey/PureSankey/SankeyLink.d.ts +3 -19
  91. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  92. package/Sankey/PureSankey/SankeyNode.d.ts +3 -20
  93. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  94. package/Sankey/PureSankey/SankeyTooltip.d.ts +3 -24
  95. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -1
  96. package/Sankey.js +270 -336
  97. package/Sankey.js.map +2 -2
  98. package/Scatter.config.js +168 -147
  99. package/Scatter.config.js.map +4 -4
  100. package/Scatter.js +246 -179
  101. package/Scatter.js.map +4 -4
  102. package/SingleValue.js +96 -75
  103. package/SingleValue.js.map +2 -2
  104. package/SingleValueIcon/config.d.ts.map +1 -1
  105. package/SingleValueIcon.config.js +14 -5
  106. package/SingleValueIcon.config.js.map +4 -4
  107. package/SingleValueIcon.js +118 -76
  108. package/SingleValueIcon.js.map +4 -4
  109. package/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts.map +1 -1
  110. package/SingleValueRadial.js +95 -76
  111. package/SingleValueRadial.js.map +2 -2
  112. package/Table/Table.d.ts.map +1 -1
  113. package/Table/hooks.d.ts +2 -0
  114. package/Table/hooks.d.ts.map +1 -1
  115. package/Table.js +95 -49
  116. package/Table.js.map +2 -2
  117. package/Timeline/PureTimeline/PureTimeline.d.ts.map +1 -1
  118. package/Timeline/PureTimeline/src/TimelinePlugin.d.ts.map +1 -1
  119. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  120. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +2 -1
  121. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  122. package/Timeline.js +154 -54
  123. package/Timeline.js.map +2 -2
  124. package/common/GaugeMajorTicks.js +150 -13
  125. package/common/GaugeMajorTicks.js.map +4 -4
  126. package/common/GaugeValueMarker.js +84 -17
  127. package/common/GaugeValueMarker.js.map +4 -4
  128. package/common/OptionsDoc.js.map +1 -1
  129. package/common/OverviewDoc.d.ts.map +1 -1
  130. package/common/OverviewDoc.js +2 -2
  131. package/common/OverviewDoc.js.map +2 -2
  132. package/common/TimeSeriesChartWrapper.d.ts.map +1 -1
  133. package/common/TimeSeriesChartWrapper.js +72 -24
  134. package/common/TimeSeriesChartWrapper.js.map +2 -2
  135. package/common/chartingUtils.d.ts +9 -3
  136. package/common/chartingUtils.d.ts.map +1 -1
  137. package/common/chartingUtils.js +21 -16
  138. package/common/chartingUtils.js.map +2 -2
  139. package/common/editorConfig/AxesChartDataConfig.d.ts +3 -3
  140. package/common/editorConfig/AxesChartDataConfig.d.ts.map +1 -1
  141. package/common/editorConfig/AxesChartDataDisplay.d.ts +4 -0
  142. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  143. package/common/editorConfig/AxesChartLegend.d.ts.map +1 -1
  144. package/common/gaugeUtils.d.ts +37 -0
  145. package/common/gaugeUtils.d.ts.map +1 -1
  146. package/common/gaugeUtils.js +152 -2
  147. package/common/gaugeUtils.js.map +4 -4
  148. package/common/hocs/mockdata/trellisData.d.ts +119 -0
  149. package/common/hocs/mockdata/trellisData.d.ts.map +1 -1
  150. package/common/interfaces/Overview.d.ts +1 -0
  151. package/common/interfaces/Overview.d.ts.map +1 -1
  152. package/common/interfaces/VizConfig.d.ts +2 -1
  153. package/common/interfaces/VizConfig.d.ts.map +1 -1
  154. package/common/utils/mapUtils.js.map +1 -1
  155. package/common/utils/trellisUtils.d.ts.map +1 -1
  156. package/common/utils/trellisUtils.js +4 -6
  157. package/common/utils/trellisUtils.js.map +2 -2
  158. package/common/withDashboardViz.js +74 -26
  159. package/common/withDashboardViz.js.map +2 -2
  160. package/package.json +36 -36
package/Column.js CHANGED
@@ -1033,6 +1033,9 @@ var isTrellisEnabled = ({ options, featureFlags }) => {
1033
1033
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1034
1034
  return isTrellisFeatureFlagOn({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1035
1035
  };
1036
+ var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1037
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1038
+ };
1036
1039
  var AxesChartDataConfig = {
1037
1040
  label: (0, i18n_exports._)("Data configurations"),
1038
1041
  layout: [
@@ -1166,9 +1169,6 @@ var AxesChartDataConfigBubble = {
1166
1169
  }
1167
1170
  ])
1168
1171
  };
1169
- var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1170
- return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1171
- };
1172
1172
  var AcceleratedRenderEditorLayout = [
1173
1173
  [
1174
1174
  {
@@ -1178,7 +1178,7 @@ var AcceleratedRenderEditorLayout = [
1178
1178
  showEditor: isAcceleratedRenderFeatureFlagOn,
1179
1179
  editorProps: {
1180
1180
  help: (0, i18n_exports._)(
1181
- "Render visualizations faster for large datasets. Some functionalities might not be available in this mode."
1181
+ "Render visualizations faster for large datasets. Split series is not available in this mode."
1182
1182
  ),
1183
1183
  helpFormat: "under"
1184
1184
  // helpTextLink: {
@@ -1335,6 +1335,10 @@ var isTrellisEnabled3 = ({ options, featureFlags }) => {
1335
1335
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1336
1336
  return isTrellisFeatureFlagOn3({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1337
1337
  };
1338
+ var isAcceleratedRenderEnabled = ({ options, featureFlags }) => {
1339
+ const { acceleratedRender } = options;
1340
+ return isAcceleratedRenderFeatureFlagOn({ featureFlags }) && acceleratedRender;
1341
+ };
1338
1342
  var AxesChartDataDisplayBase = {
1339
1343
  label: (0, i18n_exports._)("Data display"),
1340
1344
  layout: [
@@ -1395,7 +1399,8 @@ var AxesChartDataDisplayBase = {
1395
1399
  {
1396
1400
  label: (0, i18n_exports._)("Split series"),
1397
1401
  option: "showSplitSeries",
1398
- editor: "editor.toggle"
1402
+ editor: "editor.toggle",
1403
+ isDisabled: isAcceleratedRenderEnabled
1399
1404
  }
1400
1405
  ],
1401
1406
  [
@@ -1403,7 +1408,23 @@ var AxesChartDataDisplayBase = {
1403
1408
  label: (0, i18n_exports._)("Independent y-axis for split series"),
1404
1409
  option: "showIndependentYRanges",
1405
1410
  editor: "editor.checkbox",
1406
- showEditor: ({ options }) => options.showSplitSeries
1411
+ showEditor: ({ options, featureFlags }) => options.showSplitSeries && !isAcceleratedRenderEnabled({ options, featureFlags })
1412
+ }
1413
+ ],
1414
+ [
1415
+ {
1416
+ label: (0, i18n_exports._)("Step position"),
1417
+ option: "stepPosition",
1418
+ editor: "editor.radioBar",
1419
+ editorProps: {
1420
+ values: [
1421
+ { label: (0, i18n_exports._)("Off"), value: "off" },
1422
+ { label: (0, i18n_exports._)("Before"), value: "before" },
1423
+ { label: (0, i18n_exports._)("After"), value: "after" }
1424
+ ]
1425
+ },
1426
+ showEditor: ({ options, featureFlags }) => isAcceleratedRenderEnabled({ options, featureFlags })
1427
+ // step position is only supported when accelerated render is enabled
1407
1428
  }
1408
1429
  ],
1409
1430
  ...TimechartTrellisEditorConfig
@@ -1590,7 +1611,7 @@ var AxesChartLegendWithTrellisAndMode = ({
1590
1611
  { label: (0, i18n_exports._)("Bottom"), value: "bottom" },
1591
1612
  { label: (0, i18n_exports._)("Off"), value: "off" }
1592
1613
  ],
1593
- tooltip: showLegendTooltip && (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display')
1614
+ tooltip: showLegendTooltip ? (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display') : void 0
1594
1615
  },
1595
1616
  isDisabled: showLegendTooltip ? ({ options }) => options.legendMode === "seriesCompare" : void 0,
1596
1617
  overrideDefaultValue: ({ options }) => (options == null ? void 0 : options.splitByLayout) === "trellis" ? "off" : "right"
@@ -2721,7 +2742,7 @@ var Cover = styled_components_default.div`
2721
2742
  bottom: 0;
2722
2743
  `;
2723
2744
  var Blocker = styled_components_default.div.attrs({
2724
- "data-splunk-visualization-version": "28.4.0 - 002bd482f"
2745
+ "data-splunk-visualization-version": "28.5.0 - b192418b7"
2725
2746
  })`
2726
2747
  position: relative;
2727
2748
  width: 100%;
@@ -2802,7 +2823,7 @@ var withFixedSizeContainer = (Viz) => {
2802
2823
  FixSizeItem,
2803
2824
  {
2804
2825
  "data-test": "fix-size-item",
2805
- "data-splunk-visualization-version": "28.4.0 - 002bd482f",
2826
+ "data-splunk-visualization-version": "28.5.0 - b192418b7",
2806
2827
  width,
2807
2828
  height,
2808
2829
  backgroundColor
@@ -3202,16 +3223,14 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
3202
3223
  splitDataSources[val] = (0, lodash_exports.cloneDeep)(
3203
3224
  (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
3204
3225
  );
3205
- splitDataSources[val].primary.data.fields = [
3206
- { name: fields[0].name },
3207
- ...dataSourceKeys.map((k) => ({
3208
- name: k
3209
- }))
3210
- ];
3226
+ splitDataSources[val].primary.data.fields = [{ name: fields[0].name }];
3211
3227
  splitDataSources[val].primary.data.columns = [[...columns[0]]];
3212
3228
  dataSourceKeys.forEach((dsKey) => {
3213
3229
  fields.forEach((field, idx) => {
3214
3230
  if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
3231
+ splitDataSources[val].primary.data.fields.push({
3232
+ name: dsKey
3233
+ });
3215
3234
  splitDataSources[val].primary.data.columns.push([...columns[idx]]);
3216
3235
  }
3217
3236
  });
@@ -3609,25 +3628,27 @@ var parseAxisValue = (val) => {
3609
3628
  const num = typeof val === "number" ? val : Number.parseFloat(val);
3610
3629
  return Number.isNaN(num) ? void 0 : num;
3611
3630
  };
3612
- var SideLegendWidth = 75;
3613
- var SeriesCompareLegendWidth = 200;
3631
+ var parseXAxisLineVisibility = (visibility) => {
3632
+ if (visibility === "hide") return false;
3633
+ if (visibility === "show") return true;
3634
+ return void 0;
3635
+ };
3614
3636
  var getLegend = (props) => {
3615
3637
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
3616
- const { isSeriesCompare } = props;
3638
+ const { isSeriesCompare, legendTruncation } = props;
3617
3639
  const commonLegendProps = {
3618
3640
  center: true,
3619
3641
  fontSize: 12,
3620
3642
  largerTiles: true,
3621
- hideSeriesValue: !isSeriesCompare
3643
+ hideSeriesValue: !isSeriesCompare,
3622
3644
  // Show values if in seriesCompare mode
3645
+ legendTruncation
3623
3646
  };
3624
3647
  switch (legendPlacement) {
3625
3648
  case "off":
3626
3649
  return false;
3627
3650
  case "left":
3628
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
3629
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3630
- }, commonLegendProps));
3651
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
3631
3652
  case "bottom":
3632
3653
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
3633
3654
  wrap: true
@@ -3637,9 +3658,7 @@ var getLegend = (props) => {
3637
3658
  wrap: true
3638
3659
  }, commonLegendProps));
3639
3660
  default:
3640
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
3641
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3642
- }, commonLegendProps));
3661
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
3643
3662
  }
3644
3663
  };
3645
3664
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -3700,9 +3719,7 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
3700
3719
  if (yAxisAbbreviation !== "none") {
3701
3720
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
3702
3721
  }
3703
- if (yAxisAbbreviation === "none") {
3704
- yConfig.y.width = 55;
3705
- } else {
3722
+ if (yAxisAbbreviation !== "none") {
3706
3723
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
3707
3724
  }
3708
3725
  if (yAxisLabelVisibility === "hide") {
@@ -3725,6 +3742,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3725
3742
  y2Config.y2.type = scaleType;
3726
3743
  if (axisAbbreviation !== "none") {
3727
3744
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
3745
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
3728
3746
  } else if (roundAxisLabelsToInteger) {
3729
3747
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
3730
3748
  }
@@ -3740,7 +3758,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3740
3758
  }
3741
3759
  return y2Config;
3742
3760
  };
3743
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField) => {
3761
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
3744
3762
  const seriesConfig = {};
3745
3763
  let spanGaps;
3746
3764
  let replaceNullsWithZero;
@@ -3767,6 +3785,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3767
3785
  );
3768
3786
  if (shouldAssignToY2) {
3769
3787
  seriesConfig[field].overrides.scale = "y2";
3788
+ } else {
3789
+ seriesConfig[field].overrides.scale = "y";
3770
3790
  }
3771
3791
  }
3772
3792
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -3779,6 +3799,11 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3779
3799
  if (fieldDashStyle) {
3780
3800
  seriesConfig[field].lineDashStyle = fieldDashStyle;
3781
3801
  }
3802
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
3803
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
3804
+ if (fieldStepPosition && fieldStepPosition !== "off") {
3805
+ seriesConfig[field].stepPosition = fieldStepPosition;
3806
+ }
3782
3807
  if (replaceNullsWithZero !== void 0) {
3783
3808
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
3784
3809
  }
@@ -3961,6 +3986,9 @@ var TimeSeriesChartWrapper = (props) => {
3961
3986
  backgroundColor,
3962
3987
  defaultFontColor,
3963
3988
  additionalTooltipValues,
3989
+ xAxisLineVisibility: xAxisLineVisibility,
3990
+ yAxisLineVisibility,
3991
+ y2AxisLineVisibility,
3964
3992
  showYAxisWithZero: showYAxisWithZeroFromProps,
3965
3993
  showY2AxisWithZero: showY2AxisWithZeroFromProps
3966
3994
  } = _a, otherOptions = __objRest(_a, [
@@ -3984,6 +4012,10 @@ var TimeSeriesChartWrapper = (props) => {
3984
4012
  "backgroundColor",
3985
4013
  "defaultFontColor",
3986
4014
  "additionalTooltipValues",
4015
+ // Extract axis line visibility options from props
4016
+ "xAxisLineVisibility",
4017
+ "yAxisLineVisibility",
4018
+ "y2AxisLineVisibility",
3987
4019
  // Extract showYAxisWithZero directly from props for accelerated render mode
3988
4020
  "showYAxisWithZero",
3989
4021
  "showY2AxisWithZero"
@@ -3996,6 +4028,7 @@ var TimeSeriesChartWrapper = (props) => {
3996
4028
  fieldColors,
3997
4029
  legendLabels: legendLabelsStr,
3998
4030
  legendMode,
4031
+ legendTruncation,
3999
4032
  "axisTitleX.text": xAxisTitleText,
4000
4033
  "axisTitleY.text": yAxisTitleText,
4001
4034
  "axisTitleY2.text": y2AxisTitleText,
@@ -4004,6 +4037,7 @@ var TimeSeriesChartWrapper = (props) => {
4004
4037
  "axisTitleY2.visibility": y2AxisTitleVisibility,
4005
4038
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
4006
4039
  "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
4040
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
4007
4041
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
4008
4042
  "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
4009
4043
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
@@ -4021,6 +4055,8 @@ var TimeSeriesChartWrapper = (props) => {
4021
4055
  lineWidth,
4022
4056
  lineDashStyle,
4023
4057
  fieldDashStyles: lineDashStylesByFieldStr,
4058
+ stepPosition,
4059
+ fieldStepPositions: stepPositionsByFieldStr,
4024
4060
  yAxisMin: yAxisMinRaw,
4025
4061
  yAxisMax: yAxisMaxRaw,
4026
4062
  y2AxisMin: y2AxisMinRaw,
@@ -4031,6 +4067,8 @@ var TimeSeriesChartWrapper = (props) => {
4031
4067
  showYMinorGridLines,
4032
4068
  showY2MinorGridLines,
4033
4069
  showLineSmoothing,
4070
+ xAxisMajorTickVisibility,
4071
+ xAxisMajorTickSize,
4034
4072
  yAxisMajorTickVisibility,
4035
4073
  y2AxisMajorTickVisibility,
4036
4074
  yAxisMajorTickSize,
@@ -4047,10 +4085,14 @@ var TimeSeriesChartWrapper = (props) => {
4047
4085
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
4048
4086
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
4049
4087
  const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
4088
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
4050
4089
  const showYMajorTicks = yAxisMajorTickVisibility === "show";
4051
4090
  const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
4052
4091
  const showYMinorTicks = yAxisMinorTickVisibility === "show";
4053
4092
  const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
4093
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
4094
+ const showYAxisLine = yAxisLineVisibility === "show";
4095
+ const showY2AxisLine = y2AxisLineVisibility === "show";
4054
4096
  const yAxisMin = parseAxisValue(yAxisMinRaw);
4055
4097
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
4056
4098
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
@@ -4065,13 +4107,15 @@ var TimeSeriesChartWrapper = (props) => {
4065
4107
  y2AxisMajorUnitFromSimpleXML,
4066
4108
  y2AxisMajorTickInterval
4067
4109
  );
4068
- const yAxisMajorTickSizeNum = yAxisMajorTickSize ? Number(yAxisMajorTickSize) : void 0;
4069
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize ? Number(y2AxisMajorTickSize) : void 0;
4070
- const yAxisMinorTickSizeNum = yAxisMinorTickSize ? Number(yAxisMinorTickSize) : void 0;
4071
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize ? Number(y2AxisMinorTickSize) : void 0;
4110
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
4111
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
4112
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
4113
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
4114
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
4072
4115
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
4073
4116
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
4074
4117
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
4118
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
4075
4119
  const legendLabels = parseArrayOption(legendLabelsStr);
4076
4120
  const bgColor = backgroundColor || bgColorFromOptions;
4077
4121
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
@@ -4159,7 +4203,9 @@ var TimeSeriesChartWrapper = (props) => {
4159
4203
  nullValueMode,
4160
4204
  markerDisplay,
4161
4205
  lineDashStyle,
4162
- lineDashStylesByField
4206
+ lineDashStylesByField,
4207
+ stepPosition,
4208
+ stepPositionsByField
4163
4209
  ),
4164
4210
  [
4165
4211
  yFields,
@@ -4170,7 +4216,9 @@ var TimeSeriesChartWrapper = (props) => {
4170
4216
  nullValueMode,
4171
4217
  markerDisplay,
4172
4218
  lineDashStyle,
4173
- lineDashStylesByField
4219
+ lineDashStylesByField,
4220
+ stepPosition,
4221
+ stepPositionsByField
4174
4222
  ]
4175
4223
  );
4176
4224
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -4185,9 +4233,14 @@ var TimeSeriesChartWrapper = (props) => {
4185
4233
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
4186
4234
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
4187
4235
  );
4236
+ const isSeriesCompare = legendMode === "seriesCompare";
4188
4237
  const legend = (0, react_exports.useMemo)(
4189
- () => getLegend({ legendDisplay, isSeriesCompare: legendMode === "seriesCompare" }),
4190
- [legendDisplay, legendMode]
4238
+ () => getLegend({
4239
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
4240
+ isSeriesCompare,
4241
+ legendTruncation
4242
+ }),
4243
+ [legendDisplay, isSeriesCompare, legendTruncation]
4191
4244
  );
4192
4245
  const handleChartClick = react_exports.useCallback(
4193
4246
  (event) => {
@@ -4292,6 +4345,7 @@ var TimeSeriesChartWrapper = (props) => {
4292
4345
  seriesConfig: seriesOverrides,
4293
4346
  legend,
4294
4347
  legendLabels,
4348
+ legendTruncation,
4295
4349
  isSeriesCompare: legendMode === "seriesCompare",
4296
4350
  maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
4297
4351
  scaleConfig,
@@ -4313,6 +4367,8 @@ var TimeSeriesChartWrapper = (props) => {
4313
4367
  showY2MinorGridLines,
4314
4368
  showLineSmoothing,
4315
4369
  dataValuesDisplay,
4370
+ showXMajorTicks,
4371
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
4316
4372
  showYMajorTicks,
4317
4373
  showY2MajorTicks,
4318
4374
  yAxisMajorTickSize: yAxisMajorTickSizeNum,
@@ -4324,7 +4380,11 @@ var TimeSeriesChartWrapper = (props) => {
4324
4380
  yAxisMinorTickSize: yAxisMinorTickSizeNum,
4325
4381
  y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
4326
4382
  showYAxisWithZero,
4327
- showY2AxisWithZero
4383
+ showY2AxisWithZero,
4384
+ showXAxisLine,
4385
+ showYAxisLine,
4386
+ showY2AxisLine,
4387
+ xAxisMaxLabelParts
4328
4388
  }
4329
4389
  ));
4330
4390
  }, [
@@ -4339,6 +4399,7 @@ var TimeSeriesChartWrapper = (props) => {
4339
4399
  seriesOverrides,
4340
4400
  legend,
4341
4401
  legendLabels,
4402
+ legendTruncation,
4342
4403
  scaleConfig,
4343
4404
  onClick,
4344
4405
  handleChartClick,
@@ -4357,6 +4418,8 @@ var TimeSeriesChartWrapper = (props) => {
4357
4418
  showY2MinorGridLines,
4358
4419
  showLineSmoothing,
4359
4420
  dataValuesDisplay,
4421
+ showXMajorTicks,
4422
+ xAxisMajorTickSizeNum,
4360
4423
  showYMajorTicks,
4361
4424
  showY2MajorTicks,
4362
4425
  yAxisMajorTickSizeNum,
@@ -4369,7 +4432,11 @@ var TimeSeriesChartWrapper = (props) => {
4369
4432
  y2AxisMinorTickSizeNum,
4370
4433
  showYAxisWithZero,
4371
4434
  showY2AxisWithZero,
4372
- legendMode
4435
+ showXAxisLine,
4436
+ showYAxisLine,
4437
+ showY2AxisLine,
4438
+ legendMode,
4439
+ xAxisMaxLabelParts
4373
4440
  ]);
4374
4441
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
4375
4442
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);