@splunk/visualizations 27.4.0 → 27.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/Area.config.js +7 -0
  2. package/Area.config.js.map +2 -2
  3. package/Area.js +36 -6
  4. package/Area.js.map +2 -2
  5. package/Bar.config.js +7 -0
  6. package/Bar.config.js.map +2 -2
  7. package/Bar.js +37 -8
  8. package/Bar.js.map +2 -2
  9. package/Bubble.config.js +7 -0
  10. package/Bubble.config.js.map +2 -2
  11. package/Bubble.js +16 -5
  12. package/Bubble.js.map +2 -2
  13. package/CHANGELOG.external.md +36 -7
  14. package/ChoroplethSvg.js +2 -2
  15. package/Column.config.js +7 -0
  16. package/Column.config.js.map +2 -2
  17. package/Column.js +36 -6
  18. package/Column.js.map +2 -2
  19. package/Ellipse.js +65 -7
  20. package/Ellipse.js.map +4 -4
  21. package/Events.js +11 -6
  22. package/Events.js.map +2 -2
  23. package/FEATUREFLAGS.md +2 -0
  24. package/FillerGauge.js +2 -2
  25. package/Image.js +2 -2
  26. package/Line.config.js +7 -0
  27. package/Line.config.js.map +2 -2
  28. package/Line.js +36 -6
  29. package/Line.js.map +2 -2
  30. package/LinkGraph.js +2 -2
  31. package/Map.config.js +11 -0
  32. package/Map.config.js.map +2 -2
  33. package/Map.js +227 -101
  34. package/Map.js.map +4 -4
  35. package/Markdown.js +2 -2
  36. package/MarkerGauge.js +2 -2
  37. package/ParallelCoordinates.js +2 -2
  38. package/ParallelCoordinates.js.map +1 -1
  39. package/Pie.js +9 -5
  40. package/Pie.js.map +2 -2
  41. package/Punchcard.js +3 -3
  42. package/Punchcard.js.map +2 -2
  43. package/Rectangle.js +64 -7
  44. package/Rectangle.js.map +4 -4
  45. package/Sankey.js +36 -35
  46. package/Sankey.js.map +3 -3
  47. package/Scatter.config.js +7 -0
  48. package/Scatter.config.js.map +2 -2
  49. package/Scatter.js +16 -5
  50. package/Scatter.js.map +2 -2
  51. package/SingleValue.js +3 -3
  52. package/SingleValue.js.map +2 -2
  53. package/SingleValueBasic.js.map +1 -1
  54. package/SingleValueIcon.js +3 -3
  55. package/SingleValueIcon.js.map +2 -2
  56. package/SingleValueRadial.js +3 -3
  57. package/SingleValueRadial.js.map +2 -2
  58. package/Table.js +2 -2
  59. package/Timeline.js +2 -2
  60. package/common/Charting.js +7 -3
  61. package/common/Charting.js.map +2 -2
  62. package/common/chartingUtils.js +11 -0
  63. package/common/chartingUtils.js.map +2 -2
  64. package/common/shapeUtils.js +85 -3
  65. package/common/shapeUtils.js.map +4 -4
  66. package/common/utils/mapUtils.js +156 -43
  67. package/common/utils/mapUtils.js.map +4 -4
  68. package/common/utils/singleValueUtils.js +1 -1
  69. package/common/utils/singleValueUtils.js.map +2 -2
  70. package/common/withDashboardViz.js +2 -2
  71. package/package.json +16 -16
@@ -129,50 +129,77 @@ var defaultImport7 = __toESM(require("lodash"));
129
129
  __reExport(lodash_exports, require("lodash"));
130
130
  var lodash_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
131
131
 
132
+ // esm-externals:@splunk/visualizations-shared/iconUtils
133
+ var iconUtils_exports = {};
134
+ __export(iconUtils_exports, {
135
+ default: () => iconUtils_default
136
+ });
137
+ var defaultImport8 = __toESM(require("@splunk/visualizations-shared/iconUtils"));
138
+ __reExport(iconUtils_exports, require("@splunk/visualizations-shared/iconUtils"));
139
+ var iconUtils_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
140
+
132
141
  // esm-externals:@splunk/visualizations-shared/colorUtils
133
142
  var colorUtils_exports = {};
134
143
  __export(colorUtils_exports, {
135
144
  default: () => colorUtils_default
136
145
  });
137
- var defaultImport8 = __toESM(require("@splunk/visualizations-shared/colorUtils"));
146
+ var defaultImport9 = __toESM(require("@splunk/visualizations-shared/colorUtils"));
138
147
  __reExport(colorUtils_exports, require("@splunk/visualizations-shared/colorUtils"));
139
- var colorUtils_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
148
+ var colorUtils_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
149
+
150
+ // esm-externals:@splunk/visualizations-shared/RemoteIcon
151
+ var RemoteIcon_exports = {};
152
+ __export(RemoteIcon_exports, {
153
+ default: () => RemoteIcon_default
154
+ });
155
+ var defaultImport10 = __toESM(require("@splunk/visualizations-shared/RemoteIcon"));
156
+ __reExport(RemoteIcon_exports, require("@splunk/visualizations-shared/RemoteIcon"));
157
+ var RemoteIcon_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
158
+
159
+ // esm-externals:@splunk/visualization-context/FeatureFlagContext
160
+ var FeatureFlagContext_exports = {};
161
+ __export(FeatureFlagContext_exports, {
162
+ default: () => FeatureFlagContext_default
163
+ });
164
+ var defaultImport11 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
165
+ __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
166
+ var FeatureFlagContext_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
140
167
 
141
168
  // esm-externals:d3-scale
142
169
  var d3_scale_exports = {};
143
170
  __export(d3_scale_exports, {
144
171
  default: () => d3_scale_default
145
172
  });
146
- var defaultImport9 = __toESM(require("d3-scale"));
173
+ var defaultImport12 = __toESM(require("d3-scale"));
147
174
  __reExport(d3_scale_exports, require("d3-scale"));
148
- var d3_scale_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
175
+ var d3_scale_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
149
176
 
150
177
  // esm-externals:chroma-js
151
178
  var chroma_js_exports = {};
152
179
  __export(chroma_js_exports, {
153
180
  default: () => chroma_js_default
154
181
  });
155
- var defaultImport10 = __toESM(require("chroma-js"));
182
+ var defaultImport13 = __toESM(require("chroma-js"));
156
183
  __reExport(chroma_js_exports, require("chroma-js"));
157
- var chroma_js_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
184
+ var chroma_js_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
158
185
 
159
186
  // esm-externals:@splunk/visualization-color-palettes
160
187
  var visualization_color_palettes_exports = {};
161
188
  __export(visualization_color_palettes_exports, {
162
189
  default: () => visualization_color_palettes_default
163
190
  });
164
- var defaultImport11 = __toESM(require("@splunk/visualization-color-palettes"));
191
+ var defaultImport14 = __toESM(require("@splunk/visualization-color-palettes"));
165
192
  __reExport(visualization_color_palettes_exports, require("@splunk/visualization-color-palettes"));
166
- var visualization_color_palettes_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
193
+ var visualization_color_palettes_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
167
194
 
168
195
  // esm-externals:@splunk/visualization-schemas
169
196
  var visualization_schemas_exports = {};
170
197
  __export(visualization_schemas_exports, {
171
198
  default: () => visualization_schemas_default
172
199
  });
173
- var defaultImport12 = __toESM(require("@splunk/visualization-schemas"));
200
+ var defaultImport15 = __toESM(require("@splunk/visualization-schemas"));
174
201
  __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
175
- var visualization_schemas_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
202
+ var visualization_schemas_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
176
203
 
177
204
  // src/Map/PureMap/MapUtils.ts
178
205
  var MIN_BUBBLE_RADIUS = 7.11;
@@ -195,27 +222,36 @@ var maplibre_gl_exports = {};
195
222
  __export(maplibre_gl_exports, {
196
223
  default: () => maplibre_gl_default
197
224
  });
198
- var defaultImport13 = __toESM(require("maplibre-gl"));
225
+ var defaultImport16 = __toESM(require("maplibre-gl"));
199
226
  __reExport(maplibre_gl_exports, require("maplibre-gl"));
200
- var maplibre_gl_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
227
+ var maplibre_gl_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
201
228
 
202
229
  // esm-externals:@splunk/react-ui/Popover
203
230
  var Popover_exports = {};
204
231
  __export(Popover_exports, {
205
232
  default: () => Popover_default
206
233
  });
207
- var defaultImport14 = __toESM(require("@splunk/react-ui/Popover"));
234
+ var defaultImport17 = __toESM(require("@splunk/react-ui/Popover"));
208
235
  __reExport(Popover_exports, require("@splunk/react-ui/Popover"));
209
- var Popover_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
236
+ var Popover_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
210
237
 
211
238
  // esm-externals:@splunk/ui-utils/i18n
212
239
  var i18n_exports = {};
213
240
  __export(i18n_exports, {
214
241
  default: () => i18n_default
215
242
  });
216
- var defaultImport15 = __toESM(require("@splunk/ui-utils/i18n"));
243
+ var defaultImport18 = __toESM(require("@splunk/ui-utils/i18n"));
217
244
  __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
218
- var i18n_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
245
+ var i18n_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
246
+
247
+ // esm-externals:@splunk/themes
248
+ var themes_exports = {};
249
+ __export(themes_exports, {
250
+ default: () => themes_default
251
+ });
252
+ var defaultImport19 = __toESM(require("@splunk/themes"));
253
+ __reExport(themes_exports, require("@splunk/themes"));
254
+ var themes_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
219
255
 
220
256
  // src/Map/PureMap/Tooltip.tsx
221
257
  var StyledPopover = styled_components_default(Popover_default)`
@@ -224,6 +260,7 @@ var StyledPopover = styled_components_default(Popover_default)`
224
260
  `;
225
261
  var StyledTable = styled_components_default.table`
226
262
  margin: 2px 6px 2px 6px;
263
+ table-layout: fixed;
227
264
  width: calc(100% - 12px);
228
265
  `;
229
266
  var StyledTitleColumn = styled_components_default.td`
@@ -241,6 +278,30 @@ var StyledColorBlock = styled_components_default.div`
241
278
  height: 11px;
242
279
  transform: translateY(1px);
243
280
  `;
281
+ var StyledFieldLabel = styled_components_default.span`
282
+ display: inline-block;
283
+ white-space: nowrap;
284
+ `;
285
+ var StyledIconWrapper = styled_components_default.span`
286
+ margin-left: 4px;
287
+ display: inline-block;
288
+ vertical-align: middle;
289
+ `;
290
+ var StyledTooltipHeader = styled_components_default.thead`
291
+ th {
292
+ height: 16px;
293
+ color: ${themes_exports.variables.contentColorActive};
294
+ padding: 0;
295
+ }
296
+
297
+ span {
298
+ display: block;
299
+ white-space: nowrap;
300
+ overflow: hidden;
301
+ text-overflow: ellipsis;
302
+ width: 100%;
303
+ }
304
+ `;
244
305
  var convertDegToDMS = (decimalDegree, type) => {
245
306
  const truncate = (n) => n > 0 ? Math.floor(n) : Math.ceil(n);
246
307
  const absoluteDegree = Math.abs(decimalDegree);
@@ -271,18 +332,25 @@ var Tooltip = ({
271
332
  areaId,
272
333
  areaValue,
273
334
  additionalFields = [],
274
- showCoordinates = true
275
- }) => /* @__PURE__ */ react_exports.createElement(
276
- StyledPopover,
277
- {
278
- open,
279
- animation: false,
280
- anchor,
281
- "data-test": "map-marker-tooltip",
282
- defaultPlacement: "above"
283
- },
284
- /* @__PURE__ */ react_exports.createElement(StyledTable, null, /* @__PURE__ */ react_exports.createElement("tbody", null, areaId && areaValue && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, { "data-test": "area-id" }, areaId), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "area-value" }, areaValue)), Boolean(showCoordinates && latitude) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, null, (0, i18n_exports._)("Latitude")), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "latitude" }, convertDegToDMS(latitude, "latitude"))), Boolean(showCoordinates && longitude) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, null, (0, i18n_exports._)("Longitude")), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "longitude" }, convertDegToDMS(longitude, "longitude"))), additionalFields.filter(({ value }) => value && String(value) !== "0").map(({ name, value, color }, index) => /* @__PURE__ */ react_exports.createElement("tr", { key: String(index) }, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, { "data-test": "field-title" }, color ? /* @__PURE__ */ react_exports.createElement(StyledColorBlock, { "data-test": "field-color", color }) : null, name), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "field-value" }, value)))))
285
- );
335
+ showCoordinates = true,
336
+ tooltipHeader = null
337
+ }) => {
338
+ const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
339
+ const isTooltipIconFlagEnabled = Boolean(
340
+ featureFlagContext && featureFlagContext.visualizations_enableTooltipIcon
341
+ );
342
+ return /* @__PURE__ */ react_exports.createElement(
343
+ StyledPopover,
344
+ {
345
+ open,
346
+ animation: false,
347
+ anchor,
348
+ "data-test": "map-marker-tooltip",
349
+ defaultPlacement: "above"
350
+ },
351
+ /* @__PURE__ */ react_exports.createElement(StyledTable, null, tooltipHeader && /* @__PURE__ */ react_exports.createElement(StyledTooltipHeader, { "data-test": "tooltip-header" }, /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement("th", { colSpan: 2 }, /* @__PURE__ */ react_exports.createElement("span", { "data-test": "tooltip-header-value" }, tooltipHeader)))), /* @__PURE__ */ react_exports.createElement("tbody", null, areaId && areaValue && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, { "data-test": "area-id" }, areaId), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "area-value" }, areaValue)), Boolean(showCoordinates && latitude) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, null, (0, i18n_exports._)("Latitude")), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "latitude" }, convertDegToDMS(latitude, "latitude"))), Boolean(showCoordinates && longitude) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, null, (0, i18n_exports._)("Longitude")), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "longitude" }, convertDegToDMS(longitude, "longitude"))), additionalFields.filter(({ value }) => value && String(value) !== "0").map(({ name, value, color, icon }, index) => /* @__PURE__ */ react_exports.createElement("tr", { key: String(index) }, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, { "data-test": "field-title" }, color ? /* @__PURE__ */ react_exports.createElement(StyledColorBlock, { "data-test": "field-color", color }) : null, /* @__PURE__ */ react_exports.createElement(StyledFieldLabel, null, name, isTooltipIconFlagEnabled && icon && ((0, iconUtils_exports.isRemoteIcon)(icon) || (0, iconUtils_exports.isDataURI)(icon)) ? /* @__PURE__ */ react_exports.createElement(StyledIconWrapper, { "data-test": "field-icon" }, /* @__PURE__ */ react_exports.createElement(RemoteIcon_default, { iconURL: icon, width: 16, height: 16 })) : null)), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "field-value" }, value)))))
352
+ );
353
+ };
286
354
  var Tooltip_default = Tooltip;
287
355
 
288
356
  // src/Map/PureMap/MarkerWrapper.tsx
@@ -293,6 +361,7 @@ var MarkerWrapper = (_a) => {
293
361
  areaId,
294
362
  areaValue,
295
363
  additionalFields = [],
364
+ tooltipHeader = null,
296
365
  map,
297
366
  isChoroplethTooltipOpen,
298
367
  children,
@@ -303,6 +372,7 @@ var MarkerWrapper = (_a) => {
303
372
  "areaId",
304
373
  "areaValue",
305
374
  "additionalFields",
375
+ "tooltipHeader",
306
376
  "map",
307
377
  "isChoroplethTooltipOpen",
308
378
  "children",
@@ -361,7 +431,8 @@ var MarkerWrapper = (_a) => {
361
431
  areaId,
362
432
  areaValue,
363
433
  additionalFields,
364
- showCoordinates
434
+ showCoordinates,
435
+ tooltipHeader
365
436
  }
366
437
  )));
367
438
  };
@@ -369,6 +440,7 @@ var MarkerWrapper_default = MarkerWrapper;
369
440
 
370
441
  // src/Map/PureMap/BubbleLayer.tsx
371
442
  var GEO_LAT_AND_LONG_FIELD = ["_geo_long_field", "_geo_lat_field"];
443
+ var ICON_DISPLAY_CUTOFF = 16;
372
444
  var PieSegment = react_exports.memo(
373
445
  ({
374
446
  start,
@@ -437,10 +509,16 @@ var Bubble = react_exports.memo(
437
509
  longitude,
438
510
  bubbleSize,
439
511
  additionalFields = [],
512
+ tooltipHeader = null,
440
513
  map,
441
514
  handleMapClick,
515
+ icon,
442
516
  showCoordinates
443
517
  }) => {
518
+ const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
519
+ const isBubbleMapIconFlagEnabled = Boolean(
520
+ featureFlagContext && featureFlagContext.visualizations_enableBubbleMapIcon
521
+ );
444
522
  const onBubbleClick = react_exports.useCallback(
445
523
  (e, name, value) => {
446
524
  handleMapClick(e, name, value);
@@ -448,21 +526,20 @@ var Bubble = react_exports.memo(
448
526
  },
449
527
  [handleMapClick]
450
528
  );
529
+ const allZeros = originalValues.every((v) => v === 0);
530
+ const values = originalValues.map((v) => v > 0 ? v : 0);
531
+ const total = values.reduce((totalValue, v) => totalValue + v, 0);
532
+ const radius = matchBubbleSize(valueRange, total);
451
533
  const bubble = react_exports.useMemo(() => {
452
- const allZeros = originalValues.every((v) => v === 0);
453
- if (allZeros || !originalValues.length) {
454
- return null;
455
- }
456
- const values = originalValues.map((v) => v > 0 ? v : 0);
534
+ if (allZeros || !originalValues.length) return null;
457
535
  const offsets = [];
458
- let total = 0;
536
+ let runningTotal = 0;
459
537
  values.forEach((count) => {
460
- offsets.push(total);
461
- total += count;
538
+ offsets.push(runningTotal);
539
+ runningTotal += count;
462
540
  });
463
- const radius = matchBubbleSize(valueRange, total);
464
541
  const width = radius * 2;
465
- return /* @__PURE__ */ react_exports.createElement("svg", { width, height: width, viewBox: `-3 -3 ${width + 6} ${width + 6}` }, isPie ? /* @__PURE__ */ react_exports.createElement(
542
+ return /* @__PURE__ */ react_exports.createElement("svg", { width, height: width, viewBox: `-3 -3 ${width + 6} ${width + 6}` }, isPie && /* @__PURE__ */ react_exports.createElement(
466
543
  "circle",
467
544
  {
468
545
  cx: radius,
@@ -473,7 +550,7 @@ var Bubble = react_exports.memo(
473
550
  stroke: themeColor,
474
551
  strokeOpacity: 0.3
475
552
  }
476
- ) : null, values.map((v, i) => /* @__PURE__ */ react_exports.createElement(
553
+ ), values.map((v, i) => /* @__PURE__ */ react_exports.createElement(
477
554
  PieSegment,
478
555
  {
479
556
  key: String(i),
@@ -486,7 +563,18 @@ var Bubble = react_exports.memo(
486
563
  handleBubbleClick: onBubbleClick
487
564
  }
488
565
  )));
489
- }, [bubbleSize, colors, isPie, onBubbleClick, originalValues, themeColor, valueRange]);
566
+ }, [
567
+ bubbleSize,
568
+ colors,
569
+ isPie,
570
+ onBubbleClick,
571
+ originalValues,
572
+ themeColor,
573
+ allZeros,
574
+ radius,
575
+ total,
576
+ values
577
+ ]);
490
578
  if (!bubble) {
491
579
  return null;
492
580
  }
@@ -496,11 +584,26 @@ var Bubble = react_exports.memo(
496
584
  longitude,
497
585
  latitude,
498
586
  additionalFields: [...bubbleSize, ...additionalFields],
587
+ tooltipHeader,
499
588
  map,
500
589
  "data-test-type": "bubble",
501
590
  showCoordinates
502
591
  },
503
- bubble
592
+ bubble,
593
+ isBubbleMapIconFlagEnabled && radius >= ICON_DISPLAY_CUTOFF && icon && ((0, iconUtils_exports.isRemoteIcon)(icon) || (0, iconUtils_exports.isDataURI)(icon)) && /* @__PURE__ */ react_exports.createElement(
594
+ "div",
595
+ {
596
+ "data-test": "bubble-icon-wrapper",
597
+ style: {
598
+ position: "absolute",
599
+ top: `${radius}px`,
600
+ left: `${radius}px`,
601
+ transform: "translate(-50%, -50%)",
602
+ pointerEvents: "none"
603
+ }
604
+ },
605
+ /* @__PURE__ */ react_exports.createElement(RemoteIcon_default, { iconURL: icon, width: radius * 0.8, height: radius * 0.8 })
606
+ )
504
607
  );
505
608
  }
506
609
  );
@@ -520,7 +623,17 @@ var columnsNullToZeros = (config, dataSources, options) => {
520
623
  if (((_b = (_a = mergedOptions.layers) == null ? void 0 : _a[0]) == null ? void 0 : _b.type) === "bubble") {
521
624
  const latitudeField = (0, dsl_exports.getFieldsFromDSL)(mergedOptions.layers[0].latitude, dataSources)[0] || "";
522
625
  const longitudeField = (0, dsl_exports.getFieldsFromDSL)(mergedOptions.layers[0].longitude, dataSources)[0] || "";
523
- const excludedFields = [latitudeField, longitudeField, "geobin"].concat(GEO_LAT_AND_LONG_FIELD);
626
+ const stringsFields = (0, dsl_exports.getFieldsFromDSL)("> primary | frameBySeriesTypes('string')", dataSources);
627
+ const excludedFields = Array.from(
628
+ /* @__PURE__ */ new Set([
629
+ latitudeField,
630
+ longitudeField,
631
+ "geobin",
632
+ "name",
633
+ ...stringsFields,
634
+ ...GEO_LAT_AND_LONG_FIELD
635
+ ])
636
+ );
524
637
  const indicesToEvaluate = new Set(
525
638
  fields.reduce((arr, e, i) => {
526
639
  const field = typeof e === "string" ? e : e.name.toString();