geometry.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getAllGeometriesRecursively = exports.getAllElementsRecursively = exports.getAllElements = exports.findGeometry = void 0;
  4. var util_1 = require("@antv/util");
  5. /**
  6. * 在 View 中查找第一个指定 type 类型的 geometry
  7. * @param view
  8. * @param type
  9. */
  10. function findGeometry(view, type) {
  11. return view.geometries.find(function (g) { return g.type === type; });
  12. }
  13. exports.findGeometry = findGeometry;
  14. /**
  15. * 获取 View 的 所有 elements
  16. */
  17. function getAllElements(view) {
  18. return (0, util_1.reduce)(view.geometries, function (r, geometry) {
  19. return r.concat(geometry.elements);
  20. }, []);
  21. }
  22. exports.getAllElements = getAllElements;
  23. /**
  24. * 递归获取 View 的 所有 elements, 包括 View 的子 View
  25. */
  26. function getAllElementsRecursively(view) {
  27. if ((0, util_1.get)(view, ['views', 'length'], 0) <= 0) {
  28. return getAllElements(view);
  29. }
  30. return (0, util_1.reduce)(view.views, function (ele, subView) {
  31. return ele.concat(getAllElementsRecursively(subView));
  32. }, getAllElements(view));
  33. }
  34. exports.getAllElementsRecursively = getAllElementsRecursively;
  35. /**
  36. * 递归获取 View 的 所有 geometries, 包括 View 的子 View
  37. */
  38. function getAllGeometriesRecursively(view) {
  39. if ((0, util_1.get)(view, ['views', 'length'], 0) <= 0) {
  40. return view.geometries;
  41. }
  42. return (0, util_1.reduce)(view.views, function (ele, subView) {
  43. return ele.concat(subView.geometries);
  44. }, view.geometries);
  45. }
  46. exports.getAllGeometriesRecursively = getAllGeometriesRecursively;
  47. //# sourceMappingURL=geometry.js.map