/var/www/flurhymez/node_modules/popper.js/src/utils
NameSizeModeActions
clockwise.js7730644editdlrm
computeAutoPlacement.js17140644editdlrm
debounce.js11210644editdlrm
find.js3970644editdlrm
findCommonOffsetParent.js16810644editdlrm
findIndex.js5340644editdlrm
getBordersSize.js5640644editdlrm
getBoundaries.js30000644editdlrm
getBoundingClientRect.js20280644editdlrm
getClientRect.js3630644editdlrm
getFixedPositionOffsetParent.js7560644editdlrm
getOffsetParent.js12710644editdlrm
getOffsetRect.js8010644editdlrm
getOffsetRectRelativeToArbitraryNode.js23150644editdlrm
getOppositePlacement.js3820644editdlrm
getOppositeVariation.js3820644editdlrm
getOuterSizes.js6520644editdlrm
getParentNode.js3150644editdlrm
getPopperOffsets.js16960644editdlrm
getReferenceNode.js4010644editdlrm
getReferenceOffsets.js10170644editdlrm
getRoot.js3090644editdlrm
getRoundedOffsets.js17540644editdlrm
getScroll.js6680644editdlrm
getScrollParent.js9100644editdlrm
getStyleComputedProperty.js4550644editdlrm
getSupportedPropertyName.js6760644editdlrm
getViewportOffsetRectRelativeToArtbitraryNode.js8980644editdlrm
getWindow.js2610644editdlrm
getWindowSizes.js7850644editdlrm
includeScroll.js8250644editdlrm
index.js29100644editdlrm
isBrowser.js1170644editdlrm
isFixed.js7000644editdlrm
isFunction.js3770644editdlrm
isIE.js5110644editdlrm
isModifierEnabled.js2850644editdlrm
isModifierRequired.js10950644editdlrm
isNumeric.js2330644editdlrm
isOffsetContainer.js2860644editdlrm
removeEventListeners.js6530644editdlrm
runModifiers.js13230644editdlrm
setAttributes.js5590644editdlrm
setStyles.js6950644editdlrm
setupEventListeners.js12180644editdlrm
Edit: /var/www/flurhymez/node_modules/popper.js/src/utils/computeAutoPlacement.js (1714B)
import getBoundaries from '../utils/getBoundaries'; function getArea({ width, height }) { return width * height; } /** * 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 */ export default function computeAutoPlacement( placement, refRect, popper, reference, boundariesElement, padding = 0 ) { if (placement.indexOf('auto') === -1) { return placement; } const boundaries = getBoundaries( popper, reference, padding, boundariesElement ); const 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, }, }; const sortedAreas = Object.keys(rects) .map(key => ({ key, ...rects[key], area: getArea(rects[key]), })) .sort((a, b) => b.area - a.area); const filteredAreas = sortedAreas.filter( ({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight ); const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; const variation = placement.split('-')[1]; return computedPlacement + (variation ? `-${variation}` : ''); }