@splunk/visualizations 25.13.1 → 26.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 (150) hide show
  1. package/Area.config.js +318 -234
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +1131 -766
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +317 -233
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +1007 -594
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +234 -160
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +912 -509
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +80 -29
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +691 -319
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +308 -223
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +1011 -587
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +127 -62
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +576 -286
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +111 -29
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +998 -527
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +142 -73
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +962 -572
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +70 -26
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +524 -253
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +326 -242
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +1022 -606
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +99 -49
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +1184 -762
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +1082 -0
  46. package/Map.config.js +311 -167
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +1479 -873
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +93 -43
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +603 -332
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +163 -105
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +1025 -628
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +95 -41
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +993 -622
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +99 -46
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +847 -442
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +114 -62
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +1097 -633
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +131 -65
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +580 -288
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +103 -41
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +1128 -586
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +231 -157
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +904 -504
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +212 -142
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +1506 -956
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +294 -233
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +208 -138
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +1375 -914
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +252 -137
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +2194 -1069
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +172 -83
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +123 -70
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +1094 -590
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +147 -75
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +18 -7
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/EventsDoc.js +91 -36
  107. package/common/EventsDoc.js.map +1 -1
  108. package/common/GaugeMajorTicks.js +70 -60
  109. package/common/GaugeMajorTicks.js.map +1 -1
  110. package/common/GaugeValueMarker.js +45 -36
  111. package/common/GaugeValueMarker.js.map +1 -1
  112. package/common/OptionsDoc.js +177 -86
  113. package/common/OptionsDoc.js.map +1 -1
  114. package/common/OverviewDoc.js +65 -32
  115. package/common/OverviewDoc.js.map +1 -1
  116. package/common/SplunkVisualization.js +34 -7
  117. package/common/SplunkVisualization.js.map +1 -1
  118. package/common/SplunkVisualizationApi.js +10 -4
  119. package/common/SplunkVisualizationApi.js.map +1 -1
  120. package/common/ThemesDoc.js +41 -28
  121. package/common/ThemesDoc.js.map +1 -1
  122. package/common/chartingUtils.js +56 -24
  123. package/common/chartingUtils.js.map +1 -1
  124. package/common/docUtils.js +15 -5
  125. package/common/docUtils.js.map +1 -1
  126. package/common/gaugeUtils.js +238 -155
  127. package/common/gaugeUtils.js.map +1 -1
  128. package/common/shapeUtils.js +34 -16
  129. package/common/shapeUtils.js.map +1 -1
  130. package/common/utils/configUtils.js +59 -23
  131. package/common/utils/configUtils.js.map +1 -1
  132. package/common/utils/dataUtils.js +9 -4
  133. package/common/utils/dataUtils.js.map +1 -1
  134. package/common/utils/hocUtils.js +5 -3
  135. package/common/utils/hocUtils.js.map +1 -1
  136. package/common/utils/layoutUtils.js +3 -2
  137. package/common/utils/layoutUtils.js.map +1 -1
  138. package/common/utils/mapUtils.js +370 -206
  139. package/common/utils/mapUtils.js.map +1 -1
  140. package/common/utils/singleValueUtils.js +243 -198
  141. package/common/utils/singleValueUtils.js.map +1 -1
  142. package/common/utils/testHelper.js +36 -9
  143. package/common/utils/testHelper.js.map +1 -1
  144. package/common/utils/trellisUtils.js +87 -26
  145. package/common/utils/trellisUtils.js.map +1 -1
  146. package/common/utils/urlUtils.js +4 -2
  147. package/common/utils/urlUtils.js.map +1 -1
  148. package/common/withDashboardViz.js +375 -193
  149. package/common/withDashboardViz.js.map +1 -1
  150. package/package.json +25 -27
@@ -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 = 18);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 19);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ([
@@ -134,22 +134,28 @@ module.exports = require("@splunk/visualization-encoding/utils/types");
134
134
  /* 10 */
135
135
  /***/ (function(module, exports) {
136
136
 
137
- module.exports = require("styled-components");
137
+ module.exports = require("@babel/runtime/helpers/taggedTemplateLiteral");
138
138
 
139
139
  /***/ }),
140
140
  /* 11 */
141
141
  /***/ (function(module, exports) {
142
142
 
143
+ module.exports = require("styled-components");
144
+
145
+ /***/ }),
146
+ /* 12 */
147
+ /***/ (function(module, exports) {
148
+
143
149
  module.exports = require("@splunk/visualizations-shared/colorUtils");
144
150
 
145
151
  /***/ }),
146
- /* 12 */,
147
152
  /* 13 */,
148
153
  /* 14 */,
149
154
  /* 15 */,
150
155
  /* 16 */,
151
156
  /* 17 */,
152
- /* 18 */
157
+ /* 18 */,
158
+ /* 19 */
153
159
  /***/ (function(module, exports, __webpack_require__) {
154
160
 
155
161
  "use strict";
@@ -159,40 +165,52 @@ Object.defineProperty(exports, "__esModule", {
159
165
  value: true
160
166
  });
161
167
  exports.columnsNullToZeros = void 0;
168
+
162
169
  var types_1 = __webpack_require__(9);
163
- var dsl_1 = __webpack_require__(19);
164
- var hocUtils_1 = __webpack_require__(20);
165
- var JSONSchemaUtils_1 = __webpack_require__(21);
166
- var BubbleLayer_1 = __webpack_require__(22);
170
+
171
+ var dsl_1 = __webpack_require__(20);
172
+
173
+ var hocUtils_1 = __webpack_require__(21);
174
+
175
+ var JSONSchemaUtils_1 = __webpack_require__(22);
176
+
177
+ var BubbleLayer_1 = __webpack_require__(23);
178
+
167
179
  var columnsNullToZeros = function columnsNullToZeros(config, dataSources, options) {
168
180
  var _a, _b;
181
+
169
182
  var primary = dataSources.primary;
170
183
  var _primary$data = primary.data,
171
- columns = _primary$data.columns,
172
- fields = _primary$data.fields;
184
+ columns = _primary$data.columns,
185
+ fields = _primary$data.fields;
173
186
  var newColumns = columns;
174
- var mergedOptions = hocUtils_1.deepMergeWithArrayPrimitiveOverrides({}, options, JSONSchemaUtils_1.pickFieldFromJSONSchema(config.optionsSchema, 'default'));
187
+ var mergedOptions = (0, hocUtils_1.deepMergeWithArrayPrimitiveOverrides)({}, options, (0, JSONSchemaUtils_1.pickFieldFromJSONSchema)(config.optionsSchema, 'default'));
188
+
175
189
  if (((_b = (_a = mergedOptions.layers) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.type) === 'bubble') {
176
- var latitudeField = dsl_1.getFieldsFromDSL(mergedOptions.layers[0].latitude, dataSources)[0] || '';
177
- var longitudeField = dsl_1.getFieldsFromDSL(mergedOptions.layers[0].longitude, dataSources)[0] || '';
190
+ var latitudeField = (0, dsl_1.getFieldsFromDSL)(mergedOptions.layers[0].latitude, dataSources)[0] || '';
191
+ var longitudeField = (0, dsl_1.getFieldsFromDSL)(mergedOptions.layers[0].longitude, dataSources)[0] || '';
178
192
  var excludedFields = [latitudeField, longitudeField, 'geobin'].concat(BubbleLayer_1.GEO_LAT_AND_LONG_FIELD);
179
193
  var indicesToEvaluate = new Set(fields.reduce(function (arr, e, i) {
180
194
  var field = typeof e === 'string' ? e : e.name.toString();
195
+
181
196
  if (!excludedFields.includes(field)) {
182
197
  arr.push(i);
183
198
  }
199
+
184
200
  return arr;
185
201
  }, []));
186
202
  newColumns = columns.map(function (column, i) {
187
203
  if (indicesToEvaluate.has(i)) {
188
204
  // sanitize value and convert string to numeric numbers
189
205
  return column.map(function (value) {
190
- return !value || !types_1.isNumber(value) ? 0 : +value;
206
+ return !value || !(0, types_1.isNumber)(value) ? 0 : +value;
191
207
  });
192
208
  }
209
+
193
210
  return column;
194
211
  });
195
212
  }
213
+
196
214
  var modifiedDatasources = Object.assign(Object.assign({}, dataSources), {
197
215
  primary: Object.assign(Object.assign({}, primary), {
198
216
  data: Object.assign(Object.assign({}, primary.data), {
@@ -202,62 +220,80 @@ var columnsNullToZeros = function columnsNullToZeros(config, dataSources, option
202
220
  });
203
221
  return modifiedDatasources;
204
222
  };
223
+
205
224
  exports.columnsNullToZeros = columnsNullToZeros;
206
225
 
207
226
  /***/ }),
208
- /* 19 */
227
+ /* 20 */
209
228
  /***/ (function(module, exports) {
210
229
 
211
230
  module.exports = require("@splunk/visualization-encoding/utils/dsl");
212
231
 
213
232
  /***/ }),
214
- /* 20 */
233
+ /* 21 */
215
234
  /***/ (function(module, exports) {
216
235
 
217
236
  module.exports = require("@splunk/visualizations-shared/hocUtils");
218
237
 
219
238
  /***/ }),
220
- /* 21 */
239
+ /* 22 */
221
240
  /***/ (function(module, exports) {
222
241
 
223
242
  module.exports = require("@splunk/visualizations-shared/JSONSchemaUtils");
224
243
 
225
244
  /***/ }),
226
- /* 22 */
245
+ /* 23 */
227
246
  /***/ (function(module, exports, __webpack_require__) {
228
247
 
229
248
  "use strict";
230
249
 
231
250
 
232
251
  var _slicedToArray = __webpack_require__(7);
252
+
233
253
  var _defineProperty = __webpack_require__(1);
254
+
234
255
  var _toConsumableArray = __webpack_require__(2);
256
+
257
+ var _taggedTemplateLiteral = __webpack_require__(10);
258
+
259
+ var _templateObject;
260
+
235
261
  Object.defineProperty(exports, "__esModule", {
236
262
  value: true
237
263
  });
238
264
  exports.Bubble = exports.PieSegment = exports.GEO_LAT_AND_LONG_FIELD = exports.GEO_BOUND_PREFIX = void 0;
265
+
239
266
  var React = __webpack_require__(3);
240
- var styled_components_1 = __webpack_require__(10);
267
+
268
+ var styled_components_1 = __webpack_require__(11);
269
+
241
270
  var lodash_1 = __webpack_require__(0);
242
- var colorUtils_1 = __webpack_require__(11);
243
- var MapUtils_1 = __webpack_require__(23);
244
- var MarkerWrapper_1 = __webpack_require__(27);
271
+
272
+ var colorUtils_1 = __webpack_require__(12);
273
+
274
+ var MapUtils_1 = __webpack_require__(24);
275
+
276
+ var MarkerWrapper_1 = __webpack_require__(28);
277
+
245
278
  exports.GEO_BOUND_PREFIX = '_geo_bounds_';
246
279
  exports.GEO_LAT_AND_LONG_FIELD = ['_geo_long_field', '_geo_lat_field'];
247
280
  exports.PieSegment = React.memo(function (_ref) {
248
281
  var start = _ref.start,
249
- end = _ref.end,
250
- radius = _ref.radius,
251
- color = _ref.color,
252
- themeColor = _ref.themeColor,
253
- segmentMetadata = _ref.segmentMetadata,
254
- handleBubbleClick = _ref.handleBubbleClick;
282
+ end = _ref.end,
283
+ radius = _ref.radius,
284
+ color = _ref.color,
285
+ themeColor = _ref.themeColor,
286
+ segmentMetadata = _ref.segmentMetadata,
287
+ handleBubbleClick = _ref.handleBubbleClick;
288
+
255
289
  var _ref2 = segmentMetadata !== null && segmentMetadata !== void 0 ? segmentMetadata : {},
256
- name = _ref2.name,
257
- value = _ref2.value;
290
+ name = _ref2.name,
291
+ value = _ref2.value;
292
+
258
293
  var handleSegmentClick = React.useCallback(function (e) {
259
294
  handleBubbleClick(e, name, value);
260
295
  }, [name, value, handleBubbleClick]);
296
+
261
297
  if (end - start === 1) {
262
298
  return React.createElement("circle", {
263
299
  onClick: handleSegmentClick,
@@ -270,6 +306,7 @@ exports.PieSegment = React.memo(function (_ref) {
270
306
  stroke: color
271
307
  });
272
308
  }
309
+
273
310
  var a0 = 2 * Math.PI * (start - 0.25);
274
311
  var a1 = 2 * Math.PI * (end - 0.25);
275
312
  var x0 = Math.cos(a0);
@@ -288,23 +325,20 @@ exports.PieSegment = React.memo(function (_ref) {
288
325
  });
289
326
  });
290
327
  exports.PieSegment.displayName = 'MapBubblePieSegment';
291
- var StyledMarkerWrapper = styled_components_1.default(MarkerWrapper_1.default).withConfig({
292
- displayName: "BubbleLayer__StyledMarkerWrapper",
293
- componentId: "sc-8aqbb-0"
294
- })(["cursor:pointer;"]);
328
+ var StyledMarkerWrapper = (0, styled_components_1.default)(MarkerWrapper_1.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n cursor: pointer;\n"])));
295
329
  exports.Bubble = React.memo(function (_ref3) {
296
330
  var originalValues = _ref3.originalValues,
297
- valueRange = _ref3.valueRange,
298
- colors = _ref3.colors,
299
- themeColor = _ref3.themeColor,
300
- isPie = _ref3.isPie,
301
- latitude = _ref3.latitude,
302
- longitude = _ref3.longitude,
303
- bubbleSize = _ref3.bubbleSize,
304
- _ref3$additionalField = _ref3.additionalFields,
305
- additionalFields = _ref3$additionalField === void 0 ? [] : _ref3$additionalField,
306
- map = _ref3.map,
307
- handleMapClick = _ref3.handleMapClick;
331
+ valueRange = _ref3.valueRange,
332
+ colors = _ref3.colors,
333
+ themeColor = _ref3.themeColor,
334
+ isPie = _ref3.isPie,
335
+ latitude = _ref3.latitude,
336
+ longitude = _ref3.longitude,
337
+ bubbleSize = _ref3.bubbleSize,
338
+ _ref3$additionalField = _ref3.additionalFields,
339
+ additionalFields = _ref3$additionalField === void 0 ? [] : _ref3$additionalField,
340
+ map = _ref3.map,
341
+ handleMapClick = _ref3.handleMapClick;
308
342
  var onBubbleClick = React.useCallback(function (e, name, value) {
309
343
  handleMapClick(e, name, value);
310
344
  e.stopPropagation();
@@ -313,21 +347,23 @@ exports.Bubble = React.memo(function (_ref3) {
313
347
  var allZeros = originalValues.every(function (v) {
314
348
  return v === 0;
315
349
  });
350
+
316
351
  if (allZeros || !originalValues.length) {
317
352
  return null;
318
- }
319
- // sanitize values
353
+ } // sanitize values
354
+
355
+
320
356
  var values = originalValues.map(function (v) {
321
357
  return v > 0 ? v : 0;
322
- });
323
- // compute offsets for pie segments
358
+ }); // compute offsets for pie segments
359
+
324
360
  var offsets = [];
325
361
  var total = 0;
326
362
  values.forEach(function (count) {
327
363
  offsets.push(total);
328
364
  total += count;
329
365
  });
330
- var radius = MapUtils_1.matchBubbleSize(valueRange, total);
366
+ var radius = (0, MapUtils_1.matchBubbleSize)(valueRange, total);
331
367
  var width = radius * 2;
332
368
  return React.createElement("svg", {
333
369
  width: width,
@@ -354,9 +390,11 @@ exports.Bubble = React.memo(function (_ref3) {
354
390
  });
355
391
  }));
356
392
  }, [bubbleSize, colors, isPie, onBubbleClick, originalValues, themeColor, valueRange]);
393
+
357
394
  if (!bubble) {
358
395
  return null;
359
396
  }
397
+
360
398
  return React.createElement(StyledMarkerWrapper, {
361
399
  longitude: longitude,
362
400
  latitude: latitude,
@@ -366,34 +404,37 @@ exports.Bubble = React.memo(function (_ref3) {
366
404
  }, bubble);
367
405
  });
368
406
  exports.Bubble.displayName = 'MapBubble';
407
+
369
408
  var BubbleLayer = function BubbleLayer(props) {
370
409
  var bubbleLayer = props.bubbleLayer,
371
- themeColorScheme = props.themeColorScheme,
372
- map = props.map,
373
- zoom = props.zoom,
374
- onMapClick = props.onMapClick;
410
+ themeColorScheme = props.themeColorScheme,
411
+ map = props.map,
412
+ zoom = props.zoom,
413
+ onMapClick = props.onMapClick;
375
414
  bubbleLayer.seriesColors = bubbleLayer.seriesColors || MapUtils_1.DEFAULT_SERIES_COLORS;
376
415
  bubbleLayer.bubbleSize = bubbleLayer.bubbleSize || [];
377
416
  var bakedData = React.useMemo(function () {
378
- return MapUtils_1.bakeBubbleData(bubbleLayer);
417
+ return (0, MapUtils_1.bakeBubbleData)(bubbleLayer);
379
418
  }, [bubbleLayer]);
380
419
  var staticColors = React.useMemo(function () {
381
- return MapUtils_1.getStaticColors(bubbleLayer.bubbleSize.length, bubbleLayer.seriesColors);
420
+ return (0, MapUtils_1.getStaticColors)(bubbleLayer.bubbleSize.length, bubbleLayer.seriesColors);
382
421
  }, [bubbleLayer.bubbleSize.length, bubbleLayer.seriesColors]);
422
+
383
423
  var _ref4 = bakedData !== null && bakedData !== void 0 ? bakedData : {},
384
- _ref4$data = _ref4.data,
385
- data = _ref4$data === void 0 ? [] : _ref4$data,
386
- _ref4$dataRange = _ref4.dataRange,
387
- dataRange = _ref4$dataRange === void 0 ? [] : _ref4$dataRange,
388
- resultLimit = _ref4.resultLimit,
389
- bubbleSizeFields = _ref4.bubbleSizeFields,
390
- isPie = _ref4.isPie;
424
+ _ref4$data = _ref4.data,
425
+ data = _ref4$data === void 0 ? [] : _ref4$data,
426
+ _ref4$dataRange = _ref4.dataRange,
427
+ dataRange = _ref4$dataRange === void 0 ? [] : _ref4$dataRange,
428
+ resultLimit = _ref4.resultLimit,
429
+ bubbleSizeFields = _ref4.bubbleSizeFields,
430
+ isPie = _ref4.isPie;
431
+
391
432
  var _bubbleLayer$addition = bubbleLayer.additionalTooltipFields,
392
- additionalTooltipFields = _bubbleLayer$addition === void 0 ? [] : _bubbleLayer$addition;
433
+ additionalTooltipFields = _bubbleLayer$addition === void 0 ? [] : _bubbleLayer$addition;
393
434
  var roundedZoom = Math.round(zoom);
394
435
  var themeColor = themeColorScheme === 'light' ? '#ffffff' : '#1a1c20';
395
- var dynamicColors = bubbleLayer.dataColors;
396
- // filter data for the current zoom level and sort base on values
436
+ var dynamicColors = bubbleLayer.dataColors; // filter data for the current zoom level and sort base on values
437
+
397
438
  var dataToRender = React.useMemo(function () {
398
439
  return data.reduce(function (acc, datum, i) {
399
440
  if (datum.zoom === roundedZoom) {
@@ -402,14 +443,17 @@ var BubbleLayer = function BubbleLayer(props) {
402
443
  idx: i
403
444
  });
404
445
  }
446
+
405
447
  return acc;
406
448
  }, []).slice(0, resultLimit || MapUtils_1.DEFAULT_RESULT_LIMIT).sort(function (a, b) {
407
- return lodash_1.sum(b.data.values) - lodash_1.sum(a.data.values);
449
+ return (0, lodash_1.sum)(b.data.values) - (0, lodash_1.sum)(a.data.values);
408
450
  });
409
451
  }, [data, resultLimit, roundedZoom]);
452
+
410
453
  var _handleMapClick = React.useCallback(function (e, name, value, i) {
411
- var _a, _b, _c;
412
- // retrieve metadata from the appropriate datum, indexed by i
454
+ var _a, _b, _c; // retrieve metadata from the appropriate datum, indexed by i
455
+
456
+
413
457
  var metadata = (_c = (_b = (_a = dataToRender[i]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.metadata) !== null && _c !== void 0 ? _c : {};
414
458
  var payload = Object.keys(metadata).reduce(function (acc, curr) {
415
459
  var key = "row.".concat(curr, ".value");
@@ -424,13 +468,16 @@ var BubbleLayer = function BubbleLayer(props) {
424
468
  payload: payload
425
469
  });
426
470
  }, [dataToRender, onMapClick]);
471
+
427
472
  return React.createElement(React.Fragment, null, dataToRender.map(function (datum, i) {
428
473
  var colors = dynamicColors ? [dataToRender.map(function (obj) {
429
- return colorUtils_1.isColor(dynamicColors[obj.idx]) ? dynamicColors[obj.idx] : MapUtils_1.DEFAULT_CLUSTER_COLOR;
474
+ return (0, colorUtils_1.isColor)(dynamicColors[obj.idx]) ? dynamicColors[obj.idx] : MapUtils_1.DEFAULT_CLUSTER_COLOR;
430
475
  })[i]] : staticColors;
476
+
431
477
  var _datum$data$coordinat = _slicedToArray(datum.data.coordinates, 2),
432
- longitude = _datum$data$coordinat[0],
433
- latitude = _datum$data$coordinat[1];
478
+ longitude = _datum$data$coordinat[0],
479
+ latitude = _datum$data$coordinat[1];
480
+
434
481
  var bubbleSize = datum.data.values.map(function (value, index) {
435
482
  return {
436
483
  name: bubbleSizeFields[index],
@@ -462,45 +509,59 @@ var BubbleLayer = function BubbleLayer(props) {
462
509
  });
463
510
  }));
464
511
  };
512
+
465
513
  exports.default = BubbleLayer;
466
514
 
467
515
  /***/ }),
468
- /* 23 */
516
+ /* 24 */
469
517
  /***/ (function(module, exports, __webpack_require__) {
470
518
 
471
519
  "use strict";
472
520
 
473
521
 
474
522
  var _defineProperty = __webpack_require__(1);
523
+
475
524
  var _slicedToArray = __webpack_require__(7);
525
+
476
526
  var _toConsumableArray = __webpack_require__(2);
527
+
477
528
  Object.defineProperty(exports, "__esModule", {
478
529
  value: true
479
530
  });
480
531
  exports.formatMetadata = exports.compareBaseStyles = exports.getScaledOpacities = exports.getGlobalLayerBoundaries = exports.isValidLatLon = exports.bakeBubbleData = exports.sanitizeValues = exports.transposeArray = exports.matchBubbleSize = exports.getStaticColors = exports.getZoomLevelFromGeobin = exports.getZoomConstraintsFromTileConfig = exports.getMapStyle = exports.getTilePreset = exports.LAYER_TYPE = exports.DEFAULT_OPACITY = exports.MAX_BUBBLE_RADIUS = exports.MIN_BUBBLE_RADIUS = exports.MAP_STYLE_VERSION_NUMBER = exports.DEFAULT_SERIES_COLORS = exports.DEFAULT_CLUSTER_COLOR = exports.DEFAULT_RESULT_LIMIT = exports.MIN_LONGITUDE = exports.MAX_LONGITUDE = exports.MIN_LATITUDE = exports.MAX_LATITUDE = void 0;
532
+
481
533
  var lodash_1 = __webpack_require__(0);
482
- var d3_scale_1 = __webpack_require__(24);
483
- var chroma = __webpack_require__(25);
484
- var colorUtils_1 = __webpack_require__(11);
485
- var visualization_color_palettes_1 = __webpack_require__(26);
534
+
535
+ var d3_scale_1 = __webpack_require__(25);
536
+
537
+ var chroma = __webpack_require__(26);
538
+
539
+ var colorUtils_1 = __webpack_require__(12);
540
+
541
+ var visualization_color_palettes_1 = __webpack_require__(27);
542
+
486
543
  var types_1 = __webpack_require__(9);
544
+
487
545
  exports.MAX_LATITUDE = 90;
488
546
  exports.MIN_LATITUDE = -90;
489
547
  exports.MAX_LONGITUDE = 180;
490
548
  exports.MIN_LONGITUDE = -180;
491
549
  exports.DEFAULT_RESULT_LIMIT = 1000;
492
550
  exports.DEFAULT_CLUSTER_COLOR = '#909090';
493
- exports.DEFAULT_SERIES_COLORS = visualization_color_palettes_1.VIZ_CATEGORICAL;
494
- // MapLibre requires a map style specification number which is always 8
495
- exports.MAP_STYLE_VERSION_NUMBER = 8;
496
- // currently using one [min, max] value set for bubbles across all zoom levels
551
+ exports.DEFAULT_SERIES_COLORS = visualization_color_palettes_1.VIZ_CATEGORICAL; // MapLibre requires a map style specification number which is always 8
552
+
553
+ exports.MAP_STYLE_VERSION_NUMBER = 8; // currently using one [min, max] value set for bubbles across all zoom levels
497
554
  // TODO: design choices on [min, max] bubble size for different zoom levels
555
+
498
556
  exports.MIN_BUBBLE_RADIUS = 7.11; // 10px
557
+
499
558
  exports.MAX_BUBBLE_RADIUS = 45.26; // 85px
559
+
500
560
  exports.DEFAULT_OPACITY = 0.8;
501
561
  var LONGITUDE = 'longitude';
502
562
  var LATITUDE = 'latitude';
503
563
  var LAYER_TYPE;
564
+
504
565
  (function (LAYER_TYPE) {
505
566
  LAYER_TYPE["Marker"] = "marker";
506
567
  LAYER_TYPE["Bubble"] = "bubble";
@@ -514,17 +575,21 @@ var LAYER_TYPE;
514
575
  * @param {BaseTileConfig[]} args.customTileConfig
515
576
  * @returns {Object} tile preset
516
577
  */
578
+
579
+
517
580
  var getTilePreset = function getTilePreset(_ref) {
518
581
  var _ref$defaultTileConfi = _ref.defaultTileConfig,
519
- defaultTileConfig = _ref$defaultTileConfi === void 0 ? [] : _ref$defaultTileConfi,
520
- _ref$customTileConfig = _ref.customTileConfig,
521
- customTileConfig = _ref$customTileConfig === void 0 ? [] : _ref$customTileConfig;
582
+ defaultTileConfig = _ref$defaultTileConfi === void 0 ? [] : _ref$defaultTileConfi,
583
+ _ref$customTileConfig = _ref.customTileConfig,
584
+ customTileConfig = _ref$customTileConfig === void 0 ? [] : _ref$customTileConfig;
585
+
522
586
  var _a, _b;
587
+
523
588
  var tilePreset = {};
524
589
  var defaultTileLight = {};
525
590
  var defaultTileDark = {};
526
591
  var tileConfigs = [].concat(defaultTileConfig).concat(customTileConfig);
527
- lodash_1.forEach(tileConfigs, function (tileConfig) {
592
+ (0, lodash_1.forEach)(tileConfigs, function (tileConfig) {
528
593
  var key = tileConfig === null || tileConfig === void 0 ? void 0 : tileConfig.key;
529
594
  var updatedConfig = Object.assign(Object.assign({
530
595
  theme: 'all'
@@ -533,6 +598,7 @@ var getTilePreset = function getTilePreset(_ref) {
533
598
  });
534
599
  tilePreset[key] = updatedConfig;
535
600
  });
601
+
536
602
  if (defaultTileConfig.length > 0) {
537
603
  defaultTileLight = (_a = defaultTileConfig.find(function (config) {
538
604
  return config.theme === 'light';
@@ -545,12 +611,14 @@ var getTilePreset = function getTilePreset(_ref) {
545
611
  return config.theme === undefined;
546
612
  });
547
613
  }
614
+
548
615
  return {
549
616
  tilePreset: tilePreset,
550
617
  defaultTileLight: defaultTileLight,
551
618
  defaultTileDark: defaultTileDark
552
619
  };
553
620
  };
621
+
554
622
  exports.getTilePreset = getTilePreset;
555
623
  /**
556
624
  * Check if baseLayerTileServer is in tilePreset and config matches current theme, if yes, return.
@@ -565,20 +633,22 @@ exports.getTilePreset = getTilePreset;
565
633
  * @param {BaseTileConfig} args.defaultTileLight
566
634
  * @returns {BaseTileConfig} mapStyle
567
635
  */
636
+
568
637
  var getMapStyle = function getMapStyle(_ref2) {
569
638
  var showBaseLayer = _ref2.showBaseLayer,
570
- _ref2$baseLayerTileSe = _ref2.baseLayerTileServer,
571
- baseLayerTileServer = _ref2$baseLayerTileSe === void 0 ? '' : _ref2$baseLayerTileSe,
572
- _ref2$baseLayerTileSe2 = _ref2.baseLayerTileServerType,
573
- baseLayerTileServerType = _ref2$baseLayerTileSe2 === void 0 ? '' : _ref2$baseLayerTileSe2,
574
- _ref2$tilePreset = _ref2.tilePreset,
575
- tilePreset = _ref2$tilePreset === void 0 ? {} : _ref2$tilePreset,
576
- _ref2$colorScheme = _ref2.colorScheme,
577
- colorScheme = _ref2$colorScheme === void 0 ? 'light' : _ref2$colorScheme,
578
- _ref2$defaultTileLigh = _ref2.defaultTileLight,
579
- defaultTileLight = _ref2$defaultTileLigh === void 0 ? {} : _ref2$defaultTileLigh,
580
- _ref2$defaultTileDark = _ref2.defaultTileDark,
581
- defaultTileDark = _ref2$defaultTileDark === void 0 ? {} : _ref2$defaultTileDark;
639
+ _ref2$baseLayerTileSe = _ref2.baseLayerTileServer,
640
+ baseLayerTileServer = _ref2$baseLayerTileSe === void 0 ? '' : _ref2$baseLayerTileSe,
641
+ _ref2$baseLayerTileSe2 = _ref2.baseLayerTileServerType,
642
+ baseLayerTileServerType = _ref2$baseLayerTileSe2 === void 0 ? '' : _ref2$baseLayerTileSe2,
643
+ _ref2$tilePreset = _ref2.tilePreset,
644
+ tilePreset = _ref2$tilePreset === void 0 ? {} : _ref2$tilePreset,
645
+ _ref2$colorScheme = _ref2.colorScheme,
646
+ colorScheme = _ref2$colorScheme === void 0 ? 'light' : _ref2$colorScheme,
647
+ _ref2$defaultTileLigh = _ref2.defaultTileLight,
648
+ defaultTileLight = _ref2$defaultTileLigh === void 0 ? {} : _ref2$defaultTileLigh,
649
+ _ref2$defaultTileDark = _ref2.defaultTileDark,
650
+ defaultTileDark = _ref2$defaultTileDark === void 0 ? {} : _ref2$defaultTileDark;
651
+
582
652
  if (!showBaseLayer) {
583
653
  return {
584
654
  version: exports.MAP_STYLE_VERSION_NUMBER,
@@ -598,9 +668,11 @@ var getMapStyle = function getMapStyle(_ref2) {
598
668
  }]
599
669
  };
600
670
  }
671
+
601
672
  if (baseLayerTileServer && tilePreset[baseLayerTileServer] && (tilePreset[baseLayerTileServer].theme === colorScheme || tilePreset[baseLayerTileServer].theme === 'all')) {
602
673
  return tilePreset[baseLayerTileServer];
603
674
  }
675
+
604
676
  if (baseLayerTileServer && baseLayerTileServerType) {
605
677
  var tiles = [];
606
678
  /**
@@ -608,6 +680,7 @@ var getMapStyle = function getMapStyle(_ref2) {
608
680
  * Subdomains are used to help with browser parallel requests per domain limitation. These subdomains are typically single letters 'a', 'b' and 'c'
609
681
  * Refer to https://leafletjs.com/SlavaUkraini/reference.html#tilelayer and https://wiki.openstreetmap.org/wiki/Tile_servers
610
682
  */
683
+
611
684
  if (baseLayerTileServer.match(/^(https?):\/\/{(s|S)}\../)) {
612
685
  /**
613
686
  * sXML (Leaflet) allows users to define their own tile server URLs + list of available subdomains
@@ -618,8 +691,9 @@ var getMapStyle = function getMapStyle(_ref2) {
618
691
  tiles = [baseLayerTileServer.replace(/{(s|S)}/, 'a'), baseLayerTileServer.replace(/{(s|S)}/, 'b'), baseLayerTileServer.replace(/{(s|S)}/, 'c')];
619
692
  } else {
620
693
  tiles = [baseLayerTileServer];
621
- }
622
- // TODO: remove hardcoded style when we allow users to pass in layer style through Viz options
694
+ } // TODO: remove hardcoded style when we allow users to pass in layer style through Viz options
695
+
696
+
623
697
  var mapStyle = {
624
698
  version: exports.MAP_STYLE_VERSION_NUMBER,
625
699
  sources: {
@@ -635,134 +709,164 @@ var getMapStyle = function getMapStyle(_ref2) {
635
709
  source: 'base-tiles',
636
710
  minzoom: 0,
637
711
  maxzoom: 24 // https://maplibre.org/maplibre-gl-js-docs/api/map/
712
+
638
713
  }]
639
714
  };
640
-
641
715
  return mapStyle;
642
- }
643
- // if tile server is not present in the preset AND we can't construct a mapStyle, fall back on defaults
716
+ } // if tile server is not present in the preset AND we can't construct a mapStyle, fall back on defaults
717
+
718
+
644
719
  return colorScheme === 'light' ? defaultTileLight : defaultTileDark;
645
720
  };
721
+
646
722
  exports.getMapStyle = getMapStyle;
723
+
647
724
  var getZoomConstraintsFromTileConfig = function getZoomConstraintsFromTileConfig(tileConfig, baseLayerTileServer) {
648
725
  var sources = tileConfig.sources,
649
- layers = tileConfig.layers;
650
- var matchedBaseLayerTileServer = false;
651
- // check sources for minzoom maxzoom first
726
+ layers = tileConfig.layers;
727
+ var matchedBaseLayerTileServer = false; // check sources for minzoom maxzoom first
728
+
652
729
  var sourceKeys = Object.keys(sources);
730
+
653
731
  for (var i = 0; i < sourceKeys.length; i += 1) {
654
732
  var _sources$sourceKeys$i = sources[sourceKeys[i]],
655
- minzoom = _sources$sourceKeys$i.minzoom,
656
- maxzoom = _sources$sourceKeys$i.maxzoom;
733
+ minzoom = _sources$sourceKeys$i.minzoom,
734
+ maxzoom = _sources$sourceKeys$i.maxzoom;
735
+
657
736
  if (baseLayerTileServer && sources[sourceKeys[i]].tiles.indexOf(baseLayerTileServer) !== -1) {
658
737
  matchedBaseLayerTileServer = true;
659
738
  }
660
- if ((baseLayerTileServer && matchedBaseLayerTileServer || !baseLayerTileServer) && lodash_1.isNumber(minzoom) && lodash_1.isNumber(maxzoom)) {
739
+
740
+ if ((baseLayerTileServer && matchedBaseLayerTileServer || !baseLayerTileServer) && (0, lodash_1.isNumber)(minzoom) && (0, lodash_1.isNumber)(maxzoom)) {
661
741
  return {
662
742
  minZoom: minzoom,
663
743
  maxZoom: maxzoom
664
744
  };
665
745
  }
666
- }
667
- // then check layers
746
+ } // then check layers
747
+
748
+
668
749
  for (var _i = 0; _i < layers.length; _i += 1) {
669
750
  var _layers$_i = layers[_i],
670
- _minzoom = _layers$_i.minzoom,
671
- _maxzoom = _layers$_i.maxzoom;
672
- if ((baseLayerTileServer && matchedBaseLayerTileServer || !baseLayerTileServer) && lodash_1.isNumber(_minzoom) && lodash_1.isNumber(_maxzoom)) {
751
+ _minzoom = _layers$_i.minzoom,
752
+ _maxzoom = _layers$_i.maxzoom;
753
+
754
+ if ((baseLayerTileServer && matchedBaseLayerTileServer || !baseLayerTileServer) && (0, lodash_1.isNumber)(_minzoom) && (0, lodash_1.isNumber)(_maxzoom)) {
673
755
  return {
674
756
  minZoom: _minzoom,
675
757
  maxZoom: _maxzoom
676
758
  };
677
759
  }
678
- }
679
- // Maplibre default - would reset previous min/maxZoom https://maplibre.org/maplibre-gl-js-docs/api/map/
760
+ } // Maplibre default - would reset previous min/maxZoom https://maplibre.org/maplibre-gl-js-docs/api/map/
761
+
762
+
680
763
  return {
681
764
  minZoom: 0,
682
765
  maxZoom: 24
683
766
  };
684
767
  };
768
+
685
769
  exports.getZoomConstraintsFromTileConfig = getZoomConstraintsFromTileConfig;
770
+
686
771
  var getZoomLevelFromGeobin = function getZoomLevelFromGeobin(geobinStr) {
687
772
  var _a;
773
+
688
774
  if (!geobinStr) {
689
775
  return null;
690
- }
691
- // geostats cmds return geobin with zoom level 0-18, 0-99 in the geobinPattern covers the range
776
+ } // geostats cmds return geobin with zoom level 0-18, 0-99 in the geobinPattern covers the range
777
+
778
+
692
779
  var geobinPattern = /bin_id_zl_([0-9]{0,2})?_y_/g;
693
780
  var match = geobinPattern.exec(geobinStr);
694
781
  return (_a = (match === null || match === void 0 ? void 0 : match.length) && parseInt(match[1], 10)) !== null && _a !== void 0 ? _a : null;
695
782
  };
696
- exports.getZoomLevelFromGeobin = getZoomLevelFromGeobin;
697
- // Bubble colors - static
783
+
784
+ exports.getZoomLevelFromGeobin = getZoomLevelFromGeobin; // Bubble colors - static
785
+
698
786
  var getStaticColors = function getStaticColors(colorCount, colorArray) {
699
787
  if (colorCount < 0 || !colorCount) {
700
788
  return [exports.DEFAULT_CLUSTER_COLOR];
701
789
  }
790
+
702
791
  if (!colorArray || !colorArray.length) {
703
792
  return _toConsumableArray(Array(colorCount).keys()).map(function (i) {
704
793
  return exports.DEFAULT_SERIES_COLORS[i];
705
794
  });
706
- }
707
- // loop through colorArray to pick the first $colorCount colors
795
+ } // loop through colorArray to pick the first $colorCount colors
708
796
  // start from begining again if colorCount > colorArray.length
797
+
798
+
709
799
  return _toConsumableArray(Array(colorCount).keys()).map(function (i) {
710
- return colorUtils_1.isColor(colorArray[i % colorArray.length]) ? colorArray[i % colorArray.length] : exports.DEFAULT_CLUSTER_COLOR;
800
+ return (0, colorUtils_1.isColor)(colorArray[i % colorArray.length]) ? colorArray[i % colorArray.length] : exports.DEFAULT_CLUSTER_COLOR;
711
801
  });
712
802
  };
713
- exports.getStaticColors = getStaticColors;
714
- // Bubble size
803
+
804
+ exports.getStaticColors = getStaticColors; // Bubble size
805
+
715
806
  var matchBubbleSize = function matchBubbleSize(dataRange, data) {
716
- var size = d3_scale_1.scalePow().exponent(0.2).domain(dataRange).range([exports.MIN_BUBBLE_RADIUS, exports.MAX_BUBBLE_RADIUS])(data);
807
+ var size = (0, d3_scale_1.scalePow)().exponent(0.2).domain(dataRange).range([exports.MIN_BUBBLE_RADIUS, exports.MAX_BUBBLE_RADIUS])(data);
808
+
717
809
  if (size > exports.MAX_BUBBLE_RADIUS) {
718
810
  return exports.MAX_BUBBLE_RADIUS;
719
811
  }
812
+
720
813
  if (size < exports.MIN_BUBBLE_RADIUS) {
721
814
  return exports.MIN_BUBBLE_RADIUS;
722
815
  }
816
+
723
817
  return size;
724
818
  };
819
+
725
820
  exports.matchBubbleSize = matchBubbleSize;
821
+
726
822
  var transposeArray = function transposeArray(array) {
727
823
  if (!array || !array.length || !array[0] || !array[0].length) {
728
824
  return [];
729
825
  }
826
+
730
827
  return array[0].map(function (_, i) {
731
828
  return array.map(function (row) {
732
829
  return row[i];
733
830
  });
734
831
  });
735
832
  };
736
- exports.transposeArray = transposeArray;
737
- // sanitize values: update all null, undefined, or negative values to 0
833
+
834
+ exports.transposeArray = transposeArray; // sanitize values: update all null, undefined, or negative values to 0
835
+
738
836
  var sanitizeValues = function sanitizeValues(values) {
739
837
  // null / undefined
740
838
  if (!values) {
741
839
  return 0;
742
- }
743
- // number
840
+ } // number
841
+
842
+
744
843
  if (!Array.isArray(values)) {
745
844
  return values > 0 ? values : 0;
746
- }
747
- // array
845
+ } // array
846
+
847
+
748
848
  return values.map(function (arr) {
749
- return exports.sanitizeValues(arr);
849
+ return (0, exports.sanitizeValues)(arr);
750
850
  });
751
851
  };
852
+
752
853
  exports.sanitizeValues = sanitizeValues;
854
+
753
855
  var bakeBubbleData = function bakeBubbleData(layer) {
754
856
  var _a;
857
+
755
858
  if (!layer || !((_a = layer.bubbleSize) === null || _a === void 0 ? void 0 : _a.length) || !layer.geobin || !layer.geobin.length || !layer.latitude || !layer.latitude.length || !layer.longitude || !layer.longitude.length) {
756
859
  return null;
757
- }
758
- // if bubbleSize is passed as an array of single number array (data series)
860
+ } // if bubbleSize is passed as an array of single number array (data series)
759
861
  // e.g. [value0, value1, ...]
760
862
  // format each value as an array to unify data operations for data series and frames
761
- var sanitizedBubbleSize = exports.sanitizeValues(layer.bubbleSize);
863
+
864
+
865
+ var sanitizedBubbleSize = (0, exports.sanitizeValues)(layer.bubbleSize);
762
866
  var transposedBubbleSize;
763
867
  var transposedSanitizedBubbleSize;
764
- var isPie = false;
765
- // format array if bubbleSize is passed as an array of array (data frame)
868
+ var isPie = false; // format array if bubbleSize is passed as an array of array (data frame)
869
+
766
870
  if (Array.isArray(layer.bubbleSize[0])) {
767
871
  // one-time array transpose,
768
872
  // e.g. from [column0data, column0data] (multi series)
@@ -771,9 +875,9 @@ var bakeBubbleData = function bakeBubbleData(layer) {
771
875
  // to [[column0data]]
772
876
  // for easy access of values at each geo location,
773
877
  // and min max pie size computation
774
- transposedBubbleSize = exports.transposeArray(layer.bubbleSize);
775
- transposedSanitizedBubbleSize = exports.transposeArray(sanitizedBubbleSize);
776
- // if multiple series in the dataframe, set isPie to true
878
+ transposedBubbleSize = (0, exports.transposeArray)(layer.bubbleSize);
879
+ transposedSanitizedBubbleSize = (0, exports.transposeArray)(sanitizedBubbleSize); // if multiple series in the dataframe, set isPie to true
880
+
777
881
  if (layer.bubbleSize.length > 1) {
778
882
  isPie = true;
779
883
  }
@@ -785,12 +889,14 @@ var bakeBubbleData = function bakeBubbleData(layer) {
785
889
  return [n];
786
890
  });
787
891
  }
892
+
788
893
  if (!transposedBubbleSize || !transposedBubbleSize.length) {
789
894
  return null;
790
895
  }
896
+
791
897
  var data = layer.latitude.map(function (lat, i) {
792
898
  return {
793
- zoom: exports.getZoomLevelFromGeobin(layer.geobin[i]),
899
+ zoom: (0, exports.getZoomLevelFromGeobin)(layer.geobin[i]),
794
900
  values: transposedBubbleSize[i],
795
901
  sanitizedValues: transposedSanitizedBubbleSize[i],
796
902
  coordinates: [layer.longitude[i], lat],
@@ -798,12 +904,12 @@ var bakeBubbleData = function bakeBubbleData(layer) {
798
904
  };
799
905
  }).filter(function (d) {
800
906
  return Boolean(d.values);
801
- });
802
- // compute the min/max value to encode min/max pie or bubble size
803
- var min = lodash_1.sum(transposedSanitizedBubbleSize[0]);
804
- var max = lodash_1.sum(transposedSanitizedBubbleSize[1]);
907
+ }); // compute the min/max value to encode min/max pie or bubble size
908
+
909
+ var min = (0, lodash_1.sum)(transposedSanitizedBubbleSize[0]);
910
+ var max = (0, lodash_1.sum)(transposedSanitizedBubbleSize[1]);
805
911
  transposedSanitizedBubbleSize.forEach(function (row) {
806
- var bubbleSize = lodash_1.sum(row);
912
+ var bubbleSize = (0, lodash_1.sum)(row);
807
913
  max = bubbleSize > max ? bubbleSize : max;
808
914
  min = bubbleSize < min ? bubbleSize : min;
809
915
  });
@@ -815,22 +921,29 @@ var bakeBubbleData = function bakeBubbleData(layer) {
815
921
  bubbleSizeFields: layer.bubbleSizeFields
816
922
  };
817
923
  };
924
+
818
925
  exports.bakeBubbleData = bakeBubbleData;
926
+
819
927
  var isValidLatLon = function isValidLatLon(latlon) {
820
928
  if (!latlon || !Array.isArray(latlon) || latlon.length !== 2) {
821
929
  return false;
822
930
  }
931
+
823
932
  var _latlon = _slicedToArray(latlon, 2),
824
- lat = _latlon[0],
825
- lon = _latlon[1];
826
- if (!types_1.isNumber(lat) || !(lat >= exports.MIN_LATITUDE && lat <= exports.MAX_LATITUDE)) {
933
+ lat = _latlon[0],
934
+ lon = _latlon[1];
935
+
936
+ if (!(0, types_1.isNumber)(lat) || !(lat >= exports.MIN_LATITUDE && lat <= exports.MAX_LATITUDE)) {
827
937
  return false;
828
938
  }
829
- if (!types_1.isNumber(lon) || !(lon >= exports.MIN_LONGITUDE && lon <= exports.MAX_LONGITUDE)) {
939
+
940
+ if (!(0, types_1.isNumber)(lon) || !(lon >= exports.MIN_LONGITUDE && lon <= exports.MAX_LONGITUDE)) {
830
941
  return false;
831
942
  }
943
+
832
944
  return true;
833
945
  };
946
+
834
947
  exports.isValidLatLon = isValidLatLon;
835
948
  /**
836
949
  * Returns a list of all lat or lon coordinates used in a specified layer
@@ -838,10 +951,12 @@ exports.isValidLatLon = isValidLatLon;
838
951
  * @param {string} field
839
952
  * @returns {number[]} list of lat coordinates or lon coordinates
840
953
  */
954
+
841
955
  var getLatOrLonCoordinates = function getLatOrLonCoordinates(layer, field) {
842
956
  var getClusterValues = function getClusterValues(clusterLayer) {
843
- return lodash_1.get(clusterLayer, field, []).slice(0, clusterLayer.type === LAYER_TYPE.Marker && clusterLayer.resultLimit ? clusterLayer.resultLimit : exports.DEFAULT_RESULT_LIMIT);
957
+ return (0, lodash_1.get)(clusterLayer, field, []).slice(0, clusterLayer.type === LAYER_TYPE.Marker && clusterLayer.resultLimit ? clusterLayer.resultLimit : exports.DEFAULT_RESULT_LIMIT);
844
958
  };
959
+
845
960
  var getChoroplethValues = function getChoroplethValues(choroplethLayer) {
846
961
  var slicedGeomList = choroplethLayer.geom.slice(0, choroplethLayer.resultLimit);
847
962
  var flatCoordinates = slicedGeomList.flatMap(function (geomObject) {
@@ -851,6 +966,7 @@ var getLatOrLonCoordinates = function getLatOrLonCoordinates(layer, field) {
851
966
  return coord[field === LONGITUDE ? 0 : 1];
852
967
  });
853
968
  };
969
+
854
970
  return layer.type === LAYER_TYPE.Choropleth ? getChoroplethValues(layer) : getClusterValues(layer);
855
971
  };
856
972
  /**
@@ -858,72 +974,92 @@ var getLatOrLonCoordinates = function getLatOrLonCoordinates(layer, field) {
858
974
  * @param {LayerType[]} layers
859
975
  * @returns {LngLatBoundsLike}
860
976
  */
977
+
978
+
861
979
  var getGlobalLayerBoundaries = function getGlobalLayerBoundaries(layers) {
862
980
  var isLayerValid = function isLayerValid(field) {
863
981
  return layers.every(function (layer) {
864
982
  return layer[field] || layer.geom;
865
983
  });
866
984
  };
985
+
867
986
  var getDefaultMax = function getDefaultMax(field) {
868
987
  return field === LONGITUDE ? exports.MAX_LONGITUDE : exports.MAX_LATITUDE;
869
988
  };
989
+
870
990
  var getDefaultMin = function getDefaultMin(field) {
871
991
  return field === LONGITUDE ? exports.MIN_LONGITUDE : exports.MIN_LATITUDE;
872
992
  };
993
+
873
994
  if (!layers || !Array.isArray(layers) || !layers.length) {
874
995
  return null;
875
996
  }
997
+
876
998
  var getMin = function getMin(field) {
877
999
  if (!isLayerValid(field)) {
878
1000
  return getDefaultMin(field);
879
1001
  }
1002
+
880
1003
  return layers.reduce(function (prevVal, layer) {
881
1004
  var coordinatesNumArr = getLatOrLonCoordinates(layer, field).map(function (x) {
882
1005
  return +x;
883
1006
  });
884
- return lodash_1.min([prevVal].concat(_toConsumableArray(coordinatesNumArr)));
1007
+ return (0, lodash_1.min)([prevVal].concat(_toConsumableArray(coordinatesNumArr)));
885
1008
  }, getDefaultMax(field));
886
1009
  };
1010
+
887
1011
  var getMax = function getMax(field) {
888
1012
  if (!isLayerValid(field)) {
889
1013
  return getDefaultMax(field);
890
1014
  }
1015
+
891
1016
  return layers.reduce(function (prevVal, layer) {
892
1017
  var coordinatesNumArr = getLatOrLonCoordinates(layer, field).map(Number);
893
- return lodash_1.max([prevVal].concat(_toConsumableArray(coordinatesNumArr)));
1018
+ return (0, lodash_1.max)([prevVal].concat(_toConsumableArray(coordinatesNumArr)));
894
1019
  }, getDefaultMin(field));
895
1020
  };
1021
+
896
1022
  return [[getMin(LONGITUDE), getMin(LATITUDE)], [getMax(LONGITUDE), getMax(LATITUDE)]];
897
1023
  };
1024
+
898
1025
  exports.getGlobalLayerBoundaries = getGlobalLayerBoundaries;
1026
+
899
1027
  var getScaledOpacities = function getScaledOpacities(colors, cfgOpacity) {
900
1028
  // extract opacity information from 8 digit hex codes
901
1029
  var opacities = colors === null || colors === void 0 ? void 0 : colors.map(function (color) {
902
1030
  var _a;
1031
+
903
1032
  return (color === null || color === void 0 ? void 0 : color.length) === 9 ? (_a = chroma(color).alpha()) !== null && _a !== void 0 ? _a : 1 : 1;
904
- });
905
- // opacity cannot be greater than configured opacity
1033
+ }); // opacity cannot be greater than configured opacity
1034
+
906
1035
  return opacities === null || opacities === void 0 ? void 0 : opacities.map(function (opacity) {
907
1036
  return opacity * cfgOpacity;
908
1037
  });
909
1038
  };
1039
+
910
1040
  exports.getScaledOpacities = getScaledOpacities;
1041
+
911
1042
  var compareBaseStyles = function compareBaseStyles(curr, next) {
912
1043
  var _a, _b, _c, _d;
1044
+
913
1045
  var currBaseLayer = (_a = curr === null || curr === void 0 ? void 0 : curr.layers) === null || _a === void 0 ? void 0 : _a.find(function (layer) {
914
1046
  return (layer === null || layer === void 0 ? void 0 : layer.id) === 'base-layer';
915
1047
  });
916
1048
  var nextBaseLayer = (_b = next === null || next === void 0 ? void 0 : next.layers) === null || _b === void 0 ? void 0 : _b.find(function (layer) {
917
1049
  return (layer === null || layer === void 0 ? void 0 : layer.id) === 'base-layer';
918
1050
  });
919
- var currBaseSource = lodash_1.get(curr === null || curr === void 0 ? void 0 : curr.sources, (_c = currBaseLayer === null || currBaseLayer === void 0 ? void 0 : currBaseLayer.source) !== null && _c !== void 0 ? _c : '');
920
- var nextBaseSource = lodash_1.get(next === null || next === void 0 ? void 0 : next.sources, (_d = nextBaseLayer === null || nextBaseLayer === void 0 ? void 0 : nextBaseLayer.source) !== null && _d !== void 0 ? _d : '');
1051
+ var currBaseSource = (0, lodash_1.get)(curr === null || curr === void 0 ? void 0 : curr.sources, (_c = currBaseLayer === null || currBaseLayer === void 0 ? void 0 : currBaseLayer.source) !== null && _c !== void 0 ? _c : '');
1052
+ var nextBaseSource = (0, lodash_1.get)(next === null || next === void 0 ? void 0 : next.sources, (_d = nextBaseLayer === null || nextBaseLayer === void 0 ? void 0 : nextBaseLayer.source) !== null && _d !== void 0 ? _d : '');
1053
+
921
1054
  if (!currBaseLayer || !nextBaseLayer || !currBaseSource || !nextBaseSource) {
922
1055
  return false;
923
1056
  }
924
- return lodash_1.isEqual(currBaseLayer, nextBaseLayer) && lodash_1.isEqual(currBaseSource, nextBaseSource);
1057
+
1058
+ return (0, lodash_1.isEqual)(currBaseLayer, nextBaseLayer) && (0, lodash_1.isEqual)(currBaseSource, nextBaseSource);
925
1059
  };
1060
+
926
1061
  exports.compareBaseStyles = compareBaseStyles;
1062
+
927
1063
  var formatMetadata = function formatMetadata(choroplethLayer, i) {
928
1064
  if (!choroplethLayer || !choroplethLayer.areaIds || !choroplethLayer.areaValues) return {};
929
1065
  if (i >= choroplethLayer.areaIds.length) return {};
@@ -936,71 +1072,83 @@ var formatMetadata = function formatMetadata(choroplethLayer, i) {
936
1072
  };
937
1073
  return Object.keys(metadata).reduce(function (result, curr) {
938
1074
  var key = "row.".concat(curr, ".value");
939
- var val = lodash_1.isObject(metadata[curr]) ? JSON.stringify(metadata[curr]) : String(metadata[curr]);
1075
+ var val = (0, lodash_1.isObject)(metadata[curr]) ? JSON.stringify(metadata[curr]) : String(metadata[curr]);
940
1076
  return Object.assign(Object.assign({}, result), _defineProperty({}, key, val));
941
1077
  }, base);
942
1078
  };
1079
+
943
1080
  exports.formatMetadata = formatMetadata;
944
1081
 
945
1082
  /***/ }),
946
- /* 24 */
1083
+ /* 25 */
947
1084
  /***/ (function(module, exports) {
948
1085
 
949
1086
  module.exports = require("d3-scale");
950
1087
 
951
1088
  /***/ }),
952
- /* 25 */
1089
+ /* 26 */
953
1090
  /***/ (function(module, exports) {
954
1091
 
955
1092
  module.exports = require("chroma-js");
956
1093
 
957
1094
  /***/ }),
958
- /* 26 */
1095
+ /* 27 */
959
1096
  /***/ (function(module, exports) {
960
1097
 
961
1098
  module.exports = require("@splunk/visualization-color-palettes");
962
1099
 
963
1100
  /***/ }),
964
- /* 27 */
1101
+ /* 28 */
965
1102
  /***/ (function(module, exports, __webpack_require__) {
966
1103
 
967
1104
  "use strict";
968
1105
 
969
1106
 
970
1107
  var _slicedToArray = __webpack_require__(7);
1108
+
971
1109
  var __rest = this && this.__rest || function (s, e) {
972
1110
  var t = {};
1111
+
973
1112
  for (var p in s) {
974
1113
  if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
975
1114
  }
1115
+
976
1116
  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
977
1117
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
978
1118
  }
979
1119
  return t;
980
1120
  };
1121
+
981
1122
  Object.defineProperty(exports, "__esModule", {
982
1123
  value: true
983
1124
  });
984
- var maplibre_gl_1 = __webpack_require__(28);
1125
+
1126
+ var maplibre_gl_1 = __webpack_require__(29);
1127
+
985
1128
  var React = __webpack_require__(3);
986
- var Tooltip_1 = __webpack_require__(29);
1129
+
1130
+ var Tooltip_1 = __webpack_require__(30);
1131
+
987
1132
  var MarkerWrapper = function MarkerWrapper(_a) {
988
1133
  var longitude = _a.longitude,
989
- latitude = _a.latitude,
990
- areaId = _a.areaId,
991
- areaValue = _a.areaValue,
992
- _a$additionalFields = _a.additionalFields,
993
- additionalFields = _a$additionalFields === void 0 ? [] : _a$additionalFields,
994
- map = _a.map,
995
- isChoroplethTooltipOpen = _a.isChoroplethTooltipOpen,
996
- children = _a.children,
997
- otherProps = __rest(_a, ["longitude", "latitude", "areaId", "areaValue", "additionalFields", "map", "isChoroplethTooltipOpen", "children"]);
1134
+ latitude = _a.latitude,
1135
+ areaId = _a.areaId,
1136
+ areaValue = _a.areaValue,
1137
+ _a$additionalFields = _a.additionalFields,
1138
+ additionalFields = _a$additionalFields === void 0 ? [] : _a$additionalFields,
1139
+ map = _a.map,
1140
+ isChoroplethTooltipOpen = _a.isChoroplethTooltipOpen,
1141
+ children = _a.children,
1142
+ otherProps = __rest(_a, ["longitude", "latitude", "areaId", "areaValue", "additionalFields", "map", "isChoroplethTooltipOpen", "children"]);
1143
+
998
1144
  var container = React.useRef();
999
1145
  var marker = React.useRef();
1146
+
1000
1147
  var _React$useState = React.useState(false),
1001
- _React$useState2 = _slicedToArray(_React$useState, 2),
1002
- isTooltipOpen = _React$useState2[0],
1003
- setTooltipOpenStatus = _React$useState2[1];
1148
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1149
+ isTooltipOpen = _React$useState2[0],
1150
+ setTooltipOpenStatus = _React$useState2[1];
1151
+
1004
1152
  var isChoroplethTooltip = React.useCallback(function () {
1005
1153
  return isChoroplethTooltipOpen !== undefined;
1006
1154
  }, [isChoroplethTooltipOpen]);
@@ -1059,87 +1207,102 @@ var MarkerWrapper = function MarkerWrapper(_a) {
1059
1207
  additionalFields: additionalFields
1060
1208
  })));
1061
1209
  };
1210
+
1062
1211
  exports.default = MarkerWrapper;
1063
1212
 
1064
1213
  /***/ }),
1065
- /* 28 */
1214
+ /* 29 */
1066
1215
  /***/ (function(module, exports) {
1067
1216
 
1068
1217
  module.exports = require("maplibre-gl");
1069
1218
 
1070
1219
  /***/ }),
1071
- /* 29 */
1220
+ /* 30 */
1072
1221
  /***/ (function(module, exports, __webpack_require__) {
1073
1222
 
1074
1223
  "use strict";
1075
1224
 
1076
1225
 
1226
+ var _taggedTemplateLiteral = __webpack_require__(10);
1227
+
1228
+ var _templateObject;
1229
+
1077
1230
  Object.defineProperty(exports, "__esModule", {
1078
1231
  value: true
1079
1232
  });
1080
1233
  exports.convertDegToDMS = void 0;
1234
+
1081
1235
  var React = __webpack_require__(3);
1082
- var styled_components_1 = __webpack_require__(10);
1083
- var Popover_1 = __webpack_require__(30);
1084
- var i18n_1 = __webpack_require__(31);
1085
- var StyledPopover = styled_components_1.default(Popover_1.default).withConfig({
1086
- displayName: "Tooltip__StyledPopover",
1087
- componentId: "xwewsa-0"
1088
- })(["width:250px;font-size:12px;"]);
1236
+
1237
+ var styled_components_1 = __webpack_require__(11);
1238
+
1239
+ var Popover_1 = __webpack_require__(31);
1240
+
1241
+ var i18n_1 = __webpack_require__(32);
1242
+
1243
+ var StyledPopover = (0, styled_components_1.default)(Popover_1.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 250px;\n font-size: 12px;\n"])));
1089
1244
  var StyledTable = styled_components_1.default.table.withConfig({
1090
1245
  displayName: "Tooltip__StyledTable",
1091
- componentId: "xwewsa-1"
1246
+ componentId: "xwewsa-0"
1092
1247
  })(["margin:2px 6px 2px 6px;width:calc(100% - 12px);"]);
1093
1248
  var StyledTitleColumn = styled_components_1.default.td.withConfig({
1094
1249
  displayName: "Tooltip__StyledTitleColumn",
1095
- componentId: "xwewsa-2"
1250
+ componentId: "xwewsa-1"
1096
1251
  })(["opacity:0.85;"]);
1097
1252
  var StyledValueColumn = styled_components_1.default.td.withConfig({
1098
1253
  displayName: "Tooltip__StyledValueColumn",
1099
- componentId: "xwewsa-3"
1254
+ componentId: "xwewsa-2"
1100
1255
  })(["text-align:right;"]);
1101
1256
  var StyledColorBlock = styled_components_1.default.div.withConfig({
1102
1257
  displayName: "Tooltip__StyledColorBlock",
1103
- componentId: "xwewsa-4"
1258
+ componentId: "xwewsa-3"
1104
1259
  })(["background-color:", ";display:inline-block;margin-right:4px;border-radius:2px;width:6px;height:11px;transform:translateY(1px);"], function (props) {
1105
1260
  return props.color;
1106
1261
  });
1262
+
1107
1263
  var convertDegToDMS = function convertDegToDMS(decimalDegree, type) {
1108
1264
  var truncate = function truncate(n) {
1109
1265
  return n > 0 ? Math.floor(n) : Math.ceil(n);
1110
1266
  };
1267
+
1111
1268
  var absoluteDegree = Math.abs(decimalDegree);
1112
1269
  var degrees = truncate(absoluteDegree);
1113
1270
  var minutes = truncate((absoluteDegree - degrees) * 60);
1114
1271
  var seconds = Math.round((absoluteDegree - degrees - minutes / 60) * 3600);
1272
+
1115
1273
  if (seconds === 60) {
1116
1274
  minutes += 1;
1117
1275
  seconds = 0;
1118
1276
  }
1277
+
1119
1278
  if (minutes === 60) {
1120
1279
  degrees += 1;
1121
1280
  minutes = 0;
1122
1281
  }
1282
+
1123
1283
  var direction;
1284
+
1124
1285
  if (type === 'longitude') {
1125
1286
  direction = decimalDegree < 0 ? 'W' : 'E';
1126
1287
  } else if (type === 'latitude') {
1127
1288
  direction = decimalDegree < 0 ? 'S' : 'N';
1128
1289
  }
1290
+
1129
1291
  return "".concat(degrees, "\xB0 ").concat(minutes, "' ").concat(seconds, "\" ").concat(direction);
1130
1292
  };
1131
- exports.convertDegToDMS = convertDegToDMS;
1132
- // only want latitude/longitude for marker and bubble
1293
+
1294
+ exports.convertDegToDMS = convertDegToDMS; // only want latitude/longitude for marker and bubble
1133
1295
  // omit for choropleth, and put areaid, areavalue instead
1296
+
1134
1297
  var Tooltip = function Tooltip(_ref) {
1135
1298
  var open = _ref.open,
1136
- anchor = _ref.anchor,
1137
- latitude = _ref.latitude,
1138
- longitude = _ref.longitude,
1139
- areaId = _ref.areaId,
1140
- areaValue = _ref.areaValue,
1141
- _ref$additionalFields = _ref.additionalFields,
1142
- additionalFields = _ref$additionalFields === void 0 ? [] : _ref$additionalFields;
1299
+ anchor = _ref.anchor,
1300
+ latitude = _ref.latitude,
1301
+ longitude = _ref.longitude,
1302
+ areaId = _ref.areaId,
1303
+ areaValue = _ref.areaValue,
1304
+ _ref$additionalFields = _ref.additionalFields,
1305
+ additionalFields = _ref$additionalFields === void 0 ? [] : _ref$additionalFields;
1143
1306
  return React.createElement(StyledPopover, {
1144
1307
  open: open,
1145
1308
  animation: false,
@@ -1150,17 +1313,17 @@ var Tooltip = function Tooltip(_ref) {
1150
1313
  "data-test": "area-id"
1151
1314
  }, areaId), React.createElement(StyledValueColumn, {
1152
1315
  "data-test": "area-value"
1153
- }, areaValue)), latitude && React.createElement("tr", null, React.createElement(StyledTitleColumn, null, i18n_1._('Latitude')), React.createElement(StyledValueColumn, {
1316
+ }, areaValue)), latitude && React.createElement("tr", null, React.createElement(StyledTitleColumn, null, (0, i18n_1._)('Latitude')), React.createElement(StyledValueColumn, {
1154
1317
  "data-test": "latitude"
1155
- }, exports.convertDegToDMS(latitude, 'latitude'))), longitude && React.createElement("tr", null, React.createElement(StyledTitleColumn, null, i18n_1._('Longitude')), React.createElement(StyledValueColumn, {
1318
+ }, (0, exports.convertDegToDMS)(latitude, 'latitude'))), longitude && React.createElement("tr", null, React.createElement(StyledTitleColumn, null, (0, i18n_1._)('Longitude')), React.createElement(StyledValueColumn, {
1156
1319
  "data-test": "longitude"
1157
- }, exports.convertDegToDMS(longitude, 'longitude'))), additionalFields.filter(function (_ref2) {
1320
+ }, (0, exports.convertDegToDMS)(longitude, 'longitude'))), additionalFields.filter(function (_ref2) {
1158
1321
  var value = _ref2.value;
1159
1322
  return value && String(value) !== '0';
1160
1323
  }).map(function (_ref3, index) {
1161
1324
  var name = _ref3.name,
1162
- value = _ref3.value,
1163
- color = _ref3.color;
1325
+ value = _ref3.value,
1326
+ color = _ref3.color;
1164
1327
  return React.createElement("tr", {
1165
1328
  key: String(index)
1166
1329
  }, React.createElement(StyledTitleColumn, {
@@ -1173,16 +1336,17 @@ var Tooltip = function Tooltip(_ref) {
1173
1336
  }, value));
1174
1337
  }))));
1175
1338
  };
1339
+
1176
1340
  exports.default = Tooltip;
1177
1341
 
1178
1342
  /***/ }),
1179
- /* 30 */
1343
+ /* 31 */
1180
1344
  /***/ (function(module, exports) {
1181
1345
 
1182
1346
  module.exports = require("@splunk/react-ui/Popover");
1183
1347
 
1184
1348
  /***/ }),
1185
- /* 31 */
1349
+ /* 32 */
1186
1350
  /***/ (function(module, exports) {
1187
1351
 
1188
1352
  module.exports = require("@splunk/ui-utils/i18n");