UNPKG

@antv/g2plot

Version:

G2 Plot, a market of plots built with the Grammar of Graphics'

45 lines 1.68 kB
import * as G from '@antv/g'; import { Animate } from '@antv/g2'; import * as _ from '@antv/util'; function funnelScaleInY(shape, animateCfg, coord) { var _a = animateCfg || {}, _b = _a.duration, duration = _b === void 0 ? 200 : _b, easing = _a.easing, callback = _a.callback, reverse = _a.reverse; var box = shape.getBBox(); var originX = reverse ? box.maxX : box.minX; var originY = (box.minY + box.maxY) / 2; var shapeIndex = shape.get('index'); var clip = getClip(coord); var clipTargetMatrix = _.clone(clip.attr('matrix')); clip.attr('transform', [ ['t', -originX, -originY], ['s', 0, 1], ['t', originX, originY], ]); var shapeTargetFillOpacity = shape.attr('fillOpacity'); shape.attr('fillOpacity', 0); shape.attr('clip', clip); clip.animate({ matrix: clipTargetMatrix, }, duration, easing, function () { clip.remove(); shape.attr('clip', null); }, shapeIndex * duration); shape.animate({ fillOpacity: shapeTargetFillOpacity, }, duration, easing, null, shapeIndex * duration); callback && setTimeout(function () { return callback(shape); }, duration + shapeIndex * duration); } function getClip(coord) { var start = coord.start, end = coord.end, width = coord.width, height = coord.height; var clip = new G.Shapes.Rect({ attrs: { x: start.x, y: end.y, width: width, height: height, }, }); return clip; } funnelScaleInY.animationName = 'funnelScaleInX'; Animate.registerAnimation('appear', 'funnelScaleInX', funnelScaleInY); //# sourceMappingURL=funnel-scale-in-x.js.map