@visactor/vchart
Version:
charts lib based @visactor/VGrammar
25 lines (22 loc) • 1.34 kB
JavaScript
export const releaseVRenderComponentSync = (component, removeFromParent = !0) => {
var _a, _b, _c, _d, _e;
const parent = component.parent;
null === (_a = component.release) || void 0 === _a || _a.call(component, !0), null === (_c = (_b = component).removeAllChild) || void 0 === _c || _c.call(_b, !0),
removeFromParent && (null === (_e = null !== (_d = component.parent) && void 0 !== _d ? _d : parent) || void 0 === _e || _e.removeChild(component, !0));
};
export const collectVRenderComponents = component => {
var _a, _b;
const components = [ component ];
return null === (_b = (_a = component).forEachChildren) || void 0 === _b || _b.call(_a, (child => {
components.push(...collectVRenderComponents(child));
})), components;
};
export const releaseVRenderComponent = (component, options = {}) => {
var _a, _b;
const {enableExitAnimation: enableExitAnimation = !0, removeFromParent: removeFromParent = !0, onComplete: onComplete} = options;
return !(!enableExitAnimation || !(null === (_b = (_a = component).releaseWithExitAnimation) || void 0 === _b ? void 0 : _b.call(_a, {
removeFromParent: removeFromParent,
onComplete: onComplete
}))) || (releaseVRenderComponentSync(component, removeFromParent), !1);
};
//# sourceMappingURL=release-vrender-component.js.map