Initial commit
This commit is contained in:
61
wwwroot/lib/popper.js/esm/modifiers/hide.js
Normal file
61
wwwroot/lib/popper.js/esm/modifiers/hide.js
Normal file
@@ -0,0 +1,61 @@
|
||||
import { top, bottom, left, right } from "../enums.js";
|
||||
import detectOverflow from "../utils/detectOverflow.js";
|
||||
|
||||
function getSideOffsets(overflow, rect, preventedOffsets) {
|
||||
if (preventedOffsets === void 0) {
|
||||
preventedOffsets = {
|
||||
x: 0,
|
||||
y: 0
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
top: overflow.top - rect.height - preventedOffsets.y,
|
||||
right: overflow.right - rect.width + preventedOffsets.x,
|
||||
bottom: overflow.bottom - rect.height + preventedOffsets.y,
|
||||
left: overflow.left - rect.width - preventedOffsets.x
|
||||
};
|
||||
}
|
||||
|
||||
function isAnySideFullyClipped(overflow) {
|
||||
return [top, right, bottom, left].some(function (side) {
|
||||
return overflow[side] >= 0;
|
||||
});
|
||||
}
|
||||
|
||||
function hide(_ref) {
|
||||
var state = _ref.state,
|
||||
name = _ref.name;
|
||||
var referenceRect = state.rects.reference;
|
||||
var popperRect = state.rects.popper;
|
||||
var preventedOffsets = state.modifiersData.preventOverflow;
|
||||
var referenceOverflow = detectOverflow(state, {
|
||||
elementContext: 'reference'
|
||||
});
|
||||
var popperAltOverflow = detectOverflow(state, {
|
||||
altBoundary: true
|
||||
});
|
||||
var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
|
||||
var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
|
||||
var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
|
||||
var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
|
||||
state.modifiersData[name] = {
|
||||
referenceClippingOffsets: referenceClippingOffsets,
|
||||
popperEscapeOffsets: popperEscapeOffsets,
|
||||
isReferenceHidden: isReferenceHidden,
|
||||
hasPopperEscaped: hasPopperEscaped
|
||||
};
|
||||
state.attributes.popper = Object.assign({}, state.attributes.popper, {
|
||||
'data-popper-reference-hidden': isReferenceHidden,
|
||||
'data-popper-escaped': hasPopperEscaped
|
||||
});
|
||||
} // eslint-disable-next-line import/no-unused-modules
|
||||
|
||||
|
||||
export default {
|
||||
name: 'hide',
|
||||
enabled: true,
|
||||
phase: 'main',
|
||||
requiresIfExists: ['preventOverflow'],
|
||||
fn: hide
|
||||
};
|
||||
Reference in New Issue
Block a user