@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/Scatter.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"]))};
@@ -1129,7 +1132,7 @@ var TrellisBackgroundColorEditor = {
1129
1132
  showEditor: isTrellisEnabled
1130
1133
  };
1131
1134
 
1132
- // src/common/editorConfig/AxesChartDataDisplay.ts
1135
+ // src/common/editorConfig/AxesChartDataConfig.ts
1133
1136
  var isTrellisFeatureFlagOn2 = ({ featureFlags }) => {
1134
1137
  return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1135
1138
  };
@@ -1137,146 +1140,8 @@ var isTrellisEnabled2 = ({ options, featureFlags }) => {
1137
1140
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1138
1141
  return isTrellisFeatureFlagOn2({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1139
1142
  };
1140
- var AxesChartDataDisplayBase = {
1141
- label: (0, i18n_exports._)("Data display"),
1142
- layout: [
1143
- [
1144
- {
1145
- label: (0, i18n_exports._)("Stack mode"),
1146
- option: "stackMode",
1147
- editor: "editor.select",
1148
- editorProps: {
1149
- values: [
1150
- { label: (0, i18n_exports._)("Not stacked"), value: "auto" },
1151
- { label: (0, i18n_exports._)("Stacked"), value: "stacked" },
1152
- { label: (0, i18n_exports._)("Stacked 100%"), value: "stacked100" }
1153
- ]
1154
- }
1155
- }
1156
- ],
1157
- [
1158
- {
1159
- label: (0, i18n_exports._)("Null value display"),
1160
- option: "nullValueDisplay",
1161
- editor: "editor.radioBar",
1162
- editorProps: {
1163
- values: [
1164
- { label: (0, i18n_exports._)("Gaps"), value: "gaps" },
1165
- { label: (0, i18n_exports._)("Zero"), value: "zero" },
1166
- { label: (0, i18n_exports._)("Connect"), value: "connect" }
1167
- ]
1168
- }
1169
- }
1170
- ],
1171
- [
1172
- {
1173
- label: (0, i18n_exports._)("Data value display"),
1174
- option: "dataValuesDisplay",
1175
- editor: "editor.radioBar",
1176
- editorProps: {
1177
- values: [
1178
- { label: (0, i18n_exports._)("Off"), value: "off" },
1179
- { label: (0, i18n_exports._)("All"), value: "all" },
1180
- { label: (0, i18n_exports._)("Min/Max"), value: "minmax" }
1181
- ]
1182
- }
1183
- }
1184
- ],
1185
- [
1186
- {
1187
- label: (0, i18n_exports._)("Overlay fields"),
1188
- option: "overlayFields",
1189
- editor: "editor.columnMultiSelectionByFieldNameEditor",
1190
- editorProps: {
1191
- filterByTypes: ["number"]
1192
- },
1193
- isDisabled: isTrellisEnabled2
1194
- }
1195
- ],
1196
- [
1197
- {
1198
- label: (0, i18n_exports._)("Split series"),
1199
- option: "showSplitSeries",
1200
- editor: "editor.toggle"
1201
- }
1202
- ],
1203
- [
1204
- {
1205
- label: (0, i18n_exports._)("Independent y-axis for split series"),
1206
- option: "showIndependentYRanges",
1207
- editor: "editor.checkbox",
1208
- showEditor: ({ options }) => options.showSplitSeries
1209
- }
1210
- ],
1211
- ...TimechartTrellisEditorConfig
1212
- ]
1213
- };
1214
- var AxesChartDataDisplayBar = {
1215
- label: AxesChartDataDisplayBase.label,
1216
- layout: [
1217
- AxesChartDataDisplayBase.layout[0],
1218
- // remove null value display editor at index 1
1219
- ...AxesChartDataDisplayBase.layout.slice(2)
1220
- ]
1221
- };
1222
- var AxesChartDataDisplayScatter = {
1223
- label: AxesChartDataDisplayBase.label,
1224
- layout: [
1225
- ...TrellisEditorConfig,
1226
- [
1227
- {
1228
- label: (0, i18n_exports._)("Shared y-axis scale"),
1229
- option: "trellisSharedScale",
1230
- editor: "editor.checkbox",
1231
- showEditor: isTrellisEnabled2
1232
- }
1233
- ]
1234
- ]
1235
- };
1236
- var AxesChartDataDisplayColumn = {
1237
- label: AxesChartDataDisplayBase.label,
1238
- layout: [
1239
- AxesChartDataDisplayBase.layout[0],
1240
- // remove null value display and add data value display
1241
- AxesChartDataDisplayBase.layout[2],
1242
- [
1243
- {
1244
- label: (0, i18n_exports._)("Show tooltip on hover"),
1245
- option: "showTooltip",
1246
- editor: "editor.checkbox"
1247
- }
1248
- ],
1249
- ...AxesChartDataDisplayBase.layout.slice(3),
1250
- [
1251
- {
1252
- label: (0, i18n_exports._)("Column grouping mode"),
1253
- option: "columnGrouping",
1254
- editor: "editor.radioBar",
1255
- editorProps: {
1256
- values: [
1257
- { label: (0, i18n_exports._)("Auto"), value: "auto" },
1258
- { label: (0, i18n_exports._)("Overlay"), value: "overlay" }
1259
- ]
1260
- }
1261
- }
1262
- ]
1263
- ]
1264
- };
1265
- var AxesChartDataDisplayLine = {
1266
- label: AxesChartDataDisplayBase.label,
1267
- layout: [
1268
- // remove stacked mode editor
1269
- ...AxesChartDataDisplayBase.layout.slice(1)
1270
- ]
1271
- };
1272
-
1273
- // src/common/editorConfig/AxesChartDataConfig.ts
1274
- var isTrellisFeatureFlagOn3 = ({ featureFlags }) => {
1275
- return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1276
- };
1277
- var isTrellisEnabled3 = ({ options, featureFlags }) => {
1278
- const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1279
- return isTrellisFeatureFlagOn3({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1143
+ var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1144
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1280
1145
  };
1281
1146
  var AxesChartDataConfig = {
1282
1147
  label: (0, i18n_exports._)("Data configurations"),
@@ -1339,7 +1204,7 @@ var AxesChartDataConfigBar = {
1339
1204
  supportsDSL: true,
1340
1205
  expectedDataPrimitive: ["series", "frame"]
1341
1206
  },
1342
- isDisabled: isTrellisEnabled3
1207
+ isDisabled: isTrellisEnabled2
1343
1208
  }
1344
1209
  ])
1345
1210
  };
@@ -1411,9 +1276,6 @@ var AxesChartDataConfigBubble = {
1411
1276
  }
1412
1277
  ])
1413
1278
  };
1414
- var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1415
- return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1416
- };
1417
1279
  var AcceleratedRenderEditorLayout = [
1418
1280
  [
1419
1281
  {
@@ -1423,7 +1285,7 @@ var AcceleratedRenderEditorLayout = [
1423
1285
  showEditor: isAcceleratedRenderFeatureFlagOn,
1424
1286
  editorProps: {
1425
1287
  help: (0, i18n_exports._)(
1426
- "Render visualizations faster for large datasets. Some functionalities might not be available in this mode."
1288
+ "Render visualizations faster for large datasets. Split series is not available in this mode."
1427
1289
  ),
1428
1290
  helpFormat: "under"
1429
1291
  // helpTextLink: {
@@ -1468,6 +1330,168 @@ var AxesChartDataConfigLine = __spreadProps(__spreadValues({}, AxesChartDataConf
1468
1330
  layout: [...AcceleratedRenderEditorLayout, ...AxesChartDataConfigAreaColumnLine.layout]
1469
1331
  });
1470
1332
 
1333
+ // src/common/editorConfig/AxesChartDataDisplay.ts
1334
+ var isTrellisFeatureFlagOn3 = ({ featureFlags }) => {
1335
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1336
+ };
1337
+ var isTrellisEnabled3 = ({ options, featureFlags }) => {
1338
+ const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1339
+ return isTrellisFeatureFlagOn3({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1340
+ };
1341
+ var isAcceleratedRenderEnabled = ({ options, featureFlags }) => {
1342
+ const { acceleratedRender } = options;
1343
+ return isAcceleratedRenderFeatureFlagOn({ featureFlags }) && acceleratedRender;
1344
+ };
1345
+ var AxesChartDataDisplayBase = {
1346
+ label: (0, i18n_exports._)("Data display"),
1347
+ layout: [
1348
+ [
1349
+ {
1350
+ label: (0, i18n_exports._)("Stack mode"),
1351
+ option: "stackMode",
1352
+ editor: "editor.select",
1353
+ editorProps: {
1354
+ values: [
1355
+ { label: (0, i18n_exports._)("Not stacked"), value: "auto" },
1356
+ { label: (0, i18n_exports._)("Stacked"), value: "stacked" },
1357
+ { label: (0, i18n_exports._)("Stacked 100%"), value: "stacked100" }
1358
+ ]
1359
+ }
1360
+ }
1361
+ ],
1362
+ [
1363
+ {
1364
+ label: (0, i18n_exports._)("Null value display"),
1365
+ option: "nullValueDisplay",
1366
+ editor: "editor.radioBar",
1367
+ editorProps: {
1368
+ values: [
1369
+ { label: (0, i18n_exports._)("Gaps"), value: "gaps" },
1370
+ { label: (0, i18n_exports._)("Zero"), value: "zero" },
1371
+ { label: (0, i18n_exports._)("Connect"), value: "connect" }
1372
+ ]
1373
+ }
1374
+ }
1375
+ ],
1376
+ [
1377
+ {
1378
+ label: (0, i18n_exports._)("Data value display"),
1379
+ option: "dataValuesDisplay",
1380
+ editor: "editor.radioBar",
1381
+ editorProps: {
1382
+ values: [
1383
+ { label: (0, i18n_exports._)("Off"), value: "off" },
1384
+ { label: (0, i18n_exports._)("All"), value: "all" },
1385
+ { label: (0, i18n_exports._)("Min/Max"), value: "minmax" }
1386
+ ]
1387
+ }
1388
+ }
1389
+ ],
1390
+ [
1391
+ {
1392
+ label: (0, i18n_exports._)("Overlay fields"),
1393
+ option: "overlayFields",
1394
+ editor: "editor.columnMultiSelectionByFieldNameEditor",
1395
+ editorProps: {
1396
+ filterByTypes: ["number"]
1397
+ },
1398
+ isDisabled: isTrellisEnabled3
1399
+ }
1400
+ ],
1401
+ [
1402
+ {
1403
+ label: (0, i18n_exports._)("Split series"),
1404
+ option: "showSplitSeries",
1405
+ editor: "editor.toggle",
1406
+ isDisabled: isAcceleratedRenderEnabled
1407
+ }
1408
+ ],
1409
+ [
1410
+ {
1411
+ label: (0, i18n_exports._)("Independent y-axis for split series"),
1412
+ option: "showIndependentYRanges",
1413
+ editor: "editor.checkbox",
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
1431
+ }
1432
+ ],
1433
+ ...TimechartTrellisEditorConfig
1434
+ ]
1435
+ };
1436
+ var AxesChartDataDisplayBar = {
1437
+ label: AxesChartDataDisplayBase.label,
1438
+ layout: [
1439
+ AxesChartDataDisplayBase.layout[0],
1440
+ // remove null value display editor at index 1
1441
+ ...AxesChartDataDisplayBase.layout.slice(2)
1442
+ ]
1443
+ };
1444
+ var AxesChartDataDisplayScatter = {
1445
+ label: AxesChartDataDisplayBase.label,
1446
+ layout: [
1447
+ ...TrellisEditorConfig,
1448
+ [
1449
+ {
1450
+ label: (0, i18n_exports._)("Shared y-axis scale"),
1451
+ option: "trellisSharedScale",
1452
+ editor: "editor.checkbox",
1453
+ showEditor: isTrellisEnabled3
1454
+ }
1455
+ ]
1456
+ ]
1457
+ };
1458
+ var AxesChartDataDisplayColumn = {
1459
+ label: AxesChartDataDisplayBase.label,
1460
+ layout: [
1461
+ AxesChartDataDisplayBase.layout[0],
1462
+ // remove null value display and add data value display
1463
+ AxesChartDataDisplayBase.layout[2],
1464
+ [
1465
+ {
1466
+ label: (0, i18n_exports._)("Show tooltip on hover"),
1467
+ option: "showTooltip",
1468
+ editor: "editor.checkbox"
1469
+ }
1470
+ ],
1471
+ ...AxesChartDataDisplayBase.layout.slice(3),
1472
+ [
1473
+ {
1474
+ label: (0, i18n_exports._)("Column grouping mode"),
1475
+ option: "columnGrouping",
1476
+ editor: "editor.radioBar",
1477
+ editorProps: {
1478
+ values: [
1479
+ { label: (0, i18n_exports._)("Auto"), value: "auto" },
1480
+ { label: (0, i18n_exports._)("Overlay"), value: "overlay" }
1481
+ ]
1482
+ }
1483
+ }
1484
+ ]
1485
+ ]
1486
+ };
1487
+ var AxesChartDataDisplayLine = {
1488
+ label: AxesChartDataDisplayBase.label,
1489
+ layout: [
1490
+ // remove stacked mode editor
1491
+ ...AxesChartDataDisplayBase.layout.slice(1)
1492
+ ]
1493
+ };
1494
+
1471
1495
  // src/common/editorConfig/AxesChartXGridAndLabels.ts
1472
1496
  var AxesChartXGridAndLabelsCommon = {
1473
1497
  label: (0, i18n_exports._)("X-axis grid and labels"),
@@ -1863,7 +1887,7 @@ var AxesChartLegendWithTrellisAndMode = ({
1863
1887
  { label: (0, i18n_exports._)("Bottom"), value: "bottom" },
1864
1888
  { label: (0, i18n_exports._)("Off"), value: "off" }
1865
1889
  ],
1866
- tooltip: showLegendTooltip && (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display')
1890
+ tooltip: showLegendTooltip ? (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display') : void 0
1867
1891
  },
1868
1892
  isDisabled: showLegendTooltip ? ({ options }) => options.legendMode === "seriesCompare" : void 0,
1869
1893
  overrideDefaultValue: ({ options }) => (options == null ? void 0 : options.splitByLayout) === "trellis" ? "off" : "right"
@@ -2500,7 +2524,7 @@ var Cover = styled_components_default.div`
2500
2524
  bottom: 0;
2501
2525
  `;
2502
2526
  var Blocker = styled_components_default.div.attrs({
2503
- "data-splunk-visualization-version": "28.4.0 - 002bd482f"
2527
+ "data-splunk-visualization-version": "28.5.1 - 617766eb3"
2504
2528
  })`
2505
2529
  position: relative;
2506
2530
  width: 100%;
@@ -2581,7 +2605,7 @@ var withFixedSizeContainer = (Viz) => {
2581
2605
  FixSizeItem,
2582
2606
  {
2583
2607
  "data-test": "fix-size-item",
2584
- "data-splunk-visualization-version": "28.4.0 - 002bd482f",
2608
+ "data-splunk-visualization-version": "28.5.1 - 617766eb3",
2585
2609
  width,
2586
2610
  height,
2587
2611
  backgroundColor
@@ -2981,16 +3005,14 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
2981
3005
  splitDataSources[val] = (0, lodash_exports.cloneDeep)(
2982
3006
  (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
2983
3007
  );
2984
- splitDataSources[val].primary.data.fields = [
2985
- { name: fields[0].name },
2986
- ...dataSourceKeys.map((k) => ({
2987
- name: k
2988
- }))
2989
- ];
3008
+ splitDataSources[val].primary.data.fields = [{ name: fields[0].name }];
2990
3009
  splitDataSources[val].primary.data.columns = [[...columns[0]]];
2991
3010
  dataSourceKeys.forEach((dsKey) => {
2992
3011
  fields.forEach((field, idx) => {
2993
3012
  if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
3013
+ splitDataSources[val].primary.data.fields.push({
3014
+ name: dsKey
3015
+ });
2994
3016
  splitDataSources[val].primary.data.columns.push([...columns[idx]]);
2995
3017
  }
2996
3018
  });
@@ -3317,25 +3339,27 @@ var parseAxisValue = (val) => {
3317
3339
  const num = typeof val === "number" ? val : Number.parseFloat(val);
3318
3340
  return Number.isNaN(num) ? void 0 : num;
3319
3341
  };
3320
- var SideLegendWidth = 75;
3321
- var SeriesCompareLegendWidth = 200;
3342
+ var parseXAxisLineVisibility = (visibility) => {
3343
+ if (visibility === "hide") return false;
3344
+ if (visibility === "show") return true;
3345
+ return void 0;
3346
+ };
3322
3347
  var getLegend = (props) => {
3323
3348
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
3324
- const { isSeriesCompare } = props;
3349
+ const { isSeriesCompare, legendTruncation } = props;
3325
3350
  const commonLegendProps = {
3326
3351
  center: true,
3327
3352
  fontSize: 12,
3328
3353
  largerTiles: true,
3329
- hideSeriesValue: !isSeriesCompare
3354
+ hideSeriesValue: !isSeriesCompare,
3330
3355
  // Show values if in seriesCompare mode
3356
+ legendTruncation
3331
3357
  };
3332
3358
  switch (legendPlacement) {
3333
3359
  case "off":
3334
3360
  return false;
3335
3361
  case "left":
3336
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
3337
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3338
- }, commonLegendProps));
3362
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
3339
3363
  case "bottom":
3340
3364
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
3341
3365
  wrap: true
@@ -3345,9 +3369,7 @@ var getLegend = (props) => {
3345
3369
  wrap: true
3346
3370
  }, commonLegendProps));
3347
3371
  default:
3348
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
3349
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3350
- }, commonLegendProps));
3372
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
3351
3373
  }
3352
3374
  };
3353
3375
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -3408,9 +3430,7 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
3408
3430
  if (yAxisAbbreviation !== "none") {
3409
3431
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
3410
3432
  }
3411
- if (yAxisAbbreviation === "none") {
3412
- yConfig.y.width = 55;
3413
- } else {
3433
+ if (yAxisAbbreviation !== "none") {
3414
3434
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
3415
3435
  }
3416
3436
  if (yAxisLabelVisibility === "hide") {
@@ -3433,6 +3453,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3433
3453
  y2Config.y2.type = scaleType;
3434
3454
  if (axisAbbreviation !== "none") {
3435
3455
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
3456
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
3436
3457
  } else if (roundAxisLabelsToInteger) {
3437
3458
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
3438
3459
  }
@@ -3448,7 +3469,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3448
3469
  }
3449
3470
  return y2Config;
3450
3471
  };
3451
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField) => {
3472
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
3452
3473
  const seriesConfig = {};
3453
3474
  let spanGaps;
3454
3475
  let replaceNullsWithZero;
@@ -3475,6 +3496,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3475
3496
  );
3476
3497
  if (shouldAssignToY2) {
3477
3498
  seriesConfig[field].overrides.scale = "y2";
3499
+ } else {
3500
+ seriesConfig[field].overrides.scale = "y";
3478
3501
  }
3479
3502
  }
3480
3503
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -3487,6 +3510,11 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3487
3510
  if (fieldDashStyle) {
3488
3511
  seriesConfig[field].lineDashStyle = fieldDashStyle;
3489
3512
  }
3513
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
3514
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
3515
+ if (fieldStepPosition && fieldStepPosition !== "off") {
3516
+ seriesConfig[field].stepPosition = fieldStepPosition;
3517
+ }
3490
3518
  if (replaceNullsWithZero !== void 0) {
3491
3519
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
3492
3520
  }
@@ -3669,6 +3697,9 @@ var TimeSeriesChartWrapper = (props) => {
3669
3697
  backgroundColor,
3670
3698
  defaultFontColor,
3671
3699
  additionalTooltipValues,
3700
+ xAxisLineVisibility: xAxisLineVisibility,
3701
+ yAxisLineVisibility,
3702
+ y2AxisLineVisibility,
3672
3703
  showYAxisWithZero: showYAxisWithZeroFromProps,
3673
3704
  showY2AxisWithZero: showY2AxisWithZeroFromProps
3674
3705
  } = _a, otherOptions = __objRest(_a, [
@@ -3692,6 +3723,10 @@ var TimeSeriesChartWrapper = (props) => {
3692
3723
  "backgroundColor",
3693
3724
  "defaultFontColor",
3694
3725
  "additionalTooltipValues",
3726
+ // Extract axis line visibility options from props
3727
+ "xAxisLineVisibility",
3728
+ "yAxisLineVisibility",
3729
+ "y2AxisLineVisibility",
3695
3730
  // Extract showYAxisWithZero directly from props for accelerated render mode
3696
3731
  "showYAxisWithZero",
3697
3732
  "showY2AxisWithZero"
@@ -3704,6 +3739,7 @@ var TimeSeriesChartWrapper = (props) => {
3704
3739
  fieldColors,
3705
3740
  legendLabels: legendLabelsStr,
3706
3741
  legendMode,
3742
+ legendTruncation,
3707
3743
  "axisTitleX.text": xAxisTitleText,
3708
3744
  "axisTitleY.text": yAxisTitleText,
3709
3745
  "axisTitleY2.text": y2AxisTitleText,
@@ -3712,6 +3748,7 @@ var TimeSeriesChartWrapper = (props) => {
3712
3748
  "axisTitleY2.visibility": y2AxisTitleVisibility,
3713
3749
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
3714
3750
  "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
3751
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
3715
3752
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
3716
3753
  "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
3717
3754
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
@@ -3729,6 +3766,8 @@ var TimeSeriesChartWrapper = (props) => {
3729
3766
  lineWidth,
3730
3767
  lineDashStyle,
3731
3768
  fieldDashStyles: lineDashStylesByFieldStr,
3769
+ stepPosition,
3770
+ fieldStepPositions: stepPositionsByFieldStr,
3732
3771
  yAxisMin: yAxisMinRaw,
3733
3772
  yAxisMax: yAxisMaxRaw,
3734
3773
  y2AxisMin: y2AxisMinRaw,
@@ -3739,6 +3778,8 @@ var TimeSeriesChartWrapper = (props) => {
3739
3778
  showYMinorGridLines,
3740
3779
  showY2MinorGridLines,
3741
3780
  showLineSmoothing,
3781
+ xAxisMajorTickVisibility,
3782
+ xAxisMajorTickSize,
3742
3783
  yAxisMajorTickVisibility,
3743
3784
  y2AxisMajorTickVisibility,
3744
3785
  yAxisMajorTickSize,
@@ -3755,10 +3796,14 @@ var TimeSeriesChartWrapper = (props) => {
3755
3796
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
3756
3797
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
3757
3798
  const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
3799
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
3758
3800
  const showYMajorTicks = yAxisMajorTickVisibility === "show";
3759
3801
  const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
3760
3802
  const showYMinorTicks = yAxisMinorTickVisibility === "show";
3761
3803
  const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
3804
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
3805
+ const showYAxisLine = yAxisLineVisibility === "show";
3806
+ const showY2AxisLine = y2AxisLineVisibility === "show";
3762
3807
  const yAxisMin = parseAxisValue(yAxisMinRaw);
3763
3808
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
3764
3809
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
@@ -3773,13 +3818,15 @@ var TimeSeriesChartWrapper = (props) => {
3773
3818
  y2AxisMajorUnitFromSimpleXML,
3774
3819
  y2AxisMajorTickInterval
3775
3820
  );
3776
- const yAxisMajorTickSizeNum = yAxisMajorTickSize ? Number(yAxisMajorTickSize) : void 0;
3777
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize ? Number(y2AxisMajorTickSize) : void 0;
3778
- const yAxisMinorTickSizeNum = yAxisMinorTickSize ? Number(yAxisMinorTickSize) : void 0;
3779
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize ? Number(y2AxisMinorTickSize) : void 0;
3821
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
3822
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
3823
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
3824
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
3825
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
3780
3826
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
3781
3827
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
3782
3828
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
3829
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
3783
3830
  const legendLabels = parseArrayOption(legendLabelsStr);
3784
3831
  const bgColor = backgroundColor || bgColorFromOptions;
3785
3832
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
@@ -3867,7 +3914,9 @@ var TimeSeriesChartWrapper = (props) => {
3867
3914
  nullValueMode,
3868
3915
  markerDisplay,
3869
3916
  lineDashStyle,
3870
- lineDashStylesByField
3917
+ lineDashStylesByField,
3918
+ stepPosition,
3919
+ stepPositionsByField
3871
3920
  ),
3872
3921
  [
3873
3922
  yFields,
@@ -3878,7 +3927,9 @@ var TimeSeriesChartWrapper = (props) => {
3878
3927
  nullValueMode,
3879
3928
  markerDisplay,
3880
3929
  lineDashStyle,
3881
- lineDashStylesByField
3930
+ lineDashStylesByField,
3931
+ stepPosition,
3932
+ stepPositionsByField
3882
3933
  ]
3883
3934
  );
3884
3935
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -3893,9 +3944,14 @@ var TimeSeriesChartWrapper = (props) => {
3893
3944
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
3894
3945
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
3895
3946
  );
3947
+ const isSeriesCompare = legendMode === "seriesCompare";
3896
3948
  const legend = (0, react_exports.useMemo)(
3897
- () => getLegend({ legendDisplay, isSeriesCompare: legendMode === "seriesCompare" }),
3898
- [legendDisplay, legendMode]
3949
+ () => getLegend({
3950
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
3951
+ isSeriesCompare,
3952
+ legendTruncation
3953
+ }),
3954
+ [legendDisplay, isSeriesCompare, legendTruncation]
3899
3955
  );
3900
3956
  const handleChartClick = react_exports.useCallback(
3901
3957
  (event) => {
@@ -4000,6 +4056,7 @@ var TimeSeriesChartWrapper = (props) => {
4000
4056
  seriesConfig: seriesOverrides,
4001
4057
  legend,
4002
4058
  legendLabels,
4059
+ legendTruncation,
4003
4060
  isSeriesCompare: legendMode === "seriesCompare",
4004
4061
  maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
4005
4062
  scaleConfig,
@@ -4021,6 +4078,8 @@ var TimeSeriesChartWrapper = (props) => {
4021
4078
  showY2MinorGridLines,
4022
4079
  showLineSmoothing,
4023
4080
  dataValuesDisplay,
4081
+ showXMajorTicks,
4082
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
4024
4083
  showYMajorTicks,
4025
4084
  showY2MajorTicks,
4026
4085
  yAxisMajorTickSize: yAxisMajorTickSizeNum,
@@ -4032,7 +4091,11 @@ var TimeSeriesChartWrapper = (props) => {
4032
4091
  yAxisMinorTickSize: yAxisMinorTickSizeNum,
4033
4092
  y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
4034
4093
  showYAxisWithZero,
4035
- showY2AxisWithZero
4094
+ showY2AxisWithZero,
4095
+ showXAxisLine,
4096
+ showYAxisLine,
4097
+ showY2AxisLine,
4098
+ xAxisMaxLabelParts
4036
4099
  }
4037
4100
  ));
4038
4101
  }, [
@@ -4047,6 +4110,7 @@ var TimeSeriesChartWrapper = (props) => {
4047
4110
  seriesOverrides,
4048
4111
  legend,
4049
4112
  legendLabels,
4113
+ legendTruncation,
4050
4114
  scaleConfig,
4051
4115
  onClick,
4052
4116
  handleChartClick,
@@ -4065,6 +4129,8 @@ var TimeSeriesChartWrapper = (props) => {
4065
4129
  showY2MinorGridLines,
4066
4130
  showLineSmoothing,
4067
4131
  dataValuesDisplay,
4132
+ showXMajorTicks,
4133
+ xAxisMajorTickSizeNum,
4068
4134
  showYMajorTicks,
4069
4135
  showY2MajorTicks,
4070
4136
  yAxisMajorTickSizeNum,
@@ -4077,7 +4143,11 @@ var TimeSeriesChartWrapper = (props) => {
4077
4143
  y2AxisMinorTickSizeNum,
4078
4144
  showYAxisWithZero,
4079
4145
  showY2AxisWithZero,
4080
- legendMode
4146
+ showXAxisLine,
4147
+ showYAxisLine,
4148
+ showY2AxisLine,
4149
+ legendMode,
4150
+ xAxisMaxLabelParts
4081
4151
  ]);
4082
4152
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
4083
4153
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);