@semcore/d3-chart 1.0.0-8 → 1.2.0

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 (154) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/lib/cjs/Area.js +71 -49
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Axis.js +148 -142
  5. package/lib/cjs/Axis.js.map +1 -1
  6. package/lib/cjs/Bar.js +101 -54
  7. package/lib/cjs/Bar.js.map +1 -1
  8. package/lib/cjs/ClipPath.js +110 -0
  9. package/lib/cjs/ClipPath.js.map +1 -0
  10. package/lib/cjs/Donut.js +169 -68
  11. package/lib/cjs/Donut.js.map +1 -1
  12. package/lib/cjs/Dots.js +55 -21
  13. package/lib/cjs/Dots.js.map +1 -1
  14. package/lib/cjs/GroupBar.js +7 -6
  15. package/lib/cjs/GroupBar.js.map +1 -1
  16. package/lib/cjs/HorizontalBar.js +72 -45
  17. package/lib/cjs/HorizontalBar.js.map +1 -1
  18. package/lib/cjs/Hover.js +46 -47
  19. package/lib/cjs/Hover.js.map +1 -1
  20. package/lib/cjs/Line.js +63 -41
  21. package/lib/cjs/Line.js.map +1 -1
  22. package/lib/cjs/Plot.js +16 -29
  23. package/lib/cjs/Plot.js.map +1 -1
  24. package/lib/cjs/ResponsiveContainer.js +13 -9
  25. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  26. package/lib/cjs/StackBar.js +6 -6
  27. package/lib/cjs/StackBar.js.map +1 -1
  28. package/lib/cjs/StackedArea.js +8 -9
  29. package/lib/cjs/StackedArea.js.map +1 -1
  30. package/lib/cjs/Tooltip.js +49 -75
  31. package/lib/cjs/Tooltip.js.map +1 -1
  32. package/lib/cjs/Venn.js +235 -0
  33. package/lib/cjs/Venn.js.map +1 -0
  34. package/lib/cjs/index.js +8 -0
  35. package/lib/cjs/index.js.map +1 -1
  36. package/lib/cjs/style/area.shadow.css +11 -10
  37. package/lib/cjs/style/bar.shadow.css +4 -0
  38. package/lib/cjs/style/donut.shadow.css +1 -0
  39. package/lib/cjs/style/dot.shadow.css +19 -0
  40. package/lib/cjs/style/line.shadow.css +4 -15
  41. package/lib/cjs/style/tooltip.shadow.css +1 -0
  42. package/lib/cjs/style/venn.shadow.css +23 -0
  43. package/lib/cjs/utils.js +8 -1
  44. package/lib/cjs/utils.js.map +1 -1
  45. package/lib/es6/Area.js +72 -50
  46. package/lib/es6/Area.js.map +1 -1
  47. package/lib/es6/Axis.js +149 -143
  48. package/lib/es6/Axis.js.map +1 -1
  49. package/lib/es6/Bar.js +100 -54
  50. package/lib/es6/Bar.js.map +1 -1
  51. package/lib/es6/ClipPath.js +91 -0
  52. package/lib/es6/ClipPath.js.map +1 -0
  53. package/lib/es6/Donut.js +167 -67
  54. package/lib/es6/Donut.js.map +1 -1
  55. package/lib/es6/Dots.js +51 -20
  56. package/lib/es6/Dots.js.map +1 -1
  57. package/lib/es6/GroupBar.js +7 -6
  58. package/lib/es6/GroupBar.js.map +1 -1
  59. package/lib/es6/HorizontalBar.js +72 -45
  60. package/lib/es6/HorizontalBar.js.map +1 -1
  61. package/lib/es6/Hover.js +47 -48
  62. package/lib/es6/Hover.js.map +1 -1
  63. package/lib/es6/Line.js +65 -43
  64. package/lib/es6/Line.js.map +1 -1
  65. package/lib/es6/Plot.js +17 -29
  66. package/lib/es6/Plot.js.map +1 -1
  67. package/lib/es6/ResponsiveContainer.js +13 -7
  68. package/lib/es6/ResponsiveContainer.js.map +1 -1
  69. package/lib/es6/StackBar.js +6 -6
  70. package/lib/es6/StackBar.js.map +1 -1
  71. package/lib/es6/StackedArea.js +8 -9
  72. package/lib/es6/StackedArea.js.map +1 -1
  73. package/lib/es6/Tooltip.js +52 -76
  74. package/lib/es6/Tooltip.js.map +1 -1
  75. package/lib/es6/Venn.js +217 -0
  76. package/lib/es6/Venn.js.map +1 -0
  77. package/lib/es6/index.js +1 -0
  78. package/lib/es6/index.js.map +1 -1
  79. package/lib/es6/style/area.shadow.css +11 -10
  80. package/lib/es6/style/bar.shadow.css +4 -0
  81. package/lib/es6/style/donut.shadow.css +1 -0
  82. package/lib/es6/style/dot.shadow.css +19 -0
  83. package/lib/es6/style/line.shadow.css +4 -15
  84. package/lib/es6/style/tooltip.shadow.css +1 -0
  85. package/lib/es6/style/venn.shadow.css +23 -0
  86. package/lib/es6/utils.js +6 -1
  87. package/lib/es6/utils.js.map +1 -1
  88. package/lib/types/Area.d.ts +7 -8
  89. package/lib/types/Axis.d.ts +6 -6
  90. package/lib/types/Bar.d.ts +7 -3
  91. package/lib/types/ClipPath.d.ts +26 -0
  92. package/lib/types/Donut.d.ts +12 -2
  93. package/lib/types/GroupBar.d.ts +2 -2
  94. package/lib/types/HorizontalBar.d.ts +7 -3
  95. package/lib/types/Hover.d.ts +2 -2
  96. package/lib/types/Line.d.ts +9 -4
  97. package/{src/types/Plot.ts → lib/types/Plot.d.ts} +2 -2
  98. package/lib/types/ResponsiveContainer.d.ts +1 -1
  99. package/lib/types/StackBar.d.ts +3 -11
  100. package/lib/types/StackedArea.d.ts +7 -6
  101. package/lib/types/Tooltip.d.ts +4 -4
  102. package/lib/types/Venn.d.ts +45 -0
  103. package/lib/types/context.d.ts +1 -1
  104. package/lib/types/index.d.ts +6 -0
  105. package/package.json +10 -5
  106. package/src/Area.js +43 -14
  107. package/src/Axis.js +24 -22
  108. package/src/Bar.js +69 -24
  109. package/src/ClipPath.js +36 -0
  110. package/src/Donut.js +84 -12
  111. package/src/Dots.js +36 -20
  112. package/src/GroupBar.js +1 -0
  113. package/src/HorizontalBar.js +49 -22
  114. package/src/Hover.js +3 -3
  115. package/src/Line.js +41 -13
  116. package/src/Plot.js +3 -7
  117. package/src/ResponsiveContainer.js +3 -3
  118. package/src/StackBar.js +1 -1
  119. package/src/StackedArea.js +3 -2
  120. package/src/Tooltip.js +11 -12
  121. package/src/Venn.js +112 -0
  122. package/src/index.js +1 -0
  123. package/src/style/area.shadow.css +11 -10
  124. package/src/style/bar.shadow.css +4 -0
  125. package/src/style/donut.shadow.css +1 -0
  126. package/src/style/dot.shadow.css +19 -0
  127. package/src/style/line.shadow.css +4 -15
  128. package/src/style/tooltip.shadow.css +1 -0
  129. package/src/style/venn.shadow.css +23 -0
  130. package/src/types/Area.d.ts +7 -8
  131. package/src/types/Axis.d.ts +6 -6
  132. package/src/types/Bar.d.ts +7 -3
  133. package/src/types/ClipPath.d.ts +26 -0
  134. package/src/types/Donut.d.ts +12 -2
  135. package/src/types/GroupBar.d.ts +2 -2
  136. package/src/types/HorizontalBar.d.ts +7 -3
  137. package/src/types/Hover.d.ts +2 -2
  138. package/src/types/Line.d.ts +9 -4
  139. package/src/types/Plot.d.ts +16 -0
  140. package/src/types/ResponsiveContainer.d.ts +1 -1
  141. package/src/types/StackBar.d.ts +3 -11
  142. package/src/types/StackedArea.d.ts +7 -6
  143. package/src/types/Tooltip.d.ts +4 -4
  144. package/src/types/Venn.d.ts +45 -0
  145. package/src/types/context.d.ts +1 -1
  146. package/src/types/index.d.ts +6 -0
  147. package/src/utils.js +7 -1
  148. package/lib/cjs/style/chart.shadow.css +0 -4
  149. package/lib/cjs/types/Plot.js +0 -2
  150. package/lib/cjs/types/Plot.js.map +0 -1
  151. package/lib/es6/style/chart.shadow.css +0 -4
  152. package/lib/es6/types/Plot.js +0 -2
  153. package/lib/es6/types/Plot.js.map +0 -1
  154. package/src/style/chart.shadow.css +0 -4
package/lib/es6/Donut.js CHANGED
@@ -6,7 +6,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
6
6
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
7
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
- import _extends from "@babel/runtime/helpers/extends";
9
+ import { sstyled as _sstyled } from "@semcore/core";
10
10
 
11
11
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
12
 
@@ -14,29 +14,74 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
14
14
 
15
15
  import React from 'react';
16
16
  import { arc, pie } from 'd3-shape';
17
- import { Component, styled, css, __css__, set, create, map } from '@semcore/core';
17
+ import { Component, sstyled } from '@semcore/core';
18
18
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
19
19
  import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
20
20
  import { CONSTANT } from './utils';
21
21
  import createElement from './createElement';
22
+ import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
23
+ import { interpolate } from 'd3-interpolate';
24
+ import { transition } from 'd3-transition';
22
25
 
23
26
  /*__reshadow-styles__:"./style/donut.shadow.css"*/
24
- var _ref = (
27
+ var style = (
25
28
  /*__reshadow_css_start__*/
26
- __css__(
29
+ _sstyled.insert(
27
30
  /*__inner_css_start__*/
28
- ".___SPie_clp52_gg_{stroke:#fff}.___SLabel_clp52_gg_{text-anchor:middle;vertical-anchor:middle}"
31
+ ".___SPie_1ar8h_gg_{stroke:#fff;fill:var(--color_3mch97)}.___SLabel_1ar8h_gg_{text-anchor:middle;vertical-anchor:middle}"
29
32
  /*__inner_css_end__*/
30
- , "101dz40_gg_")
33
+ , "3mch97_gg_")
31
34
  /*__reshadow_css_end__*/
32
35
  , {
33
- "__SPie": "___SPie_clp52_gg_",
34
- "__SLabel": "___SLabel_clp52_gg_"
35
- }),
36
- style = _extends({}, _ref);
37
-
36
+ "__SPie": "___SPie_1ar8h_gg_",
37
+ "--color": "--color_3mch97",
38
+ "__SLabel": "___SLabel_1ar8h_gg_"
39
+ });
38
40
  var DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');
39
41
 
42
+ function animationInitialPie(_ref3) {
43
+ var halfsize = _ref3.halfsize,
44
+ d3Arc = _ref3.d3Arc,
45
+ arcs = _ref3.arcs;
46
+ return function (_, ind) {
47
+ var d = arcs[ind];
48
+ if (!d) return function () {
49
+ return '';
50
+ };
51
+ var iStart = interpolate(halfsize ? -Math.PI / 2 : 0, d.startAngle);
52
+ var iEnd = interpolate(halfsize ? -Math.PI / 2 : 0, d.endAngle);
53
+ return function (t) {
54
+ d.startAngle = iStart(t);
55
+ d.endAngle = iEnd(t);
56
+ return d3Arc(d);
57
+ };
58
+ };
59
+ }
60
+
61
+ function animationUpdatePie(_ref4) {
62
+ var halfsize = _ref4.halfsize,
63
+ arcs = _ref4.arcs,
64
+ d3Arc = _ref4.d3Arc;
65
+ return function (_, ind) {
66
+ var d = arcs[ind];
67
+
68
+ if (this._current) {
69
+ var i = interpolate(this._current, d);
70
+ this._current = i(0);
71
+ return function (t) {
72
+ return d3Arc(i(t));
73
+ };
74
+ } else {
75
+ this._current = d;
76
+ return animationInitialPie({
77
+ halfsize: halfsize,
78
+ arcs: arcs,
79
+ d3Arc: d3Arc
80
+ })(_, ind);
81
+ }
82
+ };
83
+ }
84
+
40
85
  var DonutRoot = /*#__PURE__*/function (_Component) {
41
86
  _inherits(DonutRoot, _Component);
42
87
 
@@ -56,9 +101,9 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
56
101
  _defineProperty(_assertThisInitialized(_this), "virtualElement", canUseDOM() ? document.createElement('div') : {});
57
102
 
58
103
  _defineProperty(_assertThisInitialized(_this), "bindHandlerTooltip", function (visible, props) {
59
- return function (_ref2) {
60
- var x = _ref2.clientX,
61
- y = _ref2.clientY;
104
+ return function (_ref5) {
105
+ var x = _ref5.clientX,
106
+ y = _ref5.clientY;
62
107
  var eventEmitter = _this.asProps.eventEmitter;
63
108
  _this.virtualElement.getBoundingClientRect = _this.generateGetBoundingClientRect(x, y);
64
109
  _this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;
@@ -70,6 +115,14 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
70
115
  }
71
116
 
72
117
  _createClass(DonutRoot, [{
118
+ key: "id",
119
+ get: function get() {
120
+ var _this$asProps = this.asProps,
121
+ uid = _this$asProps.uid,
122
+ id = _this$asProps.id;
123
+ return id || uid;
124
+ }
125
+ }, {
73
126
  key: "generateGetBoundingClientRect",
74
127
  value: function generateGetBoundingClientRect() {
75
128
  var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
@@ -88,10 +141,10 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
88
141
  }, {
89
142
  key: "getArcs",
90
143
  value: function getArcs() {
91
- var _this$asProps = this.asProps,
92
- Children = _this$asProps.Children,
93
- data = _this$asProps.data,
94
- d3Pie = _this$asProps.d3Pie;
144
+ var _this$asProps2 = this.asProps,
145
+ Children = _this$asProps2.Children,
146
+ data = _this$asProps2.data,
147
+ d3Pie = _this$asProps2.d3Pie;
95
148
  var pieData = Object.entries(data);
96
149
 
97
150
  if (d3Pie[DEFAULT_INSTANCE]) {
@@ -102,22 +155,30 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
102
155
 
103
156
  return acc;
104
157
  }, []);
105
- pieData = Object.entries(data).filter(function (_ref3) {
106
- var _ref4 = _slicedToArray(_ref3, 1),
107
- key = _ref4[0];
158
+ pieData = Object.entries(data).filter(function (_ref6) {
159
+ var _ref7 = _slicedToArray(_ref6, 1),
160
+ key = _ref7[0];
108
161
 
109
162
  return keys.includes(key);
110
- }).sort(function (_ref5, _ref6) {
111
- var _ref7 = _slicedToArray(_ref5, 1),
112
- a = _ref7[0];
163
+ }).sort(function (_ref8, _ref9) {
164
+ var _ref10 = _slicedToArray(_ref8, 1),
165
+ a = _ref10[0];
113
166
 
114
- var _ref8 = _slicedToArray(_ref6, 1),
115
- b = _ref8[0];
167
+ var _ref11 = _slicedToArray(_ref9, 1),
168
+ b = _ref11[0];
116
169
 
117
170
  return keys.indexOf(a) > keys.indexOf(b) ? 1 : -1;
118
171
  });
119
172
  }
120
173
 
174
+ var minValue = pieData.reduce(function (acc, cur) {
175
+ if (cur[1]) acc += cur[1];
176
+ return acc;
177
+ }, 0) / 100;
178
+ pieData = pieData.map(function (d) {
179
+ if (d[1] && d[1] < minValue) d[1] = minValue;
180
+ return d;
181
+ });
121
182
  return d3Pie(pieData);
122
183
  }
123
184
  }, {
@@ -126,7 +187,7 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
126
187
  var d3Arc = this.asProps.d3Arc;
127
188
  return {
128
189
  data: this.arcs.find(function (arc) {
129
- return arc.data[0] == props.dataKey;
190
+ return arc.data[0] === props.dataKey;
130
191
  }),
131
192
  d3Arc: d3Arc,
132
193
  onMouseMove: this.bindHandlerTooltip(true, props),
@@ -146,12 +207,49 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
146
207
  color: '#E4ECF1'
147
208
  };
148
209
  }
210
+ }, {
211
+ key: "componentDidUpdate",
212
+ value: function componentDidUpdate(prevProps) {
213
+ var _this$asProps3 = this.asProps,
214
+ data = _this$asProps3.data,
215
+ duration = _this$asProps3.duration,
216
+ d3Arc = _this$asProps3.d3Arc,
217
+ halfsize = _this$asProps3.halfsize;
218
+ var arcs = this.arcs;
219
+
220
+ if (prevProps.$rootProps.data !== data && duration > 0) {
221
+ transition().selection().selectAll("#".concat(this.id, " [data-ui-name=\"Donut.Pie\"]")).transition().duration(duration).attrTween('d', animationUpdatePie({
222
+ d3Arc: d3Arc,
223
+ arcs: arcs,
224
+ halfsize: halfsize
225
+ }));
226
+ }
227
+ }
228
+ }, {
229
+ key: "componentDidMount",
230
+ value: function componentDidMount() {
231
+ var _this$asProps4 = this.asProps,
232
+ duration = _this$asProps4.duration,
233
+ d3Arc = _this$asProps4.d3Arc,
234
+ halfsize = _this$asProps4.halfsize;
235
+ var arcs = this.arcs;
236
+
237
+ if (duration > 0) {
238
+ transition().selection().selectAll("#".concat(this.id, " [data-ui-name=\"Donut.Pie\"]")).each(function (_, ind) {
239
+ this._current = arcs[ind];
240
+ }).transition().duration(duration).attrTween('d', animationInitialPie({
241
+ halfsize: halfsize,
242
+ d3Arc: d3Arc,
243
+ arcs: arcs
244
+ }));
245
+ }
246
+ }
149
247
  }, {
150
248
  key: "render",
151
249
  value: function render() {
152
- var _this$asProps2 = this.asProps,
153
- halfsize = _this$asProps2.halfsize,
154
- size = _this$asProps2.size;
250
+ var _this$asProps5 = this.asProps,
251
+ halfsize = _this$asProps5.halfsize,
252
+ size = _this$asProps5.size;
155
253
 
156
254
  var _size = _slicedToArray(size, 2),
157
255
  width = _size[0],
@@ -161,6 +259,7 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
161
259
  var k = halfsize ? 1 : 2;
162
260
  this.arcs = this.getArcs();
163
261
  return /*#__PURE__*/React.createElement(Element, {
262
+ id: this.id,
164
263
  render: "g",
165
264
  childrenPosition: "inside",
166
265
  transform: "translate(".concat(width / 2, ",").concat(height / k, ")")
@@ -175,12 +274,14 @@ _defineProperty(DonutRoot, "displayName", 'Donut');
175
274
 
176
275
  _defineProperty(DonutRoot, "style", style);
177
276
 
178
- _defineProperty(DonutRoot, "defaultProps", function (_ref11) {
179
- var _ref11$innerRadius = _ref11.innerRadius,
180
- innerRadius = _ref11$innerRadius === void 0 ? 0 : _ref11$innerRadius,
181
- _ref11$halfsize = _ref11.halfsize,
182
- halfsize = _ref11$halfsize === void 0 ? false : _ref11$halfsize,
183
- size = _ref11.$rootProps.size;
277
+ _defineProperty(DonutRoot, "enhance", [uniqueIDEnhancement()]);
278
+
279
+ _defineProperty(DonutRoot, "defaultProps", function (_ref14) {
280
+ var _ref14$innerRadius = _ref14.innerRadius,
281
+ innerRadius = _ref14$innerRadius === void 0 ? 0 : _ref14$innerRadius,
282
+ _ref14$halfsize = _ref14.halfsize,
283
+ halfsize = _ref14$halfsize === void 0 ? false : _ref14$halfsize,
284
+ size = _ref14.$rootProps.size;
184
285
 
185
286
  var _size2 = _slicedToArray(size, 2),
186
287
  width = _size2[0],
@@ -188,9 +289,9 @@ _defineProperty(DonutRoot, "defaultProps", function (_ref11) {
188
289
 
189
290
  var minORmax = halfsize ? Math.max : Math.min;
190
291
  var d3Arc = arc().outerRadius(minORmax(width, height) / 2).innerRadius(innerRadius);
191
- var d3Pie = pie().sort(null).value(function (_ref12) {
192
- var _ref13 = _slicedToArray(_ref12, 2),
193
- value = _ref13[1];
292
+ var d3Pie = pie().sort(null).value(function (_ref15) {
293
+ var _ref16 = _slicedToArray(_ref15, 2),
294
+ value = _ref16[1];
194
295
 
195
296
  return value;
196
297
  });
@@ -202,39 +303,38 @@ _defineProperty(DonutRoot, "defaultProps", function (_ref11) {
202
303
 
203
304
  return {
204
305
  d3Pie: d3Pie,
205
- d3Arc: d3Arc
306
+ d3Arc: d3Arc,
307
+ duration: 500
206
308
  };
207
309
  });
208
310
 
209
- var styled_c8 = create([]);
210
-
211
- function Pie(_ref9) {
212
- var SPie = _ref9.Element,
213
- styles = _ref9.styles,
214
- d3Arc = _ref9.d3Arc,
215
- data = _ref9.data,
216
- _ref9$color = _ref9.color,
217
- color = _ref9$color === void 0 ? '#50aef4' : _ref9$color;
218
- return styled((set([styled_c8, styles]), /*#__PURE__*/React.createElement(SPie, map("SPie", {
219
- render: "path",
220
- fill: color,
221
- d: d3Arc(data)
222
- }))));
311
+ function Pie(_ref12) {
312
+ var _ref;
313
+
314
+ var SPie = _ref12.Element,
315
+ styles = _ref12.styles,
316
+ d3Arc = _ref12.d3Arc,
317
+ data = _ref12.data,
318
+ _ref12$color = _ref12.color,
319
+ color = _ref12$color === void 0 ? '#50aef4' : _ref12$color;
320
+ return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SPie, _ref.cn("SPie", {
321
+ "render": "path",
322
+ "color": color,
323
+ "d": d3Arc(data)
324
+ }));
223
325
  }
224
326
 
225
- var styled_12c = create([]);
226
-
227
- function Label(_ref10) {
228
- var SLabel = _ref10.Element,
229
- styles = _ref10.styles,
230
- Children = _ref10.Children;
231
- return styled((set([styled_12c, styles]), /*#__PURE__*/React.createElement(SLabel, map("SLabel", {
232
- render: "text",
233
- x: "0",
234
- y: "0"
235
- }), /*#__PURE__*/React.createElement(Children, {
236
- className: styled.styles["__Children"]
237
- }))));
327
+ function Label(_ref13) {
328
+ var _ref2;
329
+
330
+ var SLabel = _ref13.Element,
331
+ styles = _ref13.styles,
332
+ Children = _ref13.Children;
333
+ return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SLabel, _ref2.cn("SLabel", {
334
+ "render": "text",
335
+ "x": "0",
336
+ "y": "0"
337
+ }), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
238
338
  }
239
339
 
240
340
  var Donut = createElement(DonutRoot, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Donut.js"],"names":["React","arc","pie","Component","styled","canUseDOM","getOriginChildren","CONSTANT","createElement","DEFAULT_INSTANCE","Symbol","DonutRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","Children","data","d3Pie","pieData","Object","entries","keys","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","includes","sort","a","b","indexOf","d3Arc","arcs","find","onMouseMove","bindHandlerTooltip","onMouseLeave","endAngle","Math","PI","startAngle","color","halfsize","size","Element","k","getArcs","style","innerRadius","$rootProps","minORmax","max","min","outerRadius","value","SPie","styles","Label","SLabel","EmptyData"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { arc, pie } from 'd3-shape';\nimport { Component, styled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\n\nimport style from './style/donut.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n\n static defaultProps = ({ innerRadius = 0, halfsize = false, $rootProps: { size } }) => {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n const d3Arc = arc()\n .outerRadius(minORmax(width, height) / 2)\n .innerRadius(innerRadius);\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n };\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({\n width: 0,\n height: 0,\n top: y,\n right: x,\n bottom: y,\n left: x,\n });\n }\n\n getArcs() {\n let { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key]) => keys.includes(key))\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props) => ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n getPieProps(props) {\n const { d3Arc } = this.asProps;\n return {\n data: this.arcs.find((arc) => arc.data[0] == props.dataKey),\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n data: {\n endAngle: Math.PI * 2,\n startAngle: 0,\n },\n d3Arc,\n color: '#E4ECF1',\n };\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n render=\"g\"\n childrenPosition=\"inside\"\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {\n return styled(styles)(<SPie render=\"path\" fill={color} d={d3Arc(data)} />);\n}\n\nfunction Label({ Element: SLabel, styles, Children }) {\n return styled(styles)(\n <SLabel render=\"text\" x=\"0\" y=\"0\">\n <Children />\n </SLabel>,\n );\n}\n\nconst Donut = createElement(DonutRoot, { Pie, Label, EmptyData: Pie });\n\nexport default Donut;\n"],"file":"Donut.js"}
1
+ {"version":3,"sources":["../../src/Donut.js"],"names":["React","arc","pie","Component","sstyled","canUseDOM","getOriginChildren","CONSTANT","createElement","uniqueIDEnhancement","interpolate","transition","DEFAULT_INSTANCE","Symbol","animationInitialPie","halfsize","d3Arc","arcs","_","ind","d","iStart","Math","PI","startAngle","iEnd","endAngle","t","animationUpdatePie","_current","i","DonutRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","uid","id","width","height","top","right","bottom","left","Children","data","d3Pie","pieData","Object","entries","keys","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","includes","sort","a","b","indexOf","minValue","cur","map","find","onMouseMove","bindHandlerTooltip","onMouseLeave","color","prevProps","duration","$rootProps","selection","selectAll","attrTween","each","size","Element","k","getArcs","style","innerRadius","minORmax","max","min","outerRadius","value","SPie","styles","Label","SLabel","EmptyData"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { arc, pie } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { transition } from 'd3-transition';\n\nimport style from './style/donut.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction animationInitialPie({ halfsize, d3Arc, arcs }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (!d) return () => '';\n const iStart = interpolate(halfsize ? -Math.PI / 2 : 0, d.startAngle);\n const iEnd = interpolate(halfsize ? -Math.PI / 2 : 0, d.endAngle);\n return function(t) {\n d.startAngle = iStart(t);\n d.endAngle = iEnd(t);\n return d3Arc(d);\n };\n };\n}\n\nfunction animationUpdatePie({ halfsize, arcs, d3Arc }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (this._current) {\n const i = interpolate(this._current, d);\n this._current = i(0);\n return function(t) {\n return d3Arc(i(t));\n };\n } else {\n this._current = d;\n return animationInitialPie({ halfsize, arcs, d3Arc })(_, ind);\n }\n };\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ innerRadius = 0, halfsize = false, $rootProps: { size } }) => {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n const d3Arc = arc()\n .outerRadius(minORmax(width, height) / 2)\n .innerRadius(innerRadius);\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n duration: 500,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\n }\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n getArcs() {\n let { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key]) => keys.includes(key))\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue =\n pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue;\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props) => ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n getPieProps(props) {\n const { d3Arc } = this.asProps;\n return {\n data: this.arcs.find((arc) => arc.data[0] === props.dataKey),\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n data: {\n endAngle: Math.PI * 2,\n startAngle: 0,\n },\n d3Arc,\n color: '#E4ECF1',\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data, duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (prevProps.$rootProps.data !== data && duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .transition()\n .duration(duration)\n .attrTween('d', animationUpdatePie({ d3Arc, arcs, halfsize }));\n }\n }\n\n componentDidMount() {\n const { duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .each(function(_, ind) {\n this._current = arcs[ind];\n })\n .transition()\n .duration(duration)\n .attrTween('d', animationInitialPie({ halfsize, d3Arc, arcs }));\n }\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n id={this.id}\n render=\"g\"\n childrenPosition=\"inside\"\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {\n return sstyled(styles)(<SPie render=\"path\" color={color} d={d3Arc(data)} />);\n}\n\nfunction Label({ Element: SLabel, styles, Children }) {\n return sstyled(styles)(\n <SLabel render=\"text\" x=\"0\" y=\"0\">\n <Children />\n </SLabel>,\n );\n}\n\nconst Donut = createElement(DonutRoot, { Pie, Label, EmptyData: Pie });\n\nexport default Donut;\n"],"file":"Donut.js"}
package/lib/es6/Dots.js CHANGED
@@ -1,15 +1,36 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import { sstyled as _sstyled } from "@semcore/core";
2
4
  import { bisector } from 'd3-array';
3
5
  import React, { useCallback, useEffect, useState } from 'react';
4
- import { styled, set, create, map } from '@semcore/core';
6
+ import { sstyled } from '@semcore/core';
5
7
  import trottle from '@semcore/utils/lib/rafTrottle';
6
8
  import { eventToPoint, invert } from './utils';
7
- var styled_c8 = create([]);
9
+ import createElement from './createElement';
10
+ import { FadeInOut } from '@semcore/animation';
11
+
12
+ /*__reshadow-styles__:"./style/dot.shadow.css"*/
13
+ var style = (
14
+ /*__reshadow_css_start__*/
15
+ _sstyled.insert(
16
+ /*__inner_css_start__*/
17
+ ".___SDot_vvre7_gg_{stroke-width:2px;stroke:#fff;r:6px;fill:var(--color_8nea8t);transition-property:cx,cy;transition-duration:var(--duration_8nea8t);transition-timing-function:ease-in-out}.___SDot_vvre7_gg_.__hide_vvre7_gg_{display:none}.___SDot_vvre7_gg_.__active_vvre7_gg_{r:8px}"
18
+ /*__inner_css_end__*/
19
+ , "8nea8t_gg_")
20
+ /*__reshadow_css_end__*/
21
+ , {
22
+ "__SDot": "___SDot_vvre7_gg_",
23
+ "--color": "--color_8nea8t",
24
+ "--duration": "--duration_8nea8t",
25
+ "_hide": "__hide_vvre7_gg_",
26
+ "_active": "__active_vvre7_gg_"
27
+ });
8
28
 
9
29
  function Dots(props) {
10
30
  var SDot = props.Element,
11
31
  styles = props.styles,
12
32
  data = props.data,
33
+ color = props.color,
13
34
  d3 = props.d3,
14
35
  x = props.x,
15
36
  y = props.y,
@@ -17,12 +38,14 @@ function Dots(props) {
17
38
  display = props.display,
18
39
  hide = props.hide,
19
40
  rootRef = props.rootRef,
20
- scale = props.scale;
41
+ scale = props.scale,
42
+ _props$duration = props.duration,
43
+ duration = _props$duration === void 0 ? 500 : _props$duration;
21
44
  var bisect = bisector(function (d) {
22
45
  return d[x];
23
46
  }).center;
24
47
 
25
- var _useState = useState(props.activeIndex || null),
48
+ var _useState = useState(null),
26
49
  _useState2 = _slicedToArray(_useState, 2),
27
50
  activeIndex = _useState2[0],
28
51
  setActiveIndex = _useState2[1];
@@ -52,29 +75,37 @@ function Dots(props) {
52
75
  unsubscribeMouseLeaveRoot();
53
76
  };
54
77
  }, [eventEmitter, data, x, y]);
78
+ var renderCircle = useCallback( /*#__PURE__*/React.forwardRef(function (props, ref) {
79
+ return /*#__PURE__*/React.createElement(FadeInOut, _extends({
80
+ ref: ref,
81
+ tag: "circle"
82
+ }, props));
83
+ }), [props]);
55
84
  return data.reduce(function (acc, d, i) {
85
+ var _ref;
86
+
56
87
  var isPrev = d3.defined()(data[i - 1] || {});
57
88
  var isNext = d3.defined()(data[i + 1] || {});
58
89
  var active = i === activeIndex;
59
90
  if (!d3.defined()(d)) return acc;
60
-
61
- if (display || i === activeIndex || !isPrev && !isNext) {
62
- acc.push(styled((set([styled_c8, styles]), /*#__PURE__*/React.createElement(SDot, map("SDot", {
63
- key: i,
64
- __excludeProps: ['data', 'scale', 'value', 'display'],
65
- value: d,
66
- index: i,
67
- render: "circle",
68
- cx: d3.x()(d),
69
- cy: d3.y()(d),
70
- active: active,
71
- hide: hide
72
- })))));
73
- }
74
-
91
+ acc.push((_ref = sstyled(styles), /*#__PURE__*/React.createElement(SDot, _ref.cn("SDot", {
92
+ "key": i,
93
+ "render": renderCircle,
94
+ "visible": display || i === activeIndex || !isPrev && !isNext,
95
+ "__excludeProps": ['data', 'scale', 'value', 'display'],
96
+ "value": d,
97
+ "index": i,
98
+ "cx": d3.x()(d),
99
+ "cy": d3.y()(d),
100
+ "active": active,
101
+ "hide": hide,
102
+ "color": color,
103
+ "use:duration": "".concat(duration, "ms")
104
+ }))));
75
105
  return acc;
76
106
  }, []);
77
107
  }
78
108
 
79
- export default Dots;
109
+ Dots.style = style;
110
+ export default createElement(Dots);
80
111
  //# sourceMappingURL=Dots.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dots.js"],"names":["bisector","React","useCallback","useEffect","useState","styled","trottle","eventToPoint","invert","Dots","props","SDot","Element","styles","data","d3","x","y","eventEmitter","display","hide","rootRef","scale","bisect","d","center","activeIndex","setActiveIndex","handlerMouseMoveRoot","e","xScale","current","pX","vX","handlerMouseLeaveRoot","unsubscribeMouseMoveRoot","subscribe","persist","unsubscribeMouseLeaveRoot","reduce","acc","i","isPrev","defined","isNext","active","push"],"mappings":"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","sourcesContent":["import { bisector } from 'd3-array';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { styled } from '@semcore/core';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { eventToPoint, invert } from './utils';\n\nfunction Dots(props) {\n const {\n Element: SDot,\n styles,\n data,\n d3,\n x,\n y,\n eventEmitter,\n display,\n hide,\n rootRef,\n scale,\n } = props;\n const bisect = bisector((d) => d[x]).center;\n const [activeIndex, setActiveIndex] = useState(props.activeIndex || null);\n\n const handlerMouseMoveRoot = useCallback(\n trottle((e) => {\n const [xScale] = scale;\n const [pX] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n setActiveIndex(bisect(data, vX));\n }),\n [scale, data],\n );\n\n const handlerMouseLeaveRoot = useCallback(\n trottle(() => {\n setActiveIndex(null);\n }),\n [],\n );\n\n useEffect(() => {\n const unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveRoot', (e) => {\n e.persist();\n handlerMouseMoveRoot(e);\n });\n\n const unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\n handlerMouseLeaveRoot,\n );\n\n return () => {\n unsubscribeMouseMoveRoot();\n unsubscribeMouseLeaveRoot();\n };\n }, [eventEmitter, data, x, y]);\n\n return data.reduce((acc, d, i) => {\n const isPrev = d3.defined()(data[i - 1] || {});\n const isNext = d3.defined()(data[i + 1] || {});\n const active = i === activeIndex;\n if (!d3.defined()(d)) return acc;\n if (display || i === activeIndex || (!isPrev && !isNext)) {\n acc.push(\n styled(styles)(\n <SDot\n key={i}\n __excludeProps={['data', 'scale', 'value', 'display']}\n value={d}\n index={i}\n render=\"circle\"\n cx={d3.x()(d)}\n cy={d3.y()(d)}\n active={active}\n hide={hide}\n />,\n ),\n );\n }\n return acc;\n }, []);\n}\n\nexport default Dots;\n"],"file":"Dots.js"}
1
+ {"version":3,"sources":["../../src/Dots.js"],"names":["bisector","React","useCallback","useEffect","useState","sstyled","trottle","eventToPoint","invert","createElement","FadeInOut","Dots","props","SDot","Element","styles","data","color","d3","x","y","eventEmitter","display","hide","rootRef","scale","duration","bisect","d","center","activeIndex","setActiveIndex","handlerMouseMoveRoot","e","xScale","current","pX","vX","handlerMouseLeaveRoot","unsubscribeMouseMoveRoot","subscribe","persist","unsubscribeMouseLeaveRoot","renderCircle","forwardRef","ref","reduce","acc","i","isPrev","defined","isNext","active","push","style"],"mappings":"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","sourcesContent":["import { bisector } from 'd3-array';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { sstyled } from '@semcore/core';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { eventToPoint, invert } from './utils';\nimport createElement from './createElement';\nimport { FadeInOut } from '@semcore/animation';\n\nimport style from './style/dot.shadow.css';\n\nfunction Dots(props) {\n const {\n Element: SDot,\n styles,\n data,\n color,\n d3,\n x,\n y,\n eventEmitter,\n display,\n hide,\n rootRef,\n scale,\n duration = 500,\n } = props;\n const bisect = bisector((d) => d[x]).center;\n const [activeIndex, setActiveIndex] = useState(null);\n\n const handlerMouseMoveRoot = useCallback(\n trottle((e) => {\n const [xScale] = scale;\n const [pX] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n setActiveIndex(bisect(data, vX));\n }),\n [scale, data],\n );\n\n const handlerMouseLeaveRoot = useCallback(\n trottle(() => {\n setActiveIndex(null);\n }),\n [],\n );\n\n useEffect(() => {\n const unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveRoot', (e) => {\n e.persist();\n handlerMouseMoveRoot(e);\n });\n\n const unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveRoot',\n handlerMouseLeaveRoot,\n );\n\n return () => {\n unsubscribeMouseMoveRoot();\n unsubscribeMouseLeaveRoot();\n };\n }, [eventEmitter, data, x, y]);\n\n const renderCircle = useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"circle\" {...props} />;\n }),\n [props],\n );\n\n return data.reduce((acc, d, i) => {\n const isPrev = d3.defined()(data[i - 1] || {});\n const isNext = d3.defined()(data[i + 1] || {});\n const active = i === activeIndex;\n if (!d3.defined()(d)) return acc;\n acc.push(\n sstyled(styles)(\n <SDot\n key={i}\n render={renderCircle}\n visible={display || i === activeIndex || (!isPrev && !isNext)}\n __excludeProps={['data', 'scale', 'value', 'display']}\n value={d}\n index={i}\n cx={d3.x()(d)}\n cy={d3.y()(d)}\n active={active}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n />,\n ),\n );\n return acc;\n }, []);\n}\n\nDots.style = style;\n\nexport default createElement(Dots);\n"],"file":"Dots.js"}
@@ -22,14 +22,14 @@ var _ref = (
22
22
  /*__reshadow_css_start__*/
23
23
  __css__(
24
24
  /*__inner_css_start__*/
25
- ".___SBar_strko_gg_.__hide_strko_gg_{display:none}.___SBackground_strko_gg_{fill:#e4ecf1}"
25
+ ".___SBar_urkei_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_urkei_gg_.__hide_urkei_gg_{display:none}.___SBackground_urkei_gg_{fill:#e4ecf1}"
26
26
  /*__inner_css_end__*/
27
- , "m5etk6_gg_")
27
+ , "1om7b1x_gg_")
28
28
  /*__reshadow_css_end__*/
29
29
  , {
30
- "__SBar": "___SBar_strko_gg_",
31
- "_hide": "__hide_strko_gg_",
32
- "__SBackground": "___SBackground_strko_gg_"
30
+ "__SBar": "___SBar_urkei_gg_",
31
+ "_hide": "__hide_urkei_gg_",
32
+ "__SBackground": "___SBackground_urkei_gg_"
33
33
  }),
34
34
  style = _extends({}, _ref);
35
35
 
@@ -51,7 +51,8 @@ var GroupBarRoot = /*#__PURE__*/function (_Component) {
51
51
  Children = _this$asProps.Children,
52
52
  scale = _this$asProps.scale,
53
53
  scaleGroup = _this$asProps.scaleGroup,
54
- x = _this$asProps.x;
54
+ x = _this$asProps.x; // TODO: классный костыль =)
55
+
55
56
  var xyScale = x ? scale[0] : scale[1];
56
57
  if (scaleGroup) return scaleGroup;
57
58
  var domain = React.Children.toArray(getOriginChildren(Children)).reduce(function (acc, child) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GroupBar.js"],"names":["React","Component","getOriginChildren","createElement","Bar","HorizontalBar","GroupBarRoot","asProps","Children","scale","scaleGroup","x","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","push","props","y","copy","range","bandwidth","paddingInner","paddingOuter","offset","width","height","Element","getScaleGroup","style"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,sBAA0B,eAA1B;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,GAAP,MAAgB,OAAhB;AACA,OAAOC,aAAP,MAA0B,iBAA1B;;;;;;;;;;;;;;;;;;IAIMC,Y;;;;;;;;;;;;;WAKJ,yBAAgB;AAAA,0BAC6B,KAAKC,OADlC;AAAA,UACNC,QADM,iBACNA,QADM;AAAA,UACIC,KADJ,iBACIA,KADJ;AAAA,UACWC,UADX,iBACWA,UADX;AAAA,UACuBC,CADvB,iBACuBA,CADvB;AAEd,UAAMC,OAAO,GAAGD,CAAC,GAAGF,KAAK,CAAC,CAAD,CAAR,GAAcA,KAAK,CAAC,CAAD,CAApC;AAEA,UAAIC,UAAJ,EAAgB,OAAOA,UAAP;AAEhB,UAAMG,MAAM,GAAGb,KAAK,CAACQ,QAAN,CAAeM,OAAf,CAAuBZ,iBAAiB,CAACM,QAAD,CAAxC,EAAoDO,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;AACxF,YAAI,cAAAjB,KAAK,CAACkB,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,QAAQ,CAAChB,GAA3D,EAAgE;AAC9DY,UAAAA,GAAG,CAACK,IAAJ,CAASJ,KAAK,CAACK,KAAN,CAAYC,CAArB;AACD;;AACD,YAAI,cAAAvB,KAAK,CAACkB,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,QAAQ,CAACf,aAA3D,EAA0E;AACxEW,UAAAA,GAAG,CAACK,IAAJ,CAASJ,KAAK,CAACK,KAAN,CAAYX,CAArB;AACD;;AACD,eAAOK,GAAP;AACD,OARc,EAQZ,EARY,CAAf;AAUA,aAAOJ,OAAO,CACXY,IADI,GAEJC,KAFI,CAEE,CAAC,CAAD,EAAIb,OAAO,CAACc,SAAR,EAAJ,CAFF,EAGJb,MAHI,CAGGA,MAHH,EAIJc,YAJI,CAISf,OAAO,CAACgB,YAAR,EAJT,EAKJA,YALI,CAKS,CALT,CAAP;AAMD;;;WAED,4BAAmB;AAAA,UAALL,CAAK,SAALA,CAAK;AAAA,UACTZ,CADS,GACH,KAAKJ,OADF,CACTI,CADS;AAGjB,aAAO;AACLkB,QAAAA,MAAM,EAAE,CAAC,KAAKnB,UAAL,CAAgBa,CAAhB,CAAD,EAAqB,CAArB,CADH;AAELO,QAAAA,KAAK,EAAE,KAAKpB,UAAL,CAAgBgB,SAAhB,EAFF;AAGLf,QAAAA,CAAC,EAADA;AAHK,OAAP;AAKD;;;WAED,sCAA6B;AAAA,UAALA,CAAK,SAALA,CAAK;AAAA,UACnBY,CADmB,GACb,KAAKhB,OADQ,CACnBgB,CADmB;AAG3B,aAAO;AACLM,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,KAAKnB,UAAL,CAAgBC,CAAhB,CAAJ,CADH;AAELoB,QAAAA,MAAM,EAAE,KAAKrB,UAAL,CAAgBgB,SAAhB,EAFH;AAGLH,QAAAA,CAAC,EAADA;AAHK,OAAP;AAKD;;;WAED,kBAAS;AACP,UAAMS,OAAO,GAAG,KAAKA,OAArB;AACA,WAAKtB,UAAL,GAAkB,KAAKuB,aAAL,EAAlB;AACA,0BAAO,oBAAC,OAAD;AAAS,QAAA,MAAM,EAAC,GAAhB;AAAoB,QAAA,gBAAgB,EAAC,QAArC;AAA8C,QAAA,UAAU,EAAE,KAAKvB;AAA/D,QAAP;AACD;;;;EArDwBT,S;;gBAArBK,Y,iBACiB,U;;gBADjBA,Y,WAGW4B,K;;AAqDjB,IAAMd,QAAQ,GAAGjB,aAAa,CAACG,YAAD,EAAe;AAC3CF,EAAAA,GAAG,EAAHA,GAD2C;AAE3CC,EAAAA,aAAa,EAAbA;AAF2C,CAAf,CAA9B;AAKA,eAAee,QAAf","sourcesContent":["import React from 'react';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nclass GroupBarRoot extends Component {\n static displayName = 'GroupBar';\n\n static style = style;\n\n getScaleGroup() {\n const { Children, scale, scaleGroup, x } = this.asProps;\n const xyScale = x ? scale[0] : scale[1];\n\n if (scaleGroup) return scaleGroup;\n\n const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === GroupBar.Bar) {\n acc.push(child.props.y);\n }\n if (React.isValidElement(child) && child.type === GroupBar.HorizontalBar) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n\n return xyScale\n .copy()\n .range([0, xyScale.bandwidth()])\n .domain(domain)\n .paddingInner(xyScale.paddingOuter())\n .paddingOuter(0);\n }\n\n getBarProps({ y }) {\n const { x } = this.asProps;\n\n return {\n offset: [this.scaleGroup(y), 0],\n width: this.scaleGroup.bandwidth(),\n x,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y } = this.asProps;\n\n return {\n offset: [0, this.scaleGroup(x)],\n height: this.scaleGroup.bandwidth(),\n y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.scaleGroup = this.getScaleGroup();\n return <Element render=\"g\" childrenPosition=\"inside\" scaleGroup={this.scaleGroup} />;\n }\n}\n\nconst GroupBar = createElement(GroupBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default GroupBar;\n"],"file":"GroupBar.js"}
1
+ {"version":3,"sources":["../../src/GroupBar.js"],"names":["React","Component","getOriginChildren","createElement","Bar","HorizontalBar","GroupBarRoot","asProps","Children","scale","scaleGroup","x","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","push","props","y","copy","range","bandwidth","paddingInner","paddingOuter","offset","width","height","Element","getScaleGroup","style"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nclass GroupBarRoot extends Component {\n static displayName = 'GroupBar';\n\n static style = style;\n\n getScaleGroup() {\n const { Children, scale, scaleGroup, x } = this.asProps;\n // TODO: классный костыль =)\n const xyScale = x ? scale[0] : scale[1];\n\n if (scaleGroup) return scaleGroup;\n\n const domain = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === GroupBar.Bar) {\n acc.push(child.props.y);\n }\n if (React.isValidElement(child) && child.type === GroupBar.HorizontalBar) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n\n return xyScale\n .copy()\n .range([0, xyScale.bandwidth()])\n .domain(domain)\n .paddingInner(xyScale.paddingOuter())\n .paddingOuter(0);\n }\n\n getBarProps({ y }) {\n const { x } = this.asProps;\n\n return {\n offset: [this.scaleGroup(y), 0],\n width: this.scaleGroup.bandwidth(),\n x,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y } = this.asProps;\n\n return {\n offset: [0, this.scaleGroup(x)],\n height: this.scaleGroup.bandwidth(),\n y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.scaleGroup = this.getScaleGroup();\n return <Element render=\"g\" childrenPosition=\"inside\" scaleGroup={this.scaleGroup} />;\n }\n}\n\nconst GroupBar = createElement(GroupBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default GroupBar;\n"],"file":"GroupBar.js"}