code: function resetAnimations(element) {
    const animations = element[animationSymbol];
    if (animations) {
      // Cancel existing animations to remove the effects they're applying.
      animations.forEach((animation, index) => {
        if (animation) {
          animation.cancel();
          animations[index] = null;
        }
      });
    }
    const itemCount = element.items ? element.items.length : 0;
    if (!animations || animations.length !== itemCount) {
      // Haven't animated before with this number of items; (re)create array.
      element[animationSymbol] = new Array(itemCount);
    }
  }
docs: /*
  We maintain an array containing an animation per item. This is used for two
  reasons:
  
  * During a drag operation, we want to be able to reuse animations between
  drag updates.
  * When a selection animation completes, we need to be able to leave the
  visibile items in a paused state. Later, we'll want to be able to clean up
  those animations.
  
  Note that this array is sparse: it will only hold up from 0–3 animations at
  any given point.