PageSourceSearch

https://www.portercable.com/libraries/popperjs/dist/umd/popper.js?v=2.11.6

js portercable.com collected 2026-09-25 21:07:36 UTC 70,878 bytes, 2,008 lines download raw bytes

vendor: 1,415 bytes, lines 1-51
1/**
2 * @popperjs/core v2.11.6 - MIT License
3 */
4
5(function (global, factory) {
6  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
7  typeof define === 'function' && define.amd ? define(['exports'], factory) :
8  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {}));
9}(this, (function (exports) { 'use strict';
10
11  function getWindow(node) {
12    if (node == null) {
13      return window;
14    }
15
16    if (node.toString() !== '[object Window]') {
17      var ownerDocument = node.ownerDocument;
18      return ownerDocument ? ownerDocument.defaultView || window : window;
19    }
20
21    return node;
22  }
23
24  function isElement(node) {
25    var OwnElement = getWindow(node).Element;
26    return node instanceof OwnElement || node instanceof Element;
27  }
28
29  function isHTMLElement(node) {
30    var OwnElement = getWindow(node).HTMLElement;
31    return node instanceof OwnElement || node instanceof HTMLElement;
32  }
33
34  function isShadowRoot(node) {
35    // IE 11 has no ShadowRoot
36    if (typeof ShadowRoot === 'undefined') {
37      return false;
38    }
39
40    var OwnElement = getWindow(node).ShadowRoot;
41    return node instanceof OwnElement || node instanceof ShadowRoot;
42  }
43
44  var max = Math.max;
45  var min = Math.min;
46  var round = Math.round;
47
48  function getUAString() {
49    var uaData = navigator.userAgentData;
50
51    if (uaData != null && uaData.brands
vendor: 13,048 bytes, lines 51-447
51) {
52      return uaData.brands.map(function (item) {
53        return item.brand + "/" + item.version;
54      }).join(' ');
55    }
56
57    return navigator.userAgent;
58  }
59
60  function isLayoutViewport() {
61    return !/^((?!chrome|android).)*safari/i.test(getUAString());
62  }
63
64  function getBoundingClientRect(element, includeScale, isFixedStrategy) {
65    if (includeScale === void 0) {
66      includeScale = false;
67    }
68
69    if (isFixedStrategy === void 0) {
70      isFixedStrategy = false;
71    }
72
73    var clientRect = element.getBoundingClientRect();
74    var scaleX = 1;
75    var scaleY = 1;
76
77    if (includeScale && isHTMLElement(element)) {
78      scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
79      scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
80    }
81
82    var _ref = isElement(element) ? getWindow(element) : window,
83        visualViewport = _ref.visualViewport;
84
85    var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
86    var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
87    var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
88    var width = clientRect.width / scaleX;
89    var height = clientRect.height / scaleY;
90    return {
91      width: width,
92      height: height,
93      top: y,
94      right: x + width,
95      bottom: y + height,
96      left: x,
97      x: x,
98      y: y
99    };
100  }
101
102  function getWindowScroll(node) {
103    var win = getWindow(node);
104    var scrollLeft = win.pageXOffset;
105    var scrollTop = win.pageYOffset;
106    return {
107      scrollLeft: scrollLeft,
108      scrollTop: scrollTop
109    };
110  }
111
112  function getHTMLElementScroll(element) {
113    return {
114      scrollLeft: element.scrollLeft,
115      scrollTop: element.scrollTop
116    };
117  }
118
119  function getNodeScroll(node) {
120    if (node === getWindow(node) || !isHTMLElement(node)) {
121      return getWindowScroll(node);
122    } else {
123      return getHTMLElementScroll(node);
124    }
125  }
126
127  function getNodeName(element) {
128    return element ? (element.nodeName || '').toLowerCase() : null;
129  }
130
131  function getDocumentElement(element) {
132    // $FlowFixMe[incompatible-return]: assume body is always available
133    return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
134    element.document) || window.document).documentElement;
135  }
136
137  function getWindowScrollBarX(element) {
138    // If <html> has a CSS width greater than the viewport, then this will be
139    // incorrect for RTL.
140    // Popper 1 is broken in this case and never had a bug report so let's assume
141    // it's not an issue. I don't think anyone ever specifies width on <html>
142    // anyway.
143    // Browsers where the left scrollbar doesn't cause an issue report `0` for
144    // this (e.g. Edge 2019, IE11, Safari)
145    return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
146  }
147
148  function getComputedStyle(element) {
149    return getWindow(element).getComputedStyle(element);
150  }
151
152  function isScrollParent(element) {
153    // Firefox wants us to check `-x` and `-y` variations as well
154    var _getComputedStyle = getComputedStyle(element),
155        overflow = _getComputedStyle.overflow,
156        overflowX = _getComputedStyle.overflowX,
157        overflowY = _getComputedStyle.overflowY;
158
159    return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
160  }
161
162  function isElementScaled(element) {
163    var rect = element.getBoundingClientRect();
164    var scaleX = round(rect.width) / element.offsetWidth || 1;
165    var scaleY = round(rect.height) / element.offsetHeight || 1;
166    return scaleX !== 1 || scaleY !== 1;
167  } // Returns the composite rect of an element relative to its offsetParent.
168  // Composite means it takes into account transforms as well as layout.
169
170
171  function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
172    if (isFixed === void 0) {
173      isFixed = false;
174    }
175
176    var isOffsetParentAnElement = isHTMLElement(offsetParent);
177    var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
178    var documentElement = getDocumentElement(offsetParent);
179    var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
180    var scroll = {
181      scrollLeft: 0,
182      scrollTop: 0
183    };
184    var offsets = {
185      x: 0,
186      y: 0
187    };
188
189    if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
190      if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
191      isScrollParent(documentElement)) {
192        scroll = getNodeScroll(offsetParent);
193      }
194
195      if (isHTMLElement(offsetParent)) {
196        offsets = getBoundingClientRect(offsetParent, true);
197        offsets.x += offsetParent.clientLeft;
198        offsets.y += offsetParent.clientTop;
199      } else if (documentElement) {
200        offsets.x = getWindowScrollBarX(documentElement);
201      }
202    }
203
204    return {
205      x: rect.left + scroll.scrollLeft - offsets.x,
206      y: rect.top + scroll.scrollTop - offsets.y,
207      width: rect.width,
208      height: rect.height
209    };
210  }
211
212  // means it doesn't take into account transforms.
213
214  function getLayoutRect(element) {
215    var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
216    // Fixes https://github.com/popperjs/popper-core/issues/1223
217
218    var width = element.offsetWidth;
219    var height = element.offsetHeight;
220
221    if (Math.abs(clientRect.width - width) <= 1) {
222      width = clientRect.width;
223    }
224
225    if (Math.abs(clientRect.height - height) <= 1) {
226      height = clientRect.height;
227    }
228
229    return {
230      x: element.offsetLeft,
231      y: element.offsetTop,
232      width: width,
233      height: height
234    };
235  }
236
237  function getParentNode(element) {
238    if (getNodeName(element) === 'html') {
239      return element;
240    }
241
242    return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
243      // $FlowFixMe[incompatible-return]
244      // $FlowFixMe[prop-missing]
245      element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
246      element.parentNode || ( // DOM Element detected
247      isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
248      // $FlowFixMe[incompatible-call]: HTMLElement is a Node
249      getDocumentElement(element) // fallback
250
251    );
252  }
253
254  function getScrollParent(node) {
255    if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
256      // $FlowFixMe[incompatible-return]: assume body is always available
257      return node.ownerDocument.body;
258    }
259
260    if (isHTMLElement(node) && isScrollParent(node)) {
261      return node;
262    }
263
264    return getScrollParent(getParentNode(node));
265  }
266
267  /*
268  given a DOM element, return the list of all scroll parents, up the list of ancesors
269  until we get to the top window object. This list is what we attach scroll listeners
270  to, because if any of these parent elements scroll, we'll need to re-calculate the
271  reference element's position.
272  */
273
274  function listScrollParents(element, list) {
275    var _element$ownerDocumen;
276
277    if (list === void 0) {
278      list = [];
279    }
280
281    var scrollParent = getScrollParent(element);
282    var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
283    var win = getWindow(scrollParent);
284    var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
285    var updatedList = list.concat(target);
286    return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
287    updatedList.concat(listScrollParents(getParentNode(target)));
288  }
289
290  function isTableElement(element) {
291    return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
292  }
293
294  function getTrueOffsetParent(element) {
295    if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
296    getComputedStyle(element).position === 'fixed') {
297      return null;
298    }
299
300    return element.offsetParent;
301  } // `.offsetParent` reports `null` for fixed elements, while absolute elements
302  // return the containing block
303
304
305  function getContainingBlock(element) {
306    var isFirefox = /firefox/i.test(getUAString());
307    var isIE = /Trident/i.test(getUAString());
308
309    if (isIE && isHTMLElement(element)) {
310      // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
311      var elementCss = getComputedStyle(element);
312
313      if (elementCss.position === 'fixed') {
314        return null;
315      }
316    }
317
318    var currentNode = getParentNode(element);
319
320    if (isShadowRoot(currentNode)) {
321      currentNode = currentNode.host;
322    }
323
324    while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
325      var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
326      // create a containing block.
327      // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
328
329      if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
330        return currentNode;
331      } else {
332        currentNode = currentNode.parentNode;
333      }
334    }
335
336    return null;
337  } // Gets the closest ancestor positioned element. Handles some edge cases,
338  // such as table ancestors and cross browser bugs.
339
340
341  function getOffsetParent(element) {
342    var window = getWindow(element);
343    var offsetParent = getTrueOffsetParent(element);
344
345    while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
346      offsetParent = getTrueOffsetParent(offsetParent);
347    }
348
349    if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {
350      return window;
351    }
352
353    return offsetParent || getContainingBlock(element) || window;
354  }
355
356  var top = 'top';
357  var bottom = 'bottom';
358  var right = 'right';
359  var left = 'left';
360  var auto = 'auto';
361  var basePlacements = [top, bottom, right, left];
362  var start = 'start';
363  var end = 'end';
364  var clippingParents = 'clippingParents';
365  var viewport = 'viewport';
366  var popper = 'popper';
367  var reference = 'reference';
368  var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
369    return acc.concat([placement + "-" + start, placement + "-" + end]);
370  }, []);
371  var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
372    return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
373  }, []); // modifiers that need to read the DOM
374
375  var beforeRead = 'beforeRead';
376  var read = 'read';
377  var afterRead = 'afterRead'; // pure-logic modifiers
378
379  var beforeMain = 'beforeMain';
380  var main = 'main';
381  var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
382
383  var beforeWrite = 'beforeWrite';
384  var write = 'write';
385  var afterWrite = 'afterWrite';
386  var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
387
388  function order(modifiers) {
389    var map = new Map();
390    var visited = new Set();
391    var result = [];
392    modifiers.forEach(function (modifier) {
393      map.set(modifier.name, modifier);
394    }); // On visiting object, check for its dependencies and visit them recursively
395
396    function sort(modifier) {
397      visited.add(modifier.name);
398      var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
399      requires.forEach(function (dep) {
400        if (!visited.has(dep)) {
401          var depModifier = map.get(dep);
402
403          if (depModifier) {
404            sort(depModifier);
405          }
406        }
407      });
408      result.push(modifier);
409    }
410
411    modifiers.forEach(function (modifier) {
412      if (!visited.has(modifier.name)) {
413        // check for visited object
414        sort(modifier);
415      }
416    });
417    return result;
418  }
419
420  function orderModifiers(modifiers) {
421    // order based on dependencies
422    var orderedModifiers = order(modifiers); // order based on phase
423
424    return modifierPhases.reduce(function (acc, phase) {
425      return acc.concat(orderedModifiers.filter(function (modifier) {
426        return modifier.phase === phase;
427      }));
428    }, []);
429  }
430
431  function debounce(fn) {
432    var pending;
433    return function () {
434      if (!pending) {
435        pending = new Promise(function (resolve) {
436          Promise.resolve().then(function () {
437            pending = undefined;
438            resolve(fn());
439          });
440        });
441      }
442
443      return pending;
444    };
445  }
446
447  function 
447format(str) {
448    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
449      args[_key - 1] = arguments[_key];
450    }
451
452    return [].concat(args).reduce(function (p, c) {
453      return p.replace(/%s/, c);
454    }, str);
455  }
456
457  var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
458  var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
459  var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];
460  function validateModifiers(modifiers) {
461    modifiers.forEach(function (modifier) {
462      [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`
463      .filter(function (value, index, self) {
464        return self.indexOf(value) === index;
465      }
vendor: 3,895 bytes, lines 465-578
465).forEach(function (key) {
466        switch (key) {
467          case 'name':
468            if (typeof modifier.name !== 'string') {
469              console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', "\"" + String(modifier.name) + "\""));
470            }
471
472            break;
473
474          case 'enabled':
475            if (typeof modifier.enabled !== 'boolean') {
476              console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\""));
477            }
478
479            break;
480
481          case 'phase':
482            if (modifierPhases.indexOf(modifier.phase) < 0) {
483              console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\""));
484            }
485
486            break;
487
488          case 'fn':
489            if (typeof modifier.fn !== 'function') {
490              console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', "\"" + String(modifier.fn) + "\""));
491            }
492
493            break;
494
495          case 'effect':
496            if (modifier.effect != null && typeof modifier.effect !== 'function') {
497              console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\""));
498            }
499
500            break;
501
502          case 'requires':
503            if (modifier.requires != null && !Array.isArray(modifier.requires)) {
504              console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\""));
505            }
506
507            break;
508
509          case 'requiresIfExists':
510            if (!Array.isArray(modifier.requiresIfExists)) {
511              console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', "\"" + String(modifier.requiresIfExists) + "\""));
512            }
513
514            break;
515
516          case 'options':
517          case 'data':
518            break;
519
520          default:
521            console.error("PopperJS: an invalid property has been provided to the \"" + modifier.name + "\" modifier, valid properties are " + VALID_PROPERTIES.map(function (s) {
522              return "\"" + s + "\"";
523            }).join(', ') + "; but \"" + key + "\" was provided.");
524        }
525
526        modifier.requires && modifier.requires.forEach(function (requirement) {
527          if (modifiers.find(function (mod) {
528            return mod.name === requirement;
529          }) == null) {
530            console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
531          }
532        });
533      });
534    });
535  }
536
537  function uniqueBy(arr, fn) {
538    var identifiers = new Set();
539    return arr.filter(function (item) {
540      var identifier = fn(item);
541
542      if (!identifiers.has(identifier)) {
543        identifiers.add(identifier);
544        return true;
545      }
546    });
547  }
548
549  function getBasePlacement(placement) {
550    return placement.split('-')[0];
551  }
552
553  function mergeByName(modifiers) {
554    var merged = modifiers.reduce(function (merged, current) {
555      var existing = merged[current.name];
556      merged[current.name] = existing ? Object.assign({}, existing, current, {
557        options: Object.assign({}, existing.options, current.options),
558        data: Object.assign({}, existing.data, current.data)
559      }) : current;
560      return merged;
561    }, {}); // IE11 does not support Object.values
562
563    return Object.keys(merged).map(function (key) {
564      return merged[key];
565    });
566  }
567
568  function getViewportRect(element, strategy) {
569    var win = getWindow(element);
570    var html = getDocumentElement(element);
571    var visualViewport = win.visualViewport;
572    var width = html.clientWidth;
573    var height = html.clientHeight;
574    var x = 0;
575    var y = 0;
576
577    if (visualViewport) {
578      width = visualViewport.width;
vendor: 10,019 bytes, lines 579-855
579      height = visualViewport.height;
580      var layoutViewport = isLayoutViewport();
581
582      if (layoutViewport || !layoutViewport && strategy === 'fixed') {
583        x = visualViewport.offsetLeft;
584        y = visualViewport.offsetTop;
585      }
586    }
587
588    return {
589      width: width,
590      height: height,
591      x: x + getWindowScrollBarX(element),
592      y: y
593    };
594  }
595
596  // of the `<html>` and `<body>` rect bounds if horizontally scrollable
597
598  function getDocumentRect(element) {
599    var _element$ownerDocumen;
600
601    var html = getDocumentElement(element);
602    var winScroll = getWindowScroll(element);
603    var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
604    var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
605    var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
606    var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
607    var y = -winScroll.scrollTop;
608
609    if (getComputedStyle(body || html).direction === 'rtl') {
610      x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
611    }
612
613    return {
614      width: width,
615      height: height,
616      x: x,
617      y: y
618    };
619  }
620
621  function contains(parent, child) {
622    var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
623
624    if (parent.contains(child)) {
625      return true;
626    } // then fallback to custom implementation with Shadow DOM support
627    else if (rootNode && isShadowRoot(rootNode)) {
628        var next = child;
629
630        do {
631          if (next && parent.isSameNode(next)) {
632            return true;
633          } // $FlowFixMe[prop-missing]: need a better way to handle this...
634
635
636          next = next.parentNode || next.host;
637        } while (next);
638      } // Give up, the result is false
639
640
641    return false;
642  }
643
644  function rectToClientRect(rect) {
645    return Object.assign({}, rect, {
646      left: rect.x,
647      top: rect.y,
648      right: rect.x + rect.width,
649      bottom: rect.y + rect.height
650    });
651  }
652
653  function getInnerBoundingClientRect(element, strategy) {
654    var rect = getBoundingClientRect(element, false, strategy === 'fixed');
655    rect.top = rect.top + element.clientTop;
656    rect.left = rect.left + element.clientLeft;
657    rect.bottom = rect.top + element.clientHeight;
658    rect.right = rect.left + element.clientWidth;
659    rect.width = element.clientWidth;
660    rect.height = element.clientHeight;
661    rect.x = rect.left;
662    rect.y = rect.top;
663    return rect;
664  }
665
666  function getClientRectFromMixedType(element, clippingParent, strategy) {
667    return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
668  } // A "clipping parent" is an overflowable container with the characteristic of
669  // clipping (or hiding) overflowing elements with a position different from
670  // `initial`
671
672
673  function getClippingParents(element) {
674    var clippingParents = listScrollParents(getParentNode(element));
675    var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;
676    var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
677
678    if (!isElement(clipperElement)) {
679      return [];
680    } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
681
682
683    return clippingParents.filter(function (clippingParent) {
684      return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
685    });
686  } // Gets the maximum area that the element is visible in due to any number of
687  // clipping parents
688
689
690  function getClippingRect(element, boundary, rootBoundary, strategy) {
691    var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
692    var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
693    var firstClippingParent = clippingParents[0];
694    var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
695      var rect = getClientRectFromMixedType(element, clippingParent, strategy);
696      accRect.top = max(rect.top, accRect.top);
697      accRect.right = min(rect.right, accRect.right);
698      accRect.bottom = min(rect.bottom, accRect.bottom);
699      accRect.left = max(rect.left, accRect.left);
700      return accRect;
701    }, getClientRectFromMixedType(element, firstClippingParent, strategy));
702    clippingRect.width = clippingRect.right - clippingRect.left;
703    clippingRect.height = clippingRect.bottom - clippingRect.top;
704    clippingRect.x = clippingRect.left;
705    clippingRect.y = clippingRect.top;
706    return clippingRect;
707  }
708
709  function getVariation(placement) {
710    return placement.split('-')[1];
711  }
712
713  function getMainAxisFromPlacement(placement) {
714    return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
715  }
716
717  function computeOffsets(_ref) {
718    var reference = _ref.reference,
719        element = _ref.element,
720        placement = _ref.placement;
721    var basePlacement = placement ? getBasePlacement(placement) : null;
722    var variation = placement ? getVariation(placement) : null;
723    var commonX = reference.x + reference.width / 2 - element.width / 2;
724    var commonY = reference.y + reference.height / 2 - element.height / 2;
725    var offsets;
726
727    switch (basePlacement) {
728      case top:
729        offsets = {
730          x: commonX,
731          y: reference.y - element.height
732        };
733        break;
734
735      case bottom:
736        offsets = {
737          x: commonX,
738          y: reference.y + reference.height
739        };
740        break;
741
742      case right:
743        offsets = {
744          x: reference.x + reference.width,
745          y: commonY
746        };
747        break;
748
749      case left:
750        offsets = {
751          x: reference.x - element.width,
752          y: commonY
753        };
754        break;
755
756      default:
757        offsets = {
758          x: reference.x,
759          y: reference.y
760        };
761    }
762
763    var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
764
765    if (mainAxis != null) {
766      var len = mainAxis === 'y' ? 'height' : 'width';
767
768      switch (variation) {
769        case start:
770          offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
771          break;
772
773        case end:
774          offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
775          break;
776      }
777    }
778
779    return offsets;
780  }
781
782  function getFreshSideObject() {
783    return {
784      top: 0,
785      right: 0,
786      bottom: 0,
787      left: 0
788    };
789  }
790
791  function mergePaddingObject(paddingObject) {
792    return Object.assign({}, getFreshSideObject(), paddingObject);
793  }
794
795  function expandToHashMap(value, keys) {
796    return keys.reduce(function (hashMap, key) {
797      hashMap[key] = value;
798      return hashMap;
799    }, {});
800  }
801
802  function detectOverflow(state, options) {
803    if (options === void 0) {
804      options = {};
805    }
806
807    var _options = options,
808        _options$placement = _options.placement,
809        placement = _options$placement === void 0 ? state.placement : _options$placement,
810        _options$strategy = _options.strategy,
811        strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
812        _options$boundary = _options.boundary,
813        boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
814        _options$rootBoundary = _options.rootBoundary,
815        rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
816        _options$elementConte = _options.elementContext,
817        elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
818        _options$altBoundary = _options.altBoundary,
819        altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
820        _options$padding = _options.padding,
821        padding = _options$padding === void 0 ? 0 : _options$padding;
822    var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
823    var altContext = elementContext === popper ? reference : popper;
824    var popperRect = state.rects.popper;
825    var element = state.elements[altBoundary ? altContext : elementContext];
826    var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
827    var referenceClientRect = getBoundingClientRect(state.elements.reference);
828    var popperOffsets = computeOffsets({
829      reference: referenceClientRect,
830      element: popperRect,
831      strategy: 'absolute',
832      placement: placement
833    });
834    var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
835    var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
836    // 0 or negative = within the clipping rect
837
838    var overflowOffsets = {
839      top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
840      bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
841      left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
842      right: elementClientRect.right - clippingClientRect.right + paddingObject.right
843    };
844    var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
845
846    if (elementContext === popper && offsetData) {
847      var offset = offsetData[placement];
848      Object.keys(overflowOffsets).forEach(function (key) {
849        var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
850        var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
851        overflowOffsets[key] += offset[axis] * multiply;
852      });
853    }
854
855    return overflowOffsets
vendor: 9,470 bytes, lines 855-1101
855;
856  }
857
858  var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
859  var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
860  var DEFAULT_OPTIONS = {
861    placement: 'bottom',
862    modifiers: [],
863    strategy: 'absolute'
864  };
865
866  function areValidElements() {
867    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
868      args[_key] = arguments[_key];
869    }
870
871    return !args.some(function (element) {
872      return !(element && typeof element.getBoundingClientRect === 'function');
873    });
874  }
875
876  function popperGenerator(generatorOptions) {
877    if (generatorOptions === void 0) {
878      generatorOptions = {};
879    }
880
881    var _generatorOptions = generatorOptions,
882        _generatorOptions$def = _generatorOptions.defaultModifiers,
883        defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
884        _generatorOptions$def2 = _generatorOptions.defaultOptions,
885        defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
886    return function createPopper(reference, popper, options) {
887      if (options === void 0) {
888        options = defaultOptions;
889      }
890
891      var state = {
892        placement: 'bottom',
893        orderedModifiers: [],
894        options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
895        modifiersData: {},
896        elements: {
897          reference: reference,
898          popper: popper
899        },
900        attributes: {},
901        styles: {}
902      };
903      var effectCleanupFns = [];
904      var isDestroyed = false;
905      var instance = {
906        state: state,
907        setOptions: function setOptions(setOptionsAction) {
908          var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
909          cleanupModifierEffects();
910          state.options = Object.assign({}, defaultOptions, state.options, options);
911          state.scrollParents = {
912            reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
913            popper: listScrollParents(popper)
914          }; // Orders the modifiers based on their dependencies and `phase`
915          // properties
916
917          var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
918
919          state.orderedModifiers = orderedModifiers.filter(function (m) {
920            return m.enabled;
921          }); // Validate the provided modifiers so that the consumer will get warned
922          // if one of the modifiers is invalid for any reason
923
924          {
925            var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {
926              var name = _ref.name;
927              return name;
928            });
929            validateModifiers(modifiers);
930
931            if (getBasePlacement(state.options.placement) === auto) {
932              var flipModifier = state.orderedModifiers.find(function (_ref2) {
933                var name = _ref2.name;
934                return name === 'flip';
935              });
936
937              if (!flipModifier) {
938                console.error(['Popper: "auto" placements require the "flip" modifier be', 'present and enabled to work.'].join(' '));
939              }
940            }
941
942            var _getComputedStyle = getComputedStyle(popper),
943                marginTop = _getComputedStyle.marginTop,
944                marginRight = _getComputedStyle.marginRight,
945                marginBottom = _getComputedStyle.marginBottom,
946                marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can
947            // cause bugs with positioning, so we'll warn the consumer
948
949
950            if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {
951              return parseFloat(margin);
952            })) {
953              console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));
954            }
955          }
956
957          runModifierEffects();
958          return instance.update();
959        },
960        // Sync update – it will always be executed, even if not necessary. This
961        // is useful for low frequency updates where sync behavior simplifies the
962        // logic.
963        // For high frequency updates (e.g. `resize` and `scroll` events), always
964        // prefer the async Popper#update method
965        forceUpdate: function forceUpdate() {
966          if (isDestroyed) {
967            return;
968          }
969
970          var _state$elements = state.elements,
971              reference = _state$elements.reference,
972              popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
973          // anymore
974
975          if (!areValidElements(reference, popper)) {
976            {
977              console.error(INVALID_ELEMENT_ERROR);
978            }
979
980            return;
981          } // Store the reference and popper rects to be read by modifiers
982
983
984          state.rects = {
985            reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
986            popper: getLayoutRect(popper)
987          }; // Modifiers have the ability to reset the current update cycle. The
988          // most common use case for this is the `flip` modifier changing the
989          // placement, which then needs to re-run all the modifiers, because the
990          // logic was previously ran for the previous placement and is therefore
991          // stale/incorrect
992
993          state.reset = false;
994          state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
995          // is filled with the initial data specified by the modifier. This means
996          // it doesn't persist and is fresh on each update.
997          // To ensure persistent data, use `${name}#persistent`
998
999          state.orderedModifiers.forEach(function (modifier) {
1000            return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
1001          });
1002          var __debug_loops__ = 0;
1003
1004          for (var index = 0; index < state.orderedModifiers.length; index++) {
1005            {
1006              __debug_loops__ += 1;
1007
1008              if (__debug_loops__ > 100) {
1009                console.error(INFINITE_LOOP_ERROR);
1010                break;
1011              }
1012            }
1013
1014            if (state.reset === true) {
1015              state.reset = false;
1016              index = -1;
1017              continue;
1018            }
1019
1020            var _state$orderedModifie = state.orderedModifiers[index],
1021                fn = _state$orderedModifie.fn,
1022                _state$orderedModifie2 = _state$orderedModifie.options,
1023                _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
1024                name = _state$orderedModifie.name;
1025
1026            if (typeof fn === 'function') {
1027              state = fn({
1028                state: state,
1029                options: _options,
1030                name: name,
1031                instance: instance
1032              }) || state;
1033            }
1034          }
1035        },
1036        // Async and optimistically optimized update – it will not be executed if
1037        // not necessary (debounced to run at most once-per-tick)
1038        update: debounce(function () {
1039          return new Promise(function (resolve) {
1040            instance.forceUpdate();
1041            resolve(state);
1042          });
1043        }),
1044        destroy: function destroy() {
1045          cleanupModifierEffects();
1046          isDestroyed = true;
1047        }
1048      };
1049
1050      if (!areValidElements(reference, popper)) {
1051        {
1052          console.error(INVALID_ELEMENT_ERROR);
1053        }
1054
1055        return instance;
1056      }
1057
1058      instance.setOptions(options).then(function (state) {
1059        if (!isDestroyed && options.onFirstUpdate) {
1060          options.onFirstUpdate(state);
1061        }
1062      }); // Modifiers have the ability to execute arbitrary code before the first
1063      // update cycle runs. They will be executed in the same order as the update
1064      // cycle. This is useful when a modifier adds some persistent data that
1065      // other modifiers need to use, but the modifier is run after the dependent
1066      // one.
1067
1068      function runModifierEffects() {
1069        state.orderedModifiers.forEach(function (_ref3) {
1070          var name = _ref3.name,
1071              _ref3$options = _ref3.options,
1072              options = _ref3$options === void 0 ? {} : _ref3$options,
1073              effect = _ref3.effect;
1074
1075          if (typeof effect === 'function') {
1076            var cleanupFn = effect({
1077              state: state,
1078              name: name,
1079              instance: instance,
1080              options: options
1081            });
1082
1083            var noopFn = function noopFn() {};
1084
1085            effectCleanupFns.push(cleanupFn || noopFn);
1086          }
1087        });
1088      }
1089
1090      function cleanupModifierEffects() {
1091        effectCleanupFns.forEach(function (fn) {
1092          return fn();
1093        });
1094        effectCleanupFns = [];
1095      }
1096
1097      return instance;
1098    };
1099  }
1100
1101  var 
1101passive = {
1102    passive: true
1103  };
1104
1105  function effect$2(_ref) {
1106    var state = _ref.state,
1107        instance = _ref.instance,
1108        options = _ref.options;
1109    var _options$scroll = options.scroll,
1110        scroll = _options$scroll === void 0 ? true : _options$scroll,
1111        _options$resize = options.resize,
1112        resize = _options$resize === void 0 ? true : _options$resize;
1113    var window = getWindow(state.elements.popper);
1114    var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
1115
1116    if (scroll) {
1117      scrollParents.forEach(function (scrollParent) {
1118        scrollParent.addEventListener('scroll', instance.update, passive);
1119      });
1120    }
1121
1122    if (resize) {
1123      window.addEventListener('resize', instance.update, passive);
1124    }
1125
1126    return function () {
1127      if (scroll) {
vendor: 4,707 bytes, lines 1128-1282
1128        scrollParents.forEach(function (scrollParent) {
1129          scrollParent.removeEventListener('scroll', instance.update, passive);
1130        });
1131      }
1132
1133      if (resize) {
1134        window.removeEventListener('resize', instance.update, passive);
1135      }
1136    };
1137  } // eslint-disable-next-line import/no-unused-modules
1138
1139
1140  var eventListeners = {
1141    name: 'eventListeners',
1142    enabled: true,
1143    phase: 'write',
1144    fn: function fn() {},
1145    effect: effect$2,
1146    data: {}
1147  };
1148
1149  function popperOffsets(_ref) {
1150    var state = _ref.state,
1151        name = _ref.name;
1152    // Offsets are the actual position the popper needs to have to be
1153    // properly positioned near its reference element
1154    // This is the most basic placement, and will be adjusted by
1155    // the modifiers in the next step
1156    state.modifiersData[name] = computeOffsets({
1157      reference: state.rects.reference,
1158      element: state.rects.popper,
1159      strategy: 'absolute',
1160      placement: state.placement
1161    });
1162  } // eslint-disable-next-line import/no-unused-modules
1163
1164
1165  var popperOffsets$1 = {
1166    name: 'popperOffsets',
1167    enabled: true,
1168    phase: 'read',
1169    fn: popperOffsets,
1170    data: {}
1171  };
1172
1173  var unsetSides = {
1174    top: 'auto',
1175    right: 'auto',
1176    bottom: 'auto',
1177    left: 'auto'
1178  }; // Round the offsets to the nearest suitable subpixel based on the DPR.
1179  // Zooming can change the DPR, but it seems to report a value that will
1180  // cleanly divide the values into the appropriate subpixels.
1181
1182  function roundOffsetsByDPR(_ref) {
1183    var x = _ref.x,
1184        y = _ref.y;
1185    var win = window;
1186    var dpr = win.devicePixelRatio || 1;
1187    return {
1188      x: round(x * dpr) / dpr || 0,
1189      y: round(y * dpr) / dpr || 0
1190    };
1191  }
1192
1193  function mapToStyles(_ref2) {
1194    var _Object$assign2;
1195
1196    var popper = _ref2.popper,
1197        popperRect = _ref2.popperRect,
1198        placement = _ref2.placement,
1199        variation = _ref2.variation,
1200        offsets = _ref2.offsets,
1201        position = _ref2.position,
1202        gpuAcceleration = _ref2.gpuAcceleration,
1203        adaptive = _ref2.adaptive,
1204        roundOffsets = _ref2.roundOffsets,
1205        isFixed = _ref2.isFixed;
1206    var _offsets$x = offsets.x,
1207        x = _offsets$x === void 0 ? 0 : _offsets$x,
1208        _offsets$y = offsets.y,
1209        y = _offsets$y === void 0 ? 0 : _offsets$y;
1210
1211    var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
1212      x: x,
1213      y: y
1214    }) : {
1215      x: x,
1216      y: y
1217    };
1218
1219    x = _ref3.x;
1220    y = _ref3.y;
1221    var hasX = offsets.hasOwnProperty('x');
1222    var hasY = offsets.hasOwnProperty('y');
1223    var sideX = left;
1224    var sideY = top;
1225    var win = window;
1226
1227    if (adaptive) {
1228      var offsetParent = getOffsetParent(popper);
1229      var heightProp = 'clientHeight';
1230      var widthProp = 'clientWidth';
1231
1232      if (offsetParent === getWindow(popper)) {
1233        offsetParent = getDocumentElement(popper);
1234
1235        if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {
1236          heightProp = 'scrollHeight';
1237          widthProp = 'scrollWidth';
1238        }
1239      } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
1240
1241
1242      offsetParent = offsetParent;
1243
1244      if (placement === top || (placement === left || placement === right) && variation === end) {
1245        sideY = bottom;
1246        var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
1247        offsetParent[heightProp];
1248        y -= offsetY - popperRect.height;
1249        y *= gpuAcceleration ? 1 : -1;
1250      }
1251
1252      if (placement === left || (placement === top || placement === bottom) && variation === end) {
1253        sideX = right;
1254        var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
1255        offsetParent[widthProp];
1256        x -= offsetX - popperRect.width;
1257        x *= gpuAcceleration ? 1 : -1;
1258      }
1259    }
1260
1261    var commonStyles = Object.assign({
1262      position: position
1263    }, adaptive && unsetSides);
1264
1265    var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
1266      x: x,
1267      y: y
1268    }) : {
1269      x: x,
1270      y: y
1271    };
1272
1273    x = _ref4.x;
1274    y = _ref4.y;
1275
1276    if (gpuAcceleration) {
1277      var _Object$assign;
1278
1279      return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
1280    }
1281
1282    return Object.assign({}, commonStyles, (_Object$assign2 = {}
vendor: 4,267 bytes, lines 1282-1396
1282, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
1283  }
1284
1285  function computeStyles(_ref5) {
1286    var state = _ref5.state,
1287        options = _ref5.options;
1288    var _options$gpuAccelerat = options.gpuAcceleration,
1289        gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
1290        _options$adaptive = options.adaptive,
1291        adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
1292        _options$roundOffsets = options.roundOffsets,
1293        roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
1294
1295    {
1296      var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
1297
1298      if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
1299        return transitionProperty.indexOf(property) >= 0;
1300      })) {
1301        console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: "transform", "top", "right", "bottom", "left".', '\n\n', 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\n\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));
1302      }
1303    }
1304
1305    var commonStyles = {
1306      placement: getBasePlacement(state.placement),
1307      variation: getVariation(state.placement),
1308      popper: state.elements.popper,
1309      popperRect: state.rects.popper,
1310      gpuAcceleration: gpuAcceleration,
1311      isFixed: state.options.strategy === 'fixed'
1312    };
1313
1314    if (state.modifiersData.popperOffsets != null) {
1315      state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
1316        offsets: state.modifiersData.popperOffsets,
1317        position: state.options.strategy,
1318        adaptive: adaptive,
1319        roundOffsets: roundOffsets
1320      })));
1321    }
1322
1323    if (state.modifiersData.arrow != null) {
1324      state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
1325        offsets: state.modifiersData.arrow,
1326        position: 'absolute',
1327        adaptive: false,
1328        roundOffsets: roundOffsets
1329      })));
1330    }
1331
1332    state.attributes.popper = Object.assign({}, state.attributes.popper, {
1333      'data-popper-placement': state.placement
1334    });
1335  } // eslint-disable-next-line import/no-unused-modules
1336
1337
1338  var computeStyles$1 = {
1339    name: 'computeStyles',
1340    enabled: true,
1341    phase: 'beforeWrite',
1342    fn: computeStyles,
1343    data: {}
1344  };
1345
1346  // and applies them to the HTMLElements such as popper and arrow
1347
1348  function applyStyles(_ref) {
1349    var state = _ref.state;
1350    Object.keys(state.elements).forEach(function (name) {
1351      var style = state.styles[name] || {};
1352      var attributes = state.attributes[name] || {};
1353      var element = state.elements[name]; // arrow is optional + virtual elements
1354
1355      if (!isHTMLElement(element) || !getNodeName(element)) {
1356        return;
1357      } // Flow doesn't support to extend this property, but it's the most
1358      // effective way to apply styles to an HTMLElement
1359      // $FlowFixMe[cannot-write]
1360
1361
1362      Object.assign(element.style, style);
1363      Object.keys(attributes).forEach(function (name) {
1364        var value = attributes[name];
1365
1366        if (value === false) {
1367          element.removeAttribute(name);
1368        } else {
1369          element.setAttribute(name, value === true ? '' : value);
1370        }
1371      });
1372    });
1373  }
1374
1375  function effect$1(_ref2) {
1376    var state = _ref2.state;
1377    var initialStyles = {
1378      popper: {
1379        position: state.options.strategy,
1380        left: '0',
1381        top: '0',
1382        margin: '0'
1383      },
1384      arrow: {
1385        position: 'absolute'
1386      },
1387      reference: {}
1388    };
1389    Object.assign(state.elements.popper.style, initialStyles.popper);
1390    state.styles = initialStyles;
1391
1392    if (state.elements.arrow) {
1393      Object.assign(state.elements.arrow.style, initialStyles.arrow);
1394    }
1395
1396    return function () {
vendor: 4,301 bytes, lines 1397-1529
1397      Object.keys(state.elements).forEach(function (name) {
1398        var element = state.elements[name];
1399        var attributes = state.attributes[name] || {};
1400        var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
1401
1402        var style = styleProperties.reduce(function (style, property) {
1403          style[property] = '';
1404          return style;
1405        }, {}); // arrow is optional + virtual elements
1406
1407        if (!isHTMLElement(element) || !getNodeName(element)) {
1408          return;
1409        }
1410
1411        Object.assign(element.style, style);
1412        Object.keys(attributes).forEach(function (attribute) {
1413          element.removeAttribute(attribute);
1414        });
1415      });
1416    };
1417  } // eslint-disable-next-line import/no-unused-modules
1418
1419
1420  var applyStyles$1 = {
1421    name: 'applyStyles',
1422    enabled: true,
1423    phase: 'write',
1424    fn: applyStyles,
1425    effect: effect$1,
1426    requires: ['computeStyles']
1427  };
1428
1429  function distanceAndSkiddingToXY(placement, rects, offset) {
1430    var basePlacement = getBasePlacement(placement);
1431    var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
1432
1433    var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
1434      placement: placement
1435    })) : offset,
1436        skidding = _ref[0],
1437        distance = _ref[1];
1438
1439    skidding = skidding || 0;
1440    distance = (distance || 0) * invertDistance;
1441    return [left, right].indexOf(basePlacement) >= 0 ? {
1442      x: distance,
1443      y: skidding
1444    } : {
1445      x: skidding,
1446      y: distance
1447    };
1448  }
1449
1450  function offset(_ref2) {
1451    var state = _ref2.state,
1452        options = _ref2.options,
1453        name = _ref2.name;
1454    var _options$offset = options.offset,
1455        offset = _options$offset === void 0 ? [0, 0] : _options$offset;
1456    var data = placements.reduce(function (acc, placement) {
1457      acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
1458      return acc;
1459    }, {});
1460    var _data$state$placement = data[state.placement],
1461        x = _data$state$placement.x,
1462        y = _data$state$placement.y;
1463
1464    if (state.modifiersData.popperOffsets != null) {
1465      state.modifiersData.popperOffsets.x += x;
1466      state.modifiersData.popperOffsets.y += y;
1467    }
1468
1469    state.modifiersData[name] = data;
1470  } // eslint-disable-next-line import/no-unused-modules
1471
1472
1473  var offset$1 = {
1474    name: 'offset',
1475    enabled: true,
1476    phase: 'main',
1477    requires: ['popperOffsets'],
1478    fn: offset
1479  };
1480
1481  var hash$1 = {
1482    left: 'right',
1483    right: 'left',
1484    bottom: 'top',
1485    top: 'bottom'
1486  };
1487  function getOppositePlacement(placement) {
1488    return placement.replace(/left|right|bottom|top/g, function (matched) {
1489      return hash$1[matched];
1490    });
1491  }
1492
1493  var hash = {
1494    start: 'end',
1495    end: 'start'
1496  };
1497  function getOppositeVariationPlacement(placement) {
1498    return placement.replace(/start|end/g, function (matched) {
1499      return hash[matched];
1500    });
1501  }
1502
1503  function computeAutoPlacement(state, options) {
1504    if (options === void 0) {
1505      options = {};
1506    }
1507
1508    var _options = options,
1509        placement = _options.placement,
1510        boundary = _options.boundary,
1511        rootBoundary = _options.rootBoundary,
1512        padding = _options.padding,
1513        flipVariations = _options.flipVariations,
1514        _options$allowedAutoP = _options.allowedAutoPlacements,
1515        allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
1516    var variation = getVariation(placement);
1517    var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
1518      return getVariation(placement) === variation;
1519    }) : basePlacements;
1520    var allowedPlacements = placements$1.filter(function (placement) {
1521      return allowedAutoPlacements.indexOf(placement) >= 0;
1522    });
1523
1524    if (allowedPlacements.length === 0) {
1525      allowedPlacements = placements$1;
1526
1527      {
1528        console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(' '));
1529      }
vendor: 14,143 bytes, lines 1529-1893
1529
1530    } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
1531
1532
1533    var overflows = allowedPlacements.reduce(function (acc, placement) {
1534      acc[placement] = detectOverflow(state, {
1535        placement: placement,
1536        boundary: boundary,
1537        rootBoundary: rootBoundary,
1538        padding: padding
1539      })[getBasePlacement(placement)];
1540      return acc;
1541    }, {});
1542    return Object.keys(overflows).sort(function (a, b) {
1543      return overflows[a] - overflows[b];
1544    });
1545  }
1546
1547  function getExpandedFallbackPlacements(placement) {
1548    if (getBasePlacement(placement) === auto) {
1549      return [];
1550    }
1551
1552    var oppositePlacement = getOppositePlacement(placement);
1553    return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
1554  }
1555
1556  function flip(_ref) {
1557    var state = _ref.state,
1558        options = _ref.options,
1559        name = _ref.name;
1560
1561    if (state.modifiersData[name]._skip) {
1562      return;
1563    }
1564
1565    var _options$mainAxis = options.mainAxis,
1566        checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
1567        _options$altAxis = options.altAxis,
1568        checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
1569        specifiedFallbackPlacements = options.fallbackPlacements,
1570        padding = options.padding,
1571        boundary = options.boundary,
1572        rootBoundary = options.rootBoundary,
1573        altBoundary = options.altBoundary,
1574        _options$flipVariatio = options.flipVariations,
1575        flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
1576        allowedAutoPlacements = options.allowedAutoPlacements;
1577    var preferredPlacement = state.options.placement;
1578    var basePlacement = getBasePlacement(preferredPlacement);
1579    var isBasePlacement = basePlacement === preferredPlacement;
1580    var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
1581    var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
1582      return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
1583        placement: placement,
1584        boundary: boundary,
1585        rootBoundary: rootBoundary,
1586        padding: padding,
1587        flipVariations: flipVariations,
1588        allowedAutoPlacements: allowedAutoPlacements
1589      }) : placement);
1590    }, []);
1591    var referenceRect = state.rects.reference;
1592    var popperRect = state.rects.popper;
1593    var checksMap = new Map();
1594    var makeFallbackChecks = true;
1595    var firstFittingPlacement = placements[0];
1596
1597    for (var i = 0; i < placements.length; i++) {
1598      var placement = placements[i];
1599
1600      var _basePlacement = getBasePlacement(placement);
1601
1602      var isStartVariation = getVariation(placement) === start;
1603      var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
1604      var len = isVertical ? 'width' : 'height';
1605      var overflow = detectOverflow(state, {
1606        placement: placement,
1607        boundary: boundary,
1608        rootBoundary: rootBoundary,
1609        altBoundary: altBoundary,
1610        padding: padding
1611      });
1612      var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
1613
1614      if (referenceRect[len] > popperRect[len]) {
1615        mainVariationSide = getOppositePlacement(mainVariationSide);
1616      }
1617
1618      var altVariationSide = getOppositePlacement(mainVariationSide);
1619      var checks = [];
1620
1621      if (checkMainAxis) {
1622        checks.push(overflow[_basePlacement] <= 0);
1623      }
1624
1625      if (checkAltAxis) {
1626        checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
1627      }
1628
1629      if (checks.every(function (check) {
1630        return check;
1631      })) {
1632        firstFittingPlacement = placement;
1633        makeFallbackChecks = false;
1634        break;
1635      }
1636
1637      checksMap.set(placement, checks);
1638    }
1639
1640    if (makeFallbackChecks) {
1641      // `2` may be desired in some cases – research later
1642      var numberOfChecks = flipVariations ? 3 : 1;
1643
1644      var _loop = function _loop(_i) {
1645        var fittingPlacement = placements.find(function (placement) {
1646          var checks = checksMap.get(placement);
1647
1648          if (checks) {
1649            return checks.slice(0, _i).every(function (check) {
1650              return check;
1651            });
1652          }
1653        });
1654
1655        if (fittingPlacement) {
1656          firstFittingPlacement = fittingPlacement;
1657          return "break";
1658        }
1659      };
1660
1661      for (var _i = numberOfChecks; _i > 0; _i--) {
1662        var _ret = _loop(_i);
1663
1664        if (_ret === "break") break;
1665      }
1666    }
1667
1668    if (state.placement !== firstFittingPlacement) {
1669      state.modifiersData[name]._skip = true;
1670      state.placement = firstFittingPlacement;
1671      state.reset = true;
1672    }
1673  } // eslint-disable-next-line import/no-unused-modules
1674
1675
1676  var flip$1 = {
1677    name: 'flip',
1678    enabled: true,
1679    phase: 'main',
1680    fn: flip,
1681    requiresIfExists: ['offset'],
1682    data: {
1683      _skip: false
1684    }
1685  };
1686
1687  function getAltAxis(axis) {
1688    return axis === 'x' ? 'y' : 'x';
1689  }
1690
1691  function within(min$1, value, max$1) {
1692    return max(min$1, min(value, max$1));
1693  }
1694  function withinMaxClamp(min, value, max) {
1695    var v = within(min, value, max);
1696    return v > max ? max : v;
1697  }
1698
1699  function preventOverflow(_ref) {
1700    var state = _ref.state,
1701        options = _ref.options,
1702        name = _ref.name;
1703    var _options$mainAxis = options.mainAxis,
1704        checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
1705        _options$altAxis = options.altAxis,
1706        checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
1707        boundary = options.boundary,
1708        rootBoundary = options.rootBoundary,
1709        altBoundary = options.altBoundary,
1710        padding = options.padding,
1711        _options$tether = options.tether,
1712        tether = _options$tether === void 0 ? true : _options$tether,
1713        _options$tetherOffset = options.tetherOffset,
1714        tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
1715    var overflow = detectOverflow(state, {
1716      boundary: boundary,
1717      rootBoundary: rootBoundary,
1718      padding: padding,
1719      altBoundary: altBoundary
1720    });
1721    var basePlacement = getBasePlacement(state.placement);
1722    var variation = getVariation(state.placement);
1723    var isBasePlacement = !variation;
1724    var mainAxis = getMainAxisFromPlacement(basePlacement);
1725    var altAxis = getAltAxis(mainAxis);
1726    var popperOffsets = state.modifiersData.popperOffsets;
1727    var referenceRect = state.rects.reference;
1728    var popperRect = state.rects.popper;
1729    var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
1730      placement: state.placement
1731    })) : tetherOffset;
1732    var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
1733      mainAxis: tetherOffsetValue,
1734      altAxis: tetherOffsetValue
1735    } : Object.assign({
1736      mainAxis: 0,
1737      altAxis: 0
1738    }, tetherOffsetValue);
1739    var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
1740    var data = {
1741      x: 0,
1742      y: 0
1743    };
1744
1745    if (!popperOffsets) {
1746      return;
1747    }
1748
1749    if (checkMainAxis) {
1750      var _offsetModifierState$;
1751
1752      var mainSide = mainAxis === 'y' ? top : left;
1753      var altSide = mainAxis === 'y' ? bottom : right;
1754      var len = mainAxis === 'y' ? 'height' : 'width';
1755      var offset = popperOffsets[mainAxis];
1756      var min$1 = offset + overflow[mainSide];
1757      var max$1 = offset - overflow[altSide];
1758      var additive = tether ? -popperRect[len] / 2 : 0;
1759      var minLen = variation === start ? referenceRect[len] : popperRect[len];
1760      var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
1761      // outside the reference bounds
1762
1763      var arrowElement = state.elements.arrow;
1764      var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
1765        width: 0,
1766        height: 0
1767      };
1768      var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
1769      var arrowPaddingMin = arrowPaddingObject[mainSide];
1770      var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
1771      // to include its full size in the calculation. If the reference is small
1772      // and near the edge of a boundary, the popper can overflow even if the
1773      // reference is not overflowing as well (e.g. virtual elements with no
1774      // width or height)
1775
1776      var arrowLen = within(0, referenceRect[len], arrowRect[len]);
1777      var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
1778      var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
1779      var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
1780      var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
1781      var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
1782      var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
1783      var tetherMax = offset + maxOffset - offsetModifierValue;
1784      var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
1785      popperOffsets[mainAxis] = preventedOffset;
1786      data[mainAxis] = preventedOffset - offset;
1787    }
1788
1789    if (checkAltAxis) {
1790      var _offsetModifierState$2;
1791
1792      var _mainSide = mainAxis === 'x' ? top : left;
1793
1794      var _altSide = mainAxis === 'x' ? bottom : right;
1795
1796      var _offset = popperOffsets[altAxis];
1797
1798      var _len = altAxis === 'y' ? 'height' : 'width';
1799
1800      var _min = _offset + overflow[_mainSide];
1801
1802      var _max = _offset - overflow[_altSide];
1803
1804      var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
1805
1806      var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
1807
1808      var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
1809
1810      var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
1811
1812      var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
1813
1814      popperOffsets[altAxis] = _preventedOffset;
1815      data[altAxis] = _preventedOffset - _offset;
1816    }
1817
1818    state.modifiersData[name] = data;
1819  } // eslint-disable-next-line import/no-unused-modules
1820
1821
1822  var preventOverflow$1 = {
1823    name: 'preventOverflow',
1824    enabled: true,
1825    phase: 'main',
1826    fn: preventOverflow,
1827    requiresIfExists: ['offset']
1828  };
1829
1830  var toPaddingObject = function toPaddingObject(padding, state) {
1831    padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
1832      placement: state.placement
1833    })) : padding;
1834    return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
1835  };
1836
1837  function arrow(_ref) {
1838    var _state$modifiersData$;
1839
1840    var state = _ref.state,
1841        name = _ref.name,
1842        options = _ref.options;
1843    var arrowElement = state.elements.arrow;
1844    var popperOffsets = state.modifiersData.popperOffsets;
1845    var basePlacement = getBasePlacement(state.placement);
1846    var axis = getMainAxisFromPlacement(basePlacement);
1847    var isVertical = [left, right].indexOf(basePlacement) >= 0;
1848    var len = isVertical ? 'height' : 'width';
1849
1850    if (!arrowElement || !popperOffsets) {
1851      return;
1852    }
1853
1854    var paddingObject = toPaddingObject(options.padding, state);
1855    var arrowRect = getLayoutRect(arrowElement);
1856    var minProp = axis === 'y' ? top : left;
1857    var maxProp = axis === 'y' ? bottom : right;
1858    var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
1859    var startDiff = popperOffsets[axis] - state.rects.reference[axis];
1860    var arrowOffsetParent = getOffsetParent(arrowElement);
1861    var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
1862    var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
1863    // outside of the popper bounds
1864
1865    var min = paddingObject[minProp];
1866    var max = clientSize - arrowRect[len] - paddingObject[maxProp];
1867    var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
1868    var offset = within(min, center, max); // Prevents breaking syntax highlighting...
1869
1870    var axisProp = axis;
1871    state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
1872  }
1873
1874  function effect(_ref2) {
1875    var state = _ref2.state,
1876        options = _ref2.options;
1877    var _options$element = options.element,
1878        arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
1879
1880    if (arrowElement == null) {
1881      return;
1882    } // CSS selector
1883
1884
1885    if (typeof arrowElement === 'string') {
1886      arrowElement = state.elements.popper.querySelector(arrowElement);
1887
1888      if (!arrowElement) {
1889        return;
1890      }
1891    }
1892
1893    
vendor: 3,895 bytes, lines 1893-2008
1893{
1894      if (!isHTMLElement(arrowElement)) {
1895        console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));
1896      }
1897    }
1898
1899    if (!contains(state.elements.popper, arrowElement)) {
1900      {
1901        console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', 'element.'].join(' '));
1902      }
1903
1904      return;
1905    }
1906
1907    state.elements.arrow = arrowElement;
1908  } // eslint-disable-next-line import/no-unused-modules
1909
1910
1911  var arrow$1 = {
1912    name: 'arrow',
1913    enabled: true,
1914    phase: 'main',
1915    fn: arrow,
1916    effect: effect,
1917    requires: ['popperOffsets'],
1918    requiresIfExists: ['preventOverflow']
1919  };
1920
1921  function getSideOffsets(overflow, rect, preventedOffsets) {
1922    if (preventedOffsets === void 0) {
1923      preventedOffsets = {
1924        x: 0,
1925        y: 0
1926      };
1927    }
1928
1929    return {
1930      top: overflow.top - rect.height - preventedOffsets.y,
1931      right: overflow.right - rect.width + preventedOffsets.x,
1932      bottom: overflow.bottom - rect.height + preventedOffsets.y,
1933      left: overflow.left - rect.width - preventedOffsets.x
1934    };
1935  }
1936
1937  function isAnySideFullyClipped(overflow) {
1938    return [top, right, bottom, left].some(function (side) {
1939      return overflow[side] >= 0;
1940    });
1941  }
1942
1943  function hide(_ref) {
1944    var state = _ref.state,
1945        name = _ref.name;
1946    var referenceRect = state.rects.reference;
1947    var popperRect = state.rects.popper;
1948    var preventedOffsets = state.modifiersData.preventOverflow;
1949    var referenceOverflow = detectOverflow(state, {
1950      elementContext: 'reference'
1951    });
1952    var popperAltOverflow = detectOverflow(state, {
1953      altBoundary: true
1954    });
1955    var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
1956    var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
1957    var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
1958    var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
1959    state.modifiersData[name] = {
1960      referenceClippingOffsets: referenceClippingOffsets,
1961      popperEscapeOffsets: popperEscapeOffsets,
1962      isReferenceHidden: isReferenceHidden,
1963      hasPopperEscaped: hasPopperEscaped
1964    };
1965    state.attributes.popper = Object.assign({}, state.attributes.popper, {
1966      'data-popper-reference-hidden': isReferenceHidden,
1967      'data-popper-escaped': hasPopperEscaped
1968    });
1969  } // eslint-disable-next-line import/no-unused-modules
1970
1971
1972  var hide$1 = {
1973    name: 'hide',
1974    enabled: true,
1975    phase: 'main',
1976    requiresIfExists: ['preventOverflow'],
1977    fn: hide
1978  };
1979
1980  var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
1981  var createPopper$1 = /*#__PURE__*/popperGenerator({
1982    defaultModifiers: defaultModifiers$1
1983  }); // eslint-disable-next-line import/no-unused-modules
1984
1985  var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
1986  var createPopper = /*#__PURE__*/popperGenerator({
1987    defaultModifiers: defaultModifiers
1988  }); // eslint-disable-next-line import/no-unused-modules
1989
1990  exports.applyStyles = applyStyles$1;
1991  exports.arrow = arrow$1;
1992  exports.computeStyles = computeStyles$1;
1993  exports.createPopper = createPopper;
1994  exports.createPopperLite = createPopper$1;
1995  exports.defaultModifiers = defaultModifiers;
1996  exports.detectOverflow = detectOverflow;
1997  exports.eventListeners = eventListeners;
1998  exports.flip = flip$1;
1999  exports.hide = hide$1;
2000  exports.offset = offset$1;
2001  exports.popperGenerator = popperGenerator;
2002  exports.popperOffsets = popperOffsets$1;
2003  exports.preventOverflow = preventOverflow$1;
2004
2005  Object.defineProperty(exports, '__esModule', { value: true });
2006
2007})));
2008//# sourceMappingURL=popper.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.