view.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { each, isFunction } from '@antv/util';
  2. /**
  3. * 在 Chart 中查找特定 id 的子 View
  4. * @param chart
  5. * @param id
  6. */
  7. export function findViewById(chart, id) {
  8. return chart.views.find(function (view) { return view.id === id; });
  9. }
  10. /**
  11. * 获取同 view 同一级的所有 views
  12. * @param view 当前 view
  13. * @returns 同一级的 views
  14. * @ignore
  15. */
  16. export function getViews(view) {
  17. var parent = view.parent;
  18. return parent ? parent.views : [];
  19. }
  20. /**
  21. * 获取同 view 同一级的 views,不包括自身
  22. * @param view 当前 view
  23. * @returns 同一级的 views
  24. * @ignore
  25. */
  26. export function getSiblingViews(view) {
  27. return getViews(view).filter(function (sub) { return sub !== view; });
  28. }
  29. /**
  30. * 所有的 Geometries 都使用同一动画(各个图形如有区别,自行覆盖)并添加处理动画回调
  31. * @param view View
  32. * @param animation 动画配置
  33. */
  34. export function addViewAnimation(view, animation, geometries) {
  35. if (geometries === void 0) { geometries = view.geometries; }
  36. // 同时设置整个 view 动画选项
  37. if (typeof animation === 'boolean') {
  38. view.animate(animation);
  39. }
  40. else {
  41. view.animate(true);
  42. }
  43. // 所有的 Geometry 都使用同一动画(各个图形如有区别,自行覆盖)
  44. each(geometries, function (g) {
  45. var animationCfg;
  46. if (isFunction(animation)) {
  47. animationCfg = animation(g.type || g.shapeType, g) || true;
  48. }
  49. else {
  50. animationCfg = animation;
  51. }
  52. g.animate(animationCfg);
  53. });
  54. }
  55. //# sourceMappingURL=view.js.map