@pie-lib/charting 5.15.7 → 5.16.0-beta.2

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 (106) hide show
  1. package/CHANGELOG.md +40 -62
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/package.json +32 -5
  4. package/src/__tests__/__snapshots__/axes.test.jsx.snap +564 -0
  5. package/src/__tests__/__snapshots__/chart-type.test.jsx.snap +14 -0
  6. package/src/__tests__/__snapshots__/chart.test.jsx.snap +610 -0
  7. package/src/__tests__/__snapshots__/grid.test.jsx.snap +28 -0
  8. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +67 -0
  9. package/src/__tests__/axes.test.jsx +146 -0
  10. package/src/__tests__/chart-setup.test.jsx +47 -0
  11. package/src/__tests__/chart-type.test.jsx +29 -0
  12. package/src/__tests__/chart.test.jsx +87 -0
  13. package/src/__tests__/grid.test.jsx +25 -0
  14. package/src/__tests__/mark-label.test.jsx +31 -0
  15. package/src/__tests__/utils.js +30 -0
  16. package/src/__tests__/utils.test.js +100 -0
  17. package/src/axes.jsx +59 -23
  18. package/src/bars/__tests__/__snapshots__/bar.test.jsx.snap +43 -0
  19. package/src/bars/__tests__/__snapshots__/histogram.test.jsx.snap +45 -0
  20. package/src/bars/__tests__/bar.test.jsx +37 -0
  21. package/src/bars/__tests__/histogram.test.jsx +38 -0
  22. package/src/bars/__tests__/utils.js +30 -0
  23. package/src/bars/common/__tests__/__snapshots__/bars.test.jsx.snap +110 -0
  24. package/src/bars/common/__tests__/bars.test.jsx +69 -0
  25. package/src/bars/common/__tests__/utils.js +30 -0
  26. package/src/bars/common/bars.jsx +37 -1
  27. package/src/chart-type.js +7 -3
  28. package/src/chart-types.js +2 -2
  29. package/src/chart.jsx +15 -5
  30. package/src/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +45 -0
  31. package/src/common/__tests__/drag-handle.test.jsx +88 -0
  32. package/src/common/__tests__/utils.js +30 -0
  33. package/src/common/drag-handle.jsx +18 -10
  34. package/src/common/drag-icon.jsx +6 -21
  35. package/src/line/__tests__/__snapshots__/line-cross.test.jsx.snap +45 -0
  36. package/src/line/__tests__/__snapshots__/line-dot.test.jsx.snap +45 -0
  37. package/src/line/__tests__/line-cross.test.jsx +38 -0
  38. package/src/line/__tests__/line-dot.test.jsx +38 -0
  39. package/src/line/__tests__/utils.js +30 -0
  40. package/src/line/common/__tests__/__snapshots__/drag-handle.test.jsx.snap +44 -0
  41. package/src/line/common/__tests__/__snapshots__/line.test.jsx.snap +141 -0
  42. package/src/line/common/__tests__/drag-handle.test.jsx +88 -0
  43. package/src/line/common/__tests__/line.test.jsx +82 -0
  44. package/src/line/common/__tests__/utils.js +30 -0
  45. package/src/line/common/drag-handle.jsx +9 -4
  46. package/src/line/line-cross.js +4 -1
  47. package/src/line/line-dot.js +17 -7
  48. package/src/mark-label.jsx +19 -7
  49. package/src/plot/__tests__/__snapshots__/dot.test.jsx.snap +45 -0
  50. package/src/plot/__tests__/__snapshots__/line.test.jsx.snap +45 -0
  51. package/src/plot/__tests__/dot.test.jsx +38 -0
  52. package/src/plot/__tests__/line.test.jsx +38 -0
  53. package/src/plot/__tests__/utils.js +30 -0
  54. package/src/plot/common/__tests__/__snapshots__/plot.test.jsx.snap +96 -0
  55. package/src/plot/common/__tests__/plot.test.jsx +70 -0
  56. package/src/plot/common/__tests__/utils.js +30 -0
  57. package/src/plot/common/plot.jsx +6 -1
  58. package/src/plot/dot.js +1 -1
  59. package/src/plot/line.js +1 -1
  60. package/src/tool-menu.jsx +0 -4
  61. package/lib/axes.js +0 -598
  62. package/lib/axes.js.map +0 -1
  63. package/lib/bars/bar.js +0 -86
  64. package/lib/bars/bar.js.map +0 -1
  65. package/lib/bars/common/bars.js +0 -267
  66. package/lib/bars/common/bars.js.map +0 -1
  67. package/lib/bars/histogram.js +0 -87
  68. package/lib/bars/histogram.js.map +0 -1
  69. package/lib/chart-setup.js +0 -458
  70. package/lib/chart-setup.js.map +0 -1
  71. package/lib/chart-type.js +0 -71
  72. package/lib/chart-type.js.map +0 -1
  73. package/lib/chart-types.js +0 -31
  74. package/lib/chart-types.js.map +0 -1
  75. package/lib/chart.js +0 -423
  76. package/lib/chart.js.map +0 -1
  77. package/lib/common/drag-handle.js +0 -169
  78. package/lib/common/drag-handle.js.map +0 -1
  79. package/lib/common/drag-icon.js +0 -69
  80. package/lib/common/drag-icon.js.map +0 -1
  81. package/lib/common/styles.js +0 -40
  82. package/lib/common/styles.js.map +0 -1
  83. package/lib/grid.js +0 -104
  84. package/lib/grid.js.map +0 -1
  85. package/lib/index.js +0 -40
  86. package/lib/index.js.map +0 -1
  87. package/lib/line/common/drag-handle.js +0 -152
  88. package/lib/line/common/drag-handle.js.map +0 -1
  89. package/lib/line/common/line.js +0 -261
  90. package/lib/line/common/line.js.map +0 -1
  91. package/lib/line/line-cross.js +0 -157
  92. package/lib/line/line-cross.js.map +0 -1
  93. package/lib/line/line-dot.js +0 -123
  94. package/lib/line/line-dot.js.map +0 -1
  95. package/lib/mark-label.js +0 -246
  96. package/lib/mark-label.js.map +0 -1
  97. package/lib/plot/common/plot.js +0 -278
  98. package/lib/plot/common/plot.js.map +0 -1
  99. package/lib/plot/dot.js +0 -123
  100. package/lib/plot/dot.js.map +0 -1
  101. package/lib/plot/line.js +0 -152
  102. package/lib/plot/line.js.map +0 -1
  103. package/lib/tool-menu.js +0 -146
  104. package/lib/tool-menu.js.map +0 -1
  105. package/lib/utils.js +0 -244
  106. package/lib/utils.js.map +0 -1
package/lib/utils.js DELETED
@@ -1,244 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.tickCount = exports.point = exports.getTopPadding = exports.getTickValues = exports.getScale = exports.getRotateAngle = exports.getGridLinesAndAxisByChartType = exports.getDomainAndRangeByChartType = exports.getAdjustedX = exports.dataToXBand = exports.bounds = exports.bandKey = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _scale = require("@vx/scale");
13
-
14
- var _plot = require("@pie-lib/plot");
15
-
16
- 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; }
17
-
18
- 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) { (0, _defineProperty2["default"])(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; }
19
-
20
- var tickCount = _plot.utils.tickCount;
21
- exports.tickCount = tickCount;
22
- var bounds = _plot.utils.bounds;
23
- exports.bounds = bounds;
24
- var point = _plot.utils.point;
25
- exports.point = point;
26
-
27
- var bandKey = function bandKey(d, index) {
28
- return "".concat(index, "-").concat(d.label || '-');
29
- };
30
-
31
- exports.bandKey = bandKey;
32
-
33
- var dataToXBand = function dataToXBand(scaleX, data, width, type) {
34
- switch (type) {
35
- case 'bar':
36
- case 'dotPlot':
37
- case 'linePlot':
38
- return (0, _scale.scaleBand)({
39
- rangeRound: [0, width],
40
- domain: data && data.map(bandKey),
41
- padding: 0.2
42
- });
43
-
44
- case 'histogram':
45
- return (0, _scale.scaleBand)({
46
- rangeRound: [0, width],
47
- domain: data && data.map(bandKey),
48
- padding: 0
49
- });
50
-
51
- case 'lineCross':
52
- case 'lineDot':
53
- return (0, _scale.scalePoint)({
54
- domain: data && data.map(bandKey),
55
- rangeRound: [0, width]
56
- });
57
-
58
- default:
59
- return (0, _scale.scaleBand)({
60
- range: [0, width],
61
- domain: data && data.map(bandKey),
62
- padding: 0
63
- });
64
- }
65
- };
66
-
67
- exports.dataToXBand = dataToXBand;
68
-
69
- var getTickValues = function getTickValues() {
70
- var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
71
- var tickValues = [];
72
- var tickVal = prop.min;
73
-
74
- while (tickVal <= prop.max) {
75
- tickValues.push(tickVal);
76
- tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
77
- }
78
-
79
- return tickValues;
80
- };
81
-
82
- exports.getTickValues = getTickValues;
83
-
84
- var getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain, range, chartType) {
85
- var _ref = range || {},
86
- step = _ref.step,
87
- labelStep = _ref.labelStep,
88
- min = _ref.min,
89
- max = _ref.max;
90
-
91
- if (!min) {
92
- min = 0;
93
- }
94
-
95
- if (!max || max < 0) {
96
- max = range.min + 1;
97
- }
98
-
99
- if (!step) {
100
- step = labelStep || 1;
101
- }
102
-
103
- if (!labelStep || isNaN(labelStep) && step) {
104
- labelStep = step || 1;
105
- }
106
-
107
- range.max = max;
108
-
109
- switch (chartType) {
110
- // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values
111
- case 'dotPlot':
112
- case 'linePlot':
113
- {
114
- var intMin = Math.round(min);
115
- var intMax = Math.round(max);
116
- return {
117
- domain: _objectSpread(_objectSpread({}, domain), {}, {
118
- step: 1,
119
- labelStep: 1,
120
- min: 0,
121
- max: 1
122
- }),
123
- range: _objectSpread(_objectSpread({}, range), {}, {
124
- min: intMin,
125
- max: intMin === intMax ? intMin + 1 : intMax,
126
- labelStep: labelStep,
127
- step: 1
128
- })
129
- };
130
- }
131
-
132
- default:
133
- return {
134
- domain: _objectSpread(_objectSpread({}, domain), {}, {
135
- step: 1,
136
- labelStep: 1,
137
- min: 0,
138
- max: 1
139
- }),
140
- range: _objectSpread(_objectSpread({}, range), {}, {
141
- labelStep: labelStep,
142
- step: step
143
- })
144
- };
145
- }
146
- };
147
-
148
- exports.getDomainAndRangeByChartType = getDomainAndRangeByChartType;
149
-
150
- var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(range, chartType) {
151
- switch (chartType) {
152
- case 'lineDot':
153
- case 'lineCross':
154
- return {
155
- verticalLines: undefined,
156
- horizontalLines: getTickValues(range),
157
- leftAxis: true
158
- };
159
-
160
- case 'dotPlot':
161
- case 'linePlot':
162
- return {
163
- verticalLines: [],
164
- horizontalLines: [],
165
- leftAxis: false
166
- };
167
-
168
- default:
169
- return {
170
- verticalLines: [],
171
- horizontalLines: getTickValues(range),
172
- leftAxis: true
173
- };
174
- }
175
- };
176
-
177
- exports.getGridLinesAndAxisByChartType = getGridLinesAndAxisByChartType;
178
-
179
- var getRotateAngle = function getRotateAngle(fontSize, height) {
180
- if (height >= fontSize * 2) {
181
- return 25;
182
- }
183
-
184
- return 0;
185
- };
186
-
187
- exports.getRotateAngle = getRotateAngle;
188
-
189
- var getTopPadding = function getTopPadding(barWidth) {
190
- if (barWidth < 30) {
191
- return 50;
192
- }
193
-
194
- if (barWidth < 40) {
195
- return 30;
196
- }
197
-
198
- if (barWidth < 60) {
199
- return 15;
200
- }
201
-
202
- return 0;
203
- }; // This function calculates the transformation scale for SVG and the icon's vertical distance from its category
204
-
205
-
206
- exports.getTopPadding = getTopPadding;
207
-
208
- var getScale = function getScale(width) {
209
- var scale, deltay;
210
-
211
- if (width > 91) {
212
- scale = 1.3;
213
- deltay = -55;
214
- } else if (width > 45) {
215
- scale = 1.1;
216
- deltay = -45;
217
- } else if (width > 40) {
218
- scale = 0.5 + (width - 34) * 0.02;
219
- deltay = -25;
220
- } else if (width > 30) {
221
- scale = 0.5 + (width - 34) * 0.02;
222
- deltay = -20;
223
- } else {
224
- scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.
225
-
226
- deltay = -15;
227
- }
228
-
229
- return {
230
- scale: scale,
231
- deltay: deltay
232
- };
233
- };
234
-
235
- exports.getScale = getScale;
236
-
237
- var getAdjustedX = function getAdjustedX(width, scaleValue) {
238
- var innerWidthOriginal = 57;
239
- var effectiveInnerWidth = innerWidthOriginal * scaleValue;
240
- return (width - effectiveInnerWidth) / 2;
241
- };
242
-
243
- exports.getAdjustedX = getAdjustedX;
244
- //# sourceMappingURL=utils.js.map
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["tickCount","utils","bounds","point","bandKey","d","index","label","dataToXBand","scaleX","data","width","type","rangeRound","domain","map","padding","range","getTickValues","prop","tickValues","tickVal","min","max","push","Math","round","step","getDomainAndRangeByChartType","chartType","labelStep","isNaN","intMin","intMax","getGridLinesAndAxisByChartType","verticalLines","undefined","horizontalLines","leftAxis","getRotateAngle","fontSize","height","getTopPadding","barWidth","getScale","scale","deltay","pow","getAdjustedX","scaleValue","innerWidthOriginal","effectiveInnerWidth"],"mappings":"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","sourcesContent":["import { scaleBand, scalePoint } from '@vx/scale';\nimport { utils } from '@pie-lib/plot';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const dataToXBand = (scaleX, data, width, type) => {\n switch (type) {\n case 'bar':\n case 'dotPlot':\n case 'linePlot':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0.2,\n });\n\n case 'histogram':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0,\n });\n\n case 'lineCross':\n case 'lineDot':\n return scalePoint({\n domain: data && data.map(bandKey),\n rangeRound: [0, width],\n });\n\n default:\n return scaleBand({\n range: [0, width],\n domain: data && data.map(bandKey),\n padding: 0,\n });\n }\n};\n\nexport const getTickValues = (prop = {}) => {\n const tickValues = [];\n let tickVal = prop.min;\n\n while (tickVal <= prop.max) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n return tickValues;\n};\n\nexport const getDomainAndRangeByChartType = (domain, range, chartType) => {\n let { step, labelStep, min, max } = range || {};\n\n if (!min) {\n min = 0;\n }\n\n if (!max || max < 0) {\n max = range.min + 1;\n }\n\n if (!step) {\n step = labelStep || 1;\n }\n if (!labelStep || (isNaN(labelStep) && step)) {\n labelStep = step || 1;\n }\n\n range.max = max;\n\n switch (chartType) {\n // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values\n case 'dotPlot':\n case 'linePlot': {\n const intMin = Math.round(min);\n const intMax = Math.round(max);\n\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1,\n },\n range: {\n ...range,\n min: intMin,\n max: intMin === intMax ? intMin + 1 : intMax,\n labelStep,\n step: 1,\n },\n };\n }\n\n default:\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1,\n },\n range: {\n ...range,\n labelStep,\n step,\n },\n };\n }\n};\n\nexport const getGridLinesAndAxisByChartType = (range, chartType) => {\n switch (chartType) {\n case 'lineDot':\n case 'lineCross':\n return {\n verticalLines: undefined,\n horizontalLines: getTickValues(range),\n leftAxis: true,\n };\n\n case 'dotPlot':\n case 'linePlot':\n return {\n verticalLines: [],\n horizontalLines: [],\n leftAxis: false,\n };\n\n default:\n return {\n verticalLines: [],\n horizontalLines: getTickValues(range),\n leftAxis: true,\n };\n }\n};\n\nexport const getRotateAngle = (fontSize, height) => {\n if (height >= fontSize * 2) {\n return 25;\n }\n\n return 0;\n};\n\nexport const getTopPadding = (barWidth) => {\n if (barWidth < 30) {\n return 50;\n }\n\n if (barWidth < 40) {\n return 30;\n }\n\n if (barWidth < 60) {\n return 15;\n }\n\n return 0;\n};\n\n// This function calculates the transformation scale for SVG and the icon's vertical distance from its category\nexport const getScale = (width) => {\n let scale, deltay;\n\n if (width > 91) {\n scale = 1.3;\n deltay = -55;\n } else if (width > 45) {\n scale = 1.1;\n deltay = -45;\n } else if (width > 40) {\n scale = 0.5 + (width - 34) * 0.02;\n deltay = -25;\n } else if (width > 30) {\n scale = 0.5 + (width - 34) * 0.02;\n deltay = -20;\n } else {\n scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.\n deltay = -15;\n }\n\n return { scale, deltay };\n};\n\nexport const getAdjustedX = (width, scaleValue) => {\n const innerWidthOriginal = 57;\n const effectiveInnerWidth = innerWidthOriginal * scaleValue;\n return (width - effectiveInnerWidth) / 2;\n};\n"],"file":"utils.js"}