@splunk/visualizations 26.0.0 → 26.1.1

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 (152) hide show
  1. package/Area.config.js +103 -19
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +646 -243
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +105 -21
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +653 -237
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +95 -21
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +635 -229
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +66 -15
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +589 -211
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +104 -19
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +666 -239
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +83 -18
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +444 -156
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +101 -19
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +792 -322
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +97 -28
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +786 -390
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +63 -19
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +439 -164
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +107 -23
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +841 -456
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +73 -23
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +653 -230
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +1082 -0
  46. package/Map.config.js +244 -99
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +1223 -612
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +71 -21
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +477 -202
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +80 -22
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +819 -418
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +73 -19
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +870 -491
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +76 -23
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +643 -233
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +82 -30
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +863 -387
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +86 -20
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +449 -159
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +85 -23
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +895 -349
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +97 -23
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +639 -234
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +95 -25
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +1198 -656
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +287 -226
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +93 -23
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +991 -522
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +100 -27
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +1185 -624
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +127 -68
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +74 -21
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +827 -329
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +152 -69
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +25 -14
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/DocExampleWithVizSandbox.js +530 -0
  107. package/common/DocExampleWithVizSandbox.js.map +1 -0
  108. package/common/EventsDoc.js +139 -104
  109. package/common/EventsDoc.js.map +1 -1
  110. package/common/GaugeMajorTicks.js +79 -69
  111. package/common/GaugeMajorTicks.js.map +1 -1
  112. package/common/GaugeValueMarker.js +54 -45
  113. package/common/GaugeValueMarker.js.map +1 -1
  114. package/common/OptionsDoc.js +178 -87
  115. package/common/OptionsDoc.js.map +1 -1
  116. package/common/OverviewDoc.js +530 -68
  117. package/common/OverviewDoc.js.map +1 -1
  118. package/common/SplunkVisualization.js +47 -20
  119. package/common/SplunkVisualization.js.map +1 -1
  120. package/common/SplunkVisualizationApi.js +15 -9
  121. package/common/SplunkVisualizationApi.js.map +1 -1
  122. package/common/ThemesDoc.js +57 -44
  123. package/common/ThemesDoc.js.map +1 -1
  124. package/common/chartingUtils.js +52 -20
  125. package/common/chartingUtils.js.map +1 -1
  126. package/common/docUtils.js +139 -7
  127. package/common/docUtils.js.map +1 -1
  128. package/common/gaugeUtils.js +185 -102
  129. package/common/gaugeUtils.js.map +1 -1
  130. package/common/shapeUtils.js +28 -16
  131. package/common/shapeUtils.js.map +1 -1
  132. package/common/utils/configUtils.js +50 -15
  133. package/common/utils/configUtils.js.map +1 -1
  134. package/common/utils/dataUtils.js +8 -3
  135. package/common/utils/dataUtils.js.map +1 -1
  136. package/common/utils/hocUtils.js +4 -2
  137. package/common/utils/hocUtils.js.map +1 -1
  138. package/common/utils/layoutUtils.js +2 -1
  139. package/common/utils/layoutUtils.js.map +1 -1
  140. package/common/utils/mapUtils.js +288 -128
  141. package/common/utils/mapUtils.js.map +1 -1
  142. package/common/utils/singleValueUtils.js +242 -197
  143. package/common/utils/singleValueUtils.js.map +1 -1
  144. package/common/utils/testHelper.js +10 -1
  145. package/common/utils/testHelper.js.map +1 -1
  146. package/common/utils/trellisUtils.js +62 -1
  147. package/common/utils/trellisUtils.js.map +1 -1
  148. package/common/utils/urlUtils.js +3 -1
  149. package/common/utils/urlUtils.js.map +1 -1
  150. package/common/withDashboardViz.js +389 -192
  151. package/common/withDashboardViz.js.map +1 -1
  152. package/package.json +18 -26
package/Scatter.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright © 2018 Splunk Inc.
2
+ * Copyright © 2024 Splunk Inc.
3
3
  * SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
4
4
  * in part without a valid written license from Splunk Inc. is PROHIBITED.
5
5
  */
@@ -136,11 +136,17 @@ module.exports = require("@splunk/visualizations-shared/colorUtils");
136
136
  Object.defineProperty(exports, "__esModule", {
137
137
  value: true
138
138
  });
139
+
139
140
  var React = __webpack_require__(1);
141
+
140
142
  var styled_components_1 = __webpack_require__(4);
143
+
141
144
  var SizeAwareWrapper_1 = __webpack_require__(19);
145
+
142
146
  var style_1 = __webpack_require__(14);
147
+
143
148
  var colorUtils_1 = __webpack_require__(12);
149
+
144
150
  var Item = styled_components_1.default.div.attrs(function (_ref) {
145
151
  var width = _ref.width;
146
152
  return {
@@ -153,11 +159,11 @@ var Item = styled_components_1.default.div.attrs(function (_ref) {
153
159
  componentId: "sc-1yhgpod-0"
154
160
  })(["position:relative;background-color:", "};"], function (props) {
155
161
  return (0, colorUtils_1.isColor)(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor;
156
- });
157
- // Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291
162
+ }); // Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291
163
+
158
164
  var FixSizeItem = styled_components_1.default.div.attrs(function (_ref2) {
159
165
  var width = _ref2.width,
160
- height = _ref2.height;
166
+ height = _ref2.height;
161
167
  return {
162
168
  style: Object.assign(Object.assign({}, width && {
163
169
  width: (0, style_1.toPx)(width)
@@ -179,11 +185,13 @@ var FixSizeItemContent = styled_components_1.default.div.withConfig({
179
185
  displayName: "FixedSizeContainer__FixSizeItemContent",
180
186
  componentId: "sc-1yhgpod-3"
181
187
  })(["min-height:0px;flex:1;position:relative;box-sizing:border-box;"]);
188
+
182
189
  var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
183
190
  var FixedSizeContainer = function FixedSizeContainer(props) {
184
191
  var width = props.width,
185
- height = props.height,
186
- backgroundColor = props.backgroundColor;
192
+ height = props.height,
193
+ backgroundColor = props.backgroundColor;
194
+
187
195
  if (!height) {
188
196
  return React.createElement(Item, {
189
197
  "data-test": "item",
@@ -191,24 +199,27 @@ var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
191
199
  backgroundColor: backgroundColor
192
200
  }, React.createElement(ItemContent, null, React.createElement(Viz, Object.assign({}, props))));
193
201
  }
202
+
194
203
  return React.createElement(FixSizeItem, {
195
204
  "data-test": "fix-size-item",
196
- "data-splunk-visualization-version": "26.0.0 - 2f7458907",
205
+ "data-splunk-visualization-version": "26.1.1 - b6df0a015",
197
206
  width: width,
198
207
  height: height,
199
208
  backgroundColor: backgroundColor
200
209
  }, React.createElement(FixSizeItemContent, null, React.createElement(SizeAwareWrapper_1.default, null, function (_ref3) {
201
210
  var newWidth = _ref3.width,
202
- newHeight = _ref3.height;
211
+ newHeight = _ref3.height;
203
212
  return React.createElement(Viz, Object.assign({}, props, {
204
213
  width: newWidth,
205
214
  height: newHeight
206
215
  }));
207
216
  })));
208
217
  };
218
+
209
219
  FixedSizeContainer.displayName = 'withFixedSizeContainer';
210
220
  return FixedSizeContainer;
211
221
  };
222
+
212
223
  exports.default = withFixedSizeContainer;
213
224
 
214
225
  /***/ }),
@@ -236,9 +247,10 @@ exports.extendStaticWrapperProps = void 0;
236
247
  * @param {DashboardVizType} props.Wrapper
237
248
  * @param {DashboardVizType} props.Visualization
238
249
  */
250
+
239
251
  var extendStaticWrapperProps = function extendStaticWrapperProps(_ref) {
240
252
  var Wrapper = _ref.Wrapper,
241
- Visualization = _ref.Visualization;
253
+ Visualization = _ref.Visualization;
242
254
  var extendProperties = ['propTypes', 'defaultProps', 'config'];
243
255
  extendProperties.forEach(function (prop) {
244
256
  if (Visualization[prop]) {
@@ -247,6 +259,7 @@ var extendStaticWrapperProps = function extendStaticWrapperProps(_ref) {
247
259
  }
248
260
  });
249
261
  };
262
+
250
263
  exports.extendStaticWrapperProps = extendStaticWrapperProps;
251
264
 
252
265
  /***/ }),
@@ -258,7 +271,7 @@ module.exports = require("@splunk/visualizations-shared/schemaUtils");
258
271
 
259
272
  /***/ }),
260
273
 
261
- /***/ 167:
274
+ /***/ 168:
262
275
  /***/ (function(module, exports, __webpack_require__) {
263
276
 
264
277
  "use strict";
@@ -266,43 +279,59 @@ module.exports = require("@splunk/visualizations-shared/schemaUtils");
266
279
 
267
280
  var __rest = this && this.__rest || function (s, e) {
268
281
  var t = {};
282
+
269
283
  for (var p in s) {
270
284
  if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
271
285
  }
286
+
272
287
  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
273
288
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
274
289
  }
275
290
  return t;
276
291
  };
292
+
277
293
  Object.defineProperty(exports, "__esModule", {
278
294
  value: true
279
295
  });
280
296
  exports.config = exports.themes = exports.computeVizProps = void 0;
281
- var lodash_1 = __webpack_require__(3);
282
- // Charting imports i18n which needs to be run to instantiate window globals in the tests
297
+
298
+ var lodash_1 = __webpack_require__(3); // Charting imports i18n which needs to be run to instantiate window globals in the tests
283
299
  // eslint-disable-next-line import/order
300
+
301
+
284
302
  var Charting_1 = __webpack_require__(65);
303
+
285
304
  var charting_bundle_1 = __webpack_require__(55);
305
+
286
306
  var simpleXMLOptions_1 = __webpack_require__(70);
307
+
287
308
  var config_1 = __webpack_require__(465);
309
+
288
310
  exports.config = config_1.default;
289
- var withDashboardViz_1 = __webpack_require__(36);
311
+
312
+ var withDashboardViz_1 = __webpack_require__(37);
313
+
290
314
  var scatterUtils_1 = __webpack_require__(466);
291
- var chartingUtils_1 = __webpack_require__(56);
315
+
316
+ var chartingUtils_1 = __webpack_require__(57);
317
+
292
318
  var validOptions = Object.keys(config_1.default.optionsSchema);
319
+
293
320
  var computeVizProps = function computeVizProps(_a) {
294
321
  var dataSources = _a.dataSources,
295
- onEventTrigger = _a.onEventTrigger,
296
- visualizationApiRef = _a.visualizationApiRef,
297
- _a$x = _a.x,
298
- x = _a$x === void 0 ? [] : _a$x,
299
- _a$y = _a.y,
300
- y = _a$y === void 0 ? [] : _a$y,
301
- category = _a.category,
302
- xField = _a.xField,
303
- yField = _a.yField,
304
- categoryField = _a.categoryField,
305
- otherOptions = __rest(_a, ["dataSources", "onEventTrigger", "visualizationApiRef", "x", "y", "category", "xField", "yField", "categoryField"]); // options to be passed as props
322
+ onEventTrigger = _a.onEventTrigger,
323
+ visualizationApiRef = _a.visualizationApiRef,
324
+ _a$x = _a.x,
325
+ x = _a$x === void 0 ? [] : _a$x,
326
+ _a$y = _a.y,
327
+ y = _a$y === void 0 ? [] : _a$y,
328
+ category = _a.category,
329
+ xField = _a.xField,
330
+ yField = _a.yField,
331
+ categoryField = _a.categoryField,
332
+ otherOptions = __rest(_a, ["dataSources", "onEventTrigger", "visualizationApiRef", "x", "y", "category", "xField", "yField", "categoryField"]); // options to be passed as props
333
+
334
+
306
335
  var computedProps = {
307
336
  visualizationApiRef: visualizationApiRef
308
337
  };
@@ -319,19 +348,24 @@ var computeVizProps = function computeVizProps(_a) {
319
348
  }, {
320
349
  name: yField
321
350
  }];
351
+
322
352
  if (category && categoryField) {
323
353
  columns.unshift(category.map(String));
324
354
  fields.unshift({
325
355
  name: categoryField
326
356
  });
327
357
  }
358
+
328
359
  primaryData.columns = columns;
329
360
  primaryData.fields = fields;
330
361
  var truncationLimit = computedProps.options['chart.resultTruncationLimit'];
362
+
331
363
  if (truncationLimit) {
332
364
  primaryData = (0, chartingUtils_1.truncateData)(primaryData, truncationLimit);
333
365
  }
366
+
334
367
  computedProps.chartData = charting_bundle_1.default.extractChartReadyData(Object.assign({}, primaryData));
368
+
335
369
  if (hasEventHandlers) {
336
370
  computedProps.onClick = function (event) {
337
371
  onEventTrigger(Object.assign(Object.assign({}, event), {
@@ -341,8 +375,10 @@ var computeVizProps = function computeVizProps(_a) {
341
375
  }));
342
376
  };
343
377
  }
378
+
344
379
  return computedProps;
345
380
  };
381
+
346
382
  exports.computeVizProps = computeVizProps;
347
383
  var Column = (0, withDashboardViz_1.default)({
348
384
  ReactViz: Charting_1.default,
@@ -390,24 +426,33 @@ module.exports = require("@splunk/ui-utils/i18n");
390
426
 
391
427
 
392
428
  var _toConsumableArray = __webpack_require__(8);
429
+
393
430
  var _defineProperty = __webpack_require__(7);
431
+
394
432
  var __rest = this && this.__rest || function (s, e) {
395
433
  var t = {};
434
+
396
435
  for (var p in s) {
397
436
  if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
398
437
  }
438
+
399
439
  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
400
440
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
401
441
  }
402
442
  return t;
403
443
  };
444
+
404
445
  Object.defineProperty(exports, "__esModule", {
405
446
  value: true
406
447
  });
407
448
  exports.insertLayout = exports.isDynamicOption = exports.uncollapseEditorConfig = exports.generatePrecisionValues = exports.getInitialPreset = exports.enhanceOptionsSchemaWithDynamicOptions = exports.enhanceConfig = void 0;
449
+
408
450
  var lodash_1 = __webpack_require__(3);
451
+
409
452
  var schemaUtils_1 = __webpack_require__(16);
453
+
410
454
  var VizBehavior_1 = __webpack_require__(6);
455
+
411
456
  var dynamicOptionsDSLType = {
412
457
  type: 'string',
413
458
  pattern: schemaUtils_1.DYNAMIC_OPTIONS_DSL_PATTERN
@@ -417,20 +462,22 @@ var dynamicOptionsDSLType = {
417
462
  * @param optionsSchema a visualization's options schema
418
463
  * @returns an updated options schema that additionally allows strings starting with > for each option
419
464
  */
465
+
420
466
  function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
421
467
  var enhancedOptionsSchema = {};
422
468
  Object.keys(optionsSchema).forEach(function (key) {
423
469
  var _a = optionsSchema[key],
424
- title = _a.title,
425
- description = _a.description,
426
- readOnly = _a.readOnly,
427
- writeOnly = _a.writeOnly,
428
- examples = _a.examples,
429
- defaultValue = _a.default,
430
- type = _a.type,
431
- properties = _a.properties,
432
- patternProperties = _a.patternProperties,
433
- remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
470
+ title = _a.title,
471
+ description = _a.description,
472
+ readOnly = _a.readOnly,
473
+ writeOnly = _a.writeOnly,
474
+ examples = _a.examples,
475
+ defaultValue = _a.default,
476
+ type = _a.type,
477
+ properties = _a.properties,
478
+ patternProperties = _a.patternProperties,
479
+ remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
480
+
434
481
  var annotations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, title !== undefined && {
435
482
  title: title
436
483
  }), description !== undefined && {
@@ -444,12 +491,14 @@ function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
444
491
  }), defaultValue !== undefined && {
445
492
  default: defaultValue
446
493
  });
494
+
447
495
  if (type === 'object') {
448
496
  enhancedOptionsSchema[key] = Object.assign(Object.assign(Object.assign(Object.assign({}, remainingSchemaEntry), annotations), {
449
497
  type: type
450
498
  }), properties && {
451
499
  properties: enhanceOptionsSchemaWithDynamicOptions(properties)
452
500
  });
501
+
453
502
  if (patternProperties) {
454
503
  var enhancedPatternProperties = {};
455
504
  Object.keys(patternProperties).forEach(function (opt) {
@@ -467,6 +516,7 @@ function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
467
516
  });
468
517
  return enhancedOptionsSchema;
469
518
  }
519
+
470
520
  exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamicOptions;
471
521
  /**
472
522
  * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block
@@ -475,11 +525,14 @@ exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamic
475
525
  * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports
476
526
  * and containing `open: false` for all editor panels in editorConfig
477
527
  */
528
+
478
529
  function enhanceConfig(vizConfig) {
479
530
  var enhancedConfig = Object.assign({}, vizConfig);
531
+
480
532
  if (vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS) !== -1) {
481
533
  enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);
482
534
  }
535
+
483
536
  enhancedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
484
537
  return Object.assign(Object.assign({}, config), {
485
538
  open: config.open || false
@@ -487,6 +540,7 @@ function enhanceConfig(vizConfig) {
487
540
  });
488
541
  return enhancedConfig;
489
542
  }
543
+
490
544
  exports.enhanceConfig = enhanceConfig;
491
545
  /**
492
546
  * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig
@@ -494,6 +548,7 @@ exports.enhanceConfig = enhanceConfig;
494
548
  * @param vizConfig a Visualization Config
495
549
  * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig
496
550
  */
551
+
497
552
  function uncollapseEditorConfig(vizConfig) {
498
553
  var editorPanelUncollapsedConfig = Object.assign({}, vizConfig);
499
554
  editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
@@ -503,13 +558,16 @@ function uncollapseEditorConfig(vizConfig) {
503
558
  });
504
559
  return editorPanelUncollapsedConfig;
505
560
  }
561
+
506
562
  exports.uncollapseEditorConfig = uncollapseEditorConfig;
563
+
507
564
  function isDynamicOption(option) {
508
565
  return option && typeof option === 'string' && option.trim().startsWith('>') || false;
509
566
  }
510
- exports.isDynamicOption = isDynamicOption;
511
- // private helpers to improve readability of getInitialPreset
567
+
568
+ exports.isDynamicOption = isDynamicOption; // private helpers to improve readability of getInitialPreset
512
569
  // this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset
570
+
513
571
  /**
514
572
  * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset
515
573
  * 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
@@ -518,6 +576,7 @@ exports.isDynamicOption = isDynamicOption;
518
576
  *
519
577
  * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values
520
578
  */
579
+
521
580
  function hasCompatibleContexts(vizContext, presetContext) {
522
581
  var presetContextKeys = Object.keys(presetContext);
523
582
  return presetContextKeys.every(function (contextKey) {
@@ -527,6 +586,8 @@ function hasCompatibleContexts(vizContext, presetContext) {
527
586
  /**
528
587
  * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions
529
588
  */
589
+
590
+
530
591
  function hasCompatibleOptions(vizOptions, presetOptions) {
531
592
  var presetOptionKeys = Object.keys(presetOptions);
532
593
  return presetOptionKeys.every(function (optionKey) {
@@ -541,18 +602,21 @@ function hasCompatibleOptions(vizOptions, presetOptions) {
541
602
  * @param {Object} vizOptions - the current vizOptions definition
542
603
  * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset
543
604
  */
605
+
606
+
544
607
  function getInitialPreset(vizContext, vizOptions, presets) {
545
608
  return presets.find(function (preset) {
546
609
  var presetContext = (0, lodash_1.get)(preset, ['value', 'context'], {});
547
610
  var presetOptions = (0, lodash_1.get)(preset, ['value', 'options'], {});
548
611
  var presetContextKeys = Object.keys(presetContext);
549
- var presetOptionKeys = Object.keys(presetOptions);
550
- // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)
612
+ var presetOptionKeys = Object.keys(presetOptions); // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)
551
613
  // if not, then the preset is invalid in config.ts
614
+
552
615
  if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;
553
616
  return hasCompatibleContexts(vizContext, presetContext) && hasCompatibleOptions(vizOptions, presetOptions);
554
617
  });
555
618
  }
619
+
556
620
  exports.getInitialPreset = getInitialPreset;
557
621
  /**
558
622
  * generates number precision values for a Select editor
@@ -560,6 +624,7 @@ exports.getInitialPreset = getInitialPreset;
560
624
  * @param {Number} numPrecisionValues - number of integer precision values to generate
561
625
  * @returns {{ label: string; value; string }[]} array of { label, value } tuples
562
626
  */
627
+
563
628
  function generatePrecisionValues(numPrecisionValues) {
564
629
  return (0, lodash_1.range)(0, numPrecisionValues + 1).map(function (i) {
565
630
  return {
@@ -568,6 +633,7 @@ function generatePrecisionValues(numPrecisionValues) {
568
633
  };
569
634
  });
570
635
  }
636
+
571
637
  exports.generatePrecisionValues = generatePrecisionValues;
572
638
  /**
573
639
  * insert layout in layout array, return a new layout array instead of updating the original
@@ -577,12 +643,15 @@ exports.generatePrecisionValues = generatePrecisionValues;
577
643
  * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert
578
644
  * @returns {EditorLayoutConfig[][]} new editor layout with insertion
579
645
  */
646
+
580
647
  var insertLayout = function insertLayout(layout, index) {
581
648
  for (var _len = arguments.length, layoutItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
582
649
  layoutItems[_key - 2] = arguments[_key];
583
650
  }
651
+
584
652
  return [].concat(_toConsumableArray(layout.slice(0, index)), layoutItems, _toConsumableArray(layout.slice(index)));
585
653
  };
654
+
586
655
  exports.insertLayout = insertLayout;
587
656
 
588
657
  /***/ }),
@@ -660,11 +729,17 @@ Object.defineProperty(exports, "__esModule", {
660
729
  value: true
661
730
  });
662
731
  exports.shouldShowIconPlaceholder = void 0;
732
+
663
733
  var React = __webpack_require__(1);
734
+
664
735
  var T = __webpack_require__(0);
736
+
665
737
  var lodash_1 = __webpack_require__(3);
738
+
666
739
  var i18n_1 = __webpack_require__(2);
740
+
667
741
  var Message_1 = __webpack_require__(10);
742
+
668
743
  var FixedSizeContainer_1 = __webpack_require__(13);
669
744
  /**
670
745
  * @method shouldShowIconPlaceholder
@@ -672,6 +747,8 @@ var FixedSizeContainer_1 = __webpack_require__(13);
672
747
  * @param {boolean} loading
673
748
  * @returns {boolean}
674
749
  */
750
+
751
+
675
752
  var shouldShowIconPlaceholder = function shouldShowIconPlaceholder(dataSources) {
676
753
  var loading = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
677
754
  var data = (0, lodash_1.get)(dataSources, 'primary.data.columns[0]', undefined);
@@ -680,6 +757,7 @@ var shouldShowIconPlaceholder = function shouldShowIconPlaceholder(dataSources)
680
757
  var noFields = fields === undefined;
681
758
  return loading || noData || noFields;
682
759
  };
760
+
683
761
  exports.shouldShowIconPlaceholder = shouldShowIconPlaceholder;
684
762
  var propTypes = {
685
763
  icon: T.func,
@@ -694,11 +772,13 @@ var propTypes = {
694
772
  * @param {IconPlaceholderProps} props
695
773
  * @returns {React.ReactElement}
696
774
  */
775
+
697
776
  var IconPlaceholder = function IconPlaceholder(props) {
698
777
  var width = props.width,
699
- height = props.height,
700
- icon = props.icon,
701
- iconColor = props.iconColor;
778
+ height = props.height,
779
+ icon = props.icon,
780
+ iconColor = props.iconColor;
781
+
702
782
  if (icon) {
703
783
  return React.createElement(icon, {
704
784
  style: {
@@ -710,9 +790,11 @@ var IconPlaceholder = function IconPlaceholder(props) {
710
790
  transform: 'translate(-50%, -50%)'
711
791
  },
712
792
  width: '50%',
713
- height: '50%'
793
+ height: '50%',
794
+ 'data-test': 'icon-placeholder'
714
795
  });
715
796
  }
797
+
716
798
  return React.createElement(Message_1.default, {
717
799
  width: width,
718
800
  height: height,
@@ -720,6 +802,7 @@ var IconPlaceholder = function IconPlaceholder(props) {
720
802
  message: (0, i18n_1._)('No DataSource Connected')
721
803
  });
722
804
  };
805
+
723
806
  IconPlaceholder.propTypes = propTypes;
724
807
  IconPlaceholder.defaultProps = {
725
808
  width: '100%',
@@ -736,21 +819,27 @@ exports.default = (0, FixedSizeContainer_1.default)(IconPlaceholder);
736
819
 
737
820
 
738
821
  var _defineProperty = __webpack_require__(7);
822
+
739
823
  Object.defineProperty(exports, "__esModule", {
740
824
  value: true
741
825
  });
742
826
  exports.getSortingParams = exports.SortParamsPropTypes = void 0;
827
+
743
828
  var T = __webpack_require__(0);
829
+
744
830
  var lodash_1 = __webpack_require__(3);
745
- var DataSource_1 = __webpack_require__(43);
831
+
832
+ var DataSource_1 = __webpack_require__(34);
833
+
746
834
  exports.SortParamsPropTypes = T.shape({
747
835
  currentSortKey: T.string,
748
836
  currentSortDir: T.oneOf(DataSource_1.validSortDirs),
749
837
  onSort: T.func
750
838
  });
839
+
751
840
  var getSortingParams = function getSortingParams(_ref) {
752
841
  var requestParams = _ref.requestParams,
753
- onRequestParamsChange = _ref.onRequestParamsChange;
842
+ onRequestParamsChange = _ref.onRequestParamsChange;
754
843
  var currentSortKey;
755
844
  var currentSortDir;
756
845
  var nextSortDirMap = {
@@ -759,15 +848,18 @@ var getSortingParams = function getSortingParams(_ref) {
759
848
  none: 'asc'
760
849
  };
761
850
  var onSort;
851
+
762
852
  if (typeof onRequestParamsChange === 'function') {
763
853
  if (requestParams && (0, lodash_1.has)(requestParams, 'sort')) {
764
854
  currentSortKey = Object.keys(requestParams.sort).shift();
765
855
  currentSortDir = requestParams.sort[currentSortKey];
766
- }
767
- // undid memoization since there is a dependency on requestParams, which is a deeply nested object
856
+ } // undid memoization since there is a dependency on requestParams, which is a deeply nested object
857
+
858
+
768
859
  onSort = function onSort(e, _ref2) {
769
860
  var sortKey = _ref2.sortKey,
770
- sortDir = _ref2.sortDir;
861
+ sortDir = _ref2.sortDir;
862
+
771
863
  if (typeof sortKey === 'string') {
772
864
  var nextSortDir = (0, lodash_1.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';
773
865
  onRequestParamsChange(Object.assign(Object.assign({}, requestParams), {
@@ -779,12 +871,14 @@ var getSortingParams = function getSortingParams(_ref) {
779
871
  }
780
872
  };
781
873
  }
874
+
782
875
  return {
783
876
  currentSortKey: currentSortKey,
784
877
  currentSortDir: currentSortDir,
785
878
  onSort: onSort
786
879
  };
787
880
  };
881
+
788
882
  exports.getSortingParams = getSortingParams;
789
883
 
790
884
  /***/ }),
@@ -795,43 +889,69 @@ exports.getSortingParams = getSortingParams;
795
889
  "use strict";
796
890
 
797
891
 
892
+ Object.defineProperty(exports, "__esModule", {
893
+ value: true
894
+ });
895
+ exports.validOutputModes = exports.validSegmentationModes = exports.validSortDirs = void 0;
896
+ exports.validSortDirs = ['asc', 'desc', 'none'];
897
+ exports.validSegmentationModes = ['none', 'inner'];
898
+ exports.validOutputModes = ['json_cols', 'json'];
899
+
900
+ /***/ }),
901
+
902
+ /***/ 35:
903
+ /***/ (function(module, exports, __webpack_require__) {
904
+
905
+ "use strict";
906
+
907
+
798
908
  Object.defineProperty(exports, "__esModule", {
799
909
  value: true
800
910
  });
801
911
  exports.getPaginationParams = exports.PaginatorParamsPropTypes = void 0;
912
+
802
913
  var T = __webpack_require__(0);
914
+
803
915
  var lodash_1 = __webpack_require__(3);
916
+
804
917
  exports.PaginatorParamsPropTypes = T.shape({
805
918
  isPaging: T.bool,
806
919
  current: T.number,
807
920
  totalPages: T.number,
808
921
  onChange: T.func
809
922
  });
923
+
810
924
  var getPaginationParams = function getPaginationParams(_ref) {
811
925
  var requestParams = _ref.requestParams,
812
- meta = _ref.meta,
813
- onRequestParamsChange = _ref.onRequestParamsChange;
926
+ meta = _ref.meta,
927
+ onRequestParamsChange = _ref.onRequestParamsChange;
814
928
  var totalCount = meta && meta.totalCount || 0;
815
929
  var offset = requestParams && requestParams.offset || 0;
816
930
  var count = requestParams && requestParams.count;
817
931
  var totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;
818
932
  var current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;
819
933
  var isPaging = totalPages > 1 && typeof onRequestParamsChange === 'function';
934
+
820
935
  var onChangeHandler = function onChangeHandler(e, _ref2) {
821
936
  var page = _ref2.page,
822
- countArg = _ref2.count;
937
+ countArg = _ref2.count;
823
938
  var newParams = (0, lodash_1.cloneDeep)(requestParams);
939
+
824
940
  if (typeof countArg === 'number') {
825
941
  newParams.count = countArg;
826
942
  newParams.offset = 0;
827
943
  }
944
+
828
945
  var pageCount = typeof newParams.count === 'number' ? newParams.count : 10;
946
+
829
947
  if (typeof page === 'number' && page > 0) {
830
948
  newParams.count = pageCount;
831
949
  newParams.offset = (page - 1) * pageCount;
832
950
  }
951
+
833
952
  onRequestParamsChange(newParams);
834
953
  };
954
+
835
955
  return {
836
956
  isPaging: isPaging,
837
957
  current: current,
@@ -839,11 +959,12 @@ var getPaginationParams = function getPaginationParams(_ref) {
839
959
  onChange: typeof onRequestParamsChange === 'function' ? onChangeHandler : lodash_1.noop
840
960
  };
841
961
  };
962
+
842
963
  exports.getPaginationParams = getPaginationParams;
843
964
 
844
965
  /***/ }),
845
966
 
846
- /***/ 35:
967
+ /***/ 36:
847
968
  /***/ (function(module, exports, __webpack_require__) {
848
969
 
849
970
  "use strict";
@@ -854,6 +975,7 @@ Object.defineProperty(exports, "__esModule", {
854
975
  });
855
976
  exports.VizCategory = void 0;
856
977
  var VizCategory;
978
+
857
979
  (function (VizCategory) {
858
980
  VizCategory["SINGLE_VALUE"] = "Single Value";
859
981
  VizCategory["TRENDS"] = "Trends";
@@ -871,67 +993,96 @@ var VizCategory;
871
993
 
872
994
  /***/ }),
873
995
 
874
- /***/ 36:
996
+ /***/ 37:
875
997
  /***/ (function(module, exports, __webpack_require__) {
876
998
 
877
999
  "use strict";
878
1000
 
879
1001
 
880
1002
  var _slicedToArray = __webpack_require__(17);
1003
+
881
1004
  Object.defineProperty(exports, "__esModule", {
882
1005
  value: true
883
1006
  });
1007
+
884
1008
  var React = __webpack_require__(1);
1009
+
885
1010
  var lodash_1 = __webpack_require__(3);
886
- var getSettingsFromThemedProps_1 = __webpack_require__(37);
1011
+
1012
+ var getSettingsFromThemedProps_1 = __webpack_require__(38);
1013
+
887
1014
  var Options_1 = __webpack_require__(30);
888
- var SanitizeProps_1 = __webpack_require__(38);
1015
+
1016
+ var SanitizeProps_1 = __webpack_require__(39);
1017
+
889
1018
  var TimezoneContext_1 = __webpack_require__(26);
890
- var moment_1 = __webpack_require__(39);
1019
+
1020
+ var moment_1 = __webpack_require__(40);
1021
+
891
1022
  var FeatureFlagContext_1 = __webpack_require__(21);
1023
+
892
1024
  var styled_components_1 = __webpack_require__(4);
1025
+
893
1026
  var hocUtils_1 = __webpack_require__(27);
1027
+
894
1028
  var JSONSchemaUtils_1 = __webpack_require__(28);
895
- var async_dynamic_options_evaluator_1 = __webpack_require__(40);
1029
+
1030
+ var async_dynamic_options_evaluator_1 = __webpack_require__(41);
1031
+
896
1032
  var id_1 = __webpack_require__(25);
897
- var SplunkVisualization_1 = __webpack_require__(41);
1033
+
1034
+ var SplunkVisualization_1 = __webpack_require__(42);
1035
+
898
1036
  var VizBehavior_1 = __webpack_require__(6);
1037
+
899
1038
  var getSorting_1 = __webpack_require__(33);
900
- var getPagination_1 = __webpack_require__(34);
1039
+
1040
+ var getPagination_1 = __webpack_require__(35);
1041
+
901
1042
  var useDeepMemo_1 = __webpack_require__(44);
1043
+
902
1044
  var MissingPropsMessage_1 = __webpack_require__(45);
1045
+
903
1046
  var withEditModeCover_1 = __webpack_require__(46);
1047
+
904
1048
  var withPlaceholder_1 = __webpack_require__(47);
905
1049
  /**
906
1050
  * hoc that wraps a pure react visualization in a Dashboard visualization
907
1051
  * @param {DashboardVizOpts} opts
908
1052
  * @returns {HOC}
909
1053
  */
1054
+
1055
+
910
1056
  var withDashboardViz = function withDashboardViz(opts) {
911
1057
  var ReactViz = opts.ReactViz,
912
- vizConfig = opts.vizConfig,
913
- _opts$computeVizProps = opts.computeVizProps,
914
- computeVizProps = _opts$computeVizProps === void 0 ? function () {} : _opts$computeVizProps,
915
- disableEditModeCover = opts.disableEditModeCover,
916
- useIconPlaceholder = opts.useIconPlaceholder; // sanitizing props before sending them to reactviz.
1058
+ vizConfig = opts.vizConfig,
1059
+ _opts$computeVizProps = opts.computeVizProps,
1060
+ computeVizProps = _opts$computeVizProps === void 0 ? function () {} : _opts$computeVizProps,
1061
+ disableEditModeCover = opts.disableEditModeCover,
1062
+ useIconPlaceholder = opts.useIconPlaceholder; // sanitizing props before sending them to reactviz.
1063
+
917
1064
  var SanitizedReactViz = (0, SanitizeProps_1.withSanitizedProps)(ReactViz);
918
1065
  var defaultOptions = (0, JSONSchemaUtils_1.pickFieldFromJSONSchema)(vizConfig.optionsSchema, 'default');
1066
+
919
1067
  var DashboardViz = function DashboardViz(props) {
920
1068
  var _a;
1069
+
921
1070
  var mode = props.mode,
922
- hasEventHandlers = props.hasEventHandlers,
923
- dataSources = props.dataSources,
924
- options = props.options,
925
- _props$context = props.context,
926
- context = _props$context === void 0 ? {} : _props$context,
927
- width = props.width,
928
- height = props.height,
929
- onComputedProps = props.onComputedProps,
930
- onEventTrigger = props.onEventTrigger,
931
- theme = props.theme,
932
- onRequestParamsChange = props.onRequestParamsChange;
1071
+ hasEventHandlers = props.hasEventHandlers,
1072
+ dataSources = props.dataSources,
1073
+ options = props.options,
1074
+ _props$context = props.context,
1075
+ context = _props$context === void 0 ? {} : _props$context,
1076
+ width = props.width,
1077
+ height = props.height,
1078
+ onComputedProps = props.onComputedProps,
1079
+ onEventTrigger = props.onEventTrigger,
1080
+ theme = props.theme,
1081
+ onRequestParamsChange = props.onRequestParamsChange;
1082
+
933
1083
  var _React$useContext = React.useContext(TimezoneContext_1.default),
934
- serializedTimezone = _React$useContext.serializedTimezone;
1084
+ serializedTimezone = _React$useContext.serializedTimezone;
1085
+
935
1086
  if (serializedTimezone) {
936
1087
  /*
937
1088
  @splunk/moment currently does not allow us to customize the timezone on a per visualization basis.
@@ -945,38 +1096,51 @@ var withDashboardViz = function withDashboardViz(opts) {
945
1096
  moment_1.default.setDefaultSplunkTimezone(serializedTimezone);
946
1097
  }
947
1098
  }
1099
+
948
1100
  var themeFunc = function themeFunc(themeVar) {
949
1101
  var _a, _b;
1102
+
950
1103
  return (_b = (_a = vizConfig.themes)[themeVar]) === null || _b === void 0 ? void 0 : _b.call(_a, props);
951
1104
  };
1105
+
952
1106
  var bgColorFromTheme = themeFunc('defaultBackgroundColor');
1107
+
953
1108
  var _ref = (0, getSettingsFromThemedProps_1.default)({
954
- theme: theme
955
- }),
956
- currentThemeFamily = _ref.family,
957
- currentThemeColorScheme = _ref.colorScheme,
958
- currentThemeDensity = _ref.density;
1109
+ theme: theme
1110
+ }),
1111
+ currentThemeFamily = _ref.family,
1112
+ currentThemeColorScheme = _ref.colorScheme,
1113
+ currentThemeDensity = _ref.density;
1114
+
959
1115
  var evaluatedOptions = {}; // evaluatedOptions need to be initialized as an empty object
1116
+
960
1117
  var _React$useState = React.useState({}),
961
- _React$useState2 = _slicedToArray(_React$useState, 2),
962
- evaluatedOptionsAsync = _React$useState2[0],
963
- setEvaluatedOptionsAsync = _React$useState2[1]; // evaluatedOptions need to be initialized as an empty object
1118
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1119
+ evaluatedOptionsAsync = _React$useState2[0],
1120
+ setEvaluatedOptionsAsync = _React$useState2[1]; // evaluatedOptions need to be initialized as an empty object
1121
+
1122
+
964
1123
  var featureFlagContext = React.useContext(FeatureFlagContext_1.default);
1124
+
965
1125
  var _React$useState3 = React.useState("".concat(vizConfig.name, " - ").concat((0, id_1.createGUID)())),
966
- _React$useState4 = _slicedToArray(_React$useState3, 1),
967
- visualizationID = _React$useState4[0];
1126
+ _React$useState4 = _slicedToArray(_React$useState3, 1),
1127
+ visualizationID = _React$useState4[0];
1128
+
968
1129
  var _React$useState5 = React.useState({}),
969
- _React$useState6 = _slicedToArray(_React$useState5, 2),
970
- dataSourcesInState = _React$useState6[0],
971
- setDataSourcesInState = _React$useState6[1];
1130
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
1131
+ dataSourcesInState = _React$useState6[0],
1132
+ setDataSourcesInState = _React$useState6[1];
1133
+
972
1134
  var _React$useState7 = React.useState(),
973
- _React$useState8 = _slicedToArray(_React$useState7, 2),
974
- dataFramesInState = _React$useState8[0],
975
- setDataFramesInState = _React$useState8[1];
1135
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
1136
+ dataFramesInState = _React$useState8[0],
1137
+ setDataFramesInState = _React$useState8[1];
1138
+
976
1139
  var _React$useState9 = React.useState(Boolean(featureFlagContext === null || featureFlagContext === void 0 ? void 0 : featureFlagContext.visualizations_useWebWorkersForDSL)),
977
- _React$useState10 = _slicedToArray(_React$useState9, 2),
978
- useAsyncEvaluatedOptions = _React$useState10[0],
979
- setUseAsyncEvaluatedOptions = _React$useState10[1];
1140
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
1141
+ useAsyncEvaluatedOptions = _React$useState10[0],
1142
+ setUseAsyncEvaluatedOptions = _React$useState10[1];
1143
+
980
1144
  var isMounted = React.useRef(true);
981
1145
  evaluatedOptions = (0, useDeepMemo_1.useDeepMemo)(function () {
982
1146
  try {
@@ -1001,11 +1165,13 @@ var withDashboardViz = function withDashboardViz(opts) {
1001
1165
  });
1002
1166
  } else {
1003
1167
  var dataFrames = dataFramesInState;
1168
+
1004
1169
  if (dataSources !== dataSourcesInState) {
1005
1170
  setDataSourcesInState(dataSources);
1006
1171
  dataFrames = Options_1.Options.dataFrameFromDataSource(dataSources);
1007
1172
  setDataFramesInState(dataFrames);
1008
1173
  }
1174
+
1009
1175
  return Options_1.Options.evaluate({
1010
1176
  context: (0, lodash_1.defaultsDeep)({}, context, vizConfig.defaultContext),
1011
1177
  options: (0, hocUtils_1.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions)
@@ -1016,21 +1182,24 @@ var withDashboardViz = function withDashboardViz(opts) {
1016
1182
  console.error("unexpected error evaluating options: ".concat(e.message));
1017
1183
  return {};
1018
1184
  }
1185
+
1019
1186
  return {};
1020
1187
  }, [currentThemeFamily, currentThemeColorScheme, currentThemeDensity, options, context, dataSources, serializedTimezone, useAsyncEvaluatedOptions]);
1021
- var evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
1022
- // trellis specific backgroundColor update for onComputedProps
1188
+ var evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync; // trellis specific backgroundColor update for onComputedProps
1023
1189
  // if trellis is enabled following these three criteria - 1) trellis feature flag is enabled 2) vizConfig supports array has 'trellis' 3) option 'splitByLayout' is set to 'trellis
1024
1190
  // onComputedProps api should return back trellisBackgroundColor value for backgroundColor option to support coloring of sibling panels (for eg:- title/ description on UDF side)
1191
+
1025
1192
  var isTrellisFeatureFlagOn = Boolean(featureFlagContext && featureFlagContext.visualizations_enableTrellis);
1026
1193
  var clonedEvaluatedOptions = evaluatedOptionsToUse;
1194
+
1027
1195
  if (isTrellisFeatureFlagOn && ((_a = vizConfig === null || vizConfig === void 0 ? void 0 : vizConfig.supports) === null || _a === void 0 ? void 0 : _a.includes(VizBehavior_1.VizBehavior.TRELLIS)) && (clonedEvaluatedOptions === null || clonedEvaluatedOptions === void 0 ? void 0 : clonedEvaluatedOptions.splitByLayout) === VizBehavior_1.VizBehavior.TRELLIS) {
1028
1196
  clonedEvaluatedOptions = Object.assign(Object.assign({}, evaluatedOptionsToUse), {
1029
1197
  backgroundColor: clonedEvaluatedOptions === null || clonedEvaluatedOptions === void 0 ? void 0 : clonedEvaluatedOptions.trellisBackgroundColor
1030
1198
  });
1031
- }
1032
- // useEffect hook needs to be initialized before any early returns
1199
+ } // useEffect hook needs to be initialized before any early returns
1033
1200
  // this is in accordance with the order of hook calls being the same on each render https://reactjs.org/docs/hooks-rules.html#explanation
1201
+
1202
+
1034
1203
  React.useEffect(function () {
1035
1204
  onComputedProps(clonedEvaluatedOptions);
1036
1205
  });
@@ -1040,53 +1209,68 @@ var withDashboardViz = function withDashboardViz(opts) {
1040
1209
  isMounted.current = false;
1041
1210
  async_dynamic_options_evaluator_1.default.reset(visualizationID);
1042
1211
  }
1043
- };
1044
- // eslint-disable-next-line react-hooks/exhaustive-deps
1045
- }, []);
1046
- // present warning message if any required props are missing
1212
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
1213
+ }, []); // present warning message if any required props are missing
1214
+
1047
1215
  var _vizConfig$requiredPr = vizConfig.requiredProps,
1048
- requiredProps = _vizConfig$requiredPr === void 0 ? [] : _vizConfig$requiredPr,
1049
- supports = vizConfig.supports;
1216
+ requiredProps = _vizConfig$requiredPr === void 0 ? [] : _vizConfig$requiredPr,
1217
+ supports = vizConfig.supports;
1050
1218
  var missing = (0, MissingPropsMessage_1.missingKeys)(requiredProps, evaluatedOptionsToUse);
1219
+
1051
1220
  if (missing.length > 0 && supports.includes(VizBehavior_1.VizBehavior.PLACEHOLDER) && vizConfig.key !== 'splunk.singlevalue' // For SV missing props msg is not displayed if required props majorValue is missing, instead this will be handled from the component, instead handled within component
1052
1221
  ) {
1053
- return React.createElement(MissingPropsMessage_1.default, {
1054
- "data-test": "missing-props-message",
1055
- width: width,
1056
- height: height,
1057
- missingProps: missing,
1058
- backgroundColor: bgColorFromTheme
1059
- });
1060
- }
1061
- // events
1222
+ return React.createElement(MissingPropsMessage_1.default, {
1223
+ "data-test": "missing-props-message",
1224
+ width: width,
1225
+ height: height,
1226
+ missingProps: missing,
1227
+ backgroundColor: bgColorFromTheme
1228
+ });
1229
+ } // events
1230
+
1231
+
1062
1232
  var eventCallbackProps = {};
1233
+
1063
1234
  if (hasEventHandlers && mode === 'view' && vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.EVENTS) > -1) {
1064
1235
  var supportedEvents = vizConfig.events;
1065
1236
  Object.keys(supportedEvents).forEach(function (eventName) {
1066
- var eventCallbackPropName = (0, lodash_1.camelCase)("on.".concat(eventName));
1067
- eventCallbackProps[eventCallbackPropName] = null;
1068
- // todo: refactor single value and single value icon to send payload from viz
1237
+ var _supportedEvents$even = supportedEvents[eventName],
1238
+ parentKeys = _supportedEvents$even.parentKeys,
1239
+ payloadKeys = _supportedEvents$even.payloadKeys;
1240
+ var eventCallbackPropName = (0, lodash_1.camelCase)("on.".concat(eventName)); // todo: refactor single value and single value icon to send payload from viz
1069
1241
  // then remove these lines
1070
- var payloadKeys = supportedEvents[eventName].payloadKeys;
1242
+
1071
1243
  var payload = {};
1244
+
1072
1245
  if (Array.isArray(payloadKeys) && payloadKeys.length) {
1073
1246
  payloadKeys.forEach(function (p) {
1074
1247
  payload[p] = evaluatedOptionsToUse[p];
1075
1248
  });
1076
1249
  }
1250
+
1077
1251
  eventCallbackProps[eventCallbackPropName] = function (ev) {
1078
1252
  if (ev && ev.payload) {
1079
1253
  payload = ev.payload;
1080
1254
  }
1255
+
1081
1256
  return onEventTrigger({
1082
1257
  originalEvent: ev,
1083
1258
  payload: payload,
1084
1259
  type: eventName
1085
1260
  });
1086
1261
  };
1262
+
1263
+ if (parentKeys) {
1264
+ for (var i = parentKeys.length - 1; i >= 0; i -= 1) {
1265
+ var newObject = {};
1266
+ newObject[parentKeys[i]] = eventCallbackProps[eventCallbackPropName];
1267
+ eventCallbackProps[eventCallbackPropName] = newObject;
1268
+ }
1269
+ }
1087
1270
  });
1088
- }
1089
- // compute pure viz props which are not from options
1271
+ } // compute pure viz props which are not from options
1272
+
1273
+
1090
1274
  var computedVizProps = computeVizProps(Object.assign(Object.assign(Object.assign(Object.assign({}, props), evaluatedOptionsToUse), eventCallbackProps), {
1091
1275
  themeFunc: themeFunc
1092
1276
  }));
@@ -1104,15 +1288,19 @@ var withDashboardViz = function withDashboardViz(opts) {
1104
1288
  * In future, we could automatically detect which all datasources are being used
1105
1289
  * and bind those magically to pagination/sorting behavior.
1106
1290
  */
1291
+
1107
1292
  var dataSourceMetadata = {};
1108
1293
  var OptionKey = 'paginateDataSourceKey';
1109
1294
  var paginateDataSourceKey = (0, lodash_1.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey] || 'primary';
1295
+
1110
1296
  if (vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.PAGE_AND_SORT) > -1 && (0, lodash_1.has)(dataSources, paginateDataSourceKey)) {
1111
1297
  var requestParams = (0, lodash_1.get)(dataSources, [paginateDataSourceKey, 'requestParams'], {});
1112
1298
  var meta = (0, lodash_1.get)(dataSources, [paginateDataSourceKey, 'meta'], {});
1299
+
1113
1300
  var handleRequestParamsChange = function handleRequestParamsChange(payload) {
1114
1301
  return onRequestParamsChange(paginateDataSourceKey, payload);
1115
1302
  };
1303
+
1116
1304
  var sortParams = (0, getSorting_1.getSortingParams)({
1117
1305
  requestParams: requestParams,
1118
1306
  meta: meta,
@@ -1127,115 +1315,132 @@ var withDashboardViz = function withDashboardViz(opts) {
1127
1315
  sortParams: sortParams,
1128
1316
  paginatorParams: paginatorParams
1129
1317
  };
1130
- }
1131
- // if were using webworkers and this is the first render we dont want to show a viz with missing data so we return null
1318
+ } // if were using webworkers and this is the first render we dont want to show a viz with missing data so we return null
1319
+
1320
+
1132
1321
  if (useAsyncEvaluatedOptions && Object.keys(evaluatedOptionsToUse).length === 0) {
1133
1322
  return null;
1134
1323
  }
1324
+
1135
1325
  return React.createElement(SanitizedReactViz, Object.assign({
1136
1326
  mode: mode,
1137
1327
  width: width,
1138
1328
  height: height
1139
1329
  }, evaluatedOptionsToUse, computedVizProps, eventCallbackProps, dataSourceMetadata));
1140
1330
  };
1331
+
1141
1332
  DashboardViz.propTypes = Object.assign(Object.assign({}, SplunkVisualization_1.default.propTypes), ReactViz.propTypes);
1142
1333
  DashboardViz.defaultProps = Object.assign(Object.assign(Object.assign({}, SplunkVisualization_1.default.defaultProps), ReactViz.defaultProps), {
1143
1334
  // using withTheme requires component to receive theme prop. In case the consumer did not provide ThemeProvider, a default empty object will prevent warnings.
1144
1335
  theme: {}
1145
- });
1146
- // attach viz config
1147
- DashboardViz.config = vizConfig;
1148
- // @ts-ignore: TODO fix sc upgrade TS issues
1336
+ }); // attach viz config
1337
+
1338
+ DashboardViz.config = vizConfig; // @ts-ignore: TODO fix sc upgrade TS issues
1339
+
1149
1340
  return (0, styled_components_1.withTheme)((0, withPlaceholder_1.default)((0, withEditModeCover_1.default)(DashboardViz, disableEditModeCover), useIconPlaceholder));
1150
1341
  };
1342
+
1151
1343
  exports.default = withDashboardViz;
1152
1344
 
1153
1345
  /***/ }),
1154
1346
 
1155
- /***/ 37:
1347
+ /***/ 38:
1156
1348
  /***/ (function(module, exports) {
1157
1349
 
1158
1350
  module.exports = require("@splunk/themes/getSettingsFromThemedProps");
1159
1351
 
1160
1352
  /***/ }),
1161
1353
 
1162
- /***/ 38:
1354
+ /***/ 39:
1163
1355
  /***/ (function(module, exports) {
1164
1356
 
1165
1357
  module.exports = require("@splunk/visualizations-shared/SanitizeProps");
1166
1358
 
1167
1359
  /***/ }),
1168
1360
 
1169
- /***/ 39:
1361
+ /***/ 4:
1170
1362
  /***/ (function(module, exports) {
1171
1363
 
1172
- module.exports = require("@splunk/moment");
1364
+ module.exports = require("styled-components");
1173
1365
 
1174
1366
  /***/ }),
1175
1367
 
1176
- /***/ 4:
1368
+ /***/ 40:
1177
1369
  /***/ (function(module, exports) {
1178
1370
 
1179
- module.exports = require("styled-components");
1371
+ module.exports = require("@splunk/moment");
1180
1372
 
1181
1373
  /***/ }),
1182
1374
 
1183
- /***/ 40:
1375
+ /***/ 41:
1184
1376
  /***/ (function(module, exports) {
1185
1377
 
1186
1378
  module.exports = require("@splunk/async-dynamic-options-evaluator");
1187
1379
 
1188
1380
  /***/ }),
1189
1381
 
1190
- /***/ 41:
1382
+ /***/ 42:
1191
1383
  /***/ (function(module, exports, __webpack_require__) {
1192
1384
 
1193
1385
  "use strict";
1194
1386
 
1195
1387
 
1196
1388
  var _classCallCheck = __webpack_require__(9);
1389
+
1197
1390
  Object.defineProperty(exports, "__esModule", {
1198
1391
  value: true
1199
1392
  });
1200
1393
  exports.INITIAL_HEIGHT = exports.INITIAL_WIDTH = void 0;
1201
1394
  /* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */
1395
+
1202
1396
  var T = __webpack_require__(0);
1397
+
1203
1398
  var lodash_1 = __webpack_require__(3);
1204
- var VizActionHandler_1 = __webpack_require__(42);
1205
- // this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations
1399
+
1400
+ var VizActionHandler_1 = __webpack_require__(43); // this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations
1401
+
1402
+
1206
1403
  exports.INITIAL_WIDTH = 250;
1207
1404
  exports.INITIAL_HEIGHT = 250;
1208
1405
  /**
1209
1406
  * A Splunk visualization
1210
1407
  */
1408
+
1211
1409
  var SplunkVisualization = function SplunkVisualization() {
1212
1410
  _classCallCheck(this, SplunkVisualization);
1213
1411
  };
1412
+
1214
1413
  SplunkVisualization.propTypes = {
1215
1414
  /**
1216
1415
  * display mode
1217
1416
  */
1218
1417
  mode: T.oneOf(['view', 'edit', 'export']).isRequired,
1418
+
1219
1419
  /**
1220
1420
  * width in pixel or string, defaults to 100%
1221
1421
  */
1222
1422
  width: T.oneOfType([T.string, T.number]).isRequired,
1423
+
1223
1424
  /**
1224
1425
  * height in pixel or string
1225
1426
  */
1226
1427
  height: T.oneOfType([T.string, T.number]).isRequired,
1428
+
1227
1429
  /**
1228
1430
  * visualization context used for dynamic option evaluation
1229
1431
  */
1230
1432
  context: T.object,
1433
+
1231
1434
  /**
1232
1435
  * visualization formatting options
1233
1436
  */
1234
1437
  options: T.object,
1438
+
1235
1439
  /**
1236
1440
  * A callback to update formatting options
1237
1441
  */
1238
1442
  onOptionsChange: T.func,
1443
+
1239
1444
  /**
1240
1445
  * datasource state which include data and request params, object key indicate the datasource type.
1241
1446
  */
@@ -1244,6 +1449,7 @@ SplunkVisualization.propTypes = {
1244
1449
  * current request params
1245
1450
  */
1246
1451
  requestParams: T.object,
1452
+
1247
1453
  /**
1248
1454
  * current dataset
1249
1455
  */
@@ -1251,6 +1457,7 @@ SplunkVisualization.propTypes = {
1251
1457
  fields: T.array,
1252
1458
  columns: T.array
1253
1459
  }),
1460
+
1254
1461
  /**
1255
1462
  * error
1256
1463
  */
@@ -1258,29 +1465,35 @@ SplunkVisualization.propTypes = {
1258
1465
  level: T.string,
1259
1466
  message: T.string
1260
1467
  }),
1468
+
1261
1469
  /**
1262
1470
  * meta data that came with the dataset
1263
1471
  */
1264
1472
  meta: T.object
1265
1473
  })),
1474
+
1266
1475
  /**
1267
1476
  * A callback to trigger event
1268
1477
  */
1269
1478
  onEventTrigger: T.func,
1479
+
1270
1480
  /**
1271
1481
  * Inform viz if there are handlers listening to events
1272
1482
  */
1273
1483
  hasEventHandlers: T.bool,
1484
+
1274
1485
  /**
1275
1486
  * A callback to communicate computed props to a consumer
1276
1487
  */
1277
1488
  onComputedProps: T.func,
1489
+
1278
1490
  /**
1279
1491
  * A callback to obtain visualization api
1280
1492
  */
1281
1493
  vizActionHandlerRef: T.func,
1282
1494
  loading: T.bool,
1283
1495
  theme: T.object,
1496
+
1284
1497
  /**
1285
1498
  * A callback to request new data with updated request params
1286
1499
  */
@@ -1289,6 +1502,7 @@ SplunkVisualization.propTypes = {
1289
1502
  /**
1290
1503
  *
1291
1504
  */
1505
+
1292
1506
  SplunkVisualization.defaultProps = {
1293
1507
  // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height
1294
1508
  width: '100%',
@@ -1317,50 +1531,41 @@ exports.default = SplunkVisualization;
1317
1531
 
1318
1532
  /***/ }),
1319
1533
 
1320
- /***/ 42:
1534
+ /***/ 43:
1321
1535
  /***/ (function(module, exports, __webpack_require__) {
1322
1536
 
1323
1537
  "use strict";
1324
1538
 
1325
1539
 
1326
1540
  var _classCallCheck = __webpack_require__(9);
1541
+
1327
1542
  var _createClass = __webpack_require__(18);
1543
+
1328
1544
  Object.defineProperty(exports, "__esModule", {
1329
1545
  value: true
1330
1546
  });
1331
1547
  exports.DefaultVizActionHandler = void 0;
1548
+
1332
1549
  var DefaultVizActionHandler = /*#__PURE__*/function () {
1333
1550
  function DefaultVizActionHandler() {
1334
1551
  _classCallCheck(this, DefaultVizActionHandler);
1335
1552
  }
1553
+
1336
1554
  _createClass(DefaultVizActionHandler, [{
1337
1555
  key: "focus",
1338
- value: function focus() {
1339
- // noop
1556
+ value: function focus() {// noop
1340
1557
  }
1341
1558
  }, {
1342
- key: "snapshot",
1343
- value: function snapshot() {
1344
- return null; // noop
1345
- }
1346
- }]);
1347
- return DefaultVizActionHandler;
1348
- }();
1349
- exports.DefaultVizActionHandler = DefaultVizActionHandler;
1350
-
1351
- /***/ }),
1352
-
1353
- /***/ 43:
1354
- /***/ (function(module, exports, __webpack_require__) {
1355
-
1356
- "use strict";
1559
+ key: "snapshot",
1560
+ value: function snapshot() {
1561
+ return null; // noop
1562
+ }
1563
+ }]);
1357
1564
 
1565
+ return DefaultVizActionHandler;
1566
+ }();
1358
1567
 
1359
- Object.defineProperty(exports, "__esModule", {
1360
- value: true
1361
- });
1362
- exports.validSortDirs = void 0;
1363
- exports.validSortDirs = ['asc', 'desc', 'none'];
1568
+ exports.DefaultVizActionHandler = DefaultVizActionHandler;
1364
1569
 
1365
1570
  /***/ }),
1366
1571
 
@@ -1374,7 +1579,9 @@ Object.defineProperty(exports, "__esModule", {
1374
1579
  value: true
1375
1580
  });
1376
1581
  exports.useDeepMemo = void 0;
1582
+
1377
1583
  var react_1 = __webpack_require__(1);
1584
+
1378
1585
  var lodash_1 = __webpack_require__(3);
1379
1586
  /**
1380
1587
  * This hook evaluates and stores the result of a passed function and only
@@ -1389,16 +1596,21 @@ var lodash_1 = __webpack_require__(3);
1389
1596
  * @param fn the function to be executed and
1390
1597
  * @param dependencies an array of dependencies
1391
1598
  */
1599
+
1600
+
1392
1601
  var useDeepMemo = function useDeepMemo(fn, dependencies) {
1393
1602
  var ref = (0, react_1.useRef)();
1603
+
1394
1604
  if (!ref.current || !(0, lodash_1.isEqual)(dependencies, ref.current.dependencies)) {
1395
1605
  ref.current = {
1396
1606
  dependencies: dependencies,
1397
1607
  value: fn()
1398
1608
  };
1399
1609
  }
1610
+
1400
1611
  return ref.current.value;
1401
1612
  };
1613
+
1402
1614
  exports.useDeepMemo = useDeepMemo;
1403
1615
 
1404
1616
  /***/ }),
@@ -1413,19 +1625,27 @@ Object.defineProperty(exports, "__esModule", {
1413
1625
  value: true
1414
1626
  });
1415
1627
  exports.MissingPropsMessage = exports.missingKeys = exports.isMissing = void 0;
1628
+
1416
1629
  var React = __webpack_require__(1);
1630
+
1417
1631
  var T = __webpack_require__(0);
1632
+
1418
1633
  var i18n_1 = __webpack_require__(2);
1634
+
1419
1635
  var Message_1 = __webpack_require__(10);
1636
+
1420
1637
  var FixedSizeContainer_1 = __webpack_require__(13);
1421
1638
  /**
1422
1639
  * @method isMissing
1423
1640
  * @param {any} v
1424
1641
  * @returns {boolean} true if the input value === null or undefined
1425
1642
  */
1643
+
1644
+
1426
1645
  var isMissing = function isMissing(v) {
1427
1646
  return v === null || v === undefined;
1428
1647
  };
1648
+
1429
1649
  exports.isMissing = isMissing;
1430
1650
  /**
1431
1651
  * @method misskingKeys
@@ -1433,11 +1653,13 @@ exports.isMissing = isMissing;
1433
1653
  * @param {object} target
1434
1654
  * @returns {string[]} the keys of missing required props
1435
1655
  */
1656
+
1436
1657
  var missingKeys = function missingKeys(keys, target) {
1437
1658
  return keys.filter(function (k) {
1438
1659
  return (0, exports.isMissing)(target[k]);
1439
1660
  });
1440
1661
  };
1662
+
1441
1663
  exports.missingKeys = missingKeys;
1442
1664
  var propTypes = {
1443
1665
  width: T.oneOfType([T.string, T.number]),
@@ -1451,10 +1673,11 @@ var propTypes = {
1451
1673
  * @param {MissingPropsProps} props
1452
1674
  * @returns {React.ReactElement}
1453
1675
  */
1676
+
1454
1677
  var MissingPropsMessage = function MissingPropsMessage(props) {
1455
1678
  var width = props.width,
1456
- height = props.height,
1457
- missingProps = props.missingProps;
1679
+ height = props.height,
1680
+ missingProps = props.missingProps;
1458
1681
  return React.createElement(Message_1.default, {
1459
1682
  "data-test": "message",
1460
1683
  width: width,
@@ -1462,6 +1685,7 @@ var MissingPropsMessage = function MissingPropsMessage(props) {
1462
1685
  message: (0, i18n_1._)("Missing property: ".concat(missingProps.join(', ')))
1463
1686
  });
1464
1687
  };
1688
+
1465
1689
  exports.MissingPropsMessage = MissingPropsMessage;
1466
1690
  exports.MissingPropsMessage.propTypes = propTypes;
1467
1691
  exports.MissingPropsMessage.defaultProps = {
@@ -1481,15 +1705,19 @@ exports.default = (0, FixedSizeContainer_1.default)(exports.MissingPropsMessage)
1481
1705
  Object.defineProperty(exports, "__esModule", {
1482
1706
  value: true
1483
1707
  });
1708
+
1484
1709
  var React = __webpack_require__(1);
1710
+
1485
1711
  var styled_components_1 = __webpack_require__(4);
1712
+
1486
1713
  var hocUtils_1 = __webpack_require__(15);
1714
+
1487
1715
  var Cover = styled_components_1.default.div.withConfig({
1488
1716
  displayName: "withEditModeCover__Cover",
1489
1717
  componentId: "sc-1gsbnxb-0"
1490
1718
  })(["position:absolute;left:0;right:0;top:0;bottom:0;"]);
1491
1719
  var Blocker = styled_components_1.default.div.attrs({
1492
- 'data-splunk-visualization-version': "26.0.0 - 2f7458907"
1720
+ 'data-splunk-visualization-version': "26.1.1 - b6df0a015"
1493
1721
  }).withConfig({
1494
1722
  displayName: "withEditModeCover__Blocker",
1495
1723
  componentId: "sc-1gsbnxb-1"
@@ -1500,6 +1728,7 @@ var Blocker = styled_components_1.default.div.attrs({
1500
1728
  * @param {ExtendedDashViz} Visualization
1501
1729
  * @returns {ExtendedDashViz} Wrapper
1502
1730
  */
1731
+
1503
1732
  var withEditModeCover = function withEditModeCover(Visualization, disableEditModeCover) {
1504
1733
  var Wrapper = function Wrapper(props) {
1505
1734
  var mode = props.mode;
@@ -1508,12 +1737,14 @@ var withEditModeCover = function withEditModeCover(Visualization, disableEditMod
1508
1737
  "data-test": "edit-mode-cover"
1509
1738
  }));
1510
1739
  };
1740
+
1511
1741
  (0, hocUtils_1.extendStaticWrapperProps)({
1512
1742
  Wrapper: Wrapper,
1513
1743
  Visualization: Visualization
1514
1744
  });
1515
1745
  return Wrapper;
1516
1746
  };
1747
+
1517
1748
  exports.default = withEditModeCover;
1518
1749
 
1519
1750
  /***/ }),
@@ -1527,6 +1758,7 @@ exports.default = withEditModeCover;
1527
1758
  var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
1528
1759
  if (k2 === undefined) k2 = k;
1529
1760
  var desc = Object.getOwnPropertyDescriptor(m, k);
1761
+
1530
1762
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
1531
1763
  desc = {
1532
1764
  enumerable: true,
@@ -1535,22 +1767,28 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
1535
1767
  }
1536
1768
  };
1537
1769
  }
1770
+
1538
1771
  Object.defineProperty(o, k2, desc);
1539
1772
  } : function (o, m, k, k2) {
1540
1773
  if (k2 === undefined) k2 = k;
1541
1774
  o[k2] = m[k];
1542
1775
  });
1776
+
1543
1777
  var __exportStar = this && this.__exportStar || function (m, exports) {
1544
1778
  for (var p in m) {
1545
1779
  if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1546
1780
  }
1547
1781
  };
1782
+
1548
1783
  Object.defineProperty(exports, "__esModule", {
1549
1784
  value: true
1550
1785
  });
1551
1786
  exports.default = void 0;
1552
- __exportStar(__webpack_require__(167), exports);
1553
- var Scatter_1 = __webpack_require__(167);
1787
+
1788
+ __exportStar(__webpack_require__(168), exports);
1789
+
1790
+ var Scatter_1 = __webpack_require__(168);
1791
+
1554
1792
  Object.defineProperty(exports, "default", {
1555
1793
  enumerable: true,
1556
1794
  get: function get() {
@@ -1567,32 +1805,48 @@ Object.defineProperty(exports, "default", {
1567
1805
 
1568
1806
 
1569
1807
  var _toConsumableArray = __webpack_require__(8);
1808
+
1570
1809
  Object.defineProperty(exports, "__esModule", {
1571
1810
  value: true
1572
1811
  });
1573
1812
  exports.optionsSchema = void 0;
1813
+
1574
1814
  var visualization_icons_1 = __webpack_require__(52);
1815
+
1575
1816
  var placeholders_1 = __webpack_require__(50);
1817
+
1576
1818
  var pick_1 = __webpack_require__(23);
1819
+
1577
1820
  var variables_1 = __webpack_require__(11);
1821
+
1578
1822
  var schemaUtils_1 = __webpack_require__(16);
1823
+
1579
1824
  var visualization_color_palettes_1 = __webpack_require__(51);
1825
+
1580
1826
  var i18n_1 = __webpack_require__(2);
1827
+
1581
1828
  var VizBehavior_1 = __webpack_require__(6);
1582
- var VizCategory_1 = __webpack_require__(35);
1829
+
1830
+ var VizCategory_1 = __webpack_require__(36);
1831
+
1583
1832
  var configUtils_1 = __webpack_require__(20);
1833
+
1584
1834
  var AxesChartDataConfig_1 = __webpack_require__(74);
1835
+
1585
1836
  var AxesChartXGridAndLabels_1 = __webpack_require__(77);
1837
+
1586
1838
  var AxesChartColorAndStyle_1 = __webpack_require__(75);
1839
+
1587
1840
  var AxesChartLegend_1 = __webpack_require__(76);
1841
+
1588
1842
  var AxesChartYGridAndLabels_1 = __webpack_require__(78);
1843
+
1589
1844
  var dataContract = {
1590
1845
  requiredDataSources: [{
1591
1846
  name: 'primary',
1592
1847
  description: 'DataSource that powers the visualization'
1593
1848
  }],
1594
- optionalDataSources: [
1595
- // Note: SCP-14090 disable ui for optional datasources. We may need to add it back later
1849
+ optionalDataSources: [// Note: SCP-14090 disable ui for optional datasources. We may need to add it back later
1596
1850
  // {
1597
1851
  // name: 'annotation',
1598
1852
  // description: 'DataSource that populates event annotations',
@@ -1929,16 +2183,19 @@ var editorConfig = [AxesChartDataConfig_1.AxesChartDataConfigScatter, {
1929
2183
  /**
1930
2184
  * visualization configuration
1931
2185
  */
2186
+
1932
2187
  var config = {
1933
2188
  /**
1934
2189
  * unique viz key
1935
2190
  */
1936
2191
  key: 'splunk.scatter',
2192
+
1937
2193
  /**
1938
2194
  * viz name
1939
2195
  */
1940
2196
  name: (0, i18n_1._)('Scatter'),
1941
2197
  category: VizCategory_1.VizCategory.CORRELATION,
2198
+
1942
2199
  /**
1943
2200
  * viz icon
1944
2201
  */
@@ -1974,10 +2231,14 @@ Object.defineProperty(exports, "__esModule", {
1974
2231
  value: true
1975
2232
  });
1976
2233
  exports.convertToScatterSCProperties = exports.mapToOldKey = exports.convertToStringValues = exports.scatterOptionValuesSCMapping = void 0;
2234
+
1977
2235
  var lodash_1 = __webpack_require__(3);
2236
+
1978
2237
  var propUtils_1 = __webpack_require__(29);
1979
- var chartingUtils_1 = __webpack_require__(56);
1980
- // map for key names which are either new or not present in SimpleXML options mapping
2238
+
2239
+ var chartingUtils_1 = __webpack_require__(57); // map for key names which are either new or not present in SimpleXML options mapping
2240
+
2241
+
1981
2242
  var scatterOptionsSCMapping = {
1982
2243
  xAxisLabelRotation: 'xAxisMajorLabelRotation',
1983
2244
  xAxisLabelVisibility: 'xAxisMajorLabelVisibility',
@@ -2001,8 +2262,8 @@ var scatterOptionsSCMapping = {
2001
2262
  bubbleSizeMax: 'bubbleMaxSize',
2002
2263
  bubbleSizeMin: 'bubbleMinSize',
2003
2264
  bubbleSizeMethod: 'bubbleSizeBy'
2004
- };
2005
- // key value mapping of what options (and their corresponding values) which we expose in config.ts to property values SC understands
2265
+ }; // key value mapping of what options (and their corresponding values) which we expose in config.ts to property values SC understands
2266
+
2006
2267
  exports.scatterOptionValuesSCMapping = {
2007
2268
  xAxisTitleVisibility: {
2008
2269
  hide: 'collapsed'
@@ -2027,6 +2288,7 @@ exports.scatterOptionValuesSCMapping = {
2027
2288
  * @param {Object} options
2028
2289
  * @returns {Object}
2029
2290
  */
2291
+
2030
2292
  var convertToStringValues = function convertToStringValues(options) {
2031
2293
  var updatedOptions = (0, propUtils_1.convertPropsToString)({
2032
2294
  vizProps: options,
@@ -2034,6 +2296,7 @@ var convertToStringValues = function convertToStringValues(options) {
2034
2296
  });
2035
2297
  return Object.assign(Object.assign({}, options), updatedOptions);
2036
2298
  };
2299
+
2037
2300
  exports.convertToStringValues = convertToStringValues;
2038
2301
  /**
2039
2302
  * Helper method to update the option names which can be mapped to SimpleXML options or
@@ -2042,11 +2305,13 @@ exports.convertToStringValues = convertToStringValues;
2042
2305
  * @param {Object} options
2043
2306
  * @returns {Object}
2044
2307
  */
2308
+
2045
2309
  var mapToOldKey = function mapToOldKey(options) {
2046
2310
  return (0, lodash_1.mapKeys)(options, function (val, key) {
2047
2311
  return scatterOptionsSCMapping[key] ? scatterOptionsSCMapping[key] : key;
2048
2312
  });
2049
2313
  };
2314
+
2050
2315
  exports.mapToOldKey = mapToOldKey;
2051
2316
  /**
2052
2317
  * Chained helper for mapping the option properties (and values) we expose in config.ts into property values that splunk-charting accepts
@@ -2056,9 +2321,11 @@ exports.mapToOldKey = mapToOldKey;
2056
2321
  * @param {Object} originalOptions
2057
2322
  * @returns {Object}
2058
2323
  */
2324
+
2059
2325
  var convertToScatterSCProperties = function convertToScatterSCProperties(originalOptions) {
2060
2326
  return (0, lodash_1.chain)((0, exports.mapToOldKey)(originalOptions)).thru((0, chartingUtils_1.mapToValues)(exports.scatterOptionValuesSCMapping)).thru(exports.convertToStringValues).value();
2061
2327
  };
2328
+
2062
2329
  exports.convertToScatterSCProperties = convertToScatterSCProperties;
2063
2330
 
2064
2331
  /***/ }),
@@ -2072,27 +2339,37 @@ exports.convertToScatterSCProperties = convertToScatterSCProperties;
2072
2339
  Object.defineProperty(exports, "__esModule", {
2073
2340
  value: true
2074
2341
  });
2342
+
2075
2343
  var React = __webpack_require__(1);
2344
+
2076
2345
  var colorUtils_1 = __webpack_require__(12);
2346
+
2077
2347
  var variables_1 = __webpack_require__(11);
2348
+
2078
2349
  var IconPlaceholder_1 = __webpack_require__(32);
2350
+
2079
2351
  var VizBehavior_1 = __webpack_require__(6);
2352
+
2080
2353
  var hocUtils_1 = __webpack_require__(15);
2354
+
2081
2355
  var withPlaceholder = function withPlaceholder(Visualization) {
2082
2356
  var useIconPlaceholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IconPlaceholder_1.shouldShowIconPlaceholder;
2083
2357
  var config = Visualization.config;
2084
2358
  var themes = config.themes;
2359
+
2085
2360
  var Wrapper = function Wrapper(props) {
2086
2361
  var _a, _b;
2362
+
2087
2363
  var dataSources = props.dataSources,
2088
- loading = props.loading,
2089
- options = props.options,
2090
- height = props.height,
2091
- width = props.width;
2364
+ loading = props.loading,
2365
+ options = props.options,
2366
+ height = props.height,
2367
+ width = props.width;
2092
2368
  var showPlaceholder = useIconPlaceholder(dataSources, loading, options);
2093
2369
  var bgColorFromTheme = (0, colorUtils_1.isColor)(options === null || options === void 0 ? void 0 : options.backgroundColor) ? options === null || options === void 0 ? void 0 : options.backgroundColor : (_a = themes === null || themes === void 0 ? void 0 : themes.defaultBackgroundColor) === null || _a === void 0 ? void 0 : _a.call(themes, props);
2094
2370
  var icon = (_b = config.placeholderIcon) !== null && _b !== void 0 ? _b : config.icon;
2095
2371
  var iconColor = variables_1.default.contentColorActive(props);
2372
+
2096
2373
  if (config.supports.includes(VizBehavior_1.VizBehavior.PLACEHOLDER) && showPlaceholder) {
2097
2374
  return React.createElement(IconPlaceholder_1.default, {
2098
2375
  "data-test": "icon-placeholder",
@@ -2103,14 +2380,17 @@ var withPlaceholder = function withPlaceholder(Visualization) {
2103
2380
  iconColor: iconColor
2104
2381
  });
2105
2382
  }
2383
+
2106
2384
  return React.createElement(Visualization, Object.assign({}, props));
2107
2385
  };
2386
+
2108
2387
  (0, hocUtils_1.extendStaticWrapperProps)({
2109
2388
  Wrapper: Wrapper,
2110
2389
  Visualization: Visualization
2111
2390
  });
2112
2391
  return Wrapper;
2113
2392
  };
2393
+
2114
2394
  exports.default = withPlaceholder;
2115
2395
 
2116
2396
  /***/ }),
@@ -2145,11 +2425,13 @@ module.exports = require("@splunk/visualization-icons");
2145
2425
  Object.defineProperty(exports, "__esModule", {
2146
2426
  value: true
2147
2427
  });
2428
+
2148
2429
  var i18n_1 = __webpack_require__(2);
2430
+
2149
2431
  var background = function background(_ref) {
2150
2432
  var label = _ref.label,
2151
- themes = _ref.themes,
2152
- labelPosition = _ref.labelPosition;
2433
+ themes = _ref.themes,
2434
+ labelPosition = _ref.labelPosition;
2153
2435
  return [{
2154
2436
  label: (0, i18n_1._)(label || 'Background'),
2155
2437
  option: 'backgroundColor',
@@ -2160,6 +2442,7 @@ var background = function background(_ref) {
2160
2442
  }
2161
2443
  }];
2162
2444
  };
2445
+
2163
2446
  exports.default = background;
2164
2447
 
2165
2448
  /***/ }),
@@ -2172,26 +2455,38 @@ module.exports = require("@splunk/charting-bundle");
2172
2455
  /***/ }),
2173
2456
 
2174
2457
  /***/ 56:
2458
+ /***/ (function(module, exports) {
2459
+
2460
+ module.exports = require("@splunk/themes/useSplunkTheme");
2461
+
2462
+ /***/ }),
2463
+
2464
+ /***/ 57:
2175
2465
  /***/ (function(module, exports, __webpack_require__) {
2176
2466
 
2177
2467
  "use strict";
2178
2468
 
2179
2469
 
2180
2470
  var _toConsumableArray = __webpack_require__(8);
2471
+
2181
2472
  var __rest = this && this.__rest || function (s, e) {
2182
2473
  var t = {};
2474
+
2183
2475
  for (var p in s) {
2184
2476
  if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
2185
2477
  }
2478
+
2186
2479
  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
2187
2480
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
2188
2481
  }
2189
2482
  return t;
2190
2483
  };
2484
+
2191
2485
  Object.defineProperty(exports, "__esModule", {
2192
2486
  value: true
2193
2487
  });
2194
2488
  exports.constructFieldsAndColumns = exports.toArrayForSeries = exports.isMultiSeriesData = exports.convertOverlayFields = exports.convertY2AxisOptions = exports.mapToValues = exports.truncateData = exports.getAnnotations = void 0;
2489
+
2195
2490
  var lodash_1 = __webpack_require__(3);
2196
2491
  /**
2197
2492
  * Get formatted annotations
@@ -2202,10 +2497,12 @@ var lodash_1 = __webpack_require__(3);
2202
2497
  * @param {Array} options.annotationLabel
2203
2498
  * @returns {Array}
2204
2499
  */
2500
+
2501
+
2205
2502
  var getAnnotations = function getAnnotations(_ref) {
2206
2503
  var annotationX = _ref.annotationX,
2207
- annotationColor = _ref.annotationColor,
2208
- annotationLabel = _ref.annotationLabel;
2504
+ annotationColor = _ref.annotationColor,
2505
+ annotationLabel = _ref.annotationLabel;
2209
2506
  return annotationX && annotationX.length ? annotationX.map(function (timestamp, i) {
2210
2507
  return {
2211
2508
  color: annotationColor && annotationColor[i],
@@ -2214,6 +2511,7 @@ var getAnnotations = function getAnnotations(_ref) {
2214
2511
  };
2215
2512
  }) : [];
2216
2513
  };
2514
+
2217
2515
  exports.getAnnotations = getAnnotations;
2218
2516
  /**
2219
2517
  * Truncate the result set to given limit
@@ -2222,20 +2520,25 @@ exports.getAnnotations = getAnnotations;
2222
2520
  * @param {Number|String} truncationLimit - options['chart.resultTruncationLimit']
2223
2521
  * @returns {Object}
2224
2522
  */
2523
+
2225
2524
  var truncateData = function truncateData(dataSet, truncationLimit) {
2226
2525
  if (!dataSet) {
2227
2526
  return null;
2228
2527
  }
2528
+
2229
2529
  var limit = parseInt(truncationLimit, 10);
2530
+
2230
2531
  if (!limit || limit <= 0) {
2231
2532
  return dataSet;
2232
2533
  }
2534
+
2233
2535
  var truncatedData = Object.assign({}, dataSet);
2234
2536
  truncatedData.columns = truncatedData.columns.map(function (columnData) {
2235
2537
  return columnData && Array.isArray(columnData) ? columnData.slice(0, limit) : columnData;
2236
2538
  });
2237
2539
  return truncatedData;
2238
2540
  };
2541
+
2239
2542
  exports.truncateData = truncateData;
2240
2543
  /**
2241
2544
  * Helper method to update the option values into the values that SC accepts
@@ -2243,12 +2546,14 @@ exports.truncateData = truncateData;
2243
2546
  * @param {Object} options
2244
2547
  * @returns {Object}
2245
2548
  */
2549
+
2246
2550
  var mapToValues = function mapToValues(optionValuesSCMapping) {
2247
2551
  return function (options) {
2248
2552
  var convertedOptions = Object.assign({}, options);
2249
2553
  Object.keys(optionValuesSCMapping).forEach(function (key) {
2250
2554
  if ((0, lodash_1.has)(options, key)) {
2251
2555
  var updatedValue = optionValuesSCMapping[key][options[key]];
2556
+
2252
2557
  if (!(0, lodash_1.isUndefined)(updatedValue)) {
2253
2558
  convertedOptions[key] = updatedValue;
2254
2559
  }
@@ -2257,6 +2562,7 @@ var mapToValues = function mapToValues(optionValuesSCMapping) {
2257
2562
  return convertedOptions;
2258
2563
  };
2259
2564
  };
2565
+
2260
2566
  exports.mapToValues = mapToValues;
2261
2567
  /**
2262
2568
  * Helper method to process options related to y2Fields
@@ -2264,18 +2570,23 @@ exports.mapToValues = mapToValues;
2264
2570
  * @param {Object} originalOptions
2265
2571
  * @returns {Object}
2266
2572
  */
2573
+
2267
2574
  var convertY2AxisOptions = function convertY2AxisOptions(_a) {
2268
2575
  var y2Fields = _a.y2Fields,
2269
- originalOptions = __rest(_a, ["y2Fields"]);
2576
+ originalOptions = __rest(_a, ["y2Fields"]);
2577
+
2270
2578
  var convertedOptions = Object.assign({}, originalOptions);
2579
+
2271
2580
  if (y2Fields) {
2272
2581
  convertedOptions['axisY2.enabled'] = true;
2273
2582
  convertedOptions['axisY2.fields'] = (0, lodash_1.isArray)(y2Fields) ? y2Fields.filter(function (name) {
2274
2583
  return name;
2275
2584
  }).join(',') : y2Fields;
2276
2585
  }
2586
+
2277
2587
  return convertedOptions;
2278
2588
  };
2589
+
2279
2590
  exports.convertY2AxisOptions = convertY2AxisOptions;
2280
2591
  /**
2281
2592
  * Helper method to format value for overlayFields
@@ -2283,9 +2594,11 @@ exports.convertY2AxisOptions = convertY2AxisOptions;
2283
2594
  * @param {Object} originalOptions
2284
2595
  * @returns {Object}
2285
2596
  */
2597
+
2286
2598
  var convertOverlayFields = function convertOverlayFields(originalOptions) {
2287
2599
  var convertedOptions = Object.assign({}, originalOptions);
2288
2600
  var overlayFields = originalOptions.overlayFields;
2601
+
2289
2602
  if (overlayFields) {
2290
2603
  convertedOptions.overlayFields = Array.isArray(overlayFields) ? overlayFields.filter(function (field) {
2291
2604
  return field;
@@ -2293,17 +2606,21 @@ var convertOverlayFields = function convertOverlayFields(originalOptions) {
2293
2606
  return field.trim();
2294
2607
  }).join(',') : overlayFields;
2295
2608
  }
2609
+
2296
2610
  return convertedOptions;
2297
2611
  };
2612
+
2298
2613
  exports.convertOverlayFields = convertOverlayFields;
2299
2614
  /**
2300
2615
  * checks whether data is multi series data
2301
2616
  * @param {array} data array
2302
2617
  * @return {Boolean}
2303
2618
  */
2619
+
2304
2620
  var isMultiSeriesData = function isMultiSeriesData(data) {
2305
2621
  return Array.isArray(data) && Array.isArray(data[0]);
2306
2622
  };
2623
+
2307
2624
  exports.isMultiSeriesData = isMultiSeriesData;
2308
2625
  /**
2309
2626
  * checks whether data is multi series data and returns value as array
@@ -2311,19 +2628,22 @@ exports.isMultiSeriesData = isMultiSeriesData;
2311
2628
  * @param {*} value to return as array
2312
2629
  * @return {array}
2313
2630
  */
2631
+
2314
2632
  var toArrayForSeries = function toArrayForSeries(data, value) {
2315
2633
  return (0, exports.isMultiSeriesData)(data) ? value : [value];
2316
2634
  };
2635
+
2317
2636
  exports.toArrayForSeries = toArrayForSeries;
2637
+
2318
2638
  var constructFieldsAndColumns = function constructFieldsAndColumns(_ref2) {
2319
2639
  var _ref2$x = _ref2.x,
2320
- x = _ref2$x === void 0 ? [] : _ref2$x,
2321
- _ref2$y = _ref2.y,
2322
- y = _ref2$y === void 0 ? [] : _ref2$y,
2323
- xField = _ref2.xField,
2324
- yFields = _ref2.yFields,
2325
- y2 = _ref2.y2,
2326
- y2Fields = _ref2.y2Fields;
2640
+ x = _ref2$x === void 0 ? [] : _ref2$x,
2641
+ _ref2$y = _ref2.y,
2642
+ y = _ref2$y === void 0 ? [] : _ref2$y,
2643
+ xField = _ref2.xField,
2644
+ yFields = _ref2.yFields,
2645
+ y2 = _ref2.y2,
2646
+ y2Fields = _ref2.y2Fields;
2327
2647
  var columns = [x.map(String)].concat(_toConsumableArray((0, exports.toArrayForSeries)(y, y).map(function (series) {
2328
2648
  return series.map(String);
2329
2649
  })));
@@ -2334,10 +2654,10 @@ var constructFieldsAndColumns = function constructFieldsAndColumns(_ref2) {
2334
2654
  return {
2335
2655
  name: field
2336
2656
  };
2337
- })));
2338
- // splunk-charting requires y2 to be part of columns
2657
+ }))); // splunk-charting requires y2 to be part of columns
2339
2658
  // when y & y2 options are configured with different (mutually exclusive) series
2340
2659
  // y2 columns need to be added to columns
2660
+
2341
2661
  if (y2Fields) {
2342
2662
  var y2FieldsArray = (0, exports.toArrayForSeries)(y2, y2Fields);
2343
2663
  var y2AsArray = (0, exports.toArrayForSeries)(y2, y2).map(function (series) {
@@ -2352,19 +2672,14 @@ var constructFieldsAndColumns = function constructFieldsAndColumns(_ref2) {
2352
2672
  }
2353
2673
  });
2354
2674
  }
2675
+
2355
2676
  return {
2356
2677
  columns: columns,
2357
2678
  fields: fields
2358
2679
  };
2359
2680
  };
2360
- exports.constructFieldsAndColumns = constructFieldsAndColumns;
2361
-
2362
- /***/ }),
2363
2681
 
2364
- /***/ 57:
2365
- /***/ (function(module, exports) {
2366
-
2367
- module.exports = require("@splunk/themes/useSplunkTheme");
2682
+ exports.constructFieldsAndColumns = constructFieldsAndColumns;
2368
2683
 
2369
2684
  /***/ }),
2370
2685
 
@@ -2379,6 +2694,7 @@ Object.defineProperty(exports, "__esModule", {
2379
2694
  });
2380
2695
  exports.VizBehavior = void 0;
2381
2696
  var VizBehavior;
2697
+
2382
2698
  (function (VizBehavior) {
2383
2699
  /**
2384
2700
  * Dynamic Options Behavior.
@@ -2398,6 +2714,7 @@ var VizBehavior;
2398
2714
  * missing.
2399
2715
  * @type {string}
2400
2716
  */
2717
+
2401
2718
  VizBehavior["PLACEHOLDER"] = "placeholder";
2402
2719
  VizBehavior["PAGE_AND_SORT"] = "page-and-sort";
2403
2720
  VizBehavior["TRELLIS"] = "trellis";
@@ -2416,23 +2733,42 @@ Object.defineProperty(exports, "__esModule", {
2416
2733
  });
2417
2734
  exports.updateRowPayload = exports.canUpdateInPlace = exports.changedOptions = exports.NO_INPLACE_PROPS = void 0;
2418
2735
  /* eslint-disable react/no-unused-prop-types */
2736
+
2419
2737
  var lodash_1 = __webpack_require__(3);
2738
+
2420
2739
  var i18n_1 = __webpack_require__(2);
2740
+
2421
2741
  var visualization_color_palettes_1 = __webpack_require__(51);
2742
+
2422
2743
  var react_1 = __webpack_require__(1);
2744
+
2423
2745
  var React = __webpack_require__(1);
2746
+
2424
2747
  var T = __webpack_require__(0);
2748
+
2425
2749
  var react_event_listener_1 = __webpack_require__(66);
2750
+
2426
2751
  __webpack_require__(67); // fixme, @splunk/charting should be refactor to use locale & timezone instead of i18n functions
2752
+
2753
+
2427
2754
  var charting_bundle_1 = __webpack_require__(55);
2755
+
2428
2756
  var TimezoneContext_1 = __webpack_require__(26);
2757
+
2429
2758
  var style_1 = __webpack_require__(14);
2759
+
2430
2760
  var styled_components_1 = __webpack_require__(4);
2761
+
2431
2762
  var Message_1 = __webpack_require__(10);
2432
- var useSplunkTheme_1 = __webpack_require__(57);
2763
+
2764
+ var useSplunkTheme_1 = __webpack_require__(56);
2765
+
2433
2766
  var themeUtils_1 = __webpack_require__(68);
2767
+
2434
2768
  var ChartingApi_1 = __webpack_require__(69);
2769
+
2435
2770
  exports.NO_INPLACE_PROPS = ['chart', 'chart.orientation', 'layout.splitSeries', 'chart.style', 'legend.placement'];
2771
+
2436
2772
  var changedOptions = function changedOptions(curOptions, nextOptions) {
2437
2773
  return Object.keys(curOptions).filter(function (key) {
2438
2774
  return !(key in nextOptions);
@@ -2440,7 +2776,9 @@ var changedOptions = function changedOptions(curOptions, nextOptions) {
2440
2776
  return !(key in curOptions) || curOptions[key] !== nextOptions[key];
2441
2777
  }));
2442
2778
  };
2779
+
2443
2780
  exports.changedOptions = changedOptions;
2781
+
2444
2782
  function usePrevious(value) {
2445
2783
  var ref = (0, react_1.useRef)();
2446
2784
  (0, react_1.useEffect)(function () {
@@ -2448,21 +2786,24 @@ function usePrevious(value) {
2448
2786
  });
2449
2787
  return ref.current;
2450
2788
  }
2789
+
2451
2790
  var canUpdateInPlace = function canUpdateInPlace(curOptions, nextOptions) {
2452
2791
  // if either of the options are undefined
2453
2792
  // it cannot update in place.
2454
2793
  if (!curOptions || !nextOptions) {
2455
2794
  return false;
2456
2795
  }
2796
+
2457
2797
  return !exports.NO_INPLACE_PROPS.some(function (p) {
2458
2798
  return curOptions[p] !== nextOptions[p];
2459
2799
  }) && !(0, exports.changedOptions)(curOptions, nextOptions).some(function (p) {
2460
2800
  return p.toLowerCase().endsWith('color');
2461
2801
  });
2462
2802
  };
2463
- exports.canUpdateInPlace = canUpdateInPlace;
2464
- // create 'row' payloads from 'rowContext' in the flattened format:
2803
+
2804
+ exports.canUpdateInPlace = canUpdateInPlace; // create 'row' payloads from 'rowContext' in the flattened format:
2465
2805
  // row.<fieldname>.value
2806
+
2466
2807
  var updateRowPayload = function updateRowPayload(chartEventRowContext, payload) {
2467
2808
  Object.keys(chartEventRowContext || {}).forEach(function (key) {
2468
2809
  // eslint-disable-next-line no-param-reassign
@@ -2470,18 +2811,21 @@ var updateRowPayload = function updateRowPayload(chartEventRowContext, payload)
2470
2811
  });
2471
2812
  return payload;
2472
2813
  };
2814
+
2473
2815
  exports.updateRowPayload = updateRowPayload;
2474
2816
  var VizChartEventType;
2817
+
2475
2818
  (function (VizChartEventType) {
2476
2819
  VizChartEventType["POINT_CLICK"] = "point.click";
2477
2820
  VizChartEventType["POINT_MOUSE_OUT"] = "point.mouseout";
2478
2821
  VizChartEventType["POINT_MOUSE_OVER"] = "point.mouseover";
2479
2822
  VizChartEventType["LEGEND_CLICK"] = "legend.click";
2480
- })(VizChartEventType || (VizChartEventType = {}));
2481
- // @TODO(pwied): remove after HC upgrade to 8+
2823
+ })(VizChartEventType || (VizChartEventType = {})); // @TODO(pwied): remove after HC upgrade to 8+
2482
2824
  // .highcharts-a11y-proxy-container rule addresses a HighCharts < 8 bug
2483
2825
  // caused by the accessibility plugin
2484
2826
  // https://github.com/highcharts/highcharts/issues/12883
2827
+
2828
+
2485
2829
  var ChartingContainer = styled_components_1.default.div.attrs(function (props) {
2486
2830
  return {
2487
2831
  'data-test': 'charting-container',
@@ -2509,6 +2853,7 @@ var propTypes = {
2509
2853
  visualizationApiRef: T.func,
2510
2854
  themeKey: T.string
2511
2855
  };
2856
+
2512
2857
  var Charting = function Charting(props) {
2513
2858
  var container = (0, react_1.useRef)(null);
2514
2859
  var needsInit = (0, react_1.useRef)(true);
@@ -2516,6 +2861,7 @@ var Charting = function Charting(props) {
2516
2861
  var needsRedraw = (0, react_1.useRef)(true);
2517
2862
  var api = (0, react_1.useRef)(new ChartingApi_1.ChartingApiFunctional(chart));
2518
2863
  var timezone = (0, react_1.useContext)(TimezoneContext_1.default);
2864
+
2519
2865
  var computeChartingSize = function computeChartingSize() {
2520
2866
  if (container.current) {
2521
2867
  var rect = container.current.getBoundingClientRect();
@@ -2524,48 +2870,56 @@ var Charting = function Charting(props) {
2524
2870
  width: rect.width
2525
2871
  };
2526
2872
  }
2873
+
2527
2874
  return {};
2528
2875
  };
2876
+
2529
2877
  var splunkTheme = (0, useSplunkTheme_1.default)();
2530
2878
  var themeKey = props.themeKey ? props.themeKey : (0, themeUtils_1.getChartingThemeKey)({
2531
2879
  splunkThemeV1: splunkTheme
2532
2880
  });
2533
2881
  var width = props.width,
2534
- height = props.height,
2535
- style = props.style,
2536
- chartData = props.chartData,
2537
- options = props.options,
2538
- colorPalette = props.colorPalette,
2539
- onClick = props.onClick,
2540
- onSelect = props.onSelect,
2541
- onPointMouseOut = props.onPointMouseOut,
2542
- onPointMouseOver = props.onPointMouseOver,
2543
- onEventTrigger = props.onEventTrigger;
2882
+ height = props.height,
2883
+ style = props.style,
2884
+ chartData = props.chartData,
2885
+ options = props.options,
2886
+ colorPalette = props.colorPalette,
2887
+ onClick = props.onClick,
2888
+ onSelect = props.onSelect,
2889
+ onPointMouseOut = props.onPointMouseOut,
2890
+ onPointMouseOver = props.onPointMouseOver,
2891
+ onEventTrigger = props.onEventTrigger;
2544
2892
  var prevOptions = usePrevious(options);
2545
2893
  var prevTimezone = usePrevious(timezone);
2894
+
2546
2895
  var handleClick = function handleClick(chartEvent, type) {
2547
2896
  var payload = (0, lodash_1.pick)(chartEvent, 'name2', 'value2', '_span', 'modifierKey');
2548
2897
  payload.name = payload.name2;
2549
2898
  delete payload.name2;
2899
+
2550
2900
  if (type === VizChartEventType.POINT_CLICK) {
2551
2901
  payload.value = payload.value2;
2552
2902
  delete payload.value2;
2553
2903
  payload = (0, exports.updateRowPayload)(chartEvent.rowContext, payload);
2554
2904
  }
2905
+
2555
2906
  onClick({
2556
2907
  type: type,
2557
2908
  originalEvent: chartEvent,
2558
2909
  payload: payload
2559
2910
  });
2560
2911
  };
2912
+
2561
2913
  var destroyChart = function destroyChart() {
2562
2914
  if (chart.current) {
2563
2915
  chart.current.destroy();
2564
2916
  chart.current = null;
2565
2917
  }
2918
+
2566
2919
  needsRedraw.current = true;
2567
2920
  needsInit.current = true;
2568
2921
  };
2922
+
2569
2923
  var handleSelect = function handleSelect(chartEvent) {
2570
2924
  // todo: need change this after breaking all visualizations
2571
2925
  if (onSelect && typeof onSelect === 'function') {
@@ -2575,14 +2929,16 @@ var Charting = function Charting(props) {
2575
2929
  payload: (0, lodash_1.pick)(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue')
2576
2930
  });
2577
2931
  return;
2578
- }
2579
- // the chartEvent here is a jQuery event
2932
+ } // the chartEvent here is a jQuery event
2933
+
2934
+
2580
2935
  onEventTrigger({
2581
2936
  type: 'range.select',
2582
2937
  originalEvent: chartEvent,
2583
2938
  payload: (0, lodash_1.pick)(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue')
2584
2939
  });
2585
2940
  };
2941
+
2586
2942
  var handlePointMouseOut = function handlePointMouseOut(chartEvent, type) {
2587
2943
  var payload = (0, lodash_1.pick)(chartEvent, 'name2', 'value2', '_span', 'modifierKey', 'tooltipContext');
2588
2944
  payload.name = payload.name2;
@@ -2596,6 +2952,7 @@ var Charting = function Charting(props) {
2596
2952
  payload: payload
2597
2953
  });
2598
2954
  };
2955
+
2599
2956
  var handlePointMouseOver = function handlePointMouseOver(chartEvent, type) {
2600
2957
  var payload = (0, lodash_1.pick)(chartEvent, 'name2', 'value2', '_span', 'modifierKey', 'tooltipContext');
2601
2958
  payload.name = payload.name2;
@@ -2609,6 +2966,7 @@ var Charting = function Charting(props) {
2609
2966
  payload: payload
2610
2967
  });
2611
2968
  };
2969
+
2612
2970
  var drawChart = function drawChart() {
2613
2971
  var updatedOptions = Object.assign(Object.assign({}, options), {
2614
2972
  shouldColorizeTooltipData: false
@@ -2619,15 +2977,18 @@ var Charting = function Charting(props) {
2619
2977
  var serializedTimezone = timezone === null || timezone === void 0 ? void 0 : timezone.serializedTimezone;
2620
2978
  var ianaTimezone = timezone === null || timezone === void 0 ? void 0 : timezone.ianaTimezone;
2621
2979
  var utcOffset = timezone === null || timezone === void 0 ? void 0 : timezone.utcOffset;
2980
+
2622
2981
  if (!computedWidth || !computedHeight) {
2623
2982
  return;
2624
2983
  }
2984
+
2625
2985
  if (!chartData || !Object.keys(chartData).length) {
2626
2986
  return;
2627
- }
2628
- // splunk-charting layers configuration option updates.
2987
+ } // splunk-charting layers configuration option updates.
2629
2988
  // when an option is removed it needs to be set to an empty string
2630
2989
  // to override the previous configuration
2990
+
2991
+
2631
2992
  if (prevOptions) {
2632
2993
  Object.keys(prevOptions).forEach(function (key) {
2633
2994
  if (updatedOptions[key] === undefined) {
@@ -2635,13 +2996,16 @@ var Charting = function Charting(props) {
2635
2996
  }
2636
2997
  });
2637
2998
  }
2999
+
2638
3000
  try {
2639
3001
  if (needsInit.current) {
2640
3002
  destroyChart();
2641
3003
  charting_bundle_1.default.setTheme(themeKey);
3004
+
2642
3005
  if (colorPalette.length > 0) {
2643
3006
  charting_bundle_1.default.setColorPalette(colorPalette);
2644
3007
  }
3008
+
2645
3009
  chart.current = charting_bundle_1.default.createChart(container.current, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, updatedOptions), {
2646
3010
  drilldown: 'all'
2647
3011
  }), typeof serializedTimezone === 'string' && {
@@ -2650,8 +3014,8 @@ var Charting = function Charting(props) {
2650
3014
  'time.ianaTimezone': ianaTimezone
2651
3015
  }), typeof utcOffset === 'number' && {
2652
3016
  'time.timezoneOffset': utcOffset
2653
- }));
2654
- // bind event handlers
3017
+ })); // bind event handlers
3018
+
2655
3019
  chart.current.on('pointClick', function (e) {
2656
3020
  handleClick(e, VizChartEventType.POINT_CLICK);
2657
3021
  });
@@ -2666,29 +3030,37 @@ var Charting = function Charting(props) {
2666
3030
  });
2667
3031
  chart.current.on('chartRangeSelect', handleSelect);
2668
3032
  }
3033
+
2669
3034
  if (needsRedraw.current) {
2670
3035
  charting_bundle_1.default.setTheme(themeKey);
3036
+
2671
3037
  if (colorPalette.length > 0) {
2672
3038
  charting_bundle_1.default.setColorPalette(colorPalette);
2673
3039
  }
3040
+
2674
3041
  chart.current.prepareAndDraw(chartData, updatedOptions, function () {});
2675
3042
  }
3043
+
2676
3044
  if (chart.current) {
2677
3045
  if (Math.round(chart.current.height) !== Math.round(computedHeight) || Math.round(chart.current.width) !== Math.round(computedWidth)) {
2678
3046
  chart.current.resize(computedWidth, computedHeight);
2679
3047
  }
2680
3048
  }
3049
+
2681
3050
  needsInit.current = false;
2682
3051
  needsRedraw.current = false;
2683
3052
  } catch (e) {
2684
3053
  window.console.error('Caught error rendering chart:', e);
2685
3054
  }
2686
3055
  };
3056
+
2687
3057
  var debouncedDrawChart = (0, lodash_1.debounce)(drawChart, 5);
3058
+
2688
3059
  var onContainerMount = function onContainerMount(chartingContainer) {
2689
3060
  container.current = chartingContainer;
2690
3061
  debouncedDrawChart();
2691
3062
  };
3063
+
2692
3064
  var prevTheme = usePrevious(themeKey);
2693
3065
  var prevOnClick = usePrevious(onClick);
2694
3066
  (0, react_1.useEffect)(function () {
@@ -2702,14 +3074,14 @@ var Charting = function Charting(props) {
2702
3074
  (0, react_1.useEffect)(function () {
2703
3075
  // TODO: figure out why re-init is needed for functional components (i.e. PlatformViz) when changing theme
2704
3076
  // seems like redraw doesn't suffice to update the background colors
2705
- if (!chart.current || !(0, exports.canUpdateInPlace)(prevOptions, options) ||
2706
- // timezone is a simple object so this comparison should be fast
3077
+ if (!chart.current || !(0, exports.canUpdateInPlace)(prevOptions, options) || // timezone is a simple object so this comparison should be fast
2707
3078
  JSON.stringify(prevTimezone) !== JSON.stringify(timezone) || !props.themeKey && prevTheme !== themeKey || prevOnClick !== onClick) {
2708
3079
  needsInit.current = true;
2709
3080
  }
2710
- needsRedraw.current = true;
2711
- // need to immediately call drawChart upon an option or chartData change
3081
+
3082
+ needsRedraw.current = true; // need to immediately call drawChart upon an option or chartData change
2712
3083
  // otherwise a noop would occur if the onContainerMount drawChart is re-invoked when dimensions change
3084
+
2713
3085
  drawChart();
2714
3086
  }, [JSON.stringify(options), JSON.stringify(chartData.toJSON()), JSON.stringify(chartData.annotations), timezone === null || timezone === void 0 ? void 0 : timezone.ianaTimezone, timezone === null || timezone === void 0 ? void 0 : timezone.utcOffset, timezone === null || timezone === void 0 ? void 0 : timezone.serializedTimezone, themeKey, onClick]);
2715
3087
  return React.createElement(ChartingContainer, {
@@ -2722,6 +3094,7 @@ var Charting = function Charting(props) {
2722
3094
  onResize: debouncedDrawChart
2723
3095
  }));
2724
3096
  };
3097
+
2725
3098
  var defaultProps = {
2726
3099
  width: '100%',
2727
3100
  height: 250,
@@ -2739,31 +3112,36 @@ var defaultProps = {
2739
3112
  themeKey: null
2740
3113
  };
2741
3114
  Charting.propTypes = propTypes;
2742
- Charting.defaultProps = defaultProps;
2743
- // allow for early return in case of empty chartData while still following hook rules
3115
+ Charting.defaultProps = defaultProps; // allow for early return in case of empty chartData while still following hook rules
3116
+
2744
3117
  var withEmptyChartMessage = function withEmptyChartMessage(Chart) {
2745
3118
  var Wrapper = function Wrapper(props) {
2746
3119
  var chartData = props.chartData;
3120
+
2747
3121
  if (!chartData) {
2748
3122
  return React.createElement(Message_1.default, {
2749
3123
  message: (0, i18n_1._)('No DataSource'),
2750
3124
  level: "warning"
2751
3125
  });
2752
3126
  }
3127
+
2753
3128
  if (chartData && !Object.keys(chartData).length) {
2754
3129
  return React.createElement(Message_1.default, {
2755
3130
  message: (0, i18n_1._)('No Result'),
2756
3131
  level: "info"
2757
3132
  });
2758
3133
  }
3134
+
2759
3135
  return React.createElement(Chart, Object.assign({}, props));
2760
3136
  };
3137
+
2761
3138
  Wrapper.displayName = 'ChartingWrapper';
2762
3139
  Wrapper.propTypes = propTypes;
2763
3140
  Wrapper.defaultProps = defaultProps;
2764
3141
  return Wrapper;
2765
- };
2766
- // export default Charting;
3142
+ }; // export default Charting;
3143
+
3144
+
2767
3145
  exports.default = withEmptyChartMessage(Charting);
2768
3146
 
2769
3147
  /***/ }),
@@ -2796,15 +3174,19 @@ module.exports = require("@splunk/visualizations-shared/themeUtils");
2796
3174
 
2797
3175
 
2798
3176
  var _classCallCheck = __webpack_require__(9);
3177
+
2799
3178
  var _createClass = __webpack_require__(18);
3179
+
2800
3180
  Object.defineProperty(exports, "__esModule", {
2801
3181
  value: true
2802
3182
  });
2803
3183
  exports.ChartingApiFunctional = void 0;
3184
+
2804
3185
  var ChartingApiFunctional = /*#__PURE__*/function () {
2805
3186
  // eslint-disable-next-line no-useless-constructor
2806
3187
  function ChartingApiFunctional(chartRef) {
2807
3188
  _classCallCheck(this, ChartingApiFunctional);
3189
+
2808
3190
  this.chartRef = chartRef;
2809
3191
  }
2810
3192
  /**
@@ -2812,15 +3194,18 @@ var ChartingApiFunctional = /*#__PURE__*/function () {
2812
3194
  *
2813
3195
  * @memberof ChartingApiFunctional
2814
3196
  */
3197
+
3198
+
2815
3199
  _createClass(ChartingApiFunctional, [{
2816
3200
  key: "highlight",
2817
3201
  value: function highlight() {
2818
3202
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
2819
- xValue: '',
2820
- seriesName: ''
2821
- },
2822
- xValue = _ref.xValue,
2823
- seriesName = _ref.seriesName;
3203
+ xValue: '',
3204
+ seriesName: ''
3205
+ },
3206
+ xValue = _ref.xValue,
3207
+ seriesName = _ref.seriesName;
3208
+
2824
3209
  this.getChart().highlight(xValue, seriesName);
2825
3210
  }
2826
3211
  /**
@@ -2828,21 +3213,25 @@ var ChartingApiFunctional = /*#__PURE__*/function () {
2828
3213
  *
2829
3214
  * @memberof ChartingApiFunctional
2830
3215
  */
3216
+
2831
3217
  }, {
2832
3218
  key: "unHighlight",
2833
3219
  value: function unHighlight() {
2834
3220
  this.getChart().unHighlight();
2835
- }
2836
- // returns chart object
3221
+ } // returns chart object
3222
+
2837
3223
  }, {
2838
3224
  key: "getChart",
2839
3225
  value: function getChart() {
2840
3226
  var _a;
3227
+
2841
3228
  return (_a = this.chartRef) === null || _a === void 0 ? void 0 : _a.current;
2842
3229
  }
2843
3230
  }]);
3231
+
2844
3232
  return ChartingApiFunctional;
2845
3233
  }();
3234
+
2846
3235
  exports.ChartingApiFunctional = ChartingApiFunctional;
2847
3236
 
2848
3237
  /***/ }),
@@ -2868,12 +3257,16 @@ module.exports = require("@splunk/visualizations-shared/simpleXMLOptions");
2868
3257
 
2869
3258
 
2870
3259
  var _toConsumableArray = __webpack_require__(8);
3260
+
2871
3261
  Object.defineProperty(exports, "__esModule", {
2872
3262
  value: true
2873
3263
  });
2874
3264
  exports.AxesChartDataConfigAreaColumnLine = exports.AxesChartDataConfigBubble = exports.AxesChartDataConfigScatter = exports.AxesChartDataConfigBar = void 0;
3265
+
2875
3266
  var i18n_1 = __webpack_require__(2);
3267
+
2876
3268
  var configUtils_1 = __webpack_require__(20);
3269
+
2877
3270
  var AxesChartDataConfig = {
2878
3271
  label: (0, i18n_1._)('Data configurations'),
2879
3272
  layout: [[{
@@ -3007,10 +3400,15 @@ exports.default = AxesChartDataConfig;
3007
3400
  Object.defineProperty(exports, "__esModule", {
3008
3401
  value: true
3009
3402
  });
3403
+
3010
3404
  var i18n_1 = __webpack_require__(2);
3405
+
3011
3406
  var pick_1 = __webpack_require__(23);
3407
+
3012
3408
  var variables_1 = __webpack_require__(11);
3409
+
3013
3410
  var BackgroundColor_1 = __webpack_require__(53);
3411
+
3014
3412
  var themes = {
3015
3413
  defaultBackgroundColor: function defaultBackgroundColor(props) {
3016
3414
  return (0, pick_1.default)({
@@ -3049,7 +3447,9 @@ exports.default = AxesChartColorAndStyle;
3049
3447
  Object.defineProperty(exports, "__esModule", {
3050
3448
  value: true
3051
3449
  });
3450
+
3052
3451
  var i18n_1 = __webpack_require__(2);
3452
+
3053
3453
  var AxesChartLegend = {
3054
3454
  label: (0, i18n_1._)('Legend'),
3055
3455
  layout: [[{
@@ -3110,12 +3510,16 @@ exports.default = AxesChartLegend;
3110
3510
 
3111
3511
 
3112
3512
  var _toConsumableArray = __webpack_require__(8);
3513
+
3113
3514
  Object.defineProperty(exports, "__esModule", {
3114
3515
  value: true
3115
3516
  });
3116
3517
  exports.AxesChartXGridAndLabelsBubbleScatter = exports.AxesChartXGridAndLabelsCommon = void 0;
3518
+
3117
3519
  var i18n_1 = __webpack_require__(2);
3520
+
3118
3521
  var configUtils_1 = __webpack_require__(20);
3522
+
3119
3523
  exports.AxesChartXGridAndLabelsCommon = {
3120
3524
  label: (0, i18n_1._)('X-axis grid and labels'),
3121
3525
  layout: [[{
@@ -3304,8 +3708,7 @@ exports.AxesChartXGridAndLabelsBubbleScatter = {
3304
3708
  label: (0, i18n_1._)('Axis line visibility'),
3305
3709
  option: 'xAxisLineVisibility',
3306
3710
  editor: 'editor.checkbox'
3307
- }],
3308
- // this option is disabled for bubble and scatter
3711
+ }], // this option is disabled for bubble and scatter
3309
3712
  // [
3310
3713
  // {
3311
3714
  // label: _('Major gridlines'),
@@ -3398,7 +3801,9 @@ exports.default = AxesChartXGridAndLabels;
3398
3801
  Object.defineProperty(exports, "__esModule", {
3399
3802
  value: true
3400
3803
  });
3804
+
3401
3805
  var i18n_1 = __webpack_require__(2);
3806
+
3402
3807
  var AxesChartYGridAndLabels = {
3403
3808
  label: (0, i18n_1._)('Y-axis grid and labels'),
3404
3809
  layout: [[{