summaryrefslogtreecommitdiffstats
path: root/npm_assets/node_modules/popper.js/src/methods
diff options
context:
space:
mode:
Diffstat (limited to 'npm_assets/node_modules/popper.js/src/methods')
-rw-r--r--npm_assets/node_modules/popper.js/src/methods/defaults.js79
-rw-r--r--npm_assets/node_modules/popper.js/src/methods/destroy.js32
-rw-r--r--npm_assets/node_modules/popper.js/src/methods/disableEventListeners.js15
-rw-r--r--npm_assets/node_modules/popper.js/src/methods/enableEventListeners.js18
-rw-r--r--npm_assets/node_modules/popper.js/src/methods/placements.js48
-rw-r--r--npm_assets/node_modules/popper.js/src/methods/update.js75
6 files changed, 267 insertions, 0 deletions
diff --git a/npm_assets/node_modules/popper.js/src/methods/defaults.js b/npm_assets/node_modules/popper.js/src/methods/defaults.js
new file mode 100644
index 0000000..461f981
--- /dev/null
+++ b/npm_assets/node_modules/popper.js/src/methods/defaults.js
@@ -0,0 +1,79 @@
+import modifiers from '../modifiers/index';
+
+/**
+ * Default options provided to Popper.js constructor.<br />
+ * These can be overridden using the `options` argument of Popper.js.<br />
+ * To override an option, simply pass an object with the same
+ * structure of the `options` object, as the 3rd argument. For example:
+ * ```
+ * new Popper(ref, pop, {
+ * modifiers: {
+ * preventOverflow: { enabled: false }
+ * }
+ * })
+ * ```
+ * @type {Object}
+ * @static
+ * @memberof Popper
+ */
+export default {
+ /**
+ * Popper's placement.
+ * @prop {Popper.placements} placement='bottom'
+ */
+ placement: 'bottom',
+
+ /**
+ * Set this to true if you want popper to position it self in 'fixed' mode
+ * @prop {Boolean} positionFixed=false
+ */
+ positionFixed: false,
+
+ /**
+ * Whether events (resize, scroll) are initially enabled.
+ * @prop {Boolean} eventsEnabled=true
+ */
+ eventsEnabled: true,
+
+ /**
+ * Set to true if you want to automatically remove the popper when
+ * you call the `destroy` method.
+ * @prop {Boolean} removeOnDestroy=false
+ */
+ removeOnDestroy: false,
+
+ /**
+ * Callback called when the popper is created.<br />
+ * By default, it is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onCreate}
+ */
+ onCreate: () => {},
+
+ /**
+ * Callback called when the popper is updated. This callback is not called
+ * on the initialization/creation of the popper, but only on subsequent
+ * updates.<br />
+ * By default, it is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onUpdate}
+ */
+ onUpdate: () => {},
+
+ /**
+ * List of modifiers used to modify the offsets before they are applied to the popper.
+ * They provide most of the functionalities of Popper.js.
+ * @prop {modifiers}
+ */
+ modifiers,
+};
+
+/**
+ * @callback onCreate
+ * @param {dataObject} data
+ */
+
+/**
+ * @callback onUpdate
+ * @param {dataObject} data
+ */
diff --git a/npm_assets/node_modules/popper.js/src/methods/destroy.js b/npm_assets/node_modules/popper.js/src/methods/destroy.js
new file mode 100644
index 0000000..2888a67
--- /dev/null
+++ b/npm_assets/node_modules/popper.js/src/methods/destroy.js
@@ -0,0 +1,32 @@
+import isModifierEnabled from '../utils/isModifierEnabled';
+import getSupportedPropertyName from '../utils/getSupportedPropertyName';
+
+/**
+ * Destroys the popper.
+ * @method
+ * @memberof Popper
+ */
+export default function destroy() {
+ this.state.isDestroyed = true;
+
+ // touch DOM only if `applyStyle` modifier is enabled
+ if (isModifierEnabled(this.modifiers, 'applyStyle')) {
+ this.popper.removeAttribute('x-placement');
+ this.popper.style.position = '';
+ this.popper.style.top = '';
+ this.popper.style.left = '';
+ this.popper.style.right = '';
+ this.popper.style.bottom = '';
+ this.popper.style.willChange = '';
+ this.popper.style[getSupportedPropertyName('transform')] = '';
+ }
+
+ this.disableEventListeners();
+
+ // remove the popper if user explicitly asked for the deletion on destroy
+ // do not use `remove` because IE11 doesn't support it
+ if (this.options.removeOnDestroy) {
+ this.popper.parentNode.removeChild(this.popper);
+ }
+ return this;
+}
diff --git a/npm_assets/node_modules/popper.js/src/methods/disableEventListeners.js b/npm_assets/node_modules/popper.js/src/methods/disableEventListeners.js
new file mode 100644
index 0000000..4d2e032
--- /dev/null
+++ b/npm_assets/node_modules/popper.js/src/methods/disableEventListeners.js
@@ -0,0 +1,15 @@
+import removeEventListeners from '../utils/removeEventListeners';
+
+/**
+ * It will remove resize/scroll events and won't recalculate popper position
+ * when they are triggered. It also won't trigger `onUpdate` callback anymore,
+ * unless you call `update` method manually.
+ * @method
+ * @memberof Popper
+ */
+export default function disableEventListeners() {
+ if (this.state.eventsEnabled) {
+ cancelAnimationFrame(this.scheduleUpdate);
+ this.state = removeEventListeners(this.reference, this.state);
+ }
+}
diff --git a/npm_assets/node_modules/popper.js/src/methods/enableEventListeners.js b/npm_assets/node_modules/popper.js/src/methods/enableEventListeners.js
new file mode 100644
index 0000000..ff1a63d
--- /dev/null
+++ b/npm_assets/node_modules/popper.js/src/methods/enableEventListeners.js
@@ -0,0 +1,18 @@
+import setupEventListeners from '../utils/setupEventListeners';
+
+/**
+ * It will add resize/scroll events and start recalculating
+ * position of the popper element when they are triggered.
+ * @method
+ * @memberof Popper
+ */
+export default function enableEventListeners() {
+ if (!this.state.eventsEnabled) {
+ this.state = setupEventListeners(
+ this.reference,
+ this.options,
+ this.state,
+ this.scheduleUpdate
+ );
+ }
+}
diff --git a/npm_assets/node_modules/popper.js/src/methods/placements.js b/npm_assets/node_modules/popper.js/src/methods/placements.js
new file mode 100644
index 0000000..35b4d23
--- /dev/null
+++ b/npm_assets/node_modules/popper.js/src/methods/placements.js
@@ -0,0 +1,48 @@
+/**
+ * List of accepted placements to use as values of the `placement` option.<br />
+ * Valid placements are:
+ * - `auto`
+ * - `top`
+ * - `right`
+ * - `bottom`
+ * - `left`
+ *
+ * Each placement can have a variation from this list:
+ * - `-start`
+ * - `-end`
+ *
+ * Variations are interpreted easily if you think of them as the left to right
+ * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
+ * is right.<br />
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom.
+ *
+ * Some valid examples are:
+ * - `top-end` (on top of reference, right aligned)
+ * - `right-start` (on right of reference, top aligned)
+ * - `bottom` (on bottom, centered)
+ * - `auto-end` (on the side with more space available, alignment depends by placement)
+ *
+ * @static
+ * @type {Array}
+ * @enum {String}
+ * @readonly
+ * @method placements
+ * @memberof Popper
+ */
+export default [
+ 'auto-start',
+ 'auto',
+ 'auto-end',
+ 'top-start',
+ 'top',
+ 'top-end',
+ 'right-start',
+ 'right',
+ 'right-end',
+ 'bottom-end',
+ 'bottom',
+ 'bottom-start',
+ 'left-end',
+ 'left',
+ 'left-start',
+];
diff --git a/npm_assets/node_modules/popper.js/src/methods/update.js b/npm_assets/node_modules/popper.js/src/methods/update.js
new file mode 100644
index 0000000..0660d1e
--- /dev/null
+++ b/npm_assets/node_modules/popper.js/src/methods/update.js
@@ -0,0 +1,75 @@
+import computeAutoPlacement from '../utils/computeAutoPlacement';
+import getReferenceOffsets from '../utils/getReferenceOffsets';
+import getPopperOffsets from '../utils/getPopperOffsets';
+import runModifiers from '../utils/runModifiers';
+
+/**
+ * Updates the position of the popper, computing the new offsets and applying
+ * the new style.<br />
+ * Prefer `scheduleUpdate` over `update` because of performance reasons.
+ * @method
+ * @memberof Popper
+ */
+export default function update() {
+ // if popper is destroyed, don't perform any further update
+ if (this.state.isDestroyed) {
+ return;
+ }
+
+ let data = {
+ instance: this,
+ styles: {},
+ arrowStyles: {},
+ attributes: {},
+ flipped: false,
+ offsets: {},
+ };
+
+ // compute reference element offsets
+ data.offsets.reference = getReferenceOffsets(
+ this.state,
+ this.popper,
+ this.reference,
+ this.options.positionFixed
+ );
+
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ data.placement = computeAutoPlacement(
+ this.options.placement,
+ data.offsets.reference,
+ this.popper,
+ this.reference,
+ this.options.modifiers.flip.boundariesElement,
+ this.options.modifiers.flip.padding
+ );
+
+ // store the computed placement inside `originalPlacement`
+ data.originalPlacement = data.placement;
+
+ data.positionFixed = this.options.positionFixed;
+
+ // compute the popper offsets
+ data.offsets.popper = getPopperOffsets(
+ this.popper,
+ data.offsets.reference,
+ data.placement
+ );
+
+ data.offsets.popper.position = this.options.positionFixed
+ ? 'fixed'
+ : 'absolute';
+
+ // run the modifiers
+ data = runModifiers(this.modifiers, data);
+
+ // the first `update` will call `onCreate` callback
+ // the other ones will call `onUpdate` callback
+ if (!this.state.isCreated) {
+ this.state.isCreated = true;
+ this.options.onCreate(data);
+ } else {
+ this.options.onUpdate(data);
+ }
+}