@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
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/Rectangle/config.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;;AA+T3D,wBAAqC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/Rectangle/config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;;AA+T3D,wBAAqC"}
@@ -91,23 +91,32 @@ var defaultImport4 = __toESM(require("@splunk/themes"));
91
91
  __reExport(themes_exports, require("@splunk/themes"));
92
92
  var themes_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
93
93
 
94
+ // esm-externals:@splunk/react-icons/Square
95
+ var Square_exports = {};
96
+ __export(Square_exports, {
97
+ default: () => Square_default
98
+ });
99
+ var defaultImport5 = __toESM(require("@splunk/react-icons/Square"));
100
+ __reExport(Square_exports, require("@splunk/react-icons/Square"));
101
+ var Square_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
102
+
94
103
  // esm-externals:lodash
95
104
  var lodash_exports = {};
96
105
  __export(lodash_exports, {
97
106
  default: () => lodash_default
98
107
  });
99
- var defaultImport5 = __toESM(require("lodash"));
108
+ var defaultImport6 = __toESM(require("lodash"));
100
109
  __reExport(lodash_exports, require("lodash"));
101
- var lodash_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
110
+ var lodash_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
102
111
 
103
112
  // esm-externals:@splunk/visualizations-shared/configUtils
104
113
  var configUtils_exports = {};
105
114
  __export(configUtils_exports, {
106
115
  default: () => configUtils_default
107
116
  });
108
- var defaultImport6 = __toESM(require("@splunk/visualizations-shared/configUtils"));
117
+ var defaultImport7 = __toESM(require("@splunk/visualizations-shared/configUtils"));
109
118
  __reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
110
- var configUtils_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
119
+ var configUtils_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
111
120
 
112
121
  // src/common/utils/configUtils.ts
113
122
  function enhanceConfig(vizConfig) {
@@ -505,7 +514,7 @@ var config = {
505
514
  /**
506
515
  * viz icon
507
516
  */
508
- icon: null,
517
+ icon: Square_default,
509
518
  dataContract,
510
519
  size,
511
520
  defaultContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["src/Rectangle/config.ts", "esm-externals:@splunk/visualization-schemas", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/visualization-color-palettes/editors/PresetPalettes", "esm-externals:@splunk/themes", "esm-externals:lodash", "esm-externals:@splunk/visualizations-shared/configUtils", "src/common/utils/configUtils.ts", "src/common/editorConfig/DynamicFillColorEditor.ts", "src/common/editorConfig/DynamicStrokeColorEditor.ts", "src/common/editorConfig/StaticFillColorEditor.ts", "src/common/editorConfig/StaticStrokeColorEditor.ts"],
4
- "sourcesContent": ["import { rectangleOptionsSchema as optionsSchema } from '@splunk/visualization-schemas';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { defaultPalettesConfig } from '@splunk/visualization-color-palettes/editors/PresetPalettes';\nimport { pick, variables } from '@splunk/themes';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { PresetEntry, enhanceConfig, getInitialPreset } from '../common/utils/configUtils';\nimport { getDynamicFillColorEditor } from '../common/editorConfig/DynamicFillColorEditor';\nimport { getDynamicStrokeColorEditor } from '../common/editorConfig/DynamicStrokeColorEditor';\nimport StaticFillColorEditor from '../common/editorConfig/StaticFillColorEditor';\nimport StaticStrokeColorEditor from '../common/editorConfig/StaticStrokeColorEditor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n fillColorConfig: [\n {\n from: 100,\n value: '#088F44',\n },\n {\n from: 80,\n to: 100,\n value: '#2EB82E',\n },\n {\n from: 60,\n to: 80,\n value: '#C3CC33',\n },\n {\n from: 40,\n to: 60,\n value: '#FFD442',\n },\n {\n from: 20,\n to: 40,\n value: '#FFA857',\n },\n {\n from: 0,\n to: 20,\n value: '#FF7149',\n },\n {\n to: 0,\n value: '#FE3A3A',\n },\n ],\n strokeColorConfig: [\n {\n from: 100,\n value: '#088F44',\n },\n {\n from: 80,\n to: 100,\n value: '#2EB82E',\n },\n {\n from: 60,\n to: 80,\n value: '#C3CC33',\n },\n {\n from: 40,\n to: 60,\n value: '#FFD442',\n },\n {\n from: 20,\n to: 40,\n value: '#FFA857',\n },\n {\n from: 0,\n to: 20,\n value: '#FF7149',\n },\n {\n to: 0,\n value: '#FE3A3A',\n },\n ],\n fillColorMatchConfig: [{ match: '', value: '#5C33FF' }],\n strokeColorMatchConfig: [{ match: '', value: '#5C33FF' }],\n};\n\nconst themes: ThemedDefaults = {\n defaultFillColor: props =>\n pick({\n enterprise: {\n dark: variables.gray25(props),\n light: variables.gray80(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultStrokeColor: props =>\n pick({\n enterprise: {\n dark: variables.gray80(props),\n light: variables.gray30(props),\n },\n prisma: variables.neutral500(props),\n })(props),\n};\n\nconst basePresetContext = {\n fillColorEditorConfig: undefined,\n strokeColorEditorConfig: undefined,\n};\n\nconst basePresetOptions = {\n fillColor: undefined,\n strokeColor: undefined,\n};\n\nconst presets: PresetEntry[] = [\n {\n // dummy context variables to allow for resetting of unused context states\n label: _('None'),\n name: 'rectangle.none',\n value: {\n context: { ...basePresetContext },\n options: { ...basePresetOptions },\n },\n },\n {\n label: _('Fill'),\n name: 'rectangle.fill',\n value: {\n context: {\n ...basePresetContext,\n fillDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n fillColorEditorConfig: defaultContext.fillColorConfig,\n },\n options: {\n ...basePresetOptions,\n fillColor: '> fillDataValue | rangeValue(fillColorEditorConfig)',\n },\n },\n },\n {\n label: _('Stroke'),\n name: 'rectangle.stroke',\n value: {\n context: {\n ...basePresetContext,\n strokeDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n strokeColorEditorConfig: defaultContext.strokeColorConfig,\n },\n options: {\n ...basePresetOptions,\n strokeColor: '> strokeDataValue | rangeValue(strokeColorEditorConfig)',\n },\n },\n },\n {\n label: _('Fill and Stroke'),\n name: 'rectangle.fillAndStroke',\n value: {\n context: {\n ...basePresetContext,\n fillDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n strokeDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n fillColorEditorConfig: defaultContext.fillColorConfig,\n strokeColorEditorConfig: defaultContext.strokeColorConfig,\n },\n options: {\n ...basePresetOptions,\n fillColor: '> fillDataValue | rangeValue(fillColorEditorConfig)',\n strokeColor: '> strokeDataValue | rangeValue(strokeColorEditorConfig)',\n },\n },\n },\n];\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Dynamic elements'),\n key: 'presetSelector',\n editor: 'editor.presetSelector',\n editorProps: {\n presets,\n value: ({ context, options }) => {\n const initialPreset = getInitialPreset(context, options, presets);\n return (initialPreset && initialPreset.label) || null;\n },\n },\n },\n ],\n [\n {\n ...StaticFillColorEditor,\n editorProps: {\n themes,\n },\n },\n ],\n [\n getDynamicFillColorEditor({\n defaultContext,\n defaultPalettesConfig,\n }),\n ],\n [\n {\n ...StaticStrokeColorEditor,\n editorProps: {\n themes,\n },\n },\n ],\n [\n getDynamicStrokeColorEditor({\n defaultContext,\n defaultPalettesConfig,\n }),\n ],\n [\n {\n label: _('Fill opacity (%)'),\n option: 'fillOpacity',\n editor: 'editor.percent',\n editorProps: {\n min: 0,\n },\n },\n {\n label: _('Stroke opacity (%)'),\n option: 'strokeOpacity',\n editor: 'editor.percent',\n editorProps: {\n min: 0,\n },\n },\n ],\n [\n {\n label: _('Stroke width'),\n option: 'strokeWidth',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n },\n },\n {\n label: _('Stroke dash style'),\n option: 'strokeDashStyle',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n },\n },\n ],\n [\n {\n label: _('Radius (px)'),\n option: 'rx',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n },\n },\n {},\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.rectangle',\n /**\n * viz name\n */\n name: _('Rectangle'),\n category: VizCategory.SHAPES,\n /**\n * viz icon\n */\n icon: null,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS],\n themes,\n events: {\n 'rectangle.click': {\n description: 'trigger when user clicks rectangle',\n payloadKeys: ['strokeColor', 'fillColor'],\n },\n },\n};\n\nexport default enhanceConfig(config);\n", "\nimport * as defaultImport from \"@splunk/visualization-schemas\";\nexport * from \"@splunk/visualization-schemas\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-color-palettes/editors/PresetPalettes\";\nexport * from \"@splunk/visualization-color-palettes/editors/PresetPalettes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/configUtils\";\nexport * from \"@splunk/visualizations-shared/configUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { get, range } from 'lodash';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\n// included for backwards compatibility\nexport { enhanceOptionsSchemaWithDynamicOptions } from '@splunk/visualization-schemas';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n\n enhancedConfig.editorConfig = vizConfig.editorConfig.map((config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n });\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport { enhanceConfig, getInitialPreset, generatePrecisionValues, uncollapseEditorConfig, isDynamicOption };\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nexport const getDynamicFillColorEditor = ({ defaultContext, defaultPalettesConfig }) => ({\n label: _('Fill'),\n option: 'fillColor',\n context: 'fillColorEditorConfig',\n editor: 'editor.dynamicColor',\n showEditor: ({ options }) => isDynamicOption(options.fillColor),\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: fill'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n fillDataValue: defaultContext.fillColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n fillDataValue: defaultContext.fillColorMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Fill'),\n value: 'fillDataValue',\n },\n ],\n defaultPalettesConfig,\n },\n});\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nexport const getDynamicStrokeColorEditor = ({ defaultContext, defaultPalettesConfig }) => ({\n label: _('Stroke'),\n option: 'strokeColor',\n context: 'strokeColorEditorConfig',\n editor: 'editor.dynamicColor',\n showEditor: ({ options }) => isDynamicOption(options.strokeColor),\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: stroke'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n strokeDataValue: defaultContext.strokeColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n strokeDataValue: defaultContext.strokeColorMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Stroke'),\n value: 'strokeDataValue',\n },\n ],\n defaultPalettesConfig,\n },\n});\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nconst StaticFillColorEditor = {\n label: _('Fill'),\n option: 'fillColor',\n editor: 'editor.color',\n showEditor: ({ options }) => !isDynamicOption(options.fillColor),\n};\n\nexport default StaticFillColorEditor;\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nconst StaticStrokeColorEditor = {\n label: _('Stroke'),\n option: 'strokeColor',\n editor: 'editor.color',\n showEditor: ({ options }) => !isDynamicOption(options.strokeColor),\n};\n\nexport default StaticStrokeColorEditor;\n"],
5
- "mappings": "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",
6
- "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "config", "presets", "defaultContext", "defaultPalettesConfig", "defaultContext", "defaultPalettesConfig", "optionsSchema"]
3
+ "sources": ["src/Rectangle/config.ts", "esm-externals:@splunk/visualization-schemas", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/visualization-color-palettes/editors/PresetPalettes", "esm-externals:@splunk/themes", "esm-externals:@splunk/react-icons/Square", "esm-externals:lodash", "esm-externals:@splunk/visualizations-shared/configUtils", "src/common/utils/configUtils.ts", "src/common/editorConfig/DynamicFillColorEditor.ts", "src/common/editorConfig/DynamicStrokeColorEditor.ts", "src/common/editorConfig/StaticFillColorEditor.ts", "src/common/editorConfig/StaticStrokeColorEditor.ts"],
4
+ "sourcesContent": ["import { rectangleOptionsSchema as optionsSchema } from '@splunk/visualization-schemas';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { defaultPalettesConfig } from '@splunk/visualization-color-palettes/editors/PresetPalettes';\nimport { pick, variables } from '@splunk/themes';\nimport Square from '@splunk/react-icons/Square';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { PresetEntry, enhanceConfig, getInitialPreset } from '../common/utils/configUtils';\nimport { getDynamicFillColorEditor } from '../common/editorConfig/DynamicFillColorEditor';\nimport { getDynamicStrokeColorEditor } from '../common/editorConfig/DynamicStrokeColorEditor';\nimport StaticFillColorEditor from '../common/editorConfig/StaticFillColorEditor';\nimport StaticStrokeColorEditor from '../common/editorConfig/StaticStrokeColorEditor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n fillColorConfig: [\n {\n from: 100,\n value: '#088F44',\n },\n {\n from: 80,\n to: 100,\n value: '#2EB82E',\n },\n {\n from: 60,\n to: 80,\n value: '#C3CC33',\n },\n {\n from: 40,\n to: 60,\n value: '#FFD442',\n },\n {\n from: 20,\n to: 40,\n value: '#FFA857',\n },\n {\n from: 0,\n to: 20,\n value: '#FF7149',\n },\n {\n to: 0,\n value: '#FE3A3A',\n },\n ],\n strokeColorConfig: [\n {\n from: 100,\n value: '#088F44',\n },\n {\n from: 80,\n to: 100,\n value: '#2EB82E',\n },\n {\n from: 60,\n to: 80,\n value: '#C3CC33',\n },\n {\n from: 40,\n to: 60,\n value: '#FFD442',\n },\n {\n from: 20,\n to: 40,\n value: '#FFA857',\n },\n {\n from: 0,\n to: 20,\n value: '#FF7149',\n },\n {\n to: 0,\n value: '#FE3A3A',\n },\n ],\n fillColorMatchConfig: [{ match: '', value: '#5C33FF' }],\n strokeColorMatchConfig: [{ match: '', value: '#5C33FF' }],\n};\n\nconst themes: ThemedDefaults = {\n defaultFillColor: props =>\n pick({\n enterprise: {\n dark: variables.gray25(props),\n light: variables.gray80(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultStrokeColor: props =>\n pick({\n enterprise: {\n dark: variables.gray80(props),\n light: variables.gray30(props),\n },\n prisma: variables.neutral500(props),\n })(props),\n};\n\nconst basePresetContext = {\n fillColorEditorConfig: undefined,\n strokeColorEditorConfig: undefined,\n};\n\nconst basePresetOptions = {\n fillColor: undefined,\n strokeColor: undefined,\n};\n\nconst presets: PresetEntry[] = [\n {\n // dummy context variables to allow for resetting of unused context states\n label: _('None'),\n name: 'rectangle.none',\n value: {\n context: { ...basePresetContext },\n options: { ...basePresetOptions },\n },\n },\n {\n label: _('Fill'),\n name: 'rectangle.fill',\n value: {\n context: {\n ...basePresetContext,\n fillDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n fillColorEditorConfig: defaultContext.fillColorConfig,\n },\n options: {\n ...basePresetOptions,\n fillColor: '> fillDataValue | rangeValue(fillColorEditorConfig)',\n },\n },\n },\n {\n label: _('Stroke'),\n name: 'rectangle.stroke',\n value: {\n context: {\n ...basePresetContext,\n strokeDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n strokeColorEditorConfig: defaultContext.strokeColorConfig,\n },\n options: {\n ...basePresetOptions,\n strokeColor: '> strokeDataValue | rangeValue(strokeColorEditorConfig)',\n },\n },\n },\n {\n label: _('Fill and Stroke'),\n name: 'rectangle.fillAndStroke',\n value: {\n context: {\n ...basePresetContext,\n fillDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n strokeDataValue: '> primary | seriesByType(\"number\") | lastPoint()',\n fillColorEditorConfig: defaultContext.fillColorConfig,\n strokeColorEditorConfig: defaultContext.strokeColorConfig,\n },\n options: {\n ...basePresetOptions,\n fillColor: '> fillDataValue | rangeValue(fillColorEditorConfig)',\n strokeColor: '> strokeDataValue | rangeValue(strokeColorEditorConfig)',\n },\n },\n },\n];\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Dynamic elements'),\n key: 'presetSelector',\n editor: 'editor.presetSelector',\n editorProps: {\n presets,\n value: ({ context, options }) => {\n const initialPreset = getInitialPreset(context, options, presets);\n return (initialPreset && initialPreset.label) || null;\n },\n },\n },\n ],\n [\n {\n ...StaticFillColorEditor,\n editorProps: {\n themes,\n },\n },\n ],\n [\n getDynamicFillColorEditor({\n defaultContext,\n defaultPalettesConfig,\n }),\n ],\n [\n {\n ...StaticStrokeColorEditor,\n editorProps: {\n themes,\n },\n },\n ],\n [\n getDynamicStrokeColorEditor({\n defaultContext,\n defaultPalettesConfig,\n }),\n ],\n [\n {\n label: _('Fill opacity (%)'),\n option: 'fillOpacity',\n editor: 'editor.percent',\n editorProps: {\n min: 0,\n },\n },\n {\n label: _('Stroke opacity (%)'),\n option: 'strokeOpacity',\n editor: 'editor.percent',\n editorProps: {\n min: 0,\n },\n },\n ],\n [\n {\n label: _('Stroke width'),\n option: 'strokeWidth',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n },\n },\n {\n label: _('Stroke dash style'),\n option: 'strokeDashStyle',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n },\n },\n ],\n [\n {\n label: _('Radius (px)'),\n option: 'rx',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n },\n },\n {},\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.rectangle',\n /**\n * viz name\n */\n name: _('Rectangle'),\n category: VizCategory.SHAPES,\n /**\n * viz icon\n */\n icon: Square,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS],\n themes,\n events: {\n 'rectangle.click': {\n description: 'trigger when user clicks rectangle',\n payloadKeys: ['strokeColor', 'fillColor'],\n },\n },\n};\n\nexport default enhanceConfig(config);\n", "\nimport * as defaultImport from \"@splunk/visualization-schemas\";\nexport * from \"@splunk/visualization-schemas\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-color-palettes/editors/PresetPalettes\";\nexport * from \"@splunk/visualization-color-palettes/editors/PresetPalettes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/configUtils\";\nexport * from \"@splunk/visualizations-shared/configUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { get, range } from 'lodash';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\n// included for backwards compatibility\nexport { enhanceOptionsSchemaWithDynamicOptions } from '@splunk/visualization-schemas';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n\n enhancedConfig.editorConfig = vizConfig.editorConfig.map((config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n });\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport { enhanceConfig, getInitialPreset, generatePrecisionValues, uncollapseEditorConfig, isDynamicOption };\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nexport const getDynamicFillColorEditor = ({ defaultContext, defaultPalettesConfig }) => ({\n label: _('Fill'),\n option: 'fillColor',\n context: 'fillColorEditorConfig',\n editor: 'editor.dynamicColor',\n showEditor: ({ options }) => isDynamicOption(options.fillColor),\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: fill'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n fillDataValue: defaultContext.fillColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n fillDataValue: defaultContext.fillColorMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Fill'),\n value: 'fillDataValue',\n },\n ],\n defaultPalettesConfig,\n },\n});\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nexport const getDynamicStrokeColorEditor = ({ defaultContext, defaultPalettesConfig }) => ({\n label: _('Stroke'),\n option: 'strokeColor',\n context: 'strokeColorEditorConfig',\n editor: 'editor.dynamicColor',\n showEditor: ({ options }) => isDynamicOption(options.strokeColor),\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: stroke'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n strokeDataValue: defaultContext.strokeColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n strokeDataValue: defaultContext.strokeColorMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Stroke'),\n value: 'strokeDataValue',\n },\n ],\n defaultPalettesConfig,\n },\n});\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nconst StaticFillColorEditor = {\n label: _('Fill'),\n option: 'fillColor',\n editor: 'editor.color',\n showEditor: ({ options }) => !isDynamicOption(options.fillColor),\n};\n\nexport default StaticFillColorEditor;\n", "import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nconst StaticStrokeColorEditor = {\n label: _('Stroke'),\n option: 'strokeColor',\n editor: 'editor.color',\n showEditor: ({ options }) => !isDynamicOption(options.strokeColor),\n};\n\nexport default StaticStrokeColorEditor;\n"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "config", "presets", "defaultContext", "defaultPalettesConfig", "defaultContext", "defaultPalettesConfig", "optionsSchema"]
7
7
  }
package/Rectangle.js CHANGED
@@ -476,7 +476,7 @@ var Cover = styled_components_default.div`
476
476
  bottom: 0;
477
477
  `;
478
478
  var Blocker = styled_components_default.div.attrs({
479
- "data-splunk-visualization-version": "28.4.0 - 002bd482f"
479
+ "data-splunk-visualization-version": "28.5.0 - b192418b7"
480
480
  })`
481
481
  position: relative;
482
482
  width: 100%;
@@ -575,7 +575,7 @@ var withFixedSizeContainer = (Viz) => {
575
575
  FixSizeItem,
576
576
  {
577
577
  "data-test": "fix-size-item",
578
- "data-splunk-visualization-version": "28.4.0 - 002bd482f",
578
+ "data-splunk-visualization-version": "28.5.0 - b192418b7",
579
579
  width,
580
580
  height,
581
581
  backgroundColor
@@ -1180,25 +1180,27 @@ var parseAxisValue = (val) => {
1180
1180
  const num = typeof val === "number" ? val : Number.parseFloat(val);
1181
1181
  return Number.isNaN(num) ? void 0 : num;
1182
1182
  };
1183
- var SideLegendWidth = 75;
1184
- var SeriesCompareLegendWidth = 200;
1183
+ var parseXAxisLineVisibility = (visibility) => {
1184
+ if (visibility === "hide") return false;
1185
+ if (visibility === "show") return true;
1186
+ return void 0;
1187
+ };
1185
1188
  var getLegend = (props) => {
1186
1189
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
1187
- const { isSeriesCompare } = props;
1190
+ const { isSeriesCompare, legendTruncation } = props;
1188
1191
  const commonLegendProps = {
1189
1192
  center: true,
1190
1193
  fontSize: 12,
1191
1194
  largerTiles: true,
1192
- hideSeriesValue: !isSeriesCompare
1195
+ hideSeriesValue: !isSeriesCompare,
1193
1196
  // Show values if in seriesCompare mode
1197
+ legendTruncation
1194
1198
  };
1195
1199
  switch (legendPlacement) {
1196
1200
  case "off":
1197
1201
  return false;
1198
1202
  case "left":
1199
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
1200
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
1201
- }, commonLegendProps));
1203
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
1202
1204
  case "bottom":
1203
1205
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
1204
1206
  wrap: true
@@ -1208,9 +1210,7 @@ var getLegend = (props) => {
1208
1210
  wrap: true
1209
1211
  }, commonLegendProps));
1210
1212
  default:
1211
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
1212
- width: isSeriesCompare ? SeriesCompareLegendWidth : SideLegendWidth
1213
- }, commonLegendProps));
1213
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1214
1214
  }
1215
1215
  };
1216
1216
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -1271,9 +1271,7 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
1271
1271
  if (yAxisAbbreviation !== "none") {
1272
1272
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
1273
1273
  }
1274
- if (yAxisAbbreviation === "none") {
1275
- yConfig.y.width = 55;
1276
- } else {
1274
+ if (yAxisAbbreviation !== "none") {
1277
1275
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
1278
1276
  }
1279
1277
  if (yAxisLabelVisibility === "hide") {
@@ -1296,6 +1294,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
1296
1294
  y2Config.y2.type = scaleType;
1297
1295
  if (axisAbbreviation !== "none") {
1298
1296
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
1297
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
1299
1298
  } else if (roundAxisLabelsToInteger) {
1300
1299
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
1301
1300
  }
@@ -1311,7 +1310,7 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
1311
1310
  }
1312
1311
  return y2Config;
1313
1312
  };
1314
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField) => {
1313
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
1315
1314
  const seriesConfig = {};
1316
1315
  let spanGaps;
1317
1316
  let replaceNullsWithZero;
@@ -1338,6 +1337,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
1338
1337
  );
1339
1338
  if (shouldAssignToY2) {
1340
1339
  seriesConfig[field].overrides.scale = "y2";
1340
+ } else {
1341
+ seriesConfig[field].overrides.scale = "y";
1341
1342
  }
1342
1343
  }
1343
1344
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -1350,6 +1351,11 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
1350
1351
  if (fieldDashStyle) {
1351
1352
  seriesConfig[field].lineDashStyle = fieldDashStyle;
1352
1353
  }
1354
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
1355
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
1356
+ if (fieldStepPosition && fieldStepPosition !== "off") {
1357
+ seriesConfig[field].stepPosition = fieldStepPosition;
1358
+ }
1353
1359
  if (replaceNullsWithZero !== void 0) {
1354
1360
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
1355
1361
  }
@@ -1583,6 +1589,9 @@ var TimeSeriesChartWrapper = (props) => {
1583
1589
  backgroundColor,
1584
1590
  defaultFontColor,
1585
1591
  additionalTooltipValues,
1592
+ xAxisLineVisibility: xAxisLineVisibility,
1593
+ yAxisLineVisibility,
1594
+ y2AxisLineVisibility,
1586
1595
  showYAxisWithZero: showYAxisWithZeroFromProps,
1587
1596
  showY2AxisWithZero: showY2AxisWithZeroFromProps
1588
1597
  } = _a, otherOptions = __objRest(_a, [
@@ -1606,6 +1615,10 @@ var TimeSeriesChartWrapper = (props) => {
1606
1615
  "backgroundColor",
1607
1616
  "defaultFontColor",
1608
1617
  "additionalTooltipValues",
1618
+ // Extract axis line visibility options from props
1619
+ "xAxisLineVisibility",
1620
+ "yAxisLineVisibility",
1621
+ "y2AxisLineVisibility",
1609
1622
  // Extract showYAxisWithZero directly from props for accelerated render mode
1610
1623
  "showYAxisWithZero",
1611
1624
  "showY2AxisWithZero"
@@ -1618,6 +1631,7 @@ var TimeSeriesChartWrapper = (props) => {
1618
1631
  fieldColors,
1619
1632
  legendLabels: legendLabelsStr,
1620
1633
  legendMode,
1634
+ legendTruncation,
1621
1635
  "axisTitleX.text": xAxisTitleText,
1622
1636
  "axisTitleY.text": yAxisTitleText,
1623
1637
  "axisTitleY2.text": y2AxisTitleText,
@@ -1626,6 +1640,7 @@ var TimeSeriesChartWrapper = (props) => {
1626
1640
  "axisTitleY2.visibility": y2AxisTitleVisibility,
1627
1641
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
1628
1642
  "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
1643
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
1629
1644
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
1630
1645
  "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
1631
1646
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
@@ -1643,6 +1658,8 @@ var TimeSeriesChartWrapper = (props) => {
1643
1658
  lineWidth,
1644
1659
  lineDashStyle,
1645
1660
  fieldDashStyles: lineDashStylesByFieldStr,
1661
+ stepPosition,
1662
+ fieldStepPositions: stepPositionsByFieldStr,
1646
1663
  yAxisMin: yAxisMinRaw,
1647
1664
  yAxisMax: yAxisMaxRaw,
1648
1665
  y2AxisMin: y2AxisMinRaw,
@@ -1653,6 +1670,8 @@ var TimeSeriesChartWrapper = (props) => {
1653
1670
  showYMinorGridLines,
1654
1671
  showY2MinorGridLines,
1655
1672
  showLineSmoothing,
1673
+ xAxisMajorTickVisibility,
1674
+ xAxisMajorTickSize,
1656
1675
  yAxisMajorTickVisibility,
1657
1676
  y2AxisMajorTickVisibility,
1658
1677
  yAxisMajorTickSize,
@@ -1669,10 +1688,14 @@ var TimeSeriesChartWrapper = (props) => {
1669
1688
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
1670
1689
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
1671
1690
  const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
1691
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
1672
1692
  const showYMajorTicks = yAxisMajorTickVisibility === "show";
1673
1693
  const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
1674
1694
  const showYMinorTicks = yAxisMinorTickVisibility === "show";
1675
1695
  const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
1696
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
1697
+ const showYAxisLine = yAxisLineVisibility === "show";
1698
+ const showY2AxisLine = y2AxisLineVisibility === "show";
1676
1699
  const yAxisMin = parseAxisValue(yAxisMinRaw);
1677
1700
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
1678
1701
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
@@ -1687,13 +1710,15 @@ var TimeSeriesChartWrapper = (props) => {
1687
1710
  y2AxisMajorUnitFromSimpleXML,
1688
1711
  y2AxisMajorTickInterval
1689
1712
  );
1690
- const yAxisMajorTickSizeNum = yAxisMajorTickSize ? Number(yAxisMajorTickSize) : void 0;
1691
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize ? Number(y2AxisMajorTickSize) : void 0;
1692
- const yAxisMinorTickSizeNum = yAxisMinorTickSize ? Number(yAxisMinorTickSize) : void 0;
1693
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize ? Number(y2AxisMinorTickSize) : void 0;
1713
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
1714
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
1715
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
1716
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
1717
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
1694
1718
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
1695
1719
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
1696
1720
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
1721
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
1697
1722
  const legendLabels = parseArrayOption(legendLabelsStr);
1698
1723
  const bgColor = backgroundColor || bgColorFromOptions;
1699
1724
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
@@ -1781,7 +1806,9 @@ var TimeSeriesChartWrapper = (props) => {
1781
1806
  nullValueMode,
1782
1807
  markerDisplay,
1783
1808
  lineDashStyle,
1784
- lineDashStylesByField
1809
+ lineDashStylesByField,
1810
+ stepPosition,
1811
+ stepPositionsByField
1785
1812
  ),
1786
1813
  [
1787
1814
  yFields,
@@ -1792,7 +1819,9 @@ var TimeSeriesChartWrapper = (props) => {
1792
1819
  nullValueMode,
1793
1820
  markerDisplay,
1794
1821
  lineDashStyle,
1795
- lineDashStylesByField
1822
+ lineDashStylesByField,
1823
+ stepPosition,
1824
+ stepPositionsByField
1796
1825
  ]
1797
1826
  );
1798
1827
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -1807,9 +1836,14 @@ var TimeSeriesChartWrapper = (props) => {
1807
1836
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
1808
1837
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
1809
1838
  );
1839
+ const isSeriesCompare = legendMode === "seriesCompare";
1810
1840
  const legend = (0, react_exports.useMemo)(
1811
- () => getLegend({ legendDisplay, isSeriesCompare: legendMode === "seriesCompare" }),
1812
- [legendDisplay, legendMode]
1841
+ () => getLegend({
1842
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
1843
+ isSeriesCompare,
1844
+ legendTruncation
1845
+ }),
1846
+ [legendDisplay, isSeriesCompare, legendTruncation]
1813
1847
  );
1814
1848
  const handleChartClick = react_exports.useCallback(
1815
1849
  (event) => {
@@ -1914,6 +1948,7 @@ var TimeSeriesChartWrapper = (props) => {
1914
1948
  seriesConfig: seriesOverrides,
1915
1949
  legend,
1916
1950
  legendLabels,
1951
+ legendTruncation,
1917
1952
  isSeriesCompare: legendMode === "seriesCompare",
1918
1953
  maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
1919
1954
  scaleConfig,
@@ -1935,6 +1970,8 @@ var TimeSeriesChartWrapper = (props) => {
1935
1970
  showY2MinorGridLines,
1936
1971
  showLineSmoothing,
1937
1972
  dataValuesDisplay,
1973
+ showXMajorTicks,
1974
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
1938
1975
  showYMajorTicks,
1939
1976
  showY2MajorTicks,
1940
1977
  yAxisMajorTickSize: yAxisMajorTickSizeNum,
@@ -1946,7 +1983,11 @@ var TimeSeriesChartWrapper = (props) => {
1946
1983
  yAxisMinorTickSize: yAxisMinorTickSizeNum,
1947
1984
  y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
1948
1985
  showYAxisWithZero,
1949
- showY2AxisWithZero
1986
+ showY2AxisWithZero,
1987
+ showXAxisLine,
1988
+ showYAxisLine,
1989
+ showY2AxisLine,
1990
+ xAxisMaxLabelParts
1950
1991
  }
1951
1992
  ));
1952
1993
  }, [
@@ -1961,6 +2002,7 @@ var TimeSeriesChartWrapper = (props) => {
1961
2002
  seriesOverrides,
1962
2003
  legend,
1963
2004
  legendLabels,
2005
+ legendTruncation,
1964
2006
  scaleConfig,
1965
2007
  onClick,
1966
2008
  handleChartClick,
@@ -1979,6 +2021,8 @@ var TimeSeriesChartWrapper = (props) => {
1979
2021
  showY2MinorGridLines,
1980
2022
  showLineSmoothing,
1981
2023
  dataValuesDisplay,
2024
+ showXMajorTicks,
2025
+ xAxisMajorTickSizeNum,
1982
2026
  showYMajorTicks,
1983
2027
  showY2MajorTicks,
1984
2028
  yAxisMajorTickSizeNum,
@@ -1991,7 +2035,11 @@ var TimeSeriesChartWrapper = (props) => {
1991
2035
  y2AxisMinorTickSizeNum,
1992
2036
  showYAxisWithZero,
1993
2037
  showY2AxisWithZero,
1994
- legendMode
2038
+ showXAxisLine,
2039
+ showYAxisLine,
2040
+ showY2AxisLine,
2041
+ legendMode,
2042
+ xAxisMaxLabelParts
1995
2043
  ]);
1996
2044
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
1997
2045
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);
@@ -2321,14 +2369,23 @@ var defaultImport28 = __toESM(require("@splunk/themes"));
2321
2369
  __reExport(themes_exports, require("@splunk/themes"));
2322
2370
  var themes_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
2323
2371
 
2372
+ // esm-externals:@splunk/react-icons/Square
2373
+ var Square_exports = {};
2374
+ __export(Square_exports, {
2375
+ default: () => Square_default
2376
+ });
2377
+ var defaultImport29 = __toESM(require("@splunk/react-icons/Square"));
2378
+ __reExport(Square_exports, require("@splunk/react-icons/Square"));
2379
+ var Square_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
2380
+
2324
2381
  // esm-externals:@splunk/visualizations-shared/configUtils
2325
2382
  var configUtils_exports = {};
2326
2383
  __export(configUtils_exports, {
2327
2384
  default: () => configUtils_default
2328
2385
  });
2329
- var defaultImport29 = __toESM(require("@splunk/visualizations-shared/configUtils"));
2386
+ var defaultImport30 = __toESM(require("@splunk/visualizations-shared/configUtils"));
2330
2387
  __reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
2331
- var configUtils_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
2388
+ var configUtils_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
2332
2389
 
2333
2390
  // src/common/utils/configUtils.ts
2334
2391
  function enhanceConfig(vizConfig) {
@@ -2726,7 +2783,7 @@ var config = {
2726
2783
  /**
2727
2784
  * viz icon
2728
2785
  */
2729
- icon: null,
2786
+ icon: Square_default,
2730
2787
  dataContract,
2731
2788
  size,
2732
2789
  defaultContext,
@@ -2748,27 +2805,27 @@ var pick_exports = {};
2748
2805
  __export(pick_exports, {
2749
2806
  default: () => pick_default
2750
2807
  });
2751
- var defaultImport30 = __toESM(require("@splunk/themes/pick"));
2808
+ var defaultImport31 = __toESM(require("@splunk/themes/pick"));
2752
2809
  __reExport(pick_exports, require("@splunk/themes/pick"));
2753
- var pick_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
2810
+ var pick_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
2754
2811
 
2755
2812
  // esm-externals:@splunk/visualizations-shared/propUtils
2756
2813
  var propUtils_exports = {};
2757
2814
  __export(propUtils_exports, {
2758
2815
  default: () => propUtils_default
2759
2816
  });
2760
- var defaultImport31 = __toESM(require("@splunk/visualizations-shared/propUtils"));
2817
+ var defaultImport32 = __toESM(require("@splunk/visualizations-shared/propUtils"));
2761
2818
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
2762
- var propUtils_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
2819
+ var propUtils_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
2763
2820
 
2764
2821
  // esm-externals:@splunk/react-ui/ScreenReaderContent
2765
2822
  var ScreenReaderContent_exports = {};
2766
2823
  __export(ScreenReaderContent_exports, {
2767
2824
  default: () => ScreenReaderContent_default
2768
2825
  });
2769
- var defaultImport32 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
2826
+ var defaultImport33 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
2770
2827
  __reExport(ScreenReaderContent_exports, require("@splunk/react-ui/ScreenReaderContent"));
2771
- var ScreenReaderContent_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
2828
+ var ScreenReaderContent_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
2772
2829
 
2773
2830
  // src/common/shapeUtils.tsx
2774
2831
  var shapeOptionsMapping = {