utils.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getRangeData = exports.getIndicatorData = exports.processRangeData = void 0;
  4. var util_1 = require("@antv/util");
  5. var constants_1 = require("./constants");
  6. /**
  7. * 将 range 生成为 data 数据
  8. * @param range
  9. * @param key
  10. * @returns {GaugeRangeData}
  11. */
  12. function processRangeData(range, percent) {
  13. return (range
  14. // 映射为 stack 的数据
  15. .map(function (r, idx) {
  16. var _a;
  17. return _a = {}, _a[constants_1.RANGE_VALUE] = r - (range[idx - 1] || 0), _a[constants_1.RANGE_TYPE] = "".concat(idx), _a[constants_1.PERCENT] = percent, _a;
  18. }));
  19. }
  20. exports.processRangeData = processRangeData;
  21. /**
  22. * 获取 仪表盘 指针数据
  23. * @param percent
  24. */
  25. function getIndicatorData(percent) {
  26. var _a;
  27. return [(_a = {}, _a[constants_1.PERCENT] = (0, util_1.clamp)(percent, 0, 1), _a)];
  28. }
  29. exports.getIndicatorData = getIndicatorData;
  30. /**
  31. * 获取仪表盘 表盘弧形数据
  32. * @param percent
  33. * @param range
  34. */
  35. function getRangeData(percent, range) {
  36. var ticks = (0, util_1.get)(range, ['ticks'], []);
  37. var clampTicks = (0, util_1.size)(ticks) ? (0, util_1.uniq)(ticks) : [0, (0, util_1.clamp)(percent, 0, 1), 1];
  38. if (!clampTicks[0]) {
  39. clampTicks.shift();
  40. }
  41. return processRangeData(clampTicks, percent);
  42. }
  43. exports.getRangeData = getRangeData;
  44. //# sourceMappingURL=utils.js.map