@splunk/visualizations 27.5.0 → 28.0.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 (164) hide show
  1. package/Area.config.js +19 -21
  2. package/Area.config.js.map +3 -3
  3. package/Area.js +54 -32
  4. package/Area.js.map +3 -3
  5. package/Bar.config.js +18 -21
  6. package/Bar.config.js.map +3 -3
  7. package/Bar.js +48 -31
  8. package/Bar.js.map +3 -3
  9. package/Bubble.config.js +39 -44
  10. package/Bubble.config.js.map +4 -4
  11. package/Bubble.js +69 -51
  12. package/Bubble.js.map +4 -4
  13. package/CHANGELOG.external.md +35 -7
  14. package/ChoroplethSvg.config.js +47 -43
  15. package/ChoroplethSvg.config.js.map +4 -4
  16. package/ChoroplethSvg.js +72 -45
  17. package/ChoroplethSvg.js.map +4 -4
  18. package/Column.config.js +15 -20
  19. package/Column.config.js.map +3 -3
  20. package/Column.js +42 -29
  21. package/Column.js.map +3 -3
  22. package/Ellipse.config.js +16 -7
  23. package/Ellipse.config.js.map +2 -2
  24. package/Ellipse.js +45 -19
  25. package/Ellipse.js.map +2 -2
  26. package/Events.config.js +38 -27
  27. package/Events.config.js.map +4 -4
  28. package/Events.js +113 -97
  29. package/Events.js.map +4 -4
  30. package/FEATUREFLAGS.md +9 -9
  31. package/FillerGauge.config.js +20 -13
  32. package/FillerGauge.config.js.map +3 -3
  33. package/FillerGauge.js +76 -27
  34. package/FillerGauge.js.map +4 -4
  35. package/Image.config.js +5 -6
  36. package/Image.config.js.map +2 -2
  37. package/Image.js +29 -14
  38. package/Image.js.map +2 -2
  39. package/Line.config.js +15 -20
  40. package/Line.config.js.map +3 -3
  41. package/Line.js +50 -31
  42. package/Line.js.map +3 -3
  43. package/LinkGraph.config.js +39 -46
  44. package/LinkGraph.config.js.map +3 -3
  45. package/LinkGraph.js +70 -50
  46. package/LinkGraph.js.map +3 -3
  47. package/MIGRATION.md +169 -40
  48. package/Map.config.js +36 -13
  49. package/Map.config.js.map +4 -4
  50. package/Map.js +170 -105
  51. package/Map.js.map +4 -4
  52. package/Markdown.config.js +4 -5
  53. package/Markdown.config.js.map +2 -2
  54. package/Markdown.js +117 -72
  55. package/Markdown.js.map +3 -3
  56. package/MarkerGauge.config.js +14 -12
  57. package/MarkerGauge.config.js.map +3 -3
  58. package/MarkerGauge.js +107 -69
  59. package/MarkerGauge.js.map +4 -4
  60. package/ParallelCoordinates.config.js +14 -12
  61. package/ParallelCoordinates.config.js.map +3 -3
  62. package/ParallelCoordinates.js +113 -59
  63. package/ParallelCoordinates.js.map +3 -3
  64. package/Pie.config.js +51 -38
  65. package/Pie.config.js.map +4 -4
  66. package/Pie.js +109 -85
  67. package/Pie.js.map +4 -4
  68. package/Punchcard.config.js +36 -34
  69. package/Punchcard.config.js.map +4 -4
  70. package/Punchcard.js +153 -87
  71. package/Punchcard.js.map +4 -4
  72. package/README.internal.md +15 -15
  73. package/README.md +10 -10
  74. package/Rectangle.config.js +16 -7
  75. package/Rectangle.config.js.map +2 -2
  76. package/Rectangle.js +45 -19
  77. package/Rectangle.js.map +2 -2
  78. package/Sankey.config.js +69 -17
  79. package/Sankey.config.js.map +4 -4
  80. package/Sankey.js +178 -49
  81. package/Sankey.js.map +4 -4
  82. package/Scatter.config.js +37 -42
  83. package/Scatter.config.js.map +3 -3
  84. package/Scatter.js +70 -53
  85. package/Scatter.js.map +3 -3
  86. package/SingleValue.config.js +32 -18
  87. package/SingleValue.config.js.map +4 -4
  88. package/SingleValue.js +237 -93
  89. package/SingleValue.js.map +4 -4
  90. package/SingleValueBasic.js +1 -0
  91. package/SingleValueBasic.js.map +2 -2
  92. package/SingleValueIcon.config.js +22 -11
  93. package/SingleValueIcon.config.js.map +2 -2
  94. package/SingleValueIcon.js +84 -28
  95. package/SingleValueIcon.js.map +2 -2
  96. package/SingleValueRadial.config.js +34 -23
  97. package/SingleValueRadial.config.js.map +3 -3
  98. package/SingleValueRadial.js +89 -48
  99. package/SingleValueRadial.js.map +4 -4
  100. package/SparkLine.js +153 -49
  101. package/SparkLine.js.map +2 -2
  102. package/Table.config.js +71 -51
  103. package/Table.config.js.map +3 -3
  104. package/Table.js +282 -145
  105. package/Table.js.map +3 -3
  106. package/Timeline.config.js +36 -34
  107. package/Timeline.config.js.map +4 -4
  108. package/Timeline.js +67 -59
  109. package/Timeline.js.map +4 -4
  110. package/common/Charting.js +1 -0
  111. package/common/Charting.js.map +2 -2
  112. package/common/ChartingApi.js +1 -0
  113. package/common/ChartingApi.js.map +1 -1
  114. package/common/DocExampleWithVizSandbox.js +7 -2
  115. package/common/DocExampleWithVizSandbox.js.map +2 -2
  116. package/common/EventsDoc.js +31 -5
  117. package/common/EventsDoc.js.map +4 -4
  118. package/common/GaugeMajorTicks.js +4 -1
  119. package/common/GaugeMajorTicks.js.map +2 -2
  120. package/common/GaugeValueMarker.js +31 -3
  121. package/common/GaugeValueMarker.js.map +4 -4
  122. package/common/OptionsDoc.js +4 -1
  123. package/common/OptionsDoc.js.map +2 -2
  124. package/common/OverviewDoc.js +66 -50
  125. package/common/OverviewDoc.js.map +4 -4
  126. package/common/SplunkVisualization.js +1 -0
  127. package/common/SplunkVisualization.js.map +1 -1
  128. package/common/SplunkVisualizationApi.js +1 -0
  129. package/common/SplunkVisualizationApi.js.map +1 -1
  130. package/common/ThemedDefaults.js +67 -0
  131. package/common/ThemedDefaults.js.map +7 -0
  132. package/common/ThemesDoc.js +6 -9
  133. package/common/ThemesDoc.js.map +2 -2
  134. package/common/chartingUtils.js +1 -0
  135. package/common/chartingUtils.js.map +2 -2
  136. package/common/docUtils.js +6 -1
  137. package/common/docUtils.js.map +2 -2
  138. package/common/gaugeUtils.js +6 -1
  139. package/common/gaugeUtils.js.map +2 -2
  140. package/common/shapeUtils.js +6 -4
  141. package/common/shapeUtils.js.map +2 -2
  142. package/common/utils/configUtils.js +4 -5
  143. package/common/utils/configUtils.js.map +2 -2
  144. package/common/utils/dataUtils.js +1 -0
  145. package/common/utils/dataUtils.js.map +2 -2
  146. package/common/utils/featureFlagUtils.js +1 -0
  147. package/common/utils/featureFlagUtils.js.map +1 -1
  148. package/common/utils/hocUtils.js +1 -0
  149. package/common/utils/hocUtils.js.map +1 -1
  150. package/common/utils/mapUtils.js +35 -22
  151. package/common/utils/mapUtils.js.map +4 -4
  152. package/common/utils/singleValueUtils.js +8 -2
  153. package/common/utils/singleValueUtils.js.map +2 -2
  154. package/common/utils/styleUtils.js +1 -0
  155. package/common/utils/styleUtils.js.map +1 -1
  156. package/common/utils/testHelper.js +1 -0
  157. package/common/utils/testHelper.js.map +1 -1
  158. package/common/utils/trellisUtils.js +1 -0
  159. package/common/utils/trellisUtils.js.map +1 -1
  160. package/common/utils/urlUtils.js +1 -0
  161. package/common/utils/urlUtils.js.map +1 -1
  162. package/common/withDashboardViz.js +25 -8
  163. package/common/withDashboardViz.js.map +2 -2
  164. package/package.json +37 -35
@@ -1,6 +1,7 @@
1
1
  /* Copyright © 2020 Splunk Inc.
2
2
  SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ "use strict";
4
5
  var __create = Object.create;
5
6
  var __defProp = Object.defineProperty;
6
7
  var __defProps = Object.defineProperties;
@@ -54,77 +55,77 @@ __export(config_exports, {
54
55
  });
55
56
  module.exports = __toCommonJS(config_exports);
56
57
 
57
- // esm-externals:lodash
58
- var lodash_exports = {};
59
- __export(lodash_exports, {
60
- default: () => lodash_default
61
- });
62
- var defaultImport = __toESM(require("lodash"));
63
- __reExport(lodash_exports, require("lodash"));
64
- var lodash_default = "default" in defaultImport ? defaultImport.default : defaultImport;
65
-
66
58
  // esm-externals:@splunk/visualization-icons
67
59
  var visualization_icons_exports = {};
68
60
  __export(visualization_icons_exports, {
69
61
  default: () => visualization_icons_default
70
62
  });
71
- var defaultImport2 = __toESM(require("@splunk/visualization-icons"));
63
+ var defaultImport = __toESM(require("@splunk/visualization-icons"));
72
64
  __reExport(visualization_icons_exports, require("@splunk/visualization-icons"));
73
- var visualization_icons_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
65
+ var visualization_icons_default = "default" in defaultImport ? defaultImport.default : defaultImport;
74
66
 
75
67
  // esm-externals:@splunk/visualization-icons/placeholders
76
68
  var placeholders_exports = {};
77
69
  __export(placeholders_exports, {
78
70
  default: () => placeholders_default
79
71
  });
80
- var defaultImport3 = __toESM(require("@splunk/visualization-icons/placeholders"));
72
+ var defaultImport2 = __toESM(require("@splunk/visualization-icons/placeholders"));
81
73
  __reExport(placeholders_exports, require("@splunk/visualization-icons/placeholders"));
82
- var placeholders_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
74
+ var placeholders_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
83
75
 
84
76
  // esm-externals:@splunk/visualization-schemas
85
77
  var visualization_schemas_exports = {};
86
78
  __export(visualization_schemas_exports, {
87
79
  default: () => visualization_schemas_default
88
80
  });
89
- var defaultImport4 = __toESM(require("@splunk/visualization-schemas"));
81
+ var defaultImport3 = __toESM(require("@splunk/visualization-schemas"));
90
82
  __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
91
- var visualization_schemas_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
83
+ var visualization_schemas_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
92
84
 
93
85
  // esm-externals:@splunk/ui-utils/i18n
94
86
  var i18n_exports = {};
95
87
  __export(i18n_exports, {
96
88
  default: () => i18n_default
97
89
  });
98
- var defaultImport5 = __toESM(require("@splunk/ui-utils/i18n"));
90
+ var defaultImport4 = __toESM(require("@splunk/ui-utils/i18n"));
99
91
  __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
100
- var i18n_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
92
+ var i18n_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
101
93
 
102
94
  // esm-externals:@splunk/themes/pick
103
95
  var pick_exports = {};
104
96
  __export(pick_exports, {
105
97
  default: () => pick_default
106
98
  });
107
- var defaultImport6 = __toESM(require("@splunk/themes/pick"));
99
+ var defaultImport5 = __toESM(require("@splunk/themes/pick"));
108
100
  __reExport(pick_exports, require("@splunk/themes/pick"));
109
- var pick_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
101
+ var pick_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
110
102
 
111
103
  // esm-externals:@splunk/themes/variables
112
104
  var variables_exports = {};
113
105
  __export(variables_exports, {
114
106
  default: () => variables_default
115
107
  });
116
- var defaultImport7 = __toESM(require("@splunk/themes/variables"));
108
+ var defaultImport6 = __toESM(require("@splunk/themes/variables"));
117
109
  __reExport(variables_exports, require("@splunk/themes/variables"));
118
- var variables_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
110
+ var variables_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
119
111
 
120
112
  // esm-externals:@splunk/visualizations-shared/colorConstants
121
113
  var colorConstants_exports = {};
122
114
  __export(colorConstants_exports, {
123
115
  default: () => colorConstants_default
124
116
  });
125
- var defaultImport8 = __toESM(require("@splunk/visualizations-shared/colorConstants"));
117
+ var defaultImport7 = __toESM(require("@splunk/visualizations-shared/colorConstants"));
126
118
  __reExport(colorConstants_exports, require("@splunk/visualizations-shared/colorConstants"));
127
- var colorConstants_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
119
+ var colorConstants_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
120
+
121
+ // esm-externals:lodash
122
+ var lodash_exports = {};
123
+ __export(lodash_exports, {
124
+ default: () => lodash_default
125
+ });
126
+ var defaultImport8 = __toESM(require("lodash"));
127
+ __reExport(lodash_exports, require("lodash"));
128
+ var lodash_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
128
129
 
129
130
  // esm-externals:@splunk/visualizations-shared/configUtils
130
131
  var configUtils_exports = {};
@@ -138,14 +139,21 @@ var configUtils_default = "default" in defaultImport9 ? defaultImport9.default :
138
139
  // src/common/utils/configUtils.ts
139
140
  function enhanceConfig(vizConfig) {
140
141
  const enhancedConfig = __spreadValues({}, vizConfig);
141
- enhancedConfig.editorConfig = vizConfig.editorConfig.map(
142
- (config2) => {
143
- return __spreadProps(__spreadValues({}, config2), { open: config2.open || false });
144
- }
145
- );
142
+ enhancedConfig.editorConfig = vizConfig.editorConfig.map((config2) => {
143
+ return __spreadProps(__spreadValues({}, config2), { open: config2.open || false });
144
+ });
146
145
  return enhancedConfig;
147
146
  }
148
147
 
148
+ // src/common/ThemedDefaults.tsx
149
+ var defaultBackgroundColor = (props) => pick_default({
150
+ enterprise: {
151
+ dark: variables_default.black(props),
152
+ light: variables_default.white(props)
153
+ },
154
+ prisma: variables_default.backgroundColorSection(props)
155
+ })(props);
156
+
149
157
  // src/LinkGraph/config.ts
150
158
  var dataContract = {
151
159
  requiredDataSources: [
@@ -179,20 +187,8 @@ var defaultContext = {
179
187
  }
180
188
  };
181
189
  var themes = {
182
- defaultBackgroundColor: (props) => pick_default({
183
- enterprise: {
184
- dark: variables_default.black(props),
185
- light: variables_default.backgroundColor(props)
186
- },
187
- prisma: variables_default.backgroundColorSidebar(props)
188
- })(props),
189
- defaultNodeColor: (props) => pick_default({
190
- enterprise: {
191
- dark: variables_default.backgroundColorDialog(props),
192
- light: variables_default.gray96(props)
193
- },
194
- prisma: variables_default.backgroundColorDialog(props)
195
- })(props),
190
+ defaultBackgroundColor,
191
+ defaultNodeColor: (props) => variables_default.neutral100(props),
196
192
  inverseDefaultNodeColor: (props) => pick_default({
197
193
  enterprise: {
198
194
  dark: variables_default.contentColorInverted(props),
@@ -217,10 +213,7 @@ var themes = {
217
213
  })(props)
218
214
  };
219
215
  var EDITOR_LABEL_WIDTH = 140;
220
- var backgroundColorPaletteSet = /* @__PURE__ */ new Set([
221
- ...colorConstants_exports.COLOR_EDITOR_PALETTE,
222
- ...(0, lodash_exports.map)(themes, (t) => (0, lodash_exports.get)(t, "defaultBackgroundColor"))
223
- ]);
216
+ var backgroundColorPaletteSet = /* @__PURE__ */ new Set([...colorConstants_exports.COLOR_EDITOR_PALETTE]);
224
217
  var editorConfig = [
225
218
  // {
226
219
  // label: _('Data'),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["src/LinkGraph/config.ts", "esm-externals:lodash", "esm-externals:@splunk/visualization-icons", "esm-externals:@splunk/visualization-icons/placeholders", "esm-externals:@splunk/visualization-schemas", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/themes/pick", "esm-externals:@splunk/themes/variables", "esm-externals:@splunk/visualizations-shared/colorConstants", "esm-externals:@splunk/visualizations-shared/configUtils", "src/common/utils/configUtils.ts"],
4
- "sourcesContent": ["import { map, get } from 'lodash';\nimport { LinkGraph as LinkGraphIcon } from '@splunk/visualization-icons';\nimport { LinkGraph as LinkGraphPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport { linkGraphOptionsSchema as optionsSchema } from '@splunk/visualization-schemas';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [\n // {\n // name: 'metadata',\n // description: 'Used buy the ES team along side the feature flag `LinkGraph.showNodeMetaData`',\n // },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 900,\n initialHeight: 400,\n};\n\nconst defaultContext: DefaultContext = {\n nodeTextColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n nodeHighlightTextColorMaxContrast: {\n colors: ['> themes.defaultNodeColor', '> themes.inverseDefaultNodeColor'],\n default: '> themes.textColor',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.backgroundColorDialog(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorDialog(props),\n })(props),\n inverseDefaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst EDITOR_LABEL_WIDTH = 140;\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\n\nconst editorConfig: EditorConfig[] = [\n // {\n // label: _('Data'),\n // layout: [\n // [\n // {\n // label: _('Field Ordering'),\n // option: 'fieldOrder',\n // editor: 'editor.arrayOfStrings',\n // editorProps: {\n // themes,\n // labelPosition: 'top',\n // },\n // },\n // ],\n // ],\n // },\n {\n label: _('Data configurations'),\n layout: [\n [\n {\n label: _('Result limit'),\n option: 'resultLimit',\n editor: 'editor.number',\n editorProps: {\n themes,\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Show node counts'),\n option: 'showNodeCounts',\n editor: 'editor.checkbox',\n editorProps: {\n themes,\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Show value counts'),\n option: 'showValueCounts',\n editor: 'editor.checkbox',\n editorProps: {\n themes,\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Nodes'),\n option: 'nodeColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Selected nodes'),\n option: 'nodeHighlightColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Links'),\n option: 'linkColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Background color'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Node width'),\n option: 'nodeWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Node height'),\n option: 'nodeHeight',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Vertical spacing'),\n option: 'nodeSpacingY',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Horizontal spacing'),\n option: 'nodeSpacingX',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Link width'),\n option: 'linkWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n];\n\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.linkgraph',\n /**\n * viz name\n */\n name: _('Link graph'),\n category: VizCategory.FLOW,\n status: 'preview',\n /**\n * viz icon\n */\n icon: LinkGraphIcon,\n placeholderIcon: LinkGraphPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'node.click': {\n description: 'triggered when user clicks a node',\n },\n 'node.mouseover': {\n description: 'triggered when user hovers over a node',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n};\n\nexport default enhanceConfig(config);\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons\";\nexport * from \"@splunk/visualization-icons\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons/placeholders\";\nexport * from \"@splunk/visualization-icons/placeholders\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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/themes/pick\";\nexport * from \"@splunk/themes/pick\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/variables\";\nexport * from \"@splunk/themes/variables\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/colorConstants\";\nexport * from \"@splunk/visualizations-shared/colorConstants\";\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(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\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"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,iCAAc;AACd,IAAO,uBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,0CAAc;AACd,IAAO,gCAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,mCAAc;AACd,IAAO,yBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,gCAAc;AACd,IAAO,sBAAS,aAAaA,iBAA8B,yBAAUA;;;ACkBrE,SAAS,cAAc,WAAiC;AACpD,QAAM,iBAA4B,mBAAK;AAEvC,iBAAe,eAAe,UAAU,aAAa;AAAA,IACjD,CAACC,YAAuC;AACpC,aAAO,iCAAKA,UAAL,EAAa,MAAMA,QAAO,QAAQ,MAAM;AAAA,IACnD;AAAA,EACJ;AACA,SAAO;AACX;;;AVZA,IAAM,eAA6B;AAAA,EAC/B,qBAAqB;AAAA,IACjB;AAAA,MACI,MAAM;AAAA,MACN,aAAa;AAAA,IACjB;AAAA,EACJ;AAAA,EACA,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB;AAAA,EACA,sBAAsB;AAAA,IAClB,SAAS,EAAE,QAAQ,GAAG,OAAO,IAAM;AAAA,EACvC;AACJ;AAEA,IAAM,OAAgB;AAAA,EAClB,cAAc;AAAA,EACd,eAAe;AACnB;AAEA,IAAM,iBAAiC;AAAA,EACnC,0BAA0B;AAAA,IACtB,QAAQ,CAAC,sBAAsB,2BAA2B;AAAA,IAC1D,SAAS;AAAA,EACb;AAAA,EACA,mCAAmC;AAAA,IAC/B,QAAQ,CAAC,6BAA6B,kCAAkC;AAAA,IACxE,SAAS;AAAA,EACb;AACJ;AAEA,IAAM,SAAyB;AAAA,EAC3B,wBAAwB,WACpB,aAAK;AAAA,IACD,YAAY;AAAA,MACR,MAAM,kBAAU,MAAM,KAAK;AAAA,MAC3B,OAAO,kBAAU,gBAAgB,KAAK;AAAA,IAC1C;AAAA,IACA,QAAQ,kBAAU,uBAAuB,KAAK;AAAA,EAClD,CAAC,EAAE,KAAK;AAAA,EACZ,kBAAkB,WACd,aAAK;AAAA,IACD,YAAY;AAAA,MACR,MAAM,kBAAU,sBAAsB,KAAK;AAAA,MAC3C,OAAO,kBAAU,OAAO,KAAK;AAAA,IACjC;AAAA,IACA,QAAQ,kBAAU,sBAAsB,KAAK;AAAA,EACjD,CAAC,EAAE,KAAK;AAAA,EACZ,yBAAyB,WACrB,aAAK;AAAA,IACD,YAAY;AAAA,MACR,MAAM,kBAAU,qBAAqB,KAAK;AAAA;AAAA,MAC1C,OAAO,kBAAU,MAAM,KAAK;AAAA;AAAA,IAChC;AAAA,IACA,QAAQ,kBAAU,qBAAqB,KAAK;AAAA,EAChD,CAAC,EAAE,KAAK;AAAA,EACZ,WAAW,WACP,aAAK;AAAA,IACD,YAAY,kBAAU,UAAU,KAAK;AAAA,IACrC,QAAQ,kBAAU,oBAAoB,KAAK;AAAA,EAC/C,CAAC,EAAE,KAAK;AAAA,EACZ,kBAAkB,WACd,aAAK;AAAA,IACD,YAAY;AAAA,MACR,MAAM,kBAAU,qBAAqB,KAAK;AAAA;AAAA,MAC1C,OAAO,kBAAU,MAAM,KAAK;AAAA;AAAA,IAChC;AAAA,IACA,QAAQ,kBAAU,qBAAqB,KAAK;AAAA,EAChD,CAAC,EAAE,KAAK;AAChB;AAEA,IAAM,qBAAqB;AAC3B,IAAM,4BAA4B,oBAAI,IAAI;AAAA,EACtC,GAAG;AAAA,EACH,OAAG,oBAAI,QAAQ,CAAC,UAAc,oBAAI,GAAG,wBAAwB,CAAC;AAClE,CAAC;AAED,IAAM,eAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBjC;AAAA,IACI,WAAO,gBAAE,qBAAqB;AAAA,IAC9B,QAAQ;AAAA,MACJ;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,cAAc;AAAA,UACvB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,KAAK;AAAA,YACL,YAAY;AAAA,UAChB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,WAAO,gBAAE,cAAc;AAAA,IACvB,QAAQ;AAAA,MACJ;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,kBAAkB;AAAA,UAC3B,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ,SAAS,CAAC,GAAG,yBAAyB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,mBAAmB;AAAA,UAC5B,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ,SAAS,CAAC,GAAG,yBAAyB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,WAAO,gBAAE,iBAAiB;AAAA,IAC1B,QAAQ;AAAA,MACJ;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,OAAO;AAAA,UAChB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ,SAAS,CAAC,GAAG,yBAAyB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,gBAAgB;AAAA,UACzB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ,SAAS,CAAC,GAAG,yBAAyB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,OAAO;AAAA,UAChB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ,SAAS,CAAC,GAAG,yBAAyB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,kBAAkB;AAAA,UAC3B,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ,SAAS,CAAC,GAAG,yBAAyB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,YAAY;AAAA,UACrB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,eAAe;AAAA,YACf,KAAK;AAAA,YACL,YAAY;AAAA,UAChB;AAAA,QACJ;AAAA,QACA;AAAA,UACI,WAAO,gBAAE,aAAa;AAAA,UACtB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,eAAe;AAAA,YACf,KAAK;AAAA,YACL,YAAY;AAAA,UAChB;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,kBAAkB;AAAA,UAC3B,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,eAAe;AAAA,YACf,KAAK;AAAA,YACL,YAAY;AAAA,UAChB;AAAA,QACJ;AAAA,QACA;AAAA,UACI,WAAO,gBAAE,oBAAoB;AAAA,UAC7B,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,eAAe;AAAA,YACf,KAAK;AAAA,YACL,YAAY;AAAA,UAChB;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI;AAAA,UACI,WAAO,gBAAE,YAAY;AAAA,UACrB,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,aAAa;AAAA,YACT;AAAA,YACA,eAAe;AAAA,YACf,KAAK;AAAA,YACL,YAAY;AAAA,UAChB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,IAAM,SAAoB;AAAA;AAAA;AAAA;AAAA,EAItB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIL,UAAM,gBAAE,YAAY;AAAA,EACpB;AAAA,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAIR,MAAM,4BAAAC;AAAA,EACN,iBAAiB,qBAAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA,6CAAAC;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,IACJ,cAAc;AAAA,MACV,aAAa;AAAA,IACjB;AAAA,IACA,kBAAkB;AAAA,MACd,aAAa;AAAA,IACjB;AAAA,EACJ;AAAA,EACA,UAAU,gGAAyE;AAAA,EACnF;AACJ;AAEA,IAAO,iBAAQ,cAAc,MAAM;",
3
+ "sources": ["src/LinkGraph/config.ts", "esm-externals:@splunk/visualization-icons", "esm-externals:@splunk/visualization-icons/placeholders", "esm-externals:@splunk/visualization-schemas", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/themes/pick", "esm-externals:@splunk/themes/variables", "esm-externals:@splunk/visualizations-shared/colorConstants", "esm-externals:lodash", "esm-externals:@splunk/visualizations-shared/configUtils", "src/common/utils/configUtils.ts", "src/common/ThemedDefaults.tsx"],
4
+ "sourcesContent": ["import { LinkGraph as LinkGraphIcon } from '@splunk/visualization-icons';\nimport { LinkGraph as LinkGraphPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport { linkGraphOptionsSchema as optionsSchema } from '@splunk/visualization-schemas';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\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 { defaultBackgroundColor } from '../common/ThemedDefaults';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [\n // {\n // name: 'metadata',\n // description: 'Used buy the ES team along side the feature flag `LinkGraph.showNodeMetaData`',\n // },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 900,\n initialHeight: 400,\n};\n\nconst defaultContext: DefaultContext = {\n nodeTextColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n nodeHighlightTextColorMaxContrast: {\n colors: ['> themes.defaultNodeColor', '> themes.inverseDefaultNodeColor'],\n default: '> themes.textColor',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor,\n defaultNodeColor: props => variables.neutral100(props),\n inverseDefaultNodeColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst EDITOR_LABEL_WIDTH = 140;\nconst backgroundColorPaletteSet = new Set([...COLOR_EDITOR_PALETTE]);\n\nconst editorConfig: EditorConfig[] = [\n // {\n // label: _('Data'),\n // layout: [\n // [\n // {\n // label: _('Field Ordering'),\n // option: 'fieldOrder',\n // editor: 'editor.arrayOfStrings',\n // editorProps: {\n // themes,\n // labelPosition: 'top',\n // },\n // },\n // ],\n // ],\n // },\n {\n label: _('Data configurations'),\n layout: [\n [\n {\n label: _('Result limit'),\n option: 'resultLimit',\n editor: 'editor.number',\n editorProps: {\n themes,\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Show node counts'),\n option: 'showNodeCounts',\n editor: 'editor.checkbox',\n editorProps: {\n themes,\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Show value counts'),\n option: 'showValueCounts',\n editor: 'editor.checkbox',\n editorProps: {\n themes,\n labelWidth: 130,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Nodes'),\n option: 'nodeColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Selected nodes'),\n option: 'nodeHighlightColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Links'),\n option: 'linkColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Background color'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n themes,\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n label: _('Node width'),\n option: 'nodeWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Node height'),\n option: 'nodeHeight',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Vertical spacing'),\n option: 'nodeSpacingY',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n {\n label: _('Horizontal spacing'),\n option: 'nodeSpacingX',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Link width'),\n option: 'linkWidth',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n];\n\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.linkgraph',\n /**\n * viz name\n */\n name: _('Link graph'),\n category: VizCategory.FLOW,\n status: 'preview',\n /**\n * viz icon\n */\n icon: LinkGraphIcon,\n placeholderIcon: LinkGraphPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'node.click': {\n description: 'triggered when user clicks a node',\n },\n 'node.mouseover': {\n description: 'triggered when user hovers over a node',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n};\n\nexport default enhanceConfig(config);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons\";\nexport * from \"@splunk/visualization-icons\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons/placeholders\";\nexport * from \"@splunk/visualization-icons/placeholders\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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/themes/pick\";\nexport * from \"@splunk/themes/pick\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/variables\";\nexport * from \"@splunk/themes/variables\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/colorConstants\";\nexport * from \"@splunk/visualizations-shared/colorConstants\";\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 pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nexport const defaultBackgroundColor = props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.white(props),\n },\n prisma: variables.backgroundColorSection(props),\n })(props);\n"],
5
+ "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "config", "LinkGraphIcon", "LinkGraphPlaceholderIcon", "optionsSchema"]
7
7
  }
package/LinkGraph.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /* Copyright © 2020 Splunk Inc.
2
2
  SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ "use strict";
4
5
  var __create = Object.create;
5
6
  var __defProp = Object.defineProperty;
6
7
  var __defProps = Object.defineProperties;
@@ -3012,9 +3013,14 @@ var Item = styled_components_default.div.attrs(({ width }) => ({
3012
3013
  position: relative;
3013
3014
  background-color: ${(props) => (0, colorUtils_exports.isColor)(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor}};
3014
3015
  `;
3015
- var FixSizeItem = styled_components_default.div.attrs(({ width, height }) => ({
3016
- style: __spreadValues(__spreadValues({}, width && { width: (0, style_exports.toPx)(width) }), height && { height: (0, style_exports.toPx)(height) })
3017
- }))`
3016
+ var FixSizeItem = styled_components_default.div.attrs(
3017
+ ({
3018
+ width,
3019
+ height
3020
+ }) => ({
3021
+ style: __spreadValues(__spreadValues({}, width && { width: (0, style_exports.toPx)(width) }), height && { height: (0, style_exports.toPx)(height) })
3022
+ })
3023
+ )`
3018
3024
  position: relative;
3019
3025
  flex-direction: column;
3020
3026
  flex: 1;
@@ -3048,7 +3054,7 @@ var withFixedSizeContainer = (Viz) => {
3048
3054
  FixSizeItem,
3049
3055
  {
3050
3056
  "data-test": "fix-size-item",
3051
- "data-splunk-visualization-version": "27.5.0 - 5cfbc7064",
3057
+ "data-splunk-visualization-version": "28.0.0 - 0c5f07712",
3052
3058
  width,
3053
3059
  height,
3054
3060
  backgroundColor
@@ -3118,7 +3124,7 @@ var Cover = styled_components_default.div`
3118
3124
  bottom: 0;
3119
3125
  `;
3120
3126
  var Blocker = styled_components_default.div.attrs({
3121
- "data-splunk-visualization-version": "27.5.0 - 5cfbc7064"
3127
+ "data-splunk-visualization-version": "28.0.0 - 0c5f07712"
3122
3128
  })`
3123
3129
  position: relative;
3124
3130
  width: 100%;
@@ -3558,7 +3564,12 @@ var useGetXAndYFields = ({
3558
3564
  y2Fields: options.y2 ? "> y2 | getField()" : void 0,
3559
3565
  fieldTypes: "> primary | getType()"
3560
3566
  };
3561
- const { xField = "", yFields = [], y2Fields = [], fieldTypes } = Options_exports.Options.evaluate(
3567
+ const {
3568
+ xField = "",
3569
+ yFields = [],
3570
+ y2Fields = [],
3571
+ fieldTypes
3572
+ } = Options_exports.Options.evaluate(
3562
3573
  { options: optionsToEvaluate, context },
3563
3574
  dataSourcesWithOnlyOnePoint,
3564
3575
  () => {
@@ -3847,7 +3858,9 @@ var withDashboardViz = (opts) => {
3847
3858
  return result;
3848
3859
  }
3849
3860
  } catch (e) {
3850
- console.error(`unexpected error evaluating options: ${e.message}`);
3861
+ if (e instanceof Error) {
3862
+ console.error(`unexpected error evaluating options: ${e.message}`);
3863
+ }
3851
3864
  return {};
3852
3865
  }
3853
3866
  return {};
@@ -3906,7 +3919,11 @@ var withDashboardViz = (opts) => {
3906
3919
  if (ev && ev.payload) {
3907
3920
  payload = ev.payload;
3908
3921
  }
3909
- return onEventTrigger({ originalEvent: ev, payload, type: eventName });
3922
+ return onEventTrigger({
3923
+ originalEvent: ev,
3924
+ payload,
3925
+ type: eventName
3926
+ });
3910
3927
  };
3911
3928
  if (parentKeys) {
3912
3929
  for (let i = parentKeys.length - 1; i >= 0; i -= 1) {
@@ -4456,7 +4473,9 @@ var Edges = (props) => {
4456
4473
  /* @__PURE__ */ react_exports.createElement(
4457
4474
  StyledEdgesPath,
4458
4475
  {
4459
- style: { visibility: edge.isHidden ? "hidden" : "visible" },
4476
+ style: {
4477
+ visibility: edge.isHidden ? "hidden" : "visible"
4478
+ },
4460
4479
  className: "edge",
4461
4480
  key,
4462
4481
  "data-test": key,
@@ -4709,7 +4728,7 @@ var NodeES = (props) => {
4709
4728
  },
4710
4729
  metaData.icon && isSVG ? /* @__PURE__ */ react_exports.createElement("svg", null, /* @__PURE__ */ react_exports.createElement("path", { fill: "currentColor", d: metaData.icon.split('d="')[1].split('"')[0] })) : null,
4711
4730
  metaData.icon && isIMG ? /* @__PURE__ */ react_exports.createElement("img", { style: esStyle, alt: metaData.badge_label, src: metaData.icon }) : null,
4712
- Icon && metaData.icon && !isIMG && !isSVG ? /* @__PURE__ */ react_exports.createElement(Icon, { style: { marginTop: "4px", marginRight: "4px" } }) : null,
4731
+ Icon && metaData.icon && !isIMG && !isSVG ? /* @__PURE__ */ react_exports.createElement(Icon, { style: { marginTop: "4px", marginRight: "4px" }, "data-test": metaData.icon }) : null,
4713
4732
  /* @__PURE__ */ react_exports.createElement("div", { className: "left-content-se" }, /* @__PURE__ */ react_exports.createElement(Paragraph_default, null, /* @__PURE__ */ react_exports.createElement(
4714
4733
  "span",
4715
4734
  {
@@ -4721,7 +4740,9 @@ var NodeES = (props) => {
4721
4740
  ), /* @__PURE__ */ react_exports.createElement(
4722
4741
  "span",
4723
4742
  {
4724
- style: { visibility: showRollOverText ? "visible" : "hidden" },
4743
+ style: {
4744
+ visibility: showRollOverText ? "visible" : "hidden"
4745
+ },
4725
4746
  className: "left-content-se-right"
4726
4747
  },
4727
4748
  "View Related"
@@ -4742,8 +4763,22 @@ var NodeES = (props) => {
4742
4763
 
4743
4764
  // src/LinkGraph/PureLinkGraph/components/Nodes.tsx
4744
4765
  var Nodes = (props) => {
4766
+ const getNode = (data) => {
4767
+ if ((0, lodash_exports.get)(context, "LinkGraph.showNodeMetaData")) {
4768
+ return /* @__PURE__ */ react_exports.createElement(
4769
+ NodeES,
4770
+ {
4771
+ data,
4772
+ showValueCounts: props.showValueCounts,
4773
+ metadataFields: props.metadataFields,
4774
+ metadataColumns: props.metadataColumns,
4775
+ onNodeMouseover: props.onNodeMouseover
4776
+ }
4777
+ );
4778
+ }
4779
+ return /* @__PURE__ */ react_exports.createElement(Node, { data, showValueCounts: props.showValueCounts });
4780
+ };
4745
4781
  const context = react_exports.useContext(FeatureFlagContext_default);
4746
- const NodeToUse = (0, lodash_exports.get)(context, "LinkGraph.showNodeMetaData") ? NodeES : Node;
4747
4782
  return Object.keys(props.nodes).map((key) => /* @__PURE__ */ react_exports.createElement(
4748
4783
  "button",
4749
4784
  {
@@ -4752,23 +4787,16 @@ var Nodes = (props) => {
4752
4787
  "data-test": `node-${key}`,
4753
4788
  "data-test-y-index": props.nodes[key].yIndex,
4754
4789
  key,
4755
- style: { visibility: props.nodes[key].data.isHidden ? "hidden" : "visible" },
4790
+ style: {
4791
+ visibility: props.nodes[key].data.isHidden ? "hidden" : "visible"
4792
+ },
4756
4793
  onClick: () => props.onNodeClick(key),
4757
4794
  onMouseEnter: () => props.handleMouseEnterNode(key),
4758
4795
  onMouseLeave: () => props.handleMouseLeave(),
4759
4796
  onFocus: () => props.handleMouseEnterNode(key),
4760
4797
  onBlur: () => props.handleMouseLeave()
4761
4798
  },
4762
- /* @__PURE__ */ react_exports.createElement(
4763
- NodeToUse,
4764
- {
4765
- data: props.nodes[key].data,
4766
- showValueCounts: props.showValueCounts,
4767
- metadataFields: props.metadataFields,
4768
- metadataColumns: props.metadataColumns,
4769
- onNodeMouseover: props.onNodeMouseover
4770
- }
4771
- )
4799
+ getNode(props.nodes[key].data)
4772
4800
  ));
4773
4801
  };
4774
4802
  var Nodes_default = Nodes;
@@ -5097,7 +5125,7 @@ var Chip_default = "default" in defaultImport195 ? defaultImport195.default : de
5097
5125
 
5098
5126
  // src/LinkGraph/PureLinkGraph/components/Field.tsx
5099
5127
  var Field = ({ field, count, onSort, showNodeCounts, width }) => {
5100
- const toggle = /* @__PURE__ */ react_exports.createElement(Button_default, { label: field, isMenu: true, appearance: "toggle" });
5128
+ const toggle = /* @__PURE__ */ react_exports.createElement(Button_default, { label: field, isMenu: true });
5101
5129
  const context = react_exports.useContext(FeatureFlagContext_default);
5102
5130
  const FieldNonES = /* @__PURE__ */ react_exports.createElement("div", null, /* @__PURE__ */ react_exports.createElement(Dropdown_default, { toggle, retainFocus: true, "data-test": `field-${field}-dropdown` }, /* @__PURE__ */ react_exports.createElement(Menu_default, { style: { width } }, /* @__PURE__ */ react_exports.createElement(Menu_default.Item, { "data-test": "A-Z", onClick: () => onSort("A-Z") }, "A-Z"), /* @__PURE__ */ react_exports.createElement(Menu_default.Item, { "data-test": "Z-A", onClick: () => onSort("Z-A") }, "Z-A"))), showNodeCounts ? /* @__PURE__ */ react_exports.createElement(Chip_default, { style: { float: "right", fontSize: "10px", height: "20px" } }, count) : null);
5103
5131
  const FieldES = /* @__PURE__ */ react_exports.createElement("div", null, /* @__PURE__ */ react_exports.createElement(Paragraph_default, { style: { fontWeight: "bold", width, fontSize: "13px" } }, field), showNodeCounts ? /* @__PURE__ */ react_exports.createElement(Chip_default, { style: { float: "right", fontSize: "10px", height: "20px" } }, count) : null);
@@ -5138,7 +5166,6 @@ var StyledFields = styled_components_default.div`
5138
5166
  > button > span {
5139
5167
  justify-content: flex-start;
5140
5168
  > span {
5141
- padding: ${pick_default({ prisma: "0 !important" })};
5142
5169
  flex: 0 1 auto;
5143
5170
  font-weight: bold;
5144
5171
  }
@@ -5155,8 +5182,8 @@ var LinkGraphContainer = styled_components_default.div`
5155
5182
  position: relative;
5156
5183
  top: 12px;
5157
5184
  left: 16px;
5158
- width: ${(props) => (props == null ? void 0 : props.width) - 32}px;
5159
- height: ${(props) => (props == null ? void 0 : props.height) - 24}px;
5185
+ width: ${(props) => Number((props == null ? void 0 : props.width) || 0) - 32}px;
5186
+ height: ${(props) => Number((props == null ? void 0 : props.height) || 0) - 24}px;
5160
5187
  `;
5161
5188
  var LinkGraphWrapper = styled_components_default.div`
5162
5189
  background-color: ${({ backgroundColor }) => backgroundColor};
@@ -5375,14 +5402,22 @@ var configUtils_default = "default" in defaultImport200 ? defaultImport200.defau
5375
5402
  // src/common/utils/configUtils.ts
5376
5403
  function enhanceConfig(vizConfig) {
5377
5404
  const enhancedConfig = __spreadValues({}, vizConfig);
5378
- enhancedConfig.editorConfig = vizConfig.editorConfig.map(
5379
- (config2) => {
5380
- return __spreadProps(__spreadValues({}, config2), { open: config2.open || false });
5381
- }
5382
- );
5405
+ enhancedConfig.editorConfig = vizConfig.editorConfig.map((config2) => {
5406
+ return __spreadProps(__spreadValues({}, config2), { open: config2.open || false });
5407
+ });
5383
5408
  return enhancedConfig;
5384
5409
  }
5385
5410
 
5411
+ // src/common/ThemedDefaults.tsx
5412
+ init_define_global();
5413
+ var defaultBackgroundColor = (props) => pick_default({
5414
+ enterprise: {
5415
+ dark: variables_default.black(props),
5416
+ light: variables_default.white(props)
5417
+ },
5418
+ prisma: variables_default.backgroundColorSection(props)
5419
+ })(props);
5420
+
5386
5421
  // src/LinkGraph/config.ts
5387
5422
  var dataContract = {
5388
5423
  requiredDataSources: [
@@ -5416,20 +5451,8 @@ var defaultContext = {
5416
5451
  }
5417
5452
  };
5418
5453
  var themes = {
5419
- defaultBackgroundColor: (props) => pick_default({
5420
- enterprise: {
5421
- dark: variables_default.black(props),
5422
- light: variables_default.backgroundColor(props)
5423
- },
5424
- prisma: variables_default.backgroundColorSidebar(props)
5425
- })(props),
5426
- defaultNodeColor: (props) => pick_default({
5427
- enterprise: {
5428
- dark: variables_default.backgroundColorDialog(props),
5429
- light: variables_default.gray96(props)
5430
- },
5431
- prisma: variables_default.backgroundColorDialog(props)
5432
- })(props),
5454
+ defaultBackgroundColor,
5455
+ defaultNodeColor: (props) => variables_default.neutral100(props),
5433
5456
  inverseDefaultNodeColor: (props) => pick_default({
5434
5457
  enterprise: {
5435
5458
  dark: variables_default.contentColorInverted(props),
@@ -5454,10 +5477,7 @@ var themes = {
5454
5477
  })(props)
5455
5478
  };
5456
5479
  var EDITOR_LABEL_WIDTH = 140;
5457
- var backgroundColorPaletteSet = /* @__PURE__ */ new Set([
5458
- ...colorConstants_exports.COLOR_EDITOR_PALETTE,
5459
- ...(0, lodash_exports.map)(themes, (t) => (0, lodash_exports.get)(t, "defaultBackgroundColor"))
5460
- ]);
5480
+ var backgroundColorPaletteSet = /* @__PURE__ */ new Set([...colorConstants_exports.COLOR_EDITOR_PALETTE]);
5461
5481
  var editorConfig = [
5462
5482
  // {
5463
5483
  // label: _('Data'),