@visactor/vutils 0.19.5 → 0.19.7
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/README.md +5 -12
- package/cjs/common/ascending.js +2 -1
- package/cjs/common/extent.d.ts +1 -0
- package/cjs/common/extent.js +30 -0
- package/cjs/common/extent.js.map +1 -0
- package/cjs/common/field.d.ts +12 -0
- package/cjs/common/field.js +35 -0
- package/cjs/common/field.js.map +1 -0
- package/cjs/common/index.d.ts +5 -0
- package/cjs/common/index.js +3 -1
- package/cjs/common/index.js.map +1 -1
- package/cjs/common/isArrayLike.js +2 -1
- package/cjs/common/isNumber.js +1 -2
- package/cjs/common/isShallowEqual.js +2 -1
- package/cjs/common/isString.js +1 -1
- package/cjs/common/isType.js +1 -1
- package/cjs/common/isUndefined.js +1 -1
- package/cjs/common/isValid.js +1 -1
- package/cjs/common/isValidNumber.js +1 -1
- package/cjs/common/isValidUrl.js +1 -1
- package/cjs/common/lowerFirst.js +1 -1
- package/cjs/common/random.d.ts +2 -0
- package/cjs/common/random.js +18 -1
- package/cjs/common/random.js.map +1 -1
- package/cjs/common/regression-linear.d.ts +8 -0
- package/cjs/common/regression-linear.js +50 -0
- package/cjs/common/regression-linear.js.map +1 -0
- package/cjs/common/toPercent.d.ts +1 -0
- package/cjs/common/toPercent.js +17 -0
- package/cjs/common/toPercent.js.map +1 -0
- package/cjs/common/zero.d.ts +1 -0
- package/cjs/common/zero.js +10 -0
- package/cjs/common/zero.js.map +1 -0
- package/cjs/data-structure/bounds.js +1 -1
- package/cjs/data-structure/hashTable.js +1 -2
- package/cjs/data-structure/index.js +1 -1
- package/cjs/data-structure/matrix.js +1 -1
- package/cjs/data-structure/point.js +1 -1
- package/dist/index.js +145 -2
- package/dist/index.min.js +1 -1
- package/es/common/ascending.js +2 -1
- package/es/common/extent.d.ts +1 -0
- package/es/common/extent.js +21 -0
- package/es/common/extent.js.map +1 -0
- package/es/common/field.d.ts +12 -0
- package/es/common/field.js +23 -0
- package/es/common/field.js.map +1 -0
- package/es/common/index.d.ts +5 -0
- package/es/common/index.js +10 -0
- package/es/common/index.js.map +1 -1
- package/es/common/isArrayLike.js +2 -1
- package/es/common/isNumber.js +1 -2
- package/es/common/isShallowEqual.js +2 -1
- package/es/common/isString.js +1 -1
- package/es/common/isType.js +1 -1
- package/es/common/isUndefined.js +1 -1
- package/es/common/isValid.js +1 -1
- package/es/common/isValidNumber.js +1 -1
- package/es/common/isValidUrl.js +1 -1
- package/es/common/lowerFirst.js +1 -1
- package/es/common/random.d.ts +2 -0
- package/es/common/random.js +13 -0
- package/es/common/random.js.map +1 -1
- package/es/common/regression-linear.d.ts +8 -0
- package/es/common/regression-linear.js +35 -0
- package/es/common/regression-linear.js.map +1 -0
- package/es/common/toPercent.d.ts +1 -0
- package/es/common/toPercent.js +6 -0
- package/es/common/toPercent.js.map +1 -0
- package/es/common/zero.d.ts +1 -0
- package/es/common/zero.js +2 -0
- package/es/common/zero.js.map +1 -0
- package/es/data-structure/bounds.js +1 -1
- package/es/data-structure/hashTable.js +1 -2
- package/es/data-structure/index.js +1 -1
- package/es/data-structure/matrix.js +1 -1
- package/es/data-structure/point.js +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -1,33 +1,26 @@
|
|
|
1
|
-
# @visactor/
|
|
1
|
+
# @visactor/vlayouts
|
|
2
2
|
|
|
3
3
|
## Installation
|
|
4
4
|
|
|
5
|
-
[npm package](https://www.npmjs.com/package/@visactor/
|
|
5
|
+
[npm package](https://www.npmjs.com/package/@visactor/vlayouts)
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
// npm
|
|
9
|
-
npm install @visactor/
|
|
9
|
+
npm install @visactor/vlayouts
|
|
10
10
|
|
|
11
11
|
// yarn
|
|
12
|
-
yarn add @visactor/
|
|
12
|
+
yarn add @visactor/vlayouts
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
##
|
|
16
16
|
|
|
17
|
-
[More demos and detailed tutorials](https://visactor.io/vutil)
|
|
18
|
-
|
|
19
|
-
# Related Links
|
|
20
|
-
|
|
21
|
-
- [VGrammar](https://github.com/VisActor/VGrammar)
|
|
22
|
-
- [VChart](https://visactor.io/vchart)
|
|
23
|
-
|
|
24
17
|
# Contribution
|
|
25
18
|
|
|
26
19
|
If you would like to contribute, please read the [Code of Conduct ](./CODE_OF_CONDUCT.md) 和 [ Guide](./CONTRIBUTING.zh-CN.md) first。
|
|
27
20
|
|
|
28
21
|
Small streams converge to make great rivers and seas!
|
|
29
22
|
|
|
30
|
-
<a href="https://github.com/visactor/
|
|
23
|
+
<a href="https://github.com/visactor/vlayouts/graphs/contributors"><img src="https://contrib.rocks/image?repo=visactor/vlayouts" /></a>
|
|
31
24
|
|
|
32
25
|
# License
|
|
33
26
|
|
package/cjs/common/ascending.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const extent: (array: any[], func?: (val: any) => number) => number[];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.extent = void 0;
|
|
12
|
+
|
|
13
|
+
const isFunction_1 = __importDefault(require("./isFunction")), isNil_1 = __importDefault(require("./isNil")), isNumber_1 = __importDefault(require("./isNumber")), extent = (array, func) => {
|
|
14
|
+
const valueGetter = (0, isFunction_1.default)(func) ? func : val => val;
|
|
15
|
+
let min, max;
|
|
16
|
+
if (array && array.length) {
|
|
17
|
+
const n = array.length;
|
|
18
|
+
for (let i = 0; i < n; i += 1) {
|
|
19
|
+
let value = valueGetter(array[i]);
|
|
20
|
+
(0, isNil_1.default)(value) || !(0, isNumber_1.default)(value = +value) || Number.isNaN(value) || ((0,
|
|
21
|
+
isNil_1.default)(min) ? (min = value, max = value) : (min = Math.min(min, value),
|
|
22
|
+
max = Math.max(max, value)));
|
|
23
|
+
}
|
|
24
|
+
return [ min, max ];
|
|
25
|
+
}
|
|
26
|
+
return [ min, max ];
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.extent = extent;
|
|
30
|
+
//# sourceMappingURL=extent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/extent.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC,oDAA4B;AAC5B,0DAAkC;AAK3B,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,IAA2B,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;IAChE,IAAI,GAAW,CAAC;IAChB,IAAI,GAAW,CAAC;IAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAGvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,IAAI,IAAA,kBAAQ,EAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvE,IAAI,IAAA,eAAK,EAAC,GAAG,CAAC,EAAE;oBACd,GAAG,GAAG,KAAK,CAAC;oBACZ,GAAG,GAAG,KAAK,CAAC;iBACb;qBAAM;oBACL,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC5B;aACF;SACF;QAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC,CAAC;AA1BW,QAAA,MAAM,UA0BjB","file":"extent.js","sourcesContent":["import isFunction from './isFunction';\nimport isNil from './isNil';\nimport isNumber from './isNumber';\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nexport const extent = (array: any[], func?: (val: any) => number) => {\n const valueGetter = isFunction(func) ? func : (val: any) => val;\n let min: number;\n let max: number;\n\n if (array && array.length) {\n const n = array.length;\n\n // find first valid value\n for (let i = 0; i < n; i += 1) {\n let value = valueGetter(array[i]);\n if (!isNil(value) && isNumber((value = +value)) && !Number.isNaN(value)) {\n if (isNil(min)) {\n min = value;\n max = value;\n } else {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n\n return [min, max];\n }\n\n return [min, max];\n};\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type FieldGetterFunction = (val: any) => any;
|
|
2
|
+
export type Getter = (path: string[]) => FieldGetterFunction;
|
|
3
|
+
export type FieldOption = {
|
|
4
|
+
field: string;
|
|
5
|
+
};
|
|
6
|
+
export type TagItemAttribute<T> = T | ((d?: any) => T);
|
|
7
|
+
export interface FieldGetterGeneratorOptions {
|
|
8
|
+
get?: Getter;
|
|
9
|
+
}
|
|
10
|
+
export declare const getter: (path: string[]) => any;
|
|
11
|
+
export declare const field: (fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[], opt?: FieldGetterGeneratorOptions) => any;
|
|
12
|
+
export declare const simpleField: <T>(option: FieldOption | TagItemAttribute<T>) => (datum: any) => any;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.simpleField = exports.field = exports.getter = void 0;
|
|
12
|
+
|
|
13
|
+
const get_1 = __importDefault(require("./get")), isArray_1 = __importDefault(require("./isArray")), isFunction_1 = __importDefault(require("./isFunction")), getter = path => obj => (0,
|
|
14
|
+
get_1.default)(obj, path);
|
|
15
|
+
|
|
16
|
+
exports.getter = getter;
|
|
17
|
+
|
|
18
|
+
const fieldSingle = (fieldStr, opt = {}) => {
|
|
19
|
+
if ((0, isFunction_1.default)(fieldStr)) return fieldStr;
|
|
20
|
+
const path = [ fieldStr ];
|
|
21
|
+
return (opt && opt.get || exports.getter)(path);
|
|
22
|
+
}, field = (fieldStr, opt = {}) => {
|
|
23
|
+
if ((0, isArray_1.default)(fieldStr)) {
|
|
24
|
+
const funcs = fieldStr.map((entry => fieldSingle(entry, opt)));
|
|
25
|
+
return datum => funcs.map((func => func(datum)));
|
|
26
|
+
}
|
|
27
|
+
return fieldSingle(fieldStr, opt);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.field = field;
|
|
31
|
+
|
|
32
|
+
const simpleField = option => option ? "string" == typeof option || "number" == typeof option ? () => option : (0,
|
|
33
|
+
isFunction_1.default)(option) ? option : datum => datum[option.field] : null;
|
|
34
|
+
|
|
35
|
+
exports.simpleField = simpleField;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/field.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,wDAAgC;AAChC,8DAAsC;AAgB/B,MAAM,MAAM,GAAG,CAAC,IAAc,EAAO,EAAE;IAC5C,OAAO,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAA,aAAG,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,MAAmC,EAAE,EAAE,EAAE;IACpG,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAExB,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,cAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,CACnB,QAAyE,EACzE,MAAmC,EAAE,EACrC,EAAE;IACF,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7D,OAAO,CAAC,KAAU,EAAE,EAAE;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC;KACH;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAbW,QAAA,KAAK,SAahB;AAKK,MAAM,WAAW,GAAG,CAAI,MAAyC,EAAE,EAAE;IAC1E,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;KACrB;SAAM,IAAI,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE;QAC7B,OAAO,MAA2B,CAAC;KACpC;IACD,OAAO,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAE,MAAsB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB","file":"field.js","sourcesContent":["import get from './get';\nimport isArray from './isArray';\nimport isFunction from './isFunction';\n\n/** 获取字段值的函数 */\nexport type FieldGetterFunction = (val: any) => any;\n\n/** 根据字段路径,返回获取相应路径属性的函数 */\nexport type Getter = (path: string[]) => FieldGetterFunction;\n\nexport type FieldOption = { field: string };\nexport type TagItemAttribute<T> = T | ((d?: any) => T);\n\n/** field函数对应的参数 */\nexport interface FieldGetterGeneratorOptions {\n get?: Getter;\n}\n\nexport const getter = (path: string[]): any => {\n return (obj: any) => get(obj, path);\n};\n\nconst fieldSingle = (fieldStr: string | FieldGetterFunction, opt: FieldGetterGeneratorOptions = {}) => {\n if (isFunction(fieldStr)) {\n return fieldStr;\n }\n\n const path = [fieldStr];\n\n return ((opt && opt.get) || getter)(path);\n};\n\nexport const field = (\n fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[],\n opt: FieldGetterGeneratorOptions = {}\n) => {\n if (isArray(fieldStr)) {\n const funcs = fieldStr.map(entry => fieldSingle(entry, opt));\n\n return (datum: any) => {\n return funcs.map(func => func(datum));\n };\n }\n\n return fieldSingle(fieldStr, opt);\n};\n\n/**\n * 取数逻辑\n */\nexport const simpleField = <T>(option: FieldOption | TagItemAttribute<T>) => {\n if (!option) {\n return null;\n }\n if (typeof option === 'string' || typeof option === 'number') {\n return () => option;\n } else if (isFunction(option)) {\n return option as (datum: any) => T;\n }\n return (datum: any) => datum[(option as FieldOption).field];\n};\n"]}
|
package/cjs/common/index.d.ts
CHANGED
|
@@ -57,3 +57,8 @@ export { default as lowerFirst } from './lowerFirst';
|
|
|
57
57
|
export { default as upperFirst } from './upperFirst';
|
|
58
58
|
export { default as substitute } from './substitute';
|
|
59
59
|
export * from './random';
|
|
60
|
+
export * from './field';
|
|
61
|
+
export * from './toPercent';
|
|
62
|
+
export * from './zero';
|
|
63
|
+
export * from './extent';
|
|
64
|
+
export * from './regression-linear';
|
package/cjs/common/index.js
CHANGED
|
@@ -519,5 +519,7 @@ Object.defineProperty(exports, "substitute", {
|
|
|
519
519
|
get: function() {
|
|
520
520
|
return __importDefault(substitute_1).default;
|
|
521
521
|
}
|
|
522
|
-
}), __exportStar(require("./random"), exports)
|
|
522
|
+
}), __exportStar(require("./random"), exports), __exportStar(require("./field"), exports),
|
|
523
|
+
__exportStar(require("./toPercent"), exports), __exportStar(require("./zero"), exports),
|
|
524
|
+
__exportStar(require("./extent"), exports), __exportStar(require("./regression-linear"), exports);
|
|
523
525
|
//# sourceMappingURL=index.js.map
|
package/cjs/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// type check\nexport { default as isBoolean } from './isBoolean';\nexport { default as isFunction } from './isFunction';\nexport { default as isNil } from './isNil';\nexport { default as isNull } from './isNull';\nexport { default as isValid } from './isValid';\nexport { default as isObject } from './isObject';\nexport { default as isObjectLike } from './isObjectLike';\nexport { default as isPlainObject } from './isPlainObject';\nexport { default as isType } from './isType';\nexport { default as isUndefined } from './isUndefined';\nexport { default as isString } from './isString';\nexport { default as isArray } from './isArray';\nexport { default as isArrayLike } from './isArrayLike';\nexport { default as isDate } from './isDate';\nexport { default as isNumber } from './isNumber';\nexport { default as isNumeric } from './isNumeric';\nexport { default as isValidNumber } from './isValidNumber';\nexport { default as isValidUrl } from './isValidUrl';\nexport { default as isRegExp } from './isRegExp';\nexport { default as isBase64 } from './isBase64';\n\nexport { default as isEmpty } from './isEmpty';\n\n// object\nexport { default as get } from './get';\nexport { default as has } from './has';\nexport { default as clone } from './clone';\nexport { default as cloneDeep } from './cloneDeep';\nexport { default as merge, baseMerge } from './merge';\nexport { default as pick } from './pick';\nexport { default as pickWithout } from './pickWithout';\nexport { isEqual } from './isEqual';\nexport { isShallowEqual } from './isShallowEqual';\nexport * from './mixin';\n\n// array\nexport * from './array';\nexport { range } from './range';\nexport { ascending } from './ascending';\nexport * from './quantileSorted';\nexport { bisect, findZeroOfFunction, binaryFuzzySearch, binaryFuzzySearchInNumberRange } from './bisect';\nexport { deviation } from './deviation';\nexport { median } from './median';\nexport { variance } from './variance';\n\n// tick\nexport { tickStep } from './tickStep';\n\n// number\nexport * from './number';\n\n// function\nexport { default as constant } from './constant';\nexport { memoize } from './memoize';\n\n// pad\nexport { default as pad } from './pad';\nexport { default as truncate } from './truncate';\n\n// uuid\nexport { default as uuid } from './uuid';\n\n// clamp\nexport { default as clamp } from './clamp';\nexport { default as clampRange } from './clampRange';\nexport { clamper } from './clamper';\n\n// debounce & throttle\nexport { default as debounce } from './debounce';\nexport { default as throttle } from './throttle';\n\n// interpolate\nexport * from './interpolate';\n\n// type convert\nexport { toDate } from './toDate';\nexport { toNumber } from './toNumber';\nexport { toValidNumber } from './toValidNumber';\n\n// string\nexport { default as lowerFirst } from './lowerFirst';\nexport { default as upperFirst } from './upperFirst';\n\n// string format\nexport { default as substitute } from './substitute';\n\nexport * from './random';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// type check\nexport { default as isBoolean } from './isBoolean';\nexport { default as isFunction } from './isFunction';\nexport { default as isNil } from './isNil';\nexport { default as isNull } from './isNull';\nexport { default as isValid } from './isValid';\nexport { default as isObject } from './isObject';\nexport { default as isObjectLike } from './isObjectLike';\nexport { default as isPlainObject } from './isPlainObject';\nexport { default as isType } from './isType';\nexport { default as isUndefined } from './isUndefined';\nexport { default as isString } from './isString';\nexport { default as isArray } from './isArray';\nexport { default as isArrayLike } from './isArrayLike';\nexport { default as isDate } from './isDate';\nexport { default as isNumber } from './isNumber';\nexport { default as isNumeric } from './isNumeric';\nexport { default as isValidNumber } from './isValidNumber';\nexport { default as isValidUrl } from './isValidUrl';\nexport { default as isRegExp } from './isRegExp';\nexport { default as isBase64 } from './isBase64';\n\nexport { default as isEmpty } from './isEmpty';\n\n// object\nexport { default as get } from './get';\nexport { default as has } from './has';\nexport { default as clone } from './clone';\nexport { default as cloneDeep } from './cloneDeep';\nexport { default as merge, baseMerge } from './merge';\nexport { default as pick } from './pick';\nexport { default as pickWithout } from './pickWithout';\nexport { isEqual } from './isEqual';\nexport { isShallowEqual } from './isShallowEqual';\nexport * from './mixin';\n\n// array\nexport * from './array';\nexport { range } from './range';\nexport { ascending } from './ascending';\nexport * from './quantileSorted';\nexport { bisect, findZeroOfFunction, binaryFuzzySearch, binaryFuzzySearchInNumberRange } from './bisect';\nexport { deviation } from './deviation';\nexport { median } from './median';\nexport { variance } from './variance';\n\n// tick\nexport { tickStep } from './tickStep';\n\n// number\nexport * from './number';\n\n// function\nexport { default as constant } from './constant';\nexport { memoize } from './memoize';\n\n// pad\nexport { default as pad } from './pad';\nexport { default as truncate } from './truncate';\n\n// uuid\nexport { default as uuid } from './uuid';\n\n// clamp\nexport { default as clamp } from './clamp';\nexport { default as clampRange } from './clampRange';\nexport { clamper } from './clamper';\n\n// debounce & throttle\nexport { default as debounce } from './debounce';\nexport { default as throttle } from './throttle';\n\n// interpolate\nexport * from './interpolate';\n\n// type convert\nexport { toDate } from './toDate';\nexport { toNumber } from './toNumber';\nexport { toValidNumber } from './toValidNumber';\n\n// string\nexport { default as lowerFirst } from './lowerFirst';\nexport { default as upperFirst } from './upperFirst';\n\n// string format\nexport { default as substitute } from './substitute';\n\nexport * from './random';\nexport * from './field';\nexport * from './toPercent';\nexport * from './zero';\nexport * from './extent';\nexport * from './regression-linear';\n"]}
|
package/cjs/common/isNumber.js
CHANGED
|
@@ -15,5 +15,4 @@ const isType_1 = __importDefault(require("./isType")), isNumber = (value, fuzzy
|
|
|
15
15
|
return fuzzy ? "number" === type : "number" === type || (0, isType_1.default)(value, "Number");
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
exports.default = isNumber;
|
|
19
|
-
//# sourceMappingURL=isNumber.js.map
|
|
18
|
+
exports.default = isNumber;
|
package/cjs/common/isString.js
CHANGED
package/cjs/common/isType.js
CHANGED
package/cjs/common/isValid.js
CHANGED
package/cjs/common/isValidUrl.js
CHANGED
|
@@ -7,4 +7,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
const isValidUrl = value => new RegExp(/^(http(s)?:\/\/)\w+[^\s]+(\.[^\s]+){1,}$/).test(value);
|
|
8
8
|
|
|
9
9
|
exports.isValidUrl = isValidUrl, exports.default = exports.isValidUrl;
|
|
10
|
-
//# sourceMappingURL=isValidUrl.js.map
|
|
10
|
+
//# sourceMappingURL=isValidUrl.js.map
|
package/cjs/common/lowerFirst.js
CHANGED
package/cjs/common/random.d.ts
CHANGED
package/cjs/common/random.js
CHANGED
|
@@ -6,5 +6,22 @@ function seedRandom(seed) {
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: !0
|
|
9
|
-
}), exports.seedRandom = void 0, exports.seedRandom = seedRandom;
|
|
9
|
+
}), exports.fakeRandom = exports.randomLCG = exports.seedRandom = void 0, exports.seedRandom = seedRandom;
|
|
10
|
+
|
|
11
|
+
const a = 1664525, c = 1013904223, m = 4294967296;
|
|
12
|
+
|
|
13
|
+
function randomLCG(initS = 1) {
|
|
14
|
+
let s = initS;
|
|
15
|
+
return () => (s = (a * s + c) % m) / m;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.randomLCG = randomLCG;
|
|
19
|
+
|
|
20
|
+
const fakeRandom = () => {
|
|
21
|
+
let i = -1;
|
|
22
|
+
const arr = [ 0, .1, .2, .3, .4, .5, .6, .7, .8, .9 ];
|
|
23
|
+
return () => (i = (i + 1) % arr.length, arr[i]);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.fakeRandom = fakeRandom;
|
|
10
27
|
//# sourceMappingURL=random.js.map
|
package/cjs/common/random.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/random.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,gCAEC","file":"random.js","sourcesContent":["export function seedRandom(seed: number) {\n return parseFloat('0.' + Math.sin(seed).toString().substring(6));\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/random.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,gCAEC;AAYD,MAAM,CAAC,GAAG,OAAO,CAAC;AAClB,MAAM,CAAC,GAAG,UAAU,CAAC;AACrB,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,SAAgB,SAAS,CAAC,QAAgB,CAAC;IACzC,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAHD,8BAGC;AAKM,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACX,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,GAAG,EAAE;QACV,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB","file":"random.js","sourcesContent":["export function seedRandom(seed: number) {\n return parseFloat('0.' + Math.sin(seed).toString().substring(6));\n}\n\n/* Adapted from vega by University of Washington Interactive Data Lab\n * https://vega.github.io/vega/\n * Licensed under the BSD-3-Clause\n\n * url: https://github.com/vega/vega/blob/main/packages/vega-statistics/src/lcg.js\n * License: https://github.com/vega/vega/blob/main/LICENSE\n * @license\n */\n\n// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport function randomLCG(initS: number = 1) {\n let s = initS;\n return () => (s = (a * s + c) % m) / m;\n}\n\n/**\n * 随机拟合\n */\nexport const fakeRandom = () => {\n let i = -1;\n const arr = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\n return () => {\n i = (i + 1) % arr.length;\n return arr[i];\n };\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function ordinaryLeastSquares(uX: number, uY: number, uXY: number, uX2: number): number[];
|
|
2
|
+
export declare function visitPoints(data: any[], x: (datum: any) => number, y: (datum: any) => number, callback: (x: number, y: number, index: number) => void): void;
|
|
3
|
+
export declare function rSquared(data: any[], x: (datum: any) => number, y: (datum: any) => number, uY: number, predict: (x: number) => number): number;
|
|
4
|
+
export declare function regressionLinear(data: any[], x?: (datum: any) => number, y?: (datum: any) => number): {
|
|
5
|
+
coef: number[];
|
|
6
|
+
predict: (x: number) => number;
|
|
7
|
+
rSquared: number;
|
|
8
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.regressionLinear = exports.rSquared = exports.visitPoints = exports.ordinaryLeastSquares = void 0;
|
|
12
|
+
|
|
13
|
+
const isNil_1 = __importDefault(require("./isNil"));
|
|
14
|
+
|
|
15
|
+
function ordinaryLeastSquares(uX, uY, uXY, uX2) {
|
|
16
|
+
const delta = uX2 - uX * uX, slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta;
|
|
17
|
+
return [ uY - slope * uX, slope ];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function visitPoints(data, x, y, callback) {
|
|
21
|
+
let u, v, i = -1;
|
|
22
|
+
data.forEach((d => {
|
|
23
|
+
u = x(d), v = y(d), !(0, isNil_1.default)(u) && (u = +u) >= u && !(0, isNil_1.default)(v) && (v = +v) >= v && callback(u, v, ++i);
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function rSquared(data, x, y, uY, predict) {
|
|
28
|
+
let SSE = 0, SST = 0;
|
|
29
|
+
return visitPoints(data, x, y, ((dx, dy) => {
|
|
30
|
+
const sse = dy - predict(dx), sst = dy - uY;
|
|
31
|
+
SSE += sse * sse, SST += sst * sst;
|
|
32
|
+
})), 1 - SSE / SST;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function regressionLinear(data, x = (datum => datum.x), y = (datum => datum.y)) {
|
|
36
|
+
let X = 0, Y = 0, XY = 0, X2 = 0, n = 0;
|
|
37
|
+
visitPoints(data, x, y, ((dx, dy) => {
|
|
38
|
+
++n, X += (dx - X) / n, Y += (dy - Y) / n, XY += (dx * dy - XY) / n, X2 += (dx * dx - X2) / n;
|
|
39
|
+
}));
|
|
40
|
+
const coef = ordinaryLeastSquares(X, Y, XY, X2), predict = x => coef[0] + coef[1] * x;
|
|
41
|
+
return {
|
|
42
|
+
coef: coef,
|
|
43
|
+
predict: predict,
|
|
44
|
+
rSquared: rSquared(data, x, y, Y, predict)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
exports.ordinaryLeastSquares = ordinaryLeastSquares, exports.visitPoints = visitPoints,
|
|
49
|
+
exports.rSquared = rSquared, exports.regressionLinear = regressionLinear;
|
|
50
|
+
//# sourceMappingURL=regression-linear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/regression-linear.ts"],"names":[],"mappings":"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","file":"regression-linear.js","sourcesContent":["import isNil from './isNil';\n/* Adapted from vega by University of Washington Interactive Data Lab\n * https://vega.github.io/vega/\n * Licensed under the BSD-3-Clause\n\n * url: https://github.com/vega/vega/blob/main/packages/vega-statistics/src/regression/ols.js\n * License: https://github.com/vega/vega/blob/main/LICENSE\n * @license\n */\nexport function ordinaryLeastSquares(uX: number, uY: number, uXY: number, uX2: number) {\n const delta = uX2 - uX * uX;\n const slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta;\n const intercept = uY - slope * uX;\n\n return [intercept, slope];\n}\n\n// Adapted from d3-regression by Harry Stevens\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\nexport function visitPoints(\n data: any[],\n x: (datum: any) => number,\n y: (datum: any) => number,\n callback: (x: number, y: number, index: number) => void\n) {\n let i = -1;\n let u;\n let v;\n\n data.forEach(d => {\n u = x(d);\n v = y(d);\n if (!isNil(u) && (u = +u) >= u && !isNil(v) && (v = +v) >= v) {\n callback(u, v, ++i);\n }\n });\n}\n\n// Adapted from d3-regression by Harry Stevens\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\nexport function rSquared(\n data: any[],\n x: (datum: any) => number,\n y: (datum: any) => number,\n uY: number,\n predict: (x: number) => number\n) {\n let SSE = 0;\n let SST = 0;\n\n visitPoints(data, x, y, (dx, dy) => {\n const sse = dy - predict(dx);\n const sst = dy - uY;\n\n SSE += sse * sse;\n SST += sst * sst;\n });\n\n return 1 - SSE / SST;\n}\n\n// Adapted from d3-regression by Harry Stevens\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\nexport function regressionLinear(\n data: any[],\n x: (datum: any) => number = datum => datum.x,\n y: (datum: any) => number = datum => datum.y\n) {\n let X = 0;\n let Y = 0;\n let XY = 0;\n let X2 = 0;\n let n = 0;\n\n visitPoints(data, x, y, (dx, dy) => {\n ++n;\n X += (dx - X) / n;\n Y += (dy - Y) / n;\n XY += (dx * dy - XY) / n;\n X2 += (dx * dx - X2) / n;\n });\n\n const coef = ordinaryLeastSquares(X, Y, XY, X2);\n const predict = (x: number) => coef[0] + coef[1] * x;\n\n return {\n coef: coef,\n predict: predict,\n rSquared: rSquared(data, x, y, Y, predict)\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const toPercent: (percent: string | number, total: number) => number;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.toPercent = void 0;
|
|
12
|
+
|
|
13
|
+
const isNil_1 = __importDefault(require("./isNil")), isString_1 = __importDefault(require("./isString")), toPercent = (percent, total) => (0,
|
|
14
|
+
isNil_1.default)(percent) ? total : (0, isString_1.default)(percent) ? total * parseFloat(percent) / 100 : percent;
|
|
15
|
+
|
|
16
|
+
exports.toPercent = toPercent;
|
|
17
|
+
//# sourceMappingURL=toPercent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/toPercent.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,0DAAkC;AAE3B,MAAM,SAAS,GAAG,CAAC,OAAwB,EAAE,KAAa,EAAE,EAAE;IACnE,IAAI,IAAA,eAAK,EAAC,OAAO,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAA,kBAAQ,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,OAAiB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACrF,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB","file":"toPercent.js","sourcesContent":["import isNil from './isNil';\nimport isString from './isString';\n\nexport const toPercent = (percent: string | number, total: number) => {\n if (isNil(percent)) {\n return total;\n }\n\n return isString(percent) ? (total * parseFloat(percent as string)) / 100 : percent;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const zero: (_: any) => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/zero.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAArB,QAAA,IAAI,QAAiB","file":"zero.js","sourcesContent":["export const zero = (_: any) => 0;\n"]}
|
|
@@ -19,4 +19,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
19
19
|
value: !0
|
|
20
20
|
}), __exportStar(require("./hashTable"), exports), __exportStar(require("./point"), exports),
|
|
21
21
|
__exportStar(require("./bounds"), exports), __exportStar(require("./matrix"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
22
|
+
//# sourceMappingURL=index.js.map
|