function MdPanelAnimation($injector) {
  /** @private @const {!angular.$mdUtil} */
  this._$mdUtil = $injector.get('$mdUtil');

  /**
   * @private {{element: !JQLite|undefined, bounds: !DOMRect}|
   *     undefined}
   */
  this._openFrom;

  /**
   * @private {{element: !JQLite|undefined, bounds: !DOMRect}|
   *     undefined}
   */
  this._closeTo;

  /** @private {string|{open: string, close: string}} */
  this._animationClass = '';

  /** @private {number} */
  this._openDuration;

  /** @private {number} */
  this._closeDuration;

  /** @private {number|{open: number, close: number}} */
  this._rawDuration;
}
Animation configuration object. To use, create an MdPanelAnimation with the
desired properties, then pass the object as part of $mdPanel creation.

Example:

var panelAnimation = new MdPanelAnimation()
    .openFrom(myButtonEl)
    .closeTo('.my-button')
    .withAnimation($mdPanel.animation.SCALE);

$mdPanel.create({
  animation: panelAnimation
});

@param {!IInjectorService} $injector
@final @constructor