UNPKG

@angular/animations

Version:

Angular - animations integration with web-animations

1 lines 7.86 kB
{"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":["ɵcamelCaseToDashCase","ɵvalidateWebAnimatableStyleProperty"],"mappings":"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"}