@antv/g2plot
Version:
An interactive and responsive charting library
47 lines • 1.63 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllGeometriesRecursively = exports.getAllElementsRecursively = exports.getAllElements = exports.findGeometry = void 0;
var util_1 = require("@antv/util");
/**
* 在 View 中查找第一个指定 type 类型的 geometry
* @param view
* @param type
*/
function findGeometry(view, type) {
return view.geometries.find(function (g) { return g.type === type; });
}
exports.findGeometry = findGeometry;
/**
* 获取 View 的 所有 elements
*/
function getAllElements(view) {
return util_1.reduce(view.geometries, function (r, geometry) {
return r.concat(geometry.elements);
}, []);
}
exports.getAllElements = getAllElements;
/**
* 递归获取 View 的 所有 elements, 包括 View 的子 View
*/
function getAllElementsRecursively(view) {
if (util_1.get(view, ['views', 'length'], 0) <= 0) {
return getAllElements(view);
}
return util_1.reduce(view.views, function (ele, subView) {
return ele.concat(getAllElementsRecursively(subView));
}, getAllElements(view));
}
exports.getAllElementsRecursively = getAllElementsRecursively;
/**
* 递归获取 View 的 所有 geometries, 包括 View 的子 View
*/
function getAllGeometriesRecursively(view) {
if (util_1.get(view, ['views', 'length'], 0) <= 0) {
return view.geometries;
}
return util_1.reduce(view.views, function (ele, subView) {
return ele.concat(subView.geometries);
}, view.geometries);
}
exports.getAllGeometriesRecursively = getAllGeometriesRecursively;
//# sourceMappingURL=geometry.js.map
;