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

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

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

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

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

  /** @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;
}
function MdPanelPosition($injector) {
  /** @private @const {!angular.$window} */
  this._$window = $injector.get('$window');

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

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

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

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

  /** @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;
}
function MdPanelPosition ( $injector ) { /** @private @const {!angular.$window} */ this . _$window = $injector . get ( '$window' ) ; /** @private {boolean} */ this . _isRTL = $injector . get ( '$mdUtil' ) . bidi ( ) === 'rtl' ; /** @private @const {!angular.$mdConstant} */ this . _$mdConstant = $injector . get ( '$mdConstant' ) ; /** @private {boolean} */ this . _absolute = false ; /** @private {!angular.JQLite} */ this . _relativeToEl ; /** @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 ; }
***************************************************************************
MdPanelPosition                             *
*************************************************************************** 
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 {!angular.$injector} $injector
@final @constructor
*************************************************************************** MdPanelPosition * *************************************************************************** Position configuration object . To use create an MdPanelPosition with the desired properties then pass the object as part of $mdPanel creation .
The position of the panel.