@splunk/visualizations 25.0.1 → 25.1.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 (161) hide show
  1. package/.loki/reference/chrome_docker_PureVisualizations_PureMap_custom_base_layer_tile_server.png +0 -0
  2. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Area_Editor.png +0 -0
  3. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Bar_Editor.png +0 -0
  4. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Bubble_Editor.png +0 -0
  5. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_ChoroplethSvg_Editor.png +0 -0
  6. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Column_Editor.png +0 -0
  7. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Ellipse_Editor.png +0 -0
  8. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_FillerGauge_Editor.png +0 -0
  9. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Image_Editor.png +0 -0
  10. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Line_Editor.png +0 -0
  11. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_LinkGraph_Editor.png +0 -0
  12. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Map_Editor.png +0 -0
  13. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Markdown_Editor.png +0 -0
  14. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_MarkerGauge_Editor.png +0 -0
  15. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Parallel_Coordinates_Editor.png +0 -0
  16. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Pie_Editor.png +0 -0
  17. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Punchcard_Editor.png +0 -0
  18. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Rectangle_Editor.png +0 -0
  19. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Sankey_Editor.png +0 -0
  20. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Scatter_Editor.png +0 -0
  21. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Single_Value_Editor.png +0 -0
  22. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Single_Value_Icon_Editor.png +0 -0
  23. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Single_Value_Radial_Editor.png +0 -0
  24. package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Table_Editor.png +0 -0
  25. package/Area.config.js +141 -152
  26. package/Area.config.js.map +1 -1
  27. package/Area.js +334 -431
  28. package/Area.js.map +1 -1
  29. package/Bar.config.js +143 -148
  30. package/Bar.config.js.map +1 -1
  31. package/Bar.js +336 -427
  32. package/Bar.js.map +1 -1
  33. package/Bubble.config.js +130 -117
  34. package/Bubble.config.js.map +1 -1
  35. package/Bubble.js +325 -398
  36. package/Bubble.js.map +1 -1
  37. package/ChoroplethSvg.config.js +86 -80
  38. package/ChoroplethSvg.config.js.map +1 -1
  39. package/ChoroplethSvg.js +305 -385
  40. package/ChoroplethSvg.js.map +1 -1
  41. package/Column.config.js +139 -146
  42. package/Column.config.js.map +1 -1
  43. package/Column.js +332 -425
  44. package/Column.js.map +1 -1
  45. package/Ellipse.config.js +86 -80
  46. package/Ellipse.config.js.map +1 -1
  47. package/Ellipse.js +288 -368
  48. package/Ellipse.js.map +1 -1
  49. package/FillerGauge.config.js +91 -85
  50. package/FillerGauge.config.js.map +1 -1
  51. package/FillerGauge.js +296 -376
  52. package/FillerGauge.js.map +1 -1
  53. package/Image.config.js +74 -74
  54. package/Image.config.js.map +1 -1
  55. package/Image.js +710 -798
  56. package/Image.js.map +1 -1
  57. package/Line.config.js +139 -137
  58. package/Line.config.js.map +1 -1
  59. package/Line.js +332 -416
  60. package/Line.js.map +1 -1
  61. package/LinkGraph.config.js +112 -112
  62. package/LinkGraph.config.js.map +1 -1
  63. package/LinkGraph.js +320 -405
  64. package/LinkGraph.js.map +1 -1
  65. package/Map.config.js +101 -95
  66. package/Map.config.js.map +1 -1
  67. package/Map.js +472 -518
  68. package/Map.js.map +1 -1
  69. package/Markdown.config.js +113 -113
  70. package/Markdown.config.js.map +1 -1
  71. package/Markdown.js +500 -574
  72. package/Markdown.js.map +1 -1
  73. package/MarkerGauge.config.js +192 -193
  74. package/MarkerGauge.config.js.map +1 -1
  75. package/MarkerGauge.js +1200 -1289
  76. package/MarkerGauge.js.map +1 -1
  77. package/ParallelCoordinates.config.js +138 -138
  78. package/ParallelCoordinates.config.js.map +1 -1
  79. package/ParallelCoordinates.js +292 -376
  80. package/ParallelCoordinates.js.map +1 -1
  81. package/Pie.config.js +133 -133
  82. package/Pie.config.js.map +1 -1
  83. package/Pie.js +496 -584
  84. package/Pie.js.map +1 -1
  85. package/Punchcard.config.js +139 -139
  86. package/Punchcard.config.js.map +1 -1
  87. package/Punchcard.js +315 -399
  88. package/Punchcard.js.map +1 -1
  89. package/Rectangle.config.js +267 -260
  90. package/Rectangle.config.js.map +1 -1
  91. package/Rectangle.js +499 -580
  92. package/Rectangle.js.map +1 -1
  93. package/Sankey.config.js +150 -143
  94. package/Sankey.config.js.map +1 -1
  95. package/Sankey.js +316 -390
  96. package/Sankey.js.map +1 -1
  97. package/Scatter.config.js +130 -117
  98. package/Scatter.config.js.map +1 -1
  99. package/Scatter.js +547 -623
  100. package/Scatter.js.map +1 -1
  101. package/SingleValue.config.js +119 -113
  102. package/SingleValue.config.js.map +1 -1
  103. package/SingleValue.js +523 -604
  104. package/SingleValue.js.map +1 -1
  105. package/SingleValueBasic.js +19 -19
  106. package/SingleValueBasic.js.map +1 -1
  107. package/SingleValueIcon.config.js +128 -120
  108. package/SingleValueIcon.config.js.map +1 -1
  109. package/SingleValueIcon.js +343 -420
  110. package/SingleValueIcon.js.map +1 -1
  111. package/SingleValueRadial.config.js +215 -178
  112. package/SingleValueRadial.config.js.map +1 -1
  113. package/SingleValueRadial.js +668 -749
  114. package/SingleValueRadial.js.map +1 -1
  115. package/Table.config.js +150 -151
  116. package/Table.config.js.map +1 -1
  117. package/Table.js +772 -854
  118. package/Table.js.map +1 -1
  119. package/common/Charting.js +11 -11
  120. package/common/Charting.js.map +1 -1
  121. package/common/ChartingApi.js +2 -2
  122. package/common/ChartingApi.js.map +1 -1
  123. package/common/EventsDoc.js +12 -12
  124. package/common/EventsDoc.js.map +1 -1
  125. package/common/GaugeMajorTicks.js +8 -8
  126. package/common/GaugeMajorTicks.js.map +1 -1
  127. package/common/GaugeValueMarker.js +8 -8
  128. package/common/GaugeValueMarker.js.map +1 -1
  129. package/common/OptionsDoc.js +51 -352
  130. package/common/OptionsDoc.js.map +1 -1
  131. package/common/OverviewDoc.js +22 -22
  132. package/common/OverviewDoc.js.map +1 -1
  133. package/common/SplunkVisualization.js +4 -4
  134. package/common/SplunkVisualization.js.map +1 -1
  135. package/common/SplunkVisualizationApi.js +2 -2
  136. package/common/SplunkVisualizationApi.js.map +1 -1
  137. package/common/ThemesDoc.js +19 -19
  138. package/common/ThemesDoc.js.map +1 -1
  139. package/common/chartingUtils.js +4 -4
  140. package/common/chartingUtils.js.map +1 -1
  141. package/common/docUtils.js +4 -4
  142. package/common/docUtils.js.map +1 -1
  143. package/common/gaugeUtils.js +13 -13
  144. package/common/gaugeUtils.js.map +1 -1
  145. package/common/shapeUtils.js +8 -8
  146. package/common/shapeUtils.js.map +1 -1
  147. package/common/utils/configUtils.js +17 -18
  148. package/common/utils/configUtils.js.map +1 -1
  149. package/common/utils/hocUtils.js +6 -86
  150. package/common/utils/hocUtils.js.map +1 -1
  151. package/common/utils/{JSONSchemaUtils.js → mapUtils.js} +89 -29
  152. package/common/utils/mapUtils.js.map +1 -0
  153. package/common/utils/singleValueUtils.js +14 -12
  154. package/common/utils/singleValueUtils.js.map +1 -1
  155. package/common/utils/testHelper.js +8 -8
  156. package/common/utils/testHelper.js.map +1 -1
  157. package/common/withDashboardViz.js +120 -207
  158. package/common/withDashboardViz.js.map +1 -1
  159. package/package.json +12 -12
  160. package/.loki/reference/chrome_docker_PureVisualizations_SvgChoroplethDynamic_SVG_Of_Size_Greater_Than_2_MB_Render.png +0 -0
  161. package/common/utils/JSONSchemaUtils.js.map +0 -1
package/Table.js CHANGED
@@ -87,7 +87,7 @@ module.exports =
87
87
  /******/
88
88
  /******/
89
89
  /******/ // Load entry module and return exports
90
- /******/ return __webpack_require__(__webpack_require__.s = 266);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 268);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ({
@@ -109,18 +109,25 @@ module.exports = require("react");
109
109
  /***/ 10:
110
110
  /***/ (function(module, exports) {
111
111
 
112
- module.exports = require("@splunk/themes/variables");
112
+ module.exports = require("@babel/runtime/helpers/classCallCheck");
113
+
114
+ /***/ }),
115
+
116
+ /***/ 109:
117
+ /***/ (function(module, exports) {
118
+
119
+ module.exports = require("@babel/runtime/helpers/typeof");
113
120
 
114
121
  /***/ }),
115
122
 
116
123
  /***/ 11:
117
124
  /***/ (function(module, exports) {
118
125
 
119
- module.exports = require("@splunk/visualizations-shared/Message");
126
+ module.exports = require("@splunk/visualizations-shared/colorUtils");
120
127
 
121
128
  /***/ }),
122
129
 
123
- /***/ 112:
130
+ /***/ 113:
124
131
  /***/ (function(module, exports, __webpack_require__) {
125
132
 
126
133
  "use strict";
@@ -140,20 +147,143 @@ exports.validFontSizes = ['extraSmall', 'small', 'default', 'large'];
140
147
  /***/ }),
141
148
 
142
149
  /***/ 12:
143
- /***/ (function(module, exports) {
150
+ /***/ (function(module, exports, __webpack_require__) {
144
151
 
145
- module.exports = require("@babel/runtime/helpers/classCallCheck");
152
+ "use strict";
153
+
154
+
155
+ Object.defineProperty(exports, "__esModule", {
156
+ value: true
157
+ });
158
+
159
+ var React = __webpack_require__(1);
160
+
161
+ var styled_components_1 = __webpack_require__(4);
162
+
163
+ var SizeAwareWrapper_1 = __webpack_require__(19);
164
+
165
+ var style_1 = __webpack_require__(14);
166
+
167
+ var colorUtils_1 = __webpack_require__(11);
168
+
169
+ var Item = styled_components_1.default.div.attrs(function (_ref) {
170
+ var width = _ref.width;
171
+ return {
172
+ style: {
173
+ width: style_1.toPx(width)
174
+ }
175
+ };
176
+ }).withConfig({
177
+ displayName: "FixedSizeContainer__Item",
178
+ componentId: "sc-1yhgpod-0"
179
+ })(["position:relative;background-color:", "};"], function (props) {
180
+ return colorUtils_1.isColor(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor;
181
+ }); // Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291
182
+
183
+ var FixSizeItem = styled_components_1.default.div.attrs(function (_ref2) {
184
+ var width = _ref2.width,
185
+ height = _ref2.height;
186
+ return {
187
+ style: Object.assign(Object.assign({}, width && {
188
+ width: style_1.toPx(width)
189
+ }), height && {
190
+ height: style_1.toPx(height)
191
+ })
192
+ };
193
+ }).withConfig({
194
+ displayName: "FixedSizeContainer__FixSizeItem",
195
+ componentId: "sc-1yhgpod-1"
196
+ })(["position:relative;flex-direction:column;flex:1;display:flex;background-color:", "};"], function (props) {
197
+ return colorUtils_1.isColor(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor;
198
+ });
199
+ var ItemContent = styled_components_1.default.div.withConfig({
200
+ displayName: "FixedSizeContainer__ItemContent",
201
+ componentId: "sc-1yhgpod-2"
202
+ })(["position:relative;min-height:100px;width:100%;"]);
203
+ var FixSizeItemContent = styled_components_1.default.div.withConfig({
204
+ displayName: "FixedSizeContainer__FixSizeItemContent",
205
+ componentId: "sc-1yhgpod-3"
206
+ })(["min-height:0px;flex:1;position:relative;box-sizing:border-box;"]);
207
+
208
+ var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
209
+ var FixedSizeContainer = function FixedSizeContainer(props) {
210
+ var width = props.width,
211
+ height = props.height,
212
+ backgroundColor = props.backgroundColor;
213
+
214
+ if (!height) {
215
+ return React.createElement(Item, {
216
+ "data-test": "item",
217
+ width: width,
218
+ backgroundColor: backgroundColor
219
+ }, React.createElement(ItemContent, null, React.createElement(Viz, Object.assign({}, props))));
220
+ }
221
+
222
+ return React.createElement(FixSizeItem, {
223
+ "data-test": "fix-size-item",
224
+ "data-splunk-visualization-version": "25.1.0 - 812a9a4d8",
225
+ width: width,
226
+ height: height,
227
+ backgroundColor: backgroundColor
228
+ }, React.createElement(FixSizeItemContent, null, React.createElement(SizeAwareWrapper_1.default, null, function (_ref3) {
229
+ var newWidth = _ref3.width,
230
+ newHeight = _ref3.height;
231
+ return React.createElement(Viz, Object.assign({}, props, {
232
+ width: newWidth,
233
+ height: newHeight
234
+ }));
235
+ })));
236
+ };
237
+
238
+ FixedSizeContainer.displayName = 'withFixedSizeContainer';
239
+ return FixedSizeContainer;
240
+ };
241
+
242
+ exports.default = withFixedSizeContainer;
146
243
 
147
244
  /***/ }),
148
245
 
149
246
  /***/ 13:
247
+ /***/ (function(module, exports, __webpack_require__) {
248
+
249
+ "use strict";
250
+
251
+
252
+ Object.defineProperty(exports, "__esModule", {
253
+ value: true
254
+ });
255
+ exports.extendStaticWrapperProps = void 0;
256
+ /**
257
+ * @method extendStaticWrapperProps
258
+ * @param {Object} props
259
+ * @param {DashboardVizType} props.Wrapper
260
+ * @param {DashboardVizType} props.Visualization
261
+ */
262
+
263
+ var extendStaticWrapperProps = function extendStaticWrapperProps(_ref) {
264
+ var Wrapper = _ref.Wrapper,
265
+ Visualization = _ref.Visualization;
266
+ var extendProperties = ['propTypes', 'defaultProps', 'config'];
267
+ extendProperties.forEach(function (prop) {
268
+ if (Visualization[prop]) {
269
+ // eslint-disable-next-line no-param-reassign
270
+ Wrapper[prop] = Visualization[prop];
271
+ }
272
+ });
273
+ };
274
+
275
+ exports.extendStaticWrapperProps = extendStaticWrapperProps;
276
+
277
+ /***/ }),
278
+
279
+ /***/ 14:
150
280
  /***/ (function(module, exports) {
151
281
 
152
- module.exports = require("@splunk/visualizations-shared/colorUtils");
282
+ module.exports = require("@splunk/visualizations-shared/style");
153
283
 
154
284
  /***/ }),
155
285
 
156
- /***/ 139:
286
+ /***/ 140:
157
287
  /***/ (function(module, exports, __webpack_require__) {
158
288
 
159
289
  "use strict";
@@ -179,17 +309,17 @@ Object.defineProperty(exports, "__esModule", {
179
309
  });
180
310
  exports.config = exports.PureTable = exports.themes = exports.computeVizProps = void 0;
181
311
 
182
- var lodash_1 = __webpack_require__(2);
312
+ var lodash_1 = __webpack_require__(3);
183
313
 
184
- var colorUtils_1 = __webpack_require__(13);
314
+ var colorUtils_1 = __webpack_require__(11);
185
315
 
186
- var config_1 = __webpack_require__(267);
316
+ var config_1 = __webpack_require__(269);
187
317
 
188
318
  exports.config = config_1.default;
189
319
 
190
- var withDashboardViz_1 = __webpack_require__(30);
320
+ var withDashboardViz_1 = __webpack_require__(31);
191
321
 
192
- var PureTable_1 = __webpack_require__(140);
322
+ var PureTable_1 = __webpack_require__(141);
193
323
 
194
324
  exports.PureTable = PureTable_1.default;
195
325
 
@@ -267,104 +397,7 @@ exports.default = Table;
267
397
 
268
398
  /***/ }),
269
399
 
270
- /***/ 14:
271
- /***/ (function(module, exports, __webpack_require__) {
272
-
273
- "use strict";
274
-
275
-
276
- Object.defineProperty(exports, "__esModule", {
277
- value: true
278
- });
279
-
280
- var React = __webpack_require__(1);
281
-
282
- var styled_components_1 = __webpack_require__(4);
283
-
284
- var SizeAwareWrapper_1 = __webpack_require__(18);
285
-
286
- var style_1 = __webpack_require__(15);
287
-
288
- var colorUtils_1 = __webpack_require__(13);
289
-
290
- var Item = styled_components_1.default.div.attrs(function (_ref) {
291
- var width = _ref.width;
292
- return {
293
- style: {
294
- width: style_1.toPx(width)
295
- }
296
- };
297
- }).withConfig({
298
- displayName: "FixedSizeContainer__Item",
299
- componentId: "sc-1yhgpod-0"
300
- })(["position:relative;background-color:", "};"], function (props) {
301
- return colorUtils_1.isColor(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor;
302
- }); // Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291
303
-
304
- var FixSizeItem = styled_components_1.default.div.attrs(function (_ref2) {
305
- var width = _ref2.width,
306
- height = _ref2.height;
307
- return {
308
- style: Object.assign(Object.assign({}, width && {
309
- width: style_1.toPx(width)
310
- }), height && {
311
- height: style_1.toPx(height)
312
- })
313
- };
314
- }).withConfig({
315
- displayName: "FixedSizeContainer__FixSizeItem",
316
- componentId: "sc-1yhgpod-1"
317
- })(["position:relative;flex-direction:column;flex:1;display:flex;background-color:", "};"], function (props) {
318
- return colorUtils_1.isColor(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor;
319
- });
320
- var ItemContent = styled_components_1.default.div.withConfig({
321
- displayName: "FixedSizeContainer__ItemContent",
322
- componentId: "sc-1yhgpod-2"
323
- })(["position:relative;min-height:100px;width:100%;"]);
324
- var FixSizeItemContent = styled_components_1.default.div.withConfig({
325
- displayName: "FixedSizeContainer__FixSizeItemContent",
326
- componentId: "sc-1yhgpod-3"
327
- })(["min-height:0px;flex:1;position:relative;box-sizing:border-box;"]);
328
-
329
- var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
330
- var FixedSizeContainer = function FixedSizeContainer(props) {
331
- var width = props.width,
332
- height = props.height,
333
- backgroundColor = props.backgroundColor;
334
-
335
- if (!height) {
336
- return React.createElement(Item, {
337
- "data-test": "item",
338
- width: width,
339
- backgroundColor: backgroundColor
340
- }, React.createElement(ItemContent, null, React.createElement(Viz, Object.assign({}, props))));
341
- }
342
-
343
- return React.createElement(FixSizeItem, {
344
- "data-test": "fix-size-item",
345
- "data-splunk-visualization-version": "25.0.1 - de10ad954",
346
- width: width,
347
- height: height,
348
- backgroundColor: backgroundColor
349
- }, React.createElement(FixSizeItemContent, null, React.createElement(SizeAwareWrapper_1.default, null, function (_ref3) {
350
- var newWidth = _ref3.width,
351
- newHeight = _ref3.height;
352
- return React.createElement(Viz, Object.assign({}, props, {
353
- width: newWidth,
354
- height: newHeight
355
- }));
356
- })));
357
- };
358
-
359
- FixedSizeContainer.displayName = 'withFixedSizeContainer';
360
- return FixedSizeContainer;
361
- };
362
-
363
- exports.default = withFixedSizeContainer;
364
-
365
- /***/ }),
366
-
367
- /***/ 140:
400
+ /***/ 141:
368
401
  /***/ (function(module, exports, __webpack_require__) {
369
402
 
370
403
  "use strict";
@@ -372,7 +405,7 @@ exports.default = withFixedSizeContainer;
372
405
 
373
406
  var _slicedToArray = __webpack_require__(52);
374
407
 
375
- var _defineProperty = __webpack_require__(7);
408
+ var _defineProperty = __webpack_require__(6);
376
409
 
377
410
  var _taggedTemplateLiteral = __webpack_require__(81);
378
411
 
@@ -400,43 +433,43 @@ var React = __webpack_require__(1);
400
433
 
401
434
  var T = __webpack_require__(0);
402
435
 
403
- var lodash_1 = __webpack_require__(2);
436
+ var lodash_1 = __webpack_require__(3);
404
437
 
405
438
  var styled_components_1 = __webpack_require__(4);
406
439
 
407
- var i18n_1 = __webpack_require__(3);
440
+ var i18n_1 = __webpack_require__(2);
408
441
 
409
- var Table_1 = __webpack_require__(90);
442
+ var Table_1 = __webpack_require__(91);
410
443
 
411
- var Paginator_1 = __webpack_require__(268);
444
+ var Paginator_1 = __webpack_require__(270);
412
445
 
413
- var Message_1 = __webpack_require__(269);
446
+ var Message_1 = __webpack_require__(271);
414
447
 
415
- var colorUtils_1 = __webpack_require__(13);
448
+ var colorUtils_1 = __webpack_require__(11);
416
449
 
417
- var style_1 = __webpack_require__(15);
450
+ var style_1 = __webpack_require__(14);
418
451
 
419
- var pick_1 = __webpack_require__(20);
452
+ var pick_1 = __webpack_require__(21);
420
453
 
421
- var variables_1 = __webpack_require__(10);
454
+ var variables_1 = __webpack_require__(8);
422
455
 
423
- var hooks_1 = __webpack_require__(270);
456
+ var hooks_1 = __webpack_require__(272);
424
457
 
425
- var consts_1 = __webpack_require__(112);
458
+ var consts_1 = __webpack_require__(113);
426
459
 
427
- var cells_1 = __webpack_require__(271);
460
+ var cells_1 = __webpack_require__(273);
428
461
 
429
- var getPagination_1 = __webpack_require__(28);
462
+ var getPagination_1 = __webpack_require__(29);
430
463
 
431
- var getSorting_1 = __webpack_require__(27);
464
+ var getSorting_1 = __webpack_require__(28);
432
465
 
433
- var FixedSizeContainer_1 = __webpack_require__(14);
466
+ var FixedSizeContainer_1 = __webpack_require__(12);
434
467
 
435
- var utils_1 = __webpack_require__(276); // debounce was imported this way due to typing
468
+ var utils_1 = __webpack_require__(278); // debounce was imported this way due to typing
436
469
  // eslint-disable-next-line import/order
437
470
 
438
471
 
439
- var debounce = __webpack_require__(277);
472
+ var debounce = __webpack_require__(279);
440
473
 
441
474
  exports.MINIMUM_COLUMN_SIZE = 30;
442
475
  var NonVisibleTableHead = styled_components_1.default(Table_1.default.Head).withConfig({
@@ -973,186 +1006,297 @@ exports.default = withEmptyTableMessage(FixedSizeContainer_1.default(PureTable))
973
1006
  /***/ 15:
974
1007
  /***/ (function(module, exports) {
975
1008
 
976
- module.exports = require("@splunk/visualizations-shared/style");
1009
+ module.exports = require("@splunk/visualizations-shared/schemaUtils");
977
1010
 
978
1011
  /***/ }),
979
1012
 
980
1013
  /***/ 16:
981
- /***/ (function(module, exports) {
1014
+ /***/ (function(module, exports, __webpack_require__) {
982
1015
 
983
- module.exports = require("@splunk/visualizations-shared/schemaUtils");
1016
+ "use strict";
984
1017
 
985
- /***/ }),
986
1018
 
987
- /***/ 17:
988
- /***/ (function(module, exports) {
1019
+ var _toConsumableArray = __webpack_require__(7);
989
1020
 
990
- module.exports = require("@babel/runtime/helpers/createClass");
1021
+ var _defineProperty = __webpack_require__(6);
991
1022
 
992
- /***/ }),
1023
+ var __rest = this && this.__rest || function (s, e) {
1024
+ var t = {};
993
1025
 
994
- /***/ 18:
995
- /***/ (function(module, exports) {
1026
+ for (var p in s) {
1027
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1028
+ }
996
1029
 
997
- module.exports = require("@splunk/visualizations-shared/SizeAwareWrapper");
1030
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1031
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1032
+ }
1033
+ return t;
1034
+ };
998
1035
 
999
- /***/ }),
1036
+ Object.defineProperty(exports, "__esModule", {
1037
+ value: true
1038
+ });
1039
+ exports.insertLayout = exports.isDynamicOption = exports.uncollapseEditorConfig = exports.generatePrecisionValues = exports.getInitialPreset = exports.enhanceOptionsSchemaWithDynamicOptions = exports.enhanceConfig = void 0;
1000
1040
 
1001
- /***/ 2:
1002
- /***/ (function(module, exports) {
1041
+ var lodash_1 = __webpack_require__(3);
1003
1042
 
1004
- module.exports = require("lodash");
1043
+ var schemaUtils_1 = __webpack_require__(15);
1005
1044
 
1006
- /***/ }),
1045
+ var VizBehavior_1 = __webpack_require__(5);
1007
1046
 
1008
- /***/ 20:
1009
- /***/ (function(module, exports) {
1047
+ var dynamicOptionsDSLType = {
1048
+ type: 'string',
1049
+ pattern: schemaUtils_1.DYNAMIC_OPTIONS_DSL_PATTERN
1050
+ };
1051
+ /**
1052
+ * Helper function to extend an options schema with dynamic options DSL
1053
+ * @param optionsSchema a visualization's options schema
1054
+ * @returns an updated options schema that additionally allows strings starting with > for each option
1055
+ */
1010
1056
 
1011
- module.exports = require("@splunk/themes/pick");
1057
+ function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
1058
+ var enhancedOptionsSchema = {};
1059
+ Object.keys(optionsSchema).forEach(function (key) {
1060
+ var _a = optionsSchema[key],
1061
+ title = _a.title,
1062
+ description = _a.description,
1063
+ readOnly = _a.readOnly,
1064
+ writeOnly = _a.writeOnly,
1065
+ examples = _a.examples,
1066
+ defaultValue = _a.default,
1067
+ type = _a.type,
1068
+ properties = _a.properties,
1069
+ patternProperties = _a.patternProperties,
1070
+ remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
1012
1071
 
1013
- /***/ }),
1072
+ var annotations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, title !== undefined && {
1073
+ title: title
1074
+ }), description !== undefined && {
1075
+ description: description
1076
+ }), readOnly !== undefined && {
1077
+ readOnly: readOnly
1078
+ }), writeOnly !== undefined && {
1079
+ writeOnly: writeOnly
1080
+ }), examples !== undefined && {
1081
+ examples: examples
1082
+ }), defaultValue !== undefined && {
1083
+ default: defaultValue
1084
+ });
1014
1085
 
1015
- /***/ 21:
1016
- /***/ (function(module, exports) {
1086
+ if (type === 'object') {
1087
+ enhancedOptionsSchema[key] = Object.assign(Object.assign(Object.assign(Object.assign({}, remainingSchemaEntry), annotations), {
1088
+ type: type
1089
+ }), properties && {
1090
+ properties: enhanceOptionsSchemaWithDynamicOptions(properties)
1091
+ });
1017
1092
 
1018
- module.exports = require("@splunk/visualization-context/TimezoneContext");
1093
+ if (patternProperties) {
1094
+ var enhancedPatternProperties = {};
1095
+ Object.keys(patternProperties).forEach(function (opt) {
1096
+ enhancedPatternProperties = Object.assign(Object.assign({}, enhancedPatternProperties), enhanceOptionsSchemaWithDynamicOptions(_defineProperty({}, opt, patternProperties[opt])));
1097
+ });
1098
+ enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;
1099
+ }
1100
+ } else {
1101
+ enhancedOptionsSchema[key] = Object.assign(Object.assign({}, annotations), {
1102
+ anyOf: [Object.assign(Object.assign({}, type !== undefined && {
1103
+ type: type
1104
+ }), remainingSchemaEntry), dynamicOptionsDSLType]
1105
+ });
1106
+ }
1107
+ });
1108
+ return enhancedOptionsSchema;
1109
+ }
1019
1110
 
1020
- /***/ }),
1111
+ exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamicOptions;
1112
+ /**
1113
+ * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block
1114
+ * this function also collapse all editor panels
1115
+ * @param vizConfig a Visualization Config
1116
+ * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports
1117
+ * and containing `open: false` for all editor panels in editorConfig
1118
+ */
1021
1119
 
1022
- /***/ 24:
1023
- /***/ (function(module, exports, __webpack_require__) {
1120
+ function enhanceConfig(vizConfig) {
1121
+ var enhancedConfig = vizConfig;
1024
1122
 
1025
- "use strict";
1123
+ if (vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS) !== -1) {
1124
+ enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);
1125
+ }
1026
1126
 
1127
+ enhancedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
1128
+ return Object.assign(Object.assign({}, config), {
1129
+ open: false
1130
+ });
1131
+ });
1132
+ return enhancedConfig;
1133
+ }
1027
1134
 
1028
- Object.defineProperty(exports, "__esModule", {
1029
- value: true
1030
- });
1031
- exports.pickFieldFromJSONSchema = void 0;
1135
+ exports.enhanceConfig = enhanceConfig;
1136
+ /**
1137
+ * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig
1138
+ * Created for editor unit tests
1139
+ * @param vizConfig a Visualization Config
1140
+ * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig
1141
+ */
1142
+
1143
+ function uncollapseEditorConfig(vizConfig) {
1144
+ var editorPanelUncollapsedConfig = vizConfig;
1145
+ editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
1146
+ return Object.assign(Object.assign({}, config), {
1147
+ open: true
1148
+ });
1149
+ });
1150
+ return editorPanelUncollapsedConfig;
1151
+ }
1152
+
1153
+ exports.uncollapseEditorConfig = uncollapseEditorConfig;
1032
1154
 
1033
- var lodash_1 = __webpack_require__(2);
1155
+ function isDynamicOption(option) {
1156
+ return option && typeof option === 'string' && option.trim().startsWith('>') || false;
1157
+ }
1034
1158
 
1035
- var pickFieldFromJSONSchema = function pickFieldFromJSONSchema(optionsSchema) {
1036
- var fieldName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
1037
- return Object.keys(optionsSchema).reduce(function (accum, k) {
1038
- if (lodash_1.has(optionsSchema[k], fieldName)) {
1039
- accum[k] = optionsSchema[k][fieldName];
1040
- } else if (lodash_1.get(optionsSchema, [k, 'type']) === 'object' && lodash_1.has(optionsSchema[k], 'properties')) {
1041
- var nestedSchema = exports.pickFieldFromJSONSchema(optionsSchema[k].properties, fieldName);
1159
+ exports.isDynamicOption = isDynamicOption; // private helpers to improve readability of getInitialPreset
1160
+ // this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset
1042
1161
 
1043
- if (!lodash_1.isEmpty(nestedSchema)) {
1044
- accum[k] = nestedSchema;
1045
- }
1046
- }
1162
+ /**
1163
+ * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset
1164
+ * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset
1165
+ * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext
1166
+ * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up
1167
+ *
1168
+ * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values
1169
+ */
1170
+
1171
+ function hasCompatibleContexts(vizContext, presetContext) {
1172
+ var presetContextKeys = Object.keys(presetContext);
1173
+ return presetContextKeys.every(function (contextKey) {
1174
+ return presetContext[contextKey] === undefined && vizContext[contextKey] === undefined || presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined;
1175
+ });
1176
+ }
1177
+ /**
1178
+ * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions
1179
+ */
1180
+
1181
+
1182
+ function hasCompatibleOptions(vizOptions, presetOptions) {
1183
+ var presetOptionKeys = Object.keys(presetOptions);
1184
+ return presetOptionKeys.every(function (optionKey) {
1185
+ return isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey]);
1186
+ });
1187
+ }
1188
+ /**
1189
+ * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions
1190
+ * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure
1191
+ *
1192
+ * @param {Object} vizContext - the current vizContext definition
1193
+ * @param {Object} vizOptions - the current vizOptions definition
1194
+ * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset
1195
+ */
1196
+
1197
+
1198
+ function getInitialPreset(vizContext, vizOptions, presets) {
1199
+ return presets.find(function (preset) {
1200
+ var presetContext = lodash_1.get(preset, ['value', 'context'], {});
1201
+ var presetOptions = lodash_1.get(preset, ['value', 'options'], {});
1202
+ var presetContextKeys = Object.keys(presetContext);
1203
+ var presetOptionKeys = Object.keys(presetOptions); // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)
1204
+ // if not, then the preset is invalid in config.ts
1047
1205
 
1048
- return accum;
1049
- }, {});
1206
+ if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;
1207
+ return hasCompatibleContexts(vizContext, presetContext) && hasCompatibleOptions(vizOptions, presetOptions);
1208
+ });
1209
+ }
1210
+
1211
+ exports.getInitialPreset = getInitialPreset;
1212
+ /**
1213
+ * generates number precision values for a Select editor
1214
+ *
1215
+ * @param {Number} numPrecisionValues - number of integer precision values to generate
1216
+ * @returns {{ label: string; value; string }[]} array of { label, value } tuples
1217
+ */
1218
+
1219
+ function generatePrecisionValues(numPrecisionValues) {
1220
+ return lodash_1.range(0, numPrecisionValues + 1).map(function (i) {
1221
+ return {
1222
+ label: "".concat(i, " (0").concat(i > 0 ? '.' : '').concat('0'.repeat(i), ")"),
1223
+ value: i
1224
+ };
1225
+ });
1226
+ }
1227
+
1228
+ exports.generatePrecisionValues = generatePrecisionValues;
1229
+ /**
1230
+ * insert layout in layout array, return a new layout array instead of updating the original
1231
+ *
1232
+ * @param {EditorLayoutConfig[][]} layout - editor layout
1233
+ * @param {Number} index - the index to insert layout item(s)
1234
+ * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert
1235
+ * @returns {EditorLayoutConfig[][]} new editor layout with insertion
1236
+ */
1237
+
1238
+ var insertLayout = function insertLayout(layout, index) {
1239
+ for (var _len = arguments.length, layoutItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1240
+ layoutItems[_key - 2] = arguments[_key];
1241
+ }
1242
+
1243
+ return [].concat(_toConsumableArray(layout.slice(0, index)), layoutItems, _toConsumableArray(layout.slice(index)));
1050
1244
  };
1051
1245
 
1052
- exports.pickFieldFromJSONSchema = pickFieldFromJSONSchema;
1246
+ exports.insertLayout = insertLayout;
1053
1247
 
1054
1248
  /***/ }),
1055
1249
 
1056
- /***/ 25:
1250
+ /***/ 18:
1057
1251
  /***/ (function(module, exports) {
1058
1252
 
1059
- module.exports = require("@babel/runtime/helpers/typeof");
1253
+ module.exports = require("@babel/runtime/helpers/createClass");
1060
1254
 
1061
1255
  /***/ }),
1062
1256
 
1063
- /***/ 26:
1064
- /***/ (function(module, exports, __webpack_require__) {
1257
+ /***/ 19:
1258
+ /***/ (function(module, exports) {
1065
1259
 
1066
- "use strict";
1260
+ module.exports = require("@splunk/visualizations-shared/SizeAwareWrapper");
1067
1261
 
1262
+ /***/ }),
1068
1263
 
1069
- Object.defineProperty(exports, "__esModule", {
1070
- value: true
1071
- });
1072
- exports.shouldShowIconPlaceholder = void 0;
1264
+ /***/ 2:
1265
+ /***/ (function(module, exports) {
1073
1266
 
1074
- var React = __webpack_require__(1);
1267
+ module.exports = require("@splunk/ui-utils/i18n");
1075
1268
 
1076
- var T = __webpack_require__(0);
1269
+ /***/ }),
1077
1270
 
1078
- var lodash_1 = __webpack_require__(2);
1271
+ /***/ 21:
1272
+ /***/ (function(module, exports) {
1079
1273
 
1080
- var i18n_1 = __webpack_require__(3);
1274
+ module.exports = require("@splunk/themes/pick");
1081
1275
 
1082
- var Message_1 = __webpack_require__(11);
1276
+ /***/ }),
1083
1277
 
1084
- var FixedSizeContainer_1 = __webpack_require__(14);
1085
- /**
1086
- * @method shouldShowIconPlaceholder
1087
- * @param {object} dataSources
1088
- * @param {boolean} loading
1089
- * @returns {boolean}
1090
- */
1278
+ /***/ 22:
1279
+ /***/ (function(module, exports) {
1091
1280
 
1281
+ module.exports = require("@splunk/visualization-context/TimezoneContext");
1092
1282
 
1093
- var shouldShowIconPlaceholder = function shouldShowIconPlaceholder(dataSources) {
1094
- var loading = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1095
- var data = lodash_1.get(dataSources, 'primary.data.columns[0]', undefined);
1096
- var noData = data === undefined;
1097
- var fields = lodash_1.get(dataSources, 'primary.data.fields[0]', undefined);
1098
- var noFields = fields === undefined;
1099
- return loading || noData || noFields;
1100
- };
1283
+ /***/ }),
1101
1284
 
1102
- exports.shouldShowIconPlaceholder = shouldShowIconPlaceholder;
1103
- var propTypes = {
1104
- icon: T.func,
1105
- width: T.oneOfType([T.string, T.number]),
1106
- height: T.oneOfType([T.string, T.number]),
1107
- // eslint-disable-next-line react/no-unused-prop-types
1108
- backgroundColor: T.string,
1109
- iconColor: T.string
1110
- };
1111
- /**
1112
- * @method IconPlaceholder
1113
- * @param {IconPlaceholderProps} props
1114
- * @returns {React.ReactElement}
1115
- */
1285
+ /***/ 24:
1286
+ /***/ (function(module, exports) {
1116
1287
 
1117
- var IconPlaceholder = function IconPlaceholder(props) {
1118
- var width = props.width,
1119
- height = props.height,
1120
- icon = props.icon,
1121
- iconColor = props.iconColor;
1288
+ module.exports = require("@splunk/visualizations-shared/hocUtils");
1122
1289
 
1123
- if (icon) {
1124
- return React.createElement(icon, {
1125
- style: {
1126
- left: '50%',
1127
- top: '50%',
1128
- color: iconColor,
1129
- opacity: 0.15,
1130
- position: 'absolute',
1131
- transform: 'translate(-50%, -50%)'
1132
- },
1133
- width: '50%',
1134
- height: '50%'
1135
- });
1136
- }
1290
+ /***/ }),
1137
1291
 
1138
- return React.createElement(Message_1.default, {
1139
- width: width,
1140
- height: height,
1141
- level: "warning",
1142
- message: i18n_1._('No DataSource Connected')
1143
- });
1144
- };
1292
+ /***/ 25:
1293
+ /***/ (function(module, exports) {
1145
1294
 
1146
- IconPlaceholder.propTypes = propTypes;
1147
- IconPlaceholder.defaultProps = {
1148
- width: '100%',
1149
- height: 250
1150
- };
1151
- exports.default = FixedSizeContainer_1.default(IconPlaceholder);
1295
+ module.exports = require("@splunk/visualizations-shared/JSONSchemaUtils");
1152
1296
 
1153
1297
  /***/ }),
1154
1298
 
1155
- /***/ 266:
1299
+ /***/ 268:
1156
1300
  /***/ (function(module, exports, __webpack_require__) {
1157
1301
 
1158
1302
  "use strict";
@@ -1184,9 +1328,9 @@ exports.default = void 0; // NOTE: wildcard syntax only works for named exports
1184
1328
  // for some reason, omitting the default export worked before TS v4
1185
1329
  // see: https://stackoverflow.com/a/34445175
1186
1330
 
1187
- __exportStar(__webpack_require__(139), exports);
1331
+ __exportStar(__webpack_require__(140), exports);
1188
1332
 
1189
- var Table_1 = __webpack_require__(139);
1333
+ var Table_1 = __webpack_require__(140);
1190
1334
 
1191
1335
  Object.defineProperty(exports, "default", {
1192
1336
  enumerable: true,
@@ -1197,23 +1341,23 @@ Object.defineProperty(exports, "default", {
1197
1341
 
1198
1342
  /***/ }),
1199
1343
 
1200
- /***/ 267:
1344
+ /***/ 269:
1201
1345
  /***/ (function(module, exports, __webpack_require__) {
1202
1346
 
1203
1347
  "use strict";
1204
1348
 
1205
1349
 
1206
- var _toConsumableArray = __webpack_require__(9);
1350
+ var _toConsumableArray = __webpack_require__(7);
1207
1351
 
1208
1352
  Object.defineProperty(exports, "__esModule", {
1209
1353
  value: true
1210
1354
  });
1211
1355
 
1212
- var i18n_1 = __webpack_require__(3);
1356
+ var i18n_1 = __webpack_require__(2);
1213
1357
 
1214
- var lodash_1 = __webpack_require__(2);
1358
+ var lodash_1 = __webpack_require__(3);
1215
1359
 
1216
- var schemaUtils_1 = __webpack_require__(16);
1360
+ var schemaUtils_1 = __webpack_require__(15);
1217
1361
 
1218
1362
  var colorConstants_1 = __webpack_require__(43);
1219
1363
 
@@ -1221,17 +1365,17 @@ var visualization_icons_1 = __webpack_require__(46);
1221
1365
 
1222
1366
  var placeholders_1 = __webpack_require__(45);
1223
1367
 
1224
- var variables_1 = __webpack_require__(10);
1368
+ var variables_1 = __webpack_require__(8);
1225
1369
 
1226
- var pick_1 = __webpack_require__(20);
1370
+ var pick_1 = __webpack_require__(21);
1227
1371
 
1228
- var configUtils_1 = __webpack_require__(6);
1372
+ var configUtils_1 = __webpack_require__(16);
1229
1373
 
1230
1374
  var VizBehavior_1 = __webpack_require__(5);
1231
1375
 
1232
- var consts_1 = __webpack_require__(112);
1376
+ var consts_1 = __webpack_require__(113);
1233
1377
 
1234
- var VizCategory_1 = __webpack_require__(29);
1378
+ var VizCategory_1 = __webpack_require__(30);
1235
1379
 
1236
1380
  var dataContract = {
1237
1381
  requiredDataSources: [{
@@ -1373,11 +1517,11 @@ var optionsSchema = {
1373
1517
  backgroundColor: {
1374
1518
  default: '> themes.defaultBackgroundColor',
1375
1519
  description: 'Specify the color for the background. You might use a data source to apply the color. The default for enterprise light is "#FFFFFF". The default for enterprise dark is "#000000". The default for prisma dark is "#0B0C0E".',
1376
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN,
1520
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
1377
1521
  type: 'string'
1378
1522
  },
1379
1523
  columnFormat: {
1380
- description: 'Allows column formatting for individual columns.',
1524
+ description: 'Lets you format an individual column in a table. Specify a column in a table as a field, followed by a property. For more information, see the Column Format Align - Left example on the Examples page.',
1381
1525
  type: 'object',
1382
1526
  patternProperties: {
1383
1527
  '.*': {
@@ -1421,7 +1565,7 @@ var optionsSchema = {
1421
1565
  type: 'array',
1422
1566
  items: {
1423
1567
  type: 'string',
1424
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1568
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1425
1569
  }
1426
1570
  },
1427
1571
  rowColors: {
@@ -1429,7 +1573,7 @@ var optionsSchema = {
1429
1573
  type: 'array',
1430
1574
  items: {
1431
1575
  type: 'string',
1432
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1576
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1433
1577
  }
1434
1578
  },
1435
1579
  sparklineAreaColors: {
@@ -1437,7 +1581,7 @@ var optionsSchema = {
1437
1581
  type: 'array',
1438
1582
  items: {
1439
1583
  type: 'string',
1440
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1584
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1441
1585
  }
1442
1586
  },
1443
1587
  sparklineColors: {
@@ -1445,7 +1589,7 @@ var optionsSchema = {
1445
1589
  type: 'array',
1446
1590
  items: {
1447
1591
  type: 'string',
1448
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1592
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1449
1593
  }
1450
1594
  },
1451
1595
  sparklineTypes: {
@@ -1539,7 +1683,7 @@ var optionsSchema = {
1539
1683
  }
1540
1684
  },
1541
1685
  tableFormat: {
1542
- description: 'Allows users to set table wide options.',
1686
+ description: 'Lets you set global options for a table.',
1543
1687
  type: 'object',
1544
1688
  properties: {
1545
1689
  align: {
@@ -1588,12 +1732,12 @@ var optionsSchema = {
1588
1732
  headerBackgroundColor: {
1589
1733
  default: '> themes.defaultHeaderBackgroundColor',
1590
1734
  description: 'Specify the table header background color using a hexadecimal code. For example, "#FFFFFF".',
1591
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN,
1735
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
1592
1736
  type: 'string'
1593
1737
  },
1594
1738
  headerColor: {
1595
1739
  description: 'Specify the table header text color using a hexadecimal code. For example, "#FFFFFF".',
1596
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN,
1740
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA,
1597
1741
  type: 'string'
1598
1742
  },
1599
1743
  rowBackgroundColors: {
@@ -1604,7 +1748,7 @@ var optionsSchema = {
1604
1748
  type: 'array',
1605
1749
  items: {
1606
1750
  type: 'string',
1607
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1751
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1608
1752
  }
1609
1753
  }
1610
1754
  },
@@ -1626,7 +1770,7 @@ var optionsSchema = {
1626
1770
  type: 'array',
1627
1771
  items: {
1628
1772
  type: 'string',
1629
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1773
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1630
1774
  }
1631
1775
  }
1632
1776
  },
@@ -1637,7 +1781,7 @@ var optionsSchema = {
1637
1781
  type: 'array',
1638
1782
  items: {
1639
1783
  type: 'string',
1640
- pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN
1784
+ pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN_WITH_RGBA
1641
1785
  }
1642
1786
  }
1643
1787
  },
@@ -1740,24 +1884,6 @@ var editorConfig = [{
1740
1884
  labelPosition: 'left',
1741
1885
  labelWidth: EDITOR_LABEL_WIDTH
1742
1886
  }
1743
- }], [{
1744
- label: i18n_1._('Header Row'),
1745
- option: 'headerVisibility',
1746
- editor: 'editor.radioBar',
1747
- editorProps: {
1748
- values: [{
1749
- label: i18n_1._('Inline'),
1750
- value: 'inline'
1751
- }, {
1752
- label: i18n_1._('Fixed'),
1753
- value: 'fixed'
1754
- }, {
1755
- label: i18n_1._('Hidden'),
1756
- value: 'none'
1757
- }],
1758
- labelPosition: 'left',
1759
- labelWidth: EDITOR_LABEL_WIDTH
1760
- }
1761
1887
  }], [{
1762
1888
  key: 'backgroundColor',
1763
1889
  editor: 'editor.tableBackgroundColor',
@@ -1767,6 +1893,23 @@ var editorConfig = [{
1767
1893
  labelWidth: EDITOR_LABEL_WIDTH,
1768
1894
  palette: _toConsumableArray(backgroundColorPaletteSet)
1769
1895
  }
1896
+ }], [{
1897
+ label: i18n_1._('Header Row'),
1898
+ option: 'headerVisibility',
1899
+ editor: 'editor.select',
1900
+ editorProps: {
1901
+ values: [{
1902
+ label: i18n_1._('Inline'),
1903
+ value: 'inline'
1904
+ }, {
1905
+ label: i18n_1._('Fixed'),
1906
+ value: 'fixed'
1907
+ }, {
1908
+ label: i18n_1._('Hidden'),
1909
+ value: 'none'
1910
+ }],
1911
+ labelWidth: EDITOR_LABEL_WIDTH
1912
+ }
1770
1913
  }], [{
1771
1914
  option: 'font',
1772
1915
  label: i18n_1._('Font'),
@@ -1924,111 +2067,132 @@ exports.default = configUtils_1.enhanceConfig(config);
1924
2067
 
1925
2068
  /***/ }),
1926
2069
 
1927
- /***/ 268:
1928
- /***/ (function(module, exports) {
1929
-
1930
- module.exports = require("@splunk/react-ui/Paginator");
1931
-
1932
- /***/ }),
1933
-
1934
- /***/ 269:
1935
- /***/ (function(module, exports) {
1936
-
1937
- module.exports = require("@splunk/react-ui/Message");
1938
-
1939
- /***/ }),
1940
-
1941
2070
  /***/ 27:
1942
2071
  /***/ (function(module, exports, __webpack_require__) {
1943
2072
 
1944
2073
  "use strict";
1945
2074
 
1946
2075
 
1947
- var _defineProperty = __webpack_require__(7);
1948
-
1949
2076
  Object.defineProperty(exports, "__esModule", {
1950
2077
  value: true
1951
2078
  });
1952
- exports.getSortingParams = exports.SortParamsPropTypes = void 0;
2079
+ exports.shouldShowIconPlaceholder = void 0;
2080
+
2081
+ var React = __webpack_require__(1);
1953
2082
 
1954
2083
  var T = __webpack_require__(0);
1955
2084
 
1956
- var lodash_1 = __webpack_require__(2);
2085
+ var lodash_1 = __webpack_require__(3);
1957
2086
 
1958
- var DataSource_1 = __webpack_require__(37);
2087
+ var i18n_1 = __webpack_require__(2);
1959
2088
 
1960
- exports.SortParamsPropTypes = T.shape({
1961
- currentSortKey: T.string,
1962
- currentSortDir: T.oneOf(DataSource_1.validSortDirs),
1963
- onSort: T.func
1964
- });
2089
+ var Message_1 = __webpack_require__(9);
1965
2090
 
1966
- var getSortingParams = function getSortingParams(_ref) {
1967
- var requestParams = _ref.requestParams,
1968
- onRequestParamsChange = _ref.onRequestParamsChange;
1969
- var currentSortKey;
1970
- var currentSortDir;
1971
- var nextSortDirMap = {
1972
- asc: 'desc',
1973
- desc: 'asc',
1974
- none: 'asc'
1975
- };
1976
- var onSort;
2091
+ var FixedSizeContainer_1 = __webpack_require__(12);
2092
+ /**
2093
+ * @method shouldShowIconPlaceholder
2094
+ * @param {object} dataSources
2095
+ * @param {boolean} loading
2096
+ * @returns {boolean}
2097
+ */
1977
2098
 
1978
- if (lodash_1.isFunction(onRequestParamsChange)) {
1979
- if (requestParams && lodash_1.has(requestParams, 'sort')) {
1980
- currentSortKey = Object.keys(requestParams.sort).shift();
1981
- currentSortDir = requestParams.sort[currentSortKey];
1982
- } // undid memoization since there is a dependency on requestParams, which is a deeply nested object
1983
2099
 
2100
+ var shouldShowIconPlaceholder = function shouldShowIconPlaceholder(dataSources) {
2101
+ var loading = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
2102
+ var data = lodash_1.get(dataSources, 'primary.data.columns[0]', undefined);
2103
+ var noData = data === undefined;
2104
+ var fields = lodash_1.get(dataSources, 'primary.data.fields[0]', undefined);
2105
+ var noFields = fields === undefined;
2106
+ return loading || noData || noFields;
2107
+ };
1984
2108
 
1985
- onSort = function onSort(e, _ref2) {
1986
- var sortKey = _ref2.sortKey,
1987
- sortDir = _ref2.sortDir;
2109
+ exports.shouldShowIconPlaceholder = shouldShowIconPlaceholder;
2110
+ var propTypes = {
2111
+ icon: T.func,
2112
+ width: T.oneOfType([T.string, T.number]),
2113
+ height: T.oneOfType([T.string, T.number]),
2114
+ // eslint-disable-next-line react/no-unused-prop-types
2115
+ backgroundColor: T.string,
2116
+ iconColor: T.string
2117
+ };
2118
+ /**
2119
+ * @method IconPlaceholder
2120
+ * @param {IconPlaceholderProps} props
2121
+ * @returns {React.ReactElement}
2122
+ */
1988
2123
 
1989
- if (typeof sortKey === 'string') {
1990
- var nextSortDir = lodash_1.has(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';
1991
- onRequestParamsChange(Object.assign(Object.assign({}, requestParams), {
1992
- offset: 0,
1993
- sort: _defineProperty({}, sortKey, nextSortDir)
1994
- }));
1995
- } else {
1996
- onRequestParamsChange(requestParams);
1997
- }
1998
- };
2124
+ var IconPlaceholder = function IconPlaceholder(props) {
2125
+ var width = props.width,
2126
+ height = props.height,
2127
+ icon = props.icon,
2128
+ iconColor = props.iconColor;
2129
+
2130
+ if (icon) {
2131
+ return React.createElement(icon, {
2132
+ style: {
2133
+ left: '50%',
2134
+ top: '50%',
2135
+ color: iconColor,
2136
+ opacity: 0.15,
2137
+ position: 'absolute',
2138
+ transform: 'translate(-50%, -50%)'
2139
+ },
2140
+ width: '50%',
2141
+ height: '50%'
2142
+ });
1999
2143
  }
2000
2144
 
2001
- return {
2002
- currentSortKey: currentSortKey,
2003
- currentSortDir: currentSortDir,
2004
- onSort: onSort
2005
- };
2145
+ return React.createElement(Message_1.default, {
2146
+ width: width,
2147
+ height: height,
2148
+ level: "warning",
2149
+ message: i18n_1._('No DataSource Connected')
2150
+ });
2006
2151
  };
2007
2152
 
2008
- exports.getSortingParams = getSortingParams;
2153
+ IconPlaceholder.propTypes = propTypes;
2154
+ IconPlaceholder.defaultProps = {
2155
+ width: '100%',
2156
+ height: 250
2157
+ };
2158
+ exports.default = FixedSizeContainer_1.default(IconPlaceholder);
2009
2159
 
2010
2160
  /***/ }),
2011
2161
 
2012
2162
  /***/ 270:
2163
+ /***/ (function(module, exports) {
2164
+
2165
+ module.exports = require("@splunk/react-ui/Paginator");
2166
+
2167
+ /***/ }),
2168
+
2169
+ /***/ 271:
2170
+ /***/ (function(module, exports) {
2171
+
2172
+ module.exports = require("@splunk/react-ui/Message");
2173
+
2174
+ /***/ }),
2175
+
2176
+ /***/ 272:
2013
2177
  /***/ (function(module, exports, __webpack_require__) {
2014
2178
 
2015
2179
  "use strict";
2016
2180
 
2017
2181
 
2018
- var _toConsumableArray = __webpack_require__(9);
2182
+ var _toConsumableArray = __webpack_require__(7);
2019
2183
 
2020
- var _typeof = __webpack_require__(25);
2184
+ var _typeof = __webpack_require__(109);
2021
2185
 
2022
2186
  Object.defineProperty(exports, "__esModule", {
2023
2187
  value: true
2024
2188
  });
2025
2189
  exports.useTable = exports.getTextOverflowType = exports.getOverflowStyles = void 0;
2026
2190
 
2027
- var lodash_1 = __webpack_require__(2);
2191
+ var lodash_1 = __webpack_require__(3);
2028
2192
 
2029
- var colorUtils_1 = __webpack_require__(13);
2193
+ var colorUtils_1 = __webpack_require__(11);
2030
2194
 
2031
- var consts_1 = __webpack_require__(112);
2195
+ var consts_1 = __webpack_require__(113);
2032
2196
 
2033
2197
  var isArray = function isArray(v) {
2034
2198
  return Array.isArray(v);
@@ -2435,7 +2599,7 @@ exports.useTable = useTable;
2435
2599
 
2436
2600
  /***/ }),
2437
2601
 
2438
- /***/ 271:
2602
+ /***/ 273:
2439
2603
  /***/ (function(module, exports, __webpack_require__) {
2440
2604
 
2441
2605
  "use strict";
@@ -2464,17 +2628,17 @@ Object.defineProperty(exports, "__esModule", {
2464
2628
  value: true
2465
2629
  });
2466
2630
 
2467
- __exportStar(__webpack_require__(272), exports);
2468
-
2469
- __exportStar(__webpack_require__(273), exports);
2470
-
2471
2631
  __exportStar(__webpack_require__(274), exports);
2472
2632
 
2473
2633
  __exportStar(__webpack_require__(275), exports);
2474
2634
 
2635
+ __exportStar(__webpack_require__(276), exports);
2636
+
2637
+ __exportStar(__webpack_require__(277), exports);
2638
+
2475
2639
  /***/ }),
2476
2640
 
2477
- /***/ 272:
2641
+ /***/ 274:
2478
2642
  /***/ (function(module, exports, __webpack_require__) {
2479
2643
 
2480
2644
  "use strict";
@@ -2497,7 +2661,7 @@ exports.SwitchTableCell = SwitchTableCell;
2497
2661
 
2498
2662
  /***/ }),
2499
2663
 
2500
- /***/ 273:
2664
+ /***/ 275:
2501
2665
  /***/ (function(module, exports, __webpack_require__) {
2502
2666
 
2503
2667
  "use strict";
@@ -2510,7 +2674,7 @@ exports.TextCell = void 0;
2510
2674
 
2511
2675
  var React = __webpack_require__(1);
2512
2676
 
2513
- var Table_1 = __webpack_require__(90);
2677
+ var Table_1 = __webpack_require__(91);
2514
2678
 
2515
2679
  var TextCell = function TextCell(_ref) {
2516
2680
  var cell = _ref.cell,
@@ -2533,7 +2697,7 @@ exports.TextCell.displayName = 'TextCell';
2533
2697
 
2534
2698
  /***/ }),
2535
2699
 
2536
- /***/ 274:
2700
+ /***/ 276:
2537
2701
  /***/ (function(module, exports, __webpack_require__) {
2538
2702
 
2539
2703
  "use strict";
@@ -2546,7 +2710,7 @@ exports.ArrayCell = void 0;
2546
2710
 
2547
2711
  var React = __webpack_require__(1);
2548
2712
 
2549
- var Table_1 = __webpack_require__(90);
2713
+ var Table_1 = __webpack_require__(91);
2550
2714
 
2551
2715
  var ArrayCell = function ArrayCell(_ref) {
2552
2716
  var cell = _ref.cell,
@@ -2575,7 +2739,7 @@ exports.ArrayCell.displayName = 'ArrayCell';
2575
2739
 
2576
2740
  /***/ }),
2577
2741
 
2578
- /***/ 275:
2742
+ /***/ 277:
2579
2743
  /***/ (function(module, exports, __webpack_require__) {
2580
2744
 
2581
2745
  "use strict";
@@ -2590,9 +2754,9 @@ exports.SparklineCell = exports.validSparklineTypes = void 0;
2590
2754
 
2591
2755
  var React = __webpack_require__(1);
2592
2756
 
2593
- var Table_1 = __webpack_require__(90);
2757
+ var Table_1 = __webpack_require__(91);
2594
2758
 
2595
- var Line_1 = __webpack_require__(91);
2759
+ var Line_1 = __webpack_require__(92);
2596
2760
 
2597
2761
  var paddingLeftRight = 5;
2598
2762
  var paddingTopBottom = 3;
@@ -2668,7 +2832,7 @@ exports.SparklineCell.displayName = 'SparklineCell';
2668
2832
 
2669
2833
  /***/ }),
2670
2834
 
2671
- /***/ 276:
2835
+ /***/ 278:
2672
2836
  /***/ (function(module, exports, __webpack_require__) {
2673
2837
 
2674
2838
  "use strict";
@@ -2679,7 +2843,7 @@ Object.defineProperty(exports, "__esModule", {
2679
2843
  });
2680
2844
  exports.getLastColumnWidth = exports.getColumnWidth = void 0;
2681
2845
 
2682
- var PureTable_1 = __webpack_require__(140);
2846
+ var PureTable_1 = __webpack_require__(141);
2683
2847
 
2684
2848
  var getColumnWidth = function getColumnWidth(_ref) {
2685
2849
  var columns = _ref.columns,
@@ -2762,7 +2926,7 @@ exports.getLastColumnWidth = getLastColumnWidth;
2762
2926
 
2763
2927
  /***/ }),
2764
2928
 
2765
- /***/ 277:
2929
+ /***/ 279:
2766
2930
  /***/ (function(module, exports) {
2767
2931
 
2768
2932
  module.exports = require("lodash/debounce");
@@ -2775,6 +2939,77 @@ module.exports = require("lodash/debounce");
2775
2939
  "use strict";
2776
2940
 
2777
2941
 
2942
+ var _defineProperty = __webpack_require__(6);
2943
+
2944
+ Object.defineProperty(exports, "__esModule", {
2945
+ value: true
2946
+ });
2947
+ exports.getSortingParams = exports.SortParamsPropTypes = void 0;
2948
+
2949
+ var T = __webpack_require__(0);
2950
+
2951
+ var lodash_1 = __webpack_require__(3);
2952
+
2953
+ var DataSource_1 = __webpack_require__(38);
2954
+
2955
+ exports.SortParamsPropTypes = T.shape({
2956
+ currentSortKey: T.string,
2957
+ currentSortDir: T.oneOf(DataSource_1.validSortDirs),
2958
+ onSort: T.func
2959
+ });
2960
+
2961
+ var getSortingParams = function getSortingParams(_ref) {
2962
+ var requestParams = _ref.requestParams,
2963
+ onRequestParamsChange = _ref.onRequestParamsChange;
2964
+ var currentSortKey;
2965
+ var currentSortDir;
2966
+ var nextSortDirMap = {
2967
+ asc: 'desc',
2968
+ desc: 'asc',
2969
+ none: 'asc'
2970
+ };
2971
+ var onSort;
2972
+
2973
+ if (lodash_1.isFunction(onRequestParamsChange)) {
2974
+ if (requestParams && lodash_1.has(requestParams, 'sort')) {
2975
+ currentSortKey = Object.keys(requestParams.sort).shift();
2976
+ currentSortDir = requestParams.sort[currentSortKey];
2977
+ } // undid memoization since there is a dependency on requestParams, which is a deeply nested object
2978
+
2979
+
2980
+ onSort = function onSort(e, _ref2) {
2981
+ var sortKey = _ref2.sortKey,
2982
+ sortDir = _ref2.sortDir;
2983
+
2984
+ if (typeof sortKey === 'string') {
2985
+ var nextSortDir = lodash_1.has(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';
2986
+ onRequestParamsChange(Object.assign(Object.assign({}, requestParams), {
2987
+ offset: 0,
2988
+ sort: _defineProperty({}, sortKey, nextSortDir)
2989
+ }));
2990
+ } else {
2991
+ onRequestParamsChange(requestParams);
2992
+ }
2993
+ };
2994
+ }
2995
+
2996
+ return {
2997
+ currentSortKey: currentSortKey,
2998
+ currentSortDir: currentSortDir,
2999
+ onSort: onSort
3000
+ };
3001
+ };
3002
+
3003
+ exports.getSortingParams = getSortingParams;
3004
+
3005
+ /***/ }),
3006
+
3007
+ /***/ 29:
3008
+ /***/ (function(module, exports, __webpack_require__) {
3009
+
3010
+ "use strict";
3011
+
3012
+
2778
3013
  Object.defineProperty(exports, "__esModule", {
2779
3014
  value: true
2780
3015
  });
@@ -2782,7 +3017,7 @@ exports.getPaginationParams = exports.PaginatorParamsPropTypes = void 0;
2782
3017
 
2783
3018
  var T = __webpack_require__(0);
2784
3019
 
2785
- var lodash_1 = __webpack_require__(2);
3020
+ var lodash_1 = __webpack_require__(3);
2786
3021
 
2787
3022
  exports.PaginatorParamsPropTypes = T.shape({
2788
3023
  isPaging: T.bool,
@@ -2834,7 +3069,14 @@ exports.getPaginationParams = getPaginationParams;
2834
3069
 
2835
3070
  /***/ }),
2836
3071
 
2837
- /***/ 29:
3072
+ /***/ 3:
3073
+ /***/ (function(module, exports) {
3074
+
3075
+ module.exports = require("lodash");
3076
+
3077
+ /***/ }),
3078
+
3079
+ /***/ 30:
2838
3080
  /***/ (function(module, exports, __webpack_require__) {
2839
3081
 
2840
3082
  "use strict";
@@ -2863,14 +3105,7 @@ var VizCategory;
2863
3105
 
2864
3106
  /***/ }),
2865
3107
 
2866
- /***/ 3:
2867
- /***/ (function(module, exports) {
2868
-
2869
- module.exports = require("@splunk/ui-utils/i18n");
2870
-
2871
- /***/ }),
2872
-
2873
- /***/ 30:
3108
+ /***/ 31:
2874
3109
  /***/ (function(module, exports, __webpack_require__) {
2875
3110
 
2876
3111
  "use strict";
@@ -2882,39 +3117,39 @@ Object.defineProperty(exports, "__esModule", {
2882
3117
 
2883
3118
  var React = __webpack_require__(1);
2884
3119
 
2885
- var lodash_1 = __webpack_require__(2);
3120
+ var lodash_1 = __webpack_require__(3);
2886
3121
 
2887
- var getSettingsFromThemedProps_1 = __webpack_require__(31);
3122
+ var getSettingsFromThemedProps_1 = __webpack_require__(32);
2888
3123
 
2889
- var Options_1 = __webpack_require__(32);
3124
+ var Options_1 = __webpack_require__(33);
2890
3125
 
2891
- var SanitizeProps_1 = __webpack_require__(33);
3126
+ var SanitizeProps_1 = __webpack_require__(34);
2892
3127
 
2893
- var TimezoneContext_1 = __webpack_require__(21);
3128
+ var TimezoneContext_1 = __webpack_require__(22);
2894
3129
 
2895
- var moment_1 = __webpack_require__(34);
3130
+ var moment_1 = __webpack_require__(35);
2896
3131
 
2897
3132
  var styled_components_1 = __webpack_require__(4);
2898
3133
 
2899
- var SplunkVisualization_1 = __webpack_require__(35);
3134
+ var hocUtils_1 = __webpack_require__(24);
2900
3135
 
2901
- var VizBehavior_1 = __webpack_require__(5);
3136
+ var JSONSchemaUtils_1 = __webpack_require__(25);
2902
3137
 
2903
- var getSorting_1 = __webpack_require__(27);
3138
+ var SplunkVisualization_1 = __webpack_require__(36);
2904
3139
 
2905
- var getPagination_1 = __webpack_require__(28);
3140
+ var VizBehavior_1 = __webpack_require__(5);
2906
3141
 
2907
- var useDeepMemo_1 = __webpack_require__(38);
3142
+ var getSorting_1 = __webpack_require__(28);
2908
3143
 
2909
- var JSONSchemaUtils_1 = __webpack_require__(24);
3144
+ var getPagination_1 = __webpack_require__(29);
2910
3145
 
2911
- var MissingPropsMessage_1 = __webpack_require__(39);
3146
+ var useDeepMemo_1 = __webpack_require__(39);
2912
3147
 
2913
- var withEditModeCover_1 = __webpack_require__(40);
3148
+ var MissingPropsMessage_1 = __webpack_require__(40);
2914
3149
 
2915
- var withPlaceholder_1 = __webpack_require__(42);
3150
+ var withEditModeCover_1 = __webpack_require__(41);
2916
3151
 
2917
- var hocUtils_1 = __webpack_require__(8);
3152
+ var withPlaceholder_1 = __webpack_require__(42);
2918
3153
  /**
2919
3154
  * hoc that wraps a pure react visualization in a Dashboard visualization
2920
3155
  * @param {DashboardVizOpts} opts
@@ -3116,41 +3351,41 @@ exports.default = withDashboardViz;
3116
3351
 
3117
3352
  /***/ }),
3118
3353
 
3119
- /***/ 31:
3354
+ /***/ 32:
3120
3355
  /***/ (function(module, exports) {
3121
3356
 
3122
3357
  module.exports = require("@splunk/themes/getSettingsFromThemedProps");
3123
3358
 
3124
3359
  /***/ }),
3125
3360
 
3126
- /***/ 32:
3361
+ /***/ 33:
3127
3362
  /***/ (function(module, exports) {
3128
3363
 
3129
3364
  module.exports = require("@splunk/visualization-encoding/Options");
3130
3365
 
3131
3366
  /***/ }),
3132
3367
 
3133
- /***/ 33:
3368
+ /***/ 34:
3134
3369
  /***/ (function(module, exports) {
3135
3370
 
3136
3371
  module.exports = require("@splunk/visualizations-shared/SanitizeProps");
3137
3372
 
3138
3373
  /***/ }),
3139
3374
 
3140
- /***/ 34:
3375
+ /***/ 35:
3141
3376
  /***/ (function(module, exports) {
3142
3377
 
3143
3378
  module.exports = require("@splunk/moment");
3144
3379
 
3145
3380
  /***/ }),
3146
3381
 
3147
- /***/ 35:
3382
+ /***/ 36:
3148
3383
  /***/ (function(module, exports, __webpack_require__) {
3149
3384
 
3150
3385
  "use strict";
3151
3386
 
3152
3387
 
3153
- var _classCallCheck = __webpack_require__(12);
3388
+ var _classCallCheck = __webpack_require__(10);
3154
3389
 
3155
3390
  Object.defineProperty(exports, "__esModule", {
3156
3391
  value: true
@@ -3160,9 +3395,9 @@ exports.INITIAL_HEIGHT = exports.INITIAL_WIDTH = void 0;
3160
3395
 
3161
3396
  var T = __webpack_require__(0);
3162
3397
 
3163
- var lodash_1 = __webpack_require__(2);
3398
+ var lodash_1 = __webpack_require__(3);
3164
3399
 
3165
- var VizActionHandler_1 = __webpack_require__(36); // this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations
3400
+ var VizActionHandler_1 = __webpack_require__(37); // this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations
3166
3401
 
3167
3402
 
3168
3403
  exports.INITIAL_WIDTH = 250;
@@ -3296,15 +3531,15 @@ exports.default = SplunkVisualization;
3296
3531
 
3297
3532
  /***/ }),
3298
3533
 
3299
- /***/ 36:
3534
+ /***/ 37:
3300
3535
  /***/ (function(module, exports, __webpack_require__) {
3301
3536
 
3302
3537
  "use strict";
3303
3538
 
3304
3539
 
3305
- var _classCallCheck = __webpack_require__(12);
3540
+ var _classCallCheck = __webpack_require__(10);
3306
3541
 
3307
- var _createClass = __webpack_require__(17);
3542
+ var _createClass = __webpack_require__(18);
3308
3543
 
3309
3544
  Object.defineProperty(exports, "__esModule", {
3310
3545
  value: true
@@ -3334,7 +3569,7 @@ exports.DefaultVizActionHandler = DefaultVizActionHandler;
3334
3569
 
3335
3570
  /***/ }),
3336
3571
 
3337
- /***/ 37:
3572
+ /***/ 38:
3338
3573
  /***/ (function(module, exports, __webpack_require__) {
3339
3574
 
3340
3575
  "use strict";
@@ -3348,7 +3583,7 @@ exports.validSortDirs = ['asc', 'desc', 'none'];
3348
3583
 
3349
3584
  /***/ }),
3350
3585
 
3351
- /***/ 38:
3586
+ /***/ 39:
3352
3587
  /***/ (function(module, exports, __webpack_require__) {
3353
3588
 
3354
3589
  "use strict";
@@ -3361,7 +3596,7 @@ exports.useDeepMemo = void 0;
3361
3596
 
3362
3597
  var react_1 = __webpack_require__(1);
3363
3598
 
3364
- var lodash_1 = __webpack_require__(2);
3599
+ var lodash_1 = __webpack_require__(3);
3365
3600
  /**
3366
3601
  * This hook evaluates and stores the result of a passed function and only
3367
3602
  * re-evaluates the function when passed dependencies change.
@@ -3394,7 +3629,14 @@ exports.useDeepMemo = useDeepMemo;
3394
3629
 
3395
3630
  /***/ }),
3396
3631
 
3397
- /***/ 39:
3632
+ /***/ 4:
3633
+ /***/ (function(module, exports) {
3634
+
3635
+ module.exports = require("styled-components");
3636
+
3637
+ /***/ }),
3638
+
3639
+ /***/ 40:
3398
3640
  /***/ (function(module, exports, __webpack_require__) {
3399
3641
 
3400
3642
  "use strict";
@@ -3409,11 +3651,11 @@ var React = __webpack_require__(1);
3409
3651
 
3410
3652
  var T = __webpack_require__(0);
3411
3653
 
3412
- var i18n_1 = __webpack_require__(3);
3654
+ var i18n_1 = __webpack_require__(2);
3413
3655
 
3414
- var Message_1 = __webpack_require__(11);
3656
+ var Message_1 = __webpack_require__(9);
3415
3657
 
3416
- var FixedSizeContainer_1 = __webpack_require__(14);
3658
+ var FixedSizeContainer_1 = __webpack_require__(12);
3417
3659
  /**
3418
3660
  * @method isMissing
3419
3661
  * @param {any} v
@@ -3475,14 +3717,7 @@ exports.default = FixedSizeContainer_1.default(exports.MissingPropsMessage);
3475
3717
 
3476
3718
  /***/ }),
3477
3719
 
3478
- /***/ 4:
3479
- /***/ (function(module, exports) {
3480
-
3481
- module.exports = require("styled-components");
3482
-
3483
- /***/ }),
3484
-
3485
- /***/ 40:
3720
+ /***/ 41:
3486
3721
  /***/ (function(module, exports, __webpack_require__) {
3487
3722
 
3488
3723
  "use strict";
@@ -3496,14 +3731,14 @@ var React = __webpack_require__(1);
3496
3731
 
3497
3732
  var styled_components_1 = __webpack_require__(4);
3498
3733
 
3499
- var hocUtils_1 = __webpack_require__(8);
3734
+ var hocUtils_1 = __webpack_require__(13);
3500
3735
 
3501
3736
  var Cover = styled_components_1.default.div.withConfig({
3502
3737
  displayName: "withEditModeCover__Cover",
3503
3738
  componentId: "sc-1gsbnxb-0"
3504
3739
  })(["position:absolute;left:0;right:0;top:0;bottom:0;"]);
3505
3740
  var Blocker = styled_components_1.default.div.attrs({
3506
- 'data-splunk-visualization-version': "25.0.1 - de10ad954"
3741
+ 'data-splunk-visualization-version': "25.1.0 - 812a9a4d8"
3507
3742
  }).withConfig({
3508
3743
  displayName: "withEditModeCover__Blocker",
3509
3744
  componentId: "sc-1gsbnxb-1"
@@ -3527,480 +3762,163 @@ var withEditModeCover = function withEditModeCover(Visualization, disableEditMod
3527
3762
  hocUtils_1.extendStaticWrapperProps({
3528
3763
  Wrapper: Wrapper,
3529
3764
  Visualization: Visualization
3530
- });
3531
- return Wrapper;
3532
- };
3533
-
3534
- exports.default = withEditModeCover;
3535
-
3536
- /***/ }),
3537
-
3538
- /***/ 41:
3539
- /***/ (function(module, exports) {
3540
-
3541
- module.exports = require("@splunk/visualizations-shared/mapUtils");
3542
-
3543
- /***/ }),
3544
-
3545
- /***/ 42:
3546
- /***/ (function(module, exports, __webpack_require__) {
3547
-
3548
- "use strict";
3549
-
3550
-
3551
- Object.defineProperty(exports, "__esModule", {
3552
- value: true
3553
- });
3554
-
3555
- var React = __webpack_require__(1);
3556
-
3557
- var colorUtils_1 = __webpack_require__(13);
3558
-
3559
- var variables_1 = __webpack_require__(10);
3560
-
3561
- var IconPlaceholder_1 = __webpack_require__(26);
3562
-
3563
- var VizBehavior_1 = __webpack_require__(5);
3564
-
3565
- var hocUtils_1 = __webpack_require__(8);
3566
-
3567
- var withPlaceholder = function withPlaceholder(Visualization) {
3568
- var useIconPlaceholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IconPlaceholder_1.shouldShowIconPlaceholder;
3569
- var config = Visualization.config;
3570
- var themes = config.themes;
3571
-
3572
- var Wrapper = function Wrapper(props) {
3573
- var _a, _b;
3574
-
3575
- var dataSources = props.dataSources,
3576
- loading = props.loading,
3577
- options = props.options,
3578
- height = props.height,
3579
- width = props.width;
3580
- var showPlaceholder = useIconPlaceholder(dataSources, loading, options);
3581
- var bgColorFromTheme = 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);
3582
- var icon = (_b = config.placeholderIcon) !== null && _b !== void 0 ? _b : config.icon;
3583
- var iconColor = variables_1.default.contentColorActive(props);
3584
-
3585
- if (config.supports.includes(VizBehavior_1.VizBehavior.PLACEHOLDER) && showPlaceholder) {
3586
- return React.createElement(IconPlaceholder_1.default, {
3587
- "data-test": "icon-placeholder",
3588
- icon: icon,
3589
- width: width,
3590
- height: height,
3591
- backgroundColor: bgColorFromTheme,
3592
- iconColor: iconColor
3593
- });
3594
- }
3595
-
3596
- return React.createElement(Visualization, Object.assign({}, props));
3597
- };
3598
-
3599
- hocUtils_1.extendStaticWrapperProps({
3600
- Wrapper: Wrapper,
3601
- Visualization: Visualization
3602
- });
3603
- return Wrapper;
3604
- };
3605
-
3606
- exports.default = withPlaceholder;
3607
-
3608
- /***/ }),
3609
-
3610
- /***/ 43:
3611
- /***/ (function(module, exports) {
3612
-
3613
- module.exports = require("@splunk/visualizations-shared/colorConstants");
3614
-
3615
- /***/ }),
3616
-
3617
- /***/ 45:
3618
- /***/ (function(module, exports) {
3619
-
3620
- module.exports = require("@splunk/visualization-icons/placeholders");
3621
-
3622
- /***/ }),
3623
-
3624
- /***/ 46:
3625
- /***/ (function(module, exports) {
3626
-
3627
- module.exports = require("@splunk/visualization-icons");
3628
-
3629
- /***/ }),
3630
-
3631
- /***/ 5:
3632
- /***/ (function(module, exports, __webpack_require__) {
3633
-
3634
- "use strict";
3635
-
3636
-
3637
- Object.defineProperty(exports, "__esModule", {
3638
- value: true
3639
- });
3640
- exports.VizBehavior = void 0;
3641
- var VizBehavior;
3642
-
3643
- (function (VizBehavior) {
3644
- /**
3645
- * Dynamic Options Behavior.
3646
- * This allows visualization options to be powered by data
3647
- *
3648
- * **Example**
3649
- *
3650
- * sparklineValues: ">primary|seriesByIndex(0)"
3651
- * would configure sparklineValues with an array of data points
3652
- * coming from the first series in the primary datasource
3653
- *
3654
- */
3655
- VizBehavior["DYNAMIC_OPTIONS"] = "dynamic-options";
3656
- VizBehavior["EVENTS"] = "events";
3657
- /**
3658
- * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is
3659
- * missing.
3660
- * @type {string}
3661
- */
3662
-
3663
- VizBehavior["PLACEHOLDER"] = "placeholder";
3664
- VizBehavior["PAGE_AND_SORT"] = "page-and-sort";
3665
- })(VizBehavior = exports.VizBehavior || (exports.VizBehavior = {}));
3666
-
3667
- /***/ }),
3668
-
3669
- /***/ 52:
3670
- /***/ (function(module, exports) {
3671
-
3672
- module.exports = require("@babel/runtime/helpers/slicedToArray");
3673
-
3674
- /***/ }),
3675
-
3676
- /***/ 6:
3677
- /***/ (function(module, exports, __webpack_require__) {
3678
-
3679
- "use strict";
3680
-
3681
-
3682
- var _toConsumableArray = __webpack_require__(9);
3683
-
3684
- var _defineProperty = __webpack_require__(7);
3685
-
3686
- var __rest = this && this.__rest || function (s, e) {
3687
- var t = {};
3688
-
3689
- for (var p in s) {
3690
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
3691
- }
3692
-
3693
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
3694
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
3695
- }
3696
- return t;
3697
- };
3698
-
3699
- Object.defineProperty(exports, "__esModule", {
3700
- value: true
3701
- });
3702
- exports.insertLayout = exports.uncollapseEditorConfig = exports.generatePrecisionValues = exports.getInitialPreset = exports.isDynamicOption = exports.enhanceOptionsSchemaWithDynamicOptions = exports.enhanceConfig = void 0;
3703
-
3704
- var lodash_1 = __webpack_require__(2);
3705
-
3706
- var schemaUtils_1 = __webpack_require__(16);
3707
-
3708
- var VizBehavior_1 = __webpack_require__(5);
3709
-
3710
- var dynamicOptionsDSLType = {
3711
- type: 'string',
3712
- pattern: schemaUtils_1.DYNAMIC_OPTIONS_DSL_PATTERN
3713
- };
3714
- /**
3715
- * Helper function to extend an options schema with dynamic options DSL
3716
- * @param optionsSchema a visualization's options schema
3717
- * @returns an updated options schema that additionally allows strings starting with > for each option
3718
- */
3719
-
3720
- function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
3721
- var enhancedOptionsSchema = {};
3722
- Object.keys(optionsSchema).forEach(function (key) {
3723
- var _a = optionsSchema[key],
3724
- title = _a.title,
3725
- description = _a.description,
3726
- readOnly = _a.readOnly,
3727
- writeOnly = _a.writeOnly,
3728
- examples = _a.examples,
3729
- defaultValue = _a.default,
3730
- type = _a.type,
3731
- properties = _a.properties,
3732
- patternProperties = _a.patternProperties,
3733
- remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
3734
-
3735
- var annotations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, title !== undefined && {
3736
- title: title
3737
- }), description !== undefined && {
3738
- description: description
3739
- }), readOnly !== undefined && {
3740
- readOnly: readOnly
3741
- }), writeOnly !== undefined && {
3742
- writeOnly: writeOnly
3743
- }), examples !== undefined && {
3744
- examples: examples
3745
- }), defaultValue !== undefined && {
3746
- default: defaultValue
3747
- });
3748
-
3749
- if (type === 'object') {
3750
- enhancedOptionsSchema[key] = Object.assign(Object.assign(Object.assign(Object.assign({}, remainingSchemaEntry), annotations), {
3751
- type: type
3752
- }), properties && {
3753
- properties: enhanceOptionsSchemaWithDynamicOptions(properties)
3754
- });
3755
-
3756
- if (patternProperties) {
3757
- var enhancedPatternProperties = {};
3758
- Object.keys(patternProperties).forEach(function (opt) {
3759
- enhancedPatternProperties = Object.assign(Object.assign({}, enhancedPatternProperties), enhanceOptionsSchemaWithDynamicOptions(_defineProperty({}, opt, patternProperties[opt])));
3760
- });
3761
- enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;
3762
- }
3763
- } else {
3764
- enhancedOptionsSchema[key] = Object.assign(Object.assign({}, annotations), {
3765
- anyOf: [Object.assign(Object.assign({}, type !== undefined && {
3766
- type: type
3767
- }), remainingSchemaEntry), dynamicOptionsDSLType]
3768
- });
3769
- }
3770
- });
3771
- return enhancedOptionsSchema;
3772
- }
3765
+ });
3766
+ return Wrapper;
3767
+ };
3773
3768
 
3774
- exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamicOptions;
3775
- /**
3776
- * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block
3777
- * this function also collapse all editor panels
3778
- * @param vizConfig a Visualization Config
3779
- * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports
3780
- * and containing `open: false` for all editor panels in editorConfig
3781
- */
3769
+ exports.default = withEditModeCover;
3782
3770
 
3783
- function enhanceConfig(vizConfig) {
3784
- var enhancedConfig = vizConfig;
3771
+ /***/ }),
3785
3772
 
3786
- if (vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS) !== -1) {
3787
- enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);
3788
- }
3773
+ /***/ 42:
3774
+ /***/ (function(module, exports, __webpack_require__) {
3789
3775
 
3790
- enhancedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
3791
- return Object.assign(Object.assign({}, config), {
3792
- open: false
3793
- });
3794
- });
3795
- return enhancedConfig;
3796
- }
3776
+ "use strict";
3797
3777
 
3798
- exports.enhanceConfig = enhanceConfig;
3799
- /**
3800
- * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig
3801
- * Created for editor unit tests
3802
- * @param vizConfig a Visualization Config
3803
- * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig
3804
- */
3805
3778
 
3806
- function uncollapseEditorConfig(vizConfig) {
3807
- var editorPanelUncollapsedConfig = vizConfig;
3808
- editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
3809
- return Object.assign(Object.assign({}, config), {
3810
- open: true
3811
- });
3812
- });
3813
- return editorPanelUncollapsedConfig;
3814
- }
3779
+ Object.defineProperty(exports, "__esModule", {
3780
+ value: true
3781
+ });
3815
3782
 
3816
- exports.uncollapseEditorConfig = uncollapseEditorConfig;
3783
+ var React = __webpack_require__(1);
3817
3784
 
3818
- function isDynamicOption(option) {
3819
- return option && typeof option === 'string' && option.trim().startsWith('>') || false;
3820
- }
3785
+ var colorUtils_1 = __webpack_require__(11);
3821
3786
 
3822
- exports.isDynamicOption = isDynamicOption; // private helpers to improve readability of getInitialPreset
3823
- // this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset
3787
+ var variables_1 = __webpack_require__(8);
3824
3788
 
3825
- /**
3826
- * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset
3827
- * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset
3828
- * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext
3829
- * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up
3830
- *
3831
- * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values
3832
- */
3789
+ var IconPlaceholder_1 = __webpack_require__(27);
3833
3790
 
3834
- function hasCompatibleContexts(vizContext, presetContext) {
3835
- var presetContextKeys = Object.keys(presetContext);
3836
- return presetContextKeys.every(function (contextKey) {
3837
- return presetContext[contextKey] === undefined && vizContext[contextKey] === undefined || presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined;
3838
- });
3839
- }
3840
- /**
3841
- * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions
3842
- */
3791
+ var VizBehavior_1 = __webpack_require__(5);
3843
3792
 
3793
+ var hocUtils_1 = __webpack_require__(13);
3844
3794
 
3845
- function hasCompatibleOptions(vizOptions, presetOptions) {
3846
- var presetOptionKeys = Object.keys(presetOptions);
3847
- return presetOptionKeys.every(function (optionKey) {
3848
- return isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey]);
3849
- });
3850
- }
3851
- /**
3852
- * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions
3853
- * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure
3854
- *
3855
- * @param {Object} vizContext - the current vizContext definition
3856
- * @param {Object} vizOptions - the current vizOptions definition
3857
- * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset
3858
- */
3795
+ var withPlaceholder = function withPlaceholder(Visualization) {
3796
+ var useIconPlaceholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IconPlaceholder_1.shouldShowIconPlaceholder;
3797
+ var config = Visualization.config;
3798
+ var themes = config.themes;
3859
3799
 
3800
+ var Wrapper = function Wrapper(props) {
3801
+ var _a, _b;
3860
3802
 
3861
- function getInitialPreset(vizContext, vizOptions, presets) {
3862
- return presets.find(function (preset) {
3863
- var presetContext = lodash_1.get(preset, ['value', 'context'], {});
3864
- var presetOptions = lodash_1.get(preset, ['value', 'options'], {});
3865
- var presetContextKeys = Object.keys(presetContext);
3866
- var presetOptionKeys = Object.keys(presetOptions); // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)
3867
- // if not, then the preset is invalid in config.ts
3803
+ var dataSources = props.dataSources,
3804
+ loading = props.loading,
3805
+ options = props.options,
3806
+ height = props.height,
3807
+ width = props.width;
3808
+ var showPlaceholder = useIconPlaceholder(dataSources, loading, options);
3809
+ var bgColorFromTheme = 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);
3810
+ var icon = (_b = config.placeholderIcon) !== null && _b !== void 0 ? _b : config.icon;
3811
+ var iconColor = variables_1.default.contentColorActive(props);
3868
3812
 
3869
- if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;
3870
- return hasCompatibleContexts(vizContext, presetContext) && hasCompatibleOptions(vizOptions, presetOptions);
3871
- });
3872
- }
3813
+ if (config.supports.includes(VizBehavior_1.VizBehavior.PLACEHOLDER) && showPlaceholder) {
3814
+ return React.createElement(IconPlaceholder_1.default, {
3815
+ "data-test": "icon-placeholder",
3816
+ icon: icon,
3817
+ width: width,
3818
+ height: height,
3819
+ backgroundColor: bgColorFromTheme,
3820
+ iconColor: iconColor
3821
+ });
3822
+ }
3873
3823
 
3874
- exports.getInitialPreset = getInitialPreset;
3875
- /**
3876
- * generates number precision values for a Select editor
3877
- *
3878
- * @param {Number} numPrecisionValues - number of integer precision values to generate
3879
- * @returns {{ label: string; value; string }[]} array of { label, value } tuples
3880
- */
3824
+ return React.createElement(Visualization, Object.assign({}, props));
3825
+ };
3881
3826
 
3882
- function generatePrecisionValues(numPrecisionValues) {
3883
- return lodash_1.range(0, numPrecisionValues + 1).map(function (i) {
3884
- return {
3885
- label: "".concat(i, " (0").concat(i > 0 ? '.' : '').concat('0'.repeat(i), ")"),
3886
- value: i
3887
- };
3827
+ hocUtils_1.extendStaticWrapperProps({
3828
+ Wrapper: Wrapper,
3829
+ Visualization: Visualization
3888
3830
  });
3889
- }
3831
+ return Wrapper;
3832
+ };
3890
3833
 
3891
- exports.generatePrecisionValues = generatePrecisionValues;
3892
- /**
3893
- * insert layout in layout array, return a new layout array instead of updating the original
3894
- *
3895
- * @param {EditorLayoutConfig[][]} layout - editor layout
3896
- * @param {Number} index - the index to insert layout item(s)
3897
- * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert
3898
- * @returns {EditorLayoutConfig[][]} new editor layout with insertion
3899
- */
3834
+ exports.default = withPlaceholder;
3900
3835
 
3901
- var insertLayout = function insertLayout(layout, index) {
3902
- for (var _len = arguments.length, layoutItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
3903
- layoutItems[_key - 2] = arguments[_key];
3904
- }
3836
+ /***/ }),
3905
3837
 
3906
- return [].concat(_toConsumableArray(layout.slice(0, index)), layoutItems, _toConsumableArray(layout.slice(index)));
3907
- };
3838
+ /***/ 43:
3839
+ /***/ (function(module, exports) {
3908
3840
 
3909
- exports.insertLayout = insertLayout;
3841
+ module.exports = require("@splunk/visualizations-shared/colorConstants");
3910
3842
 
3911
3843
  /***/ }),
3912
3844
 
3913
- /***/ 7:
3845
+ /***/ 45:
3914
3846
  /***/ (function(module, exports) {
3915
3847
 
3916
- module.exports = require("@babel/runtime/helpers/defineProperty");
3848
+ module.exports = require("@splunk/visualization-icons/placeholders");
3917
3849
 
3918
3850
  /***/ }),
3919
3851
 
3920
- /***/ 8:
3852
+ /***/ 46:
3853
+ /***/ (function(module, exports) {
3854
+
3855
+ module.exports = require("@splunk/visualization-icons");
3856
+
3857
+ /***/ }),
3858
+
3859
+ /***/ 5:
3921
3860
  /***/ (function(module, exports, __webpack_require__) {
3922
3861
 
3923
3862
  "use strict";
3924
3863
 
3925
3864
 
3926
- var _typeof = __webpack_require__(25);
3927
-
3928
3865
  Object.defineProperty(exports, "__esModule", {
3929
3866
  value: true
3930
3867
  });
3931
- exports.deepMergeWithArrayPrimitiveOverrides = exports.extendStaticWrapperProps = void 0;
3868
+ exports.VizBehavior = void 0;
3869
+ var VizBehavior;
3870
+
3871
+ (function (VizBehavior) {
3872
+ /**
3873
+ * Dynamic Options Behavior.
3874
+ * This allows visualization options to be powered by data
3875
+ *
3876
+ * **Example**
3877
+ *
3878
+ * sparklineValues: ">primary|seriesByIndex(0)"
3879
+ * would configure sparklineValues with an array of data points
3880
+ * coming from the first series in the primary datasource
3881
+ *
3882
+ */
3883
+ VizBehavior["DYNAMIC_OPTIONS"] = "dynamic-options";
3884
+ VizBehavior["EVENTS"] = "events";
3885
+ /**
3886
+ * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is
3887
+ * missing.
3888
+ * @type {string}
3889
+ */
3932
3890
 
3933
- var lodash_1 = __webpack_require__(2);
3891
+ VizBehavior["PLACEHOLDER"] = "placeholder";
3892
+ VizBehavior["PAGE_AND_SORT"] = "page-and-sort";
3893
+ })(VizBehavior = exports.VizBehavior || (exports.VizBehavior = {}));
3934
3894
 
3935
- var mapUtils_1 = __webpack_require__(41);
3936
- /**
3937
- * @method extendStaticWrapperProps
3938
- * @param {Object} props
3939
- * @param {DashboardVizType} props.Wrapper
3940
- * @param {DashboardVizType} props.Visualization
3941
- */
3895
+ /***/ }),
3942
3896
 
3897
+ /***/ 52:
3898
+ /***/ (function(module, exports) {
3943
3899
 
3944
- var extendStaticWrapperProps = function extendStaticWrapperProps(_ref) {
3945
- var Wrapper = _ref.Wrapper,
3946
- Visualization = _ref.Visualization;
3947
- var extendProperties = ['propTypes', 'defaultProps', 'config'];
3948
- extendProperties.forEach(function (prop) {
3949
- if (Visualization[prop]) {
3950
- // eslint-disable-next-line no-param-reassign
3951
- Wrapper[prop] = Visualization[prop];
3952
- }
3953
- });
3954
- };
3900
+ module.exports = require("@babel/runtime/helpers/slicedToArray");
3955
3901
 
3956
- exports.extendStaticWrapperProps = extendStaticWrapperProps;
3957
- /**
3958
- * helper to deeply merge objects while preserving arrays in earlier source objects
3959
- * deeply nested primitive keys are merged similarly to lodash's defaultsDeep, while keys with arrays of primitives will be preserved if already present in the resultant merged object
3960
- * this prevents default arrays of primitives from appending values to user-defined arrays (this occurs if the default array is longer than the user-defined one).
3961
- * Array of objects gets merged with the defaults, where the defaults can be an array of objects. Closest matching default object from the defaults list based on key - value pair
3962
- * will be used for merging defaults for each object in the array. If no closest match found, first object in default array list used for merging.
3963
- *
3964
- * @method deepMergeWithArrayPrimitiveOverrides
3965
- * @param {Object} initial - target object to merge values into
3966
- * @param {Object[]} sources - other default options to be merged into the resultant object if no explicit value is provided, with earlier args taking precedence over later ones
3967
- *
3968
- * @returns {Object}
3969
- */
3902
+ /***/ }),
3970
3903
 
3971
- var deepMergeWithArrayPrimitiveOverrides = function deepMergeWithArrayPrimitiveOverrides(initial) {
3972
- var clone = lodash_1.cloneDeep(initial);
3904
+ /***/ 6:
3905
+ /***/ (function(module, exports) {
3973
3906
 
3974
- for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
3975
- sources[_key - 1] = arguments[_key];
3976
- }
3907
+ module.exports = require("@babel/runtime/helpers/defineProperty");
3977
3908
 
3978
- sources.forEach(function (sourceToApply) {
3979
- Object.keys(sourceToApply).forEach(function (sourceKey) {
3980
- if (!Object.prototype.hasOwnProperty.call(clone, sourceKey)) {
3981
- clone[sourceKey] = lodash_1.cloneDeep(sourceToApply[sourceKey]);
3982
- }
3909
+ /***/ }),
3983
3910
 
3984
- if (clone[sourceKey] && _typeof(clone[sourceKey]) === 'object' && !Array.isArray(clone[sourceKey]) && _typeof(sourceToApply[sourceKey]) === 'object') {
3985
- clone[sourceKey] = exports.deepMergeWithArrayPrimitiveOverrides(clone[sourceKey], sourceToApply[sourceKey]);
3986
- } else if (Array.isArray(clone[sourceKey]) && _typeof(clone[sourceKey][0]) === 'object' && !Array.isArray(clone[sourceKey][0])) {
3987
- // If option is an array of objects
3988
- for (var i = 0; i < clone[sourceKey].length; i += 1) {
3989
- if (_typeof(clone[sourceKey][i]) === 'object') {
3990
- var closestMatchIdx = mapUtils_1.findClosestMatchFromDefaultList(sourceToApply[sourceKey], clone[sourceKey][i]);
3911
+ /***/ 7:
3912
+ /***/ (function(module, exports) {
3991
3913
 
3992
- if (closestMatchIdx > -1) {
3993
- clone[sourceKey][i] = exports.deepMergeWithArrayPrimitiveOverrides(clone[sourceKey][i], sourceToApply[sourceKey][closestMatchIdx]);
3994
- }
3995
- }
3996
- }
3997
- }
3998
- });
3999
- });
4000
- return clone;
4001
- };
3914
+ module.exports = require("@babel/runtime/helpers/toConsumableArray");
3915
+
3916
+ /***/ }),
4002
3917
 
4003
- exports.deepMergeWithArrayPrimitiveOverrides = deepMergeWithArrayPrimitiveOverrides;
3918
+ /***/ 8:
3919
+ /***/ (function(module, exports) {
3920
+
3921
+ module.exports = require("@splunk/themes/variables");
4004
3922
 
4005
3923
  /***/ }),
4006
3924
 
@@ -4014,18 +3932,18 @@ module.exports = require("@babel/runtime/helpers/taggedTemplateLiteral");
4014
3932
  /***/ 9:
4015
3933
  /***/ (function(module, exports) {
4016
3934
 
4017
- module.exports = require("@babel/runtime/helpers/toConsumableArray");
3935
+ module.exports = require("@splunk/visualizations-shared/Message");
4018
3936
 
4019
3937
  /***/ }),
4020
3938
 
4021
- /***/ 90:
3939
+ /***/ 91:
4022
3940
  /***/ (function(module, exports) {
4023
3941
 
4024
3942
  module.exports = require("@splunk/react-ui/Table");
4025
3943
 
4026
3944
  /***/ }),
4027
3945
 
4028
- /***/ 91:
3946
+ /***/ 92:
4029
3947
  /***/ (function(module, exports) {
4030
3948
 
4031
3949
  module.exports = require("@splunk/react-sparkline/Line");