From 3c3600e7bc9f55e23e9cc8e6ca189a1370ff331a Mon Sep 17 00:00:00 2001 From: Benjamin Kindle Date: Sun, 20 Jan 2019 11:16:04 -0500 Subject: [PATCH] fix(animations): implement getPosition in browser animation builder --- .../src/players/animation_group_player.ts | 15 +++++++++------ .../animations/src/animation_builder.ts | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/animations/src/players/animation_group_player.ts b/packages/animations/src/players/animation_group_player.ts index c1f6a40c23abad..1e3441ad5c23a9 100644 --- a/packages/animations/src/players/animation_group_player.ts +++ b/packages/animations/src/players/animation_group_player.ts @@ -132,12 +132,15 @@ export class AnimationGroupPlayer implements AnimationPlayer { } getPosition(): number { - let min = 0; - this.players.forEach(player => { - const p = player.getPosition(); - min = Math.min(p, min); - }); - return min; + const longestPlayer = this.players.reduce((longestSoFar, player) => { + const newPlayerIsLongest = player.totalTime > (longestSoFar! as AnimationPlayer).totalTime; + if(longestSoFar === undefined || newPlayerIsLongest){ + return player; + } else { + return longestSoFar; + } + }, undefined); + return longestPlayer !== undefined ? longestPlayer.getPosition() / longestPlayer.totalTime : 0; } beforeDestroy(): void { diff --git a/packages/platform-browser/animations/src/animation_builder.ts b/packages/platform-browser/animations/src/animation_builder.ts index f0022d711d74d5..cbeebcb888eebd 100644 --- a/packages/platform-browser/animations/src/animation_builder.ts +++ b/packages/platform-browser/animations/src/animation_builder.ts @@ -89,7 +89,7 @@ export class RendererAnimationPlayer implements AnimationPlayer { setPosition(p: number): void { this._command('setPosition', p); } - getPosition(): number { return 0; } + getPosition(): number { return this._renderer.engine.players[+this.id].getPosition(); } public totalTime = 0; }