@semcore/d3-chart 2.11.1 → 2.12.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 (43) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/cjs/Area.js +10 -10
  3. package/lib/cjs/Axis.js +14 -14
  4. package/lib/cjs/Bar.js +9 -9
  5. package/lib/cjs/Bubble.js +11 -11
  6. package/lib/cjs/Donut.js +8 -8
  7. package/lib/cjs/Dots.js +10 -10
  8. package/lib/cjs/HorizontalBar.js +9 -9
  9. package/lib/cjs/Hover.js +4 -4
  10. package/lib/cjs/Line.js +9 -9
  11. package/lib/cjs/Plot.js +4 -4
  12. package/lib/cjs/Radar.js +97 -71
  13. package/lib/cjs/Radar.js.map +1 -1
  14. package/lib/cjs/RadialTree.js +13 -13
  15. package/lib/cjs/ReferenceLine.js +10 -10
  16. package/lib/cjs/ScatterPlot.js +8 -8
  17. package/lib/cjs/Tooltip.js +9 -9
  18. package/lib/cjs/Venn.js +8 -8
  19. package/lib/cjs/a11y/PlotA11yModule.js +3 -3
  20. package/lib/cjs/a11y/PlotA11yView.js +4 -4
  21. package/lib/cjs/types/Radar.js.map +1 -1
  22. package/lib/es6/Area.js +10 -10
  23. package/lib/es6/Axis.js +14 -14
  24. package/lib/es6/Bar.js +9 -9
  25. package/lib/es6/Bubble.js +11 -11
  26. package/lib/es6/Donut.js +8 -8
  27. package/lib/es6/Dots.js +10 -10
  28. package/lib/es6/HorizontalBar.js +9 -9
  29. package/lib/es6/Hover.js +4 -4
  30. package/lib/es6/Line.js +9 -9
  31. package/lib/es6/Plot.js +4 -4
  32. package/lib/es6/Radar.js +97 -71
  33. package/lib/es6/Radar.js.map +1 -1
  34. package/lib/es6/RadialTree.js +13 -13
  35. package/lib/es6/ReferenceLine.js +10 -10
  36. package/lib/es6/ScatterPlot.js +8 -8
  37. package/lib/es6/Tooltip.js +9 -9
  38. package/lib/es6/Venn.js +8 -8
  39. package/lib/es6/a11y/PlotA11yModule.js +3 -3
  40. package/lib/es6/a11y/PlotA11yView.js +4 -4
  41. package/lib/es6/types/Radar.js.map +1 -1
  42. package/lib/types/types/Radar.d.ts +7 -1
  43. package/package.json +1 -1
package/lib/es6/Radar.js CHANGED
@@ -23,41 +23,61 @@ var style = (
23
23
  /*__reshadow_css_start__*/
24
24
  _sstyled.insert(
25
25
  /*__inner_css_start__*/
26
- ".___SAxisLine_1q8ql_gg_,.___SAxisTick_1q8ql_gg_,.___SAxis_1q8ql_gg_{stroke:var(--intergalactic-chart-grid-line, #e0e1e9);stroke-width:1;fill:transparent}.___SAxisLine_1q8ql_gg_,.___SAxisTick_1q8ql_gg_{stroke-dasharray:2}.___SAxisLine_1q8ql_gg_.__active_1q8ql_gg_{stroke:var(--intergalactic-chart-grid-y-accent-hover-line, #a9abb6)}.___SAxisLabel_1q8ql_gg_{text-anchor:middle;dominant-baseline:central;font-size:12px}.___SAxisLabel_1q8ql_gg_.__xDirection_1q8ql_gg_{text-anchor:var(--xDirection_1q8ql)}.___SAxisLabel_1q8ql_gg_.__yDirection_1q8ql_gg_{dominant-baseline:var(--yDirection_1q8ql)}.___SPolygonDot_1q8ql_gg_,.___SPolygon_1q8ql_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SPolygon_1q8ql_gg_{opacity:.2}.___SPolygon_1q8ql_gg_.__color_1q8ql_gg_{fill:var(--color_1q8ql)}.___SPolygonDot_1q8ql_gg_{stroke-width:2px;stroke:var(--intergalactic-chart-grid-border, #ffffff);r:6px}.___SPolygonDot_1q8ql_gg_.__transparent_1q8ql_gg_{opacity:.3}.___SPolygonDot_1q8ql_gg_.__color_1q8ql_gg_{fill:var(--color_1q8ql)}.___SPolygonLine_1q8ql_gg_{stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke-width:3;fill:transparent}.___SPolygonLine_1q8ql_gg_.__transparent_1q8ql_gg_{opacity:.3}.___SPolygonLine_1q8ql_gg_.__color_1q8ql_gg_{stroke:var(--color_1q8ql)}.___SPieRect_1q8ql_gg_{fill:var(--intergalactic-chart-grid-bar-chart-hover, rgba(196, 199, 207, 0.3))}"
26
+ ".___SAxisLine_h5ew1_gg_,.___SAxisTick_h5ew1_gg_,.___SAxis_h5ew1_gg_{stroke:var(--intergalactic-chart-grid-line, #e0e1e9);stroke-width:1;fill:transparent}.___SAxisLine_h5ew1_gg_,.___SAxisTick_h5ew1_gg_{stroke-dasharray:2}.___SAxisLine_h5ew1_gg_.__active_h5ew1_gg_{stroke:var(--intergalactic-chart-grid-y-accent-hover-line, #a9abb6)}.___SAxisLabel_h5ew1_gg_{text-anchor:middle;dominant-baseline:central;font-size:12px}.___SAxisLabel_h5ew1_gg_.__xDirection_h5ew1_gg_{text-anchor:var(--xDirection_h5ew1)}.___SAxisLabel_h5ew1_gg_.__yDirection_h5ew1_gg_{dominant-baseline:var(--yDirection_h5ew1)}.___SPolygonDot_h5ew1_gg_,.___SPolygon_h5ew1_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SPolygon_h5ew1_gg_{opacity:.2}.___SPolygon_h5ew1_gg_.__color_h5ew1_gg_{fill:var(--color_h5ew1)}.___SPolygonDot_h5ew1_gg_{stroke-width:2px;stroke:var(--intergalactic-chart-grid-border, #ffffff);r:6px}.___SPolygonDot_h5ew1_gg_.__transparent_h5ew1_gg_{opacity:.3}.___SPolygonDot_h5ew1_gg_.__color_h5ew1_gg_{fill:var(--color_h5ew1)}.___SPolygonLine_h5ew1_gg_{stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke-width:3;fill:transparent}.___SPolygonLine_h5ew1_gg_.__transparent_h5ew1_gg_{opacity:.3}.___SPolygonLine_h5ew1_gg_.__color_h5ew1_gg_{stroke:var(--color_h5ew1)}.___SPieRect_h5ew1_gg_{fill:var(--intergalactic-chart-grid-bar-chart-hover, rgba(196, 199, 207, 0.3))}"
27
27
  /*__inner_css_end__*/
28
- , "1q8ql_gg_")
28
+ , "h5ew1_gg_")
29
29
  /*__reshadow_css_end__*/
30
30
  , {
31
- "__SAxis": "___SAxis_1q8ql_gg_",
32
- "__SAxisLine": "___SAxisLine_1q8ql_gg_",
33
- "__SAxisTick": "___SAxisTick_1q8ql_gg_",
34
- "_active": "__active_1q8ql_gg_",
35
- "__SAxisLabel": "___SAxisLabel_1q8ql_gg_",
36
- "_xDirection": "__xDirection_1q8ql_gg_",
37
- "--xDirection": "--xDirection_1q8ql",
38
- "_yDirection": "__yDirection_1q8ql_gg_",
39
- "--yDirection": "--yDirection_1q8ql",
40
- "__SPolygon": "___SPolygon_1q8ql_gg_",
41
- "_color": "__color_1q8ql_gg_",
42
- "--color": "--color_1q8ql",
43
- "__SPolygonDot": "___SPolygonDot_1q8ql_gg_",
44
- "_transparent": "__transparent_1q8ql_gg_",
45
- "__SPolygonLine": "___SPolygonLine_1q8ql_gg_",
46
- "__SPieRect": "___SPieRect_1q8ql_gg_"
31
+ "__SAxis": "___SAxis_h5ew1_gg_",
32
+ "__SAxisLine": "___SAxisLine_h5ew1_gg_",
33
+ "__SAxisTick": "___SAxisTick_h5ew1_gg_",
34
+ "_active": "__active_h5ew1_gg_",
35
+ "__SAxisLabel": "___SAxisLabel_h5ew1_gg_",
36
+ "_xDirection": "__xDirection_h5ew1_gg_",
37
+ "--xDirection": "--xDirection_h5ew1",
38
+ "_yDirection": "__yDirection_h5ew1_gg_",
39
+ "--yDirection": "--yDirection_h5ew1",
40
+ "__SPolygon": "___SPolygon_h5ew1_gg_",
41
+ "_color": "__color_h5ew1_gg_",
42
+ "--color": "--color_h5ew1",
43
+ "__SPolygonDot": "___SPolygonDot_h5ew1_gg_",
44
+ "_transparent": "__transparent_h5ew1_gg_",
45
+ "__SPolygonLine": "___SPolygonLine_h5ew1_gg_",
46
+ "__SPieRect": "___SPieRect_h5ew1_gg_"
47
47
  });
48
48
 
49
- function getAngle(i, range, func, total) {
50
- var angle = (total - i) * 2 * Math.PI / total;
49
+ var clampAngle = function clampAngle(angle) {
50
+ angle = angle % (2 * Math.PI);
51
+ if (angle < 0) angle += 2 * Math.PI;
52
+ return angle;
53
+ };
54
+
55
+ function getBoxAxesValue(i, range, axes, total, angleOffset) {
56
+ var func = axes === 'y' ? Math.sin : Math.cos;
57
+ var angle = clampAngle((total - i) * 2 * Math.PI / total + angleOffset);
51
58
  return range * (1 - func(angle)) - range;
52
59
  }
53
60
 
54
- function getRadianPosition(i, range, total) {
55
- return [getAngle(i, range, Math.sin, total), getAngle(i, range, Math.cos, total)];
61
+ function getRadianPosition(i, range, total, angleOffset) {
62
+ return [getBoxAxesValue(i, range, 'y', total, angleOffset), getBoxAxesValue(i, range, 'x', total, angleOffset)];
56
63
  }
57
64
 
58
- function getLabelDirection(i, total) {
59
- var angle = -Math.PI / 2 + i / total * (Math.PI * 2);
60
- return [Math.abs(angle) === Math.PI / 2 ? 'middle' : angle < Math.PI / 2 ? 'start' : 'end', angle === Math.PI / 2 ? 'mathematical' : angle === -Math.PI / 2 ? 'alphabetic' : 'middle'];
65
+ var getLabelXPlacement = function getLabelXPlacement(i, total, angleOffset) {
66
+ var angle = clampAngle(i / total * (Math.PI * 2) - angleOffset);
67
+ if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'middle';
68
+ if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'middle';
69
+ return angle < Math.PI ? 'start' : 'end';
70
+ };
71
+
72
+ var getLabelYPlacement = function getLabelYPlacement(i, total, angleOffset) {
73
+ var angle = clampAngle(i / total * (Math.PI * 2) - angleOffset);
74
+ if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'alphabetic';
75
+ if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'mathematical';
76
+ return 'middle';
77
+ };
78
+
79
+ function getLabelPlacement(i, total, angleOffset) {
80
+ return [getLabelXPlacement(i, total, angleOffset), getLabelYPlacement(i, total, angleOffset)];
61
81
  }
62
82
 
63
83
  function computeTextWidth(texts, textSize) {
@@ -105,25 +125,16 @@ function pieContains(_ref10, _ref11) {
105
125
 
106
126
  var distance = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
107
127
  if (distance > radius) return false;
108
- var angle = Math.atan2(y, x) + Math.PI / 2;
109
-
110
- if (angle < 0) {
111
- // angle from 0 to 6.28...
112
- angle += 2 * Math.PI;
113
- }
114
-
115
- if (startAngle < 0) {
116
- if (angle < endAngle) {
117
- angle += Math.abs(startAngle);
118
- } else {
119
- angle += Math.abs(startAngle) - Math.PI * 2;
120
- }
121
-
122
- endAngle += Math.abs(startAngle);
123
- startAngle = 0;
124
- }
125
-
126
- return angle > startAngle && angle < endAngle;
128
+ startAngle = clampAngle(startAngle);
129
+ endAngle = clampAngle(endAngle);
130
+ startAngle = startAngle < endAngle ? startAngle : startAngle - 2 * Math.PI;
131
+ var angle = clampAngle(Math.atan2(y, x) + Math.PI / 2);
132
+ var prevAngle = angle - Math.PI * 2;
133
+ var nextAngle = angle + Math.PI * 2;
134
+ if (angle > startAngle && angle < endAngle) return true;
135
+ if (prevAngle > startAngle && prevAngle < endAngle) return true;
136
+ if (nextAngle > startAngle && nextAngle < endAngle) return true;
137
+ return false;
127
138
  }
128
139
 
129
140
  export function getLabelOffsetPosition(xDirection, yDirection, width, height) {
@@ -201,7 +212,8 @@ var RadarRoot = /*#__PURE__*/function (_Component) {
201
212
  return {
202
213
  offset: this.offset,
203
214
  textSize: this.textSize,
204
- type: this.asProps.type
215
+ type: this.asProps.type,
216
+ angleOffset: this.asProps.angleOffset
205
217
  };
206
218
  }
207
219
  }, {
@@ -210,11 +222,13 @@ var RadarRoot = /*#__PURE__*/function (_Component) {
210
222
  var dataKey = _ref14.dataKey;
211
223
  var _this$asProps2 = this.asProps,
212
224
  data = _this$asProps2.data,
213
- scale = _this$asProps2.scale;
225
+ scale = _this$asProps2.scale,
226
+ angleOffset = _this$asProps2.angleOffset;
214
227
  return {
215
228
  offset: this.offset,
216
229
  data: data[dataKey] || [],
217
- scale: scale
230
+ scale: scale,
231
+ angleOffset: angleOffset
218
232
  };
219
233
  }
220
234
  }, {
@@ -223,7 +237,8 @@ var RadarRoot = /*#__PURE__*/function (_Component) {
223
237
  return {
224
238
  type: this.asProps.type,
225
239
  offset: this.offset,
226
- categories: this.asProps.data[this.categoriesKey]
240
+ categories: this.asProps.data[this.categoriesKey],
241
+ angleOffset: this.asProps.angleOffset
227
242
  };
228
243
  }
229
244
  }, {
@@ -280,7 +295,8 @@ _defineProperty(RadarRoot, "style", style);
280
295
  _defineProperty(RadarRoot, "enhance", [uniqueIDEnhancement()]);
281
296
 
282
297
  _defineProperty(RadarRoot, "defaultProps", {
283
- type: 'polygon'
298
+ type: 'polygon',
299
+ angleOffset: 0
284
300
  });
285
301
 
286
302
  var PolygonRoot = /*#__PURE__*/function (_Component2) {
@@ -303,14 +319,16 @@ var PolygonRoot = /*#__PURE__*/function (_Component2) {
303
319
  color = _this$asProps4.color,
304
320
  transparent = _this$asProps4.transparent,
305
321
  dataKey = _this$asProps4.dataKey,
306
- dataHintsHandler = _this$asProps4.dataHintsHandler;
322
+ dataHintsHandler = _this$asProps4.dataHintsHandler,
323
+ angleOffset = _this$asProps4.angleOffset;
307
324
  return {
308
325
  data: data,
309
326
  scale: scale,
310
327
  color: color,
311
328
  transparent: transparent,
312
329
  categoryKey: dataKey,
313
- dataHintsHandler: dataHintsHandler
330
+ dataHintsHandler: dataHintsHandler,
331
+ angleOffset: angleOffset
314
332
  };
315
333
  }
316
334
  }, {
@@ -360,13 +378,14 @@ _defineProperty(PolygonRoot, "defaultProps", function (_ref18) {
360
378
  _ref18$curve = _ref18.curve,
361
379
  curve = _ref18$curve === void 0 ? curveLinearClosed : _ref18$curve,
362
380
  size = _ref18.size,
363
- offset = _ref18.offset;
381
+ offset = _ref18.offset,
382
+ angleOffset = _ref18.angleOffset;
364
383
  scale.range([0, Math.min(size[0], size[1]) / 2 - offset]);
365
384
  return {
366
385
  d3: lineRadial().curve(curve).radius(function (d) {
367
386
  return scale(d || 0);
368
387
  }).angle(function (d, i, data) {
369
- return i / data.length * 2 * Math.PI;
388
+ return i / data.length * 2 * Math.PI - angleOffset;
370
389
  })
371
390
  };
372
391
  });
@@ -395,7 +414,8 @@ function PolygonDots(props) {
395
414
  data = props.data,
396
415
  scale = props.scale,
397
416
  transparent = props.transparent,
398
- categoryKey = props.categoryKey;
417
+ categoryKey = props.categoryKey,
418
+ angleOffset = props.angleOffset;
399
419
  return data.map(function (value, i) {
400
420
  var _ref4;
401
421
 
@@ -403,7 +423,7 @@ function PolygonDots(props) {
403
423
  var radius = scale(value);
404
424
  props.dataHintsHandler.describeGroupedValues(categoryKey, "".concat(categoryKey, ".").concat(i));
405
425
 
406
- var _getRadianPosition = getRadianPosition(i, radius, data.length),
426
+ var _getRadianPosition = getRadianPosition(i, radius, data.length, angleOffset),
407
427
  _getRadianPosition2 = _slicedToArray(_getRadianPosition, 2),
408
428
  cx = _getRadianPosition2[0],
409
429
  cy = _getRadianPosition2[1];
@@ -490,11 +510,13 @@ var AxisRoot = /*#__PURE__*/function (_Component3) {
490
510
  var _this$asProps8 = this.asProps,
491
511
  offset = _this$asProps8.offset,
492
512
  categories = _this$asProps8.categories,
493
- textSize = _this$asProps8.textSize;
513
+ textSize = _this$asProps8.textSize,
514
+ angleOffset = _this$asProps8.angleOffset;
494
515
  return {
495
516
  categories: categories,
496
517
  textSize: textSize,
497
- offset: offset - labelOffset
518
+ offset: offset - labelOffset,
519
+ angleOffset: angleOffset
498
520
  };
499
521
  }
500
522
  }, {
@@ -521,7 +543,8 @@ var AxisRoot = /*#__PURE__*/function (_Component3) {
521
543
  categories = _this$asProps9.categories,
522
544
  size = _this$asProps9.size,
523
545
  offset = _this$asProps9.offset,
524
- type = _this$asProps9.type;
546
+ type = _this$asProps9.type,
547
+ angleOffset = _this$asProps9.angleOffset;
525
548
  var activeLineIndex = this.state.activeLineIndex;
526
549
  var radius = Math.min(size[0], size[1]) / 2 - offset;
527
550
  var total = categories.length;
@@ -534,7 +557,7 @@ var AxisRoot = /*#__PURE__*/function (_Component3) {
534
557
  "render": "path",
535
558
  "d": this.createLineRadial(radius, total)(categories)
536
559
  })), categories.map(function (category, i) {
537
- var _getRadianPosition3 = getRadianPosition(i, radius, total),
560
+ var _getRadianPosition3 = getRadianPosition(i, radius, total, angleOffset),
538
561
  _getRadianPosition4 = _slicedToArray(_getRadianPosition3, 2),
539
562
  x = _getRadianPosition4[0],
540
563
  y = _getRadianPosition4[1];
@@ -608,18 +631,19 @@ function AxisLabels(props) {
608
631
  textSize = props.textSize,
609
632
  size = props.size,
610
633
  offset = props.offset,
611
- categories = props.categories;
634
+ categories = props.categories,
635
+ angleOffset = props.angleOffset;
612
636
  var radius = Math.min(size[0], size[1]) / 2 - offset;
613
637
  return categories.map(function (category, i) {
614
- var _getRadianPosition5 = getRadianPosition(i, radius, categories.length),
638
+ var _getRadianPosition5 = getRadianPosition(i, radius, categories.length, angleOffset),
615
639
  _getRadianPosition6 = _slicedToArray(_getRadianPosition5, 2),
616
640
  x = _getRadianPosition6[0],
617
641
  y = _getRadianPosition6[1];
618
642
 
619
- var _getLabelDirection = getLabelDirection(i, categories.length),
620
- _getLabelDirection2 = _slicedToArray(_getLabelDirection, 2),
621
- xDirection = _getLabelDirection2[0],
622
- yDirection = _getLabelDirection2[1];
643
+ var _getLabelPlacement = getLabelPlacement(i, categories.length, angleOffset),
644
+ _getLabelPlacement2 = _slicedToArray(_getLabelPlacement, 2),
645
+ xDirection = _getLabelPlacement2[0],
646
+ yDirection = _getLabelPlacement2[1];
623
647
 
624
648
  if (typeof category === 'string') {
625
649
  var _ref7;
@@ -751,24 +775,25 @@ var Hover = /*#__PURE__*/function (_Component4) {
751
775
  var _this$asProps10 = this.asProps,
752
776
  categories = _this$asProps10.categories,
753
777
  size = _this$asProps10.size,
754
- offset = _this$asProps10.offset;
778
+ offset = _this$asProps10.offset,
779
+ angleOffset = _this$asProps10.angleOffset;
755
780
  var total = categories.length;
756
781
  var diam = Math.min(size[0], size[1]);
757
782
  var radius = diam / 2 - offset;
758
783
  var prevIndex = (index - 1 + total) % total;
759
784
  var nextIndex = (index + 1 + total) % total;
760
785
 
761
- var _getRadianPosition7 = getRadianPosition(prevIndex, radius, total),
786
+ var _getRadianPosition7 = getRadianPosition(prevIndex, radius, total, angleOffset),
762
787
  _getRadianPosition8 = _slicedToArray(_getRadianPosition7, 2),
763
788
  prevX1 = _getRadianPosition8[0],
764
789
  prevY1 = _getRadianPosition8[1];
765
790
 
766
- var _getRadianPosition9 = getRadianPosition(index, radius, total),
791
+ var _getRadianPosition9 = getRadianPosition(index, radius, total, angleOffset),
767
792
  _getRadianPosition10 = _slicedToArray(_getRadianPosition9, 2),
768
793
  x = _getRadianPosition10[0],
769
794
  y = _getRadianPosition10[1];
770
795
 
771
- var _getRadianPosition11 = getRadianPosition(nextIndex, radius, total),
796
+ var _getRadianPosition11 = getRadianPosition(nextIndex, radius, total, angleOffset),
772
797
  _getRadianPosition12 = _slicedToArray(_getRadianPosition11, 2),
773
798
  nextX1 = _getRadianPosition12[0],
774
799
  nextY1 = _getRadianPosition12[1];
@@ -781,10 +806,11 @@ var Hover = /*#__PURE__*/function (_Component4) {
781
806
  var _this$asProps11 = this.asProps,
782
807
  categories = _this$asProps11.categories,
783
808
  size = _this$asProps11.size,
784
- offset = _this$asProps11.offset;
809
+ offset = _this$asProps11.offset,
810
+ angleOffset = _this$asProps11.angleOffset;
785
811
  var angle = Math.PI * 2 / categories.length;
786
812
  var radius = Math.min(size[0], size[1]) / 2 - offset;
787
- return [index * angle - angle / 2, (index + 1) * angle - angle / 2, radius];
813
+ return [index * angle - angle / 2 - angleOffset, (index + 1) * angle - angle / 2 - angleOffset, radius];
788
814
  }
789
815
  }, {
790
816
  key: "getIndex",
@@ -1 +1 @@
1
- {"version":3,"file":"Radar.js","names":["React","cloneElement","Component","sstyled","uniqueIDEnhancement","getOriginChildren","trottle","canUseDOM","polygonContains","line","lineRadial","curveLinearClosed","arc","createElement","CONSTANT","eventToPoint","measureText","getAngle","i","range","func","total","angle","Math","PI","getRadianPosition","sin","cos","getLabelDirection","abs","computeTextWidth","texts","textSize","defaultWidth","defaultHeight","widths","map","text","isValidElement","max","props","width","height","getTicks","tickSize","radius","ticks","trunc","Array","keys","reduce","t","push","length","pieContains","startAngle","endAngle","x","y","distance","sqrt","atan2","getLabelOffsetPosition","xDirection","yDirection","xOffset","yOffset","MINIMUM_OFFSET","RadarRoot","asProps","id","uid","offset","computeOffset","type","dataKey","data","scale","categories","categoriesKey","SRadar","Element","Children","style","size","dataHintsHandler","establishDataType","toArray","forEach","child","Radar","Axis","undefined","PolygonRoot","color","transparent","categoryKey","d3","SPolygon","styles","fill","curve","min","d","PolygonLine","SPolygonLine","PolygonDots","SPolygonDot","value","describeGroupedValues","cx","cy","AxisRoot","activeLineIndex","visible","index","setState","createLineRadial","labelOffset","eventEmitter","unsubscribeTooltipVisible","subscribe","handlerTooltipVisible","SAxis","state","category","cn","active","className","AxisTicks","SAxisTick","tick","AxisLabels","SAxisLabel","labelKey","lines","split","lineText","lineIndex","key","Hover","document","e","rootRef","point","current","diam","centerX","centerY","clientX","clientY","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","getIndex","emit","top","right","bottom","left","prevIndex","nextIndex","prevX1","prevY1","nextX1","nextY1","findIndex","c","getPie","getPolygon","unsubscribeMouseMoveRoot","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","SPieRect","circle","innerRadius","outerRadius","Ticks","Labels","Polygon","Line","Dots"],"sources":["../../src/Radar.jsx"],"sourcesContent":["import React, { cloneElement } from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { polygonContains } from 'd3-polygon';\nimport { line, lineRadial, curveLinearClosed, arc } from 'd3-shape';\nimport createElement from './createElement';\nimport { CONSTANT, eventToPoint, measureText } from './utils';\n\nimport style from './style/radar.shadow.css';\n\nfunction getAngle(i, range, func, total) {\n const angle = ((total - i) * 2 * Math.PI) / total;\n return range * (1 - func(angle)) - range;\n}\n\nfunction getRadianPosition(i, range, total) {\n return [getAngle(i, range, Math.sin, total), getAngle(i, range, Math.cos, total)];\n}\n\nfunction getLabelDirection(i, total) {\n const angle = -Math.PI / 2 + (i / total) * (Math.PI * 2);\n return [\n Math.abs(angle) === Math.PI / 2 ? 'middle' : angle < Math.PI / 2 ? 'start' : 'end',\n angle === Math.PI / 2 ? 'mathematical' : angle === -Math.PI / 2 ? 'alphabetic' : 'middle',\n ];\n}\n\nfunction computeTextWidth(texts, textSize, defaultWidth = 50, defaultHeight = 20) {\n const widths = texts.map((text) => {\n if (typeof text === 'string') {\n return measureText(text, textSize);\n }\n if (React.isValidElement(text)) {\n // @ts-ignore\n return Math.max(text.props?.width || defaultWidth, text.props?.height || defaultHeight);\n }\n return defaultWidth;\n });\n return Math.max(...widths);\n}\n\nfunction getTicks(tickSize, radius) {\n let ticks = 0;\n while (Math.trunc(radius / (tickSize / 2)) > ticks) {\n ticks += 1;\n }\n return [...Array(ticks).keys()].reduce((ticks, t, i, total) => {\n if (i) ticks.push(i / total.length);\n return ticks;\n }, []);\n}\n\nfunction pieContains([startAngle, endAngle, radius], [x, y]) {\n const distance = Math.sqrt(x ** 2 + y ** 2);\n if (distance > radius) return false;\n\n let angle = Math.atan2(y, x) + Math.PI / 2;\n if (angle < 0) {\n // angle from 0 to 6.28...\n angle += 2 * Math.PI;\n }\n if (startAngle < 0) {\n if (angle < endAngle) {\n angle += Math.abs(startAngle);\n } else {\n angle += Math.abs(startAngle) - Math.PI * 2;\n }\n endAngle += Math.abs(startAngle);\n startAngle = 0;\n }\n return angle > startAngle && angle < endAngle;\n}\n\nexport function getLabelOffsetPosition(xDirection, yDirection, width, height) {\n let xOffset = 0;\n let yOffset = 0;\n switch (`${xDirection}-${yDirection}`) {\n case 'middle-alphabetic':\n yOffset = height / 2;\n break;\n case 'start-middle':\n xOffset = -width / 2;\n break;\n case 'middle-mathematical':\n yOffset = -height / 2;\n break;\n case 'end-middle':\n xOffset = width / 2;\n break;\n }\n return [xOffset + width / 2, yOffset + height / 2];\n}\n\nconst MINIMUM_OFFSET = 5;\n\nclass RadarRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n computeOffset = 0;\n\n categoriesKey = null;\n\n static defaultProps = {\n type: 'polygon',\n };\n\n get id() {\n const { id, uid } = this.asProps;\n return id || uid;\n }\n\n get offset() {\n const { offset } = this.asProps;\n return offset ?? this.computeOffset;\n }\n\n get textSize() {\n const { textSize } = this.asProps;\n return textSize ?? 12;\n }\n\n getAxisProps() {\n return {\n offset: this.offset,\n textSize: this.textSize,\n type: this.asProps.type,\n };\n }\n\n getPolygonProps({ dataKey }) {\n const { data, scale } = this.asProps;\n\n return {\n offset: this.offset,\n data: data[dataKey] || [],\n scale,\n };\n }\n\n getHoverProps() {\n return {\n type: this.asProps.type,\n offset: this.offset,\n categories: this.asProps.data[this.categoriesKey],\n };\n }\n\n render() {\n const SRadar = this.Element;\n const { Children, style, size, data, offset } = this.asProps;\n const [width, height] = size;\n\n this.asProps.dataHintsHandler.establishDataType('indexed-groups');\n\n let dataKey;\n React.Children.toArray(getOriginChildren(Children)).forEach((child) => {\n if (React.isValidElement(child) && child.type === Radar.Axis) {\n dataKey = child.props.dataKey;\n }\n });\n if (dataKey) {\n if (offset === undefined) {\n // +5 because font might not be loaded and just in case)\n this.computeOffset = computeTextWidth(data[dataKey], this.textSize) + MINIMUM_OFFSET;\n }\n this.categoriesKey = dataKey;\n }\n\n return sstyled(style)(\n <SRadar\n aria-hidden\n id={this.id}\n render=\"g\"\n childrenPosition=\"inside\"\n transform={`translate(${width / 2},${height / 2})`}\n />,\n );\n }\n}\n\nclass PolygonRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ scale, curve = curveLinearClosed, size, offset }) => {\n scale.range([0, Math.min(size[0], size[1]) / 2 - offset]);\n\n return {\n d3: lineRadial()\n .curve(curve)\n .radius((d) => {\n return scale(d || 0);\n })\n .angle((d, i, data) => {\n return (i / data.length) * 2 * Math.PI;\n }),\n };\n };\n\n getDotsProps() {\n const { data, scale, color, transparent, dataKey, dataHintsHandler } = this.asProps;\n return {\n data,\n scale,\n color,\n transparent,\n categoryKey: dataKey,\n dataHintsHandler,\n };\n }\n\n getLineProps() {\n const { d3, data, color, transparent } = this.asProps;\n return {\n data,\n color,\n transparent,\n d3,\n };\n }\n\n render() {\n const { Element: SPolygon, styles, d3, data, color, fill } = this.asProps;\n return sstyled(styles)(<SPolygon render=\"path\" d={d3(data)} color={fill || color} />);\n }\n}\n\nfunction PolygonLine(props) {\n const { Element: SPolygonLine, styles, d3, color, data, transparent } = props;\n return sstyled(styles)(\n <SPolygonLine render=\"path\" d={d3(data)} color={color} transparent={transparent} />,\n );\n}\n\nfunction PolygonDots(props) {\n const { Element: SPolygonDot, styles, color, data, scale, transparent, categoryKey } = props;\n return data.map((value, i) => {\n if (value === null || value === undefined) return;\n const radius = scale(value);\n props.dataHintsHandler.describeGroupedValues(categoryKey, `${categoryKey}.${i}`);\n const [cx, cy] = getRadianPosition(i, radius, data.length);\n return sstyled(styles)(\n <SPolygonDot\n key={i}\n render=\"circle\"\n cx={cx}\n cy={cy}\n color={color}\n transparent={transparent}\n />,\n );\n });\n}\n\nclass AxisRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ data, dataKey }) => {\n const categories = data[dataKey];\n return {\n categories,\n };\n };\n\n unsubscribeTooltipVisible = null;\n\n state = {\n activeLineIndex: null,\n };\n\n createLineRadial(radius, total) {\n return lineRadial()\n .curve(curveLinearClosed)\n .radius(() => {\n return radius;\n })\n .angle((d, i) => {\n return (i / total) * 2 * Math.PI;\n });\n }\n\n getTicksProps({ tickSize = 100 }) {\n const { data, offset, categories, size, type } = this.asProps;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return {\n type,\n data,\n categories,\n ticks: getTicks(tickSize, radius),\n offset,\n d3: this.createLineRadial(radius, categories.length),\n };\n }\n\n getLabelsProps({ labelOffset = 10 }) {\n const { offset, categories, textSize } = this.asProps;\n return {\n categories,\n textSize,\n offset: offset - labelOffset,\n };\n }\n\n handlerTooltipVisible = (visible, { index }) => {\n this.setState({\n activeLineIndex: index,\n });\n };\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeTooltipVisible = eventEmitter.subscribe(\n 'onTooltipVisible',\n this.handlerTooltipVisible,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeTooltipVisible) {\n this.unsubscribeTooltipVisible();\n }\n }\n\n render() {\n const { Element: SAxis, styles, categories, size, offset, type } = this.asProps;\n const { activeLineIndex } = this.state;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n const total = categories.length;\n\n return sstyled(styles)(\n <>\n {type === 'circle' ? (\n <SAxis render=\"circle\" cx={0} cy={0} r={radius} />\n ) : (\n <SAxis render=\"path\" d={this.createLineRadial(radius, total)(categories)} />\n )}\n {categories.map((category, i) => {\n const [x, y] = getRadianPosition(i, radius, total);\n const { className } = sstyled(styles).cn('SAxisLine', {\n active: activeLineIndex === i,\n });\n return <line key={i} x1={0} y1={0} x2={x} y2={y} className={className} />;\n })}\n </>,\n );\n }\n}\n\nfunction AxisTicks(props) {\n const { Element: SAxisTick, styles, size, ticks, d3, categories, offset, type } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return ticks.map((tick, i) => {\n d3.radius(() => radius * tick);\n return sstyled(styles)(\n type === 'circle' ? (\n <SAxisTick key={i} render=\"circle\" cx={0} cy={0} r={radius * tick} />\n ) : (\n <SAxisTick render=\"path\" key={i} d={d3(categories)} />\n ),\n );\n });\n}\n\nfunction AxisLabels(props) {\n const { Element: SAxisLabel, styles, textSize, size, offset, categories } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return categories.map((category, i) => {\n const [x, y] = getRadianPosition(i, radius, categories.length);\n const [xDirection, yDirection] = getLabelDirection(i, categories.length);\n if (typeof category === 'string') {\n props.dataHintsHandler.labelKey('value', i, category);\n\n const lines = category.split('\\n');\n return sstyled(styles)(\n <SAxisLabel\n key={i}\n render=\"text\"\n childrenPosition=\"inside\"\n x={x}\n y={y}\n xDirection={xDirection}\n yDirection={yDirection}\n >\n {lines.map((lineText, lineIndex) => (\n <tspan\n x={x}\n y={y + (lineIndex - (lines.length - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </tspan>\n ))}\n </SAxisLabel>,\n );\n }\n if (React.isValidElement(category)) {\n const { width = 0, height = 0 } = category?.props;\n const [xOffset, yOffset] = getLabelOffsetPosition(xDirection, yDirection, width, height);\n return cloneElement(category, {\n key: i,\n x: x - xOffset,\n y: y - yOffset,\n });\n }\n });\n}\n\nclass Hover extends Component {\n state = {\n index: null,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n unsubscribeMouseMoveRoot = null;\n unsubscribeMouseLeaveRoot = null;\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n getPolygon(index) {\n const { categories, size, offset } = this.asProps;\n const total = categories.length;\n const diam = Math.min(size[0], size[1]);\n const radius = diam / 2 - offset;\n const prevIndex = (index - 1 + total) % total;\n const nextIndex = (index + 1 + total) % total;\n const [prevX1, prevY1] = getRadianPosition(prevIndex, radius, total);\n const [x, y] = getRadianPosition(index, radius, total);\n const [nextX1, nextY1] = getRadianPosition(nextIndex, radius, total);\n return [\n [0, 0],\n [(prevX1 + x) / 2, (prevY1 + y) / 2],\n [x, y],\n [(nextX1 + x) / 2, (nextY1 + y) / 2],\n ];\n }\n\n getPie(index) {\n const { categories, size, offset } = this.asProps;\n const angle = (Math.PI * 2) / categories.length;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return [index * angle - angle / 2, (index + 1) * angle - angle / 2, radius];\n }\n\n getIndex(point) {\n const { categories, type } = this.asProps;\n let index;\n if (type === 'circle') {\n index = categories.findIndex((c, i) => pieContains(this.getPie(i), point));\n } else {\n index = categories.findIndex((c, i) => polygonContains(this.getPolygon(i), point));\n }\n return index === -1 ? null : index;\n }\n\n handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, size, rootRef } = this.asProps;\n const point = eventToPoint(e, rootRef.current);\n const diam = Math.min(size[0], size[1]);\n const centerX = point[0] - diam / 2;\n const centerY = point[1] - diam / 2;\n const { clientX, clientY } = e;\n // @ts-ignore\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(\n clientX,\n clientY,\n );\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n\n const index = this.getIndex([centerX, centerY]);\n\n this.setState(\n {\n index,\n },\n () => {\n eventEmitter.emit('onTooltipVisible', index !== null, { index }, this.virtualElement);\n },\n );\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n this.setState(\n {\n index: null,\n },\n () => {\n this.asProps.eventEmitter.emit('onTooltipVisible', false, { index: null });\n },\n );\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveRoot', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n\n render() {\n const { styles, type } = this.asProps;\n const { index } = this.state;\n const SPieRect = this.Element;\n\n if (index !== null) {\n if (type === 'circle') {\n const [startAngle, endAngle, radius] = this.getPie(index);\n const circle = arc()\n .innerRadius(0)\n .outerRadius(radius)\n .startAngle(startAngle)\n .endAngle(endAngle);\n return sstyled(styles)(\n <SPieRect\n render=\"path\"\n // @ts-ignore\n d={circle()}\n />,\n );\n } else {\n return sstyled(styles)(\n <SPieRect\n render=\"path\"\n // @ts-ignore\n d={line()(this.getPolygon(index))}\n />,\n );\n }\n }\n\n return null;\n }\n}\n\nconst Axis = createElement(AxisRoot, {\n Ticks: AxisTicks,\n Labels: AxisLabels,\n});\n\nconst Polygon = createElement(PolygonRoot, {\n Line: PolygonLine,\n Dots: PolygonDots,\n});\n\nconst Radar = createElement(RadarRoot, {\n Axis,\n Polygon,\n Hover,\n});\n\nexport default Radar;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Radar.js","names":["React","cloneElement","Component","sstyled","uniqueIDEnhancement","getOriginChildren","trottle","canUseDOM","polygonContains","line","lineRadial","curveLinearClosed","arc","createElement","CONSTANT","eventToPoint","measureText","clampAngle","angle","Math","PI","getBoxAxesValue","i","range","axes","total","angleOffset","func","sin","cos","getRadianPosition","getLabelXPlacement","getLabelYPlacement","getLabelPlacement","computeTextWidth","texts","textSize","defaultWidth","defaultHeight","widths","map","text","isValidElement","max","props","width","height","getTicks","tickSize","radius","ticks","trunc","Array","keys","reduce","t","push","length","pieContains","startAngle","endAngle","x","y","distance","sqrt","atan2","prevAngle","nextAngle","getLabelOffsetPosition","xDirection","yDirection","xOffset","yOffset","MINIMUM_OFFSET","RadarRoot","asProps","id","uid","offset","computeOffset","type","dataKey","data","scale","categories","categoriesKey","SRadar","Element","Children","style","size","dataHintsHandler","establishDataType","toArray","forEach","child","Radar","Axis","undefined","PolygonRoot","color","transparent","categoryKey","d3","SPolygon","styles","fill","curve","min","d","PolygonLine","SPolygonLine","PolygonDots","SPolygonDot","value","describeGroupedValues","cx","cy","AxisRoot","activeLineIndex","visible","index","setState","createLineRadial","labelOffset","eventEmitter","unsubscribeTooltipVisible","subscribe","handlerTooltipVisible","SAxis","state","category","cn","active","className","AxisTicks","SAxisTick","tick","AxisLabels","SAxisLabel","labelKey","lines","split","lineText","lineIndex","key","Hover","document","e","rootRef","point","current","diam","centerX","centerY","clientX","clientY","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","getIndex","emit","top","right","bottom","left","prevIndex","nextIndex","prevX1","prevY1","nextX1","nextY1","findIndex","c","getPie","getPolygon","unsubscribeMouseMoveRoot","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","SPieRect","circle","innerRadius","outerRadius","Ticks","Labels","Polygon","Line","Dots"],"sources":["../../src/Radar.jsx"],"sourcesContent":["import React, { cloneElement } from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { polygonContains } from 'd3-polygon';\nimport { line, lineRadial, curveLinearClosed, arc } from 'd3-shape';\nimport createElement from './createElement';\nimport { CONSTANT, eventToPoint, measureText } from './utils';\n\nimport style from './style/radar.shadow.css';\n\nconst clampAngle = (angle) => {\n angle = angle % (2 * Math.PI);\n if (angle < 0) angle += 2 * Math.PI;\n return angle;\n};\n\nfunction getBoxAxesValue(i, range, axes, total, angleOffset) {\n const func = axes === 'y' ? Math.sin : Math.cos;\n\n const angle = clampAngle(((total - i) * 2 * Math.PI) / total + angleOffset);\n return range * (1 - func(angle)) - range;\n}\n\nfunction getRadianPosition(i, range, total, angleOffset) {\n return [\n getBoxAxesValue(i, range, 'y', total, angleOffset),\n getBoxAxesValue(i, range, 'x', total, angleOffset),\n ];\n}\n\nconst getLabelXPlacement = (i, total, angleOffset) => {\n const angle = clampAngle((i / total) * (Math.PI * 2) - angleOffset);\n if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'middle';\n if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'middle';\n\n return angle < Math.PI ? 'start' : 'end';\n};\nconst getLabelYPlacement = (i, total, angleOffset) => {\n const angle = clampAngle((i / total) * (Math.PI * 2) - angleOffset);\n if (angle >= Math.PI + Math.PI * (8 / 9) || angle <= Math.PI * (1 / 9)) return 'alphabetic';\n if (angle >= Math.PI * (8 / 9) && angle <= Math.PI + Math.PI * (1 / 9)) return 'mathematical';\n\n return 'middle';\n};\n\nfunction getLabelPlacement(i, total, angleOffset) {\n return [getLabelXPlacement(i, total, angleOffset), getLabelYPlacement(i, total, angleOffset)];\n}\n\nfunction computeTextWidth(texts, textSize, defaultWidth = 50, defaultHeight = 20) {\n const widths = texts.map((text) => {\n if (typeof text === 'string') {\n return measureText(text, textSize);\n }\n if (React.isValidElement(text)) {\n // @ts-ignore\n return Math.max(text.props?.width || defaultWidth, text.props?.height || defaultHeight);\n }\n return defaultWidth;\n });\n return Math.max(...widths);\n}\n\nfunction getTicks(tickSize, radius) {\n let ticks = 0;\n while (Math.trunc(radius / (tickSize / 2)) > ticks) {\n ticks += 1;\n }\n return [...Array(ticks).keys()].reduce((ticks, t, i, total) => {\n if (i) ticks.push(i / total.length);\n return ticks;\n }, []);\n}\n\nfunction pieContains([startAngle, endAngle, radius], [x, y]) {\n const distance = Math.sqrt(x ** 2 + y ** 2);\n if (distance > radius) return false;\n\n startAngle = clampAngle(startAngle);\n endAngle = clampAngle(endAngle);\n startAngle = startAngle < endAngle ? startAngle : startAngle - 2 * Math.PI;\n\n const angle = clampAngle(Math.atan2(y, x) + Math.PI / 2);\n const prevAngle = angle - Math.PI * 2;\n const nextAngle = angle + Math.PI * 2;\n\n if (angle > startAngle && angle < endAngle) return true;\n if (prevAngle > startAngle && prevAngle < endAngle) return true;\n if (nextAngle > startAngle && nextAngle < endAngle) return true;\n return false;\n}\n\nexport function getLabelOffsetPosition(xDirection, yDirection, width, height) {\n let xOffset = 0;\n let yOffset = 0;\n switch (`${xDirection}-${yDirection}`) {\n case 'middle-alphabetic':\n yOffset = height / 2;\n break;\n case 'start-middle':\n xOffset = -width / 2;\n break;\n case 'middle-mathematical':\n yOffset = -height / 2;\n break;\n case 'end-middle':\n xOffset = width / 2;\n break;\n }\n return [xOffset + width / 2, yOffset + height / 2];\n}\n\nconst MINIMUM_OFFSET = 5;\n\nclass RadarRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n computeOffset = 0;\n\n categoriesKey = null;\n\n static defaultProps = {\n type: 'polygon',\n angleOffset: 0,\n };\n\n get id() {\n const { id, uid } = this.asProps;\n return id || uid;\n }\n\n get offset() {\n const { offset } = this.asProps;\n return offset ?? this.computeOffset;\n }\n\n get textSize() {\n const { textSize } = this.asProps;\n return textSize ?? 12;\n }\n\n getAxisProps() {\n return {\n offset: this.offset,\n textSize: this.textSize,\n type: this.asProps.type,\n angleOffset: this.asProps.angleOffset,\n };\n }\n\n getPolygonProps({ dataKey }) {\n const { data, scale, angleOffset } = this.asProps;\n\n return {\n offset: this.offset,\n data: data[dataKey] || [],\n scale,\n angleOffset,\n };\n }\n\n getHoverProps() {\n return {\n type: this.asProps.type,\n offset: this.offset,\n categories: this.asProps.data[this.categoriesKey],\n angleOffset: this.asProps.angleOffset,\n };\n }\n\n render() {\n const SRadar = this.Element;\n const { Children, style, size, data, offset } = this.asProps;\n const [width, height] = size;\n\n this.asProps.dataHintsHandler.establishDataType('indexed-groups');\n\n let dataKey;\n React.Children.toArray(getOriginChildren(Children)).forEach((child) => {\n if (React.isValidElement(child) && child.type === Radar.Axis) {\n dataKey = child.props.dataKey;\n }\n });\n if (dataKey) {\n if (offset === undefined) {\n // +5 because font might not be loaded and just in case)\n this.computeOffset = computeTextWidth(data[dataKey], this.textSize) + MINIMUM_OFFSET;\n }\n this.categoriesKey = dataKey;\n }\n\n return sstyled(style)(\n <SRadar\n aria-hidden\n id={this.id}\n render=\"g\"\n childrenPosition=\"inside\"\n transform={`translate(${width / 2},${height / 2})`}\n />,\n );\n }\n}\n\nclass PolygonRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ scale, curve = curveLinearClosed, size, offset, angleOffset }) => {\n scale.range([0, Math.min(size[0], size[1]) / 2 - offset]);\n\n return {\n d3: lineRadial()\n .curve(curve)\n .radius((d) => {\n return scale(d || 0);\n })\n .angle((d, i, data) => {\n return (i / data.length) * 2 * Math.PI - angleOffset;\n }),\n };\n };\n\n getDotsProps() {\n const { data, scale, color, transparent, dataKey, dataHintsHandler, angleOffset } =\n this.asProps;\n return {\n data,\n scale,\n color,\n transparent,\n categoryKey: dataKey,\n dataHintsHandler,\n angleOffset,\n };\n }\n\n getLineProps() {\n const { d3, data, color, transparent } = this.asProps;\n return {\n data,\n color,\n transparent,\n d3,\n };\n }\n\n render() {\n const { Element: SPolygon, styles, d3, data, color, fill } = this.asProps;\n return sstyled(styles)(<SPolygon render=\"path\" d={d3(data)} color={fill || color} />);\n }\n}\n\nfunction PolygonLine(props) {\n const { Element: SPolygonLine, styles, d3, color, data, transparent } = props;\n return sstyled(styles)(\n <SPolygonLine render=\"path\" d={d3(data)} color={color} transparent={transparent} />,\n );\n}\n\nfunction PolygonDots(props) {\n const {\n Element: SPolygonDot,\n styles,\n color,\n data,\n scale,\n transparent,\n categoryKey,\n angleOffset,\n } = props;\n return data.map((value, i) => {\n if (value === null || value === undefined) return;\n const radius = scale(value);\n props.dataHintsHandler.describeGroupedValues(categoryKey, `${categoryKey}.${i}`);\n const [cx, cy] = getRadianPosition(i, radius, data.length, angleOffset);\n return sstyled(styles)(\n <SPolygonDot\n key={i}\n render=\"circle\"\n cx={cx}\n cy={cy}\n color={color}\n transparent={transparent}\n />,\n );\n });\n}\n\nclass AxisRoot extends Component {\n static displayName = 'Polygon';\n static style = style;\n\n static defaultProps = ({ data, dataKey }) => {\n const categories = data[dataKey];\n return {\n categories,\n };\n };\n\n unsubscribeTooltipVisible = null;\n\n state = {\n activeLineIndex: null,\n };\n\n createLineRadial(radius, total) {\n return lineRadial()\n .curve(curveLinearClosed)\n .radius(() => {\n return radius;\n })\n .angle((d, i) => {\n return (i / total) * 2 * Math.PI;\n });\n }\n\n getTicksProps({ tickSize = 100 }) {\n const { data, offset, categories, size, type } = this.asProps;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return {\n type,\n data,\n categories,\n ticks: getTicks(tickSize, radius),\n offset,\n d3: this.createLineRadial(radius, categories.length),\n };\n }\n\n getLabelsProps({ labelOffset = 10 }) {\n const { offset, categories, textSize, angleOffset } = this.asProps;\n return {\n categories,\n textSize,\n offset: offset - labelOffset,\n angleOffset,\n };\n }\n\n handlerTooltipVisible = (visible, { index }) => {\n this.setState({\n activeLineIndex: index,\n });\n };\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeTooltipVisible = eventEmitter.subscribe(\n 'onTooltipVisible',\n this.handlerTooltipVisible,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeTooltipVisible) {\n this.unsubscribeTooltipVisible();\n }\n }\n\n render() {\n const { Element: SAxis, styles, categories, size, offset, type, angleOffset } = this.asProps;\n const { activeLineIndex } = this.state;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n const total = categories.length;\n\n return sstyled(styles)(\n <>\n {type === 'circle' ? (\n <SAxis render=\"circle\" cx={0} cy={0} r={radius} />\n ) : (\n <SAxis render=\"path\" d={this.createLineRadial(radius, total)(categories)} />\n )}\n {categories.map((category, i) => {\n const [x, y] = getRadianPosition(i, radius, total, angleOffset);\n const { className } = sstyled(styles).cn('SAxisLine', {\n active: activeLineIndex === i,\n });\n return <line key={i} x1={0} y1={0} x2={x} y2={y} className={className} />;\n })}\n </>,\n );\n }\n}\n\nfunction AxisTicks(props) {\n const { Element: SAxisTick, styles, size, ticks, d3, categories, offset, type } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return ticks.map((tick, i) => {\n d3.radius(() => radius * tick);\n return sstyled(styles)(\n type === 'circle' ? (\n <SAxisTick key={i} render=\"circle\" cx={0} cy={0} r={radius * tick} />\n ) : (\n <SAxisTick render=\"path\" key={i} d={d3(categories)} />\n ),\n );\n });\n}\n\nfunction AxisLabels(props) {\n const { Element: SAxisLabel, styles, textSize, size, offset, categories, angleOffset } = props;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n\n return categories.map((category, i) => {\n const [x, y] = getRadianPosition(i, radius, categories.length, angleOffset);\n const [xDirection, yDirection] = getLabelPlacement(i, categories.length, angleOffset);\n if (typeof category === 'string') {\n props.dataHintsHandler.labelKey('value', i, category);\n\n const lines = category.split('\\n');\n return sstyled(styles)(\n <SAxisLabel\n key={i}\n render=\"text\"\n childrenPosition=\"inside\"\n x={x}\n y={y}\n xDirection={xDirection}\n yDirection={yDirection}\n >\n {lines.map((lineText, lineIndex) => (\n <tspan\n x={x}\n y={y + (lineIndex - (lines.length - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </tspan>\n ))}\n </SAxisLabel>,\n );\n }\n if (React.isValidElement(category)) {\n const { width = 0, height = 0 } = category?.props;\n const [xOffset, yOffset] = getLabelOffsetPosition(xDirection, yDirection, width, height);\n return cloneElement(category, {\n key: i,\n x: x - xOffset,\n y: y - yOffset,\n });\n }\n });\n}\n\nclass Hover extends Component {\n state = {\n index: null,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n unsubscribeMouseMoveRoot = null;\n unsubscribeMouseLeaveRoot = null;\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n getPolygon(index) {\n const { categories, size, offset, angleOffset } = this.asProps;\n const total = categories.length;\n const diam = Math.min(size[0], size[1]);\n const radius = diam / 2 - offset;\n const prevIndex = (index - 1 + total) % total;\n const nextIndex = (index + 1 + total) % total;\n const [prevX1, prevY1] = getRadianPosition(prevIndex, radius, total, angleOffset);\n const [x, y] = getRadianPosition(index, radius, total, angleOffset);\n const [nextX1, nextY1] = getRadianPosition(nextIndex, radius, total, angleOffset);\n return [\n [0, 0],\n [(prevX1 + x) / 2, (prevY1 + y) / 2],\n [x, y],\n [(nextX1 + x) / 2, (nextY1 + y) / 2],\n ];\n }\n\n getPie(index) {\n const { categories, size, offset, angleOffset } = this.asProps;\n const angle = (Math.PI * 2) / categories.length;\n const radius = Math.min(size[0], size[1]) / 2 - offset;\n return [\n index * angle - angle / 2 - angleOffset,\n (index + 1) * angle - angle / 2 - angleOffset,\n radius,\n ];\n }\n\n getIndex(point) {\n const { categories, type } = this.asProps;\n let index;\n if (type === 'circle') {\n index = categories.findIndex((c, i) => pieContains(this.getPie(i), point));\n } else {\n index = categories.findIndex((c, i) => polygonContains(this.getPolygon(i), point));\n }\n return index === -1 ? null : index;\n }\n\n handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, size, rootRef } = this.asProps;\n const point = eventToPoint(e, rootRef.current);\n const diam = Math.min(size[0], size[1]);\n const centerX = point[0] - diam / 2;\n const centerY = point[1] - diam / 2;\n const { clientX, clientY } = e;\n // @ts-ignore\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(\n clientX,\n clientY,\n );\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n\n const index = this.getIndex([centerX, centerY]);\n\n this.setState(\n {\n index,\n },\n () => {\n eventEmitter.emit('onTooltipVisible', index !== null, { index }, this.virtualElement);\n },\n );\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n this.setState(\n {\n index: null,\n },\n () => {\n this.asProps.eventEmitter.emit('onTooltipVisible', false, { index: null });\n },\n );\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveRoot', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n\n render() {\n const { styles, type } = this.asProps;\n const { index } = this.state;\n const SPieRect = this.Element;\n\n if (index !== null) {\n if (type === 'circle') {\n const [startAngle, endAngle, radius] = this.getPie(index);\n const circle = arc()\n .innerRadius(0)\n .outerRadius(radius)\n .startAngle(startAngle)\n .endAngle(endAngle);\n return sstyled(styles)(\n <SPieRect\n render=\"path\"\n // @ts-ignore\n d={circle()}\n />,\n );\n } else {\n return sstyled(styles)(\n <SPieRect\n render=\"path\"\n // @ts-ignore\n d={line()(this.getPolygon(index))}\n />,\n );\n }\n }\n\n return null;\n }\n}\n\nconst Axis = createElement(AxisRoot, {\n Ticks: AxisTicks,\n Labels: AxisLabels,\n});\n\nconst Polygon = createElement(PolygonRoot, {\n Line: PolygonLine,\n Dots: PolygonDots,\n});\n\nconst Radar = createElement(RadarRoot, {\n Axis,\n Polygon,\n Hover,\n});\n\nexport default Radar;\n"],"mappings":"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"}
@@ -26,22 +26,22 @@ var style = (
26
26
  /*__reshadow_css_start__*/
27
27
  _sstyled.insert(
28
28
  /*__inner_css_start__*/
29
- ".___SRadian_1g75j_gg_{cursor:pointer;fill:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SLine_1g75j_gg_{stroke:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SLine_1g75j_gg_.__color_1g75j_gg_{stroke:var(--color_1g75j)}.___SCap_1g75j_gg_.__transparent_1g75j_gg_,.___SIcon_1g75j_gg_.__transparent_1g75j_gg_,.___SLabel_1g75j_gg_.__transparent_1g75j_gg_,.___SLine_1g75j_gg_.__transparent_1g75j_gg_{opacity:.3}.___SCap_1g75j_gg_{transition:r .1s}.___SLabel_1g75j_gg_{fill:var(--color_1g75j);cursor:var(--text-cursor_1g75j)}@media (hover:hover){.___SRadian_1g75j_gg_:hover .___SLabel_1g75j_gg_{fill:var(--color-hovered_1g75j)}}@media (prefers-reduced-motion){.___SLineCap_1g75j_gg_{transition:none}}"
29
+ ".___SRadian_oplyv_gg_{cursor:pointer;fill:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SLine_oplyv_gg_{stroke:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SLine_oplyv_gg_.__color_oplyv_gg_{stroke:var(--color_oplyv)}.___SCap_oplyv_gg_.__transparent_oplyv_gg_,.___SIcon_oplyv_gg_.__transparent_oplyv_gg_,.___SLabel_oplyv_gg_.__transparent_oplyv_gg_,.___SLine_oplyv_gg_.__transparent_oplyv_gg_{opacity:.3}.___SCap_oplyv_gg_{transition:r .1s}.___SLabel_oplyv_gg_{fill:var(--color_oplyv);cursor:var(--text-cursor_oplyv)}@media (hover:hover){.___SRadian_oplyv_gg_:hover .___SLabel_oplyv_gg_{fill:var(--color-hovered_oplyv)}}@media (prefers-reduced-motion){.___SLineCap_oplyv_gg_{transition:none}}"
30
30
  /*__inner_css_end__*/
31
- , "1g75j_gg_")
31
+ , "oplyv_gg_")
32
32
  /*__reshadow_css_end__*/
33
33
  , {
34
- "__SRadian": "___SRadian_1g75j_gg_",
35
- "__SLine": "___SLine_1g75j_gg_",
36
- "_color": "__color_1g75j_gg_",
37
- "--color": "--color_1g75j",
38
- "_transparent": "__transparent_1g75j_gg_",
39
- "__SCap": "___SCap_1g75j_gg_",
40
- "__SIcon": "___SIcon_1g75j_gg_",
41
- "__SLabel": "___SLabel_1g75j_gg_",
42
- "--text-cursor": "--text-cursor_1g75j",
43
- "--color-hovered": "--color-hovered_1g75j",
44
- "__SLineCap": "___SLineCap_1g75j_gg_"
34
+ "__SRadian": "___SRadian_oplyv_gg_",
35
+ "__SLine": "___SLine_oplyv_gg_",
36
+ "_color": "__color_oplyv_gg_",
37
+ "--color": "--color_oplyv",
38
+ "_transparent": "__transparent_oplyv_gg_",
39
+ "__SCap": "___SCap_oplyv_gg_",
40
+ "__SIcon": "___SIcon_oplyv_gg_",
41
+ "__SLabel": "___SLabel_oplyv_gg_",
42
+ "--text-cursor": "--text-cursor_oplyv",
43
+ "--color-hovered": "--color-hovered_oplyv",
44
+ "__SLineCap": "___SLineCap_oplyv_gg_"
45
45
  });
46
46
  var baseAngle = -Math.PI / 2; // The top vertical line
47
47
 
@@ -16,19 +16,19 @@ var style = (
16
16
  /*__reshadow_css_start__*/
17
17
  _sstyled.insert(
18
18
  /*__inner_css_start__*/
19
- ".___SReferenceLine_1vtit_gg_{fill:none;stroke:var(--intergalactic-chart-grid-x-axis, #c4c7cf)}.___STitle_1vtit_gg_{font-size:var(--intergalactic-fs-100, 12px);fill:var(--intergalactic-chart-grid-text-label, #6c6e79);transform-origin:var(--transform-origin_1vtit)}.___STitle_1vtit_gg_._position_top_1vtit_gg_{text-anchor:middle}.___STitle_1vtit_gg_._position_bottom_1vtit_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_1vtit_gg_._position_left_1vtit_gg_,.___STitle_1vtit_gg_._position_right_1vtit_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_1vtit_gg_{fill:var(--intergalactic-chart-grid-period-bg, rgba(196, 199, 207, 0.2))}"
19
+ ".___SReferenceLine_854up_gg_{fill:none;stroke:var(--intergalactic-chart-grid-x-axis, #c4c7cf)}.___STitle_854up_gg_{font-size:var(--intergalactic-fs-100, 12px);fill:var(--intergalactic-chart-grid-text-label, #6c6e79);transform-origin:var(--transform-origin_854up)}.___STitle_854up_gg_._position_top_854up_gg_{text-anchor:middle}.___STitle_854up_gg_._position_bottom_854up_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_854up_gg_._position_left_854up_gg_,.___STitle_854up_gg_._position_right_854up_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_854up_gg_{fill:var(--intergalactic-chart-grid-period-bg, rgba(196, 199, 207, 0.2))}"
20
20
  /*__inner_css_end__*/
21
- , "1vtit_gg_")
21
+ , "854up_gg_")
22
22
  /*__reshadow_css_end__*/
23
23
  , {
24
- "__SReferenceLine": "___SReferenceLine_1vtit_gg_",
25
- "__STitle": "___STitle_1vtit_gg_",
26
- "--transform-origin": "--transform-origin_1vtit",
27
- "_position_top": "_position_top_1vtit_gg_",
28
- "_position_bottom": "_position_bottom_1vtit_gg_",
29
- "_position_right": "_position_right_1vtit_gg_",
30
- "_position_left": "_position_left_1vtit_gg_",
31
- "__SBackground": "___SBackground_1vtit_gg_"
24
+ "__SReferenceLine": "___SReferenceLine_854up_gg_",
25
+ "__STitle": "___STitle_854up_gg_",
26
+ "--transform-origin": "--transform-origin_854up",
27
+ "_position_top": "_position_top_854up_gg_",
28
+ "_position_bottom": "_position_bottom_854up_gg_",
29
+ "_position_right": "_position_right_854up_gg_",
30
+ "_position_left": "_position_left_854up_gg_",
31
+ "__SBackground": "___SBackground_854up_gg_"
32
32
  });
33
33
  var side2direction = {
34
34
  left: 'vertical',
@@ -21,17 +21,17 @@ var style = (
21
21
  /*__reshadow_css_start__*/
22
22
  _sstyled.insert(
23
23
  /*__inner_css_start__*/
24
- ".___SScatterPlot_1l95p_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);transition-property:cx,cy;transition-duration:var(--duration_1l95p);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SScatterPlot_1l95p_gg_:hover{opacity:.8}}.___SScatterPlot_1l95p_gg_.__color_1l95p_gg_{fill:var(--color_1l95p)}.___SScatterPlot_1l95p_gg_.__transparent_1l95p_gg_{opacity:.3}.___SValue_1l95p_gg_{text-anchor:middle;font-size:var(--intergalactic-fs-50, 10px);stroke:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SValue_1l95p_gg_.__color_1l95p_gg_{stroke:var(--color_1l95p)}.___SValue_1l95p_gg_.__transparent_1l95p_gg_{opacity:.3}"
24
+ ".___SScatterPlot_zpa5u_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);transition-property:cx,cy;transition-duration:var(--duration_zpa5u);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SScatterPlot_zpa5u_gg_:hover{opacity:.8}}.___SScatterPlot_zpa5u_gg_.__color_zpa5u_gg_{fill:var(--color_zpa5u)}.___SScatterPlot_zpa5u_gg_.__transparent_zpa5u_gg_{opacity:.3}.___SValue_zpa5u_gg_{text-anchor:middle;font-size:var(--intergalactic-fs-50, 10px);stroke:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SValue_zpa5u_gg_.__color_zpa5u_gg_{stroke:var(--color_zpa5u)}.___SValue_zpa5u_gg_.__transparent_zpa5u_gg_{opacity:.3}"
25
25
  /*__inner_css_end__*/
26
- , "1l95p_gg_")
26
+ , "zpa5u_gg_")
27
27
  /*__reshadow_css_end__*/
28
28
  , {
29
- "__SScatterPlot": "___SScatterPlot_1l95p_gg_",
30
- "--duration": "--duration_1l95p",
31
- "_color": "__color_1l95p_gg_",
32
- "--color": "--color_1l95p",
33
- "_transparent": "__transparent_1l95p_gg_",
34
- "__SValue": "___SValue_1l95p_gg_"
29
+ "__SScatterPlot": "___SScatterPlot_zpa5u_gg_",
30
+ "--duration": "--duration_zpa5u",
31
+ "_color": "__color_zpa5u_gg_",
32
+ "--color": "--color_zpa5u",
33
+ "_transparent": "__transparent_zpa5u_gg_",
34
+ "__SValue": "___SValue_zpa5u_gg_"
35
35
  });
36
36
 
37
37
  var ScatterPlotRoot = /*#__PURE__*/function (_Component) {