@splunk/visualizations 27.0.0 → 27.1.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 (79) hide show
  1. package/Area.config.js +269 -122
  2. package/Area.config.js.map +4 -4
  3. package/Area.js +1065 -209
  4. package/Area.js.map +4 -4
  5. package/Bar.config.js +266 -82
  6. package/Bar.config.js.map +4 -4
  7. package/Bar.js +1065 -171
  8. package/Bar.js.map +4 -4
  9. package/Bubble.config.js +127 -1
  10. package/Bubble.config.js.map +4 -4
  11. package/Bubble.js +323 -80
  12. package/Bubble.js.map +4 -4
  13. package/ChoroplethSvg.js +60 -30
  14. package/ChoroplethSvg.js.map +4 -4
  15. package/Column.config.js +271 -82
  16. package/Column.config.js.map +4 -4
  17. package/Column.js +1070 -171
  18. package/Column.js.map +4 -4
  19. package/Ellipse.js +44 -14
  20. package/Ellipse.js.map +4 -4
  21. package/Events.js +82 -52
  22. package/Events.js.map +4 -4
  23. package/FillerGauge.js +44 -14
  24. package/FillerGauge.js.map +4 -4
  25. package/Image.js +42 -12
  26. package/Image.js.map +4 -4
  27. package/Line.config.js +271 -119
  28. package/Line.config.js.map +4 -4
  29. package/Line.js +1067 -206
  30. package/Line.js.map +4 -4
  31. package/LinkGraph.js +563 -529
  32. package/LinkGraph.js.map +4 -4
  33. package/Map.js +44 -14
  34. package/Map.js.map +4 -4
  35. package/Markdown.js +46 -16
  36. package/Markdown.js.map +4 -4
  37. package/MarkerGauge.js +42 -12
  38. package/MarkerGauge.js.map +4 -4
  39. package/ParallelCoordinates.js +122 -86
  40. package/ParallelCoordinates.js.map +4 -4
  41. package/Pie.js +198 -81
  42. package/Pie.js.map +4 -4
  43. package/Punchcard.js +54 -24
  44. package/Punchcard.js.map +4 -4
  45. package/Rectangle.js +56 -26
  46. package/Rectangle.js.map +4 -4
  47. package/Sankey.js +68 -38
  48. package/Sankey.js.map +4 -4
  49. package/Scatter.config.js +127 -1
  50. package/Scatter.config.js.map +4 -4
  51. package/Scatter.js +323 -80
  52. package/Scatter.js.map +4 -4
  53. package/SingleValue.config.js +43 -67
  54. package/SingleValue.config.js.map +4 -4
  55. package/SingleValue.js +1419 -1351
  56. package/SingleValue.js.map +4 -4
  57. package/SingleValueBasic.js.map +1 -1
  58. package/SingleValueIcon.config.js +45 -69
  59. package/SingleValueIcon.config.js.map +4 -4
  60. package/SingleValueIcon.js +1307 -1238
  61. package/SingleValueIcon.js.map +4 -4
  62. package/SingleValueRadial.config.js +43 -67
  63. package/SingleValueRadial.config.js.map +4 -4
  64. package/SingleValueRadial.js +1352 -1266
  65. package/SingleValueRadial.js.map +4 -4
  66. package/TRELLIS.md +16 -15
  67. package/Table.js +52 -22
  68. package/Table.js.map +4 -4
  69. package/common/Charting.js +133 -27
  70. package/common/Charting.js.map +4 -4
  71. package/common/OptionsDoc.js +6 -1
  72. package/common/OptionsDoc.js.map +2 -2
  73. package/common/utils/singleValueUtils.js +8 -7
  74. package/common/utils/singleValueUtils.js.map +2 -2
  75. package/common/utils/trellisUtils.js +41 -1
  76. package/common/utils/trellisUtils.js.map +2 -2
  77. package/common/withDashboardViz.js +42 -12
  78. package/common/withDashboardViz.js.map +4 -4
  79. package/package.json +17 -18
package/Scatter.js CHANGED
@@ -195,6 +195,15 @@ var defaultImport14 = __toESM(require("@splunk/visualizations-shared/themeUtils"
195
195
  __reExport(themeUtils_exports, require("@splunk/visualizations-shared/themeUtils"));
196
196
  var themeUtils_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
197
197
 
198
+ // esm-externals:@splunk/visualization-schemas
199
+ var visualization_schemas_exports = {};
200
+ __export(visualization_schemas_exports, {
201
+ default: () => visualization_schemas_default
202
+ });
203
+ var defaultImport15 = __toESM(require("@splunk/visualization-schemas"));
204
+ __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
205
+ var visualization_schemas_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
206
+
198
207
  // src/common/ChartingApi.ts
199
208
  var ChartingApiFunctional = class {
200
209
  // eslint-disable-next-line no-useless-constructor
@@ -248,9 +257,9 @@ var numberUtils_exports = {};
248
257
  __export(numberUtils_exports, {
249
258
  default: () => numberUtils_default
250
259
  });
251
- var defaultImport15 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
260
+ var defaultImport16 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
252
261
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
253
- var numberUtils_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
262
+ var numberUtils_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
254
263
 
255
264
  // src/common/interfaces/DataSource.ts
256
265
  var validSortDirs = ["asc", "desc", "none"];
@@ -527,6 +536,57 @@ var downsampleDataSources = ({ dataSources, threshold, options }) => {
527
536
  return downsampledDataSources;
528
537
  };
529
538
 
539
+ // esm-externals:@splunk/visualization-context/FeatureFlagContext
540
+ var FeatureFlagContext_exports = {};
541
+ __export(FeatureFlagContext_exports, {
542
+ default: () => FeatureFlagContext_default
543
+ });
544
+ var defaultImport17 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
545
+ __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
546
+ var FeatureFlagContext_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
547
+
548
+ // src/common/hooks/useTrellisEnabled.ts
549
+ var useTrellisFeatureFlagOn = () => {
550
+ const context = (0, react_exports.useContext)(FeatureFlagContext_default);
551
+ return Boolean(context == null ? void 0 : context.visualizations_enableTrellis);
552
+ };
553
+ var useTrellisEnabled = (layoutType = visualization_schemas_exports.LAYOUT_TYPE.Off) => {
554
+ const trellisFeatureEnabled = useTrellisFeatureFlagOn();
555
+ return trellisFeatureEnabled && layoutType === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
556
+ };
557
+
558
+ // src/common/components/TrellisTitle.tsx
559
+ var TRELLIS_TITLE_HEIGHT = 28;
560
+ var TrellisTitleText = styled_components_default.div`
561
+ margin-left: 10px;
562
+ margin-right: 10px;
563
+ padding-top: 8px;
564
+ text-overflow: ellipsis;
565
+ white-space: nowrap;
566
+ overflow: hidden;
567
+ `;
568
+ var TrellisTitleDiv = styled_components_default.div`
569
+ height: ${TRELLIS_TITLE_HEIGHT}px;
570
+ font-size: 14px;
571
+ font-weight: 700;
572
+ color: ${(props) => props.fontColor};
573
+ background-color: ${(props) => props.backgroundColor};
574
+ box-shadow: 0 1px ${(props) => props.backgroundColor}; // this is added to avoid a 1px gap between title and viz divs that showed up intermittently because of pixel rounding error in chrome.
575
+ `;
576
+ var TrellisTitle = (props) => {
577
+ const titleText = String(props.trellisKey).toString();
578
+ return /* @__PURE__ */ react_exports.createElement(
579
+ TrellisTitleDiv,
580
+ {
581
+ fontColor: props.fontColor,
582
+ backgroundColor: props.backgroundColor,
583
+ "data-test": "trellis-title",
584
+ title: titleText
585
+ },
586
+ /* @__PURE__ */ react_exports.createElement(TrellisTitleText, null, titleText)
587
+ );
588
+ };
589
+
530
590
  // src/common/Charting.tsx
531
591
  var NO_INPLACE_PROPS = [
532
592
  "chart",
@@ -535,6 +595,15 @@ var NO_INPLACE_PROPS = [
535
595
  "chart.style",
536
596
  "legend.placement"
537
597
  ];
598
+ var appendTrellisToPayload = (props, payload) => {
599
+ if (props.trellisSplitBy) {
600
+ payload["trellis.name"] = props.trellisSplitBy;
601
+ }
602
+ if (props.trellisKey) {
603
+ payload["trellis.value"] = props.trellisKey;
604
+ }
605
+ return payload;
606
+ };
538
607
  var changedOptions = (curOptions, nextOptions) => Object.keys(curOptions).filter((key) => !(key in nextOptions)).concat(
539
608
  Object.keys(nextOptions).filter(
540
609
  (key) => !(key in curOptions) || curOptions[key] !== nextOptions[key]
@@ -581,7 +650,12 @@ var propTypes = {
581
650
  originalDataSources: prop_types_exports.object,
582
651
  onDownsamplingThresholdChange: prop_types_exports.func,
583
652
  xField: prop_types_exports.string,
584
- y2Fields: prop_types_exports.array
653
+ y2Fields: prop_types_exports.array,
654
+ splitByLayout: prop_types_exports.oneOf(Object.values(visualization_schemas_exports.LAYOUT_TYPE)),
655
+ trellisKey: prop_types_exports.string,
656
+ trellisSplitBy: prop_types_exports.string,
657
+ backgroundColor: prop_types_exports.string,
658
+ defaultFontColor: prop_types_exports.string
585
659
  };
586
660
  var Charting = (props) => {
587
661
  var _a, _b;
@@ -592,6 +666,7 @@ var Charting = (props) => {
592
666
  const api = (0, react_exports.useRef)(new ChartingApiFunctional(chart));
593
667
  const timezone = (0, react_exports.useContext)(TimezoneContext_default);
594
668
  const selectChartEvent = (0, react_exports.useRef)(null);
669
+ const trellisEnabled = useTrellisEnabled(props.splitByLayout);
595
670
  const computeChartingSize = () => {
596
671
  if (container.current) {
597
672
  const rect = container.current.getBoundingClientRect();
@@ -618,7 +693,10 @@ var Charting = (props) => {
618
693
  onEventTrigger,
619
694
  originalDataSources,
620
695
  onDownsamplingThresholdChange,
621
- xField
696
+ xField,
697
+ backgroundColor,
698
+ defaultFontColor,
699
+ trellisKey
622
700
  } = props;
623
701
  const prevOptions = usePrevious(options);
624
702
  const prevTimezone = usePrevious(timezone);
@@ -637,6 +715,7 @@ var Charting = (props) => {
637
715
  delete payload.value2;
638
716
  payload = updateRowPayload(chartEvent.rowContext, payload);
639
717
  }
718
+ payload = appendTrellisToPayload(props, payload);
640
719
  onClick({
641
720
  type,
642
721
  originalEvent: chartEvent,
@@ -673,18 +752,22 @@ var Charting = (props) => {
673
752
  const handleSelect = useEventCallback_default((chartEvent) => {
674
753
  selectChartEvent.current = chartEvent;
675
754
  recalculateDownsamplingThreshold();
755
+ const payload = appendTrellisToPayload(
756
+ props,
757
+ (0, lodash_exports.pick)(chartEvent, "startXIndex", "endXIndex", "startXValue", "endXValue")
758
+ );
676
759
  if (onSelect && typeof onSelect === "function") {
677
760
  onSelect({
678
761
  type: "range.select",
679
762
  originalEvent: chartEvent,
680
- payload: (0, lodash_exports.pick)(chartEvent, "startXIndex", "endXIndex", "startXValue", "endXValue")
763
+ payload
681
764
  });
682
765
  return;
683
766
  }
684
767
  onEventTrigger({
685
768
  type: "range.select",
686
769
  originalEvent: chartEvent,
687
- payload: (0, lodash_exports.pick)(chartEvent, "startXIndex", "endXIndex", "startXValue", "endXValue")
770
+ payload
688
771
  });
689
772
  });
690
773
  const handlePointMouseOut = useEventCallback_default(
@@ -701,7 +784,7 @@ var Charting = (props) => {
701
784
  delete payload.name2;
702
785
  payload.value = payload.value2;
703
786
  delete payload.value2;
704
- payload = updateRowPayload(chartEvent.rowContext, payload);
787
+ payload = appendTrellisToPayload(props, updateRowPayload(chartEvent.rowContext, payload));
705
788
  onPointMouseOut({
706
789
  type,
707
790
  originalEvent: chartEvent,
@@ -723,7 +806,7 @@ var Charting = (props) => {
723
806
  delete payload.name2;
724
807
  payload.value = payload.value2;
725
808
  delete payload.value2;
726
- payload = updateRowPayload(chartEvent.rowContext, payload);
809
+ payload = appendTrellisToPayload(props, updateRowPayload(chartEvent.rowContext, payload));
727
810
  onPointMouseOver({
728
811
  type,
729
812
  originalEvent: chartEvent,
@@ -787,10 +870,15 @@ var Charting = (props) => {
787
870
  if (colorPalette.length > 0) {
788
871
  charting_bundle_default.setColorPalette(colorPalette);
789
872
  }
873
+ const payload = appendTrellisToPayload(props, {
874
+ width,
875
+ height,
876
+ currentTime: (/* @__PURE__ */ new Date()).getTime()
877
+ });
790
878
  chart.current.prepareAndDraw(chartData, updatedOptions, () => {
791
879
  onEventTrigger({
792
880
  type: "viz.renderedWithData",
793
- payload: { width, height, currentTime: (/* @__PURE__ */ new Date()).getTime() }
881
+ payload
794
882
  });
795
883
  });
796
884
  }
@@ -837,7 +925,23 @@ var Charting = (props) => {
837
925
  themeKey,
838
926
  onClick
839
927
  ]);
840
- return /* @__PURE__ */ react_exports.createElement(ChartingContainer, { style, ref: onContainerMount, width, height }, /* @__PURE__ */ react_exports.createElement(react_event_listener_default, { target: window, onResize: debouncedDrawChart }));
928
+ return /* @__PURE__ */ react_exports.createElement(react_exports.Fragment, null, trellisEnabled && /* @__PURE__ */ react_exports.createElement(
929
+ TrellisTitle,
930
+ {
931
+ trellisKey,
932
+ backgroundColor,
933
+ fontColor: defaultFontColor
934
+ }
935
+ ), /* @__PURE__ */ react_exports.createElement(
936
+ ChartingContainer,
937
+ {
938
+ style,
939
+ ref: onContainerMount,
940
+ width,
941
+ height: trellisEnabled ? Number(height) - TRELLIS_TITLE_HEIGHT : height
942
+ },
943
+ /* @__PURE__ */ react_exports.createElement(react_event_listener_default, { target: window, onResize: debouncedDrawChart })
944
+ ));
841
945
  };
842
946
  var defaultProps = {
843
947
  width: "100%",
@@ -857,90 +961,82 @@ var defaultProps = {
857
961
  onDownsamplingThresholdChange: null,
858
962
  originalDataSources: null,
859
963
  xField: null,
860
- y2Fields: []
964
+ y2Fields: [],
965
+ splitByLayout: void 0,
966
+ trellisKey: void 0,
967
+ trellisSplitBy: void 0,
968
+ backgroundColor: "",
969
+ defaultFontColor: ""
861
970
  };
862
971
  Charting.propTypes = propTypes;
863
972
  Charting.defaultProps = defaultProps;
864
- var withEmptyChartMessage = (Chart) => {
865
- const Wrapper = (props) => {
866
- const { chartData } = props;
867
- if (!chartData) {
868
- return /* @__PURE__ */ react_exports.createElement(Message_default, { message: (0, i18n_exports._)("No DataSource"), level: "warning" });
869
- }
870
- if (chartData && !Object.keys(chartData).length) {
871
- return /* @__PURE__ */ react_exports.createElement(Message_default, { message: (0, i18n_exports._)("No Result"), level: "info" });
872
- }
873
- return /* @__PURE__ */ react_exports.createElement(Chart, __spreadValues({}, props));
874
- };
875
- Wrapper.displayName = "ChartingWrapper";
876
- Wrapper.propTypes = propTypes;
877
- Wrapper.defaultProps = defaultProps;
878
- return Wrapper;
973
+ var ChartingWrapper = (props) => {
974
+ const { chartData } = props;
975
+ if (!chartData) {
976
+ return /* @__PURE__ */ react_exports.createElement(Message_default, { message: (0, i18n_exports._)("No DataSource"), level: "warning" });
977
+ }
978
+ if (!Object.keys(chartData).length) {
979
+ return /* @__PURE__ */ react_exports.createElement(Message_default, { message: (0, i18n_exports._)("No Result"), level: "info" });
980
+ }
981
+ return /* @__PURE__ */ react_exports.createElement(Charting, __spreadValues({}, props));
879
982
  };
880
- var Charting_default = withEmptyChartMessage(Charting);
983
+ ChartingWrapper.propTypes = propTypes;
984
+ ChartingWrapper.defaultProps = defaultProps;
985
+ var Charting_default = ChartingWrapper;
881
986
 
882
987
  // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
883
988
  var simpleXMLOptions_exports = {};
884
989
  __export(simpleXMLOptions_exports, {
885
990
  default: () => simpleXMLOptions_default
886
991
  });
887
- var defaultImport16 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
992
+ var defaultImport18 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
888
993
  __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
889
- var simpleXMLOptions_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
994
+ var simpleXMLOptions_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
890
995
 
891
996
  // esm-externals:@splunk/visualization-icons
892
997
  var visualization_icons_exports = {};
893
998
  __export(visualization_icons_exports, {
894
999
  default: () => visualization_icons_default
895
1000
  });
896
- var defaultImport17 = __toESM(require("@splunk/visualization-icons"));
1001
+ var defaultImport19 = __toESM(require("@splunk/visualization-icons"));
897
1002
  __reExport(visualization_icons_exports, require("@splunk/visualization-icons"));
898
- var visualization_icons_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
1003
+ var visualization_icons_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
899
1004
 
900
1005
  // esm-externals:@splunk/visualization-icons/placeholders
901
1006
  var placeholders_exports = {};
902
1007
  __export(placeholders_exports, {
903
1008
  default: () => placeholders_default
904
1009
  });
905
- var defaultImport18 = __toESM(require("@splunk/visualization-icons/placeholders"));
1010
+ var defaultImport20 = __toESM(require("@splunk/visualization-icons/placeholders"));
906
1011
  __reExport(placeholders_exports, require("@splunk/visualization-icons/placeholders"));
907
- var placeholders_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
1012
+ var placeholders_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
908
1013
 
909
1014
  // esm-externals:@splunk/themes/pick
910
1015
  var pick_exports = {};
911
1016
  __export(pick_exports, {
912
1017
  default: () => pick_default
913
1018
  });
914
- var defaultImport19 = __toESM(require("@splunk/themes/pick"));
1019
+ var defaultImport21 = __toESM(require("@splunk/themes/pick"));
915
1020
  __reExport(pick_exports, require("@splunk/themes/pick"));
916
- var pick_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
1021
+ var pick_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
917
1022
 
918
1023
  // esm-externals:@splunk/themes/variables
919
1024
  var variables_exports = {};
920
1025
  __export(variables_exports, {
921
1026
  default: () => variables_default
922
1027
  });
923
- var defaultImport20 = __toESM(require("@splunk/themes/variables"));
1028
+ var defaultImport22 = __toESM(require("@splunk/themes/variables"));
924
1029
  __reExport(variables_exports, require("@splunk/themes/variables"));
925
- var variables_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
926
-
927
- // esm-externals:@splunk/visualization-schemas
928
- var visualization_schemas_exports = {};
929
- __export(visualization_schemas_exports, {
930
- default: () => visualization_schemas_default
931
- });
932
- var defaultImport21 = __toESM(require("@splunk/visualization-schemas"));
933
- __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
934
- var visualization_schemas_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
1030
+ var variables_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
935
1031
 
936
1032
  // esm-externals:@splunk/visualizations-shared/configUtils
937
1033
  var configUtils_exports = {};
938
1034
  __export(configUtils_exports, {
939
1035
  default: () => configUtils_default
940
1036
  });
941
- var defaultImport22 = __toESM(require("@splunk/visualizations-shared/configUtils"));
1037
+ var defaultImport23 = __toESM(require("@splunk/visualizations-shared/configUtils"));
942
1038
  __reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
943
- var configUtils_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
1039
+ var configUtils_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
944
1040
 
945
1041
  // src/common/utils/configUtils.ts
946
1042
  function enhanceConfig(vizConfig) {
@@ -962,6 +1058,13 @@ var insertLayout = (layout, index, ...layoutItems) => [
962
1058
  ];
963
1059
 
964
1060
  // src/common/editorConfig/AxesChartDataConfig.ts
1061
+ var isTrellisFeatureFlagOn = ({ featureFlags }) => {
1062
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1063
+ };
1064
+ var isTrellisEnabled = ({ options, featureFlags }) => {
1065
+ const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1066
+ return isTrellisFeatureFlagOn({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1067
+ };
965
1068
  var AxesChartDataConfig = {
966
1069
  label: (0, i18n_exports._)("Data configurations"),
967
1070
  layout: [
@@ -1015,7 +1118,8 @@ var AxesChartDataConfigBar = {
1015
1118
  filterByTypes: ["number"],
1016
1119
  supportsDSL: true,
1017
1120
  expectedDataPrimitive: ["series", "frame"]
1018
- }
1121
+ },
1122
+ isDisabled: isTrellisEnabled
1019
1123
  }
1020
1124
  ])
1021
1125
  };
@@ -1409,6 +1513,111 @@ var background = ({
1409
1513
  ];
1410
1514
  var BackgroundColor_default = background;
1411
1515
 
1516
+ // src/common/editorConfig/TrellisEditors.ts
1517
+ var isTrellisFeatureFlagOn2 = ({ featureFlags }) => {
1518
+ return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
1519
+ };
1520
+ var isTrellisEnabled2 = ({ options, featureFlags }) => {
1521
+ const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
1522
+ return isTrellisFeatureFlagOn2({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
1523
+ };
1524
+ var TrellisEditorConfig = [
1525
+ [
1526
+ {
1527
+ label: (0, i18n_exports._)("Trellis layout"),
1528
+ option: "splitByLayout",
1529
+ editor: "editor.toggle",
1530
+ showEditor: isTrellisFeatureFlagOn2
1531
+ }
1532
+ ],
1533
+ [
1534
+ {
1535
+ label: (0, i18n_exports._)("Split by"),
1536
+ option: "trellisSplitBy",
1537
+ editor: "editor.trellisSplitBy",
1538
+ editorProps: {
1539
+ dataSourceKey: "primary"
1540
+ },
1541
+ showEditor: isTrellisEnabled2
1542
+ }
1543
+ ],
1544
+ [
1545
+ {
1546
+ label: (0, i18n_exports._)("Number of columns"),
1547
+ option: "trellisColumns",
1548
+ editor: "editor.number",
1549
+ editorProps: {
1550
+ min: 1
1551
+ },
1552
+ placeholder: (0, i18n_exports._)("Auto"),
1553
+ showEditor: isTrellisEnabled2
1554
+ }
1555
+ ],
1556
+ [
1557
+ {
1558
+ label: (0, i18n_exports._)("Min column width"),
1559
+ option: "trellisMinColumnWidth",
1560
+ editor: "editor.number",
1561
+ editorProps: {
1562
+ min: 1
1563
+ },
1564
+ showEditor: isTrellisEnabled2
1565
+ },
1566
+ {
1567
+ label: (0, i18n_exports._)("Row height"),
1568
+ option: "trellisRowHeight",
1569
+ editor: "editor.number",
1570
+ editorProps: {
1571
+ min: 1
1572
+ },
1573
+ showEditor: isTrellisEnabled2
1574
+ }
1575
+ ],
1576
+ [
1577
+ {
1578
+ label: (0, i18n_exports._)("Max number of components per page"),
1579
+ option: "trellisPageCount",
1580
+ editor: "editor.number",
1581
+ editorProps: {
1582
+ min: 1
1583
+ },
1584
+ showEditor: isTrellisEnabled2
1585
+ }
1586
+ ]
1587
+ ];
1588
+ var TimechartTrellisEditorConfig = [
1589
+ [
1590
+ {
1591
+ label: (0, i18n_exports._)("Trellis layout"),
1592
+ option: "splitByLayout",
1593
+ editor: "editor.toggle",
1594
+ showEditor: isTrellisFeatureFlagOn2,
1595
+ // add help text for timecharts
1596
+ editorProps: {
1597
+ help: (0, i18n_exports._)(
1598
+ "Y2-axis and overlay field configurations are not supported when trellis is enabled."
1599
+ ),
1600
+ helpFormat: "under"
1601
+ }
1602
+ }
1603
+ ],
1604
+ ...TrellisEditorConfig.slice(1),
1605
+ [
1606
+ {
1607
+ label: (0, i18n_exports._)("Shared y-axis scale"),
1608
+ option: "trellisSharedScale",
1609
+ editor: "editor.checkbox",
1610
+ showEditor: isTrellisEnabled2
1611
+ }
1612
+ ]
1613
+ ];
1614
+ var TrellisBackgroundColorEditor = {
1615
+ label: (0, i18n_exports._)("Trellis background"),
1616
+ option: "trellisBackgroundColor",
1617
+ editor: "editor.color",
1618
+ showEditor: isTrellisEnabled2
1619
+ };
1620
+
1412
1621
  // src/common/editorConfig/AxesChartColorAndStyle.ts
1413
1622
  var themes = {
1414
1623
  defaultBackgroundColor: (props) => pick_default({
@@ -1439,6 +1648,19 @@ var AxesChartColorAndStyle = {
1439
1648
  ]
1440
1649
  ]
1441
1650
  };
1651
+ var AreaAxesChartColorAndStyleWithTrellis = __spreadProps(__spreadValues({}, AxesChartColorAndStyle), {
1652
+ layout: [
1653
+ AxesChartColorAndStyle.layout[0],
1654
+ [
1655
+ __spreadProps(__spreadValues({}, TrellisBackgroundColorEditor), {
1656
+ editorProps: {
1657
+ themes
1658
+ }
1659
+ })
1660
+ ],
1661
+ ...AxesChartColorAndStyle.layout.slice(1)
1662
+ ]
1663
+ });
1442
1664
  var AxesChartColorAndStyle_default = AxesChartColorAndStyle;
1443
1665
 
1444
1666
  // src/common/editorConfig/AxesChartLegend.ts
@@ -1754,45 +1976,36 @@ var getSettingsFromThemedProps_exports = {};
1754
1976
  __export(getSettingsFromThemedProps_exports, {
1755
1977
  default: () => getSettingsFromThemedProps_default
1756
1978
  });
1757
- var defaultImport23 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
1979
+ var defaultImport24 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
1758
1980
  __reExport(getSettingsFromThemedProps_exports, require("@splunk/themes/getSettingsFromThemedProps"));
1759
- var getSettingsFromThemedProps_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
1981
+ var getSettingsFromThemedProps_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1760
1982
 
1761
1983
  // esm-externals:@splunk/visualization-encoding/Options
1762
1984
  var Options_exports = {};
1763
1985
  __export(Options_exports, {
1764
1986
  default: () => Options_default
1765
1987
  });
1766
- var defaultImport24 = __toESM(require("@splunk/visualization-encoding/Options"));
1988
+ var defaultImport25 = __toESM(require("@splunk/visualization-encoding/Options"));
1767
1989
  __reExport(Options_exports, require("@splunk/visualization-encoding/Options"));
1768
- var Options_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1990
+ var Options_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1769
1991
 
1770
1992
  // esm-externals:@splunk/visualizations-shared/SanitizeProps
1771
1993
  var SanitizeProps_exports = {};
1772
1994
  __export(SanitizeProps_exports, {
1773
1995
  default: () => SanitizeProps_default
1774
1996
  });
1775
- var defaultImport25 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
1997
+ var defaultImport26 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
1776
1998
  __reExport(SanitizeProps_exports, require("@splunk/visualizations-shared/SanitizeProps"));
1777
- var SanitizeProps_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1999
+ var SanitizeProps_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1778
2000
 
1779
2001
  // esm-externals:@splunk/moment
1780
2002
  var moment_exports = {};
1781
2003
  __export(moment_exports, {
1782
2004
  default: () => moment_default
1783
2005
  });
1784
- var defaultImport26 = __toESM(require("@splunk/moment"));
2006
+ var defaultImport27 = __toESM(require("@splunk/moment"));
1785
2007
  __reExport(moment_exports, require("@splunk/moment"));
1786
- var moment_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1787
-
1788
- // esm-externals:@splunk/visualization-context/FeatureFlagContext
1789
- var FeatureFlagContext_exports = {};
1790
- __export(FeatureFlagContext_exports, {
1791
- default: () => FeatureFlagContext_default
1792
- });
1793
- var defaultImport27 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
1794
- __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
1795
- var FeatureFlagContext_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
2008
+ var moment_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1796
2009
 
1797
2010
  // esm-externals:@splunk/visualizations-shared/hocUtils
1798
2011
  var hocUtils_exports = {};
@@ -2082,7 +2295,7 @@ var withFixedSizeContainer = (Viz) => {
2082
2295
  FixSizeItem,
2083
2296
  {
2084
2297
  "data-test": "fix-size-item",
2085
- "data-splunk-visualization-version": "27.0.0 - 9bf093b7d",
2298
+ "data-splunk-visualization-version": "27.1.0 - fe8b048df",
2086
2299
  width,
2087
2300
  height,
2088
2301
  backgroundColor
@@ -2148,7 +2361,7 @@ var Cover = styled_components_default.div`
2148
2361
  bottom: 0;
2149
2362
  `;
2150
2363
  var Blocker = styled_components_default.div.attrs({
2151
- "data-splunk-visualization-version": "27.0.0 - 9bf093b7d"
2364
+ "data-splunk-visualization-version": "27.1.0 - fe8b048df"
2152
2365
  })`
2153
2366
  position: relative;
2154
2367
  width: 100%;
@@ -2410,6 +2623,25 @@ var getFeatureFlag = (context, flagName) => {
2410
2623
  return false;
2411
2624
  };
2412
2625
 
2626
+ // esm-externals:@splunk/visualizations-shared/trellisUtils
2627
+ var trellisUtils_exports = {};
2628
+ __export(trellisUtils_exports, {
2629
+ default: () => trellisUtils_default
2630
+ });
2631
+ var defaultImport35 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
2632
+ __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
2633
+ var trellisUtils_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2634
+
2635
+ // src/common/utils/trellisUtils.ts
2636
+ var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
2637
+ if (isTrellisOn && !options.legendDisplay) {
2638
+ return {
2639
+ legendDisplay: "off"
2640
+ };
2641
+ }
2642
+ return {};
2643
+ };
2644
+
2413
2645
  // src/common/withDashboardViz.tsx
2414
2646
  var withDashboardViz = (opts) => {
2415
2647
  const {
@@ -2417,6 +2649,8 @@ var withDashboardViz = (opts) => {
2417
2649
  vizConfig,
2418
2650
  computeVizProps: computeVizProps2 = () => {
2419
2651
  },
2652
+ computeVizPropsBeforeEval = () => {
2653
+ },
2420
2654
  disableEditModeCover,
2421
2655
  useIconPlaceholder
2422
2656
  } = opts;
@@ -2466,14 +2700,26 @@ var withDashboardViz = (opts) => {
2466
2700
  const isDownsamplingEnabledByFeatureFlag = Boolean(
2467
2701
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableDownsampling
2468
2702
  );
2703
+ const isTrellisFeatureFlagOn3 = Boolean(
2704
+ featureFlagContext && featureFlagContext.visualizations_enableTrellis
2705
+ );
2706
+ const isTrellisOn = isTrellisFeatureFlagOn3 && ((_a = vizConfig == null ? void 0 : vizConfig.supports) == null ? void 0 : _a.includes("trellis" /* TRELLIS */)) && (options == null ? void 0 : options.splitByLayout) === "trellis" /* TRELLIS */;
2469
2707
  const isMounted = react_exports.useRef(true);
2470
- const optionsToEvaluate = react_exports.useMemo(
2471
- () => ({
2708
+ const optionsToEvaluate = react_exports.useMemo(() => {
2709
+ var _a2;
2710
+ const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
2711
+ const computedOptions = (_a2 = computeVizPropsBeforeEval(options)) != null ? _a2 : {};
2712
+ return {
2472
2713
  context: (0, lodash_exports.defaultsDeep)({}, context, vizConfig.defaultContext),
2473
- options: (0, hocUtils_exports.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions)
2474
- }),
2475
- [options, context]
2476
- );
2714
+ options: (0, hocUtils_exports.deepMergeWithArrayPrimitiveOverrides)(
2715
+ {},
2716
+ legendDisplay,
2717
+ computedOptions,
2718
+ options,
2719
+ defaultOptions
2720
+ )
2721
+ };
2722
+ }, [isTrellisOn, options, context]);
2477
2723
  const [threshold, setThreshold] = react_exports.useState(Number(width));
2478
2724
  const onDownsamplingThresholdChange = react_exports.useCallback((newThreshold) => {
2479
2725
  setThreshold(newThreshold);
@@ -2554,11 +2800,8 @@ var withDashboardViz = (opts) => {
2554
2800
  useAsyncEvaluatedOptions
2555
2801
  ]);
2556
2802
  const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
2557
- const isTrellisFeatureFlagOn = Boolean(
2558
- featureFlagContext && featureFlagContext.visualizations_enableTrellis
2559
- );
2560
2803
  let clonedEvaluatedOptions = evaluatedOptionsToUse;
2561
- if (isTrellisFeatureFlagOn && ((_a = vizConfig == null ? void 0 : vizConfig.supports) == null ? void 0 : _a.includes("trellis" /* TRELLIS */)) && (clonedEvaluatedOptions == null ? void 0 : clonedEvaluatedOptions.splitByLayout) === "trellis" /* TRELLIS */) {
2804
+ if (isTrellisOn) {
2562
2805
  clonedEvaluatedOptions = __spreadProps(__spreadValues({}, evaluatedOptionsToUse), {
2563
2806
  backgroundColor: clonedEvaluatedOptions == null ? void 0 : clonedEvaluatedOptions.trellisBackgroundColor
2564
2807
  });
@@ -2669,9 +2912,9 @@ var propUtils_exports = {};
2669
2912
  __export(propUtils_exports, {
2670
2913
  default: () => propUtils_default
2671
2914
  });
2672
- var defaultImport35 = __toESM(require("@splunk/visualizations-shared/propUtils"));
2915
+ var defaultImport36 = __toESM(require("@splunk/visualizations-shared/propUtils"));
2673
2916
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
2674
- var propUtils_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2917
+ var propUtils_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
2675
2918
 
2676
2919
  // src/common/chartingUtils.ts
2677
2920
  var truncateData = (dataSet, truncationLimit) => {