@visactor/vchart 1.12.11 → 1.12.12-alpha.1

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 (35) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +36 -20
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/compile/util.js +2 -1
  6. package/cjs/component/axis/interface/spec.d.ts +1 -0
  7. package/cjs/component/axis/interface/spec.js.map +1 -1
  8. package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
  9. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  10. package/cjs/component/axis/mixin/util/break-data.d.ts +1 -1
  11. package/cjs/component/axis/mixin/util/break-data.js +35 -12
  12. package/cjs/component/axis/mixin/util/break-data.js.map +1 -1
  13. package/cjs/component/index.js +1 -2
  14. package/cjs/core/index.d.ts +1 -1
  15. package/cjs/core/index.js +1 -1
  16. package/cjs/core/index.js.map +1 -1
  17. package/cjs/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
  18. package/cjs/util/array.js +2 -1
  19. package/cjs/util/array.js.map +1 -1
  20. package/esm/compile/util.js +2 -1
  21. package/esm/component/axis/interface/spec.d.ts +1 -0
  22. package/esm/component/axis/interface/spec.js.map +1 -1
  23. package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
  24. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  25. package/esm/component/axis/mixin/util/break-data.d.ts +1 -1
  26. package/esm/component/axis/mixin/util/break-data.js +35 -12
  27. package/esm/component/axis/mixin/util/break-data.js.map +1 -1
  28. package/esm/component/index.js +1 -2
  29. package/esm/core/index.d.ts +1 -1
  30. package/esm/core/index.js +1 -1
  31. package/esm/core/index.js.map +1 -1
  32. package/esm/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
  33. package/esm/util/array.js +2 -1
  34. package/esm/util/array.js.map +1 -1
  35. package/package.json +4 -4
package/build/index.js CHANGED
@@ -24883,7 +24883,7 @@
24883
24883
  const result = [];
24884
24884
  for (let index = 0; index < domains.length; index++) {
24885
24885
  const domain = domains[index];
24886
- if (index === 0) {
24886
+ if (index === 0 || domain[0] !== result[result.length - 1]) {
24887
24887
  result.push(domain[0]);
24888
24888
  }
24889
24889
  result.push(domain[1]);
@@ -61735,7 +61735,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61735
61735
  };
61736
61736
  registerVChartCore();
61737
61737
 
61738
- const version = "1.12.11";
61738
+ const version = "1.12.12-alpha.1";
61739
61739
 
61740
61740
  const addVChartProperty = (data, op) => {
61741
61741
  const context = op.beforeCall();
@@ -66887,42 +66887,58 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
66887
66887
  }
66888
66888
  const sorter = (a, b) => a - b;
66889
66889
  const fillBins = (data, points) => {
66890
- const bins = [0];
66890
+ const bins = [
66891
+ { count: 0, sub: [], max: points[0], min: points[0] }
66892
+ ];
66891
66893
  let i = 0;
66892
66894
  let j = 0;
66893
66895
  while (i < points.length) {
66894
66896
  if (data[j] <= points[i]) {
66895
- bins[i] += 1;
66897
+ bins[i].count += 1;
66898
+ bins[i].sub.push(data[j]);
66896
66899
  j += 1;
66897
66900
  }
66898
66901
  else {
66899
66902
  i += 1;
66900
- bins[i] = 0;
66903
+ bins[i] = { count: 0, sub: [], max: points[i], min: points[i] };
66901
66904
  }
66902
66905
  }
66903
- bins[i] = data.slice(j).length;
66906
+ bins.forEach(bin => {
66907
+ if (bin.count) {
66908
+ bin.min = Math.min.apply(null, bin.sub);
66909
+ }
66910
+ });
66911
+ const remain = data.slice(j);
66912
+ bins[i] = { count: remain.length, sub: remain, min: points[points.length - 1], max: Math.max.apply(null, remain) };
66904
66913
  return bins;
66905
66914
  };
66906
- function breakScope(data, points) {
66915
+ function breakScope(data, points, scopeType = 'count') {
66907
66916
  const bins = fillBins(data, points);
66908
- const count = data.length;
66909
- return bins
66910
- .reduce((res, bin, i) => {
66911
- const last = res[i - 1] ? res[i - 1][1] : 0;
66912
- const next = (last * 100 + +(bin / count).toFixed(2) * 100) / 100;
66913
- res.push([last, next > 1 ? 1 : next]);
66914
- return res;
66915
- }, [])
66916
- .filter(s => {
66917
- return !(s[0] === 0 && s[1] === 0) && !(s[0] === 1 && s[1] === 1);
66917
+ const totalLength = scopeType === 'count'
66918
+ ? data.length
66919
+ : bins.reduce((res, bin, i) => {
66920
+ return bin.count > 0 ? res + bin.max - bin.min : res;
66921
+ }, 0);
66922
+ const res = [];
66923
+ let acc = 0;
66924
+ bins.forEach((bin, i) => {
66925
+ if (totalLength === 0) {
66926
+ res.push([0, i / bins.length - 1]);
66927
+ }
66928
+ else {
66929
+ const length = scopeType === 'count' ? bin.count : bin.max - bin.min;
66930
+ res.push([res[i - 1] ? res[i - 1][1] : 0, i === bins.length - 1 ? 1 : Math.min((acc + length) / totalLength, 1)]);
66931
+ acc += length;
66932
+ }
66918
66933
  });
66934
+ return res;
66919
66935
  }
66920
- function breakData(data, points) {
66936
+ function breakData(data, points, scopeType) {
66921
66937
  data.sort(sorter);
66922
66938
  points.sort(sorter);
66923
66939
  return {
66924
66940
  domain: breakDomain(data, points),
66925
- scope: breakScope(data, points)
66941
+ scope: breakScope(data, points, scopeType)
66926
66942
  };
66927
66943
  }
66928
66944
 
@@ -67043,7 +67059,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
67043
67059
  }
67044
67060
  breakRanges.sort((a, b) => a[0] - b[0]);
67045
67061
  if (breakRanges.length) {
67046
- const { domain: breakDomains, scope: breakScopes } = breakData(values, combineDomains(breakRanges));
67062
+ const { domain: breakDomains, scope: breakScopes } = breakData(values, combineDomains(breakRanges), this._spec.breaks[0].scopeType);
67047
67063
  domain = combineDomains(breakDomains);
67048
67064
  this._break = {
67049
67065
  domain: breakDomains,