MCPcopy Index your code
hub / github.com/deepch/RTSPtoWebRTC / preventOverflow

Function preventOverflow

web/static/js/bootstrap.bundle.js:3346–3408  ·  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

3344 * @returns {Object} The data object, properly modified
3345 */
3346 function preventOverflow(data, options) {
3347 var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
3348
3349 // If offsetParent is the reference element, we really want to
3350 // go one step up and use the next offsetParent as reference to
3351 // avoid to make this modifier completely useless and look like broken
3352 if (data.instance.reference === boundariesElement) {
3353 boundariesElement = getOffsetParent(boundariesElement);
3354 }
3355
3356 // NOTE: DOM access here
3357 // resets the popper's position so that the document size can be calculated excluding
3358 // the size of the popper element itself
3359 var transformProp = getSupportedPropertyName('transform');
3360 var popperStyles = data.instance.popper.style; // assignment to help minification
3361 var top = popperStyles.top,
3362 left = popperStyles.left,
3363 transform = popperStyles[transformProp];
3364
3365 popperStyles.top = '';
3366 popperStyles.left = '';
3367 popperStyles[transformProp] = '';
3368
3369 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
3370
3371 // NOTE: DOM access here
3372 // restores the original style properties after the offsets have been computed
3373 popperStyles.top = top;
3374 popperStyles.left = left;
3375 popperStyles[transformProp] = transform;
3376
3377 options.boundaries = boundaries;
3378
3379 var order = options.priority;
3380 var popper = data.offsets.popper;
3381
3382 var check = {
3383 primary: function primary(placement) {
3384 var value = popper[placement];
3385 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
3386 value = Math.max(popper[placement], boundaries[placement]);
3387 }
3388 return defineProperty({}, placement, value);
3389 },
3390 secondary: function secondary(placement) {
3391 var mainSide = placement === 'right' ? 'left' : 'top';
3392 var value = popper[mainSide];
3393 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
3394 value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
3395 }
3396 return defineProperty({}, mainSide, value);
3397 }
3398 };
3399
3400 order.forEach(function (placement) {
3401 var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
3402 popper = _extends({}, popper, check[side](placement));
3403 });

Callers

nothing calls this directly

Calls 4

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

Tested by

no test coverage detected