Updated to v1.3.3

This commit is contained in:
Henry Whitaker
2020-05-05 09:34:02 +01:00
parent 4c515c3c80
commit 3a99dc5495
515 changed files with 7827 additions and 8876 deletions

View File

@@ -1,6 +1,6 @@
# Speedtest Tracker
[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.3.2-success) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)
[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.3.3-success) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)
This program runs a speedtest check every hour and graphs the results. The back-end is written in [Laravel](https://laravel.com/) and the front-end uses [React](https://reactjs.org/). It uses the [speedtest-cli](https://github.com/sivel/speedtest-cli) package to get the data and uses [Chart.js](https://www.chartjs.org/) to plot the results.

View File

@@ -1,4 +1,10 @@
{
"1.3.3": [
{
"description": "Updated jQuery",
"link": "https://github.com/henrywhitaker3/Speedtest-Tracker/pull/32"
}
],
"1.3.2": [
{
"description": "Updated laravel framework",

View File

@@ -7,7 +7,7 @@ return [
|--------------------------------------------------------------------------
*/
'version' => '1.3.2',
'version' => '1.3.3',
/*
|--------------------------------------------------------------------------

View File

@@ -42,6 +42,8 @@ We've created a
[Migration Guide](https://popper.js.org/docs/v2/migration-guide/) to help you
migrate from Popper 1 to Popper 2.
To contribute to the Popper website and documentation, please visit the [dedicated repository](https://github.com/popperjs/website).
## Why not use pure CSS?
CSS tooltips have accessibility and usability problems:

View File

@@ -1,5 +1,5 @@
/**
* @popperjs/core v2.2.1 - MIT License
* @popperjs/core v2.3.3 - MIT License
*/
'use strict';
@@ -149,12 +149,15 @@ function getParentNode(element) {
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}
function getComputedStyle(element) {
@@ -189,7 +192,8 @@ function listScrollParents(element, list) {
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));
@@ -665,15 +669,24 @@ function popperGenerator(generatorOptions) {
return instance;
};
}
var createPopper =
/*#__PURE__*/
popperGenerator();
var createPopper = /*#__PURE__*/popperGenerator();
function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};

View File

@@ -1,3 +1,3 @@
// @flow
export * from '../../src/popper-base.js'
export * from '../../lib/popper-base.js'

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/**
* @popperjs/core v2.2.1 - MIT License
* @popperjs/core v2.3.3 - MIT License
*/
'use strict';
@@ -149,12 +149,15 @@ function getParentNode(element) {
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}
function getComputedStyle(element) {
@@ -189,7 +192,8 @@ function listScrollParents(element, list) {
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));
@@ -702,7 +706,8 @@ function effect(_ref) {
window.removeEventListener('resize', instance.update, passive);
}
};
}
} // eslint-disable-next-line import/no-unused-modules
var eventListeners = {
name: 'eventListeners',
@@ -799,7 +804,8 @@ function popperOffsets(_ref) {
strategy: 'absolute',
placement: state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var popperOffsets$1 = {
name: 'popperOffsets',
@@ -895,8 +901,7 @@ function computeStyles(_ref3) {
adaptive = _options$adaptive === void 0 ? true : _options$adaptive;
if (process.env.NODE_ENV !== "production") {
var _getComputedStyle = getComputedStyle(state.elements.popper),
transitionProperty = _getComputedStyle.transitionProperty;
var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
return transitionProperty.indexOf(property) >= 0;
@@ -910,13 +915,15 @@ function computeStyles(_ref3) {
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration: gpuAcceleration
}; // popper offsets are always available
};
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
}))); // arrow offsets may not be available
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {
@@ -929,7 +936,8 @@ function computeStyles(_ref3) {
state.attributes.popper = Object.assign({}, state.attributes.popper, {
'data-popper-placement': state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var computeStyles$1 = {
name: 'computeStyles',
@@ -972,7 +980,7 @@ function effect$1(_ref2) {
var state = _ref2.state;
var initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0'
@@ -1012,7 +1020,8 @@ function effect$1(_ref2) {
});
});
};
}
} // eslint-disable-next-line import/no-unused-modules
var applyStyles$1 = {
name: 'applyStyles',
@@ -1025,9 +1034,20 @@ var applyStyles$1 = {
function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};
@@ -1240,9 +1260,7 @@ function detectOverflow(state, options) {
}
var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

View File

@@ -1,3 +1,3 @@
// @flow
export * from '../../src/popper-lite.js'
export * from '../../lib/popper-lite.js'

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/**
* @popperjs/core v2.2.1 - MIT License
* @popperjs/core v2.3.3 - MIT License
*/
'use strict';
@@ -149,12 +149,15 @@ function getParentNode(element) {
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}
function getComputedStyle(element) {
@@ -189,7 +192,8 @@ function listScrollParents(element, list) {
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));
@@ -235,14 +239,10 @@ var clippingParents = 'clippingParents';
var viewport = 'viewport';
var popper = 'popper';
var reference = 'reference';
var variationPlacements =
/*#__PURE__*/
basePlacements.reduce(function (acc, placement) {
var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
return acc.concat([placement + "-" + start, placement + "-" + end]);
}, []);
var placements =
/*#__PURE__*/
[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
}, []); // modifiers that need to read the DOM
@@ -712,7 +712,8 @@ function effect(_ref) {
window.removeEventListener('resize', instance.update, passive);
}
};
}
} // eslint-disable-next-line import/no-unused-modules
var eventListeners = {
name: 'eventListeners',
@@ -809,7 +810,8 @@ function popperOffsets(_ref) {
strategy: 'absolute',
placement: state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var popperOffsets$1 = {
name: 'popperOffsets',
@@ -905,8 +907,7 @@ function computeStyles(_ref3) {
adaptive = _options$adaptive === void 0 ? true : _options$adaptive;
if (process.env.NODE_ENV !== "production") {
var _getComputedStyle = getComputedStyle(state.elements.popper),
transitionProperty = _getComputedStyle.transitionProperty;
var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
return transitionProperty.indexOf(property) >= 0;
@@ -920,13 +921,15 @@ function computeStyles(_ref3) {
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration: gpuAcceleration
}; // popper offsets are always available
};
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
}))); // arrow offsets may not be available
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {
@@ -939,7 +942,8 @@ function computeStyles(_ref3) {
state.attributes.popper = Object.assign({}, state.attributes.popper, {
'data-popper-placement': state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var computeStyles$1 = {
name: 'computeStyles',
@@ -982,7 +986,7 @@ function effect$1(_ref2) {
var state = _ref2.state;
var initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0'
@@ -1022,7 +1026,8 @@ function effect$1(_ref2) {
});
});
};
}
} // eslint-disable-next-line import/no-unused-modules
var applyStyles$1 = {
name: 'applyStyles',
@@ -1067,10 +1072,15 @@ function offset(_ref2) {
var _data$state$placement = data[state.placement],
x = _data$state$placement.x,
y = _data$state$placement.y;
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
if (state.modifiersData.popperOffsets != null) {
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
var offset$1 = {
name: 'offset',
@@ -1104,9 +1114,20 @@ function getOppositeVariationPlacement(placement) {
function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};
@@ -1318,6 +1339,9 @@ function detectOverflow(state, options) {
return overflowOffsets;
}
/*:: type OverflowsMap = { [ComputedPlacement]: number }; */
/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */
function computeAutoPlacement(state, options) {
if (options === void 0) {
options = {};
@@ -1328,13 +1352,17 @@ function computeAutoPlacement(state, options) {
boundary = _options.boundary,
rootBoundary = _options.rootBoundary,
padding = _options.padding,
flipVariations = _options.flipVariations;
flipVariations = _options.flipVariations,
_options$allowedAutoP = _options.allowedAutoPlacements,
allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
var variation = getVariation(placement);
var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
var placements$1 = (variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
return getVariation(placement) === variation;
}) : basePlacements; // $FlowFixMe: Flow seems to have problems with two array unions...
}) : basePlacements).filter(function (placement) {
return allowedAutoPlacements.indexOf(placement) >= 0;
}); // $FlowFixMe: Flow seems to have problems with two array unions...
var overflows = placements.reduce(function (acc, placement) {
var overflows = placements$1.reduce(function (acc, placement) {
acc[placement] = detectOverflow(state, {
placement: placement,
boundary: boundary,
@@ -1372,7 +1400,8 @@ function flip(_ref) {
rootBoundary = options.rootBoundary,
altBoundary = options.altBoundary,
_options$flipVariatio = options.flipVariations,
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio;
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
allowedAutoPlacements = options.allowedAutoPlacements;
var preferredPlacement = state.options.placement;
var basePlacement = getBasePlacement(preferredPlacement);
var isBasePlacement = basePlacement === preferredPlacement;
@@ -1383,7 +1412,8 @@ function flip(_ref) {
boundary: boundary,
rootBoundary: rootBoundary,
padding: padding,
flipVariations: flipVariations
flipVariations: flipVariations,
allowedAutoPlacements: allowedAutoPlacements
}) : placement);
}, []);
var referenceRect = state.rects.reference;
@@ -1460,7 +1490,8 @@ function flip(_ref) {
state.placement = firstFittingPlacement;
state.reset = true;
}
}
} // eslint-disable-next-line import/no-unused-modules
var flip$1 = {
name: 'flip',
@@ -1519,6 +1550,10 @@ function preventOverflow(_ref) {
y: 0
};
if (!popperOffsets) {
return;
}
if (checkMainAxis) {
var mainSide = mainAxis === 'y' ? top : left;
var altSide = mainAxis === 'y' ? bottom : right;
@@ -1570,12 +1605,13 @@ function preventOverflow(_ref) {
var _preventedOffset = within(_min, _offset, _max);
state.modifiersData.popperOffsets[altAxis] = _preventedOffset;
popperOffsets[altAxis] = _preventedOffset;
data[altAxis] = _preventedOffset - _offset;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
var preventOverflow$1 = {
name: 'preventOverflow',
@@ -1597,7 +1633,7 @@ function arrow(_ref) {
var isVertical = [left, right].indexOf(basePlacement) >= 0;
var len = isVertical ? 'height' : 'width';
if (!arrowElement) {
if (!arrowElement || !popperOffsets) {
return;
}
@@ -1628,7 +1664,12 @@ function effect$2(_ref2) {
var _options$element = options.element,
arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,
_options$padding = options.padding,
padding = _options$padding === void 0 ? 0 : _options$padding; // CSS selector
padding = _options$padding === void 0 ? 0 : _options$padding;
if (arrowElement == null) {
return;
} // CSS selector
if (typeof arrowElement === 'string') {
arrowElement = state.elements.popper.querySelector(arrowElement);
@@ -1650,7 +1691,8 @@ function effect$2(_ref2) {
state.modifiersData[name + "#persistent"] = {
padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))
};
}
} // eslint-disable-next-line import/no-unused-modules
var arrow$1 = {
name: 'arrow',
@@ -1710,7 +1752,8 @@ function hide(_ref) {
'data-popper-reference-hidden': isReferenceHidden,
'data-popper-escaped': hasPopperEscaped
});
}
} // eslint-disable-next-line import/no-unused-modules
var hide$1 = {
name: 'hide',
@@ -1721,9 +1764,7 @@ var hide$1 = {
};
var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

View File

@@ -1,3 +1,3 @@
// @flow
export * from '../../src/popper.js'
export * from '../../lib/popper.js'

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +1,17 @@
import getNodeName from "./getNodeName.js";
import getDocumentElement from "./getDocumentElement.js";
export default function getParentNode(element) {
if (getNodeName(element) === 'html') {
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}

View File

@@ -1,9 +1,20 @@
import getWindow from "./getWindow.js";
export default function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};

View File

@@ -9,7 +9,8 @@ export default function listScrollParents(element, list) {
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));

View File

@@ -10,14 +10,10 @@ export var clippingParents = 'clippingParents';
export var viewport = 'viewport';
export var popper = 'popper';
export var reference = 'reference';
export var variationPlacements =
/*#__PURE__*/
basePlacements.reduce(function (acc, placement) {
export var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
return acc.concat([placement + "-" + start, placement + "-" + end]);
}, []);
export var placements =
/*#__PURE__*/
[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
export var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
}, []); // modifiers that need to read the DOM

View File

@@ -253,6 +253,4 @@ export function popperGenerator(generatorOptions) {
return instance;
};
}
export var createPopper =
/*#__PURE__*/
popperGenerator();
export var createPopper = /*#__PURE__*/popperGenerator();

View File

@@ -33,7 +33,7 @@ function effect(_ref2) {
var state = _ref2.state;
var initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0'
@@ -73,7 +73,8 @@ function effect(_ref2) {
});
});
};
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'applyStyles',

View File

@@ -20,7 +20,7 @@ function arrow(_ref) {
var isVertical = [left, right].indexOf(basePlacement) >= 0;
var len = isVertical ? 'height' : 'width';
if (!arrowElement) {
if (!arrowElement || !popperOffsets) {
return;
}
@@ -51,7 +51,12 @@ function effect(_ref2) {
var _options$element = options.element,
arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,
_options$padding = options.padding,
padding = _options$padding === void 0 ? 0 : _options$padding; // CSS selector
padding = _options$padding === void 0 ? 0 : _options$padding;
if (arrowElement == null) {
return;
} // CSS selector
if (typeof arrowElement === 'string') {
arrowElement = state.elements.popper.querySelector(arrowElement);
@@ -73,7 +78,8 @@ function effect(_ref2) {
state.modifiersData[name + "#persistent"] = {
padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))
};
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'arrow',

View File

@@ -90,8 +90,7 @@ function computeStyles(_ref3) {
adaptive = _options$adaptive === void 0 ? true : _options$adaptive;
if (false) {
var _getComputedStyle = getComputedStyle(state.elements.popper),
transitionProperty = _getComputedStyle.transitionProperty;
var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
return transitionProperty.indexOf(property) >= 0;
@@ -105,13 +104,15 @@ function computeStyles(_ref3) {
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration: gpuAcceleration
}; // popper offsets are always available
};
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
}))); // arrow offsets may not be available
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {
@@ -124,7 +125,8 @@ function computeStyles(_ref3) {
state.attributes.popper = Object.assign({}, state.attributes.popper, {
'data-popper-placement': state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'computeStyles',

View File

@@ -35,7 +35,8 @@ function effect(_ref) {
window.removeEventListener('resize', instance.update, passive);
}
};
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'eventListeners',

View File

@@ -30,7 +30,8 @@ function flip(_ref) {
rootBoundary = options.rootBoundary,
altBoundary = options.altBoundary,
_options$flipVariatio = options.flipVariations,
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio;
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
allowedAutoPlacements = options.allowedAutoPlacements;
var preferredPlacement = state.options.placement;
var basePlacement = getBasePlacement(preferredPlacement);
var isBasePlacement = basePlacement === preferredPlacement;
@@ -41,7 +42,8 @@ function flip(_ref) {
boundary: boundary,
rootBoundary: rootBoundary,
padding: padding,
flipVariations: flipVariations
flipVariations: flipVariations,
allowedAutoPlacements: allowedAutoPlacements
}) : placement);
}, []);
var referenceRect = state.rects.reference;
@@ -118,7 +120,8 @@ function flip(_ref) {
state.placement = firstFittingPlacement;
state.reset = true;
}
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'flip',

View File

@@ -49,7 +49,8 @@ function hide(_ref) {
'data-popper-reference-hidden': isReferenceHidden,
'data-popper-escaped': hasPopperEscaped
});
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'hide',

View File

@@ -34,10 +34,15 @@ function offset(_ref2) {
var _data$state$placement = data[state.placement],
x = _data$state$placement.x,
y = _data$state$placement.y;
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
if (state.modifiersData.popperOffsets != null) {
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'offset',

View File

@@ -13,7 +13,8 @@ function popperOffsets(_ref) {
strategy: 'absolute',
placement: state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'popperOffsets',

View File

@@ -47,6 +47,10 @@ function preventOverflow(_ref) {
y: 0
};
if (!popperOffsets) {
return;
}
if (checkMainAxis) {
var mainSide = mainAxis === 'y' ? top : left;
var altSide = mainAxis === 'y' ? bottom : right;
@@ -98,12 +102,13 @@ function preventOverflow(_ref) {
var _preventedOffset = within(_min, _offset, _max);
state.modifiersData.popperOffsets[altAxis] = _preventedOffset;
popperOffsets[altAxis] = _preventedOffset;
data[altAxis] = _preventedOffset - _offset;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'preventOverflow',

View File

@@ -5,9 +5,7 @@ import computeStyles from "./modifiers/computeStyles.js";
import applyStyles from "./modifiers/applyStyles.js";
import detectOverflow from "./utils/detectOverflow.js";
var defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

View File

@@ -10,9 +10,7 @@ import arrow from "./modifiers/arrow.js";
import hide from "./modifiers/hide.js";
import detectOverflow from "./utils/detectOverflow.js";
var defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

View File

@@ -1,7 +1,11 @@
import getVariation from "./getVariation.js";
import { variationPlacements, basePlacements } from "../enums.js";
import { variationPlacements, basePlacements, placements as allPlacements } from "../enums.js";
import detectOverflow from "./detectOverflow.js";
import getBasePlacement from "./getBasePlacement.js";
/*:: type OverflowsMap = { [ComputedPlacement]: number }; */
/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */
export default function computeAutoPlacement(state, options) {
if (options === void 0) {
options = {};
@@ -12,11 +16,15 @@ export default function computeAutoPlacement(state, options) {
boundary = _options.boundary,
rootBoundary = _options.rootBoundary,
padding = _options.padding,
flipVariations = _options.flipVariations;
flipVariations = _options.flipVariations,
_options$allowedAutoP = _options.allowedAutoPlacements,
allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;
var variation = getVariation(placement);
var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
var placements = (variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
return getVariation(placement) === variation;
}) : basePlacements; // $FlowFixMe: Flow seems to have problems with two array unions...
}) : basePlacements).filter(function (placement) {
return allowedAutoPlacements.indexOf(placement) >= 0;
}); // $FlowFixMe: Flow seems to have problems with two array unions...
var overflows = placements.reduce(function (acc, placement) {
acc[placement] = detectOverflow(state, {

View File

@@ -1,5 +1,5 @@
/**
* @popperjs/core v2.2.1 - MIT License
* @popperjs/core v2.3.3 - MIT License
*/
(function (global, factory) {
@@ -151,12 +151,15 @@
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}
function getComputedStyle(element) {
@@ -191,7 +194,8 @@
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));
@@ -667,15 +671,24 @@
return instance;
};
}
var createPopper =
/*#__PURE__*/
popperGenerator();
var createPopper = /*#__PURE__*/popperGenerator();
function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
// @flow
export * from '../../src/popper-base.js'
export * from '../../lib/popper-base.js'

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/**
* @popperjs/core v2.2.1 - MIT License
* @popperjs/core v2.3.3 - MIT License
*/
(function (global, factory) {
@@ -151,12 +151,15 @@
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}
function getComputedStyle(element) {
@@ -191,7 +194,8 @@
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));
@@ -704,7 +708,8 @@
window.removeEventListener('resize', instance.update, passive);
}
};
}
} // eslint-disable-next-line import/no-unused-modules
var eventListeners = {
name: 'eventListeners',
@@ -801,7 +806,8 @@
strategy: 'absolute',
placement: state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var popperOffsets$1 = {
name: 'popperOffsets',
@@ -897,8 +903,7 @@
adaptive = _options$adaptive === void 0 ? true : _options$adaptive;
{
var _getComputedStyle = getComputedStyle(state.elements.popper),
transitionProperty = _getComputedStyle.transitionProperty;
var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
return transitionProperty.indexOf(property) >= 0;
@@ -912,13 +917,15 @@
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration: gpuAcceleration
}; // popper offsets are always available
};
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
}))); // arrow offsets may not be available
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {
@@ -931,7 +938,8 @@
state.attributes.popper = Object.assign({}, state.attributes.popper, {
'data-popper-placement': state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var computeStyles$1 = {
name: 'computeStyles',
@@ -974,7 +982,7 @@
var state = _ref2.state;
var initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0'
@@ -1014,7 +1022,8 @@
});
});
};
}
} // eslint-disable-next-line import/no-unused-modules
var applyStyles$1 = {
name: 'applyStyles',
@@ -1027,9 +1036,20 @@
function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};
@@ -1242,9 +1262,7 @@
}
var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
// @flow
export * from '../../src/popper-lite.js'
export * from '../../lib/popper-lite.js'

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/**
* @popperjs/core v2.2.1 - MIT License
* @popperjs/core v2.3.3 - MIT License
*/
(function (global, factory) {
@@ -151,12 +151,15 @@
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}
function getComputedStyle(element) {
@@ -191,7 +194,8 @@
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));
@@ -237,14 +241,10 @@
var viewport = 'viewport';
var popper = 'popper';
var reference = 'reference';
var variationPlacements =
/*#__PURE__*/
basePlacements.reduce(function (acc, placement) {
var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
return acc.concat([placement + "-" + start, placement + "-" + end]);
}, []);
var placements =
/*#__PURE__*/
[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
}, []); // modifiers that need to read the DOM
@@ -714,7 +714,8 @@
window.removeEventListener('resize', instance.update, passive);
}
};
}
} // eslint-disable-next-line import/no-unused-modules
var eventListeners = {
name: 'eventListeners',
@@ -811,7 +812,8 @@
strategy: 'absolute',
placement: state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var popperOffsets$1 = {
name: 'popperOffsets',
@@ -907,8 +909,7 @@
adaptive = _options$adaptive === void 0 ? true : _options$adaptive;
{
var _getComputedStyle = getComputedStyle(state.elements.popper),
transitionProperty = _getComputedStyle.transitionProperty;
var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
return transitionProperty.indexOf(property) >= 0;
@@ -922,13 +923,15 @@
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration: gpuAcceleration
}; // popper offsets are always available
};
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
}))); // arrow offsets may not be available
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {
@@ -941,7 +944,8 @@
state.attributes.popper = Object.assign({}, state.attributes.popper, {
'data-popper-placement': state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
var computeStyles$1 = {
name: 'computeStyles',
@@ -984,7 +988,7 @@
var state = _ref2.state;
var initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0'
@@ -1024,7 +1028,8 @@
});
});
};
}
} // eslint-disable-next-line import/no-unused-modules
var applyStyles$1 = {
name: 'applyStyles',
@@ -1069,10 +1074,15 @@
var _data$state$placement = data[state.placement],
x = _data$state$placement.x,
y = _data$state$placement.y;
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
if (state.modifiersData.popperOffsets != null) {
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
var offset$1 = {
name: 'offset',
@@ -1106,9 +1116,20 @@
function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};
@@ -1320,6 +1341,9 @@
return overflowOffsets;
}
/*:: type OverflowsMap = { [ComputedPlacement]: number }; */
/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */
function computeAutoPlacement(state, options) {
if (options === void 0) {
options = {};
@@ -1330,13 +1354,17 @@
boundary = _options.boundary,
rootBoundary = _options.rootBoundary,
padding = _options.padding,
flipVariations = _options.flipVariations;
flipVariations = _options.flipVariations,
_options$allowedAutoP = _options.allowedAutoPlacements,
allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
var variation = getVariation(placement);
var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
var placements$1 = (variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
return getVariation(placement) === variation;
}) : basePlacements; // $FlowFixMe: Flow seems to have problems with two array unions...
}) : basePlacements).filter(function (placement) {
return allowedAutoPlacements.indexOf(placement) >= 0;
}); // $FlowFixMe: Flow seems to have problems with two array unions...
var overflows = placements.reduce(function (acc, placement) {
var overflows = placements$1.reduce(function (acc, placement) {
acc[placement] = detectOverflow(state, {
placement: placement,
boundary: boundary,
@@ -1374,7 +1402,8 @@
rootBoundary = options.rootBoundary,
altBoundary = options.altBoundary,
_options$flipVariatio = options.flipVariations,
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio;
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
allowedAutoPlacements = options.allowedAutoPlacements;
var preferredPlacement = state.options.placement;
var basePlacement = getBasePlacement(preferredPlacement);
var isBasePlacement = basePlacement === preferredPlacement;
@@ -1385,7 +1414,8 @@
boundary: boundary,
rootBoundary: rootBoundary,
padding: padding,
flipVariations: flipVariations
flipVariations: flipVariations,
allowedAutoPlacements: allowedAutoPlacements
}) : placement);
}, []);
var referenceRect = state.rects.reference;
@@ -1462,7 +1492,8 @@
state.placement = firstFittingPlacement;
state.reset = true;
}
}
} // eslint-disable-next-line import/no-unused-modules
var flip$1 = {
name: 'flip',
@@ -1521,6 +1552,10 @@
y: 0
};
if (!popperOffsets) {
return;
}
if (checkMainAxis) {
var mainSide = mainAxis === 'y' ? top : left;
var altSide = mainAxis === 'y' ? bottom : right;
@@ -1572,12 +1607,13 @@
var _preventedOffset = within(_min, _offset, _max);
state.modifiersData.popperOffsets[altAxis] = _preventedOffset;
popperOffsets[altAxis] = _preventedOffset;
data[altAxis] = _preventedOffset - _offset;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
var preventOverflow$1 = {
name: 'preventOverflow',
@@ -1599,7 +1635,7 @@
var isVertical = [left, right].indexOf(basePlacement) >= 0;
var len = isVertical ? 'height' : 'width';
if (!arrowElement) {
if (!arrowElement || !popperOffsets) {
return;
}
@@ -1630,7 +1666,12 @@
var _options$element = options.element,
arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,
_options$padding = options.padding,
padding = _options$padding === void 0 ? 0 : _options$padding; // CSS selector
padding = _options$padding === void 0 ? 0 : _options$padding;
if (arrowElement == null) {
return;
} // CSS selector
if (typeof arrowElement === 'string') {
arrowElement = state.elements.popper.querySelector(arrowElement);
@@ -1652,7 +1693,8 @@
state.modifiersData[name + "#persistent"] = {
padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))
};
}
} // eslint-disable-next-line import/no-unused-modules
var arrow$1 = {
name: 'arrow',
@@ -1712,7 +1754,8 @@
'data-popper-reference-hidden': isReferenceHidden,
'data-popper-escaped': hasPopperEscaped
});
}
} // eslint-disable-next-line import/no-unused-modules
var hide$1 = {
name: 'hide',
@@ -1723,9 +1766,7 @@
};
var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
// @flow
export * from '../../src/popper.js'
export * from '../../lib/popper.js'

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +1,17 @@
import getNodeName from "./getNodeName.js";
import getDocumentElement from "./getDocumentElement.js";
export default function getParentNode(element) {
if (getNodeName(element) === 'html') {
return element;
}
return element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
;
return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}

View File

@@ -1,5 +1,6 @@
// @flow
import getNodeName from './getNodeName';
import getDocumentElement from './getDocumentElement';
export default function getParentNode(element: Node | ShadowRoot): Node {
if (getNodeName(element) === 'html') {
@@ -7,10 +8,12 @@ export default function getParentNode(element: Node | ShadowRoot): Node {
}
return (
// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle
element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
element.parentNode || // DOM Element detected
// $FlowFixMe: need a better way to handle this...
element.host || // ShadowRoot detected
document.ownerDocument || // Fallback to ownerDocument if available
document.documentElement // Or to documentElement if everything else fails
// $FlowFixMe: HTMLElement is a Node
getDocumentElement(element) // fallback
);
}

View File

@@ -1,9 +1,20 @@
import getWindow from "./getWindow.js";
export default function getViewportRect(element) {
var win = getWindow(element);
var visualViewport = win.visualViewport;
var width = win.innerWidth;
var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return {
width: win.innerWidth,
height: win.innerHeight,
width: width,
height: height,
x: 0,
y: 0
};

View File

@@ -3,11 +3,18 @@ import getWindow from './getWindow';
export default function getViewportRect(element: Element) {
const win = getWindow(element);
const visualViewport = win.visualViewport;
return {
width: win.innerWidth,
height: win.innerHeight,
x: 0,
y: 0,
};
let width = win.innerWidth;
let height = win.innerHeight;
// We don't know which browsers have buggy or odd implementations of this, so
// for now we're only applying it to iOS to fix the keyboard issue.
// Investigation required
if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {
width = visualViewport.width;
height = visualViewport.height;
}
return { width, height, x: 0, y: 0 };
}

View File

@@ -1,2 +1,2 @@
import { Window } from "../types";
export default function listScrollParents(element: Node, list?: Array<Element | Window>): Array<Element | Window>;
import { Window, VisualViewport } from "../types";
export default function listScrollParents(element: Node, list?: Array<Element | Window>): Array<Element | Window | VisualViewport>;

View File

@@ -9,7 +9,8 @@ export default function listScrollParents(element, list) {
var scrollParent = getScrollParent(element);
var isBody = getNodeName(scrollParent) === 'body';
var target = isBody ? getWindow(scrollParent) : scrollParent;
var win = getWindow(scrollParent);
var target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
var updatedList = list.concat(target);
return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here
updatedList.concat(listScrollParents(getParentNode(target)));

View File

@@ -3,15 +3,16 @@ import getScrollParent from './getScrollParent';
import getParentNode from './getParentNode';
import getNodeName from './getNodeName';
import getWindow from './getWindow';
import type { Window } from '../types';
import type { Window, VisualViewport } from '../types';
export default function listScrollParents(
element: Node,
list: Array<Element | Window> = []
): Array<Element | Window> {
): Array<Element | Window | VisualViewport> {
const scrollParent = getScrollParent(element);
const isBody = getNodeName(scrollParent) === 'body';
const target = isBody ? getWindow(scrollParent) : scrollParent;
const win = getWindow(scrollParent);
const target = isBody ? [win].concat(win.visualViewport || []) : scrollParent;
const updatedList = list.concat(target);
return isBody

View File

@@ -10,14 +10,10 @@ export var clippingParents = 'clippingParents';
export var viewport = 'viewport';
export var popper = 'popper';
export var reference = 'reference';
export var variationPlacements =
/*#__PURE__*/
basePlacements.reduce(function (acc, placement) {
export var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
return acc.concat([placement + "-" + start, placement + "-" + end]);
}, []);
export var placements =
/*#__PURE__*/
[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
export var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
}, []); // modifiers that need to read the DOM

View File

@@ -1,9 +1,9 @@
import { Options, Modifier, Instance, VirtualElement } from "./types";
import { OptionsGeneric, Modifier, Instance, VirtualElement } from "./types";
export * from "./types";
export * from "./enums";
declare type PopperGeneratorArgs = {
defaultModifiers?: Array<Modifier<any>>;
defaultOptions?: Partial<Options>;
defaultModifiers?: Array<Modifier<any, any>>;
defaultOptions?: Partial<OptionsGeneric<any>>;
};
export declare function popperGenerator(generatorOptions?: PopperGeneratorArgs): (reference: Element | VirtualElement, popper: HTMLElement, options?: Partial<Options>) => Instance;
export declare const createPopper: (reference: Element | VirtualElement, popper: HTMLElement, options?: Partial<Options>) => Instance;
export declare function popperGenerator(generatorOptions?: PopperGeneratorArgs): <TModifier extends Partial<Modifier<any, any>>>(reference: Element | VirtualElement, popper: HTMLElement, options?: Partial<OptionsGeneric<TModifier>>) => Instance;
export declare const createPopper: <TModifier extends Partial<Modifier<any, any>>>(reference: Element | VirtualElement, popper: HTMLElement, options?: Partial<OptionsGeneric<TModifier>>) => Instance;

View File

@@ -253,6 +253,4 @@ export function popperGenerator(generatorOptions) {
return instance;
};
}
export var createPopper =
/*#__PURE__*/
popperGenerator();
export var createPopper = /*#__PURE__*/popperGenerator();

View File

@@ -1,7 +1,7 @@
// @flow
import type {
State,
Options,
OptionsGeneric,
Modifier,
Instance,
VirtualElement,
@@ -28,15 +28,15 @@ const INVALID_ELEMENT_ERROR =
const INFINITE_LOOP_ERROR =
'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
const DEFAULT_OPTIONS: Options = {
const DEFAULT_OPTIONS: OptionsGeneric<any> = {
placement: 'bottom',
modifiers: [],
strategy: 'absolute',
};
type PopperGeneratorArgs = {
defaultModifiers?: Array<Modifier<any>>,
defaultOptions?: $Shape<Options>,
defaultModifiers?: Array<Modifier<any, any>>,
defaultOptions?: $Shape<OptionsGeneric<any>>,
};
function areValidElements(...args: Array<any>): boolean {
@@ -51,10 +51,10 @@ export function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {
defaultOptions = DEFAULT_OPTIONS,
} = generatorOptions;
return function createPopper(
return function createPopper<TModifier: $Shape<Modifier<any, any>>>(
reference: Element | VirtualElement,
popper: HTMLElement,
options: $Shape<Options> = defaultOptions
options: $Shape<OptionsGeneric<TModifier>> = defaultOptions
): Instance {
let state: $Shape<State> = {
placement: 'bottom',
@@ -78,6 +78,7 @@ export function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {
cleanupModifierEffects();
state.options = {
// $FlowFixMe
...defaultOptions,
...state.options,
...options,
@@ -103,7 +104,7 @@ export function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {
// Validate the provided modifiers so that the consumer will get warned
// if one of the modifiers is invalid for any reason
if (__DEV__) {
if (false) {
const modifiers = uniqueBy(
[...orderedModifiers, ...state.options.modifiers],
({ name }) => name
@@ -172,7 +173,7 @@ export function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {
// Don't proceed if `reference` or `popper` are not valid elements
// anymore
if (!areValidElements(reference, popper)) {
if (__DEV__) {
if (false) {
console.error(INVALID_ELEMENT_ERROR);
}
return;
@@ -210,7 +211,7 @@ export function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {
let __debug_loops__ = 0;
for (let index = 0; index < state.orderedModifiers.length; index++) {
if (__DEV__) {
if (false) {
__debug_loops__ += 1;
if (__debug_loops__ > 100) {
console.error(INFINITE_LOOP_ERROR);
@@ -249,7 +250,7 @@ export function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {
};
if (!areValidElements(reference, popper)) {
if (__DEV__) {
if (false) {
console.error(INVALID_ELEMENT_ERROR);
}
return instance;

View File

@@ -1,3 +1,4 @@
import { Modifier } from "../types";
declare const _default: Modifier<{}>;
export declare type ApplyStylesModifier = Modifier<"applyStyles", {}>;
declare const _default: Modifier<"applyStyles", {}>;
export default _default;

View File

@@ -33,7 +33,7 @@ function effect(_ref2) {
var state = _ref2.state;
var initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0'
@@ -73,7 +73,8 @@ function effect(_ref2) {
});
});
};
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'applyStyles',

View File

@@ -37,7 +37,7 @@ function applyStyles({ state }: ModifierArguments<{||}>) {
function effect({ state }: ModifierArguments<{||}>) {
const initialStyles = {
popper: {
position: 'absolute',
position: state.options.strategy,
left: '0',
top: '0',
margin: '0',
@@ -88,6 +88,8 @@ function effect({ state }: ModifierArguments<{||}>) {
};
}
// eslint-disable-next-line import/no-unused-modules
export type ApplyStylesModifier = Modifier<'applyStyles', {||}>;
export default ({
name: 'applyStyles',
enabled: true,
@@ -95,4 +97,4 @@ export default ({
fn: applyStyles,
effect,
requires: ['computeStyles'],
}: Modifier<{||}>);
}: ApplyStylesModifier);

View File

@@ -1,7 +1,8 @@
import { Modifier, Padding } from "../types";
declare type Options = {
element: HTMLElement | string;
element: HTMLElement | string | null;
padding: Padding;
};
declare const _default: Modifier<Options>;
export declare type ArrowModifier = Modifier<"arrow", Options>;
declare const _default: Modifier<"arrow", Options>;
export default _default;

View File

@@ -20,7 +20,7 @@ function arrow(_ref) {
var isVertical = [left, right].indexOf(basePlacement) >= 0;
var len = isVertical ? 'height' : 'width';
if (!arrowElement) {
if (!arrowElement || !popperOffsets) {
return;
}
@@ -51,7 +51,12 @@ function effect(_ref2) {
var _options$element = options.element,
arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,
_options$padding = options.padding,
padding = _options$padding === void 0 ? 0 : _options$padding; // CSS selector
padding = _options$padding === void 0 ? 0 : _options$padding;
if (arrowElement == null) {
return;
} // CSS selector
if (typeof arrowElement === 'string') {
arrowElement = state.elements.popper.querySelector(arrowElement);
@@ -73,7 +78,8 @@ function effect(_ref2) {
state.modifiersData[name + "#persistent"] = {
padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))
};
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'arrow',

View File

@@ -11,7 +11,7 @@ import expandToHashMap from '../utils/expandToHashMap';
import { left, right, basePlacements, top, bottom } from '../enums';
type Options = {
element: HTMLElement | string,
element: HTMLElement | string | null,
padding: Padding,
};
@@ -23,7 +23,7 @@ function arrow({ state, name }: ModifierArguments<Options>) {
const isVertical = [left, right].indexOf(basePlacement) >= 0;
const len = isVertical ? 'height' : 'width';
if (!arrowElement) {
if (!arrowElement || !popperOffsets) {
return;
}
@@ -67,6 +67,10 @@ function arrow({ state, name }: ModifierArguments<Options>) {
function effect({ state, options, name }: ModifierArguments<Options>) {
let { element: arrowElement = '[data-popper-arrow]', padding = 0 } = options;
if (arrowElement == null) {
return;
}
// CSS selector
if (typeof arrowElement === 'string') {
arrowElement = state.elements.popper.querySelector(arrowElement);
@@ -77,7 +81,7 @@ function effect({ state, options, name }: ModifierArguments<Options>) {
}
if (!contains(state.elements.popper, arrowElement)) {
if (__DEV__) {
if (false) {
console.error(
[
'Popper: "arrow" modifier\'s `element` must be a child of the popper',
@@ -99,6 +103,8 @@ function effect({ state, options, name }: ModifierArguments<Options>) {
};
}
// eslint-disable-next-line import/no-unused-modules
export type ArrowModifier = Modifier<'arrow', Options>;
export default ({
name: 'arrow',
enabled: true,
@@ -107,4 +113,4 @@ export default ({
effect,
requires: ['popperOffsets'],
requiresIfExists: ['preventOverflow'],
}: Modifier<Options>);
}: ArrowModifier);

View File

@@ -1,4 +1,4 @@
import { PositioningStrategy, Offsets, Modifier, Rect } from "../types";
import { PositioningStrategy, Modifier, Rect } from "../types";
import { BasePlacement } from "../enums";
declare type Options = {
gpuAcceleration: boolean;
@@ -8,7 +8,11 @@ export declare function mapToStyles({ popper, popperRect, placement, offsets, po
popper: HTMLElement;
popperRect: Rect;
placement: BasePlacement;
offsets: Offsets;
offsets: Partial<{
x: number;
y: number;
centerOffset: number;
}>;
position: PositioningStrategy;
gpuAcceleration: boolean;
adaptive: boolean;
@@ -20,5 +24,6 @@ export declare function mapToStyles({ popper, popperRect, placement, offsets, po
left: string;
position: PositioningStrategy;
};
declare const _default: Modifier<Options>;
export declare type ComputeStylesModifier = Modifier<"computeStyles", Options>;
declare const _default: Modifier<"computeStyles", Options>;
export default _default;

View File

@@ -90,8 +90,7 @@ function computeStyles(_ref3) {
adaptive = _options$adaptive === void 0 ? true : _options$adaptive;
if (process.env.NODE_ENV !== "production") {
var _getComputedStyle = getComputedStyle(state.elements.popper),
transitionProperty = _getComputedStyle.transitionProperty;
var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
return transitionProperty.indexOf(property) >= 0;
@@ -105,13 +104,15 @@ function computeStyles(_ref3) {
popper: state.elements.popper,
popperRect: state.rects.popper,
gpuAcceleration: gpuAcceleration
}; // popper offsets are always available
};
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
}))); // arrow offsets may not be available
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive: adaptive
})));
}
if (state.modifiersData.arrow != null) {
state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {
@@ -124,7 +125,8 @@ function computeStyles(_ref3) {
state.attributes.popper = Object.assign({}, state.attributes.popper, {
'data-popper-placement': state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'computeStyles',

View File

@@ -51,7 +51,7 @@ export function mapToStyles({
popper: HTMLElement,
popperRect: Rect,
placement: BasePlacement,
offsets: Offsets,
offsets: $Shape<{ x: number, y: number, centerOffset: number }>,
position: PositioningStrategy,
gpuAcceleration: boolean,
adaptive: boolean,
@@ -119,8 +119,9 @@ export function mapToStyles({
function computeStyles({ state, options }: ModifierArguments<Options>) {
const { gpuAcceleration = true, adaptive = true } = options;
if (__DEV__) {
const { transitionProperty } = getComputedStyle(state.elements.popper);
if (false) {
const transitionProperty =
getComputedStyle(state.elements.popper).transitionProperty || '';
if (
adaptive &&
@@ -152,18 +153,18 @@ function computeStyles({ state, options }: ModifierArguments<Options>) {
gpuAcceleration,
};
// popper offsets are always available
state.styles.popper = {
...state.styles.popper,
...mapToStyles({
...commonStyles,
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive,
}),
};
if (state.modifiersData.popperOffsets != null) {
state.styles.popper = {
...state.styles.popper,
...mapToStyles({
...commonStyles,
offsets: state.modifiersData.popperOffsets,
position: state.options.strategy,
adaptive,
}),
};
}
// arrow offsets may not be available
if (state.modifiersData.arrow != null) {
state.styles.arrow = {
...state.styles.arrow,
@@ -182,10 +183,12 @@ function computeStyles({ state, options }: ModifierArguments<Options>) {
};
}
// eslint-disable-next-line import/no-unused-modules
export type ComputeStylesModifier = Modifier<'computeStyles', Options>;
export default ({
name: 'computeStyles',
enabled: true,
phase: 'beforeWrite',
fn: computeStyles,
data: {},
}: Modifier<Options>);
}: ComputeStylesModifier);

View File

@@ -3,5 +3,6 @@ declare type Options = {
scroll: boolean;
resize: boolean;
};
declare const _default: Modifier<Options>;
export declare type EventListenersModifier = Modifier<"eventListeners", Options>;
declare const _default: Modifier<"eventListeners", Options>;
export default _default;

View File

@@ -35,7 +35,8 @@ function effect(_ref) {
window.removeEventListener('resize', instance.update, passive);
}
};
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'eventListeners',

View File

@@ -41,6 +41,8 @@ function effect({ state, instance, options }: ModifierArguments<Options>) {
};
}
// eslint-disable-next-line import/no-unused-modules
export type EventListenersModifier = Modifier<'eventListeners', Options>;
export default ({
name: 'eventListeners',
enabled: true,
@@ -48,4 +50,4 @@ export default ({
fn: () => {},
effect,
data: {},
}: Modifier<Options>);
}: EventListenersModifier);

View File

@@ -7,6 +7,8 @@ declare type Options = {
rootBoundary: RootBoundary;
altBoundary: boolean;
flipVariations: boolean;
allowedAutoPlacements: Array<Placement>;
};
declare const _default: Modifier<Options>;
export declare type FlipModifier = Modifier<"flip", Options>;
declare const _default: Modifier<"flip", Options>;
export default _default;

View File

@@ -30,7 +30,8 @@ function flip(_ref) {
rootBoundary = options.rootBoundary,
altBoundary = options.altBoundary,
_options$flipVariatio = options.flipVariations,
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio;
flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
allowedAutoPlacements = options.allowedAutoPlacements;
var preferredPlacement = state.options.placement;
var basePlacement = getBasePlacement(preferredPlacement);
var isBasePlacement = basePlacement === preferredPlacement;
@@ -41,7 +42,8 @@ function flip(_ref) {
boundary: boundary,
rootBoundary: rootBoundary,
padding: padding,
flipVariations: flipVariations
flipVariations: flipVariations,
allowedAutoPlacements: allowedAutoPlacements
}) : placement);
}, []);
var referenceRect = state.rects.reference;
@@ -118,7 +120,8 @@ function flip(_ref) {
state.placement = firstFittingPlacement;
state.reset = true;
}
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'flip',

View File

@@ -16,6 +16,7 @@ type Options = {
rootBoundary: RootBoundary,
altBoundary: boolean,
flipVariations: boolean,
allowedAutoPlacements: Array<Placement>,
};
function getExpandedFallbackPlacements(placement: Placement): Array<Placement> {
@@ -44,6 +45,7 @@ function flip({ state, options, name }: ModifierArguments<Options>) {
rootBoundary,
altBoundary,
flipVariations = true,
allowedAutoPlacements,
} = options;
const preferredPlacement = state.options.placement;
@@ -66,6 +68,7 @@ function flip({ state, options, name }: ModifierArguments<Options>) {
rootBoundary,
padding,
flipVariations,
allowedAutoPlacements,
})
: placement
);
@@ -150,6 +153,8 @@ function flip({ state, options, name }: ModifierArguments<Options>) {
}
}
// eslint-disable-next-line import/no-unused-modules
export type FlipModifier = Modifier<'flip', Options>;
export default ({
name: 'flip',
enabled: true,
@@ -157,4 +162,4 @@ export default ({
fn: flip,
requiresIfExists: ['offset'],
data: { _skip: false },
}: Modifier<Options>);
}: FlipModifier);

View File

@@ -1,3 +1,4 @@
import { Modifier, Options } from "../types";
declare const _default: Modifier<Options>;
import { Modifier } from "../types";
export declare type HideModifier = Modifier<"hide", {}>;
declare const _default: Modifier<"hide", {}>;
export default _default;

View File

@@ -49,7 +49,8 @@ function hide(_ref) {
'data-popper-reference-hidden': isReferenceHidden,
'data-popper-escaped': hasPopperEscaped
});
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'hide',

View File

@@ -3,7 +3,6 @@ import type {
ModifierArguments,
Modifier,
Rect,
Options,
SideObject,
Offsets,
} from '../types';
@@ -27,7 +26,7 @@ function isAnySideFullyClipped(overflow: SideObject): boolean {
return [top, right, bottom, left].some(side => overflow[side] >= 0);
}
function hide({ state, name }: ModifierArguments<Options>) {
function hide({ state, name }: ModifierArguments<{||}>) {
const referenceRect = state.rects.reference;
const popperRect = state.rects.popper;
const preventedOffsets = state.modifiersData.preventOverflow;
@@ -66,10 +65,12 @@ function hide({ state, name }: ModifierArguments<Options>) {
};
}
// eslint-disable-next-line import/no-unused-modules
export type HideModifier = Modifier<'hide', {||}>;
export default ({
name: 'hide',
enabled: true,
phase: 'main',
requiresIfExists: ['preventOverflow'],
fn: hide,
}: Modifier<Options>);
}: HideModifier);

View File

@@ -13,5 +13,6 @@ export declare function distanceAndSkiddingToXY(placement: Placement, rects: {
popper: Rect;
reference: Rect;
}, offset: Offset): Offsets;
declare const _default: Modifier<Options>;
export declare type OffsetModifier = Modifier<"offset", Options>;
declare const _default: Modifier<"offset", Options>;
export default _default;

View File

@@ -34,10 +34,15 @@ function offset(_ref2) {
var _data$state$placement = data[state.placement],
x = _data$state$placement.x,
y = _data$state$placement.y;
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
if (state.modifiersData.popperOffsets != null) {
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'offset',

View File

@@ -50,16 +50,20 @@ function offset({ state, options, name }: ModifierArguments<Options>) {
const { x, y } = data[state.placement];
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
if (state.modifiersData.popperOffsets != null) {
state.modifiersData.popperOffsets.x += x;
state.modifiersData.popperOffsets.y += y;
}
state.modifiersData[name] = data;
}
// eslint-disable-next-line import/no-unused-modules
export type OffsetModifier = Modifier<'offset', Options>;
export default ({
name: 'offset',
enabled: true,
phase: 'main',
requires: ['popperOffsets'],
fn: offset,
}: Modifier<Options>);
}: OffsetModifier);

View File

@@ -1,3 +1,4 @@
import { Modifier } from "../types";
declare const _default: Modifier<{}>;
export declare type PopperOffsetsModifier = Modifier<"popperOffsets", {}>;
declare const _default: Modifier<"popperOffsets", {}>;
export default _default;

View File

@@ -13,7 +13,8 @@ function popperOffsets(_ref) {
strategy: 'absolute',
placement: state.placement
});
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'popperOffsets',

View File

@@ -15,10 +15,12 @@ function popperOffsets({ state, name }: ModifierArguments<{||}>) {
});
}
// eslint-disable-next-line import/no-unused-modules
export type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;
export default ({
name: 'popperOffsets',
enabled: true,
phase: 'read',
fn: popperOffsets,
data: {},
}: Modifier<{||}>);
}: PopperOffsetsModifier);

View File

@@ -19,5 +19,6 @@ declare type Options = {
tetherOffset: TetherOffset;
padding: Padding;
};
declare const _default: Modifier<Options>;
export declare type PreventOverflowModifier = Modifier<"preventOverflow", Options>;
declare const _default: Modifier<"preventOverflow", Options>;
export default _default;

View File

@@ -47,6 +47,10 @@ function preventOverflow(_ref) {
y: 0
};
if (!popperOffsets) {
return;
}
if (checkMainAxis) {
var mainSide = mainAxis === 'y' ? top : left;
var altSide = mainAxis === 'y' ? bottom : right;
@@ -98,12 +102,13 @@ function preventOverflow(_ref) {
var _preventedOffset = within(_min, _offset, _max);
state.modifiersData.popperOffsets[altAxis] = _preventedOffset;
popperOffsets[altAxis] = _preventedOffset;
data[altAxis] = _preventedOffset - _offset;
}
state.modifiersData[name] = data;
}
} // eslint-disable-next-line import/no-unused-modules
export default {
name: 'preventOverflow',

View File

@@ -78,6 +78,10 @@ function preventOverflow({ state, options, name }: ModifierArguments<Options>) {
const data = { x: 0, y: 0 };
if (!popperOffsets) {
return;
}
if (checkMainAxis) {
const mainSide = mainAxis === 'y' ? top : left;
const altSide = mainAxis === 'y' ? bottom : right;
@@ -163,17 +167,19 @@ function preventOverflow({ state, options, name }: ModifierArguments<Options>) {
const preventedOffset = within(min, offset, max);
state.modifiersData.popperOffsets[altAxis] = preventedOffset;
popperOffsets[altAxis] = preventedOffset;
data[altAxis] = preventedOffset - offset;
}
state.modifiersData[name] = data;
}
// eslint-disable-next-line import/no-unused-modules
export type PreventOverflowModifier = Modifier<'preventOverflow', Options>;
export default ({
name: 'preventOverflow',
enabled: true,
phase: 'main',
fn: preventOverflow,
requiresIfExists: ['offset'],
}: Modifier<Options>);
}: PreventOverflowModifier);

View File

@@ -1,6 +1,12 @@
import { popperGenerator } from "./index";
import detectOverflow from "./utils/detectOverflow";
export * from "./types";
declare const defaultModifiers: import("./types").Modifier<{}>[];
declare const createPopper: (reference: Element | import("./types").VirtualElement, popper: HTMLElement, options?: Partial<import("./types").Options>) => import("./types").Instance;
declare const defaultModifiers: (import("./types").Modifier<"popperOffsets", {}> | import("./types").Modifier<"eventListeners", {
scroll: boolean;
resize: boolean;
}> | import("./types").Modifier<"computeStyles", {
gpuAcceleration: boolean;
adaptive: boolean;
}> | import("./types").Modifier<"applyStyles", {}>)[];
declare const createPopper: <TModifier extends Partial<import("./types").Modifier<any, any>>>(reference: Element | import("./types").VirtualElement, popper: HTMLElement, options?: Partial<import("./types").OptionsGeneric<TModifier>>) => import("./types").Instance;
export { createPopper, popperGenerator, defaultModifiers, detectOverflow };

View File

@@ -5,9 +5,7 @@ import computeStyles from "./modifiers/computeStyles.js";
import applyStyles from "./modifiers/applyStyles.js";
import detectOverflow from "./utils/detectOverflow.js";
var defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

View File

@@ -1,6 +1,42 @@
import { popperGenerator } from "./index";
import detectOverflow from "./utils/detectOverflow";
export * from "./types";
declare const defaultModifiers: import("./types").Modifier<{}>[];
declare const createPopper: (reference: Element | import("./types").VirtualElement, popper: HTMLElement, options?: Partial<import("./types").Options>) => import("./types").Instance;
declare const defaultModifiers: (import("./types").Modifier<"popperOffsets", {}> | import("./types").Modifier<"flip", {
fallbackPlacements: import("./enums").Placement[];
padding: import("./types").Padding;
boundary: import("./enums").Boundary;
rootBoundary: import("./enums").RootBoundary;
altBoundary: boolean;
flipVariations: boolean;
allowedAutoPlacements: import("./enums").Placement[];
}> | import("./types").Modifier<"hide", {}> | import("./types").Modifier<"offset", {
offset: ((arg0: {
popper: import("./types").Rect;
reference: import("./types").Rect;
placement: import("./enums").Placement;
}) => [number, number]) | [number, number];
}> | import("./types").Modifier<"eventListeners", {
scroll: boolean;
resize: boolean;
}> | import("./types").Modifier<"computeStyles", {
gpuAcceleration: boolean;
adaptive: boolean;
}> | import("./types").Modifier<"arrow", {
element: string | HTMLElement;
padding: import("./types").Padding;
}> | import("./types").Modifier<"preventOverflow", {
mainAxis: boolean;
altAxis: boolean;
boundary: import("./enums").Boundary;
rootBoundary: import("./enums").RootBoundary;
altBoundary: boolean;
tether: boolean;
tetherOffset: (arg0: {
popper: import("./types").Rect;
reference: import("./types").Rect;
placement: import("./enums").Placement;
}) => number;
padding: import("./types").Padding;
}> | import("./types").Modifier<"applyStyles", {}>)[];
declare const createPopper: <TModifier extends Partial<import("./types").Modifier<any, any>>>(reference: Element | import("./types").VirtualElement, popper: HTMLElement, options?: Partial<import("./types").OptionsGeneric<TModifier>>) => import("./types").Instance;
export { createPopper, popperGenerator, defaultModifiers, detectOverflow };

View File

@@ -10,9 +10,7 @@ import arrow from "./modifiers/arrow.js";
import hide from "./modifiers/hide.js";
import detectOverflow from "./utils/detectOverflow.js";
var defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];
var createPopper =
/*#__PURE__*/
popperGenerator({
var createPopper = /*#__PURE__*/popperGenerator({
defaultModifiers: defaultModifiers
}); // eslint-disable-next-line import/no-unused-modules

View File

@@ -1,7 +1,22 @@
import { Placement, ModifierPhases } from "./enums";
import { PopperOffsetsModifier } from "./modifiers/popperOffsets";
import { FlipModifier } from "./modifiers/flip";
import { HideModifier } from "./modifiers/hide";
import { OffsetModifier } from "./modifiers/offset";
import { EventListenersModifier } from "./modifiers/eventListeners";
import { ComputeStylesModifier } from "./modifiers/computeStyles";
import { ArrowModifier } from "./modifiers/arrow";
import { PreventOverflowModifier } from "./modifiers/preventOverflow";
import { ApplyStylesModifier } from "./modifiers/applyStyles";
export declare type Obj = {
[key: string]: any;
};
export declare type VisualViewport = EventTarget & {
width: number;
height: number;
offsetLeft: number;
offsetTop: number;
};
export declare type Window = {
innerHeight: number;
offsetHeight: number;
@@ -17,6 +32,7 @@ export declare type Window = {
Node: Node;
toString(): "[object Window]";
devicePixelRatio: number;
visualViewport?: VisualViewport;
};
export declare type Rect = {
width: number;
@@ -37,20 +53,23 @@ export declare type StateOffsets = {
popper: Offsets;
arrow?: Offsets;
};
declare type OffsetData = {
[key in Placement]?: Offsets;
};
export declare type State = {
elements: {
reference: Element | VirtualElement;
popper: HTMLElement;
arrow?: HTMLElement;
};
options: Options;
options: OptionsGeneric<any>;
placement: Placement;
strategy: PositioningStrategy;
orderedModifiers: Array<Modifier<any>>;
orderedModifiers: Array<Modifier<any, any>>;
rects: StateRects;
scrollParents: {
reference: Array<Element | Window>;
popper: Array<Element | Window>;
reference: Array<Element | Window | VisualViewport>;
popper: Array<Element | Window | VisualViewport>;
};
styles: {
[key: string]: Partial<CSSStyleDeclaration>;
@@ -61,6 +80,20 @@ export declare type State = {
};
};
modifiersData: {
arrow?: {
x?: number;
y?: number;
centerOffset: number;
};
hide?: {
isReferenceHidden: boolean;
hasPopperEscaped: boolean;
referenceClippingOffsets: SideObject;
popperEscapeOffsets: SideObject;
};
offset?: OffsetData;
preventOverflow?: Offsets;
popperOffsets?: Offsets;
[key: string]: any;
};
reset: boolean;
@@ -70,7 +103,7 @@ export declare type Instance = {
destroy: () => void;
forceUpdate: () => void;
update: () => Promise<Partial<State>>;
setOptions: (options: Partial<Options>) => Promise<Partial<State>>;
setOptions: (options: Partial<OptionsGeneric<any>>) => Promise<Partial<State>>;
};
export declare type ModifierArguments<Options extends Obj> = {
state: State;
@@ -78,24 +111,31 @@ export declare type ModifierArguments<Options extends Obj> = {
options: Partial<Options>;
name: string;
};
export declare type Modifier<Options> = {
name: string;
export declare type Modifier<Name, Options> = {
name: Name;
enabled: boolean;
phase: ModifierPhases;
requires?: Array<string>;
requiresIfExists?: Array<string>;
fn: (arg0: ModifierArguments<Options>) => State | void;
effect?: (arg0: ModifierArguments<Options>) => () => void | void;
options?: Obj;
options?: Partial<Options>;
data?: Obj;
};
export declare type StrictModifiers = Partial<OffsetModifier> | Partial<ApplyStylesModifier> | Partial<ArrowModifier> | Partial<HideModifier> | Partial<ComputeStylesModifier> | Partial<EventListenersModifier> | Partial<FlipModifier> | Partial<PreventOverflowModifier> | Partial<PopperOffsetsModifier>;
export declare type EventListeners = {
scroll: boolean;
resize: boolean;
};
export declare type Options = {
placement: Placement;
modifiers: Array<Partial<Modifier<any>>>;
modifiers: Array<Partial<Modifier<any, any>>>;
strategy: PositioningStrategy;
onFirstUpdate?: (arg0: Partial<State>) => void;
};
export declare type OptionsGeneric<TModifier> = {
placement: Placement;
modifiers: Array<TModifier>;
strategy: PositioningStrategy;
onFirstUpdate?: (arg0: Partial<State>) => void;
};
@@ -121,3 +161,4 @@ export declare type VirtualElement = {
getBoundingClientRect: () => ClientRect | DOMRect;
contextElement?: Element;
};
export {};

View File

@@ -2,8 +2,25 @@
/* eslint-disable import/no-unused-modules */
import type { Placement, ModifierPhases } from './enums';
import type { PopperOffsetsModifier } from './modifiers/popperOffsets';
import type { FlipModifier } from './modifiers/flip';
import type { HideModifier } from './modifiers/hide';
import type { OffsetModifier } from './modifiers/offset';
import type { EventListenersModifier } from './modifiers/eventListeners';
import type { ComputeStylesModifier } from './modifiers/computeStyles';
import type { ArrowModifier } from './modifiers/arrow';
import type { PreventOverflowModifier } from './modifiers/preventOverflow';
import type { ApplyStylesModifier } from './modifiers/applyStyles';
export type Obj = { [key: string]: any };
export type VisualViewport = EventTarget & {
width: number,
height: number,
offsetLeft: number,
offsetTop: number,
};
// This is a limited subset of the Window object, Flow doesn't provide one
// so we define our own, with just the properties we need
export type Window = {|
@@ -25,6 +42,7 @@ export type Window = {|
Node: Node,
toString(): '[object Window]',
devicePixelRatio: number,
visualViewport?: VisualViewport,
|};
export type Rect = {|
@@ -51,20 +69,23 @@ export type StateOffsets = {|
arrow?: Offsets,
|};
/*:: type OffsetData = { [Placement]: Offsets }; */
/*;; type OffsetData = { [key in Placement]?: Offsets } */
export type State = {|
elements: {|
reference: Element | VirtualElement,
popper: HTMLElement,
arrow?: HTMLElement,
|},
options: Options,
options: OptionsGeneric<any>,
placement: Placement,
strategy: PositioningStrategy,
orderedModifiers: Array<Modifier<any>>,
orderedModifiers: Array<Modifier<any, any>>,
rects: StateRects,
scrollParents: {|
reference: Array<Element | Window>,
popper: Array<Element | Window>,
reference: Array<Element | Window | VisualViewport>,
popper: Array<Element | Window | VisualViewport>,
|},
styles: {|
[key: string]: $Shape<CSSStyleDeclaration>,
@@ -72,7 +93,23 @@ export type State = {|
attributes: {|
[key: string]: { [key: string]: string | boolean },
|},
modifiersData: { [key: string]: any },
modifiersData: {
arrow?: {
x?: number,
y?: number,
centerOffset: number,
},
hide?: {
isReferenceHidden: boolean,
hasPopperEscaped: boolean,
referenceClippingOffsets: SideObject,
popperEscapeOffsets: SideObject,
},
offset?: OffsetData,
preventOverflow?: Offsets,
popperOffsets?: Offsets,
[key: string]: any,
},
reset: boolean,
|};
@@ -81,7 +118,7 @@ export type Instance = {|
destroy: () => void,
forceUpdate: () => void,
update: () => Promise<$Shape<State>>,
setOptions: (options: $Shape<Options>) => Promise<$Shape<State>>,
setOptions: (options: $Shape<OptionsGeneric<any>>) => Promise<$Shape<State>>,
|};
export type ModifierArguments<Options: Obj> = {
@@ -90,23 +127,41 @@ export type ModifierArguments<Options: Obj> = {
options: $Shape<Options>,
name: string,
};
export type Modifier<Options> = {|
name: string,
export type Modifier<Name, Options> = {|
name: Name,
enabled: boolean,
phase: ModifierPhases,
requires?: Array<string>,
requiresIfExists?: Array<string>,
fn: (ModifierArguments<Options>) => State | void,
effect?: (ModifierArguments<Options>) => (() => void) | void,
options?: Obj,
options?: $Shape<Options>,
data?: Obj,
|};
export type StrictModifiers =
| $Shape<OffsetModifier>
| $Shape<ApplyStylesModifier>
| $Shape<ArrowModifier>
| $Shape<HideModifier>
| $Shape<ComputeStylesModifier>
| $Shape<EventListenersModifier>
| $Shape<FlipModifier>
| $Shape<PreventOverflowModifier>
| $Shape<PopperOffsetsModifier>;
export type EventListeners = {| scroll: boolean, resize: boolean |};
export type Options = {|
placement: Placement,
modifiers: Array<$Shape<Modifier<any>>>,
modifiers: Array<$Shape<Modifier<any, any>>>,
strategy: PositioningStrategy,
onFirstUpdate?: ($Shape<State>) => void,
|};
export type OptionsGeneric<TModifier> = {|
placement: Placement,
modifiers: Array<TModifier>,
strategy: PositioningStrategy,
onFirstUpdate?: ($Shape<State>) => void,
|};

View File

@@ -1,11 +1,12 @@
import { State, Padding } from "../types";
import { Placement, Boundary, RootBoundary, ComputedPlacement } from "../enums";
import { Placement, ComputedPlacement, Boundary, RootBoundary } from "../enums";
declare type Options = {
placement: Placement;
padding: Padding;
boundary: Boundary;
rootBoundary: RootBoundary;
flipVariations: boolean;
allowedAutoPlacements?: Array<Placement>;
};
export default function computeAutoPlacement(state: Partial<State>, options?: Options): Array<ComputedPlacement>;
export {};

View File

@@ -1,7 +1,11 @@
import getVariation from "./getVariation.js";
import { variationPlacements, basePlacements } from "../enums.js";
import { variationPlacements, basePlacements, placements as allPlacements } from "../enums.js";
import detectOverflow from "./detectOverflow.js";
import getBasePlacement from "./getBasePlacement.js";
/*:: type OverflowsMap = { [ComputedPlacement]: number }; */
/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */
export default function computeAutoPlacement(state, options) {
if (options === void 0) {
options = {};
@@ -12,11 +16,15 @@ export default function computeAutoPlacement(state, options) {
boundary = _options.boundary,
rootBoundary = _options.rootBoundary,
padding = _options.padding,
flipVariations = _options.flipVariations;
flipVariations = _options.flipVariations,
_options$allowedAutoP = _options.allowedAutoPlacements,
allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;
var variation = getVariation(placement);
var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
var placements = (variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
return getVariation(placement) === variation;
}) : basePlacements; // $FlowFixMe: Flow seems to have problems with two array unions...
}) : basePlacements).filter(function (placement) {
return allowedAutoPlacements.indexOf(placement) >= 0;
}); // $FlowFixMe: Flow seems to have problems with two array unions...
var overflows = placements.reduce(function (acc, placement) {
acc[placement] = detectOverflow(state, {

View File

@@ -2,14 +2,16 @@
import type { State, Padding } from '../types';
import type {
Placement,
BasePlacement,
VariationPlacement,
ComputedPlacement,
Boundary,
RootBoundary,
ComputedPlacement,
} from '../enums';
import getVariation from './getVariation';
import { variationPlacements, basePlacements } from '../enums';
import {
variationPlacements,
basePlacements,
placements as allPlacements,
} from '../enums';
import detectOverflow from './detectOverflow';
import getBasePlacement from './getBasePlacement';
@@ -19,11 +21,11 @@ type Options = {
boundary: Boundary,
rootBoundary: RootBoundary,
flipVariations: boolean,
allowedAutoPlacements?: Array<Placement>,
};
type OverflowsMap = {
[BasePlacement | VariationPlacement]: number,
};
/*:: type OverflowsMap = { [ComputedPlacement]: number }; */
/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */
export default function computeAutoPlacement(
state: $Shape<State>,
@@ -35,17 +37,19 @@ export default function computeAutoPlacement(
rootBoundary,
padding,
flipVariations,
allowedAutoPlacements = allPlacements,
} = options;
const variation = getVariation(placement);
const placements = variation
const placements = (variation
? flipVariations
? variationPlacements
: variationPlacements.filter(
placement => getVariation(placement) === variation
)
: basePlacements;
: basePlacements
).filter(placement => allowedAutoPlacements.indexOf(placement) >= 0);
// $FlowFixMe: Flow seems to have problems with two array unions...
const overflows: OverflowsMap = placements.reduce((acc, placement) => {

View File

@@ -1,2 +1,2 @@
import { Modifier } from "../types";
export default function mergeByName(modifiers: Array<Partial<Modifier<any>>>): Array<Partial<Modifier<any>>>;
export default function mergeByName(modifiers: Array<Partial<Modifier<any, any>>>): Array<Partial<Modifier<any, any>>>;

View File

@@ -2,8 +2,8 @@
import type { Modifier } from '../types';
export default function mergeByName(
modifiers: Array<$Shape<Modifier<any>>>
): Array<$Shape<Modifier<any>>> {
modifiers: Array<$Shape<Modifier<any, any>>>
): Array<$Shape<Modifier<any, any>>> {
const merged = modifiers.reduce((merged, current) => {
const existing = merged[current.name];
merged[current.name] = existing

View File

@@ -1,2 +1,2 @@
import { Modifier } from "../types";
export default function orderModifiers(modifiers: Array<Modifier<any>>): Array<Modifier<any>>;
export default function orderModifiers(modifiers: Array<Modifier<any, any>>): Array<Modifier<any, any>>;

View File

@@ -13,7 +13,7 @@ function order(modifiers) {
});
// On visiting object, check for its dependencies and visit them recursively
function sort(modifier: Modifier<any>) {
function sort(modifier: Modifier<any, any>) {
visited.add(modifier.name);
const requires = [
@@ -45,8 +45,8 @@ function order(modifiers) {
}
export default function orderModifiers(
modifiers: Array<Modifier<any>>
): Array<Modifier<any>> {
modifiers: Array<Modifier<any, any>>
): Array<Modifier<any, any>> {
// order based on dependencies
const orderedModifiers = order(modifiers);

View File

@@ -1,33 +1,33 @@
{
"_args": [
[
"@popperjs/core@2.2.1",
"/home/henry/Documents/git/Speedtest-checker"
"@popperjs/core@2.3.3",
"/home/henry/Documents/git/Speedtest-tracker-docker/conf/site"
]
],
"_from": "@popperjs/core@2.2.1",
"_id": "@popperjs/core@2.2.1",
"_from": "@popperjs/core@2.3.3",
"_id": "@popperjs/core@2.3.3",
"_inBundle": false,
"_integrity": "sha512-BChdj3idQiLi+7vPhE6gEDiPzpozvSrUqbSMoSTlRbOQkU0p6u4si0UBydegTyphsYSZC2AUHGYYICP0gqmEVg==",
"_integrity": "sha512-yEvVC8RfhRPkD9TUn7cFcLcgoJePgZRAOR7T21rcRY5I8tpuhzeWfGa7We7tB14fe9R7wENdqUABcMdwD4SQLw==",
"_location": "/@popperjs/core",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@popperjs/core@2.2.1",
"raw": "@popperjs/core@2.3.3",
"name": "@popperjs/core",
"escapedName": "@popperjs%2fcore",
"scope": "@popperjs",
"rawSpec": "2.2.1",
"rawSpec": "2.3.3",
"saveSpec": null,
"fetchSpec": "2.2.1"
"fetchSpec": "2.3.3"
},
"_requiredBy": [
"/react-overlays"
],
"_resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.2.1.tgz",
"_spec": "2.2.1",
"_where": "/home/henry/Documents/git/Speedtest-checker",
"_resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.3.3.tgz",
"_spec": "2.3.3",
"_where": "/home/henry/Documents/git/Speedtest-tracker-docker/conf/site",
"author": {
"name": "Federico Zivolo",
"email": "federico.zivolo@gmail.com"
@@ -48,7 +48,8 @@
"@babel/plugin-transform-runtime": "^7.7.6",
"@babel/preset-env": "^7.7.6",
"@babel/runtime": "^7.7.6",
"@khanacademy/flow-to-ts": "^0.1.4",
"@khanacademy/flow-to-ts": "^0.1.6",
"@rollup/plugin-replace": "^2.3.1",
"@typescript-eslint/parser": "^2.17.0",
"arg": "^4.1.2",
"babel-core": "7.0.0-bridge.0",
@@ -66,7 +67,7 @@
"eslint-plugin-flowtype": "^4.6.0",
"eslint-plugin-import": "^2.20.0",
"eslint-plugin-unused-imports": "^0.1.2",
"flow-bin": "0.116.1",
"flow-bin": "^0.122.0",
"flow-copy-source": "^2.0.9",
"get-port-cli": "^2.0.0",
"glob": "^7.1.6",
@@ -80,11 +81,11 @@
"prettier": "^1.19.1",
"pretty-quick": "^2.0.1",
"puppeteer": "^2.1.0",
"replace-in-files-cli": "^0.3.1",
"rollup": "^1.30.0",
"rollup-plugin-babel": "^4.3.3",
"rollup-plugin-flow-entry": "^0.3.3",
"rollup-plugin-license": "^0.13.0",
"rollup-plugin-replace": "^2.1.0",
"rollup-plugin-terser": "^5.2.0",
"rollup-plugin-visualizer": "^4.0.3",
"serve": "^11.3.0",
@@ -95,7 +96,6 @@
},
"files": [
"index.d.ts",
"/src",
"/dist",
"/lib"
],
@@ -141,8 +141,8 @@
"build:dev": "NODE_ENV=dev babel src -d tests/visual/dist",
"build:es": "babel src -d lib --ignore '**/*.test.js','**/__mocks__'",
"build:esbrowser": "BROWSER_COMPAT=true yarn build:es -d dist/esm",
"build:flow": "flow-copy-source --ignore \"**/*.test.js\" src lib",
"build:typescript": "rimraf dist/typescript; flow-to-ts \"src/**/*.js\" --write --inline-utility-types; node typescript/ts.js --project .config/tsconfig.json --outDir lib; rimraf \"src/**/*.ts\"",
"build:flow": "flow-copy-source --ignore \"**/*.test.js\" src lib && replace-in-files --string=__DEV__ --replacement=false 'lib/**/*.flow'",
"build:typescript": "rimraf dist/typescript; yarn build:es; flow-to-ts \"src/**/*.js\" --write --inline-utility-types; node typescript/ts.js --project .config/tsconfig.json --outDir lib; rimraf \"src/**/*.ts\"",
"clean": "rimraf lib && rimraf dist && rimraf test/visual/dist",
"dev": "NODE_ENV=dev concurrently 'yarn serve' 'yarn build:dev --watch'",
"prepublishOnly": "yarn build",
@@ -156,5 +156,5 @@
},
"sideEffects": false,
"unpkg": "dist/umd/popper.min.js",
"version": "2.2.1"
"version": "2.3.3"
}

View File

@@ -1,34 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`returns expected instance object 1`] = `
Object {
"destroy": [Function],
"forceUpdate": [Function],
"setOptions": [Function],
"state": Object {
"attributes": Object {},
"elements": Object {
"popper": <div />,
"reference": <div />,
},
"modifiersData": Object {},
"options": Object {
"modifiers": Array [],
"placement": "bottom",
"strategy": "absolute",
},
"orderedModifiers": Array [],
"placement": "bottom",
"scrollParents": Object {
"popper": Array [
[Window],
],
"reference": Array [
[Window],
],
},
"styles": Object {},
},
"update": [Function],
}
`;

View File

@@ -1,8 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`returns the scrollTop and scrollLeft of the window 1`] = `
Object {
"scrollLeft": 100,
"scrollTop": 200,
}
`;

View File

@@ -1,24 +0,0 @@
// @flow
export default function contains(parent: Element, child: Element) {
// $FlowFixMe: hasOwnProperty doesn't seem to work in tests
const isShadow = Boolean(child.getRootNode && child.getRootNode().host);
// First, attempt with faster native method
if (parent.contains(child)) {
return true;
}
// then fallback to custom implementation with Shadow DOM support
else if (isShadow) {
let next = child;
do {
if (next && parent.isSameNode(next)) {
return true;
}
// $FlowFixMe: need a better way to handle this...
next = next.parentNode || next.host;
} while (next);
}
// Give up, the result is false
return false;
}

Some files were not shown because too many files have changed in this diff Show More