@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/Scatter.js CHANGED
@@ -1129,7 +1129,7 @@ var TrellisBackgroundColorEditor = {
1129
1129
  showEditor: isTrellisEnabled
1130
1130
  };
1131
1131
 
1132
- // src/common/editorConfig/AxesChartDataDisplay.ts
1132
+ // src/common/editorConfig/AxesChartDataConfig.ts
1133
1133
  var isTrellisFeatureFlagOn2 = ({ featureFlags }) => {
1134
1134
  return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1135
1135
  };
@@ -1137,146 +1137,8 @@ var isTrellisEnabled2 = ({ options, featureFlags }) => {
1137
1137
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1138
1138
  return isTrellisFeatureFlagOn2({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1139
1139
  };
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;
1140
+ var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1141
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1280
1142
  };
1281
1143
  var AxesChartDataConfig = {
1282
1144
  label: (0, i18n_exports._)("Data configurations"),
@@ -1339,7 +1201,7 @@ var AxesChartDataConfigBar = {
1339
1201
  supportsDSL: true,
1340
1202
  expectedDataPrimitive: ["series", "frame"]
1341
1203
  },
1342
- isDisabled: isTrellisEnabled3
1204
+ isDisabled: isTrellisEnabled2
1343
1205
  }
1344
1206
  ])
1345
1207
  };
@@ -1411,9 +1273,6 @@ var AxesChartDataConfigBubble = {
1411
1273
  }
1412
1274
  ])
1413
1275
  };
1414
- var isAcceleratedRenderFeatureFlagOn = ({ featureFlags }) => {
1415
- return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableAcceleratedRender);
1416
- };
1417
1276
  var AcceleratedRenderEditorLayout = [
1418
1277
  [
1419
1278
  {
@@ -1423,7 +1282,7 @@ var AcceleratedRenderEditorLayout = [
1423
1282
  showEditor: isAcceleratedRenderFeatureFlagOn,
1424
1283
  editorProps: {
1425
1284
  help: (0, i18n_exports._)(
1426
- "Render visualizations faster for large datasets. Some functionalities might not be available in this mode."
1285
+ "Render visualizations faster for large datasets. Split series is not available in this mode."
1427
1286
  ),
1428
1287
  helpFormat: "under"
1429
1288
  // helpTextLink: {
@@ -1468,6 +1327,168 @@ var AxesChartDataConfigLine = __spreadProps(__spreadValues({}, AxesChartDataConf
1468
1327
  layout: [...AcceleratedRenderEditorLayout, ...AxesChartDataConfigAreaColumnLine.layout]
1469
1328
  });
1470
1329
 
1330
+ // src/common/editorConfig/AxesChartDataDisplay.ts
1331
+ var isTrellisFeatureFlagOn3 = ({ featureFlags }) => {
1332
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1333
+ };
1334
+ var isTrellisEnabled3 = ({ options, featureFlags }) => {
1335
+ const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1336
+ return isTrellisFeatureFlagOn3({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1337
+ };
1338
+ var isAcceleratedRenderEnabled = ({ options, featureFlags }) => {
1339
+ const { acceleratedRender } = options;
1340
+ return isAcceleratedRenderFeatureFlagOn({ featureFlags }) && acceleratedRender;
1341
+ };
1342
+ var AxesChartDataDisplayBase = {
1343
+ label: (0, i18n_exports._)("Data display"),
1344
+ layout: [
1345
+ [
1346
+ {
1347
+ label: (0, i18n_exports._)("Stack mode"),
1348
+ option: "stackMode",
1349
+ editor: "editor.select",
1350
+ editorProps: {
1351
+ values: [
1352
+ { label: (0, i18n_exports._)("Not stacked"), value: "auto" },
1353
+ { label: (0, i18n_exports._)("Stacked"), value: "stacked" },
1354
+ { label: (0, i18n_exports._)("Stacked 100%"), value: "stacked100" }
1355
+ ]
1356
+ }
1357
+ }
1358
+ ],
1359
+ [
1360
+ {
1361
+ label: (0, i18n_exports._)("Null value display"),
1362
+ option: "nullValueDisplay",
1363
+ editor: "editor.radioBar",
1364
+ editorProps: {
1365
+ values: [
1366
+ { label: (0, i18n_exports._)("Gaps"), value: "gaps" },
1367
+ { label: (0, i18n_exports._)("Zero"), value: "zero" },
1368
+ { label: (0, i18n_exports._)("Connect"), value: "connect" }
1369
+ ]
1370
+ }
1371
+ }
1372
+ ],
1373
+ [
1374
+ {
1375
+ label: (0, i18n_exports._)("Data value display"),
1376
+ option: "dataValuesDisplay",
1377
+ editor: "editor.radioBar",
1378
+ editorProps: {
1379
+ values: [
1380
+ { label: (0, i18n_exports._)("Off"), value: "off" },
1381
+ { label: (0, i18n_exports._)("All"), value: "all" },
1382
+ { label: (0, i18n_exports._)("Min/Max"), value: "minmax" }
1383
+ ]
1384
+ }
1385
+ }
1386
+ ],
1387
+ [
1388
+ {
1389
+ label: (0, i18n_exports._)("Overlay fields"),
1390
+ option: "overlayFields",
1391
+ editor: "editor.columnMultiSelectionByFieldNameEditor",
1392
+ editorProps: {
1393
+ filterByTypes: ["number"]
1394
+ },
1395
+ isDisabled: isTrellisEnabled3
1396
+ }
1397
+ ],
1398
+ [
1399
+ {
1400
+ label: (0, i18n_exports._)("Split series"),
1401
+ option: "showSplitSeries",
1402
+ editor: "editor.toggle",
1403
+ isDisabled: isAcceleratedRenderEnabled
1404
+ }
1405
+ ],
1406
+ [
1407
+ {
1408
+ label: (0, i18n_exports._)("Independent y-axis for split series"),
1409
+ option: "showIndependentYRanges",
1410
+ editor: "editor.checkbox",
1411
+ showEditor: ({ options, featureFlags }) => options.showSplitSeries && !isAcceleratedRenderEnabled({ options, featureFlags })
1412
+ }
1413
+ ],
1414
+ [
1415
+ {
1416
+ label: (0, i18n_exports._)("Step position"),
1417
+ option: "stepPosition",
1418
+ editor: "editor.radioBar",
1419
+ editorProps: {
1420
+ values: [
1421
+ { label: (0, i18n_exports._)("Off"), value: "off" },
1422
+ { label: (0, i18n_exports._)("Before"), value: "before" },
1423
+ { label: (0, i18n_exports._)("After"), value: "after" }
1424
+ ]
1425
+ },
1426
+ showEditor: ({ options, featureFlags }) => isAcceleratedRenderEnabled({ options, featureFlags })
1427
+ // step position is only supported when accelerated render is enabled
1428
+ }
1429
+ ],
1430
+ ...TimechartTrellisEditorConfig
1431
+ ]
1432
+ };
1433
+ var AxesChartDataDisplayBar = {
1434
+ label: AxesChartDataDisplayBase.label,
1435
+ layout: [
1436
+ AxesChartDataDisplayBase.layout[0],
1437
+ // remove null value display editor at index 1
1438
+ ...AxesChartDataDisplayBase.layout.slice(2)
1439
+ ]
1440
+ };
1441
+ var AxesChartDataDisplayScatter = {
1442
+ label: AxesChartDataDisplayBase.label,
1443
+ layout: [
1444
+ ...TrellisEditorConfig,
1445
+ [
1446
+ {
1447
+ label: (0, i18n_exports._)("Shared y-axis scale"),
1448
+ option: "trellisSharedScale",
1449
+ editor: "editor.checkbox",
1450
+ showEditor: isTrellisEnabled3
1451
+ }
1452
+ ]
1453
+ ]
1454
+ };
1455
+ var AxesChartDataDisplayColumn = {
1456
+ label: AxesChartDataDisplayBase.label,
1457
+ layout: [
1458
+ AxesChartDataDisplayBase.layout[0],
1459
+ // remove null value display and add data value display
1460
+ AxesChartDataDisplayBase.layout[2],
1461
+ [
1462
+ {
1463
+ label: (0, i18n_exports._)("Show tooltip on hover"),
1464
+ option: "showTooltip",
1465
+ editor: "editor.checkbox"
1466
+ }
1467
+ ],
1468
+ ...AxesChartDataDisplayBase.layout.slice(3),
1469
+ [
1470
+ {
1471
+ label: (0, i18n_exports._)("Column grouping mode"),
1472
+ option: "columnGrouping",
1473
+ editor: "editor.radioBar",
1474
+ editorProps: {
1475
+ values: [
1476
+ { label: (0, i18n_exports._)("Auto"), value: "auto" },
1477
+ { label: (0, i18n_exports._)("Overlay"), value: "overlay" }
1478
+ ]
1479
+ }
1480
+ }
1481
+ ]
1482
+ ]
1483
+ };
1484
+ var AxesChartDataDisplayLine = {
1485
+ label: AxesChartDataDisplayBase.label,
1486
+ layout: [
1487
+ // remove stacked mode editor
1488
+ ...AxesChartDataDisplayBase.layout.slice(1)
1489
+ ]
1490
+ };
1491
+
1471
1492
  // src/common/editorConfig/AxesChartXGridAndLabels.ts
1472
1493
  var AxesChartXGridAndLabelsCommon = {
1473
1494
  label: (0, i18n_exports._)("X-axis grid and labels"),
@@ -1863,7 +1884,7 @@ var AxesChartLegendWithTrellisAndMode = ({
1863
1884
  { label: (0, i18n_exports._)("Bottom"), value: "bottom" },
1864
1885
  { label: (0, i18n_exports._)("Off"), value: "off" }
1865
1886
  ],
1866
- tooltip: showLegendTooltip && (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display')
1887
+ tooltip: showLegendTooltip ? (0, i18n_exports._)('Legend mode must be "Standard" to configure legend display') : void 0
1867
1888
  },
1868
1889
  isDisabled: showLegendTooltip ? ({ options }) => options.legendMode === "seriesCompare" : void 0,
1869
1890
  overrideDefaultValue: ({ options }) => (options == null ? void 0 : options.splitByLayout) === "trellis" ? "off" : "right"
@@ -2500,7 +2521,7 @@ var Cover = styled_components_default.div`
2500
2521
  bottom: 0;
2501
2522
  `;
2502
2523
  var Blocker = styled_components_default.div.attrs({
2503
- "data-splunk-visualization-version": "28.4.0 - 002bd482f"
2524
+ "data-splunk-visualization-version": "28.5.0 - b192418b7"
2504
2525
  })`
2505
2526
  position: relative;
2506
2527
  width: 100%;
@@ -2581,7 +2602,7 @@ var withFixedSizeContainer = (Viz) => {
2581
2602
  FixSizeItem,
2582
2603
  {
2583
2604
  "data-test": "fix-size-item",
2584
- "data-splunk-visualization-version": "28.4.0 - 002bd482f",
2605
+ "data-splunk-visualization-version": "28.5.0 - b192418b7",
2585
2606
  width,
2586
2607
  height,
2587
2608
  backgroundColor
@@ -2981,16 +3002,14 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
2981
3002
  splitDataSources[val] = (0, lodash_exports.cloneDeep)(
2982
3003
  (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
2983
3004
  );
2984
- splitDataSources[val].primary.data.fields = [
2985
- { name: fields[0].name },
2986
- ...dataSourceKeys.map((k) => ({
2987
- name: k
2988
- }))
2989
- ];
3005
+ splitDataSources[val].primary.data.fields = [{ name: fields[0].name }];
2990
3006
  splitDataSources[val].primary.data.columns = [[...columns[0]]];
2991
3007
  dataSourceKeys.forEach((dsKey) => {
2992
3008
  fields.forEach((field, idx) => {
2993
3009
  if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
3010
+ splitDataSources[val].primary.data.fields.push({
3011
+ name: dsKey
3012
+ });
2994
3013
  splitDataSources[val].primary.data.columns.push([...columns[idx]]);
2995
3014
  }
2996
3015
  });
@@ -3317,25 +3336,27 @@ var parseAxisValue = (val) => {
3317
3336
  const num = typeof val === "number" ? val : Number.parseFloat(val);
3318
3337
  return Number.isNaN(num) ? void 0 : num;
3319
3338
  };
3320
- var SideLegendWidth = 75;
3321
- var SeriesCompareLegendWidth = 200;
3339
+ var parseXAxisLineVisibility = (visibility) => {
3340
+ if (visibility === "hide") return false;
3341
+ if (visibility === "show") return true;
3342
+ return void 0;
3343
+ };
3322
3344
  var getLegend = (props) => {
3323
3345
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
3324
- const { isSeriesCompare } = props;
3346
+ const { isSeriesCompare, legendTruncation } = props;
3325
3347
  const commonLegendProps = {
3326
3348
  center: true,
3327
3349
  fontSize: 12,
3328
3350
  largerTiles: true,
3329
- hideSeriesValue: !isSeriesCompare
3351
+ hideSeriesValue: !isSeriesCompare,
3330
3352
  // Show values if in seriesCompare mode
3353
+ legendTruncation
3331
3354
  };
3332
3355
  switch (legendPlacement) {
3333
3356
  case "off":
3334
3357
  return false;
3335
3358
  case "left":
3336
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
3337
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3338
- }, commonLegendProps));
3359
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
3339
3360
  case "bottom":
3340
3361
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
3341
3362
  wrap: true
@@ -3345,9 +3366,7 @@ var getLegend = (props) => {
3345
3366
  wrap: true
3346
3367
  }, commonLegendProps));
3347
3368
  default:
3348
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
3349
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
3350
- }, commonLegendProps));
3369
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
3351
3370
  }
3352
3371
  };
3353
3372
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -3408,9 +3427,7 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
3408
3427
  if (yAxisAbbreviation !== "none") {
3409
3428
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
3410
3429
  }
3411
- if (yAxisAbbreviation === "none") {
3412
- yConfig.y.width = 55;
3413
- } else {
3430
+ if (yAxisAbbreviation !== "none") {
3414
3431
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
3415
3432
  }
3416
3433
  if (yAxisLabelVisibility === "hide") {
@@ -3433,6 +3450,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3433
3450
  y2Config.y2.type = scaleType;
3434
3451
  if (axisAbbreviation !== "none") {
3435
3452
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
3453
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
3436
3454
  } else if (roundAxisLabelsToInteger) {
3437
3455
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
3438
3456
  }
@@ -3448,7 +3466,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3448
3466
  }
3449
3467
  return y2Config;
3450
3468
  };
3451
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField) => {
3469
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
3452
3470
  const seriesConfig = {};
3453
3471
  let spanGaps;
3454
3472
  let replaceNullsWithZero;
@@ -3475,6 +3493,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3475
3493
  );
3476
3494
  if (shouldAssignToY2) {
3477
3495
  seriesConfig[field].overrides.scale = "y2";
3496
+ } else {
3497
+ seriesConfig[field].overrides.scale = "y";
3478
3498
  }
3479
3499
  }
3480
3500
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -3487,6 +3507,11 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
3487
3507
  if (fieldDashStyle) {
3488
3508
  seriesConfig[field].lineDashStyle = fieldDashStyle;
3489
3509
  }
3510
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
3511
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
3512
+ if (fieldStepPosition && fieldStepPosition !== "off") {
3513
+ seriesConfig[field].stepPosition = fieldStepPosition;
3514
+ }
3490
3515
  if (replaceNullsWithZero !== void 0) {
3491
3516
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
3492
3517
  }
@@ -3669,6 +3694,9 @@ var TimeSeriesChartWrapper = (props) => {
3669
3694
  backgroundColor,
3670
3695
  defaultFontColor,
3671
3696
  additionalTooltipValues,
3697
+ xAxisLineVisibility: xAxisLineVisibility,
3698
+ yAxisLineVisibility,
3699
+ y2AxisLineVisibility,
3672
3700
  showYAxisWithZero: showYAxisWithZeroFromProps,
3673
3701
  showY2AxisWithZero: showY2AxisWithZeroFromProps
3674
3702
  } = _a, otherOptions = __objRest(_a, [
@@ -3692,6 +3720,10 @@ var TimeSeriesChartWrapper = (props) => {
3692
3720
  "backgroundColor",
3693
3721
  "defaultFontColor",
3694
3722
  "additionalTooltipValues",
3723
+ // Extract axis line visibility options from props
3724
+ "xAxisLineVisibility",
3725
+ "yAxisLineVisibility",
3726
+ "y2AxisLineVisibility",
3695
3727
  // Extract showYAxisWithZero directly from props for accelerated render mode
3696
3728
  "showYAxisWithZero",
3697
3729
  "showY2AxisWithZero"
@@ -3704,6 +3736,7 @@ var TimeSeriesChartWrapper = (props) => {
3704
3736
  fieldColors,
3705
3737
  legendLabels: legendLabelsStr,
3706
3738
  legendMode,
3739
+ legendTruncation,
3707
3740
  "axisTitleX.text": xAxisTitleText,
3708
3741
  "axisTitleY.text": yAxisTitleText,
3709
3742
  "axisTitleY2.text": y2AxisTitleText,
@@ -3712,6 +3745,7 @@ var TimeSeriesChartWrapper = (props) => {
3712
3745
  "axisTitleY2.visibility": y2AxisTitleVisibility,
3713
3746
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
3714
3747
  "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
3748
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
3715
3749
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
3716
3750
  "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
3717
3751
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
@@ -3729,6 +3763,8 @@ var TimeSeriesChartWrapper = (props) => {
3729
3763
  lineWidth,
3730
3764
  lineDashStyle,
3731
3765
  fieldDashStyles: lineDashStylesByFieldStr,
3766
+ stepPosition,
3767
+ fieldStepPositions: stepPositionsByFieldStr,
3732
3768
  yAxisMin: yAxisMinRaw,
3733
3769
  yAxisMax: yAxisMaxRaw,
3734
3770
  y2AxisMin: y2AxisMinRaw,
@@ -3739,6 +3775,8 @@ var TimeSeriesChartWrapper = (props) => {
3739
3775
  showYMinorGridLines,
3740
3776
  showY2MinorGridLines,
3741
3777
  showLineSmoothing,
3778
+ xAxisMajorTickVisibility,
3779
+ xAxisMajorTickSize,
3742
3780
  yAxisMajorTickVisibility,
3743
3781
  y2AxisMajorTickVisibility,
3744
3782
  yAxisMajorTickSize,
@@ -3755,10 +3793,14 @@ var TimeSeriesChartWrapper = (props) => {
3755
3793
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
3756
3794
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
3757
3795
  const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
3796
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
3758
3797
  const showYMajorTicks = yAxisMajorTickVisibility === "show";
3759
3798
  const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
3760
3799
  const showYMinorTicks = yAxisMinorTickVisibility === "show";
3761
3800
  const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
3801
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
3802
+ const showYAxisLine = yAxisLineVisibility === "show";
3803
+ const showY2AxisLine = y2AxisLineVisibility === "show";
3762
3804
  const yAxisMin = parseAxisValue(yAxisMinRaw);
3763
3805
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
3764
3806
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
@@ -3773,13 +3815,15 @@ var TimeSeriesChartWrapper = (props) => {
3773
3815
  y2AxisMajorUnitFromSimpleXML,
3774
3816
  y2AxisMajorTickInterval
3775
3817
  );
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;
3818
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
3819
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
3820
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
3821
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
3822
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
3780
3823
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
3781
3824
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
3782
3825
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
3826
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
3783
3827
  const legendLabels = parseArrayOption(legendLabelsStr);
3784
3828
  const bgColor = backgroundColor || bgColorFromOptions;
3785
3829
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
@@ -3867,7 +3911,9 @@ var TimeSeriesChartWrapper = (props) => {
3867
3911
  nullValueMode,
3868
3912
  markerDisplay,
3869
3913
  lineDashStyle,
3870
- lineDashStylesByField
3914
+ lineDashStylesByField,
3915
+ stepPosition,
3916
+ stepPositionsByField
3871
3917
  ),
3872
3918
  [
3873
3919
  yFields,
@@ -3878,7 +3924,9 @@ var TimeSeriesChartWrapper = (props) => {
3878
3924
  nullValueMode,
3879
3925
  markerDisplay,
3880
3926
  lineDashStyle,
3881
- lineDashStylesByField
3927
+ lineDashStylesByField,
3928
+ stepPosition,
3929
+ stepPositionsByField
3882
3930
  ]
3883
3931
  );
3884
3932
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -3893,9 +3941,14 @@ var TimeSeriesChartWrapper = (props) => {
3893
3941
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
3894
3942
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
3895
3943
  );
3944
+ const isSeriesCompare = legendMode === "seriesCompare";
3896
3945
  const legend = (0, react_exports.useMemo)(
3897
- () => getLegend({ legendDisplay, isSeriesCompare: legendMode === "seriesCompare" }),
3898
- [legendDisplay, legendMode]
3946
+ () => getLegend({
3947
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
3948
+ isSeriesCompare,
3949
+ legendTruncation
3950
+ }),
3951
+ [legendDisplay, isSeriesCompare, legendTruncation]
3899
3952
  );
3900
3953
  const handleChartClick = react_exports.useCallback(
3901
3954
  (event) => {
@@ -4000,6 +4053,7 @@ var TimeSeriesChartWrapper = (props) => {
4000
4053
  seriesConfig: seriesOverrides,
4001
4054
  legend,
4002
4055
  legendLabels,
4056
+ legendTruncation,
4003
4057
  isSeriesCompare: legendMode === "seriesCompare",
4004
4058
  maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
4005
4059
  scaleConfig,
@@ -4021,6 +4075,8 @@ var TimeSeriesChartWrapper = (props) => {
4021
4075
  showY2MinorGridLines,
4022
4076
  showLineSmoothing,
4023
4077
  dataValuesDisplay,
4078
+ showXMajorTicks,
4079
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
4024
4080
  showYMajorTicks,
4025
4081
  showY2MajorTicks,
4026
4082
  yAxisMajorTickSize: yAxisMajorTickSizeNum,
@@ -4032,7 +4088,11 @@ var TimeSeriesChartWrapper = (props) => {
4032
4088
  yAxisMinorTickSize: yAxisMinorTickSizeNum,
4033
4089
  y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
4034
4090
  showYAxisWithZero,
4035
- showY2AxisWithZero
4091
+ showY2AxisWithZero,
4092
+ showXAxisLine,
4093
+ showYAxisLine,
4094
+ showY2AxisLine,
4095
+ xAxisMaxLabelParts
4036
4096
  }
4037
4097
  ));
4038
4098
  }, [
@@ -4047,6 +4107,7 @@ var TimeSeriesChartWrapper = (props) => {
4047
4107
  seriesOverrides,
4048
4108
  legend,
4049
4109
  legendLabels,
4110
+ legendTruncation,
4050
4111
  scaleConfig,
4051
4112
  onClick,
4052
4113
  handleChartClick,
@@ -4065,6 +4126,8 @@ var TimeSeriesChartWrapper = (props) => {
4065
4126
  showY2MinorGridLines,
4066
4127
  showLineSmoothing,
4067
4128
  dataValuesDisplay,
4129
+ showXMajorTicks,
4130
+ xAxisMajorTickSizeNum,
4068
4131
  showYMajorTicks,
4069
4132
  showY2MajorTicks,
4070
4133
  yAxisMajorTickSizeNum,
@@ -4077,7 +4140,11 @@ var TimeSeriesChartWrapper = (props) => {
4077
4140
  y2AxisMinorTickSizeNum,
4078
4141
  showYAxisWithZero,
4079
4142
  showY2AxisWithZero,
4080
- legendMode
4143
+ showXAxisLine,
4144
+ showYAxisLine,
4145
+ showY2AxisLine,
4146
+ legendMode,
4147
+ xAxisMaxLabelParts
4081
4148
  ]);
4082
4149
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
4083
4150
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);