@visactor/vutils 0.19.5 → 1.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.
Files changed (98) hide show
  1. package/README.md +5 -12
  2. package/cjs/common/ascending.js +2 -1
  3. package/cjs/common/cloneDeep.js +1 -2
  4. package/cjs/common/extent.d.ts +1 -0
  5. package/cjs/common/extent.js +30 -0
  6. package/cjs/common/extent.js.map +1 -0
  7. package/cjs/common/field.d.ts +12 -0
  8. package/cjs/common/field.js +36 -0
  9. package/cjs/common/field.js.map +1 -0
  10. package/cjs/common/index.d.ts +5 -0
  11. package/cjs/common/index.js +3 -1
  12. package/cjs/common/index.js.map +1 -1
  13. package/cjs/common/isArrayLike.js +2 -1
  14. package/cjs/common/isEmpty.js +1 -2
  15. package/cjs/common/isObjectLike.js +1 -1
  16. package/cjs/common/isPlainObject.js +1 -1
  17. package/cjs/common/isPrototype.js +1 -1
  18. package/cjs/common/isRegExp.js +1 -1
  19. package/cjs/common/isShallowEqual.js +2 -1
  20. package/cjs/common/isString.js +1 -1
  21. package/cjs/common/isType.js +1 -1
  22. package/cjs/common/isUndefined.js +1 -1
  23. package/cjs/common/isValid.js +1 -1
  24. package/cjs/common/isValidNumber.js +1 -1
  25. package/cjs/common/isValidUrl.js +1 -1
  26. package/cjs/common/lowerFirst.js +1 -1
  27. package/cjs/common/random.d.ts +2 -0
  28. package/cjs/common/random.js +18 -1
  29. package/cjs/common/random.js.map +1 -1
  30. package/cjs/common/regression-linear.d.ts +8 -0
  31. package/cjs/common/regression-linear.js +50 -0
  32. package/cjs/common/regression-linear.js.map +1 -0
  33. package/cjs/common/toPercent.d.ts +1 -0
  34. package/cjs/common/toPercent.js +17 -0
  35. package/cjs/common/toPercent.js.map +1 -0
  36. package/cjs/common/zero.d.ts +1 -0
  37. package/cjs/common/zero.js +10 -0
  38. package/cjs/common/zero.js.map +1 -0
  39. package/cjs/data-structure/bounds.js +1 -1
  40. package/cjs/data-structure/hashTable.js +1 -1
  41. package/cjs/data-structure/index.js +1 -1
  42. package/cjs/data-structure/matrix.js +1 -1
  43. package/cjs/data-structure/point.js +1 -1
  44. package/cjs/fmin/blas1.js +1 -1
  45. package/cjs/fmin/conjugate-gradient.js +1 -1
  46. package/cjs/fmin/index.js +1 -1
  47. package/cjs/fmin/linesearch.js +1 -2
  48. package/cjs/fmin/nelder-mead.js +1 -1
  49. package/dist/index.js +145 -2
  50. package/dist/index.min.js +1 -1
  51. package/es/common/ascending.js +2 -1
  52. package/es/common/cloneDeep.js +1 -2
  53. package/es/common/extent.d.ts +1 -0
  54. package/es/common/extent.js +21 -0
  55. package/es/common/extent.js.map +1 -0
  56. package/es/common/field.d.ts +12 -0
  57. package/es/common/field.js +24 -0
  58. package/es/common/field.js.map +1 -0
  59. package/es/common/index.d.ts +5 -0
  60. package/es/common/index.js +10 -0
  61. package/es/common/index.js.map +1 -1
  62. package/es/common/isArrayLike.js +2 -1
  63. package/es/common/isEmpty.js +1 -2
  64. package/es/common/isObjectLike.js +1 -1
  65. package/es/common/isPlainObject.js +1 -1
  66. package/es/common/isPrototype.js +1 -1
  67. package/es/common/isRegExp.js +1 -1
  68. package/es/common/isShallowEqual.js +2 -1
  69. package/es/common/isString.js +1 -1
  70. package/es/common/isType.js +1 -1
  71. package/es/common/isUndefined.js +1 -1
  72. package/es/common/isValid.js +1 -1
  73. package/es/common/isValidNumber.js +1 -1
  74. package/es/common/isValidUrl.js +1 -1
  75. package/es/common/lowerFirst.js +1 -1
  76. package/es/common/random.d.ts +2 -0
  77. package/es/common/random.js +13 -0
  78. package/es/common/random.js.map +1 -1
  79. package/es/common/regression-linear.d.ts +8 -0
  80. package/es/common/regression-linear.js +35 -0
  81. package/es/common/regression-linear.js.map +1 -0
  82. package/es/common/toPercent.d.ts +1 -0
  83. package/es/common/toPercent.js +6 -0
  84. package/es/common/toPercent.js.map +1 -0
  85. package/es/common/zero.d.ts +1 -0
  86. package/es/common/zero.js +2 -0
  87. package/es/common/zero.js.map +1 -0
  88. package/es/data-structure/bounds.js +1 -1
  89. package/es/data-structure/hashTable.js +1 -1
  90. package/es/data-structure/index.js +1 -1
  91. package/es/data-structure/matrix.js +1 -1
  92. package/es/data-structure/point.js +1 -1
  93. package/es/fmin/blas1.js +1 -1
  94. package/es/fmin/conjugate-gradient.js +1 -1
  95. package/es/fmin/index.js +1 -1
  96. package/es/fmin/linesearch.js +1 -2
  97. package/es/fmin/nelder-mead.js +1 -1
  98. package/package.json +21 -18
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/field.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AAgBtC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAc,EAAO,EAAE;IAC5C,OAAO,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,MAAmC,EAAE,EAAE,EAAE;IACpG,IAAI,UAAU,CAAC,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,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,QAAyE,EACzE,MAAmC,EAAE,EACrC,EAAE;IACF,IAAI,OAAO,CAAC,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;AAKF,MAAM,CAAC,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,UAAU,CAAC,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","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"]}
@@ -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';
@@ -115,4 +115,14 @@ export { default as upperFirst } from "./upperFirst";
115
115
  export { default as substitute } from "./substitute";
116
116
 
117
117
  export * from "./random";
118
+
119
+ export * from "./field";
120
+
121
+ export * from "./toPercent";
122
+
123
+ export * from "./zero";
124
+
125
+ export * from "./extent";
126
+
127
+ export * from "./regression-linear";
118
128
  //# sourceMappingURL=index.js.map
@@ -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"]}
@@ -2,4 +2,5 @@ const isArrayLike = function(value) {
2
2
  return null !== value && "function" != typeof value && Number.isFinite(value.length);
3
3
  };
4
4
 
5
- export default isArrayLike;
5
+ export default isArrayLike;
6
+ //# sourceMappingURL=isArrayLike.js.map
@@ -18,5 +18,4 @@ function isEmpty(value) {
18
18
  return !0;
19
19
  }
20
20
 
21
- export default isEmpty;
22
- //# sourceMappingURL=isEmpty.js.map
21
+ export default isEmpty;
@@ -1,4 +1,4 @@
1
1
  const isObjectLike = value => "object" == typeof value && null !== value;
2
2
 
3
3
  export default isObjectLike;
4
- //# sourceMappingURL=isObjectLike.js.map
4
+ //# sourceMappingURL=isObjectLike.js.map
@@ -11,4 +11,4 @@ const isPlainObject = function(value) {
11
11
  };
12
12
 
13
13
  export default isPlainObject;
14
- //# sourceMappingURL=isPlainObject.js.map
14
+ //# sourceMappingURL=isPlainObject.js.map
@@ -4,4 +4,4 @@ const objectProto = Object.prototype, isPrototype = function(value) {
4
4
  };
5
5
 
6
6
  export default isPrototype;
7
- //# sourceMappingURL=isPrototype.js.map
7
+ //# sourceMappingURL=isPrototype.js.map
@@ -3,4 +3,4 @@ import isType from "./isType";
3
3
  const isRegExp = value => isType(value, "RegExp");
4
4
 
5
5
  export default isRegExp;
6
- //# sourceMappingURL=isRegExp.js.map
6
+ //# sourceMappingURL=isRegExp.js.map
@@ -18,4 +18,5 @@ export function isShallowEqual(objA, objB) {
18
18
  let ret = !0;
19
19
  return Object.keys(objA).forEach((k => !!is(objA[k], objB[k]) || (ret = !1, ret))),
20
20
  ret;
21
- }
21
+ }
22
+ //# sourceMappingURL=isShallowEqual.js.map
@@ -6,4 +6,4 @@ const isString = (value, fuzzy = !1) => {
6
6
  };
7
7
 
8
8
  export default isString;
9
- //# sourceMappingURL=isString.js.map
9
+ //# sourceMappingURL=isString.js.map
@@ -1,4 +1,4 @@
1
1
  const isType = (value, type) => Object.prototype.toString.call(value) === `[object ${type}]`;
2
2
 
3
3
  export default isType;
4
- //# sourceMappingURL=isType.js.map
4
+ //# sourceMappingURL=isType.js.map
@@ -1,4 +1,4 @@
1
1
  const isUndefined = value => void 0 === value;
2
2
 
3
3
  export default isUndefined;
4
- //# sourceMappingURL=isUndefined.js.map
4
+ //# sourceMappingURL=isUndefined.js.map
@@ -1,4 +1,4 @@
1
1
  const isValid = value => null != value;
2
2
 
3
3
  export default isValid;
4
- //# sourceMappingURL=isValid.js.map
4
+ //# sourceMappingURL=isValid.js.map
@@ -3,4 +3,4 @@ import isNumber from "./isNumber";
3
3
  const isValidNumber = value => isNumber(value) && Number.isFinite(value);
4
4
 
5
5
  export default isValidNumber;
6
- //# sourceMappingURL=isValidNumber.js.map
6
+ //# sourceMappingURL=isValidNumber.js.map
@@ -1,4 +1,4 @@
1
1
  export const isValidUrl = value => new RegExp(/^(http(s)?:\/\/)\w+[^\s]+(\.[^\s]+){1,}$/).test(value);
2
2
 
3
3
  export default isValidUrl;
4
- //# sourceMappingURL=isValidUrl.js.map
4
+ //# sourceMappingURL=isValidUrl.js.map
@@ -3,4 +3,4 @@ const lowerFirst = function(str) {
3
3
  };
4
4
 
5
5
  export default lowerFirst;
6
- //# sourceMappingURL=lowerFirst.js.map
6
+ //# sourceMappingURL=lowerFirst.js.map
@@ -1 +1,3 @@
1
1
  export declare function seedRandom(seed: number): number;
2
+ export declare function randomLCG(initS?: number): () => number;
3
+ export declare const fakeRandom: () => () => number;
@@ -1,4 +1,17 @@
1
1
  export function seedRandom(seed) {
2
2
  return parseFloat("0." + Math.sin(seed).toString().substring(6));
3
3
  }
4
+
5
+ const a = 1664525, c = 1013904223, m = 4294967296;
6
+
7
+ export function randomLCG(initS = 1) {
8
+ let s = initS;
9
+ return () => (s = (a * s + c) % m) / m;
10
+ }
11
+
12
+ export const fakeRandom = () => {
13
+ let i = -1;
14
+ const arr = [ 0, .1, .2, .3, .4, .5, .6, .7, .8, .9 ];
15
+ return () => (i = (i + 1) % arr.length, arr[i]);
16
+ };
4
17
  //# sourceMappingURL=random.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/random.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,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","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,MAAM,UAAU,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;AAYD,MAAM,CAAC,GAAG,OAAO,CAAC;AAClB,MAAM,CAAC,GAAG,UAAU,CAAC;AACrB,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,MAAM,UAAU,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;AAKD,MAAM,CAAC,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","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,35 @@
1
+ import isNil from "./isNil";
2
+
3
+ export function ordinaryLeastSquares(uX, uY, uXY, uX2) {
4
+ const delta = uX2 - uX * uX, slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta;
5
+ return [ uY - slope * uX, slope ];
6
+ }
7
+
8
+ export function visitPoints(data, x, y, callback) {
9
+ let u, v, i = -1;
10
+ data.forEach((d => {
11
+ u = x(d), v = y(d), !isNil(u) && (u = +u) >= u && !isNil(v) && (v = +v) >= v && callback(u, v, ++i);
12
+ }));
13
+ }
14
+
15
+ export function rSquared(data, x, y, uY, predict) {
16
+ let SSE = 0, SST = 0;
17
+ return visitPoints(data, x, y, ((dx, dy) => {
18
+ const sse = dy - predict(dx), sst = dy - uY;
19
+ SSE += sse * sse, SST += sst * sst;
20
+ })), 1 - SSE / SST;
21
+ }
22
+
23
+ export function regressionLinear(data, x = (datum => datum.x), y = (datum => datum.y)) {
24
+ let X = 0, Y = 0, XY = 0, X2 = 0, n = 0;
25
+ visitPoints(data, x, y, ((dx, dy) => {
26
+ ++n, X += (dx - X) / n, Y += (dy - Y) / n, XY += (dx * dy - XY) / n, X2 += (dx * dx - X2) / n;
27
+ }));
28
+ const coef = ordinaryLeastSquares(X, Y, XY, X2), predict = x => coef[0] + coef[1] * x;
29
+ return {
30
+ coef: coef,
31
+ predict: predict,
32
+ rSquared: rSquared(data, x, y, Y, predict)
33
+ };
34
+ }
35
+ //# 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,6 @@
1
+ import isNil from "./isNil";
2
+
3
+ import isString from "./isString";
4
+
5
+ export const toPercent = (percent, total) => isNil(percent) ? total : isString(percent) ? total * parseFloat(percent) / 100 : percent;
6
+ //# sourceMappingURL=toPercent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/toPercent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAwB,EAAE,KAAa,EAAE,EAAE;IACnE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,OAAiB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACrF,CAAC,CAAC","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,2 @@
1
+ export const zero = _ => 0;
2
+ //# sourceMappingURL=zero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/zero.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC","file":"zero.js","sourcesContent":["export const zero = (_: any) => 0;\n"]}
@@ -159,4 +159,4 @@ export class OBBBounds extends Bounds {
159
159
  }, this.angle, originPoint) ];
160
160
  }
161
161
  }
162
- //# sourceMappingURL=bounds.js.map
162
+ //# sourceMappingURL=bounds.js.map
@@ -102,4 +102,4 @@ export class HashTable {
102
102
  }
103
103
  toImmutableMap() {}
104
104
  }
105
- //# sourceMappingURL=hashTable.js.map
105
+ //# sourceMappingURL=hashTable.js.map
@@ -5,4 +5,4 @@ export * from "./point";
5
5
  export * from "./bounds";
6
6
 
7
7
  export * from "./matrix";
8
- //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=index.js.map
@@ -103,4 +103,4 @@ export function normalTransform(out, origin, x, y, scaleX, scaleY, angle, rotate
103
103
  out.e = oe + oa * rotateCenterX + oc * rotateCenterY - a1 * offsetX - c1 * offsetY,
104
104
  out.f = of + ob * rotateCenterX + od * rotateCenterY - b1 * offsetX - d1 * offsetY;
105
105
  }
106
- //# sourceMappingURL=matrix.js.map
106
+ //# sourceMappingURL=matrix.js.map
@@ -62,4 +62,4 @@ export class PolarPoint {
62
62
  return this.r = r, this.theta = theta, this;
63
63
  }
64
64
  }
65
- //# sourceMappingURL=point.js.map
65
+ //# sourceMappingURL=point.js.map
package/es/fmin/blas1.js CHANGED
@@ -27,4 +27,4 @@ export function weightedSum(ret, w1, v1, w2, v2) {
27
27
  export function gemv(output, A, x) {
28
28
  for (let i = 0; i < output.length; ++i) output[i] = dotProduct(A[i], x);
29
29
  }
30
- //# sourceMappingURL=blas1.js.map
30
+ //# sourceMappingURL=blas1.js.map
@@ -40,4 +40,4 @@ export function conjugateGradient(f, initial, params) {
40
40
  alpha: a
41
41
  }), current;
42
42
  }
43
- //# sourceMappingURL=conjugate-gradient.js.map
43
+ //# sourceMappingURL=conjugate-gradient.js.map
package/es/fmin/index.js CHANGED
@@ -3,4 +3,4 @@ export * from "./blas1";
3
3
  export * from "./nelder-mead";
4
4
 
5
5
  export * from "./conjugate-gradient";
6
- //# sourceMappingURL=index.js.map
6
+ //# sourceMappingURL=index.js.map
@@ -23,5 +23,4 @@ export function wolfeLineSearch(f, pk, current, next, a, c1, c2) {
23
23
  phi_old = phi, a0 = a, a *= 2;
24
24
  }
25
25
  return a;
26
- }
27
- //# sourceMappingURL=linesearch.js.map
26
+ }
@@ -59,4 +59,4 @@ export function nelderMead(f, x0, parameters) {
59
59
  x: simplex[0]
60
60
  };
61
61
  }
62
- //# sourceMappingURL=nelder-mead.js.map
62
+ //# sourceMappingURL=nelder-mead.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vutils",
3
- "version": "0.19.5",
3
+ "version": "1.0.0",
4
4
  "main": "cjs/index.js",
5
5
  "module": "es/index.js",
6
6
  "types": "es/index.d.ts",
@@ -10,27 +10,40 @@
10
10
  "dist"
11
11
  ],
12
12
  "description": "util",
13
- "author": "dp-fe",
13
+ "author": {
14
+ "name": "VisActor",
15
+ "url": "https://VisActor.io/"
16
+ },
14
17
  "license": "MIT",
15
18
  "keywords": [
16
19
  "visual",
17
20
  "utility"
18
21
  ],
19
22
  "sideEffects": false,
23
+ "scripts": {
24
+ "compile": "tsc --noEmit",
25
+ "eslint": "eslint --debug --fix src/",
26
+ "build": "bundle",
27
+ "dev": "bundle --clean -f es -w",
28
+ "start": "vite ./vite",
29
+ "test": "jest",
30
+ "test-check": "DEBUG=jest jest --forceExit --detectOpenHandles --silent false --verbose false --runInBand",
31
+ "test-cov": "jest -w 16 --coverage"
32
+ },
20
33
  "devDependencies": {
34
+ "@internal/bundler": "0.0.1",
35
+ "@internal/eslint-config": "0.0.1",
36
+ "@internal/ts-config": "0.0.1",
21
37
  "@rushstack/eslint-patch": "~1.1.4",
22
38
  "eslint": "~8.18.0",
23
39
  "vite": "3.2.6",
40
+ "@internal/jest-config": "0.0.1",
24
41
  "jest": "~29.5.0",
25
42
  "@jest/globals": "~29.5.0",
26
43
  "ts-jest": "~29.1.0",
27
44
  "@types/jest": "~29.5.0",
28
45
  "typescript": "4.9.5",
29
- "@types/node": "*",
30
- "@internal/bundler": "0.0.1",
31
- "@internal/ts-config": "0.0.1",
32
- "@internal/eslint-config": "0.0.1",
33
- "@internal/jest-config": "0.0.1"
46
+ "@types/node": "*"
34
47
  },
35
48
  "dependencies": {
36
49
  "eventemitter3": "^4.0.7",
@@ -39,15 +52,5 @@
39
52
  },
40
53
  "publishConfig": {
41
54
  "access": "public"
42
- },
43
- "scripts": {
44
- "compile": "tsc --noEmit",
45
- "eslint": "eslint --debug --fix src/",
46
- "build": "bundle",
47
- "dev": "bundle --clean -f es -w",
48
- "start": "vite ./vite",
49
- "test": "jest",
50
- "test-check": "DEBUG=jest jest --forceExit --detectOpenHandles --silent false --verbose false --runInBand",
51
- "test-cov": "jest -w 16 --coverage"
52
55
  }
53
- }
56
+ }