@semcore/d3-chart 2.2.2 → 2.2.3

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 (153) hide show
  1. package/CHANGELOG.md +10 -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 +1 -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/utils.js.map +1 -1
  48. package/lib/es6/Area.js +9 -9
  49. package/lib/es6/Area.js.map +1 -1
  50. package/lib/es6/Axis.js +19 -17
  51. package/lib/es6/Axis.js.map +1 -1
  52. package/lib/es6/Bar.js +11 -11
  53. package/lib/es6/Bar.js.map +1 -1
  54. package/lib/es6/Bubble.js +12 -12
  55. package/lib/es6/Bubble.js.map +1 -1
  56. package/lib/es6/ClipPath.js +1 -1
  57. package/lib/es6/ClipPath.js.map +1 -1
  58. package/lib/es6/Donut.js +8 -8
  59. package/lib/es6/Donut.js.map +1 -1
  60. package/lib/es6/Dots.js +9 -9
  61. package/lib/es6/Dots.js.map +1 -1
  62. package/lib/es6/GroupBar.js +8 -8
  63. package/lib/es6/GroupBar.js.map +1 -1
  64. package/lib/es6/HorizontalBar.js +11 -11
  65. package/lib/es6/HorizontalBar.js.map +1 -1
  66. package/lib/es6/Hover.js +4 -4
  67. package/lib/es6/Hover.js.map +1 -1
  68. package/lib/es6/Line.js +8 -8
  69. package/lib/es6/Line.js.map +1 -1
  70. package/lib/es6/Plot.js +4 -4
  71. package/lib/es6/Plot.js.map +1 -1
  72. package/lib/es6/RadialTree.js +99 -59
  73. package/lib/es6/RadialTree.js.map +1 -1
  74. package/lib/es6/ReferenceLine.js +10 -10
  75. package/lib/es6/ReferenceLine.js.map +1 -1
  76. package/lib/es6/ResponsiveContainer.js +1 -1
  77. package/lib/es6/ResponsiveContainer.js.map +1 -1
  78. package/lib/es6/ScatterPlot.js +7 -7
  79. package/lib/es6/ScatterPlot.js.map +1 -1
  80. package/lib/es6/StackBar.js +8 -8
  81. package/lib/es6/StackBar.js.map +1 -1
  82. package/lib/es6/StackedArea.js +8 -8
  83. package/lib/es6/StackedArea.js.map +1 -1
  84. package/lib/es6/Tooltip.js +15 -11
  85. package/lib/es6/Tooltip.js.map +1 -1
  86. package/lib/es6/Venn.js +9 -9
  87. package/lib/es6/Venn.js.map +1 -1
  88. package/lib/es6/color.js.map +1 -1
  89. package/lib/es6/createElement.js +1 -1
  90. package/lib/es6/createElement.js.map +1 -1
  91. package/lib/es6/index.js.map +1 -1
  92. package/lib/es6/style/radial-tree.shadow.css +0 -1
  93. package/lib/es6/utils.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/Area.jsx +0 -137
  96. package/src/Axis.jsx +0 -314
  97. package/src/Bar.jsx +0 -149
  98. package/src/Bubble.jsx +0 -165
  99. package/src/ClipPath.jsx +0 -47
  100. package/src/Donut.jsx +0 -319
  101. package/src/Dots.jsx +0 -97
  102. package/src/GroupBar.jsx +0 -76
  103. package/src/HorizontalBar.jsx +0 -135
  104. package/src/Hover.jsx +0 -153
  105. package/src/Line.jsx +0 -89
  106. package/src/Plot.jsx +0 -79
  107. package/src/RadialTree.tsx +0 -767
  108. package/src/ReferenceLine.jsx +0 -146
  109. package/src/ResponsiveContainer.jsx +0 -84
  110. package/src/ScatterPlot.jsx +0 -112
  111. package/src/StackBar.jsx +0 -105
  112. package/src/StackedArea.jsx +0 -65
  113. package/src/Tooltip.jsx +0 -145
  114. package/src/Venn.jsx +0 -114
  115. package/src/color.js +0 -21
  116. package/src/createElement.jsx +0 -135
  117. package/src/index.js +0 -27
  118. package/src/style/area.shadow.css +0 -37
  119. package/src/style/axis.shadow.css +0 -85
  120. package/src/style/bar.shadow.css +0 -21
  121. package/src/style/bubble.shadow.css +0 -45
  122. package/src/style/donut.shadow.css +0 -24
  123. package/src/style/dot.shadow.css +0 -29
  124. package/src/style/hover.shadow.css +0 -9
  125. package/src/style/line.shadow.css +0 -29
  126. package/src/style/plot.shadow.css +0 -6
  127. package/src/style/radial-tree.shadow.css +0 -34
  128. package/src/style/reference-line.shadow.css +0 -37
  129. package/src/style/scatterplot.shadow.css +0 -27
  130. package/src/style/tooltip.shadow.css +0 -36
  131. package/src/style/var.css +0 -125
  132. package/src/style/venn.shadow.css +0 -29
  133. package/src/types/Area.d.ts +0 -48
  134. package/src/types/Axis.d.ts +0 -64
  135. package/src/types/Bar.d.ts +0 -52
  136. package/src/types/Bubble.d.ts +0 -32
  137. package/src/types/ClipPath.d.ts +0 -26
  138. package/src/types/Donut.d.ts +0 -46
  139. package/src/types/GroupBar.d.ts +0 -20
  140. package/src/types/HorizontalBar.d.ts +0 -29
  141. package/src/types/Hover.d.ts +0 -15
  142. package/src/types/Line.d.ts +0 -50
  143. package/src/types/Plot.d.ts +0 -16
  144. package/src/types/ReferenceLine.d.ts +0 -31
  145. package/src/types/ResponsiveContainer.d.ts +0 -20
  146. package/src/types/ScatterPlot.d.ts +0 -27
  147. package/src/types/StackBar.d.ts +0 -26
  148. package/src/types/StackedArea.d.ts +0 -26
  149. package/src/types/Tooltip.d.ts +0 -33
  150. package/src/types/Venn.d.ts +0 -45
  151. package/src/types/context.d.ts +0 -6
  152. package/src/types/index.d.ts +0 -56
  153. package/src/utils.ts +0 -227
@@ -60,21 +60,20 @@ var style = (
60
60
  /*__reshadow_css_start__*/
61
61
  _core.sstyled.insert(
62
62
  /*__inner_css_start__*/
63
- ".___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}}"
63
+ ".___SRadian_1va8o_gg_{cursor:pointer;fill:#008ff8}.___SLine_1va8o_gg_{stroke:#008ff8}.___SLine_1va8o_gg_.__color_1va8o_gg_{stroke:var(--color_1va8o)}.___SCap_1va8o_gg_{transition:r .1s}.___SLabel_1va8o_gg_{fill:var(--color_1va8o);cursor:var(--text-cursor_1va8o)}.___SRadian_1va8o_gg_:hover .___SLabel_1va8o_gg_{fill:var(--color-hovered_1va8o)}@media (prefers-reduced-motion){.___SLineCap_1va8o_gg_{transition:none}}"
64
64
  /*__inner_css_end__*/
65
- , "hkcqa_gg_")
65
+ , "1va8o_gg_")
66
66
  /*__reshadow_css_end__*/
67
67
  , {
68
- "__SRadian": "___SRadian_hkcqa_gg_",
69
- "__SLine": "___SLine_hkcqa_gg_",
70
- "_color": "__color_hkcqa_gg_",
71
- "--color": "--color_hkcqa",
72
- "__SCap": "___SCap_hkcqa_gg_",
73
- "__SLabel": "___SLabel_hkcqa_gg_",
74
- "--text-cursor": "--text-cursor_hkcqa",
75
- "--transform-origin": "--transform-origin_hkcqa",
76
- "--color-hovered": "--color-hovered_hkcqa",
77
- "__SLineCap": "___SLineCap_hkcqa_gg_"
68
+ "__SRadian": "___SRadian_1va8o_gg_",
69
+ "__SLine": "___SLine_1va8o_gg_",
70
+ "_color": "__color_1va8o_gg_",
71
+ "--color": "--color_1va8o",
72
+ "__SCap": "___SCap_1va8o_gg_",
73
+ "__SLabel": "___SLabel_1va8o_gg_",
74
+ "--text-cursor": "--text-cursor_1va8o",
75
+ "--color-hovered": "--color-hovered_1va8o",
76
+ "__SLineCap": "___SLineCap_1va8o_gg_"
78
77
  });
79
78
  var baseAngle = -Math.PI / 2; // The top vertical line
80
79
 
@@ -103,10 +102,12 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
103
102
  }, {
104
103
  key: "runAppearAnimation",
105
104
  value: function runAppearAnimation() {
105
+ var _window$matchMedia;
106
+
106
107
  var _this$asProps = this.asProps,
107
108
  duration = _this$asProps.duration,
108
109
  uid = _this$asProps.uid;
109
- var preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;
110
+ var preferReduceMotion = (_window$matchMedia = window.matchMedia('(prefers-reduced-motion: reduce)')) === null || _window$matchMedia === void 0 ? void 0 : _window$matchMedia.matches;
110
111
  /** using `!(>)` instead of `<=` to get true on NaN and non numbers stuff */
111
112
 
112
113
  if (!(duration > 0)) return;
@@ -122,14 +123,16 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
122
123
 
123
124
  if (circlesNodes.length > 0) {
124
125
  var attrs = circlesNodes.map(function (node) {
125
- var cx = node.cx?.baseVal?.value;
126
- var cy = node.cy?.baseVal?.value;
126
+ var _node$cx, _node$cx$baseVal, _node$cy, _node$cy$baseVal, _lineNode$x, _lineNode$x$baseVal, _lineNode$y, _lineNode$y$baseVal;
127
+
128
+ 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;
129
+ 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;
127
130
  var radianIndex = parseInt(node.dataset.radianIndex, 10);
128
131
  var lineNode = linesNodes[radianIndex];
129
132
  return {
130
133
  from: {
131
- cx: lineNode.x1?.baseVal?.value,
132
- cy: lineNode.y1?.baseVal?.value
134
+ 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,
135
+ 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
133
136
  },
134
137
  to: {
135
138
  cx: cx,
@@ -138,29 +141,39 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
138
141
  };
139
142
  });
140
143
  circlesAnimation.attr('opacity', 0).attr('cx', function (_, index) {
141
- return attrs[index].from?.cx;
144
+ var _attrs$index$from;
145
+
146
+ return (_attrs$index$from = attrs[index].from) === null || _attrs$index$from === void 0 ? void 0 : _attrs$index$from.cx;
142
147
  }).attr('cy', function (_, index) {
143
- return attrs[index].from?.cy;
148
+ var _attrs$index$from2;
149
+
150
+ return (_attrs$index$from2 = attrs[index].from) === null || _attrs$index$from2 === void 0 ? void 0 : _attrs$index$from2.cy;
144
151
  });
145
152
  circlesAnimation.transition().duration(duration).attr('opacity', 1).attr('cx', function (_, index) {
146
- return attrs[index].to?.cx;
153
+ var _attrs$index$to;
154
+
155
+ return (_attrs$index$to = attrs[index].to) === null || _attrs$index$to === void 0 ? void 0 : _attrs$index$to.cx;
147
156
  }).attr('cy', function (_, index) {
148
- return attrs[index].to?.cy;
157
+ var _attrs$index$to2;
158
+
159
+ return (_attrs$index$to2 = attrs[index].to) === null || _attrs$index$to2 === void 0 ? void 0 : _attrs$index$to2.cy;
149
160
  });
150
161
  }
151
162
 
152
163
  if (iconsNodes.length > 0) {
153
164
  var _attrs = iconsNodes.map(function (node) {
154
- var x = node.x?.baseVal?.value;
155
- var y = node.y?.baseVal?.value;
156
- var width = node.width?.baseVal?.value;
157
- var height = node.height?.baseVal?.value;
165
+ 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;
166
+
167
+ 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;
168
+ 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;
169
+ 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;
170
+ 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;
158
171
  var radianIndex = parseInt(node.dataset.radianIndex, 10);
159
172
  var lineNode = linesNodes[radianIndex];
160
173
  return {
161
174
  from: {
162
- x: lineNode.x1?.baseVal?.value - width / 2,
163
- y: lineNode.y1?.baseVal?.value - height / 2
175
+ 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,
176
+ 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
164
177
  },
165
178
  to: {
166
179
  x: x,
@@ -170,25 +183,35 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
170
183
  });
171
184
 
172
185
  iconsAnimation.attr('opacity', 0).attr('x', function (_, index) {
173
- return _attrs[index].from?.x;
186
+ var _attrs$index$from3;
187
+
188
+ return (_attrs$index$from3 = _attrs[index].from) === null || _attrs$index$from3 === void 0 ? void 0 : _attrs$index$from3.x;
174
189
  }).attr('y', function (_, index) {
175
- return _attrs[index].from?.y;
190
+ var _attrs$index$from4;
191
+
192
+ return (_attrs$index$from4 = _attrs[index].from) === null || _attrs$index$from4 === void 0 ? void 0 : _attrs$index$from4.y;
176
193
  });
177
194
  iconsAnimation.transition().duration(duration).attr('opacity', 1).attr('x', function (_, index) {
178
- return _attrs[index].to?.x;
195
+ var _attrs$index$to3;
196
+
197
+ return (_attrs$index$to3 = _attrs[index].to) === null || _attrs$index$to3 === void 0 ? void 0 : _attrs$index$to3.x;
179
198
  }).attr('y', function (_, index) {
180
- return _attrs[index].to?.y;
199
+ var _attrs$index$to4;
200
+
201
+ return (_attrs$index$to4 = _attrs[index].to) === null || _attrs$index$to4 === void 0 ? void 0 : _attrs$index$to4.y;
181
202
  });
182
203
  }
183
204
 
184
205
  if (linesNodes.length > 0) {
185
206
  var _attrs2 = linesNodes.map(function (node) {
186
- var x2 = node.x2?.baseVal?.value;
187
- var y2 = node.y2?.baseVal?.value;
207
+ var _node$x2, _node$x2$baseVal, _node$y2, _node$y2$baseVal, _node$x3, _node$x3$baseVal, _node$y3, _node$y3$baseVal;
208
+
209
+ 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;
210
+ 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;
188
211
  return {
189
212
  from: {
190
- x2: node.x1?.baseVal?.value,
191
- y2: node.y1?.baseVal?.value
213
+ 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,
214
+ 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
192
215
  },
193
216
  to: {
194
217
  x2: x2,
@@ -198,14 +221,22 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
198
221
  });
199
222
 
200
223
  linesAnimation.attr('opacity', 0).attr('x2', function (_, index) {
201
- return _attrs2[index].from?.x2;
224
+ var _attrs2$index$from;
225
+
226
+ return (_attrs2$index$from = _attrs2[index].from) === null || _attrs2$index$from === void 0 ? void 0 : _attrs2$index$from.x2;
202
227
  }).attr('y2', function (_, index) {
203
- return _attrs2[index].from?.y2;
228
+ var _attrs2$index$from2;
229
+
230
+ return (_attrs2$index$from2 = _attrs2[index].from) === null || _attrs2$index$from2 === void 0 ? void 0 : _attrs2$index$from2.y2;
204
231
  });
205
232
  linesAnimation.transition().duration(duration).attr('opacity', 1).attr('x2', function (_, index) {
206
- return _attrs2[index].to?.x2;
233
+ var _attrs2$index$to;
234
+
235
+ return (_attrs2$index$to = _attrs2[index].to) === null || _attrs2$index$to === void 0 ? void 0 : _attrs2$index$to.x2;
207
236
  }).attr('y2', function (_, index) {
208
- return _attrs2[index].to?.y2;
237
+ var _attrs2$index$to2;
238
+
239
+ return (_attrs2$index$to2 = _attrs2[index].to) === null || _attrs2$index$to2 === void 0 ? void 0 : _attrs2$index$to2.y2;
209
240
  });
210
241
  }
211
242
 
@@ -217,7 +248,9 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
217
248
  }, {
218
249
  key: "componentDidUpdate",
219
250
  value: function componentDidUpdate(prevProps) {
220
- if (prevProps.$rootProps.data?.length !== this.asProps.data?.length) {
251
+ var _prevProps$$rootProps, _this$asProps$data;
252
+
253
+ 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)) {
221
254
  this.runAppearAnimation();
222
255
  }
223
256
  }
@@ -306,7 +339,7 @@ var RadialTreeBase = /*#__PURE__*/function (_Component) {
306
339
  angleOffset: 0,
307
340
  duration: 300,
308
341
  centralMargin: 50,
309
- labelMargin: 2,
342
+ labelMargin: 5,
310
343
  iconColor: '#fff',
311
344
  capSize: 8,
312
345
  iconSize: 8,
@@ -353,7 +386,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
353
386
  }, {
354
387
  key: "getLineProps",
355
388
  value: function getLineProps(_ref12, index) {
356
- var _ref13;
389
+ var _data$color, _ref13;
357
390
 
358
391
  var $rootProps = _ref12.$rootProps;
359
392
  var data = $rootProps.data[index];
@@ -365,7 +398,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
365
398
  yEnd = _this$computeRadianPo2.yEnd;
366
399
 
367
400
  var uid = this.asProps.uid;
368
- var color = data.color ?? this.asProps.color;
401
+ var color = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.asProps.color;
369
402
  return _ref13 = {
370
403
  x1: xStart,
371
404
  y1: yStart,
@@ -377,7 +410,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
377
410
  }, {
378
411
  key: "getCapProps",
379
412
  value: function getCapProps(_ref14, index) {
380
- var _ref15;
413
+ var _data$color2, _ref15;
381
414
 
382
415
  var $rootProps = _ref14.$rootProps;
383
416
  var data = $rootProps.data[index];
@@ -388,7 +421,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
388
421
  capSize = _this$computeRadianPo3.capSize;
389
422
 
390
423
  var uid = this.asProps.uid;
391
- var color = data.color ?? this.asProps.color;
424
+ var color = (_data$color2 = data.color) !== null && _data$color2 !== void 0 ? _data$color2 : this.asProps.color;
392
425
  return _ref15 = {
393
426
  x: xEnd,
394
427
  y: yEnd,
@@ -399,7 +432,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
399
432
  }, {
400
433
  key: "getIconProps",
401
434
  value: function getIconProps(_ref16, index) {
402
- var _ref17;
435
+ var _data$iconColor, _data$iconSize, _data$icon, _ref17;
403
436
 
404
437
  var $rootProps = _ref16.$rootProps;
405
438
  var data = $rootProps.data[index];
@@ -410,20 +443,20 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
410
443
  isActive = _this$computeRadianPo4.isActive;
411
444
 
412
445
  var uid = this.asProps.uid;
413
- var iconColor = data.iconColor ?? this.asProps.iconColor;
414
- var iconSize = data.iconSize ?? this.asProps.iconSize;
415
- var icon = data.icon ?? this.asProps.icon;
446
+ var iconColor = (_data$iconColor = data.iconColor) !== null && _data$iconColor !== void 0 ? _data$iconColor : this.asProps.iconColor;
447
+ var iconSize = (_data$iconSize = data.iconSize) !== null && _data$iconSize !== void 0 ? _data$iconSize : this.asProps.iconSize;
448
+ var icon = (_data$icon = data.icon) !== null && _data$icon !== void 0 ? _data$icon : this.asProps.icon;
416
449
  return _ref17 = {
417
450
  x: xEnd - iconSize / 2,
418
451
  y: yEnd - iconSize / 2,
419
452
  iconSize: iconSize,
420
- color: iconColor ?? '#fff'
453
+ color: iconColor !== null && iconColor !== void 0 ? iconColor : '#fff'
421
454
  }, (0, _defineProperty2["default"])(_ref17, 'data-radial-animation', "".concat(uid, "-cap-icon")), (0, _defineProperty2["default"])(_ref17, 'data-radian-index', index), (0, _defineProperty2["default"])(_ref17, "icon", icon), (0, _defineProperty2["default"])(_ref17, "isActive", isActive), _ref17;
422
455
  }
423
456
  }, {
424
457
  key: "getLabelProps",
425
458
  value: function getLabelProps(_ref18, index) {
426
- var _ref19;
459
+ var _data$color3, _ref19;
427
460
 
428
461
  var $rootProps = _ref18.$rootProps;
429
462
  var data = $rootProps.data[index];
@@ -438,7 +471,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
438
471
  uid = _this$asProps5.uid,
439
472
  textSize = _this$asProps5.textSize;
440
473
  var label = data.label;
441
- var color = data.color ?? this.asProps.color;
474
+ var color = (_data$color3 = data.color) !== null && _data$color3 !== void 0 ? _data$color3 : this.asProps.color;
442
475
  return _ref19 = {
443
476
  x: xLabelCenter,
444
477
  y: yLabelCenter,
@@ -448,13 +481,18 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
448
481
  }, {
449
482
  key: "getRadianKey",
450
483
  value: function getRadianKey(data, index) {
451
- return data.key ?? "radian-".concat(index);
484
+ var _data$key;
485
+
486
+ return (_data$key = data.key) !== null && _data$key !== void 0 ? _data$key : "radian-".concat(index);
452
487
  }
453
488
  }, {
454
489
  key: "computeRadianPosition",
455
490
  value: function computeRadianPosition(data, index) {
491
+ var _data$capSize;
492
+
456
493
  var _this$asProps6 = this.asProps,
457
494
  centralMargin = _this$asProps6.centralMargin,
495
+ labelMargin = _this$asProps6.labelMargin,
458
496
  angleOffset = _this$asProps6.angleOffset,
459
497
  activeKey = _this$asProps6.activeKey,
460
498
  size = _this$asProps6.size,
@@ -467,10 +505,10 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
467
505
 
468
506
  var key = this.getRadianKey(data, index);
469
507
  var isActive = activeKey === key;
470
- var baseCapSize = data.capSize ?? this.asProps.capSize;
508
+ var baseCapSize = (_data$capSize = data.capSize) !== null && _data$capSize !== void 0 ? _data$capSize : this.asProps.capSize;
471
509
  var capSize = baseCapSize * (isActive ? 1 : 0.5);
472
510
  var minDemSize = Math.min(width, height) / 2;
473
- var length = Math.max(minDemSize - textWidth - baseCapSize - centralMargin, 10);
511
+ var length = Math.max(minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2, 10);
474
512
  var angle = baseAngle + angleOffset + index / radiansCount * (Math.PI * 2);
475
513
  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;
476
514
  var topAngle = -Math.PI / 2;
@@ -484,7 +522,7 @@ var RadialTreeRadian = /*#__PURE__*/function (_Component2) {
484
522
  yStart = start[1];
485
523
  var xEnd = end[0],
486
524
  yEnd = end[1];
487
- var labelCenter = [xCenter + Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2), yCenter + Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2)];
525
+ var labelCenter = [xCenter + Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin), yCenter + Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin)];
488
526
  var xLabelCenter = labelCenter[0],
489
527
  yLabelCenter = labelCenter[1];
490
528
  return {
@@ -631,12 +669,14 @@ var Label = function Label(_ref24) {
631
669
  var lines = String(label).split('\n');
632
670
  var linesCount = lines.length;
633
671
  var SLabelLine = 'tspan';
672
+ var angleDegs = (angle / Math.PI * 180).toFixed(2);
673
+ var transformOrigin = [x.toFixed(2), y.toFixed(2)];
674
+ var transform = "rotate(".concat([angleDegs].concat(transformOrigin).join(', '), ")");
634
675
  var sstyles = (0, _core.sstyled)(styles);
635
676
  var sLabelStyles = sstyles.cn('SLabel', {
636
677
  color: color,
637
678
  'color-hovered': (0, _color.shade)(color, -0.12),
638
- 'text-cursor': isHorizontal ? 'text' : 'vertical-text',
639
- 'transform-origin': "".concat(x.toFixed(2), "px ").concat(y.toFixed(2), "px")
679
+ 'text-cursor': isHorizontal ? 'text' : 'vertical-text'
640
680
  });
641
681
  return /*#__PURE__*/_react["default"].createElement(SLabel, {
642
682
  render: "text",
@@ -646,7 +686,7 @@ var Label = function Label(_ref24) {
646
686
  style: sLabelStyles.style,
647
687
  x: x.toFixed(2),
648
688
  y: y.toFixed(2),
649
- transform: "rotate(".concat((angle / Math.PI * 180).toFixed(2), ")")
689
+ transform: transform
650
690
  }, lines.map(function (lineText, lineIndex) {
651
691
  return /*#__PURE__*/_react["default"].createElement(SLabelLine, {
652
692
  x: x,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/RadialTree.tsx"],"names":["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","transition","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","Component","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":["baseAngle","Math","PI","RadialTreeBase","props","handleRadianClick","bind","activeKey","asProps","duration","uid","preferReduceMotion","window","matchMedia","matches","circlesAnimation","transition","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","measureText","max","size","center","restRootProps","textWidth","computeTextWidth","radiansCount","onRadianClick","SRadialTree","Element","Children","sstyled","styles","Component","style","uniqueIDEnhancement","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","getOriginChildren","_child","mergedProps","assignProps","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","shade","className","lineText","lineIndex","createElement","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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"}
@@ -42,19 +42,19 @@ var style = (
42
42
  /*__reshadow_css_start__*/
43
43
  _core.sstyled.insert(
44
44
  /*__inner_css_start__*/
45
- ".___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)}"
45
+ ".___SReferenceLine_3wxxg_gg_{fill:none;stroke:#a9abb6}.___STitle_3wxxg_gg_{font-size:12px;fill:#6c6e79;transform-origin:var(--transform-origin_3wxxg)}.___STitle_3wxxg_gg_._position_top_3wxxg_gg_{text-anchor:middle}.___STitle_3wxxg_gg_._position_bottom_3wxxg_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_3wxxg_gg_._position_right_3wxxg_gg_{transform:rotate(-90deg);alignment-baseline:middle;text-anchor:middle}.___STitle_3wxxg_gg_._position_left_3wxxg_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_3wxxg_gg_{fill:rgba(196,199,207,.2)}"
46
46
  /*__inner_css_end__*/
47
- , "im0ix_gg_")
47
+ , "3wxxg_gg_")
48
48
  /*__reshadow_css_end__*/
49
49
  , {
50
- "__SReferenceLine": "___SReferenceLine_im0ix_gg_",
51
- "__STitle": "___STitle_im0ix_gg_",
52
- "--transform-origin": "--transform-origin_im0ix",
53
- "_position_top": "_position_top_im0ix_gg_",
54
- "_position_bottom": "_position_bottom_im0ix_gg_",
55
- "_position_right": "_position_right_im0ix_gg_",
56
- "_position_left": "_position_left_im0ix_gg_",
57
- "__SBackground": "___SBackground_im0ix_gg_"
50
+ "__SReferenceLine": "___SReferenceLine_3wxxg_gg_",
51
+ "__STitle": "___STitle_3wxxg_gg_",
52
+ "--transform-origin": "--transform-origin_3wxxg",
53
+ "_position_top": "_position_top_3wxxg_gg_",
54
+ "_position_bottom": "_position_bottom_3wxxg_gg_",
55
+ "_position_right": "_position_right_3wxxg_gg_",
56
+ "_position_left": "_position_left_3wxxg_gg_",
57
+ "__SBackground": "___SBackground_3wxxg_gg_"
58
58
  });
59
59
  var MAP_ORIENTATION = {
60
60
  left: 'vertical',