1 line
11 KiB
Plaintext
1 line
11 KiB
Plaintext
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/animate/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { deepMix, get, isFunction } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Coordinate, IGroup, IShape } from '../dependents';\nimport { AnimateCfg, Data, Datum, GAnimateCfg, Point } from '../interface';\nimport { AnimateExtraCfg } from './interface';\n\nimport { getAnimation } from './animation';\n\n// 默认的动画参数配置\nexport const DEFAULT_ANIMATE_CFG = {\n appear: {\n duration: 450,\n easing: 'easeQuadOut',\n }, // 初始入场动画配置\n update: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时发生变更的动画配置\n enter: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时新增元素的入场动画配置\n leave: {\n duration: 350,\n easing: 'easeQuadIn',\n }, // 更新时销毁动画配置\n};\n\n// 各个 Geometry 默认的动画执行函数\nconst GEOMETRY_ANIMATE_CFG = {\n interval: (coordinate: Coordinate) => {\n return {\n enter: {\n animation: coordinate.isRect\n ? coordinate.isTransposed\n ? 'scale-in-x'\n : 'scale-in-y'\n : 'fade-in',\n },\n update: {\n animation: coordinate.isPolar && coordinate.isTransposed ? 'sector-path-update' : null,\n },\n leave: {\n animation: 'fade-out',\n },\n };\n },\n line: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n path: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n point: {\n appear: {\n animation: 'zoom-in',\n },\n enter: {\n animation: 'zoom-in',\n },\n leave: {\n animation: 'zoom-out',\n },\n },\n area: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n polygon: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n schema: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n edge: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n label: {\n appear: {\n animation: 'fade-in',\n delay: 450,\n },\n enter: {\n animation: 'fade-in',\n },\n update: {\n animation: 'position-update',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n};\n\n// 各个 Geometry 默认的群组出场动画\nconst GEOMETRY_GROUP_APPEAR_ANIMATION = {\n line: () => {\n return {\n animation: 'wave-in',\n };\n },\n area: () => {\n return {\n animation: 'wave-in',\n };\n },\n path: () => {\n return {\n animation: 'fade-in',\n };\n },\n interval(coordinate: Coordinate) {\n let animation;\n\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n if (coordinate.isPolar && coordinate.isTransposed) {\n // pie chart\n animation = 'wave-in';\n }\n }\n return {\n animation,\n };\n },\n schema: (coordinate) => {\n let animation;\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n }\n return {\n animation,\n };\n },\n polygon: () => {\n return {\n animation: 'fade-in',\n duration: 500,\n };\n },\n edge: () => {\n return {\n animation: 'fade-in',\n };\n },\n};\n\n// 解析用户的动画配置\nfunction parseAnimateConfig(animateCfg: AnimateCfg, data: Data | Datum): GAnimateCfg {\n return {\n delay: isFunction(animateCfg.delay) ? animateCfg.delay(data) : animateCfg.delay,\n easing: isFunction(animateCfg.easing) ? animateCfg.easing(data) : animateCfg.easing,\n duration: isFunction(animateCfg.duration) ? animateCfg.duration(data) : animateCfg.duration,\n callback: animateCfg.callback,\n };\n}\n\n/**\n * @ignore\n * 获取 elementName 对应的动画配置,当声明了 `animateType`,则返回 `animateType` 对应的动画配置\n * @param elementName 元素名称\n * @param coordinate 做表弟类型\n * @param animateType 可选,动画类型\n */\nexport function getDefaultAnimateCfg(elementName: string, coordinate: Coordinate, animateType?: string) {\n let animateCfg = GEOMETRY_ANIMATE_CFG[elementName];\n\n if (animateCfg) {\n if (isFunction(animateCfg)) {\n animateCfg = animateCfg(coordinate);\n }\n animateCfg = deepMix({}, DEFAULT_ANIMATE_CFG, animateCfg);\n\n if (animateType) {\n return animateCfg[animateType];\n }\n }\n return animateCfg;\n}\n\n/**\n * @ignore\n * 工具函数\n * 根据用户传入的配置为 shape 执行动画\n * @param shape 执行动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外的信息\n */\nexport function doAnimate(shape: IGroup | IShape, animateCfg: AnimateCfg, cfg: AnimateExtraCfg) {\n const data = get(shape.get('origin'), 'data', FIELD_ORIGIN);\n const animation = animateCfg.animation; // 获取动画执行函数\n const parsedAnimateCfg = parseAnimateConfig(animateCfg, data);\n if (animation) {\n // 用户声明了动画执行函数\n const animateFunction = getAnimation(animation);\n if (animateFunction) {\n animateFunction(shape, parsedAnimateCfg, cfg);\n }\n } else {\n // 没有声明,则根据 toAttrs 做差值动画\n shape.animate(cfg.toAttrs, parsedAnimateCfg);\n }\n}\n\n/**\n * @ignore\n * 执行 Geometry 群组入场动画\n * @param container 执行群组动画的图形元素\n * @param animateCfg 动画配置\n * @param geometryType geometry 类型\n * @param coordinate 坐标系对象\n * @param minYPoint y 轴最小值对应的画布坐标点\n */\nexport function doGroupAppearAnimate(\n container: IGroup,\n animateCfg: AnimateCfg,\n geometryType: string,\n coordinate: Coordinate,\n minYPoint: Point\n) {\n if (GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType]) {\n const defaultCfg = GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType](coordinate);\n const animation = getAnimation(get(defaultCfg, 'animation', ''));\n if (animation) {\n const cfg = {\n ...DEFAULT_ANIMATE_CFG.appear,\n ...defaultCfg,\n ...animateCfg,\n };\n container.stopAnimate(); // 先结束当前 container 动画\n animation(container, cfg, {\n coordinate,\n minYPoint,\n toAttrs: null,\n });\n }\n }\n}\n"]} |