@visactor/vrender-animate
Version:
This module provides a graph-based animation system for VRender.
28 lines (26 loc) • 1.7 kB
JavaScript
import { AttributeUpdateType } from "@visactor/vrender-core/event/constant";
export function buildAnimationStaticCommitAttrs(target, keys, animate, fallbackAttrs) {
var _a;
const commitTarget = target, contextFinalAttrs = null === (_a = commitTarget.context) || void 0 === _a ? void 0 : _a.finalAttrs, finalAttribute = commitTarget.getFinalAttribute();
let commitAttrs = null;
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
animate && !animate.validAttr(key) || (contextFinalAttrs && Object.prototype.hasOwnProperty.call(contextFinalAttrs, key) ? (null != commitAttrs || (commitAttrs = {}),
commitAttrs[key] = contextFinalAttrs[key]) : finalAttribute && Object.prototype.hasOwnProperty.call(finalAttribute, key) ? (null != commitAttrs || (commitAttrs = {}),
commitAttrs[key] = finalAttribute[key]) : fallbackAttrs && Object.prototype.hasOwnProperty.call(fallbackAttrs, key) && (null != commitAttrs || (commitAttrs = {}),
commitAttrs[key] = fallbackAttrs[key]));
}
return commitAttrs;
}
export function commitAnimationStaticAttrs(target, keys, animate, fallbackAttrs) {
const commitAttrs = buildAnimationStaticCommitAttrs(target, keys, animate, fallbackAttrs);
if (!commitAttrs) return !1;
target.setFinalAttributes(commitAttrs);
const commitStaticAttributes = target._commitAnimationStaticAttributes;
return "function" == typeof commitStaticAttributes ? commitStaticAttributes.call(target, commitAttrs, {
type: AttributeUpdateType.ANIMATE_END
}) : target.setAttributes(commitAttrs, !1, {
type: AttributeUpdateType.ANIMATE_END
}), !0;
}
//# sourceMappingURL=static-truth.js.map