@wings-j/chart-data-preprocess 0.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/dist/index.d.ts +86 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/package.json +20 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Min
|
|
3
|
+
* @param [array] Array
|
|
4
|
+
* @return Value
|
|
5
|
+
*/
|
|
6
|
+
declare function min(array: number[]): number;
|
|
7
|
+
/**
|
|
8
|
+
* Max
|
|
9
|
+
* @param [array] Array
|
|
10
|
+
* @return Value
|
|
11
|
+
*/
|
|
12
|
+
declare function max(array: number[]): number;
|
|
13
|
+
/**
|
|
14
|
+
* Min Max
|
|
15
|
+
* @param [array] Array
|
|
16
|
+
* @return Min Value and Max Value
|
|
17
|
+
*/
|
|
18
|
+
declare function minMax(array: number[]): [number, number];
|
|
19
|
+
/**
|
|
20
|
+
* Sum
|
|
21
|
+
* @param [array] Array
|
|
22
|
+
* @return Value
|
|
23
|
+
*/
|
|
24
|
+
declare function sum(array: number[]): number;
|
|
25
|
+
/**
|
|
26
|
+
* Mean
|
|
27
|
+
* @param [array] Array
|
|
28
|
+
* @return Value
|
|
29
|
+
*/
|
|
30
|
+
declare function mean(array: number[]): number;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Vector 1
|
|
34
|
+
*/
|
|
35
|
+
interface Vector1 {
|
|
36
|
+
x: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Vector 2
|
|
40
|
+
*/
|
|
41
|
+
interface Vector2 {
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Vector 1 List
|
|
47
|
+
* @type [T] Origin Type
|
|
48
|
+
*/
|
|
49
|
+
declare class Vector1List<T = any> {
|
|
50
|
+
array: T[];
|
|
51
|
+
vectors: Vector1[];
|
|
52
|
+
get tuples(): {
|
|
53
|
+
origin: T;
|
|
54
|
+
vector: Vector1 | undefined;
|
|
55
|
+
}[];
|
|
56
|
+
get xs(): number[];
|
|
57
|
+
/**
|
|
58
|
+
* Constructor
|
|
59
|
+
* @param [array] Array
|
|
60
|
+
* @param [xGetter] X Getter
|
|
61
|
+
*/
|
|
62
|
+
constructor(array: T[], xGetter: (value: T) => number);
|
|
63
|
+
/**
|
|
64
|
+
* Clone
|
|
65
|
+
* @param [transformer] Transformer
|
|
66
|
+
* @return Cloned List
|
|
67
|
+
*/
|
|
68
|
+
clone(transformer?: (vector: Vector1) => Vector1): Vector1List<T>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Ratio
|
|
73
|
+
* @type [T] Origin Type
|
|
74
|
+
* @param [list] Array
|
|
75
|
+
* @return Array with X Ratio
|
|
76
|
+
*/
|
|
77
|
+
declare function ratio<T = any>(list: Vector1List<T>): Vector1List<T>;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Parse
|
|
81
|
+
* @param [value] Value
|
|
82
|
+
* @return Number
|
|
83
|
+
*/
|
|
84
|
+
declare function parse(value: any): number;
|
|
85
|
+
|
|
86
|
+
export { type Vector1, Vector1List, type Vector2, max, mean, min, minMax, parse, ratio, sum };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// src/modules/math.ts
|
|
2
|
+
function min(array) {
|
|
3
|
+
return Math.min(...array);
|
|
4
|
+
}
|
|
5
|
+
function max(array) {
|
|
6
|
+
return Math.max(...array);
|
|
7
|
+
}
|
|
8
|
+
function minMax(array) {
|
|
9
|
+
let min2 = Infinity;
|
|
10
|
+
let max2 = -Infinity;
|
|
11
|
+
for (let a of array) {
|
|
12
|
+
if (a < min2) {
|
|
13
|
+
min2 = a;
|
|
14
|
+
}
|
|
15
|
+
if (a > max2) {
|
|
16
|
+
max2 = a;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return [min2, max2];
|
|
20
|
+
}
|
|
21
|
+
function sum(array) {
|
|
22
|
+
return array.reduce((p, c) => p + c, 0);
|
|
23
|
+
}
|
|
24
|
+
function mean(array) {
|
|
25
|
+
return sum(array) / array.length;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// src/modules/transform.ts
|
|
29
|
+
function ratio(list) {
|
|
30
|
+
let total = sum(list.xs);
|
|
31
|
+
return list.clone((a) => ({ x: a.x / total }));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// src/modules/utility.ts
|
|
35
|
+
function parse(value) {
|
|
36
|
+
if (value == null || value === void 0 || value === "") {
|
|
37
|
+
return 0;
|
|
38
|
+
} else if (typeof value === "number") {
|
|
39
|
+
return value;
|
|
40
|
+
} else if (typeof value === "string") {
|
|
41
|
+
if (value.endsWith("%")) {
|
|
42
|
+
return Number.parseFloat(value) / 100;
|
|
43
|
+
} else {
|
|
44
|
+
return Number.parseFloat(value);
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
return NaN;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/types/vector-list.ts
|
|
52
|
+
var Vector1List = class _Vector1List {
|
|
53
|
+
xGetter;
|
|
54
|
+
array;
|
|
55
|
+
vectors;
|
|
56
|
+
get xs() {
|
|
57
|
+
return this.vectors.map((a) => a.x);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Constructor
|
|
61
|
+
* @param [array] Array
|
|
62
|
+
* @param [xGetter] X Getter
|
|
63
|
+
*/
|
|
64
|
+
constructor(array, xGetter) {
|
|
65
|
+
this.xGetter = xGetter;
|
|
66
|
+
this.array = array;
|
|
67
|
+
this.vectors = array.map((a) => ({ x: xGetter(a) }));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Clone
|
|
71
|
+
* @param [transformer] Transformer
|
|
72
|
+
* @return Cloned List
|
|
73
|
+
*/
|
|
74
|
+
clone(transformer) {
|
|
75
|
+
let temp = new _Vector1List(this.array, this.xGetter);
|
|
76
|
+
if (transformer) {
|
|
77
|
+
temp.vectors = temp.vectors.map(transformer);
|
|
78
|
+
}
|
|
79
|
+
return temp;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
export {
|
|
83
|
+
Vector1List,
|
|
84
|
+
max,
|
|
85
|
+
mean,
|
|
86
|
+
min,
|
|
87
|
+
minMax,
|
|
88
|
+
parse,
|
|
89
|
+
ratio,
|
|
90
|
+
sum
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/math.ts","../src/modules/transform.ts","../src/modules/utility.ts","../src/types/vector-list.ts"],"sourcesContent":["/**\n * Min\n * @param [array] Array\n * @return Value\n */\nfunction min(array: number[]): number {\n return Math.min(...array);\n}\n/**\n * Max\n * @param [array] Array\n * @return Value\n */\nfunction max(array: number[]): number {\n return Math.max(...array);\n}\n/**\n * Min Max\n * @param [array] Array\n * @return Min Value and Max Value\n */\nfunction minMax(array: number[]): [number, number] {\n let min = Infinity;\n let max = -Infinity;\n\n for (let a of array) {\n if (a < min) {\n min = a;\n }\n if (a > max) {\n max = a;\n }\n }\n\n return [min, max];\n}\n/**\n * Sum\n * @param [array] Array\n * @return Value\n */\nfunction sum(array: number[]): number {\n return array.reduce((p, c) => p + c, 0);\n}\n/**\n * Mean\n * @param [array] Array\n * @return Value\n */\nfunction mean(array: number[]): number {\n return sum(array) / array.length;\n}\n\nexport { max, mean, min, minMax, sum };\n","import type { Vector1List } from '../types/vector-list';\nimport { sum } from './math';\n\n/**\n * Ratio\n * @type [T] Origin Type\n * @param [list] Array\n * @return Array with X Ratio\n */\nfunction ratio<T = any>(list: Vector1List<T>) {\n let total = sum(list.xs);\n\n return list.clone(a => ({ x: a.x / total }));\n}\n\nexport { ratio };\n","/**\n * Parse\n * @param [value] Value\n * @return Number\n */\nfunction parse(value: any): number {\n if (value == null || value === undefined || value === '') {\n return 0;\n } else if (typeof value === 'number') {\n return value;\n } else if (typeof value === 'string') {\n if (value.endsWith('%')) {\n return Number.parseFloat(value) / 100;\n } else {\n return Number.parseFloat(value);\n }\n } else {\n return NaN;\n }\n}\n\nexport { parse };\n","/**\n * Vector 1\n */\ninterface Vector1 {\n x: number;\n}\n/**\n * Vector 2\n */\ninterface Vector2 {\n x: number;\n y: number;\n}\n\n/**\n * Vector 1 List\n * @type [T] Origin Type\n */\nclass Vector1List<T = any> {\n private xGetter: (value: T) => number;\n array: T[];\n vectors: Vector1[];\n\n get xs() {\n return this.vectors.map(a => a.x);\n }\n\n /**\n * Constructor\n * @param [array] Array\n * @param [xGetter] X Getter\n */\n constructor(array: T[], xGetter: (value: T) => number) {\n this.xGetter = xGetter;\n this.array = array;\n this.vectors = array.map(a => ({ x: xGetter(a) }));\n }\n\n /**\n * Clone\n * @param [transformer] Transformer\n * @return Cloned List\n */\n clone(transformer?: (vector: Vector1) => Vector1): Vector1List<T> {\n let temp = new Vector1List(this.array, this.xGetter);\n if (transformer) {\n temp.vectors = temp.vectors.map(transformer);\n }\n\n return temp;\n }\n}\n\nexport { Vector1List };\nexport type { Vector1, Vector2 };\n"],"mappings":";AAKA,SAAS,IAAI,OAAyB;AACpC,SAAO,KAAK,IAAI,GAAG,KAAK;AAC1B;AAMA,SAAS,IAAI,OAAyB;AACpC,SAAO,KAAK,IAAI,GAAG,KAAK;AAC1B;AAMA,SAAS,OAAO,OAAmC;AACjD,MAAIA,OAAM;AACV,MAAIC,OAAM;AAEV,WAAS,KAAK,OAAO;AACnB,QAAI,IAAID,MAAK;AACX,MAAAA,OAAM;AAAA,IACR;AACA,QAAI,IAAIC,MAAK;AACX,MAAAA,OAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO,CAACD,MAAKC,IAAG;AAClB;AAMA,SAAS,IAAI,OAAyB;AACpC,SAAO,MAAM,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AACxC;AAMA,SAAS,KAAK,OAAyB;AACrC,SAAO,IAAI,KAAK,IAAI,MAAM;AAC5B;;;AC1CA,SAAS,MAAe,MAAsB;AAC5C,MAAI,QAAQ,IAAI,KAAK,EAAE;AAEvB,SAAO,KAAK,MAAM,QAAM,EAAE,GAAG,EAAE,IAAI,MAAM,EAAE;AAC7C;;;ACRA,SAAS,MAAM,OAAoB;AACjC,MAAI,SAAS,QAAQ,UAAU,UAAa,UAAU,IAAI;AACxD,WAAO;AAAA,EACT,WAAW,OAAO,UAAU,UAAU;AACpC,WAAO;AAAA,EACT,WAAW,OAAO,UAAU,UAAU;AACpC,QAAI,MAAM,SAAS,GAAG,GAAG;AACvB,aAAO,OAAO,WAAW,KAAK,IAAI;AAAA,IACpC,OAAO;AACL,aAAO,OAAO,WAAW,KAAK;AAAA,IAChC;AAAA,EACF,OAAO;AACL,WAAO;AAAA,EACT;AACF;;;ACDA,IAAM,cAAN,MAAM,aAAqB;AAAA,EACjB;AAAA,EACR;AAAA,EACA;AAAA,EAEA,IAAI,KAAK;AACP,WAAO,KAAK,QAAQ,IAAI,OAAK,EAAE,CAAC;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,OAAY,SAA+B;AACrD,SAAK,UAAU;AACf,SAAK,QAAQ;AACb,SAAK,UAAU,MAAM,IAAI,QAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aAA4D;AAChE,QAAI,OAAO,IAAI,aAAY,KAAK,OAAO,KAAK,OAAO;AACnD,QAAI,aAAa;AACf,WAAK,UAAU,KAAK,QAAQ,IAAI,WAAW;AAAA,IAC7C;AAEA,WAAO;AAAA,EACT;AACF;","names":["min","max"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wings-j/chart-data-preprocess",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Tools for preprocessing data before generating charts.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "WingsJ",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "tsup --watch",
|
|
11
|
+
"test": "vitest",
|
|
12
|
+
"build": "tsup",
|
|
13
|
+
"release": "npm publish --access public"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"tsup": "^8.5.1",
|
|
17
|
+
"typescript": "^5.9.3",
|
|
18
|
+
"vitest": "^4.1.6"
|
|
19
|
+
}
|
|
20
|
+
}
|