@d3plus/core 3.0.0-alpha.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 (87) hide show
  1. package/README.md +6219 -0
  2. package/es/index.js +4 -0
  3. package/es/src/charts/AreaPlot.js +86 -0
  4. package/es/src/charts/BarChart.js +93 -0
  5. package/es/src/charts/BoxWhisker.js +97 -0
  6. package/es/src/charts/BumpChart.js +148 -0
  7. package/es/src/charts/Donut.js +84 -0
  8. package/es/src/charts/Geomap.js +833 -0
  9. package/es/src/charts/LinePlot.js +84 -0
  10. package/es/src/charts/Matrix.js +358 -0
  11. package/es/src/charts/Network.js +787 -0
  12. package/es/src/charts/Pack.js +318 -0
  13. package/es/src/charts/Pie.js +242 -0
  14. package/es/src/charts/Plot.js +2212 -0
  15. package/es/src/charts/Priestley.js +312 -0
  16. package/es/src/charts/Radar.js +365 -0
  17. package/es/src/charts/RadialMatrix.js +393 -0
  18. package/es/src/charts/Rings.js +777 -0
  19. package/es/src/charts/Sankey.js +413 -0
  20. package/es/src/charts/StackedArea.js +80 -0
  21. package/es/src/charts/Tree.js +312 -0
  22. package/es/src/charts/Treemap.js +406 -0
  23. package/es/src/charts/Viz.js +2017 -0
  24. package/es/src/charts/drawSteps/drawAttribution.js +14 -0
  25. package/es/src/charts/drawSteps/drawBack.js +23 -0
  26. package/es/src/charts/drawSteps/drawColorScale.js +69 -0
  27. package/es/src/charts/drawSteps/drawLegend.js +120 -0
  28. package/es/src/charts/drawSteps/drawSubtitle.js +31 -0
  29. package/es/src/charts/drawSteps/drawTimeline.js +80 -0
  30. package/es/src/charts/drawSteps/drawTitle.js +31 -0
  31. package/es/src/charts/drawSteps/drawTotal.js +32 -0
  32. package/es/src/charts/drawSteps/zoomControls.js +254 -0
  33. package/es/src/charts/events/click.legend.js +76 -0
  34. package/es/src/charts/events/click.shape.js +26 -0
  35. package/es/src/charts/events/mouseenter.js +31 -0
  36. package/es/src/charts/events/mouseleave.js +21 -0
  37. package/es/src/charts/events/mousemove.legend.js +64 -0
  38. package/es/src/charts/events/mousemove.shape.js +42 -0
  39. package/es/src/charts/events/touchstart.body.js +7 -0
  40. package/es/src/charts/helpers/matrixData.js +104 -0
  41. package/es/src/charts/helpers/tileAttributions.js +34 -0
  42. package/es/src/charts/index.js +21 -0
  43. package/es/src/charts/plotBuffers/Bar.js +65 -0
  44. package/es/src/charts/plotBuffers/Box.js +60 -0
  45. package/es/src/charts/plotBuffers/Circle.js +39 -0
  46. package/es/src/charts/plotBuffers/Line.js +30 -0
  47. package/es/src/charts/plotBuffers/Rect.js +40 -0
  48. package/es/src/charts/plotBuffers/discreteBuffer.js +24 -0
  49. package/es/src/charts/plotBuffers/numericBuffer.js +111 -0
  50. package/es/src/components/Axis.js +1567 -0
  51. package/es/src/components/AxisBottom.js +77 -0
  52. package/es/src/components/AxisLeft.js +77 -0
  53. package/es/src/components/AxisRight.js +77 -0
  54. package/es/src/components/AxisTop.js +77 -0
  55. package/es/src/components/ColorScale.js +958 -0
  56. package/es/src/components/Legend.js +673 -0
  57. package/es/src/components/Message.js +95 -0
  58. package/es/src/components/TextBox.js +752 -0
  59. package/es/src/components/Timeline.js +760 -0
  60. package/es/src/components/Tooltip.js +726 -0
  61. package/es/src/components/index.js +11 -0
  62. package/es/src/shapes/Area.js +361 -0
  63. package/es/src/shapes/Bar.js +342 -0
  64. package/es/src/shapes/Box.js +482 -0
  65. package/es/src/shapes/Circle.js +201 -0
  66. package/es/src/shapes/Image.js +255 -0
  67. package/es/src/shapes/Line.js +289 -0
  68. package/es/src/shapes/Path.js +186 -0
  69. package/es/src/shapes/Rect.js +215 -0
  70. package/es/src/shapes/Shape.js +1156 -0
  71. package/es/src/shapes/Whisker.js +330 -0
  72. package/es/src/shapes/index.js +10 -0
  73. package/es/src/utils/BaseClass.js +204 -0
  74. package/es/src/utils/RESET.js +4 -0
  75. package/es/src/utils/accessor.js +19 -0
  76. package/es/src/utils/configPrep.js +76 -0
  77. package/es/src/utils/constant.js +15 -0
  78. package/es/src/utils/getProp.js +9 -0
  79. package/es/src/utils/index.js +7 -0
  80. package/es/src/utils/uuid.js +13 -0
  81. package/package.json +68 -0
  82. package/umd/d3plus-core.full.js +56459 -0
  83. package/umd/d3plus-core.full.js.map +1 -0
  84. package/umd/d3plus-core.full.min.js +7241 -0
  85. package/umd/d3plus-core.js +14422 -0
  86. package/umd/d3plus-core.js.map +1 -0
  87. package/umd/d3plus-core.min.js +4564 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ @module discreteBuffer
3
+ @desc Adds left/right padding to a point or time scale.
4
+ @private
5
+ */ export default function(scale, data, discrete) {
6
+ if (scale.padding) scale.padding(0.5);
7
+ else {
8
+ var uniqueValues = Array.from(new Set(data.map(function(d) {
9
+ return +d[discrete];
10
+ })));
11
+ var closest = uniqueValues.reduce(function(acc, curr, i, arr) {
12
+ if (!i) return acc;
13
+ var prev = arr[i - 1];
14
+ if (!acc || curr - prev < acc) return curr - prev;
15
+ else return acc;
16
+ }, 0);
17
+ var domain = scale.domain().slice();
18
+ if (discrete === "y") domain.reverse();
19
+ domain[0] = new Date(+domain[0] - closest / 2);
20
+ domain[1] = new Date(+domain[1] + closest / 2);
21
+ if (discrete === "y") domain.reverse();
22
+ scale.domain(domain);
23
+ }
24
+ };
@@ -0,0 +1,111 @@
1
+ import { scaleLog } from "d3-scale";
2
+ var floor10 = function(v) {
3
+ return Math.pow(10, Math.floor(Math.log10(Math.abs(v)))) * Math.pow(-1, v < 0);
4
+ };
5
+ var ceil10 = function(v) {
6
+ return Math.pow(10, Math.ceil(Math.log10(Math.abs(v)))) * Math.pow(-1, v < 0);
7
+ };
8
+ /**
9
+ @module numericBuffer
10
+ @private
11
+ */ export default function(axis, scale, value, size, range, domain, index, invert) {
12
+ if (value === undefined || isNaN(domain[0]) || isNaN(domain[1])) return domain;
13
+ if (invert) {
14
+ domain = domain.slice().reverse();
15
+ range = range.slice().reverse();
16
+ }
17
+ if (domain[0] === domain[1]) {
18
+ domain = domain.slice();
19
+ if (scale === "log") {
20
+ domain = [
21
+ floor10(domain[0]),
22
+ ceil10(domain[0])
23
+ ];
24
+ if (domain[1] < domain[0]) domain.reverse();
25
+ } else {
26
+ var mod = Math.abs(parseFloat(domain[0].toPrecision(1).replace(/[0-9]{1}$/, "1")));
27
+ domain[0] -= mod;
28
+ domain[1] += mod;
29
+ }
30
+ axis.domain(invert ? domain.slice().reverse() : domain);
31
+ return invert ? domain.reverse() : domain;
32
+ }
33
+ var logMod = domain[0] === domain[1] ? 10 : Math.abs(Math.log(domain[1] - domain[0]) / 100);
34
+ var needsBuffer = function() {
35
+ var tempAxis = axis.copy();
36
+ var diverging = false;
37
+ if (scale === "log") {
38
+ var d = axis.domain().slice(), r = axis.range().slice();
39
+ if (invert) {
40
+ d = d.reverse();
41
+ r = r.reverse();
42
+ }
43
+ diverging = d[0] * d[1] < 0;
44
+ if (diverging) {
45
+ var percentScale = scaleLog().domain([
46
+ 1e-6,
47
+ Math.abs(d[index])
48
+ ]).range([
49
+ 0,
50
+ 1
51
+ ]);
52
+ var leftPercentage = percentScale(Math.abs(d[index ? 0 : 1]));
53
+ var zero = leftPercentage / (leftPercentage + 1) * (r[1] - r[0]);
54
+ d = (index === 0 ? [
55
+ d[0],
56
+ 1e-6
57
+ ] : [
58
+ 1e-6,
59
+ d[1]
60
+ ]).map(Math.abs);
61
+ r = index === 0 ? [
62
+ r[0],
63
+ r[0] + zero
64
+ ] : [
65
+ r[0] + zero,
66
+ r[1]
67
+ ];
68
+ }
69
+ tempAxis = scaleLog().domain(d).range(r);
70
+ }
71
+ var outside = false;
72
+ var tempRange = tempAxis.range();
73
+ var pixelValue;
74
+ if (scale === "log") {
75
+ pixelValue = diverging ? tempAxis(Math.abs(value)) : tempAxis(value);
76
+ } else pixelValue = tempAxis(value);
77
+ if (invert) {
78
+ if (index === 0) outside = pixelValue + size > tempRange[index];
79
+ else if (index === 1) outside = pixelValue - size < tempRange[index];
80
+ } else {
81
+ if (index === 0) outside = pixelValue - size < tempRange[index];
82
+ else if (index === 1) outside = pixelValue + size > tempRange[index];
83
+ }
84
+ return outside;
85
+ };
86
+ if (axis.invert && needsBuffer()) {
87
+ var mod1 = 10;
88
+ if (scale === "log") {
89
+ var i = 0;
90
+ while(i < 10 && needsBuffer()){
91
+ var mod2 = (index === 0 ? -1 : 1) * (domain[index] < 0 ? -1 : 1);
92
+ domain[index] += domain[index] * logMod * mod2;
93
+ axis.domain(invert ? domain.slice().reverse() : domain);
94
+ i++;
95
+ }
96
+ } else if (index === 0) {
97
+ var v = axis.invert(axis(value) + (size + mod1) * (invert ? 1 : -1));
98
+ if (v < domain[index]) {
99
+ domain[index] = v;
100
+ axis.domain(invert ? domain.slice().reverse() : domain);
101
+ }
102
+ } else if (index === 1) {
103
+ var v1 = axis.invert(axis(value) + (size + mod1) * (invert ? -1 : 1));
104
+ if (v1 > domain[index]) {
105
+ domain[index] = v1;
106
+ axis.domain(invert ? domain.slice().reverse() : domain);
107
+ }
108
+ }
109
+ }
110
+ return invert ? domain.reverse() : domain;
111
+ }