@obitrain/charts 0.9.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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +125 -0
  3. package/lib/commonjs/Charts/BottomAxis/AxisLine.js +38 -0
  4. package/lib/commonjs/Charts/BottomAxis/AxisLine.js.map +1 -0
  5. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js +45 -0
  6. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js.map +1 -0
  7. package/lib/commonjs/Charts/BottomAxis/Tick.js +43 -0
  8. package/lib/commonjs/Charts/BottomAxis/Tick.js.map +1 -0
  9. package/lib/commonjs/Charts/BottomAxis/index.js +27 -0
  10. package/lib/commonjs/Charts/BottomAxis/index.js.map +1 -0
  11. package/lib/commonjs/Charts/Cursor.js +50 -0
  12. package/lib/commonjs/Charts/Cursor.js.map +1 -0
  13. package/lib/commonjs/Charts/Linechart/index.js +55 -0
  14. package/lib/commonjs/Charts/Linechart/index.js.map +1 -0
  15. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js +43 -0
  16. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js.map +1 -0
  17. package/lib/commonjs/Charts/ZoomableLinechart/index.js +43 -0
  18. package/lib/commonjs/Charts/ZoomableLinechart/index.js.map +1 -0
  19. package/lib/commonjs/Charts/gesture.js +185 -0
  20. package/lib/commonjs/Charts/gesture.js.map +1 -0
  21. package/lib/commonjs/Charts/graphUtils.js +131 -0
  22. package/lib/commonjs/Charts/graphUtils.js.map +1 -0
  23. package/lib/commonjs/Charts/index.js +151 -0
  24. package/lib/commonjs/Charts/index.js.map +1 -0
  25. package/lib/commonjs/Charts/maths.js +195 -0
  26. package/lib/commonjs/Charts/maths.js.map +1 -0
  27. package/lib/commonjs/Charts/types.js +6 -0
  28. package/lib/commonjs/Charts/types.js.map +1 -0
  29. package/lib/commonjs/dateUtils.js +151 -0
  30. package/lib/commonjs/dateUtils.js.map +1 -0
  31. package/lib/commonjs/index.js +39 -0
  32. package/lib/commonjs/index.js.map +1 -0
  33. package/lib/commonjs/package.json +1 -0
  34. package/lib/commonjs/textUtils.js +21 -0
  35. package/lib/commonjs/textUtils.js.map +1 -0
  36. package/lib/module/Charts/BottomAxis/AxisLine.js +34 -0
  37. package/lib/module/Charts/BottomAxis/AxisLine.js.map +1 -0
  38. package/lib/module/Charts/BottomAxis/BottomAxis.js +40 -0
  39. package/lib/module/Charts/BottomAxis/BottomAxis.js.map +1 -0
  40. package/lib/module/Charts/BottomAxis/Tick.js +37 -0
  41. package/lib/module/Charts/BottomAxis/Tick.js.map +1 -0
  42. package/lib/module/Charts/BottomAxis/index.js +6 -0
  43. package/lib/module/Charts/BottomAxis/index.js.map +1 -0
  44. package/lib/module/Charts/Cursor.js +46 -0
  45. package/lib/module/Charts/Cursor.js.map +1 -0
  46. package/lib/module/Charts/Linechart/index.js +50 -0
  47. package/lib/module/Charts/Linechart/index.js.map +1 -0
  48. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js +39 -0
  49. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js.map +1 -0
  50. package/lib/module/Charts/ZoomableLinechart/index.js +33 -0
  51. package/lib/module/Charts/ZoomableLinechart/index.js.map +1 -0
  52. package/lib/module/Charts/gesture.js +176 -0
  53. package/lib/module/Charts/gesture.js.map +1 -0
  54. package/lib/module/Charts/graphUtils.js +121 -0
  55. package/lib/module/Charts/graphUtils.js.map +1 -0
  56. package/lib/module/Charts/index.js +10 -0
  57. package/lib/module/Charts/index.js.map +1 -0
  58. package/lib/module/Charts/maths.js +187 -0
  59. package/lib/module/Charts/maths.js.map +1 -0
  60. package/lib/module/Charts/types.js +4 -0
  61. package/lib/module/Charts/types.js.map +1 -0
  62. package/lib/module/dateUtils.js +142 -0
  63. package/lib/module/dateUtils.js.map +1 -0
  64. package/lib/module/index.js +6 -0
  65. package/lib/module/index.js.map +1 -0
  66. package/lib/module/textUtils.js +16 -0
  67. package/lib/module/textUtils.js.map +1 -0
  68. package/lib/typescript/src/Charts/BottomAxis/AxisLine.d.ts +15 -0
  69. package/lib/typescript/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -0
  70. package/lib/typescript/src/Charts/BottomAxis/BottomAxis.d.ts +17 -0
  71. package/lib/typescript/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -0
  72. package/lib/typescript/src/Charts/BottomAxis/Tick.d.ts +14 -0
  73. package/lib/typescript/src/Charts/BottomAxis/Tick.d.ts.map +1 -0
  74. package/lib/typescript/src/Charts/BottomAxis/index.d.ts +4 -0
  75. package/lib/typescript/src/Charts/BottomAxis/index.d.ts.map +1 -0
  76. package/lib/typescript/src/Charts/Cursor.d.ts +14 -0
  77. package/lib/typescript/src/Charts/Cursor.d.ts.map +1 -0
  78. package/lib/typescript/src/Charts/Linechart/index.d.ts +25 -0
  79. package/lib/typescript/src/Charts/Linechart/index.d.ts.map +1 -0
  80. package/lib/typescript/src/Charts/ZoomableLinechart/ScalablePath.d.ts +14 -0
  81. package/lib/typescript/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -0
  82. package/lib/typescript/src/Charts/ZoomableLinechart/index.d.ts +23 -0
  83. package/lib/typescript/src/Charts/ZoomableLinechart/index.d.ts.map +1 -0
  84. package/lib/typescript/src/Charts/gesture.d.ts +54 -0
  85. package/lib/typescript/src/Charts/gesture.d.ts.map +1 -0
  86. package/lib/typescript/src/Charts/graphUtils.d.ts +43 -0
  87. package/lib/typescript/src/Charts/graphUtils.d.ts.map +1 -0
  88. package/lib/typescript/src/Charts/index.d.ts +14 -0
  89. package/lib/typescript/src/Charts/index.d.ts.map +1 -0
  90. package/lib/typescript/src/Charts/maths.d.ts +19 -0
  91. package/lib/typescript/src/Charts/maths.d.ts.map +1 -0
  92. package/lib/typescript/src/Charts/types.d.ts +14 -0
  93. package/lib/typescript/src/Charts/types.d.ts.map +1 -0
  94. package/lib/typescript/src/dateUtils.d.ts +37 -0
  95. package/lib/typescript/src/dateUtils.d.ts.map +1 -0
  96. package/lib/typescript/src/index.d.ts +5 -0
  97. package/lib/typescript/src/index.d.ts.map +1 -0
  98. package/lib/typescript/src/textUtils.d.ts +3 -0
  99. package/lib/typescript/src/textUtils.d.ts.map +1 -0
  100. package/package.json +226 -0
  101. package/src/Charts/BottomAxis/AxisLine.tsx +40 -0
  102. package/src/Charts/BottomAxis/BottomAxis.tsx +41 -0
  103. package/src/Charts/BottomAxis/Tick.tsx +54 -0
  104. package/src/Charts/BottomAxis/index.tsx +3 -0
  105. package/src/Charts/Cursor.tsx +51 -0
  106. package/src/Charts/Linechart/index.tsx +79 -0
  107. package/src/Charts/ZoomableLinechart/ScalablePath.tsx +49 -0
  108. package/src/Charts/ZoomableLinechart/index.tsx +47 -0
  109. package/src/Charts/gesture.ts +254 -0
  110. package/src/Charts/graphUtils.ts +198 -0
  111. package/src/Charts/index.tsx +32 -0
  112. package/src/Charts/maths.ts +245 -0
  113. package/src/Charts/types.ts +16 -0
  114. package/src/dateUtils.ts +163 -0
  115. package/src/index.tsx +4 -0
  116. package/src/textUtils.ts +21 -0
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectCurve = exports.normalize = exports.magnitude = exports.getYForX = exports.cubicBezierYForX = exports.commandsToBezier = void 0;
7
+ var _reactNativeSkia = require("@shopify/react-native-skia");
8
+ // code from William Candillon
9
+
10
+ const round = (value, precision = 0) => {
11
+ 'worklet';
12
+
13
+ const p = Math.pow(10, precision);
14
+ return Math.round(value * p) / p;
15
+ };
16
+
17
+ // https://stackoverflow.com/questions/27176423/function-to-solve-cubic-equation-analytically
18
+ const cuberoot = x => {
19
+ 'worklet';
20
+
21
+ const y = Math.pow(Math.abs(x), 1 / 3);
22
+ return x < 0 ? -y : y;
23
+ };
24
+ const solveCubic = (a, b, c, d) => {
25
+ 'worklet';
26
+
27
+ if (Math.abs(a) < 1e-8) {
28
+ // Quadratic case, ax^2+bx+c=0
29
+ a = b;
30
+ b = c;
31
+ c = d;
32
+ if (Math.abs(a) < 1e-8) {
33
+ // Linear case, ax+b=0
34
+ a = b;
35
+ b = c;
36
+ if (Math.abs(a) < 1e-8) {
37
+ // Degenerate case
38
+ return [];
39
+ }
40
+ return [-b / a];
41
+ }
42
+ const D = b * b - 4 * a * c;
43
+ if (Math.abs(D) < 1e-8) return [-b / (2 * a)];
44
+ if (D > 0) return [(-b + Math.sqrt(D)) / (2 * a), (-b - Math.sqrt(D)) / (2 * a)];
45
+ return [];
46
+ }
47
+
48
+ // Convert to depressed cubic t^3+pt+q = 0 (subst x = t - b/3a)
49
+ const p = (3 * a * c - b * b) / (3 * a * a);
50
+ const q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);
51
+ let roots = [];
52
+ if (Math.abs(p) < 1e-8) {
53
+ // p = 0 -> t^3 = -q -> t = -q^1/3
54
+ roots = [cuberoot(-q)];
55
+ } else if (Math.abs(q) < 1e-8) {
56
+ // q = 0 -> t^3 + pt = 0 -> t(t^2+p)=0
57
+ roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : []);
58
+ } else {
59
+ const D = q * q / 4 + p * p * p / 27;
60
+ if (Math.abs(D) < 1e-8) {
61
+ // D = 0 -> two roots
62
+ roots = [-1.5 * q / p, 3 * q / p];
63
+ } else if (D > 0) {
64
+ // Only one real root
65
+ const u = cuberoot(-q / 2 - Math.sqrt(D));
66
+ roots = [u - p / (3 * u)];
67
+ } else {
68
+ // D < 0, three roots, but needs to use complex numbers/trigonometric solution
69
+ const u = 2 * Math.sqrt(-p / 3);
70
+ const t = Math.acos(3 * q / p / u) / 3; // D < 0 implies p < 0 and acos argument in [-1..1]
71
+ const k = 2 * Math.PI / 3;
72
+ roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)];
73
+ }
74
+ }
75
+
76
+ // Convert back from depressed cubic
77
+ for (let i = 0; i < roots.length; i++) roots[i] -= b / (3 * a);
78
+ return roots;
79
+ };
80
+
81
+ // const cubicBezier = (
82
+ // t: number,
83
+ // from: number,
84
+ // c1: number,
85
+ // c2: number,
86
+ // to: number
87
+ // ): number => {
88
+ // 'worklet';
89
+
90
+ // const term = 1 - t;
91
+ // const a = 1 * term ** 3 * t ** 0 * from;
92
+ // const b = 3 * term ** 2 * t ** 1 * c1;
93
+ // const c = 3 * term ** 1 * t ** 2 * c2;
94
+ // const d = 1 * term ** 0 * t ** 3 * to;
95
+ // return a + b + c + d;
96
+ // };
97
+
98
+ const cubicSolve = function (t, p0, p1, p2, p3) {
99
+ 'worklet';
100
+
101
+ return (1 - t) * (1 - t) * (1 - t) * p0 + 3 * (1 - t) * (1 - t) * t * p1 + 3 * (1 - t) * t * t * p2 + t * t * t * p3;
102
+ };
103
+ const cubicBezierYForX = (x, a, b, c, d, precision = 2) => {
104
+ 'worklet';
105
+
106
+ const pa = -a.x + 3 * b.x - 3 * c.x + d.x;
107
+ const pb = 3 * a.x - 6 * b.x + 3 * c.x;
108
+ const pc = -3 * a.x + 3 * b.x;
109
+ const pd = a.x - x;
110
+ const ts = solveCubic(pa, pb, pc, pd).map(root => round(root, precision)).filter(root => root >= 0 && root <= 1);
111
+ const t = ts[0];
112
+ if (t == null) return 0;
113
+ // return cubicBezier(t, a.y, b.y, c.y, d.y);
114
+ return cubicSolve(t, a.y, b.y, c.y, d.y);
115
+ };
116
+ exports.cubicBezierYForX = cubicBezierYForX;
117
+ const selectCurve = (cmds, x) => {
118
+ 'worklet';
119
+
120
+ let from = (0, _reactNativeSkia.vec)(0, 0);
121
+ for (let i = 0; i < cmds.length; i++) {
122
+ const cmd = cmds[i];
123
+ if (cmd == null) {
124
+ return undefined;
125
+ }
126
+ if (cmd[0] === _reactNativeSkia.PathVerb.Move) {
127
+ from = (0, _reactNativeSkia.vec)(cmd[1], cmd[2]);
128
+ } else if (cmd[0] === _reactNativeSkia.PathVerb.Cubic) {
129
+ const c1 = (0, _reactNativeSkia.vec)(cmd[1], cmd[2]);
130
+ const c2 = (0, _reactNativeSkia.vec)(cmd[3], cmd[4]);
131
+ const to = (0, _reactNativeSkia.vec)(cmd[5], cmd[6]);
132
+ if (x >= from.x && x <= to.x) {
133
+ return {
134
+ from,
135
+ c1,
136
+ c2,
137
+ to
138
+ };
139
+ }
140
+ from = to;
141
+ }
142
+ }
143
+ return undefined;
144
+ };
145
+
146
+ /**
147
+ * Convert commands to cubic bezier
148
+ */
149
+ exports.selectCurve = selectCurve;
150
+ const commandsToBezier = cmds => {
151
+ 'worklet';
152
+
153
+ const normCmds = [];
154
+ let x = 0,
155
+ y = 0;
156
+ for (let i = 0; i < cmds.length; i++) {
157
+ const currCmd = cmds[i];
158
+ if (currCmd === undefined) throw new Error(`No command found at index ${i}`);
159
+ let normCmd;
160
+ const cmd = currCmd[0];
161
+ if (cmd === undefined) throw new Error('Got undefined command');
162
+ if (cmd === _reactNativeSkia.PathVerb.Line) {
163
+ normCmd = [_reactNativeSkia.PathVerb.Cubic, x, y, currCmd[1], currCmd[2], currCmd[1], currCmd[2]];
164
+ } else {
165
+ normCmd = currCmd;
166
+ }
167
+ x = normCmd[normCmd.length - 2];
168
+ y = normCmd[normCmd.length - 1];
169
+ normCmds.push(normCmd);
170
+ }
171
+ return normCmds;
172
+ };
173
+ exports.commandsToBezier = commandsToBezier;
174
+ const getYForX = (cmds, x, precision = 2) => {
175
+ 'worklet';
176
+
177
+ const cmdsNorm = commandsToBezier(cmds);
178
+ const c = selectCurve(cmdsNorm, x);
179
+ if (c == null) return undefined;
180
+ return cubicBezierYForX(x, c.from, c.c1, c.c2, c.to, precision);
181
+ };
182
+
183
+ // See Path/getPath2D
184
+ exports.getYForX = getYForX;
185
+ const magnitude = p => Math.sqrt(p.x * p.x + p.y * p.y);
186
+ exports.magnitude = magnitude;
187
+ const normalize = p => {
188
+ const m = magnitude(p);
189
+ return {
190
+ x: p.x / m,
191
+ y: p.y / m
192
+ };
193
+ };
194
+ exports.normalize = normalize;
195
+ //# sourceMappingURL=maths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeSkia","require","round","value","precision","p","Math","pow","cuberoot","x","y","abs","solveCubic","a","b","c","d","D","sqrt","q","roots","concat","u","t","acos","k","PI","cos","i","length","cubicSolve","p0","p1","p2","p3","cubicBezierYForX","pa","pb","pc","pd","ts","map","root","filter","exports","selectCurve","cmds","from","vec","cmd","undefined","PathVerb","Move","Cubic","c1","c2","to","commandsToBezier","normCmds","currCmd","Error","normCmd","Line","push","getYForX","cmdsNorm","magnitude","normalize","m"],"sourceRoot":"../../../src","sources":["Charts/maths.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["Charts/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDateBoundaries = getDateBoundaries;
7
+ exports.getMonthInterval = exports.getDateInterval = void 0;
8
+ exports.sampleDates = sampleDates;
9
+ exports.sampleDatesByRange = sampleDatesByRange;
10
+ const getMonthInterval = function (month, nbMonths) {
11
+ if (month <= 0) throw new Error('Months should start at 1');
12
+ return (month - month % nbMonths + 1).toString().padStart(2, '0');
13
+ };
14
+
15
+ /**
16
+ * Get the date interval based on the date range.
17
+ * For example, for the date 2021-01-01:
18
+ * - day: 2021-01-01
19
+ * - month: 2021-01
20
+ * - trimester: 2021-01
21
+ * - year: 2021
22
+ * @param date
23
+ * @param dateRange
24
+ * @returns
25
+ */
26
+ exports.getMonthInterval = getMonthInterval;
27
+ const getDateInterval = function (date, dateRange) {
28
+ const year = date.getFullYear();
29
+ const month = date.getMonth() + 1;
30
+ const day = date.getDate().toString().padStart(2, '0');
31
+ const monthStr = month.toString().padStart(2, '0');
32
+ switch (dateRange) {
33
+ case 'day':
34
+ return `${year}-${monthStr}-${day}`;
35
+ case 'month':
36
+ return `${year}-${monthStr}`;
37
+ case 'trimester':
38
+ return `${year}-${getMonthInterval(month, 3)}`;
39
+ case 'year':
40
+ return `${year}`;
41
+ }
42
+ throw new Error('Invalid date range');
43
+ };
44
+
45
+ //@ts-ignore
46
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
+ exports.getDateInterval = getDateInterval;
48
+ const fmtData = function (data, dateRange) {
49
+ const _dataFmt = new Map();
50
+ for (const [date, value] of data) {
51
+ const _dateStr = getDateInterval(date, dateRange);
52
+ if (!_dataFmt.has(_dateStr)) _dataFmt.set(_dateStr, [date.getTime(), value]);
53
+ }
54
+ return [..._dataFmt.values()];
55
+ };
56
+
57
+ /**
58
+ * Groups an array of Date objects by a specific time interval (day, month, trimester, year)
59
+ * and calculates the earliest and latest dates within each interval.
60
+ * For instance, given the dates [2021-01-01, 2021-01-25, 2021-03-01, 2021-10-01]:
61
+ * - month: { '2021-01': [2021-01-01, 2021-01-25],
62
+ * '2021-03': [2021-03-01, 2021-03-01],
63
+ '2021-10': [2021-10-01, 2021-10-01] }
64
+
65
+ * @param {Date[]} dates - An array of dates to group and find boundary dates for.
66
+ * @returns {Map<string, [Date, Date]>} - A map where each key represents an interval
67
+ * as a string (formatted according to the interval type, e.g., '2021', '2021-03', '2021-01-01'),
68
+ * and each value is a tuple containing the earliest and latest dates within that interval.
69
+ */
70
+ function getDateBoundaries(dates, dateRange) {
71
+ const ranges = new Map();
72
+ for (const date of dates) {
73
+ const _dateStr = getDateInterval(date, dateRange);
74
+ const _range = ranges.get(_dateStr);
75
+ if (!_range) ranges.set(_dateStr, [date, date]);else if (date > _range[1]) ranges.set(_dateStr, [_range[0], date]);
76
+ }
77
+ return ranges;
78
+ }
79
+ function sampleDates(dates, sampleSize, indexOffset = 0) {
80
+ if (sampleSize <= 0 || dates.length === 0) {
81
+ return {
82
+ dates: [],
83
+ indexes: []
84
+ };
85
+ }
86
+ if (sampleSize >= dates.length) {
87
+ return {
88
+ dates,
89
+ indexes: Array.from({
90
+ length: dates.length
91
+ }, (_, i) => indexOffset + i)
92
+ };
93
+ }
94
+
95
+ // Calculate total time span and interval
96
+ const firstItem = dates[0];
97
+ const lastItem = dates[dates.length - 1];
98
+ const startTime = firstItem.getTime();
99
+ const endTime = lastItem.getTime();
100
+ const timeSpan = endTime - startTime;
101
+ const timeInterval = timeSpan / (sampleSize - 1);
102
+ const sampledDates = [firstItem]; // Always include the first date
103
+ const sampledIndexes = [0];
104
+ let nextTime = startTime + timeInterval;
105
+
106
+ // Select dates closest to each time interval
107
+ for (let i = 1; i < sampleSize - 1; i++) {
108
+ let closestDate = dates[0];
109
+ let minDiff = Math.abs(startTime - nextTime);
110
+ let closestIndex = 0;
111
+ for (let j = 1; j < dates.length; j++) {
112
+ const diff = Math.abs(dates[j].getTime() - nextTime);
113
+ if (diff < minDiff) {
114
+ closestDate = dates[j];
115
+ closestIndex = j;
116
+ minDiff = diff;
117
+ }
118
+ }
119
+ sampledDates.push(closestDate);
120
+ sampledIndexes.push(closestIndex);
121
+ nextTime += timeInterval;
122
+ }
123
+ sampledDates.push(lastItem); // Always include the last date
124
+ sampledIndexes.push(dates.length - 1);
125
+ return {
126
+ dates: sampledDates,
127
+ indexes: sampledIndexes.map(x => indexOffset + x)
128
+ };
129
+ }
130
+ function sampleDatesByRange(dates, sampleSize, dateRange) {
131
+ const boundaries = getDateBoundaries(dates, dateRange);
132
+ const rangedData = new Map();
133
+ for (let i = 0; i < dates.length; i++) {
134
+ let date = dates[i];
135
+ for (const [key, [minDate, maxDate]] of boundaries) {
136
+ if (date >= minDate && date <= maxDate) {
137
+ if (!rangedData.has(key)) rangedData.set(key, []);
138
+ rangedData.get(key).push(date);
139
+ break;
140
+ }
141
+ }
142
+ }
143
+ const sampledData = new Map();
144
+ let offset = 0;
145
+ for (const [key, value] of rangedData) {
146
+ sampledData.set(key, sampleDates(value, sampleSize, offset));
147
+ offset += value.length;
148
+ }
149
+ return sampledData;
150
+ }
151
+ //# sourceMappingURL=dateUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getMonthInterval","month","nbMonths","Error","toString","padStart","exports","getDateInterval","date","dateRange","year","getFullYear","getMonth","day","getDate","monthStr","fmtData","data","_dataFmt","Map","value","_dateStr","has","set","getTime","values","getDateBoundaries","dates","ranges","_range","get","sampleDates","sampleSize","indexOffset","length","indexes","Array","from","_","i","firstItem","lastItem","startTime","endTime","timeSpan","timeInterval","sampledDates","sampledIndexes","nextTime","closestDate","minDiff","Math","abs","closestIndex","j","diff","push","map","x","sampleDatesByRange","boundaries","rangedData","key","minDate","maxDate","sampledData","offset"],"sourceRoot":"../../src","sources":["dateUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _Charts = require("./Charts");
7
+ Object.keys(_Charts).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Charts[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _Charts[key];
14
+ }
15
+ });
16
+ });
17
+ var _dateUtils = require("./dateUtils");
18
+ Object.keys(_dateUtils).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _dateUtils[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _dateUtils[key];
25
+ }
26
+ });
27
+ });
28
+ var _textUtils = require("./textUtils");
29
+ Object.keys(_textUtils).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _textUtils[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _textUtils[key];
36
+ }
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Charts","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dateUtils","_textUtils"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSharedNumberToStr = void 0;
7
+ var _reactNativeReanimated = require("react-native-reanimated");
8
+ const textToString = function (value) {
9
+ 'worklet';
10
+
11
+ return value.toFixed(0).toString();
12
+ };
13
+ const useSharedNumberToStr = function (initValue = 0) {
14
+ const value = (0, _reactNativeReanimated.useSharedValue)(initValue);
15
+ const valueStr = (0, _reactNativeReanimated.useDerivedValue)(() => {
16
+ return textToString(value.value);
17
+ }, [value]);
18
+ return [value, valueStr];
19
+ };
20
+ exports.useSharedNumberToStr = useSharedNumberToStr;
21
+ //# sourceMappingURL=textUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeReanimated","require","textToString","value","toFixed","toString","useSharedNumberToStr","initValue","useSharedValue","valueStr","useDerivedValue","exports"],"sourceRoot":"../../src","sources":["textUtils.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAMA,MAAMC,YAAY,GAAG,SAAAA,CAAUC,KAAa,EAAE;EAC5C,SAAS;;EACT,OAAOA,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAEM,MAAMC,oBAAoB,GAAG,SAAAA,CAClCC,SAAiB,GAAG,CAAC,EACuB;EAC5C,MAAMJ,KAAK,GAAG,IAAAK,qCAAc,EAASD,SAAS,CAAC;EAC/C,MAAME,QAAQ,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACrC,OAAOR,YAAY,CAACC,KAAK,CAACA,KAAK,CAAC;EAClC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAO,CAACA,KAAK,EAAEM,QAAQ,CAAC;AAC1B,CAAC;AAACE,OAAA,CAAAL,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import { Line, vec } from '@shopify/react-native-skia';
4
+ import { StyleSheet } from 'react-native';
5
+ import { useDerivedValue } from 'react-native-reanimated';
6
+ import { getPositionWl } from '../gesture';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const AxisLine = function (props) {
9
+ const {
10
+ width,
11
+ focalX,
12
+ scale,
13
+ offsetX,
14
+ offsetY = 0,
15
+ strokeWidth = StyleSheet.hairlineWidth,
16
+ color = 'black'
17
+ } = props;
18
+ const p1 = useDerivedValue(() => {
19
+ const p1X = getPositionWl(0, focalX.value, scale.value, offsetX.value);
20
+ return vec(p1X, offsetY);
21
+ }, []);
22
+ const p2 = useDerivedValue(() => {
23
+ const p1X = getPositionWl(width, focalX.value, scale.value, offsetX.value);
24
+ return vec(p1X, offsetY);
25
+ }, [width]);
26
+ return /*#__PURE__*/_jsx(Line, {
27
+ p1,
28
+ p2,
29
+ color,
30
+ strokeWidth
31
+ });
32
+ };
33
+ export { AxisLine };
34
+ //# sourceMappingURL=AxisLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Line","vec","StyleSheet","useDerivedValue","getPositionWl","jsx","_jsx","AxisLine","props","width","focalX","scale","offsetX","offsetY","strokeWidth","hairlineWidth","color","p1","p1X","value","p2"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/AxisLine.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,GAAG,QAAoB,4BAA4B;AAElE,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY3C,MAAMC,QAA2B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACnD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG,CAAC;IACXC,WAAW,GAAGZ,UAAU,CAACa,aAAa;IACtCC,KAAK,GAAG;EACV,CAAC,GAAGR,KAAK;EACT,MAAMS,EAAE,GAAGd,eAAe,CAAC,MAAM;IAC/B,MAAMe,GAAG,GAAGd,aAAa,CAAC,CAAC,EAAEM,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IACtE,OAAOlB,GAAG,CAACiB,GAAG,EAAEL,OAAO,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMO,EAAE,GAAGjB,eAAe,CAAC,MAAM;IAC/B,MAAMe,GAAG,GAAGd,aAAa,CAACK,KAAK,EAAEC,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IAC1E,OAAOlB,GAAG,CAACiB,GAAG,EAAEL,OAAO,CAAC;EAC1B,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,oBAAOH,IAAA,CAACN,IAAI;IAAOiB,EAAE;IAAEG,EAAE;IAAEJ,KAAK;IAAEF;EAAW,CAAK,CAAC;AACrD,CAAC;AAED,SAASP,QAAQ","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ // ChartUtilsScreen.tsx
4
+ import { Canvas } from '@shopify/react-native-skia';
5
+ import { AxisLine } from './AxisLine';
6
+ import { Tick } from './Tick';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const BottomAxis = function (props) {
9
+ const {
10
+ labels,
11
+ scale,
12
+ focalX,
13
+ offsetX,
14
+ style,
15
+ width,
16
+ font
17
+ } = props;
18
+ const offsetY = props.offsetY ?? 0;
19
+ const tickInterval = width / (labels.length - 1);
20
+ return /*#__PURE__*/_jsxs(Canvas, {
21
+ style: style,
22
+ children: [/*#__PURE__*/_jsx(AxisLine, {
23
+ width,
24
+ offsetY,
25
+ focalX,
26
+ scale,
27
+ offsetX
28
+ }), labels.map((_label, i) => /*#__PURE__*/_jsx(Tick, {
29
+ label: _label,
30
+ initPosition: tickInterval * i,
31
+ offsetX,
32
+ offsetY,
33
+ focalX,
34
+ scale,
35
+ font
36
+ }, i))]
37
+ });
38
+ };
39
+ export { BottomAxis };
40
+ //# sourceMappingURL=BottomAxis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Canvas","AxisLine","Tick","jsx","_jsx","jsxs","_jsxs","BottomAxis","props","labels","scale","focalX","offsetX","style","width","font","offsetY","tickInterval","length","children","map","_label","i","label","initPosition"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/BottomAxis.tsx"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAqB,4BAA4B;AAIhE,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,IAAI,QAAQ,QAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc9B,MAAMC,UAA+B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACvD,MAAM;IAAEC,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGP,KAAK;EACpE,MAAMQ,OAAO,GAAGR,KAAK,CAACQ,OAAO,IAAI,CAAC;EAClC,MAAMC,YAAY,GAAGH,KAAK,IAAIL,MAAM,CAACS,MAAM,GAAG,CAAC,CAAC;EAEhD,oBACEZ,KAAA,CAACN,MAAM;IAACa,KAAK,EAAEA,KAAM;IAAAM,QAAA,gBACnBf,IAAA,CAACH,QAAQ;MAAOa,KAAK;MAAEE,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEE;IAAO,CAAK,CAAC,EAC3DH,MAAM,CAACW,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,kBACpBlB,IAAA,CAACF,IAAI;MAEHqB,KAAK,EAAEF,MAAO;MACdG,YAAY,EAAEP,YAAY,GAAGK,CAAE;MACzBV,OAAO;MAAEI,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEK;IAAI,GAHtCO,CAIN,CACF,CAAC;EAAA,CACI,CAAC;AAEb,CAAC;AAED,SAASf,UAAU","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import { Group, Line, Text, vec } from '@shopify/react-native-skia';
4
+ import React from 'react';
5
+ import { useDerivedValue } from 'react-native-reanimated';
6
+ import { getPositionWl } from '../gesture';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export const Tick = props => {
9
+ const {
10
+ label,
11
+ scale,
12
+ focalX,
13
+ offsetX,
14
+ initPosition,
15
+ font
16
+ } = props;
17
+ const offsetY = props.offsetY ?? 0;
18
+ const transform = useDerivedValue(() => [{
19
+ translateX: getPositionWl(initPosition, focalX.value, scale.value, offsetX.value)
20
+ }], [initPosition, offsetX]);
21
+ const width = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
22
+ return /*#__PURE__*/_jsxs(Group, {
23
+ transform: transform,
24
+ children: [/*#__PURE__*/_jsx(Line, {
25
+ color: "black",
26
+ p1: vec(0, offsetY),
27
+ p2: vec(0, offsetY + 10)
28
+ }), /*#__PURE__*/_jsx(Text, {
29
+ text: label,
30
+ color: "black",
31
+ x: -width / 2,
32
+ y: offsetY + 23,
33
+ font: font
34
+ })]
35
+ });
36
+ };
37
+ //# sourceMappingURL=Tick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Group","Line","Text","vec","React","useDerivedValue","getPositionWl","jsx","_jsx","jsxs","_jsxs","Tick","props","label","scale","focalX","offsetX","initPosition","font","offsetY","transform","translateX","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","children","color","p1","p2","text","x","y"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;AAAA,SACEA,KAAK,EACLC,IAAI,EACJC,IAAI,EACJC,GAAG,QAEE,4BAA4B;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAY3C,OAAO,MAAMC,IAAyB,GAAIC,KAAK,IAAK;EAClD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,YAAY;IAAEC;EAAK,CAAC,GAAGN,KAAK;EACnE,MAAMO,OAAO,GAAGP,KAAK,CAACO,OAAO,IAAI,CAAC;EAClC,MAAMC,SAAS,GAAGf,eAAe,CAC/B,MAAM,CACJ;IACEgB,UAAU,EAAEf,aAAa,CACvBW,YAAY,EACZF,MAAM,CAACO,KAAK,EACZR,KAAK,CAACQ,KAAK,EACXN,OAAO,CAACM,KACV;EACF,CAAC,CACF,EACD,CAACL,YAAY,EAAED,OAAO,CACxB,CAAC;EACD,MAAMO,KAAK,GAAGL,IAAI,CACfM,cAAc,CAACN,IAAI,CAACO,WAAW,CAACZ,KAAK,CAAC,CAAC,CACvCa,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAE7B,oBACElB,KAAA,CAACV,KAAK;IAACoB,SAAS,EAAEA,SAAU;IAAAS,QAAA,gBAC1BrB,IAAA,CAACP,IAAI;MAAC6B,KAAK,EAAC,OAAO;MAACC,EAAE,EAAE5B,GAAG,CAAC,CAAC,EAAEgB,OAAO,CAAE;MAACa,EAAE,EAAE7B,GAAG,CAAC,CAAC,EAAEgB,OAAO,GAAG,EAAE;IAAE,CAAE,CAAC,eACrEX,IAAA,CAACN,IAAI;MACH+B,IAAI,EAAEpB,KAAM;MACZiB,KAAK,EAAC,OAAO;MACbI,CAAC,EAAE,CAACX,KAAK,GAAG,CAAE;MACdY,CAAC,EAAEhB,OAAO,GAAG,EAAG;MAChBD,IAAI,EAAEA;IAAK,CACZ,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { AxisLine } from './AxisLine';
4
+ export { BottomAxis } from './BottomAxis';
5
+ export { Tick } from './Tick';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AxisLine","BottomAxis","Tick"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAA4B,YAAY;AACzD,SAASC,UAAU,QAA8B,cAAc;AAC/D,SAASC,IAAI,QAAwB,QAAQ","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import { Circle } from '@shopify/react-native-skia';
4
+ import { useDerivedValue } from 'react-native-reanimated';
5
+ import { getYForX } from './maths';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const CURSOR_SIZE = 10;
8
+ const Cursor = function ({
9
+ commands,
10
+ positionX,
11
+ color,
12
+ currentValue,
13
+ translateY,
14
+ size = CURSOR_SIZE
15
+ }) {
16
+ if (currentValue !== undefined && translateY !== undefined) {
17
+ console.warn('Current value as no effect when translateY is set');
18
+ }
19
+ const _translateY = translateY ? translateY :
20
+ // eslint-disable-next-line react-hooks/rules-of-hooks
21
+ useDerivedValue(() => {
22
+ const _commands = commands?.value;
23
+ if (_commands === undefined) {
24
+ return 0;
25
+ }
26
+ const _value = getYForX(_commands, positionX.value) ?? 0;
27
+ if (currentValue !== undefined) {
28
+ currentValue.value = _value;
29
+ }
30
+ return _value;
31
+ });
32
+ const transform = useDerivedValue(() => [{
33
+ translateX: positionX.value
34
+ }, {
35
+ translateY: _translateY.value ?? 0
36
+ }]);
37
+ return /*#__PURE__*/_jsx(Circle, {
38
+ transform: transform,
39
+ cx: 0,
40
+ cy: 0,
41
+ r: size,
42
+ color: color
43
+ });
44
+ };
45
+ export { Cursor };
46
+ //# sourceMappingURL=Cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Circle","useDerivedValue","getYForX","jsx","_jsx","CURSOR_SIZE","Cursor","commands","positionX","color","currentValue","translateY","size","undefined","console","warn","_translateY","_commands","value","_value","transform","translateX","cx","cy","r"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAA0B,4BAA4B;AAErE,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,QAAQ,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnC,MAAMC,WAAW,GAAG,EAAE;AAWtB,MAAMC,MAAuB,GAAG,SAAAA,CAAU;EACxCC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,YAAY;EACZC,UAAU;EACVC,IAAI,GAAGP;AACT,CAAC,EAAE;EACD,IAAIK,YAAY,KAAKG,SAAS,IAAIF,UAAU,KAAKE,SAAS,EAAE;IAC1DC,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;EACnE;EAEA,MAAMC,WAAW,GAAGL,UAAU,GAC1BA,UAAU;EACV;EACAV,eAAe,CAAC,MAAM;IACpB,MAAMgB,SAAS,GAAGV,QAAQ,EAAEW,KAAK;IACjC,IAAID,SAAS,KAAKJ,SAAS,EAAE;MAC3B,OAAO,CAAC;IACV;IACA,MAAMM,MAAM,GAAGjB,QAAQ,CAACe,SAAS,EAAET,SAAS,CAACU,KAAK,CAAC,IAAI,CAAC;IACxD,IAAIR,YAAY,KAAKG,SAAS,EAAE;MAC9BH,YAAY,CAACQ,KAAK,GAAGC,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEN,MAAMC,SAAS,GAAGnB,eAAe,CAAC,MAAM,CACtC;IAAEoB,UAAU,EAAEb,SAAS,CAACU;EAAM,CAAC,EAC/B;IAAEP,UAAU,EAAEK,WAAW,CAACE,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBAAOd,IAAA,CAACJ,MAAM;IAACoB,SAAS,EAAEA,SAAU;IAACE,EAAE,EAAE,CAAE;IAACC,EAAE,EAAE,CAAE;IAACC,CAAC,EAAEZ,IAAK;IAACH,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9E,CAAC;AAED,SAASH,MAAM","ignoreList":[]}