35 lines
997 B
TypeScript
35 lines
997 B
TypeScript
|
/**
|
||
|
* @license
|
||
|
* Copyright Google Inc. All Rights Reserved.
|
||
|
*
|
||
|
* Use of this source code is governed by an MIT-style license that can be
|
||
|
* found in the LICENSE file at https://angular.io/license
|
||
|
*/
|
||
|
import {AnimationTimelineInstruction} from './animation_timeline_instruction';
|
||
|
|
||
|
export class ElementInstructionMap {
|
||
|
private _map = new Map<any, AnimationTimelineInstruction[]>();
|
||
|
|
||
|
consume(element: any): AnimationTimelineInstruction[] {
|
||
|
let instructions = this._map.get(element);
|
||
|
if (instructions) {
|
||
|
this._map.delete(element);
|
||
|
} else {
|
||
|
instructions = [];
|
||
|
}
|
||
|
return instructions;
|
||
|
}
|
||
|
|
||
|
append(element: any, instructions: AnimationTimelineInstruction[]) {
|
||
|
let existingInstructions = this._map.get(element);
|
||
|
if (!existingInstructions) {
|
||
|
this._map.set(element, existingInstructions = []);
|
||
|
}
|
||
|
existingInstructions.push(...instructions);
|
||
|
}
|
||
|
|
||
|
has(element: any): boolean { return this._map.has(element); }
|
||
|
|
||
|
clear() { this._map.clear(); }
|
||
|
}
|