abstract-chart 3.2.7 → 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 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
- ## [Unreleased](https://github.com/promaster-sdk/property/compare/abstract-chart@3.2.3...master)
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,CAC9B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,UAAU,CAOZ;AAED,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,CACnC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,eAAe,CAOjB;AAKD,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CASxE;AAQD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,KAAK,CAAC,MAAM,CAAC,CA4Bf;AAWD,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,KAAK,CAAC,MAAM,CAAC,CAmBf;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,CAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,GAAG,SAAS,GACrB,MAAM,CAaR;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,GAAG,SAAS,GACrB,MAAM,CAiBR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,CAWR;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,CAKR"}
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 ((Math.log10(value) - Math.log10(min)) /
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":"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"}
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.2.7",
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": "^3.4.1",
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": "8d1489ac0f201c23159219b373ebc200a1390189"
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, alt) =>
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: number,
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
  }