test(animations): properly reference body node for SSR environments (#23300)
PR Close #23300
This commit is contained in:

committed by
Miško Hevery

parent
5b76f04b7f
commit
e8354edcd2
@ -25,9 +25,11 @@ export class AnimationEngine {
|
||||
// this method is designed to be overridden by the code that uses this engine
|
||||
public onRemovalComplete = (element: any, context: any) => {};
|
||||
|
||||
constructor(private _driver: AnimationDriver, normalizer: AnimationStyleNormalizer) {
|
||||
this._transitionEngine = new TransitionAnimationEngine(_driver, normalizer);
|
||||
this._timelineEngine = new TimelineAnimationEngine(_driver, normalizer);
|
||||
constructor(
|
||||
private bodyNode: any, private _driver: AnimationDriver,
|
||||
normalizer: AnimationStyleNormalizer) {
|
||||
this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, normalizer);
|
||||
this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, normalizer);
|
||||
|
||||
this._transitionEngine.onRemovalComplete = (element: any, context: any) =>
|
||||
this.onRemovalComplete(element, context);
|
||||
|
@ -25,7 +25,9 @@ export class TimelineAnimationEngine {
|
||||
private _playersById: {[id: string]: AnimationPlayer} = {};
|
||||
public players: AnimationPlayer[] = [];
|
||||
|
||||
constructor(private _driver: AnimationDriver, private _normalizer: AnimationStyleNormalizer) {}
|
||||
constructor(
|
||||
public bodyNode: any, private _driver: AnimationDriver,
|
||||
private _normalizer: AnimationStyleNormalizer) {}
|
||||
|
||||
register(id: string, metadata: AnimationMetadata|AnimationMetadata[]) {
|
||||
const errors: any[] = [];
|
||||
|
@ -16,7 +16,7 @@ import {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_sty
|
||||
import {ENTER_CLASSNAME, LEAVE_CLASSNAME, NG_ANIMATING_CLASSNAME, NG_ANIMATING_SELECTOR, NG_TRIGGER_CLASSNAME, NG_TRIGGER_SELECTOR, copyObj, eraseStyles, iteratorToArray, setStyles} from '../util';
|
||||
|
||||
import {AnimationDriver} from './animation_driver';
|
||||
import {getBodyNode, getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';
|
||||
import {getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';
|
||||
|
||||
const QUEUED_CLASSNAME = 'ng-animate-queued';
|
||||
const QUEUED_SELECTOR = '.ng-animate-queued';
|
||||
@ -530,7 +530,9 @@ export class TransitionAnimationEngine {
|
||||
/** @internal */
|
||||
_onRemovalComplete(element: any, context: any) { this.onRemovalComplete(element, context); }
|
||||
|
||||
constructor(public driver: AnimationDriver, private _normalizer: AnimationStyleNormalizer) {}
|
||||
constructor(
|
||||
public bodyNode: any, public driver: AnimationDriver,
|
||||
private _normalizer: AnimationStyleNormalizer) {}
|
||||
|
||||
get queuedPlayers(): TransitionAnimationPlayer[] {
|
||||
const players: TransitionAnimationPlayer[] = [];
|
||||
@ -890,7 +892,7 @@ export class TransitionAnimationEngine {
|
||||
}
|
||||
});
|
||||
|
||||
const bodyNode = getBodyNode();
|
||||
const bodyNode = this.bodyNode;
|
||||
const allTriggerElements = Array.from(this.statesByElement.keys());
|
||||
const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);
|
||||
|
||||
|
Reference in New Issue
Block a user