PageSourceSearch

https://careers.ccs.spokane.edu/assets/popper-449549cf.js

js spokane.edu collected 2026-09-24 09:42:31 UTC 41,628 bytes, 506 lines download raw bytes

1/**!
2 * @fileOverview Kickass library to create and place poppers near their reference elements.
3 * @version 1.16.1
4 * @license
5 * Copyright (c) 2016 Federico Zivolo and contributors
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 */
25var e="undefined"!==typeof window&&"undefined"!==typeof document&&"undefined"!==typeof navigator;var t=function(){var t=["Edge","Trident","Firefox"];for(var r=0;r<t.length;r+=1)if(e&&navigator.userAgent.indexOf(t[r])>=0)return 1;return 0}();function microtaskDebounce(e){var t=false;return function(){if(!t){t=true;window.Promise.resolve().then((function(){t=false;e()}))}}}function taskDebounce(e){var r=false;return function(){if(!r){r=true;setTimeout((function(){r=false;e()}),t)}}}var r=e&&window.Promise;
26/**
27* Create a debounced version of a method, that's asynchronously deferred
28* but called in the minimum time possible.
29*
30* @method
31* @memberof Popper.Utils
32* @argument {Function} fn
33* @returns {Function}
34*/var n=r?microtaskDebounce:taskDebounce;
35/**
36 * Check if the given variable is a function
37 * @method
38 * @memberof Popper.Utils
39 * @argument {Any} functionToCheck - variable to check
40 * @returns {Boolean} answer to: is a function?
41 */function isFunction(e){var t={};return e&&"[object Function]"===t.toString.call(e)}function getStyleComputedProperty(e,t){if(1!==e.nodeType)return[];var r=e.ownerDocument.defaultView;var n=r.getComputedStyle(e,null);return t?n[t]:n}
42/**
43 * Returns the parentNode or the host of the element
44 * @method
45 * @memberof Popper.Utils
46 * @argument {Element} element
47 * @returns {Element} parent
48 */function getParentNode(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}
49/**
50 * Returns the scrolling parent of the given element
51 * @method
52 * @memberof Popper.Utils
53 * @argument {Element} element
54 * @returns {Element} scroll parent
55 */function getScrollParent(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=getStyleComputedProperty(e),r=t.overflow,n=t.overflowX,o=t.overflowY;return/(auto|scroll|overlay)/.test(r+o+n)?e:getScrollParent(getParentNode(e))}
56/**
57 * Returns the reference node of the reference object, or the reference object itself.
58 * @method
59 * @memberof Popper.Utils
60 * @param {Element|Object} reference - the reference element (the popper will be relative to this)
61 * @returns {Element} parent
62 */function getReferenceNode(e){return e&&e.referenceNode?e.referenceNode:e}var o=e&&!!(window.MSInputMethodContext&&document.documentMode);var i=e&&/MSIE 10/.test(navigator.userAgent);
63/**
64 * Determines if the browser is Internet Explorer
65 * @method
66 * @memberof Popper.Utils
67 * @param {Number} version to check
68 * @returns {Boolean} isIE
69 */function isIE(e){return 11===e?o:10===e?i:o||i}
70/**
71 * Returns the offset parent of the given element
72 * @method
73 * @memberof Popper.Utils
74 * @argument {Element} element
75 * @returns {Element} offset parent
76 */function getOffsetParent(e){if(!e)return document.documentElement;var t=isIE(10)?document.body:null;var r=e.offsetParent||null;while(r===t&&e.nextElementSibling)r=(e=e.nextElementSibling).offsetParent;var n=r&&r.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(r.nodeName)&&"static"===getStyleComputedProperty(r,"position")?getOffsetParent(r):r:e?e.ownerDocument.documentElement:document.documentElement}function isOffsetContainer(e){var t=e.nodeName;return"BODY"!==t&&("HTML"===t||getOffsetParent(e.firstElementChild)===e)}
77/**
78 * Finds the root node (document, shadowDOM root) of the given element
79 * @method
80 * @memberof Popper.Utils
81 * @argument {Element} node
82 * @returns {Element} root node
83 */function getRoot(e){return null!==e.parentNode?getRoot(e.parentNode):e}
84/**
85 * Finds the offset parent common to the two provided nodes
86 * @method
87 * @memberof Popper.Utils
88 * @argument {Element} element1
89 * @argument {Element} element2
90 * @returns {Element} common offset parent
91 */function findCommonOffsetParent(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var r=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING;var n=r?e:t;var o=r?t:e;var i=document.createRange();i.setStart(n,0);i.setEnd(o,0);var a=i.commonAncestorContainer;if(e!==a&&t!==a||n.contains(o))return isOffsetContainer(a)?a:getOffsetParent(a);var s=getRoot(e);return s.host?findCommonOffsetParent(s.host,t):findCommonOffsetParent(e,getRoot(t).host)}
92/**
93 * Gets the scroll value of the given element in the given side (top and left)
94 * @method
95 * @memberof Popper.Utils
96 * @argument {Element} element
97 * @argument {String} side `top` or `left`
98 * @returns {number} amount of scrolled pixels
99 */function getScroll(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top";var r="top"===t?"scrollTop":"scrollLeft";var n=e.nodeName;if("BODY"===n||"HTML"===n){var o=e.ownerDocument.documentElement;var i=e.ownerDocument.scrollingElement||o;return i[r]}return e[r]}
100/*
101 * Sum or subtract the element scroll values (left and top) from a given rect object
102 * @method
103 * @memberof Popper.Utils
104 * @param {Object} rect - Rect object you want to change
105 * @param {HTMLElement} element - The element from the function reads the scroll values
106 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
107 * @return {Object} rect - The modifier rect object
108 */function includeScroll(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n=getScroll(t,"top");var o=getScroll(t,"left");var i=r?-1:1;e.top+=n*i;e.bottom+=n*i;e.left+=o*i;e.right+=o*i;return e}
109/*
110 * Helper to detect borders of a given element
111 * @method
112 * @memberof Popper.Utils
113 * @param {CSSStyleDeclaration} styles
114 * Result of `getStyleComputedProperty` on the given element
115 * @param {String} axis - `x` or `y`
116 * @return {number} borders - The borders size of the given axis
117 */function getBordersSize(e,t){var r="x"===t?"Left":"Top";var n="Left"===r?"Right":"Bottom";return parseFloat(e["border"+r+"Width"])+parseFloat(e["border"+n+"Width"])}function getSize(e,t,r,n){return Math.max(t["offset"+e],t["scroll"+e],r["client"+e],r["offset"+e],r["scroll"+e],isIE(10)?parseInt(r["offset"+e])+parseInt(n["margin"+("Height"===e?"Top":"Left")])+parseInt(n["margin"+("Height"===e?"Bottom":"Right")]):0)}function getWindowSizes(e){var t=e.body;var r=e.documentElement;var n=isIE(10)&&getComputedStyle(r);return{height:getSize("Height",t,r,n),width:getSize("Width",t,r,n)}}var classCallCheck=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")};var a=function(){function defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;"value"in n&&(n.writable=true);Object.defineProperty(e,n.key,n)}}return function(e,t,r){t&&defineProperties(e.prototype,t);r&&defineProperties(e,r);return e}}();var defineProperty=function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true}):e[t]=r;return e};var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};
118/**
119 * Given element offsets, generate an output similar to getBoundingClientRect
120 * @method
121 * @memberof Popper.Utils
122 * @argument {Object} offsets
123 * @returns {Object} ClientRect like output
124 */function getClientRect(e){return s({},e,{right:e.left+e.width,bottom:e.top+e.height})}
125/**
126 * Get bounding client rect of given element
127 * @method
128 * @memberof Popper.Utils
129 * @param {HTMLElement} element
130 * @return {Object} client rect
131 */function getBoundingClientRect(e){var t={};try{if(isIE(10)){t=e.getBoundingClientRect();var r=getScroll(e,"top");var n=getScroll(e,"left");t.top+=r;t.left+=n;t.bottom+=r;t.right+=n}else t=e.getBoundingClientRect()}catch(e){}var o={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top};var i="HTML"===e.nodeName?getWindowSizes(e.ownerDocument):{};var a=i.width||e.clientWidth||o.width;var s=i.height||e.clientHeight||o.height;var f=e.offsetWidth-a;var l=e.offsetHeight-s;if(f||l){var p=getStyleComputedProperty(e);f-=getBordersSize(p,"x");l-=getBordersSize(p,"y");o.width-=f;o.height-=l}return getClientRect(o)}function getOffsetRectRelativeToArbitraryNode(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n=isIE(10);var o="HTML"===t.nodeName;var i=getBoundingClientRect(e);var a=getBoundingClientRect(t);var s=getScrollParent(e);var f=getStyleComputedProperty(t);var l=parseFloat(f.borderTopWidth);var p=parseFloat(f.borderLeftWidth);if(r&&o){a.top=Math.max(a.top,0);a.left=Math.max(a.left,0)}var u=getClientRect({top:i.top-a.top-l,left:i.left-a.left-p,width:i.width,height:i.height});u.marginTop=0;u.marginLeft=0;if(!n&&o){var d=parseFloat(f.marginTop);var c=parseFloat(f.marginLeft);u.top-=l-d;u.bottom-=l-d;u.left-=p-c;u.right-=p-c;u.marginTop=d;u.marginLeft=c}(n&&!r?t.contains(s):t===s&&"BODY"!==s.nodeName)&&(u=includeScroll(u,t));return u}function getViewportOffsetRectRelativeToArtbitraryNode(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var r=e.ownerDocument.documentElement;var n=getOffsetRectRelativeToArbitraryNode(e,r);var o=Math.max(r.clientWidth,window.innerWidth||0);var i=Math.max(r.clientHeight,window.innerHeight||0);var a=t?0:getScroll(r);var s=t?0:getScroll(r,"left");var f={top:a-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:o,height:i};return getClientRect(f)}
132/**
133 * Check if the given element is fixed or is inside a fixed parent
134 * @method
135 * @memberof Popper.Utils
136 * @argument {Element} element
137 * @argument {Element} customContainer
138 * @returns {Boolean} answer to "isFixed?"
139 */function isFixed(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return false;if("fixed"===getStyleComputedProperty(e,"position"))return true;var r=getParentNode(e);return!!r&&isFixed(r)}
140/**
141 * Finds the first parent of an element that has a transformed property defined
142 * @method
143 * @memberof Popper.Utils
144 * @argument {Element} element
145 * @returns {Element} first transformed parent or documentElement
146 */function getFixedPositionOffsetParent(e){if(!e||!e.parentElement||isIE())return document.documentElement;var t=e.parentElement;while(t&&"none"===getStyleComputedProperty(t,"transform"))t=t.parentElement;return t||document.documentElement}
147/**
148 * Computed the boundaries limits and return them
149 * @method
150 * @memberof Popper.Utils
151 * @param {HTMLElement} popper
152 * @param {HTMLElement} reference
153 * @param {number} padding
154 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
155 * @param {Boolean} fixedPosition - Is in fixed position mode
156 * @returns {Object} Coordinates of the boundaries
157 */function getBoundaries(e,t,r,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];var i={top:0,left:0};var a=o?getFixedPositionOffsetParent(e):findCommonOffsetParent(e,getReferenceNode(t));if("viewport"===n)i=getViewportOffsetRectRelativeToArtbitraryNode(a,o);else{var s=void 0;if("scrollParent"===n){s=getScrollParent(getParentNode(t));"BODY"===s.nodeName&&(s=e.ownerDocument.documentElement)}else s="window"===n?e.ownerDocument.documentElement:n;var f=getOffsetRectRelativeToArbitraryNode(s,a,o);if("HTML"!==s.nodeName||isFixed(a))i=f;else{var l=getWindowSizes(e.ownerDocument),p=l.height,u=l.width;i.top+=f.top-f.marginTop;i.bottom=p+f.top;i.left+=f.left-f.marginLeft;i.right=u+f.left}}r=r||0;var d="number"===typeof r;i.left+=d?r:r.left||0;i.top+=d?r:r.top||0;i.right-=d?r:r.right||0;i.bottom-=d?r:r.bottom||0;return i}function getArea(e){var t=e.width,r=e.height;return t*r}
158/**
159 * Utility used to transform the `auto` placement to the placement with more
160 * available space.
161 * @method
162 * @memberof Popper.Utils
163 * @argument {Object} data - The data object generated by update method
164 * @argument {Object} options - Modifiers configuration and options
165 * @returns {Object} The data object, properly modified
166 */function computeAutoPlacement(e,t,r,n,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var a=getBoundaries(r,n,i,o);var f={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}};var l=Object.keys(f).map((function(e){return s({key:e},f[e],{area:getArea(f[e])})})).sort((function(e,t){return t.area-e.area}));
166var p=l.filter((function(e){var t=e.width,n=e.height;return t>=r.clientWidth&&n>=r.clientHeight}));var u=p.length>0?p[0].key:l[0].key;var d=e.split("-")[1];return u+(d?"-"+d:"")}
167/**
168 * Get offsets to the reference element
169 * @method
170 * @memberof Popper.Utils
171 * @param {Object} state
172 * @param {Element} popper - the popper element
173 * @param {Element} reference - the reference element (the popper will be relative to this)
174 * @param {Element} fixedPosition - is in fixed position mode
175 * @returns {Object} An object containing the offsets which will be applied to the popper
176 */function getReferenceOffsets(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;var o=n?getFixedPositionOffsetParent(t):findCommonOffsetParent(t,getReferenceNode(r));return getOffsetRectRelativeToArbitraryNode(r,o,n)}
177/**
178 * Get the outer sizes of the given element (offset size + margins)
179 * @method
180 * @memberof Popper.Utils
181 * @argument {Element} element
182 * @returns {Object} object containing width and height properties
183 */function getOuterSizes(e){var t=e.ownerDocument.defaultView;var r=t.getComputedStyle(e);var n=parseFloat(r.marginTop||0)+parseFloat(r.marginBottom||0);var o=parseFloat(r.marginLeft||0)+parseFloat(r.marginRight||0);var i={width:e.offsetWidth+o,height:e.offsetHeight+n};return i}
184/**
185 * Get the opposite placement of the given one
186 * @method
187 * @memberof Popper.Utils
188 * @argument {String} placement
189 * @returns {String} flipped placement
190 */function getOppositePlacement(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}
191/**
192 * Get offsets to the popper
193 * @method
194 * @memberof Popper.Utils
195 * @param {Object} position - CSS position the Popper will get applied
196 * @param {HTMLElement} popper - the popper element
197 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
198 * @param {String} placement - one of the valid placement options
199 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
200 */function getPopperOffsets(e,t,r){r=r.split("-")[0];var n=getOuterSizes(e);var o={width:n.width,height:n.height};var i=-1!==["right","left"].indexOf(r);var a=i?"top":"left";var s=i?"left":"top";var f=i?"height":"width";var l=i?"width":"height";o[a]=t[a]+t[f]/2-n[f]/2;o[s]=r===s?t[s]-n[l]:t[getOppositePlacement(s)];return o}
201/**
202 * Mimics the `find` method of Array
203 * @method
204 * @memberof Popper.Utils
205 * @argument {Array} arr
206 * @argument prop
207 * @argument value
208 * @returns index or -1
209 */function find(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}
210/**
211 * Return the index of the matching object
212 * @method
213 * @memberof Popper.Utils
214 * @argument {Array} arr
215 * @argument prop
216 * @argument value
217 * @returns index or -1
218 */function findIndex(e,t,r){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===r}));var n=find(e,(function(e){return e[t]===r}));return e.indexOf(n)}
219/**
220 * Loop trough the list of modifiers and run them in order,
221 * each of them will then edit the data object.
222 * @method
223 * @memberof Popper.Utils
224 * @param {dataObject} data
225 * @param {Array} modifiers
226 * @param {String} ends - Optional modifier name used as stopper
227 * @returns {dataObject}
228 */function runModifiers(e,t,r){var n=void 0===r?e:e.slice(0,findIndex(e,"name",r));n.forEach((function(e){e["function"]&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var r=e["function"]||e.fn;if(e.enabled&&isFunction(r)){t.offsets.popper=getClientRect(t.offsets.popper);t.offsets.reference=getClientRect(t.offsets.reference);t=r(t,e)}}));return t}function update(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:false,offsets:{}};e.offsets.reference=getReferenceOffsets(this.state,this.popper,this.reference,this.options.positionFixed);e.placement=computeAutoPlacement(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding);e.originalPlacement=e.placement;e.positionFixed=this.options.positionFixed;e.offsets.popper=getPopperOffsets(this.popper,e.offsets.reference,e.placement);e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute";e=runModifiers(this.modifiers,e);
228if(this.state.isCreated)this.options.onUpdate(e);else{this.state.isCreated=true;this.options.onCreate(e)}}}
229/**
230 * Helper used to know if the given modifier is enabled.
231 * @method
232 * @memberof Popper.Utils
233 * @returns {Boolean}
234 */function isModifierEnabled(e,t){return e.some((function(e){var r=e.name,n=e.enabled;return n&&r===t}))}
235/**
236 * Get the prefixed supported property name
237 * @method
238 * @memberof Popper.Utils
239 * @argument {String} property (camelCase)
240 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
241 */function getSupportedPropertyName(e){var t=[false,"ms","Webkit","Moz","O"];var r=e.charAt(0).toUpperCase()+e.slice(1);for(var n=0;n<t.length;n++){var o=t[n];var i=o?""+o+r:e;if("undefined"!==typeof document.body.style[i])return i}return null}function destroy(){this.state.isDestroyed=true;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();this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper);return this}
242/**
243 * Get the window associated with the element
244 * @argument {Element} element
245 * @returns {Window}
246 */function getWindow(e){var t=e.ownerDocument;return t?t.defaultView:window}function attachToScrollParents(e,t,r,n){var o="BODY"===e.nodeName;var i=o?e.ownerDocument.defaultView:e;i.addEventListener(t,r,{passive:true});o||attachToScrollParents(getScrollParent(i.parentNode),t,r,n);n.push(i)}function setupEventListeners(e,t,r,n){r.updateBound=n;getWindow(e).addEventListener("resize",r.updateBound,{passive:true});var o=getScrollParent(e);attachToScrollParents(o,"scroll",r.updateBound,r.scrollParents);r.scrollElement=o;r.eventsEnabled=true;return r}function enableEventListeners(){this.state.eventsEnabled||(this.state=setupEventListeners(this.reference,this.options,this.state,this.scheduleUpdate))}function removeEventListeners(e,t){getWindow(e).removeEventListener("resize",t.updateBound);t.scrollParents.forEach((function(e){e.removeEventListener("scroll",t.updateBound)}));t.updateBound=null;t.scrollParents=[];t.scrollElement=null;t.eventsEnabled=false;return t}function disableEventListeners(){if(this.state.eventsEnabled){cancelAnimationFrame(this.scheduleUpdate);this.state=removeEventListeners(this.reference,this.state)}}
247/**
248 * Tells if a given input is a number
249 * @method
250 * @memberof Popper.Utils
251 * @param {*} input to check
252 * @return {Boolean}
253 */function isNumeric(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function setStyles(e,t){Object.keys(t).forEach((function(r){var n="";-1!==["width","height","top","right","bottom","left"].indexOf(r)&&isNumeric(t[r])&&(n="px");e.style[r]=t[r]+n}))}function setAttributes(e,t){Object.keys(t).forEach((function(r){var n=t[r];false!==n?e.setAttribute(r,t[r]):e.removeAttribute(r)}))}
254/**
255 * @function
256 * @memberof Modifiers
257 * @argument {Object} data - The data object generated by `update` method
258 * @argument {Object} data.styles - List of style properties - values to apply to popper element
259 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
260 * @argument {Object} options - Modifiers configuration and options
261 * @returns {Object} The same data object
262 */function applyStyle(e){setStyles(e.instance.popper,e.styles);setAttributes(e.instance.popper,e.attributes);e.arrowElement&&Object.keys(e.arrowStyles).length&&setStyles(e.arrowElement,e.arrowStyles);return e}
263/**
264 * Set the x-placement attribute before everything else because it could be used
265 * to add margins to the popper margins needs to be calculated to get the
266 * correct popper offsets.
267 * @method
268 * @memberof Popper.modifiers
269 * @param {HTMLElement} reference - The reference element used to position the popper
270 * @param {HTMLElement} popper - The HTML element used as popper
271 * @param {Object} options - Popper.js options
272 */function applyStyleOnLoad(e,t,r,n,o){var i=getReferenceOffsets(o,t,e,r.positionFixed);var a=computeAutoPlacement(r.placement,i,t,e,r.modifiers.flip.boundariesElement,r.modifiers.flip.padding);t.setAttribute("x-placement",a);setStyles(t,{position:r.positionFixed?"fixed":"absolute"});return r}
273/**
274 * @function
275 * @memberof Popper.Utils
276 * @argument {Object} data - The data object generated by `update` method
277 * @argument {Boolean}
277 shouldRound - If the offsets should be rounded at all
278 * @returns {Object} The popper's position offsets rounded
279 *
280 * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
281 * good as it can be within reason.
282 * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
283 *
284 * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
285 * as well on High DPI screens).
286 *
287 * Firefox prefers no rounding for positioning and does not have blurriness on
288 * high DPI screens.
289 *
290 * Only horizontal placement and left/right values need to be considered.
291 */function getRoundedOffsets(e,t){var r=e.offsets,n=r.popper,o=r.reference;var i=Math.round,a=Math.floor;var s=function noRound(e){return e};var f=i(o.width);var l=i(n.width);var p=-1!==["left","right"].indexOf(e.placement);var u=-1!==e.placement.indexOf("-");var d=f%2===l%2;var c=f%2===1&&l%2===1;var v=t?p||u||d?i:a:s;var h=t?i:s;return{left:v(c&&!u&&t?n.left-1:n.left),top:h(n.top),bottom:h(n.bottom),right:v(n.right)}}var f=e&&/Firefox/i.test(navigator.userAgent);
292/**
293 * @function
294 * @memberof Modifiers
295 * @argument {Object} data - The data object generated by `update` method
296 * @argument {Object} options - Modifiers configuration and options
297 * @returns {Object} The data object, properly modified
298 */function computeStyle(e,t){var r=t.x,n=t.y;var o=e.offsets.popper;var i=find(e.instance.modifiers,(function(e){return"applyStyle"===e.name})).gpuAcceleration;void 0!==i&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var a=void 0!==i?i:t.gpuAcceleration;var l=getOffsetParent(e.instance.popper);var p=getBoundingClientRect(l);var u={position:o.position};var d=getRoundedOffsets(e,window.devicePixelRatio<2||!f);var c="bottom"===r?"top":"bottom";var v="right"===n?"left":"right";var h=getSupportedPropertyName("transform");var m=void 0,g=void 0;g="bottom"===c?"HTML"===l.nodeName?-l.clientHeight+d.bottom:-p.height+d.bottom:d.top;m="right"===v?"HTML"===l.nodeName?-l.clientWidth+d.right:-p.width+d.right:d.left;if(a&&h){u[h]="translate3d("+m+"px, "+g+"px, 0)";u[c]=0;u[v]=0;u.willChange="transform"}else{var b="bottom"===c?-1:1;var y="right"===v?-1:1;u[c]=g*b;u[v]=m*y;u.willChange=c+", "+v}var w={"x-placement":e.placement};e.attributes=s({},w,e.attributes);e.styles=s({},u,e.styles);e.arrowStyles=s({},e.offsets.arrow,e.arrowStyles);return e}
299/**
300 * Helper used to know if the given modifier depends from another one.<br />
301 * It checks if the needed modifier is listed and enabled.
302 * @method
303 * @memberof Popper.Utils
304 * @param {Array} modifiers - list of modifiers
305 * @param {String} requestingName - name of requesting modifier
306 * @param {String} requestedName - name of requested modifier
307 * @returns {Boolean}
308 */function isModifierRequired(e,t,r){var n=find(e,(function(e){var r=e.name;return r===t}));var o=!!n&&e.some((function(e){return e.name===r&&e.enabled&&e.order<n.order}));if(!o){var i="`"+t+"`";var a="`"+r+"`";console.warn(a+" modifier is required by "+i+" modifier in order to work, be sure to include it before "+i+"!")}return o}
309/**
310 * @function
311 * @memberof Modifiers
312 * @argument {Object} data - The data object generated by update method
313 * @argument {Object} options - Modifiers configuration and options
314 * @returns {Object} The data object, properly modified
315 */function arrow(e,t){var r;if(!isModifierRequired(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"===typeof n){n=e.instance.popper.querySelector(n);if(!n)return e}else if(!e.instance.popper.contains(n)){console.warn("WARNING: `arrow.element` must be child of its popper element!");return e}var o=e.placement.split("-")[0];var i=e.offsets,a=i.popper,s=i.reference;var f=-1!==["left","right"].indexOf(o);var l=f?"height":"width";var p=f?"Top":"Left";var u=p.toLowerCase();var d=f?"left":"top";var c=f?"bottom":"right";var v=getOuterSizes(n)[l];s[c]-v<a[u]&&(e.offsets.popper[u]-=a[u]-(s[c]-v));s[u]+v>a[c]&&(e.offsets.popper[u]+=s[u]+v-a[c]);e.offsets.popper=getClientRect(e.offsets.popper);var h=s[u]+s[l]/2-v/2;var m=getStyleComputedProperty(e.instance.popper);var g=parseFloat(m["margin"+p]);var b=parseFloat(m["border"+p+"Width"]);var y=h-e.offsets.popper[u]-g-b;y=Math.max(Math.min(a[l]-v,y),0);e.arrowElement=n;e.offsets.arrow=(r={},defineProperty(r,u,Math.round(y)),defineProperty(r,d,""),r);return e}
316/**
317 * Get the opposite placement variation of the given one
318 * @method
319 * @memberof Popper.Utils
320 * @argument {String} placement variation
321 * @returns {String} flipped placement variation
322 */function getOppositeVariation(e){return"end"===e?"start":"start"===e?"end":e}
323/**
324 * List of accepted placements to use as values of the `placement` option.<br />
325 * Valid placements are:
326 * - `auto`
327 * - `top`
328 * - `right`
329 * - `bottom`
330 * - `left`
331 *
332 * Each placement can have a variation from this list:
333 * - `-start`
334 * - `-end`
335 *
336 * Variations are interpreted easily if you think of them as the left to right
337 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
338 * is right.<br />
339 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
340 *
341 * Some valid examples are:
342 * - `top-end` (on top of reference, right aligned)
343 * - `right-start` (on right of reference, top aligned)
344 * - `bottom` (on bottom, centered)
345 * - `auto-end` (on the side with more space available, alignment depends by placement)
346 *
347 * @static
348 * @type {Array}
349 * @enum {String}
350 * @readonly
351 * @method placements
352 * @memberof Popper
353 */var l=["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"];var p=l.slice(3);
354/**
355 * Given an initial placement, returns all the subsequent placements
356 * clockwise (or counter-clockwise).
357 *
358 * @method
359 * @memberof Popper.Utils
360 * @argument {String} placement - A valid placement (it accepts variations)
361 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
362 * @returns {Array} placements including their variations
363 */function clockwise(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var r=p.indexOf(e);var n=p.slice(r+1).concat(p.slice(0,r));return t?n.reverse():n}var u={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};
364/**
365 * @function
366 * @memberof Modifiers
367 * @argument {Object} data - The data object generated by update method
368 * @argument {Object} options - Modifiers configuration and options
369 * @returns {Object} The data object, properly modified
370 */function flip(e,t){if(isModifierEnabled(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var r=getBoundaries(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed);var n=e.placement.split("-")[0];var o=getOppositePlacement(n);var i=e.placement.split("-")[1]||"";var a=[];switch(t.behavior){case u.FLIP:a=[n,o];break;case u.CLOCKWISE:a=clockwise(n);break;case u.COUNTERCLOCKWISE:a=clockwise(n,true);break;default:a=t.behavior}a.forEach((function(f,l){if(n!==f||a.length===l+1)return e;n=e.placement.split("-")[0];o=getOppositePlacement(n);var p=e.offsets.popper;var u=e.offsets.reference;var d=Math.floor;var c="left"===n&&d(p.right)>d(u.left)||"right"===n&&d(p.left)<d(u.right)||"top"===n&&d(p.bottom)>d(u.top)||"bottom"===n&&d(p.top)<d(u.bottom);var v=d(p.left)<d(r.left);var h=d(p.right)>d(r.right);var m=d(p.top)<d(r.top);var g=d(p.bottom)>d(r.bottom);var b="left"===n&&v||"right"===n&&h||"top"===n&&m||"bottom"===n&&g;var y=-1!==["top","bottom"].indexOf(n);var w=!!t.flipVariations&&(y&&"start"===i&&v||y&&"end"===i&&h||!y&&"start"===i&&m||!y&&"end"===i&&g);var O=!!t.flipVariationsByContent&&(y&&"start"===i&&h||y&&"end"===i&&v||!y&&"start"===i&&g||!y&&"end"===i&&m);var E=w||O;if(c||b||E){e.flipped=true;(c||b)&&(n=a[l+1]);E&&(i=getOppositeVariation(i));e.placement=n+(i?"-"+i:"");e.offsets.popper=s({},e.offsets.popper,getPopperOffsets(e.instance.popper,e.offsets.reference,e.placement));e=runModifiers(e.instance.modifiers,e,"flip")}}));return e}
371/**
372 * @function
373 * @memberof Modifiers
374 * @argument {Object} data - The data object generated by update method
375 * @argument {Object} options - Modifiers configuration and options
376 * @returns {Object} The data object, properly modified
377 */function keepTogether(e){var t=e.offsets,r=t.popper,n=t.reference;var o=e.placement.split("-")[0];var i=Math.floor;var a=-1!==["top","bottom"].indexOf(o);var s=a?"right":"bottom";var f=a?"left":"top";var l=a?"width":"height";r[s]<i(n[f])&&(e.offsets.popper[f]=i(n[f])-r[l]);r[f]>i(n[s])&&(e.offsets.popper[f]=i(n[s]));return e}
378/**
379 * Converts a string containing value + unit into a px value number
380 * @function
381 * @memberof {modifiers~offset}
382 * @private
383 * @argument {String} str - Value + unit string
384 * @argument {String} measurement - `height` or `width`
385 * @argument {Object} popperOffsets
386 * @argument {Object} referenceOffsets
387 * @returns {Number|String}
388 * Value in pixels, or original string if no values were extracted
389 */function toValue(e,t,r,n){var o=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);var i=+o[1];var a=o[2];if(!i)return e;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=r;break;case"%":case"%r":default:s=n}var f=getClientRect(s);return f[t]/100*i}if("vh"===a||"vw"===a){var l=void 0;l="vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0);return l/100*i}return i}
390/**
391 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
392 * @function
393 * @memberof {modifiers~offset}
394 * @private
395 * @argument {String} offset
396 * @argument {Object} popperOffsets
397 * @argument {Object} referenceOffsets
398 * @argument {String} basePlacement
399 * @returns {Array} a two cells array with x and y offsets in numbers
400 */function parseOffset(e,t,r,n){var o=[0,0];var i=-1!==["right","left"].indexOf(n);var a=e.split(/(\+|\-)/).map((function(e){return e.trim()}));var s=a.indexOf(find(a,(function(e){return-1!==e.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var f=/\s*,\s*|\s+/;var l=-1!==s?[a.slice(0,s).concat([a[s].split(f)[0]]),[a[s].split(f)[1]].concat(a.slice(s+1))]:[a];l=l.map((function(e,n){var o=(1===n?!i:i)?"height":"width";var a=false;return e.reduce((function(e,t){if(""===e[e.length-1]&&-1!==["+","-"].indexOf(t)){e[e.length-1]=t;a=true;return e}if(a){e[e.length-1]+=t;a=false;return e}return e.concat(t)}),[]).map((function(e){return toValue(e,o,t,r)}))}));l.forEach((function(e,t){e.forEach((function(r,n){isNumeric(r)&&(o[t]+=r*("-"===e[n-1]?-1:1))}))}));return o}
401/**
402 * @function
403 * @memberof Modifiers
404 * @argument {Object} data - The data object generated by update method
405 * @argument {Object} options - Modifiers configuration and options
406 * @argument {Number|String} options.offset=0
407 * The offset value as described in the modifier description
408 * @returns {Object} The data object, properly modified
409 */function offset(e,t){var r=t.offset;var n=e.placement,o=e.offsets,i=o.popper,a=o.reference;var s=n.split("-")[0];var f=void 0;f=isNumeric(+r)?[+r,0]:parseOffset(r,i,a,s);if("left"===s){i.top+=f[0];i.left-=f[1]}else if("right"===s){i.top+=f[0];i.left+=f[1]}else if("top"===s){i.left+=f[0];i.top-=f[1]}else if("bottom"===s){i.left+=f[0];i.top+=f[1]}e.popper=i;return e}
410/**
411 * @function
412 * @memberof Modifiers
413 * @argument {Object} data - The data object generated by `update` method
414 * @argument {Object} options - Modifiers configuration and options
415 * @returns {Object} The data object, properly modified
416 */function preventOverflow(e,t){var r=t.boundariesElement||getOffsetParent(e.instance.popper);e.instance.reference===r&&(r=getOffsetParent(r));var n=getSupportedPropertyName("transform");var o=e.instance.popper.style;var i=o.top,a=o.left,f=o[n];o.top="";o.left="";o[n]="";var l=getBoundaries(e.instance.popper,e.instance.reference,t.padding,r,e.positionFixed);o.top=i;o.left=a;o[n]=f;t.boundaries=l;var p=t.priority;var u=e.offsets.popper;var d={primary:function primary(e){var r=u[e];u[e]<l[e]&&!t.escapeWithReference&&(r=Math.max(u[e],l[e]));return defineProperty({},e,r)},secondary:function secondary(e){var r="right"===e?"left":"top";var n=u[r];u[e]>l[e]&&!t.escapeWithReference&&(n=Math.min(u[r],l[e]-("right"===e?u.width:u.height)));return defineProperty({},r,n)}};p.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=s({},u,d[t](e))}));e.offsets.popper=u;return e}
417/**
418 * @function
419 * @memberof Modifiers
420 * @argument {Object} data - The data object generated by `update` method
421 * @argument {Object} options - Modifiers configuration and options
422 * @returns {Object} The data object, properly modified
423 */function shift(e){var t=e.placement;var r=t.split("-")[0];var n=t.split("-")[1];if(n){var o=e.offsets,i=o.reference,a=o.popper;var f=-1!==["bottom","top"].indexOf(r);var l=f?"left":"top";var p=f?"width":"height";var u={start:defineProperty({},l,i[l]),end:defineProperty({},l,i[l]+i[p]-a[p])};e.offsets.popper=s({},a,u[n])}return e}
424/**
425 * @function
426 * @memberof Modifiers
427 * @argument {Object} data - The data object generated by update method
428 * @argument {Object} options - Modifiers configuration and options
429 * @returns {Object} The data object, properly modified
430 */function hide(e){if(!isModifierRequired(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference;var r=find(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottom<r.top||t.left>r.right||t.top>r.bottom||t.right<r.left){if(true===e.hide)return e;e.hide=true;e.attributes["x-out-of-boundaries"]=""}else{if(false===e.hide)return e;e.hide=false;e.attributes["x-out-of-boundaries"]=false}return e}
431/**
432 * @function
433 * @memberof Modifiers
434 * @argument {Object} data - The data object generated by `update` method
435 * @argument {Object} options - Modifiers configuration and options
436 * @returns {Object} The data object, properly modified
437 */function inner(e){var t=e.placement;var r=t.split("-")[0];var n=e.offsets,o=n.popper,i=n.reference;var a=-1!==["left","right"].indexOf(r);var s=-1===["top","left"].indexOf(r);o[a?"left":"top"]=i[r]-(s?o[a?"width":"height"]:0);e.placement=getOppositePlacement(t);e.offsets.popper=getClientRect(o);return e}
438/**
439 * Modifier function, each modifier can have a function of this type assigned
440 * to its `fn` property.<br />
441 * These functions will be called on each update, this means that you must
442 * make sure they are performant enough to avoid performance bottlenecks.
443 *
444 * @function ModifierFn
445 * @argument {dataObject} data - The data object generated by `update` method
446 * @argument {Object} options - Modifiers configuration and options
447 * @returns {dataObject} The data object, properly modified
448 */var d={shift:{order:100,enabled:true,fn:shift},offset:{order:200,enabled:true,fn:offset,offset:0},preventOverflow:{order:300,enabled:true,fn:preventOverflow,priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:true,fn:keepTogether},arrow:{order:500,enabled:true,fn:arrow,element:"[x-arrow]"},flip:{order:600,enabled:true,fn:flip,behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:false,flipVariationsByContent:false},inner:{order:700,enabled:false,fn:inner},hide:{order:800,enabled:true,fn:hide},computeStyle:{order:850,enabled:true,fn:computeStyle,gpuAcceleration:true,x:"bottom",y:"right"},applyStyle:{order:900,enabled:true,fn:applyStyle,onLoad:applyStyleOnLoad,
449/**
450     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
451     * @prop {Boolean} gpuAcceleration=true
452     * If true, it uses the CSS 3D transformation to position the popper.
453     * Otherwise, it will use the `top` and `left` properties
454     */
455gpuAcceleration:void 0}};
456/**
457 * Default options provided to Popper.js constructor.<br />
458 * These can be overridden using the `options` argument of Popper.js.<br />
459 * To override an option, simply pass an object with the same
460 * structure of the `options` object, as the 3rd argument. For example:
461 * ```
462 * new Popper(ref, pop, {
463 *   modifiers: {
464 *     preventOverflow: { enabled: false }
465 *   }
466 * })
467 * ```
468 * @type {Object}
469 * @static
470 * @memberof Popper
471 */var c={placement:"bottom",positionFixed:false,eventsEnabled:true,removeOnDestroy:false,onCreate:function onCreate(){},onUpdate:function onUpdate(){},modifiers:d};
472/**
473 * @callback onCreate
474 * @param {dataObject} data
475 */
476/**
477 * @callback onUpdate
478 * @param {dataObject} data
479 */var v=function(){
480/**
481   * Creates a new Popper.js instance.
482   * @class Popper
483   * @param {Element|referenceObject} reference - The reference element used to position the popper
484   * @param {Element} popper - The HTML / XML element used as the popper
485   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
486   * @return {Object} instance - The generated Popper.js instance
487   */
488function Popper(e,t){var r=this;var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};classCallCheck(this,Popper);this.scheduleUpdate=function(){return requestAnimationFrame(r.update)};this.update=n(this.update.bind(this));this.options=s({},Popper.Defaults,o);this.state={isDestroyed:false,isCreated:false,scrollParents:[]};this.reference=e&&e.jquery?e[0]:e;this.popper=t&&t.jquery?t[0]:t;this.options.modifiers={};Object.keys(s({}
488,Popper.Defaults.modifiers,o.modifiers)).forEach((function(e){r.options.modifiers[e]=s({},Popper.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}));this.modifiers=Object.keys(this.options.modifiers).map((function(e){return s({name:e},r.options.modifiers[e])})).sort((function(e,t){return e.order-t.order}));this.modifiers.forEach((function(e){e.enabled&&isFunction(e.onLoad)&&e.onLoad(r.reference,r.popper,r.options,e,r.state)}));this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners();this.state.eventsEnabled=i}a(Popper,[{key:"update",value:function update$$1(){return update.call(this)}},{key:"destroy",value:function destroy$$1(){return destroy.call(this)}},{key:"enableEventListeners",value:function enableEventListeners$$1(){return enableEventListeners.call(this)}},{key:"disableEventListeners",value:function disableEventListeners$$1(){return disableEventListeners.call(this)}
489/**
490     * Collection of utilities useful when writing custom modifiers.
491     * Starting from version 1.7, this method is available only if you
492     * include `popper-utils.js` before `popper.js`.
493     *
494     * **DEPRECATION**: This way to access PopperUtils is deprecated
495     * and will be removed in v2! Use the PopperUtils module directly instead.
496     * Due to the high instability of the methods contained in Utils, we can't
497     * guarantee them to follow semver. Use them at your own risk!
498     * @static
499     * @private
500     * @type {Object}
501     * @deprecated since version 1.8
502     * @member Utils
503     * @memberof Popper
504     */}]);return Popper}();v.Utils=("undefined"!==typeof window?window:global).PopperUtils;v.placements=l;v.Defaults=c;export default v;
505
506//

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.