@semcore/d3-chart 2.0.9 → 2.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 (105) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/lib/cjs/Area.js +70 -29
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Bar.js +6 -4
  5. package/lib/cjs/Bar.js.map +1 -1
  6. package/lib/cjs/Bubble.js +1 -0
  7. package/lib/cjs/Bubble.js.map +1 -1
  8. package/lib/cjs/Donut.js +120 -44
  9. package/lib/cjs/Donut.js.map +1 -1
  10. package/lib/cjs/Dots.js +24 -25
  11. package/lib/cjs/Dots.js.map +1 -1
  12. package/lib/cjs/GroupBar.js +7 -7
  13. package/lib/cjs/GroupBar.js.map +1 -1
  14. package/lib/cjs/Line.js +4 -2
  15. package/lib/cjs/Line.js.map +1 -1
  16. package/lib/cjs/ReferenceLine.js +258 -0
  17. package/lib/cjs/ReferenceLine.js.map +1 -0
  18. package/lib/cjs/ResponsiveContainer.js +1 -1
  19. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  20. package/lib/cjs/ScatterPlot.js +1 -0
  21. package/lib/cjs/ScatterPlot.js.map +1 -1
  22. package/lib/cjs/StackBar.js +6 -6
  23. package/lib/cjs/StackedArea.js +7 -7
  24. package/lib/cjs/Tooltip.js +3 -2
  25. package/lib/cjs/Tooltip.js.map +1 -1
  26. package/lib/cjs/createElement.js +4 -3
  27. package/lib/cjs/createElement.js.map +1 -1
  28. package/lib/cjs/index.js +8 -0
  29. package/lib/cjs/index.js.map +1 -1
  30. package/lib/cjs/style/dot.shadow.css +10 -5
  31. package/lib/cjs/style/reference-line.shadow.css +37 -0
  32. package/lib/cjs/types/Area.d.ts +1 -0
  33. package/lib/cjs/types/Bar.d.ts +4 -0
  34. package/lib/cjs/types/Bubble.d.ts +6 -1
  35. package/lib/cjs/types/Donut.d.ts +4 -0
  36. package/lib/cjs/types/ReferenceLine.d.ts +31 -0
  37. package/lib/cjs/types/Tooltip.d.ts +5 -3
  38. package/lib/cjs/types/index.d.ts +3 -0
  39. package/lib/es6/Area.js +68 -27
  40. package/lib/es6/Area.js.map +1 -1
  41. package/lib/es6/Bar.js +6 -4
  42. package/lib/es6/Bar.js.map +1 -1
  43. package/lib/es6/Bubble.js +1 -0
  44. package/lib/es6/Bubble.js.map +1 -1
  45. package/lib/es6/Donut.js +114 -44
  46. package/lib/es6/Donut.js.map +1 -1
  47. package/lib/es6/Dots.js +24 -23
  48. package/lib/es6/Dots.js.map +1 -1
  49. package/lib/es6/GroupBar.js +7 -7
  50. package/lib/es6/GroupBar.js.map +1 -1
  51. package/lib/es6/Line.js +4 -2
  52. package/lib/es6/Line.js.map +1 -1
  53. package/lib/es6/ReferenceLine.js +244 -0
  54. package/lib/es6/ReferenceLine.js.map +1 -0
  55. package/lib/es6/ResponsiveContainer.js +1 -1
  56. package/lib/es6/ResponsiveContainer.js.map +1 -1
  57. package/lib/es6/ScatterPlot.js +1 -0
  58. package/lib/es6/ScatterPlot.js.map +1 -1
  59. package/lib/es6/StackBar.js +6 -6
  60. package/lib/es6/StackedArea.js +7 -7
  61. package/lib/es6/Tooltip.js +3 -2
  62. package/lib/es6/Tooltip.js.map +1 -1
  63. package/lib/es6/createElement.js +3 -3
  64. package/lib/es6/createElement.js.map +1 -1
  65. package/lib/es6/index.js +1 -0
  66. package/lib/es6/index.js.map +1 -1
  67. package/lib/es6/style/dot.shadow.css +10 -5
  68. package/lib/es6/style/reference-line.shadow.css +37 -0
  69. package/lib/es6/types/Area.d.ts +1 -0
  70. package/lib/es6/types/Bar.d.ts +4 -0
  71. package/lib/es6/types/Bubble.d.ts +6 -1
  72. package/lib/es6/types/Donut.d.ts +4 -0
  73. package/lib/es6/types/ReferenceLine.d.ts +31 -0
  74. package/lib/es6/types/Tooltip.d.ts +5 -3
  75. package/lib/es6/types/index.d.ts +3 -0
  76. package/lib/types/Area.d.ts +1 -0
  77. package/lib/types/Bar.d.ts +4 -0
  78. package/lib/types/Bubble.d.ts +6 -1
  79. package/lib/types/Donut.d.ts +4 -0
  80. package/lib/types/ReferenceLine.d.ts +31 -0
  81. package/lib/types/Tooltip.d.ts +5 -3
  82. package/lib/types/index.d.ts +3 -0
  83. package/package.json +11 -11
  84. package/src/Area.jsx +41 -8
  85. package/src/Bar.jsx +6 -5
  86. package/src/Bubble.jsx +1 -0
  87. package/src/Donut.jsx +96 -29
  88. package/src/Dots.jsx +11 -14
  89. package/src/GroupBar.jsx +1 -1
  90. package/src/Line.jsx +2 -1
  91. package/src/ReferenceLine.jsx +146 -0
  92. package/src/ResponsiveContainer.jsx +1 -1
  93. package/src/ScatterPlot.jsx +1 -0
  94. package/src/Tooltip.jsx +2 -3
  95. package/src/createElement.jsx +4 -2
  96. package/src/index.js +1 -0
  97. package/src/style/dot.shadow.css +10 -5
  98. package/src/style/reference-line.shadow.css +37 -0
  99. package/src/types/Area.d.ts +1 -0
  100. package/src/types/Bar.d.ts +4 -0
  101. package/src/types/Bubble.d.ts +6 -1
  102. package/src/types/Donut.d.ts +4 -0
  103. package/src/types/ReferenceLine.d.ts +31 -0
  104. package/src/types/Tooltip.d.ts +5 -3
  105. package/src/types/index.d.ts +3 -0
package/lib/es6/Donut.js CHANGED
@@ -1,3 +1,4 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -7,12 +8,17 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
9
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
9
10
  import { sstyled as _sstyled } from "@semcore/core";
11
+ var _excluded = ["Element", "styles", "d3Arc", "data", "color", "$animationActivePie", "active", "d3ArcOut"];
12
+
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
16
 
11
17
  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
18
 
13
19
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
20
 
15
- import React from 'react';
21
+ import React, { useEffect, useState } from 'react';
16
22
  import { arc, pie } from 'd3-shape';
17
23
  import { Component, sstyled } from '@semcore/core';
18
24
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
@@ -44,7 +50,9 @@ var DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');
44
50
  function animationInitialPie(_ref4) {
45
51
  var halfsize = _ref4.halfsize,
46
52
  d3Arc = _ref4.d3Arc,
47
- arcs = _ref4.arcs;
53
+ d3ArcOut = _ref4.d3ArcOut,
54
+ arcs = _ref4.arcs,
55
+ activeIndexPie = _ref4.activeIndexPie;
48
56
  return function (_, ind) {
49
57
  var d = arcs[ind];
50
58
  if (!d) return function () {
@@ -55,7 +63,7 @@ function animationInitialPie(_ref4) {
55
63
  return function (t) {
56
64
  d.startAngle = iStart(t);
57
65
  d.endAngle = iEnd(t);
58
- return d3Arc(d);
66
+ return ind === activeIndexPie ? d3ArcOut(d) : d3Arc(d);
59
67
  };
60
68
  };
61
69
  }
@@ -143,6 +151,8 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
143
151
 
144
152
  _defineProperty(_assertThisInitialized(_this), "virtualElement", canUseDOM() ? document.createElement('div') : {});
145
153
 
154
+ _defineProperty(_assertThisInitialized(_this), "activeIndexPie", undefined);
155
+
146
156
  _defineProperty(_assertThisInitialized(_this), "bindHandlerTooltip", function (visible, props) {
147
157
  return function (_ref8) {
148
158
  var x = _ref8.clientX,
@@ -154,15 +164,39 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
154
164
  };
155
165
  });
156
166
 
167
+ _defineProperty(_assertThisInitialized(_this), "animationActivePie", function (props) {
168
+ var _this$asProps = _this.asProps,
169
+ duration = _this$asProps.duration,
170
+ innerRadius = _this$asProps.innerRadius;
171
+ var active = props.active,
172
+ data = props.data,
173
+ selector = props.selector;
174
+ innerRadius = innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius;
175
+ var outerRadius = getOuterRadius(_this.asProps);
176
+ active ? animationHoverPie({
177
+ d: data,
178
+ selector: "#".concat(_this.id, " ").concat(selector),
179
+ duration: duration === 0 ? 0 : 300,
180
+ innerRadius: innerRadius,
181
+ outerRadius: [outerRadius, outerRadius + increaseFactor]
182
+ }) : animationHoverPie({
183
+ d: data,
184
+ selector: "#".concat(_this.id, " ").concat(selector),
185
+ duration: duration === 0 ? 0 : 300,
186
+ innerRadius: innerRadius,
187
+ outerRadius: [outerRadius + increaseFactor, outerRadius]
188
+ });
189
+ });
190
+
157
191
  return _this;
158
192
  }
159
193
 
160
194
  _createClass(DonutRoot, [{
161
195
  key: "id",
162
196
  get: function get() {
163
- var _this$asProps = this.asProps,
164
- uid = _this$asProps.uid,
165
- id = _this$asProps.id;
197
+ var _this$asProps2 = this.asProps,
198
+ uid = _this$asProps2.uid,
199
+ id = _this$asProps2.id;
166
200
  return id || uid;
167
201
  }
168
202
  }, {
@@ -184,10 +218,10 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
184
218
  }, {
185
219
  key: "getArcs",
186
220
  value: function getArcs() {
187
- var _this$asProps2 = this.asProps,
188
- Children = _this$asProps2.Children,
189
- data = _this$asProps2.data,
190
- d3Pie = _this$asProps2.d3Pie;
221
+ var _this$asProps3 = this.asProps,
222
+ Children = _this$asProps3.Children,
223
+ data = _this$asProps3.data,
224
+ d3Pie = _this$asProps3.d3Pie;
191
225
  var pieData = Object.entries(data);
192
226
 
193
227
  if (d3Pie[DEFAULT_INSTANCE]) {
@@ -226,39 +260,40 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
226
260
  }
227
261
  }, {
228
262
  key: "getPieProps",
229
- value: function getPieProps(props) {
263
+ value: function getPieProps(props, ind) {
230
264
  var _this2 = this;
231
265
 
232
- var _this$asProps3 = this.asProps,
233
- d3Arc = _this$asProps3.d3Arc,
234
- duration = _this$asProps3.duration,
235
- innerRadius = _this$asProps3.innerRadius;
236
- innerRadius = innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius;
237
- var outerRadius = getOuterRadius(this.asProps);
266
+ var _this$asProps4 = this.asProps,
267
+ d3Arc = _this$asProps4.d3Arc,
268
+ d3ArcOut = _this$asProps4.d3ArcOut;
269
+ var active = props.active;
238
270
  var data = this.arcs.find(function (arc) {
239
271
  return arc.data[0] === props.dataKey;
240
272
  });
273
+
274
+ if (active) {
275
+ this.activeIndexPie = ind;
276
+ }
277
+
241
278
  return {
242
279
  data: data,
243
280
  d3Arc: d3Arc,
281
+ d3ArcOut: d3ArcOut,
282
+ $animationActivePie: this.animationActivePie,
244
283
  onMouseMove: this.bindHandlerTooltip(true, props),
245
284
  onMouseLeave: this.bindHandlerTooltip(false, props),
246
285
  onMouseOver: function onMouseOver(e) {
247
- animationHoverPie({
248
- d: data,
249
- selector: "#".concat(_this2.id, " [d=\"").concat(e.target.getAttribute('d'), "\"]"),
250
- duration: duration === 0 ? 0 : 300,
251
- innerRadius: innerRadius,
252
- outerRadius: [outerRadius, outerRadius + increaseFactor]
286
+ !active && _this2.animationActivePie({
287
+ active: true,
288
+ data: data,
289
+ selector: "[d=\"".concat(e.target.getAttribute('d'), "\"]")
253
290
  });
254
291
  },
255
292
  onMouseOut: function onMouseOut(e) {
256
- animationHoverPie({
257
- d: data,
258
- selector: "#".concat(_this2.id, " [d=\"").concat(e.target.getAttribute('d'), "\"]"),
259
- duration: duration === 0 ? 0 : 300,
260
- innerRadius: innerRadius,
261
- outerRadius: [outerRadius + increaseFactor, outerRadius]
293
+ !active && _this2.animationActivePie({
294
+ active: false,
295
+ data: data,
296
+ selector: "[d=\"".concat(e.target.getAttribute('d'), "\"]")
262
297
  });
263
298
  }
264
299
  };
@@ -274,11 +309,11 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
274
309
  }, {
275
310
  key: "componentDidUpdate",
276
311
  value: function componentDidUpdate(prevProps) {
277
- var _this$asProps4 = this.asProps,
278
- data = _this$asProps4.data,
279
- duration = _this$asProps4.duration,
280
- d3Arc = _this$asProps4.d3Arc,
281
- halfsize = _this$asProps4.halfsize;
312
+ var _this$asProps5 = this.asProps,
313
+ data = _this$asProps5.data,
314
+ duration = _this$asProps5.duration,
315
+ d3Arc = _this$asProps5.d3Arc,
316
+ halfsize = _this$asProps5.halfsize;
282
317
  var arcs = this.arcs;
283
318
 
284
319
  if (prevProps.$rootProps.data !== data && duration > 0) {
@@ -292,10 +327,11 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
292
327
  }, {
293
328
  key: "componentDidMount",
294
329
  value: function componentDidMount() {
295
- var _this$asProps5 = this.asProps,
296
- duration = _this$asProps5.duration,
297
- d3Arc = _this$asProps5.d3Arc,
298
- halfsize = _this$asProps5.halfsize;
330
+ var _this$asProps6 = this.asProps,
331
+ duration = _this$asProps6.duration,
332
+ d3Arc = _this$asProps6.d3Arc,
333
+ halfsize = _this$asProps6.halfsize,
334
+ d3ArcOut = _this$asProps6.d3ArcOut;
299
335
  var arcs = this.arcs;
300
336
 
301
337
  if (duration > 0) {
@@ -304,16 +340,18 @@ var DonutRoot = /*#__PURE__*/function (_Component) {
304
340
  }).transition().duration(duration).attrTween('d', animationInitialPie({
305
341
  halfsize: halfsize,
306
342
  d3Arc: d3Arc,
307
- arcs: arcs
343
+ d3ArcOut: d3ArcOut,
344
+ arcs: arcs,
345
+ activeIndexPie: this.activeIndexPie
308
346
  }));
309
347
  }
310
348
  }
311
349
  }, {
312
350
  key: "render",
313
351
  value: function render() {
314
- var _this$asProps6 = this.asProps,
315
- halfsize = _this$asProps6.halfsize,
316
- size = _this$asProps6.size;
352
+ var _this$asProps7 = this.asProps,
353
+ halfsize = _this$asProps7.halfsize,
354
+ size = _this$asProps7.size;
317
355
 
318
356
  var _size2 = _slicedToArray(size, 2),
319
357
  width = _size2[0],
@@ -352,6 +390,11 @@ _defineProperty(DonutRoot, "defaultProps", function (_ref18) {
352
390
  halfsize: halfsize,
353
391
  outerRadius: outerRadius
354
392
  })).innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius);
393
+ var d3ArcOut = arc().outerRadius(getOuterRadius({
394
+ size: size,
395
+ halfsize: halfsize,
396
+ outerRadius: outerRadius
397
+ }) + increaseFactor).innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius);
355
398
  var d3Pie = pie().sort(null).value(function (_ref19) {
356
399
  var _ref20 = _slicedToArray(_ref19, 2),
357
400
  value = _ref20[1];
@@ -367,6 +410,7 @@ _defineProperty(DonutRoot, "defaultProps", function (_ref18) {
367
410
  return {
368
411
  d3Pie: d3Pie,
369
412
  d3Arc: d3Arc,
413
+ d3ArcOut: d3ArcOut,
370
414
  duration: 500
371
415
  };
372
416
  });
@@ -378,11 +422,37 @@ function Pie(_ref15) {
378
422
  styles = _ref15.styles,
379
423
  d3Arc = _ref15.d3Arc,
380
424
  data = _ref15.data,
381
- color = _ref15.color;
425
+ color = _ref15.color,
426
+ $animationActivePie = _ref15.$animationActivePie,
427
+ active = _ref15.active,
428
+ d3ArcOut = _ref15.d3ArcOut,
429
+ other = _objectWithoutProperties(_ref15, _excluded);
430
+
431
+ var _useState = useState(false),
432
+ _useState2 = _slicedToArray(_useState, 2),
433
+ isMount = _useState2[0],
434
+ setIsMount = _useState2[1];
435
+
436
+ useEffect(function () {
437
+ //you should't run animation for first render
438
+ if (!isMount) {
439
+ setIsMount(true);
440
+ return;
441
+ }
442
+
443
+ if (active !== undefined && active !== null) {
444
+ //name must unique on page
445
+ $animationActivePie(_objectSpread(_objectSpread({}, other), {}, {
446
+ active: active,
447
+ data: data,
448
+ selector: "[name=\"".concat(other.name, "\"]")
449
+ }));
450
+ }
451
+ }, [active]);
382
452
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SPie, _ref.cn("SPie", {
383
453
  "render": "path",
384
454
  "color": color,
385
- "d": d3Arc(data)
455
+ "d": active ? d3ArcOut(data) : d3Arc(data)
386
456
  }));
387
457
  }
388
458
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Donut.jsx"],"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","animationHoverPie","selector","duration","innerRadius","outerRadius","selection","select","attrTween","min","max","d3ArcOut","increaseFactor","getOuterRadius","size","width","height","minORmax","DonutRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","uid","id","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","onMouseOver","e","target","getAttribute","onMouseOut","prevProps","$rootProps","selectAll","each","Element","k","getArcs","style","value","SPie","styles","color","EmptyData","SEmptyData","Label","SLabel"],"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\nfunction animationHoverPie({ d, selector, duration, innerRadius, outerRadius }) {\n if (duration > 0) {\n transition()\n .selection()\n .select(selector)\n .transition()\n .duration(duration)\n .attrTween('d', function () {\n if (!d) return () => '';\n const [min, max] = outerRadius;\n const i = interpolate(min, max);\n return function (t) {\n const d3ArcOut = arc().innerRadius(innerRadius).outerRadius(i(t));\n return d3ArcOut(d);\n };\n });\n }\n}\n\nconst increaseFactor = 8;\n\nfunction getOuterRadius({ size, halfsize, outerRadius }) {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n return outerRadius || minORmax(width - increaseFactor * 2, height - increaseFactor * 2) / 2;\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({\n innerRadius = 0,\n outerRadius,\n halfsize = false,\n $rootProps: { size },\n }) => {\n const d3Arc = arc()\n .outerRadius(getOuterRadius({ size, halfsize, outerRadius }))\n .innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : 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 const { 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 let { d3Arc, duration, innerRadius } = this.asProps;\n innerRadius = innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius;\n const outerRadius = getOuterRadius(this.asProps);\n const data = this.arcs.find((arc) => arc.data[0] === props.dataKey);\n\n return {\n data,\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n onMouseOver: (e) => {\n animationHoverPie({\n d: data,\n selector: `#${this.id} [d=\"${e.target.getAttribute('d')}\"]`,\n duration: duration === 0 ? 0 : 300,\n innerRadius,\n outerRadius: [outerRadius, outerRadius + increaseFactor],\n });\n },\n onMouseOut: (e) => {\n animationHoverPie({\n d: data,\n selector: `#${this.id} [d=\"${e.target.getAttribute('d')}\"]`,\n duration: duration === 0 ? 0 : 300,\n innerRadius,\n outerRadius: [outerRadius + increaseFactor, outerRadius],\n });\n },\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n d3Arc,\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 }) {\n return sstyled(styles)(<SPie render=\"path\" color={color} d={d3Arc(data)} />);\n}\n\nfunction EmptyData({ Element: SEmptyData, styles, d3Arc, color }) {\n return sstyled(styles)(\n <SEmptyData render=\"path\" color={color} d={d3Arc({ endAngle: Math.PI * 2, startAngle: 0 })} />,\n );\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 });\n\nexport default Donut;\n"],"file":"Donut.js"}
1
+ {"version":3,"sources":["../../src/Donut.jsx"],"names":["React","useEffect","useState","arc","pie","Component","sstyled","canUseDOM","getOriginChildren","CONSTANT","createElement","uniqueIDEnhancement","interpolate","transition","DEFAULT_INSTANCE","Symbol","animationInitialPie","halfsize","d3Arc","d3ArcOut","arcs","activeIndexPie","_","ind","d","iStart","Math","PI","startAngle","iEnd","endAngle","t","animationUpdatePie","_current","i","animationHoverPie","selector","duration","innerRadius","outerRadius","selection","select","attrTween","min","max","increaseFactor","getOuterRadius","size","width","height","minORmax","DonutRoot","document","undefined","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","active","data","id","uid","top","right","bottom","left","Children","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","$animationActivePie","animationActivePie","onMouseMove","bindHandlerTooltip","onMouseLeave","onMouseOver","e","target","getAttribute","onMouseOut","prevProps","$rootProps","selectAll","each","Element","k","getArcs","style","value","SPie","styles","color","other","isMount","setIsMount","name","EmptyData","SEmptyData","Label","SLabel"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } 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, d3ArcOut, arcs, activeIndexPie }) {\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 ind === activeIndexPie ? d3ArcOut(d) : 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\nfunction animationHoverPie({ d, selector, duration, innerRadius, outerRadius }) {\n if (duration > 0) {\n transition()\n .selection()\n .select(selector)\n .transition()\n .duration(duration)\n .attrTween('d', function () {\n if (!d) return () => '';\n const [min, max] = outerRadius;\n const i = interpolate(min, max);\n return function (t) {\n const d3ArcOut = arc().innerRadius(innerRadius).outerRadius(i(t));\n return d3ArcOut(d);\n };\n });\n }\n}\n\nconst increaseFactor = 8;\n\nfunction getOuterRadius({ size, halfsize, outerRadius }) {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n return outerRadius || minORmax(width - increaseFactor * 2, height - increaseFactor * 2) / 2;\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({\n innerRadius = 0,\n outerRadius,\n halfsize = false,\n $rootProps: { size },\n }) => {\n const d3Arc = arc()\n .outerRadius(getOuterRadius({ size, halfsize, outerRadius }))\n .innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius);\n\n const d3ArcOut = arc()\n .outerRadius(getOuterRadius({ size, halfsize, outerRadius }) + increaseFactor)\n .innerRadius(innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius);\n\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 d3ArcOut,\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 activeIndexPie = undefined;\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 const { 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 =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationActivePie = (props) => {\n let { duration, innerRadius } = this.asProps;\n const { active, data, selector } = props;\n innerRadius = innerRadius > increaseFactor ? innerRadius - increaseFactor : innerRadius;\n const outerRadius = getOuterRadius(this.asProps);\n active\n ? animationHoverPie({\n d: data,\n selector: `#${this.id} ${selector}`,\n duration: duration === 0 ? 0 : 300,\n innerRadius,\n outerRadius: [outerRadius, outerRadius + increaseFactor],\n })\n : animationHoverPie({\n d: data,\n selector: `#${this.id} ${selector}`,\n duration: duration === 0 ? 0 : 300,\n innerRadius,\n outerRadius: [outerRadius + increaseFactor, outerRadius],\n });\n };\n\n getPieProps(props, ind) {\n const { d3Arc, d3ArcOut } = this.asProps;\n const { active } = props;\n const data = this.arcs.find((arc) => arc.data[0] === props.dataKey);\n if (active) {\n this.activeIndexPie = ind;\n }\n\n return {\n data,\n d3Arc,\n d3ArcOut,\n $animationActivePie: this.animationActivePie,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n onMouseOver: (e) => {\n !active &&\n this.animationActivePie({\n active: true,\n data,\n selector: `[d=\"${e.target.getAttribute('d')}\"]`,\n });\n },\n onMouseOut: (e) => {\n !active &&\n this.animationActivePie({\n active: false,\n data,\n selector: `[d=\"${e.target.getAttribute('d')}\"]`,\n });\n },\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n d3Arc,\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, d3ArcOut } = this.asProps;\n const arcs = this.arcs;\n\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(\n 'd',\n animationInitialPie({\n halfsize,\n d3Arc,\n d3ArcOut,\n arcs,\n activeIndexPie: this.activeIndexPie,\n }),\n );\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({\n Element: SPie,\n styles,\n d3Arc,\n data,\n color,\n $animationActivePie,\n active,\n d3ArcOut,\n ...other\n}) {\n const [isMount, setIsMount] = useState(false);\n useEffect(() => {\n //you should't run animation for first render\n if (!isMount) {\n setIsMount(true);\n return;\n }\n if (active !== undefined && active !== null) {\n //name must unique on page\n $animationActivePie({ ...other, active, data, selector: `[name=\"${other.name}\"]` });\n }\n }, [active]);\n return sstyled(styles)(\n <SPie render=\"path\" color={color} d={active ? d3ArcOut(data) : d3Arc(data)} />,\n );\n}\n\nfunction EmptyData({ Element: SEmptyData, styles, d3Arc, color }) {\n return sstyled(styles)(\n <SEmptyData render=\"path\" color={color} d={d3Arc({ endAngle: Math.PI * 2, startAngle: 0 })} />,\n );\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 });\n\nexport default Donut;\n"],"file":"Donut.js"}
package/lib/es6/Dots.js CHANGED
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
2
  import { sstyled as _sstyled } from "@semcore/core";
4
3
  import { bisector } from 'd3-array';
@@ -6,7 +5,6 @@ import React, { useCallback, useEffect, useState } from 'react';
6
5
  import { sstyled } from '@semcore/core';
7
6
  import { eventToPoint, invert } from './utils';
8
7
  import createElement from './createElement';
9
- import { FadeInOut } from '@semcore/animation';
10
8
  import trottle from '@semcore/utils/lib/rafTrottle';
11
9
 
12
10
  /*__reshadow-styles__:"./style/dot.shadow.css"*/
@@ -14,20 +12,24 @@ var style = (
14
12
  /*__reshadow_css_start__*/
15
13
  _sstyled.insert(
16
14
  /*__inner_css_start__*/
17
- ".___SDot_1gsnq_gg_{stroke-width:2px;stroke:#fff;r:6px;fill:#2bb3ff;transition-property:cx,cy;transition-duration:var(--duration_1hsdugh);transition-timing-function:ease-in-out}.___SDot_1gsnq_gg_.__color_1gsnq_gg_{fill:var(--color_1hsdugh)}.___SDot_1gsnq_gg_.__hide_1gsnq_gg_{display:none}.___SDot_1gsnq_gg_.__active_1gsnq_gg_{r:8px}"
15
+ ".___SDots_151p1_gg_ .___SDot_151p1_gg_{transition-duration:var(--duration_k8i7qm)}.___SDot_151p1_gg_{stroke-width:2px;stroke:#fff;r:6px;fill:#2bb3ff;transition-property:cx,cy;transition-timing-function:ease-in-out}.___SDot_151p1_gg_.__hide_151p1_gg_{display:none}.___SDot_151p1_gg_.__active_151p1_gg_{r:8px}.___SDot_151p1_gg_.__color_151p1_gg_{fill:var(--color_k8i7qm)}"
18
16
  /*__inner_css_end__*/
19
- , "1hsdugh_gg_")
17
+ , "k8i7qm_gg_")
20
18
  /*__reshadow_css_end__*/
21
19
  , {
22
- "__SDot": "___SDot_1gsnq_gg_",
23
- "--duration": "--duration_1hsdugh",
24
- "_color": "__color_1gsnq_gg_",
25
- "--color": "--color_1hsdugh",
26
- "_hide": "__hide_1gsnq_gg_",
27
- "_active": "__active_1gsnq_gg_"
20
+ "__SDots": "___SDots_151p1_gg_",
21
+ "__SDot": "___SDot_151p1_gg_",
22
+ "--duration": "--duration_k8i7qm",
23
+ "_hide": "__hide_151p1_gg_",
24
+ "_active": "__active_151p1_gg_",
25
+ "_color": "__color_151p1_gg_",
26
+ "--color": "--color_k8i7qm"
28
27
  });
28
+ var EXCLUDE_PROPS = ['data', 'scale', 'value', 'display'];
29
29
 
30
30
  function Dots(props) {
31
+ var _ref2;
32
+
31
33
  var SDot = props.Element,
32
34
  styles = props.styles,
33
35
  data = props.data,
@@ -42,6 +44,7 @@ function Dots(props) {
42
44
  scale = props.scale,
43
45
  _props$duration = props.duration,
44
46
  duration = _props$duration === void 0 ? 500 : _props$duration;
47
+ var SDots = 'g';
45
48
  var bisect = bisector(function (d) {
46
49
  return d[x];
47
50
  }).center;
@@ -75,36 +78,34 @@ function Dots(props) {
75
78
  unsubscribeMouseMoveRoot();
76
79
  unsubscribeMouseLeaveRoot();
77
80
  };
78
- }, [eventEmitter, data, x, y]);
79
- var renderCircle = useCallback(React.forwardRef(function (props, ref) {
80
- return /*#__PURE__*/React.createElement(FadeInOut, _extends({
81
- ref: ref,
82
- tag: "circle"
83
- }, props));
84
- }), [props]);
85
- return data.reduce(function (acc, d, i) {
81
+ }, [eventEmitter, scale, data, x, y]);
82
+ var dots = data.reduce(function (acc, d, i) {
86
83
  var _ref;
87
84
 
88
85
  var isPrev = d3.defined()(data[i - 1] || {});
89
86
  var isNext = d3.defined()(data[i + 1] || {});
90
87
  var active = i === activeIndex;
88
+ var visible = display || i === activeIndex || !isPrev && !isNext;
91
89
  if (!d3.defined()(d)) return acc;
90
+ if (!visible) return acc;
92
91
  acc.push((_ref = sstyled(styles), /*#__PURE__*/React.createElement(SDot, _ref.cn("SDot", {
93
92
  "key": i,
94
- "render": renderCircle,
95
- "visible": display || i === activeIndex || !isPrev && !isNext,
96
- "__excludeProps": ['data', 'scale', 'value', 'display'],
93
+ "render": "circle",
94
+ "visible": visible,
95
+ "__excludeProps": EXCLUDE_PROPS,
97
96
  "value": d,
98
97
  "index": i,
99
98
  "cx": d3.x()(d),
100
99
  "cy": d3.y()(d),
101
100
  "active": active,
102
101
  "hide": hide,
103
- "color": color,
104
- "use:duration": "".concat(duration, "ms")
102
+ "color": color
105
103
  }))));
106
104
  return acc;
107
105
  }, []);
106
+ return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SDots, _ref2.cn("SDots", {
107
+ "use:duration": "".concat(duration, "ms")
108
+ }), dots);
108
109
  }
109
110
 
110
111
  Dots.style = style;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dots.jsx"],"names":["bisector","React","useCallback","useEffect","useState","sstyled","eventToPoint","invert","createElement","FadeInOut","trottle","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 { eventToPoint, invert } from './utils';\nimport createElement from './createElement';\nimport { FadeInOut } from '@semcore/animation';\nimport trottle from '@semcore/utils/lib/rafTrottle';\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('onMouseMoveChart', (e) => {\n e.persist();\n handlerMouseMoveRoot(e);\n });\n\n const unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\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"}
1
+ {"version":3,"sources":["../../src/Dots.jsx"],"names":["bisector","React","useCallback","useEffect","useState","sstyled","eventToPoint","invert","createElement","trottle","EXCLUDE_PROPS","Dots","props","SDot","Element","styles","data","color","d3","x","y","eventEmitter","display","hide","rootRef","scale","duration","SDots","bisect","d","center","activeIndex","setActiveIndex","handlerMouseMoveRoot","e","xScale","current","pX","vX","handlerMouseLeaveRoot","unsubscribeMouseMoveRoot","subscribe","persist","unsubscribeMouseLeaveRoot","dots","reduce","acc","i","isPrev","defined","isNext","active","visible","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 { eventToPoint, invert } from './utils';\nimport createElement from './createElement';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nimport style from './style/dot.shadow.css';\n\nconst EXCLUDE_PROPS = ['data', 'scale', 'value', 'display'];\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 SDots = 'g';\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('onMouseMoveChart', (e) => {\n e.persist();\n handlerMouseMoveRoot(e);\n });\n\n const unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n handlerMouseLeaveRoot,\n );\n\n return () => {\n unsubscribeMouseMoveRoot();\n unsubscribeMouseLeaveRoot();\n };\n }, [eventEmitter, scale, data, x, y]);\n\n const dots = 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 const visible = display || i === activeIndex || (!isPrev && !isNext);\n if (!d3.defined()(d)) return acc;\n if (!visible) return acc;\n acc.push(\n sstyled(styles)(\n <SDot\n key={i}\n render=\"circle\"\n visible={visible}\n __excludeProps={EXCLUDE_PROPS}\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 />,\n ),\n );\n return acc;\n }, []);\n return sstyled(styles)(<SDots use:duration={`${duration}ms`}>{dots}</SDots>);\n}\n\nDots.style = style;\n\nexport default createElement(Dots);\n"],"file":"Dots.js"}
@@ -22,15 +22,15 @@ var _ref = (
22
22
  /*__reshadow_css_start__*/
23
23
  __css__(
24
24
  /*__inner_css_start__*/
25
- ".___SBar_1lf2l_gg_{fill:#2bb3ff;transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1lf2l_gg_.__color_1lf2l_gg_{fill:var(--color)}.___SBar_1lf2l_gg_.__hide_1lf2l_gg_{display:none}.___SBackground_1lf2l_gg_{fill:#c4c7cf}"
25
+ ".___SBar_wxazs_gg_{fill:#2bb3ff;transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_wxazs_gg_.__color_wxazs_gg_{fill:var(--color)}.___SBar_wxazs_gg_.__hide_wxazs_gg_{display:none}.___SBackground_wxazs_gg_{fill:#c4c7cf}"
26
26
  /*__inner_css_end__*/
27
- , "1rs5v2a_gg_")
27
+ , "14r5hqa_gg_")
28
28
  /*__reshadow_css_end__*/
29
29
  , {
30
- "__SBar": "___SBar_1lf2l_gg_",
31
- "_color": "__color_1lf2l_gg_",
32
- "_hide": "__hide_1lf2l_gg_",
33
- "__SBackground": "___SBackground_1lf2l_gg_"
30
+ "__SBar": "___SBar_wxazs_gg_",
31
+ "_color": "__color_wxazs_gg_",
32
+ "_hide": "__hide_wxazs_gg_",
33
+ "__SBackground": "___SBackground_wxazs_gg_"
34
34
  }),
35
35
  style = _extends({}, _ref);
36
36
 
@@ -52,7 +52,7 @@ var GroupBarRoot = /*#__PURE__*/function (_Component) {
52
52
  Children = _this$asProps.Children,
53
53
  scale = _this$asProps.scale,
54
54
  scaleGroup = _this$asProps.scaleGroup,
55
- x = _this$asProps.x; // TODO: классный костыль =)
55
+ x = _this$asProps.x; // TODO: love that hack (by lsroman)
56
56
 
57
57
  var xyScale = x ? scale[0] : scale[1];
58
58
  if (scaleGroup) return scaleGroup;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GroupBar.jsx"],"names":["React","Component","getOriginChildren","createElement","Bar","HorizontalBar","GroupBarRoot","asProps","Children","scale","scaleGroup","x","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","props","hide","push","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 && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === GroupBar.HorizontalBar &&\n !child.props.hide\n ) {\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.jsx"],"names":["React","Component","getOriginChildren","createElement","Bar","HorizontalBar","GroupBarRoot","asProps","Children","scale","scaleGroup","x","xyScale","domain","toArray","reduce","acc","child","isValidElement","type","GroupBar","props","hide","push","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: love that hack (by lsroman)\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 && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === GroupBar.HorizontalBar &&\n !child.props.hide\n ) {\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"}
package/lib/es6/Line.js CHANGED
@@ -56,12 +56,14 @@ var LineRoot = /*#__PURE__*/function (_Component) {
56
56
  x = _this$asProps.x,
57
57
  y = _this$asProps.y,
58
58
  d3 = _this$asProps.d3,
59
- color = _this$asProps.color;
59
+ color = _this$asProps.color,
60
+ duration = _this$asProps.duration;
60
61
  return {
61
62
  x: x,
62
63
  y: y,
63
64
  d3: d3,
64
- color: color
65
+ color: color,
66
+ duration: duration
65
67
  };
66
68
  }
67
69
  }, {