@splunk/visualizations 28.4.0 → 28.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/Area.config.js +28 -7
  2. package/Area.config.js.map +2 -2
  3. package/Area.js +109 -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 +109 -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 +81 -30
  12. package/Bubble.js.map +2 -2
  13. package/CHANGELOG.external.md +98 -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 +109 -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 +125 -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.d.ts.map +1 -1
  62. package/NetworkGraph.config.js +1 -0
  63. package/NetworkGraph.config.js.map +2 -2
  64. package/NetworkGraph.js +366 -105
  65. package/NetworkGraph.js.map +4 -4
  66. package/PERFORMANCE.md +23 -0
  67. package/ParallelCoordinates/ParallelCoordinates.d.ts +1 -46
  68. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -1
  69. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts +12 -58
  70. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts.map +1 -1
  71. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts +1 -0
  72. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts.map +1 -1
  73. package/ParallelCoordinates.js +150 -153
  74. package/ParallelCoordinates.js.map +4 -4
  75. package/Pie/Pie.d.ts.map +1 -1
  76. package/Pie/config.d.ts.map +1 -1
  77. package/Pie/pieUtils.d.ts +4 -0
  78. package/Pie/pieUtils.d.ts.map +1 -1
  79. package/Pie.config.js +16 -0
  80. package/Pie.config.js.map +2 -2
  81. package/Pie.js +121 -35
  82. package/Pie.js.map +2 -2
  83. package/Punchcard.js +74 -26
  84. package/Punchcard.js.map +2 -2
  85. package/Rectangle/config.d.ts.map +1 -1
  86. package/Rectangle.config.js +14 -5
  87. package/Rectangle.config.js.map +4 -4
  88. package/Rectangle.js +92 -35
  89. package/Rectangle.js.map +4 -4
  90. package/Sankey/PureSankey/PureSankey.d.ts +26 -72
  91. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  92. package/Sankey/PureSankey/SankeyLink.d.ts +3 -19
  93. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  94. package/Sankey/PureSankey/SankeyNode.d.ts +3 -20
  95. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  96. package/Sankey/PureSankey/SankeyTooltip.d.ts +3 -24
  97. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -1
  98. package/Sankey.js +270 -336
  99. package/Sankey.js.map +2 -2
  100. package/Scatter.config.js +168 -147
  101. package/Scatter.config.js.map +4 -4
  102. package/Scatter.js +249 -179
  103. package/Scatter.js.map +4 -4
  104. package/SingleValue.js +96 -75
  105. package/SingleValue.js.map +2 -2
  106. package/SingleValueIcon/config.d.ts.map +1 -1
  107. package/SingleValueIcon.config.js +14 -5
  108. package/SingleValueIcon.config.js.map +4 -4
  109. package/SingleValueIcon.js +118 -76
  110. package/SingleValueIcon.js.map +4 -4
  111. package/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts.map +1 -1
  112. package/SingleValueRadial.js +95 -76
  113. package/SingleValueRadial.js.map +2 -2
  114. package/Table/Table.d.ts.map +1 -1
  115. package/Table/hooks.d.ts +2 -0
  116. package/Table/hooks.d.ts.map +1 -1
  117. package/Table.js +95 -49
  118. package/Table.js.map +2 -2
  119. package/Timeline/PureTimeline/PureTimeline.d.ts.map +1 -1
  120. package/Timeline/PureTimeline/src/TimelinePlugin.d.ts.map +1 -1
  121. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  122. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +2 -1
  123. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  124. package/Timeline.js +154 -54
  125. package/Timeline.js.map +2 -2
  126. package/common/Charting.d.ts.map +1 -1
  127. package/common/Charting.js +3 -0
  128. package/common/Charting.js.map +2 -2
  129. package/common/GaugeMajorTicks.js +150 -13
  130. package/common/GaugeMajorTicks.js.map +4 -4
  131. package/common/GaugeValueMarker.js +84 -17
  132. package/common/GaugeValueMarker.js.map +4 -4
  133. package/common/OptionsDoc.js.map +1 -1
  134. package/common/OverviewDoc.d.ts.map +1 -1
  135. package/common/OverviewDoc.js +2 -2
  136. package/common/OverviewDoc.js.map +2 -2
  137. package/common/TimeSeriesChartWrapper.d.ts.map +1 -1
  138. package/common/TimeSeriesChartWrapper.js +72 -24
  139. package/common/TimeSeriesChartWrapper.js.map +2 -2
  140. package/common/chartingUtils.d.ts +9 -3
  141. package/common/chartingUtils.d.ts.map +1 -1
  142. package/common/chartingUtils.js +21 -16
  143. package/common/chartingUtils.js.map +2 -2
  144. package/common/editorConfig/AxesChartDataConfig.d.ts +3 -3
  145. package/common/editorConfig/AxesChartDataConfig.d.ts.map +1 -1
  146. package/common/editorConfig/AxesChartDataDisplay.d.ts +4 -0
  147. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  148. package/common/editorConfig/AxesChartLegend.d.ts.map +1 -1
  149. package/common/gaugeUtils.d.ts +37 -0
  150. package/common/gaugeUtils.d.ts.map +1 -1
  151. package/common/gaugeUtils.js +152 -2
  152. package/common/gaugeUtils.js.map +4 -4
  153. package/common/hocs/mockdata/trellisData.d.ts +119 -0
  154. package/common/hocs/mockdata/trellisData.d.ts.map +1 -1
  155. package/common/interfaces/Overview.d.ts +1 -0
  156. package/common/interfaces/Overview.d.ts.map +1 -1
  157. package/common/interfaces/VizConfig.d.ts +2 -1
  158. package/common/interfaces/VizConfig.d.ts.map +1 -1
  159. package/common/utils/mapUtils.js.map +1 -1
  160. package/common/utils/trellisUtils.d.ts.map +1 -1
  161. package/common/utils/trellisUtils.js +4 -6
  162. package/common/utils/trellisUtils.js.map +2 -2
  163. package/common/withDashboardViz.js +74 -26
  164. package/common/withDashboardViz.js.map +2 -2
  165. package/package.json +36 -36
package/Column.js CHANGED
@@ -614,6 +614,9 @@ var ChartingContainer = styled_components_default.div.attrs((props) => ({
614
614
  & .highcharts-a11y-proxy-container {
615
615
  pointer-events: none;
616
616
  }
617
+ & .highcharts-a11y-proxy-container-after {
618
+ overflow: hidden;
619
+ }
617
620
  overflow: hidden;
618
621
  position: relative;
619
622
  ${(props) => (0, style_exports.toDimension)((0, lodash_exports.pick)(props, ["width", "height"]))};
@@ -1033,6 +1036,9 @@ var isTrellisEnabled = ({ options, featureFlags }) => {
1033
1036
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1034
1037
  return isTrellisFeatureFlagOn({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1035
1038
  };
1039
+ var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1040
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1041
+ };
1036
1042
  var AxesChartDataConfig = {
1037
1043
  label: (0, i18n_exports._)("Data configurations"),
1038
1044
  layout: [
@@ -1166,9 +1172,6 @@ var AxesChartDataConfigBubble = {
1166
1172
  }
1167
1173
  ])
1168
1174
  };
1169
- var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1170
- return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1171
- };
1172
1175
  var AcceleratedRenderEditorLayout = [
1173
1176
  [
1174
1177
  {
@@ -1178,7 +1181,7 @@ var AcceleratedRenderEditorLayout = [
1178
1181
  showEditor: isAcceleratedRenderFeatureFlagOn,
1179
1182
  editorProps: {
1180
1183
  help: (0, i18n_exports._)(
1181
- "Render visualizations faster for large datasets. Some functionalities might not be available in this mode."
1184
+ "Render visualizations faster for large datasets. Split series is not available in this mode."
1182
1185
  ),
1183
1186
  helpFormat: "under"
1184
1187
  // helpTextLink: {
@@ -1335,6 +1338,10 @@ var isTrellisEnabled3 = ({ options, featureFlags }) => {
1335
1338
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1336
1339
  return isTrellisFeatureFlagOn3({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1337
1340
  };
1341
+ var isAcceleratedRenderEnabled = ({ options, featureFlags }) => {
1342
+ const { acceleratedRender } = options;
1343
+ return isAcceleratedRenderFeatureFlagOn({ featureFlags }) && acceleratedRender;
1344
+ };
1338
1345
  var AxesChartDataDisplayBase = {
1339
1346
  label: (0, i18n_exports._)("Data display"),
1340
1347
  layout: [
@@ -1395,7 +1402,8 @@ var AxesChartDataDisplayBase = {
1395
1402
  {
1396
1403
  label: (0, i18n_exports._)("Split series"),
1397
1404
  option: "showSplitSeries",
1398
- editor: "editor.toggle"
1405
+ editor: "editor.toggle",
1406
+ isDisabled: isAcceleratedRenderEnabled
1399
1407
  }
1400
1408
  ],
1401
1409
  [
@@ -1403,7 +1411,23 @@ var AxesChartDataDisplayBase = {
1403
1411
  label: (0, i18n_exports._)("Independent y-axis for split series"),
1404
1412
  option: "showIndependentYRanges",
1405
1413
  editor: "editor.checkbox",
1406
- showEditor: ({ options }) => options.showSplitSeries
1414
+ showEditor: ({ options, featureFlags }) => options.showSplitSeries && !isAcceleratedRenderEnabled({ options, featureFlags })
1415
+ }
1416
+ ],
1417
+ [
1418
+ {
1419
+ label: (0, i18n_exports._)("Step position"),
1420
+ option: "stepPosition",
1421
+ editor: "editor.radioBar",
1422
+ editorProps: {
1423
+ values: [
1424
+ { label: (0, i18n_exports._)("Off"), value: "off" },
1425
+ { label: (0, i18n_exports._)("Before"), value: "before" },
1426
+ { label: (0, i18n_exports._)("After"), value: "after" }
1427
+ ]
1428
+ },
1429
+ showEditor: ({ options, featureFlags }) => isAcceleratedRenderEnabled({ options, featureFlags })
1430
+ // step position is only supported when accelerated render is enabled
1407
1431
  }
1408
1432
  ],
1409
1433
  ...TimechartTrellisEditorConfig
@@ -1590,7 +1614,7 @@ var AxesChartLegendWithTrellisAndMode = ({
1590
1614
  { label: (0, i18n_exports._)("Bottom"), value: "bottom" },
1591
1615
  { label: (0, i18n_exports._)("Off"), value: "off" }
1592
1616
  ],
1593
- tooltip: showLegendTooltip && (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display')
1617
+ tooltip: showLegendTooltip ? (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display') : void 0
1594
1618
  },
1595
1619
  isDisabled: showLegendTooltip ? ({ options }) => options.legendMode === "seriesCompare" : void 0,
1596
1620
  overrideDefaultValue: ({ options }) => (options == null ? void 0 : options.splitByLayout) === "trellis" ? "off" : "right"
@@ -2721,7 +2745,7 @@ var Cover = styled_components_default.div`
2721
2745
  bottom: 0;
2722
2746
  `;
2723
2747
  var Blocker = styled_components_default.div.attrs({
2724
- "data-splunk-visualization-version": "28.4.0 - 002bd482f"
2748
+ "data-splunk-visualization-version": "28.5.1 - 617766eb3"
2725
2749
  })`
2726
2750
  position: relative;
2727
2751
  width: 100%;
@@ -2802,7 +2826,7 @@ var withFixedSizeContainer = (Viz) => {
2802
2826
  FixSizeItem,
2803
2827
  {
2804
2828
  "data-test": "fix-size-item",
2805
- "data-splunk-visualization-version": "28.4.0 - 002bd482f",
2829
+ "data-splunk-visualization-version": "28.5.1 - 617766eb3",
2806
2830
  width,
2807
2831
  height,
2808
2832
  backgroundColor
@@ -3202,16 +3226,14 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
3202
3226
  splitDataSources[val] = (0, lodash_exports.cloneDeep)(
3203
3227
  (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
3204
3228
  );
3205
- splitDataSources[val].primary.data.fields = [
3206
- { name: fields[0].name },
3207
- ...dataSourceKeys.map((k) => ({
3208
- name: k
3209
- }))
3210
- ];
3229
+ splitDataSources[val].primary.data.fields = [{ name: fields[0].name }];
3211
3230
  splitDataSources[val].primary.data.columns = [[...columns[0]]];
3212
3231
  dataSourceKeys.forEach((dsKey) => {
3213
3232
  fields.forEach((field, idx) => {
3214
3233
  if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
3234
+ splitDataSources[val].primary.data.fields.push({
3235
+ name: dsKey
3236
+ });
3215
3237
  splitDataSources[val].primary.data.columns.push([...columns[idx]]);
3216
3238
  }
3217
3239
  });
@@ -3609,25 +3631,27 @@ var parseAxisValue = (val) => {
3609
3631
  const num = typeof val === "number" ? val : Number.parseFloat(val);
3610
3632
  return Number.isNaN(num) ? void 0 : num;
3611
3633
  };
3612
- var SideLegendWidth = 75;
3613
- var SeriesCompareLegendWidth = 200;
3634
+ var parseXAxisLineVisibility = (visibility) => {
3635
+ if (visibility === "hide") return false;
3636
+ if (visibility === "show") return true;
3637
+ return void 0;
3638
+ };
3614
3639
  var getLegend = (props) => {
3615
3640
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
3616
- const { isSeriesCompare } = props;
3641
+ const { isSeriesCompare, legendTruncation } = props;
3617
3642
  const commonLegendProps = {
3618
3643
  center: true,
3619
3644
  fontSize: 12,
3620
3645
  largerTiles: true,
3621
- hideSeriesValue: !isSeriesCompare
3646
+ hideSeriesValue: !isSeriesCompare,
3622
3647
  // Show values if in seriesCompare mode
3648
+ legendTruncation
3623
3649
  };
3624
3650
  switch (legendPlacement) {
3625
3651
  case "off":
3626
3652
  return false;
3627
3653
  case "left":
3628
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
3629
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3630
- }, commonLegendProps));
3654
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
3631
3655
  case "bottom":
3632
3656
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
3633
3657
  wrap: true
@@ -3637,9 +3661,7 @@ var getLegend = (props) => {
3637
3661
  wrap: true
3638
3662
  }, commonLegendProps));
3639
3663
  default:
3640
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
3641
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3642
- }, commonLegendProps));
3664
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
3643
3665
  }
3644
3666
  };
3645
3667
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -3700,9 +3722,7 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
3700
3722
  if (yAxisAbbreviation !== "none") {
3701
3723
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
3702
3724
  }
3703
- if (yAxisAbbreviation === "none") {
3704
- yConfig.y.width = 55;
3705
- } else {
3725
+ if (yAxisAbbreviation !== "none") {
3706
3726
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
3707
3727
  }
3708
3728
  if (yAxisLabelVisibility === "hide") {
@@ -3725,6 +3745,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3725
3745
  y2Config.y2.type = scaleType;
3726
3746
  if (axisAbbreviation !== "none") {
3727
3747
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
3748
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
3728
3749
  } else if (roundAxisLabelsToInteger) {
3729
3750
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
3730
3751
  }
@@ -3740,7 +3761,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3740
3761
  }
3741
3762
  return y2Config;
3742
3763
  };
3743
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField) => {
3764
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
3744
3765
  const seriesConfig = {};
3745
3766
  let spanGaps;
3746
3767
  let replaceNullsWithZero;
@@ -3767,6 +3788,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3767
3788
  );
3768
3789
  if (shouldAssignToY2) {
3769
3790
  seriesConfig[field].overrides.scale = "y2";
3791
+ } else {
3792
+ seriesConfig[field].overrides.scale = "y";
3770
3793
  }
3771
3794
  }
3772
3795
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -3779,6 +3802,11 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3779
3802
  if (fieldDashStyle) {
3780
3803
  seriesConfig[field].lineDashStyle = fieldDashStyle;
3781
3804
  }
3805
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
3806
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
3807
+ if (fieldStepPosition && fieldStepPosition !== "off") {
3808
+ seriesConfig[field].stepPosition = fieldStepPosition;
3809
+ }
3782
3810
  if (replaceNullsWithZero !== void 0) {
3783
3811
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
3784
3812
  }
@@ -3961,6 +3989,9 @@ var TimeSeriesChartWrapper = (props) => {
3961
3989
  backgroundColor,
3962
3990
  defaultFontColor,
3963
3991
  additionalTooltipValues,
3992
+ xAxisLineVisibility: xAxisLineVisibility,
3993
+ yAxisLineVisibility,
3994
+ y2AxisLineVisibility,
3964
3995
  showYAxisWithZero: showYAxisWithZeroFromProps,
3965
3996
  showY2AxisWithZero: showY2AxisWithZeroFromProps
3966
3997
  } = _a, otherOptions = __objRest(_a, [
@@ -3984,6 +4015,10 @@ var TimeSeriesChartWrapper = (props) => {
3984
4015
  "backgroundColor",
3985
4016
  "defaultFontColor",
3986
4017
  "additionalTooltipValues",
4018
+ // Extract axis line visibility options from props
4019
+ "xAxisLineVisibility",
4020
+ "yAxisLineVisibility",
4021
+ "y2AxisLineVisibility",
3987
4022
  // Extract showYAxisWithZero directly from props for accelerated render mode
3988
4023
  "showYAxisWithZero",
3989
4024
  "showY2AxisWithZero"
@@ -3996,6 +4031,7 @@ var TimeSeriesChartWrapper = (props) => {
3996
4031
  fieldColors,
3997
4032
  legendLabels: legendLabelsStr,
3998
4033
  legendMode,
4034
+ legendTruncation,
3999
4035
  "axisTitleX.text": xAxisTitleText,
4000
4036
  "axisTitleY.text": yAxisTitleText,
4001
4037
  "axisTitleY2.text": y2AxisTitleText,
@@ -4004,6 +4040,7 @@ var TimeSeriesChartWrapper = (props) => {
4004
4040
  "axisTitleY2.visibility": y2AxisTitleVisibility,
4005
4041
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
4006
4042
  "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
4043
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
4007
4044
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
4008
4045
  "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
4009
4046
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
@@ -4021,6 +4058,8 @@ var TimeSeriesChartWrapper = (props) => {
4021
4058
  lineWidth,
4022
4059
  lineDashStyle,
4023
4060
  fieldDashStyles: lineDashStylesByFieldStr,
4061
+ stepPosition,
4062
+ fieldStepPositions: stepPositionsByFieldStr,
4024
4063
  yAxisMin: yAxisMinRaw,
4025
4064
  yAxisMax: yAxisMaxRaw,
4026
4065
  y2AxisMin: y2AxisMinRaw,
@@ -4031,6 +4070,8 @@ var TimeSeriesChartWrapper = (props) => {
4031
4070
  showYMinorGridLines,
4032
4071
  showY2MinorGridLines,
4033
4072
  showLineSmoothing,
4073
+ xAxisMajorTickVisibility,
4074
+ xAxisMajorTickSize,
4034
4075
  yAxisMajorTickVisibility,
4035
4076
  y2AxisMajorTickVisibility,
4036
4077
  yAxisMajorTickSize,
@@ -4047,10 +4088,14 @@ var TimeSeriesChartWrapper = (props) => {
4047
4088
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
4048
4089
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
4049
4090
  const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
4091
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
4050
4092
  const showYMajorTicks = yAxisMajorTickVisibility === "show";
4051
4093
  const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
4052
4094
  const showYMinorTicks = yAxisMinorTickVisibility === "show";
4053
4095
  const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
4096
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
4097
+ const showYAxisLine = yAxisLineVisibility === "show";
4098
+ const showY2AxisLine = y2AxisLineVisibility === "show";
4054
4099
  const yAxisMin = parseAxisValue(yAxisMinRaw);
4055
4100
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
4056
4101
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
@@ -4065,13 +4110,15 @@ var TimeSeriesChartWrapper = (props) => {
4065
4110
  y2AxisMajorUnitFromSimpleXML,
4066
4111
  y2AxisMajorTickInterval
4067
4112
  );
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;
4113
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
4114
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
4115
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
4116
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
4117
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
4072
4118
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
4073
4119
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
4074
4120
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
4121
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
4075
4122
  const legendLabels = parseArrayOption(legendLabelsStr);
4076
4123
  const bgColor = backgroundColor || bgColorFromOptions;
4077
4124
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
@@ -4159,7 +4206,9 @@ var TimeSeriesChartWrapper = (props) => {
4159
4206
  nullValueMode,
4160
4207
  markerDisplay,
4161
4208
  lineDashStyle,
4162
- lineDashStylesByField
4209
+ lineDashStylesByField,
4210
+ stepPosition,
4211
+ stepPositionsByField
4163
4212
  ),
4164
4213
  [
4165
4214
  yFields,
@@ -4170,7 +4219,9 @@ var TimeSeriesChartWrapper = (props) => {
4170
4219
  nullValueMode,
4171
4220
  markerDisplay,
4172
4221
  lineDashStyle,
4173
- lineDashStylesByField
4222
+ lineDashStylesByField,
4223
+ stepPosition,
4224
+ stepPositionsByField
4174
4225
  ]
4175
4226
  );
4176
4227
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -4185,9 +4236,14 @@ var TimeSeriesChartWrapper = (props) => {
4185
4236
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
4186
4237
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
4187
4238
  );
4239
+ const isSeriesCompare = legendMode === "seriesCompare";
4188
4240
  const legend = (0, react_exports.useMemo)(
4189
- () => getLegend({ legendDisplay, isSeriesCompare: legendMode === "seriesCompare" }),
4190
- [legendDisplay, legendMode]
4241
+ () => getLegend({
4242
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
4243
+ isSeriesCompare,
4244
+ legendTruncation
4245
+ }),
4246
+ [legendDisplay, isSeriesCompare, legendTruncation]
4191
4247
  );
4192
4248
  const handleChartClick = react_exports.useCallback(
4193
4249
  (event) => {
@@ -4292,6 +4348,7 @@ var TimeSeriesChartWrapper = (props) => {
4292
4348
  seriesConfig: seriesOverrides,
4293
4349
  legend,
4294
4350
  legendLabels,
4351
+ legendTruncation,
4295
4352
  isSeriesCompare: legendMode === "seriesCompare",
4296
4353
  maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
4297
4354
  scaleConfig,
@@ -4313,6 +4370,8 @@ var TimeSeriesChartWrapper = (props) => {
4313
4370
  showY2MinorGridLines,
4314
4371
  showLineSmoothing,
4315
4372
  dataValuesDisplay,
4373
+ showXMajorTicks,
4374
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
4316
4375
  showYMajorTicks,
4317
4376
  showY2MajorTicks,
4318
4377
  yAxisMajorTickSize: yAxisMajorTickSizeNum,
@@ -4324,7 +4383,11 @@ var TimeSeriesChartWrapper = (props) => {
4324
4383
  yAxisMinorTickSize: yAxisMinorTickSizeNum,
4325
4384
  y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
4326
4385
  showYAxisWithZero,
4327
- showY2AxisWithZero
4386
+ showY2AxisWithZero,
4387
+ showXAxisLine,
4388
+ showYAxisLine,
4389
+ showY2AxisLine,
4390
+ xAxisMaxLabelParts
4328
4391
  }
4329
4392
  ));
4330
4393
  }, [
@@ -4339,6 +4402,7 @@ var TimeSeriesChartWrapper = (props) => {
4339
4402
  seriesOverrides,
4340
4403
  legend,
4341
4404
  legendLabels,
4405
+ legendTruncation,
4342
4406
  scaleConfig,
4343
4407
  onClick,
4344
4408
  handleChartClick,
@@ -4357,6 +4421,8 @@ var TimeSeriesChartWrapper = (props) => {
4357
4421
  showY2MinorGridLines,
4358
4422
  showLineSmoothing,
4359
4423
  dataValuesDisplay,
4424
+ showXMajorTicks,
4425
+ xAxisMajorTickSizeNum,
4360
4426
  showYMajorTicks,
4361
4427
  showY2MajorTicks,
4362
4428
  yAxisMajorTickSizeNum,
@@ -4369,7 +4435,11 @@ var TimeSeriesChartWrapper = (props) => {
4369
4435
  y2AxisMinorTickSizeNum,
4370
4436
  showYAxisWithZero,
4371
4437
  showY2AxisWithZero,
4372
- legendMode
4438
+ showXAxisLine,
4439
+ showYAxisLine,
4440
+ showY2AxisLine,
4441
+ legendMode,
4442
+ xAxisMaxLabelParts
4373
4443
  ]);
4374
4444
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
4375
4445
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);