| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | import getVariation from "./getVariation.js";import { variationPlacements, basePlacements, placements as allPlacements } from "../enums.js";import detectOverflow from "./detectOverflow.js";import getBasePlacement from "./getBasePlacement.js";export default function computeAutoPlacement(state, options) {  if (options === void 0) {    options = {};  }  var _options = options,      placement = _options.placement,      boundary = _options.boundary,      rootBoundary = _options.rootBoundary,      padding = _options.padding,      flipVariations = _options.flipVariations,      _options$allowedAutoP = _options.allowedAutoPlacements,      allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;  var variation = getVariation(placement);  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {    return getVariation(placement) === variation;  }) : basePlacements;  var allowedPlacements = placements.filter(function (placement) {    return allowedAutoPlacements.indexOf(placement) >= 0;  });  if (allowedPlacements.length === 0) {    allowedPlacements = placements;    if (process.env.NODE_ENV !== "production") {      console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(' '));    }  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...  var overflows = allowedPlacements.reduce(function (acc, placement) {    acc[placement] = detectOverflow(state, {      placement: placement,      boundary: boundary,      rootBoundary: rootBoundary,      padding: padding    })[getBasePlacement(placement)];    return acc;  }, {});  return Object.keys(overflows).sort(function (a, b) {    return overflows[a] - overflows[b];  });}
 |