@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/Area.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"]))};
@@ -1024,6 +1027,9 @@ var isTrellisEnabled = ({ options, featureFlags }) => {
1024
1027
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1025
1028
  return isTrellisFeatureFlagOn({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1026
1029
  };
1030
+ var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1031
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1032
+ };
1027
1033
  var AxesChartDataConfig = {
1028
1034
  label: (0, i18n_exports._)("Data configurations"),
1029
1035
  layout: [
@@ -1157,9 +1163,6 @@ var AxesChartDataConfigBubble = {
1157
1163
  }
1158
1164
  ])
1159
1165
  };
1160
- var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1161
- return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1162
- };
1163
1166
  var AcceleratedRenderEditorLayout = [
1164
1167
  [
1165
1168
  {
@@ -1169,7 +1172,7 @@ var AcceleratedRenderEditorLayout = [
1169
1172
  showEditor: isAcceleratedRenderFeatureFlagOn,
1170
1173
  editorProps: {
1171
1174
  help: (0, i18n_exports._)(
1172
- "Render visualizations faster for large datasets. Some functionalities might not be available in this mode."
1175
+ "Render visualizations faster for large datasets. Split series is not available in this mode."
1173
1176
  ),
1174
1177
  helpFormat: "under"
1175
1178
  // helpTextLink: {
@@ -1326,6 +1329,10 @@ var isTrellisEnabled3 = ({ options, featureFlags }) => {
1326
1329
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1327
1330
  return isTrellisFeatureFlagOn3({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1328
1331
  };
1332
+ var isAcceleratedRenderEnabled = ({ options, featureFlags }) => {
1333
+ const { acceleratedRender } = options;
1334
+ return isAcceleratedRenderFeatureFlagOn({ featureFlags }) && acceleratedRender;
1335
+ };
1329
1336
  var AxesChartDataDisplayBase = {
1330
1337
  label: (0, i18n_exports._)("Data display"),
1331
1338
  layout: [
@@ -1386,7 +1393,8 @@ var AxesChartDataDisplayBase = {
1386
1393
  {
1387
1394
  label: (0, i18n_exports._)("Split series"),
1388
1395
  option: "showSplitSeries",
1389
- editor: "editor.toggle"
1396
+ editor: "editor.toggle",
1397
+ isDisabled: isAcceleratedRenderEnabled
1390
1398
  }
1391
1399
  ],
1392
1400
  [
@@ -1394,7 +1402,23 @@ var AxesChartDataDisplayBase = {
1394
1402
  label: (0, i18n_exports._)("Independent y-axis for split series"),
1395
1403
  option: "showIndependentYRanges",
1396
1404
  editor: "editor.checkbox",
1397
- showEditor: ({ options }) => options.showSplitSeries
1405
+ showEditor: ({ options, featureFlags }) => options.showSplitSeries && !isAcceleratedRenderEnabled({ options, featureFlags })
1406
+ }
1407
+ ],
1408
+ [
1409
+ {
1410
+ label: (0, i18n_exports._)("Step position"),
1411
+ option: "stepPosition",
1412
+ editor: "editor.radioBar",
1413
+ editorProps: {
1414
+ values: [
1415
+ { label: (0, i18n_exports._)("Off"), value: "off" },
1416
+ { label: (0, i18n_exports._)("Before"), value: "before" },
1417
+ { label: (0, i18n_exports._)("After"), value: "after" }
1418
+ ]
1419
+ },
1420
+ showEditor: ({ options, featureFlags }) => isAcceleratedRenderEnabled({ options, featureFlags })
1421
+ // step position is only supported when accelerated render is enabled
1398
1422
  }
1399
1423
  ],
1400
1424
  ...TimechartTrellisEditorConfig
@@ -1582,7 +1606,7 @@ var AxesChartLegendWithTrellisAndMode = ({
1582
1606
  { label: (0, i18n_exports._)("Bottom"), value: "bottom" },
1583
1607
  { label: (0, i18n_exports._)("Off"), value: "off" }
1584
1608
  ],
1585
- tooltip: showLegendTooltip && (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display')
1609
+ tooltip: showLegendTooltip ? (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display') : void 0
1586
1610
  },
1587
1611
  isDisabled: showLegendTooltip ? ({ options }) => options.legendMode === "seriesCompare" : void 0,
1588
1612
  overrideDefaultValue: ({ options }) => (options == null ? void 0 : options.splitByLayout) === "trellis" ? "off" : "right"
@@ -2722,7 +2746,7 @@ var Cover = styled_components_default.div`
2722
2746
  bottom: 0;
2723
2747
  `;
2724
2748
  var Blocker = styled_components_default.div.attrs({
2725
- "data-splunk-visualization-version": "28.4.0 - 002bd482f"
2749
+ "data-splunk-visualization-version": "28.5.1 - 617766eb3"
2726
2750
  })`
2727
2751
  position: relative;
2728
2752
  width: 100%;
@@ -2803,7 +2827,7 @@ var withFixedSizeContainer = (Viz) => {
2803
2827
  FixSizeItem,
2804
2828
  {
2805
2829
  "data-test": "fix-size-item",
2806
- "data-splunk-visualization-version": "28.4.0 - 002bd482f",
2830
+ "data-splunk-visualization-version": "28.5.1 - 617766eb3",
2807
2831
  width,
2808
2832
  height,
2809
2833
  backgroundColor
@@ -3203,16 +3227,14 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
3203
3227
  splitDataSources[val] = (0, lodash_exports.cloneDeep)(
3204
3228
  (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
3205
3229
  );
3206
- splitDataSources[val].primary.data.fields = [
3207
- { name: fields[0].name },
3208
- ...dataSourceKeys.map((k) => ({
3209
- name: k
3210
- }))
3211
- ];
3230
+ splitDataSources[val].primary.data.fields = [{ name: fields[0].name }];
3212
3231
  splitDataSources[val].primary.data.columns = [[...columns[0]]];
3213
3232
  dataSourceKeys.forEach((dsKey) => {
3214
3233
  fields.forEach((field, idx) => {
3215
3234
  if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
3235
+ splitDataSources[val].primary.data.fields.push({
3236
+ name: dsKey
3237
+ });
3216
3238
  splitDataSources[val].primary.data.columns.push([...columns[idx]]);
3217
3239
  }
3218
3240
  });
@@ -3563,25 +3585,27 @@ var parseAxisValue = (val) => {
3563
3585
  const num = typeof val === "number" ? val : Number.parseFloat(val);
3564
3586
  return Number.isNaN(num) ? void 0 : num;
3565
3587
  };
3566
- var SideLegendWidth = 75;
3567
- var SeriesCompareLegendWidth = 200;
3588
+ var parseXAxisLineVisibility = (visibility) => {
3589
+ if (visibility === "hide") return false;
3590
+ if (visibility === "show") return true;
3591
+ return void 0;
3592
+ };
3568
3593
  var getLegend = (props) => {
3569
3594
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
3570
- const { isSeriesCompare } = props;
3595
+ const { isSeriesCompare, legendTruncation } = props;
3571
3596
  const commonLegendProps = {
3572
3597
  center: true,
3573
3598
  fontSize: 12,
3574
3599
  largerTiles: true,
3575
- hideSeriesValue: !isSeriesCompare
3600
+ hideSeriesValue: !isSeriesCompare,
3576
3601
  // Show values if in seriesCompare mode
3602
+ legendTruncation
3577
3603
  };
3578
3604
  switch (legendPlacement) {
3579
3605
  case "off":
3580
3606
  return false;
3581
3607
  case "left":
3582
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
3583
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3584
- }, commonLegendProps));
3608
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
3585
3609
  case "bottom":
3586
3610
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
3587
3611
  wrap: true
@@ -3591,9 +3615,7 @@ var getLegend = (props) => {
3591
3615
  wrap: true
3592
3616
  }, commonLegendProps));
3593
3617
  default:
3594
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
3595
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3596
- }, commonLegendProps));
3618
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
3597
3619
  }
3598
3620
  };
3599
3621
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -3654,9 +3676,7 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
3654
3676
  if (yAxisAbbreviation !== "none") {
3655
3677
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
3656
3678
  }
3657
- if (yAxisAbbreviation === "none") {
3658
- yConfig.y.width = 55;
3659
- } else {
3679
+ if (yAxisAbbreviation !== "none") {
3660
3680
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
3661
3681
  }
3662
3682
  if (yAxisLabelVisibility === "hide") {
@@ -3679,6 +3699,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3679
3699
  y2Config.y2.type = scaleType;
3680
3700
  if (axisAbbreviation !== "none") {
3681
3701
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
3702
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
3682
3703
  } else if (roundAxisLabelsToInteger) {
3683
3704
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
3684
3705
  }
@@ -3694,7 +3715,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3694
3715
  }
3695
3716
  return y2Config;
3696
3717
  };
3697
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField) => {
3718
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
3698
3719
  const seriesConfig = {};
3699
3720
  let spanGaps;
3700
3721
  let replaceNullsWithZero;
@@ -3721,6 +3742,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3721
3742
  );
3722
3743
  if (shouldAssignToY2) {
3723
3744
  seriesConfig[field].overrides.scale = "y2";
3745
+ } else {
3746
+ seriesConfig[field].overrides.scale = "y";
3724
3747
  }
3725
3748
  }
3726
3749
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -3733,6 +3756,11 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3733
3756
  if (fieldDashStyle) {
3734
3757
  seriesConfig[field].lineDashStyle = fieldDashStyle;
3735
3758
  }
3759
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
3760
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
3761
+ if (fieldStepPosition && fieldStepPosition !== "off") {
3762
+ seriesConfig[field].stepPosition = fieldStepPosition;
3763
+ }
3736
3764
  if (replaceNullsWithZero !== void 0) {
3737
3765
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
3738
3766
  }
@@ -3915,6 +3943,9 @@ var TimeSeriesChartWrapper = (props) => {
3915
3943
  backgroundColor,
3916
3944
  defaultFontColor,
3917
3945
  additionalTooltipValues,
3946
+ xAxisLineVisibility: xAxisLineVisibility,
3947
+ yAxisLineVisibility,
3948
+ y2AxisLineVisibility,
3918
3949
  showYAxisWithZero: showYAxisWithZeroFromProps,
3919
3950
  showY2AxisWithZero: showY2AxisWithZeroFromProps
3920
3951
  } = _a, otherOptions = __objRest(_a, [
@@ -3938,6 +3969,10 @@ var TimeSeriesChartWrapper = (props) => {
3938
3969
  "backgroundColor",
3939
3970
  "defaultFontColor",
3940
3971
  "additionalTooltipValues",
3972
+ // Extract axis line visibility options from props
3973
+ "xAxisLineVisibility",
3974
+ "yAxisLineVisibility",
3975
+ "y2AxisLineVisibility",
3941
3976
  // Extract showYAxisWithZero directly from props for accelerated render mode
3942
3977
  "showYAxisWithZero",
3943
3978
  "showY2AxisWithZero"
@@ -3950,6 +3985,7 @@ var TimeSeriesChartWrapper = (props) => {
3950
3985
  fieldColors,
3951
3986
  legendLabels: legendLabelsStr,
3952
3987
  legendMode,
3988
+ legendTruncation,
3953
3989
  "axisTitleX.text": xAxisTitleText,
3954
3990
  "axisTitleY.text": yAxisTitleText,
3955
3991
  "axisTitleY2.text": y2AxisTitleText,
@@ -3958,6 +3994,7 @@ var TimeSeriesChartWrapper = (props) => {
3958
3994
  "axisTitleY2.visibility": y2AxisTitleVisibility,
3959
3995
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
3960
3996
  "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
3997
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
3961
3998
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
3962
3999
  "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
3963
4000
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
@@ -3975,6 +4012,8 @@ var TimeSeriesChartWrapper = (props) => {
3975
4012
  lineWidth,
3976
4013
  lineDashStyle,
3977
4014
  fieldDashStyles: lineDashStylesByFieldStr,
4015
+ stepPosition,
4016
+ fieldStepPositions: stepPositionsByFieldStr,
3978
4017
  yAxisMin: yAxisMinRaw,
3979
4018
  yAxisMax: yAxisMaxRaw,
3980
4019
  y2AxisMin: y2AxisMinRaw,
@@ -3985,6 +4024,8 @@ var TimeSeriesChartWrapper = (props) => {
3985
4024
  showYMinorGridLines,
3986
4025
  showY2MinorGridLines,
3987
4026
  showLineSmoothing,
4027
+ xAxisMajorTickVisibility,
4028
+ xAxisMajorTickSize,
3988
4029
  yAxisMajorTickVisibility,
3989
4030
  y2AxisMajorTickVisibility,
3990
4031
  yAxisMajorTickSize,
@@ -4001,10 +4042,14 @@ var TimeSeriesChartWrapper = (props) => {
4001
4042
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
4002
4043
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
4003
4044
  const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
4045
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
4004
4046
  const showYMajorTicks = yAxisMajorTickVisibility === "show";
4005
4047
  const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
4006
4048
  const showYMinorTicks = yAxisMinorTickVisibility === "show";
4007
4049
  const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
4050
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
4051
+ const showYAxisLine = yAxisLineVisibility === "show";
4052
+ const showY2AxisLine = y2AxisLineVisibility === "show";
4008
4053
  const yAxisMin = parseAxisValue(yAxisMinRaw);
4009
4054
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
4010
4055
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
@@ -4019,13 +4064,15 @@ var TimeSeriesChartWrapper = (props) => {
4019
4064
  y2AxisMajorUnitFromSimpleXML,
4020
4065
  y2AxisMajorTickInterval
4021
4066
  );
4022
- const yAxisMajorTickSizeNum = yAxisMajorTickSize ? Number(yAxisMajorTickSize) : void 0;
4023
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize ? Number(y2AxisMajorTickSize) : void 0;
4024
- const yAxisMinorTickSizeNum = yAxisMinorTickSize ? Number(yAxisMinorTickSize) : void 0;
4025
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize ? Number(y2AxisMinorTickSize) : void 0;
4067
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
4068
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
4069
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
4070
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
4071
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
4026
4072
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
4027
4073
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
4028
4074
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
4075
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
4029
4076
  const legendLabels = parseArrayOption(legendLabelsStr);
4030
4077
  const bgColor = backgroundColor || bgColorFromOptions;
4031
4078
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
@@ -4113,7 +4160,9 @@ var TimeSeriesChartWrapper = (props) => {
4113
4160
  nullValueMode,
4114
4161
  markerDisplay,
4115
4162
  lineDashStyle,
4116
- lineDashStylesByField
4163
+ lineDashStylesByField,
4164
+ stepPosition,
4165
+ stepPositionsByField
4117
4166
  ),
4118
4167
  [
4119
4168
  yFields,
@@ -4124,7 +4173,9 @@ var TimeSeriesChartWrapper = (props) => {
4124
4173
  nullValueMode,
4125
4174
  markerDisplay,
4126
4175
  lineDashStyle,
4127
- lineDashStylesByField
4176
+ lineDashStylesByField,
4177
+ stepPosition,
4178
+ stepPositionsByField
4128
4179
  ]
4129
4180
  );
4130
4181
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -4139,9 +4190,14 @@ var TimeSeriesChartWrapper = (props) => {
4139
4190
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
4140
4191
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
4141
4192
  );
4193
+ const isSeriesCompare = legendMode === "seriesCompare";
4142
4194
  const legend = (0, react_exports.useMemo)(
4143
- () => getLegend({ legendDisplay, isSeriesCompare: legendMode === "seriesCompare" }),
4144
- [legendDisplay, legendMode]
4195
+ () => getLegend({
4196
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
4197
+ isSeriesCompare,
4198
+ legendTruncation
4199
+ }),
4200
+ [legendDisplay, isSeriesCompare, legendTruncation]
4145
4201
  );
4146
4202
  const handleChartClick = react_exports.useCallback(
4147
4203
  (event) => {
@@ -4246,6 +4302,7 @@ var TimeSeriesChartWrapper = (props) => {
4246
4302
  seriesConfig: seriesOverrides,
4247
4303
  legend,
4248
4304
  legendLabels,
4305
+ legendTruncation,
4249
4306
  isSeriesCompare: legendMode === "seriesCompare",
4250
4307
  maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
4251
4308
  scaleConfig,
@@ -4267,6 +4324,8 @@ var TimeSeriesChartWrapper = (props) => {
4267
4324
  showY2MinorGridLines,
4268
4325
  showLineSmoothing,
4269
4326
  dataValuesDisplay,
4327
+ showXMajorTicks,
4328
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
4270
4329
  showYMajorTicks,
4271
4330
  showY2MajorTicks,
4272
4331
  yAxisMajorTickSize: yAxisMajorTickSizeNum,
@@ -4278,7 +4337,11 @@ var TimeSeriesChartWrapper = (props) => {
4278
4337
  yAxisMinorTickSize: yAxisMinorTickSizeNum,
4279
4338
  y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
4280
4339
  showYAxisWithZero,
4281
- showY2AxisWithZero
4340
+ showY2AxisWithZero,
4341
+ showXAxisLine,
4342
+ showYAxisLine,
4343
+ showY2AxisLine,
4344
+ xAxisMaxLabelParts
4282
4345
  }
4283
4346
  ));
4284
4347
  }, [
@@ -4293,6 +4356,7 @@ var TimeSeriesChartWrapper = (props) => {
4293
4356
  seriesOverrides,
4294
4357
  legend,
4295
4358
  legendLabels,
4359
+ legendTruncation,
4296
4360
  scaleConfig,
4297
4361
  onClick,
4298
4362
  handleChartClick,
@@ -4311,6 +4375,8 @@ var TimeSeriesChartWrapper = (props) => {
4311
4375
  showY2MinorGridLines,
4312
4376
  showLineSmoothing,
4313
4377
  dataValuesDisplay,
4378
+ showXMajorTicks,
4379
+ xAxisMajorTickSizeNum,
4314
4380
  showYMajorTicks,
4315
4381
  showY2MajorTicks,
4316
4382
  yAxisMajorTickSizeNum,
@@ -4323,7 +4389,11 @@ var TimeSeriesChartWrapper = (props) => {
4323
4389
  y2AxisMinorTickSizeNum,
4324
4390
  showYAxisWithZero,
4325
4391
  showY2AxisWithZero,
4326
- legendMode
4392
+ showXAxisLine,
4393
+ showYAxisLine,
4394
+ showY2AxisLine,
4395
+ legendMode,
4396
+ xAxisMaxLabelParts
4327
4397
  ]);
4328
4398
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
4329
4399
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);