@splunk/visualizations 27.0.0 → 27.2.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 (89) 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 +64 -37
  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 +172 -527
  22. package/Events.js.map +4 -4
  23. package/FillerGauge.js +45 -15
  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 +584 -545
  32. package/LinkGraph.js.map +4 -4
  33. package/Map.config.js +114 -72
  34. package/Map.config.js.map +4 -4
  35. package/Map.js +177 -94
  36. package/Map.js.map +4 -4
  37. package/Markdown.js +46 -16
  38. package/Markdown.js.map +4 -4
  39. package/MarkerGauge.js +42 -12
  40. package/MarkerGauge.js.map +4 -4
  41. package/ParallelCoordinates.js +123 -87
  42. package/ParallelCoordinates.js.map +4 -4
  43. package/Pie.js +198 -81
  44. package/Pie.js.map +4 -4
  45. package/Punchcard.js +241 -38
  46. package/Punchcard.js.map +4 -4
  47. package/Rectangle.js +56 -26
  48. package/Rectangle.js.map +4 -4
  49. package/Sankey.js +68 -38
  50. package/Sankey.js.map +4 -4
  51. package/Scatter.config.js +127 -1
  52. package/Scatter.config.js.map +4 -4
  53. package/Scatter.js +323 -80
  54. package/Scatter.js.map +4 -4
  55. package/SingleValue.config.js +43 -67
  56. package/SingleValue.config.js.map +4 -4
  57. package/SingleValue.js +1434 -1356
  58. package/SingleValue.js.map +4 -4
  59. package/SingleValueBasic.js +1 -1
  60. package/SingleValueBasic.js.map +3 -3
  61. package/SingleValueIcon.config.js +45 -69
  62. package/SingleValueIcon.config.js.map +4 -4
  63. package/SingleValueIcon.js +1739 -1407
  64. package/SingleValueIcon.js.map +4 -4
  65. package/SingleValueRadial.config.js +43 -67
  66. package/SingleValueRadial.config.js.map +4 -4
  67. package/SingleValueRadial.js +1366 -1273
  68. package/SingleValueRadial.js.map +4 -4
  69. package/SparkLine.js +1 -1
  70. package/SparkLine.js.map +3 -3
  71. package/TRELLIS.md +16 -15
  72. package/Table.js +65 -30
  73. package/Table.js.map +4 -4
  74. package/Timeline.config.js +418 -0
  75. package/Timeline.config.js.map +7 -0
  76. package/Timeline.js +3074 -0
  77. package/Timeline.js.map +7 -0
  78. package/common/Charting.js +133 -27
  79. package/common/Charting.js.map +4 -4
  80. package/common/OptionsDoc.js +8 -3
  81. package/common/OptionsDoc.js.map +2 -2
  82. package/common/utils/mapUtils.js.map +2 -2
  83. package/common/utils/singleValueUtils.js +26 -15
  84. package/common/utils/singleValueUtils.js.map +2 -2
  85. package/common/utils/trellisUtils.js +41 -1
  86. package/common/utils/trellisUtils.js.map +2 -2
  87. package/common/withDashboardViz.js +42 -12
  88. package/common/withDashboardViz.js.map +4 -4
  89. package/package.json +49 -38
package/Bubble.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;
908
-
909
- // esm-externals:@splunk/visualization-schemas
910
- var visualization_schemas_exports = {};
911
- __export(visualization_schemas_exports, {
912
- default: () => visualization_schemas_default
913
- });
914
- var defaultImport19 = __toESM(require("@splunk/visualization-schemas"));
915
- __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
916
- var visualization_schemas_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
1012
+ var placeholders_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
917
1013
 
918
1014
  // esm-externals:@splunk/themes/pick
919
1015
  var pick_exports = {};
920
1016
  __export(pick_exports, {
921
1017
  default: () => pick_default
922
1018
  });
923
- var defaultImport20 = __toESM(require("@splunk/themes/pick"));
1019
+ var defaultImport21 = __toESM(require("@splunk/themes/pick"));
924
1020
  __reExport(pick_exports, require("@splunk/themes/pick"));
925
- var pick_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
1021
+ var pick_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
926
1022
 
927
1023
  // esm-externals:@splunk/themes/variables
928
1024
  var variables_exports = {};
929
1025
  __export(variables_exports, {
930
1026
  default: () => variables_default
931
1027
  });
932
- var defaultImport21 = __toESM(require("@splunk/themes/variables"));
1028
+ var defaultImport22 = __toESM(require("@splunk/themes/variables"));
933
1029
  __reExport(variables_exports, require("@splunk/themes/variables"));
934
- var variables_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
@@ -1778,45 +2000,36 @@ var getSettingsFromThemedProps_exports = {};
1778
2000
  __export(getSettingsFromThemedProps_exports, {
1779
2001
  default: () => getSettingsFromThemedProps_default
1780
2002
  });
1781
- var defaultImport23 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
2003
+ var defaultImport24 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
1782
2004
  __reExport(getSettingsFromThemedProps_exports, require("@splunk/themes/getSettingsFromThemedProps"));
1783
- var getSettingsFromThemedProps_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
2005
+ var getSettingsFromThemedProps_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1784
2006
 
1785
2007
  // esm-externals:@splunk/visualization-encoding/Options
1786
2008
  var Options_exports = {};
1787
2009
  __export(Options_exports, {
1788
2010
  default: () => Options_default
1789
2011
  });
1790
- var defaultImport24 = __toESM(require("@splunk/visualization-encoding/Options"));
2012
+ var defaultImport25 = __toESM(require("@splunk/visualization-encoding/Options"));
1791
2013
  __reExport(Options_exports, require("@splunk/visualization-encoding/Options"));
1792
- var Options_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
2014
+ var Options_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1793
2015
 
1794
2016
  // esm-externals:@splunk/visualizations-shared/SanitizeProps
1795
2017
  var SanitizeProps_exports = {};
1796
2018
  __export(SanitizeProps_exports, {
1797
2019
  default: () => SanitizeProps_default
1798
2020
  });
1799
- var defaultImport25 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
2021
+ var defaultImport26 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
1800
2022
  __reExport(SanitizeProps_exports, require("@splunk/visualizations-shared/SanitizeProps"));
1801
- var SanitizeProps_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
2023
+ var SanitizeProps_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1802
2024
 
1803
2025
  // esm-externals:@splunk/moment
1804
2026
  var moment_exports = {};
1805
2027
  __export(moment_exports, {
1806
2028
  default: () => moment_default
1807
2029
  });
1808
- var defaultImport26 = __toESM(require("@splunk/moment"));
2030
+ var defaultImport27 = __toESM(require("@splunk/moment"));
1809
2031
  __reExport(moment_exports, require("@splunk/moment"));
1810
- var moment_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1811
-
1812
- // esm-externals:@splunk/visualization-context/FeatureFlagContext
1813
- var FeatureFlagContext_exports = {};
1814
- __export(FeatureFlagContext_exports, {
1815
- default: () => FeatureFlagContext_default
1816
- });
1817
- var defaultImport27 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
1818
- __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
1819
- var FeatureFlagContext_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
2032
+ var moment_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1820
2033
 
1821
2034
  // esm-externals:@splunk/visualizations-shared/hocUtils
1822
2035
  var hocUtils_exports = {};
@@ -2106,7 +2319,7 @@ var withFixedSizeContainer = (Viz) => {
2106
2319
  FixSizeItem,
2107
2320
  {
2108
2321
  "data-test": "fix-size-item",
2109
- "data-splunk-visualization-version": "27.0.0 - 9bf093b7d",
2322
+ "data-splunk-visualization-version": "27.2.0 - 2e7eda8d4",
2110
2323
  width,
2111
2324
  height,
2112
2325
  backgroundColor
@@ -2172,7 +2385,7 @@ var Cover = styled_components_default.div`
2172
2385
  bottom: 0;
2173
2386
  `;
2174
2387
  var Blocker = styled_components_default.div.attrs({
2175
- "data-splunk-visualization-version": "27.0.0 - 9bf093b7d"
2388
+ "data-splunk-visualization-version": "27.2.0 - 2e7eda8d4"
2176
2389
  })`
2177
2390
  position: relative;
2178
2391
  width: 100%;
@@ -2434,6 +2647,25 @@ var getFeatureFlag = (context, flagName) => {
2434
2647
  return false;
2435
2648
  };
2436
2649
 
2650
+ // esm-externals:@splunk/visualizations-shared/trellisUtils
2651
+ var trellisUtils_exports = {};
2652
+ __export(trellisUtils_exports, {
2653
+ default: () => trellisUtils_default
2654
+ });
2655
+ var defaultImport35 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
2656
+ __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
2657
+ var trellisUtils_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2658
+
2659
+ // src/common/utils/trellisUtils.ts
2660
+ var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
2661
+ if (isTrellisOn && !options.legendDisplay) {
2662
+ return {
2663
+ legendDisplay: "off"
2664
+ };
2665
+ }
2666
+ return {};
2667
+ };
2668
+
2437
2669
  // src/common/withDashboardViz.tsx
2438
2670
  var withDashboardViz = (opts) => {
2439
2671
  const {
@@ -2441,6 +2673,8 @@ var withDashboardViz = (opts) => {
2441
2673
  vizConfig,
2442
2674
  computeVizProps: computeVizProps2 = () => {
2443
2675
  },
2676
+ computeVizPropsBeforeEval = () => {
2677
+ },
2444
2678
  disableEditModeCover,
2445
2679
  useIconPlaceholder
2446
2680
  } = opts;
@@ -2490,14 +2724,26 @@ var withDashboardViz = (opts) => {
2490
2724
  const isDownsamplingEnabledByFeatureFlag = Boolean(
2491
2725
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableDownsampling
2492
2726
  );
2727
+ const isTrellisFeatureFlagOn3 = Boolean(
2728
+ featureFlagContext && featureFlagContext.visualizations_enableTrellis
2729
+ );
2730
+ 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 */;
2493
2731
  const isMounted = react_exports.useRef(true);
2494
- const optionsToEvaluate = react_exports.useMemo(
2495
- () => ({
2732
+ const optionsToEvaluate = react_exports.useMemo(() => {
2733
+ var _a2;
2734
+ const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
2735
+ const computedOptions = (_a2 = computeVizPropsBeforeEval(options)) != null ? _a2 : {};
2736
+ return {
2496
2737
  context: (0, lodash_exports.defaultsDeep)({}, context, vizConfig.defaultContext),
2497
- options: (0, hocUtils_exports.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions)
2498
- }),
2499
- [options, context]
2500
- );
2738
+ options: (0, hocUtils_exports.deepMergeWithArrayPrimitiveOverrides)(
2739
+ {},
2740
+ legendDisplay,
2741
+ computedOptions,
2742
+ options,
2743
+ defaultOptions
2744
+ )
2745
+ };
2746
+ }, [isTrellisOn, options, context]);
2501
2747
  const [threshold, setThreshold] = react_exports.useState(Number(width));
2502
2748
  const onDownsamplingThresholdChange = react_exports.useCallback((newThreshold) => {
2503
2749
  setThreshold(newThreshold);
@@ -2578,11 +2824,8 @@ var withDashboardViz = (opts) => {
2578
2824
  useAsyncEvaluatedOptions
2579
2825
  ]);
2580
2826
  const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
2581
- const isTrellisFeatureFlagOn = Boolean(
2582
- featureFlagContext && featureFlagContext.visualizations_enableTrellis
2583
- );
2584
2827
  let clonedEvaluatedOptions = evaluatedOptionsToUse;
2585
- if (isTrellisFeatureFlagOn && ((_a = vizConfig == null ? void 0 : vizConfig.supports) == null ? void 0 : _a.includes("trellis" /* TRELLIS */)) && (clonedEvaluatedOptions == null ? void 0 : clonedEvaluatedOptions.splitByLayout) === "trellis" /* TRELLIS */) {
2828
+ if (isTrellisOn) {
2586
2829
  clonedEvaluatedOptions = __spreadProps(__spreadValues({}, evaluatedOptionsToUse), {
2587
2830
  backgroundColor: clonedEvaluatedOptions == null ? void 0 : clonedEvaluatedOptions.trellisBackgroundColor
2588
2831
  });
@@ -2693,9 +2936,9 @@ var propUtils_exports = {};
2693
2936
  __export(propUtils_exports, {
2694
2937
  default: () => propUtils_default
2695
2938
  });
2696
- var defaultImport35 = __toESM(require("@splunk/visualizations-shared/propUtils"));
2939
+ var defaultImport36 = __toESM(require("@splunk/visualizations-shared/propUtils"));
2697
2940
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
2698
- var propUtils_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2941
+ var propUtils_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
2699
2942
 
2700
2943
  // src/common/chartingUtils.ts
2701
2944
  var truncateData = (dataSet, truncationLimit) => {