function MdPanelPosition($injector) {
  /** @private @const {!IWindowService} */
  this._$window = $injector.get('$window');

  /** @private {boolean} */
  this._isRTL = $injector.get('$mdUtil').isRtl();

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

  /** @private {boolean} */
  this._absolute = false;

  /** @private {!JQLite} */
  this._relativeToEl = undefined;

  /** @private {string} */
  this._top = '';

  /** @private {string} */
  this._bottom = '';

  /** @private {string} */
  this._left = '';

  /** @private {string} */
  this._right = '';

  /** @private {!Array<string>} */
  this._translateX = [];

  /** @private {!Array<string>} */
  this._translateY = [];

  /** @private {!Array<{x:string, y:string}>} */
  this._positions = [];

  /** @private {?{x:string, y:string}} */
  this._actualPosition = undefined;
}
Position configuration object. To use, create an MdPanelPosition with the
desired properties, then pass the object as part of $mdPanel creation.

Example:

var panelPosition = new MdPanelPosition()
    .relativeTo(myButtonEl)
    .addPanelPosition(
      $mdPanel.xPosition.CENTER,
      $mdPanel.yPosition.ALIGN_TOPS
    );

$mdPanel.create({
  position: panelPosition
});

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