@antv/f2
Version:
Charts for mobile visualization.
44 lines (43 loc) • 1.96 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _elementStatus = require("../elementStatus");
var _createClipElement = _interopRequireDefault(require("../createClipElement"));
var _util = require("@antv/util");
var _default = function _default(element, animation, nextAttrs, lastAttrs) {
if (!animation) return null;
// 获取shape的默认属性
var status = element.get('status');
var clip = animation.clip,
start = animation.start,
end = animation.end,
easing = animation.easing,
delay = animation.delay,
duration = animation.duration;
var clipConfig = (0, _util.isFunction)(clip) ? clip(element._attrs.attrs) : clip;
// 裁剪动画
if (clipConfig) {
var type = clipConfig.type,
attrs = clipConfig.attrs,
clipStart = clipConfig.start;
var clipElement = (0, _createClipElement.default)(type, {
attrs: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, attrs), clipStart)
});
// 默认用 animation 配置里的 easing 和 duration
clipConfig.easing = clipConfig.easing || easing;
clipConfig.delay = typeof clipConfig.delay === 'number' ? clipConfig.delay : delay;
clipConfig.duration = clipConfig.duration || duration;
clipConfig.element = clipElement;
}
var defaultAttrs = element.getDefaultAttrs();
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, animation), {}, {
clip: clipConfig,
start: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultAttrs), lastAttrs), start),
end: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, status === _elementStatus.ELEMENT_DELETE ? null : nextAttrs), end)
});
};
exports.default = _default;