abstract-chart 3.2.9 → 5.0.0
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/CHANGELOG.md +3 -1
- package/lib/axis.d.ts.map +1 -1
- package/lib/axis.js +12 -16
- package/lib/axis.js.map +1 -1
- package/package.json +3 -3
- package/src/axis.ts +27 -83
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
|
-
## [
|
|
5
|
+
## [4.0.1](https://github.com/promaster-sdk/property/compare/abstract-chart@3.2.3...master)
|
|
6
6
|
|
|
7
7
|
### Added
|
|
8
8
|
|
|
@@ -12,6 +12,8 @@ All notable changes to this project will be documented in this file. The format
|
|
|
12
12
|
|
|
13
13
|
### Removed
|
|
14
14
|
|
|
15
|
+
- Ramda
|
|
16
|
+
|
|
15
17
|
## [v3.2.1](https://github.com/promaster-sdk/property/compare/abstract-chart@3.0.0...abstract-chart@3.2.1) - 2022-06-02
|
|
16
18
|
|
|
17
19
|
### Added
|
package/lib/axis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../src/axis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAEhD,oBAAY,IAAI,GAAG,UAAU,GAAG,eAAe,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../src/axis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAEhD,oBAAY,IAAI,GAAG,UAAU,GAAG,eAAe,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAOpF;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAO9F;AAKD,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CASxE;AAQD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAyB5F;AAWD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAgBjG;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,GAAG,SAAS,EACvB,KAAK,EAAE,IAAI,GAAG,SAAS,GACtB,aAAa,CAAC,KAAK,CAIrB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAatG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAa7G;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3F"}
|
package/lib/axis.js
CHANGED
|
@@ -27,7 +27,7 @@ function createLinearAxis(min, max, label) {
|
|
|
27
27
|
type: "linear",
|
|
28
28
|
min: min,
|
|
29
29
|
max: max,
|
|
30
|
-
label: label
|
|
30
|
+
label: label,
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
exports.createLinearAxis = createLinearAxis;
|
|
@@ -36,7 +36,7 @@ function createLogarithmicAxis(min, max, label) {
|
|
|
36
36
|
type: "logarithmic",
|
|
37
37
|
min: min,
|
|
38
38
|
max: max,
|
|
39
|
-
label: label
|
|
39
|
+
label: label,
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
exports.createLogarithmicAxis = createLogarithmicAxis;
|
|
@@ -62,12 +62,11 @@ function getLinearTicks(desiredTicks, min, max) {
|
|
|
62
62
|
const cMin = Math.ceil(min / step);
|
|
63
63
|
const cMax = Math.floor(max / step);
|
|
64
64
|
const ticks = cMax - cMin + 1;
|
|
65
|
-
if (!best ||
|
|
66
|
-
Math.abs(best.ticks - desiredTicks) > Math.abs(ticks - desiredTicks)) {
|
|
65
|
+
if (!best || Math.abs(best.ticks - desiredTicks) > Math.abs(ticks - desiredTicks)) {
|
|
67
66
|
best = {
|
|
68
67
|
min: cMin * step,
|
|
69
68
|
step: step,
|
|
70
|
-
ticks: ticks
|
|
69
|
+
ticks: ticks,
|
|
71
70
|
};
|
|
72
71
|
}
|
|
73
72
|
}
|
|
@@ -76,7 +75,7 @@ function getLinearTicks(desiredTicks, min, max) {
|
|
|
76
75
|
return [];
|
|
77
76
|
}
|
|
78
77
|
const b = best;
|
|
79
|
-
return R.range(0, b.ticks).map(l => b.min + b.step * l);
|
|
78
|
+
return R.range(0, b.ticks).map((l) => b.min + b.step * l);
|
|
80
79
|
}
|
|
81
80
|
exports.getLinearTicks = getLinearTicks;
|
|
82
81
|
const logarithmicAlternatives = [
|
|
@@ -85,23 +84,21 @@ const logarithmicAlternatives = [
|
|
|
85
84
|
[0, 1, 2, 5],
|
|
86
85
|
[0, 1, 2, 3, 5],
|
|
87
86
|
[0, 1, 2, 3, 5, 8],
|
|
88
|
-
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
87
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
|
89
88
|
];
|
|
90
89
|
function getLogarithmicTicks(desiredTicks, min, max) {
|
|
91
90
|
const minPow = Math.floor(Math.log10(min)) - 1;
|
|
92
91
|
const maxPow = Math.ceil(Math.log10(max)) + 1;
|
|
93
|
-
const powers = R.range(0, maxPow - minPow + 1).map(p => minPow + p);
|
|
94
|
-
const alternatives = logarithmicAlternatives.map(stepAlt => {
|
|
92
|
+
const powers = R.range(0, maxPow - minPow + 1).map((p) => minPow + p);
|
|
93
|
+
const alternatives = logarithmicAlternatives.map((stepAlt) => {
|
|
95
94
|
const altLines = powers.reduce((lines, power) => {
|
|
96
95
|
const base = Math.pow(10, power);
|
|
97
|
-
const powerLines = stepAlt.map(i => i * base);
|
|
96
|
+
const powerLines = stepAlt.map((i) => i * base);
|
|
98
97
|
return lines.concat(powerLines);
|
|
99
98
|
}, []);
|
|
100
|
-
return altLines.filter(l => l >= min && l <= max);
|
|
99
|
+
return altLines.filter((l) => l >= min && l <= max);
|
|
101
100
|
});
|
|
102
|
-
const bestLines = alternatives.reduce((prev, alt) => Math.abs(alt.length - desiredTicks) < Math.abs(prev.length - desiredTicks)
|
|
103
|
-
? alt
|
|
104
|
-
: prev);
|
|
101
|
+
const bestLines = alternatives.reduce((prev, alt) => Math.abs(alt.length - desiredTicks) < Math.abs(prev.length - desiredTicks) ? alt : prev);
|
|
105
102
|
return bestLines;
|
|
106
103
|
}
|
|
107
104
|
exports.getLogarithmicTicks = getLogarithmicTicks;
|
|
@@ -147,8 +144,7 @@ function linearTransform(value, min, max) {
|
|
|
147
144
|
exports.linearTransform = linearTransform;
|
|
148
145
|
function logarithmicTransform(value, min, max) {
|
|
149
146
|
if (value > 0) {
|
|
150
|
-
return (
|
|
151
|
-
(Math.log10(max) - Math.log10(min)));
|
|
147
|
+
return (Math.log10(value) - Math.log10(min)) / (Math.log10(max) - Math.log10(min));
|
|
152
148
|
}
|
|
153
149
|
else if (value < 0) {
|
|
154
150
|
return 0.0;
|
package/lib/axis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axis.js","sourceRoot":"","sources":["../src/axis.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAC3B,8DAAgD;AAWhD,SAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"axis.js","sourceRoot":"","sources":["../src/axis.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abstract-chart",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Drawing charts using multiple unit of measure axes as coordinate system",
|
|
5
5
|
"repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-chart",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"README.md"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"abstract-image": "^
|
|
18
|
+
"abstract-image": "^6.0.0",
|
|
19
19
|
"ramda": "^0.22.1",
|
|
20
20
|
"ts-exhaustive-check": "^1.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/ramda": "^0.25.29"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "a76bd0a1c26c7e19eb07eb5d7c27a8e0eaa0b2ae"
|
|
26
26
|
}
|
package/src/axis.ts
CHANGED
|
@@ -10,19 +10,17 @@ export interface LinearAxis {
|
|
|
10
10
|
readonly label: string;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export function createLinearAxis(
|
|
14
|
-
min: number,
|
|
15
|
-
max: number,
|
|
16
|
-
label: string
|
|
17
|
-
): LinearAxis {
|
|
13
|
+
export function createLinearAxis(min: number, max: number, label: string): LinearAxis {
|
|
18
14
|
return {
|
|
19
15
|
type: "linear",
|
|
20
16
|
min: min,
|
|
21
17
|
max: max,
|
|
22
|
-
label: label
|
|
18
|
+
label: label,
|
|
23
19
|
};
|
|
24
20
|
}
|
|
25
21
|
|
|
22
|
+
//dummy
|
|
23
|
+
|
|
26
24
|
export interface LogarithmicAxis {
|
|
27
25
|
readonly type: "logarithmic";
|
|
28
26
|
readonly min: number;
|
|
@@ -30,16 +28,12 @@ export interface LogarithmicAxis {
|
|
|
30
28
|
readonly label: string;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
export function createLogarithmicAxis(
|
|
34
|
-
min: number,
|
|
35
|
-
max: number,
|
|
36
|
-
label: string
|
|
37
|
-
): LogarithmicAxis {
|
|
31
|
+
export function createLogarithmicAxis(min: number, max: number, label: string): LogarithmicAxis {
|
|
38
32
|
return {
|
|
39
33
|
type: "logarithmic",
|
|
40
34
|
min: min,
|
|
41
35
|
max: max,
|
|
42
|
-
label: label
|
|
36
|
+
label: label,
|
|
43
37
|
};
|
|
44
38
|
}
|
|
45
39
|
|
|
@@ -63,11 +57,7 @@ interface Alternative {
|
|
|
63
57
|
readonly ticks: number;
|
|
64
58
|
}
|
|
65
59
|
|
|
66
|
-
export function getLinearTicks(
|
|
67
|
-
desiredTicks: number,
|
|
68
|
-
min: number,
|
|
69
|
-
max: number
|
|
70
|
-
): Array<number> {
|
|
60
|
+
export function getLinearTicks(desiredTicks: number, min: number, max: number): Array<number> {
|
|
71
61
|
let best: Alternative | undefined;
|
|
72
62
|
for (const power of linearPowers) {
|
|
73
63
|
const base = Math.pow(10, power);
|
|
@@ -77,14 +67,11 @@ export function getLinearTicks(
|
|
|
77
67
|
const cMax = Math.floor(max / step);
|
|
78
68
|
const ticks = cMax - cMin + 1;
|
|
79
69
|
|
|
80
|
-
if (
|
|
81
|
-
!best ||
|
|
82
|
-
Math.abs(best.ticks - desiredTicks) > Math.abs(ticks - desiredTicks)
|
|
83
|
-
) {
|
|
70
|
+
if (!best || Math.abs(best.ticks - desiredTicks) > Math.abs(ticks - desiredTicks)) {
|
|
84
71
|
best = {
|
|
85
72
|
min: cMin * step,
|
|
86
73
|
step: step,
|
|
87
|
-
ticks: ticks
|
|
74
|
+
ticks: ticks,
|
|
88
75
|
};
|
|
89
76
|
}
|
|
90
77
|
}
|
|
@@ -94,7 +81,7 @@ export function getLinearTicks(
|
|
|
94
81
|
return [];
|
|
95
82
|
}
|
|
96
83
|
const b = best;
|
|
97
|
-
return R.range(0, b.ticks).map(l => b.min + b.step * l);
|
|
84
|
+
return R.range(0, b.ticks).map((l) => b.min + b.step * l);
|
|
98
85
|
}
|
|
99
86
|
|
|
100
87
|
const logarithmicAlternatives = [
|
|
@@ -103,30 +90,23 @@ const logarithmicAlternatives = [
|
|
|
103
90
|
[0, 1, 2, 5],
|
|
104
91
|
[0, 1, 2, 3, 5],
|
|
105
92
|
[0, 1, 2, 3, 5, 8],
|
|
106
|
-
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
93
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
|
107
94
|
];
|
|
108
95
|
|
|
109
|
-
export function getLogarithmicTicks(
|
|
110
|
-
desiredTicks: number,
|
|
111
|
-
min: number,
|
|
112
|
-
max: number
|
|
113
|
-
): Array<number> {
|
|
96
|
+
export function getLogarithmicTicks(desiredTicks: number, min: number, max: number): Array<number> {
|
|
114
97
|
const minPow = Math.floor(Math.log10(min)) - 1;
|
|
115
98
|
const maxPow = Math.ceil(Math.log10(max)) + 1;
|
|
116
|
-
const powers = R.range(0, maxPow - minPow + 1).map(p => minPow + p);
|
|
117
|
-
const alternatives = logarithmicAlternatives.map(stepAlt => {
|
|
99
|
+
const powers = R.range(0, maxPow - minPow + 1).map((p) => minPow + p);
|
|
100
|
+
const alternatives = logarithmicAlternatives.map((stepAlt) => {
|
|
118
101
|
const altLines = powers.reduce((lines: Array<number>, power: number) => {
|
|
119
102
|
const base = Math.pow(10, power);
|
|
120
|
-
const powerLines = stepAlt.map(i => i * base);
|
|
103
|
+
const powerLines = stepAlt.map((i) => i * base);
|
|
121
104
|
return lines.concat(powerLines);
|
|
122
105
|
}, []);
|
|
123
|
-
return altLines.filter(l => l >= min && l <= max);
|
|
106
|
+
return altLines.filter((l) => l >= min && l <= max);
|
|
124
107
|
});
|
|
125
|
-
const bestLines = alternatives.reduce(
|
|
126
|
-
(prev
|
|
127
|
-
Math.abs(alt.length - desiredTicks) < Math.abs(prev.length - desiredTicks)
|
|
128
|
-
? alt
|
|
129
|
-
: prev
|
|
108
|
+
const bestLines = alternatives.reduce((prev, alt) =>
|
|
109
|
+
Math.abs(alt.length - desiredTicks) < Math.abs(prev.length - desiredTicks) ? alt : prev
|
|
130
110
|
);
|
|
131
111
|
return bestLines;
|
|
132
112
|
}
|
|
@@ -145,12 +125,7 @@ export function transformPoint(
|
|
|
145
125
|
return AbstractImage.createPoint(x, y);
|
|
146
126
|
}
|
|
147
127
|
|
|
148
|
-
export function transformValue(
|
|
149
|
-
value: number,
|
|
150
|
-
min: number,
|
|
151
|
-
max: number,
|
|
152
|
-
axis: Axis | undefined
|
|
153
|
-
): number {
|
|
128
|
+
export function transformValue(value: number, min: number, max: number, axis: Axis | undefined): number {
|
|
154
129
|
if (!axis) {
|
|
155
130
|
return value;
|
|
156
131
|
}
|
|
@@ -165,12 +140,7 @@ export function transformValue(
|
|
|
165
140
|
}
|
|
166
141
|
}
|
|
167
142
|
|
|
168
|
-
export function inverseTransformValue(
|
|
169
|
-
value: number,
|
|
170
|
-
min: number,
|
|
171
|
-
max: number,
|
|
172
|
-
axis: Axis | undefined
|
|
173
|
-
): number {
|
|
143
|
+
export function inverseTransformValue(value: number, min: number, max: number, axis: Axis | undefined): number {
|
|
174
144
|
if (!axis) {
|
|
175
145
|
return value;
|
|
176
146
|
}
|
|
@@ -179,34 +149,19 @@ export function inverseTransformValue(
|
|
|
179
149
|
case "linear":
|
|
180
150
|
return inverseLinearTransform((value - min) / range, axis.min, axis.max);
|
|
181
151
|
case "logarithmic":
|
|
182
|
-
return inverseLogarithmicTransform(
|
|
183
|
-
(value - min) / range,
|
|
184
|
-
axis.min,
|
|
185
|
-
axis.max
|
|
186
|
-
);
|
|
152
|
+
return inverseLogarithmicTransform((value - min) / range, axis.min, axis.max);
|
|
187
153
|
default:
|
|
188
154
|
return 0;
|
|
189
155
|
}
|
|
190
156
|
}
|
|
191
157
|
|
|
192
|
-
export function linearTransform(
|
|
193
|
-
value: number,
|
|
194
|
-
min: number,
|
|
195
|
-
max: number
|
|
196
|
-
): number {
|
|
158
|
+
export function linearTransform(value: number, min: number, max: number): number {
|
|
197
159
|
return (value - min) / (max - min);
|
|
198
160
|
}
|
|
199
161
|
|
|
200
|
-
export function logarithmicTransform(
|
|
201
|
-
value: number,
|
|
202
|
-
min: number,
|
|
203
|
-
max: number
|
|
204
|
-
): number {
|
|
162
|
+
export function logarithmicTransform(value: number, min: number, max: number): number {
|
|
205
163
|
if (value > 0) {
|
|
206
|
-
return (
|
|
207
|
-
(Math.log10(value) - Math.log10(min)) /
|
|
208
|
-
(Math.log10(max) - Math.log10(min))
|
|
209
|
-
);
|
|
164
|
+
return (Math.log10(value) - Math.log10(min)) / (Math.log10(max) - Math.log10(min));
|
|
210
165
|
} else if (value < 0) {
|
|
211
166
|
return 0.0;
|
|
212
167
|
} else {
|
|
@@ -214,21 +169,10 @@ export function logarithmicTransform(
|
|
|
214
169
|
}
|
|
215
170
|
}
|
|
216
171
|
|
|
217
|
-
export function inverseLinearTransform(
|
|
218
|
-
value: number,
|
|
219
|
-
min: number,
|
|
220
|
-
max: number
|
|
221
|
-
): number {
|
|
172
|
+
export function inverseLinearTransform(value: number, min: number, max: number): number {
|
|
222
173
|
return min + value * (max - min);
|
|
223
174
|
}
|
|
224
175
|
|
|
225
|
-
export function inverseLogarithmicTransform(
|
|
226
|
-
value
|
|
227
|
-
min: number,
|
|
228
|
-
max: number
|
|
229
|
-
): number {
|
|
230
|
-
return Math.pow(
|
|
231
|
-
10,
|
|
232
|
-
value * (Math.log10(max) - Math.log10(min)) + Math.log10(min)
|
|
233
|
-
);
|
|
176
|
+
export function inverseLogarithmicTransform(value: number, min: number, max: number): number {
|
|
177
|
+
return Math.pow(10, value * (Math.log10(max) - Math.log10(min)) + Math.log10(min));
|
|
234
178
|
}
|