public/js/app.js
/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
Utility used to transform the `auto` placement to the placement with more
available space.
Utility used to transform the ` auto ` placement to the placement with more available space .
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
  if (placement.indexOf('auto') === -1) {
    return placement;
  }
  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };
  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });
  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
    height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });
  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
  var variation = placement.split('-')[1];
  return computedPlacement + (variation ? '-' + variation : '');
}
function computeAutoPlacement ( placement , refRect , popper , reference , boundariesElement ) { var padding = arguments . length > 5 && arguments [ 5 ] !== undefined ? arguments [ 5 ] : 0 ; if ( placement . indexOf ( 'auto' ) === - 1 ) { return placement ; } var boundaries = getBoundaries ( popper , reference , padding , boundariesElement ) ; var rects = { top : { width : boundaries . width , height : refRect . top - boundaries . top } , right : { width : boundaries . right - refRect . right , height : boundaries . height } , bottom : { width : boundaries . width , height : boundaries . bottom - refRect . bottom } , left : { width : refRect . left - boundaries . left , height : boundaries . height } } ; var sortedAreas = Object . keys ( rects ) . map ( function ( key ) { return _extends ( { key : key } , rects [ key ] , { area : getArea ( rects [ key ] ) } ) ; } ) . sort ( function ( a , b ) { return b . area - a . area ; } ) ; var filteredAreas = sortedAreas . filter ( function ( _ref2 ) { var width = _ref2 . width , height = _ref2 . height ; return width >= popper . clientWidth && height >= popper . clientHeight ; } ) ; var computedPlacement = filteredAreas . length > 0 ? filteredAreas [ 0 ] . key : sortedAreas [ 0 ] . key ; var variation = placement . split ( '-' ) [ 1 ] ; return computedPlacement + ( variation ? '-' + variation : '' ) ; }
Utility used to transform the `auto` placement to the placement with more
 available space.
Utility used to transform the ` auto ` placement to the placement with more available space .