@rowsncolumns/charts 28.1.7 → 28.1.10

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 (61) hide show
  1. package/dist/cjs/basic-chart/basic-chart.d.ts.map +1 -1
  2. package/dist/cjs/basic-chart/basic-chart.js +525 -419
  3. package/dist/cjs/basic-chart/helpers.d.ts.map +1 -1
  4. package/dist/cjs/basic-chart/helpers.js +2 -0
  5. package/dist/cjs/plotly/basic-chart/basic-chart.d.ts.map +1 -1
  6. package/dist/cjs/plotly/basic-chart/basic-chart.js +351 -192
  7. package/dist/cjs/plotly/basic-chart/helpers.d.ts.map +1 -1
  8. package/dist/cjs/plotly/basic-chart/helpers.js +2 -0
  9. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  10. package/dist/cjs/utils/bubble.d.ts +34 -1
  11. package/dist/cjs/utils/bubble.d.ts.map +1 -1
  12. package/dist/cjs/utils/bubble.js +39 -13
  13. package/dist/cjs/utils/doughnut.d.ts +19 -0
  14. package/dist/cjs/utils/doughnut.d.ts.map +1 -0
  15. package/dist/cjs/utils/doughnut.js +28 -0
  16. package/dist/cjs/utils/echarts-overlays.d.ts +46 -0
  17. package/dist/cjs/utils/echarts-overlays.d.ts.map +1 -0
  18. package/dist/cjs/utils/echarts-overlays.js +134 -0
  19. package/dist/cjs/utils/hierarchy.d.ts +23 -1
  20. package/dist/cjs/utils/hierarchy.d.ts.map +1 -1
  21. package/dist/cjs/utils/hierarchy.js +179 -55
  22. package/dist/cjs/utils/overrides.d.ts +9 -0
  23. package/dist/cjs/utils/overrides.d.ts.map +1 -1
  24. package/dist/cjs/utils/overrides.js +18 -3
  25. package/dist/cjs/utils/radar.d.ts +31 -5
  26. package/dist/cjs/utils/radar.d.ts.map +1 -1
  27. package/dist/cjs/utils/radar.js +67 -27
  28. package/dist/cjs/utils/trendline.d.ts +7 -1
  29. package/dist/cjs/utils/trendline.d.ts.map +1 -1
  30. package/dist/cjs/utils/trendline.js +82 -18
  31. package/dist/esm/basic-chart/basic-chart.d.ts.map +1 -1
  32. package/dist/esm/basic-chart/basic-chart.js +376 -248
  33. package/dist/esm/basic-chart/helpers.d.ts.map +1 -1
  34. package/dist/esm/basic-chart/helpers.js +2 -0
  35. package/dist/esm/plotly/basic-chart/basic-chart.d.ts.map +1 -1
  36. package/dist/esm/plotly/basic-chart/basic-chart.js +279 -69
  37. package/dist/esm/plotly/basic-chart/helpers.d.ts.map +1 -1
  38. package/dist/esm/plotly/basic-chart/helpers.js +2 -0
  39. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  40. package/dist/esm/utils/bubble.d.ts +34 -1
  41. package/dist/esm/utils/bubble.d.ts.map +1 -1
  42. package/dist/esm/utils/bubble.js +35 -11
  43. package/dist/esm/utils/doughnut.d.ts +19 -0
  44. package/dist/esm/utils/doughnut.d.ts.map +1 -0
  45. package/dist/esm/utils/doughnut.js +21 -0
  46. package/dist/esm/utils/echarts-overlays.d.ts +46 -0
  47. package/dist/esm/utils/echarts-overlays.d.ts.map +1 -0
  48. package/dist/esm/utils/echarts-overlays.js +135 -0
  49. package/dist/esm/utils/hierarchy.d.ts +23 -1
  50. package/dist/esm/utils/hierarchy.d.ts.map +1 -1
  51. package/dist/esm/utils/hierarchy.js +168 -50
  52. package/dist/esm/utils/overrides.d.ts +9 -0
  53. package/dist/esm/utils/overrides.d.ts.map +1 -1
  54. package/dist/esm/utils/overrides.js +16 -2
  55. package/dist/esm/utils/radar.d.ts +31 -5
  56. package/dist/esm/utils/radar.d.ts.map +1 -1
  57. package/dist/esm/utils/radar.js +44 -16
  58. package/dist/esm/utils/trendline.d.ts +7 -1
  59. package/dist/esm/utils/trendline.d.ts.map +1 -1
  60. package/dist/esm/utils/trendline.js +67 -14
  61. package/package.json +4 -4
@@ -35,15 +35,25 @@ var isFiniteNum = function (v) {
35
35
  * position as x (the first category is x = 1, see the module comment).
36
36
  * Non-finite y-values are dropped (they cannot be fitted).
37
37
  */
38
- var toPairs = function (values) {
38
+ var toPairs = function (values, xValues) {
39
39
  var pairs = [];
40
40
  for (var i = 0; i < values.length; i++) {
41
41
  var y = values[i];
42
- if (isFiniteNum(y))
42
+ if (!isFiniteNum(y))
43
+ continue;
44
+ if (xValues) {
45
+ var x = xValues[i];
46
+ if (isFiniteNum(x))
47
+ pairs.push({ x: x, y: y });
48
+ }
49
+ else {
43
50
  pairs.push({ x: i + 1, y: y });
51
+ }
44
52
  }
45
53
  return pairs;
46
54
  };
55
+ /** Samples along a scatter trendline's x range: enough for the curved fits to read as curves. */
56
+ var XY_TRENDLINE_SAMPLES = 64;
47
57
  /** Compute R² between observed y and predicted f(x) over the fit pairs. */
48
58
  var rSquaredOf = function (pairs, predict) {
49
59
  var e_1, _a;
@@ -218,20 +228,29 @@ var fitPower = function (pairs) {
218
228
  * @param values Raw y-values; the 1-based category position is used as x
219
229
  * for the fit, the 0-based index is reported in the points.
220
230
  * @param spec Trendline parameters (type/order/period/forecast).
231
+ * @param xValues Scatter / bubble only — the series' real X values, index-
232
+ * aligned with `values`. The fit then runs on (x, y) pairs
233
+ * (a regression of Y on X, what Excel draws on an XY chart;
234
+ * the point index is wrong for unevenly spaced X), the
235
+ * forecast extends the X range by that many X units, and the
236
+ * points carry real X coordinates sampled across the range.
221
237
  */
222
- var computeTrendline = function (values, spec) {
223
- var _a, _b, _c, _d, _e;
238
+ var computeTrendline = function (values, spec, xValues) {
239
+ var e_4, _a;
240
+ var _b, _c, _d, _e, _f;
224
241
  if (spec === void 0) { spec = {}; }
225
- var pairs = toPairs(values);
242
+ var pairs = toPairs(values, xValues);
226
243
  if (pairs.length < 2)
227
244
  return null;
228
- var type = (_a = spec.type) !== null && _a !== void 0 ? _a : "linear";
229
- var forward = Math.max(0, Math.floor((_b = spec.forecastForward) !== null && _b !== void 0 ? _b : 0));
230
- var backward = Math.max(0, Math.floor((_c = spec.forecastBackward) !== null && _c !== void 0 ? _c : 0));
245
+ var type = (_b = spec.type) !== null && _b !== void 0 ? _b : "linear";
246
+ var forwardRaw = Math.max(0, (_c = spec.forecastForward) !== null && _c !== void 0 ? _c : 0);
247
+ var backwardRaw = Math.max(0, (_d = spec.forecastBackward) !== null && _d !== void 0 ? _d : 0);
248
+ var forward = xValues ? forwardRaw : Math.floor(forwardRaw);
249
+ var backward = xValues ? backwardRaw : Math.floor(backwardRaw);
231
250
  // Moving average is a smoothing of the observed values, not a fitted
232
251
  // function, so it is handled separately and ignores forecasting.
233
252
  if (type === "movingAvg") {
234
- var period = Math.max(2, Math.floor((_d = spec.period) !== null && _d !== void 0 ? _d : 2));
253
+ var period = Math.max(2, Math.floor((_e = spec.period) !== null && _e !== void 0 ? _e : 2));
235
254
  var points_1 = [];
236
255
  for (var i = period - 1; i < values.length; i++) {
237
256
  var sum = 0;
@@ -243,17 +262,61 @@ var computeTrendline = function (values, spec) {
243
262
  count++;
244
263
  }
245
264
  }
246
- if (count > 0)
265
+ if (count === 0)
266
+ continue;
267
+ if (xValues) {
268
+ var x = xValues[i];
269
+ if (isFiniteNum(x))
270
+ points_1.push({ x: x, y: sum / count });
271
+ }
272
+ else {
247
273
  points_1.push({ x: i, y: sum / count });
274
+ }
248
275
  }
276
+ if (xValues)
277
+ points_1.sort(function (a, b) { return a.x - b.x; });
249
278
  return { points: points_1, rSquared: null, equation: null };
250
279
  }
251
- // Fit domain is 1..n; a forecast of k periods extends it to 1−k / n+k.
252
- var xStart = 1 - backward;
253
- var xEnd = values.length + forward;
254
280
  var xs = [];
255
- for (var x = xStart; x <= xEnd; x++)
256
- xs.push(x);
281
+ if (xValues) {
282
+ // Sample the fitted curve across the data's X range, extended by the
283
+ // forecast in X units.
284
+ var minX = Infinity;
285
+ var maxX = -Infinity;
286
+ try {
287
+ for (var pairs_4 = tslib_1.__values(pairs), pairs_4_1 = pairs_4.next(); !pairs_4_1.done; pairs_4_1 = pairs_4.next()) {
288
+ var p = pairs_4_1.value;
289
+ if (p.x < minX)
290
+ minX = p.x;
291
+ if (p.x > maxX)
292
+ maxX = p.x;
293
+ }
294
+ }
295
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
296
+ finally {
297
+ try {
298
+ if (pairs_4_1 && !pairs_4_1.done && (_a = pairs_4.return)) _a.call(pairs_4);
299
+ }
300
+ finally { if (e_4) throw e_4.error; }
301
+ }
302
+ var xStart = minX - backward;
303
+ var xEnd = maxX + forward;
304
+ if (xEnd > xStart) {
305
+ for (var i = 0; i <= XY_TRENDLINE_SAMPLES; i++) {
306
+ xs.push(xStart + ((xEnd - xStart) * i) / XY_TRENDLINE_SAMPLES);
307
+ }
308
+ }
309
+ else {
310
+ xs.push(xStart);
311
+ }
312
+ }
313
+ else {
314
+ // Fit domain is 1..n; a forecast of k periods extends it to 1−k / n+k.
315
+ var xStart = 1 - backward;
316
+ var xEnd = values.length + forward;
317
+ for (var x = xStart; x <= xEnd; x++)
318
+ xs.push(x);
319
+ }
257
320
  var predict = null;
258
321
  var equation = null;
259
322
  switch (type) {
@@ -266,7 +329,7 @@ var computeTrendline = function (values, spec) {
266
329
  break;
267
330
  }
268
331
  case "poly": {
269
- var coeffs_1 = fitPoly(pairs, (_e = spec.order) !== null && _e !== void 0 ? _e : 2);
332
+ var coeffs_1 = fitPoly(pairs, (_f = spec.order) !== null && _f !== void 0 ? _f : 2);
270
333
  if (!coeffs_1)
271
334
  return null;
272
335
  predict = function (x) {
@@ -310,9 +373,10 @@ var computeTrendline = function (values, spec) {
310
373
  default:
311
374
  return null;
312
375
  }
313
- // Report the renderer-facing 0-based category index (see module comment).
376
+ // Report the renderer-facing 0-based category index (see module comment);
377
+ // an XY fit reports the real X it was sampled at.
314
378
  var points = xs
315
- .map(function (x) { return ({ x: x - 1, y: predict(x) }); })
379
+ .map(function (x) { return ({ x: xValues ? x : x - 1, y: predict(x) }); })
316
380
  .filter(function (p) { return Number.isFinite(p.y); });
317
381
  if (points.length < 2)
318
382
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../basic-chart/basic-chart.tsx"],"names":[],"mappings":"AAkEA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAmQrD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAqEnD,eAAO,MAAM,UAAU,GAAI,gPAkBxB,eAAe,sBA02GjB,CAAC"}
1
+ {"version":3,"file":"basic-chart.d.ts","sourceRoot":"","sources":["../../../basic-chart/basic-chart.tsx"],"names":[],"mappings":"AAkEA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAmRrD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAgFnD,eAAO,MAAM,UAAU,GAAI,gPAkBxB,eAAe,sBA4+GjB,CAAC"}