@visactor/vrender-animate 1.0.9 → 1.0.11
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.d.ts +1 -0
- package/cjs/animate.js +7 -1
- package/cjs/animate.js.map +1 -1
- package/cjs/custom/custom-animate.d.ts +14 -1
- package/cjs/custom/custom-animate.js +41 -1
- package/cjs/custom/custom-animate.js.map +1 -1
- package/cjs/custom/fade.js +2 -1
- package/cjs/custom/groupFade.js +1 -2
- package/cjs/custom/growAngle.js +2 -2
- package/cjs/custom/growAngle.js.map +1 -1
- package/cjs/custom/growRadius.js +2 -2
- package/cjs/custom/growRadius.js.map +1 -1
- package/cjs/custom/growWidth.js +2 -2
- package/cjs/custom/growWidth.js.map +1 -1
- package/cjs/custom/register.js +2 -1
- package/cjs/custom/scale.js +1 -2
- package/cjs/executor/animate-executor.d.ts +1 -0
- package/cjs/executor/animate-executor.js +7 -4
- package/cjs/executor/animate-executor.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +6 -1
- package/cjs/index.js.map +1 -1
- package/cjs/state/animation-state.js +1 -1
- package/cjs/state/animation-state.js.map +1 -1
- package/cjs/step.d.ts +1 -0
- package/cjs/step.js +1 -0
- package/cjs/step.js.map +1 -1
- package/dist/index.es.js +96 -11
- package/es/animate.d.ts +1 -0
- package/es/animate.js +7 -1
- package/es/animate.js.map +1 -1
- package/es/custom/custom-animate.d.ts +14 -1
- package/es/custom/custom-animate.js +38 -0
- package/es/custom/custom-animate.js.map +1 -1
- package/es/custom/fade.js +2 -1
- package/es/custom/groupFade.js +1 -2
- package/es/custom/growAngle.js +2 -2
- package/es/custom/growAngle.js.map +1 -1
- package/es/custom/growRadius.js +2 -2
- package/es/custom/growRadius.js.map +1 -1
- package/es/custom/growWidth.js +2 -2
- package/es/custom/growWidth.js.map +1 -1
- package/es/custom/register.js +2 -1
- package/es/custom/scale.js +1 -2
- package/es/executor/animate-executor.d.ts +1 -0
- package/es/executor/animate-executor.js +7 -4
- package/es/executor/animate-executor.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/state/animation-state.js +1 -1
- package/es/state/animation-state.js.map +1 -1
- package/es/step.d.ts +1 -0
- package/es/step.js +1 -0
- package/es/step.js.map +1 -1
- package/package.json +2 -2
package/cjs/animate.d.ts
CHANGED
package/cjs/animate.js
CHANGED
|
@@ -136,7 +136,9 @@ class Animate {
|
|
|
136
136
|
}
|
|
137
137
|
release() {
|
|
138
138
|
this.status = vrender_core_1.AnimateStatus.END, this._onRemove && this._onRemove.forEach((cb => cb())),
|
|
139
|
-
this._onStart = [], this._onFrame = [], this._onEnd = [], this._onRemove = []
|
|
139
|
+
this._onStart = [], this._onFrame = [], this._onEnd = [], this._onRemove = [], this.forEachStep((step => {
|
|
140
|
+
step.release();
|
|
141
|
+
}));
|
|
140
142
|
}
|
|
141
143
|
getDuration() {
|
|
142
144
|
return this._duration;
|
|
@@ -212,6 +214,10 @@ class Animate {
|
|
|
212
214
|
getLoop() {
|
|
213
215
|
return this._loopCount;
|
|
214
216
|
}
|
|
217
|
+
forEachStep(cb) {
|
|
218
|
+
let step = this._firstStep;
|
|
219
|
+
for (;step; ) cb(step), step = step.next;
|
|
220
|
+
}
|
|
215
221
|
}
|
|
216
222
|
|
|
217
223
|
exports.Animate = Animate;
|
package/cjs/animate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animate.ts"],"names":[],"mappings":"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","file":"animate.js","sourcesContent":["import { Step, WaitStep } from './step';\nimport {\n Generator,\n AnimateStatus,\n AnimateStepType,\n type IGraphic,\n type IAnimate,\n type IStep,\n type ICustomAnimate,\n type EasingType,\n type ITimeline\n} from '@visactor/vrender-core';\nimport { defaultTimeline } from './timeline';\n\nexport class Animate implements IAnimate {\n readonly id: string | number;\n status: AnimateStatus;\n target: IGraphic;\n\n // 回调函数列表\n _onStart?: (() => void)[];\n _onFrame?: ((step: IStep, ratio: number) => void)[];\n _onEnd?: (() => void)[];\n _onRemove?: (() => void)[];\n\n // 时间控制\n private _timeline: ITimeline;\n private _startTime: number;\n private _duration: number;\n private _totalDuration: number;\n\n // 动画控制\n // private _reversed: boolean;\n private _loopCount: number;\n private _currentLoop: number;\n private _bounce: boolean;\n\n // 链表头节点和尾节点\n private _firstStep: IStep | null;\n private _lastStep: IStep | null;\n\n // 初始属性和屏蔽的属性\n private _startProps: Record<string, any>;\n private _endProps: Record<string, any>;\n private _preventAttrs: Set<string>;\n // 优先级,用于判定是否能被后续的动画preventAttr\n declare priority: number;\n\n protected currentTime: number;\n slience?: boolean;\n\n // 临时变量\n lastRunStep?: IStep;\n\n interpolateUpdateFunction:\n | ((from: Record<string, any>, to: Record<string, any>, ratio: number, step: IStep, target: IGraphic) => void)\n | null;\n\n constructor(\n id: string | number = Generator.GenAutoIncrementId(),\n timeline: ITimeline = defaultTimeline,\n slience?: boolean\n ) {\n this.id = id;\n this.status = AnimateStatus.INITIAL;\n this._timeline = timeline;\n timeline.addAnimate(this);\n this.slience = slience;\n this._startTime = 0;\n this._duration = 0;\n this._totalDuration = 0;\n // this._reversed = false;\n this._loopCount = 0;\n this._currentLoop = 0;\n this._bounce = false;\n this._firstStep = null;\n this._lastStep = null;\n this._startProps = {};\n this._endProps = {};\n this._preventAttrs = new Set();\n this.currentTime = 0;\n this.interpolateUpdateFunction = null;\n this.priority = 0;\n }\n\n /**\n * 获取开始属性\n */\n getStartProps(): Record<string, any> {\n return this._startProps;\n }\n\n /**\n * 获取结束属性\n */\n getEndProps(): Record<string, any> {\n return this._endProps;\n }\n\n /**\n * 设置时间线\n */\n setTimeline(timeline: ITimeline): void {\n this._timeline = timeline;\n }\n\n /**\n * 获取时间线\n */\n getTimeline(): ITimeline {\n return this._timeline;\n }\n\n /**\n * 时间线属性访问器\n */\n get timeline(): ITimeline {\n return this._timeline;\n }\n\n /**\n * 绑定目标图形\n */\n bind(target: IGraphic): this {\n this.target = target;\n\n if (!this.target.animates) {\n this.target.animates = new Map();\n }\n this.target.animates.set(this.id, this);\n this.onRemove(() => {\n this.stop();\n this.target.animates.delete(this.id);\n });\n\n if (this.target.onAnimateBind && !this.slience) {\n this.target.onAnimateBind(this as any);\n }\n // 添加一个animationAttribute属性,用于存储动画过程中的属性\n if (!this.target.animationAttribute) {\n this.target.animationAttribute = {};\n }\n return this;\n }\n\n /**\n * 动画步骤:to\n * 添加一个to步骤,这会在当前状态到指定状态间进行插值\n */\n to(props: Record<string, any>, duration: number = 300, easing: EasingType = 'linear'): this {\n // 创建新的step\n const step = new Step(AnimateStepType.to, props, duration, easing);\n\n step.bind(this.target, this);\n\n this.updateStepAfterAppend(step);\n\n return this;\n }\n\n /**\n * 等待延迟\n */\n wait(delay: number): this {\n // 创建新的wait step\n const step = new WaitStep(AnimateStepType.wait, {}, delay, 'linear');\n\n step.bind(this.target, this);\n\n this.updateStepAfterAppend(step);\n\n return this;\n }\n\n protected updateStepAfterAppend(step: IStep): void {\n // 如果是第一个step\n if (!this._firstStep) {\n this._firstStep = step;\n this._lastStep = step;\n } else {\n // 添加到链表末尾\n this._lastStep.append(step);\n this._lastStep = step;\n }\n\n this.parseStepProps(step);\n\n this.updateDuration();\n }\n\n /**\n * 解析step的props\n * 1. 预先获取step的propKeys并保存\n * 2. 将截止目前的最新props设置到step.props中,这样该props上的属性就是最终的属性了,跳帧时直接设置即可\n * 3. 同步到_endProps中,保存这个Animate实例的最终props\n * 4. 给step的props的原型链上绑定Animate的_startProps,这样在下一个step查找fromProps的时候,一定能拿得到值\n */\n parseStepProps(step: IStep) {\n if (!this._lastStep) {\n return;\n }\n\n /* 预设置step的属性,基于性能考虑,实现比较复杂 */\n // step.propKeys为真实的props属性的key\n step.propKeys = step.propKeys || Object.keys(step.props);\n // step.props为包含前序step的props的最终props,用于跳帧等场景,可以直接设置\n Object.keys(this._endProps).forEach(key => {\n step.props[key] = step.props[key] ?? this._endProps[key];\n });\n // 将最终的props设置到step.props中\n step.propKeys.forEach(key => {\n this._endProps[key] = step.props[key];\n });\n // 给step的props的原型链上绑定Animate的_startProps\n // 下一个step在查找上一个step.props(也就是找到它的fromProps)的时候,就能拿到初始的props了\n // 比如:\n // rect.animate().to({ x: 100 }, 1000, 'linear').to({ y: 100 }, 1000, 'linear');\n // 在第二个step查找fromProps的时候,就能拿到第一个step的endProps中的y值(在原型链上)\n // TODO 由于会有其他animate的干扰,所以不能直接设置原型链\n // Object.setPrototypeOf(step.props, this._startProps);\n }\n\n /**\n * 重新同步和计算props,用于内部某些step发生了变更后,重新计算自身\n * 性能较差,不要频繁调用\n * @returns\n */\n reSyncProps() {\n if (!this._lastStep) {\n return;\n }\n this._endProps = {};\n let currentStep: IStep = this._firstStep;\n // 从前向后寻找当前时间所在的step\n while (currentStep) {\n // step.props为包含前序step的props的最终props,用于跳帧等场景,可以直接设置\n // eslint-disable-next-line no-loop-func\n Object.keys(this._endProps).forEach(key => {\n currentStep.props[key] = currentStep.props[key] ?? this._endProps[key];\n });\n // 将最终的props设置到step.props中\n // eslint-disable-next-line no-loop-func\n currentStep.propKeys.forEach(key => {\n this._endProps[key] = currentStep.props[key];\n });\n // 给step的props的原型链上绑定Animate的_startProps\n // 下一个step在查找上一个step.props(也就是找到它的fromProps)的时候,就能拿到初始的props了\n // 比如:\n // rect.animate().to({ x: 100 }, 1000, 'linear').to({ y: 100 }, 1000, 'linear');\n // 在第二个step查找fromProps的时候,就能拿到第一个step的endProps中的y值(在原型链上)\n // TODO 由于会有其他animate的干扰,所以不能直接设置原型链\n // Object.setPrototypeOf(currentStep.props, this._startProps);\n currentStep = currentStep.next;\n }\n }\n\n /**\n * 动画步骤:from\n * 添加一个from步骤,这会将目标属性先设置为指定值,然后过渡到当前状态\n * 【注意】这可能会导致动画跳变,请谨慎使用\n */\n from(props: Record<string, any>, duration: number = 300, easing: EasingType = 'linear'): this {\n // 创建新的step\n const step = new Step(AnimateStepType.from, props, duration, easing);\n\n // 如果是第一个step\n if (!this._firstStep) {\n this._firstStep = step;\n this._lastStep = step;\n } else {\n // 添加到链表末尾\n this._lastStep.append(step);\n this._lastStep = step;\n }\n\n this.updateDuration();\n\n return this;\n }\n\n /**\n * 自定义动画\n */\n play(customAnimate: ICustomAnimate): this {\n customAnimate.bind(this.target, this);\n this.updateStepAfterAppend(customAnimate);\n\n return this;\n }\n\n /**\n * 暂停动画\n */\n pause(): void {\n if (this.status === AnimateStatus.RUNNING) {\n this.status = AnimateStatus.PAUSED;\n }\n }\n\n /**\n * 恢复动画\n */\n resume(): void {\n if (this.status === AnimateStatus.PAUSED) {\n this.status = AnimateStatus.RUNNING;\n }\n }\n\n /**\n * 注册开始回调\n */\n onStart(cb?: () => void): void {\n if (cb) {\n if (!this._onStart) {\n this._onStart = [];\n }\n this._onStart.push(cb);\n } else {\n this._onStart?.forEach(cb => cb());\n // 设置开始属性,Animate不会重复执行start所以不需要判断firstStart\n Object.keys(this._endProps).forEach(key => {\n this._startProps[key] = this.target.getComputedAttribute(key);\n });\n }\n }\n\n /**\n * 注册结束回调\n */\n onEnd(cb?: () => void): void {\n if (cb) {\n if (!this._onEnd) {\n this._onEnd = [];\n }\n this._onEnd.push(cb);\n } else {\n this._onEnd?.forEach(cb => cb());\n }\n }\n\n /**\n * 注册帧回调\n */\n onFrame(cb?: (step: IStep, ratio: number) => void): void {\n if (cb) {\n if (!this._onFrame) {\n this._onFrame = [];\n }\n this._onFrame.push(cb);\n }\n }\n\n /**\n * 注册移除回调\n */\n onRemove(cb?: () => void): void {\n if (cb) {\n if (!this._onRemove) {\n this._onRemove = [];\n }\n this._onRemove.push(cb);\n } else {\n this._onRemove?.forEach(cb => cb());\n }\n }\n\n /**\n * 屏蔽单个属性\n */\n preventAttr(key: string): void {\n this._preventAttrs.add(key);\n // 从所有step中移除该属性,并从自身的_startProps和_endProps中移除该属性\n delete this._startProps[key];\n delete this._endProps[key];\n let step = this._firstStep;\n while (step) {\n step.deleteSelfAttr(key);\n step = step.next;\n }\n }\n\n /**\n * 屏蔽多个属性\n */\n preventAttrs(keys: string[]): void {\n keys.forEach(key => this._preventAttrs.add(key));\n }\n\n /**\n * 检查属性是否合法(未被屏蔽)\n */\n validAttr(key: string): boolean {\n return !this._preventAttrs.has(key);\n }\n\n /**\n * 运行自定义回调\n */\n runCb(cb: (a: IAnimate, step: IStep) => void): IAnimate {\n this._lastStep?.onEnd(cb);\n return this;\n }\n\n /**\n * 设置动画开始时间\n */\n startAt(t: number): this {\n this._startTime = t;\n\n return this;\n }\n\n /**\n * 自定义插值函数,返回false表示没有匹配上\n */\n customInterpolate(\n key: string,\n ratio: number,\n from: any,\n to: any,\n target: IGraphic,\n ret: Record<string, any>\n ): boolean {\n // 默认无自定义插值,可由子类重写\n return false;\n }\n\n /**\n * 获取起始值,该起始值为animate的起始值,并不一定为step的起始值\n */\n getFromValue(): Record<string, any> {\n return this._startProps;\n }\n\n /**\n * 获取结束值\n */\n getToValue(): Record<string, any> {\n return this._endProps;\n }\n\n /**\n * 停止动画\n */\n stop(type?: 'start' | 'end' | Record<string, any>): void {\n // TODO 有些动画可能一添加就被删除\n // if (this.status === AnimateStatus.END) {\n // return;\n // }\n // 遍历step,调用其stop\n let step = this._firstStep;\n while (step) {\n step.stop();\n step = step.next;\n }\n\n if (this.status !== AnimateStatus.END) {\n this.onEnd();\n }\n\n this.status = AnimateStatus.END;\n\n if (!this.target) {\n return;\n }\n\n if (type === 'start') {\n // 设置为开始状态\n this.target.setAttributes(this._startProps);\n } else if (type === 'end') {\n // 设置为结束状态\n this.target.setAttributes(this._endProps);\n } else if (type) {\n // 设置为自定义状态\n this.target.setAttributes(type);\n }\n }\n\n /**\n * 释放动画资源\n */\n release(): void {\n this.status = AnimateStatus.END;\n\n // 触发移除回调\n if (this._onRemove) {\n this._onRemove.forEach(cb => cb());\n }\n\n // 清空回调\n this._onStart = [];\n this._onFrame = [];\n this._onEnd = [];\n this._onRemove = [];\n }\n\n /**\n * 获取动画持续时间\n */\n getDuration(): number {\n return this._duration;\n }\n\n /**\n * 获取动画开始时间\n */\n getStartTime(): number {\n return this._startTime;\n }\n\n /**\n * 在所有动画完成后执行\n */\n afterAll(list: IAnimate[]): this {\n if (!list || list.length === 0) {\n return this;\n }\n\n // 计算所有动画结束的最大时间点\n let maxEndTime = 0;\n list.forEach(animate => {\n const endTime = animate.getStartTime() + animate.getTotalDuration();\n maxEndTime = Math.max(maxEndTime, endTime);\n });\n\n // 设置当前动画的开始时间为最大结束时间\n return this.startAt(maxEndTime);\n }\n\n /**\n * 在指定动画完成后执行\n */\n after(animate: IAnimate): this {\n if (!animate) {\n return this;\n }\n\n // 计算指定动画结束的时间点\n const endTime = animate.getStartTime() + animate.getTotalDuration();\n\n // 设置当前动画的开始时间为结束时间\n return this.startAt(endTime);\n }\n\n /**\n * 并行执行动画\n */\n parallel(animate: IAnimate): this {\n if (!animate) {\n return this;\n }\n\n // 设置指定动画的开始时间为当前动画的开始时间\n this.startAt(animate.getStartTime());\n\n return this;\n }\n\n // /**\n // * 设置动画是否反转\n // */\n // reversed(r: boolean): this {\n // this._reversed = r;\n // return this;\n // }\n\n /**\n * 设置动画循环次数,如果传入true,则无限循环,如果传入false,则不循环\n */\n loop(n: number | boolean): this {\n if (n === true) {\n n = Infinity;\n } else if (n === false) {\n n = 0;\n }\n this._loopCount = n;\n this.updateDuration();\n return this;\n }\n\n /**\n * 设置动画是否反弹\n */\n bounce(b: boolean): this {\n this._bounce = b;\n return this;\n }\n\n /**\n * 推进动画\n */\n advance(delta: number): void {\n if (this.status === AnimateStatus.END) {\n console.warn('aaa 动画已经结束,不能推进');\n return;\n }\n const nextTime = this.currentTime + delta;\n // 如果还没开始,直接return\n if (nextTime < this._startTime) {\n this.currentTime = nextTime;\n return;\n }\n // 如果已经结束,设置状态后return\n if (nextTime >= this._startTime + this._totalDuration) {\n this._lastStep?.onUpdate(true, 1, {});\n this._lastStep?.onEnd();\n this.onEnd();\n this.status = AnimateStatus.END;\n return;\n }\n\n this.status = AnimateStatus.RUNNING;\n\n // 如果是第一次运行,触发开始回调\n if (this.currentTime <= this._startTime) {\n this.onStart();\n }\n this.currentTime = nextTime;\n\n let cycleTime = nextTime - this._startTime;\n let newLoop = false;\n let bounceTime = false;\n if (this._loopCount > 0) {\n cycleTime = (nextTime - this._startTime) % this._duration;\n const currentLoop = Math.floor((nextTime - this._startTime) / this._duration);\n newLoop = currentLoop > this._currentLoop;\n this._currentLoop = currentLoop;\n\n bounceTime = this._bounce && currentLoop % 2 === 1;\n if (bounceTime) {\n cycleTime = this._duration - cycleTime;\n }\n }\n\n // 如果是新的循环,重置为初始状态\n if (newLoop && !bounceTime) {\n this.target.setAttributes(this._startProps);\n }\n\n // 选择起始步骤和遍历方向\n let targetStep: IStep | null = null;\n\n if (this._lastStep === this._firstStep) {\n targetStep = this._firstStep;\n } else {\n let currentStep: IStep = this._firstStep;\n // 从前向后寻找当前时间所在的step\n while (currentStep) {\n const stepStartTime = currentStep.getStartTime();\n const stepDuration = currentStep.getDuration();\n const stepEndTime = stepStartTime + stepDuration;\n\n // 找到当前周期时间所在的step\n if (cycleTime >= stepStartTime && cycleTime <= stepEndTime) {\n targetStep = currentStep;\n break;\n }\n\n currentStep = currentStep.next;\n }\n }\n\n // 如果没找到目标step(可能是所有step都执行完了,但整体动画还没结束,这正常是不存在的)\n if (!targetStep) {\n // this.currentTime = nextTime;\n // console.warn('动画出现问题');\n return;\n }\n\n // 如果当前step和上一次执行的step不一样,则调用上一次step的onEnd,确保所有完成的step都调用了结束\n // 如果上一次的step已经调用了onEnd,在下面的onEnd那里会将lastRunStep设置为null\n if (targetStep !== this.lastRunStep) {\n this.lastRunStep?.onEnd();\n }\n\n this.lastRunStep = targetStep;\n\n // 计算当前step的进度比例(基于当前step内的相对时间)\n const stepStartTime = targetStep.getStartTime();\n const stepDuration = targetStep.getDuration();\n\n const ratio = (cycleTime - stepStartTime) / stepDuration;\n // // 限制ratio在0-1之间\n // ratio = Math.max(0, Math.min(1, ratio));\n\n const isEnd = ratio >= 1;\n targetStep.update(isEnd, ratio, {});\n\n // 如果step执行完毕\n if (isEnd) {\n targetStep.onEnd();\n this.lastRunStep = null;\n // 不立即调用onFinish,让动画系统来决定何时结束\n }\n\n // 触发帧回调\n // if (this._onFrame) {\n // this._onFrame.forEach(cb => cb(targetStep, ratio));\n // }\n }\n\n updateDuration(): void {\n if (!this._lastStep) {\n this._duration = 0;\n return;\n }\n\n this._duration = this._lastStep.getStartTime() + this._lastStep.getDuration();\n this._totalDuration = this._duration * (this._loopCount + 1);\n }\n\n getTotalDuration(): number {\n return this._totalDuration;\n }\n\n getLoop(): number {\n return this._loopCount;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/animate.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AACxC,yDAUgC;AAChC,yCAA6C;AAE7C,MAAa,OAAO;IA4ClB,YACE,KAAsB,wBAAS,CAAC,kBAAkB,EAAE,EACpD,WAAsB,0BAAe,EACrC,OAAiB;QAEjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAExB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,CAAC;IAKD,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAKD,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAKD,WAAW,CAAC,QAAmB;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAKD,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAKD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAKD,IAAI,CAAC,MAAgB;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAW,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,EAAE,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,EAAE,CAAC,KAA0B,EAAE,WAAmB,GAAG,EAAE,SAAqB,QAAQ;QAElF,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,8BAAe,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,IAAI,CAAC,KAAa;QAEhB,MAAM,IAAI,GAAG,IAAI,eAAQ,CAAC,8BAAe,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAES,qBAAqB,CAAC,IAAW;QAEzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YAEL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IASD,cAAc,CAAC,IAAW;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QAID,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IAQL,CAAC;IAOD,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,GAAU,IAAI,CAAC,UAAU,CAAC;QAEzC,OAAO,WAAW,EAAE;YAGlB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;gBACxC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAA,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAGH,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAQH,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;SAChC;IACH,CAAC;IAOD,IAAI,CAAC,KAA0B,EAAE,WAAmB,GAAG,EAAE,SAAqB,QAAQ;QAEpF,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,8BAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAGrE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM;YAEL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,IAAI,CAAC,aAA6B;QAChC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,4BAAa,CAAC,OAAO,EAAE;YACzC,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,MAAM,CAAC;SACpC;IACH,CAAC;IAKD,MAAM;QACJ,IAAI,IAAI,CAAC,MAAM,KAAK,4BAAa,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,OAAO,CAAC;SACrC;IACH,CAAC;IAKD,OAAO,CAAC,EAAe;;QACrB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxB;aAAM;YACL,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAKD,KAAK,CAAC,EAAe;;QACnB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;aAClB;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtB;aAAM;YACL,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SAClC;IACH,CAAC;IAKD,OAAO,CAAC,EAAyC;QAC/C,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxB;IACH,CAAC;IAKD,QAAQ,CAAC,EAAe;;QACtB,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACrB;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACzB;aAAM;YACL,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SACrC;IACH,CAAC;IAKD,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,OAAO,IAAI,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClB;IACH,CAAC;IAKD,YAAY,CAAC,IAAc;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAKD,SAAS,CAAC,GAAW;QACnB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAKD,KAAK,CAAC,EAAsC;;QAC1C,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,OAAO,CAAC,CAAS;QACf,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,iBAAiB,CACf,GAAW,EACX,KAAa,EACb,IAAS,EACT,EAAO,EACP,MAAgB,EAChB,GAAwB;QAGxB,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,YAAY;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAKD,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAKD,IAAI,CAAC,IAA4C;QAM/C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,OAAO,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,4BAAa,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,GAAG,CAAC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QAED,IAAI,IAAI,KAAK,OAAO,EAAE;YAEpB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7C;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE;YAEzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3C;aAAM,IAAI,IAAI,EAAE;YAEf,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SACjC;IACH,CAAC;IAKD,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,GAAG,CAAC;QAGhC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SACpC;QAGD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAKD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAKD,QAAQ,CAAC,IAAgB;QACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACrB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACpE,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAGH,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAKD,KAAK,CAAC,OAAiB;QACrB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAGD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAGpE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAKD,QAAQ,CAAC,OAAiB;QACxB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC;IACd,CAAC;IAaD,IAAI,CAAC,CAAmB;QACtB,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,CAAC,GAAG,QAAQ,CAAC;SACd;aAAM,IAAI,CAAC,KAAK,KAAK,EAAE;YACtB,CAAC,GAAG,CAAC,CAAC;SACP;QACD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,MAAM,CAAC,CAAU;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,OAAO,CAAC,KAAa;;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,4BAAa,CAAC,GAAG,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;YAC9B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;YACrD,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,GAAG,CAAC;YAChC,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,4BAAa,CAAC,OAAO,CAAC;QAGpC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAE5B,IAAI,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,SAAS,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9E,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAEhC,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE;gBACd,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;aACxC;SACF;QAGD,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7C;QAGD,IAAI,UAAU,GAAiB,IAAI,CAAC;QAEpC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;YACtC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SAC9B;aAAM;YACL,IAAI,WAAW,GAAU,IAAI,CAAC,UAAU,CAAC;YAEzC,OAAO,WAAW,EAAE;gBAClB,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;gBACjD,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC/C,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;gBAGjD,IAAI,SAAS,IAAI,aAAa,IAAI,SAAS,IAAI,WAAW,EAAE;oBAC1D,UAAU,GAAG,WAAW,CAAC;oBACzB,MAAM;iBACP;gBAED,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;aAChC;SACF;QAGD,IAAI,CAAC,UAAU,EAAE;YAGf,OAAO;SACR;QAID,IAAI,UAAU,KAAK,IAAI,CAAC,WAAW,EAAE;YACnC,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAG9B,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE9C,MAAM,KAAK,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,YAAY,CAAC;QAIzD,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACzB,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAGpC,IAAI,KAAK,EAAE;YACT,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAEzB;IAMH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,OAAO;SACR;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAES,WAAW,CAAC,EAAyB;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,OAAO,IAAI,EAAE;YACX,EAAE,CAAC,IAAI,CAAC,CAAC;YACT,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClB;IACH,CAAC;CACF;AA5sBD,0BA4sBC","file":"animate.js","sourcesContent":["import { Step, WaitStep } from './step';\nimport {\n Generator,\n AnimateStatus,\n AnimateStepType,\n type IGraphic,\n type IAnimate,\n type IStep,\n type ICustomAnimate,\n type EasingType,\n type ITimeline\n} from '@visactor/vrender-core';\nimport { defaultTimeline } from './timeline';\n\nexport class Animate implements IAnimate {\n readonly id: string | number;\n status: AnimateStatus;\n target: IGraphic;\n\n // 回调函数列表\n _onStart?: (() => void)[];\n _onFrame?: ((step: IStep, ratio: number) => void)[];\n _onEnd?: (() => void)[];\n _onRemove?: (() => void)[];\n\n // 时间控制\n private _timeline: ITimeline;\n private _startTime: number;\n private _duration: number;\n private _totalDuration: number;\n\n // 动画控制\n // private _reversed: boolean;\n private _loopCount: number;\n private _currentLoop: number;\n private _bounce: boolean;\n\n // 链表头节点和尾节点\n private _firstStep: IStep | null;\n private _lastStep: IStep | null;\n\n // 初始属性和屏蔽的属性\n private _startProps: Record<string, any>;\n private _endProps: Record<string, any>;\n private _preventAttrs: Set<string>;\n // 优先级,用于判定是否能被后续的动画preventAttr\n declare priority: number;\n\n protected currentTime: number;\n slience?: boolean;\n\n // 临时变量\n lastRunStep?: IStep;\n\n interpolateUpdateFunction:\n | ((from: Record<string, any>, to: Record<string, any>, ratio: number, step: IStep, target: IGraphic) => void)\n | null;\n\n constructor(\n id: string | number = Generator.GenAutoIncrementId(),\n timeline: ITimeline = defaultTimeline,\n slience?: boolean\n ) {\n this.id = id;\n this.status = AnimateStatus.INITIAL;\n this._timeline = timeline;\n timeline.addAnimate(this);\n this.slience = slience;\n this._startTime = 0;\n this._duration = 0;\n this._totalDuration = 0;\n // this._reversed = false;\n this._loopCount = 0;\n this._currentLoop = 0;\n this._bounce = false;\n this._firstStep = null;\n this._lastStep = null;\n this._startProps = {};\n this._endProps = {};\n this._preventAttrs = new Set();\n this.currentTime = 0;\n this.interpolateUpdateFunction = null;\n this.priority = 0;\n }\n\n /**\n * 获取开始属性\n */\n getStartProps(): Record<string, any> {\n return this._startProps;\n }\n\n /**\n * 获取结束属性\n */\n getEndProps(): Record<string, any> {\n return this._endProps;\n }\n\n /**\n * 设置时间线\n */\n setTimeline(timeline: ITimeline): void {\n this._timeline = timeline;\n }\n\n /**\n * 获取时间线\n */\n getTimeline(): ITimeline {\n return this._timeline;\n }\n\n /**\n * 时间线属性访问器\n */\n get timeline(): ITimeline {\n return this._timeline;\n }\n\n /**\n * 绑定目标图形\n */\n bind(target: IGraphic): this {\n this.target = target;\n\n if (!this.target.animates) {\n this.target.animates = new Map();\n }\n this.target.animates.set(this.id, this);\n this.onRemove(() => {\n this.stop();\n this.target.animates.delete(this.id);\n });\n\n if (this.target.onAnimateBind && !this.slience) {\n this.target.onAnimateBind(this as any);\n }\n // 添加一个animationAttribute属性,用于存储动画过程中的属性\n if (!this.target.animationAttribute) {\n this.target.animationAttribute = {};\n }\n return this;\n }\n\n /**\n * 动画步骤:to\n * 添加一个to步骤,这会在当前状态到指定状态间进行插值\n */\n to(props: Record<string, any>, duration: number = 300, easing: EasingType = 'linear'): this {\n // 创建新的step\n const step = new Step(AnimateStepType.to, props, duration, easing);\n\n step.bind(this.target, this);\n\n this.updateStepAfterAppend(step);\n\n return this;\n }\n\n /**\n * 等待延迟\n */\n wait(delay: number): this {\n // 创建新的wait step\n const step = new WaitStep(AnimateStepType.wait, {}, delay, 'linear');\n\n step.bind(this.target, this);\n\n this.updateStepAfterAppend(step);\n\n return this;\n }\n\n protected updateStepAfterAppend(step: IStep): void {\n // 如果是第一个step\n if (!this._firstStep) {\n this._firstStep = step;\n this._lastStep = step;\n } else {\n // 添加到链表末尾\n this._lastStep.append(step);\n this._lastStep = step;\n }\n\n this.parseStepProps(step);\n\n this.updateDuration();\n }\n\n /**\n * 解析step的props\n * 1. 预先获取step的propKeys并保存\n * 2. 将截止目前的最新props设置到step.props中,这样该props上的属性就是最终的属性了,跳帧时直接设置即可\n * 3. 同步到_endProps中,保存这个Animate实例的最终props\n * 4. 给step的props的原型链上绑定Animate的_startProps,这样在下一个step查找fromProps的时候,一定能拿得到值\n */\n parseStepProps(step: IStep) {\n if (!this._lastStep) {\n return;\n }\n\n /* 预设置step的属性,基于性能考虑,实现比较复杂 */\n // step.propKeys为真实的props属性的key\n step.propKeys = step.propKeys || Object.keys(step.props);\n // step.props为包含前序step的props的最终props,用于跳帧等场景,可以直接设置\n Object.keys(this._endProps).forEach(key => {\n step.props[key] = step.props[key] ?? this._endProps[key];\n });\n // 将最终的props设置到step.props中\n step.propKeys.forEach(key => {\n this._endProps[key] = step.props[key];\n });\n // 给step的props的原型链上绑定Animate的_startProps\n // 下一个step在查找上一个step.props(也就是找到它的fromProps)的时候,就能拿到初始的props了\n // 比如:\n // rect.animate().to({ x: 100 }, 1000, 'linear').to({ y: 100 }, 1000, 'linear');\n // 在第二个step查找fromProps的时候,就能拿到第一个step的endProps中的y值(在原型链上)\n // TODO 由于会有其他animate的干扰,所以不能直接设置原型链\n // Object.setPrototypeOf(step.props, this._startProps);\n }\n\n /**\n * 重新同步和计算props,用于内部某些step发生了变更后,重新计算自身\n * 性能较差,不要频繁调用\n * @returns\n */\n reSyncProps() {\n if (!this._lastStep) {\n return;\n }\n this._endProps = {};\n let currentStep: IStep = this._firstStep;\n // 从前向后寻找当前时间所在的step\n while (currentStep) {\n // step.props为包含前序step的props的最终props,用于跳帧等场景,可以直接设置\n // eslint-disable-next-line no-loop-func\n Object.keys(this._endProps).forEach(key => {\n currentStep.props[key] = currentStep.props[key] ?? this._endProps[key];\n });\n // 将最终的props设置到step.props中\n // eslint-disable-next-line no-loop-func\n currentStep.propKeys.forEach(key => {\n this._endProps[key] = currentStep.props[key];\n });\n // 给step的props的原型链上绑定Animate的_startProps\n // 下一个step在查找上一个step.props(也就是找到它的fromProps)的时候,就能拿到初始的props了\n // 比如:\n // rect.animate().to({ x: 100 }, 1000, 'linear').to({ y: 100 }, 1000, 'linear');\n // 在第二个step查找fromProps的时候,就能拿到第一个step的endProps中的y值(在原型链上)\n // TODO 由于会有其他animate的干扰,所以不能直接设置原型链\n // Object.setPrototypeOf(currentStep.props, this._startProps);\n currentStep = currentStep.next;\n }\n }\n\n /**\n * 动画步骤:from\n * 添加一个from步骤,这会将目标属性先设置为指定值,然后过渡到当前状态\n * 【注意】这可能会导致动画跳变,请谨慎使用\n */\n from(props: Record<string, any>, duration: number = 300, easing: EasingType = 'linear'): this {\n // 创建新的step\n const step = new Step(AnimateStepType.from, props, duration, easing);\n\n // 如果是第一个step\n if (!this._firstStep) {\n this._firstStep = step;\n this._lastStep = step;\n } else {\n // 添加到链表末尾\n this._lastStep.append(step);\n this._lastStep = step;\n }\n\n this.updateDuration();\n\n return this;\n }\n\n /**\n * 自定义动画\n */\n play(customAnimate: ICustomAnimate): this {\n customAnimate.bind(this.target, this);\n this.updateStepAfterAppend(customAnimate);\n\n return this;\n }\n\n /**\n * 暂停动画\n */\n pause(): void {\n if (this.status === AnimateStatus.RUNNING) {\n this.status = AnimateStatus.PAUSED;\n }\n }\n\n /**\n * 恢复动画\n */\n resume(): void {\n if (this.status === AnimateStatus.PAUSED) {\n this.status = AnimateStatus.RUNNING;\n }\n }\n\n /**\n * 注册开始回调\n */\n onStart(cb?: () => void): void {\n if (cb) {\n if (!this._onStart) {\n this._onStart = [];\n }\n this._onStart.push(cb);\n } else {\n this._onStart?.forEach(cb => cb());\n // 设置开始属性,Animate不会重复执行start所以不需要判断firstStart\n Object.keys(this._endProps).forEach(key => {\n this._startProps[key] = this.target.getComputedAttribute(key);\n });\n }\n }\n\n /**\n * 注册结束回调\n */\n onEnd(cb?: () => void): void {\n if (cb) {\n if (!this._onEnd) {\n this._onEnd = [];\n }\n this._onEnd.push(cb);\n } else {\n this._onEnd?.forEach(cb => cb());\n }\n }\n\n /**\n * 注册帧回调\n */\n onFrame(cb?: (step: IStep, ratio: number) => void): void {\n if (cb) {\n if (!this._onFrame) {\n this._onFrame = [];\n }\n this._onFrame.push(cb);\n }\n }\n\n /**\n * 注册移除回调\n */\n onRemove(cb?: () => void): void {\n if (cb) {\n if (!this._onRemove) {\n this._onRemove = [];\n }\n this._onRemove.push(cb);\n } else {\n this._onRemove?.forEach(cb => cb());\n }\n }\n\n /**\n * 屏蔽单个属性\n */\n preventAttr(key: string): void {\n this._preventAttrs.add(key);\n // 从所有step中移除该属性,并从自身的_startProps和_endProps中移除该属性\n delete this._startProps[key];\n delete this._endProps[key];\n let step = this._firstStep;\n while (step) {\n step.deleteSelfAttr(key);\n step = step.next;\n }\n }\n\n /**\n * 屏蔽多个属性\n */\n preventAttrs(keys: string[]): void {\n keys.forEach(key => this._preventAttrs.add(key));\n }\n\n /**\n * 检查属性是否合法(未被屏蔽)\n */\n validAttr(key: string): boolean {\n return !this._preventAttrs.has(key);\n }\n\n /**\n * 运行自定义回调\n */\n runCb(cb: (a: IAnimate, step: IStep) => void): IAnimate {\n this._lastStep?.onEnd(cb);\n return this;\n }\n\n /**\n * 设置动画开始时间\n */\n startAt(t: number): this {\n this._startTime = t;\n\n return this;\n }\n\n /**\n * 自定义插值函数,返回false表示没有匹配上\n */\n customInterpolate(\n key: string,\n ratio: number,\n from: any,\n to: any,\n target: IGraphic,\n ret: Record<string, any>\n ): boolean {\n // 默认无自定义插值,可由子类重写\n return false;\n }\n\n /**\n * 获取起始值,该起始值为animate的起始值,并不一定为step的起始值\n */\n getFromValue(): Record<string, any> {\n return this._startProps;\n }\n\n /**\n * 获取结束值\n */\n getToValue(): Record<string, any> {\n return this._endProps;\n }\n\n /**\n * 停止动画\n */\n stop(type?: 'start' | 'end' | Record<string, any>): void {\n // TODO 有些动画可能一添加就被删除\n // if (this.status === AnimateStatus.END) {\n // return;\n // }\n // 遍历step,调用其stop\n let step = this._firstStep;\n while (step) {\n step.stop();\n step = step.next;\n }\n\n if (this.status !== AnimateStatus.END) {\n this.onEnd();\n }\n\n this.status = AnimateStatus.END;\n\n if (!this.target) {\n return;\n }\n\n if (type === 'start') {\n // 设置为开始状态\n this.target.setAttributes(this._startProps);\n } else if (type === 'end') {\n // 设置为结束状态\n this.target.setAttributes(this._endProps);\n } else if (type) {\n // 设置为自定义状态\n this.target.setAttributes(type);\n }\n }\n\n /**\n * 释放动画资源\n */\n release(): void {\n this.status = AnimateStatus.END;\n\n // 触发移除回调\n if (this._onRemove) {\n this._onRemove.forEach(cb => cb());\n }\n\n // 清空回调\n this._onStart = [];\n this._onFrame = [];\n this._onEnd = [];\n this._onRemove = [];\n\n this.forEachStep(step => {\n step.release();\n });\n }\n\n /**\n * 获取动画持续时间\n */\n getDuration(): number {\n return this._duration;\n }\n\n /**\n * 获取动画开始时间\n */\n getStartTime(): number {\n return this._startTime;\n }\n\n /**\n * 在所有动画完成后执行\n */\n afterAll(list: IAnimate[]): this {\n if (!list || list.length === 0) {\n return this;\n }\n\n // 计算所有动画结束的最大时间点\n let maxEndTime = 0;\n list.forEach(animate => {\n const endTime = animate.getStartTime() + animate.getTotalDuration();\n maxEndTime = Math.max(maxEndTime, endTime);\n });\n\n // 设置当前动画的开始时间为最大结束时间\n return this.startAt(maxEndTime);\n }\n\n /**\n * 在指定动画完成后执行\n */\n after(animate: IAnimate): this {\n if (!animate) {\n return this;\n }\n\n // 计算指定动画结束的时间点\n const endTime = animate.getStartTime() + animate.getTotalDuration();\n\n // 设置当前动画的开始时间为结束时间\n return this.startAt(endTime);\n }\n\n /**\n * 并行执行动画\n */\n parallel(animate: IAnimate): this {\n if (!animate) {\n return this;\n }\n\n // 设置指定动画的开始时间为当前动画的开始时间\n this.startAt(animate.getStartTime());\n\n return this;\n }\n\n // /**\n // * 设置动画是否反转\n // */\n // reversed(r: boolean): this {\n // this._reversed = r;\n // return this;\n // }\n\n /**\n * 设置动画循环次数,如果传入true,则无限循环,如果传入false,则不循环\n */\n loop(n: number | boolean): this {\n if (n === true) {\n n = Infinity;\n } else if (n === false) {\n n = 0;\n }\n this._loopCount = n;\n this.updateDuration();\n return this;\n }\n\n /**\n * 设置动画是否反弹\n */\n bounce(b: boolean): this {\n this._bounce = b;\n return this;\n }\n\n /**\n * 推进动画\n */\n advance(delta: number): void {\n if (this.status === AnimateStatus.END) {\n console.warn('aaa 动画已经结束,不能推进');\n return;\n }\n const nextTime = this.currentTime + delta;\n // 如果还没开始,直接return\n if (nextTime < this._startTime) {\n this.currentTime = nextTime;\n return;\n }\n // 如果已经结束,设置状态后return\n if (nextTime >= this._startTime + this._totalDuration) {\n this._lastStep?.onUpdate(true, 1, {});\n this._lastStep?.onEnd();\n this.onEnd();\n this.status = AnimateStatus.END;\n return;\n }\n\n this.status = AnimateStatus.RUNNING;\n\n // 如果是第一次运行,触发开始回调\n if (this.currentTime <= this._startTime) {\n this.onStart();\n }\n this.currentTime = nextTime;\n\n let cycleTime = nextTime - this._startTime;\n let newLoop = false;\n let bounceTime = false;\n if (this._loopCount > 0) {\n cycleTime = (nextTime - this._startTime) % this._duration;\n const currentLoop = Math.floor((nextTime - this._startTime) / this._duration);\n newLoop = currentLoop > this._currentLoop;\n this._currentLoop = currentLoop;\n\n bounceTime = this._bounce && currentLoop % 2 === 1;\n if (bounceTime) {\n cycleTime = this._duration - cycleTime;\n }\n }\n\n // 如果是新的循环,重置为初始状态\n if (newLoop && !bounceTime) {\n this.target.setAttributes(this._startProps);\n }\n\n // 选择起始步骤和遍历方向\n let targetStep: IStep | null = null;\n\n if (this._lastStep === this._firstStep) {\n targetStep = this._firstStep;\n } else {\n let currentStep: IStep = this._firstStep;\n // 从前向后寻找当前时间所在的step\n while (currentStep) {\n const stepStartTime = currentStep.getStartTime();\n const stepDuration = currentStep.getDuration();\n const stepEndTime = stepStartTime + stepDuration;\n\n // 找到当前周期时间所在的step\n if (cycleTime >= stepStartTime && cycleTime <= stepEndTime) {\n targetStep = currentStep;\n break;\n }\n\n currentStep = currentStep.next;\n }\n }\n\n // 如果没找到目标step(可能是所有step都执行完了,但整体动画还没结束,这正常是不存在的)\n if (!targetStep) {\n // this.currentTime = nextTime;\n // console.warn('动画出现问题');\n return;\n }\n\n // 如果当前step和上一次执行的step不一样,则调用上一次step的onEnd,确保所有完成的step都调用了结束\n // 如果上一次的step已经调用了onEnd,在下面的onEnd那里会将lastRunStep设置为null\n if (targetStep !== this.lastRunStep) {\n this.lastRunStep?.onEnd();\n }\n\n this.lastRunStep = targetStep;\n\n // 计算当前step的进度比例(基于当前step内的相对时间)\n const stepStartTime = targetStep.getStartTime();\n const stepDuration = targetStep.getDuration();\n\n const ratio = (cycleTime - stepStartTime) / stepDuration;\n // // 限制ratio在0-1之间\n // ratio = Math.max(0, Math.min(1, ratio));\n\n const isEnd = ratio >= 1;\n targetStep.update(isEnd, ratio, {});\n\n // 如果step执行完毕\n if (isEnd) {\n targetStep.onEnd();\n this.lastRunStep = null;\n // 不立即调用onFinish,让动画系统来决定何时结束\n }\n\n // 触发帧回调\n // if (this._onFrame) {\n // this._onFrame.forEach(cb => cb(targetStep, ratio));\n // }\n }\n\n updateDuration(): void {\n if (!this._lastStep) {\n this._duration = 0;\n return;\n }\n\n this._duration = this._lastStep.getStartTime() + this._lastStep.getDuration();\n this._totalDuration = this._duration * (this._loopCount + 1);\n }\n\n getTotalDuration(): number {\n return this._totalDuration;\n }\n\n getLoop(): number {\n return this._loopCount;\n }\n\n protected forEachStep(cb: (step: IStep) => void): void {\n let step = this._firstStep;\n while (step) {\n cb(step);\n step = step.next;\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ComponentAnimator } from '../component';
|
|
2
|
-
import type { EasingType, IAnimateStepType, ICustomAnimate } from '@visactor/vrender-core';
|
|
2
|
+
import type { EasingType, IAnimateStepType, ICustomAnimate, Stage } from '@visactor/vrender-core';
|
|
3
3
|
import { Step } from '../step';
|
|
4
4
|
export declare abstract class ACustomAnimate<T> extends Step implements ICustomAnimate {
|
|
5
5
|
type: IAnimateStepType;
|
|
@@ -17,3 +17,16 @@ export declare abstract class AComponentAnimate<T> extends ACustomAnimate<T> {
|
|
|
17
17
|
completeBind(animator: ComponentAnimator): void;
|
|
18
18
|
stop(): void;
|
|
19
19
|
}
|
|
20
|
+
export declare abstract class AStageAnimate<T> extends ACustomAnimate<T> {
|
|
21
|
+
willCallBeforeStageRender: boolean;
|
|
22
|
+
willCallAfterStageRender: boolean;
|
|
23
|
+
constructor(customFrom: T, customTo: T, duration: number, easing: EasingType, params?: any);
|
|
24
|
+
protected beforeStageRender(stage: Stage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
|
|
25
|
+
protected afterStageRender(stage: Stage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
|
|
26
|
+
onFirstRun(): void;
|
|
27
|
+
stop(): void;
|
|
28
|
+
onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
|
|
29
|
+
protected _beforeStageRender: () => void;
|
|
30
|
+
protected _afterStageRender: () => void;
|
|
31
|
+
protected renderToStage(stage: Stage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
|
|
32
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.AComponentAnimate = exports.ACustomAnimate = void 0;
|
|
5
|
+
}), exports.AStageAnimate = exports.AComponentAnimate = exports.ACustomAnimate = void 0;
|
|
6
6
|
|
|
7
7
|
const step_1 = require("../step");
|
|
8
8
|
|
|
@@ -33,4 +33,44 @@ class AComponentAnimate extends ACustomAnimate {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
exports.AComponentAnimate = AComponentAnimate;
|
|
36
|
+
|
|
37
|
+
class AStageAnimate extends ACustomAnimate {
|
|
38
|
+
constructor(customFrom, customTo, duration, easing, params) {
|
|
39
|
+
super(customFrom, customTo, duration, easing, params), this.willCallBeforeStageRender = !0,
|
|
40
|
+
this.willCallAfterStageRender = !0, this._beforeStageRender = () => {
|
|
41
|
+
if (!this.willCallBeforeStageRender) return;
|
|
42
|
+
this.willCallBeforeStageRender = !1;
|
|
43
|
+
const stage = this.target.stage, canvas = stage.window.getContext().canvas.nativeCanvas, outputCanvas = this.beforeStageRender(stage, canvas);
|
|
44
|
+
outputCanvas && this.renderToStage(stage, outputCanvas);
|
|
45
|
+
}, this._afterStageRender = () => {
|
|
46
|
+
if (!this.willCallAfterStageRender) return;
|
|
47
|
+
this.willCallAfterStageRender = !1;
|
|
48
|
+
const stage = this.target.stage, canvas = stage.window.getContext().canvas.nativeCanvas, outputCanvas = this.afterStageRender(stage, canvas);
|
|
49
|
+
outputCanvas && this.renderToStage(stage, outputCanvas);
|
|
50
|
+
}, this.props = {};
|
|
51
|
+
}
|
|
52
|
+
beforeStageRender(stage, canvas) {
|
|
53
|
+
return !1;
|
|
54
|
+
}
|
|
55
|
+
afterStageRender(stage, canvas) {
|
|
56
|
+
return !1;
|
|
57
|
+
}
|
|
58
|
+
onFirstRun() {
|
|
59
|
+
super.onFirstRun(), this.target.stage.setBeforeRender(this._beforeStageRender),
|
|
60
|
+
this.target.stage.setAfterRender(this._afterStageRender), this.target.stage.disableDirtyBounds();
|
|
61
|
+
}
|
|
62
|
+
stop() {
|
|
63
|
+
super.stop(), this.target.stage.removeBeforeRender(this._beforeStageRender), this.target.stage.removeAfterRender(this._afterStageRender);
|
|
64
|
+
}
|
|
65
|
+
onUpdate(end, ratio, out) {
|
|
66
|
+
super.onUpdate(end, ratio, out), this.willCallBeforeStageRender = !0, this.willCallAfterStageRender = !0;
|
|
67
|
+
}
|
|
68
|
+
renderToStage(stage, canvas) {
|
|
69
|
+
const stageCanvas = stage.window.getContext().canvas.nativeCanvas, ctx = stageCanvas.getContext("2d");
|
|
70
|
+
return !!ctx && (ctx.clearRect(0, 0, stageCanvas.width, stageCanvas.height), ctx.drawImage(canvas, 0, 0),
|
|
71
|
+
stageCanvas);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
exports.AStageAnimate = AStageAnimate;
|
|
36
76
|
//# sourceMappingURL=custom-animate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/custom/custom-animate.ts"],"names":[],"mappings":";;;AAEA,kCAA+B;AAE/B,MAAsB,cAAkB,SAAQ,WAAI;IAUlD,YAAY,UAAa,EAAE,QAAW,EAAE,QAAgB,EAAE,MAAkB,EAAE,MAAY;QACxF,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAVrD,SAAI,GAAqB,eAAe,CAAC;QAWvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAY,EAAE,KAAa,EAAE,GAAwB;QAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,OAAO;SACR;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAES,QAAQ,CAAC,KAAQ;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;CACF;AAnCD,wCAmCC;AAED,MAAsB,iBAAqB,SAAQ,cAAiB;IAGlE,YAAY,CAAC,QAA2B;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF;AAZD,8CAYC","file":"custom-animate.js","sourcesContent":["import type { ComponentAnimator } from '../component';\nimport type { EasingType, IAnimateStepType, ICustomAnimate } from '@visactor/vrender-core';\nimport { Step } from '../step';\n\nexport abstract class ACustomAnimate<T> extends Step implements ICustomAnimate {\n type: IAnimateStepType = 'customAnimate';\n declare customFrom: T;\n declare params?: any;\n declare props?: T;\n declare from?: T;\n declare to?: T;\n\n // 为了兼容旧的api,from和to是可选的,且尽量不需要From,因为为了避免突变,From都应该从当前位置开始\n // 所以From并不会真正设置到fromProps中,而是作为customFrom参数\n constructor(customFrom: T, customTo: T, duration: number, easing: EasingType, params?: any) {\n super('customAnimate', customTo, duration, easing);\n this.customFrom = customFrom;\n this.params = params;\n this.from = customFrom;\n this.to = customTo;\n }\n\n update(end: boolean, ratio: number, out: Record<string, any>): void {\n // TODO 需要修复,只有在开始的时候才调用\n this.onStart();\n if (!this.props || !this.propKeys) {\n return;\n }\n // 应用缓动函数\n const easedRatio = this.easing(ratio);\n this.onUpdate(end, easedRatio, out);\n this.syncAttributeUpdate();\n }\n\n protected setProps(props: T) {\n this.props = props;\n this.propKeys = Object.keys(props);\n this.animate.reSyncProps();\n }\n}\n\nexport abstract class AComponentAnimate<T> extends ACustomAnimate<T> {\n protected _animator: ComponentAnimator;\n\n completeBind(animator: ComponentAnimator): void {\n this.setStartTime(0);\n this._animator && this._animator.start();\n this.setDuration(animator.getDuration());\n }\n\n stop(): void {\n this._animator && this._animator.stop();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/custom/custom-animate.ts"],"names":[],"mappings":"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","file":"custom-animate.js","sourcesContent":["import type { ComponentAnimator } from '../component';\nimport type { EasingType, IAnimateStepType, ICustomAnimate, Stage } from '@visactor/vrender-core';\nimport { Step } from '../step';\n\nexport abstract class ACustomAnimate<T> extends Step implements ICustomAnimate {\n type: IAnimateStepType = 'customAnimate';\n declare customFrom: T;\n declare params?: any;\n declare props?: T;\n declare from?: T;\n declare to?: T;\n\n // 为了兼容旧的api,from和to是可选的,且尽量不需要From,因为为了避免突变,From都应该从当前位置开始\n // 所以From并不会真正设置到fromProps中,而是作为customFrom参数\n constructor(customFrom: T, customTo: T, duration: number, easing: EasingType, params?: any) {\n super('customAnimate', customTo, duration, easing);\n this.customFrom = customFrom;\n this.params = params;\n this.from = customFrom;\n this.to = customTo;\n }\n\n update(end: boolean, ratio: number, out: Record<string, any>): void {\n // TODO 需要修复,只有在开始的时候才调用\n this.onStart();\n if (!this.props || !this.propKeys) {\n return;\n }\n // 应用缓动函数\n const easedRatio = this.easing(ratio);\n this.onUpdate(end, easedRatio, out);\n this.syncAttributeUpdate();\n }\n\n protected setProps(props: T) {\n this.props = props;\n this.propKeys = Object.keys(props);\n this.animate.reSyncProps();\n }\n}\n\nexport abstract class AComponentAnimate<T> extends ACustomAnimate<T> {\n protected _animator: ComponentAnimator;\n\n completeBind(animator: ComponentAnimator): void {\n this.setStartTime(0);\n this._animator && this._animator.start();\n this.setDuration(animator.getDuration());\n }\n\n stop(): void {\n this._animator && this._animator.stop();\n }\n}\n\nexport abstract class AStageAnimate<T> extends ACustomAnimate<T> {\n willCallBeforeStageRender: boolean = true;\n willCallAfterStageRender: boolean = true;\n constructor(customFrom: T, customTo: T, duration: number, easing: EasingType, params?: any) {\n super(customFrom, customTo, duration, easing, params);\n this.props = {} as T;\n }\n\n // 用户重载\n protected beforeStageRender(stage: Stage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false {\n return false;\n }\n\n // 用户重载\n protected afterStageRender(stage: Stage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false {\n return false;\n }\n\n onFirstRun(): void {\n super.onFirstRun();\n this.target.stage.setBeforeRender(this._beforeStageRender);\n this.target.stage.setAfterRender(this._afterStageRender);\n // 禁用脏矩形,因为stage动画可能会批量修改整体画面\n this.target.stage.disableDirtyBounds();\n }\n\n stop() {\n super.stop();\n this.target.stage.removeBeforeRender(this._beforeStageRender);\n this.target.stage.removeAfterRender(this._afterStageRender);\n }\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n super.onUpdate(end, ratio, out);\n this.willCallBeforeStageRender = true;\n this.willCallAfterStageRender = true;\n }\n\n protected _beforeStageRender = () => {\n if (!this.willCallBeforeStageRender) {\n return;\n }\n this.willCallBeforeStageRender = false;\n const stage = this.target.stage as any;\n const canvas = stage.window.getContext().canvas.nativeCanvas;\n const outputCanvas = this.beforeStageRender(stage, canvas);\n if (outputCanvas) {\n this.renderToStage(stage, outputCanvas);\n }\n };\n\n protected _afterStageRender = () => {\n if (!this.willCallAfterStageRender) {\n return;\n }\n this.willCallAfterStageRender = false;\n const stage = this.target.stage as any;\n const canvas = stage.window.getContext().canvas.nativeCanvas;\n const outputCanvas = this.afterStageRender(stage, canvas);\n if (outputCanvas) {\n this.renderToStage(stage, outputCanvas);\n }\n };\n\n protected renderToStage(stage: Stage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false {\n const stageCanvas = stage.window.getContext().canvas.nativeCanvas;\n const ctx = stageCanvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n ctx.clearRect(0, 0, stageCanvas.width, stageCanvas.height);\n ctx.drawImage(canvas, 0, 0);\n return stageCanvas;\n }\n}\n"]}
|
package/cjs/custom/fade.js
CHANGED
package/cjs/custom/groupFade.js
CHANGED
package/cjs/custom/growAngle.js
CHANGED
|
@@ -134,13 +134,13 @@ exports.GrowAngleBase = GrowAngleBase;
|
|
|
134
134
|
|
|
135
135
|
class GrowAngleIn extends GrowAngleBase {
|
|
136
136
|
onBind() {
|
|
137
|
-
var _a, _b;
|
|
137
|
+
var _a, _b, _c;
|
|
138
138
|
super.onBind();
|
|
139
139
|
const {from: from, to: to} = (0, exports.growAngleIn)(this.target, this.params.options, this.params), fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
|
|
140
140
|
this.props = to, this.propKeys = Object.keys(to).filter((key => null != to[key])),
|
|
141
141
|
this.from = fromAttrs, this.to = to;
|
|
142
142
|
const finalAttribute = this.target.getFinalAttribute();
|
|
143
|
-
finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs),
|
|
143
|
+
finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs),
|
|
144
144
|
this.determineUpdateFunction();
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/custom/growAngle.ts"],"names":[],"mappings":"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","file":"growAngle.js","sourcesContent":["import { type IGraphic, type IGroup, type EasingType } from '@visactor/vrender-core';\nimport { ACustomAnimate } from './custom-animate';\nimport { isNumber } from '@visactor/vutils';\n\ninterface IAnimationParameters {\n width: number;\n height: number;\n group: IGroup;\n elementIndex: number;\n elementCount: number;\n view: any;\n}\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nexport interface IGrowAngleAnimationOptions {\n orient?: 'clockwise' | 'anticlockwise';\n overall?: boolean | number;\n}\n\nconst growAngleInIndividual = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n if (options && options.orient === 'anticlockwise') {\n return {\n from: { startAngle: attrs?.endAngle },\n to: { startAngle: attrs?.startAngle }\n };\n }\n return {\n from: { endAngle: attrs?.startAngle },\n to: { endAngle: attrs?.endAngle }\n };\n};\n\nconst growAngleInOverall = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n\n if (options && options.orient === 'anticlockwise') {\n const overallValue = isNumber(options.overall) ? options.overall : Math.PI * 2;\n return {\n from: {\n startAngle: overallValue,\n endAngle: overallValue\n },\n to: {\n startAngle: attrs?.startAngle,\n endAngle: attrs?.endAngle\n }\n };\n }\n const overallValue = isNumber(options?.overall) ? options.overall : 0;\n return {\n from: {\n startAngle: overallValue,\n endAngle: overallValue\n },\n to: {\n startAngle: attrs?.startAngle,\n endAngle: attrs?.endAngle\n }\n };\n};\n\nexport const growAngleIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growAngleInOverall(graphic, options, animationParameters)\n : growAngleInIndividual(graphic, options, animationParameters);\n};\n\nconst growAngleOutIndividual = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.attribute as any;\n\n if (options && options.orient === 'anticlockwise') {\n return {\n from: { startAngle: attrs.startAngle },\n to: { startAngle: attrs?.endAngle }\n };\n }\n return {\n from: { endAngle: attrs.endAngle },\n to: { endAngle: attrs?.startAngle }\n };\n};\n\nconst growAngleOutOverall = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.attribute as any;\n if (options && options.orient === 'anticlockwise') {\n const overallValue = isNumber(options.overall) ? options.overall : Math.PI * 2;\n return {\n from: {\n startAngle: attrs.startAngle,\n endAngle: attrs.endAngle\n },\n to: {\n startAngle: overallValue,\n endAngle: overallValue\n }\n };\n }\n const overallValue = isNumber(options?.overall) ? options.overall : 0;\n return {\n from: {\n startAngle: attrs.startAngle,\n endAngle: attrs.endAngle\n },\n to: {\n startAngle: overallValue,\n endAngle: overallValue\n }\n };\n};\n\nexport const growAngleOut: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growAngleOutOverall(graphic, options, animationParameters)\n : growAngleOutIndividual(graphic, options, animationParameters);\n};\n\nexport class GrowAngleBase extends ACustomAnimate<Record<string, number>> {\n declare valid: boolean;\n\n declare _updateFunction: (ratio: number) => void;\n\n constructor(from: null, to: null, duration: number, easing: EasingType, params?: any) {\n super(from, to, duration, easing, params);\n }\n\n determineUpdateFunction(): void {\n if (!this.propKeys) {\n this.valid = false;\n } else if (this.propKeys && this.propKeys.length > 1) {\n this._updateFunction = this.updateAngle;\n } else if (this.propKeys[0] === 'startAngle') {\n this._updateFunction = this.updateStartAngle;\n } else if (this.propKeys[0] === 'endAngle') {\n this._updateFunction = this.updateEndAngle;\n } else {\n this.valid = false;\n }\n }\n\n /**\n * 删除自身属性,会直接从props等内容里删除掉\n */\n deleteSelfAttr(key: string): void {\n delete this.props[key];\n // fromProps在动画开始时才会计算,这时可能不在\n this.fromProps && delete this.fromProps[key];\n const index = this.propKeys.indexOf(key);\n if (index !== -1) {\n this.propKeys.splice(index, 1);\n }\n\n if (this.propKeys && this.propKeys.length > 1) {\n this._updateFunction = this.updateAngle;\n } else if (this.propKeys[0] === 'startAngle') {\n this._updateFunction = this.updateStartAngle;\n } else if (this.propKeys[0] === 'endAngle') {\n this._updateFunction = this.updateEndAngle;\n } else {\n this._updateFunction = null;\n }\n }\n\n updateStartAngle(ratio: number): void {\n (this.target.attribute as any).startAngle =\n this.from.startAngle + (this.to.startAngle - this.from.startAngle) * ratio;\n }\n\n updateEndAngle(ratio: number): void {\n (this.target.attribute as any).endAngle = this.from.endAngle + (this.to.endAngle - this.from.endAngle) * ratio;\n }\n\n updateAngle(ratio: number): void {\n this.updateStartAngle(ratio);\n this.updateEndAngle(ratio);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this._updateFunction) {\n this._updateFunction(ratio);\n this.target.addUpdateShapeAndBoundsTag();\n }\n }\n}\n\n/**\n * 增长渐入\n */\nexport class GrowAngleIn extends GrowAngleBase {\n onBind(): void {\n super.onBind();\n const { from, to } = growAngleIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs;\n this.to = to;\n\n // 用于入场的时候设置属性(因为有动画的时候VChart不会再设置属性了)\n const finalAttribute = this.target.getFinalAttribute();\n if (finalAttribute) {\n this.target.setAttributes(finalAttribute);\n }\n\n this.target.setAttributes(fromAttrs);\n this.determineUpdateFunction();\n }\n}\n\nexport class GrowAngleOut extends GrowAngleBase {\n onBind(): void {\n super.onBind();\n const { from, to } = growAngleOut(this.target, this.params.options, this.params);\n const fromAttrs = from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs ?? (this.target.attribute as any);\n this.to = to;\n\n // this.target.setAttributes(fromAttrs);\n this.determineUpdateFunction();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/custom/growAngle.ts"],"names":[],"mappings":"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","file":"growAngle.js","sourcesContent":["import { type IGraphic, type IGroup, type EasingType } from '@visactor/vrender-core';\nimport { ACustomAnimate } from './custom-animate';\nimport { isNumber } from '@visactor/vutils';\n\ninterface IAnimationParameters {\n width: number;\n height: number;\n group: IGroup;\n elementIndex: number;\n elementCount: number;\n view: any;\n}\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nexport interface IGrowAngleAnimationOptions {\n orient?: 'clockwise' | 'anticlockwise';\n overall?: boolean | number;\n}\n\nconst growAngleInIndividual = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n if (options && options.orient === 'anticlockwise') {\n return {\n from: { startAngle: attrs?.endAngle },\n to: { startAngle: attrs?.startAngle }\n };\n }\n return {\n from: { endAngle: attrs?.startAngle },\n to: { endAngle: attrs?.endAngle }\n };\n};\n\nconst growAngleInOverall = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n\n if (options && options.orient === 'anticlockwise') {\n const overallValue = isNumber(options.overall) ? options.overall : Math.PI * 2;\n return {\n from: {\n startAngle: overallValue,\n endAngle: overallValue\n },\n to: {\n startAngle: attrs?.startAngle,\n endAngle: attrs?.endAngle\n }\n };\n }\n const overallValue = isNumber(options?.overall) ? options.overall : 0;\n return {\n from: {\n startAngle: overallValue,\n endAngle: overallValue\n },\n to: {\n startAngle: attrs?.startAngle,\n endAngle: attrs?.endAngle\n }\n };\n};\n\nexport const growAngleIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growAngleInOverall(graphic, options, animationParameters)\n : growAngleInIndividual(graphic, options, animationParameters);\n};\n\nconst growAngleOutIndividual = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.attribute as any;\n\n if (options && options.orient === 'anticlockwise') {\n return {\n from: { startAngle: attrs.startAngle },\n to: { startAngle: attrs?.endAngle }\n };\n }\n return {\n from: { endAngle: attrs.endAngle },\n to: { endAngle: attrs?.startAngle }\n };\n};\n\nconst growAngleOutOverall = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.attribute as any;\n if (options && options.orient === 'anticlockwise') {\n const overallValue = isNumber(options.overall) ? options.overall : Math.PI * 2;\n return {\n from: {\n startAngle: attrs.startAngle,\n endAngle: attrs.endAngle\n },\n to: {\n startAngle: overallValue,\n endAngle: overallValue\n }\n };\n }\n const overallValue = isNumber(options?.overall) ? options.overall : 0;\n return {\n from: {\n startAngle: attrs.startAngle,\n endAngle: attrs.endAngle\n },\n to: {\n startAngle: overallValue,\n endAngle: overallValue\n }\n };\n};\n\nexport const growAngleOut: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowAngleAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growAngleOutOverall(graphic, options, animationParameters)\n : growAngleOutIndividual(graphic, options, animationParameters);\n};\n\nexport class GrowAngleBase extends ACustomAnimate<Record<string, number>> {\n declare valid: boolean;\n\n declare _updateFunction: (ratio: number) => void;\n\n constructor(from: null, to: null, duration: number, easing: EasingType, params?: any) {\n super(from, to, duration, easing, params);\n }\n\n determineUpdateFunction(): void {\n if (!this.propKeys) {\n this.valid = false;\n } else if (this.propKeys && this.propKeys.length > 1) {\n this._updateFunction = this.updateAngle;\n } else if (this.propKeys[0] === 'startAngle') {\n this._updateFunction = this.updateStartAngle;\n } else if (this.propKeys[0] === 'endAngle') {\n this._updateFunction = this.updateEndAngle;\n } else {\n this.valid = false;\n }\n }\n\n /**\n * 删除自身属性,会直接从props等内容里删除掉\n */\n deleteSelfAttr(key: string): void {\n delete this.props[key];\n // fromProps在动画开始时才会计算,这时可能不在\n this.fromProps && delete this.fromProps[key];\n const index = this.propKeys.indexOf(key);\n if (index !== -1) {\n this.propKeys.splice(index, 1);\n }\n\n if (this.propKeys && this.propKeys.length > 1) {\n this._updateFunction = this.updateAngle;\n } else if (this.propKeys[0] === 'startAngle') {\n this._updateFunction = this.updateStartAngle;\n } else if (this.propKeys[0] === 'endAngle') {\n this._updateFunction = this.updateEndAngle;\n } else {\n this._updateFunction = null;\n }\n }\n\n updateStartAngle(ratio: number): void {\n (this.target.attribute as any).startAngle =\n this.from.startAngle + (this.to.startAngle - this.from.startAngle) * ratio;\n }\n\n updateEndAngle(ratio: number): void {\n (this.target.attribute as any).endAngle = this.from.endAngle + (this.to.endAngle - this.from.endAngle) * ratio;\n }\n\n updateAngle(ratio: number): void {\n this.updateStartAngle(ratio);\n this.updateEndAngle(ratio);\n }\n\n onUpdate(end: boolean, ratio: number, out: Record<string, any>): void {\n if (this._updateFunction) {\n this._updateFunction(ratio);\n this.target.addUpdateShapeAndBoundsTag();\n }\n }\n}\n\n/**\n * 增长渐入\n */\nexport class GrowAngleIn extends GrowAngleBase {\n onBind(): void {\n super.onBind();\n const { from, to } = growAngleIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs;\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(fromAttrs);\n }\n this.determineUpdateFunction();\n }\n}\n\nexport class GrowAngleOut extends GrowAngleBase {\n onBind(): void {\n super.onBind();\n const { from, to } = growAngleOut(this.target, this.params.options, this.params);\n const fromAttrs = from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs ?? (this.target.attribute as any);\n this.to = to;\n\n // this.target.setAttributes(fromAttrs);\n this.determineUpdateFunction();\n }\n}\n"]}
|
package/cjs/custom/growRadius.js
CHANGED
|
@@ -92,13 +92,13 @@ exports.GrowPointsBase = GrowPointsBase;
|
|
|
92
92
|
|
|
93
93
|
class GrowRadiusIn extends GrowPointsBase {
|
|
94
94
|
onBind() {
|
|
95
|
-
var _a, _b;
|
|
95
|
+
var _a, _b, _c;
|
|
96
96
|
super.onBind();
|
|
97
97
|
const {from: from, to: to} = (0, exports.growRadiusIn)(this.target, this.params.options, this.params), fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
|
|
98
98
|
this.props = to, this.propKeys = Object.keys(to).filter((key => null != to[key])),
|
|
99
99
|
this.from = fromAttrs, this.to = to;
|
|
100
100
|
const finalAttribute = this.target.getFinalAttribute();
|
|
101
|
-
finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
|
|
101
|
+
finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/custom/growRadius.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/custom/growRadius.ts"],"names":[],"mappings":"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","file":"growRadius.js","sourcesContent":["import { type IGraphic, type IGroup, type EasingType } from '@visactor/vrender-core';\nimport { ACustomAnimate } from './custom-animate';\nimport { isNumber } from '@visactor/vutils';\n\ninterface IAnimationParameters {\n width: number;\n height: number;\n group: IGroup;\n elementIndex: number;\n elementCount: number;\n view: any;\n}\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nexport interface IGrowAngleAnimationOptions {\n orient?: 'clockwise' | 'anticlockwise';\n overall?: boolean | number;\n}\n\nexport interface IGrowRadiusAnimationOptions {\n orient?: 'inside' | 'outside';\n overall?: boolean | number;\n}\n\nconst growRadiusInIndividual = (\n graphic: IGraphic,\n options: IGrowRadiusAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n\n if (options && options.orient === 'inside') {\n return {\n from: { innerRadius: attrs?.outerRadius },\n to: { innerRadius: attrs?.innerRadius }\n };\n }\n return {\n from: { outerRadius: attrs?.innerRadius },\n to: { outerRadius: attrs?.outerRadius }\n };\n};\n\nconst growRadiusInOverall = (\n graphic: IGraphic,\n options: IGrowRadiusAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n const overallValue = isNumber(options?.overall) ? options.overall : 0;\n return {\n from: {\n innerRadius: overallValue,\n outerRadius: overallValue\n },\n to: {\n innerRadius: attrs?.innerRadius,\n outerRadius: attrs?.outerRadius\n }\n };\n};\n\nexport const growRadiusIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowRadiusAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growRadiusInOverall(graphic, options, animationParameters)\n : growRadiusInIndividual(graphic, options, animationParameters);\n};\n\nconst growRadiusOutIndividual = (\n graphic: IGraphic,\n options: IGrowRadiusAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n if (options && options.orient === 'inside') {\n return {\n from: { innerRadius: attrs?.innerRadius },\n to: { innerRadius: attrs?.outerRadius }\n };\n }\n return {\n from: { outerRadius: attrs?.outerRadius },\n to: { outerRadius: attrs?.innerRadius }\n };\n};\n\nconst growRadiusOutOverall = (\n graphic: IGraphic,\n options: IGrowRadiusAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const attrs = graphic.getFinalAttribute();\n const overallValue = isNumber(options?.overall) ? options.overall : 0;\n return {\n from: {\n innerRadius: attrs?.innerRadius,\n outerRadius: attrs?.outerRadius\n },\n to: {\n innerRadius: overallValue,\n outerRadius: overallValue\n }\n };\n};\n\nexport const growRadiusOut: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowRadiusAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growRadiusOutOverall(graphic, options, animationParameters)\n : growRadiusOutIndividual(graphic, options, animationParameters);\n};\n\nexport class GrowPointsBase 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 GrowRadiusIn extends GrowPointsBase {\n onBind(): void {\n super.onBind();\n const { from, to } = growRadiusIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs;\n this.to = to;\n\n // 用于入场的时候设置属性(因为有动画的时候VChart不会再设置属性了)\n const finalAttribute = this.target.getFinalAttribute();\n if (finalAttribute) {\n this.target.setAttributes(finalAttribute);\n }\n if (this.params.controlOptions?.immediatelyApply !== false) {\n this.target.setAttributes(fromAttrs);\n }\n }\n}\n\nexport class GrowRadiusOut extends GrowPointsBase {\n onBind(): void {\n super.onBind();\n const { to } = growRadiusOut(this.target, this.params.options, this.params);\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n\n this.from = this.target.attribute as any;\n this.to = to;\n // this.target.setAttributes(fromAttrs);\n }\n}\n"]}
|
package/cjs/custom/growWidth.js
CHANGED
|
@@ -114,13 +114,13 @@ class GrowWidthIn extends custom_animate_1.ACustomAnimate {
|
|
|
114
114
|
super(from, to, duration, easing, params);
|
|
115
115
|
}
|
|
116
116
|
onBind() {
|
|
117
|
-
var _a, _b;
|
|
117
|
+
var _a, _b, _c;
|
|
118
118
|
super.onBind();
|
|
119
119
|
const {from: from, to: to} = growWidthIn(this.target, this.params.options, this.params), fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
|
|
120
120
|
this.props = to, this.propKeys = Object.keys(to).filter((key => null != to[key])),
|
|
121
121
|
this.from = fromAttrs, this.to = to;
|
|
122
122
|
const finalAttribute = this.target.getFinalAttribute();
|
|
123
|
-
finalAttribute && this.target.setAttributes(finalAttribute), this.target.setAttributes(fromAttrs);
|
|
123
|
+
finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(fromAttrs);
|
|
124
124
|
}
|
|
125
125
|
onEnd(cb) {
|
|
126
126
|
super.onEnd(cb);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/custom/growWidth.ts"],"names":[],"mappings":"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","file":"growWidth.js","sourcesContent":["import type { IGraphic, IGroup, IAnimate, IStep, EasingType } from '@visactor/vrender-core';\nimport { isNil, isNumber, isValid } from '@visactor/vutils';\nimport { ACustomAnimate } from './custom-animate';\n\ninterface IGrowCartesianAnimationOptions {\n orient?: 'positive' | 'negative';\n overall?: boolean | number;\n direction?: 'x' | 'y' | 'xy';\n}\n\ninterface IAnimationParameters {\n width: number;\n height: number;\n group: IGroup;\n elementIndex: number;\n elementCount: number;\n view: any;\n}\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nfunction growWidthInIndividual(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n const x = attrs.x;\n const x1 = attrs.x1;\n const width = attrs.width;\n\n if (options && options.orient === 'negative') {\n const computedX1 = isValid(width) ? Math.max(x, x + width) : Math.max(x, x1);\n\n return {\n from: { x: computedX1, x1: isNil(x1) ? undefined : computedX1, width: isNil(width) ? undefined : 0 },\n to: { x: x, x1: x1, width: width }\n };\n }\n\n const computedX = isValid(width) ? Math.min(x, x + width) : Math.min(x, x1);\n return {\n from: { x: computedX, x1: isNil(x1) ? undefined : computedX, width: isNil(width) ? undefined : 0 },\n to: { x: x, x1: x1, width: width }\n };\n}\n\nfunction growWidthInOverall(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n // no need to handle the situation where x > x1\n const x = attrs.x;\n const x1 = attrs.x1;\n const width = attrs.width;\n let overallValue: number;\n if (options && options.orient === 'negative') {\n if (isNumber(options.overall)) {\n overallValue = options.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = overallValue;\n } else {\n overallValue = animationParameters.width;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { x: overallValue, x1: isNil(x1) ? undefined : overallValue, width: isNil(width) ? undefined : 0 },\n to: { x: x, x1: x1, width: width }\n };\n}\n\nconst growWidthIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growWidthInOverall(graphic, options, animationParameters)\n : growWidthInIndividual(graphic, options, animationParameters);\n};\n\nfunction growWidthOutIndividual(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n const x = attrs.x;\n const x1 = attrs.x1;\n const width = attrs.width;\n\n if (options && options.orient === 'negative') {\n const computedX1 = isValid(width) ? Math.max(x, x + width) : Math.max(x, x1);\n\n return {\n to: { x: computedX1, x1: isNil(x1) ? undefined : computedX1, width: isNil(width) ? undefined : 0 }\n };\n }\n\n const computedX = isValid(width) ? Math.min(x, x + width) : Math.min(x, x1);\n return {\n to: { x: computedX, x1: isNil(x1) ? undefined : computedX, width: isNil(width) ? undefined : 0 }\n };\n}\n\nfunction growWidthOutOverall(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n const x1 = attrs.x1;\n const width = attrs.width;\n\n let overallValue: number;\n if (options && options.orient === 'negative') {\n if (isNumber(options.overall)) {\n overallValue = options.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = overallValue;\n } else {\n overallValue = animationParameters.width;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options.overall : 0;\n }\n return {\n to: { x: overallValue, x1: isNil(x1) ? undefined : overallValue, width: isNil(width) ? undefined : 0 }\n };\n}\n\nexport const growWidthOut: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growWidthOutOverall(graphic, options, animationParameters)\n : growWidthOutIndividual(graphic, options, animationParameters);\n};\n\n/**\n * 增长渐入\n */\nexport class GrowWidthIn 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 onBind(): void {\n super.onBind();\n const { from, to } = growWidthIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs;\n this.to = to;\n // 用于入场的时候设置属性(因为有动画的时候VChart不会再设置属性了)\n const finalAttribute = this.target.getFinalAttribute();\n if (finalAttribute) {\n this.target.setAttributes(finalAttribute);\n }\n this.target.setAttributes(fromAttrs);\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\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\nexport class GrowWidthOut 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 onBind(): void {\n super.onBind();\n const { from, to } = growWidthOut(this.target, this.params.options, this.params);\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = from ?? (this.target.attribute as any);\n this.to = to;\n // this.target.setAttributes(from);\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\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"]}
|
|
1
|
+
{"version":3,"sources":["../src/custom/growWidth.ts"],"names":[],"mappings":";;;AACA,6CAA4D;AAC5D,qDAAkD;AAuBlD,SAAS,qBAAqB,CAC5B,OAAiB,EACjB,OAAuC,EACvC,mBAAyC;IAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE1B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;QAC5C,MAAM,UAAU,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7E,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACpG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SACnC,CAAC;KACH;IAED,MAAM,SAAS,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAClG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAiB,EACjB,OAAuC,EACvC,mBAAyC;;IAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE1C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,YAAoB,CAAC;IACzB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;QAC5C,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;SAChC;aAAM,IAAI,mBAAmB,CAAC,KAAK,EAAE;YACpC,YAAY,GAAG,MAAC,mBAA2B,CAAC,UAAU,mCAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;YAEvG,mBAA2B,CAAC,UAAU,GAAG,YAAY,CAAC;SACxD;aAAM;YACL,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC;SAC1C;KACF;SAAM;QACL,YAAY,GAAG,IAAA,iBAAQ,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAClE;IACD,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QACxG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAA4B,CAC3C,OAAiB,EACjB,OAAuC,EACvC,mBAAyC,EACzC,EAAE;;IACF,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,KAAK,CAAC,KAAK,KAAK;QAC1C,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC;QAC3D,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,SAAS,sBAAsB,CAC7B,OAAiB,EACjB,OAAuC,EACvC,mBAAyC;IAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE1B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;QAC5C,MAAM,UAAU,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7E,OAAO;YACL,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SACnG,CAAC;KACH;IAED,MAAM,SAAS,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;KACjG,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAiB,EACjB,OAAuC,EACvC,mBAAyC;;IAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE1B,IAAI,YAAoB,CAAC;IACzB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;QAC5C,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;SAChC;aAAM,IAAI,mBAAmB,CAAC,KAAK,EAAE;YACpC,YAAY,GAAG,MAAC,mBAA2B,CAAC,UAAU,mCAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;YAEvG,mBAA2B,CAAC,UAAU,GAAG,YAAY,CAAC;SACxD;aAAM;YACL,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC;SAC1C;KACF;SAAM;QACL,YAAY,GAAG,IAAA,iBAAQ,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KACjE;IACD,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;KACvG,CAAC;AACJ,CAAC;AAEM,MAAM,YAAY,GAA4B,CACnD,OAAiB,EACjB,OAAuC,EACvC,mBAAyC,EACzC,EAAE;;IACF,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,KAAK,CAAC,KAAK,KAAK;QAC1C,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC;QAC5D,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;AACpE,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB;AAKF,MAAa,WAAY,SAAQ,+BAAsC;IAGrE,YAAY,IAAU,EAAE,EAAQ,EAAE,QAAgB,EAAE,MAAkB,EAAE,MAAY;QAClF,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM;;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,SAAS,mCAAI,IAAI,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACvD,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SAC3C;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,cAAc,0CAAE,gBAAgB,MAAK,KAAK,EAAE;YAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACtC;IACH,CAAC;IAED,KAAK,CAAC,EAA6C;QACjD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,GAAY,EAAE,KAAa,EAAE,GAAwB;QAC5D,MAAM,SAAS,GAAwB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;IAC3C,CAAC;CACF;AAtCD,kCAsCC;AAED,MAAa,YAAa,SAAQ,+BAAsC;IAGtE,YAAY,IAAU,EAAE,EAAQ,EAAE,QAAgB,EAAE,MAAkB,EAAE,MAAY;QAClF,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAK,IAAI,CAAC,MAAM,CAAC,SAAiB,CAAC;QACnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IAEf,CAAC;IAED,KAAK,CAAC,EAA6C;QACjD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,GAAY,EAAE,KAAa,EAAE,GAAwB;QAC5D,MAAM,SAAS,GAAwB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;IAC3C,CAAC;CACF;AA7BD,oCA6BC","file":"growWidth.js","sourcesContent":["import type { IGraphic, IGroup, IAnimate, IStep, EasingType } from '@visactor/vrender-core';\nimport { isNil, isNumber, isValid } from '@visactor/vutils';\nimport { ACustomAnimate } from './custom-animate';\n\ninterface IGrowCartesianAnimationOptions {\n orient?: 'positive' | 'negative';\n overall?: boolean | number;\n direction?: 'x' | 'y' | 'xy';\n}\n\ninterface IAnimationParameters {\n width: number;\n height: number;\n group: IGroup;\n elementIndex: number;\n elementCount: number;\n view: any;\n}\n\ntype TypeAnimation<T extends IGraphic> = (\n graphic: T,\n options: any,\n animationParameters: IAnimationParameters\n) => { from?: { [channel: string]: any }; to?: { [channel: string]: any } };\n\nfunction growWidthInIndividual(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n const x = attrs.x;\n const x1 = attrs.x1;\n const width = attrs.width;\n\n if (options && options.orient === 'negative') {\n const computedX1 = isValid(width) ? Math.max(x, x + width) : Math.max(x, x1);\n\n return {\n from: { x: computedX1, x1: isNil(x1) ? undefined : computedX1, width: isNil(width) ? undefined : 0 },\n to: { x: x, x1: x1, width: width }\n };\n }\n\n const computedX = isValid(width) ? Math.min(x, x + width) : Math.min(x, x1);\n return {\n from: { x: computedX, x1: isNil(x1) ? undefined : computedX, width: isNil(width) ? undefined : 0 },\n to: { x: x, x1: x1, width: width }\n };\n}\n\nfunction growWidthInOverall(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n // no need to handle the situation where x > x1\n const x = attrs.x;\n const x1 = attrs.x1;\n const width = attrs.width;\n let overallValue: number;\n if (options && options.orient === 'negative') {\n if (isNumber(options.overall)) {\n overallValue = options.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = overallValue;\n } else {\n overallValue = animationParameters.width;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options?.overall : 0;\n }\n return {\n from: { x: overallValue, x1: isNil(x1) ? undefined : overallValue, width: isNil(width) ? undefined : 0 },\n to: { x: x, x1: x1, width: width }\n };\n}\n\nconst growWidthIn: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growWidthInOverall(graphic, options, animationParameters)\n : growWidthInIndividual(graphic, options, animationParameters);\n};\n\nfunction growWidthOutIndividual(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n const x = attrs.x;\n const x1 = attrs.x1;\n const width = attrs.width;\n\n if (options && options.orient === 'negative') {\n const computedX1 = isValid(width) ? Math.max(x, x + width) : Math.max(x, x1);\n\n return {\n to: { x: computedX1, x1: isNil(x1) ? undefined : computedX1, width: isNil(width) ? undefined : 0 }\n };\n }\n\n const computedX = isValid(width) ? Math.min(x, x + width) : Math.min(x, x1);\n return {\n to: { x: computedX, x1: isNil(x1) ? undefined : computedX, width: isNil(width) ? undefined : 0 }\n };\n}\n\nfunction growWidthOutOverall(\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) {\n const attrs = graphic.getFinalAttribute();\n const x1 = attrs.x1;\n const width = attrs.width;\n\n let overallValue: number;\n if (options && options.orient === 'negative') {\n if (isNumber(options.overall)) {\n overallValue = options.overall;\n } else if (animationParameters.group) {\n overallValue = (animationParameters as any).groupWidth ?? animationParameters.group.getBounds().width();\n\n (animationParameters as any).groupWidth = overallValue;\n } else {\n overallValue = animationParameters.width;\n }\n } else {\n overallValue = isNumber(options?.overall) ? options.overall : 0;\n }\n return {\n to: { x: overallValue, x1: isNil(x1) ? undefined : overallValue, width: isNil(width) ? undefined : 0 }\n };\n}\n\nexport const growWidthOut: TypeAnimation<IGraphic> = (\n graphic: IGraphic,\n options: IGrowCartesianAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n return (options?.overall ?? false) !== false\n ? growWidthOutOverall(graphic, options, animationParameters)\n : growWidthOutIndividual(graphic, options, animationParameters);\n};\n\n/**\n * 增长渐入\n */\nexport class GrowWidthIn 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 onBind(): void {\n super.onBind();\n const { from, to } = growWidthIn(this.target, this.params.options, this.params);\n const fromAttrs = this.target.context?.lastAttrs ?? from;\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = fromAttrs;\n this.to = to;\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(fromAttrs);\n }\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\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\nexport class GrowWidthOut 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 onBind(): void {\n super.onBind();\n const { from, to } = growWidthOut(this.target, this.params.options, this.params);\n this.props = to;\n this.propKeys = Object.keys(to).filter(key => to[key] != null);\n this.from = from ?? (this.target.attribute as any);\n this.to = to;\n // this.target.setAttributes(from);\n }\n\n onEnd(cb?: (animate: IAnimate, step: IStep) => void): void {\n super.onEnd(cb);\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"]}
|
package/cjs/custom/register.js
CHANGED
|
@@ -446,4 +446,5 @@ const registerCustomAnimate = () => {
|
|
|
446
446
|
animate_executor_1.AnimateExecutor.registerBuiltInAnimate("streamLight", streamLight_1.StreamLight);
|
|
447
447
|
};
|
|
448
448
|
|
|
449
|
-
exports.registerCustomAnimate = registerCustomAnimate;
|
|
449
|
+
exports.registerCustomAnimate = registerCustomAnimate;
|
|
450
|
+
//# sourceMappingURL=register.js.map
|
package/cjs/custom/scale.js
CHANGED
|
@@ -16,6 +16,7 @@ export declare class AnimateExecutor implements IAnimateExecutor {
|
|
|
16
16
|
private _started;
|
|
17
17
|
private _activeCount;
|
|
18
18
|
constructor(target: IGraphic);
|
|
19
|
+
get started(): boolean;
|
|
19
20
|
onStart(cb?: () => void): void;
|
|
20
21
|
onEnd(cb?: () => void): void;
|
|
21
22
|
private _trackAnimation;
|