helper.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.getColDef = getColDef;
  4. exports.getScale = getScale;
  5. exports.getFieldRange = getFieldRange;
  6. exports.getLimitRange = getLimitRange;
  7. var _common = require("../util/common");
  8. function getColDef(chart, field) {
  9. var colDef;
  10. if (chart.get('colDefs') && chart.get('colDefs')[field]) {
  11. colDef = chart.get('colDefs')[field];
  12. }
  13. return colDef;
  14. }
  15. function getScale(chart, field) {
  16. var scales = chart.get('scales');
  17. return scales[field];
  18. }
  19. function getFieldRange(scale, limitRange, type) {
  20. if (!scale) return [0, 1];
  21. var minRatio = 0;
  22. var maxRatio = 0;
  23. if (type === 'linear') {
  24. var min = limitRange.min,
  25. max = limitRange.max;
  26. minRatio = (scale.min - min) / (max - min);
  27. maxRatio = (scale.max - min) / (max - min);
  28. } else {
  29. var originValues = limitRange;
  30. var values = scale.values || [];
  31. var firstIndex = originValues.indexOf(values[0]);
  32. var lastIndex = originValues.indexOf(values[values.length - 1]);
  33. minRatio = firstIndex / (originValues.length - 1);
  34. maxRatio = lastIndex / (originValues.length - 1);
  35. }
  36. return [minRatio, maxRatio];
  37. }
  38. function getLimitRange(data, scale) {
  39. var result;
  40. var field = scale.field,
  41. type = scale.type;
  42. var values = _common.Array.values(data, field);
  43. if (type === 'linear') {
  44. result = _common.Array.getRange(values);
  45. if (scale.min < result.min) {
  46. result.min = scale.min;
  47. }
  48. if (scale.max > result.max) {
  49. result.max = scale.max;
  50. }
  51. } else if (type === 'timeCat') {
  52. (0, _common.each)(values, function (v, i) {
  53. values[i] = (0, _common.toTimeStamp)(v);
  54. });
  55. values.sort(function (v1, v2) {
  56. return v1 - v2;
  57. });
  58. result = values;
  59. } else {
  60. result = values;
  61. }
  62. return result;
  63. }