@visactor/vrender-animate 0.22.4 → 0.22.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/animate-extension.d.ts +12 -5
- package/cjs/animate-extension.js +23 -12
- package/cjs/animate-extension.js.map +1 -1
- package/cjs/animate.d.ts +2 -5
- package/cjs/animate.js +23 -18
- package/cjs/animate.js.map +1 -1
- package/cjs/component/component-animate-extension.d.ts +1 -0
- package/cjs/component/component-animate-extension.js +1 -0
- package/cjs/component/component-animate-extension.js.map +1 -0
- package/cjs/component/component-animator.d.ts +22 -0
- package/cjs/component/component-animator.js +67 -0
- package/cjs/component/component-animator.js.map +1 -0
- package/cjs/component/index.d.ts +1 -0
- package/cjs/component/index.js +21 -0
- package/cjs/component/index.js.map +1 -0
- package/cjs/config/morphing.d.ts +2 -0
- package/cjs/config/morphing.js +9 -0
- package/cjs/config/morphing.js.map +1 -0
- package/cjs/custom/clip-graphic.d.ts +1 -1
- package/cjs/custom/clip-graphic.js +2 -2
- package/cjs/custom/clip-graphic.js.map +1 -1
- package/cjs/custom/clip.d.ts +2 -1
- package/cjs/custom/clip.js +9 -1
- package/cjs/custom/clip.js.map +1 -1
- package/cjs/custom/common.d.ts +1 -3
- package/cjs/custom/common.js +21 -17
- package/cjs/custom/common.js.map +1 -1
- package/cjs/custom/custom-animate.d.ts +7 -3
- package/cjs/custom/custom-animate.js +13 -2
- package/cjs/custom/custom-animate.js.map +1 -1
- package/cjs/custom/fade.d.ts +1 -1
- package/cjs/custom/fade.js +7 -2
- package/cjs/custom/fade.js.map +1 -1
- package/cjs/custom/fromTo.d.ts +10 -0
- package/cjs/custom/fromTo.js +42 -0
- package/cjs/custom/fromTo.js.map +1 -0
- package/cjs/custom/groupFade.d.ts +10 -0
- package/cjs/custom/groupFade.js +25 -0
- package/cjs/custom/groupFade.js.map +1 -0
- package/cjs/custom/growAngle.d.ts +10 -5
- package/cjs/custom/growAngle.js +38 -17
- package/cjs/custom/growAngle.js.map +1 -1
- package/cjs/custom/growCenter.d.ts +1 -2
- package/cjs/custom/growCenter.js +16 -10
- package/cjs/custom/growCenter.js.map +1 -1
- package/cjs/custom/growHeight.d.ts +1 -3
- package/cjs/custom/growHeight.js +19 -13
- package/cjs/custom/growHeight.js.map +1 -1
- package/cjs/custom/growPoints.d.ts +1 -2
- package/cjs/custom/growPoints.js +41 -36
- package/cjs/custom/growPoints.js.map +1 -1
- package/cjs/custom/growRadius.d.ts +4 -5
- package/cjs/custom/growRadius.js +22 -18
- package/cjs/custom/growRadius.js.map +1 -1
- package/cjs/custom/growWidth.d.ts +1 -3
- package/cjs/custom/growWidth.js +15 -9
- package/cjs/custom/growWidth.js.map +1 -1
- package/cjs/custom/input-text.d.ts +1 -2
- package/cjs/custom/input-text.js.map +1 -1
- package/cjs/custom/label-item-animate.d.ts +7 -0
- package/cjs/custom/label-item-animate.js +221 -0
- package/cjs/custom/label-item-animate.js.map +1 -0
- package/cjs/custom/morphing.d.ts +51 -0
- package/cjs/custom/morphing.js +298 -0
- package/cjs/custom/morphing.js.map +1 -0
- package/cjs/custom/motionPath.d.ts +21 -0
- package/cjs/custom/motionPath.js +31 -0
- package/cjs/custom/motionPath.js.map +1 -0
- package/cjs/custom/move.d.ts +96 -0
- package/cjs/custom/move.js +133 -0
- package/cjs/custom/move.js.map +1 -0
- package/cjs/custom/number.d.ts +1 -2
- package/cjs/custom/number.js.map +1 -1
- package/cjs/custom/poptip-animate.d.ts +7 -0
- package/cjs/custom/poptip-animate.js +109 -0
- package/cjs/custom/poptip-animate.js.map +1 -0
- package/cjs/custom/register.d.ts +27 -0
- package/cjs/custom/register.js +418 -3
- package/cjs/custom/register.js.map +1 -1
- package/cjs/custom/richtext/input-richtext.d.ts +35 -0
- package/cjs/custom/richtext/input-richtext.js +80 -0
- package/cjs/custom/richtext/input-richtext.js.map +1 -0
- package/cjs/custom/richtext/output-richtext.d.ts +37 -0
- package/cjs/custom/richtext/output-richtext.js +94 -0
- package/cjs/custom/richtext/output-richtext.js.map +1 -0
- package/cjs/custom/richtext/slide-out-richtext.d.ts +38 -0
- package/cjs/custom/richtext/slide-out-richtext.js +146 -0
- package/cjs/custom/richtext/slide-out-richtext.js.map +1 -0
- package/cjs/custom/richtext/slide-richtext.d.ts +36 -0
- package/cjs/custom/richtext/slide-richtext.js +144 -0
- package/cjs/custom/richtext/slide-richtext.js.map +1 -0
- package/cjs/custom/rotate.d.ts +33 -0
- package/cjs/custom/rotate.js +79 -0
- package/cjs/custom/rotate.js.map +1 -0
- package/cjs/custom/scale.d.ts +6 -2
- package/cjs/custom/scale.js +32 -17
- package/cjs/custom/scale.js.map +1 -1
- package/cjs/custom/sphere.d.ts +2 -1
- package/cjs/custom/sphere.js +14 -5
- package/cjs/custom/sphere.js.map +1 -1
- package/cjs/custom/state.d.ts +1 -1
- package/cjs/custom/state.js +1 -1
- package/cjs/custom/state.js.map +1 -1
- package/cjs/custom/story.d.ts +196 -0
- package/cjs/custom/story.js +497 -0
- package/cjs/custom/story.js.map +1 -0
- package/cjs/custom/streamLight.d.ts +27 -0
- package/cjs/custom/streamLight.js +161 -0
- package/cjs/custom/streamLight.js.map +1 -0
- package/cjs/custom/tag-points.d.ts +2 -3
- package/cjs/custom/tag-points.js +20 -4
- package/cjs/custom/tag-points.js.map +1 -1
- package/cjs/custom/update.d.ts +2 -2
- package/cjs/custom/update.js +10 -2
- package/cjs/custom/update.js.map +1 -1
- package/cjs/executor/animate-executor.d.ts +7 -6
- package/cjs/executor/animate-executor.js +118 -62
- package/cjs/executor/animate-executor.js.map +1 -1
- package/cjs/executor/executor.d.ts +9 -3
- package/cjs/executor/executor.js.map +1 -1
- package/cjs/index.d.ts +8 -8
- package/cjs/index.js +50 -18
- package/cjs/index.js.map +1 -1
- package/cjs/interpolate/store.d.ts +6 -2
- package/cjs/interpolate/store.js +13 -2
- package/cjs/interpolate/store.js.map +1 -1
- package/cjs/register.js +1 -5
- package/cjs/register.js.map +1 -1
- package/cjs/state/animation-state.d.ts +20 -2
- package/cjs/state/animation-state.js +48 -4
- package/cjs/state/animation-state.js.map +1 -1
- package/cjs/state/animation-states-registry.js +18 -0
- package/cjs/state/animation-states-registry.js.map +1 -1
- package/cjs/state/graphic-extension.d.ts +7 -1
- package/cjs/state/graphic-extension.js +20 -0
- package/cjs/state/graphic-extension.js.map +1 -1
- package/cjs/step.d.ts +7 -4
- package/cjs/step.js +33 -15
- package/cjs/step.js.map +1 -1
- package/cjs/ticker/default-ticker.d.ts +12 -7
- package/cjs/ticker/default-ticker.js +38 -33
- package/cjs/ticker/default-ticker.js.map +1 -1
- package/cjs/ticker/manual-ticker.d.ts +6 -1
- package/cjs/ticker/manual-ticker.js +26 -4
- package/cjs/ticker/manual-ticker.js.map +1 -1
- package/cjs/timeline.d.ts +14 -7
- package/cjs/timeline.js +31 -18
- package/cjs/timeline.js.map +1 -1
- package/cjs/utils/transform.d.ts +2 -0
- package/cjs/utils/transform.js +10 -0
- package/cjs/utils/transform.js.map +1 -0
- package/dist/index.es.js +3765 -527
- package/es/animate-extension.d.ts +12 -5
- package/es/animate-extension.js +24 -11
- package/es/animate-extension.js.map +1 -1
- package/es/animate.d.ts +2 -5
- package/es/animate.js +14 -11
- package/es/animate.js.map +1 -1
- package/es/component/component-animate-extension.d.ts +1 -0
- package/es/component/component-animate-extension.js +1 -0
- package/es/component/component-animate-extension.js.map +1 -0
- package/es/component/component-animator.d.ts +22 -0
- package/es/component/component-animator.js +59 -0
- package/es/component/component-animator.js.map +1 -0
- package/es/component/index.d.ts +1 -0
- package/es/component/index.js +2 -0
- package/es/component/index.js.map +1 -0
- package/es/config/morphing.d.ts +2 -0
- package/es/config/morphing.js +5 -0
- package/es/config/morphing.js.map +1 -0
- package/es/custom/clip-graphic.d.ts +1 -1
- package/es/custom/clip-graphic.js +2 -2
- package/es/custom/clip-graphic.js.map +1 -1
- package/es/custom/clip.d.ts +2 -1
- package/es/custom/clip.js +9 -1
- package/es/custom/clip.js.map +1 -1
- package/es/custom/common.d.ts +1 -3
- package/es/custom/common.js +21 -17
- package/es/custom/common.js.map +1 -1
- package/es/custom/custom-animate.d.ts +7 -3
- package/es/custom/custom-animate.js +10 -1
- package/es/custom/custom-animate.js.map +1 -1
- package/es/custom/fade.d.ts +1 -1
- package/es/custom/fade.js +7 -2
- package/es/custom/fade.js.map +1 -1
- package/es/custom/fromTo.d.ts +10 -0
- package/es/custom/fromTo.js +34 -0
- package/es/custom/fromTo.js.map +1 -0
- package/es/custom/groupFade.d.ts +10 -0
- package/es/custom/groupFade.js +15 -0
- package/es/custom/groupFade.js.map +1 -0
- package/es/custom/growAngle.d.ts +10 -5
- package/es/custom/growAngle.js +39 -15
- package/es/custom/growAngle.js.map +1 -1
- package/es/custom/growCenter.d.ts +1 -2
- package/es/custom/growCenter.js +16 -10
- package/es/custom/growCenter.js.map +1 -1
- package/es/custom/growHeight.d.ts +1 -3
- package/es/custom/growHeight.js +20 -14
- package/es/custom/growHeight.js.map +1 -1
- package/es/custom/growPoints.d.ts +1 -2
- package/es/custom/growPoints.js +40 -36
- package/es/custom/growPoints.js.map +1 -1
- package/es/custom/growRadius.d.ts +4 -5
- package/es/custom/growRadius.js +22 -16
- package/es/custom/growRadius.js.map +1 -1
- package/es/custom/growWidth.d.ts +1 -3
- package/es/custom/growWidth.js +16 -10
- package/es/custom/growWidth.js.map +1 -1
- package/es/custom/input-text.d.ts +1 -2
- package/es/custom/input-text.js.map +1 -1
- package/es/custom/label-item-animate.d.ts +7 -0
- package/es/custom/label-item-animate.js +215 -0
- package/es/custom/label-item-animate.js.map +1 -0
- package/es/custom/morphing.d.ts +51 -0
- package/es/custom/morphing.js +289 -0
- package/es/custom/morphing.js.map +1 -0
- package/es/custom/motionPath.d.ts +21 -0
- package/es/custom/motionPath.js +23 -0
- package/es/custom/motionPath.js.map +1 -0
- package/es/custom/move.d.ts +96 -0
- package/es/custom/move.js +118 -0
- package/es/custom/move.js.map +1 -0
- package/es/custom/number.d.ts +1 -2
- package/es/custom/number.js.map +1 -1
- package/es/custom/poptip-animate.d.ts +7 -0
- package/es/custom/poptip-animate.js +103 -0
- package/es/custom/poptip-animate.js.map +1 -0
- package/es/custom/register.d.ts +27 -0
- package/es/custom/register.js +48 -1
- package/es/custom/register.js.map +1 -1
- package/es/custom/richtext/input-richtext.d.ts +35 -0
- package/es/custom/richtext/input-richtext.js +74 -0
- package/es/custom/richtext/input-richtext.js.map +1 -0
- package/es/custom/richtext/output-richtext.d.ts +37 -0
- package/es/custom/richtext/output-richtext.js +88 -0
- package/es/custom/richtext/output-richtext.js.map +1 -0
- package/es/custom/richtext/slide-out-richtext.d.ts +38 -0
- package/es/custom/richtext/slide-out-richtext.js +140 -0
- package/es/custom/richtext/slide-out-richtext.js.map +1 -0
- package/es/custom/richtext/slide-richtext.d.ts +36 -0
- package/es/custom/richtext/slide-richtext.js +138 -0
- package/es/custom/richtext/slide-richtext.js.map +1 -0
- package/es/custom/rotate.d.ts +33 -0
- package/es/custom/rotate.js +65 -0
- package/es/custom/rotate.js.map +1 -0
- package/es/custom/scale.d.ts +6 -2
- package/es/custom/scale.js +32 -17
- package/es/custom/scale.js.map +1 -1
- package/es/custom/sphere.d.ts +2 -1
- package/es/custom/sphere.js +14 -5
- package/es/custom/sphere.js.map +1 -1
- package/es/custom/state.d.ts +1 -1
- package/es/custom/state.js +1 -1
- package/es/custom/state.js.map +1 -1
- package/es/custom/story.d.ts +196 -0
- package/es/custom/story.js +468 -0
- package/es/custom/story.js.map +1 -0
- package/es/custom/streamLight.d.ts +27 -0
- package/es/custom/streamLight.js +157 -0
- package/es/custom/streamLight.js.map +1 -0
- package/es/custom/tag-points.d.ts +2 -3
- package/es/custom/tag-points.js +21 -5
- package/es/custom/tag-points.js.map +1 -1
- package/es/custom/update.d.ts +2 -2
- package/es/custom/update.js +10 -2
- package/es/custom/update.js.map +1 -1
- package/es/executor/animate-executor.d.ts +7 -6
- package/es/executor/animate-executor.js +116 -61
- package/es/executor/animate-executor.js.map +1 -1
- package/es/executor/executor.d.ts +9 -3
- package/es/executor/executor.js.map +1 -1
- package/es/index.d.ts +8 -8
- package/es/index.js +10 -12
- package/es/index.js.map +1 -1
- package/es/interpolate/store.d.ts +6 -2
- package/es/interpolate/store.js +13 -3
- package/es/interpolate/store.js.map +1 -1
- package/es/register.js +0 -8
- package/es/register.js.map +1 -1
- package/es/state/animation-state.d.ts +20 -2
- package/es/state/animation-state.js +48 -2
- package/es/state/animation-state.js.map +1 -1
- package/es/state/animation-states-registry.js +18 -0
- package/es/state/animation-states-registry.js.map +1 -1
- package/es/state/graphic-extension.d.ts +7 -1
- package/es/state/graphic-extension.js +20 -0
- package/es/state/graphic-extension.js.map +1 -1
- package/es/step.d.ts +7 -4
- package/es/step.js +34 -16
- package/es/step.js.map +1 -1
- package/es/ticker/default-ticker.d.ts +12 -7
- package/es/ticker/default-ticker.js +30 -27
- package/es/ticker/default-ticker.js.map +1 -1
- package/es/ticker/manual-ticker.d.ts +6 -1
- package/es/ticker/manual-ticker.js +27 -3
- package/es/ticker/manual-ticker.js.map +1 -1
- package/es/timeline.d.ts +14 -7
- package/es/timeline.js +33 -18
- package/es/timeline.js.map +1 -1
- package/es/utils/transform.d.ts +2 -0
- package/es/utils/transform.js +4 -0
- package/es/utils/transform.js.map +1 -0
- package/package.json +16 -16
- package/cjs/custom/group-fade.d.ts +0 -16
- package/cjs/custom/group-fade.js +0 -66
- package/cjs/custom/group-fade.js.map +0 -1
- package/cjs/custom/scale-in.d.ts +0 -13
- package/cjs/custom/scale-in.js +0 -57
- package/cjs/custom/scale-in.js.map +0 -1
- package/cjs/interpolate/executor.d.ts +0 -66
- package/cjs/interpolate/executor.js +0 -6
- package/cjs/interpolate/executor.js.map +0 -1
- package/cjs/intreface/animate.d.ts +0 -91
- package/cjs/intreface/animate.js +0 -10
- package/cjs/intreface/animate.js.map +0 -1
- package/cjs/intreface/easing.d.ts +0 -3
- package/cjs/intreface/easing.js +0 -6
- package/cjs/intreface/easing.js.map +0 -1
- package/cjs/intreface/state.d.ts +0 -35
- package/cjs/intreface/state.js +0 -6
- package/cjs/intreface/state.js.map +0 -1
- package/cjs/intreface/ticker.d.ts +0 -37
- package/cjs/intreface/ticker.js +0 -10
- package/cjs/intreface/ticker.js.map +0 -1
- package/cjs/intreface/timeline.d.ts +0 -17
- package/cjs/intreface/timeline.js +0 -6
- package/cjs/intreface/timeline.js.map +0 -1
- package/cjs/intreface/type.d.ts +0 -13
- package/cjs/intreface/type.js +0 -15
- package/cjs/intreface/type.js.map +0 -1
- package/cjs/state/animation-state-machine.d.ts +0 -22
- package/cjs/state/animation-state-machine.js +0 -53
- package/cjs/state/animation-state-machine.js.map +0 -1
- package/cjs/state/animation-state-queue.d.ts +0 -24
- package/cjs/state/animation-state-queue.js +0 -66
- package/cjs/state/animation-state-queue.js.map +0 -1
- package/cjs/state/animation-state-registry.d.ts +0 -14
- package/cjs/state/animation-state-registry.js +0 -53
- package/cjs/state/animation-state-registry.js.map +0 -1
- package/es/custom/group-fade.d.ts +0 -16
- package/es/custom/group-fade.js +0 -56
- package/es/custom/group-fade.js.map +0 -1
- package/es/custom/scale-in.d.ts +0 -13
- package/es/custom/scale-in.js +0 -49
- package/es/custom/scale-in.js.map +0 -1
- package/es/interpolate/executor.d.ts +0 -66
- package/es/interpolate/executor.js +0 -2
- package/es/interpolate/executor.js.map +0 -1
- package/es/intreface/animate.d.ts +0 -91
- package/es/intreface/animate.js +0 -6
- package/es/intreface/animate.js.map +0 -1
- package/es/intreface/easing.d.ts +0 -3
- package/es/intreface/easing.js +0 -2
- package/es/intreface/easing.js.map +0 -1
- package/es/intreface/state.d.ts +0 -35
- package/es/intreface/state.js +0 -2
- package/es/intreface/state.js.map +0 -1
- package/es/intreface/ticker.d.ts +0 -37
- package/es/intreface/ticker.js +0 -6
- package/es/intreface/ticker.js.map +0 -1
- package/es/intreface/timeline.d.ts +0 -17
- package/es/intreface/timeline.js +0 -2
- package/es/intreface/timeline.js.map +0 -1
- package/es/intreface/type.d.ts +0 -13
- package/es/intreface/type.js +0 -14
- package/es/intreface/type.js.map +0 -1
- package/es/state/animation-state-machine.d.ts +0 -22
- package/es/state/animation-state-machine.js +0 -47
- package/es/state/animation-state-machine.js.map +0 -1
- package/es/state/animation-state-queue.d.ts +0 -24
- package/es/state/animation-state-queue.js +0 -58
- package/es/state/animation-state-queue.js.map +0 -1
- package/es/state/animation-state-registry.d.ts +0 -14
- package/es/state/animation-state-registry.js +0 -45
- package/es/state/animation-state-registry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/custom/move.ts"],"names":[],"mappings":"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","file":"move.js","sourcesContent":["import type { EasingType, IGraphic, IGroup } from '@visactor/vrender-core';\nimport { isFunction, isValidNumber } from '@visactor/vutils';\nimport { ACustomAnimate } from './custom-animate';\n\nexport type FunctionCallback<T> = (...args: any[]) => T;\n\nexport interface IMoveAnimationOptions {\n direction?: 'x' | 'y' | 'xy';\n orient?: 'positive' | 'negative';\n offset?: number;\n point?: { x?: number; y?: number } | FunctionCallback<{ x?: number; y?: number }>;\n excludeChannels?: string[];\n layoutRect?: { width: number; height: number };\n}\n\ninterface IAnimationParameters {\n width: number;\n height: number;\n group: IGroup;\n elementIndex: number;\n elementCount: number;\n view: any;\n}\n\n// When user did not provide proper x/y value, move animation will never work properly,\n// due to that, default x/y value won't be set.\n\nexport const moveIn = (\n graphic: IGraphic,\n options: IMoveAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const { offset = 0, orient, direction, point: pointOpt, excludeChannels = [], layoutRect = {} } = options ?? {};\n let changedX = 0;\n let changedY = 0;\n\n if (orient === 'negative') {\n changedX = (layoutRect as any).width ?? graphic.stage.viewWidth;\n changedY = (layoutRect as any).height ?? graphic.stage.viewHeight;\n }\n\n changedX += offset;\n changedY += offset;\n const point = isFunction(pointOpt)\n ? pointOpt.call(null, graphic.context?.data?.[0], graphic, animationParameters)\n : pointOpt;\n const fromX = point && isValidNumber(point.x) ? point.x : changedX;\n const fromY = point && isValidNumber(point.y) ? point.y : changedY;\n const finalAttrs = graphic.getFinalAttribute();\n const finalAttrsX = excludeChannels.includes('x') ? graphic.attribute.x : finalAttrs.x;\n const finalAttrsY = excludeChannels.includes('y') ? graphic.attribute.y : finalAttrs.y;\n\n switch (direction) {\n case 'x':\n return {\n from: { x: fromX },\n to: { x: finalAttrsX }\n };\n case 'y':\n return {\n from: { y: fromY },\n to: { y: finalAttrsY }\n };\n case 'xy':\n default:\n return {\n from: { x: fromX, y: fromY },\n to: {\n x: finalAttrsX,\n y: finalAttrsY\n }\n };\n }\n};\n\nexport const moveOut = (\n graphic: IGraphic,\n options: IMoveAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const { offset = 0, orient, direction, point: pointOpt } = options ?? {};\n\n // consider the offset of group\n // const groupBounds = graphic.parent ? graphic.parent.getBounds() : null;\n const groupWidth = options.layoutRect?.width ?? graphic.stage.viewWidth;\n const groupHeight = options.layoutRect?.height ?? graphic.stage.viewHeight;\n const changedX = (orient === 'negative' ? groupWidth : 0) + offset;\n const changedY = (orient === 'negative' ? groupHeight : 0) + offset;\n const point = isFunction(pointOpt)\n ? pointOpt.call(null, graphic.context?.data?.[0], graphic, animationParameters)\n : pointOpt;\n const fromX = point && isValidNumber(point.x) ? point.x : changedX;\n const fromY = point && isValidNumber(point.y) ? point.y : changedY;\n\n switch (direction) {\n case 'x':\n return {\n from: { x: graphic.attribute.x },\n to: { x: fromX }\n };\n case 'y':\n return {\n from: { y: graphic.attribute.y },\n to: { y: fromY }\n };\n case 'xy':\n default:\n return {\n from: {\n x: graphic.attribute.x,\n y: graphic.attribute.y\n },\n to: { x: fromX, y: fromY }\n };\n }\n};\n\nexport class MoveBase extends ACustomAnimate<Record<string, number>> {\n declare valid: boolean;\n\n constructor(from: null, to: null, duration: number, easing: EasingType, params?: any) {\n super(from, to, duration, easing, params);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n const attribute: Record<string, any> = this.target.attribute;\n this.propKeys.forEach(key => {\n attribute[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;\n });\n this.target.addUpdatePositionTag();\n this.target.addUpdateShapeAndBoundsTag();\n }\n}\n\n/**\n * 增长渐入\n */\nexport class MoveIn extends MoveBase {\n onBind(): void {\n super.onBind();\n const { from, to } = moveIn(this.target, this.params.options, this.params);\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => (to as any)[key] != null);\n this.from = from;\n this.to = to;\n\n // 用于入场的时候设置属性(因为有动画的时候VChart不会再设置属性了)\n const finalAttribute = this.target.getFinalAttribute();\n if (finalAttribute) {\n this.target.setAttributes(finalAttribute);\n }\n\n if (this.params.controlOptions?.immediatelyApply !== false) {\n this.target.setAttributes(from);\n }\n }\n}\n\nexport class MoveOut extends MoveBase {\n onBind(): void {\n super.onBind();\n const { from, to } = moveOut(this.target, this.params.options, this.params);\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => (to as any)[key] != null);\n this.from = from;\n this.to = to;\n }\n}\n"]}
|
package/es/custom/number.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { IAnimate, IStep } from '
|
|
2
|
-
import type { EasingType } from '../intreface/easing';
|
|
1
|
+
import type { EasingType, IAnimate, IStep } from '@visactor/vrender-core';
|
|
3
2
|
import { ACustomAnimate } from './custom-animate';
|
|
4
3
|
export declare class IncreaseCount extends ACustomAnimate<{
|
|
5
4
|
text: string | number;
|
package/es/custom/number.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/custom/number.ts"],"names":[],"mappings":"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","file":"number.js","sourcesContent":["import type { IAnimate, IStep } from '../intreface/animate';\nimport type { EasingType } from '../intreface/easing';\nimport { ACustomAnimate } from './custom-animate';\n\n/**\n * 数字增加动画,支持string; number; xx%; xx,xxx; xxx.xx%\n * 也支持通过formatTemplate参数指定格式化模板,如 \"{{var}}m\"、\"${{var}}\"\n * format和formatTemplate可以同时生效,先应用format再应用模板\n */\nexport class IncreaseCount extends ACustomAnimate<{ text: string | number }> {\n declare valid: boolean;\n\n private fromNumber: number;\n private toNumber: number;\n private decimalLength: number;\n private format: string;\n private formatTemplate: string | null = null;\n\n constructor(\n from: { text: string | number },\n to: { text: string | number },\n duration: number,\n easing: EasingType,\n // 支持外部控制小数位数以及格式化\n // format控制数字本身的格式化方式\n // formatTemplate可以定义模板字符串如 \"{{var}}m\"、\"${{var}}\",两者可以同时使用\n params?: {\n decimalLength?: number;\n format?: 'percent' | 'thousandth' | 'none';\n formatTemplate?: string;\n }\n ) {\n super(from, to, duration, easing, params);\n this.decimalLength = params?.decimalLength;\n\n // 检查是否提供了格式化模板\n if (params?.formatTemplate && params.formatTemplate.includes('{{var}}')) {\n this.formatTemplate = params.formatTemplate;\n }\n }\n\n onFirstRun(): void {\n const fromProps = this.getLastProps();\n const toProps = this.getEndProps();\n const fromText = fromProps.text ?? 0;\n const toText = toProps.text ?? 0;\n\n // 初始化解析结果\n this.valid = true;\n let fromNum = 0;\n let toNum = 0;\n let fromFormat = '';\n let toFormat = '';\n let maxDecimalLength = 0;\n\n // 解析fromText\n if (typeof fromText === 'number') {\n fromNum = fromText;\n const str = fromText.toString();\n const decimalPart = str.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n } else if (typeof fromText === 'string') {\n // 检查是否是百分比\n if (fromText.endsWith('%')) {\n fromFormat = '%';\n const numStr = fromText.substring(0, fromText.length - 1);\n // 去除可能的千分位逗号\n const cleanNumStr = numStr.replace(/,/g, '');\n fromNum = parseFloat(cleanNumStr) / 100;\n if (isNaN(fromNum)) {\n this.valid = false;\n return;\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length + 2); // 百分比需要加2\n } else {\n // 处理普通数字或带千分位逗号的数字\n const cleanNumStr = fromText.replace(/,/g, '');\n fromNum = parseFloat(cleanNumStr);\n if (isNaN(fromNum)) {\n this.valid = false;\n return;\n }\n // 检查是否有千分位\n if (fromText.includes(',')) {\n fromFormat = ',';\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n }\n } else {\n this.valid = false;\n return;\n }\n\n // 解析toText\n if (typeof toText === 'number') {\n toNum = toText;\n const str = toText.toString();\n const decimalPart = str.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n } else if (typeof toText === 'string') {\n // 检查是否是百分比\n if (toText.endsWith('%')) {\n toFormat = '%';\n const numStr = toText.substring(0, toText.length - 1);\n // 去除可能的千分位逗号\n const cleanNumStr = numStr.replace(/,/g, '');\n toNum = parseFloat(cleanNumStr) / 100;\n if (isNaN(toNum)) {\n this.valid = false;\n return;\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length + 2); // 百分比需要加2\n } else {\n // 处理普通数字或带千分位逗号的数字\n const cleanNumStr = toText.replace(/,/g, '');\n toNum = parseFloat(cleanNumStr);\n if (isNaN(toNum)) {\n this.valid = false;\n return;\n }\n // 检查是否有千分位\n if (toText.includes(',')) {\n toFormat = ',';\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n }\n } else {\n this.valid = false;\n return;\n }\n\n // 设置最终格式\n // 检查是否有外部传入的格式\n if (this.params?.format) {\n // 使用外部传入的格式,将外部格式映射到内部格式\n switch (this.params.format) {\n case 'percent':\n this.format = '%';\n break;\n case 'thousandth':\n this.format = ',';\n break;\n case 'none':\n this.format = '';\n break;\n default:\n // 如果传入了未知格式,则使用自动检测的格式\n this.format = toFormat || fromFormat;\n }\n\n // 如果外部指定了百分比格式,但输入不是百分比,需要适配\n if (this.format === '%' && toFormat !== '%' && fromFormat !== '%') {\n // 不需要除以100,因为输入不是百分比\n if (this.decimalLength === undefined) {\n // 默认百分比显示2位小数\n this.decimalLength = 2;\n }\n }\n\n // 如果外部指定了不用百分比格式,但输入是百分比,需要适配\n if (this.format !== '%' && (toFormat === '%' || fromFormat === '%')) {\n // 需要乘以100,因为输入是百分比但不显示为百分比\n fromNum = fromNum * 100;\n toNum = toNum * 100;\n }\n } else {\n // 自动检测格式,优先使用toFormat,如果to没有特殊格式则使用fromFormat\n this.format = toFormat || fromFormat;\n }\n\n // 设置fromNumber和toNumber\n this.fromNumber = fromNum;\n this.toNumber = toNum;\n\n // 如果没有传入decimalLength,则根据输入格式设置\n if (this.decimalLength === undefined) {\n this.decimalLength = maxDecimalLength;\n }\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\n if (!cb) {\n this.props && this.target.setAttributes(this.props as any);\n }\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (!this.valid) {\n return;\n }\n // 插值计算当前数值\n const currentNumber = this.fromNumber + (this.toNumber - this.fromNumber) * ratio;\n\n // 根据格式和小数位格式化数字\n let formattedText: string | number = '';\n const format = this.format;\n\n // 首先格式化数字值(保留小数位)\n // 对于百分比,乘以100\n const adjustedNumber = format === '%' ? currentNumber * 100 : currentNumber;\n // 保留指定小数位\n const numberWithDecimals = adjustedNumber.toFixed(this.decimalLength);\n // 如果小数位全是0,转为整数\n let formattedNumber: string | number = numberWithDecimals;\n if (parseFloat(numberWithDecimals) === Math.floor(parseFloat(numberWithDecimals))) {\n formattedNumber = Math.floor(parseFloat(numberWithDecimals));\n }\n\n // 应用基本格式(百分比、千分位)\n let formattedWithBasicFormat: string | number;\n if (format === '%') {\n // 百分比格式\n formattedWithBasicFormat = `${formattedNumber}%`;\n } else if (format === ',') {\n // 千分位格式\n const parts = formattedNumber.toString().split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n formattedWithBasicFormat = parts.join('.');\n } else {\n // 普通数字格式\n formattedWithBasicFormat = formattedNumber;\n }\n\n // 应用模板(如果存在)\n if (this.formatTemplate) {\n // 使用模板格式化\n formattedText = this.formatTemplate.replace('{{var}}', formattedWithBasicFormat.toString());\n } else {\n // 不使用模板,直接使用基本格式的结果\n formattedText = formattedWithBasicFormat;\n }\n\n // 更新图形的text属性\n this.target.setAttribute('text', formattedText);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/custom/number.ts"],"names":[],"mappings":"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","file":"number.js","sourcesContent":["import type { EasingType, IAnimate, IStep } from '@visactor/vrender-core';\nimport { ACustomAnimate } from './custom-animate';\n\n/**\n * 数字增加动画,支持string; number; xx%; xx,xxx; xxx.xx%\n * 也支持通过formatTemplate参数指定格式化模板,如 \"{{var}}m\"、\"${{var}}\"\n * format和formatTemplate可以同时生效,先应用format再应用模板\n */\nexport class IncreaseCount extends ACustomAnimate<{ text: string | number }> {\n declare valid: boolean;\n\n private fromNumber: number;\n private toNumber: number;\n private decimalLength: number;\n private format: string;\n private formatTemplate: string | null = null;\n\n constructor(\n from: { text: string | number },\n to: { text: string | number },\n duration: number,\n easing: EasingType,\n // 支持外部控制小数位数以及格式化\n // format控制数字本身的格式化方式\n // formatTemplate可以定义模板字符串如 \"{{var}}m\"、\"${{var}}\",两者可以同时使用\n params?: {\n decimalLength?: number;\n format?: 'percent' | 'thousandth' | 'none';\n formatTemplate?: string;\n }\n ) {\n super(from, to, duration, easing, params);\n this.decimalLength = params?.decimalLength;\n\n // 检查是否提供了格式化模板\n if (params?.formatTemplate && params.formatTemplate.includes('{{var}}')) {\n this.formatTemplate = params.formatTemplate;\n }\n }\n\n onFirstRun(): void {\n const fromProps = this.getLastProps();\n const toProps = this.getEndProps();\n const fromText = fromProps.text ?? 0;\n const toText = toProps.text ?? 0;\n\n // 初始化解析结果\n this.valid = true;\n let fromNum = 0;\n let toNum = 0;\n let fromFormat = '';\n let toFormat = '';\n let maxDecimalLength = 0;\n\n // 解析fromText\n if (typeof fromText === 'number') {\n fromNum = fromText;\n const str = fromText.toString();\n const decimalPart = str.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n } else if (typeof fromText === 'string') {\n // 检查是否是百分比\n if (fromText.endsWith('%')) {\n fromFormat = '%';\n const numStr = fromText.substring(0, fromText.length - 1);\n // 去除可能的千分位逗号\n const cleanNumStr = numStr.replace(/,/g, '');\n fromNum = parseFloat(cleanNumStr) / 100;\n if (isNaN(fromNum)) {\n this.valid = false;\n return;\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length + 2); // 百分比需要加2\n } else {\n // 处理普通数字或带千分位逗号的数字\n const cleanNumStr = fromText.replace(/,/g, '');\n fromNum = parseFloat(cleanNumStr);\n if (isNaN(fromNum)) {\n this.valid = false;\n return;\n }\n // 检查是否有千分位\n if (fromText.includes(',')) {\n fromFormat = ',';\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n }\n } else {\n this.valid = false;\n return;\n }\n\n // 解析toText\n if (typeof toText === 'number') {\n toNum = toText;\n const str = toText.toString();\n const decimalPart = str.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n } else if (typeof toText === 'string') {\n // 检查是否是百分比\n if (toText.endsWith('%')) {\n toFormat = '%';\n const numStr = toText.substring(0, toText.length - 1);\n // 去除可能的千分位逗号\n const cleanNumStr = numStr.replace(/,/g, '');\n toNum = parseFloat(cleanNumStr) / 100;\n if (isNaN(toNum)) {\n this.valid = false;\n return;\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length + 2); // 百分比需要加2\n } else {\n // 处理普通数字或带千分位逗号的数字\n const cleanNumStr = toText.replace(/,/g, '');\n toNum = parseFloat(cleanNumStr);\n if (isNaN(toNum)) {\n this.valid = false;\n return;\n }\n // 检查是否有千分位\n if (toText.includes(',')) {\n toFormat = ',';\n }\n const decimalPart = cleanNumStr.split('.')[1] || '';\n maxDecimalLength = Math.max(maxDecimalLength, decimalPart.length);\n }\n } else {\n this.valid = false;\n return;\n }\n\n // 设置最终格式\n // 检查是否有外部传入的格式\n if (this.params?.format) {\n // 使用外部传入的格式,将外部格式映射到内部格式\n switch (this.params.format) {\n case 'percent':\n this.format = '%';\n break;\n case 'thousandth':\n this.format = ',';\n break;\n case 'none':\n this.format = '';\n break;\n default:\n // 如果传入了未知格式,则使用自动检测的格式\n this.format = toFormat || fromFormat;\n }\n\n // 如果外部指定了百分比格式,但输入不是百分比,需要适配\n if (this.format === '%' && toFormat !== '%' && fromFormat !== '%') {\n // 不需要除以100,因为输入不是百分比\n if (this.decimalLength === undefined) {\n // 默认百分比显示2位小数\n this.decimalLength = 2;\n }\n }\n\n // 如果外部指定了不用百分比格式,但输入是百分比,需要适配\n if (this.format !== '%' && (toFormat === '%' || fromFormat === '%')) {\n // 需要乘以100,因为输入是百分比但不显示为百分比\n fromNum = fromNum * 100;\n toNum = toNum * 100;\n }\n } else {\n // 自动检测格式,优先使用toFormat,如果to没有特殊格式则使用fromFormat\n this.format = toFormat || fromFormat;\n }\n\n // 设置fromNumber和toNumber\n this.fromNumber = fromNum;\n this.toNumber = toNum;\n\n // 如果没有传入decimalLength,则根据输入格式设置\n if (this.decimalLength === undefined) {\n this.decimalLength = maxDecimalLength;\n }\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\n if (!cb) {\n this.props && this.target.setAttributes(this.props as any);\n }\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (!this.valid) {\n return;\n }\n // 插值计算当前数值\n const currentNumber = this.fromNumber + (this.toNumber - this.fromNumber) * ratio;\n\n // 根据格式和小数位格式化数字\n let formattedText: string | number = '';\n const format = this.format;\n\n // 首先格式化数字值(保留小数位)\n // 对于百分比,乘以100\n const adjustedNumber = format === '%' ? currentNumber * 100 : currentNumber;\n // 保留指定小数位\n const numberWithDecimals = adjustedNumber.toFixed(this.decimalLength);\n // 如果小数位全是0,转为整数\n let formattedNumber: string | number = numberWithDecimals;\n if (parseFloat(numberWithDecimals) === Math.floor(parseFloat(numberWithDecimals))) {\n formattedNumber = Math.floor(parseFloat(numberWithDecimals));\n }\n\n // 应用基本格式(百分比、千分位)\n let formattedWithBasicFormat: string | number;\n if (format === '%') {\n // 百分比格式\n formattedWithBasicFormat = `${formattedNumber}%`;\n } else if (format === ',') {\n // 千分位格式\n const parts = formattedNumber.toString().split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n formattedWithBasicFormat = parts.join('.');\n } else {\n // 普通数字格式\n formattedWithBasicFormat = formattedNumber;\n }\n\n // 应用模板(如果存在)\n if (this.formatTemplate) {\n // 使用模板格式化\n formattedText = this.formatTemplate.replace('{{var}}', formattedWithBasicFormat.toString());\n } else {\n // 不使用模板,直接使用基本格式的结果\n formattedText = formattedWithBasicFormat;\n }\n\n // 更新图形的text属性\n this.target.setAttribute('text', formattedText);\n }\n}\n"]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { AComponentAnimate } from "./custom-animate";
|
|
2
|
+
|
|
3
|
+
import { createComponentAnimator } from "../component";
|
|
4
|
+
|
|
5
|
+
import { InputText } from "./input-text";
|
|
6
|
+
|
|
7
|
+
export class PoptipAppear extends AComponentAnimate {
|
|
8
|
+
onBind() {
|
|
9
|
+
super.onBind();
|
|
10
|
+
const animator = createComponentAnimator(this.target);
|
|
11
|
+
this._animator = animator;
|
|
12
|
+
const duration = this.duration, easing = this.easing, target = this.target, {wave: wave} = this.params;
|
|
13
|
+
if (target.setAttributes({
|
|
14
|
+
scaleX: 0,
|
|
15
|
+
scaleY: 0
|
|
16
|
+
}), animator.animate(target, {
|
|
17
|
+
type: "to",
|
|
18
|
+
to: {
|
|
19
|
+
scaleX: 1,
|
|
20
|
+
scaleY: 1
|
|
21
|
+
},
|
|
22
|
+
duration: duration / 3 * 2,
|
|
23
|
+
easing: easing
|
|
24
|
+
}), target.titleShape && animator.animate(target.titleShape, {
|
|
25
|
+
type: "custom",
|
|
26
|
+
to: {
|
|
27
|
+
text: target.titleShape.attribute.text
|
|
28
|
+
},
|
|
29
|
+
duration: duration,
|
|
30
|
+
easing: easing,
|
|
31
|
+
custom: InputText
|
|
32
|
+
}), target.contentShape && animator.animate(target.contentShape, {
|
|
33
|
+
type: "custom",
|
|
34
|
+
to: {
|
|
35
|
+
text: target.contentShape.attribute.text
|
|
36
|
+
},
|
|
37
|
+
duration: duration,
|
|
38
|
+
easing: easing,
|
|
39
|
+
custom: InputText
|
|
40
|
+
}), wave) {
|
|
41
|
+
const dur = duration / 6;
|
|
42
|
+
animator.animate(target.group, {
|
|
43
|
+
timeSlices: [ {
|
|
44
|
+
duration: dur,
|
|
45
|
+
effects: {
|
|
46
|
+
type: "to",
|
|
47
|
+
to: {
|
|
48
|
+
angle: wave
|
|
49
|
+
},
|
|
50
|
+
easing: easing
|
|
51
|
+
}
|
|
52
|
+
}, {
|
|
53
|
+
duration: 2 * dur,
|
|
54
|
+
effects: {
|
|
55
|
+
type: "to",
|
|
56
|
+
to: {
|
|
57
|
+
angle: -wave
|
|
58
|
+
},
|
|
59
|
+
easing: easing
|
|
60
|
+
}
|
|
61
|
+
}, {
|
|
62
|
+
duration: 2 * dur,
|
|
63
|
+
effects: {
|
|
64
|
+
type: "to",
|
|
65
|
+
to: {
|
|
66
|
+
angle: wave
|
|
67
|
+
},
|
|
68
|
+
easing: easing
|
|
69
|
+
}
|
|
70
|
+
}, {
|
|
71
|
+
duration: dur,
|
|
72
|
+
effects: {
|
|
73
|
+
type: "to",
|
|
74
|
+
to: {
|
|
75
|
+
angle: 0
|
|
76
|
+
},
|
|
77
|
+
easing: easing
|
|
78
|
+
}
|
|
79
|
+
} ]
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
this.completeBind(animator);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export class PoptipDisappear extends AComponentAnimate {
|
|
87
|
+
onBind() {
|
|
88
|
+
super.onBind();
|
|
89
|
+
const animator = createComponentAnimator(this.target);
|
|
90
|
+
this._animator = animator;
|
|
91
|
+
const duration = this.duration, easing = this.easing, target = this.target;
|
|
92
|
+
animator.animate(target, {
|
|
93
|
+
type: "to",
|
|
94
|
+
to: {
|
|
95
|
+
scaleX: 0,
|
|
96
|
+
scaleY: 0
|
|
97
|
+
},
|
|
98
|
+
duration: duration,
|
|
99
|
+
easing: easing
|
|
100
|
+
}), this.completeBind(animator);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=poptip-animate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/custom/poptip-animate.ts"],"names":[],"mappings":"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","file":"poptip-animate.js","sourcesContent":["import { AComponentAnimate } from './custom-animate';\nimport { createComponentAnimator } from '../component';\nimport { InputText } from './input-text';\n\n/**\n * PoptipAppear class handles the appear animation for Poptip components\n */\nexport class PoptipAppear extends AComponentAnimate<any> {\n onBind(): void {\n super.onBind();\n const animator = createComponentAnimator(this.target);\n this._animator = animator;\n\n const duration = this.duration;\n const easing = this.easing;\n const target = this.target as any;\n\n const { wave } = this.params;\n\n target.setAttributes({ scaleX: 0, scaleY: 0 });\n\n animator.animate(target, {\n type: 'to',\n to: { scaleX: 1, scaleY: 1 },\n duration: (duration / 3) * 2,\n easing\n });\n\n target.titleShape &&\n animator.animate(target.titleShape, {\n type: 'custom',\n to: { text: target.titleShape.attribute.text as string },\n duration,\n easing,\n custom: InputText\n });\n\n target.contentShape &&\n animator.animate(target.contentShape, {\n type: 'custom',\n to: { text: target.contentShape.attribute.text as string },\n duration,\n easing,\n custom: InputText\n });\n\n if (wave) {\n const dur = duration / 6;\n animator.animate(target.group, {\n timeSlices: [\n {\n duration: dur,\n effects: {\n type: 'to',\n to: { angle: wave },\n easing\n }\n },\n {\n duration: dur * 2,\n effects: {\n type: 'to',\n to: { angle: -wave },\n easing\n }\n },\n {\n duration: dur * 2,\n effects: {\n type: 'to',\n to: { angle: wave },\n easing\n }\n },\n {\n duration: dur,\n effects: {\n type: 'to',\n to: { angle: 0 },\n easing\n }\n }\n ]\n });\n }\n\n this.completeBind(animator);\n }\n}\n\n/**\n * PoptipDisappear class handles the disappear animation for Poptip components\n */\nexport class PoptipDisappear extends AComponentAnimate<any> {\n onBind(): void {\n super.onBind();\n const animator = createComponentAnimator(this.target);\n this._animator = animator;\n\n const duration = this.duration;\n const easing = this.easing;\n const target = this.target as any;\n\n animator.animate(target, {\n type: 'to',\n to: { scaleX: 0, scaleY: 0 },\n duration,\n easing\n });\n\n this.completeBind(animator);\n }\n}\n"]}
|
package/es/custom/register.d.ts
CHANGED
|
@@ -1 +1,28 @@
|
|
|
1
|
+
import { ClipIn, ClipOut } from './clip';
|
|
2
|
+
import { FadeIn, FadeOut } from './fade';
|
|
3
|
+
import { GrowAngleIn, GrowAngleOut } from './growAngle';
|
|
4
|
+
import { GrowCenterIn, GrowCenterOut } from './growCenter';
|
|
5
|
+
import { GrowHeightIn, GrowHeightOut } from './growHeight';
|
|
6
|
+
import { GrowPointsIn, GrowPointsOut, GrowPointsXIn, GrowPointsXOut, GrowPointsYIn, GrowPointsYOut } from './growPoints';
|
|
7
|
+
import { GrowRadiusIn, GrowRadiusOut } from './growRadius';
|
|
8
|
+
import { GrowWidthIn, GrowWidthOut } from './growWidth';
|
|
9
|
+
import { InputText } from './input-text';
|
|
10
|
+
import { LabelItemAppear, LabelItemDisappear } from './label-item-animate';
|
|
11
|
+
import { IncreaseCount } from './number';
|
|
12
|
+
import { PoptipAppear, PoptipDisappear } from './poptip-animate';
|
|
13
|
+
import { InputRichText } from './richtext/input-richtext';
|
|
14
|
+
import { OutputRichText } from './richtext/output-richtext';
|
|
15
|
+
import { SlideRichText } from './richtext/slide-richtext';
|
|
16
|
+
import { SlideOutRichText } from './richtext/slide-out-richtext';
|
|
17
|
+
import { ScaleIn, ScaleOut } from './scale';
|
|
18
|
+
import { State } from './state';
|
|
19
|
+
import { GrowIn, GrowOut, MoveRotateIn, MoveRotateOut, MoveScaleIn, MoveScaleOut, PulseAnimate, SlideIn, SlideOut, SpinIn, SpinOut, StrokeIn, StrokeOut } from './story';
|
|
20
|
+
import { Update } from './update';
|
|
21
|
+
import { MoveIn, MoveOut } from './move';
|
|
22
|
+
import { RotateIn, RotateOut } from './rotate';
|
|
23
|
+
import { MotionPath } from './motionPath';
|
|
24
|
+
import { FromTo } from './fromTo';
|
|
25
|
+
import { GroupFadeIn, GroupFadeOut } from './groupFade';
|
|
26
|
+
import { StreamLight } from './streamLight';
|
|
1
27
|
export declare const registerCustomAnimate: () => void;
|
|
28
|
+
export { ClipIn, ClipOut, FadeIn, FadeOut, GrowAngleIn, GrowAngleOut, GrowCenterIn, GrowCenterOut, GrowHeightIn, GrowHeightOut, GrowPointsIn, GrowPointsOut, GrowPointsXIn, GrowPointsXOut, GrowPointsYIn, GrowPointsYOut, GrowRadiusIn, GrowRadiusOut, GrowWidthIn, GrowWidthOut, IncreaseCount, PoptipAppear, PoptipDisappear, ScaleIn, ScaleOut, MoveIn, MoveOut, RotateIn, RotateOut, State, Update, MotionPath, LabelItemAppear, LabelItemDisappear, InputText, InputRichText, OutputRichText, SlideRichText, SlideOutRichText, SlideIn, GrowIn, SpinIn, MoveScaleIn, MoveRotateIn, SlideOut, GrowOut, SpinOut, MoveScaleOut, MoveRotateOut, StrokeIn, StrokeOut, PulseAnimate, GroupFadeIn, GroupFadeOut, FromTo, StreamLight };
|
package/es/custom/register.js
CHANGED
|
@@ -16,13 +16,44 @@ import { GrowRadiusIn, GrowRadiusOut } from "./growRadius";
|
|
|
16
16
|
|
|
17
17
|
import { GrowWidthIn, GrowWidthOut } from "./growWidth";
|
|
18
18
|
|
|
19
|
+
import { InputText } from "./input-text";
|
|
20
|
+
|
|
21
|
+
import { LabelItemAppear, LabelItemDisappear } from "./label-item-animate";
|
|
22
|
+
|
|
23
|
+
import { IncreaseCount } from "./number";
|
|
24
|
+
|
|
25
|
+
import { PoptipAppear, PoptipDisappear } from "./poptip-animate";
|
|
26
|
+
|
|
27
|
+
import { InputRichText } from "./richtext/input-richtext";
|
|
28
|
+
|
|
29
|
+
import { OutputRichText } from "./richtext/output-richtext";
|
|
30
|
+
|
|
31
|
+
import { SlideRichText } from "./richtext/slide-richtext";
|
|
32
|
+
|
|
33
|
+
import { SlideOutRichText } from "./richtext/slide-out-richtext";
|
|
34
|
+
|
|
19
35
|
import { ScaleIn, ScaleOut } from "./scale";
|
|
20
36
|
|
|
21
37
|
import { State } from "./state";
|
|
22
38
|
|
|
39
|
+
import { GrowIn, GrowOut, MoveRotateIn, MoveRotateOut, MoveScaleIn, MoveScaleOut, PulseAnimate, SlideIn, SlideOut, SpinIn, SpinOut, StrokeIn, StrokeOut } from "./story";
|
|
40
|
+
|
|
23
41
|
import { Update } from "./update";
|
|
24
42
|
|
|
43
|
+
import { MoveIn, MoveOut } from "./move";
|
|
44
|
+
|
|
45
|
+
import { RotateIn, RotateOut } from "./rotate";
|
|
46
|
+
|
|
47
|
+
import { MotionPath } from "./motionPath";
|
|
48
|
+
|
|
49
|
+
import { FromTo } from "./fromTo";
|
|
50
|
+
|
|
51
|
+
import { GroupFadeIn, GroupFadeOut } from "./groupFade";
|
|
52
|
+
|
|
53
|
+
import { StreamLight } from "./streamLight";
|
|
54
|
+
|
|
25
55
|
export const registerCustomAnimate = () => {
|
|
56
|
+
AnimateExecutor.registerBuiltInAnimate("increaseCount", IncreaseCount), AnimateExecutor.registerBuiltInAnimate("fromTo", FromTo),
|
|
26
57
|
AnimateExecutor.registerBuiltInAnimate("scaleIn", ScaleIn), AnimateExecutor.registerBuiltInAnimate("scaleOut", ScaleOut),
|
|
27
58
|
AnimateExecutor.registerBuiltInAnimate("growHeightIn", GrowHeightIn), AnimateExecutor.registerBuiltInAnimate("growHeightOut", GrowHeightOut),
|
|
28
59
|
AnimateExecutor.registerBuiltInAnimate("growWidthIn", GrowWidthIn), AnimateExecutor.registerBuiltInAnimate("growWidthOut", GrowWidthOut),
|
|
@@ -34,6 +65,22 @@ export const registerCustomAnimate = () => {
|
|
|
34
65
|
AnimateExecutor.registerBuiltInAnimate("growPointsYIn", GrowPointsYIn), AnimateExecutor.registerBuiltInAnimate("growPointsYOut", GrowPointsYOut),
|
|
35
66
|
AnimateExecutor.registerBuiltInAnimate("growAngleIn", GrowAngleIn), AnimateExecutor.registerBuiltInAnimate("growAngleOut", GrowAngleOut),
|
|
36
67
|
AnimateExecutor.registerBuiltInAnimate("growRadiusIn", GrowRadiusIn), AnimateExecutor.registerBuiltInAnimate("growRadiusOut", GrowRadiusOut),
|
|
37
|
-
AnimateExecutor.registerBuiltInAnimate("
|
|
68
|
+
AnimateExecutor.registerBuiltInAnimate("moveIn", MoveIn), AnimateExecutor.registerBuiltInAnimate("moveOut", MoveOut),
|
|
69
|
+
AnimateExecutor.registerBuiltInAnimate("rotateIn", RotateIn), AnimateExecutor.registerBuiltInAnimate("rotateOut", RotateOut),
|
|
70
|
+
AnimateExecutor.registerBuiltInAnimate("update", Update), AnimateExecutor.registerBuiltInAnimate("state", State),
|
|
71
|
+
AnimateExecutor.registerBuiltInAnimate("labelItemAppear", LabelItemAppear), AnimateExecutor.registerBuiltInAnimate("labelItemDisappear", LabelItemDisappear),
|
|
72
|
+
AnimateExecutor.registerBuiltInAnimate("poptipAppear", PoptipAppear), AnimateExecutor.registerBuiltInAnimate("poptipDisappear", PoptipDisappear),
|
|
73
|
+
AnimateExecutor.registerBuiltInAnimate("inputText", InputText), AnimateExecutor.registerBuiltInAnimate("inputRichText", InputRichText),
|
|
74
|
+
AnimateExecutor.registerBuiltInAnimate("outputRichText", OutputRichText), AnimateExecutor.registerBuiltInAnimate("slideRichText", SlideRichText),
|
|
75
|
+
AnimateExecutor.registerBuiltInAnimate("slideOutRichText", SlideOutRichText), AnimateExecutor.registerBuiltInAnimate("slideIn", SlideIn),
|
|
76
|
+
AnimateExecutor.registerBuiltInAnimate("growIn", GrowIn), AnimateExecutor.registerBuiltInAnimate("spinIn", SpinIn),
|
|
77
|
+
AnimateExecutor.registerBuiltInAnimate("moveScaleIn", MoveScaleIn), AnimateExecutor.registerBuiltInAnimate("moveRotateIn", MoveRotateIn),
|
|
78
|
+
AnimateExecutor.registerBuiltInAnimate("strokeIn", StrokeIn), AnimateExecutor.registerBuiltInAnimate("slideOut", SlideOut),
|
|
79
|
+
AnimateExecutor.registerBuiltInAnimate("growOut", GrowOut), AnimateExecutor.registerBuiltInAnimate("spinOut", SpinOut),
|
|
80
|
+
AnimateExecutor.registerBuiltInAnimate("moveScaleOut", MoveScaleOut), AnimateExecutor.registerBuiltInAnimate("moveRotateOut", MoveRotateOut),
|
|
81
|
+
AnimateExecutor.registerBuiltInAnimate("strokeOut", StrokeOut), AnimateExecutor.registerBuiltInAnimate("pulse", PulseAnimate),
|
|
82
|
+
AnimateExecutor.registerBuiltInAnimate("MotionPath", MotionPath), AnimateExecutor.registerBuiltInAnimate("streamLight", StreamLight);
|
|
38
83
|
};
|
|
84
|
+
|
|
85
|
+
export { ClipIn, ClipOut, FadeIn, FadeOut, GrowAngleIn, GrowAngleOut, GrowCenterIn, GrowCenterOut, GrowHeightIn, GrowHeightOut, GrowPointsIn, GrowPointsOut, GrowPointsXIn, GrowPointsXOut, GrowPointsYIn, GrowPointsYOut, GrowRadiusIn, GrowRadiusOut, GrowWidthIn, GrowWidthOut, IncreaseCount, PoptipAppear, PoptipDisappear, ScaleIn, ScaleOut, MoveIn, MoveOut, RotateIn, RotateOut, State, Update, MotionPath, LabelItemAppear, LabelItemDisappear, InputText, InputRichText, OutputRichText, SlideRichText, SlideOutRichText, SlideIn, GrowIn, SpinIn, MoveScaleIn, MoveRotateIn, SlideOut, GrowOut, SpinOut, MoveScaleOut, MoveRotateOut, StrokeIn, StrokeOut, PulseAnimate, GroupFadeIn, GroupFadeOut, FromTo, StreamLight };
|
|
39
86
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/custom/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,eAAe,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,eAAe,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,eAAe,CAAC,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrE,eAAe,CAAC,sBAAsB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvE,eAAe,CAAC,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACnE,eAAe,CAAC,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrE,eAAe,CAAC,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrE,eAAe,CAAC,sBAAsB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvE,eAAe,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,eAAe,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,eAAe,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,eAAe,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,eAAe,CAAC,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrE,eAAe,CAAC,sBAAsB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvE,eAAe,CAAC,sBAAsB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvE,eAAe,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACzE,eAAe,CAAC,sBAAsB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvE,eAAe,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACzE,eAAe,CAAC,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACnE,eAAe,CAAC,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrE,eAAe,CAAC,sBAAsB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrE,eAAe,CAAC,sBAAsB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAEvE,eAAe,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,eAAe,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC","file":"register.js","sourcesContent":["import { AnimateExecutor } from '../executor/animate-executor';\nimport { ClipIn, ClipOut } from './clip';\nimport { FadeIn, FadeOut } from './fade';\nimport { GrowAngleIn, GrowAngleOut } from './growAngle';\nimport { GrowCenterIn, GrowCenterOut } from './growCenter';\nimport { GrowHeightIn, GrowHeightOut } from './growHeight';\nimport {\n GrowPointsIn,\n GrowPointsOut,\n GrowPointsXIn,\n GrowPointsXOut,\n GrowPointsYIn,\n GrowPointsYOut\n} from './growPoints';\nimport { GrowRadiusIn, GrowRadiusOut } from './growRadius';\nimport { GrowWidthIn, GrowWidthOut } from './growWidth';\nimport { ScaleIn, ScaleOut } from './scale';\nimport { State } from './state';\nimport { Update } from './update';\n\nexport const registerCustomAnimate = () => {\n AnimateExecutor.registerBuiltInAnimate('scaleIn', ScaleIn);\n AnimateExecutor.registerBuiltInAnimate('scaleOut', ScaleOut);\n AnimateExecutor.registerBuiltInAnimate('growHeightIn', GrowHeightIn);\n AnimateExecutor.registerBuiltInAnimate('growHeightOut', GrowHeightOut);\n AnimateExecutor.registerBuiltInAnimate('growWidthIn', GrowWidthIn);\n AnimateExecutor.registerBuiltInAnimate('growWidthOut', GrowWidthOut);\n AnimateExecutor.registerBuiltInAnimate('growCenterIn', GrowCenterIn);\n AnimateExecutor.registerBuiltInAnimate('growCenterOut', GrowCenterOut);\n AnimateExecutor.registerBuiltInAnimate('clipIn', ClipIn);\n AnimateExecutor.registerBuiltInAnimate('clipOut', ClipOut);\n AnimateExecutor.registerBuiltInAnimate('fadeIn', FadeIn);\n AnimateExecutor.registerBuiltInAnimate('fadeOut', FadeOut);\n AnimateExecutor.registerBuiltInAnimate('growPointsIn', GrowPointsIn);\n AnimateExecutor.registerBuiltInAnimate('growPointsOut', GrowPointsOut);\n AnimateExecutor.registerBuiltInAnimate('growPointsXIn', GrowPointsXIn);\n AnimateExecutor.registerBuiltInAnimate('growPointsXOut', GrowPointsXOut);\n AnimateExecutor.registerBuiltInAnimate('growPointsYIn', GrowPointsYIn);\n AnimateExecutor.registerBuiltInAnimate('growPointsYOut', GrowPointsYOut);\n AnimateExecutor.registerBuiltInAnimate('growAngleIn', GrowAngleIn);\n AnimateExecutor.registerBuiltInAnimate('growAngleOut', GrowAngleOut);\n AnimateExecutor.registerBuiltInAnimate('growRadiusIn', GrowRadiusIn);\n AnimateExecutor.registerBuiltInAnimate('growRadiusOut', GrowRadiusOut);\n // state和update共用一个自定义动画类\n AnimateExecutor.registerBuiltInAnimate('update', Update);\n AnimateExecutor.registerBuiltInAnimate('state', State);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/custom/register.ts"],"names":[],"mappings":"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","file":"register.js","sourcesContent":["import { AnimateExecutor } from '../executor/animate-executor';\nimport { ClipIn, ClipOut } from './clip';\nimport { FadeIn, FadeOut } from './fade';\nimport { GrowAngleIn, GrowAngleOut } from './growAngle';\nimport { GrowCenterIn, GrowCenterOut } from './growCenter';\nimport { GrowHeightIn, GrowHeightOut } from './growHeight';\nimport {\n GrowPointsIn,\n GrowPointsOut,\n GrowPointsXIn,\n GrowPointsXOut,\n GrowPointsYIn,\n GrowPointsYOut\n} from './growPoints';\nimport { GrowRadiusIn, GrowRadiusOut } from './growRadius';\nimport { GrowWidthIn, GrowWidthOut } from './growWidth';\nimport { InputText } from './input-text';\nimport { LabelItemAppear, LabelItemDisappear } from './label-item-animate';\nimport { IncreaseCount } from './number';\nimport { PoptipAppear, PoptipDisappear } from './poptip-animate';\nimport { InputRichText } from './richtext/input-richtext';\nimport { OutputRichText } from './richtext/output-richtext';\nimport { SlideRichText } from './richtext/slide-richtext';\nimport { SlideOutRichText } from './richtext/slide-out-richtext';\nimport { ScaleIn, ScaleOut } from './scale';\nimport { State } from './state';\nimport {\n GrowIn,\n GrowOut,\n MoveRotateIn,\n MoveRotateOut,\n MoveScaleIn,\n MoveScaleOut,\n PulseAnimate,\n SlideIn,\n SlideOut,\n SpinIn,\n SpinOut,\n StrokeIn,\n StrokeOut\n} from './story';\nimport { Update } from './update';\nimport { MoveIn, MoveOut } from './move';\nimport { RotateIn, RotateOut } from './rotate';\nimport { MotionPath } from './motionPath';\nimport { FromTo } from './fromTo';\nimport { GroupFadeIn, GroupFadeOut } from './groupFade';\nimport { StreamLight } from './streamLight';\n\nexport const registerCustomAnimate = () => {\n // 基础动画\n AnimateExecutor.registerBuiltInAnimate('increaseCount', IncreaseCount);\n\n AnimateExecutor.registerBuiltInAnimate('fromTo', FromTo);\n AnimateExecutor.registerBuiltInAnimate('scaleIn', ScaleIn);\n AnimateExecutor.registerBuiltInAnimate('scaleOut', ScaleOut);\n AnimateExecutor.registerBuiltInAnimate('growHeightIn', GrowHeightIn);\n AnimateExecutor.registerBuiltInAnimate('growHeightOut', GrowHeightOut);\n AnimateExecutor.registerBuiltInAnimate('growWidthIn', GrowWidthIn);\n AnimateExecutor.registerBuiltInAnimate('growWidthOut', GrowWidthOut);\n AnimateExecutor.registerBuiltInAnimate('growCenterIn', GrowCenterIn);\n AnimateExecutor.registerBuiltInAnimate('growCenterOut', GrowCenterOut);\n AnimateExecutor.registerBuiltInAnimate('clipIn', ClipIn);\n AnimateExecutor.registerBuiltInAnimate('clipOut', ClipOut);\n AnimateExecutor.registerBuiltInAnimate('fadeIn', FadeIn);\n AnimateExecutor.registerBuiltInAnimate('fadeOut', FadeOut);\n AnimateExecutor.registerBuiltInAnimate('growPointsIn', GrowPointsIn);\n AnimateExecutor.registerBuiltInAnimate('growPointsOut', GrowPointsOut);\n AnimateExecutor.registerBuiltInAnimate('growPointsXIn', GrowPointsXIn);\n AnimateExecutor.registerBuiltInAnimate('growPointsXOut', GrowPointsXOut);\n AnimateExecutor.registerBuiltInAnimate('growPointsYIn', GrowPointsYIn);\n AnimateExecutor.registerBuiltInAnimate('growPointsYOut', GrowPointsYOut);\n AnimateExecutor.registerBuiltInAnimate('growAngleIn', GrowAngleIn);\n AnimateExecutor.registerBuiltInAnimate('growAngleOut', GrowAngleOut);\n AnimateExecutor.registerBuiltInAnimate('growRadiusIn', GrowRadiusIn);\n AnimateExecutor.registerBuiltInAnimate('growRadiusOut', GrowRadiusOut);\n AnimateExecutor.registerBuiltInAnimate('moveIn', MoveIn);\n AnimateExecutor.registerBuiltInAnimate('moveOut', MoveOut);\n AnimateExecutor.registerBuiltInAnimate('rotateIn', RotateIn);\n AnimateExecutor.registerBuiltInAnimate('rotateOut', RotateOut);\n // state和update共用一个自定义动画类\n AnimateExecutor.registerBuiltInAnimate('update', Update);\n AnimateExecutor.registerBuiltInAnimate('state', State);\n // Label item animations\n AnimateExecutor.registerBuiltInAnimate('labelItemAppear', LabelItemAppear);\n AnimateExecutor.registerBuiltInAnimate('labelItemDisappear', LabelItemDisappear);\n // Poptip animations\n AnimateExecutor.registerBuiltInAnimate('poptipAppear', PoptipAppear);\n AnimateExecutor.registerBuiltInAnimate('poptipDisappear', PoptipDisappear);\n\n // Text input animations\n AnimateExecutor.registerBuiltInAnimate('inputText', InputText);\n AnimateExecutor.registerBuiltInAnimate('inputRichText', InputRichText);\n AnimateExecutor.registerBuiltInAnimate('outputRichText', OutputRichText);\n AnimateExecutor.registerBuiltInAnimate('slideRichText', SlideRichText);\n AnimateExecutor.registerBuiltInAnimate('slideOutRichText', SlideOutRichText);\n\n // 故事化动画 - 入场\n AnimateExecutor.registerBuiltInAnimate('slideIn', SlideIn);\n AnimateExecutor.registerBuiltInAnimate('growIn', GrowIn);\n AnimateExecutor.registerBuiltInAnimate('spinIn', SpinIn);\n AnimateExecutor.registerBuiltInAnimate('moveScaleIn', MoveScaleIn);\n AnimateExecutor.registerBuiltInAnimate('moveRotateIn', MoveRotateIn);\n AnimateExecutor.registerBuiltInAnimate('strokeIn', StrokeIn);\n\n // 故事化动画 - 出场\n AnimateExecutor.registerBuiltInAnimate('slideOut', SlideOut);\n AnimateExecutor.registerBuiltInAnimate('growOut', GrowOut);\n AnimateExecutor.registerBuiltInAnimate('spinOut', SpinOut);\n AnimateExecutor.registerBuiltInAnimate('moveScaleOut', MoveScaleOut);\n AnimateExecutor.registerBuiltInAnimate('moveRotateOut', MoveRotateOut);\n AnimateExecutor.registerBuiltInAnimate('strokeOut', StrokeOut);\n\n // 特效动画\n AnimateExecutor.registerBuiltInAnimate('pulse', PulseAnimate);\n\n // 路径动画\n AnimateExecutor.registerBuiltInAnimate('MotionPath', MotionPath);\n // 流光动画\n AnimateExecutor.registerBuiltInAnimate('streamLight', StreamLight);\n};\n\nexport {\n ClipIn,\n ClipOut,\n FadeIn,\n FadeOut,\n GrowAngleIn,\n GrowAngleOut,\n GrowCenterIn,\n GrowCenterOut,\n GrowHeightIn,\n GrowHeightOut,\n GrowPointsIn,\n GrowPointsOut,\n GrowPointsXIn,\n GrowPointsXOut,\n GrowPointsYIn,\n GrowPointsYOut,\n GrowRadiusIn,\n GrowRadiusOut,\n GrowWidthIn,\n GrowWidthOut,\n IncreaseCount,\n PoptipAppear,\n PoptipDisappear,\n ScaleIn,\n ScaleOut,\n MoveIn,\n MoveOut,\n RotateIn,\n RotateOut,\n State,\n Update,\n MotionPath,\n LabelItemAppear,\n LabelItemDisappear,\n InputText,\n InputRichText,\n OutputRichText,\n SlideRichText,\n SlideOutRichText,\n SlideIn,\n GrowIn,\n SpinIn,\n MoveScaleIn,\n MoveRotateIn,\n SlideOut,\n GrowOut,\n SpinOut,\n MoveScaleOut,\n MoveRotateOut,\n StrokeIn,\n StrokeOut,\n PulseAnimate,\n GroupFadeIn,\n GroupFadeOut,\n FromTo,\n StreamLight\n};\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ACustomAnimate } from '../custom-animate';
|
|
2
|
+
import type { IRichTextCharacter, IAnimate, IStep, EasingType } from '@visactor/vrender-core';
|
|
3
|
+
export declare class InputRichText extends ACustomAnimate<{
|
|
4
|
+
textConfig: IRichTextCharacter[];
|
|
5
|
+
}> {
|
|
6
|
+
valid: boolean;
|
|
7
|
+
private fromTextConfig;
|
|
8
|
+
private toTextConfig;
|
|
9
|
+
private originalTextConfig;
|
|
10
|
+
private showCursor;
|
|
11
|
+
private cursorChar;
|
|
12
|
+
private blinkCursor;
|
|
13
|
+
private fadeInChars;
|
|
14
|
+
private fadeInDuration;
|
|
15
|
+
private strokeFirst;
|
|
16
|
+
private strokeToFillRatio;
|
|
17
|
+
constructor(from: {
|
|
18
|
+
textConfig: IRichTextCharacter[];
|
|
19
|
+
}, to: {
|
|
20
|
+
textConfig: IRichTextCharacter[];
|
|
21
|
+
}, duration: number, easing: EasingType, params?: {
|
|
22
|
+
showCursor?: boolean;
|
|
23
|
+
cursorChar?: string;
|
|
24
|
+
blinkCursor?: boolean;
|
|
25
|
+
beforeText?: string;
|
|
26
|
+
afterText?: string;
|
|
27
|
+
fadeInChars?: boolean;
|
|
28
|
+
fadeInDuration?: number;
|
|
29
|
+
strokeFirst?: boolean;
|
|
30
|
+
strokeToFillRatio?: number;
|
|
31
|
+
});
|
|
32
|
+
onFirstRun(): void;
|
|
33
|
+
onEnd(cb?: (animate: IAnimate, step: IStep) => void): void;
|
|
34
|
+
onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ACustomAnimate } from "../custom-animate";
|
|
2
|
+
|
|
3
|
+
import { RichText } from "@visactor/vrender-core";
|
|
4
|
+
|
|
5
|
+
export class InputRichText extends ACustomAnimate {
|
|
6
|
+
constructor(from, to, duration, easing, params) {
|
|
7
|
+
super(from, to, duration, easing, params), this.fromTextConfig = [], this.toTextConfig = [],
|
|
8
|
+
this.originalTextConfig = [], this.showCursor = !1, this.cursorChar = "|", this.blinkCursor = !0,
|
|
9
|
+
this.fadeInChars = !1, this.fadeInDuration = .3, this.strokeFirst = !1, this.strokeToFillRatio = .3,
|
|
10
|
+
void 0 !== (null == params ? void 0 : params.showCursor) && (this.showCursor = params.showCursor),
|
|
11
|
+
void 0 !== (null == params ? void 0 : params.cursorChar) && (this.cursorChar = params.cursorChar),
|
|
12
|
+
void 0 !== (null == params ? void 0 : params.blinkCursor) && (this.blinkCursor = params.blinkCursor),
|
|
13
|
+
void 0 !== (null == params ? void 0 : params.fadeInChars) && (this.fadeInChars = params.fadeInChars),
|
|
14
|
+
void 0 !== (null == params ? void 0 : params.fadeInDuration) && (this.fadeInDuration = params.fadeInDuration),
|
|
15
|
+
void 0 !== (null == params ? void 0 : params.strokeFirst) && (this.strokeFirst = params.strokeFirst),
|
|
16
|
+
void 0 !== (null == params ? void 0 : params.strokeToFillRatio) && (this.strokeToFillRatio = params.strokeToFillRatio);
|
|
17
|
+
}
|
|
18
|
+
onFirstRun() {
|
|
19
|
+
const fromProps = this.getLastProps(), toProps = this.getEndProps();
|
|
20
|
+
this.originalTextConfig = toProps.textConfig ? [ ...toProps.textConfig ] : [], this.valid = !0,
|
|
21
|
+
this.originalTextConfig && 0 !== this.originalTextConfig.length ? (this.fromTextConfig = fromProps.textConfig && fromProps.textConfig.length > 0 ? RichText.TransformTextConfig2SingleCharacter(fromProps.textConfig) : [],
|
|
22
|
+
this.toTextConfig = RichText.TransformTextConfig2SingleCharacter(this.originalTextConfig)) : this.valid = !1;
|
|
23
|
+
}
|
|
24
|
+
onEnd(cb) {
|
|
25
|
+
super.onEnd(cb), cb || this.target.setAttribute("textConfig", this.originalTextConfig);
|
|
26
|
+
}
|
|
27
|
+
onUpdate(end, ratio, out) {
|
|
28
|
+
if (!this.valid) return;
|
|
29
|
+
const totalItems = this.toTextConfig.length, fromItems = this.fromTextConfig.length, maxTextShowRatio = this.fadeInChars ? 1 - this.fadeInDuration : 1;
|
|
30
|
+
let currentLength, currentTextConfig;
|
|
31
|
+
if (fromItems > totalItems) currentLength = Math.round(fromItems - (fromItems - totalItems) * ratio); else if (this.fadeInChars) {
|
|
32
|
+
const adjustedRatio = Math.min(1, ratio / maxTextShowRatio);
|
|
33
|
+
currentLength = Math.round(fromItems + (totalItems - fromItems) * adjustedRatio);
|
|
34
|
+
} else currentLength = Math.round(fromItems + (totalItems - fromItems) * ratio);
|
|
35
|
+
if (currentTextConfig = fromItems > totalItems ? this.fromTextConfig.slice(0, currentLength) : this.toTextConfig.slice(0, currentLength).map(((item, index) => {
|
|
36
|
+
if ("text" in item) {
|
|
37
|
+
const newItem = Object.assign({}, item);
|
|
38
|
+
if (this.strokeFirst) {
|
|
39
|
+
const appearTime = index / totalItems * maxTextShowRatio, itemLifetime = Math.max(0, ratio - appearTime), maxLifetime = 1 - appearTime, fillProgress = Math.min(1, itemLifetime / (this.strokeToFillRatio * maxLifetime));
|
|
40
|
+
if ("fill" in newItem && newItem.fill && (newItem.stroke = newItem.fill, fillProgress < 1 && (newItem.fillOpacity = fillProgress)),
|
|
41
|
+
this.fadeInChars) {
|
|
42
|
+
const fadeProgress = Math.min(1, itemLifetime / (this.fadeInDuration * maxLifetime));
|
|
43
|
+
newItem.opacity = Math.max(0, Math.min(1, fadeProgress));
|
|
44
|
+
}
|
|
45
|
+
} else if (this.fadeInChars) {
|
|
46
|
+
const fadeProgress = (ratio - index / totalItems * maxTextShowRatio) / this.fadeInDuration;
|
|
47
|
+
newItem.opacity = Math.max(0, Math.min(1, fadeProgress));
|
|
48
|
+
}
|
|
49
|
+
return newItem;
|
|
50
|
+
}
|
|
51
|
+
return item;
|
|
52
|
+
})), this.showCursor && currentLength < totalItems) {
|
|
53
|
+
let shouldShowCursor = !0;
|
|
54
|
+
if (this.blinkCursor) {
|
|
55
|
+
const blinkRate = .1;
|
|
56
|
+
shouldShowCursor = Math.floor(ratio / blinkRate) % 2 == 0;
|
|
57
|
+
}
|
|
58
|
+
if (shouldShowCursor && currentTextConfig.length > 0) {
|
|
59
|
+
const lastIndex = currentTextConfig.length - 1, lastItem = currentTextConfig[lastIndex];
|
|
60
|
+
if ("text" in lastItem) currentTextConfig[lastIndex] = Object.assign(Object.assign({}, lastItem), {
|
|
61
|
+
text: String(lastItem.text) + this.cursorChar
|
|
62
|
+
}); else {
|
|
63
|
+
const cursorItem = {
|
|
64
|
+
text: this.cursorChar,
|
|
65
|
+
fontSize: 16
|
|
66
|
+
};
|
|
67
|
+
currentTextConfig.push(cursorItem);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.target.setAttribute("textConfig", currentTextConfig);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=input-richtext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/custom/richtext/input-richtext.ts"],"names":[],"mappings":"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","file":"input-richtext.js","sourcesContent":["import { ACustomAnimate } from '../custom-animate';\nimport type {\n IRichTextCharacter,\n IRichTextParagraphCharacter,\n IAnimate,\n IStep,\n EasingType\n} from '@visactor/vrender-core';\nimport { RichText } from '@visactor/vrender-core';\n\n/**\n * 富文本输入动画,实现类似打字机的字符逐个显示效果\n * 支持通过beforeText和afterText参数添加前缀和后缀\n * 支持通过showCursor参数显示光标,cursorChar自定义光标字符\n * 支持通过fadeInChars参数开启字符透明度渐变效果\n * 支持通过strokeFirst参数开启描边先于填充显示效果,使用文字自身颜色作为描边色\n */\nexport class InputRichText extends ACustomAnimate<{ textConfig: IRichTextCharacter[] }> {\n declare valid: boolean;\n\n private fromTextConfig: IRichTextCharacter[] = [];\n private toTextConfig: IRichTextCharacter[] = [];\n private originalTextConfig: IRichTextCharacter[] = [];\n private showCursor: boolean = false;\n private cursorChar: string = '|';\n private blinkCursor: boolean = true;\n private fadeInChars: boolean = false;\n private fadeInDuration: number = 0.3; // 透明度渐变持续时间,以动画总时长的比例表示\n private strokeFirst: boolean = false; // 是否开启描边先于填充显示效果\n private strokeToFillRatio: number = 0.3; // 描边到填充的过渡比例,占总动画时长的比例\n\n constructor(\n from: { textConfig: IRichTextCharacter[] },\n to: { textConfig: IRichTextCharacter[] },\n duration: number,\n easing: EasingType,\n params?: {\n showCursor?: boolean;\n cursorChar?: string;\n blinkCursor?: boolean;\n beforeText?: string;\n afterText?: string;\n fadeInChars?: boolean;\n fadeInDuration?: number;\n strokeFirst?: boolean;\n strokeToFillRatio?: number;\n }\n ) {\n super(from, to, duration, easing, params);\n\n // 配置光标相关选项\n if (params?.showCursor !== undefined) {\n this.showCursor = params.showCursor;\n }\n if (params?.cursorChar !== undefined) {\n this.cursorChar = params.cursorChar;\n }\n if (params?.blinkCursor !== undefined) {\n this.blinkCursor = params.blinkCursor;\n }\n\n // 配置字符透明度渐变效果\n if (params?.fadeInChars !== undefined) {\n this.fadeInChars = params.fadeInChars;\n }\n if (params?.fadeInDuration !== undefined) {\n this.fadeInDuration = params.fadeInDuration;\n }\n\n // 配置描边先于填充显示效果\n if (params?.strokeFirst !== undefined) {\n this.strokeFirst = params.strokeFirst;\n }\n if (params?.strokeToFillRatio !== undefined) {\n this.strokeToFillRatio = params.strokeToFillRatio;\n }\n }\n\n onFirstRun(): void {\n const fromProps = this.getLastProps();\n const toProps = this.getEndProps();\n\n // 存储原始配置\n this.originalTextConfig = toProps.textConfig ? [...toProps.textConfig] : [];\n\n // 初始化解析结果\n this.valid = true;\n\n // 确保to不为空\n if (!this.originalTextConfig || this.originalTextConfig.length === 0) {\n this.valid = false;\n return;\n }\n\n // 将文本拆分为单个字符,使用RichText的静态方法\n this.fromTextConfig =\n fromProps.textConfig && fromProps.textConfig.length > 0\n ? RichText.TransformTextConfig2SingleCharacter(fromProps.textConfig)\n : [];\n\n this.toTextConfig = RichText.TransformTextConfig2SingleCharacter(this.originalTextConfig);\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\n if (!cb) {\n // 动画结束时,恢复原始textConfig\n this.target.setAttribute('textConfig', this.originalTextConfig);\n }\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (!this.valid) {\n return;\n }\n\n // 计算当前应该显示的字符数量\n const totalItems = this.toTextConfig.length;\n const fromItems = this.fromTextConfig.length;\n\n // 计算文本显示比例上限 - 如果有渐变效果,需要为尾部字符的渐变留出时间\n // 例如,如果fadeInDuration为0.3,则文本显示部分最多占用动画时间的70%\n const maxTextShowRatio = this.fadeInChars ? 1 - this.fadeInDuration : 1;\n\n // 确定当前应该显示多少个项目\n let currentLength: number;\n\n // 如果fromItems比totalItems长,则是删除动画,否则是添加动画\n if (fromItems > totalItems) {\n // 删除文本动画(从多到少)\n currentLength = Math.round(fromItems - (fromItems - totalItems) * ratio);\n } else {\n // 添加文本动画(从少到多)- 需要更快显示字符以便留出时间让最后的字符完成渐变\n if (this.fadeInChars) {\n // 当ratio达到maxTextShowRatio时,应该已经显示全部文本\n const adjustedRatio = Math.min(1, ratio / maxTextShowRatio);\n currentLength = Math.round(fromItems + (totalItems - fromItems) * adjustedRatio);\n } else {\n // 无渐变效果时,正常显示\n currentLength = Math.round(fromItems + (totalItems - fromItems) * ratio);\n }\n }\n\n // 构建当前要显示的textConfig\n let currentTextConfig: IRichTextCharacter[];\n if (fromItems > totalItems) {\n // 删除动画:显示from的前currentLength项\n currentTextConfig = this.fromTextConfig.slice(0, currentLength);\n } else {\n // 添加文本动画:显示to的前currentLength项,可能需要应用透明度和描边效果\n currentTextConfig = this.toTextConfig.slice(0, currentLength).map((item, index) => {\n // 如果是文本项并且需要应用效果\n if ('text' in item) {\n const newItem = { ...item };\n\n // 如果启用了描边优先效果\n if (this.strokeFirst) {\n // 计算描边到填充的过渡进度\n // 字符在特定时间点出现:出现时刻 = (index / totalItems) * maxTextShowRatio\n const appearTime = (index / totalItems) * maxTextShowRatio;\n const itemLifetime = Math.max(0, ratio - appearTime); // 当前字符已经存在的时间\n const maxLifetime = 1 - appearTime; // 当前字符从出现到动画结束的最大时间\n const fillProgress = Math.min(1, itemLifetime / (this.strokeToFillRatio * maxLifetime));\n\n // 使用文本自身的填充颜色作为描边颜色\n if ('fill' in newItem && newItem.fill) {\n newItem.stroke = newItem.fill;\n // 计算描边宽度,基于字体大小\n // const fontSize = newItem.fontSize || 16;\n // newItem.lineWidth = Math.max(1, fontSize * 0.05); // 线宽大约为字体大小的5%\n\n // 如果还没到填充阶段,则将填充色透明度设为0\n if (fillProgress < 1) {\n newItem.fillOpacity = fillProgress;\n }\n }\n\n // 如果也启用了透明度渐变\n if (this.fadeInChars) {\n const fadeProgress = Math.min(1, itemLifetime / (this.fadeInDuration * maxLifetime));\n newItem.opacity = Math.max(0, Math.min(1, fadeProgress));\n }\n }\n // 只启用了透明度渐变效果,没有启用描边优先\n else if (this.fadeInChars) {\n const appearTime = (index / totalItems) * maxTextShowRatio;\n const fadeProgress = (ratio - appearTime) / this.fadeInDuration;\n newItem.opacity = Math.max(0, Math.min(1, fadeProgress));\n }\n\n return newItem;\n }\n return item;\n });\n }\n\n // 如果启用了光标\n if (this.showCursor && currentLength < totalItems) {\n // 判断是否应该显示光标\n let shouldShowCursor = true;\n\n if (this.blinkCursor) {\n // 闪烁效果:在动画期间,光标每半个周期闪烁一次\n const blinkRate = 0.1; // 光标闪烁频率(每10%动画进度闪烁一次)\n shouldShowCursor = Math.floor(ratio / blinkRate) % 2 === 0;\n }\n\n if (shouldShowCursor && currentTextConfig.length > 0) {\n // 找到最后一个文本项,在其后添加光标\n const lastIndex = currentTextConfig.length - 1;\n const lastItem = currentTextConfig[lastIndex];\n\n if ('text' in lastItem) {\n // 如果最后一项是文本,将光标添加到文本后面\n currentTextConfig[lastIndex] = {\n ...lastItem,\n text: String(lastItem.text) + this.cursorChar\n };\n } else {\n // 如果最后一项是非文本(如图片),添加一个只包含光标的新文本项\n const cursorItem: IRichTextParagraphCharacter = {\n text: this.cursorChar,\n fontSize: 16 // 使用默认字体大小,或者从context获取\n };\n currentTextConfig.push(cursorItem);\n }\n }\n }\n\n // 更新富文本的textConfig属性\n this.target.setAttribute('textConfig', currentTextConfig);\n }\n}\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ACustomAnimate } from '../custom-animate';
|
|
2
|
+
import type { IRichTextCharacter, IAnimate, IStep, EasingType } from '@visactor/vrender-core';
|
|
3
|
+
export declare class OutputRichText extends ACustomAnimate<{
|
|
4
|
+
textConfig: IRichTextCharacter[];
|
|
5
|
+
}> {
|
|
6
|
+
valid: boolean;
|
|
7
|
+
private fromTextConfig;
|
|
8
|
+
private toTextConfig;
|
|
9
|
+
private originalTextConfig;
|
|
10
|
+
private showCursor;
|
|
11
|
+
private cursorChar;
|
|
12
|
+
private blinkCursor;
|
|
13
|
+
private beforeText;
|
|
14
|
+
private afterText;
|
|
15
|
+
private fadeOutChars;
|
|
16
|
+
private fadeOutDuration;
|
|
17
|
+
private direction;
|
|
18
|
+
constructor(from: {
|
|
19
|
+
textConfig: IRichTextCharacter[];
|
|
20
|
+
}, to: {
|
|
21
|
+
textConfig: IRichTextCharacter[];
|
|
22
|
+
}, duration: number, easing: EasingType, params?: {
|
|
23
|
+
showCursor?: boolean;
|
|
24
|
+
cursorChar?: string;
|
|
25
|
+
blinkCursor?: boolean;
|
|
26
|
+
beforeText?: string;
|
|
27
|
+
afterText?: string;
|
|
28
|
+
fadeOutChars?: boolean;
|
|
29
|
+
fadeOutDuration?: number;
|
|
30
|
+
direction?: 'forward' | 'backward';
|
|
31
|
+
});
|
|
32
|
+
onFirstRun(): void;
|
|
33
|
+
onEnd(cb?: (animate: IAnimate, step: IStep) => void): void;
|
|
34
|
+
onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
|
|
35
|
+
private applyFadeEffect;
|
|
36
|
+
private addCursor;
|
|
37
|
+
}
|