{"version":3,"file":"browser-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/animations/browser/testing/src/mock_animation_driver.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {\n  AnimationPlayer,\n  AUTO_STYLE,\n  NoopAnimationPlayer,\n  ɵStyleDataMap,\n} from '../../../src/animations';\nimport {\n  AnimationDriver,\n  ɵallowPreviousPlayerStylesMerge as allowPreviousPlayerStylesMerge,\n  ɵcamelCaseToDashCase,\n  ɵcontainsElement as containsElement,\n  ɵgetParentElement as getParentElement,\n  ɵinvokeQuery as invokeQuery,\n  ɵnormalizeKeyframes as normalizeKeyframes,\n  ɵvalidateStyleProperty as validateStyleProperty,\n  ɵvalidateWebAnimatableStyleProperty,\n} from '../../../browser';\n\n/**\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  validateStyleProperty(prop: string): boolean {\n    return validateStyleProperty(prop);\n  }\n\n  validateAnimatableStyleProperty(prop: string): boolean {\n    const cssProp = ɵcamelCaseToDashCase(prop);\n    return ɵvalidateWebAnimatableStyleProperty(cssProp);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean {\n    return containsElement(elm1, elm2);\n  }\n\n  getParentElement(element: unknown): unknown {\n    return getParentElement(element);\n  }\n\n  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n    return defaultValue || '';\n  }\n\n  animate(\n    element: any,\n    keyframes: Array<ɵStyleDataMap>,\n    duration: number,\n    delay: number,\n    easing: string,\n    previousPlayers: any[] = [],\n  ): MockAnimationPlayer {\n    const player = new MockAnimationPlayer(\n      element,\n      keyframes,\n      duration,\n      delay,\n      easing,\n      previousPlayers,\n    );\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: ɵStyleDataMap = new Map();\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleDataMap = new Map();\n  private _keyframes: Array<ɵStyleDataMap> = [];\n\n  constructor(\n    public element: any,\n    public keyframes: Array<ɵStyleDataMap>,\n    public duration: number,\n    public delay: number,\n    public easing: string,\n    public previousPlayers: any[],\n  ) {\n    super(duration, delay);\n\n    this._keyframes = normalizeKeyframes(keyframes);\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.forEach((player) => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          styles.forEach((val, prop) => this.previousStyles.set(prop, val));\n        }\n      });\n    }\n  }\n\n  /** @internal */\n  onInit(fn: () => any) {\n    this._onInitFns.push(fn);\n  }\n\n  /** @internal */\n  override init() {\n    super.init();\n    this._onInitFns.forEach((fn) => fn());\n    this._onInitFns = [];\n  }\n\n  override reset() {\n    super.reset();\n    this.__started = false;\n  }\n\n  override finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  override destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /** @internal */\n  triggerMicrotask() {}\n\n  override play(): void {\n    super.play();\n    this.__started = true;\n  }\n\n  override hasStarted() {\n    return this.__started;\n  }\n\n  beforeDestroy() {\n    const captures: ɵStyleDataMap = new Map();\n\n    this.previousStyles.forEach((val, prop) => captures.set(prop, val));\n\n    if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this._keyframes.forEach((kf) => {\n        for (let [prop, val] of kf) {\n          if (prop !== 'offset') {\n            captures.set(prop, this.__finished ? val : AUTO_STYLE);\n          }\n        }\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n"],"names":["MockAnimationDriver","log","validateStyleProperty","prop","validateAnimatableStyleProperty","cssProp","ɵcamelCaseToDashCase","ɵvalidateWebAnimatableStyleProperty","containsElement","elm1","elm2","getParentElement","element","query","selector","multi","invokeQuery","computeStyle","defaultValue","animate","keyframes","duration","delay","easing","previousPlayers","player","MockAnimationPlayer","push","NoopAnimationPlayer","__finished","__started","previousStyles","Map","_onInitFns","currentSnapshot","_keyframes","constructor","normalizeKeyframes","allowPreviousPlayerStylesMerge","forEach","styles","val","set","onInit","fn","init","reset","finish","destroy","triggerMicrotask","play","hasStarted","beforeDestroy","captures","kf","AUTO_STYLE"],"mappings":"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"}