code: 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;
  }
docs: ***************************************************************************
  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