Migrate to bootstrap 4 in LeafWeb
This commit is contained in:
+184
-88
@@ -1,6 +1,6 @@
|
||||
/**!
|
||||
* @fileOverview Kickass library to create and place poppers near their reference elements.
|
||||
* @version 1.14.3
|
||||
* @version 1.16.0
|
||||
* @license
|
||||
* Copyright (c) 2016 Federico Zivolo and contributors
|
||||
*
|
||||
@@ -28,16 +28,17 @@
|
||||
(global.Popper = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
|
||||
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
|
||||
|
||||
var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
|
||||
var timeoutDuration = 0;
|
||||
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
|
||||
if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
|
||||
timeoutDuration = 1;
|
||||
break;
|
||||
var timeoutDuration = function () {
|
||||
var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
|
||||
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
|
||||
if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}();
|
||||
|
||||
function microtaskDebounce(fn) {
|
||||
var called = false;
|
||||
@@ -103,7 +104,8 @@ function getStyleComputedProperty(element, property) {
|
||||
return [];
|
||||
}
|
||||
// NOTE: 1 DOM access here
|
||||
var css = getComputedStyle(element, null);
|
||||
var window = element.ownerDocument.defaultView;
|
||||
var css = window.getComputedStyle(element, null);
|
||||
return property ? css[property] : css;
|
||||
}
|
||||
|
||||
@@ -156,6 +158,17 @@ function getScrollParent(element) {
|
||||
return getScrollParent(getParentNode(element));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the reference node of the reference object, or the reference object itself.
|
||||
* @method
|
||||
* @memberof Popper.Utils
|
||||
* @param {Element|Object} reference - the reference element (the popper will be relative to this)
|
||||
* @returns {Element} parent
|
||||
*/
|
||||
function getReferenceNode(reference) {
|
||||
return reference && reference.referenceNode ? reference.referenceNode : reference;
|
||||
}
|
||||
|
||||
var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
|
||||
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
|
||||
|
||||
@@ -191,7 +204,7 @@ function getOffsetParent(element) {
|
||||
var noOffsetParent = isIE(10) ? document.body : null;
|
||||
|
||||
// NOTE: 1 DOM access here
|
||||
var offsetParent = element.offsetParent;
|
||||
var offsetParent = element.offsetParent || null;
|
||||
// Skip hidden elements which don't have an offsetParent
|
||||
while (offsetParent === noOffsetParent && element.nextElementSibling) {
|
||||
offsetParent = (element = element.nextElementSibling).offsetParent;
|
||||
@@ -203,9 +216,9 @@ function getOffsetParent(element) {
|
||||
return element ? element.ownerDocument.documentElement : document.documentElement;
|
||||
}
|
||||
|
||||
// .offsetParent will return the closest TD or TABLE in case
|
||||
// .offsetParent will return the closest TH, TD or TABLE in case
|
||||
// no offsetParent is present, I hate this job...
|
||||
if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
|
||||
if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
|
||||
return getOffsetParent(offsetParent);
|
||||
}
|
||||
|
||||
@@ -343,10 +356,10 @@ function getBordersSize(styles, axis) {
|
||||
}
|
||||
|
||||
function getSize(axis, body, html, computedStyle) {
|
||||
return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
|
||||
return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
|
||||
}
|
||||
|
||||
function getWindowSizes() {
|
||||
function getWindowSizes(document) {
|
||||
var body = document.body;
|
||||
var html = document.documentElement;
|
||||
var computedStyle = isIE(10) && getComputedStyle(html);
|
||||
@@ -463,9 +476,9 @@ function getBoundingClientRect(element) {
|
||||
};
|
||||
|
||||
// subtract scrollbar size from sizes
|
||||
var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
|
||||
var width = sizes.width || element.clientWidth || result.right - result.left;
|
||||
var height = sizes.height || element.clientHeight || result.bottom - result.top;
|
||||
var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
|
||||
var width = sizes.width || element.clientWidth || result.width;
|
||||
var height = sizes.height || element.clientHeight || result.height;
|
||||
|
||||
var horizScrollbar = element.offsetWidth - width;
|
||||
var vertScrollbar = element.offsetHeight - height;
|
||||
@@ -498,7 +511,7 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
|
||||
var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
|
||||
|
||||
// In cases where the parent is fixed, we must ignore negative scroll in offset calc
|
||||
if (fixedPosition && parent.nodeName === 'HTML') {
|
||||
if (fixedPosition && isHTML) {
|
||||
parentRect.top = Math.max(parentRect.top, 0);
|
||||
parentRect.left = Math.max(parentRect.left, 0);
|
||||
}
|
||||
@@ -573,7 +586,11 @@ function isFixed(element) {
|
||||
if (getStyleComputedProperty(element, 'position') === 'fixed') {
|
||||
return true;
|
||||
}
|
||||
return isFixed(getParentNode(element));
|
||||
var parentNode = getParentNode(element);
|
||||
if (!parentNode) {
|
||||
return false;
|
||||
}
|
||||
return isFixed(parentNode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -613,7 +630,7 @@ function getBoundaries(popper, reference, padding, boundariesElement) {
|
||||
// NOTE: 1 DOM access here
|
||||
|
||||
var boundaries = { top: 0, left: 0 };
|
||||
var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
|
||||
var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
|
||||
|
||||
// Handle viewport case
|
||||
if (boundariesElement === 'viewport') {
|
||||
@@ -636,7 +653,7 @@ function getBoundaries(popper, reference, padding, boundariesElement) {
|
||||
|
||||
// In case of HTML, we need a different computation
|
||||
if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
|
||||
var _getWindowSizes = getWindowSizes(),
|
||||
var _getWindowSizes = getWindowSizes(popper.ownerDocument),
|
||||
height = _getWindowSizes.height,
|
||||
width = _getWindowSizes.width;
|
||||
|
||||
@@ -651,10 +668,12 @@ function getBoundaries(popper, reference, padding, boundariesElement) {
|
||||
}
|
||||
|
||||
// Add paddings
|
||||
boundaries.left += padding;
|
||||
boundaries.top += padding;
|
||||
boundaries.right -= padding;
|
||||
boundaries.bottom -= padding;
|
||||
padding = padding || 0;
|
||||
var isPaddingNumber = typeof padding === 'number';
|
||||
boundaries.left += isPaddingNumber ? padding : padding.left || 0;
|
||||
boundaries.top += isPaddingNumber ? padding : padding.top || 0;
|
||||
boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
|
||||
boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
|
||||
|
||||
return boundaries;
|
||||
}
|
||||
@@ -739,7 +758,7 @@ function computeAutoPlacement(placement, refRect, popper, reference, boundariesE
|
||||
function getReferenceOffsets(state, popper, reference) {
|
||||
var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
||||
|
||||
var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
|
||||
var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
|
||||
return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
|
||||
}
|
||||
|
||||
@@ -751,9 +770,10 @@ function getReferenceOffsets(state, popper, reference) {
|
||||
* @returns {Object} object containing width and height properties
|
||||
*/
|
||||
function getOuterSizes(element) {
|
||||
var styles = getComputedStyle(element);
|
||||
var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
|
||||
var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
|
||||
var window = element.ownerDocument.defaultView;
|
||||
var styles = window.getComputedStyle(element);
|
||||
var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
|
||||
var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
|
||||
var result = {
|
||||
width: element.offsetWidth + y,
|
||||
height: element.offsetHeight + x
|
||||
@@ -979,7 +999,7 @@ function getSupportedPropertyName(property) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy the popper
|
||||
* Destroys the popper.
|
||||
* @method
|
||||
* @memberof Popper
|
||||
*/
|
||||
@@ -1000,7 +1020,7 @@ function destroy() {
|
||||
|
||||
this.disableEventListeners();
|
||||
|
||||
// remove the popper if user explicity asked for the deletion on destroy
|
||||
// remove the popper if user explicitly asked for the deletion on destroy
|
||||
// do not use `remove` because IE11 doesn't support it
|
||||
if (this.options.removeOnDestroy) {
|
||||
this.popper.parentNode.removeChild(this.popper);
|
||||
@@ -1086,7 +1106,7 @@ function removeEventListeners(reference, state) {
|
||||
|
||||
/**
|
||||
* It will remove resize/scroll events and won't recalculate popper position
|
||||
* when they are triggered. It also won't trigger onUpdate callback anymore,
|
||||
* when they are triggered. It also won't trigger `onUpdate` callback anymore,
|
||||
* unless you call `update` method manually.
|
||||
* @method
|
||||
* @memberof Popper
|
||||
@@ -1203,6 +1223,57 @@ function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
|
||||
return options;
|
||||
}
|
||||
|
||||
/**
|
||||
* @function
|
||||
* @memberof Popper.Utils
|
||||
* @argument {Object} data - The data object generated by `update` method
|
||||
* @argument {Boolean} shouldRound - If the offsets should be rounded at all
|
||||
* @returns {Object} The popper's position offsets rounded
|
||||
*
|
||||
* The tale of pixel-perfect positioning. It's still not 100% perfect, but as
|
||||
* good as it can be within reason.
|
||||
* Discussion here: https://github.com/FezVrasta/popper.js/pull/715
|
||||
*
|
||||
* Low DPI screens cause a popper to be blurry if not using full pixels (Safari
|
||||
* as well on High DPI screens).
|
||||
*
|
||||
* Firefox prefers no rounding for positioning and does not have blurriness on
|
||||
* high DPI screens.
|
||||
*
|
||||
* Only horizontal placement and left/right values need to be considered.
|
||||
*/
|
||||
function getRoundedOffsets(data, shouldRound) {
|
||||
var _data$offsets = data.offsets,
|
||||
popper = _data$offsets.popper,
|
||||
reference = _data$offsets.reference;
|
||||
var round = Math.round,
|
||||
floor = Math.floor;
|
||||
|
||||
var noRound = function noRound(v) {
|
||||
return v;
|
||||
};
|
||||
|
||||
var referenceWidth = round(reference.width);
|
||||
var popperWidth = round(popper.width);
|
||||
|
||||
var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
|
||||
var isVariation = data.placement.indexOf('-') !== -1;
|
||||
var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
|
||||
var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
|
||||
|
||||
var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
|
||||
var verticalToInteger = !shouldRound ? noRound : round;
|
||||
|
||||
return {
|
||||
left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
|
||||
top: verticalToInteger(popper.top),
|
||||
bottom: verticalToInteger(popper.bottom),
|
||||
right: horizontalToInteger(popper.right)
|
||||
};
|
||||
}
|
||||
|
||||
var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
|
||||
|
||||
/**
|
||||
* @function
|
||||
* @memberof Modifiers
|
||||
@@ -1233,15 +1304,7 @@ function computeStyle(data, options) {
|
||||
position: popper.position
|
||||
};
|
||||
|
||||
// Avoid blurry text by using full pixel integers.
|
||||
// For pixel-perfect positioning, top/bottom prefers rounded
|
||||
// values, while left/right prefers floored values.
|
||||
var offsets = {
|
||||
left: Math.floor(popper.left),
|
||||
top: Math.round(popper.top),
|
||||
bottom: Math.round(popper.bottom),
|
||||
right: Math.floor(popper.right)
|
||||
};
|
||||
var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
|
||||
|
||||
var sideA = x === 'bottom' ? 'top' : 'bottom';
|
||||
var sideB = y === 'right' ? 'left' : 'right';
|
||||
@@ -1263,12 +1326,22 @@ function computeStyle(data, options) {
|
||||
var left = void 0,
|
||||
top = void 0;
|
||||
if (sideA === 'bottom') {
|
||||
top = -offsetParentRect.height + offsets.bottom;
|
||||
// when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
|
||||
// and not the bottom of the html element
|
||||
if (offsetParent.nodeName === 'HTML') {
|
||||
top = -offsetParent.clientHeight + offsets.bottom;
|
||||
} else {
|
||||
top = -offsetParentRect.height + offsets.bottom;
|
||||
}
|
||||
} else {
|
||||
top = offsets.top;
|
||||
}
|
||||
if (sideB === 'right') {
|
||||
left = -offsetParentRect.width + offsets.right;
|
||||
if (offsetParent.nodeName === 'HTML') {
|
||||
left = -offsetParent.clientWidth + offsets.right;
|
||||
} else {
|
||||
left = -offsetParentRect.width + offsets.right;
|
||||
}
|
||||
} else {
|
||||
left = offsets.left;
|
||||
}
|
||||
@@ -1377,7 +1450,7 @@ function arrow(data, options) {
|
||||
|
||||
//
|
||||
// extends keepTogether behavior making sure the popper and its
|
||||
// reference have enough pixels in conjuction
|
||||
// reference have enough pixels in conjunction
|
||||
//
|
||||
|
||||
// top/left side
|
||||
@@ -1447,7 +1520,7 @@ function getOppositeVariation(variation) {
|
||||
* - `top-end` (on top of reference, right aligned)
|
||||
* - `right-start` (on right of reference, top aligned)
|
||||
* - `bottom` (on bottom, centered)
|
||||
* - `auto-right` (on the side with more space available, alignment depends by placement)
|
||||
* - `auto-end` (on the side with more space available, alignment depends by placement)
|
||||
*
|
||||
* @static
|
||||
* @type {Array}
|
||||
@@ -1549,7 +1622,14 @@ function flip(data, options) {
|
||||
|
||||
// flip the variation if required
|
||||
var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
|
||||
var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
|
||||
|
||||
// flips variation if reference element overflows boundaries
|
||||
var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
|
||||
|
||||
// flips variation if popper content overflows boundaries
|
||||
var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
|
||||
|
||||
var flippedVariation = flippedVariationByRef || flippedVariationByContent;
|
||||
|
||||
if (overlapsRef || overflowsBoundaries || flippedVariation) {
|
||||
// this boolean to detect any flip loop
|
||||
@@ -1989,7 +2069,7 @@ var modifiers = {
|
||||
* The `offset` modifier can shift your popper on both its axis.
|
||||
*
|
||||
* It accepts the following units:
|
||||
* - `px` or unitless, interpreted as pixels
|
||||
* - `px` or unit-less, interpreted as pixels
|
||||
* - `%` or `%r`, percentage relative to the length of the reference element
|
||||
* - `%p`, percentage relative to the length of the popper element
|
||||
* - `vw`, CSS viewport width unit
|
||||
@@ -1997,7 +2077,7 @@ var modifiers = {
|
||||
*
|
||||
* For length is intended the main axis relative to the placement of the popper.<br />
|
||||
* This means that if the placement is `top` or `bottom`, the length will be the
|
||||
* `width`. In case of `left` or `right`, it will be the height.
|
||||
* `width`. In case of `left` or `right`, it will be the `height`.
|
||||
*
|
||||
* You can provide a single value (as `Number` or `String`), or a pair of values
|
||||
* as `String` divided by a comma or one (or more) white spaces.<br />
|
||||
@@ -2018,7 +2098,7 @@ var modifiers = {
|
||||
* ```
|
||||
* > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
|
||||
* > with their reference element, unfortunately, you will have to disable the `flip` modifier.
|
||||
* > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
|
||||
* > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
|
||||
*
|
||||
* @memberof modifiers
|
||||
* @inner
|
||||
@@ -2039,7 +2119,7 @@ var modifiers = {
|
||||
/**
|
||||
* Modifier used to prevent the popper from being positioned outside the boundary.
|
||||
*
|
||||
* An scenario exists where the reference itself is not within the boundaries.<br />
|
||||
* A scenario exists where the reference itself is not within the boundaries.<br />
|
||||
* We can say it has "escaped the boundaries" — or just "escaped".<br />
|
||||
* In this case we need to decide whether the popper should either:
|
||||
*
|
||||
@@ -2069,23 +2149,23 @@ var modifiers = {
|
||||
/**
|
||||
* @prop {number} padding=5
|
||||
* Amount of pixel used to define a minimum distance between the boundaries
|
||||
* and the popper this makes sure the popper has always a little padding
|
||||
* and the popper. This makes sure the popper always has a little padding
|
||||
* between the edges of its container
|
||||
*/
|
||||
padding: 5,
|
||||
/**
|
||||
* @prop {String|HTMLElement} boundariesElement='scrollParent'
|
||||
* Boundaries used by the modifier, can be `scrollParent`, `window`,
|
||||
* Boundaries used by the modifier. Can be `scrollParent`, `window`,
|
||||
* `viewport` or any DOM element.
|
||||
*/
|
||||
boundariesElement: 'scrollParent'
|
||||
},
|
||||
|
||||
/**
|
||||
* Modifier used to make sure the reference and its popper stay near eachothers
|
||||
* without leaving any gap between the two. Expecially useful when the arrow is
|
||||
* enabled and you want to assure it to point to its reference element.
|
||||
* It cares only about the first axis, you can still have poppers with margin
|
||||
* Modifier used to make sure the reference and its popper stay near each other
|
||||
* without leaving any gap between the two. Especially useful when the arrow is
|
||||
* enabled and you want to ensure that it points to its reference element.
|
||||
* It cares only about the first axis. You can still have poppers with margin
|
||||
* between the popper and its reference element.
|
||||
* @memberof modifiers
|
||||
* @inner
|
||||
@@ -2103,7 +2183,7 @@ var modifiers = {
|
||||
* This modifier is used to move the `arrowElement` of the popper to make
|
||||
* sure it is positioned between the reference element and its popper element.
|
||||
* It will read the outer size of the `arrowElement` node to detect how many
|
||||
* pixels of conjuction are needed.
|
||||
* pixels of conjunction are needed.
|
||||
*
|
||||
* It has no effect if no `arrowElement` is provided.
|
||||
* @memberof modifiers
|
||||
@@ -2142,7 +2222,7 @@ var modifiers = {
|
||||
* @prop {String|Array} behavior='flip'
|
||||
* The behavior used to change the popper's placement. It can be one of
|
||||
* `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
|
||||
* placements (with optional variations).
|
||||
* placements (with optional variations)
|
||||
*/
|
||||
behavior: 'flip',
|
||||
/**
|
||||
@@ -2152,11 +2232,27 @@ var modifiers = {
|
||||
padding: 5,
|
||||
/**
|
||||
* @prop {String|HTMLElement} boundariesElement='viewport'
|
||||
* The element which will define the boundaries of the popper position,
|
||||
* the popper will never be placed outside of the defined boundaries
|
||||
* (except if keepTogether is enabled)
|
||||
* The element which will define the boundaries of the popper position.
|
||||
* The popper will never be placed outside of the defined boundaries
|
||||
* (except if `keepTogether` is enabled)
|
||||
*/
|
||||
boundariesElement: 'viewport'
|
||||
boundariesElement: 'viewport',
|
||||
/**
|
||||
* @prop {Boolean} flipVariations=false
|
||||
* The popper will switch placement variation between `-start` and `-end` when
|
||||
* the reference element overlaps its boundaries.
|
||||
*
|
||||
* The original placement should have a set variation.
|
||||
*/
|
||||
flipVariations: false,
|
||||
/**
|
||||
* @prop {Boolean} flipVariationsByContent=false
|
||||
* The popper will switch placement variation between `-start` and `-end` when
|
||||
* the popper element overlaps its reference boundaries.
|
||||
*
|
||||
* The original placement should have a set variation.
|
||||
*/
|
||||
flipVariationsByContent: false
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2218,8 +2314,8 @@ var modifiers = {
|
||||
fn: computeStyle,
|
||||
/**
|
||||
* @prop {Boolean} gpuAcceleration=true
|
||||
* If true, it uses the CSS 3d transformation to position the popper.
|
||||
* Otherwise, it will use the `top` and `left` properties.
|
||||
* If true, it uses the CSS 3D transformation to position the popper.
|
||||
* Otherwise, it will use the `top` and `left` properties
|
||||
*/
|
||||
gpuAcceleration: true,
|
||||
/**
|
||||
@@ -2246,7 +2342,7 @@ var modifiers = {
|
||||
* Note that if you disable this modifier, you must make sure the popper element
|
||||
* has its position set to `absolute` before Popper.js can do its work!
|
||||
*
|
||||
* Just disable this modifier and define you own to achieve the desired effect.
|
||||
* Just disable this modifier and define your own to achieve the desired effect.
|
||||
*
|
||||
* @memberof modifiers
|
||||
* @inner
|
||||
@@ -2263,27 +2359,27 @@ var modifiers = {
|
||||
/**
|
||||
* @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
|
||||
* @prop {Boolean} gpuAcceleration=true
|
||||
* If true, it uses the CSS 3d transformation to position the popper.
|
||||
* Otherwise, it will use the `top` and `left` properties.
|
||||
* If true, it uses the CSS 3D transformation to position the popper.
|
||||
* Otherwise, it will use the `top` and `left` properties
|
||||
*/
|
||||
gpuAcceleration: undefined
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* The `dataObject` is an object containing all the informations used by Popper.js
|
||||
* this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
|
||||
* The `dataObject` is an object containing all the information used by Popper.js.
|
||||
* This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
|
||||
* @name dataObject
|
||||
* @property {Object} data.instance The Popper.js instance
|
||||
* @property {String} data.placement Placement applied to popper
|
||||
* @property {String} data.originalPlacement Placement originally defined on init
|
||||
* @property {Boolean} data.flipped True if popper has been flipped by flip modifier
|
||||
* @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
|
||||
* @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
|
||||
* @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
|
||||
* @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
|
||||
* @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
|
||||
* @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
|
||||
* @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
|
||||
* @property {Object} data.boundaries Offsets of the popper boundaries
|
||||
* @property {Object} data.offsets The measurements of popper, reference and arrow elements.
|
||||
* @property {Object} data.offsets The measurements of popper, reference and arrow elements
|
||||
* @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
|
||||
* @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
|
||||
* @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
|
||||
@@ -2291,9 +2387,9 @@ var modifiers = {
|
||||
|
||||
/**
|
||||
* Default options provided to Popper.js constructor.<br />
|
||||
* These can be overriden using the `options` argument of Popper.js.<br />
|
||||
* To override an option, simply pass as 3rd argument an object with the same
|
||||
* structure of this object, example:
|
||||
* These can be overridden using the `options` argument of Popper.js.<br />
|
||||
* To override an option, simply pass an object with the same
|
||||
* structure of the `options` object, as the 3rd argument. For example:
|
||||
* ```
|
||||
* new Popper(ref, pop, {
|
||||
* modifiers: {
|
||||
@@ -2307,7 +2403,7 @@ var modifiers = {
|
||||
*/
|
||||
var Defaults = {
|
||||
/**
|
||||
* Popper's placement
|
||||
* Popper's placement.
|
||||
* @prop {Popper.placements} placement='bottom'
|
||||
*/
|
||||
placement: 'bottom',
|
||||
@@ -2319,7 +2415,7 @@ var Defaults = {
|
||||
positionFixed: false,
|
||||
|
||||
/**
|
||||
* Whether events (resize, scroll) are initially enabled
|
||||
* Whether events (resize, scroll) are initially enabled.
|
||||
* @prop {Boolean} eventsEnabled=true
|
||||
*/
|
||||
eventsEnabled: true,
|
||||
@@ -2333,17 +2429,17 @@ var Defaults = {
|
||||
|
||||
/**
|
||||
* Callback called when the popper is created.<br />
|
||||
* By default, is set to no-op.<br />
|
||||
* By default, it is set to no-op.<br />
|
||||
* Access Popper.js instance with `data.instance`.
|
||||
* @prop {onCreate}
|
||||
*/
|
||||
onCreate: function onCreate() {},
|
||||
|
||||
/**
|
||||
* Callback called when the popper is updated, this callback is not called
|
||||
* Callback called when the popper is updated. This callback is not called
|
||||
* on the initialization/creation of the popper, but only on subsequent
|
||||
* updates.<br />
|
||||
* By default, is set to no-op.<br />
|
||||
* By default, it is set to no-op.<br />
|
||||
* Access Popper.js instance with `data.instance`.
|
||||
* @prop {onUpdate}
|
||||
*/
|
||||
@@ -2351,7 +2447,7 @@ var Defaults = {
|
||||
|
||||
/**
|
||||
* List of modifiers used to modify the offsets before they are applied to the popper.
|
||||
* They provide most of the functionalities of Popper.js
|
||||
* They provide most of the functionalities of Popper.js.
|
||||
* @prop {modifiers}
|
||||
*/
|
||||
modifiers: modifiers
|
||||
@@ -2371,10 +2467,10 @@ var Defaults = {
|
||||
// Methods
|
||||
var Popper = function () {
|
||||
/**
|
||||
* Create a new Popper.js instance
|
||||
* Creates a new Popper.js instance.
|
||||
* @class Popper
|
||||
* @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
|
||||
* @param {HTMLElement} popper - The HTML element used as popper.
|
||||
* @param {Element|referenceObject} reference - The reference element used to position the popper
|
||||
* @param {Element} popper - The HTML / XML element used as the popper
|
||||
* @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
|
||||
* @return {Object} instance - The generated Popper.js instance
|
||||
*/
|
||||
@@ -2470,7 +2566,7 @@ var Popper = function () {
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedule an update, it will run on the next UI update available
|
||||
* Schedules an update. It will run on the next UI update available.
|
||||
* @method scheduleUpdate
|
||||
* @memberof Popper
|
||||
*/
|
||||
@@ -2507,7 +2603,7 @@ var Popper = function () {
|
||||
* new Popper(referenceObject, popperNode);
|
||||
* ```
|
||||
*
|
||||
* NB: This feature isn't supported in Internet Explorer 10
|
||||
* NB: This feature isn't supported in Internet Explorer 10.
|
||||
* @name referenceObject
|
||||
* @property {Function} data.getBoundingClientRect
|
||||
* A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
|
||||
|
||||
Reference in New Issue
Block a user