@semcore/d3-chart 2.2.2 → 2.2.5

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 (156) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/lib/cjs/Area.js +9 -9
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Axis.js +19 -17
  5. package/lib/cjs/Axis.js.map +1 -1
  6. package/lib/cjs/Bar.js +11 -11
  7. package/lib/cjs/Bar.js.map +1 -1
  8. package/lib/cjs/Bubble.js +12 -12
  9. package/lib/cjs/Bubble.js.map +1 -1
  10. package/lib/cjs/ClipPath.js +1 -1
  11. package/lib/cjs/ClipPath.js.map +1 -1
  12. package/lib/cjs/Donut.js +8 -8
  13. package/lib/cjs/Donut.js.map +1 -1
  14. package/lib/cjs/Dots.js +9 -9
  15. package/lib/cjs/Dots.js.map +1 -1
  16. package/lib/cjs/GroupBar.js +8 -8
  17. package/lib/cjs/GroupBar.js.map +1 -1
  18. package/lib/cjs/HorizontalBar.js +11 -11
  19. package/lib/cjs/HorizontalBar.js.map +1 -1
  20. package/lib/cjs/Hover.js +4 -4
  21. package/lib/cjs/Hover.js.map +1 -1
  22. package/lib/cjs/Line.js +8 -8
  23. package/lib/cjs/Line.js.map +1 -1
  24. package/lib/cjs/Plot.js +4 -4
  25. package/lib/cjs/Plot.js.map +1 -1
  26. package/lib/cjs/RadialTree.js +99 -59
  27. package/lib/cjs/RadialTree.js.map +1 -1
  28. package/lib/cjs/ReferenceLine.js +10 -10
  29. package/lib/cjs/ReferenceLine.js.map +1 -1
  30. package/lib/cjs/ResponsiveContainer.js +2 -1
  31. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  32. package/lib/cjs/ScatterPlot.js +7 -7
  33. package/lib/cjs/ScatterPlot.js.map +1 -1
  34. package/lib/cjs/StackBar.js +8 -8
  35. package/lib/cjs/StackBar.js.map +1 -1
  36. package/lib/cjs/StackedArea.js +8 -8
  37. package/lib/cjs/StackedArea.js.map +1 -1
  38. package/lib/cjs/Tooltip.js +15 -11
  39. package/lib/cjs/Tooltip.js.map +1 -1
  40. package/lib/cjs/Venn.js +9 -9
  41. package/lib/cjs/Venn.js.map +1 -1
  42. package/lib/cjs/color.js.map +1 -1
  43. package/lib/cjs/createElement.js +1 -1
  44. package/lib/cjs/createElement.js.map +1 -1
  45. package/lib/cjs/index.js.map +1 -1
  46. package/lib/cjs/style/radial-tree.shadow.css +0 -1
  47. package/lib/cjs/types/index.d.ts +3 -0
  48. package/lib/cjs/utils.js.map +1 -1
  49. package/lib/es6/Area.js +9 -9
  50. package/lib/es6/Area.js.map +1 -1
  51. package/lib/es6/Axis.js +19 -17
  52. package/lib/es6/Axis.js.map +1 -1
  53. package/lib/es6/Bar.js +11 -11
  54. package/lib/es6/Bar.js.map +1 -1
  55. package/lib/es6/Bubble.js +12 -12
  56. package/lib/es6/Bubble.js.map +1 -1
  57. package/lib/es6/ClipPath.js +1 -1
  58. package/lib/es6/ClipPath.js.map +1 -1
  59. package/lib/es6/Donut.js +8 -8
  60. package/lib/es6/Donut.js.map +1 -1
  61. package/lib/es6/Dots.js +9 -9
  62. package/lib/es6/Dots.js.map +1 -1
  63. package/lib/es6/GroupBar.js +8 -8
  64. package/lib/es6/GroupBar.js.map +1 -1
  65. package/lib/es6/HorizontalBar.js +11 -11
  66. package/lib/es6/HorizontalBar.js.map +1 -1
  67. package/lib/es6/Hover.js +4 -4
  68. package/lib/es6/Hover.js.map +1 -1
  69. package/lib/es6/Line.js +8 -8
  70. package/lib/es6/Line.js.map +1 -1
  71. package/lib/es6/Plot.js +4 -4
  72. package/lib/es6/Plot.js.map +1 -1
  73. package/lib/es6/RadialTree.js +99 -59
  74. package/lib/es6/RadialTree.js.map +1 -1
  75. package/lib/es6/ReferenceLine.js +10 -10
  76. package/lib/es6/ReferenceLine.js.map +1 -1
  77. package/lib/es6/ResponsiveContainer.js +2 -1
  78. package/lib/es6/ResponsiveContainer.js.map +1 -1
  79. package/lib/es6/ScatterPlot.js +7 -7
  80. package/lib/es6/ScatterPlot.js.map +1 -1
  81. package/lib/es6/StackBar.js +8 -8
  82. package/lib/es6/StackBar.js.map +1 -1
  83. package/lib/es6/StackedArea.js +8 -8
  84. package/lib/es6/StackedArea.js.map +1 -1
  85. package/lib/es6/Tooltip.js +15 -11
  86. package/lib/es6/Tooltip.js.map +1 -1
  87. package/lib/es6/Venn.js +9 -9
  88. package/lib/es6/Venn.js.map +1 -1
  89. package/lib/es6/color.js.map +1 -1
  90. package/lib/es6/createElement.js +1 -1
  91. package/lib/es6/createElement.js.map +1 -1
  92. package/lib/es6/index.js.map +1 -1
  93. package/lib/es6/style/radial-tree.shadow.css +0 -1
  94. package/lib/es6/types/index.d.ts +3 -0
  95. package/lib/es6/utils.js.map +1 -1
  96. package/lib/types/index.d.ts +3 -0
  97. package/package.json +1 -1
  98. package/src/Area.jsx +0 -137
  99. package/src/Axis.jsx +0 -314
  100. package/src/Bar.jsx +0 -149
  101. package/src/Bubble.jsx +0 -165
  102. package/src/ClipPath.jsx +0 -47
  103. package/src/Donut.jsx +0 -319
  104. package/src/Dots.jsx +0 -97
  105. package/src/GroupBar.jsx +0 -76
  106. package/src/HorizontalBar.jsx +0 -135
  107. package/src/Hover.jsx +0 -153
  108. package/src/Line.jsx +0 -89
  109. package/src/Plot.jsx +0 -79
  110. package/src/RadialTree.tsx +0 -767
  111. package/src/ReferenceLine.jsx +0 -146
  112. package/src/ResponsiveContainer.jsx +0 -84
  113. package/src/ScatterPlot.jsx +0 -112
  114. package/src/StackBar.jsx +0 -105
  115. package/src/StackedArea.jsx +0 -65
  116. package/src/Tooltip.jsx +0 -145
  117. package/src/Venn.jsx +0 -114
  118. package/src/color.js +0 -21
  119. package/src/createElement.jsx +0 -135
  120. package/src/index.js +0 -27
  121. package/src/style/area.shadow.css +0 -37
  122. package/src/style/axis.shadow.css +0 -85
  123. package/src/style/bar.shadow.css +0 -21
  124. package/src/style/bubble.shadow.css +0 -45
  125. package/src/style/donut.shadow.css +0 -24
  126. package/src/style/dot.shadow.css +0 -29
  127. package/src/style/hover.shadow.css +0 -9
  128. package/src/style/line.shadow.css +0 -29
  129. package/src/style/plot.shadow.css +0 -6
  130. package/src/style/radial-tree.shadow.css +0 -34
  131. package/src/style/reference-line.shadow.css +0 -37
  132. package/src/style/scatterplot.shadow.css +0 -27
  133. package/src/style/tooltip.shadow.css +0 -36
  134. package/src/style/var.css +0 -125
  135. package/src/style/venn.shadow.css +0 -29
  136. package/src/types/Area.d.ts +0 -48
  137. package/src/types/Axis.d.ts +0 -64
  138. package/src/types/Bar.d.ts +0 -52
  139. package/src/types/Bubble.d.ts +0 -32
  140. package/src/types/ClipPath.d.ts +0 -26
  141. package/src/types/Donut.d.ts +0 -46
  142. package/src/types/GroupBar.d.ts +0 -20
  143. package/src/types/HorizontalBar.d.ts +0 -29
  144. package/src/types/Hover.d.ts +0 -15
  145. package/src/types/Line.d.ts +0 -50
  146. package/src/types/Plot.d.ts +0 -16
  147. package/src/types/ReferenceLine.d.ts +0 -31
  148. package/src/types/ResponsiveContainer.d.ts +0 -20
  149. package/src/types/ScatterPlot.d.ts +0 -27
  150. package/src/types/StackBar.d.ts +0 -26
  151. package/src/types/StackedArea.d.ts +0 -26
  152. package/src/types/Tooltip.d.ts +0 -33
  153. package/src/types/Venn.d.ts +0 -45
  154. package/src/types/context.d.ts +0 -6
  155. package/src/types/index.d.ts +0 -56
  156. package/src/utils.ts +0 -227
@@ -31,21 +31,20 @@ var style = (
31
31
  /*__reshadow_css_start__*/
32
32
  _sstyled.insert(
33
33
  /*__inner_css_start__*/
34
- ".___SRadian_hkcqa_gg_{cursor:pointer;fill:#008ff8}.___SLine_hkcqa_gg_{stroke:#008ff8}.___SLine_hkcqa_gg_.__color_hkcqa_gg_{stroke:var(--color_hkcqa)}.___SCap_hkcqa_gg_{transition:r .1s}.___SLabel_hkcqa_gg_{fill:var(--color_hkcqa);cursor:var(--text-cursor_hkcqa);transform-origin:var(--transform-origin_hkcqa)}.___SRadian_hkcqa_gg_:hover .___SLabel_hkcqa_gg_{fill:var(--color-hovered_hkcqa)}@media (prefers-reduced-motion){.___SLineCap_hkcqa_gg_{transition:none}}"
34
+ ".___SRadian_1yu7l_gg_{cursor:pointer;fill:#008ff8}.___SLine_1yu7l_gg_{stroke:#008ff8}.___SLine_1yu7l_gg_.__color_1yu7l_gg_{stroke:var(--color_1yu7l)}.___SCap_1yu7l_gg_{transition:r .1s}.___SLabel_1yu7l_gg_{fill:var(--color_1yu7l);cursor:var(--text-cursor_1yu7l)}.___SRadian_1yu7l_gg_:hover .___SLabel_1yu7l_gg_{fill:var(--color-hovered_1yu7l)}@media (prefers-reduced-motion){.___SLineCap_1yu7l_gg_{transition:none}}"
35
35
  /*__inner_css_end__*/
36
- , "hkcqa_gg_")
36
+ , "1yu7l_gg_")
37
37
  /*__reshadow_css_end__*/
38
38
  , {
39
- "__SRadian": "___SRadian_hkcqa_gg_",
40
- "__SLine": "___SLine_hkcqa_gg_",
41
- "_color": "__color_hkcqa_gg_",
42
- "--color": "--color_hkcqa",
43
- "__SCap": "___SCap_hkcqa_gg_",
44
- "__SLabel": "___SLabel_hkcqa_gg_",
45
- "--text-cursor": "--text-cursor_hkcqa",
46
- "--transform-origin": "--transform-origin_hkcqa",
47
- "--color-hovered": "--color-hovered_hkcqa",
48
- "__SLineCap": "___SLineCap_hkcqa_gg_"
39
+ "__SRadian": "___SRadian_1yu7l_gg_",
40
+ "__SLine": "___SLine_1yu7l_gg_",
41
+ "_color": "__color_1yu7l_gg_",
42
+ "--color": "--color_1yu7l",
43
+ "__SCap": "___SCap_1yu7l_gg_",
44
+ "__SLabel": "___SLabel_1yu7l_gg_",
45
+ "--text-cursor": "--text-cursor_1yu7l",
46
+ "--color-hovered": "--color-hovered_1yu7l",
47
+ "__SLineCap": "___SLineCap_1yu7l_gg_"
49
48
  });
50
49
  import { shade } from '@semcore/utils/lib/color';
51
50
  import { measureText } from './utils';
@@ -81,10 +80,12 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
81
80
  }, {
82
81
  key: "runAppearAnimation",
83
82
  value: function runAppearAnimation() {
83
+ var _window$matchMedia;
84
+
84
85
  var _this$asProps = this.asProps,
85
86
  duration = _this$asProps.duration,
86
87
  uid = _this$asProps.uid;
87
- var preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;
88
+ var preferReduceMotion = (_window$matchMedia = window.matchMedia('(prefers-reduced-motion: reduce)')) === null || _window$matchMedia === void 0 ? void 0 : _window$matchMedia.matches;
88
89
  /** using `!(>)` instead of `<=` to get true on NaN and non numbers stuff */
89
90
 
90
91
  if (!(duration > 0)) return;
@@ -100,14 +101,16 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
100
101
 
101
102
  if (circlesNodes.length > 0) {
102
103
  var attrs = circlesNodes.map(function (node) {
103
- var cx = node.cx?.baseVal?.value;
104
- var cy = node.cy?.baseVal?.value;
104
+ var _node$cx, _node$cx$baseVal, _node$cy, _node$cy$baseVal, _lineNode$x, _lineNode$x$baseVal, _lineNode$y, _lineNode$y$baseVal;
105
+
106
+ var cx = (_node$cx = node.cx) === null || _node$cx === void 0 ? void 0 : (_node$cx$baseVal = _node$cx.baseVal) === null || _node$cx$baseVal === void 0 ? void 0 : _node$cx$baseVal.value;
107
+ var cy = (_node$cy = node.cy) === null || _node$cy === void 0 ? void 0 : (_node$cy$baseVal = _node$cy.baseVal) === null || _node$cy$baseVal === void 0 ? void 0 : _node$cy$baseVal.value;
105
108
  var radianIndex = parseInt(node.dataset.radianIndex, 10);
106
109
  var lineNode = linesNodes[radianIndex];
107
110
  return {
108
111
  from: {
109
- cx: lineNode.x1?.baseVal?.value,
110
- cy: lineNode.y1?.baseVal?.value
112
+ cx: (_lineNode$x = lineNode.x1) === null || _lineNode$x === void 0 ? void 0 : (_lineNode$x$baseVal = _lineNode$x.baseVal) === null || _lineNode$x$baseVal === void 0 ? void 0 : _lineNode$x$baseVal.value,
113
+ cy: (_lineNode$y = lineNode.y1) === null || _lineNode$y === void 0 ? void 0 : (_lineNode$y$baseVal = _lineNode$y.baseVal) === null || _lineNode$y$baseVal === void 0 ? void 0 : _lineNode$y$baseVal.value
111
114
  },
112
115
  to: {
113
116
  cx: cx,
@@ -116,29 +119,39 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
116
119
  };
117
120
  });
118
121
  circlesAnimation.attr('opacity', 0).attr('cx', function (_, index) {
119
- return attrs[index].from?.cx;
122
+ var _attrs$index$from;
123
+
124
+ return (_attrs$index$from = attrs[index].from) === null || _attrs$index$from === void 0 ? void 0 : _attrs$index$from.cx;
120
125
  }).attr('cy', function (_, index) {
121
- return attrs[index].from?.cy;
126
+ var _attrs$index$from2;
127
+
128
+ return (_attrs$index$from2 = attrs[index].from) === null || _attrs$index$from2 === void 0 ? void 0 : _attrs$index$from2.cy;
122
129
  });
123
130
  circlesAnimation.transition().duration(duration).attr('opacity', 1).attr('cx', function (_, index) {
124
- return attrs[index].to?.cx;
131
+ var _attrs$index$to;
132
+
133
+ return (_attrs$index$to = attrs[index].to) === null || _attrs$index$to === void 0 ? void 0 : _attrs$index$to.cx;
125
134
  }).attr('cy', function (_, index) {
126
- return attrs[index].to?.cy;
135
+ var _attrs$index$to2;
136
+
137
+ return (_attrs$index$to2 = attrs[index].to) === null || _attrs$index$to2 === void 0 ? void 0 : _attrs$index$to2.cy;
127
138
  });
128
139
  }
129
140
 
130
141
  if (iconsNodes.length > 0) {
131
142
  var _attrs = iconsNodes.map(function (node) {
132
- var x = node.x?.baseVal?.value;
133
- var y = node.y?.baseVal?.value;
134
- var width = node.width?.baseVal?.value;
135
- var height = node.height?.baseVal?.value;
143
+ var _node$x, _node$x$baseVal, _node$y, _node$y$baseVal, _node$width, _node$width$baseVal, _node$height, _node$height$baseVal, _lineNode$x2, _lineNode$x2$baseVal, _lineNode$y2, _lineNode$y2$baseVal;
144
+
145
+ var x = (_node$x = node.x) === null || _node$x === void 0 ? void 0 : (_node$x$baseVal = _node$x.baseVal) === null || _node$x$baseVal === void 0 ? void 0 : _node$x$baseVal.value;
146
+ var y = (_node$y = node.y) === null || _node$y === void 0 ? void 0 : (_node$y$baseVal = _node$y.baseVal) === null || _node$y$baseVal === void 0 ? void 0 : _node$y$baseVal.value;
147
+ var width = (_node$width = node.width) === null || _node$width === void 0 ? void 0 : (_node$width$baseVal = _node$width.baseVal) === null || _node$width$baseVal === void 0 ? void 0 : _node$width$baseVal.value;
148
+ var height = (_node$height = node.height) === null || _node$height === void 0 ? void 0 : (_node$height$baseVal = _node$height.baseVal) === null || _node$height$baseVal === void 0 ? void 0 : _node$height$baseVal.value;
136
149
  var radianIndex = parseInt(node.dataset.radianIndex, 10);
137
150
  var lineNode = linesNodes[radianIndex];
138
151
  return {
139
152
  from: {
140
- x: lineNode.x1?.baseVal?.value - width / 2,
141
- y: lineNode.y1?.baseVal?.value - height / 2
153
+ x: ((_lineNode$x2 = lineNode.x1) === null || _lineNode$x2 === void 0 ? void 0 : (_lineNode$x2$baseVal = _lineNode$x2.baseVal) === null || _lineNode$x2$baseVal === void 0 ? void 0 : _lineNode$x2$baseVal.value) - width / 2,
154
+ y: ((_lineNode$y2 = lineNode.y1) === null || _lineNode$y2 === void 0 ? void 0 : (_lineNode$y2$baseVal = _lineNode$y2.baseVal) === null || _lineNode$y2$baseVal === void 0 ? void 0 : _lineNode$y2$baseVal.value) - height / 2
142
155
  },
143
156
  to: {
144
157
  x: x,
@@ -148,25 +161,35 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
148
161
  });
149
162
 
150
163
  iconsAnimation.attr('opacity', 0).attr('x', function (_, index) {
151
- return _attrs[index].from?.x;
164
+ var _attrs$index$from3;
165
+
166
+ return (_attrs$index$from3 = _attrs[index].from) === null || _attrs$index$from3 === void 0 ? void 0 : _attrs$index$from3.x;
152
167
  }).attr('y', function (_, index) {
153
- return _attrs[index].from?.y;
168
+ var _attrs$index$from4;
169
+
170
+ return (_attrs$index$from4 = _attrs[index].from) === null || _attrs$index$from4 === void 0 ? void 0 : _attrs$index$from4.y;
154
171
  });
155
172
  iconsAnimation.transition().duration(duration).attr('opacity', 1).attr('x', function (_, index) {
156
- return _attrs[index].to?.x;
173
+ var _attrs$index$to3;
174
+
175
+ return (_attrs$index$to3 = _attrs[index].to) === null || _attrs$index$to3 === void 0 ? void 0 : _attrs$index$to3.x;
157
176
  }).attr('y', function (_, index) {
158
- return _attrs[index].to?.y;
177
+ var _attrs$index$to4;
178
+
179
+ return (_attrs$index$to4 = _attrs[index].to) === null || _attrs$index$to4 === void 0 ? void 0 : _attrs$index$to4.y;
159
180
  });
160
181
  }
161
182
 
162
183
  if (linesNodes.length > 0) {
163
184
  var _attrs2 = linesNodes.map(function (node) {
164
- var x2 = node.x2?.baseVal?.value;
165
- var y2 = node.y2?.baseVal?.value;
185
+ var _node$x2, _node$x2$baseVal, _node$y2, _node$y2$baseVal, _node$x3, _node$x3$baseVal, _node$y3, _node$y3$baseVal;
186
+
187
+ var x2 = (_node$x2 = node.x2) === null || _node$x2 === void 0 ? void 0 : (_node$x2$baseVal = _node$x2.baseVal) === null || _node$x2$baseVal === void 0 ? void 0 : _node$x2$baseVal.value;
188
+ var y2 = (_node$y2 = node.y2) === null || _node$y2 === void 0 ? void 0 : (_node$y2$baseVal = _node$y2.baseVal) === null || _node$y2$baseVal === void 0 ? void 0 : _node$y2$baseVal.value;
166
189
  return {
167
190
  from: {
168
- x2: node.x1?.baseVal?.value,
169
- y2: node.y1?.baseVal?.value
191
+ x2: (_node$x3 = node.x1) === null || _node$x3 === void 0 ? void 0 : (_node$x3$baseVal = _node$x3.baseVal) === null || _node$x3$baseVal === void 0 ? void 0 : _node$x3$baseVal.value,
192
+ y2: (_node$y3 = node.y1) === null || _node$y3 === void 0 ? void 0 : (_node$y3$baseVal = _node$y3.baseVal) === null || _node$y3$baseVal === void 0 ? void 0 : _node$y3$baseVal.value
170
193
  },
171
194
  to: {
172
195
  x2: x2,
@@ -176,14 +199,22 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
176
199
  });
177
200
 
178
201
  linesAnimation.attr('opacity', 0).attr('x2', function (_, index) {
179
- return _attrs2[index].from?.x2;
202
+ var _attrs2$index$from;
203
+
204
+ return (_attrs2$index$from = _attrs2[index].from) === null || _attrs2$index$from === void 0 ? void 0 : _attrs2$index$from.x2;
180
205
  }).attr('y2', function (_, index) {
181
- return _attrs2[index].from?.y2;
206
+ var _attrs2$index$from2;
207
+
208
+ return (_attrs2$index$from2 = _attrs2[index].from) === null || _attrs2$index$from2 === void 0 ? void 0 : _attrs2$index$from2.y2;
182
209
  });
183
210
  linesAnimation.transition().duration(duration).attr('opacity', 1).attr('x2', function (_, index) {
184
- return _attrs2[index].to?.x2;
211
+ var _attrs2$index$to;
212
+
213
+ return (_attrs2$index$to = _attrs2[index].to) === null || _attrs2$index$to === void 0 ? void 0 : _attrs2$index$to.x2;
185
214
  }).attr('y2', function (_, index) {
186
- return _attrs2[index].to?.y2;
215
+ var _attrs2$index$to2;
216
+
217
+ return (_attrs2$index$to2 = _attrs2[index].to) === null || _attrs2$index$to2 === void 0 ? void 0 : _attrs2$index$to2.y2;
187
218
  });
188
219
  }
189
220
 
@@ -195,7 +226,9 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
195
226
  }, {
196
227
  key: "componentDidUpdate",
197
228
  value: function componentDidUpdate(prevProps) {
198
- if (prevProps.$rootProps.data?.length !== this.asProps.data?.length) {
229
+ var _prevProps$$rootProps, _this$asProps$data;
230
+
231
+ if (((_prevProps$$rootProps = prevProps.$rootProps.data) === null || _prevProps$$rootProps === void 0 ? void 0 : _prevProps$$rootProps.length) !== ((_this$asProps$data = this.asProps.data) === null || _this$asProps$data === void 0 ? void 0 : _this$asProps$data.length)) {
199
232
  this.runAppearAnimation();
200
233
  }
201
234
  }
@@ -289,7 +322,7 @@ _defineProperty(RadialTreeBase, "defaultProps", {
289
322
  angleOffset: 0,
290
323
  duration: 300,
291
324
  centralMargin: 50,
292
- labelMargin: 2,
325
+ labelMargin: 5,
293
326
  iconColor: '#fff',
294
327
  capSize: 8,
295
328
  iconSize: 8,
@@ -339,7 +372,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
339
372
  }, {
340
373
  key: "getLineProps",
341
374
  value: function getLineProps(_ref12, index) {
342
- var _ref13;
375
+ var _data$color, _ref13;
343
376
 
344
377
  var $rootProps = _ref12.$rootProps;
345
378
  var data = $rootProps.data[index];
@@ -351,7 +384,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
351
384
  yEnd = _this$computeRadianPo2.yEnd;
352
385
 
353
386
  var uid = this.asProps.uid;
354
- var color = data.color ?? this.asProps.color;
387
+ var color = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.asProps.color;
355
388
  return _ref13 = {
356
389
  x1: xStart,
357
390
  y1: yStart,
@@ -363,7 +396,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
363
396
  }, {
364
397
  key: "getCapProps",
365
398
  value: function getCapProps(_ref14, index) {
366
- var _ref15;
399
+ var _data$color2, _ref15;
367
400
 
368
401
  var $rootProps = _ref14.$rootProps;
369
402
  var data = $rootProps.data[index];
@@ -374,7 +407,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
374
407
  capSize = _this$computeRadianPo3.capSize;
375
408
 
376
409
  var uid = this.asProps.uid;
377
- var color = data.color ?? this.asProps.color;
410
+ var color = (_data$color2 = data.color) !== null && _data$color2 !== void 0 ? _data$color2 : this.asProps.color;
378
411
  return _ref15 = {
379
412
  x: xEnd,
380
413
  y: yEnd,
@@ -385,7 +418,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
385
418
  }, {
386
419
  key: "getIconProps",
387
420
  value: function getIconProps(_ref16, index) {
388
- var _ref17;
421
+ var _data$iconColor, _data$iconSize, _data$icon, _ref17;
389
422
 
390
423
  var $rootProps = _ref16.$rootProps;
391
424
  var data = $rootProps.data[index];
@@ -396,20 +429,20 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
396
429
  isActive = _this$computeRadianPo4.isActive;
397
430
 
398
431
  var uid = this.asProps.uid;
399
- var iconColor = data.iconColor ?? this.asProps.iconColor;
400
- var iconSize = data.iconSize ?? this.asProps.iconSize;
401
- var icon = data.icon ?? this.asProps.icon;
432
+ var iconColor = (_data$iconColor = data.iconColor) !== null && _data$iconColor !== void 0 ? _data$iconColor : this.asProps.iconColor;
433
+ var iconSize = (_data$iconSize = data.iconSize) !== null && _data$iconSize !== void 0 ? _data$iconSize : this.asProps.iconSize;
434
+ var icon = (_data$icon = data.icon) !== null && _data$icon !== void 0 ? _data$icon : this.asProps.icon;
402
435
  return _ref17 = {
403
436
  x: xEnd - iconSize / 2,
404
437
  y: yEnd - iconSize / 2,
405
438
  iconSize: iconSize,
406
- color: iconColor ?? '#fff'
439
+ color: iconColor !== null && iconColor !== void 0 ? iconColor : '#fff'
407
440
  }, _defineProperty(_ref17, 'data-radial-animation', "".concat(uid, "-cap-icon")), _defineProperty(_ref17, 'data-radian-index', index), _defineProperty(_ref17, "icon", icon), _defineProperty(_ref17, "isActive", isActive), _ref17;
408
441
  }
409
442
  }, {
410
443
  key: "getLabelProps",
411
444
  value: function getLabelProps(_ref18, index) {
412
- var _ref19;
445
+ var _data$color3, _ref19;
413
446
 
414
447
  var $rootProps = _ref18.$rootProps;
415
448
  var data = $rootProps.data[index];
@@ -424,7 +457,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
424
457
  uid = _this$asProps5.uid,
425
458
  textSize = _this$asProps5.textSize;
426
459
  var label = data.label;
427
- var color = data.color ?? this.asProps.color;
460
+ var color = (_data$color3 = data.color) !== null && _data$color3 !== void 0 ? _data$color3 : this.asProps.color;
428
461
  return _ref19 = {
429
462
  x: xLabelCenter,
430
463
  y: yLabelCenter,
@@ -434,13 +467,18 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
434
467
  }, {
435
468
  key: "getRadianKey",
436
469
  value: function getRadianKey(data, index) {
437
- return data.key ?? "radian-".concat(index);
470
+ var _data$key;
471
+
472
+ return (_data$key = data.key) !== null && _data$key !== void 0 ? _data$key : "radian-".concat(index);
438
473
  }
439
474
  }, {
440
475
  key: "computeRadianPosition",
441
476
  value: function computeRadianPosition(data, index) {
477
+ var _data$capSize;
478
+
442
479
  var _this$asProps6 = this.asProps,
443
480
  centralMargin = _this$asProps6.centralMargin,
481
+ labelMargin = _this$asProps6.labelMargin,
444
482
  angleOffset = _this$asProps6.angleOffset,
445
483
  activeKey = _this$asProps6.activeKey,
446
484
  size = _this$asProps6.size,
@@ -453,10 +491,10 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
453
491
 
454
492
  var key = this.getRadianKey(data, index);
455
493
  var isActive = activeKey === key;
456
- var baseCapSize = data.capSize ?? this.asProps.capSize;
494
+ var baseCapSize = (_data$capSize = data.capSize) !== null && _data$capSize !== void 0 ? _data$capSize : this.asProps.capSize;
457
495
  var capSize = baseCapSize * (isActive ? 1 : 0.5);
458
496
  var minDemSize = Math.min(width, height) / 2;
459
- var length = Math.max(minDemSize - textWidth - baseCapSize - centralMargin, 10);
497
+ var length = Math.max(minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2, 10);
460
498
  var angle = baseAngle + angleOffset + index / radiansCount * (Math.PI * 2);
461
499
  var isHorizontal = angle - baseAngle > 1 / 6 * Math.PI && angle - baseAngle < 5 / 6 * Math.PI || angle - baseAngle > 7 / 6 * Math.PI && angle - baseAngle < 11 / 6 * Math.PI;
462
500
  var topAngle = -Math.PI / 2;
@@ -470,7 +508,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
470
508
  yStart = start[1];
471
509
  var xEnd = end[0],
472
510
  yEnd = end[1];
473
- var labelCenter = [xCenter + Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2), yCenter + Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2)];
511
+ var labelCenter = [xCenter + Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin), yCenter + Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin)];
474
512
  var xLabelCenter = labelCenter[0],
475
513
  yLabelCenter = labelCenter[1];
476
514
  return {
@@ -620,12 +658,14 @@ var Label = function Label(_ref24) {
620
658
  var lines = String(label).split('\n');
621
659
  var linesCount = lines.length;
622
660
  var SLabelLine = 'tspan';
661
+ var angleDegs = (angle / Math.PI * 180).toFixed(2);
662
+ var transformOrigin = [x.toFixed(2), y.toFixed(2)];
663
+ var transform = "rotate(".concat([angleDegs].concat(transformOrigin).join(', '), ")");
623
664
  var sstyles = sstyled(styles);
624
665
  var sLabelStyles = sstyles.cn('SLabel', {
625
666
  color: color,
626
667
  'color-hovered': shade(color, -0.12),
627
- 'text-cursor': isHorizontal ? 'text' : 'vertical-text',
628
- 'transform-origin': "".concat(x.toFixed(2), "px ").concat(y.toFixed(2), "px")
668
+ 'text-cursor': isHorizontal ? 'text' : 'vertical-text'
629
669
  });
630
670
  return /*#__PURE__*/React.createElement(SLabel, {
631
671
  render: "text",
@@ -635,7 +675,7 @@ var Label = function Label(_ref24) {
635
675
  style: sLabelStyles.style,
636
676
  x: x.toFixed(2),
637
677
  y: y.toFixed(2),
638
- transform: "rotate(".concat((angle / Math.PI * 180).toFixed(2), ")")
678
+ transform: transform
639
679
  }, lines.map(function (lineText, lineIndex) {
640
680
  return /*#__PURE__*/React.createElement(SLabelLine, {
641
681
  x: x,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/RadialTree.tsx"],"names":["React","Component","sstyled","createElement","uniqueIDEnhancement","transition","shade","measureText","assignProps","getOriginChildren","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","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","InteractiveArea","RadialTree","Radian","SRadianList","SInteractiveArea","Line","SLine","Cap","SCap","Icon","SIcon","tag","Label","SLabel","lines","String","split","linesCount","SLabelLine","sstyles","sLabelStyles","cn","toFixed","className","lineText","lineIndex","Title","STitle"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, CProps, ReturnEl } from '@semcore/core';\n// @ts-ignore\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/radial-tree.shadow.css';\nimport { shade } from '@semcore/utils/lib/color';\nimport { measureText } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\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 angleOffset: number;\n $rootProps: RootAsProps;\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: 2,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ 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\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, angleOffset, activeKey, size, radiansCount, textWidth } = 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(minDemSize - textWidth - baseCapSize - centralMargin, 10);\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 + Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2),\n yCenter + Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2),\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 // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian 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 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 'transform-origin': `${x.toFixed(2)}px ${y.toFixed(2)}px`,\n });\n\n return (\n <SLabel\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={`rotate(${((angle / Math.PI) * 180).toFixed(2)})`}\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 styles: React.CSSProperties;\n};\nconst Title: React.FC<RadialTreeTitleAsProps> = ({\n Element: STitle,\n Children,\n styles,\n textSize,\n color,\n x,\n y,\n}) => {\n return sstyled(styles)(\n <STitle\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: CProps<IRadialTreeProps & T>,\n) => ReturnEl) & {\n Title: <T>(props: CProps<IRadialTreeTitleProps & T>) => ReturnEl;\n Radian: (<T>(props: CProps<IRadialTreeRadianProps & T>) => ReturnEl) & {\n Line: <T>(props: CProps<IRadialTreeRadianLineProps & T>) => ReturnEl;\n Cap: <T>(props: CProps<IRadialTreeRadianCapProps & T>) => ReturnEl;\n Icon: <T>(props: CProps<IRadialTreeRadianIconProps & T>) => ReturnEl;\n Label: <T>(props: CProps<IRadialTreeRadianLabelProps & T>) => ReturnEl;\n };\n};\n\nexport default RadialTree;\n"],"file":"RadialTree.js"}
1
+ {"version":3,"file":"RadialTree.js","names":["React","Component","sstyled","createElement","uniqueIDEnhancement","transition","shade","measureText","assignProps","getOriginChildren","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","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","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"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, CProps, ReturnEl } from '@semcore/core';\n// @ts-ignore\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/radial-tree.shadow.css';\nimport { shade } from '@semcore/utils/lib/color';\nimport { measureText } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\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};\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<{ 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\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 // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian 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 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 styles: React.CSSProperties;\n};\nconst Title: React.FC<RadialTreeTitleAsProps> = ({\n Element: STitle,\n Children,\n styles,\n textSize,\n color,\n x,\n y,\n}) => {\n return sstyled(styles)(\n <STitle\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: CProps<IRadialTreeProps & T>,\n) => ReturnEl) & {\n Title: <T>(props: CProps<IRadialTreeTitleProps & T>) => ReturnEl;\n Radian: (<T>(props: CProps<IRadialTreeRadianProps & T>) => ReturnEl) & {\n Line: <T>(props: CProps<IRadialTreeRadianLineProps & T>) => ReturnEl;\n Cap: <T>(props: CProps<IRadialTreeRadianCapProps & T>) => ReturnEl;\n Icon: <T>(props: CProps<IRadialTreeRadianIconProps & T>) => ReturnEl;\n Label: <T>(props: CProps<IRadialTreeRadianLabelProps & T>) => ReturnEl;\n };\n};\n\nexport default RadialTree;\n"],"mappings":"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"}
@@ -25,19 +25,19 @@ var style = (
25
25
  /*__reshadow_css_start__*/
26
26
  _sstyled.insert(
27
27
  /*__inner_css_start__*/
28
- ".___SReferenceLine_im0ix_gg_{fill:none;stroke:#a9abb6}.___STitle_im0ix_gg_{font-size:12px;fill:#6c6e79;transform-origin:var(--transform-origin_im0ix)}.___STitle_im0ix_gg_._position_top_im0ix_gg_{text-anchor:middle}.___STitle_im0ix_gg_._position_bottom_im0ix_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_im0ix_gg_._position_right_im0ix_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_im0ix_gg_._position_left_im0ix_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_im0ix_gg_{fill:rgba(196,199,207,.2)}"
28
+ ".___SReferenceLine_w9yg6_gg_{fill:none;stroke:#a9abb6}.___STitle_w9yg6_gg_{font-size:12px;fill:#6c6e79;transform-origin:var(--transform-origin_w9yg6)}.___STitle_w9yg6_gg_._position_top_w9yg6_gg_{text-anchor:middle}.___STitle_w9yg6_gg_._position_bottom_w9yg6_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_w9yg6_gg_._position_right_w9yg6_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_w9yg6_gg_._position_left_w9yg6_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_w9yg6_gg_{fill:rgba(196,199,207,.2)}"
29
29
  /*__inner_css_end__*/
30
- , "im0ix_gg_")
30
+ , "w9yg6_gg_")
31
31
  /*__reshadow_css_end__*/
32
32
  , {
33
- "__SReferenceLine": "___SReferenceLine_im0ix_gg_",
34
- "__STitle": "___STitle_im0ix_gg_",
35
- "--transform-origin": "--transform-origin_im0ix",
36
- "_position_top": "_position_top_im0ix_gg_",
37
- "_position_bottom": "_position_bottom_im0ix_gg_",
38
- "_position_right": "_position_right_im0ix_gg_",
39
- "_position_left": "_position_left_im0ix_gg_",
40
- "__SBackground": "___SBackground_im0ix_gg_"
33
+ "__SReferenceLine": "___SReferenceLine_w9yg6_gg_",
34
+ "__STitle": "___STitle_w9yg6_gg_",
35
+ "--transform-origin": "--transform-origin_w9yg6",
36
+ "_position_top": "_position_top_w9yg6_gg_",
37
+ "_position_bottom": "_position_bottom_w9yg6_gg_",
38
+ "_position_right": "_position_right_w9yg6_gg_",
39
+ "_position_left": "_position_left_w9yg6_gg_",
40
+ "__SBackground": "___SBackground_w9yg6_gg_"
41
41
  });
42
42
  var MAP_ORIENTATION = {
43
43
  left: 'vertical',