@ledgerhq/lumen-ui-rnative-visualization 0.1.2 → 0.1.3
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.
- package/dist/module/lib/Components/Axis/Axis.types.js +2 -0
- package/dist/module/lib/Components/Axis/Axis.types.js.map +1 -0
- package/dist/module/lib/Components/Axis/XAxis/XAxis.js +81 -0
- package/dist/module/lib/Components/Axis/XAxis/XAxis.js.map +1 -0
- package/dist/module/lib/Components/Axis/XAxis/XAxis.test.js +121 -0
- package/dist/module/lib/Components/Axis/XAxis/XAxis.test.js.map +1 -0
- package/dist/module/lib/Components/Axis/XAxis/index.js +4 -0
- package/dist/module/lib/Components/Axis/XAxis/index.js.map +1 -0
- package/dist/module/lib/Components/Axis/XAxis/types.js +4 -0
- package/dist/module/lib/Components/Axis/XAxis/types.js.map +1 -0
- package/dist/module/lib/Components/Axis/YAxis/YAxis.js +81 -0
- package/dist/module/lib/Components/Axis/YAxis/YAxis.js.map +1 -0
- package/dist/module/lib/Components/Axis/YAxis/YAxis.test.js +121 -0
- package/dist/module/lib/Components/Axis/YAxis/YAxis.test.js.map +1 -0
- package/dist/module/lib/Components/Axis/YAxis/index.js +4 -0
- package/dist/module/lib/Components/Axis/YAxis/index.js.map +1 -0
- package/dist/module/lib/Components/Axis/YAxis/types.js +4 -0
- package/dist/module/lib/Components/Axis/YAxis/types.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/CartesianChart.js +123 -0
- package/dist/module/lib/Components/CartesianChart/CartesianChart.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/context/cartesianChartContext.js +10 -0
- package/dist/module/lib/Components/CartesianChart/context/cartesianChartContext.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/context/index.js +5 -0
- package/dist/module/lib/Components/CartesianChart/context/index.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.js +75 -0
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js +279 -0
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/index.js +5 -0
- package/dist/module/lib/Components/CartesianChart/index.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/types.js +4 -0
- package/dist/module/lib/Components/CartesianChart/types.js.map +1 -0
- package/dist/module/lib/Components/Line/Line.js +72 -0
- package/dist/module/lib/Components/Line/Line.js.map +1 -0
- package/dist/module/lib/Components/Line/index.js +4 -0
- package/dist/module/lib/Components/Line/index.js.map +1 -0
- package/dist/module/lib/Components/Line/types.js +2 -0
- package/dist/module/lib/Components/Line/types.js.map +1 -0
- package/dist/module/lib/Components/Line/utils.js +38 -0
- package/dist/module/lib/Components/Line/utils.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChart.js +70 -31
- package/dist/module/lib/Components/LineChart/LineChart.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChart.stories.js +271 -2
- package/dist/module/lib/Components/LineChart/LineChart.stories.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChart.test.js +84 -3
- package/dist/module/lib/Components/LineChart/LineChart.test.js.map +1 -1
- package/dist/module/lib/Components/LineChart/types.js +4 -0
- package/dist/module/lib/Components/LineChart/types.js.map +1 -0
- package/dist/module/lib/utils/domain/domain.js +93 -0
- package/dist/module/lib/utils/domain/domain.js.map +1 -0
- package/dist/module/lib/utils/domain/domain.test.js +152 -0
- package/dist/module/lib/utils/domain/domain.test.js.map +1 -0
- package/dist/module/lib/utils/index.js +0 -2
- package/dist/module/lib/utils/index.js.map +1 -1
- package/dist/module/lib/utils/scales/scales.js +41 -0
- package/dist/module/lib/utils/scales/scales.js.map +1 -0
- package/dist/module/lib/utils/scales/scales.test.js +173 -0
- package/dist/module/lib/utils/scales/scales.test.js.map +1 -0
- package/dist/module/lib/utils/ticks/ticks.js +55 -0
- package/dist/module/lib/utils/ticks/ticks.js.map +1 -0
- package/dist/module/lib/utils/ticks/ticks.test.js +121 -0
- package/dist/module/lib/utils/ticks/ticks.test.js.map +1 -0
- package/dist/module/lib/utils/types.js +2 -0
- package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts +33 -0
- package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/XAxis/XAxis.d.ts +4 -0
- package/dist/typescript/src/lib/Components/Axis/XAxis/XAxis.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/XAxis/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Axis/XAxis/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/XAxis/types.d.ts +9 -0
- package/dist/typescript/src/lib/Components/Axis/XAxis/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/YAxis/YAxis.d.ts +4 -0
- package/dist/typescript/src/lib/Components/Axis/YAxis/YAxis.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/YAxis/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Axis/YAxis/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/YAxis/types.d.ts +14 -0
- package/dist/typescript/src/lib/Components/Axis/YAxis/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts +3 -0
- package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/context/cartesianChartContext.d.ts +8 -0
- package/dist/typescript/src/lib/Components/CartesianChart/context/cartesianChartContext.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/context/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/CartesianChart/context/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts +23 -0
- package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/index.d.ts +4 -0
- package/dist/typescript/src/lib/Components/CartesianChart/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts +46 -0
- package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Line/Line.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Line/Line.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Line/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Line/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Line/types.d.ts +24 -0
- package/dist/typescript/src/lib/Components/Line/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Line/utils.d.ts +19 -0
- package/dist/typescript/src/lib/Components/Line/utils.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts +2 -8
- package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/index.d.ts +1 -0
- package/dist/typescript/src/lib/Components/LineChart/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/types.d.ts +62 -0
- package/dist/typescript/src/lib/Components/LineChart/types.d.ts.map +1 -0
- package/dist/typescript/src/lib/utils/domain/domain.d.ts +17 -0
- package/dist/typescript/src/lib/utils/domain/domain.d.ts.map +1 -0
- package/dist/typescript/src/lib/utils/index.d.ts +1 -1
- package/dist/typescript/src/lib/utils/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/scales/scales.d.ts +24 -0
- package/dist/typescript/src/lib/utils/scales/scales.d.ts.map +1 -0
- package/dist/typescript/src/lib/utils/ticks/ticks.d.ts +27 -0
- package/dist/typescript/src/lib/utils/ticks/ticks.d.ts.map +1 -0
- package/dist/typescript/src/lib/utils/types.d.ts +90 -6
- package/dist/typescript/src/lib/utils/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/lib/Components/Axis/Axis.types.ts +32 -0
- package/src/lib/Components/Axis/XAxis/XAxis.test.tsx +89 -0
- package/src/lib/Components/Axis/XAxis/XAxis.tsx +111 -0
- package/src/lib/Components/Axis/XAxis/index.ts +2 -0
- package/src/lib/Components/Axis/XAxis/types.ts +9 -0
- package/src/lib/Components/Axis/YAxis/YAxis.test.tsx +89 -0
- package/src/lib/Components/Axis/YAxis/YAxis.tsx +110 -0
- package/src/lib/Components/Axis/YAxis/index.ts +2 -0
- package/src/lib/Components/Axis/YAxis/types.ts +14 -0
- package/src/lib/Components/CartesianChart/CartesianChart.tsx +153 -0
- package/src/lib/Components/CartesianChart/context/cartesianChartContext.ts +14 -0
- package/src/lib/Components/CartesianChart/context/index.ts +10 -0
- package/src/lib/Components/CartesianChart/context/useBuildChartContext.test.ts +224 -0
- package/src/lib/Components/CartesianChart/context/useBuildChartContext.ts +115 -0
- package/src/lib/Components/CartesianChart/index.ts +3 -0
- package/src/lib/Components/CartesianChart/types.ts +47 -0
- package/src/lib/Components/Line/Line.tsx +88 -0
- package/src/lib/Components/Line/index.ts +2 -0
- package/src/lib/Components/Line/types.ts +23 -0
- package/src/lib/Components/Line/utils.ts +72 -0
- package/src/lib/Components/LineChart/LineChart.stories.tsx +287 -4
- package/src/lib/Components/LineChart/LineChart.test.tsx +71 -2
- package/src/lib/Components/LineChart/LineChart.tsx +90 -34
- package/src/lib/Components/LineChart/index.ts +1 -0
- package/src/lib/Components/LineChart/types.ts +63 -0
- package/src/lib/utils/domain/domain.test.ts +129 -0
- package/src/lib/utils/domain/domain.ts +101 -0
- package/src/lib/utils/index.ts +11 -1
- package/src/lib/utils/scales/scales.test.ts +133 -0
- package/src/lib/utils/scales/scales.ts +67 -0
- package/src/lib/utils/ticks/ticks.test.ts +136 -0
- package/src/lib/utils/ticks/ticks.ts +82 -0
- package/src/lib/utils/types.ts +97 -6
- package/dist/module/lib/utils/math/index.js +0 -4
- package/dist/module/lib/utils/math/index.js.map +0 -1
- package/dist/typescript/src/lib/utils/math/index.d.ts +0 -1
- package/dist/typescript/src/lib/utils/math/index.d.ts.map +0 -1
- package/src/lib/utils/math/index.ts +0 -2
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it } from '@jest/globals';
|
|
4
|
+
import { computeDataLength, computeXDomain, computeYDomain } from "./domain.js";
|
|
5
|
+
const makeSeries = data => ({
|
|
6
|
+
id: 'test',
|
|
7
|
+
stroke: '#000',
|
|
8
|
+
data
|
|
9
|
+
});
|
|
10
|
+
describe('computeXDomain', () => {
|
|
11
|
+
it('should derive domain from longest series length', () => {
|
|
12
|
+
const result = computeXDomain([makeSeries([1, 2, 3]), makeSeries([1, 2, 3, 4, 5])]);
|
|
13
|
+
expect(result).toEqual({
|
|
14
|
+
min: 0,
|
|
15
|
+
max: 4
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
it('should return { 0, 0 } for empty series', () => {
|
|
19
|
+
const result = computeXDomain([]);
|
|
20
|
+
expect(result).toEqual({
|
|
21
|
+
min: 0,
|
|
22
|
+
max: 0
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
it('should use string axis data length', () => {
|
|
26
|
+
const result = computeXDomain([makeSeries([1, 2])], {
|
|
27
|
+
data: ['Mon', 'Tue', 'Wed']
|
|
28
|
+
});
|
|
29
|
+
expect(result).toEqual({
|
|
30
|
+
min: 0,
|
|
31
|
+
max: 2
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
it('should use numeric axis data min/max', () => {
|
|
35
|
+
const result = computeXDomain([makeSeries([1])], {
|
|
36
|
+
data: [10, 30, 20]
|
|
37
|
+
});
|
|
38
|
+
expect(result).toEqual({
|
|
39
|
+
min: 10,
|
|
40
|
+
max: 30
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
it('should apply partial domain override', () => {
|
|
44
|
+
const result = computeXDomain([makeSeries([1, 2, 3, 4, 5])], {
|
|
45
|
+
domain: {
|
|
46
|
+
min: 1
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
expect(result.min).toBe(1);
|
|
50
|
+
expect(result.max).toBe(4);
|
|
51
|
+
});
|
|
52
|
+
it('should apply full domain override', () => {
|
|
53
|
+
const result = computeXDomain([makeSeries([1, 2, 3])], {
|
|
54
|
+
domain: {
|
|
55
|
+
min: 0,
|
|
56
|
+
max: 10
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
expect(result).toEqual({
|
|
60
|
+
min: 0,
|
|
61
|
+
max: 10
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
it('should apply domain function override', () => {
|
|
65
|
+
const result = computeXDomain([makeSeries([1, 2, 3, 4, 5])], {
|
|
66
|
+
domain: bounds => ({
|
|
67
|
+
min: bounds.min - 1,
|
|
68
|
+
max: bounds.max + 1
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
expect(result).toEqual({
|
|
72
|
+
min: -1,
|
|
73
|
+
max: 5
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('computeYDomain', () => {
|
|
78
|
+
it('should find min/max across all series values', () => {
|
|
79
|
+
const result = computeYDomain([makeSeries([10, 50, 30]), makeSeries([5, 80])]);
|
|
80
|
+
expect(result).toEqual({
|
|
81
|
+
min: 5,
|
|
82
|
+
max: 80
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
it('should skip null values', () => {
|
|
86
|
+
const result = computeYDomain([makeSeries([null, 10, null, 30, null])]);
|
|
87
|
+
expect(result).toEqual({
|
|
88
|
+
min: 10,
|
|
89
|
+
max: 30
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
it('should return { 0, 1 } when no data values exist', () => {
|
|
93
|
+
const result = computeYDomain([makeSeries([])]);
|
|
94
|
+
expect(result).toEqual({
|
|
95
|
+
min: 0,
|
|
96
|
+
max: 1
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
it('should handle series without data', () => {
|
|
100
|
+
const result = computeYDomain([{
|
|
101
|
+
id: 's',
|
|
102
|
+
stroke: '#000'
|
|
103
|
+
}]);
|
|
104
|
+
expect(result).toEqual({
|
|
105
|
+
min: 0,
|
|
106
|
+
max: 1
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
it('should apply partial domain override', () => {
|
|
110
|
+
const result = computeYDomain([makeSeries([10, 50])], {
|
|
111
|
+
domain: {
|
|
112
|
+
min: 0
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
expect(result).toEqual({
|
|
116
|
+
min: 0,
|
|
117
|
+
max: 50
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
it('should apply domain function override', () => {
|
|
121
|
+
const result = computeYDomain([makeSeries([10, 20, 30])], {
|
|
122
|
+
domain: bounds => ({
|
|
123
|
+
min: bounds.min - 5,
|
|
124
|
+
max: bounds.max + 5
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
expect(result).toEqual({
|
|
128
|
+
min: 5,
|
|
129
|
+
max: 35
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe('computeDataLength', () => {
|
|
134
|
+
it('should return longest series length', () => {
|
|
135
|
+
expect(computeDataLength([makeSeries([1, 2]), makeSeries([1, 2, 3, 4])])).toBe(4);
|
|
136
|
+
});
|
|
137
|
+
it('should return 0 for empty series', () => {
|
|
138
|
+
expect(computeDataLength([])).toBe(0);
|
|
139
|
+
});
|
|
140
|
+
it('should prefer axis data length when provided', () => {
|
|
141
|
+
expect(computeDataLength([makeSeries([1, 2, 3])], {
|
|
142
|
+
data: ['A', 'B', 'C', 'D', 'E']
|
|
143
|
+
})).toBe(5);
|
|
144
|
+
});
|
|
145
|
+
it('should handle series without data', () => {
|
|
146
|
+
expect(computeDataLength([{
|
|
147
|
+
id: 's',
|
|
148
|
+
stroke: '#000'
|
|
149
|
+
}])).toBe(0);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=domain.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","computeDataLength","computeXDomain","computeYDomain","makeSeries","data","id","stroke","result","toEqual","min","max","domain","toBe","bounds"],"sourceRoot":"../../../../../src","sources":["lib/utils/domain/domain.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["lib/utils/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["lib/utils/index.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { scaleBand, scaleLinear, scaleLog } from 'd3-scale';
|
|
4
|
+
export const getNumericScale = ({
|
|
5
|
+
scaleType,
|
|
6
|
+
domain,
|
|
7
|
+
range
|
|
8
|
+
}) => {
|
|
9
|
+
const scale = scaleType === 'log' ? scaleLog() : scaleLinear();
|
|
10
|
+
return scale.domain([domain.min, domain.max]).range([range.min, range.max]);
|
|
11
|
+
};
|
|
12
|
+
export const getCategoricalScale = ({
|
|
13
|
+
domain,
|
|
14
|
+
range,
|
|
15
|
+
padding = 0.1
|
|
16
|
+
}) => {
|
|
17
|
+
const domainArray = Array.from({
|
|
18
|
+
length: domain.max - domain.min + 1
|
|
19
|
+
}, (_, i) => domain.min + i);
|
|
20
|
+
return scaleBand().domain(domainArray).range([range.min, range.max]).paddingInner(padding).paddingOuter(padding / 2);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a scale type config value refers to a band (categorical) scale.
|
|
25
|
+
*/
|
|
26
|
+
export const isBandScaleType = scaleType => scaleType === 'band';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Checks if a scale is a categorical scale.
|
|
30
|
+
*/
|
|
31
|
+
export const isCategoricalScale = scale => {
|
|
32
|
+
return 'bandwidth' in scale && typeof scale.bandwidth === 'function';
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Checks if a scale is a numeric scale.
|
|
37
|
+
*/
|
|
38
|
+
export const isNumericScale = scale => {
|
|
39
|
+
return !isCategoricalScale(scale);
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=scales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["scaleBand","scaleLinear","scaleLog","getNumericScale","scaleType","domain","range","scale","min","max","getCategoricalScale","padding","domainArray","Array","from","length","_","i","paddingInner","paddingOuter","isBandScaleType","isCategoricalScale","bandwidth","isNumericScale"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,UAAU;AAU3D,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,MAAM;EACNC;AAKF,CAAC,KAAmB;EAClB,MAAMC,KAAK,GAAGH,SAAS,KAAK,KAAK,GAAGF,QAAQ,CAAC,CAAC,GAAGD,WAAW,CAAC,CAAC;EAC9D,OAAOM,KAAK,CAACF,MAAM,CAAC,CAACA,MAAM,CAACG,GAAG,EAAEH,MAAM,CAACI,GAAG,CAAC,CAAC,CAACH,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCL,MAAM;EACNC,KAAK;EACLK,OAAO,GAAG;AAKZ,CAAC,KAAuB;EACtB,MAAMC,WAAW,GAAGC,KAAK,CAACC,IAAI,CAC5B;IAAEC,MAAM,EAAEV,MAAM,CAACI,GAAG,GAAGJ,MAAM,CAACG,GAAG,GAAG;EAAE,CAAC,EACvC,CAACQ,CAAC,EAAEC,CAAC,KAAKZ,MAAM,CAACG,GAAG,GAAGS,CACzB,CAAC;EACD,OAAOjB,SAAS,CAAS,CAAC,CACvBK,MAAM,CAACO,WAAW,CAAC,CACnBN,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC,CAC7BS,YAAY,CAACP,OAAO,CAAC,CACrBQ,YAAY,CAACR,OAAO,GAAG,CAAC,CAAC;AAC9B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,eAAe,GAC1BhB,SAAuC,IACfA,SAAS,KAAK,MAAM;;AAE9C;AACA;AACA;AACA,OAAO,MAAMiB,kBAAkB,GAC7Bd,KAAyB,IACK;EAC9B,OAAO,WAAW,IAAIA,KAAK,IAAI,OAAOA,KAAK,CAACe,SAAS,KAAK,UAAU;AACtE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBhB,KAAyB,IACC;EAC1B,OAAO,CAACc,kBAAkB,CAACd,KAAK,CAAC;AACnC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it } from '@jest/globals';
|
|
4
|
+
import { getCategoricalScale, getNumericScale, isBandScaleType, isCategoricalScale, isNumericScale } from "./scales.js";
|
|
5
|
+
describe('getNumericScale', () => {
|
|
6
|
+
it('should create a linear scale mapping domain to range', () => {
|
|
7
|
+
const scale = getNumericScale({
|
|
8
|
+
scaleType: 'linear',
|
|
9
|
+
domain: {
|
|
10
|
+
min: 0,
|
|
11
|
+
max: 100
|
|
12
|
+
},
|
|
13
|
+
range: {
|
|
14
|
+
min: 0,
|
|
15
|
+
max: 500
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
expect(scale(0)).toBe(0);
|
|
19
|
+
expect(scale(50)).toBe(250);
|
|
20
|
+
expect(scale(100)).toBe(500);
|
|
21
|
+
});
|
|
22
|
+
it('should create a log scale', () => {
|
|
23
|
+
const scale = getNumericScale({
|
|
24
|
+
scaleType: 'log',
|
|
25
|
+
domain: {
|
|
26
|
+
min: 1,
|
|
27
|
+
max: 1000
|
|
28
|
+
},
|
|
29
|
+
range: {
|
|
30
|
+
min: 0,
|
|
31
|
+
max: 300
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
expect(scale(1)).toBe(0);
|
|
35
|
+
expect(scale(1000)).toBe(300);
|
|
36
|
+
});
|
|
37
|
+
it('should set correct domain', () => {
|
|
38
|
+
const scale = getNumericScale({
|
|
39
|
+
scaleType: 'linear',
|
|
40
|
+
domain: {
|
|
41
|
+
min: 10,
|
|
42
|
+
max: 50
|
|
43
|
+
},
|
|
44
|
+
range: {
|
|
45
|
+
min: 0,
|
|
46
|
+
max: 200
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const domain = scale.domain();
|
|
50
|
+
expect(domain[0]).toBe(10);
|
|
51
|
+
expect(domain[1]).toBe(50);
|
|
52
|
+
});
|
|
53
|
+
it('should set correct range', () => {
|
|
54
|
+
const scale = getNumericScale({
|
|
55
|
+
scaleType: 'linear',
|
|
56
|
+
domain: {
|
|
57
|
+
min: 0,
|
|
58
|
+
max: 100
|
|
59
|
+
},
|
|
60
|
+
range: {
|
|
61
|
+
min: 20,
|
|
62
|
+
max: 400
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const range = scale.range();
|
|
66
|
+
expect(range[0]).toBe(20);
|
|
67
|
+
expect(range[1]).toBe(400);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe('getCategoricalScale', () => {
|
|
71
|
+
it('should create a band scale with correct domain', () => {
|
|
72
|
+
const scale = getCategoricalScale({
|
|
73
|
+
domain: {
|
|
74
|
+
min: 0,
|
|
75
|
+
max: 3
|
|
76
|
+
},
|
|
77
|
+
range: {
|
|
78
|
+
min: 0,
|
|
79
|
+
max: 400
|
|
80
|
+
},
|
|
81
|
+
padding: 0
|
|
82
|
+
});
|
|
83
|
+
expect(scale.domain()).toEqual([0, 1, 2, 3]);
|
|
84
|
+
});
|
|
85
|
+
it('should have non-zero bandwidth', () => {
|
|
86
|
+
const scale = getCategoricalScale({
|
|
87
|
+
domain: {
|
|
88
|
+
min: 0,
|
|
89
|
+
max: 4
|
|
90
|
+
},
|
|
91
|
+
range: {
|
|
92
|
+
min: 0,
|
|
93
|
+
max: 500
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
expect(scale.bandwidth()).toBeGreaterThan(0);
|
|
97
|
+
});
|
|
98
|
+
it('should map values within the range', () => {
|
|
99
|
+
const scale = getCategoricalScale({
|
|
100
|
+
domain: {
|
|
101
|
+
min: 0,
|
|
102
|
+
max: 2
|
|
103
|
+
},
|
|
104
|
+
range: {
|
|
105
|
+
min: 0,
|
|
106
|
+
max: 300
|
|
107
|
+
},
|
|
108
|
+
padding: 0
|
|
109
|
+
});
|
|
110
|
+
expect(scale(0)).toBeGreaterThanOrEqual(0);
|
|
111
|
+
expect((scale(2) ?? 0) + scale.bandwidth()).toBeLessThanOrEqual(300);
|
|
112
|
+
});
|
|
113
|
+
it('should handle custom domain offset', () => {
|
|
114
|
+
const scale = getCategoricalScale({
|
|
115
|
+
domain: {
|
|
116
|
+
min: 5,
|
|
117
|
+
max: 7
|
|
118
|
+
},
|
|
119
|
+
range: {
|
|
120
|
+
min: 0,
|
|
121
|
+
max: 300
|
|
122
|
+
},
|
|
123
|
+
padding: 0
|
|
124
|
+
});
|
|
125
|
+
expect(scale.domain()).toEqual([5, 6, 7]);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe('isBandScaleType', () => {
|
|
129
|
+
it('should return true for band scale type', () => {
|
|
130
|
+
expect(isBandScaleType('band')).toBe(true);
|
|
131
|
+
});
|
|
132
|
+
it('should return false for linear scale type', () => {
|
|
133
|
+
expect(isBandScaleType('linear')).toBe(false);
|
|
134
|
+
});
|
|
135
|
+
it('should return false for log scale type', () => {
|
|
136
|
+
expect(isBandScaleType('log')).toBe(false);
|
|
137
|
+
});
|
|
138
|
+
it('should return false for undefined', () => {
|
|
139
|
+
expect(isBandScaleType(undefined)).toBe(false);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('isCategoricalScale / isNumericScale', () => {
|
|
143
|
+
const numericScale = getNumericScale({
|
|
144
|
+
scaleType: 'linear',
|
|
145
|
+
domain: {
|
|
146
|
+
min: 0,
|
|
147
|
+
max: 100
|
|
148
|
+
},
|
|
149
|
+
range: {
|
|
150
|
+
min: 0,
|
|
151
|
+
max: 500
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
const bandScale = getCategoricalScale({
|
|
155
|
+
domain: {
|
|
156
|
+
min: 0,
|
|
157
|
+
max: 4
|
|
158
|
+
},
|
|
159
|
+
range: {
|
|
160
|
+
min: 0,
|
|
161
|
+
max: 500
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
it('should identify a numeric scale', () => {
|
|
165
|
+
expect(isNumericScale(numericScale)).toBe(true);
|
|
166
|
+
expect(isCategoricalScale(numericScale)).toBe(false);
|
|
167
|
+
});
|
|
168
|
+
it('should identify a categorical scale', () => {
|
|
169
|
+
expect(isCategoricalScale(bandScale)).toBe(true);
|
|
170
|
+
expect(isNumericScale(bandScale)).toBe(false);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
//# sourceMappingURL=scales.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","getCategoricalScale","getNumericScale","isBandScaleType","isCategoricalScale","isNumericScale","scale","scaleType","domain","min","max","range","toBe","padding","toEqual","bandwidth","toBeGreaterThan","toBeGreaterThanOrEqual","toBeLessThanOrEqual","undefined","numericScale","bandScale"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { isCategoricalScale, isNumericScale } from "../scales/scales.js";
|
|
4
|
+
export const APPROXIMATE_TICK_COUNT = 5;
|
|
5
|
+
/**
|
|
6
|
+
* Resolves which numeric tick values should appear on the axis.
|
|
7
|
+
* Explicit ticks take priority, then scale-specific defaults.
|
|
8
|
+
*/
|
|
9
|
+
export const getTickValues = (scale, explicitTicks) => {
|
|
10
|
+
if (explicitTicks) return explicitTicks;
|
|
11
|
+
if (isCategoricalScale(scale)) return scale.domain();
|
|
12
|
+
if (isNumericScale(scale)) return scale.ticks(APPROXIMATE_TICK_COUNT);
|
|
13
|
+
return [];
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Converts a tick value to its pixel position on the axis.
|
|
18
|
+
* Band scales are centered within the band.
|
|
19
|
+
*/
|
|
20
|
+
export const getTickPosition = (scale, tick) => {
|
|
21
|
+
if (isCategoricalScale(scale)) {
|
|
22
|
+
return (scale(tick) ?? 0) + scale.bandwidth() / 2;
|
|
23
|
+
}
|
|
24
|
+
return scale(tick);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Resolves the display label for a tick value.
|
|
29
|
+
* Priority: formatter > string label lookup > raw value.
|
|
30
|
+
*/
|
|
31
|
+
export const getTickLabel = (tick, axisData, formatter) => {
|
|
32
|
+
const hasStringLabels = axisData && Array.isArray(axisData) && typeof axisData[0] === 'string';
|
|
33
|
+
if (formatter) {
|
|
34
|
+
const rawValue = hasStringLabels && axisData[tick] !== undefined ? axisData[tick] : tick;
|
|
35
|
+
return String(formatter(rawValue));
|
|
36
|
+
}
|
|
37
|
+
if (hasStringLabels && axisData[tick] !== undefined) {
|
|
38
|
+
return String(axisData[tick]);
|
|
39
|
+
}
|
|
40
|
+
return String(tick);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Builds the complete tick data array from a scale and axis configuration.
|
|
45
|
+
*/
|
|
46
|
+
export const buildTicksData = (scale, axisConfig, explicitTicks, formatter) => {
|
|
47
|
+
const tickValues = getTickValues(scale, explicitTicks);
|
|
48
|
+
const axisData = axisConfig?.data;
|
|
49
|
+
return tickValues.map(tick => ({
|
|
50
|
+
position: getTickPosition(scale, tick),
|
|
51
|
+
value: tick,
|
|
52
|
+
label: getTickLabel(tick, axisData, formatter)
|
|
53
|
+
}));
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=ticks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isCategoricalScale","isNumericScale","APPROXIMATE_TICK_COUNT","getTickValues","scale","explicitTicks","domain","ticks","getTickPosition","tick","bandwidth","getTickLabel","axisData","formatter","hasStringLabels","Array","isArray","rawValue","undefined","String","buildTicksData","axisConfig","tickValues","data","map","position","value","label"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.ts"],"mappings":";;AAAA,SAASA,kBAAkB,EAAEC,cAAc,QAAQ,qBAAkB;AAGrE,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AAQvC;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,KAAyB,EACzBC,aAAwB,KACX;EACb,IAAIA,aAAa,EAAE,OAAOA,aAAa;EACvC,IAAIL,kBAAkB,CAACI,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACE,MAAM,CAAC,CAAC;EACpD,IAAIL,cAAc,CAACG,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACG,KAAK,CAACL,sBAAsB,CAAC;EACrE,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,eAAe,GAAGA,CAC7BJ,KAAyB,EACzBK,IAAY,KACD;EACX,IAAIT,kBAAkB,CAACI,KAAK,CAAC,EAAE;IAC7B,OAAO,CAACA,KAAK,CAACK,IAAI,CAAC,IAAI,CAAC,IAAIL,KAAK,CAACM,SAAS,CAAC,CAAC,GAAG,CAAC;EACnD;EACA,OAAQN,KAAK,CAA2BK,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,YAAY,GAAGA,CAC1BF,IAAY,EACZG,QAAiC,EACjCC,SAA8C,KACnC;EACX,MAAMC,eAAe,GACnBF,QAAQ,IAAIG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,IAAI,OAAOA,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;EAExE,IAAIC,SAAS,EAAE;IACb,MAAMI,QAAQ,GACZH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,GAAGN,QAAQ,CAACH,IAAI,CAAC,GAAGA,IAAI;IACzE,OAAOU,MAAM,CAACN,SAAS,CAACI,QAA2B,CAAC,CAAC;EACvD;EAEA,IAAIH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,EAAE;IACnD,OAAOC,MAAM,CAACP,QAAQ,CAACH,IAAI,CAAC,CAAC;EAC/B;EAEA,OAAOU,MAAM,CAACV,IAAI,CAAC;AACrB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMW,cAAc,GAAGA,CAC5BhB,KAAyB,EACzBiB,UAA4B,EAC5BhB,aAAwB,EACxBQ,SAA8C,KAC/B;EACf,MAAMS,UAAU,GAAGnB,aAAa,CAACC,KAAK,EAAEC,aAAa,CAAC;EACtD,MAAMO,QAAQ,GAAGS,UAAU,EAAEE,IAAI;EAEjC,OAAOD,UAAU,CAACE,GAAG,CAAEf,IAAI,KAAM;IAC/BgB,QAAQ,EAAEjB,eAAe,CAACJ,KAAK,EAAEK,IAAI,CAAC;IACtCiB,KAAK,EAAEjB,IAAI;IACXkB,KAAK,EAAEhB,YAAY,CAACF,IAAI,EAAEG,QAAQ,EAAEC,SAAS;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it, jest } from '@jest/globals';
|
|
4
|
+
import { getCategoricalScale, getNumericScale } from "../scales/scales.js";
|
|
5
|
+
import { buildTicksData, getTickLabel, getTickPosition, getTickValues } from "./ticks.js";
|
|
6
|
+
const numericScale = getNumericScale({
|
|
7
|
+
scaleType: 'linear',
|
|
8
|
+
domain: {
|
|
9
|
+
min: 0,
|
|
10
|
+
max: 100
|
|
11
|
+
},
|
|
12
|
+
range: {
|
|
13
|
+
min: 0,
|
|
14
|
+
max: 500
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
const bandScale = getCategoricalScale({
|
|
18
|
+
domain: {
|
|
19
|
+
min: 0,
|
|
20
|
+
max: 4
|
|
21
|
+
},
|
|
22
|
+
range: {
|
|
23
|
+
min: 0,
|
|
24
|
+
max: 500
|
|
25
|
+
},
|
|
26
|
+
padding: 0
|
|
27
|
+
});
|
|
28
|
+
describe('getTickValues', () => {
|
|
29
|
+
it('should return explicit ticks when provided', () => {
|
|
30
|
+
expect(getTickValues(numericScale, [0, 25, 50])).toEqual([0, 25, 50]);
|
|
31
|
+
});
|
|
32
|
+
it('should return scale.ticks() for numeric scales', () => {
|
|
33
|
+
const ticks = getTickValues(numericScale);
|
|
34
|
+
expect(ticks.length).toBeGreaterThan(0);
|
|
35
|
+
expect(ticks).toContain(0);
|
|
36
|
+
expect(ticks).toContain(100);
|
|
37
|
+
});
|
|
38
|
+
it('should return full domain for band scales', () => {
|
|
39
|
+
expect(getTickValues(bandScale)).toEqual([0, 1, 2, 3, 4]);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('getTickPosition', () => {
|
|
43
|
+
it('should map value through numeric scale', () => {
|
|
44
|
+
expect(getTickPosition(numericScale, 0)).toBe(0);
|
|
45
|
+
expect(getTickPosition(numericScale, 50)).toBe(250);
|
|
46
|
+
expect(getTickPosition(numericScale, 100)).toBe(500);
|
|
47
|
+
});
|
|
48
|
+
it('should center within band for categorical scale', () => {
|
|
49
|
+
const pos = getTickPosition(bandScale, 0);
|
|
50
|
+
const bandwidth = bandScale.bandwidth();
|
|
51
|
+
expect(pos).toBe((bandScale(0) ?? 0) + bandwidth / 2);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('getTickLabel', () => {
|
|
55
|
+
it('should return stringified tick value by default', () => {
|
|
56
|
+
expect(getTickLabel(42, undefined)).toBe('42');
|
|
57
|
+
});
|
|
58
|
+
it('should look up string labels from axis data', () => {
|
|
59
|
+
const axisData = ['Jan', 'Feb', 'Mar'];
|
|
60
|
+
expect(getTickLabel(0, axisData)).toBe('Jan');
|
|
61
|
+
expect(getTickLabel(1, axisData)).toBe('Feb');
|
|
62
|
+
});
|
|
63
|
+
it('should fall back to tick value when index is out of range', () => {
|
|
64
|
+
const axisData = ['Jan', 'Feb'];
|
|
65
|
+
expect(getTickLabel(5, axisData)).toBe('5');
|
|
66
|
+
});
|
|
67
|
+
it('should apply formatter with raw string label when available', () => {
|
|
68
|
+
const axisData = ['January', 'February'];
|
|
69
|
+
const formatter = jest.fn(v => `${String(v).slice(0, 3)}`);
|
|
70
|
+
expect(getTickLabel(0, axisData, formatter)).toBe('Jan');
|
|
71
|
+
expect(formatter).toHaveBeenCalledWith('January');
|
|
72
|
+
});
|
|
73
|
+
it('should apply formatter with numeric value when no string labels', () => {
|
|
74
|
+
const formatter = jest.fn(v => `$${v}`);
|
|
75
|
+
expect(getTickLabel(10, undefined, formatter)).toBe('$10');
|
|
76
|
+
expect(formatter).toHaveBeenCalledWith(10);
|
|
77
|
+
});
|
|
78
|
+
it('should apply formatter with numeric data', () => {
|
|
79
|
+
const axisData = [100, 200, 300];
|
|
80
|
+
const formatter = jest.fn(v => `${v}!`);
|
|
81
|
+
expect(getTickLabel(1, axisData, formatter)).toBe('1!');
|
|
82
|
+
expect(formatter).toHaveBeenCalledWith(1);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('buildTicksData', () => {
|
|
86
|
+
it('should combine position, value, and label for each tick', () => {
|
|
87
|
+
const result = buildTicksData(numericScale);
|
|
88
|
+
expect(result.length).toBeGreaterThan(0);
|
|
89
|
+
for (const tick of result) {
|
|
90
|
+
expect(tick).toHaveProperty('position');
|
|
91
|
+
expect(tick).toHaveProperty('value');
|
|
92
|
+
expect(tick).toHaveProperty('label');
|
|
93
|
+
expect(typeof tick.position).toBe('number');
|
|
94
|
+
expect(typeof tick.label).toBe('string');
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
it('should use explicit ticks when provided', () => {
|
|
98
|
+
const result = buildTicksData(numericScale, undefined, [0, 50, 100]);
|
|
99
|
+
expect(result).toHaveLength(3);
|
|
100
|
+
expect(result.map(t => t.value)).toEqual([0, 50, 100]);
|
|
101
|
+
});
|
|
102
|
+
it('should resolve string labels from axis config', () => {
|
|
103
|
+
const result = buildTicksData(bandScale, {
|
|
104
|
+
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
|
|
105
|
+
});
|
|
106
|
+
expect(result[0].label).toBe('Mon');
|
|
107
|
+
expect(result[1].label).toBe('Tue');
|
|
108
|
+
});
|
|
109
|
+
it('should apply tick formatter', () => {
|
|
110
|
+
const formatter = v => `$${v}`;
|
|
111
|
+
const result = buildTicksData(numericScale, undefined, [0, 50], formatter);
|
|
112
|
+
expect(result[0].label).toBe('$0');
|
|
113
|
+
expect(result[1].label).toBe('$50');
|
|
114
|
+
});
|
|
115
|
+
it('should compute correct positions for numeric scale', () => {
|
|
116
|
+
const result = buildTicksData(numericScale, undefined, [0, 100]);
|
|
117
|
+
expect(result[0].position).toBe(0);
|
|
118
|
+
expect(result[1].position).toBe(500);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=ticks.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","jest","getCategoricalScale","getNumericScale","buildTicksData","getTickLabel","getTickPosition","getTickValues","numericScale","scaleType","domain","min","max","range","bandScale","padding","toEqual","ticks","length","toBeGreaterThan","toContain","toBe","pos","bandwidth","undefined","axisData","formatter","fn","v","String","slice","toHaveBeenCalledWith","result","tick","toHaveProperty","position","label","toHaveLength","map","t","value","data"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type BaseAxisProps = {
|
|
2
|
+
/**
|
|
3
|
+
* Whether to render grid lines at each tick.
|
|
4
|
+
* @default false
|
|
5
|
+
*/
|
|
6
|
+
showGrid?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Appearance of the grid lines.
|
|
9
|
+
* @default 'dashed'
|
|
10
|
+
*/
|
|
11
|
+
gridLineStyle?: 'solid' | 'dashed';
|
|
12
|
+
/**
|
|
13
|
+
* Whether to render the axis baseline.
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
showLine?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to render tick marks at each tick position.
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
showTickMark?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Explicit tick positions along the axis.
|
|
24
|
+
* When omitted, ticks are computed automatically from the scale.
|
|
25
|
+
*/
|
|
26
|
+
ticks?: number[];
|
|
27
|
+
/**
|
|
28
|
+
* Formats a tick value into its display label.
|
|
29
|
+
* Receives the raw tick value (number or string label) and must return a string.
|
|
30
|
+
*/
|
|
31
|
+
tickLabelFormatter?: (value: number | string) => string;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=Axis.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Axis.types.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/Axis/Axis.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACzD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { XAxisProps } from './types';
|
|
2
|
+
export declare const DEFAULT_AXIS_HEIGHT = 28;
|
|
3
|
+
export declare const XAxis: ({ gridLineStyle, position, showGrid, showLine, showTickMark, ticks: ticksProp, tickLabelFormatter, }: XAxisProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
4
|
+
//# sourceMappingURL=XAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XAxis.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/Components/Axis/XAxis/XAxis.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,KAAK,GAAI,sGAQnB,UAAU,mDAwFZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/Components/Axis/XAxis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|