UNPKG

@antv/f2

Version:

Charts for mobile visualization.

44 lines (43 loc) 1.96 kB
"use strict"; 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;