svelteplot 0.4.5-pr-208.4 → 0.4.5

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/dist/Mark.svelte +73 -87
  2. package/dist/Mark.svelte.d.ts +34 -37
  3. package/dist/helpers/colors.d.ts +1 -1
  4. package/dist/helpers/index.d.ts +2 -2
  5. package/dist/helpers/scales.d.ts +2 -2
  6. package/dist/helpers/scales.js +10 -21
  7. package/dist/helpers/typeChecks.d.ts +4 -4
  8. package/dist/marks/Area.svelte.d.ts +34 -37
  9. package/dist/marks/AreaX.svelte.d.ts +35 -38
  10. package/dist/marks/AreaY.svelte.d.ts +35 -38
  11. package/dist/marks/Arrow.svelte.d.ts +34 -37
  12. package/dist/marks/AxisX.svelte +2 -2
  13. package/dist/marks/AxisX.svelte.d.ts +36 -39
  14. package/dist/marks/AxisY.svelte.d.ts +35 -38
  15. package/dist/marks/BarX.svelte.d.ts +35 -38
  16. package/dist/marks/BarY.svelte.d.ts +34 -37
  17. package/dist/marks/BollingerX.svelte.d.ts +74 -2
  18. package/dist/marks/BollingerY.svelte.d.ts +74 -2
  19. package/dist/marks/Cell.svelte.d.ts +34 -37
  20. package/dist/marks/CustomMark.svelte.d.ts +81 -2
  21. package/dist/marks/DifferenceY.svelte.d.ts +67 -7
  22. package/dist/marks/Dot.svelte +1 -1
  23. package/dist/marks/Dot.svelte.d.ts +34 -37
  24. package/dist/marks/DotX.svelte.d.ts +34 -37
  25. package/dist/marks/DotY.svelte.d.ts +34 -37
  26. package/dist/marks/Geo.svelte.d.ts +34 -37
  27. package/dist/marks/GridX.svelte.d.ts +34 -37
  28. package/dist/marks/GridY.svelte.d.ts +34 -37
  29. package/dist/marks/Line.svelte.d.ts +36 -39
  30. package/dist/marks/LineX.svelte.d.ts +35 -38
  31. package/dist/marks/LineY.svelte.d.ts +35 -38
  32. package/dist/marks/Link.svelte.d.ts +34 -37
  33. package/dist/marks/Rect.svelte.d.ts +34 -37
  34. package/dist/marks/RuleX.svelte.d.ts +34 -37
  35. package/dist/marks/RuleY.svelte.d.ts +34 -37
  36. package/dist/marks/Spike.svelte.d.ts +34 -36
  37. package/dist/marks/Text.svelte.d.ts +34 -37
  38. package/dist/marks/TickX.svelte.d.ts +34 -37
  39. package/dist/marks/TickY.svelte.d.ts +34 -37
  40. package/dist/marks/Vector.svelte.d.ts +34 -37
  41. package/dist/marks/helpers/BaseAxisX.svelte +0 -10
  42. package/dist/marks/helpers/BaseAxisX.svelte.d.ts +0 -1
  43. package/dist/marks/helpers/RectPath.svelte.d.ts +63 -3
  44. package/dist/marks/helpers/Regression.svelte +1 -1
  45. package/dist/transforms/bollinger.d.ts +67 -1
  46. package/dist/transforms/group.d.ts +12 -4
  47. package/dist/transforms/interval.d.ts +124 -2
  48. package/dist/transforms/recordize.d.ts +4 -1
  49. package/dist/transforms/select.d.ts +434 -7
  50. package/dist/transforms/sort.d.ts +246 -3
  51. package/dist/transforms/stack.d.ts +23 -3
  52. package/dist/transforms/window.d.ts +130 -2
  53. package/dist/types/mark.d.ts +34 -37
  54. package/dist/types/scale.d.ts +0 -6
  55. package/package.json +128 -129
  56. package/dist/regression/exponential.d.ts +0 -17
  57. package/dist/regression/exponential.js +0 -56
  58. package/dist/regression/index.d.ts +0 -10
  59. package/dist/regression/index.js +0 -10
  60. package/dist/regression/linear.d.ts +0 -17
  61. package/dist/regression/linear.js +0 -59
  62. package/dist/regression/loess.d.ts +0 -14
  63. package/dist/regression/loess.js +0 -122
  64. package/dist/regression/logarithmic.d.ts +0 -20
  65. package/dist/regression/logarithmic.js +0 -60
  66. package/dist/regression/polynomial.d.ts +0 -21
  67. package/dist/regression/polynomial.js +0 -160
  68. package/dist/regression/power.d.ts +0 -18
  69. package/dist/regression/power.js +0 -56
  70. package/dist/regression/quadratic.d.ts +0 -19
  71. package/dist/regression/quadratic.js +0 -70
  72. package/dist/regression/types.d.ts +0 -4
  73. package/dist/regression/types.js +0 -1
  74. package/dist/regression/utils/determination.d.ts +0 -6
  75. package/dist/regression/utils/determination.js +0 -16
  76. package/dist/regression/utils/geometry.d.ts +0 -9
  77. package/dist/regression/utils/geometry.js +0 -12
  78. package/dist/regression/utils/interpose.d.ts +0 -6
  79. package/dist/regression/utils/interpose.js +0 -37
  80. package/dist/regression/utils/median.d.ts +0 -4
  81. package/dist/regression/utils/median.js +0 -8
  82. package/dist/regression/utils/ols.d.ts +0 -6
  83. package/dist/regression/utils/ols.js +0 -9
  84. package/dist/regression/utils/points.d.ts +0 -11
  85. package/dist/regression/utils/points.js +0 -45
  86. package/dist/transforms/dodge.d.ts +0 -17
  87. package/dist/transforms/dodge.js +0 -128
@@ -1,128 +0,0 @@
1
- import IntervalTree from 'interval-tree-1d';
2
- import { groupFacetsAndZ } from '../helpers/group';
3
- export function dodgeX(args, plotState) {
4
- if (!args.dodgeX)
5
- return args.data;
6
- let { anchor = 'left', padding = 1, r = args.dodgeX.r } = maybeAnchor(args.dodgeX);
7
- let anchorFunction;
8
- switch (`${anchor}`.toLowerCase()) {
9
- case 'left':
10
- anchorFunction = anchorXLeft;
11
- break;
12
- case 'right':
13
- anchorFunction = anchorXRight;
14
- break;
15
- case 'middle':
16
- anchorFunction = anchorXMiddle;
17
- break;
18
- default:
19
- throw new Error(`unknown dodge anchor: ${anchor}`);
20
- }
21
- return dodge('x', 'y', anchorFunction, Number(padding), r, args, plotState);
22
- }
23
- export function dodgeY(args, plotState) {
24
- if (!args.dodgeY)
25
- return args.data;
26
- let { anchor = 'bottom', padding = 1, r = args.dodgeY.r } = maybeAnchor(args.dodgeY);
27
- let anchorFunction;
28
- switch (`${anchor}`.toLowerCase()) {
29
- case 'top':
30
- anchorFunction = anchorYTop;
31
- break;
32
- case 'bottom':
33
- anchorFunction = anchorYBottom;
34
- break;
35
- case 'middle':
36
- anchorFunction = anchorYMiddle;
37
- break;
38
- default:
39
- throw new Error(`unknown dodge anchor: ${anchor}`);
40
- }
41
- return dodge('y', 'x', anchorFunction, Number(padding), r, args, plotState);
42
- }
43
- function dodge(y, x, anchor, padding, r, { data, ...channels }, plotState) {
44
- if (r != null && typeof r !== 'number') {
45
- // use the r channel
46
- // let { channels, sort, reverse } = options;
47
- // channels = maybeNamed(channels);
48
- // if (channels?.r === undefined)
49
- // options = { ...options, channels: { ...channels, r: { value: r, scale: 'r' } } };
50
- // if (sort === undefined && reverse === undefined) options.sort = { channel: '-r' };
51
- }
52
- const { fx, fy } = channels;
53
- let [ky, ty] = anchor(plotState);
54
- const compare = ky ? compareAscending : compareSymmetric;
55
- const cr = r !== undefined ? r : 3; // default radius if no r channel
56
- // group data by facets
57
- groupFacetsAndZ(data, { fx, fy }, (items) => {
58
- // apply dodge within each facet
59
- const tree = IntervalTree();
60
- const data = items.filter((d) => (typeof d.r !== 'number' || d.r >= 0) && isFinite(d[x]) && isFinite(d[y]));
61
- const intervals = new Float64Array(2 * data.length + 2);
62
- data.forEach((d, i) => {
63
- const ri = d.r ?? r ?? 3;
64
- const y0 = ky ? ri + padding : 0; // offset baseline for varying radius
65
- const l = d[x] - ri;
66
- const h = d[x] + ri;
67
- // The first two positions are 0 to test placing the dot on the baseline.
68
- let k = 2;
69
- // For any previously placed circles that may overlap this circle, compute
70
- // the y-positions that place this circle tangent to these other circles.
71
- // https://observablehq.com/@mbostock/circle-offset-along-line
72
- tree.queryInterval(l - padding, h + padding, ([, , j]) => {
73
- const yj = data[j][y] - y0;
74
- const dx = d[x] - data[j][x];
75
- const dr = padding + (channels.r ? d.r + data[j].r : 2 * cr);
76
- const dy = Math.sqrt(dr * dr - dx * dx);
77
- intervals[k++] = yj - dy;
78
- intervals[k++] = yj + dy;
79
- });
80
- // Find the best y-value where this circle can fit.
81
- let candidates = intervals.slice(0, k);
82
- if (ky)
83
- candidates = candidates.filter((y) => y >= 0);
84
- out: for (const diff of candidates.sort(compare)) {
85
- for (let j = 0; j < k; j += 2) {
86
- if (intervals[j] + 1e-6 < diff && diff < intervals[j + 1] - 1e-6) {
87
- continue out;
88
- }
89
- }
90
- d[y] = diff + y0;
91
- break;
92
- }
93
- // Insert the placed circle into the interval tree.
94
- tree.insert([l, h, i]);
95
- });
96
- if (!ky)
97
- ky = 1;
98
- data.forEach((d) => (d[y] = d[y] * ky + ty));
99
- });
100
- return data;
101
- }
102
- function maybeAnchor(anchor) {
103
- return typeof anchor === 'string' ? { anchor } : anchor;
104
- }
105
- function anchorXLeft({ options: { marginLeft } }) {
106
- return [1, marginLeft];
107
- }
108
- function anchorXRight({ facetWidth: width, options: { marginLeft } }) {
109
- return [-1, marginLeft + width];
110
- }
111
- function anchorXMiddle({ facetWidth: width, options: { marginLeft } }) {
112
- return [0, marginLeft + width / 2];
113
- }
114
- function anchorYTop({ options: { marginTop } }) {
115
- return [1, marginTop];
116
- }
117
- function anchorYBottom({ facetHeight: height }) {
118
- return [-1, height];
119
- }
120
- function anchorYMiddle({ facetHeight: height, options: { marginTop, marginBottom } }) {
121
- return [0, (marginTop + height) / 2];
122
- }
123
- function compareSymmetric(a, b) {
124
- return Math.abs(a) - Math.abs(b);
125
- }
126
- function compareAscending(a, b) {
127
- return a - b;
128
- }