@semcore/d3-chart 2.8.2 → 2.8.4

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 (73) hide show
  1. package/CHANGELOG.md +16 -2
  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 +19 -14
  6. package/lib/cjs/Bubble.js.map +1 -1
  7. package/lib/cjs/Donut.js +8 -8
  8. package/lib/cjs/Dots.js +10 -10
  9. package/lib/cjs/HorizontalBar.js +9 -9
  10. package/lib/cjs/Hover.js +4 -4
  11. package/lib/cjs/Line.js +9 -9
  12. package/lib/cjs/Plot.js +4 -4
  13. package/lib/cjs/RadialTree.js +56 -39
  14. package/lib/cjs/RadialTree.js.map +1 -1
  15. package/lib/cjs/ReferenceLine.js +10 -10
  16. package/lib/cjs/ScatterPlot.js +14 -10
  17. package/lib/cjs/ScatterPlot.js.map +1 -1
  18. package/lib/cjs/Tooltip.js +8 -8
  19. package/lib/cjs/Venn.js +8 -8
  20. package/lib/cjs/a11y/PlotA11yModule.js +3 -3
  21. package/lib/cjs/a11y/PlotA11yView.js +4 -4
  22. package/lib/cjs/style/bubble.shadow.css +12 -0
  23. package/lib/cjs/style/radial-tree.shadow.css +17 -0
  24. package/lib/cjs/style/scatterplot.shadow.css +8 -0
  25. package/lib/cjs/types/Area.d.js.map +1 -1
  26. package/lib/cjs/types/Bar.d.js.map +1 -1
  27. package/lib/cjs/types/Bubble.d.js.map +1 -1
  28. package/lib/cjs/types/Donut.d.js.map +1 -1
  29. package/lib/cjs/types/HorizontalBar.d.js.map +1 -1
  30. package/lib/cjs/types/Line.d.js.map +1 -1
  31. package/lib/cjs/types/ScatterPlot.d.js.map +1 -1
  32. package/lib/cjs/types/Venn.d.js.map +1 -1
  33. package/lib/es6/Area.js +10 -10
  34. package/lib/es6/Axis.js +14 -14
  35. package/lib/es6/Bar.js +9 -9
  36. package/lib/es6/Bubble.js +19 -14
  37. package/lib/es6/Bubble.js.map +1 -1
  38. package/lib/es6/Donut.js +8 -8
  39. package/lib/es6/Dots.js +10 -10
  40. package/lib/es6/HorizontalBar.js +9 -9
  41. package/lib/es6/Hover.js +4 -4
  42. package/lib/es6/Line.js +9 -9
  43. package/lib/es6/Plot.js +4 -4
  44. package/lib/es6/RadialTree.js +56 -39
  45. package/lib/es6/RadialTree.js.map +1 -1
  46. package/lib/es6/ReferenceLine.js +10 -10
  47. package/lib/es6/ScatterPlot.js +14 -10
  48. package/lib/es6/ScatterPlot.js.map +1 -1
  49. package/lib/es6/Tooltip.js +8 -8
  50. package/lib/es6/Venn.js +8 -8
  51. package/lib/es6/a11y/PlotA11yModule.js +3 -3
  52. package/lib/es6/a11y/PlotA11yView.js +4 -4
  53. package/lib/es6/style/bubble.shadow.css +12 -0
  54. package/lib/es6/style/radial-tree.shadow.css +17 -0
  55. package/lib/es6/style/scatterplot.shadow.css +8 -0
  56. package/lib/es6/types/Area.d.js.map +1 -1
  57. package/lib/es6/types/Bar.d.js.map +1 -1
  58. package/lib/es6/types/Bubble.d.js.map +1 -1
  59. package/lib/es6/types/Donut.d.js.map +1 -1
  60. package/lib/es6/types/HorizontalBar.d.js.map +1 -1
  61. package/lib/es6/types/Line.d.js.map +1 -1
  62. package/lib/es6/types/ScatterPlot.d.js.map +1 -1
  63. package/lib/es6/types/Venn.d.js.map +1 -1
  64. package/lib/types/Area.d.ts +2 -2
  65. package/lib/types/Bar.d.ts +1 -1
  66. package/lib/types/Bubble.d.ts +2 -0
  67. package/lib/types/Donut.d.ts +1 -1
  68. package/lib/types/HorizontalBar.d.ts +1 -1
  69. package/lib/types/Line.d.ts +1 -1
  70. package/lib/types/RadialTree.d.ts +9 -0
  71. package/lib/types/ScatterPlot.d.ts +2 -0
  72. package/lib/types/Venn.d.ts +2 -2
  73. package/package.json +1 -1
package/lib/es6/Line.js CHANGED
@@ -25,18 +25,18 @@ var style = (
25
25
  /*__reshadow_css_start__*/
26
26
  _sstyled.insert(
27
27
  /*__inner_css_start__*/
28
- ".___SLine_tu3a9_gg_{fill:transparent;stroke-width:3;stroke:var(--intergalactic-chart-palette-order-blue,#2bb3ff);transition-property:d;transition-duration:var(--duration_tu3a9);transition-timing-function:ease-in-out}.___SLine_tu3a9_gg_.__color_tu3a9_gg_{stroke:var(--color_tu3a9)}.___SLine_tu3a9_gg_.__hide_tu3a9_gg_{display:none}.___SLine_tu3a9_gg_.__transparent_tu3a9_gg_{opacity:.3}.___SNull_tu3a9_gg_{fill:transparent;stroke:var(-intergalactic-border-primary);stroke-dasharray:4}.___SNull_tu3a9_gg_.__hide_tu3a9_gg_{display:none}"
28
+ ".___SLine_10wmg_gg_{fill:transparent;stroke-width:3;stroke:var(--intergalactic-chart-palette-order-blue,#2bb3ff);transition-property:d;transition-duration:var(--duration_10wmg);transition-timing-function:ease-in-out}.___SLine_10wmg_gg_.__color_10wmg_gg_{stroke:var(--color_10wmg)}.___SLine_10wmg_gg_.__hide_10wmg_gg_{display:none}.___SLine_10wmg_gg_.__transparent_10wmg_gg_{opacity:.3}.___SNull_10wmg_gg_{fill:transparent;stroke:var(-intergalactic-border-primary);stroke-dasharray:4}.___SNull_10wmg_gg_.__hide_10wmg_gg_{display:none}"
29
29
  /*__inner_css_end__*/
30
- , "tu3a9_gg_")
30
+ , "10wmg_gg_")
31
31
  /*__reshadow_css_end__*/
32
32
  , {
33
- "__SLine": "___SLine_tu3a9_gg_",
34
- "--duration": "--duration_tu3a9",
35
- "_color": "__color_tu3a9_gg_",
36
- "--color": "--color_tu3a9",
37
- "_hide": "__hide_tu3a9_gg_",
38
- "_transparent": "__transparent_tu3a9_gg_",
39
- "__SNull": "___SNull_tu3a9_gg_"
33
+ "__SLine": "___SLine_10wmg_gg_",
34
+ "--duration": "--duration_10wmg",
35
+ "_color": "__color_10wmg_gg_",
36
+ "--color": "--color_10wmg",
37
+ "_hide": "__hide_10wmg_gg_",
38
+ "_transparent": "__transparent_10wmg_gg_",
39
+ "__SNull": "___SNull_10wmg_gg_"
40
40
  });
41
41
 
42
42
  var LineRoot = /*#__PURE__*/function (_Component) {
package/lib/es6/Plot.js CHANGED
@@ -31,13 +31,13 @@ var style = (
31
31
  /*__reshadow_css_start__*/
32
32
  _sstyled.insert(
33
33
  /*__inner_css_start__*/
34
- ".___SPlot_1bx5o_gg_{overflow:hidden}.___SPlot_1bx5o_gg_:active,.___SPlot_1bx5o_gg_:focus{outline:0;text-decoration:none}foreignObject[data-aria-only]{pointer-events:none}.___SPlot_1bx5o_gg_.__keyboardFocused_1bx5o_gg_{border:1px solid var(--intergalactic-chart-palette-order-blue-second-order,#008ff8);box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}"
34
+ ".___SPlot_1lvfa_gg_{overflow:hidden}.___SPlot_1lvfa_gg_:active,.___SPlot_1lvfa_gg_:focus{outline:0;text-decoration:none}foreignObject[data-aria-only]{pointer-events:none}.___SPlot_1lvfa_gg_.__keyboardFocused_1lvfa_gg_{border:1px solid var(--intergalactic-chart-palette-order-blue-second-order,#008ff8);box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}"
35
35
  /*__inner_css_end__*/
36
- , "1bx5o_gg_")
36
+ , "1lvfa_gg_")
37
37
  /*__reshadow_css_end__*/
38
38
  , {
39
- "__SPlot": "___SPlot_1bx5o_gg_",
40
- "_keyboardFocused": "__keyboardFocused_1bx5o_gg_"
39
+ "__SPlot": "___SPlot_1lvfa_gg_",
40
+ "_keyboardFocused": "__keyboardFocused_1lvfa_gg_"
41
41
  });
42
42
 
43
43
  var PlotRoot = /*#__PURE__*/function (_Component) {
@@ -34,20 +34,22 @@ var style = (
34
34
  /*__reshadow_css_start__*/
35
35
  _sstyled.insert(
36
36
  /*__inner_css_start__*/
37
- ".___SRadian_9sojr_gg_{cursor:pointer;fill:var(--intergalactic-chart-palette-order-blue-second-order,#008ff8)}.___SLine_9sojr_gg_{stroke:var(--intergalactic-chart-palette-order-blue-second-order,#008ff8)}.___SLine_9sojr_gg_.__color_9sojr_gg_{stroke:var(--color_9sojr)}.___SCap_9sojr_gg_{transition:r .1s}.___SLabel_9sojr_gg_{fill:var(--color_9sojr);cursor:var(--text-cursor_9sojr)}.___SRadian_9sojr_gg_:hover .___SLabel_9sojr_gg_{fill:var(--color-hovered_9sojr)}@media (prefers-reduced-motion){.___SLineCap_9sojr_gg_{transition:none}}"
37
+ ".___SRadian_15l8a_gg_{cursor:pointer;fill:var(--intergalactic-chart-palette-order-blue-second-order,#008ff8)}.___SLine_15l8a_gg_{stroke:var(--intergalactic-chart-palette-order-blue-second-order,#008ff8)}.___SLine_15l8a_gg_.__color_15l8a_gg_{stroke:var(--color_15l8a)}.___SLine_15l8a_gg_.__transparent_15l8a_gg_{opacity:.3}.___SCap_15l8a_gg_{transition:r .1s}.___SCap_15l8a_gg_.__transparent_15l8a_gg_{opacity:.3}.___SIcon_15l8a_gg_.__transparent_15l8a_gg_{opacity:.3}.___SLabel_15l8a_gg_{fill:var(--color_15l8a);cursor:var(--text-cursor_15l8a)}.___SLabel_15l8a_gg_.__transparent_15l8a_gg_{opacity:.3}.___SRadian_15l8a_gg_:hover .___SLabel_15l8a_gg_{fill:var(--color-hovered_15l8a)}@media (prefers-reduced-motion){.___SLineCap_15l8a_gg_{transition:none}}"
38
38
  /*__inner_css_end__*/
39
- , "9sojr_gg_")
39
+ , "15l8a_gg_")
40
40
  /*__reshadow_css_end__*/
41
41
  , {
42
- "__SRadian": "___SRadian_9sojr_gg_",
43
- "__SLine": "___SLine_9sojr_gg_",
44
- "_color": "__color_9sojr_gg_",
45
- "--color": "--color_9sojr",
46
- "__SCap": "___SCap_9sojr_gg_",
47
- "__SLabel": "___SLabel_9sojr_gg_",
48
- "--text-cursor": "--text-cursor_9sojr",
49
- "--color-hovered": "--color-hovered_9sojr",
50
- "__SLineCap": "___SLineCap_9sojr_gg_"
42
+ "__SRadian": "___SRadian_15l8a_gg_",
43
+ "__SLine": "___SLine_15l8a_gg_",
44
+ "_color": "__color_15l8a_gg_",
45
+ "--color": "--color_15l8a",
46
+ "_transparent": "__transparent_15l8a_gg_",
47
+ "__SCap": "___SCap_15l8a_gg_",
48
+ "__SIcon": "___SIcon_15l8a_gg_",
49
+ "__SLabel": "___SLabel_15l8a_gg_",
50
+ "--text-cursor": "--text-cursor_15l8a",
51
+ "--color-hovered": "--color-hovered_15l8a",
52
+ "__SLineCap": "___SLineCap_15l8a_gg_"
51
53
  });
52
54
  var baseAngle = -Math.PI / 2; // The top vertical line
53
55
 
@@ -383,14 +385,17 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
383
385
  xEnd = _this$computeRadianPo2.xEnd,
384
386
  yEnd = _this$computeRadianPo2.yEnd;
385
387
 
386
- var uid = this.asProps.uid;
388
+ var _this$asProps5 = this.asProps,
389
+ uid = _this$asProps5.uid,
390
+ transparent = _this$asProps5.transparent;
387
391
  var color = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.asProps.color;
388
392
  return _ref13 = {
389
393
  x1: xStart,
390
394
  y1: yStart,
391
395
  x2: xEnd,
392
396
  y2: yEnd,
393
- stroke: color
397
+ stroke: color,
398
+ transparent: transparent
394
399
  }, _defineProperty(_ref13, 'data-radial-animation', "".concat(uid, "-line")), _defineProperty(_ref13, 'data-radian-index', index), _ref13;
395
400
  }
396
401
  }, {
@@ -406,13 +411,16 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
406
411
  yEnd = _this$computeRadianPo3.yEnd,
407
412
  capSize = _this$computeRadianPo3.capSize;
408
413
 
409
- var uid = this.asProps.uid;
414
+ var _this$asProps6 = this.asProps,
415
+ uid = _this$asProps6.uid,
416
+ transparent = _this$asProps6.transparent;
410
417
  var color = (_data$color2 = data.color) !== null && _data$color2 !== void 0 ? _data$color2 : this.asProps.color;
411
418
  return _ref15 = {
412
419
  x: xEnd,
413
420
  y: yEnd,
414
421
  radius: capSize,
415
- color: color
422
+ color: color,
423
+ transparent: transparent
416
424
  }, _defineProperty(_ref15, 'data-radial-animation', "".concat(uid, "-cap-circle")), _defineProperty(_ref15, 'data-radian-index', index), _ref15;
417
425
  }
418
426
  }, {
@@ -453,16 +461,17 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
453
461
  labelAngle = _this$computeRadianPo5.labelAngle,
454
462
  isHorizontal = _this$computeRadianPo5.isHorizontal;
455
463
 
456
- var _this$asProps5 = this.asProps,
457
- uid = _this$asProps5.uid,
458
- textSize = _this$asProps5.textSize;
464
+ var _this$asProps7 = this.asProps,
465
+ uid = _this$asProps7.uid,
466
+ textSize = _this$asProps7.textSize,
467
+ transparent = _this$asProps7.transparent;
459
468
  var label = data.label;
460
469
  var color = (_data$color3 = data.color) !== null && _data$color3 !== void 0 ? _data$color3 : this.asProps.color;
461
470
  return _ref19 = {
462
471
  x: xLabelCenter,
463
472
  y: yLabelCenter,
464
473
  angle: labelAngle
465
- }, _defineProperty(_ref19, 'data-radial-animation', "".concat(uid, "-label")), _defineProperty(_ref19, 'data-radian-index', index), _defineProperty(_ref19, "label", label), _defineProperty(_ref19, "color", color), _defineProperty(_ref19, "isHorizontal", isHorizontal), _defineProperty(_ref19, "textSize", textSize), _ref19;
474
+ }, _defineProperty(_ref19, 'data-radial-animation', "".concat(uid, "-label")), _defineProperty(_ref19, 'data-radian-index', index), _defineProperty(_ref19, "label", label), _defineProperty(_ref19, "color", color), _defineProperty(_ref19, "isHorizontal", isHorizontal), _defineProperty(_ref19, "textSize", textSize), _defineProperty(_ref19, "transparent", transparent), _ref19;
466
475
  }
467
476
  }, {
468
477
  key: "getRadianKey",
@@ -476,14 +485,14 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
476
485
  value: function computeRadianPosition(data, index) {
477
486
  var _data$capSize;
478
487
 
479
- var _this$asProps6 = this.asProps,
480
- centralMargin = _this$asProps6.centralMargin,
481
- labelMargin = _this$asProps6.labelMargin,
482
- angleOffset = _this$asProps6.angleOffset,
483
- activeKey = _this$asProps6.activeKey,
484
- size = _this$asProps6.size,
485
- radiansCount = _this$asProps6.radiansCount,
486
- textWidth = _this$asProps6.textWidth;
488
+ var _this$asProps8 = this.asProps,
489
+ centralMargin = _this$asProps8.centralMargin,
490
+ labelMargin = _this$asProps8.labelMargin,
491
+ angleOffset = _this$asProps8.angleOffset,
492
+ activeKey = _this$asProps8.activeKey,
493
+ size = _this$asProps8.size,
494
+ radiansCount = _this$asProps8.radiansCount,
495
+ textWidth = _this$asProps8.textWidth;
487
496
 
488
497
  var _size2 = _slicedToArray(size, 2),
489
498
  width = _size2[0],
@@ -529,10 +538,10 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
529
538
  value: function renderRadian(data, index) {
530
539
  var _ref2;
531
540
 
532
- var _this$asProps7 = this.asProps,
533
- styles = _this$asProps7.styles,
534
- Children = _this$asProps7.Children,
535
- onRadianClick = _this$asProps7.onRadianClick;
541
+ var _this$asProps9 = this.asProps,
542
+ styles = _this$asProps9.styles,
543
+ Children = _this$asProps9.Children,
544
+ onRadianClick = _this$asProps9.onRadianClick;
536
545
  var key = this.getRadianKey(data, index);
537
546
  var SRadian = 'g';
538
547
  var children = getOriginChildren(Children);
@@ -599,10 +608,12 @@ var Line = function Line(_ref21) {
599
608
 
600
609
  var SLine = _ref21.Element,
601
610
  styles = _ref21.styles,
602
- stroke = _ref21.stroke;
611
+ stroke = _ref21.stroke,
612
+ transparent = _ref21.transparent;
603
613
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SLine, _ref5.cn("SLine", {
604
614
  "render": "line",
605
- "stroke": stroke
615
+ "stroke": stroke,
616
+ "transparent": transparent
606
617
  }));
607
618
  };
608
619
 
@@ -614,13 +625,15 @@ var Cap = function Cap(_ref22) {
614
625
  x = _ref22.x,
615
626
  y = _ref22.y,
616
627
  radius = _ref22.radius,
617
- color = _ref22.color;
628
+ color = _ref22.color,
629
+ transparent = _ref22.transparent;
618
630
  return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SCap, _ref6.cn("SCap", {
619
631
  "render": "circle",
620
632
  "cx": x,
621
633
  "cy": y,
622
634
  "r": radius,
623
- "fill": color
635
+ "fill": color,
636
+ "transparent": transparent
624
637
  }));
625
638
  };
626
639
 
@@ -633,7 +646,8 @@ var Icon = function Icon(_ref23) {
633
646
  tag = _ref23.tag,
634
647
  x = _ref23.x,
635
648
  y = _ref23.y,
636
- iconSize = _ref23.iconSize;
649
+ iconSize = _ref23.iconSize,
650
+ transparent = _ref23.transparent;
637
651
  if (!(isActive && tag)) return null;
638
652
  var width = iconSize;
639
653
  var height = iconSize;
@@ -642,7 +656,8 @@ var Icon = function Icon(_ref23) {
642
656
  "y": y,
643
657
  "width": width,
644
658
  "height": height,
645
- "render": tag
659
+ "render": tag,
660
+ "transparent": transparent
646
661
  }));
647
662
  };
648
663
 
@@ -656,7 +671,8 @@ var Label = function Label(_ref24) {
656
671
  x = _ref24.x,
657
672
  y = _ref24.y,
658
673
  textSize = _ref24.textSize,
659
- angle = _ref24.angle;
674
+ angle = _ref24.angle,
675
+ transparent = _ref24.transparent;
660
676
  var lines = String(label).split('\n');
661
677
  var linesCount = lines.length;
662
678
  var SLabelLine = 'tspan';
@@ -667,7 +683,8 @@ var Label = function Label(_ref24) {
667
683
  var sLabelStyles = sstyles.cn('SLabel', {
668
684
  color: color,
669
685
  'color-hovered': shade(color, -0.12),
670
- 'text-cursor': isHorizontal ? 'text' : 'vertical-text'
686
+ 'text-cursor': isHorizontal ? 'text' : 'vertical-text',
687
+ transparent: transparent
671
688
  });
672
689
  return /*#__PURE__*/React.createElement(SLabel, {
673
690
  "aria-hidden": true,
@@ -1 +1 @@
1
- {"version":3,"file":"RadialTree.js","names":["React","transition","Component","sstyled","uniqueIDEnhancement","shade","assignProps","getOriginChildren","createElement","measureText","baseAngle","Math","PI","RadialTreeBase","props","handleRadianClick","bind","activeKey","asProps","duration","uid","preferReduceMotion","window","matchMedia","matches","circlesAnimation","selection","selectAll","iconsAnimation","linesAnimation","labelsAnimation","circlesNodes","nodes","iconsNodes","linesNodes","labelsNodes","length","attrs","map","node","cx","baseVal","value","cy","radianIndex","parseInt","dataset","lineNode","from","x1","y1","to","attr","_","index","x","y","width","height","x2","y2","prevProps","$rootProps","data","runAppearAnimation","key","event","newKey","handlers","textSize","widths","label","max","size","center","restRootProps","textWidth","computeTextWidth","radiansCount","onRadianClick","SRadialTree","Element","Children","dataHintsHandler","establishDataType","styles","style","angleOffset","centralMargin","labelMargin","iconColor","capSize","iconSize","defaultActiveKey","RadialTreeRadian","renderRadian","computeRadianPosition","xStart","yStart","xLabelCenter","yLabelCenter","strokeWidth","xEnd","yEnd","color","stroke","radius","isActive","icon","labelAngle","isHorizontal","angle","getRadianKey","baseCapSize","minDemSize","min","topAngle","xCenter","yCenter","start","cos","sin","end","labelCenter","SRadian","children","_child","mergedProps","describeValueEntity","InteractiveArea","RadialTree","Radian","SRadianList","SInteractiveArea","Line","SLine","Cap","SCap","Icon","SIcon","tag","Label","SLabel","lines","String","split","linesCount","SLabelLine","angleDegs","toFixed","transformOrigin","transform","join","sstyles","sLabelStyles","cn","className","lineText","lineIndex","Title","STitle","setTitle"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled, ReturnEl } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { shade } from '@semcore/utils/lib/color';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport { measureText } from './utils';\nimport { DataHintsHandler } from './a11y/hints';\n\nimport style from './style/radial-tree.shadow.css';\nimport type { MapProps } from './types';\n\nconst baseAngle = -Math.PI / 2; // The top vertical line\n\ntype RadianData = {\n /**\n * Text label on the end of radian.\n */\n label: string;\n /**\n * Radian key. Radian, which `key` is equal to `activeKey` is displayed as active.\n */\n key: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n};\n\nexport interface IRadialTreeProps {\n /**\n * List of radians. `{ label: string; key: string; capSize?: number; icon?: React.FC; color?: string; iconColor?: string; iconSize?: number; }`\n */\n data: RadianData[];\n /**\n * Angel (in rads) that rotates chart. 0 means that first radian is exactly on top vertical line.\n * @default 0\n */\n angleOffset?: number;\n /**\n * Duration of appear and update animation.\n * @default 300\n */\n duration?: number;\n /**\n * Gap between the chart center and radians start point.\n * @default 50\n */\n centralMargin?: number;\n /**\n * Gap around text label.\n * @default 2\n */\n labelMargin?: number;\n /**\n * Color of all radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n /**\n * Text size in radians' labels. 1.5x is used as default text size of center text.\n * @default 14\n */\n textSize?: number;\n /**\n * Used to define the active radian in controlled way. Active radian is highligted with inreased cap size.\n */\n activeKey?: string | null;\n /**\n * Default value for `activeKey` property.\n */\n defaultActiveKey?: string | null;\n}\n\ntype RootAsProps = IRadialTreeProps & {\n uid: string;\n styles: React.CSSProperties;\n activeKey: string | null;\n Children: React.FC;\n size: [width: number, height: number];\n data: RadianData[];\n duration: number;\n textSize: number;\n capSize: number;\n centralMargin: number;\n labelMargin: number;\n angleOffset: number;\n $rootProps: RootAsProps;\n dataHintsHandler: DataHintsHandler;\n};\n\nclass RadialTreeBase extends Component<RootAsProps> {\n static displayName = 'RadialTree';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps: Partial<IRadialTreeProps> = {\n angleOffset: 0,\n duration: 300,\n centralMargin: 50,\n labelMargin: 5,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ children?: React.ReactNode; render: string }>;\n\n constructor(props: any) {\n super(props);\n this.handleRadianClick = this.handleRadianClick.bind(this);\n }\n\n uncontrolledProps() {\n return {\n activeKey: null,\n };\n }\n\n runAppearAnimation() {\n const { duration, uid } = this.asProps;\n const preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;\n\n /** using `!(>)` instead of `<=` to get true on NaN and non numbers stuff */\n if (!(duration > 0)) return;\n if (preferReduceMotion) return;\n\n const circlesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-circle]`);\n const iconsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-icon]`);\n const linesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-line]`);\n const labelsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-label]`);\n const circlesNodes = circlesAnimation.nodes() as SVGCircleElement[];\n const iconsNodes = iconsAnimation.nodes() as SVGRectElement[];\n const linesNodes = linesAnimation.nodes() as SVGLineElement[];\n const labelsNodes = linesAnimation.nodes() as SVGTextElement[];\n\n if (circlesNodes.length > 0) {\n const attrs = circlesNodes.map((node) => {\n const cx = node.cx?.baseVal?.value;\n const cy = node.cy?.baseVal?.value;\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n cx: lineNode.x1?.baseVal?.value,\n cy: lineNode.y1?.baseVal?.value,\n },\n to: { cx, cy },\n };\n });\n\n circlesAnimation\n .attr('opacity', 0)\n .attr('cx', (_, index) => attrs[index].from?.cx)\n .attr('cy', (_, index) => attrs[index].from?.cy);\n circlesAnimation\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('cx', (_, index) => attrs[index].to?.cx)\n .attr('cy', (_, index) => attrs[index].to?.cy);\n }\n if (iconsNodes.length > 0) {\n const attrs = iconsNodes.map((node) => {\n const x = node.x?.baseVal?.value;\n const y = node.y?.baseVal?.value;\n const width = node.width?.baseVal?.value;\n const height = node.height?.baseVal?.value;\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n x: lineNode.x1?.baseVal?.value - width / 2,\n y: lineNode.y1?.baseVal?.value - height / 2,\n },\n to: {\n x,\n y,\n },\n };\n });\n\n iconsAnimation\n .attr('opacity', 0)\n .attr('x', (_, index) => attrs[index].from?.x)\n .attr('y', (_, index) => attrs[index].from?.y);\n iconsAnimation\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x', (_, index) => attrs[index].to?.x)\n .attr('y', (_, index) => attrs[index].to?.y);\n }\n if (linesNodes.length > 0) {\n const attrs = linesNodes.map((node) => {\n const x2 = node.x2?.baseVal?.value;\n const y2 = node.y2?.baseVal?.value;\n return {\n from: {\n x2: node.x1?.baseVal?.value,\n y2: node.y1?.baseVal?.value,\n },\n to: {\n x2,\n y2,\n },\n };\n });\n\n linesAnimation\n .attr('opacity', 0)\n .attr('x2', (_, index) => attrs[index].from?.x2)\n .attr('y2', (_, index) => attrs[index].from?.y2);\n linesAnimation\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x2', (_, index) => attrs[index].to?.x2)\n .attr('y2', (_, index) => attrs[index].to?.y2);\n }\n if (labelsNodes.length > 0) {\n labelsAnimation.attr('opacity', 0);\n labelsAnimation.transition().duration(duration).attr('opacity', 1);\n }\n }\n\n componentDidUpdate(prevProps: RootAsProps) {\n if (prevProps.$rootProps.data?.length !== this.asProps.data?.length) {\n this.runAppearAnimation();\n }\n }\n\n componentDidMount() {\n this.runAppearAnimation();\n }\n\n handleRadianClick(key: string) {\n return (event: React.MouseEvent) => {\n const newKey = key !== this.asProps.activeKey ? key : null;\n this.handlers.activeKey(newKey, event);\n };\n }\n\n computeTextWidth() {\n const { data, textSize } = this.asProps;\n const widths = data.map(({ label }) => measureText(label, textSize));\n\n return Math.max(...widths);\n }\n\n getTitleProps() {\n const { uid, size, textSize } = this.asProps;\n\n const [width, height] = size;\n const center = [width / 2, height / 2];\n const [x, y] = center;\n return {\n x,\n y,\n textSize: textSize * 1.5,\n ['data-radial-animation']: `${uid}-label`,\n } as IRadialTreeTitleProps;\n }\n\n getRadianProps() {\n const { data, ...restRootProps } = this.asProps;\n const textWidth = this.computeTextWidth();\n\n return {\n ...restRootProps,\n radiansCount: data.length,\n data,\n textWidth,\n onRadianClick: this.handleRadianClick,\n } as IRadialTreeRadianProps;\n }\n\n render() {\n const SRadialTree = this.Element;\n const { Children } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n\n return sstyled(this.asProps.styles)(\n <SRadialTree render=\"g\">\n <Children />\n </SRadialTree>,\n );\n }\n}\n\nexport interface IRadialTreeRadianProps extends IRadialTreeProps {\n radiansCount?: number;\n textWidth?: number;\n onRadianClick?: (key: string) => (event: React.MouseEvent) => void;\n}\n\ntype RadianAsProps = RootAsProps & {\n radiansCount: number;\n textWidth: number;\n onRadianClick: (key: string) => (event: React.MouseEvent) => void;\n};\n\nclass RadialTreeRadian extends Component<RadianAsProps> {\n static displayName = 'RadialTreeRadian';\n static style = style;\n\n static defaultProps: Partial<IRadialTreeRadianProps> = {\n centralMargin: 50,\n labelMargin: 2,\n iconColor: '#fff',\n capSize: 16,\n iconSize: 16,\n textSize: 14,\n };\n Element!: React.FC<{ render: string }>;\n\n constructor(props: any) {\n super(props);\n this.renderRadian = this.renderRadian.bind(this);\n }\n\n getInteractiveAreaProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xStart, yStart, xLabelCenter, yLabelCenter, capSize } = this.computeRadianPosition(\n data,\n index,\n );\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xLabelCenter,\n y2: yLabelCenter,\n strokeWidth: capSize * 3,\n } as IRadialTreeRadianInteractiveAreaProps;\n }\n getLineProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xStart, yStart, xEnd, yEnd } = this.computeRadianPosition(data, index);\n const { uid } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xEnd,\n y2: yEnd,\n stroke: color,\n ['data-radial-animation']: `${uid}-line`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianLineProps;\n }\n getCapProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xEnd, yEnd, capSize } = this.computeRadianPosition(data, index);\n const { uid } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xEnd,\n y: yEnd,\n radius: capSize,\n color,\n ['data-radial-animation']: `${uid}-cap-circle`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianCapProps;\n }\n getIconProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xEnd, yEnd, isActive } = this.computeRadianPosition(data, index);\n const { uid } = this.asProps;\n const iconColor = data.iconColor ?? this.asProps.iconColor;\n const iconSize = data.iconSize ?? this.asProps.iconSize;\n const icon = data.icon ?? this.asProps.icon;\n\n return {\n x: xEnd - iconSize! / 2,\n y: yEnd - iconSize! / 2,\n iconSize,\n color: iconColor ?? '#fff',\n ['data-radial-animation']: `${uid}-cap-icon`,\n ['data-radian-index']: index,\n icon,\n isActive,\n } as IRadialTreeRadianIconProps;\n }\n getLabelProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xLabelCenter, yLabelCenter, labelAngle, isHorizontal } = this.computeRadianPosition(\n data,\n index,\n );\n const { uid, textSize } = this.asProps;\n const { label } = data;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xLabelCenter,\n y: yLabelCenter,\n angle: labelAngle,\n ['data-radial-animation']: `${uid}-label`,\n ['data-radian-index']: index,\n label,\n color,\n isHorizontal,\n textSize,\n } as IRadialTreeRadianLabelProps;\n }\n\n getRadianKey(data: RadianData, index: number) {\n return data.key ?? `radian-${index}`;\n }\n\n computeRadianPosition(data: RadianData, index: number) {\n const { centralMargin, labelMargin, angleOffset, activeKey, size, radiansCount, textWidth } =\n this.asProps;\n const [width, height] = size;\n const key = this.getRadianKey(data, index);\n const isActive = activeKey === key;\n const baseCapSize = data.capSize ?? this.asProps.capSize;\n const capSize = baseCapSize * (isActive ? 1 : 0.5);\n\n const minDemSize = Math.min(width, height) / 2;\n const length = Math.max(\n minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2,\n 10,\n );\n\n const angle = baseAngle + angleOffset + (index / radiansCount) * (Math.PI * 2);\n const isHorizontal =\n (angle - baseAngle > (1 / 6) * Math.PI && angle - baseAngle < (5 / 6) * Math.PI) ||\n (angle - baseAngle > (7 / 6) * Math.PI && angle - baseAngle < (11 / 6) * Math.PI);\n const topAngle = -Math.PI / 2;\n const labelAngle = ((angle - topAngle) % Math.PI) + topAngle;\n\n const center = [width / 2, height / 2];\n const [xCenter, yCenter] = center;\n const start = [\n xCenter + Math.cos(angle) * centralMargin,\n yCenter + Math.sin(angle) * centralMargin,\n ];\n const end = [\n xCenter + Math.cos(angle) * (centralMargin + length),\n yCenter + Math.sin(angle) * (centralMargin + length),\n ];\n const [xStart, yStart] = start;\n const [xEnd, yEnd] = end;\n\n const labelCenter = [\n xCenter +\n Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n yCenter +\n Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n ];\n const [xLabelCenter, yLabelCenter] = labelCenter;\n\n return {\n xStart,\n yStart,\n xEnd,\n yEnd,\n xLabelCenter,\n yLabelCenter,\n labelAngle,\n isHorizontal,\n capSize,\n isActive,\n };\n }\n\n renderRadian(data: RadianData, index: number) {\n const { styles, Children, onRadianClick } = this.asProps;\n const key = this.getRadianKey(data, index);\n const SRadian = 'g';\n\n let children = getOriginChildren(Children);\n\n if (typeof children === 'function') {\n const _child = this.asProps.children;\n const mergedProps = assignProps(children(this.asProps), this.asProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n this.asProps.dataHintsHandler.describeValueEntity(`${index}.${data.label}`, data.label);\n\n // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian aria-hidden key={key} onClick={onRadianClick(key)}>\n <InteractiveArea />\n {children}\n </SRadian>,\n );\n }\n\n render() {\n const { data } = this.asProps;\n const SRadianList = 'g';\n\n return sstyled(this.asProps.styles)(\n <SRadianList>{data.map((data, index) => this.renderRadian(data, index))}</SRadianList>,\n );\n }\n}\n\nexport interface IRadialTreeRadianInteractiveAreaProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n strokeWidth?: number;\n}\ntype RadialTreeRadianInteractiveAreaAsProps = IRadialTreeRadianInteractiveAreaProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst InteractiveArea: React.FC<RadialTreeRadianInteractiveAreaAsProps> = ({\n Element: SInteractiveArea,\n styles,\n}) => {\n return sstyled(styles)(\n <SInteractiveArea stroke=\"transparent\" render=\"line\" />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLineProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n stroke?: string;\n ['data-radial-animation']?: `${string}-line`;\n ['data-radian-index']?: number;\n}\ntype RadialTreeRadianLineAsProps = IRadialTreeRadianLineProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Line: React.FC<RadialTreeRadianLineAsProps> = ({ Element: SLine, styles, stroke }) => {\n return sstyled(styles)(<SLine render=\"line\" stroke={stroke} />) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianCapProps {\n x?: number;\n y?: number;\n radius?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-circle`;\n ['data-radian-index']?: number;\n}\ntype RadialTreeRadianCapAsProps = IRadialTreeRadianCapProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Cap: React.FC<RadialTreeRadianCapAsProps> = ({\n Element: SCap,\n styles,\n x,\n y,\n radius,\n color,\n}) => {\n return sstyled(styles)(\n <SCap render=\"circle\" cx={x} cy={y} r={radius} fill={color} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianIconProps {\n x?: number;\n y?: number;\n iconSize?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-icon`;\n ['data-radian-index']?: number;\n tag?: React.FC;\n isActive?: boolean;\n}\ntype RadialTreeRadianIconAsProps = IRadialTreeRadianIconProps & {\n Element: React.FC<{ render: string | React.FC } & React.SVGProps<any>>;\n x: number;\n y: number;\n iconSize: number;\n styles: React.CSSProperties;\n};\nconst Icon: React.FC<RadialTreeRadianIconAsProps> = ({\n Element: SIcon,\n styles,\n isActive,\n tag,\n x,\n y,\n iconSize,\n}) => {\n if (!(isActive && tag)) return null;\n const width = iconSize;\n const height = iconSize;\n return sstyled(styles)(\n <SIcon x={x} y={y} width={width} height={height} render={tag} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLabelProps {\n x?: number;\n y?: number;\n color?: string;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n ['data-radian-index']?: number;\n label?: string;\n isHorizontal?: boolean;\n angle?: number;\n}\ntype RadialTreeRadianLabelAsProps = IRadialTreeRadianLabelProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n styles: React.CSSProperties;\n x: number;\n y: number;\n angle: number;\n textSize: number;\n};\nconst Label: React.FC<RadialTreeRadianLabelAsProps> = ({\n Element: SLabel,\n Children,\n styles,\n label,\n color,\n isHorizontal,\n x,\n y,\n textSize,\n angle,\n}) => {\n const lines = String(label).split('\\n');\n const linesCount = lines.length;\n const SLabelLine = 'tspan';\n\n const angleDegs = ((angle / Math.PI) * 180).toFixed(2);\n const transformOrigin = [x.toFixed(2), y.toFixed(2)];\n const transform = `rotate(${[angleDegs, ...transformOrigin].join(', ')})`;\n\n const sstyles = sstyled(styles);\n const sLabelStyles = sstyles.cn('SLabel', {\n color,\n 'color-hovered': shade(color, -0.12),\n 'text-cursor': isHorizontal ? 'text' : 'vertical-text',\n });\n\n return (\n <SLabel\n aria-hidden\n render=\"text\"\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n className={sLabelStyles.className}\n style={sLabelStyles.style}\n x={x.toFixed(2)}\n y={y.toFixed(2)}\n transform={transform}\n >\n {lines.map((lineText, lineIndex) => (\n <SLabelLine\n x={x}\n y={y + (lineIndex - (linesCount - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </SLabelLine>\n ))}\n <Children />\n </SLabel>\n ) as React.ReactElement;\n};\n\nconst Radian = createElement(RadialTreeRadian, {\n InteractiveArea,\n Line,\n Cap,\n Icon,\n Label,\n});\n\nexport interface IRadialTreeTitleProps {\n x?: number;\n y?: number;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n color?: string;\n}\ntype RadialTreeTitleAsProps = IRadialTreeTitleProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n children: React.ReactNode;\n styles: React.CSSProperties;\n dataHintsHandler: DataHintsHandler;\n};\nconst Title: React.FC<RadialTreeTitleAsProps> = ({\n Element: STitle,\n Children,\n children,\n styles,\n textSize,\n color,\n x,\n y,\n dataHintsHandler,\n}) => {\n if (typeof children === 'string') {\n dataHintsHandler.setTitle('vertical', children);\n }\n return sstyled(styles)(\n <STitle\n aria-hidden\n render=\"text\"\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={textSize}\n fill={color}\n x={x}\n y={y}\n >\n <Children />\n </STitle>,\n ) as React.ReactElement;\n};\n\nconst RadialTree = createElement(RadialTreeBase, { Title, Radian }) as (<T>(\n props: MapProps<IRadialTreeProps & T>,\n) => ReturnEl) & {\n Title: <T>(props: MapProps<IRadialTreeTitleProps & T>) => ReturnEl;\n Radian: (<T>(props: MapProps<IRadialTreeRadianProps & T>) => ReturnEl) & {\n Line: <T>(props: MapProps<IRadialTreeRadianLineProps & T>) => ReturnEl;\n Cap: <T>(props: MapProps<IRadialTreeRadianCapProps & T>) => ReturnEl;\n Icon: <T>(props: MapProps<IRadialTreeRadianIconProps & T>) => ReturnEl;\n Label: <T>(props: MapProps<IRadialTreeRadianLabelProps & T>) => ReturnEl;\n };\n};\n\nexport default RadialTree;\n"],"mappings":"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"}
1
+ {"version":3,"file":"RadialTree.js","names":["React","transition","Component","sstyled","uniqueIDEnhancement","shade","assignProps","getOriginChildren","createElement","measureText","baseAngle","Math","PI","RadialTreeBase","props","handleRadianClick","bind","activeKey","asProps","duration","uid","preferReduceMotion","window","matchMedia","matches","circlesAnimation","selection","selectAll","iconsAnimation","linesAnimation","labelsAnimation","circlesNodes","nodes","iconsNodes","linesNodes","labelsNodes","length","attrs","map","node","cx","baseVal","value","cy","radianIndex","parseInt","dataset","lineNode","from","x1","y1","to","attr","_","index","x","y","width","height","x2","y2","prevProps","$rootProps","data","runAppearAnimation","key","event","newKey","handlers","textSize","widths","label","max","size","center","restRootProps","textWidth","computeTextWidth","radiansCount","onRadianClick","SRadialTree","Element","Children","dataHintsHandler","establishDataType","styles","style","angleOffset","centralMargin","labelMargin","iconColor","capSize","iconSize","defaultActiveKey","RadialTreeRadian","renderRadian","computeRadianPosition","xStart","yStart","xLabelCenter","yLabelCenter","strokeWidth","xEnd","yEnd","transparent","color","stroke","radius","isActive","icon","labelAngle","isHorizontal","angle","getRadianKey","baseCapSize","minDemSize","min","topAngle","xCenter","yCenter","start","cos","sin","end","labelCenter","SRadian","children","_child","mergedProps","describeValueEntity","InteractiveArea","RadialTree","Radian","SRadianList","SInteractiveArea","Line","SLine","Cap","SCap","Icon","SIcon","tag","Label","SLabel","lines","String","split","linesCount","SLabelLine","angleDegs","toFixed","transformOrigin","transform","join","sstyles","sLabelStyles","cn","className","lineText","lineIndex","Title","STitle","setTitle"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled, ReturnEl } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { shade } from '@semcore/utils/lib/color';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport { measureText } from './utils';\nimport { DataHintsHandler } from './a11y/hints';\n\nimport style from './style/radial-tree.shadow.css';\nimport type { MapProps } from './types';\n\nconst baseAngle = -Math.PI / 2; // The top vertical line\n\ntype RadianData = {\n /**\n * Text label on the end of radian.\n */\n label: string;\n /**\n * Radian key. Radian, which `key` is equal to `activeKey` is displayed as active.\n */\n key: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n};\n\nexport interface IRadialTreeProps {\n /**\n * List of radians. `{ label: string; key: string; capSize?: number; icon?: React.FC; color?: string; iconColor?: string; iconSize?: number; }`\n */\n data: RadianData[];\n /**\n * Angel (in rads) that rotates chart. 0 means that first radian is exactly on top vertical line.\n * @default 0\n */\n angleOffset?: number;\n /**\n * Duration of appear and update animation.\n * @default 300\n */\n duration?: number;\n /**\n * Gap between the chart center and radians start point.\n * @default 50\n */\n centralMargin?: number;\n /**\n * Gap around text label.\n * @default 2\n */\n labelMargin?: number;\n /**\n * Color of all radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n /**\n * Text size in radians' labels. 1.5x is used as default text size of center text.\n * @default 14\n */\n textSize?: number;\n /**\n * Used to define the active radian in controlled way. Active radian is highligted with inreased cap size.\n */\n activeKey?: string | null;\n /**\n * Default value for `activeKey` property.\n */\n defaultActiveKey?: string | null;\n /** Enables element transparency */\n transparent?: boolean;\n}\n\ntype RootAsProps = IRadialTreeProps & {\n uid: string;\n styles: React.CSSProperties;\n activeKey: string | null;\n Children: React.FC;\n size: [width: number, height: number];\n data: RadianData[];\n duration: number;\n textSize: number;\n capSize: number;\n centralMargin: number;\n labelMargin: number;\n angleOffset: number;\n transparent: boolean;\n $rootProps: RootAsProps;\n dataHintsHandler: DataHintsHandler;\n};\n\nclass RadialTreeBase extends Component<RootAsProps> {\n static displayName = 'RadialTree';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps: Partial<IRadialTreeProps> = {\n angleOffset: 0,\n duration: 300,\n centralMargin: 50,\n labelMargin: 5,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ children?: React.ReactNode; render: string }>;\n\n constructor(props: any) {\n super(props);\n this.handleRadianClick = this.handleRadianClick.bind(this);\n }\n\n uncontrolledProps() {\n return {\n activeKey: null,\n };\n }\n\n runAppearAnimation() {\n const { duration, uid } = this.asProps;\n const preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;\n\n /** using `!(>)` instead of `<=` to get true on NaN and non numbers stuff */\n if (!(duration > 0)) return;\n if (preferReduceMotion) return;\n\n const circlesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-circle]`);\n const iconsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-icon]`);\n const linesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-line]`);\n const labelsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-label]`);\n const circlesNodes = circlesAnimation.nodes() as SVGCircleElement[];\n const iconsNodes = iconsAnimation.nodes() as SVGRectElement[];\n const linesNodes = linesAnimation.nodes() as SVGLineElement[];\n const labelsNodes = linesAnimation.nodes() as SVGTextElement[];\n\n if (circlesNodes.length > 0) {\n const attrs = circlesNodes.map((node) => {\n const cx = node.cx?.baseVal?.value;\n const cy = node.cy?.baseVal?.value;\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n cx: lineNode.x1?.baseVal?.value,\n cy: lineNode.y1?.baseVal?.value,\n },\n to: { cx, cy },\n };\n });\n\n circlesAnimation\n .attr('opacity', 0)\n .attr('cx', (_, index) => attrs[index].from?.cx)\n .attr('cy', (_, index) => attrs[index].from?.cy);\n circlesAnimation\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('cx', (_, index) => attrs[index].to?.cx)\n .attr('cy', (_, index) => attrs[index].to?.cy);\n }\n if (iconsNodes.length > 0) {\n const attrs = iconsNodes.map((node) => {\n const x = node.x?.baseVal?.value;\n const y = node.y?.baseVal?.value;\n const width = node.width?.baseVal?.value;\n const height = node.height?.baseVal?.value;\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n x: lineNode.x1?.baseVal?.value - width / 2,\n y: lineNode.y1?.baseVal?.value - height / 2,\n },\n to: {\n x,\n y,\n },\n };\n });\n\n iconsAnimation\n .attr('opacity', 0)\n .attr('x', (_, index) => attrs[index].from?.x)\n .attr('y', (_, index) => attrs[index].from?.y);\n iconsAnimation\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x', (_, index) => attrs[index].to?.x)\n .attr('y', (_, index) => attrs[index].to?.y);\n }\n if (linesNodes.length > 0) {\n const attrs = linesNodes.map((node) => {\n const x2 = node.x2?.baseVal?.value;\n const y2 = node.y2?.baseVal?.value;\n return {\n from: {\n x2: node.x1?.baseVal?.value,\n y2: node.y1?.baseVal?.value,\n },\n to: {\n x2,\n y2,\n },\n };\n });\n\n linesAnimation\n .attr('opacity', 0)\n .attr('x2', (_, index) => attrs[index].from?.x2)\n .attr('y2', (_, index) => attrs[index].from?.y2);\n linesAnimation\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x2', (_, index) => attrs[index].to?.x2)\n .attr('y2', (_, index) => attrs[index].to?.y2);\n }\n if (labelsNodes.length > 0) {\n labelsAnimation.attr('opacity', 0);\n labelsAnimation.transition().duration(duration).attr('opacity', 1);\n }\n }\n\n componentDidUpdate(prevProps: RootAsProps) {\n if (prevProps.$rootProps.data?.length !== this.asProps.data?.length) {\n this.runAppearAnimation();\n }\n }\n\n componentDidMount() {\n this.runAppearAnimation();\n }\n\n handleRadianClick(key: string) {\n return (event: React.MouseEvent) => {\n const newKey = key !== this.asProps.activeKey ? key : null;\n this.handlers.activeKey(newKey, event);\n };\n }\n\n computeTextWidth() {\n const { data, textSize } = this.asProps;\n const widths = data.map(({ label }) => measureText(label, textSize));\n\n return Math.max(...widths);\n }\n\n getTitleProps() {\n const { uid, size, textSize } = this.asProps;\n\n const [width, height] = size;\n const center = [width / 2, height / 2];\n const [x, y] = center;\n return {\n x,\n y,\n textSize: textSize * 1.5,\n ['data-radial-animation']: `${uid}-label`,\n } as IRadialTreeTitleProps;\n }\n\n getRadianProps() {\n const { data, ...restRootProps } = this.asProps;\n const textWidth = this.computeTextWidth();\n\n return {\n ...restRootProps,\n radiansCount: data.length,\n data,\n textWidth,\n onRadianClick: this.handleRadianClick,\n } as IRadialTreeRadianProps;\n }\n\n render() {\n const SRadialTree = this.Element;\n const { Children } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n\n return sstyled(this.asProps.styles)(\n <SRadialTree render=\"g\">\n <Children />\n </SRadialTree>,\n );\n }\n}\n\nexport interface IRadialTreeRadianProps extends IRadialTreeProps {\n radiansCount?: number;\n textWidth?: number;\n onRadianClick?: (key: string) => (event: React.MouseEvent) => void;\n}\n\ntype RadianAsProps = RootAsProps & {\n radiansCount: number;\n textWidth: number;\n onRadianClick: (key: string) => (event: React.MouseEvent) => void;\n};\n\nclass RadialTreeRadian extends Component<RadianAsProps> {\n static displayName = 'RadialTreeRadian';\n static style = style;\n\n static defaultProps: Partial<IRadialTreeRadianProps> = {\n centralMargin: 50,\n labelMargin: 2,\n iconColor: '#fff',\n capSize: 16,\n iconSize: 16,\n textSize: 14,\n };\n Element!: React.FC<{ render: string }>;\n\n constructor(props: any) {\n super(props);\n this.renderRadian = this.renderRadian.bind(this);\n }\n\n getInteractiveAreaProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xStart, yStart, xLabelCenter, yLabelCenter, capSize } = this.computeRadianPosition(\n data,\n index,\n );\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xLabelCenter,\n y2: yLabelCenter,\n strokeWidth: capSize * 3,\n } as IRadialTreeRadianInteractiveAreaProps;\n }\n getLineProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xStart, yStart, xEnd, yEnd } = this.computeRadianPosition(data, index);\n const { uid, transparent } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xEnd,\n y2: yEnd,\n stroke: color,\n transparent,\n ['data-radial-animation']: `${uid}-line`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianLineProps;\n }\n getCapProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xEnd, yEnd, capSize } = this.computeRadianPosition(data, index);\n const { uid, transparent } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xEnd,\n y: yEnd,\n radius: capSize,\n color,\n transparent,\n ['data-radial-animation']: `${uid}-cap-circle`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianCapProps;\n }\n getIconProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xEnd, yEnd, isActive } = this.computeRadianPosition(data, index);\n const { uid } = this.asProps;\n const iconColor = data.iconColor ?? this.asProps.iconColor;\n const iconSize = data.iconSize ?? this.asProps.iconSize;\n const icon = data.icon ?? this.asProps.icon;\n\n return {\n x: xEnd - iconSize! / 2,\n y: yEnd - iconSize! / 2,\n iconSize,\n color: iconColor ?? '#fff',\n ['data-radial-animation']: `${uid}-cap-icon`,\n ['data-radian-index']: index,\n icon,\n isActive,\n } as IRadialTreeRadianIconProps;\n }\n getLabelProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xLabelCenter, yLabelCenter, labelAngle, isHorizontal } = this.computeRadianPosition(\n data,\n index,\n );\n const { uid, textSize, transparent } = this.asProps;\n const { label } = data;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xLabelCenter,\n y: yLabelCenter,\n angle: labelAngle,\n ['data-radial-animation']: `${uid}-label`,\n ['data-radian-index']: index,\n label,\n color,\n isHorizontal,\n textSize,\n transparent,\n } as IRadialTreeRadianLabelProps;\n }\n\n getRadianKey(data: RadianData, index: number) {\n return data.key ?? `radian-${index}`;\n }\n\n computeRadianPosition(data: RadianData, index: number) {\n const { centralMargin, labelMargin, angleOffset, activeKey, size, radiansCount, textWidth } =\n this.asProps;\n const [width, height] = size;\n const key = this.getRadianKey(data, index);\n const isActive = activeKey === key;\n const baseCapSize = data.capSize ?? this.asProps.capSize;\n const capSize = baseCapSize * (isActive ? 1 : 0.5);\n\n const minDemSize = Math.min(width, height) / 2;\n const length = Math.max(\n minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2,\n 10,\n );\n\n const angle = baseAngle + angleOffset + (index / radiansCount) * (Math.PI * 2);\n const isHorizontal =\n (angle - baseAngle > (1 / 6) * Math.PI && angle - baseAngle < (5 / 6) * Math.PI) ||\n (angle - baseAngle > (7 / 6) * Math.PI && angle - baseAngle < (11 / 6) * Math.PI);\n const topAngle = -Math.PI / 2;\n const labelAngle = ((angle - topAngle) % Math.PI) + topAngle;\n\n const center = [width / 2, height / 2];\n const [xCenter, yCenter] = center;\n const start = [\n xCenter + Math.cos(angle) * centralMargin,\n yCenter + Math.sin(angle) * centralMargin,\n ];\n const end = [\n xCenter + Math.cos(angle) * (centralMargin + length),\n yCenter + Math.sin(angle) * (centralMargin + length),\n ];\n const [xStart, yStart] = start;\n const [xEnd, yEnd] = end;\n\n const labelCenter = [\n xCenter +\n Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n yCenter +\n Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n ];\n const [xLabelCenter, yLabelCenter] = labelCenter;\n\n return {\n xStart,\n yStart,\n xEnd,\n yEnd,\n xLabelCenter,\n yLabelCenter,\n labelAngle,\n isHorizontal,\n capSize,\n isActive,\n };\n }\n\n renderRadian(data: RadianData, index: number) {\n const { styles, Children, onRadianClick } = this.asProps;\n const key = this.getRadianKey(data, index);\n const SRadian = 'g';\n\n let children = getOriginChildren(Children);\n\n if (typeof children === 'function') {\n const _child = this.asProps.children;\n const mergedProps = assignProps(children(this.asProps), this.asProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n this.asProps.dataHintsHandler.describeValueEntity(`${index}.${data.label}`, data.label);\n\n // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian aria-hidden key={key} onClick={onRadianClick(key)}>\n <InteractiveArea />\n {children}\n </SRadian>,\n );\n }\n\n render() {\n const { data } = this.asProps;\n const SRadianList = 'g';\n\n return sstyled(this.asProps.styles)(\n <SRadianList>{data.map((data, index) => this.renderRadian(data, index))}</SRadianList>,\n );\n }\n}\n\nexport interface IRadialTreeRadianInteractiveAreaProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n strokeWidth?: number;\n}\ntype RadialTreeRadianInteractiveAreaAsProps = IRadialTreeRadianInteractiveAreaProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst InteractiveArea: React.FC<RadialTreeRadianInteractiveAreaAsProps> = ({\n Element: SInteractiveArea,\n styles,\n}) => {\n return sstyled(styles)(\n <SInteractiveArea stroke=\"transparent\" render=\"line\" />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLineProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n stroke?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-line`;\n ['data-radian-index']?: number;\n}\ntype RadialTreeRadianLineAsProps = IRadialTreeRadianLineProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Line: React.FC<RadialTreeRadianLineAsProps> = ({\n Element: SLine,\n styles,\n stroke,\n transparent,\n}) => {\n return sstyled(styles)(\n <SLine render=\"line\" stroke={stroke} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianCapProps {\n x?: number;\n y?: number;\n radius?: number;\n color?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-cap-circle`;\n ['data-radian-index']?: number;\n}\ntype RadialTreeRadianCapAsProps = IRadialTreeRadianCapProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Cap: React.FC<RadialTreeRadianCapAsProps> = ({\n Element: SCap,\n styles,\n x,\n y,\n radius,\n color,\n transparent,\n}) => {\n return sstyled(styles)(\n <SCap render=\"circle\" cx={x} cy={y} r={radius} fill={color} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianIconProps {\n x?: number;\n y?: number;\n iconSize?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-icon`;\n ['data-radian-index']?: number;\n tag?: React.FC;\n isActive?: boolean;\n transparent?: boolean;\n}\ntype RadialTreeRadianIconAsProps = IRadialTreeRadianIconProps & {\n Element: React.FC<{ render: string | React.FC; transparent: boolean } & React.SVGProps<any>>;\n x: number;\n y: number;\n iconSize: number;\n styles: React.CSSProperties;\n};\nconst Icon: React.FC<RadialTreeRadianIconAsProps> = ({\n Element: SIcon,\n styles,\n isActive,\n tag,\n x,\n y,\n iconSize,\n transparent,\n}) => {\n if (!(isActive && tag)) return null;\n const width = iconSize;\n const height = iconSize;\n return sstyled(styles)(\n <SIcon x={x} y={y} width={width} height={height} render={tag} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLabelProps {\n x?: number;\n y?: number;\n color?: string;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n ['data-radian-index']?: number;\n label?: string;\n isHorizontal?: boolean;\n angle?: number;\n transparent?: boolean;\n}\ntype RadialTreeRadianLabelAsProps = IRadialTreeRadianLabelProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n styles: React.CSSProperties;\n x: number;\n y: number;\n angle: number;\n textSize: number;\n};\nconst Label: React.FC<RadialTreeRadianLabelAsProps> = ({\n Element: SLabel,\n Children,\n styles,\n label,\n color,\n isHorizontal,\n x,\n y,\n textSize,\n angle,\n transparent,\n}) => {\n const lines = String(label).split('\\n');\n const linesCount = lines.length;\n const SLabelLine = 'tspan';\n\n const angleDegs = ((angle / Math.PI) * 180).toFixed(2);\n const transformOrigin = [x.toFixed(2), y.toFixed(2)];\n const transform = `rotate(${[angleDegs, ...transformOrigin].join(', ')})`;\n\n const sstyles = sstyled(styles);\n const sLabelStyles = sstyles.cn('SLabel', {\n color,\n 'color-hovered': shade(color, -0.12),\n 'text-cursor': isHorizontal ? 'text' : 'vertical-text',\n transparent,\n });\n\n return (\n <SLabel\n aria-hidden\n render=\"text\"\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n className={sLabelStyles.className}\n style={sLabelStyles.style}\n x={x.toFixed(2)}\n y={y.toFixed(2)}\n transform={transform}\n >\n {lines.map((lineText, lineIndex) => (\n <SLabelLine\n x={x}\n y={y + (lineIndex - (linesCount - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </SLabelLine>\n ))}\n <Children />\n </SLabel>\n ) as React.ReactElement;\n};\n\nconst Radian = createElement(RadialTreeRadian, {\n InteractiveArea,\n Line,\n Cap,\n Icon,\n Label,\n});\n\nexport interface IRadialTreeTitleProps {\n x?: number;\n y?: number;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n color?: string;\n}\ntype RadialTreeTitleAsProps = IRadialTreeTitleProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n children: React.ReactNode;\n styles: React.CSSProperties;\n dataHintsHandler: DataHintsHandler;\n};\nconst Title: React.FC<RadialTreeTitleAsProps> = ({\n Element: STitle,\n Children,\n children,\n styles,\n textSize,\n color,\n x,\n y,\n dataHintsHandler,\n}) => {\n if (typeof children === 'string') {\n dataHintsHandler.setTitle('vertical', children);\n }\n return sstyled(styles)(\n <STitle\n aria-hidden\n render=\"text\"\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={textSize}\n fill={color}\n x={x}\n y={y}\n >\n <Children />\n </STitle>,\n ) as React.ReactElement;\n};\n\nconst RadialTree = createElement(RadialTreeBase, { Title, Radian }) as (<T>(\n props: MapProps<IRadialTreeProps & T>,\n) => ReturnEl) & {\n Title: <T>(props: MapProps<IRadialTreeTitleProps & T>) => ReturnEl;\n Radian: (<T>(props: MapProps<IRadialTreeRadianProps & T>) => ReturnEl) & {\n Line: <T>(props: MapProps<IRadialTreeRadianLineProps & T>) => ReturnEl;\n Cap: <T>(props: MapProps<IRadialTreeRadianCapProps & T>) => ReturnEl;\n Icon: <T>(props: MapProps<IRadialTreeRadianIconProps & T>) => ReturnEl;\n Label: <T>(props: MapProps<IRadialTreeRadianLabelProps & T>) => ReturnEl;\n };\n};\n\nexport default RadialTree;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,eAA3B;AACA,SAASC,SAAT,EAAoBC,OAApB,QAA6C,eAA7C;AACA,OAAOC,mBAAP,MAAgC,6BAAhC;AACA,SAASC,KAAT,QAAsB,0BAAtB;AACA,OAAOC,WAAP,MAAwB,gCAAxB;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,SAASC,WAAT,QAA4B,SAA5B;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAMC,SAAS,GAAG,CAACC,IAAI,CAACC,EAAN,GAAW,CAA7B,C,CAAgC;;IAyH1BC,c;;;;;EAmBJ,wBAAYC,KAAZ,EAAwB;IAAA;;IAAA;;IACtB,0BAAMA,KAAN;;IADsB;;IAEtB,MAAKC,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBC,IAAvB,+BAAzB;IAFsB;EAGvB;;;;WAED,6BAAoB;MAClB,OAAO;QACLC,SAAS,EAAE;MADN,CAAP;IAGD;;;WAED,8BAAqB;MAAA;;MACnB,oBAA0B,KAAKC,OAA/B;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,GAAlB,iBAAkBA,GAAlB;MACA,IAAMC,kBAAkB,yBAAGC,MAAM,CAACC,UAAP,CAAkB,kCAAlB,CAAH,uDAAG,mBAAuDC,OAAlF;MAEA;;MACA,IAAI,EAAEL,QAAQ,GAAG,CAAb,CAAJ,EAAqB;MACrB,IAAIE,kBAAJ,EAAwB;MAExB,IAAMI,gBAAgB,GAAGxB,UAAU,GAChCyB,SADsB,GAEtBC,SAFsB,kCAEcP,GAFd,kBAAzB;MAGA,IAAMQ,cAAc,GAAG3B,UAAU,GAC9ByB,SADoB,GAEpBC,SAFoB,kCAEgBP,GAFhB,gBAAvB;MAGA,IAAMS,cAAc,GAAG5B,UAAU,GAC9ByB,SADoB,GAEpBC,SAFoB,kCAEgBP,GAFhB,YAAvB;MAGA,IAAMU,eAAe,GAAG7B,UAAU,GAC/ByB,SADqB,GAErBC,SAFqB,kCAEeP,GAFf,aAAxB;MAGA,IAAMW,YAAY,GAAGN,gBAAgB,CAACO,KAAjB,EAArB;MACA,IAAMC,UAAU,GAAGL,cAAc,CAACI,KAAf,EAAnB;MACA,IAAME,UAAU,GAAGL,cAAc,CAACG,KAAf,EAAnB;MACA,IAAMG,WAAW,GAAGN,cAAc,CAACG,KAAf,EAApB;;MAEA,IAAID,YAAY,CAACK,MAAb,GAAsB,CAA1B,EAA6B;QAC3B,IAAMC,KAAK,GAAGN,YAAY,CAACO,GAAb,CAAiB,UAACC,IAAD,EAAU;UAAA;;UACvC,IAAMC,EAAE,eAAGD,IAAI,CAACC,EAAR,iEAAG,SAASC,OAAZ,qDAAG,iBAAkBC,KAA7B;UACA,IAAMC,EAAE,eAAGJ,IAAI,CAACI,EAAR,iEAAG,SAASF,OAAZ,qDAAG,iBAAkBC,KAA7B;UACA,IAAME,WAAW,GAAGC,QAAQ,CAACN,IAAI,CAACO,OAAL,CAAaF,WAAd,EAA4B,EAA5B,CAA5B;UACA,IAAMG,QAAQ,GAAGb,UAAU,CAACU,WAAD,CAA3B;UACA,OAAO;YACLI,IAAI,EAAE;cACJR,EAAE,iBAAEO,QAAQ,CAACE,EAAX,uEAAE,YAAaR,OAAf,wDAAE,oBAAsBC,KADtB;cAEJC,EAAE,iBAAEI,QAAQ,CAACG,EAAX,uEAAE,YAAaT,OAAf,wDAAE,oBAAsBC;YAFtB,CADD;YAKLS,EAAE,EAAE;cAAEX,EAAE,EAAFA,EAAF;cAAMG,EAAE,EAAFA;YAAN;UALC,CAAP;QAOD,CAZa,CAAd;QAcAlB,gBAAgB,CACb2B,IADH,CACQ,SADR,EACmB,CADnB,EAEGA,IAFH,CAEQ,IAFR,EAEc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,4BAAcjB,KAAK,CAACiB,KAAD,CAAL,CAAaN,IAA3B,sDAAc,kBAAmBR,EAAjC;QAAA,CAFd,EAGGY,IAHH,CAGQ,IAHR,EAGc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,6BAAcjB,KAAK,CAACiB,KAAD,CAAL,CAAaN,IAA3B,uDAAc,mBAAmBL,EAAjC;QAAA,CAHd;QAIAlB,gBAAgB,CACbxB,UADH,GAEGkB,QAFH,CAEYA,QAFZ,EAGGiC,IAHH,CAGQ,SAHR,EAGmB,CAHnB,EAIGA,IAJH,CAIQ,IAJR,EAIc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,0BAAcjB,KAAK,CAACiB,KAAD,CAAL,CAAaH,EAA3B,oDAAc,gBAAiBX,EAA/B;QAAA,CAJd,EAKGY,IALH,CAKQ,IALR,EAKc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,2BAAcjB,KAAK,CAACiB,KAAD,CAAL,CAAaH,EAA3B,qDAAc,iBAAiBR,EAA/B;QAAA,CALd;MAMD;;MACD,IAAIV,UAAU,CAACG,MAAX,GAAoB,CAAxB,EAA2B;QACzB,IAAMC,MAAK,GAAGJ,UAAU,CAACK,GAAX,CAAe,UAACC,IAAD,EAAU;UAAA;;UACrC,IAAMgB,CAAC,cAAGhB,IAAI,CAACgB,CAAR,+DAAG,QAAQd,OAAX,oDAAG,gBAAiBC,KAA3B;UACA,IAAMc,CAAC,cAAGjB,IAAI,CAACiB,CAAR,+DAAG,QAAQf,OAAX,oDAAG,gBAAiBC,KAA3B;UACA,IAAMe,KAAK,kBAAGlB,IAAI,CAACkB,KAAR,uEAAG,YAAYhB,OAAf,wDAAG,oBAAqBC,KAAnC;UACA,IAAMgB,MAAM,mBAAGnB,IAAI,CAACmB,MAAR,yEAAG,aAAajB,OAAhB,yDAAG,qBAAsBC,KAArC;UACA,IAAME,WAAW,GAAGC,QAAQ,CAACN,IAAI,CAACO,OAAL,CAAaF,WAAd,EAA4B,EAA5B,CAA5B;UACA,IAAMG,QAAQ,GAAGb,UAAU,CAACU,WAAD,CAA3B;UACA,OAAO;YACLI,IAAI,EAAE;cACJO,CAAC,EAAE,iBAAAR,QAAQ,CAACE,EAAT,sFAAaR,OAAb,8EAAsBC,KAAtB,IAA8Be,KAAK,GAAG,CADrC;cAEJD,CAAC,EAAE,iBAAAT,QAAQ,CAACG,EAAT,sFAAaT,OAAb,8EAAsBC,KAAtB,IAA8BgB,MAAM,GAAG;YAFtC,CADD;YAKLP,EAAE,EAAE;cACFI,CAAC,EAADA,CADE;cAEFC,CAAC,EAADA;YAFE;UALC,CAAP;QAUD,CAjBa,CAAd;;QAmBA5B,cAAc,CACXwB,IADH,CACQ,SADR,EACmB,CADnB,EAEGA,IAFH,CAEQ,GAFR,EAEa,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,6BAAcjB,MAAK,CAACiB,KAAD,CAAL,CAAaN,IAA3B,uDAAc,mBAAmBO,CAAjC;QAAA,CAFb,EAGGH,IAHH,CAGQ,GAHR,EAGa,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,6BAAcjB,MAAK,CAACiB,KAAD,CAAL,CAAaN,IAA3B,uDAAc,mBAAmBQ,CAAjC;QAAA,CAHb;QAIA5B,cAAc,CACX3B,UADH,GAEGkB,QAFH,CAEYA,QAFZ,EAGGiC,IAHH,CAGQ,SAHR,EAGmB,CAHnB,EAIGA,IAJH,CAIQ,GAJR,EAIa,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,2BAAcjB,MAAK,CAACiB,KAAD,CAAL,CAAaH,EAA3B,qDAAc,iBAAiBI,CAA/B;QAAA,CAJb,EAKGH,IALH,CAKQ,GALR,EAKa,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,2BAAcjB,MAAK,CAACiB,KAAD,CAAL,CAAaH,EAA3B,qDAAc,iBAAiBK,CAA/B;QAAA,CALb;MAMD;;MACD,IAAItB,UAAU,CAACE,MAAX,GAAoB,CAAxB,EAA2B;QACzB,IAAMC,OAAK,GAAGH,UAAU,CAACI,GAAX,CAAe,UAACC,IAAD,EAAU;UAAA;;UACrC,IAAMoB,EAAE,eAAGpB,IAAI,CAACoB,EAAR,iEAAG,SAASlB,OAAZ,qDAAG,iBAAkBC,KAA7B;UACA,IAAMkB,EAAE,eAAGrB,IAAI,CAACqB,EAAR,iEAAG,SAASnB,OAAZ,qDAAG,iBAAkBC,KAA7B;UACA,OAAO;YACLM,IAAI,EAAE;cACJW,EAAE,cAAEpB,IAAI,CAACU,EAAP,iEAAE,SAASR,OAAX,qDAAE,iBAAkBC,KADlB;cAEJkB,EAAE,cAAErB,IAAI,CAACW,EAAP,iEAAE,SAAST,OAAX,qDAAE,iBAAkBC;YAFlB,CADD;YAKLS,EAAE,EAAE;cACFQ,EAAE,EAAFA,EADE;cAEFC,EAAE,EAAFA;YAFE;UALC,CAAP;QAUD,CAba,CAAd;;QAeA/B,cAAc,CACXuB,IADH,CACQ,SADR,EACmB,CADnB,EAEGA,IAFH,CAEQ,IAFR,EAEc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,6BAAcjB,OAAK,CAACiB,KAAD,CAAL,CAAaN,IAA3B,uDAAc,mBAAmBW,EAAjC;QAAA,CAFd,EAGGP,IAHH,CAGQ,IAHR,EAGc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,8BAAcjB,OAAK,CAACiB,KAAD,CAAL,CAAaN,IAA3B,wDAAc,oBAAmBY,EAAjC;QAAA,CAHd;QAIA/B,cAAc,CACX5B,UADH,GAEGkB,QAFH,CAEYA,QAFZ,EAGGiC,IAHH,CAGQ,SAHR,EAGmB,CAHnB,EAIGA,IAJH,CAIQ,IAJR,EAIc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,2BAAcjB,OAAK,CAACiB,KAAD,CAAL,CAAaH,EAA3B,qDAAc,iBAAiBQ,EAA/B;QAAA,CAJd,EAKGP,IALH,CAKQ,IALR,EAKc,UAACC,CAAD,EAAIC,KAAJ;UAAA;;UAAA,4BAAcjB,OAAK,CAACiB,KAAD,CAAL,CAAaH,EAA3B,sDAAc,kBAAiBS,EAA/B;QAAA,CALd;MAMD;;MACD,IAAIzB,WAAW,CAACC,MAAZ,GAAqB,CAAzB,EAA4B;QAC1BN,eAAe,CAACsB,IAAhB,CAAqB,SAArB,EAAgC,CAAhC;QACAtB,eAAe,CAAC7B,UAAhB,GAA6BkB,QAA7B,CAAsCA,QAAtC,EAAgDiC,IAAhD,CAAqD,SAArD,EAAgE,CAAhE;MACD;IACF;;;WAED,4BAAmBS,SAAnB,EAA2C;MAAA;;MACzC,IAAI,0BAAAA,SAAS,CAACC,UAAV,CAAqBC,IAArB,gFAA2B3B,MAA3B,6BAAsC,KAAKlB,OAAL,CAAa6C,IAAnD,uDAAsC,mBAAmB3B,MAAzD,CAAJ,EAAqE;QACnE,KAAK4B,kBAAL;MACD;IACF;;;WAED,6BAAoB;MAClB,KAAKA,kBAAL;IACD;;;WAED,2BAAkBC,GAAlB,EAA+B;MAAA;;MAC7B,OAAO,UAACC,KAAD,EAA6B;QAClC,IAAMC,MAAM,GAAGF,GAAG,KAAK,MAAI,CAAC/C,OAAL,CAAaD,SAArB,GAAiCgD,GAAjC,GAAuC,IAAtD;;QACA,MAAI,CAACG,QAAL,CAAcnD,SAAd,CAAwBkD,MAAxB,EAAgCD,KAAhC;MACD,CAHD;IAID;;;WAED,4BAAmB;MACjB,qBAA2B,KAAKhD,OAAhC;MAAA,IAAQ6C,IAAR,kBAAQA,IAAR;MAAA,IAAcM,QAAd,kBAAcA,QAAd;MACA,IAAMC,MAAM,GAAGP,IAAI,CAACzB,GAAL,CAAS;QAAA,IAAGiC,KAAH,SAAGA,KAAH;QAAA,OAAe9D,WAAW,CAAC8D,KAAD,EAAQF,QAAR,CAA1B;MAAA,CAAT,CAAf;MAEA,OAAO1D,IAAI,CAAC6D,GAAL,OAAA7D,IAAI,qBAAQ2D,MAAR,EAAX;IACD;;;WAED,yBAAgB;MACd,qBAAgC,KAAKpD,OAArC;MAAA,IAAQE,GAAR,kBAAQA,GAAR;MAAA,IAAaqD,IAAb,kBAAaA,IAAb;MAAA,IAAmBJ,QAAnB,kBAAmBA,QAAnB;;MAEA,2BAAwBI,IAAxB;MAAA,IAAOhB,KAAP;MAAA,IAAcC,MAAd;;MACA,IAAMgB,MAAM,GAAG,CAACjB,KAAK,GAAG,CAAT,EAAYC,MAAM,GAAG,CAArB,CAAf;MACA,IAAOH,CAAP,GAAemB,MAAf;MAAA,IAAUlB,CAAV,GAAekB,MAAf;MACA;QACEnB,CAAC,EAADA,CADF;QAEEC,CAAC,EAADA,CAFF;QAGEa,QAAQ,EAAEA,QAAQ,GAAG;MAHvB,GAIG,uBAJH,YAIgCjD,GAJhC;IAMD;;;WAED,0BAAiB;MACf,qBAAmC,KAAKF,OAAxC;MAAA,IAAQ6C,IAAR,kBAAQA,IAAR;MAAA,IAAiBY,aAAjB;;MACA,IAAMC,SAAS,GAAG,KAAKC,gBAAL,EAAlB;MAEA,uCACKF,aADL;QAEEG,YAAY,EAAEf,IAAI,CAAC3B,MAFrB;QAGE2B,IAAI,EAAJA,IAHF;QAIEa,SAAS,EAATA,SAJF;QAKEG,aAAa,EAAE,KAAKhE;MALtB;IAOD;;;WAED,kBAAS;MAAA;;MACP,IAAMiE,WAAW,GAAG,KAAKC,OAAzB;MACA,IAAQC,QAAR,GAAqB,KAAKhE,OAA1B,CAAQgE,QAAR;MACA,KAAKhE,OAAL,CAAaiE,gBAAb,CAA8BC,iBAA9B,CAAgD,YAAhD;MAEA,cAAOjF,OAAO,CAAC,KAAKe,OAAL,CAAamE,MAAd,CAAd,eACE,oBAAC,WAAD;QAAA,UAAoB;MAApB,iBACE,oBAAC,QAAD,0BADF,CADF;IAKD;;;;EA9M0BnF,S;;gBAAvBW,c,iBACiB,Y;;gBADjBA,c,WAEWyE,K;;gBAFXzE,c,aAGa,CAACT,mBAAmB,EAApB,C;;gBAHbS,c,kBAK6C;EAC/C0E,WAAW,EAAE,CADkC;EAE/CpE,QAAQ,EAAE,GAFqC;EAG/CqE,aAAa,EAAE,EAHgC;EAI/CC,WAAW,EAAE,CAJkC;EAK/CC,SAAS,EAAE,MALoC;EAM/CC,OAAO,EAAE,CANsC;EAO/CC,QAAQ,EAAE,CAPqC;EAQ/CvB,QAAQ,EAAE,EARqC;EAS/CwB,gBAAgB,EAAE;AAT6B,C;;IAwN7CC,gB;;;;;EAcJ,0BAAYhF,KAAZ,EAAwB;IAAA;;IAAA;;IACtB,4BAAMA,KAAN;;IADsB;;IAEtB,OAAKiF,YAAL,GAAoB,OAAKA,YAAL,CAAkB/E,IAAlB,gCAApB;IAFsB;EAGvB;;;;WAED,yCAA0EsC,KAA1E,EAAyF;MAAA,IAA/DQ,UAA+D,UAA/DA,UAA+D;MACvF,IAAMC,IAAI,GAAGD,UAAU,CAACC,IAAX,CAAiBT,KAAjB,CAAb;;MACA,4BAAgE,KAAK0C,qBAAL,CAC9DjC,IAD8D,EAE9DT,KAF8D,CAAhE;MAAA,IAAQ2C,MAAR,yBAAQA,MAAR;MAAA,IAAgBC,MAAhB,yBAAgBA,MAAhB;MAAA,IAAwBC,YAAxB,yBAAwBA,YAAxB;MAAA,IAAsCC,YAAtC,yBAAsCA,YAAtC;MAAA,IAAoDT,OAApD,yBAAoDA,OAApD;;MAKA,OAAO;QACL1C,EAAE,EAAEgD,MADC;QAEL/C,EAAE,EAAEgD,MAFC;QAGLvC,EAAE,EAAEwC,YAHC;QAILvC,EAAE,EAAEwC,YAJC;QAKLC,WAAW,EAAEV,OAAO,GAAG;MALlB,CAAP;IAOD;;;WACD,8BAA+DrC,KAA/D,EAA8E;MAAA;;MAAA,IAA/DQ,UAA+D,UAA/DA,UAA+D;MAC5E,IAAMC,IAAI,GAAGD,UAAU,CAACC,IAAX,CAAiBT,KAAjB,CAAb;;MACA,6BAAuC,KAAK0C,qBAAL,CAA2BjC,IAA3B,EAAiCT,KAAjC,CAAvC;MAAA,IAAQ2C,MAAR,0BAAQA,MAAR;MAAA,IAAgBC,MAAhB,0BAAgBA,MAAhB;MAAA,IAAwBI,IAAxB,0BAAwBA,IAAxB;MAAA,IAA8BC,IAA9B,0BAA8BA,IAA9B;;MACA,qBAA6B,KAAKrF,OAAlC;MAAA,IAAQE,GAAR,kBAAQA,GAAR;MAAA,IAAaoF,WAAb,kBAAaA,WAAb;MACA,IAAMC,KAAK,kBAAG1C,IAAI,CAAC0C,KAAR,qDAAiB,KAAKvF,OAAL,CAAauF,KAAzC;MAEA;QACExD,EAAE,EAAEgD,MADN;QAEE/C,EAAE,EAAEgD,MAFN;QAGEvC,EAAE,EAAE2C,IAHN;QAIE1C,EAAE,EAAE2C,IAJN;QAKEG,MAAM,EAAED,KALV;QAMED,WAAW,EAAXA;MANF,2BAOG,uBAPH,YAOgCpF,GAPhC,qCAQG,mBARH,EAQyBkC,KARzB;IAUD;;;WACD,6BAA8DA,KAA9D,EAA6E;MAAA;;MAAA,IAA/DQ,UAA+D,UAA/DA,UAA+D;MAC3E,IAAMC,IAAI,GAAGD,UAAU,CAACC,IAAX,CAAiBT,KAAjB,CAAb;;MACA,6BAAgC,KAAK0C,qBAAL,CAA2BjC,IAA3B,EAAiCT,KAAjC,CAAhC;MAAA,IAAQgD,IAAR,0BAAQA,IAAR;MAAA,IAAcC,IAAd,0BAAcA,IAAd;MAAA,IAAoBZ,OAApB,0BAAoBA,OAApB;;MACA,qBAA6B,KAAKzE,OAAlC;MAAA,IAAQE,GAAR,kBAAQA,GAAR;MAAA,IAAaoF,WAAb,kBAAaA,WAAb;MACA,IAAMC,KAAK,mBAAG1C,IAAI,CAAC0C,KAAR,uDAAiB,KAAKvF,OAAL,CAAauF,KAAzC;MAEA;QACElD,CAAC,EAAE+C,IADL;QAEE9C,CAAC,EAAE+C,IAFL;QAGEI,MAAM,EAAEhB,OAHV;QAIEc,KAAK,EAALA,KAJF;QAKED,WAAW,EAAXA;MALF,2BAMG,uBANH,YAMgCpF,GANhC,2CAOG,mBAPH,EAOyBkC,KAPzB;IASD;;;WACD,8BAA+DA,KAA/D,EAA8E;MAAA;;MAAA,IAA/DQ,UAA+D,UAA/DA,UAA+D;MAC5E,IAAMC,IAAI,GAAGD,UAAU,CAACC,IAAX,CAAiBT,KAAjB,CAAb;;MACA,6BAAiC,KAAK0C,qBAAL,CAA2BjC,IAA3B,EAAiCT,KAAjC,CAAjC;MAAA,IAAQgD,IAAR,0BAAQA,IAAR;MAAA,IAAcC,IAAd,0BAAcA,IAAd;MAAA,IAAoBK,QAApB,0BAAoBA,QAApB;;MACA,IAAQxF,GAAR,GAAgB,KAAKF,OAArB,CAAQE,GAAR;MACA,IAAMsE,SAAS,sBAAG3B,IAAI,CAAC2B,SAAR,6DAAqB,KAAKxE,OAAL,CAAawE,SAAjD;MACA,IAAME,QAAQ,qBAAG7B,IAAI,CAAC6B,QAAR,2DAAoB,KAAK1E,OAAL,CAAa0E,QAA/C;MACA,IAAMiB,IAAI,iBAAG9C,IAAI,CAAC8C,IAAR,mDAAgB,KAAK3F,OAAL,CAAa2F,IAAvC;MAEA;QACEtD,CAAC,EAAE+C,IAAI,GAAGV,QAAQ,GAAI,CADxB;QAEEpC,CAAC,EAAE+C,IAAI,GAAGX,QAAQ,GAAI,CAFxB;QAGEA,QAAQ,EAARA,QAHF;QAIEa,KAAK,EAAEf,SAAF,aAAEA,SAAF,cAAEA,SAAF,GAAe;MAJtB,2BAKG,uBALH,YAKgCtE,GALhC,yCAMG,mBANH,EAMyBkC,KANzB,mCAOEuD,IAPF,uCAQED,QARF;IAUD;;;WACD,+BAAgEtD,KAAhE,EAA+E;MAAA;;MAAA,IAA/DQ,UAA+D,UAA/DA,UAA+D;MAC7E,IAAMC,IAAI,GAAGD,UAAU,CAACC,IAAX,CAAiBT,KAAjB,CAAb;;MACA,6BAAiE,KAAK0C,qBAAL,CAC/DjC,IAD+D,EAE/DT,KAF+D,CAAjE;MAAA,IAAQ6C,YAAR,0BAAQA,YAAR;MAAA,IAAsBC,YAAtB,0BAAsBA,YAAtB;MAAA,IAAoCU,UAApC,0BAAoCA,UAApC;MAAA,IAAgDC,YAAhD,0BAAgDA,YAAhD;;MAIA,qBAAuC,KAAK7F,OAA5C;MAAA,IAAQE,GAAR,kBAAQA,GAAR;MAAA,IAAaiD,QAAb,kBAAaA,QAAb;MAAA,IAAuBmC,WAAvB,kBAAuBA,WAAvB;MACA,IAAQjC,KAAR,GAAkBR,IAAlB,CAAQQ,KAAR;MACA,IAAMkC,KAAK,mBAAG1C,IAAI,CAAC0C,KAAR,uDAAiB,KAAKvF,OAAL,CAAauF,KAAzC;MAEA;QACElD,CAAC,EAAE4C,YADL;QAEE3C,CAAC,EAAE4C,YAFL;QAGEY,KAAK,EAAEF;MAHT,2BAIG,uBAJH,YAIgC1F,GAJhC,sCAKG,mBALH,EAKyBkC,KALzB,oCAMEiB,KANF,oCAOEkC,KAPF,2CAQEM,YARF,uCASE1C,QATF,0CAUEmC,WAVF;IAYD;;;WAED,sBAAazC,IAAb,EAA+BT,KAA/B,EAA8C;MAAA;;MAC5C,oBAAOS,IAAI,CAACE,GAAZ,kEAA6BX,KAA7B;IACD;;;WAED,+BAAsBS,IAAtB,EAAwCT,KAAxC,EAAuD;MAAA;;MACrD,qBACE,KAAKpC,OADP;MAAA,IAAQsE,aAAR,kBAAQA,aAAR;MAAA,IAAuBC,WAAvB,kBAAuBA,WAAvB;MAAA,IAAoCF,WAApC,kBAAoCA,WAApC;MAAA,IAAiDtE,SAAjD,kBAAiDA,SAAjD;MAAA,IAA4DwD,IAA5D,kBAA4DA,IAA5D;MAAA,IAAkEK,YAAlE,kBAAkEA,YAAlE;MAAA,IAAgFF,SAAhF,kBAAgFA,SAAhF;;MAEA,4BAAwBH,IAAxB;MAAA,IAAOhB,KAAP;MAAA,IAAcC,MAAd;;MACA,IAAMO,GAAG,GAAG,KAAKgD,YAAL,CAAkBlD,IAAlB,EAAwBT,KAAxB,CAAZ;MACA,IAAMsD,QAAQ,GAAG3F,SAAS,KAAKgD,GAA/B;MACA,IAAMiD,WAAW,oBAAGnD,IAAI,CAAC4B,OAAR,yDAAmB,KAAKzE,OAAL,CAAayE,OAAjD;MACA,IAAMA,OAAO,GAAGuB,WAAW,IAAIN,QAAQ,GAAG,CAAH,GAAO,GAAnB,CAA3B;MAEA,IAAMO,UAAU,GAAGxG,IAAI,CAACyG,GAAL,CAAS3D,KAAT,EAAgBC,MAAhB,IAA0B,CAA7C;MACA,IAAMtB,MAAM,GAAGzB,IAAI,CAAC6D,GAAL,CACb2C,UAAU,GAAGvC,SAAb,GAAyBsC,WAAzB,GAAuC1B,aAAvC,GAAuDC,WAAW,GAAG,CADxD,EAEb,EAFa,CAAf;MAKA,IAAMuB,KAAK,GAAGtG,SAAS,GAAG6E,WAAZ,GAA2BjC,KAAK,GAAGwB,YAAT,IAA0BnE,IAAI,CAACC,EAAL,GAAU,CAApC,CAAxC;MACA,IAAMmG,YAAY,GACfC,KAAK,GAAGtG,SAAR,GAAqB,IAAI,CAAL,GAAUC,IAAI,CAACC,EAAnC,IAAyCoG,KAAK,GAAGtG,SAAR,GAAqB,IAAI,CAAL,GAAUC,IAAI,CAACC,EAA7E,IACCoG,KAAK,GAAGtG,SAAR,GAAqB,IAAI,CAAL,GAAUC,IAAI,CAACC,EAAnC,IAAyCoG,KAAK,GAAGtG,SAAR,GAAqB,KAAK,CAAN,GAAWC,IAAI,CAACC,EAFhF;MAGA,IAAMyG,QAAQ,GAAG,CAAC1G,IAAI,CAACC,EAAN,GAAW,CAA5B;MACA,IAAMkG,UAAU,GAAI,CAACE,KAAK,GAAGK,QAAT,IAAqB1G,IAAI,CAACC,EAA3B,GAAiCyG,QAApD;MAEA,IAAM3C,MAAM,GAAG,CAACjB,KAAK,GAAG,CAAT,EAAYC,MAAM,GAAG,CAArB,CAAf;MACA,IAAO4D,OAAP,GAA2B5C,MAA3B;MAAA,IAAgB6C,OAAhB,GAA2B7C,MAA3B;MACA,IAAM8C,KAAK,GAAG,CACZF,OAAO,GAAG3G,IAAI,CAAC8G,GAAL,CAAST,KAAT,IAAkBxB,aADhB,EAEZ+B,OAAO,GAAG5G,IAAI,CAAC+G,GAAL,CAASV,KAAT,IAAkBxB,aAFhB,CAAd;MAIA,IAAMmC,GAAG,GAAG,CACVL,OAAO,GAAG3G,IAAI,CAAC8G,GAAL,CAAST,KAAT,KAAmBxB,aAAa,GAAGpD,MAAnC,CADA,EAEVmF,OAAO,GAAG5G,IAAI,CAAC+G,GAAL,CAASV,KAAT,KAAmBxB,aAAa,GAAGpD,MAAnC,CAFA,CAAZ;MAIA,IAAO6D,MAAP,GAAyBuB,KAAzB;MAAA,IAAetB,MAAf,GAAyBsB,KAAzB;MACA,IAAOlB,IAAP,GAAqBqB,GAArB;MAAA,IAAapB,IAAb,GAAqBoB,GAArB;MAEA,IAAMC,WAAW,GAAG,CAClBN,OAAO,GACL3G,IAAI,CAAC8G,GAAL,CAAST,KAAT,KAAmBxB,aAAa,GAAGpD,MAAhB,GAAyB8E,WAAzB,GAAuCtC,SAAS,GAAG,CAAnD,GAAuDa,WAA1E,CAFgB,EAGlB8B,OAAO,GACL5G,IAAI,CAAC+G,GAAL,CAASV,KAAT,KAAmBxB,aAAa,GAAGpD,MAAhB,GAAyB8E,WAAzB,GAAuCtC,SAAS,GAAG,CAAnD,GAAuDa,WAA1E,CAJgB,CAApB;MAMA,IAAOU,YAAP,GAAqCyB,WAArC;MAAA,IAAqBxB,YAArB,GAAqCwB,WAArC;MAEA,OAAO;QACL3B,MAAM,EAANA,MADK;QAELC,MAAM,EAANA,MAFK;QAGLI,IAAI,EAAJA,IAHK;QAILC,IAAI,EAAJA,IAJK;QAKLJ,YAAY,EAAZA,YALK;QAMLC,YAAY,EAAZA,YANK;QAOLU,UAAU,EAAVA,UAPK;QAQLC,YAAY,EAAZA,YARK;QASLpB,OAAO,EAAPA,OATK;QAULiB,QAAQ,EAARA;MAVK,CAAP;IAYD;;;WAED,sBAAa7C,IAAb,EAA+BT,KAA/B,EAA8C;MAAA;;MAC5C,qBAA4C,KAAKpC,OAAjD;MAAA,IAAQmE,MAAR,kBAAQA,MAAR;MAAA,IAAgBH,QAAhB,kBAAgBA,QAAhB;MAAA,IAA0BH,aAA1B,kBAA0BA,aAA1B;MACA,IAAMd,GAAG,GAAG,KAAKgD,YAAL,CAAkBlD,IAAlB,EAAwBT,KAAxB,CAAZ;MACA,IAAMuE,OAAO,GAAG,GAAhB;MAEA,IAAIC,QAAQ,GAAGvH,iBAAiB,CAAC2E,QAAD,CAAhC;;MAEA,IAAI,OAAO4C,QAAP,KAAoB,UAAxB,EAAoC;QAClC,IAAMC,MAAM,GAAG,KAAK7G,OAAL,CAAa4G,QAA5B;QACA,IAAME,WAAW,GAAG1H,WAAW,CAACwH,QAAQ,CAAC,KAAK5G,OAAN,CAAT,EAAyB,KAAKA,OAA9B,CAA/B;QACA4G,QAAQ,GAAGE,WAAW,CAACF,QAAvB;QACAE,WAAW,CAACF,QAAZ,GAAuBC,MAAvB;MACD;;MAED,KAAK7G,OAAL,CAAaiE,gBAAb,CAA8B8C,mBAA9B,WAAqD3E,KAArD,cAA8DS,IAAI,CAACQ,KAAnE,GAA4ER,IAAI,CAACQ,KAAjF,EAd4C,CAgB5C;;MACA,IAAM2D,eAAe,GAAIC,UAAU,CAACC,MAAZ,CAA2BF,eAAnD;MAEA,eAAO/H,OAAO,CAACkF,MAAD,CAAd,eACE,oBAAC,OAAD;QAAA;QAAA,OAA0BpB,GAA1B;QAAA,WAAwCc,aAAa,CAACd,GAAD;MAArD,iBACE,oBAAC,eAAD,kCADF,EAEG6D,QAFH,CADF;IAMD;;;WAED,kBAAS;MAAA;MAAA;;MACP,IAAQ/D,IAAR,GAAiB,KAAK7C,OAAtB,CAAQ6C,IAAR;MACA,IAAMsE,WAAW,GAAG,GAApB;MAEA,eAAOlI,OAAO,CAAC,KAAKe,OAAL,CAAamE,MAAd,CAAd,eACE,oBAAC,WAAD,+BAActB,IAAI,CAACzB,GAAL,CAAS,UAACyB,IAAD,EAAOT,KAAP;QAAA,OAAiB,MAAI,CAACyC,YAAL,CAAkBhC,IAAlB,EAAwBT,KAAxB,CAAjB;MAAA,CAAT,CAAd,CADF;IAGD;;;;EA7M4BpD,S;;gBAAzB4F,gB,iBACiB,kB;;gBADjBA,gB,WAEWR,K;;gBAFXQ,gB,kBAImD;EACrDN,aAAa,EAAE,EADsC;EAErDC,WAAW,EAAE,CAFwC;EAGrDC,SAAS,EAAE,MAH0C;EAIrDC,OAAO,EAAE,EAJ4C;EAKrDC,QAAQ,EAAE,EAL2C;EAMrDvB,QAAQ,EAAE;AAN2C,C;;AAuNzD,IAAM6D,eAAiE,GAAG,SAApEA,eAAoE,SAGpE;EAAA;;EAAA,IAFKI,gBAEL,UAFJrD,OAEI;EAAA,IADJI,MACI,UADJA,MACI;EACJ,eAAOlF,OAAO,CAACkF,MAAD,CAAd,eACE,oBAAC,gBAAD;IAAA,UAAyB,aAAzB;IAAA,UAA8C;EAA9C,GADF;AAGD,CAPD;;AAuBA,IAAMkD,IAA2C,GAAG,SAA9CA,IAA8C,SAK9C;EAAA;;EAAA,IAJKC,KAIL,UAJJvD,OAII;EAAA,IAHJI,MAGI,UAHJA,MAGI;EAAA,IAFJqB,MAEI,UAFJA,MAEI;EAAA,IADJF,WACI,UADJA,WACI;EACJ,eAAOrG,OAAO,CAACkF,MAAD,CAAd,eACE,oBAAC,KAAD;IAAA,UAAc,MAAd;IAAA,UAA6BqB,MAA7B;IAAA,eAAkDF;EAAlD,GADF;AAGD,CATD;;AAwBA,IAAMiC,GAAyC,GAAG,SAA5CA,GAA4C,SAQ5C;EAAA;;EAAA,IAPKC,IAOL,UAPJzD,OAOI;EAAA,IANJI,MAMI,UANJA,MAMI;EAAA,IALJ9B,CAKI,UALJA,CAKI;EAAA,IAJJC,CAII,UAJJA,CAII;EAAA,IAHJmD,MAGI,UAHJA,MAGI;EAAA,IAFJF,KAEI,UAFJA,KAEI;EAAA,IADJD,WACI,UADJA,WACI;EACJ,eAAOrG,OAAO,CAACkF,MAAD,CAAd,eACE,oBAAC,IAAD;IAAA,UAAa,QAAb;IAAA,MAA0B9B,CAA1B;IAAA,MAAiCC,CAAjC;IAAA,KAAuCmD,MAAvC;IAAA,QAAqDF,KAArD;IAAA,eAAyED;EAAzE,GADF;AAGD,CAZD;;AAgCA,IAAMmC,IAA2C,GAAG,SAA9CA,IAA8C,SAS9C;EAAA;;EAAA,IARKC,KAQL,UARJ3D,OAQI;EAAA,IAPJI,MAOI,UAPJA,MAOI;EAAA,IANJuB,QAMI,UANJA,QAMI;EAAA,IALJiC,GAKI,UALJA,GAKI;EAAA,IAJJtF,CAII,UAJJA,CAII;EAAA,IAHJC,CAGI,UAHJA,CAGI;EAAA,IAFJoC,QAEI,UAFJA,QAEI;EAAA,IADJY,WACI,UADJA,WACI;EACJ,IAAI,EAAEI,QAAQ,IAAIiC,GAAd,CAAJ,EAAwB,OAAO,IAAP;EACxB,IAAMpF,KAAK,GAAGmC,QAAd;EACA,IAAMlC,MAAM,GAAGkC,QAAf;EACA,eAAOzF,OAAO,CAACkF,MAAD,CAAd,eACE,oBAAC,KAAD;IAAA,KAAU9B,CAAV;IAAA,KAAgBC,CAAhB;IAAA,SAA0BC,KAA1B;IAAA,UAAyCC,MAAzC;IAAA,UAAyDmF,GAAzD;IAAA,eAA2ErC;EAA3E,GADF;AAGD,CAhBD;;AAuCA,IAAMsC,KAA6C,GAAG,SAAhDA,KAAgD,SAYhD;EAAA,IAXKC,MAWL,UAXJ9D,OAWI;EAAA,IAVJC,QAUI,UAVJA,QAUI;EAAA,IATJG,MASI,UATJA,MASI;EAAA,IARJd,KAQI,UARJA,KAQI;EAAA,IAPJkC,KAOI,UAPJA,KAOI;EAAA,IANJM,YAMI,UANJA,YAMI;EAAA,IALJxD,CAKI,UALJA,CAKI;EAAA,IAJJC,CAII,UAJJA,CAII;EAAA,IAHJa,QAGI,UAHJA,QAGI;EAAA,IAFJ2C,KAEI,UAFJA,KAEI;EAAA,IADJR,WACI,UADJA,WACI;EACJ,IAAMwC,KAAK,GAAGC,MAAM,CAAC1E,KAAD,CAAN,CAAc2E,KAAd,CAAoB,IAApB,CAAd;EACA,IAAMC,UAAU,GAAGH,KAAK,CAAC5G,MAAzB;EACA,IAAMgH,UAAU,GAAG,OAAnB;EAEA,IAAMC,SAAS,GAAG,CAAErC,KAAK,GAAGrG,IAAI,CAACC,EAAd,GAAoB,GAArB,EAA0B0I,OAA1B,CAAkC,CAAlC,CAAlB;EACA,IAAMC,eAAe,GAAG,CAAChG,CAAC,CAAC+F,OAAF,CAAU,CAAV,CAAD,EAAe9F,CAAC,CAAC8F,OAAF,CAAU,CAAV,CAAf,CAAxB;EACA,IAAME,SAAS,oBAAa,CAACH,SAAD,SAAeE,eAAf,EAAgCE,IAAhC,CAAqC,IAArC,CAAb,MAAf;EAEA,IAAMC,OAAO,GAAGvJ,OAAO,CAACkF,MAAD,CAAvB;EACA,IAAMsE,YAAY,GAAGD,OAAO,CAACE,EAAR,CAAW,QAAX,EAAqB;IACxCnD,KAAK,EAALA,KADwC;IAExC,iBAAiBpG,KAAK,CAACoG,KAAD,EAAQ,CAAC,IAAT,CAFkB;IAGxC,eAAeM,YAAY,GAAG,MAAH,GAAY,eAHC;IAIxCP,WAAW,EAAXA;EAJwC,CAArB,CAArB;EAOA,oBACE,oBAAC,MAAD;IACE,mBADF;IAEE,MAAM,EAAC,MAFT;IAGE,UAAU,EAAC,QAHb;IAIE,gBAAgB,EAAC,SAJnB;IAKE,SAAS,EAAEmD,YAAY,CAACE,SAL1B;IAME,KAAK,EAAEF,YAAY,CAACrE,KANtB;IAOE,CAAC,EAAE/B,CAAC,CAAC+F,OAAF,CAAU,CAAV,CAPL;IAQE,CAAC,EAAE9F,CAAC,CAAC8F,OAAF,CAAU,CAAV,CARL;IASE,SAAS,EAAEE;EATb,GAWGR,KAAK,CAAC1G,GAAN,CAAU,UAACwH,QAAD,EAAWC,SAAX;IAAA,oBACT,oBAAC,UAAD;MACE,CAAC,EAAExG,CADL;MAEE,CAAC,EAAEC,CAAC,GAAG,CAACuG,SAAS,GAAG,CAACZ,UAAU,GAAG,CAAd,IAAmB,CAAhC,IAAqC9E,QAF9C;MAGE,GAAG,aAAM0F,SAAN,cAAmBD,QAAnB;IAHL,GAKGA,QALH,CADS;EAAA,CAAV,CAXH,eAoBE,oBAAC,QAAD,OApBF,CADF;AAwBD,CArDD;;AAuDA,IAAM1B,MAAM,GAAG5H,aAAa,CAACsF,gBAAD,EAAmB;EAC7CoC,eAAe,EAAfA,eAD6C;EAE7CK,IAAI,EAAJA,IAF6C;EAG7CE,GAAG,EAAHA,GAH6C;EAI7CE,IAAI,EAAJA,IAJ6C;EAK7CG,KAAK,EAALA;AAL6C,CAAnB,CAA5B;;AAsBA,IAAMkB,KAAuC,GAAG,SAA1CA,KAA0C,SAU1C;EAAA;;EAAA,IATKC,MASL,UATJhF,OASI;EAAA,IARJC,QAQI,UARJA,QAQI;EAAA,IAPJ4C,QAOI,UAPJA,QAOI;EAAA,IANJzC,MAMI,UANJA,MAMI;EAAA,IALJhB,QAKI,UALJA,QAKI;EAAA,IAJJoC,KAII,UAJJA,KAII;EAAA,IAHJlD,CAGI,UAHJA,CAGI;EAAA,IAFJC,CAEI,UAFJA,CAEI;EAAA,IADJ2B,gBACI,UADJA,gBACI;;EACJ,IAAI,OAAO2C,QAAP,KAAoB,QAAxB,EAAkC;IAChC3C,gBAAgB,CAAC+E,QAAjB,CAA0B,UAA1B,EAAsCpC,QAAtC;EACD;;EACD,eAAO3H,OAAO,CAACkF,MAAD,CAAd,eACE,oBAAC,MAAD;IAAA;IAAA,UAES,MAFT;IAAA,cAGa,QAHb;IAAA,oBAImB,SAJnB;IAAA,YAKYhB,QALZ;IAAA,QAMQoC,KANR;IAAA,KAOKlD,CAPL;IAAA,KAQKC;EARL,iBAUE,oBAAC,QAAD,2BAVF,CADF;AAcD,CA5BD;;AA8BA,IAAM2E,UAAU,GAAG3H,aAAa,CAACK,cAAD,EAAiB;EAAEmJ,KAAK,EAALA,KAAF;EAAS5B,MAAM,EAANA;AAAT,CAAjB,CAAhC;AAYA,eAAeD,UAAf"}
@@ -25,19 +25,19 @@ var style = (
25
25
  /*__reshadow_css_start__*/
26
26
  _sstyled.insert(
27
27
  /*__inner_css_start__*/
28
- ".___SReferenceLine_j0nmm_gg_{fill:none;stroke:var(--intergalactic-chart-grid-x-axis,#c4c7cf)}.___STitle_j0nmm_gg_{font-size:var(--intergalactic-fs-100,12px);fill:var(--intergalactic-chart-grid-text-label,#6c6e79);transform-origin:var(--transform-origin_j0nmm)}.___STitle_j0nmm_gg_._position_top_j0nmm_gg_{text-anchor:middle}.___STitle_j0nmm_gg_._position_bottom_j0nmm_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_j0nmm_gg_._position_right_j0nmm_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_j0nmm_gg_._position_left_j0nmm_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_j0nmm_gg_{fill:var(--intergalactic-chart-grid-period-bg,rgba(196,199,207,.2))}"
28
+ ".___SReferenceLine_kpsay_gg_{fill:none;stroke:var(--intergalactic-chart-grid-x-axis,#c4c7cf)}.___STitle_kpsay_gg_{font-size:var(--intergalactic-fs-100,12px);fill:var(--intergalactic-chart-grid-text-label,#6c6e79);transform-origin:var(--transform-origin_kpsay)}.___STitle_kpsay_gg_._position_top_kpsay_gg_{text-anchor:middle}.___STitle_kpsay_gg_._position_bottom_kpsay_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_kpsay_gg_._position_right_kpsay_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_kpsay_gg_._position_left_kpsay_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_kpsay_gg_{fill:var(--intergalactic-chart-grid-period-bg,rgba(196,199,207,.2))}"
29
29
  /*__inner_css_end__*/
30
- , "j0nmm_gg_")
30
+ , "kpsay_gg_")
31
31
  /*__reshadow_css_end__*/
32
32
  , {
33
- "__SReferenceLine": "___SReferenceLine_j0nmm_gg_",
34
- "__STitle": "___STitle_j0nmm_gg_",
35
- "--transform-origin": "--transform-origin_j0nmm",
36
- "_position_top": "_position_top_j0nmm_gg_",
37
- "_position_bottom": "_position_bottom_j0nmm_gg_",
38
- "_position_right": "_position_right_j0nmm_gg_",
39
- "_position_left": "_position_left_j0nmm_gg_",
40
- "__SBackground": "___SBackground_j0nmm_gg_"
33
+ "__SReferenceLine": "___SReferenceLine_kpsay_gg_",
34
+ "__STitle": "___STitle_kpsay_gg_",
35
+ "--transform-origin": "--transform-origin_kpsay",
36
+ "_position_top": "_position_top_kpsay_gg_",
37
+ "_position_bottom": "_position_bottom_kpsay_gg_",
38
+ "_position_right": "_position_right_kpsay_gg_",
39
+ "_position_left": "_position_left_kpsay_gg_",
40
+ "__SBackground": "___SBackground_kpsay_gg_"
41
41
  });
42
42
  var side2direction = {
43
43
  left: 'vertical',
@@ -30,16 +30,17 @@ var style = (
30
30
  /*__reshadow_css_start__*/
31
31
  _sstyled.insert(
32
32
  /*__inner_css_start__*/
33
- ".___SScatterPlot_1f33o_gg_{fill:var(--intergalactic-chart-palette-order-blue,#2bb3ff);transition-property:cx,cy;transition-duration:var(--duration_1f33o);transition-timing-function:ease-in-out;opacity:.5}.___SScatterPlot_1f33o_gg_:hover{opacity:.8}.___SScatterPlot_1f33o_gg_.__color_1f33o_gg_{fill:var(--color_1f33o)}.___SValue_1f33o_gg_{text-anchor:middle;font-size:var(--intergalactic-fs-50,10px);stroke:var(--intergalactic-chart-palette-order-blue-second-order,#008ff8)}.___SValue_1f33o_gg_.__color_1f33o_gg_{stroke:var(--color_1f33o)}"
33
+ ".___SScatterPlot_1rovs_gg_{fill:var(--intergalactic-chart-palette-order-blue,#2bb3ff);transition-property:cx,cy;transition-duration:var(--duration_1rovs);transition-timing-function:ease-in-out;opacity:.5}.___SScatterPlot_1rovs_gg_:hover{opacity:.8}.___SScatterPlot_1rovs_gg_.__color_1rovs_gg_{fill:var(--color_1rovs)}.___SScatterPlot_1rovs_gg_.__transparent_1rovs_gg_{opacity:.3}.___SValue_1rovs_gg_{text-anchor:middle;font-size:var(--intergalactic-fs-50,10px);stroke:var(--intergalactic-chart-palette-order-blue-second-order,#008ff8)}.___SValue_1rovs_gg_.__color_1rovs_gg_{stroke:var(--color_1rovs)}.___SValue_1rovs_gg_.__transparent_1rovs_gg_{opacity:.3}"
34
34
  /*__inner_css_end__*/
35
- , "1f33o_gg_")
35
+ , "1rovs_gg_")
36
36
  /*__reshadow_css_end__*/
37
37
  , {
38
- "__SScatterPlot": "___SScatterPlot_1f33o_gg_",
39
- "--duration": "--duration_1f33o",
40
- "_color": "__color_1f33o_gg_",
41
- "--color": "--color_1f33o",
42
- "__SValue": "___SValue_1f33o_gg_"
38
+ "__SScatterPlot": "___SScatterPlot_1rovs_gg_",
39
+ "--duration": "--duration_1rovs",
40
+ "_color": "__color_1rovs_gg_",
41
+ "--color": "--color_1rovs",
42
+ "_transparent": "__transparent_1rovs_gg_",
43
+ "__SValue": "___SValue_1rovs_gg_"
43
44
  });
44
45
 
45
46
  var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
@@ -132,7 +133,8 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
132
133
  uid = _this$asProps2.uid,
133
134
  duration = _this$asProps2.duration,
134
135
  value = _this$asProps2.value,
135
- valueColor = _this$asProps2.valueColor;
136
+ valueColor = _this$asProps2.valueColor,
137
+ transparent = _this$asProps2.transparent;
136
138
 
137
139
  var _scale = _slicedToArray(scale, 2),
138
140
  xScale = _scale[0],
@@ -159,14 +161,16 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
159
161
  "cy": yScale(d[y]) + offset[1],
160
162
  "color": color,
161
163
  "r": r,
162
- "use:duration": "".concat(duration, "ms")
164
+ "use:duration": "".concat(duration, "ms"),
165
+ "transparent": transparent
163
166
  })), d[value] && /*#__PURE__*/React.createElement(SValue, _ref.cn("SValue", {
164
167
  "aria-hidden": true,
165
168
  "x": xScale(d[x]) + offset[0],
166
169
  "y": yScale(d[y]) + offset[1],
167
170
  "dy": ".3em",
168
171
  "clipPath": "url(#".concat(uid, ")"),
169
- "color": valueColor
172
+ "color": valueColor,
173
+ "transparent": transparent
170
174
  }), d[value]));
171
175
  }
172
176
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ScatterPlot.js","names":["React","transition","Component","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","ClipPath","ScatterPlotRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","r","value","radius","selectRect","selection","selectAll","attr","selectRectNode","node","animationCircle","d","i","color","scale","offset","styles","valueColor","xScale","yScale","SScatterPlot","Element","SValue","bindHandlerTooltip","xIndex","data","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","map","renderCircle","bind","style","ScatterPlot"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\nimport ClipPath from './ClipPath';\n\nimport style from './style/scatterplot.shadow.css';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n />\n {d[value] && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath\n aria-hidden\n id={uid}\n x={xMargin}\n y={yMargin}\n width={`${xSize}px`}\n height={`${ySize}px`}\n />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,eAA3B;AACA,SAASC,SAAT,EAAoBC,OAApB,QAAmC,eAAnC;AACA,OAAOC,SAAP,MAAsB,8BAAtB;AACA,OAAOC,mBAAP,MAAgC,6BAAhC;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,SAASC,QAAT,QAAyB,SAAzB;AACA,OAAOC,QAAP,MAAqB,YAArB;;;;;;;;;;;;;;;;;;;IAIMC,e;;;;;;;;;;;;;;;;qEAUaL,SAAS,KAAKM,QAAQ,CAACJ,aAAT,CAAuB,KAAvB,CAAL,GAAqC,E;;yEAO7D,UAACK,OAAD,EAAUC,KAAV;MAAA,OACA,iBAAgC;QAAA,IAApBC,CAAoB,SAA7BC,OAA6B;QAAA,IAARC,CAAQ,SAAjBC,OAAiB;QAC9B,IAAQC,YAAR,GAAyB,MAAKC,OAA9B,CAAQD,YAAR;QACA,MAAKE,cAAL,CAAoBC,qBAApB,GAA4C,MAAKC,6BAAL,CAAmCR,CAAnC,EAAsCE,CAAtC,CAA5C;QACA,MAAKI,cAAL,CAAoBZ,QAAQ,CAACe,eAA7B,IAAgD,IAAhD;QACAL,YAAY,CAACM,IAAb,CAAkB,kBAAlB,EAAsCZ,OAAtC,EAA+CC,KAA/C,EAAsD,MAAKO,cAA3D;MACD,CAND;IAAA,C;;;;;;;WALF,yCAA4C;MAAA,IAAdN,CAAc,uEAAV,CAAU;MAAA,IAAPE,CAAO,uEAAH,CAAG;MAC1C,OAAO;QAAA,OAAO;UAAES,KAAK,EAAE,CAAT;UAAYC,MAAM,EAAE,CAApB;UAAuBC,GAAG,EAAEX,CAA5B;UAA+BY,KAAK,EAAEd,CAAtC;UAAyCe,MAAM,EAAEb,CAAjD;UAAoDc,IAAI,EAAEhB;QAA1D,CAAP;MAAA,CAAP;IACD;;;WAWD,2BAAkB;MAChB,oBAAoC,KAAKK,OAAzC;MAAA,IAAQY,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,GAAlB,iBAAkBA,GAAlB;MAAA,IAAuBC,CAAvB,iBAAuBA,CAAvB;MAAA,IAA0BC,KAA1B,iBAA0BA,KAA1B;MACA,IAAMC,MAAM,GAAGF,CAAC,GAAGA,CAAH,GAAOC,KAAK,GAAG,EAAH,GAAQ,GAApC;MACA,IAAME,UAAU,GAAGlC,UAAU,GAAGmC,SAAb,GAAyBC,SAAzB,gBAA2CN,GAA3C,QAAmDO,IAAnD,CAAwD,GAAxD,EAA6D,CAA7D,CAAnB;MACA,IAAMC,cAAc,GAAGJ,UAAU,CAACK,IAAX,EAAvB;;MAEA,IAAIV,QAAQ,GAAG,CAAX,IAAgBS,cAApB,EAAoC;QAClCJ,UAAU,CAAClC,UAAX,GAAwB6B,QAAxB,CAAiCA,QAAjC,EAA2CQ,IAA3C,CAAgD,GAAhD,EAAqDJ,MAArD;MACD;IACF;;;WAED,8BAAqB;MACnB,KAAKO,eAAL;IACD;;;WAED,6BAAoB;MAClB,KAAKA,eAAL;IACD;;;WAED,sBAAaC,CAAb,EAAgBC,CAAhB,EAAmB;MAAA;;MACjB,qBACE,KAAKzB,OADP;MAAA,IAAQ0B,KAAR,kBAAQA,KAAR;MAAA,IAAeC,KAAf,kBAAeA,KAAf;MAAA,IAAsBhC,CAAtB,kBAAsBA,CAAtB;MAAA,IAAyBE,CAAzB,kBAAyBA,CAAzB;MAAA,IAA4BiB,CAA5B,kBAA4BA,CAA5B;MAAA,IAA+Bc,MAA/B,kBAA+BA,MAA/B;MAAA,IAAuCC,MAAvC,kBAAuCA,MAAvC;MAAA,IAA+ChB,GAA/C,kBAA+CA,GAA/C;MAAA,IAAoDD,QAApD,kBAAoDA,QAApD;MAAA,IAA8DG,KAA9D,kBAA8DA,KAA9D;MAAA,IAAqEe,UAArE,kBAAqEA,UAArE;;MAEA,4BAAyBH,KAAzB;MAAA,IAAOI,MAAP;MAAA,IAAeC,MAAf;;MACA,IAAMC,YAAY,GAAG,KAAKC,OAA1B;MACA,IAAMC,MAAM,GAAG,MAAf;MAEA,cAAOlD,OAAO,CAAC4C,MAAD,CAAd,eACE;QAAA;QAAA,yBAEkBJ,CAFlB;QAAA,eAGe,KAAKW,kBAAL,CAAwB,IAAxB,kCAAmC,KAAK1C,KAAxC;UAA+C2C,MAAM,EAAEZ;QAAvD,GAHf;QAAA,gBAIgB,KAAKW,kBAAL,CAAwB,KAAxB,kCAAoC,KAAK1C,KAAzC;UAAgD2C,MAAM,EAAEZ;QAAxD;MAJhB,iBAME,oBAAC,YAAD;QAAA;QAAA,gBAESZ,GAFT,SAEeY,CAFf;QAAA,SAGSA,CAHT;QAAA,UAIS,QAJT;QAAA,2BAKoBZ,GALpB;QAAA,MAMMkB,MAAM,CAACP,CAAC,CAAC7B,CAAD,CAAF,CAAN,GAAeiC,MAAM,CAAC,CAAD,CAN3B;QAAA,MAOMI,MAAM,CAACR,CAAC,CAAC3B,CAAD,CAAF,CAAN,GAAe+B,MAAM,CAAC,CAAD,CAP3B;QAAA,SAQSF,KART;QAAA,KASKZ,CATL;QAAA,0BAUmBF,QAVnB;MAAA,GANF,EAkBGY,CAAC,CAACT,KAAD,CAAD,iBACC,oBAAC,MAAD;QAAA;QAAA,KAEKgB,MAAM,CAACP,CAAC,CAAC7B,CAAD,CAAF,CAAN,GAAeiC,MAAM,CAAC,CAAD,CAF1B;QAAA,KAGKI,MAAM,CAACR,CAAC,CAAC3B,CAAD,CAAF,CAAN,GAAe+B,MAAM,CAAC,CAAD,CAH1B;QAAA,MAIK,MAJL;QAAA,2BAKoBf,GALpB;QAAA,SAMSiB;MANT,IAQGN,CAAC,CAACT,KAAD,CARJ,CAnBJ,CADF;IAiCD;;;WAED,kBAAS;MACP,qBAA0C,KAAKf,OAA/C;MAAA,IAAQsC,IAAR,kBAAQA,IAAR;MAAA,IAAczB,GAAd,kBAAcA,GAAd;MAAA,IAAmBc,KAAnB,kBAAmBA,KAAnB;MAAA,IAA0BhC,CAA1B,kBAA0BA,CAA1B;MAAA,IAA6BE,CAA7B,kBAA6BA,CAA7B;MAAA,IAAgCkB,KAAhC,kBAAgCA,KAAhC;;MACA,6BAAyBY,KAAzB;MAAA,IAAOI,MAAP;MAAA,IAAeC,MAAf;;MACA,IAAMO,KAAK,GAAGC,IAAI,CAACC,GAAL,CAASV,MAAM,CAACW,KAAP,GAAe,CAAf,IAAoBX,MAAM,CAACW,KAAP,GAAe,CAAf,CAA7B,CAAd;MACA,IAAMC,KAAK,GAAGH,IAAI,CAACC,GAAL,CAAST,MAAM,CAACU,KAAP,GAAe,CAAf,IAAoBV,MAAM,CAACU,KAAP,GAAe,CAAf,CAA7B,CAAd;MACA,IAAME,OAAO,GAAGJ,IAAI,CAACK,GAAL,CAASd,MAAM,CAACW,KAAP,GAAe,CAAf,CAAT,EAA4BX,MAAM,CAACW,KAAP,GAAe,CAAf,CAA5B,CAAhB;MACA,IAAMI,OAAO,GAAGN,IAAI,CAACK,GAAL,CAASb,MAAM,CAACU,KAAP,GAAe,CAAf,CAAT,EAA4BV,MAAM,CAACU,KAAP,GAAe,CAAf,CAA5B,CAAhB;MAEA,KAAK1C,OAAL,CAAa+C,gBAAb,CAA8BC,oBAA9B,CAAmDrD,CAAnD,EAAsDE,CAAtD,EAAyDkB,KAAzD;MACA,KAAKf,OAAL,CAAa+C,gBAAb,CAA8BE,iBAA9B,CAAgD,cAAhD;MAEA,oBACE,0CACGX,IAAI,CAACY,GAAL,CAAS,KAAKC,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAAT,CADH,eAEE,oBAAC,QAAD;QACE,mBADF;QAEE,EAAE,EAAEvC,GAFN;QAGE,CAAC,EAAE+B,OAHL;QAIE,CAAC,EAAEE,OAJL;QAKE,KAAK,YAAKP,KAAL,OALP;QAME,MAAM,YAAKI,KAAL;MANR,EAFF,CADF;IAaD;;;;EA9G2B3D,S;;gBAAxBO,e,iBACiB,a;;gBADjBA,e,WAEW8D,K;;gBAFX9D,e,aAGa,CAACJ,mBAAmB,EAApB,C;;gBAHbI,e,kBAKkB;EACpBqC,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,CADY;EAEpBhB,QAAQ,EAAE;AAFU,C;;AA4GxB,IAAM0C,WAAW,GAAGlE,aAAa,CAACG,eAAD,CAAjC;AAEA,eAAe+D,WAAf"}
1
+ {"version":3,"file":"ScatterPlot.js","names":["React","transition","Component","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","ClipPath","ScatterPlotRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","r","value","radius","selectRect","selection","selectAll","attr","selectRectNode","node","animationCircle","d","i","color","scale","offset","styles","valueColor","transparent","xScale","yScale","SScatterPlot","Element","SValue","bindHandlerTooltip","xIndex","data","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","map","renderCircle","bind","style","ScatterPlot"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\nimport ClipPath from './ClipPath';\n\nimport style from './style/scatterplot.shadow.css';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor, transparent } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {d[value] && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath\n aria-hidden\n id={uid}\n x={xMargin}\n y={yMargin}\n width={`${xSize}px`}\n height={`${ySize}px`}\n />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"mappings":"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"}