@visactor/vrender-components
Version:
components library for dp visualization
39 lines (34 loc) • 1.82 kB
JavaScript
;
function collectTrackedAnimates(graphic, animates = [], visited = new Set) {
var _a, _b, _c, _d, _e;
const trackedAnimates = null !== (_c = null === (_b = (_a = graphic).getTrackedAnimates) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : graphic.animates;
return null == trackedAnimates || trackedAnimates.forEach((animate => {
animate && !visited.has(animate) && (visited.add(animate), animates.push(animate));
})), null === (_e = (_d = graphic).forEachChildren) || void 0 === _e || _e.call(_d, (child => {
collectTrackedAnimates(child, animates, visited);
})), animates;
}
function appendExitReleaseCallback(state, callback) {
callback && (null == state || state.onComplete.push(callback));
}
function runExitReleaseCallbacks(callbacks) {
callbacks.forEach((callback => {
callback();
}));
}
function bindExitReleaseAnimates(exitAnimates, getState, finalize) {
const finish = animate => {
const state = getState();
state && !state.finalized && state.pendingAnimates.has(animate) && (state.pendingAnimates.delete(animate),
state.pendingAnimates.size || finalize());
};
exitAnimates.forEach((animate => {
animate.onEnd((() => finish(animate))), animate.onRemove((() => finish(animate)));
}));
}
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.bindExitReleaseAnimates = exports.runExitReleaseCallbacks = exports.appendExitReleaseCallback = exports.collectTrackedAnimates = void 0,
exports.collectTrackedAnimates = collectTrackedAnimates, exports.appendExitReleaseCallback = appendExitReleaseCallback,
exports.runExitReleaseCallbacks = runExitReleaseCallbacks, exports.bindExitReleaseAnimates = bindExitReleaseAnimates;
//# sourceMappingURL=exit-release.js.map