{"version":3,"file":"TransformAnimation.cjs","sources":["../../../src/animations/TransformAnimation.js"],"sourcesContent":["import { Animation } from './Animation.js';\nimport { AnimationType } from '../types/enums.js';\nimport { lerp } from '../utils/helpers.js';\n\n/**\n * 变换动画（位置、旋转、缩放）\n */\nexport class TransformAnimation extends Animation {\n  constructor(config = {}) {\n    super(config);\n    this.type = AnimationType.TRANSFORM;\n    this.from = config.from || {}; // { x, y, rotation, scaleX, scaleY }\n    this.to = config.to || {};\n  }\n\n  /**\n   * 设置起始状态\n   */\n  setFrom(from) {\n    this.from = { ...this.from, ...from };\n  }\n\n  /**\n   * 设置结束状态\n   */\n  setTo(to) {\n    this.to = { ...this.to, ...to };\n  }\n\n  /**\n   * 获取变换状态\n   */\n  getStateAtTime(time) {\n    const progress = this.getEasedProgress(time);\n    const state = {};\n\n    if (this.from.x !== undefined && this.to.x !== undefined) {\n      state.x = lerp(this.from.x, this.to.x, progress);\n    }\n    if (this.from.y !== undefined && this.to.y !== undefined) {\n      state.y = lerp(this.from.y, this.to.y, progress);\n    }\n    if (this.from.rotation !== undefined && this.to.rotation !== undefined) {\n      state.rotation = lerp(this.from.rotation, this.to.rotation, progress);\n    }\n    if (this.from.scaleX !== undefined && this.to.scaleX !== undefined) {\n      state.scaleX = lerp(this.from.scaleX, this.to.scaleX, progress);\n    }\n    if (this.from.scaleY !== undefined && this.to.scaleY !== undefined) {\n      state.scaleY = lerp(this.from.scaleY, this.to.scaleY, progress);\n    }\n\n    return state;\n  }\n\n  /**\n   * 获取初始状态（from 值）\n   */\n  getInitialState() {\n    const state = {};\n    if (this.from.x !== undefined) state.x = this.from.x;\n    if (this.from.y !== undefined) state.y = this.from.y;\n    if (this.from.rotation !== undefined) state.rotation = this.from.rotation;\n    if (this.from.scaleX !== undefined) state.scaleX = this.from.scaleX;\n    if (this.from.scaleY !== undefined) state.scaleY = this.from.scaleY;\n    return state;\n  }\n\n  /**\n   * 获取结束状态（to 值）\n   */\n  getFinalState() {\n    const state = {};\n    if (this.to.x !== undefined) state.x = this.to.x;\n    if (this.to.y !== undefined) state.y = this.to.y;\n    if (this.to.rotation !== undefined) state.rotation = this.to.rotation;\n    if (this.to.scaleX !== undefined) state.scaleX = this.to.scaleX;\n    if (this.to.scaleY !== undefined) state.scaleY = this.to.scaleY;\n    return state;\n  }\n}\n\n"],"names":["Animation","AnimationType","lerp"],"mappings":";;;;;;AAIA;AACA;AACA;AACO,MAAM,kBAAkB,SAASA,8BAAS,CAAC;AAClD,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE;AAC3B,IAAI,KAAK,CAAC,MAAM,CAAC;AACjB,IAAI,IAAI,CAAC,IAAI,GAAGC,yBAAa,CAAC,SAAS;AACvC,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE;AAC7B,EAAE;;AAEF;AACA;AACA;AACA,EAAE,OAAO,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;AACzC,EAAE;;AAEF;AACA;AACA;AACA,EAAE,KAAK,CAAC,EAAE,EAAE;AACZ,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;AACnC,EAAE;;AAEF;AACA;AACA;AACA,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAChD,IAAI,MAAM,KAAK,GAAG,EAAE;;AAEpB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE;AAC9D,MAAM,KAAK,CAAC,CAAC,GAAGC,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;AACtD,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE;AAC9D,MAAM,KAAK,CAAC,CAAC,GAAGA,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;AACtD,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC5E,MAAM,KAAK,CAAC,QAAQ,GAAGA,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3E,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE;AACxE,MAAM,KAAK,CAAC,MAAM,GAAGA,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACrE,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE;AACxE,MAAM,KAAK,CAAC,MAAM,GAAGA,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACrE,IAAI;;AAEJ,IAAI,OAAO,KAAK;AAChB,EAAE;;AAEF;AACA;AACA;AACA,EAAE,eAAe,GAAG;AACpB,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC7E,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACvE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACvE,IAAI,OAAO,KAAK;AAChB,EAAE;;AAEF;AACA;AACA;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACzE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AACnE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AACnE,IAAI,OAAO,KAAK;AAChB,EAAE;AACF;;;;"}