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