MCPcopy Index your code
hub / github.com/docker/getting-started / preventOverflow

Function preventOverflow

app/src/static/js/react-bootstrap.js:4817–4874  ·  view source on GitHub ↗

* @function * @memberof Modifiers * @argument {Object} data - The data object generated by `update` method * @argument {Object} options - Modifiers configuration and options * @returns {Object} The data object, properly modified

(data, options)

Source from the content-addressed store, hash-verified

4815
4816
4817function preventOverflow(data, options) {
4818 var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to
4819 // go one step up and use the next offsetParent as reference to
4820 // avoid to make this modifier completely useless and look like broken
4821
4822 if (data.instance.reference === boundariesElement) {
4823 boundariesElement = getOffsetParent(boundariesElement);
4824 } // NOTE: DOM access here
4825 // resets the popper's position so that the document size can be calculated excluding
4826 // the size of the popper element itself
4827
4828
4829 var transformProp = getSupportedPropertyName('transform');
4830 var popperStyles = data.instance.popper.style; // assignment to help minification
4831
4832 var top = popperStyles.top,
4833 left = popperStyles.left,
4834 transform = popperStyles[transformProp];
4835 popperStyles.top = '';
4836 popperStyles.left = '';
4837 popperStyles[transformProp] = '';
4838 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here
4839 // restores the original style properties after the offsets have been computed
4840
4841 popperStyles.top = top;
4842 popperStyles.left = left;
4843 popperStyles[transformProp] = transform;
4844 options.boundaries = boundaries;
4845 var order = options.priority;
4846 var popper = data.offsets.popper;
4847 var check = {
4848 primary: function primary(placement) {
4849 var value = popper[placement];
4850
4851 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
4852 value = Math.max(popper[placement], boundaries[placement]);
4853 }
4854
4855 return defineProperty({}, placement, value);
4856 },
4857 secondary: function secondary(placement) {
4858 var mainSide = placement === 'right' ? 'left' : 'top';
4859 var value = popper[mainSide];
4860
4861 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
4862 value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
4863 }
4864
4865 return defineProperty({}, mainSide, value);
4866 }
4867 };
4868 order.forEach(function (placement) {
4869 var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
4870 popper = _extends({}, popper, check[side](placement));
4871 });
4872 data.offsets.popper = popper;
4873 return data;
4874}

Callers

nothing calls this directly

Calls 5

getOffsetParentFunction · 0.85
getSupportedPropertyNameFunction · 0.85
getBoundariesFunction · 0.85
definePropertyFunction · 0.85
_extendsFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…