@splunk/visualizations 26.2.1 → 26.4.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 (150) hide show
  1. package/Area.config.js +92 -595
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +296 -801
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +93 -562
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +299 -770
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +84 -483
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +286 -687
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +77 -202
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +272 -400
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +93 -600
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +299 -808
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +82 -200
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +233 -356
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +62 -283
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +326 -530
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +91 -220
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +267 -401
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +61 -157
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +217 -327
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +92 -607
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +297 -814
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +75 -257
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +1755 -17415
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +6 -0
  46. package/Map.config.js +128 -1123
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +470 -782
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +62 -189
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +272 -401
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +138 -298
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +309 -470
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +72 -192
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +333 -442
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +77 -241
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +336 -471
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +72 -306
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +356 -583
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +211 -347
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +371 -509
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +72 -214
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +343 -475
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +86 -464
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +1118 -1493
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +124 -411
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +522 -789
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +73 -61
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +123 -380
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +508 -745
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +121 -385
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +1642 -1885
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +39 -39
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +82 -496
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +416 -825
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +37 -57
  103. package/common/Charting.js.map +1 -1
  104. package/common/DocExampleWithVizSandbox.js +21 -21
  105. package/common/DocExampleWithVizSandbox.js.map +1 -1
  106. package/common/EventsDoc.js +18 -18
  107. package/common/EventsDoc.js.map +1 -1
  108. package/common/GaugeMajorTicks.js +4 -4
  109. package/common/GaugeMajorTicks.js.map +1 -1
  110. package/common/GaugeValueMarker.js +2 -2
  111. package/common/GaugeValueMarker.js.map +1 -1
  112. package/common/OptionsDoc.js +4 -4
  113. package/common/OptionsDoc.js.map +1 -1
  114. package/common/OverviewDoc.js +39 -40
  115. package/common/OverviewDoc.js.map +1 -1
  116. package/common/SplunkVisualization.js +2 -2
  117. package/common/SplunkVisualization.js.map +1 -1
  118. package/common/SplunkVisualizationApi.js +2 -2
  119. package/common/SplunkVisualizationApi.js.map +1 -1
  120. package/common/ThemesDoc.js +19 -19
  121. package/common/ThemesDoc.js.map +1 -1
  122. package/common/chartingUtils.js +2 -2
  123. package/common/chartingUtils.js.map +1 -1
  124. package/common/gaugeUtils.js +10 -10
  125. package/common/gaugeUtils.js.map +1 -1
  126. package/common/shapeUtils.js +10 -10
  127. package/common/shapeUtils.js.map +1 -1
  128. package/common/utils/configUtils.js +25 -155
  129. package/common/utils/configUtils.js.map +1 -1
  130. package/common/utils/dataUtils.js +87 -105
  131. package/common/utils/dataUtils.js.map +1 -1
  132. package/common/utils/featureFlagUtils.js +4 -4
  133. package/common/utils/featureFlagUtils.js.map +1 -1
  134. package/common/utils/hocUtils.js +2 -2
  135. package/common/utils/hocUtils.js.map +1 -1
  136. package/common/utils/mapUtils.js +51 -54
  137. package/common/utils/mapUtils.js.map +1 -1
  138. package/common/utils/singleValueUtils.js +30 -18
  139. package/common/utils/singleValueUtils.js.map +1 -1
  140. package/common/utils/testHelper.js +7 -36
  141. package/common/utils/testHelper.js.map +1 -1
  142. package/common/utils/trellisUtils.js +7 -6
  143. package/common/utils/trellisUtils.js.map +1 -1
  144. package/common/utils/urlUtils.js +2 -2
  145. package/common/utils/urlUtils.js.map +1 -1
  146. package/common/withDashboardViz.js +93 -101
  147. package/common/withDashboardViz.js.map +1 -1
  148. package/package.json +48 -50
  149. package/common/utils/layoutUtils.js +0 -115
  150. package/common/utils/layoutUtils.js.map +0 -1
@@ -87,7 +87,7 @@ module.exports =
87
87
  /******/
88
88
  /******/
89
89
  /******/ // Load entry module and return exports
90
- /******/ return __webpack_require__(__webpack_require__.s = 56);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 53);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ({
@@ -109,72 +109,25 @@ module.exports = require("@babel/runtime/helpers/toConsumableArray");
109
109
  /***/ 10:
110
110
  /***/ (function(module, exports) {
111
111
 
112
- module.exports = require("@splunk/themes/variables");
113
-
114
- /***/ }),
115
-
116
- /***/ 11:
117
- /***/ (function(module, exports) {
118
-
119
112
  module.exports = require("@splunk/visualization-icons/placeholders");
120
113
 
121
114
  /***/ }),
122
115
 
123
- /***/ 12:
116
+ /***/ 11:
124
117
  /***/ (function(module, exports) {
125
118
 
126
119
  module.exports = require("@splunk/visualization-icons");
127
120
 
128
121
  /***/ }),
129
122
 
130
- /***/ 14:
131
- /***/ (function(module, exports) {
132
-
133
- module.exports = require("@splunk/visualization-color-palettes");
134
-
135
- /***/ }),
136
-
137
123
  /***/ 2:
138
- /***/ (function(module, exports, __webpack_require__) {
139
-
140
- "use strict";
141
-
142
-
143
- Object.defineProperty(exports, "__esModule", {
144
- value: true
145
- });
146
- exports.VizBehavior = void 0;
147
- var VizBehavior;
148
-
149
- (function (VizBehavior) {
150
- /**
151
- * Dynamic Options Behavior.
152
- * This allows visualization options to be powered by data
153
- *
154
- * **Example**
155
- *
156
- * sparklineValues: ">primary|seriesByIndex(0)"
157
- * would configure sparklineValues with an array of data points
158
- * coming from the first series in the primary datasource
159
- *
160
- */
161
- VizBehavior["DYNAMIC_OPTIONS"] = "dynamic-options";
162
- VizBehavior["EVENTS"] = "events";
163
- VizBehavior["DOWNSAMPLING"] = "downsampling";
164
- /**
165
- * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is
166
- * missing.
167
- * @type {string}
168
- */
124
+ /***/ (function(module, exports) {
169
125
 
170
- VizBehavior["PLACEHOLDER"] = "placeholder";
171
- VizBehavior["PAGE_AND_SORT"] = "page-and-sort";
172
- VizBehavior["TRELLIS"] = "trellis";
173
- })(VizBehavior = exports.VizBehavior || (exports.VizBehavior = {}));
126
+ module.exports = require("@splunk/visualization-schemas");
174
127
 
175
128
  /***/ }),
176
129
 
177
- /***/ 26:
130
+ /***/ 23:
178
131
  /***/ (function(module, exports) {
179
132
 
180
133
  module.exports = require("@splunk/visualizations-shared/colorConstants");
@@ -182,13 +135,6 @@ module.exports = require("@splunk/visualizations-shared/colorConstants");
182
135
  /***/ }),
183
136
 
184
137
  /***/ 3:
185
- /***/ (function(module, exports) {
186
-
187
- module.exports = require("@splunk/visualizations-shared/schemaUtils");
188
-
189
- /***/ }),
190
-
191
- /***/ 4:
192
138
  /***/ (function(module, exports, __webpack_require__) {
193
139
 
194
140
  "use strict";
@@ -196,97 +142,22 @@ module.exports = require("@splunk/visualizations-shared/schemaUtils");
196
142
 
197
143
  var _toConsumableArray = __webpack_require__(1);
198
144
 
199
- var _defineProperty = __webpack_require__(7);
200
-
201
- var __rest = this && this.__rest || function (s, e) {
202
- var t = {};
203
-
204
- for (var p in s) {
205
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
206
- }
207
-
208
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
209
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
210
- }
211
- return t;
212
- };
213
-
214
145
  Object.defineProperty(exports, "__esModule", {
215
146
  value: true
216
147
  });
217
- exports.insertLayout = exports.isDynamicOption = exports.uncollapseEditorConfig = exports.generatePrecisionValues = exports.getInitialPreset = exports.enhanceOptionsSchemaWithDynamicOptions = exports.enhanceConfig = void 0;
148
+ exports.insertLayout = exports.isDynamicOption = exports.uncollapseEditorConfig = exports.generatePrecisionValues = exports.getInitialPreset = exports.enhanceConfig = exports.enhanceOptionsSchemaWithDynamicOptions = void 0;
218
149
 
219
- var lodash_1 = __webpack_require__(6);
220
-
221
- var schemaUtils_1 = __webpack_require__(3);
222
-
223
- var VizBehavior_1 = __webpack_require__(2);
224
-
225
- var dynamicOptionsDSLType = {
226
- type: 'string',
227
- pattern: schemaUtils_1.DYNAMIC_OPTIONS_DSL_PATTERN
228
- };
229
- /**
230
- * Helper function to extend an options schema with dynamic options DSL
231
- * @param optionsSchema a visualization's options schema
232
- * @returns an updated options schema that additionally allows strings starting with > for each option
233
- */
150
+ var lodash_1 = __webpack_require__(5); // included for backwards compatibility
234
151
 
235
- function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
236
- var enhancedOptionsSchema = {};
237
- Object.keys(optionsSchema).forEach(function (key) {
238
- var _a = optionsSchema[key],
239
- title = _a.title,
240
- description = _a.description,
241
- readOnly = _a.readOnly,
242
- writeOnly = _a.writeOnly,
243
- examples = _a.examples,
244
- defaultValue = _a.default,
245
- type = _a.type,
246
- properties = _a.properties,
247
- patternProperties = _a.patternProperties,
248
- remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
249
-
250
- var annotations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, title !== undefined && {
251
- title: title
252
- }), description !== undefined && {
253
- description: description
254
- }), readOnly !== undefined && {
255
- readOnly: readOnly
256
- }), writeOnly !== undefined && {
257
- writeOnly: writeOnly
258
- }), examples !== undefined && {
259
- examples: examples
260
- }), defaultValue !== undefined && {
261
- default: defaultValue
262
- });
263
152
 
264
- if (type === 'object') {
265
- enhancedOptionsSchema[key] = Object.assign(Object.assign(Object.assign(Object.assign({}, remainingSchemaEntry), annotations), {
266
- type: type
267
- }), properties && {
268
- properties: enhanceOptionsSchemaWithDynamicOptions(properties)
269
- });
270
-
271
- if (patternProperties) {
272
- var enhancedPatternProperties = {};
273
- Object.keys(patternProperties).forEach(function (opt) {
274
- enhancedPatternProperties = Object.assign(Object.assign({}, enhancedPatternProperties), enhanceOptionsSchemaWithDynamicOptions(_defineProperty({}, opt, patternProperties[opt])));
275
- });
276
- enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;
277
- }
278
- } else {
279
- enhancedOptionsSchema[key] = Object.assign(Object.assign({}, annotations), {
280
- anyOf: [Object.assign(Object.assign({}, type !== undefined && {
281
- type: type
282
- }), remainingSchemaEntry), dynamicOptionsDSLType]
283
- });
284
- }
285
- });
286
- return enhancedOptionsSchema;
287
- }
153
+ var visualization_schemas_1 = __webpack_require__(2);
288
154
 
289
- exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamicOptions;
155
+ Object.defineProperty(exports, "enhanceOptionsSchemaWithDynamicOptions", {
156
+ enumerable: true,
157
+ get: function get() {
158
+ return visualization_schemas_1.enhanceOptionsSchemaWithDynamicOptions;
159
+ }
160
+ });
290
161
  /**
291
162
  * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block
292
163
  * this function also collapse all editor panels
@@ -297,11 +168,6 @@ exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamic
297
168
 
298
169
  function enhanceConfig(vizConfig) {
299
170
  var enhancedConfig = Object.assign({}, vizConfig);
300
-
301
- if (vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS) !== -1) {
302
- enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);
303
- }
304
-
305
171
  enhancedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
306
172
  return Object.assign(Object.assign({}, config), {
307
173
  open: config.open || false
@@ -425,7 +291,14 @@ exports.insertLayout = insertLayout;
425
291
 
426
292
  /***/ }),
427
293
 
428
- /***/ 56:
294
+ /***/ 5:
295
+ /***/ (function(module, exports) {
296
+
297
+ module.exports = require("lodash");
298
+
299
+ /***/ }),
300
+
301
+ /***/ 53:
429
302
  /***/ (function(module, exports, __webpack_require__) {
430
303
 
431
304
  "use strict";
@@ -437,29 +310,27 @@ Object.defineProperty(exports, "__esModule", {
437
310
  value: true
438
311
  });
439
312
 
440
- var lodash_1 = __webpack_require__(6);
313
+ var lodash_1 = __webpack_require__(5);
441
314
 
442
- var visualization_icons_1 = __webpack_require__(12);
315
+ var visualization_icons_1 = __webpack_require__(11);
443
316
 
444
- var placeholders_1 = __webpack_require__(11);
317
+ var placeholders_1 = __webpack_require__(10);
445
318
 
446
- var schemaUtils_1 = __webpack_require__(3);
319
+ var visualization_schemas_1 = __webpack_require__(2);
447
320
 
448
321
  var i18n_1 = __webpack_require__(0);
449
322
 
450
- var pick_1 = __webpack_require__(9);
323
+ var pick_1 = __webpack_require__(8);
451
324
 
452
- var variables_1 = __webpack_require__(10);
325
+ var variables_1 = __webpack_require__(9);
453
326
 
454
- var colorConstants_1 = __webpack_require__(26);
327
+ var colorConstants_1 = __webpack_require__(23);
455
328
 
456
- var visualization_color_palettes_1 = __webpack_require__(14);
329
+ var configUtils_1 = __webpack_require__(3);
457
330
 
458
- var configUtils_1 = __webpack_require__(4);
331
+ var VizCategory_1 = __webpack_require__(7);
459
332
 
460
- var VizCategory_1 = __webpack_require__(8);
461
-
462
- var VizBehavior_1 = __webpack_require__(2);
333
+ var VizBehavior_1 = __webpack_require__(6);
463
334
 
464
335
  var dataContract = {
465
336
  requiredDataSources: [{
@@ -492,92 +363,6 @@ var defaultContext = {
492
363
  default: '> themes.textColor'
493
364
  }
494
365
  };
495
- var optionsSchema = {
496
- backgroundColor: {
497
- default: '> themes.defaultBackgroundColor',
498
- description: 'Specify the color for the background. You may use a dataSource to apply the color. The default for enterprise light is "#ffffff". The default for enterprise dark is "#000000". The default for prisma dark is "#0b0c0e".',
499
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
500
- type: 'string'
501
- },
502
- fieldOrder: {
503
- default: '> primary | getField()',
504
- description: 'Specify the order of fields to be displayed in the link graph from left to right when loaded. Unspecified fields will be excluded from the graph.',
505
- type: 'array',
506
- items: {
507
- type: 'string'
508
- }
509
- },
510
- linkColor: {
511
- default: '#6d6f76',
512
- description: 'Specify the color used for highlighted links. Unhighlighted links will be displayed at 20% opacity.',
513
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
514
- type: 'string'
515
- },
516
- linkWidth: {
517
- default: 1,
518
- description: 'Specify, in pixels, the stroke width of each link.',
519
- type: 'number'
520
- },
521
- nodeColor: {
522
- default: '> themes.defaultNodeColor',
523
- description: 'Specify the color used for unhighlighted nodes.',
524
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
525
- type: 'string'
526
- },
527
- nodeTextColor: {
528
- description: 'Specify the color used for unhighlighted nodes text.',
529
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
530
- type: 'string',
531
- default: '> nodeColor | maxContrast(nodeTextColorMaxContrast)'
532
- },
533
- nodeHeight: {
534
- default: 21,
535
- description: 'Specify, in pixels, the height of each node.',
536
- type: 'number'
537
- },
538
- nodeHighlightColor: {
539
- default: visualization_color_palettes_1.VIZ_CATEGORICAL[0],
540
- description: 'Specify the color used for highlighted nodes.',
541
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
542
- type: 'string'
543
- },
544
- nodeTextHighlightColor: {
545
- description: 'Specify the color used for highlighted nodes text.',
546
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
547
- type: 'string',
548
- default: '> nodeHighlightColor | maxContrast(nodeHighlightTextColorMaxContrast)'
549
- },
550
- nodeSpacingX: {
551
- default: 32,
552
- description: 'Specify, in pixels, the horizontal spacing between each node.',
553
- type: 'number'
554
- },
555
- nodeSpacingY: {
556
- default: 18,
557
- description: 'Specify, in pixels, the vertical spacing between each node.',
558
- type: 'number'
559
- },
560
- nodeWidth: {
561
- default: 180,
562
- description: 'Specify, in pixels, the width of each node.',
563
- type: 'number'
564
- },
565
- resultLimit: {
566
- default: 50,
567
- description: 'Specify the number of nodes rendered in each column.',
568
- type: 'number'
569
- },
570
- showNodeCounts: {
571
- default: true,
572
- description: 'Specify whether a count is shown for the number of nodes displayed in each column. The number of total nodes is also shown if there are hidden nodes.',
573
- type: 'boolean'
574
- },
575
- showValueCounts: {
576
- default: true,
577
- description: 'Specify whether a count is shown for the frequency of occurrence for each distinct node value.',
578
- type: 'boolean'
579
- }
580
- };
581
366
  var themes = {
582
367
  defaultBackgroundColor: function defaultBackgroundColor(props) {
583
368
  return (0, pick_1.default)({
@@ -707,7 +492,7 @@ var editorConfig = [// {
707
492
  palette: _toConsumableArray(backgroundColorPaletteSet)
708
493
  }
709
494
  }], [{
710
- label: (0, i18n_1._)('Background'),
495
+ label: (0, i18n_1._)('Background color'),
711
496
  option: 'backgroundColor',
712
497
  editor: 'editor.color',
713
498
  editorProps: {
@@ -788,7 +573,7 @@ var config = {
788
573
  dataContract: dataContract,
789
574
  size: size,
790
575
  defaultContext: defaultContext,
791
- optionsSchema: optionsSchema,
576
+ optionsSchema: visualization_schemas_1.linkGraphOptionsSchema,
792
577
  editorConfig: editorConfig,
793
578
  events: {
794
579
  'node.click': {
@@ -806,20 +591,46 @@ exports.default = (0, configUtils_1.enhanceConfig)(config);
806
591
  /***/ }),
807
592
 
808
593
  /***/ 6:
809
- /***/ (function(module, exports) {
594
+ /***/ (function(module, exports, __webpack_require__) {
810
595
 
811
- module.exports = require("lodash");
596
+ "use strict";
812
597
 
813
- /***/ }),
814
598
 
815
- /***/ 7:
816
- /***/ (function(module, exports) {
599
+ Object.defineProperty(exports, "__esModule", {
600
+ value: true
601
+ });
602
+ exports.VizBehavior = void 0;
603
+ var VizBehavior;
817
604
 
818
- module.exports = require("@babel/runtime/helpers/defineProperty");
605
+ (function (VizBehavior) {
606
+ /**
607
+ * Dynamic Options Behavior.
608
+ * This allows visualization options to be powered by data
609
+ *
610
+ * **Example**
611
+ *
612
+ * sparklineValues: ">primary|seriesByIndex(0)"
613
+ * would configure sparklineValues with an array of data points
614
+ * coming from the first series in the primary datasource
615
+ *
616
+ */
617
+ VizBehavior["DYNAMIC_OPTIONS"] = "dynamic-options";
618
+ VizBehavior["EVENTS"] = "events";
619
+ VizBehavior["DOWNSAMPLING"] = "downsampling";
620
+ /**
621
+ * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is
622
+ * missing.
623
+ * @type {string}
624
+ */
625
+
626
+ VizBehavior["PLACEHOLDER"] = "placeholder";
627
+ VizBehavior["PAGE_AND_SORT"] = "page-and-sort";
628
+ VizBehavior["TRELLIS"] = "trellis";
629
+ })(VizBehavior = exports.VizBehavior || (exports.VizBehavior = {}));
819
630
 
820
631
  /***/ }),
821
632
 
822
- /***/ 8:
633
+ /***/ 7:
823
634
  /***/ (function(module, exports, __webpack_require__) {
824
635
 
825
636
  "use strict";
@@ -848,11 +659,18 @@ var VizCategory;
848
659
 
849
660
  /***/ }),
850
661
 
851
- /***/ 9:
662
+ /***/ 8:
852
663
  /***/ (function(module, exports) {
853
664
 
854
665
  module.exports = require("@splunk/themes/pick");
855
666
 
667
+ /***/ }),
668
+
669
+ /***/ 9:
670
+ /***/ (function(module, exports) {
671
+
672
+ module.exports = require("@splunk/themes/variables");
673
+
856
674
  /***/ })
857
675
 
858
676
  /******/ });
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/LinkGraph/config.ts","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@splunk/themes/pick\""],"names":[],"mappings":"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","file":"LinkGraph.config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 56);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/visualization-color-palettes\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n DOWNSAMPLING = 'downsampling',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\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 if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\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\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\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 {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\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 { map, get } from 'lodash';\nimport { LinkGraph as LinkGraphIcon } from '@splunk/visualization-icons';\nimport { LinkGraph as LinkGraphPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA } from '@splunk/visualizations-shared/schemaUtils';\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 { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\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 { OptionsSchema } from '../common/interfaces/OptionsSchema';\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 optionsSchema: OptionsSchema = {\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color for the background. You may use a dataSource to apply the color. The default for enterprise light is \"#ffffff\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0b0c0e\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n fieldOrder: {\n default: '> primary | getField()',\n description:\n 'Specify the order of fields to be displayed in the link graph from left to right when loaded. Unspecified fields will be excluded from the graph.',\n type: 'array',\n items: {\n type: 'string',\n },\n },\n linkColor: {\n default: '#6d6f76',\n description:\n 'Specify the color used for highlighted links. Unhighlighted links will be displayed at 20% opacity.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n linkWidth: {\n default: 1,\n description: 'Specify, in pixels, the stroke width of each link.',\n type: 'number',\n },\n nodeColor: {\n default: '> themes.defaultNodeColor',\n description: 'Specify the color used for unhighlighted nodes.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n nodeTextColor: {\n description: 'Specify the color used for unhighlighted nodes text.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n default: '> nodeColor | maxContrast(nodeTextColorMaxContrast)',\n },\n nodeHeight: {\n default: 21,\n description: 'Specify, in pixels, the height of each node.',\n type: 'number',\n },\n nodeHighlightColor: {\n default: VIZ_CATEGORICAL[0],\n description: 'Specify the color used for highlighted nodes.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n nodeTextHighlightColor: {\n description: 'Specify the color used for highlighted nodes text.',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n default: '> nodeHighlightColor | maxContrast(nodeHighlightTextColorMaxContrast)',\n },\n nodeSpacingX: {\n default: 32,\n description: 'Specify, in pixels, the horizontal spacing between each node.',\n type: 'number',\n },\n nodeSpacingY: {\n default: 18,\n description: 'Specify, in pixels, the vertical spacing between each node.',\n type: 'number',\n },\n nodeWidth: {\n default: 180,\n description: 'Specify, in pixels, the width of each node.',\n type: 'number',\n },\n resultLimit: {\n default: 50,\n description: 'Specify the number of nodes rendered in each column.',\n type: 'number',\n },\n showNodeCounts: {\n default: true,\n description:\n 'Specify whether a count is shown for the number of nodes displayed in each column. The number of total nodes is also shown if there are hidden nodes.',\n type: 'boolean',\n },\n showValueCounts: {\n default: true,\n description:\n 'Specify whether a count is shown for the frequency of occurrence for each distinct node value.',\n type: 'boolean',\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'),\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","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","module.exports = require(\"@splunk/themes/pick\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/visualization-schemas\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"lodash\"","webpack:///./src/LinkGraph/config.ts","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/themes/variables\""],"names":[],"mappings":"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","file":"LinkGraph.config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 53);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/visualization-schemas\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","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\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\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","module.exports = require(\"lodash\");","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","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n DOWNSAMPLING = 'downsampling',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/themes/variables\");"],"sourceRoot":""}