@splunk/visualizations 26.1.1 → 26.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/Area.config.js +2 -1
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +1562 -433
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +1 -0
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +1555 -430
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +1 -0
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +1580 -455
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +1 -0
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +1418 -351
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +2 -1
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +1564 -435
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +1 -0
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +1342 -297
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +4 -0
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +1503 -489
  28. package/Events.js.map +1 -1
  29. package/FEATUREFLAGS.md +3 -0
  30. package/FillerGauge.config.js +1 -0
  31. package/FillerGauge.config.js.map +1 -1
  32. package/FillerGauge.js +1406 -345
  33. package/FillerGauge.js.map +1 -1
  34. package/Image.config.js +1 -0
  35. package/Image.config.js.map +1 -1
  36. package/Image.js +2355 -1183
  37. package/Image.js.map +1 -1
  38. package/Line.config.js +2 -1
  39. package/Line.config.js.map +1 -1
  40. package/Line.js +1562 -433
  41. package/Line.js.map +1 -1
  42. package/LinkGraph.config.js +1 -0
  43. package/LinkGraph.config.js.map +1 -1
  44. package/LinkGraph.js +2013 -968
  45. package/LinkGraph.js.map +1 -1
  46. package/Map.config.js +1 -0
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +2556 -1527
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +1 -0
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +1952 -883
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +1 -0
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +4049 -2965
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +1 -0
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +3286 -2215
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +1 -0
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +2187 -1036
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +1 -0
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +3397 -2299
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +1 -0
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +2181 -1112
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +1 -0
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +3275 -2199
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +1 -0
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +3551 -2400
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +27 -0
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +5551 -4397
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +1227 -1209
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +27 -0
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +2850 -1696
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +1 -0
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +6334 -5215
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +96 -96
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +172 -7
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +3517 -2212
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +1009 -82
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +4 -4
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/DocExampleWithVizSandbox.js +54 -57
  107. package/common/DocExampleWithVizSandbox.js.map +1 -1
  108. package/common/EventsDoc.js +40 -40
  109. package/common/EventsDoc.js.map +1 -1
  110. package/common/GaugeMajorTicks.js +15 -13
  111. package/common/GaugeMajorTicks.js.map +1 -1
  112. package/common/GaugeValueMarker.js +12 -12
  113. package/common/GaugeValueMarker.js.map +1 -1
  114. package/common/OptionsDoc.js +34 -34
  115. package/common/OptionsDoc.js.map +1 -1
  116. package/common/OverviewDoc.js +124 -103
  117. package/common/OverviewDoc.js.map +1 -1
  118. package/common/SplunkVisualization.js +49 -49
  119. package/common/SplunkVisualization.js.map +1 -1
  120. package/common/SplunkVisualizationApi.js +4 -4
  121. package/common/SplunkVisualizationApi.js.map +1 -1
  122. package/common/ThemesDoc.js +31 -31
  123. package/common/ThemesDoc.js.map +1 -1
  124. package/common/chartingUtils.js +24 -8
  125. package/common/chartingUtils.js.map +1 -1
  126. package/common/docUtils.js +4 -4
  127. package/common/docUtils.js.map +1 -1
  128. package/common/gaugeUtils.js +16 -16
  129. package/common/gaugeUtils.js.map +1 -1
  130. package/common/shapeUtils.js +36 -36
  131. package/common/shapeUtils.js.map +1 -1
  132. package/common/utils/configUtils.js +48 -47
  133. package/common/utils/configUtils.js.map +1 -1
  134. package/common/utils/dataUtils.js +832 -6
  135. package/common/utils/dataUtils.js.map +1 -1
  136. package/common/utils/featureFlagUtils.js +139 -0
  137. package/common/utils/featureFlagUtils.js.map +1 -0
  138. package/common/utils/hocUtils.js +2 -2
  139. package/common/utils/hocUtils.js.map +1 -1
  140. package/common/utils/layoutUtils.js +2 -2
  141. package/common/utils/layoutUtils.js.map +1 -1
  142. package/common/utils/mapUtils.js +77 -54
  143. package/common/utils/mapUtils.js.map +1 -1
  144. package/common/utils/singleValueUtils.js +28 -19
  145. package/common/utils/singleValueUtils.js.map +1 -1
  146. package/common/utils/testHelper.js +10 -10
  147. package/common/utils/testHelper.js.map +1 -1
  148. package/common/utils/trellisUtils.js +6 -6
  149. package/common/utils/trellisUtils.js.map +1 -1
  150. package/common/utils/urlUtils.js +2 -2
  151. package/common/utils/urlUtils.js.map +1 -1
  152. package/common/withDashboardViz.js +1313 -235
  153. package/common/withDashboardViz.js.map +1 -1
  154. package/package.json +13 -12
  155. package/__mocks__/fileMock.js +0 -2
  156. package/__mocks__/styleMock.js +0 -2
  157. package/babel.config.js +0 -11
  158. package/jest.config.js +0 -8
  159. package/loki.config.js +0 -14
package/Events.js CHANGED
@@ -87,20 +87,20 @@ module.exports =
87
87
  /******/
88
88
  /******/
89
89
  /******/ // Load entry module and return exports
90
- /******/ return __webpack_require__(__webpack_require__.s = 203);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 225);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ([
94
94
  /* 0 */
95
95
  /***/ (function(module, exports) {
96
96
 
97
- module.exports = require("prop-types");
97
+ module.exports = require("react");
98
98
 
99
99
  /***/ }),
100
100
  /* 1 */
101
101
  /***/ (function(module, exports) {
102
102
 
103
- module.exports = require("react");
103
+ module.exports = require("prop-types");
104
104
 
105
105
  /***/ }),
106
106
  /* 2 */
@@ -148,6 +148,7 @@ var VizBehavior;
148
148
  */
149
149
  VizBehavior["DYNAMIC_OPTIONS"] = "dynamic-options";
150
150
  VizBehavior["EVENTS"] = "events";
151
+ VizBehavior["DOWNSAMPLING"] = "downsampling";
151
152
  /**
152
153
  * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is
153
154
  * missing.
@@ -163,7 +164,7 @@ var VizBehavior;
163
164
  /* 7 */
164
165
  /***/ (function(module, exports) {
165
166
 
166
- module.exports = require("@babel/runtime/helpers/defineProperty");
167
+ module.exports = require("@babel/runtime/helpers/slicedToArray");
167
168
 
168
169
  /***/ }),
169
170
  /* 8 */
@@ -175,28 +176,34 @@ module.exports = require("@babel/runtime/helpers/toConsumableArray");
175
176
  /* 9 */
176
177
  /***/ (function(module, exports) {
177
178
 
178
- module.exports = require("@babel/runtime/helpers/classCallCheck");
179
+ module.exports = require("@babel/runtime/helpers/defineProperty");
179
180
 
180
181
  /***/ }),
181
182
  /* 10 */
182
183
  /***/ (function(module, exports) {
183
184
 
184
- module.exports = require("@splunk/visualizations-shared/Message");
185
+ module.exports = require("@babel/runtime/helpers/classCallCheck");
185
186
 
186
187
  /***/ }),
187
188
  /* 11 */
188
189
  /***/ (function(module, exports) {
189
190
 
190
- module.exports = require("@splunk/themes/variables");
191
+ module.exports = require("@splunk/visualizations-shared/numberUtils");
191
192
 
192
193
  /***/ }),
193
194
  /* 12 */
194
195
  /***/ (function(module, exports) {
195
196
 
196
- module.exports = require("@splunk/visualizations-shared/colorUtils");
197
+ module.exports = require("@splunk/visualizations-shared/Message");
197
198
 
198
199
  /***/ }),
199
200
  /* 13 */
201
+ /***/ (function(module, exports) {
202
+
203
+ module.exports = require("@splunk/themes/variables");
204
+
205
+ /***/ }),
206
+ /* 14 */
200
207
  /***/ (function(module, exports, __webpack_require__) {
201
208
 
202
209
  "use strict";
@@ -205,16 +212,504 @@ module.exports = require("@splunk/visualizations-shared/colorUtils");
205
212
  Object.defineProperty(exports, "__esModule", {
206
213
  value: true
207
214
  });
215
+ exports.downsampleDataSources = exports.calculateDownsamplingThreshold = exports.calculateThresholdOnRangeSelect = exports.isDownsamplingEnabledForViz = exports.convertToArrOfObjects = void 0;
216
+
217
+ var numberUtils_1 = __webpack_require__(11);
218
+
219
+ var interfaces_1 = __webpack_require__(40); // TODO: utilize this fn in ParallelCoordinates
220
+
221
+
222
+ var convertToArrOfObjects = function convertToArrOfObjects(columns, fields) {
223
+ if (!columns || !columns[0] || !columns[0].length) return [];
224
+ var data = [];
225
+
226
+ var _loop = function _loop(i) {
227
+ var newObj = {};
228
+ fields.forEach(function (field, index) {
229
+ var fieldName = typeof field === 'string' ? field : field.name;
230
+
231
+ if (columns[index][i] === '') {
232
+ newObj[fieldName] = null;
233
+ } else {
234
+ newObj[fieldName] = columns[index][i];
235
+ }
236
+ });
237
+ data.push(newObj);
238
+ };
239
+
240
+ for (var i = 0; i < columns[0].length; i += 1) {
241
+ _loop(i);
242
+ }
243
+
244
+ return data;
245
+ };
246
+
247
+ exports.convertToArrOfObjects = convertToArrOfObjects; // LTTB algorithm which can be used to downsample time series data while striving to maintain
248
+ // the spikes and overall shape of the chart
249
+ // Copied from https://github.com/sveinn-steinarsson/flot-downsample/blob/0815010016fc94b1bbc6a010afb8aad13ada6d0d/jquery.flot.downsample.js
250
+ // Modifications include:
251
+ // 1) Convert to modern JavaScript(use const, let, and use array.push to push to last element of array)
252
+ // 2) Convert to camel case
253
+ // 3) Convert to TS and also return the indices of the points that are in the downsampled result.
254
+ // 4) Add a new parameter preferredDownsampleIndices that correspond to the indices of points
255
+ // that should be used in case of a tie of the max area in a bucket
256
+
257
+ var largestTriangleThreeBuckets = function largestTriangleThreeBuckets(data, threshold, preferredDownsampleIndices) {
258
+ var dataLength = data.length;
259
+ var downsampledIndices = [];
260
+
261
+ if (threshold >= dataLength || threshold === 0) {
262
+ var allIndices = data.map(function (values, index) {
263
+ return index;
264
+ });
265
+ return {
266
+ downsampledData: data,
267
+ downsampledIndices: allIndices
268
+ }; // Nothing to do
269
+ }
270
+
271
+ var sampled = [];
272
+ var sampledIndex = 0; // Bucket size. Leave room for start and end data points
273
+
274
+ var every = (dataLength - 2) / (threshold - 2);
275
+ var a = 0; // Initially a is the first point in the triangle
276
+
277
+ var maxAreaPoint;
278
+ var maxArea;
279
+ var area;
280
+ var nextA;
281
+ sampled.push(data[a]); // Always add the first point
282
+
283
+ downsampledIndices.push(0); // eslint-disable-next-line no-plusplus
284
+
285
+ for (var i = 0; i < threshold - 2; i++) {
286
+ // Calculate point average for next bucket (containing c)
287
+ var avgX = 0;
288
+ var avgY = 0;
289
+ var avgRangeStart = Math.floor((i + 1) * every) + 1;
290
+ var avgRangeEnd = Math.floor((i + 2) * every) + 1;
291
+ avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
292
+ var avgRangeLength = avgRangeEnd - avgRangeStart; // eslint-disable-next-line no-plusplus
293
+
294
+ for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
295
+ avgX += Number(data[avgRangeStart][0]); // * 1 enforces Number (value may be Date)
296
+
297
+ avgY += data[avgRangeStart][1] * 1;
298
+ }
299
+
300
+ avgX /= avgRangeLength;
301
+ avgY /= avgRangeLength; // Get the range for this bucket
302
+
303
+ var rangeOffs = Math.floor((i + 0) * every) + 1;
304
+ var rangeTo = Math.floor((i + 1) * every) + 1; // Point a
305
+
306
+ var pointAX = Number(data[a][0]); // Enforce Number (value may be Date)
307
+
308
+ var pointAY = data[a][1] * 1; // eslint-disable-next-line no-multi-assign
309
+
310
+ maxArea = area = -1;
311
+ var maxAreaIndex = rangeOffs; // eslint-disable-next-line no-plusplus
312
+
313
+ for (; rangeOffs < rangeTo; rangeOffs++) {
314
+ // Calculate triangle area over three buckets
315
+ area = Math.abs((pointAX - avgX) * (data[rangeOffs][1] - pointAY) - (pointAX - Number(data[rangeOffs][0])) * (avgY - pointAY)) * 0.5; // Modification: try to downsample the least amount of points possible when there are multiple series
316
+ // If all points in a bucket have the same area, prioritize the one with an x index
317
+ // that also existed from another series so we don't add another point unnecessarily.
318
+ // By default LTTB picks the leftmost point in the bucket
319
+
320
+ if (area > maxArea || area === maxArea && preferredDownsampleIndices.has(rangeOffs)) {
321
+ maxArea = area;
322
+ maxAreaPoint = data[rangeOffs];
323
+ nextA = rangeOffs; // Next a is this b
324
+ // Modification: save the index of the point with the most area
325
+
326
+ maxAreaIndex = rangeOffs;
327
+ }
328
+ } // eslint-disable-next-line no-plusplus
329
+
330
+
331
+ sampled[sampledIndex++] = maxAreaPoint; // Pick this point from the bucket
332
+
333
+ downsampledIndices.push(maxAreaIndex);
334
+ a = nextA; // This a is the next a (chosen b)
335
+ } // eslint-disable-next-line no-plusplus
336
+
337
+
338
+ sampled[sampledIndex++] = data[dataLength - 1]; // Always add last
339
+
340
+ downsampledIndices.push(dataLength - 1);
341
+ return {
342
+ downsampledData: sampled,
343
+ downsampledIndices: downsampledIndices
344
+ };
345
+ };
346
+ /**
347
+ * Strictly coerces the entire column to numbers if it only consists of numeric strings or numbers. Also determines
348
+ * if at least one of the values in the column can be loosely coerced to a number.
349
+ * If the column cannot be strictly downsampled (if it contains nulls or non-numeric strings), returns an empty array and
350
+ * returns that it cannot downsample the column.
351
+ */
352
+
353
+
354
+ var strictlyCoerceYColumn = function strictlyCoerceYColumn(column) {
355
+ // Splunk charting allows for numbers in formats such as negative hex that
356
+ // Number() does not support and also allows loose coercion of hex numbers (but not other formats)
357
+ // We want to identify columns which contain at least one value that can be loosely coerced
358
+ var canLooselyCoerceSomeValues = column.findIndex(function (value) {
359
+ return (0, numberUtils_1.startsWithNumber)("".concat(value));
360
+ }) >= 0; // If not all values in column can be strictly coerced to a number, we do not downsample
208
361
 
209
- var React = __webpack_require__(1);
362
+ var coercedColumn = [];
363
+ var canDownsampleColumn = !column.some(function (value) {
364
+ var coercedValue = Number(value); // if it can't be parsed or isn't safe, fail
365
+
366
+ if (Number.isNaN(coercedValue) || coercedValue <= Number.MIN_SAFE_INTEGER || coercedValue >= Number.MAX_SAFE_INTEGER || typeof value !== 'string' && typeof value !== 'number') {
367
+ return true;
368
+ } // save value and continue to next
369
+
370
+
371
+ coercedColumn.push(coercedValue);
372
+ return false;
373
+ });
374
+ return {
375
+ canDownsampleColumn: canDownsampleColumn,
376
+ canLooselyCoerceSomeValues: canLooselyCoerceSomeValues,
377
+ coercedColumn: canDownsampleColumn ? coercedColumn : []
378
+ };
379
+ };
380
+ /**
381
+ * Tries to coerce the x-column to numbers or dates, if it is eligible for downsampling.
382
+ * Only strictly increasing x-columns are eligible for downsampling.
383
+ * If the column is not eligible for downsampling, returns an empty array.
384
+ */
385
+
386
+
387
+ var strictlyCoerceXColumn = function strictlyCoerceXColumn(column, fieldType) {
388
+ if (fieldType === 'number') {
389
+ var coercedXColumn = column.map(function (xValue) {
390
+ return Number(xValue);
391
+ });
392
+
393
+ if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
394
+ return coercedXColumn;
395
+ }
396
+ } else if (fieldType === 'time') {
397
+ var _coercedXColumn = column.map(function (xValue) {
398
+ return new Date(xValue);
399
+ });
400
+
401
+ if (isColumnStrictlyIncreasing(_coercedXColumn, fieldType)) {
402
+ return _coercedXColumn;
403
+ }
404
+ }
405
+
406
+ return [];
407
+ };
408
+
409
+ var isDownsamplingEnabledForViz = function isDownsamplingEnabledForViz(_ref) {
410
+ var vizConfig = _ref.vizConfig;
411
+
412
+ var _a;
413
+
414
+ return (_a = vizConfig.supports) === null || _a === void 0 ? void 0 : _a.includes(interfaces_1.VizBehavior.DOWNSAMPLING);
415
+ };
416
+
417
+ exports.isDownsamplingEnabledForViz = isDownsamplingEnabledForViz;
418
+
419
+ var calculateThresholdOnRangeSelect = function calculateThresholdOnRangeSelect(_ref2) {
420
+ var firstIndex = _ref2.firstIndex,
421
+ lastIndex = _ref2.lastIndex,
422
+ dataSources = _ref2.dataSources,
423
+ width = _ref2.width;
424
+
425
+ var _a, _b, _c;
426
+
427
+ var window = lastIndex - firstIndex + 1;
428
+ var ratio = Math.round(Number(((_c = (_b = (_a = dataSources === null || dataSources === void 0 ? void 0 : dataSources.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.columns[0]) === null || _c === void 0 ? void 0 : _c.length) / window) * 10) / 10;
429
+ return Math.round(ratio * Number(width));
430
+ };
431
+
432
+ exports.calculateThresholdOnRangeSelect = calculateThresholdOnRangeSelect;
433
+ /**
434
+ * Calculates the downsampling threshold based on the range selection. If search zoom is enabled or there is no selection,
435
+ * then returns the width of the visualization.
436
+ *
437
+ * Otherwise calculates the threshold based on the ratio of the window selected compared to the size of the non-downsampled
438
+ * data sources. Returns null if the chart event's dataset does not match the passed in primary data source or if the chart is zoomed
439
+ * in for a categorical chart.
440
+ */
441
+
442
+ var calculateDownsamplingThreshold = function calculateDownsamplingThreshold(_ref3) {
443
+ var enableSearchZoom = _ref3.enableSearchZoom,
444
+ dataSources = _ref3.dataSources,
445
+ selectChartEvent = _ref3.selectChartEvent,
446
+ width = _ref3.width,
447
+ xField = _ref3.xField,
448
+ y2Fields = _ref3.y2Fields;
449
+
450
+ var _a, _b, _c;
451
+
452
+ if (enableSearchZoom || !selectChartEvent) {
453
+ return Number(width);
454
+ }
455
+
456
+ var primaryDataSource = dataSources === null || dataSources === void 0 ? void 0 : dataSources.primary;
457
+
458
+ if (!primaryDataSource) {
459
+ return null;
460
+ }
461
+
462
+ var startXIndex = selectChartEvent.startXIndex,
463
+ endXIndex = selectChartEvent.endXIndex,
464
+ currentTarget = selectChartEvent.currentTarget;
465
+
466
+ try {
467
+ var xFieldIndex = (_a = primaryDataSource === null || primaryDataSource === void 0 ? void 0 : primaryDataSource.data) === null || _a === void 0 ? void 0 : _a.fields.findIndex(function (field) {
468
+ return field.name === xField;
469
+ });
470
+ var downsampledXFieldIndex = (_b = currentTarget.dataSet) === null || _b === void 0 ? void 0 : _b.fields.findIndex(function (field) {
471
+ return field === xField;
472
+ });
473
+
474
+ if (xFieldIndex === -1 || downsampledXFieldIndex === -1) {
475
+ return null;
476
+ }
477
+
478
+ var fullSeries = (_c = primaryDataSource === null || primaryDataSource === void 0 ? void 0 : primaryDataSource.data) === null || _c === void 0 ? void 0 : _c.columns[xFieldIndex];
479
+ var downsampledSeries = currentTarget.dataSet.seriesList[downsampledXFieldIndex];
480
+ var firstIndex = fullSeries.findIndex(function (x) {
481
+ return downsampledSeries[startXIndex] === x;
482
+ });
483
+ var lastIndex = fullSeries.findIndex(function (x) {
484
+ return downsampledSeries[endXIndex] === x;
485
+ }); // For charts with categorical x-axis (charts with an xField that isn't _time), do not support
486
+ // re-calculating downsampling threshold if the chart is zoomed in until SPL-259458 is fixed
487
+ // Also do not support re-calculating downsampling threshold for zoomed-in charts with y2
488
+ // until SPL-259611 is fixed
489
+
490
+ if (xField !== '_time' || (y2Fields === null || y2Fields === void 0 ? void 0 : y2Fields.length)) {
491
+ return firstIndex === 0 && lastIndex === fullSeries.length - 1 ? width : null;
492
+ }
493
+
494
+ if (firstIndex >= 0 && lastIndex >= 0 && firstIndex <= lastIndex) {
495
+ return (0, exports.calculateThresholdOnRangeSelect)({
496
+ firstIndex: firstIndex,
497
+ lastIndex: lastIndex,
498
+ dataSources: dataSources,
499
+ width: width
500
+ });
501
+ }
502
+ } catch (e) {
503
+ console.error('Error occurred while setting downsample threshold on range select event', e);
504
+ }
505
+
506
+ return null;
507
+ };
508
+
509
+ exports.calculateDownsamplingThreshold = calculateDownsamplingThreshold;
510
+
511
+ var isColumnStrictlyIncreasing = function isColumnStrictlyIncreasing(column, fieldType) {
512
+ return column.every(function (value, index) {
513
+ if (fieldType === 'number') {
514
+ if (Number.isNaN(value)) {
515
+ return false;
516
+ }
517
+ }
518
+
519
+ if (fieldType === 'time') {
520
+ if (Number.isNaN(value.getTime())) {
521
+ return false;
522
+ }
523
+ }
524
+
525
+ if (index === 0) {
526
+ return true;
527
+ }
528
+
529
+ return value > column[index - 1];
530
+ });
531
+ };
532
+ /**
533
+ * Verifies that all of the columns that are displayed in a chart can be downsampled. Valid columns that can be
534
+ * displayed are those that contain at least one number. We can only downsample columns that only consist of numbers.
535
+ *
536
+ * If all columns can be downsampled, returns the x column coerced to time/number and y columns coerced to numbers.
537
+ * If not all columns can be downsampled, then returns empty arrays for both x and y
538
+ */
539
+
540
+
541
+ var tryToCoerceAllDisplayedFields = function tryToCoerceAllDisplayedFields(ds, xField, yFields, fieldTypes) {
542
+ var xColumn = [];
543
+ var yColumns = [];
544
+ var canDownsample = !ds.data.fields.some(function (field, index) {
545
+ var _a, _b;
546
+
547
+ var fieldName = (_a = field.name) !== null && _a !== void 0 ? _a : field;
548
+ var fieldType = (_b = fieldTypes[index]) !== null && _b !== void 0 ? _b : 'unknown';
549
+ var column = ds.data.columns[index];
550
+ var hasDisplayedColumnThatCantBeDownsampled = false;
551
+
552
+ if (fieldName === xField) {
553
+ xColumn = strictlyCoerceXColumn(column, fieldType);
554
+ } else if (yFields.has(fieldName)) {
555
+ var _strictlyCoerceYColum = strictlyCoerceYColumn(ds.data.columns[index]),
556
+ coercedColumn = _strictlyCoerceYColum.coercedColumn,
557
+ canLooselyCoerceSomeValues = _strictlyCoerceYColum.canLooselyCoerceSomeValues,
558
+ canDownsampleColumn = _strictlyCoerceYColum.canDownsampleColumn; // do not perform downsampling if a column can possibly be displayed but cannot
559
+ // be downsampled using LTTB
560
+
561
+
562
+ hasDisplayedColumnThatCantBeDownsampled = canLooselyCoerceSomeValues && !canDownsampleColumn;
563
+
564
+ if (hasDisplayedColumnThatCantBeDownsampled) {
565
+ return true;
566
+ }
567
+
568
+ if (canDownsampleColumn) {
569
+ yColumns.push(coercedColumn);
570
+ }
571
+ }
572
+
573
+ return false;
574
+ });
575
+
576
+ if (canDownsample) {
577
+ return {
578
+ xColumn: xColumn,
579
+ yColumns: yColumns
580
+ };
581
+ }
582
+
583
+ return {
584
+ xColumn: [],
585
+ yColumns: []
586
+ };
587
+ };
588
+
589
+ var pickIndicesFromDataSource = function pickIndicesFromDataSource(ds, indices) {
590
+ var sortedIndices = Array.from(indices).sort(function (a, b) {
591
+ return a - b;
592
+ });
593
+ var slicedColumns = [];
594
+ ds.data.columns.forEach(function (column) {
595
+ var slicedColumn = [];
596
+ sortedIndices.forEach(function (index) {
597
+ slicedColumn.push(column[index]);
598
+ });
599
+ slicedColumns.push(slicedColumn);
600
+ }); // update data columns with downsampled columns
601
+
602
+ return Object.assign(Object.assign({}, ds), {
603
+ data: Object.assign(Object.assign({}, ds.data), {
604
+ columns: slicedColumns
605
+ })
606
+ });
607
+ };
608
+
609
+ var downsampleDataSources = function downsampleDataSources(_ref4) {
610
+ var dataSources = _ref4.dataSources,
611
+ threshold = _ref4.threshold,
612
+ options = _ref4.options;
613
+
614
+ var _a, _b, _c;
615
+
616
+ var primaryDS = dataSources === null || dataSources === void 0 ? void 0 : dataSources.primary; // only downsample time series when number of data points are over threshold
617
+
618
+ var numPoints = (_c = (_b = (_a = primaryDS === null || primaryDS === void 0 ? void 0 : primaryDS.data) === null || _a === void 0 ? void 0 : _a.columns[0]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
619
+
620
+ if (Number.isNaN(threshold) || numPoints <= threshold || threshold < 2) {
621
+ return dataSources;
622
+ }
623
+
624
+ var xField = options.xField,
625
+ yFields = options.yFields,
626
+ fieldTypes = options.fieldTypes;
627
+
628
+ if (!xField || !(yFields === null || yFields === void 0 ? void 0 : yFields.length) || !(fieldTypes === null || fieldTypes === void 0 ? void 0 : fieldTypes.length)) {
629
+ return dataSources;
630
+ }
631
+
632
+ var nonInternalYFields = new Set(yFields.filter(function (yField) {
633
+ return !yField.startsWith('_');
634
+ }));
635
+ var maxPointsInDownsample = Math.min(nonInternalYFields.size * threshold, numPoints); // Do not try to downsample if there are too many downsampled pts
636
+ // At the worst case, each series has non-overlapping downsampled pts
637
+ // which will mean that all points will be included in the downsampled result
638
+ // This will just lead to additional overhead due to coercing each
639
+ // x and y field to number
640
+
641
+ if (maxPointsInDownsample >= numPoints) {
642
+ return dataSources;
643
+ }
644
+
645
+ var _tryToCoerceAllDispla = tryToCoerceAllDisplayedFields(primaryDS, xField, nonInternalYFields, fieldTypes),
646
+ xColumn = _tryToCoerceAllDispla.xColumn,
647
+ yColumns = _tryToCoerceAllDispla.yColumns;
648
+
649
+ if (!yColumns.length || !xColumn.length) {
650
+ return dataSources;
651
+ }
652
+
653
+ var downsampledDataSources = Object.assign({}, dataSources);
654
+ var downsampledIndices = new Set();
655
+ yColumns.forEach(function (yColumn, columnIndex) {
656
+ // perform LTTB downsampling for current series, LTTB takes an [x, y] pair
657
+ var xyPair = yColumn.map(function (yValue, index) {
658
+ return [xColumn[index], yValue];
659
+ });
660
+
661
+ try {
662
+ var _largestTriangleThree = largestTriangleThreeBuckets(xyPair, threshold, downsampledIndices),
663
+ downsampledIndicesForSeries = _largestTriangleThree.downsampledIndices;
664
+
665
+ downsampledIndicesForSeries.forEach(function (downsampleIndex) {
666
+ return downsampledIndices.add(downsampleIndex);
667
+ });
668
+ } catch (e) {
669
+ console.error("Error occurred while downsampling column ".concat(columnIndex), e);
670
+ }
671
+ }); // update data columns with downsampled columns
672
+
673
+ downsampledDataSources.primary = pickIndicesFromDataSource(primaryDS, downsampledIndices);
674
+ return downsampledDataSources;
675
+ };
676
+
677
+ exports.downsampleDataSources = downsampleDataSources;
678
+
679
+ /***/ }),
680
+ /* 15 */
681
+ /***/ (function(module, exports) {
682
+
683
+ module.exports = require("@splunk/visualizations-shared/colorUtils");
684
+
685
+ /***/ }),
686
+ /* 16 */
687
+ /***/ (function(module, exports) {
688
+
689
+ module.exports = require("@splunk/visualization-encoding/Options");
690
+
691
+ /***/ }),
692
+ /* 17 */
693
+ /***/ (function(module, exports, __webpack_require__) {
694
+
695
+ "use strict";
696
+
697
+
698
+ var _slicedToArray = __webpack_require__(7);
699
+
700
+ Object.defineProperty(exports, "__esModule", {
701
+ value: true
702
+ });
703
+
704
+ var React = __webpack_require__(0);
210
705
 
211
706
  var styled_components_1 = __webpack_require__(4);
212
707
 
213
- var SizeAwareWrapper_1 = __webpack_require__(19);
708
+ var style_1 = __webpack_require__(18);
214
709
 
215
- var style_1 = __webpack_require__(14);
710
+ var colorUtils_1 = __webpack_require__(15);
216
711
 
217
- var colorUtils_1 = __webpack_require__(12);
712
+ var SizeAwareWrapper_1 = __webpack_require__(26);
218
713
 
219
714
  var Item = styled_components_1.default.div.attrs(function (_ref) {
220
715
  var width = _ref.width;
@@ -260,6 +755,20 @@ var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
260
755
  var width = props.width,
261
756
  height = props.height,
262
757
  backgroundColor = props.backgroundColor;
758
+ var cachedHandleResize = React.useCallback(function (w, h) {
759
+ setContainerWidth(w);
760
+ setContainerHeight(h);
761
+ }, []);
762
+
763
+ var _React$useState = React.useState(Number(props.width)),
764
+ _React$useState2 = _slicedToArray(_React$useState, 2),
765
+ containerWidth = _React$useState2[0],
766
+ setContainerWidth = _React$useState2[1];
767
+
768
+ var _React$useState3 = React.useState(Number(props.height)),
769
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
770
+ containerHeight = _React$useState4[0],
771
+ setContainerHeight = _React$useState4[1];
263
772
 
264
773
  if (!height) {
265
774
  return React.createElement(Item, {
@@ -271,18 +780,18 @@ var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
271
780
 
272
781
  return React.createElement(FixSizeItem, {
273
782
  "data-test": "fix-size-item",
274
- "data-splunk-visualization-version": "26.1.1 - b6df0a015",
783
+ "data-splunk-visualization-version": "26.2.0 - 49b909915",
275
784
  width: width,
276
785
  height: height,
277
786
  backgroundColor: backgroundColor
278
- }, React.createElement(FixSizeItemContent, null, React.createElement(SizeAwareWrapper_1.default, null, function (_ref3) {
279
- var newWidth = _ref3.width,
280
- newHeight = _ref3.height;
281
- return React.createElement(Viz, Object.assign({}, props, {
282
- width: newWidth,
283
- height: newHeight
284
- }));
285
- })));
787
+ }, React.createElement(FixSizeItemContent, null, React.createElement(SizeAwareWrapper_1.default, {
788
+ width: width,
789
+ height: height,
790
+ onResize: cachedHandleResize
791
+ }), React.createElement(Viz, Object.assign({}, props, {
792
+ width: containerWidth,
793
+ height: containerHeight
794
+ }))));
286
795
  };
287
796
 
288
797
  FixedSizeContainer.displayName = 'withFixedSizeContainer';
@@ -292,13 +801,94 @@ var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
292
801
  exports.default = withFixedSizeContainer;
293
802
 
294
803
  /***/ }),
295
- /* 14 */
804
+ /* 18 */
296
805
  /***/ (function(module, exports) {
297
806
 
298
807
  module.exports = require("@splunk/visualizations-shared/style");
299
808
 
300
809
  /***/ }),
301
- /* 15 */
810
+ /* 19 */
811
+ /***/ (function(module, exports, __webpack_require__) {
812
+
813
+ "use strict";
814
+
815
+
816
+ Object.defineProperty(exports, "__esModule", {
817
+ value: true
818
+ });
819
+ exports.validOutputModes = exports.validSegmentationModes = exports.validSortDirs = void 0;
820
+ exports.validSortDirs = ['asc', 'desc', 'none'];
821
+ exports.validSegmentationModes = ['none', 'inner'];
822
+ exports.validOutputModes = ['json_cols', 'json'];
823
+
824
+ /***/ }),
825
+ /* 20 */,
826
+ /* 21 */
827
+ /***/ (function(module, exports, __webpack_require__) {
828
+
829
+ "use strict";
830
+
831
+
832
+ var _classCallCheck = __webpack_require__(10);
833
+
834
+ var _createClass = __webpack_require__(25);
835
+
836
+ Object.defineProperty(exports, "__esModule", {
837
+ value: true
838
+ });
839
+ exports.DefaultVizActionHandler = void 0;
840
+
841
+ var DefaultVizActionHandler = /*#__PURE__*/function () {
842
+ function DefaultVizActionHandler() {
843
+ _classCallCheck(this, DefaultVizActionHandler);
844
+ }
845
+
846
+ _createClass(DefaultVizActionHandler, [{
847
+ key: "focus",
848
+ value: function focus() {// noop
849
+ }
850
+ }, {
851
+ key: "snapshot",
852
+ value: function snapshot() {
853
+ return null; // noop
854
+ }
855
+ }]);
856
+
857
+ return DefaultVizActionHandler;
858
+ }();
859
+
860
+ exports.DefaultVizActionHandler = DefaultVizActionHandler;
861
+
862
+ /***/ }),
863
+ /* 22 */
864
+ /***/ (function(module, exports, __webpack_require__) {
865
+
866
+ "use strict";
867
+
868
+
869
+ Object.defineProperty(exports, "__esModule", {
870
+ value: true
871
+ });
872
+ exports.VizCategory = void 0;
873
+ var VizCategory;
874
+
875
+ (function (VizCategory) {
876
+ VizCategory["SINGLE_VALUE"] = "Single Value";
877
+ VizCategory["TRENDS"] = "Trends";
878
+ VizCategory["COMPARISONS"] = "Comparisons";
879
+ VizCategory["TABLE"] = "Table";
880
+ VizCategory["GAUGE"] = "Gauge";
881
+ VizCategory["DISTRIBUTIONS"] = "Distributions";
882
+ VizCategory["CHOROPLETH"] = "Choropleth Maps";
883
+ VizCategory["SHAPES"] = "Shapes";
884
+ VizCategory["MISC"] = "misc";
885
+ VizCategory["FLOW"] = "Flow";
886
+ VizCategory["CORRELATION"] = "Correlation";
887
+ VizCategory["SPATIAL"] = "Spatial";
888
+ })(VizCategory = exports.VizCategory || (exports.VizCategory = {}));
889
+
890
+ /***/ }),
891
+ /* 23 */
302
892
  /***/ (function(module, exports, __webpack_require__) {
303
893
 
304
894
  "use strict";
@@ -330,31 +920,25 @@ var extendStaticWrapperProps = function extendStaticWrapperProps(_ref) {
330
920
  exports.extendStaticWrapperProps = extendStaticWrapperProps;
331
921
 
332
922
  /***/ }),
333
- /* 16 */
923
+ /* 24 */
334
924
  /***/ (function(module, exports) {
335
925
 
336
926
  module.exports = require("@splunk/visualizations-shared/schemaUtils");
337
927
 
338
928
  /***/ }),
339
- /* 17 */
340
- /***/ (function(module, exports) {
341
-
342
- module.exports = require("@babel/runtime/helpers/slicedToArray");
343
-
344
- /***/ }),
345
- /* 18 */
929
+ /* 25 */
346
930
  /***/ (function(module, exports) {
347
931
 
348
932
  module.exports = require("@babel/runtime/helpers/createClass");
349
933
 
350
934
  /***/ }),
351
- /* 19 */
935
+ /* 26 */
352
936
  /***/ (function(module, exports) {
353
937
 
354
938
  module.exports = require("@splunk/visualizations-shared/SizeAwareWrapper");
355
939
 
356
940
  /***/ }),
357
- /* 20 */
941
+ /* 27 */
358
942
  /***/ (function(module, exports, __webpack_require__) {
359
943
 
360
944
  "use strict";
@@ -362,7 +946,7 @@ module.exports = require("@splunk/visualizations-shared/SizeAwareWrapper");
362
946
 
363
947
  var _toConsumableArray = __webpack_require__(8);
364
948
 
365
- var _defineProperty = __webpack_require__(7);
949
+ var _defineProperty = __webpack_require__(9);
366
950
 
367
951
  var __rest = this && this.__rest || function (s, e) {
368
952
  var t = {};
@@ -384,7 +968,7 @@ exports.insertLayout = exports.isDynamicOption = exports.uncollapseEditorConfig
384
968
 
385
969
  var lodash_1 = __webpack_require__(3);
386
970
 
387
- var schemaUtils_1 = __webpack_require__(16);
971
+ var schemaUtils_1 = __webpack_require__(24);
388
972
 
389
973
  var VizBehavior_1 = __webpack_require__(6);
390
974
 
@@ -590,58 +1174,68 @@ var insertLayout = function insertLayout(layout, index) {
590
1174
  exports.insertLayout = insertLayout;
591
1175
 
592
1176
  /***/ }),
593
- /* 21 */
1177
+ /* 28 */
594
1178
  /***/ (function(module, exports) {
595
1179
 
596
1180
  module.exports = require("@splunk/visualization-context/FeatureFlagContext");
597
1181
 
598
1182
  /***/ }),
599
- /* 22 */,
600
- /* 23 */
1183
+ /* 29 */,
1184
+ /* 30 */
601
1185
  /***/ (function(module, exports) {
602
1186
 
603
1187
  module.exports = require("@splunk/themes/pick");
604
1188
 
605
1189
  /***/ }),
606
- /* 24 */,
607
- /* 25 */
1190
+ /* 31 */
608
1191
  /***/ (function(module, exports) {
609
1192
 
610
1193
  module.exports = require("@splunk/ui-utils/id");
611
1194
 
612
1195
  /***/ }),
613
- /* 26 */
1196
+ /* 32 */
614
1197
  /***/ (function(module, exports) {
615
1198
 
616
1199
  module.exports = require("@splunk/visualization-context/TimezoneContext");
617
1200
 
618
1201
  /***/ }),
619
- /* 27 */
620
- /***/ (function(module, exports) {
1202
+ /* 33 */
1203
+ /***/ (function(module, exports, __webpack_require__) {
621
1204
 
622
- module.exports = require("@splunk/visualizations-shared/hocUtils");
1205
+ "use strict";
623
1206
 
624
- /***/ }),
625
- /* 28 */
626
- /***/ (function(module, exports) {
627
1207
 
628
- module.exports = require("@splunk/visualizations-shared/JSONSchemaUtils");
1208
+ Object.defineProperty(exports, "__esModule", {
1209
+ value: true
1210
+ });
1211
+
1212
+ var react_1 = __webpack_require__(0);
1213
+
1214
+ function usePrevious(value) {
1215
+ var ref = (0, react_1.useRef)();
1216
+ (0, react_1.useEffect)(function () {
1217
+ ref.current = value;
1218
+ });
1219
+ return ref.current;
1220
+ }
1221
+
1222
+ exports.default = usePrevious;
629
1223
 
630
1224
  /***/ }),
631
- /* 29 */,
632
- /* 30 */
1225
+ /* 34 */
633
1226
  /***/ (function(module, exports) {
634
1227
 
635
- module.exports = require("@splunk/visualization-encoding/Options");
1228
+ module.exports = require("@splunk/visualizations-shared/hocUtils");
636
1229
 
637
1230
  /***/ }),
638
- /* 31 */
1231
+ /* 35 */
639
1232
  /***/ (function(module, exports) {
640
1233
 
641
- module.exports = require("@splunk/visualizations-shared/numberUtils");
1234
+ module.exports = require("@splunk/visualizations-shared/JSONSchemaUtils");
642
1235
 
643
1236
  /***/ }),
644
- /* 32 */
1237
+ /* 36 */,
1238
+ /* 37 */
645
1239
  /***/ (function(module, exports, __webpack_require__) {
646
1240
 
647
1241
  "use strict";
@@ -652,17 +1246,17 @@ Object.defineProperty(exports, "__esModule", {
652
1246
  });
653
1247
  exports.shouldShowIconPlaceholder = void 0;
654
1248
 
655
- var React = __webpack_require__(1);
1249
+ var React = __webpack_require__(0);
656
1250
 
657
- var T = __webpack_require__(0);
1251
+ var T = __webpack_require__(1);
658
1252
 
659
1253
  var lodash_1 = __webpack_require__(3);
660
1254
 
661
1255
  var i18n_1 = __webpack_require__(2);
662
1256
 
663
- var Message_1 = __webpack_require__(10);
1257
+ var Message_1 = __webpack_require__(12);
664
1258
 
665
- var FixedSizeContainer_1 = __webpack_require__(13);
1259
+ var FixedSizeContainer_1 = __webpack_require__(17);
666
1260
  /**
667
1261
  * @method shouldShowIconPlaceholder
668
1262
  * @param {object} dataSources
@@ -733,24 +1327,24 @@ IconPlaceholder.defaultProps = {
733
1327
  exports.default = (0, FixedSizeContainer_1.default)(IconPlaceholder);
734
1328
 
735
1329
  /***/ }),
736
- /* 33 */
1330
+ /* 38 */
737
1331
  /***/ (function(module, exports, __webpack_require__) {
738
1332
 
739
1333
  "use strict";
740
1334
 
741
1335
 
742
- var _defineProperty = __webpack_require__(7);
1336
+ var _defineProperty = __webpack_require__(9);
743
1337
 
744
1338
  Object.defineProperty(exports, "__esModule", {
745
1339
  value: true
746
1340
  });
747
1341
  exports.getSortingParams = exports.SortParamsPropTypes = void 0;
748
1342
 
749
- var T = __webpack_require__(0);
1343
+ var T = __webpack_require__(1);
750
1344
 
751
1345
  var lodash_1 = __webpack_require__(3);
752
1346
 
753
- var DataSource_1 = __webpack_require__(34);
1347
+ var DataSource_1 = __webpack_require__(19);
754
1348
 
755
1349
  exports.SortParamsPropTypes = T.shape({
756
1350
  currentSortKey: T.string,
@@ -793,17 +1387,246 @@ var getSortingParams = function getSortingParams(_ref) {
793
1387
  };
794
1388
  }
795
1389
 
796
- return {
797
- currentSortKey: currentSortKey,
798
- currentSortDir: currentSortDir,
799
- onSort: onSort
800
- };
801
- };
1390
+ return {
1391
+ currentSortKey: currentSortKey,
1392
+ currentSortDir: currentSortDir,
1393
+ onSort: onSort
1394
+ };
1395
+ };
1396
+
1397
+ exports.getSortingParams = getSortingParams;
1398
+
1399
+ /***/ }),
1400
+ /* 39 */
1401
+ /***/ (function(module, exports, __webpack_require__) {
1402
+
1403
+ "use strict";
1404
+
1405
+
1406
+ Object.defineProperty(exports, "__esModule", {
1407
+ value: true
1408
+ });
1409
+ exports.getPaginationParams = exports.PaginatorParamsPropTypes = void 0;
1410
+
1411
+ var T = __webpack_require__(1);
1412
+
1413
+ var lodash_1 = __webpack_require__(3);
1414
+
1415
+ exports.PaginatorParamsPropTypes = T.shape({
1416
+ isPaging: T.bool,
1417
+ current: T.number,
1418
+ totalPages: T.number,
1419
+ onChange: T.func
1420
+ });
1421
+
1422
+ var getPaginationParams = function getPaginationParams(_ref) {
1423
+ var requestParams = _ref.requestParams,
1424
+ meta = _ref.meta,
1425
+ onRequestParamsChange = _ref.onRequestParamsChange;
1426
+ var totalCount = meta && meta.totalCount || 0;
1427
+ var offset = requestParams && requestParams.offset || 0;
1428
+ var count = requestParams && requestParams.count;
1429
+ var totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;
1430
+ var current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;
1431
+ var isPaging = totalPages > 1 && typeof onRequestParamsChange === 'function';
1432
+
1433
+ var onChangeHandler = function onChangeHandler(e, _ref2) {
1434
+ var page = _ref2.page,
1435
+ countArg = _ref2.count;
1436
+ var newParams = (0, lodash_1.cloneDeep)(requestParams);
1437
+
1438
+ if (typeof countArg === 'number') {
1439
+ newParams.count = countArg;
1440
+ newParams.offset = 0;
1441
+ }
1442
+
1443
+ var pageCount = typeof newParams.count === 'number' ? newParams.count : 10;
1444
+
1445
+ if (typeof page === 'number' && page > 0) {
1446
+ newParams.count = pageCount;
1447
+ newParams.offset = (page - 1) * pageCount;
1448
+ }
1449
+
1450
+ onRequestParamsChange(newParams);
1451
+ };
1452
+
1453
+ return {
1454
+ isPaging: isPaging,
1455
+ current: current,
1456
+ totalPages: totalPages,
1457
+ onChange: typeof onRequestParamsChange === 'function' ? onChangeHandler : lodash_1.noop
1458
+ };
1459
+ };
1460
+
1461
+ exports.getPaginationParams = getPaginationParams;
1462
+
1463
+ /***/ }),
1464
+ /* 40 */
1465
+ /***/ (function(module, exports, __webpack_require__) {
1466
+
1467
+ "use strict";
1468
+
1469
+
1470
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
1471
+ if (k2 === undefined) k2 = k;
1472
+ var desc = Object.getOwnPropertyDescriptor(m, k);
1473
+
1474
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
1475
+ desc = {
1476
+ enumerable: true,
1477
+ get: function get() {
1478
+ return m[k];
1479
+ }
1480
+ };
1481
+ }
1482
+
1483
+ Object.defineProperty(o, k2, desc);
1484
+ } : function (o, m, k, k2) {
1485
+ if (k2 === undefined) k2 = k;
1486
+ o[k2] = m[k];
1487
+ });
1488
+
1489
+ var __exportStar = this && this.__exportStar || function (m, exports) {
1490
+ for (var p in m) {
1491
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1492
+ }
1493
+ };
1494
+
1495
+ Object.defineProperty(exports, "__esModule", {
1496
+ value: true
1497
+ });
1498
+
1499
+ __exportStar(__webpack_require__(41), exports);
1500
+
1501
+ __exportStar(__webpack_require__(42), exports);
1502
+
1503
+ __exportStar(__webpack_require__(19), exports);
1504
+
1505
+ __exportStar(__webpack_require__(43), exports);
1506
+
1507
+ __exportStar(__webpack_require__(44), exports);
1508
+
1509
+ __exportStar(__webpack_require__(45), exports);
1510
+
1511
+ __exportStar(__webpack_require__(46), exports);
1512
+
1513
+ __exportStar(__webpack_require__(47), exports);
1514
+
1515
+ __exportStar(__webpack_require__(48), exports);
1516
+
1517
+ __exportStar(__webpack_require__(49), exports);
1518
+
1519
+ __exportStar(__webpack_require__(21), exports);
1520
+
1521
+ __exportStar(__webpack_require__(6), exports);
1522
+
1523
+ __exportStar(__webpack_require__(22), exports);
1524
+
1525
+ __exportStar(__webpack_require__(50), exports);
1526
+
1527
+ __exportStar(__webpack_require__(51), exports);
1528
+
1529
+ __exportStar(__webpack_require__(52), exports);
1530
+
1531
+ __exportStar(__webpack_require__(53), exports);
1532
+
1533
+ __exportStar(__webpack_require__(54), exports);
1534
+
1535
+ __exportStar(__webpack_require__(55), exports);
1536
+
1537
+ /***/ }),
1538
+ /* 41 */
1539
+ /***/ (function(module, exports, __webpack_require__) {
1540
+
1541
+ "use strict";
1542
+
1543
+
1544
+ Object.defineProperty(exports, "__esModule", {
1545
+ value: true
1546
+ });
1547
+
1548
+ /***/ }),
1549
+ /* 42 */
1550
+ /***/ (function(module, exports, __webpack_require__) {
1551
+
1552
+ "use strict";
1553
+
1554
+ /**
1555
+ * A data structure used at runtime to wire up a visualization.
1556
+ */
1557
+
1558
+ Object.defineProperty(exports, "__esModule", {
1559
+ value: true
1560
+ });
1561
+
1562
+ /***/ }),
1563
+ /* 43 */
1564
+ /***/ (function(module, exports, __webpack_require__) {
1565
+
1566
+ "use strict";
1567
+
1568
+
1569
+ Object.defineProperty(exports, "__esModule", {
1570
+ value: true
1571
+ });
1572
+
1573
+ /***/ }),
1574
+ /* 44 */
1575
+ /***/ (function(module, exports, __webpack_require__) {
1576
+
1577
+ "use strict";
1578
+
1579
+
1580
+ Object.defineProperty(exports, "__esModule", {
1581
+ value: true
1582
+ });
1583
+
1584
+ /***/ }),
1585
+ /* 45 */
1586
+ /***/ (function(module, exports, __webpack_require__) {
1587
+
1588
+ "use strict";
1589
+
1590
+
1591
+ Object.defineProperty(exports, "__esModule", {
1592
+ value: true
1593
+ });
1594
+
1595
+ /***/ }),
1596
+ /* 46 */
1597
+ /***/ (function(module, exports, __webpack_require__) {
1598
+
1599
+ "use strict";
1600
+
1601
+
1602
+ Object.defineProperty(exports, "__esModule", {
1603
+ value: true
1604
+ });
1605
+
1606
+ /***/ }),
1607
+ /* 47 */
1608
+ /***/ (function(module, exports, __webpack_require__) {
1609
+
1610
+ "use strict";
1611
+
1612
+
1613
+ Object.defineProperty(exports, "__esModule", {
1614
+ value: true
1615
+ });
1616
+
1617
+ /***/ }),
1618
+ /* 48 */
1619
+ /***/ (function(module, exports, __webpack_require__) {
1620
+
1621
+ "use strict";
1622
+
802
1623
 
803
- exports.getSortingParams = getSortingParams;
1624
+ Object.defineProperty(exports, "__esModule", {
1625
+ value: true
1626
+ });
804
1627
 
805
1628
  /***/ }),
806
- /* 34 */
1629
+ /* 49 */
807
1630
  /***/ (function(module, exports, __webpack_require__) {
808
1631
 
809
1632
  "use strict";
@@ -812,13 +1635,9 @@ exports.getSortingParams = getSortingParams;
812
1635
  Object.defineProperty(exports, "__esModule", {
813
1636
  value: true
814
1637
  });
815
- exports.validOutputModes = exports.validSegmentationModes = exports.validSortDirs = void 0;
816
- exports.validSortDirs = ['asc', 'desc', 'none'];
817
- exports.validSegmentationModes = ['none', 'inner'];
818
- exports.validOutputModes = ['json_cols', 'json'];
819
1638
 
820
1639
  /***/ }),
821
- /* 35 */
1640
+ /* 50 */
822
1641
  /***/ (function(module, exports, __webpack_require__) {
823
1642
 
824
1643
  "use strict";
@@ -827,62 +1646,42 @@ exports.validOutputModes = ['json_cols', 'json'];
827
1646
  Object.defineProperty(exports, "__esModule", {
828
1647
  value: true
829
1648
  });
830
- exports.getPaginationParams = exports.PaginatorParamsPropTypes = void 0;
831
1649
 
832
- var T = __webpack_require__(0);
1650
+ /***/ }),
1651
+ /* 51 */
1652
+ /***/ (function(module, exports, __webpack_require__) {
833
1653
 
834
- var lodash_1 = __webpack_require__(3);
1654
+ "use strict";
835
1655
 
836
- exports.PaginatorParamsPropTypes = T.shape({
837
- isPaging: T.bool,
838
- current: T.number,
839
- totalPages: T.number,
840
- onChange: T.func
1656
+
1657
+ Object.defineProperty(exports, "__esModule", {
1658
+ value: true
841
1659
  });
842
1660
 
843
- var getPaginationParams = function getPaginationParams(_ref) {
844
- var requestParams = _ref.requestParams,
845
- meta = _ref.meta,
846
- onRequestParamsChange = _ref.onRequestParamsChange;
847
- var totalCount = meta && meta.totalCount || 0;
848
- var offset = requestParams && requestParams.offset || 0;
849
- var count = requestParams && requestParams.count;
850
- var totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;
851
- var current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;
852
- var isPaging = totalPages > 1 && typeof onRequestParamsChange === 'function';
1661
+ /***/ }),
1662
+ /* 52 */
1663
+ /***/ (function(module, exports, __webpack_require__) {
853
1664
 
854
- var onChangeHandler = function onChangeHandler(e, _ref2) {
855
- var page = _ref2.page,
856
- countArg = _ref2.count;
857
- var newParams = (0, lodash_1.cloneDeep)(requestParams);
1665
+ "use strict";
858
1666
 
859
- if (typeof countArg === 'number') {
860
- newParams.count = countArg;
861
- newParams.offset = 0;
862
- }
863
1667
 
864
- var pageCount = typeof newParams.count === 'number' ? newParams.count : 10;
1668
+ Object.defineProperty(exports, "__esModule", {
1669
+ value: true
1670
+ });
865
1671
 
866
- if (typeof page === 'number' && page > 0) {
867
- newParams.count = pageCount;
868
- newParams.offset = (page - 1) * pageCount;
869
- }
1672
+ /***/ }),
1673
+ /* 53 */
1674
+ /***/ (function(module, exports, __webpack_require__) {
870
1675
 
871
- onRequestParamsChange(newParams);
872
- };
1676
+ "use strict";
873
1677
 
874
- return {
875
- isPaging: isPaging,
876
- current: current,
877
- totalPages: totalPages,
878
- onChange: typeof onRequestParamsChange === 'function' ? onChangeHandler : lodash_1.noop
879
- };
880
- };
881
1678
 
882
- exports.getPaginationParams = getPaginationParams;
1679
+ Object.defineProperty(exports, "__esModule", {
1680
+ value: true
1681
+ });
883
1682
 
884
1683
  /***/ }),
885
- /* 36 */
1684
+ /* 54 */
886
1685
  /***/ (function(module, exports, __webpack_require__) {
887
1686
 
888
1687
  "use strict";
@@ -891,78 +1690,78 @@ exports.getPaginationParams = getPaginationParams;
891
1690
  Object.defineProperty(exports, "__esModule", {
892
1691
  value: true
893
1692
  });
894
- exports.VizCategory = void 0;
895
- var VizCategory;
896
1693
 
897
- (function (VizCategory) {
898
- VizCategory["SINGLE_VALUE"] = "Single Value";
899
- VizCategory["TRENDS"] = "Trends";
900
- VizCategory["COMPARISONS"] = "Comparisons";
901
- VizCategory["TABLE"] = "Table";
902
- VizCategory["GAUGE"] = "Gauge";
903
- VizCategory["DISTRIBUTIONS"] = "Distributions";
904
- VizCategory["CHOROPLETH"] = "Choropleth Maps";
905
- VizCategory["SHAPES"] = "Shapes";
906
- VizCategory["MISC"] = "misc";
907
- VizCategory["FLOW"] = "Flow";
908
- VizCategory["CORRELATION"] = "Correlation";
909
- VizCategory["SPATIAL"] = "Spatial";
910
- })(VizCategory = exports.VizCategory || (exports.VizCategory = {}));
1694
+ /***/ }),
1695
+ /* 55 */
1696
+ /***/ (function(module, exports, __webpack_require__) {
1697
+
1698
+ "use strict";
1699
+
1700
+
1701
+ Object.defineProperty(exports, "__esModule", {
1702
+ value: true
1703
+ });
911
1704
 
912
1705
  /***/ }),
913
- /* 37 */
1706
+ /* 56 */
914
1707
  /***/ (function(module, exports, __webpack_require__) {
915
1708
 
916
1709
  "use strict";
917
1710
 
918
1711
 
919
- var _slicedToArray = __webpack_require__(17);
1712
+ var _slicedToArray = __webpack_require__(7);
920
1713
 
921
1714
  Object.defineProperty(exports, "__esModule", {
922
1715
  value: true
923
1716
  });
924
1717
 
925
- var React = __webpack_require__(1);
1718
+ var React = __webpack_require__(0);
926
1719
 
927
1720
  var lodash_1 = __webpack_require__(3);
928
1721
 
929
- var getSettingsFromThemedProps_1 = __webpack_require__(38);
1722
+ var getSettingsFromThemedProps_1 = __webpack_require__(57);
930
1723
 
931
- var Options_1 = __webpack_require__(30);
1724
+ var Options_1 = __webpack_require__(16);
932
1725
 
933
- var SanitizeProps_1 = __webpack_require__(39);
1726
+ var SanitizeProps_1 = __webpack_require__(58);
934
1727
 
935
- var TimezoneContext_1 = __webpack_require__(26);
1728
+ var TimezoneContext_1 = __webpack_require__(32);
936
1729
 
937
- var moment_1 = __webpack_require__(40);
1730
+ var moment_1 = __webpack_require__(59);
938
1731
 
939
- var FeatureFlagContext_1 = __webpack_require__(21);
1732
+ var FeatureFlagContext_1 = __webpack_require__(28);
940
1733
 
941
1734
  var styled_components_1 = __webpack_require__(4);
942
1735
 
943
- var hocUtils_1 = __webpack_require__(27);
1736
+ var hocUtils_1 = __webpack_require__(34);
944
1737
 
945
- var JSONSchemaUtils_1 = __webpack_require__(28);
1738
+ var JSONSchemaUtils_1 = __webpack_require__(35);
946
1739
 
947
- var async_dynamic_options_evaluator_1 = __webpack_require__(41);
1740
+ var async_dynamic_options_evaluator_1 = __webpack_require__(60);
948
1741
 
949
- var id_1 = __webpack_require__(25);
1742
+ var id_1 = __webpack_require__(31);
950
1743
 
951
- var SplunkVisualization_1 = __webpack_require__(42);
1744
+ var SplunkVisualization_1 = __webpack_require__(61);
952
1745
 
953
1746
  var VizBehavior_1 = __webpack_require__(6);
954
1747
 
955
- var getSorting_1 = __webpack_require__(33);
1748
+ var getSorting_1 = __webpack_require__(38);
956
1749
 
957
- var getPagination_1 = __webpack_require__(35);
1750
+ var getPagination_1 = __webpack_require__(39);
958
1751
 
959
- var useDeepMemo_1 = __webpack_require__(44);
1752
+ var useDeepMemo_1 = __webpack_require__(62);
960
1753
 
961
- var MissingPropsMessage_1 = __webpack_require__(45);
1754
+ var MissingPropsMessage_1 = __webpack_require__(63);
962
1755
 
963
- var withEditModeCover_1 = __webpack_require__(46);
1756
+ var withEditModeCover_1 = __webpack_require__(64);
964
1757
 
965
- var withPlaceholder_1 = __webpack_require__(47);
1758
+ var withPlaceholder_1 = __webpack_require__(65);
1759
+
1760
+ var useDownsampleDataSources_1 = __webpack_require__(66);
1761
+
1762
+ var dataUtils_1 = __webpack_require__(14);
1763
+
1764
+ var featureFlagUtils_1 = __webpack_require__(68);
966
1765
  /**
967
1766
  * hoc that wraps a pure react visualization in a Dashboard visualization
968
1767
  * @param {DashboardVizOpts} opts
@@ -1053,25 +1852,61 @@ var withDashboardViz = function withDashboardViz(opts) {
1053
1852
  dataFramesInState = _React$useState8[0],
1054
1853
  setDataFramesInState = _React$useState8[1];
1055
1854
 
1056
- var _React$useState9 = React.useState(Boolean(featureFlagContext === null || featureFlagContext === void 0 ? void 0 : featureFlagContext.visualizations_useWebWorkersForDSL)),
1855
+ var _React$useState9 = React.useState(Boolean((0, featureFlagUtils_1.getFeatureFlag)(featureFlagContext, 'visualizations_useWebWorkersForDSL'))),
1057
1856
  _React$useState10 = _slicedToArray(_React$useState9, 2),
1058
1857
  useAsyncEvaluatedOptions = _React$useState10[0],
1059
1858
  setUseAsyncEvaluatedOptions = _React$useState10[1];
1060
1859
 
1860
+ var isDownsamplingEnabledByFeatureFlag = Boolean(featureFlagContext === null || featureFlagContext === void 0 ? void 0 : featureFlagContext.visualizations_enableDownsampling);
1061
1861
  var isMounted = React.useRef(true);
1862
+ var optionsToEvaluate = React.useMemo(function () {
1863
+ return {
1864
+ context: (0, lodash_1.defaultsDeep)({}, context, vizConfig.defaultContext),
1865
+ options: (0, hocUtils_1.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions)
1866
+ };
1867
+ }, [options, context]);
1868
+
1869
+ var _React$useState11 = React.useState(Number(width)),
1870
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
1871
+ threshold = _React$useState12[0],
1872
+ setThreshold = _React$useState12[1];
1873
+
1874
+ var onDownsamplingThresholdChange = React.useCallback(function (newThreshold) {
1875
+ setThreshold(newThreshold);
1876
+ }, []);
1877
+ var isDownsamplingEnabled = React.useMemo(function () {
1878
+ return isDownsamplingEnabledByFeatureFlag && (0, dataUtils_1.isDownsamplingEnabledForViz)({
1879
+ vizConfig: vizConfig
1880
+ });
1881
+ }, [isDownsamplingEnabledByFeatureFlag]);
1882
+ var downsamplingProps = React.useMemo(function () {
1883
+ if (!isDownsamplingEnabled) {
1884
+ return {};
1885
+ }
1886
+
1887
+ return {
1888
+ onDownsamplingThresholdChange: onDownsamplingThresholdChange,
1889
+ originalDataSources: dataSources
1890
+ };
1891
+ }, [dataSources, isDownsamplingEnabled, onDownsamplingThresholdChange]);
1892
+ var downsampledDataSources = (0, useDownsampleDataSources_1.default)({
1893
+ options: optionsToEvaluate.options,
1894
+ context: optionsToEvaluate.context,
1895
+ dataSources: dataSources,
1896
+ threshold: threshold,
1897
+ isDownsamplingEnabled: isDownsamplingEnabled
1898
+ });
1062
1899
  evaluatedOptions = (0, useDeepMemo_1.useDeepMemo)(function () {
1063
1900
  try {
1064
1901
  if (useAsyncEvaluatedOptions) {
1065
- var optionsToEvaluate = {
1066
- context: (0, lodash_1.defaultsDeep)({}, context, vizConfig.defaultContext),
1067
- options: (0, hocUtils_1.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions)
1068
- };
1069
1902
  var asyncDynamicOptionsEvaluatorParams = {
1070
1903
  visualizationID: visualizationID,
1071
1904
  props: props,
1072
1905
  options: optionsToEvaluate,
1073
- dataSources: dataSources,
1074
- theme: vizConfig.themes
1906
+ dataSources: downsampledDataSources,
1907
+ theme: vizConfig.themes,
1908
+ bypassCloneDeepOptionScope: Boolean((0, featureFlagUtils_1.getFeatureFlag)(featureFlagContext, 'visualizations_bypassCloneDeepOptionScope')),
1909
+ lazyLoadingDataFrame: Boolean((0, featureFlagUtils_1.getFeatureFlag)(featureFlagContext, 'visualizations_lazyLoadingDataFrame'))
1075
1910
  };
1076
1911
  async_dynamic_options_evaluator_1.default.evaluate(asyncDynamicOptionsEvaluatorParams).then(function (results) {
1077
1912
  setEvaluatedOptionsAsync(results.results);
@@ -1083,16 +1918,14 @@ var withDashboardViz = function withDashboardViz(opts) {
1083
1918
  } else {
1084
1919
  var dataFrames = dataFramesInState;
1085
1920
 
1086
- if (dataSources !== dataSourcesInState) {
1087
- setDataSourcesInState(dataSources);
1088
- dataFrames = Options_1.Options.dataFrameFromDataSource(dataSources);
1921
+ if (downsampledDataSources !== dataSourcesInState) {
1922
+ setDataSourcesInState(downsampledDataSources);
1923
+ dataFrames = Options_1.Options.dataFrameFromDataSource(downsampledDataSources, (0, featureFlagUtils_1.getFeatureFlag)(featureFlagContext, 'visualizations_lazyLoadingDataFrame'));
1089
1924
  setDataFramesInState(dataFrames);
1090
1925
  }
1091
1926
 
1092
- return Options_1.Options.evaluate({
1093
- context: (0, lodash_1.defaultsDeep)({}, context, vizConfig.defaultContext),
1094
- options: (0, hocUtils_1.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions)
1095
- }, dataSources, themeFunc, dataFrames);
1927
+ var result = Options_1.Options.evaluate(optionsToEvaluate, downsampledDataSources, themeFunc, dataFrames, (0, featureFlagUtils_1.getFeatureFlag)(featureFlagContext, 'visualizations_bypassCloneDeepOptionScope'));
1928
+ return result;
1096
1929
  }
1097
1930
  } catch (e) {
1098
1931
  // eslint-disable-next-line no-console
@@ -1101,7 +1934,7 @@ var withDashboardViz = function withDashboardViz(opts) {
1101
1934
  }
1102
1935
 
1103
1936
  return {};
1104
- }, [currentThemeFamily, currentThemeColorScheme, currentThemeDensity, options, context, dataSources, serializedTimezone, useAsyncEvaluatedOptions]);
1937
+ }, [currentThemeFamily, currentThemeColorScheme, currentThemeDensity, optionsToEvaluate, downsampledDataSources, serializedTimezone, useAsyncEvaluatedOptions]);
1105
1938
  var evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync; // trellis specific backgroundColor update for onComputedProps
1106
1939
  // 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
1107
1940
  // onComputedProps api should return back trellisBackgroundColor value for backgroundColor option to support coloring of sibling panels (for eg:- title/ description on UDF side)
@@ -1243,7 +2076,7 @@ var withDashboardViz = function withDashboardViz(opts) {
1243
2076
  mode: mode,
1244
2077
  width: width,
1245
2078
  height: height
1246
- }, evaluatedOptionsToUse, computedVizProps, eventCallbackProps, dataSourceMetadata));
2079
+ }, downsamplingProps, evaluatedOptionsToUse, computedVizProps, eventCallbackProps, dataSourceMetadata));
1247
2080
  };
1248
2081
 
1249
2082
  DashboardViz.propTypes = Object.assign(Object.assign({}, SplunkVisualization_1.default.propTypes), ReactViz.propTypes);
@@ -1260,37 +2093,37 @@ var withDashboardViz = function withDashboardViz(opts) {
1260
2093
  exports.default = withDashboardViz;
1261
2094
 
1262
2095
  /***/ }),
1263
- /* 38 */
2096
+ /* 57 */
1264
2097
  /***/ (function(module, exports) {
1265
2098
 
1266
2099
  module.exports = require("@splunk/themes/getSettingsFromThemedProps");
1267
2100
 
1268
2101
  /***/ }),
1269
- /* 39 */
2102
+ /* 58 */
1270
2103
  /***/ (function(module, exports) {
1271
2104
 
1272
2105
  module.exports = require("@splunk/visualizations-shared/SanitizeProps");
1273
2106
 
1274
2107
  /***/ }),
1275
- /* 40 */
2108
+ /* 59 */
1276
2109
  /***/ (function(module, exports) {
1277
2110
 
1278
2111
  module.exports = require("@splunk/moment");
1279
2112
 
1280
2113
  /***/ }),
1281
- /* 41 */
2114
+ /* 60 */
1282
2115
  /***/ (function(module, exports) {
1283
2116
 
1284
2117
  module.exports = require("@splunk/async-dynamic-options-evaluator");
1285
2118
 
1286
2119
  /***/ }),
1287
- /* 42 */
2120
+ /* 61 */
1288
2121
  /***/ (function(module, exports, __webpack_require__) {
1289
2122
 
1290
2123
  "use strict";
1291
2124
 
1292
2125
 
1293
- var _classCallCheck = __webpack_require__(9);
2126
+ var _classCallCheck = __webpack_require__(10);
1294
2127
 
1295
2128
  Object.defineProperty(exports, "__esModule", {
1296
2129
  value: true
@@ -1298,11 +2131,11 @@ Object.defineProperty(exports, "__esModule", {
1298
2131
  exports.INITIAL_HEIGHT = exports.INITIAL_WIDTH = void 0;
1299
2132
  /* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */
1300
2133
 
1301
- var T = __webpack_require__(0);
2134
+ var T = __webpack_require__(1);
1302
2135
 
1303
2136
  var lodash_1 = __webpack_require__(3);
1304
2137
 
1305
- var VizActionHandler_1 = __webpack_require__(43); // this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations
2138
+ var VizActionHandler_1 = __webpack_require__(21); // this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations
1306
2139
 
1307
2140
 
1308
2141
  exports.INITIAL_WIDTH = 250;
@@ -1435,44 +2268,7 @@ SplunkVisualization.defaultProps = {
1435
2268
  exports.default = SplunkVisualization;
1436
2269
 
1437
2270
  /***/ }),
1438
- /* 43 */
1439
- /***/ (function(module, exports, __webpack_require__) {
1440
-
1441
- "use strict";
1442
-
1443
-
1444
- var _classCallCheck = __webpack_require__(9);
1445
-
1446
- var _createClass = __webpack_require__(18);
1447
-
1448
- Object.defineProperty(exports, "__esModule", {
1449
- value: true
1450
- });
1451
- exports.DefaultVizActionHandler = void 0;
1452
-
1453
- var DefaultVizActionHandler = /*#__PURE__*/function () {
1454
- function DefaultVizActionHandler() {
1455
- _classCallCheck(this, DefaultVizActionHandler);
1456
- }
1457
-
1458
- _createClass(DefaultVizActionHandler, [{
1459
- key: "focus",
1460
- value: function focus() {// noop
1461
- }
1462
- }, {
1463
- key: "snapshot",
1464
- value: function snapshot() {
1465
- return null; // noop
1466
- }
1467
- }]);
1468
-
1469
- return DefaultVizActionHandler;
1470
- }();
1471
-
1472
- exports.DefaultVizActionHandler = DefaultVizActionHandler;
1473
-
1474
- /***/ }),
1475
- /* 44 */
2271
+ /* 62 */
1476
2272
  /***/ (function(module, exports, __webpack_require__) {
1477
2273
 
1478
2274
  "use strict";
@@ -1483,7 +2279,7 @@ Object.defineProperty(exports, "__esModule", {
1483
2279
  });
1484
2280
  exports.useDeepMemo = void 0;
1485
2281
 
1486
- var react_1 = __webpack_require__(1);
2282
+ var react_1 = __webpack_require__(0);
1487
2283
 
1488
2284
  var lodash_1 = __webpack_require__(3);
1489
2285
  /**
@@ -1517,7 +2313,7 @@ var useDeepMemo = function useDeepMemo(fn, dependencies) {
1517
2313
  exports.useDeepMemo = useDeepMemo;
1518
2314
 
1519
2315
  /***/ }),
1520
- /* 45 */
2316
+ /* 63 */
1521
2317
  /***/ (function(module, exports, __webpack_require__) {
1522
2318
 
1523
2319
  "use strict";
@@ -1528,15 +2324,15 @@ Object.defineProperty(exports, "__esModule", {
1528
2324
  });
1529
2325
  exports.MissingPropsMessage = exports.missingKeys = exports.isMissing = void 0;
1530
2326
 
1531
- var React = __webpack_require__(1);
2327
+ var React = __webpack_require__(0);
1532
2328
 
1533
- var T = __webpack_require__(0);
2329
+ var T = __webpack_require__(1);
1534
2330
 
1535
2331
  var i18n_1 = __webpack_require__(2);
1536
2332
 
1537
- var Message_1 = __webpack_require__(10);
2333
+ var Message_1 = __webpack_require__(12);
1538
2334
 
1539
- var FixedSizeContainer_1 = __webpack_require__(13);
2335
+ var FixedSizeContainer_1 = __webpack_require__(17);
1540
2336
  /**
1541
2337
  * @method isMissing
1542
2338
  * @param {any} v
@@ -1597,7 +2393,7 @@ exports.MissingPropsMessage.defaultProps = {
1597
2393
  exports.default = (0, FixedSizeContainer_1.default)(exports.MissingPropsMessage);
1598
2394
 
1599
2395
  /***/ }),
1600
- /* 46 */
2396
+ /* 64 */
1601
2397
  /***/ (function(module, exports, __webpack_require__) {
1602
2398
 
1603
2399
  "use strict";
@@ -1607,18 +2403,18 @@ Object.defineProperty(exports, "__esModule", {
1607
2403
  value: true
1608
2404
  });
1609
2405
 
1610
- var React = __webpack_require__(1);
2406
+ var React = __webpack_require__(0);
1611
2407
 
1612
2408
  var styled_components_1 = __webpack_require__(4);
1613
2409
 
1614
- var hocUtils_1 = __webpack_require__(15);
2410
+ var hocUtils_1 = __webpack_require__(23);
1615
2411
 
1616
2412
  var Cover = styled_components_1.default.div.withConfig({
1617
2413
  displayName: "withEditModeCover__Cover",
1618
2414
  componentId: "sc-1gsbnxb-0"
1619
2415
  })(["position:absolute;left:0;right:0;top:0;bottom:0;"]);
1620
2416
  var Blocker = styled_components_1.default.div.attrs({
1621
- 'data-splunk-visualization-version': "26.1.1 - b6df0a015"
2417
+ 'data-splunk-visualization-version': "26.2.0 - 49b909915"
1622
2418
  }).withConfig({
1623
2419
  displayName: "withEditModeCover__Blocker",
1624
2420
  componentId: "sc-1gsbnxb-1"
@@ -1639,96 +2435,340 @@ var withEditModeCover = function withEditModeCover(Visualization, disableEditMod
1639
2435
  }));
1640
2436
  };
1641
2437
 
1642
- (0, hocUtils_1.extendStaticWrapperProps)({
1643
- Wrapper: Wrapper,
1644
- Visualization: Visualization
1645
- });
1646
- return Wrapper;
2438
+ (0, hocUtils_1.extendStaticWrapperProps)({
2439
+ Wrapper: Wrapper,
2440
+ Visualization: Visualization
2441
+ });
2442
+ return Wrapper;
2443
+ };
2444
+
2445
+ exports.default = withEditModeCover;
2446
+
2447
+ /***/ }),
2448
+ /* 65 */
2449
+ /***/ (function(module, exports, __webpack_require__) {
2450
+
2451
+ "use strict";
2452
+
2453
+
2454
+ Object.defineProperty(exports, "__esModule", {
2455
+ value: true
2456
+ });
2457
+
2458
+ var React = __webpack_require__(0);
2459
+
2460
+ var colorUtils_1 = __webpack_require__(15);
2461
+
2462
+ var variables_1 = __webpack_require__(13);
2463
+
2464
+ var IconPlaceholder_1 = __webpack_require__(37);
2465
+
2466
+ var VizBehavior_1 = __webpack_require__(6);
2467
+
2468
+ var hocUtils_1 = __webpack_require__(23);
2469
+
2470
+ var withPlaceholder = function withPlaceholder(Visualization) {
2471
+ var useIconPlaceholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IconPlaceholder_1.shouldShowIconPlaceholder;
2472
+ var config = Visualization.config;
2473
+ var themes = config.themes;
2474
+
2475
+ var Wrapper = function Wrapper(props) {
2476
+ var _a, _b;
2477
+
2478
+ var dataSources = props.dataSources,
2479
+ loading = props.loading,
2480
+ options = props.options,
2481
+ height = props.height,
2482
+ width = props.width;
2483
+ var showPlaceholder = useIconPlaceholder(dataSources, loading, options);
2484
+ 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);
2485
+ var icon = (_b = config.placeholderIcon) !== null && _b !== void 0 ? _b : config.icon;
2486
+ var iconColor = variables_1.default.contentColorActive(props);
2487
+
2488
+ if (config.supports.includes(VizBehavior_1.VizBehavior.PLACEHOLDER) && showPlaceholder) {
2489
+ return React.createElement(IconPlaceholder_1.default, {
2490
+ "data-test": "icon-placeholder",
2491
+ icon: icon,
2492
+ width: width,
2493
+ height: height,
2494
+ backgroundColor: bgColorFromTheme,
2495
+ iconColor: iconColor
2496
+ });
2497
+ }
2498
+
2499
+ return React.createElement(Visualization, Object.assign({}, props));
2500
+ };
2501
+
2502
+ (0, hocUtils_1.extendStaticWrapperProps)({
2503
+ Wrapper: Wrapper,
2504
+ Visualization: Visualization
2505
+ });
2506
+ return Wrapper;
2507
+ };
2508
+
2509
+ exports.default = withPlaceholder;
2510
+
2511
+ /***/ }),
2512
+ /* 66 */
2513
+ /***/ (function(module, exports, __webpack_require__) {
2514
+
2515
+ "use strict";
2516
+
2517
+
2518
+ var _slicedToArray = __webpack_require__(7);
2519
+
2520
+ Object.defineProperty(exports, "__esModule", {
2521
+ value: true
2522
+ });
2523
+
2524
+ var react_1 = __webpack_require__(0);
2525
+
2526
+ var lodash_1 = __webpack_require__(3);
2527
+
2528
+ var dataUtils_1 = __webpack_require__(14);
2529
+
2530
+ var usePrevious_1 = __webpack_require__(33);
2531
+
2532
+ var useGetXAndYFields_1 = __webpack_require__(67);
2533
+
2534
+ var useDownsampleDataSources = function useDownsampleDataSources(_ref) {
2535
+ var dataSources = _ref.dataSources,
2536
+ options = _ref.options,
2537
+ context = _ref.context,
2538
+ threshold = _ref.threshold,
2539
+ isDownsamplingEnabled = _ref.isDownsamplingEnabled;
2540
+ var isFirstUseEffectCall = (0, react_1.useRef)(true);
2541
+ var xAndYFieldsWithTypes = (0, useGetXAndYFields_1.default)({
2542
+ shouldEvaluateDSL: isDownsamplingEnabled,
2543
+ options: options,
2544
+ context: context,
2545
+ dataSources: dataSources
2546
+ });
2547
+ var previousXAndYFieldsWithTypes = (0, usePrevious_1.default)(xAndYFieldsWithTypes);
2548
+ var previousDataSources = (0, usePrevious_1.default)(dataSources);
2549
+ var previousThreshold = (0, usePrevious_1.default)(threshold);
2550
+
2551
+ var _ref2 = (0, react_1.useState)(function () {
2552
+ return isDownsamplingEnabled ? (0, dataUtils_1.downsampleDataSources)({
2553
+ dataSources: dataSources,
2554
+ threshold: threshold,
2555
+ options: xAndYFieldsWithTypes
2556
+ }) : dataSources;
2557
+ }),
2558
+ _ref3 = _slicedToArray(_ref2, 2),
2559
+ downsampledDataSources = _ref3[0],
2560
+ setDownsampledDataSources = _ref3[1];
2561
+
2562
+ var debouncedDownsampleDataSources = (0, react_1.useMemo)(function () {
2563
+ return (0, lodash_1.debounce)(function (downsampleOptions) {
2564
+ var downsampledResult = (0, dataUtils_1.downsampleDataSources)(downsampleOptions);
2565
+ setDownsampledDataSources(downsampledResult);
2566
+ }, 100, {
2567
+ trailing: true
2568
+ });
2569
+ }, []);
2570
+ (0, react_1.useEffect)(function () {
2571
+ // don't downsample again on the use effect call that happened due to the initial render
2572
+ // this is since we already downsampled as part of the useState call
2573
+ if (isFirstUseEffectCall.current) {
2574
+ isFirstUseEffectCall.current = false;
2575
+ return;
2576
+ }
2577
+
2578
+ if (!isDownsamplingEnabled) {
2579
+ setDownsampledDataSources(dataSources);
2580
+ return;
2581
+ }
2582
+
2583
+ if ((0, lodash_1.isEqual)(previousXAndYFieldsWithTypes, xAndYFieldsWithTypes) && previousDataSources === dataSources && previousThreshold === threshold) {
2584
+ return;
2585
+ } // Debounce the downsampling so we don't have to downsample and execute DSL multiple times
2586
+ // while the viz is being resized
2587
+
2588
+
2589
+ debouncedDownsampleDataSources({
2590
+ dataSources: dataSources,
2591
+ options: xAndYFieldsWithTypes,
2592
+ threshold: threshold
2593
+ }); // need to detect if this runs as part of the initial render
2594
+ }, [dataSources, debouncedDownsampleDataSources, xAndYFieldsWithTypes, threshold, isDownsamplingEnabled, previousXAndYFieldsWithTypes, previousDataSources, previousThreshold]);
2595
+ return downsampledDataSources;
1647
2596
  };
1648
2597
 
1649
- exports.default = withEditModeCover;
2598
+ exports.default = useDownsampleDataSources;
1650
2599
 
1651
2600
  /***/ }),
1652
- /* 47 */
2601
+ /* 67 */
1653
2602
  /***/ (function(module, exports, __webpack_require__) {
1654
2603
 
1655
2604
  "use strict";
1656
2605
 
1657
2606
 
2607
+ var _toConsumableArray = __webpack_require__(8);
2608
+
1658
2609
  Object.defineProperty(exports, "__esModule", {
1659
2610
  value: true
1660
2611
  });
1661
2612
 
1662
- var React = __webpack_require__(1);
2613
+ var react_1 = __webpack_require__(0);
1663
2614
 
1664
- var colorUtils_1 = __webpack_require__(12);
2615
+ var Options_1 = __webpack_require__(16);
2616
+ /**
2617
+ * Hook that evaluates the DSL for subset of a viz's options needed to determine
2618
+ * its x and y fields as well as the types of all its fields.
2619
+ */
1665
2620
 
1666
- var variables_1 = __webpack_require__(11);
1667
2621
 
1668
- var IconPlaceholder_1 = __webpack_require__(32);
2622
+ var useGetXAndYFields = function useGetXAndYFields(_ref) {
2623
+ var shouldEvaluateDSL = _ref.shouldEvaluateDSL,
2624
+ options = _ref.options,
2625
+ context = _ref.context,
2626
+ dataSources = _ref.dataSources;
1669
2627
 
1670
- var VizBehavior_1 = __webpack_require__(6);
2628
+ var _ref2 = (0, react_1.useMemo)(function () {
2629
+ var _a, _b, _c;
1671
2630
 
1672
- var hocUtils_1 = __webpack_require__(15);
2631
+ if (!shouldEvaluateDSL) {
2632
+ return {
2633
+ dataSourcesWithOnlyOnePoint: null,
2634
+ dataFrameWithOnlyOnePoint: null
2635
+ };
2636
+ }
1673
2637
 
1674
- var withPlaceholder = function withPlaceholder(Visualization) {
1675
- var useIconPlaceholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IconPlaceholder_1.shouldShowIconPlaceholder;
1676
- var config = Visualization.config;
1677
- var themes = config.themes;
2638
+ if (!((_c = (_b = (_a = dataSources === null || dataSources === void 0 ? void 0 : dataSources.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.columns) === null || _c === void 0 ? void 0 : _c.length)) {
2639
+ return {
2640
+ dataSourcesWithOnlyOnePoint: null,
2641
+ dataFrameWithOnlyOnePoint: null
2642
+ };
2643
+ }
1678
2644
 
1679
- var Wrapper = function Wrapper(props) {
1680
- var _a, _b;
2645
+ var primaryDS = dataSources.primary;
2646
+ var columnsWithOnlyOnePoint = primaryDS.data.columns.map(function (column) {
2647
+ return [column[0]];
2648
+ });
2649
+ var filteredDataSources = {
2650
+ primary: Object.assign(Object.assign({}, primaryDS), {
2651
+ data: Object.assign(Object.assign({}, primaryDS.data), {
2652
+ columns: columnsWithOnlyOnePoint
2653
+ })
2654
+ })
2655
+ };
2656
+ return {
2657
+ dataSourcesWithOnlyOnePoint: filteredDataSources,
2658
+ dataFrameWithOnlyOnePoint: Options_1.Options.dataFrameFromDataSource(filteredDataSources)
2659
+ };
2660
+ }, [dataSources, shouldEvaluateDSL]),
2661
+ dataSourcesWithOnlyOnePoint = _ref2.dataSourcesWithOnlyOnePoint,
2662
+ dataFrameWithOnlyOnePoint = _ref2.dataFrameWithOnlyOnePoint;
1681
2663
 
1682
- var dataSources = props.dataSources,
1683
- loading = props.loading,
1684
- options = props.options,
1685
- height = props.height,
1686
- width = props.width;
1687
- var showPlaceholder = useIconPlaceholder(dataSources, loading, options);
1688
- 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);
1689
- var icon = (_b = config.placeholderIcon) !== null && _b !== void 0 ? _b : config.icon;
1690
- var iconColor = variables_1.default.contentColorActive(props);
2664
+ var xAndYFieldsWithTypes = (0, react_1.useMemo)(function () {
2665
+ try {
2666
+ if (!dataSourcesWithOnlyOnePoint || !dataFrameWithOnlyOnePoint) {
2667
+ return options;
2668
+ }
1691
2669
 
1692
- if (config.supports.includes(VizBehavior_1.VizBehavior.PLACEHOLDER) && showPlaceholder) {
1693
- return React.createElement(IconPlaceholder_1.default, {
1694
- "data-test": "icon-placeholder",
1695
- icon: icon,
1696
- width: width,
1697
- height: height,
1698
- backgroundColor: bgColorFromTheme,
1699
- iconColor: iconColor
1700
- });
2670
+ if (!(options === null || options === void 0 ? void 0 : options.x) || !(options === null || options === void 0 ? void 0 : options.y) && !(options === null || options === void 0 ? void 0 : options.y2)) {
2671
+ return options;
2672
+ }
2673
+
2674
+ var optionsToEvaluate = {
2675
+ x: options.x,
2676
+ xField: '> x | getField()',
2677
+ y: options.y,
2678
+ yFields: options.y ? '> y | getField()' : undefined,
2679
+ y2: options.y2,
2680
+ y2Fields: options.y2 ? '> y2 | getField()' : undefined,
2681
+ fieldTypes: '> primary | getType()'
2682
+ };
2683
+
2684
+ var _Options_1$Options$ev = Options_1.Options.evaluate({
2685
+ options: optionsToEvaluate,
2686
+ context: context
2687
+ }, dataSourcesWithOnlyOnePoint, function () {}, dataFrameWithOnlyOnePoint),
2688
+ _Options_1$Options$ev2 = _Options_1$Options$ev.xField,
2689
+ xField = _Options_1$Options$ev2 === void 0 ? '' : _Options_1$Options$ev2,
2690
+ _Options_1$Options$ev3 = _Options_1$Options$ev.yFields,
2691
+ yFields = _Options_1$Options$ev3 === void 0 ? [] : _Options_1$Options$ev3,
2692
+ _Options_1$Options$ev4 = _Options_1$Options$ev.y2Fields,
2693
+ y2Fields = _Options_1$Options$ev4 === void 0 ? [] : _Options_1$Options$ev4,
2694
+ fieldTypes = _Options_1$Options$ev.fieldTypes;
2695
+
2696
+ return {
2697
+ xField: xField,
2698
+ yFields: [].concat(_toConsumableArray(yFields), _toConsumableArray(y2Fields)),
2699
+ fieldTypes: fieldTypes
2700
+ };
2701
+ } catch (e) {
2702
+ return {
2703
+ xField: undefined,
2704
+ yFields: [],
2705
+ fieldTypes: []
2706
+ };
1701
2707
  }
2708
+ }, [options, context, dataSourcesWithOnlyOnePoint, dataFrameWithOnlyOnePoint]);
2709
+ return xAndYFieldsWithTypes;
2710
+ };
1702
2711
 
1703
- return React.createElement(Visualization, Object.assign({}, props));
1704
- };
2712
+ exports.default = useGetXAndYFields;
1705
2713
 
1706
- (0, hocUtils_1.extendStaticWrapperProps)({
1707
- Wrapper: Wrapper,
1708
- Visualization: Visualization
1709
- });
1710
- return Wrapper;
2714
+ /***/ }),
2715
+ /* 68 */
2716
+ /***/ (function(module, exports, __webpack_require__) {
2717
+
2718
+ "use strict";
2719
+
2720
+
2721
+ Object.defineProperty(exports, "__esModule", {
2722
+ value: true
2723
+ });
2724
+ exports.getFeatureFlag = void 0;
2725
+
2726
+ var FeatureFlags_1 = __webpack_require__(69);
2727
+
2728
+ var getFeatureFlag = function getFeatureFlag(context, flagName) {
2729
+ // look for feature flag in context first
2730
+ if (context && Object.keys(context).find(function (key) {
2731
+ return key === flagName;
2732
+ })) {
2733
+ return context[flagName];
2734
+ } // fall back to defaults
2735
+
2736
+
2737
+ if (Object.keys(FeatureFlags_1.default).find(function (key) {
2738
+ return key === flagName;
2739
+ })) {
2740
+ return FeatureFlags_1.default[flagName];
2741
+ } // fall back to false
2742
+
2743
+
2744
+ return false;
1711
2745
  };
1712
2746
 
1713
- exports.default = withPlaceholder;
2747
+ exports.getFeatureFlag = getFeatureFlag;
1714
2748
 
1715
2749
  /***/ }),
1716
- /* 48 */,
1717
- /* 49 */,
1718
- /* 50 */
2750
+ /* 69 */
2751
+ /***/ (function(module, exports) {
2752
+
2753
+ module.exports = require("@splunk/visualization-context/FeatureFlags");
2754
+
2755
+ /***/ }),
2756
+ /* 70 */,
2757
+ /* 71 */,
2758
+ /* 72 */
1719
2759
  /***/ (function(module, exports) {
1720
2760
 
1721
2761
  module.exports = require("@splunk/visualization-icons/placeholders");
1722
2762
 
1723
2763
  /***/ }),
1724
- /* 51 */,
1725
- /* 52 */
2764
+ /* 73 */,
2765
+ /* 74 */
1726
2766
  /***/ (function(module, exports) {
1727
2767
 
1728
2768
  module.exports = require("@splunk/visualization-icons");
1729
2769
 
1730
2770
  /***/ }),
1731
- /* 53 */
2771
+ /* 75 */
1732
2772
  /***/ (function(module, exports, __webpack_require__) {
1733
2773
 
1734
2774
  "use strict";
@@ -1758,57 +2798,30 @@ var background = function background(_ref) {
1758
2798
  exports.default = background;
1759
2799
 
1760
2800
  /***/ }),
1761
- /* 54 */,
1762
- /* 55 */,
1763
- /* 56 */,
1764
- /* 57 */,
1765
- /* 58 */,
1766
- /* 59 */
2801
+ /* 76 */,
2802
+ /* 77 */,
2803
+ /* 78 */,
2804
+ /* 79 */,
2805
+ /* 80 */,
2806
+ /* 81 */
1767
2807
  /***/ (function(module, exports) {
1768
2808
 
1769
2809
  module.exports = require("@babel/runtime/helpers/taggedTemplateLiteral");
1770
2810
 
1771
2811
  /***/ }),
1772
- /* 60 */
2812
+ /* 82 */
1773
2813
  /***/ (function(module, exports) {
1774
2814
 
1775
2815
  module.exports = require("@splunk/themes");
1776
2816
 
1777
2817
  /***/ }),
1778
- /* 61 */,
1779
- /* 62 */
2818
+ /* 83 */,
2819
+ /* 84 */
1780
2820
  /***/ (function(module, exports) {
1781
2821
 
1782
2822
  module.exports = require("@splunk/react-ui/Popover");
1783
2823
 
1784
2824
  /***/ }),
1785
- /* 63 */,
1786
- /* 64 */,
1787
- /* 65 */,
1788
- /* 66 */,
1789
- /* 67 */,
1790
- /* 68 */,
1791
- /* 69 */,
1792
- /* 70 */,
1793
- /* 71 */,
1794
- /* 72 */,
1795
- /* 73 */,
1796
- /* 74 */,
1797
- /* 75 */,
1798
- /* 76 */,
1799
- /* 77 */,
1800
- /* 78 */,
1801
- /* 79 */,
1802
- /* 80 */,
1803
- /* 81 */,
1804
- /* 82 */
1805
- /***/ (function(module, exports) {
1806
-
1807
- module.exports = require("@babel/runtime/helpers/typeof");
1808
-
1809
- /***/ }),
1810
- /* 83 */,
1811
- /* 84 */,
1812
2825
  /* 85 */,
1813
2826
  /* 86 */,
1814
2827
  /* 87 */,
@@ -1821,12 +2834,7 @@ module.exports = require("@babel/runtime/helpers/typeof");
1821
2834
  /* 94 */,
1822
2835
  /* 95 */,
1823
2836
  /* 96 */,
1824
- /* 97 */
1825
- /***/ (function(module, exports) {
1826
-
1827
- module.exports = require("@splunk/visualizations-shared/dataSourceUtils");
1828
-
1829
- /***/ }),
2837
+ /* 97 */,
1830
2838
  /* 98 */,
1831
2839
  /* 99 */,
1832
2840
  /* 100 */,
@@ -1834,7 +2842,12 @@ module.exports = require("@splunk/visualizations-shared/dataSourceUtils");
1834
2842
  /* 102 */,
1835
2843
  /* 103 */,
1836
2844
  /* 104 */,
1837
- /* 105 */,
2845
+ /* 105 */
2846
+ /***/ (function(module, exports) {
2847
+
2848
+ module.exports = require("@babel/runtime/helpers/typeof");
2849
+
2850
+ /***/ }),
1838
2851
  /* 106 */,
1839
2852
  /* 107 */,
1840
2853
  /* 108 */,
@@ -1848,36 +2861,64 @@ module.exports = require("@splunk/visualizations-shared/dataSourceUtils");
1848
2861
  /* 116 */,
1849
2862
  /* 117 */,
1850
2863
  /* 118 */,
1851
- /* 119 */
2864
+ /* 119 */,
2865
+ /* 120 */
2866
+ /***/ (function(module, exports) {
2867
+
2868
+ module.exports = require("@splunk/visualizations-shared/dataSourceUtils");
2869
+
2870
+ /***/ }),
2871
+ /* 121 */,
2872
+ /* 122 */,
2873
+ /* 123 */,
2874
+ /* 124 */,
2875
+ /* 125 */,
2876
+ /* 126 */,
2877
+ /* 127 */,
2878
+ /* 128 */,
2879
+ /* 129 */,
2880
+ /* 130 */,
2881
+ /* 131 */,
2882
+ /* 132 */,
2883
+ /* 133 */,
2884
+ /* 134 */,
2885
+ /* 135 */,
2886
+ /* 136 */,
2887
+ /* 137 */,
2888
+ /* 138 */,
2889
+ /* 139 */,
2890
+ /* 140 */,
2891
+ /* 141 */,
2892
+ /* 142 */
1852
2893
  /***/ (function(module, exports) {
1853
2894
 
1854
2895
  module.exports = require("@splunk/react-ui/Menu");
1855
2896
 
1856
2897
  /***/ }),
1857
- /* 120 */
2898
+ /* 143 */
1858
2899
  /***/ (function(module, exports, __webpack_require__) {
1859
2900
 
1860
2901
  "use strict";
1861
2902
 
1862
2903
 
1863
- var _typeof = __webpack_require__(82);
2904
+ var _typeof = __webpack_require__(105);
1864
2905
 
1865
- var _slicedToArray = __webpack_require__(17);
2906
+ var _slicedToArray = __webpack_require__(7);
1866
2907
 
1867
2908
  var _toConsumableArray = __webpack_require__(8);
1868
2909
 
1869
- var _defineProperty = __webpack_require__(7);
2910
+ var _defineProperty = __webpack_require__(9);
1870
2911
 
1871
2912
  Object.defineProperty(exports, "__esModule", {
1872
2913
  value: true
1873
2914
  });
1874
2915
  exports.combineHighlighted = exports.convertToHighlightValuesByFieldMap = exports.truncateString = exports.getCustomTimeInterval = exports.getPredefinedTimeInterval = exports.getEpochTime = exports.generateTokenReplacementMap = exports.replaceTokens = exports.mergeFieldActions = exports.mergeEventActions = exports.getFieldSummaryMapping = exports.convertToPayloadFormat = void 0;
1875
2916
 
1876
- var time_1 = __webpack_require__(207);
2917
+ var time_1 = __webpack_require__(229);
1877
2918
 
1878
2919
  var lodash_1 = __webpack_require__(3);
1879
2920
 
1880
- var dataUtils_1 = __webpack_require__(121); // util to convert a field-value map into an object with row.<fieldname>.value keys for payloads
2921
+ var dataUtils_1 = __webpack_require__(14); // util to convert a field-value map into an object with row.<fieldname>.value keys for payloads
1881
2922
 
1882
2923
 
1883
2924
  var convertToPayloadFormat = function convertToPayloadFormat(obj) {
@@ -2233,94 +3274,55 @@ var combineHighlighted = function combineHighlighted(highlightedSource, highligh
2233
3274
  exports.combineHighlighted = combineHighlighted;
2234
3275
 
2235
3276
  /***/ }),
2236
- /* 121 */
2237
- /***/ (function(module, exports, __webpack_require__) {
2238
-
2239
- "use strict";
2240
-
2241
-
2242
- Object.defineProperty(exports, "__esModule", {
2243
- value: true
2244
- });
2245
- exports.convertToArrOfObjects = void 0; // TODO: utilize this fn in ParallelCoordinates
2246
-
2247
- var convertToArrOfObjects = function convertToArrOfObjects(columns, fields) {
2248
- if (!columns || !columns[0] || !columns[0].length) return [];
2249
- var data = [];
2250
-
2251
- var _loop = function _loop(i) {
2252
- var newObj = {};
2253
- fields.forEach(function (field, index) {
2254
- var fieldName = typeof field === 'string' ? field : field.name;
2255
-
2256
- if (columns[index][i] === '') {
2257
- newObj[fieldName] = null;
2258
- } else {
2259
- newObj[fieldName] = columns[index][i];
2260
- }
2261
- });
2262
- data.push(newObj);
2263
- };
2264
-
2265
- for (var i = 0; i < columns[0].length; i += 1) {
2266
- _loop(i);
2267
- }
2268
-
2269
- return data;
2270
- };
2271
-
2272
- exports.convertToArrOfObjects = convertToArrOfObjects;
2273
-
2274
- /***/ }),
2275
- /* 122 */
3277
+ /* 144 */
2276
3278
  /***/ (function(module, exports) {
2277
3279
 
2278
3280
  module.exports = require("@splunk/react-ui/Markdown");
2279
3281
 
2280
3282
  /***/ }),
2281
- /* 123 */
3283
+ /* 145 */
2282
3284
  /***/ (function(module, exports) {
2283
3285
 
2284
3286
  module.exports = require("@splunk/react-ui/Button");
2285
3287
 
2286
3288
  /***/ }),
2287
- /* 124 */
3289
+ /* 146 */
2288
3290
  /***/ (function(module, exports) {
2289
3291
 
2290
3292
  module.exports = require("@splunk/react-ui/Message");
2291
3293
 
2292
3294
  /***/ }),
2293
- /* 125 */
3295
+ /* 147 */
2294
3296
  /***/ (function(module, exports) {
2295
3297
 
2296
3298
  module.exports = require("@splunk/react-ui/Heading");
2297
3299
 
2298
3300
  /***/ }),
2299
- /* 126 */,
2300
- /* 127 */,
2301
- /* 128 */,
2302
- /* 129 */,
2303
- /* 130 */,
2304
- /* 131 */,
2305
- /* 132 */,
2306
- /* 133 */,
2307
- /* 134 */,
2308
- /* 135 */,
2309
- /* 136 */,
2310
- /* 137 */,
2311
- /* 138 */,
2312
- /* 139 */,
2313
- /* 140 */,
2314
- /* 141 */,
2315
- /* 142 */,
2316
- /* 143 */,
2317
- /* 144 */,
2318
- /* 145 */,
2319
- /* 146 */,
2320
- /* 147 */,
2321
3301
  /* 148 */,
2322
3302
  /* 149 */,
2323
- /* 150 */
3303
+ /* 150 */,
3304
+ /* 151 */,
3305
+ /* 152 */,
3306
+ /* 153 */,
3307
+ /* 154 */,
3308
+ /* 155 */,
3309
+ /* 156 */,
3310
+ /* 157 */,
3311
+ /* 158 */,
3312
+ /* 159 */,
3313
+ /* 160 */,
3314
+ /* 161 */,
3315
+ /* 162 */,
3316
+ /* 163 */,
3317
+ /* 164 */,
3318
+ /* 165 */,
3319
+ /* 166 */,
3320
+ /* 167 */,
3321
+ /* 168 */,
3322
+ /* 169 */,
3323
+ /* 170 */,
3324
+ /* 171 */,
3325
+ /* 172 */
2324
3326
  /***/ (function(module, exports, __webpack_require__) {
2325
3327
 
2326
3328
  "use strict";
@@ -2346,21 +3348,21 @@ exports.replaceTokens = exports.PureEvents = exports.config = exports.themes = e
2346
3348
 
2347
3349
  var lodash_1 = __webpack_require__(3);
2348
3350
 
2349
- var dataSourceUtils_1 = __webpack_require__(97);
3351
+ var dataSourceUtils_1 = __webpack_require__(120);
2350
3352
 
2351
- var withDashboardViz_1 = __webpack_require__(37);
3353
+ var withDashboardViz_1 = __webpack_require__(56);
2352
3354
 
2353
- var constants_1 = __webpack_require__(151);
3355
+ var constants_1 = __webpack_require__(173);
2354
3356
 
2355
- var config_1 = __webpack_require__(204);
3357
+ var config_1 = __webpack_require__(226);
2356
3358
 
2357
3359
  exports.config = config_1.default;
2358
3360
 
2359
- var PureEvents_1 = __webpack_require__(205);
3361
+ var PureEvents_1 = __webpack_require__(227);
2360
3362
 
2361
3363
  exports.PureEvents = PureEvents_1.default;
2362
3364
 
2363
- var EventUtils_1 = __webpack_require__(120);
3365
+ var EventUtils_1 = __webpack_require__(143);
2364
3366
 
2365
3367
  Object.defineProperty(exports, "replaceTokens", {
2366
3368
  enumerable: true,
@@ -2411,7 +3413,7 @@ exports.themes = themes;
2411
3413
  exports.default = Events;
2412
3414
 
2413
3415
  /***/ }),
2414
- /* 151 */
3416
+ /* 173 */
2415
3417
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2416
3418
 
2417
3419
  "use strict";
@@ -2423,7 +3425,8 @@ __webpack_require__.r(__webpack_exports__);
2423
3425
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY_DATASOURCE", function() { return EMPTY_DATASOURCE; });
2424
3426
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FIELDSUMMARY_DS_STORYBOOK", function() { return FIELDSUMMARY_DS_STORYBOOK; });
2425
3427
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FIELDSUMMARY_DS_DOC_HUB", function() { return FIELDSUMMARY_DS_DOC_HUB; });
2426
- /* harmony import */ var _splunk_datasource_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170);
3428
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TAGS_DEFAULT", function() { return TAGS_DEFAULT; });
3429
+ /* harmony import */ var _splunk_datasource_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(192);
2427
3430
  /* harmony import */ var _splunk_datasource_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_splunk_datasource_utils__WEBPACK_IMPORTED_MODULE_0__);
2428
3431
  // TODO: convert this file to .ts - created as .js as copied from SUI EventsViewer repo
2429
3432
 
@@ -2902,41 +3905,22 @@ var FIELDSUMMARY_DS_DOC_HUB = {
2902
3905
  totalCount: 6
2903
3906
  }
2904
3907
  };
3908
+ var TAGS_DEFAULT = {
3909
+ sourcetype: {
3910
+ splunkd: ['tag1', 'tag2']
3911
+ },
3912
+ index: {
3913
+ _internal: ['0_=.Aa']
3914
+ }
3915
+ };
2905
3916
 
2906
3917
  /***/ }),
2907
- /* 152 */
3918
+ /* 174 */
2908
3919
  /***/ (function(module, exports) {
2909
3920
 
2910
3921
  module.exports = require("@splunk/visualization-context/EventsContext");
2911
3922
 
2912
3923
  /***/ }),
2913
- /* 153 */,
2914
- /* 154 */,
2915
- /* 155 */,
2916
- /* 156 */,
2917
- /* 157 */,
2918
- /* 158 */,
2919
- /* 159 */,
2920
- /* 160 */,
2921
- /* 161 */,
2922
- /* 162 */,
2923
- /* 163 */,
2924
- /* 164 */,
2925
- /* 165 */,
2926
- /* 166 */,
2927
- /* 167 */,
2928
- /* 168 */,
2929
- /* 169 */,
2930
- /* 170 */
2931
- /***/ (function(module, exports) {
2932
-
2933
- module.exports = require("@splunk/datasource-utils");
2934
-
2935
- /***/ }),
2936
- /* 171 */,
2937
- /* 172 */,
2938
- /* 173 */,
2939
- /* 174 */,
2940
3924
  /* 175 */,
2941
3925
  /* 176 */,
2942
3926
  /* 177 */,
@@ -2954,7 +3938,12 @@ module.exports = require("@splunk/datasource-utils");
2954
3938
  /* 189 */,
2955
3939
  /* 190 */,
2956
3940
  /* 191 */,
2957
- /* 192 */,
3941
+ /* 192 */
3942
+ /***/ (function(module, exports) {
3943
+
3944
+ module.exports = require("@splunk/datasource-utils");
3945
+
3946
+ /***/ }),
2958
3947
  /* 193 */,
2959
3948
  /* 194 */,
2960
3949
  /* 195 */,
@@ -2965,7 +3954,29 @@ module.exports = require("@splunk/datasource-utils");
2965
3954
  /* 200 */,
2966
3955
  /* 201 */,
2967
3956
  /* 202 */,
2968
- /* 203 */
3957
+ /* 203 */,
3958
+ /* 204 */,
3959
+ /* 205 */,
3960
+ /* 206 */,
3961
+ /* 207 */,
3962
+ /* 208 */,
3963
+ /* 209 */,
3964
+ /* 210 */,
3965
+ /* 211 */,
3966
+ /* 212 */,
3967
+ /* 213 */,
3968
+ /* 214 */,
3969
+ /* 215 */,
3970
+ /* 216 */,
3971
+ /* 217 */,
3972
+ /* 218 */,
3973
+ /* 219 */,
3974
+ /* 220 */,
3975
+ /* 221 */,
3976
+ /* 222 */,
3977
+ /* 223 */,
3978
+ /* 224 */,
3979
+ /* 225 */
2969
3980
  /***/ (function(module, exports, __webpack_require__) {
2970
3981
 
2971
3982
  "use strict";
@@ -3001,9 +4012,9 @@ Object.defineProperty(exports, "__esModule", {
3001
4012
  });
3002
4013
  exports.default = void 0;
3003
4014
 
3004
- __exportStar(__webpack_require__(150), exports);
4015
+ __exportStar(__webpack_require__(172), exports);
3005
4016
 
3006
- var Events_1 = __webpack_require__(150);
4017
+ var Events_1 = __webpack_require__(172);
3007
4018
 
3008
4019
  Object.defineProperty(exports, "default", {
3009
4020
  enumerable: true,
@@ -3013,7 +4024,7 @@ Object.defineProperty(exports, "default", {
3013
4024
  });
3014
4025
 
3015
4026
  /***/ }),
3016
- /* 204 */
4027
+ /* 226 */
3017
4028
  /***/ (function(module, exports, __webpack_require__) {
3018
4029
 
3019
4030
  "use strict";
@@ -3023,25 +4034,25 @@ Object.defineProperty(exports, "__esModule", {
3023
4034
  value: true
3024
4035
  });
3025
4036
 
3026
- var visualization_icons_1 = __webpack_require__(52);
4037
+ var visualization_icons_1 = __webpack_require__(74);
3027
4038
 
3028
- var placeholders_1 = __webpack_require__(50);
4039
+ var placeholders_1 = __webpack_require__(72);
3029
4040
 
3030
- var schemaUtils_1 = __webpack_require__(16);
4041
+ var schemaUtils_1 = __webpack_require__(24);
3031
4042
 
3032
- var themes_1 = __webpack_require__(60);
4043
+ var themes_1 = __webpack_require__(82);
3033
4044
 
3034
4045
  var i18n_1 = __webpack_require__(2);
3035
4046
 
3036
- var DataSource_1 = __webpack_require__(34);
4047
+ var DataSource_1 = __webpack_require__(19);
3037
4048
 
3038
4049
  var VizBehavior_1 = __webpack_require__(6);
3039
4050
 
3040
- var VizCategory_1 = __webpack_require__(36);
4051
+ var VizCategory_1 = __webpack_require__(22);
3041
4052
 
3042
- var configUtils_1 = __webpack_require__(20);
4053
+ var configUtils_1 = __webpack_require__(27);
3043
4054
 
3044
- var BackgroundColor_1 = __webpack_require__(53);
4055
+ var BackgroundColor_1 = __webpack_require__(75);
3045
4056
 
3046
4057
  var defaultContext = {};
3047
4058
  var dataContract = {
@@ -3259,6 +4270,9 @@ var config = {
3259
4270
  },
3260
4271
  'time.click': {
3261
4272
  description: 'Triggered when a user clicks to drilldown in the time controls popover.'
4273
+ },
4274
+ 'tag.click': {
4275
+ description: 'Triggered when a user clicks a tag in an event.'
3262
4276
  }
3263
4277
  },
3264
4278
  supports: [VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS, VizBehavior_1.VizBehavior.EVENTS, VizBehavior_1.VizBehavior.PLACEHOLDER],
@@ -3268,53 +4282,53 @@ var config = {
3268
4282
  exports.default = (0, configUtils_1.enhanceConfig)(config);
3269
4283
 
3270
4284
  /***/ }),
3271
- /* 205 */
4285
+ /* 227 */
3272
4286
  /***/ (function(module, exports, __webpack_require__) {
3273
4287
 
3274
4288
  "use strict";
3275
4289
 
3276
4290
 
3277
- var _typeof = __webpack_require__(82);
4291
+ var _typeof = __webpack_require__(105);
3278
4292
 
3279
- var _slicedToArray = __webpack_require__(17);
4293
+ var _slicedToArray = __webpack_require__(7);
3280
4294
 
3281
4295
  Object.defineProperty(exports, "__esModule", {
3282
4296
  value: true
3283
4297
  });
3284
4298
 
3285
- var React = __webpack_require__(1);
4299
+ var React = __webpack_require__(0);
3286
4300
 
3287
- var react_1 = __webpack_require__(1);
4301
+ var react_1 = __webpack_require__(0);
3288
4302
 
3289
- var T = __webpack_require__(0);
4303
+ var T = __webpack_require__(1);
3290
4304
 
3291
- var EventsViewer_1 = __webpack_require__(206);
4305
+ var EventsViewer_1 = __webpack_require__(228);
3292
4306
 
3293
4307
  var styled_components_1 = __webpack_require__(4);
3294
4308
 
3295
- var pick_1 = __webpack_require__(23);
4309
+ var pick_1 = __webpack_require__(30);
3296
4310
 
3297
- var variables_1 = __webpack_require__(11);
4311
+ var variables_1 = __webpack_require__(13);
3298
4312
 
3299
- var colorUtils_1 = __webpack_require__(12);
4313
+ var colorUtils_1 = __webpack_require__(15);
3300
4314
 
3301
- var style_1 = __webpack_require__(14);
4315
+ var style_1 = __webpack_require__(18);
3302
4316
 
3303
- var EventsContext_1 = __webpack_require__(152);
4317
+ var EventsContext_1 = __webpack_require__(174);
3304
4318
 
3305
4319
  var lodash_1 = __webpack_require__(3);
3306
4320
 
3307
- var Menu_1 = __webpack_require__(119);
4321
+ var Menu_1 = __webpack_require__(142);
3308
4322
 
3309
- var constants_1 = __webpack_require__(151);
4323
+ var constants_1 = __webpack_require__(173);
3310
4324
 
3311
- var FixedSizeContainer_1 = __webpack_require__(13);
4325
+ var FixedSizeContainer_1 = __webpack_require__(17);
3312
4326
 
3313
- var EventUtils_1 = __webpack_require__(120);
4327
+ var EventUtils_1 = __webpack_require__(143);
3314
4328
 
3315
- var FieldSummaryTooltip_1 = __webpack_require__(208);
4329
+ var FieldSummaryTooltip_1 = __webpack_require__(230);
3316
4330
 
3317
- var TimeControlsPopover_1 = __webpack_require__(210); // Inspired by VizTableContainer in PureTable.tsx
4331
+ var TimeControlsPopover_1 = __webpack_require__(232); // Inspired by VizTableContainer in PureTable.tsx
3318
4332
 
3319
4333
 
3320
4334
  var EventsContainer = styled_components_1.default.div.withConfig({
@@ -3707,25 +4721,25 @@ PureEvents.defaultProps = {
3707
4721
  exports.default = (0, FixedSizeContainer_1.default)(PureEvents);
3708
4722
 
3709
4723
  /***/ }),
3710
- /* 206 */
4724
+ /* 228 */
3711
4725
  /***/ (function(module, exports) {
3712
4726
 
3713
4727
  module.exports = require("@splunk/react-events-viewer/components/EventsViewer");
3714
4728
 
3715
4729
  /***/ }),
3716
- /* 207 */
4730
+ /* 229 */
3717
4731
  /***/ (function(module, exports) {
3718
4732
 
3719
4733
  module.exports = require("@splunk/time-range-utils/time");
3720
4734
 
3721
4735
  /***/ }),
3722
- /* 208 */
4736
+ /* 230 */
3723
4737
  /***/ (function(module, exports, __webpack_require__) {
3724
4738
 
3725
4739
  "use strict";
3726
4740
 
3727
4741
 
3728
- var _taggedTemplateLiteral = __webpack_require__(59);
4742
+ var _taggedTemplateLiteral = __webpack_require__(81);
3729
4743
 
3730
4744
  var _templateObject;
3731
4745
 
@@ -3733,15 +4747,15 @@ Object.defineProperty(exports, "__esModule", {
3733
4747
  value: true
3734
4748
  });
3735
4749
 
3736
- var React = __webpack_require__(1);
4750
+ var React = __webpack_require__(0);
3737
4751
 
3738
- var react_1 = __webpack_require__(1);
4752
+ var react_1 = __webpack_require__(0);
3739
4753
 
3740
- var Popover_1 = __webpack_require__(62);
4754
+ var Popover_1 = __webpack_require__(84);
3741
4755
 
3742
- var Markdown_1 = __webpack_require__(122);
4756
+ var Markdown_1 = __webpack_require__(144);
3743
4757
 
3744
- var FieldSummary_1 = __webpack_require__(209);
4758
+ var FieldSummary_1 = __webpack_require__(231);
3745
4759
 
3746
4760
  var lodash_1 = __webpack_require__(3);
3747
4761
 
@@ -3749,7 +4763,7 @@ var i18n_1 = __webpack_require__(2);
3749
4763
 
3750
4764
  var styled_components_1 = __webpack_require__(4);
3751
4765
 
3752
- var EventsContext_1 = __webpack_require__(152);
4766
+ var EventsContext_1 = __webpack_require__(174);
3753
4767
 
3754
4768
  var popoverContainerStyle = {
3755
4769
  padding: '20px',
@@ -3846,21 +4860,21 @@ FieldSummaryTooltip.defaultProps = {
3846
4860
  exports.default = FieldSummaryTooltip;
3847
4861
 
3848
4862
  /***/ }),
3849
- /* 209 */
4863
+ /* 231 */
3850
4864
  /***/ (function(module, exports) {
3851
4865
 
3852
4866
  module.exports = require("@splunk/react-field-summary/components/FieldSummary");
3853
4867
 
3854
4868
  /***/ }),
3855
- /* 210 */
4869
+ /* 232 */
3856
4870
  /***/ (function(module, exports, __webpack_require__) {
3857
4871
 
3858
4872
  "use strict";
3859
4873
 
3860
4874
 
3861
- var _slicedToArray = __webpack_require__(17);
4875
+ var _slicedToArray = __webpack_require__(7);
3862
4876
 
3863
- var _taggedTemplateLiteral = __webpack_require__(59);
4877
+ var _taggedTemplateLiteral = __webpack_require__(81);
3864
4878
 
3865
4879
  var _templateObject;
3866
4880
 
@@ -3868,23 +4882,23 @@ Object.defineProperty(exports, "__esModule", {
3868
4882
  value: true
3869
4883
  });
3870
4884
 
3871
- var React = __webpack_require__(1);
4885
+ var React = __webpack_require__(0);
3872
4886
 
3873
- var Popover_1 = __webpack_require__(62);
4887
+ var Popover_1 = __webpack_require__(84);
3874
4888
 
3875
- var ControlGroup_1 = __webpack_require__(211);
4889
+ var ControlGroup_1 = __webpack_require__(233);
3876
4890
 
3877
- var Button_1 = __webpack_require__(123);
4891
+ var Button_1 = __webpack_require__(145);
3878
4892
 
3879
- var Text_1 = __webpack_require__(212);
4893
+ var Text_1 = __webpack_require__(234);
3880
4894
 
3881
- var Message_1 = __webpack_require__(124);
4895
+ var Message_1 = __webpack_require__(146);
3882
4896
 
3883
- var Select_1 = __webpack_require__(213);
4897
+ var Select_1 = __webpack_require__(235);
3884
4898
 
3885
- var Link_1 = __webpack_require__(214);
4899
+ var Link_1 = __webpack_require__(236);
3886
4900
 
3887
- var Heading_1 = __webpack_require__(125);
4901
+ var Heading_1 = __webpack_require__(147);
3888
4902
 
3889
4903
  var lodash_1 = __webpack_require__(3);
3890
4904
 
@@ -3892,11 +4906,11 @@ var i18n_1 = __webpack_require__(2);
3892
4906
 
3893
4907
  var styled_components_1 = __webpack_require__(4);
3894
4908
 
3895
- var numberUtils_1 = __webpack_require__(31);
4909
+ var numberUtils_1 = __webpack_require__(11);
3896
4910
 
3897
- var pick_1 = __webpack_require__(23);
4911
+ var pick_1 = __webpack_require__(30);
3898
4912
 
3899
- var EventUtils_1 = __webpack_require__(120); // custom popover sizing for Enterprise vs. Prisma themes - additional px for Prisma theme to fit controls
4913
+ var EventUtils_1 = __webpack_require__(143); // custom popover sizing for Enterprise vs. Prisma themes - additional px for Prisma theme to fit controls
3900
4914
 
3901
4915
 
3902
4916
  var TimePopoverContainer = styled_components_1.default.div.withConfig({
@@ -4123,25 +5137,25 @@ TimeControlsPopover.defaultProps = {
4123
5137
  exports.default = TimeControlsPopover;
4124
5138
 
4125
5139
  /***/ }),
4126
- /* 211 */
5140
+ /* 233 */
4127
5141
  /***/ (function(module, exports) {
4128
5142
 
4129
5143
  module.exports = require("@splunk/react-ui/ControlGroup");
4130
5144
 
4131
5145
  /***/ }),
4132
- /* 212 */
5146
+ /* 234 */
4133
5147
  /***/ (function(module, exports) {
4134
5148
 
4135
5149
  module.exports = require("@splunk/react-ui/Text");
4136
5150
 
4137
5151
  /***/ }),
4138
- /* 213 */
5152
+ /* 235 */
4139
5153
  /***/ (function(module, exports) {
4140
5154
 
4141
5155
  module.exports = require("@splunk/react-ui/Select");
4142
5156
 
4143
5157
  /***/ }),
4144
- /* 214 */
5158
+ /* 236 */
4145
5159
  /***/ (function(module, exports) {
4146
5160
 
4147
5161
  module.exports = require("@splunk/react-ui/Link");