util.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.getCoordInfo = getCoordInfo;
  4. exports.getScaledMatrix = getScaledMatrix;
  5. exports.getAnimateParam = getAnimateParam;
  6. exports.doAnimation = doAnimation;
  7. var _index = require("../graphic/index");
  8. var _common = require("../util/common");
  9. /**
  10. * Utility
  11. * @author sima.zhang1990@gmail.com
  12. */
  13. function getCoordInfo(coord) {
  14. var start = coord.start;
  15. var end = coord.end;
  16. return {
  17. start: start,
  18. end: end,
  19. width: end.x - start.x,
  20. height: Math.abs(end.y - start.y)
  21. };
  22. }
  23. function getScaledMatrix(shape, v, direct) {
  24. var scaledMatrix;
  25. shape.apply(v);
  26. var x = v[0];
  27. var y = v[1];
  28. if (direct === 'x') {
  29. shape.transform([['t', x, y], ['s', 0.01, 1], ['t', -x, -y]]);
  30. var matrix = shape.getMatrix();
  31. scaledMatrix = _index.Matrix.transform(matrix, [['t', x, y], ['s', 100, 1], ['t', -x, -y]]);
  32. } else if (direct === 'y') {
  33. shape.transform([['t', x, y], ['s', 1, 0.01], ['t', -x, -y]]);
  34. var _matrix = shape.getMatrix();
  35. scaledMatrix = _index.Matrix.transform(_matrix, [['t', x, y], ['s', 1, 100], ['t', -x, -y]]);
  36. } else if (direct === 'xy') {
  37. shape.transform([['t', x, y], ['s', 0.01, 0.01], ['t', -x, -y]]);
  38. var _matrix2 = shape.getMatrix();
  39. scaledMatrix = _index.Matrix.transform(_matrix2, [['t', x, y], ['s', 100, 100], ['t', -x, -y]]);
  40. }
  41. return scaledMatrix;
  42. }
  43. function getAnimateParam(animateCfg, index, id) {
  44. var result = {};
  45. if (animateCfg.delay) {
  46. result.delay = (0, _common.isFunction)(animateCfg.delay) ? animateCfg.delay(index, id) : animateCfg.delay;
  47. }
  48. result.easing = animateCfg.easing;
  49. result.duration = animateCfg.duration;
  50. result.delay = animateCfg.delay;
  51. return result;
  52. }
  53. function doAnimation(shape, endState, animateCfg, callback) {
  54. var id = shape._id;
  55. var index = shape.get('index');
  56. var _getAnimateParam = getAnimateParam(animateCfg, index, id),
  57. easing = _getAnimateParam.easing,
  58. delay = _getAnimateParam.delay,
  59. duration = _getAnimateParam.duration;
  60. var anim = shape.animate().to({
  61. attrs: endState,
  62. duration: duration,
  63. delay: delay,
  64. easing: easing
  65. });
  66. if (callback) {
  67. anim.onEnd(function () {
  68. callback();
  69. });
  70. }
  71. }