@angular/animations
Version:
Angular - animations integration with web-animations
1 lines • 8.66 kB
Source Map (JSON)
{"version":3,"file":"browser-testing.mjs","sources":["../../../../../k8-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":";;;;;;;;;;MA8BaA,mBAAmB,CAAA;EAC9B,OAAOC,GAAG,GAAsB,EAAE;EAElCC,qBAAqBA,CAACC,IAAY,EAAA;IAChC,OAAOD,qBAAqB,CAACC,IAAI,CAAC;AACpC;EAEAC,+BAA+BA,CAACD,IAAY,EAAA;AAC1C,IAAA,MAAME,OAAO,GAAGC,mBAAoB,CAACH,IAAI,CAAC;IAC1C,OAAOI,kCAAmC,CAACF,OAAO,CAAC;AACrD;AAEAG,EAAAA,eAAeA,CAACC,IAAS,EAAEC,IAAS,EAAA;AAClC,IAAA,OAAOF,eAAe,CAACC,IAAI,EAAEC,IAAI,CAAC;AACpC;EAEAC,gBAAgBA,CAACC,OAAgB,EAAA;IAC/B,OAAOD,gBAAgB,CAACC,OAAO,CAAC;AAClC;AAEAC,EAAAA,KAAKA,CAACD,OAAY,EAAEE,QAAgB,EAAEC,KAAc,EAAA;AAClD,IAAA,OAAOC,WAAW,CAACJ,OAAO,EAAEE,QAAQ,EAAEC,KAAK,CAAC;AAC9C;AAEAE,EAAAA,YAAYA,CAACL,OAAY,EAAET,IAAY,EAAEe,YAAqB,EAAA;IAC5D,OAAOA,YAAY,IAAI,EAAE;AAC3B;AAEAC,EAAAA,OAAOA,CACLP,OAAY,EACZQ,SAA+B,EAC/BC,QAAgB,EAChBC,KAAa,EACbC,MAAc,EACdC,eAAA,GAAyB,EAAE,EAAA;AAE3B,IAAA,MAAMC,MAAM,GAAG,IAAIC,mBAAmB,CACpCd,OAAO,EACPQ,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,eAAe,CAChB;AACDxB,IAAAA,mBAAmB,CAACC,GAAG,CAAC0B,IAAI,CAAkBF,MAAM,CAAC;AACrD,IAAA,OAAOA,MAAM;AACf;;AAQI,MAAOC,mBAAoB,SAAQE,mBAAmB,CAAA;EASjDhB,OAAA;EACAQ,SAAA;EACAC,QAAA;EACAC,KAAA;EACAC,MAAA;EACAC,eAAA;AAbDK,EAAAA,UAAU,GAAG,KAAK;AAClBC,EAAAA,SAAS,GAAG,KAAK;AAClBC,EAAAA,cAAc,GAAkB,IAAIC,GAAG,EAAE;AACxCC,EAAAA,UAAU,GAAkB,EAAE;AAC/BC,EAAAA,eAAe,GAAkB,IAAIF,GAAG,EAAE;AACzCG,EAAAA,UAAU,GAAyB,EAAE;AAE7CC,EAAAA,WACSA,CAAAxB,OAAY,EACZQ,SAA+B,EAC/BC,QAAgB,EAChBC,KAAa,EACbC,MAAc,EACdC,eAAsB,EAAA;AAE7B,IAAA,KAAK,CAACH,QAAQ,EAAEC,KAAK,CAAC;IAPf,IAAO,CAAAV,OAAA,GAAPA,OAAO;IACP,IAAS,CAAAQ,SAAA,GAATA,SAAS;IACT,IAAQ,CAAAC,QAAA,GAARA,QAAQ;IACR,IAAK,CAAAC,KAAA,GAALA,KAAK;IACL,IAAM,CAAAC,MAAA,GAANA,MAAM;IACN,IAAe,CAAAC,eAAA,GAAfA,eAAe;AAItB,IAAA,IAAI,CAACW,UAAU,GAAGE,kBAAkB,CAACjB,SAAS,CAAC;AAE/C,IAAA,IAAIkB,8BAA8B,CAACjB,QAAQ,EAAEC,KAAK,CAAC,EAAE;AACnDE,MAAAA,eAAe,CAACe,OAAO,CAAEd,MAAM,IAAI;QACjC,IAAIA,MAAM,YAAYC,mBAAmB,EAAE;AACzC,UAAA,MAAMc,MAAM,GAAGf,MAAM,CAACS,eAAe;AACrCM,UAAAA,MAAM,CAACD,OAAO,CAAC,CAACE,GAAG,EAAEtC,IAAI,KAAK,IAAI,CAAC4B,cAAc,CAACW,GAAG,CAACvC,IAAI,EAAEsC,GAAG,CAAC,CAAC;AACnE;AACF,OAAC,CAAC;AACJ;AACF;EAGAE,MAAMA,CAACC,EAAa,EAAA;AAClB,IAAA,IAAI,CAACX,UAAU,CAACN,IAAI,CAACiB,EAAE,CAAC;AAC1B;AAGSC,EAAAA,IAAIA,GAAA;IACX,KAAK,CAACA,IAAI,EAAE;IACZ,IAAI,CAACZ,UAAU,CAACM,OAAO,CAAEK,EAAE,IAAKA,EAAE,EAAE,CAAC;IACrC,IAAI,CAACX,UAAU,GAAG,EAAE;AACtB;AAESa,EAAAA,KAAKA,GAAA;IACZ,KAAK,CAACA,KAAK,EAAE;IACb,IAAI,CAAChB,SAAS,GAAG,KAAK;AACxB;AAESiB,EAAAA,MAAMA,GAAA;IACb,KAAK,CAACA,MAAM,EAAE;IACd,IAAI,CAAClB,UAAU,GAAG,IAAI;AACxB;AAESmB,EAAAA,OAAOA,GAAA;IACd,KAAK,CAACA,OAAO,EAAE;IACf,IAAI,CAACnB,UAAU,GAAG,IAAI;AACxB;EAGAoB,gBAAgBA;AAEPC,EAAAA,IAAIA,GAAA;IACX,KAAK,CAACA,IAAI,EAAE;IACZ,IAAI,CAACpB,SAAS,GAAG,IAAI;AACvB;AAESqB,EAAAA,UAAUA,GAAA;IACjB,OAAO,IAAI,CAACrB,SAAS;AACvB;AAEAsB,EAAAA,aAAaA,GAAA;AACX,IAAA,MAAMC,QAAQ,GAAkB,IAAIrB,GAAG,EAAE;AAEzC,IAAA,IAAI,CAACD,cAAc,CAACQ,OAAO,CAAC,CAACE,GAAG,EAAEtC,IAAI,KAAKkD,QAAQ,CAACX,GAAG,CAACvC,IAAI,EAAEsC,GAAG,CAAC,CAAC;AAEnE,IAAA,IAAI,IAAI,CAACU,UAAU,EAAE,EAAE;AAIrB,MAAA,IAAI,CAAChB,UAAU,CAACI,OAAO,CAAEe,EAAE,IAAI;QAC7B,KAAK,IAAI,CAACnD,IAAI,EAAEsC,GAAG,CAAC,IAAIa,EAAE,EAAE;UAC1B,IAAInD,IAAI,KAAK,QAAQ,EAAE;AACrBkD,YAAAA,QAAQ,CAACX,GAAG,CAACvC,IAAI,EAAE,IAAI,CAAC0B,UAAU,GAAGY,GAAG,GAAGc,UAAU,CAAC;AACxD;AACF;AACF,OAAC,CAAC;AACJ;IAEA,IAAI,CAACrB,eAAe,GAAGmB,QAAQ;AACjC;AACD;;;;"}