From d8992c112897f68f777ce7837bd8a9a8caba9ad3 Mon Sep 17 00:00:00 2001 From: Brian Coords Date: Tue, 7 Sep 2021 13:03:14 -0700 Subject: [PATCH] updates version to 1.0.0 --- js/child-theme.js | 2 +- js/child-theme.min.js | 29 +++++++++++++++++++++++++++-- js/child-theme.min.js.map | 2 +- package-lock.json | 2 +- package.json | 2 +- style.css | 2 +- 6 files changed, 32 insertions(+), 7 deletions(-) diff --git a/js/child-theme.js b/js/child-theme.js index bbbf5be8f..3d6388496 100644 --- a/js/child-theme.js +++ b/js/child-theme.js @@ -1,5 +1,5 @@ /*! - * Understrap v0.6.0 (https://understrap.com) + * Understrap v1.0.0 (https://understrap.com) * Copyright 2013-2021 The Understrap Authors (https://github.com/understrap/understrap/graphs/contributors) * Licensed under GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) */ diff --git a/js/child-theme.min.js b/js/child-theme.min.js index a2c0bd761..3b581f81f 100644 --- a/js/child-theme.min.js +++ b/js/child-theme.min.js @@ -1,7 +1,32 @@ /*! - * Understrap v0.6.0 (https://understrap.com) + * Understrap v1.0.0 (https://understrap.com) * Copyright 2013-2021 The Understrap Authors (https://github.com/understrap/understrap/graphs/contributors) * Licensed under GPL (http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).understrap={},t.jQuery)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e),o="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator;const s=function(){const t=["Edge","Trident","Firefox"];for(let e=0;e=0)return 1;return 0}();var r=o&&window.Promise?function(t){let e=!1;return()=>{e||(e=!0,window.Promise.resolve().then((()=>{e=!1,t()})))}}:function(t){let e=!1;return()=>{e||(e=!0,setTimeout((()=>{e=!1,t()}),s))}};function a(t){return t&&"[object Function]"==={}.toString.call(t)}function l(t,e){if(1!==t.nodeType)return[];const n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function d(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:e,overflowX:n,overflowY:i}=l(t);return/(auto|scroll|overlay)/.test(e+i+n)?t:c(d(t))}function f(t){return t&&t.referenceNode?t.referenceNode:t}const h=o&&!(!window.MSInputMethodContext||!document.documentMode),u=o&&/MSIE 10/.test(navigator.userAgent);function p(t){return 11===t?h:10===t?u:h||u}function m(t){if(!t)return document.documentElement;const e=p(10)?document.body:null;let n=t.offsetParent||null;for(;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;const i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===l(n,"position")?m(n):n:t?t.ownerDocument.documentElement:document.documentElement}function g(t){return null!==t.parentNode?g(t.parentNode):t}function _(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;const n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,s=document.createRange();s.setStart(i,0),s.setEnd(o,0);const{commonAncestorContainer:r}=s;if(t!==r&&e!==r||i.contains(o))return function(t){const{nodeName:e}=t;return"BODY"!==e&&("HTML"===e||m(t.firstElementChild)===t)}(r)?r:m(r);const a=g(t);return a.host?_(a.host,e):_(t,g(e).host)}function b(t,e="top"){const n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){const e=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||e)[n]}return t[n]}function v(t,e){const n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t[`border${n}Width`])+parseFloat(t[`border${i}Width`])}function y(t,e,n,i){return Math.max(e[`offset${t}`],e[`scroll${t}`],n[`client${t}`],n[`offset${t}`],n[`scroll${t}`],p(10)?parseInt(n[`offset${t}`])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function w(t){const e=t.body,n=t.documentElement,i=p(10)&&getComputedStyle(n);return{height:y("Height",e,n,i),width:y("Width",e,n,i)}}function E(t){return{...t,right:t.left+t.width,bottom:t.top+t.height}}function T(t){let e={};try{if(p(10)){e=t.getBoundingClientRect();const n=b(t,"top"),i=b(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}const n={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?w(t.ownerDocument):{},o=i.width||t.clientWidth||n.width,s=i.height||t.clientHeight||n.height;let r=t.offsetWidth-o,a=t.offsetHeight-s;if(r||a){const e=l(t);r-=v(e,"x"),a-=v(e,"y"),n.width-=r,n.height-=a}return E(n)}function C(t,e,n=!1){const i=p(10),o="HTML"===e.nodeName,s=T(t),r=T(e),a=c(t),d=l(e),f=parseFloat(d.borderTopWidth),h=parseFloat(d.borderLeftWidth);n&&o&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));let u=E({top:s.top-r.top-f,left:s.left-r.left-h,width:s.width,height:s.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){const t=parseFloat(d.marginTop),e=parseFloat(d.marginLeft);u.top-=f-t,u.bottom-=f-t,u.left-=h-e,u.right-=h-e,u.marginTop=t,u.marginLeft=e}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e,n=!1){const i=b(e,"top"),o=b(e,"left"),s=n?-1:1;return t.top+=i*s,t.bottom+=i*s,t.left+=o*s,t.right+=o*s,t}(u,e)),u}function S(t){const e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===l(t,"position"))return!0;const n=d(t);return!!n&&S(n)}function D(t){if(!t||!t.parentElement||p())return document.documentElement;let e=t.parentElement;for(;e&&"none"===l(e,"transform");)e=e.parentElement;return e||document.documentElement}function N(t,e,n,i,o=!1){let s={top:0,left:0};const r=o?D(t):_(t,f(e));if("viewport"===i)s=function(t,e=!1){const n=t.ownerDocument.documentElement,i=C(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),s=Math.max(n.clientHeight,window.innerHeight||0),r=e?0:b(n),a=e?0:b(n,"left");return E({top:r-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:s})}(r,o);else{let n;"scrollParent"===i?(n=c(d(e)),"BODY"===n.nodeName&&(n=t.ownerDocument.documentElement)):n="window"===i?t.ownerDocument.documentElement:i;const a=C(n,r,o);if("HTML"!==n.nodeName||S(r))s=a;else{const{height:e,width:n}=w(t.ownerDocument);s.top+=a.top-a.marginTop,s.bottom=e+a.top,s.left+=a.left-a.marginLeft,s.right=n+a.left}}const a="number"==typeof(n=n||0);return s.left+=a?n:n.left||0,s.top+=a?n:n.top||0,s.right-=a?n:n.right||0,s.bottom-=a?n:n.bottom||0,s}function x({width:t,height:e}){return t*e}function O(t,e,n,i,o,s=0){if(-1===t.indexOf("auto"))return t;const r=N(n,i,s,o),a={top:{width:r.width,height:e.top-r.top},right:{width:r.right-e.right,height:r.height},bottom:{width:r.width,height:r.bottom-e.bottom},left:{width:e.left-r.left,height:r.height}},l=Object.keys(a).map((t=>({key:t,...a[t],area:x(a[t])}))).sort(((t,e)=>e.area-t.area)),d=l.filter((({width:t,height:e})=>t>=n.clientWidth&&e>=n.clientHeight)),c=d.length>0?d[0].key:l[0].key,f=t.split("-")[1];return c+(f?`-${f}`:"")}function A(t,e,n,i=null){return C(n,i?D(e):_(e,f(n)),i)}function I(t){const e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function k(t){const e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(t=>e[t]))}function L(t,e,n){n=n.split("-")[0];const i=I(t),o={width:i.width,height:i.height},s=-1!==["right","left"].indexOf(n),r=s?"top":"left",a=s?"left":"top",l=s?"height":"width",d=s?"width":"height";return o[r]=e[r]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[d]:e[k(a)],o}function F(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function j(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((t=>t[e]===n));const i=F(t,(t=>t[e]===n));return t.indexOf(i)}(t,"name",n))).forEach((t=>{t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");const n=t.function||t.fn;t.enabled&&a(n)&&(e.offsets.popper=E(e.offsets.popper),e.offsets.reference=E(e.offsets.reference),e=n(e,t))})),e}function P(){if(this.state.isDestroyed)return;let t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=A(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=O(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=L(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=j(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}function M(t,e){return t.some((({name:t,enabled:n})=>n&&t===e))}function H(t){const e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1);for(let i=0;i{t.removeEventListener("scroll",e.updateBound)})),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function Q(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function V(t,e){Object.keys(e).forEach((n=>{let i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Q(e[n])&&(i="px"),t.style[n]=e[n]+i}))}const Y=o&&/Firefox/i.test(navigator.userAgent);function z(t,e,n){const i=F(t,(({name:t})=>t===e)),o=!!i&&t.some((t=>t.name===n&&t.enabled&&t.ordert.trim())),a=r.indexOf(F(r,(t=>-1!==t.search(/,|\s/))));r[a]&&-1===r[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");const l=/\s*,\s*|\s+/;let d=-1!==a?[r.slice(0,a).concat([r[a].split(l)[0]]),[r[a].split(l)[1]].concat(r.slice(a+1))]:[r];return d=d.map(((t,i)=>{const o=(1===i?!s:s)?"height":"width";let r=!1;return t.reduce(((t,e)=>""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,r=!0,t):r?(t[t.length-1]+=e,r=!1,t):t.concat(e)),[]).map((t=>function(t,e,n,i){const o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),s=+o[1],r=o[2];if(!s)return t;if(0===r.indexOf("%")){let t;switch(r){case"%p":t=n;break;case"%":case"%r":default:t=i}return E(t)[e]/100*s}if("vh"===r||"vw"===r){let t;return t="vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0),t/100*s}return s}(t,o,e,n)))})),d.forEach(((t,e)=>{t.forEach(((n,i)=>{Q(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var nt={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:()=>{},onUpdate:()=>{},modifiers:{shift:{order:100,enabled:!0,fn:function(t){const e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){const{reference:e,popper:o}=t.offsets,s=-1!==["bottom","top"].indexOf(n),r=s?"left":"top",a=s?"width":"height",l={start:{[r]:e[r]},end:{[r]:e[r]+e[a]-o[a]}};t.offsets.popper={...o,...l[i]}}return t}},offset:{order:200,enabled:!0,fn:function(t,{offset:e}){const{placement:n,offsets:{popper:i,reference:o}}=t,s=n.split("-")[0];let r;return r=Q(+e)?[+e,0]:et(e,i,o,s),"left"===s?(i.top+=r[0],i.left-=r[1]):"right"===s?(i.top+=r[0],i.left+=r[1]):"top"===s?(i.left+=r[0],i.top-=r[1]):"bottom"===s&&(i.left+=r[0],i.top+=r[1]),t.popper=i,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){let n=e.boundariesElement||m(t.instance.popper);t.instance.reference===n&&(n=m(n));const i=H("transform"),o=t.instance.popper.style,{top:s,left:r,[i]:a}=o;o.top="",o.left="",o[i]="";const l=N(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=s,o.left=r,o[i]=a,e.boundaries=l;const d=e.priority;let c=t.offsets.popper;const f={primary(t){let n=c[t];return c[t]l[t]&&!e.escapeWithReference&&(i=Math.min(c[n],l[t]-("right"===t?c.width:c.height))),{[n]:i}}};return d.forEach((t=>{const e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c={...c,...f[e](t)}})),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){const{popper:e,reference:n}=t.offsets,i=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(i),r=s?"right":"bottom",a=s?"left":"top",l=s?"width":"height";return e[r]o(n[r])&&(t.offsets.popper[a]=o(n[r])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){if(!z(t.instance.modifiers,"arrow","keepTogether"))return t;let n=e.element;if("string"==typeof n){if(n=t.instance.popper.querySelector(n),!n)return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;const i=t.placement.split("-")[0],{popper:o,reference:s}=t.offsets,r=-1!==["left","right"].indexOf(i),a=r?"height":"width",d=r?"Top":"Left",c=d.toLowerCase(),f=r?"left":"top",h=r?"bottom":"right",u=I(n)[a];s[h]-uo[h]&&(t.offsets.popper[c]+=s[c]+u-o[h]),t.offsets.popper=E(t.offsets.popper);const p=s[c]+s[a]/2-u/2,m=l(t.instance.popper),g=parseFloat(m[`margin${d}`]),_=parseFloat(m[`border${d}Width`]);let b=p-t.offsets.popper[c]-g-_;return b=Math.max(Math.min(o[a]-u,b),0),t.arrowElement=n,t.offsets.arrow={[c]:Math.round(b),[f]:""},t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(M(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;const n=N(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed);let i=t.placement.split("-")[0],o=k(i),s=t.placement.split("-")[1]||"",r=[];switch(e.behavior){case J:r=[i,o];break;case Z:r=G(i);break;case tt:r=G(i,!0);break;default:r=e.behavior}return r.forEach(((a,l)=>{if(i!==a||r.length===l+1)return t;i=t.placement.split("-")[0],o=k(i);const d=t.offsets.popper,c=t.offsets.reference,f=Math.floor,h="left"===i&&f(d.right)>f(c.left)||"right"===i&&f(d.left)f(c.top)||"bottom"===i&&f(d.top)f(n.right),m=f(d.top)f(n.bottom),_="left"===i&&u||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,b=-1!==["top","bottom"].indexOf(i),v=!!e.flipVariations&&(b&&"start"===s&&u||b&&"end"===s&&p||!b&&"start"===s&&m||!b&&"end"===s&&g),y=!!e.flipVariationsByContent&&(b&&"start"===s&&p||b&&"end"===s&&u||!b&&"start"===s&&g||!b&&"end"===s&&m),w=v||y;(h||_||w)&&(t.flipped=!0,(h||_)&&(i=r[l+1]),w&&(s=function(t){return"end"===t?"start":"start"===t?"end":t}(s)),t.placement=i+(s?"-"+s:""),t.offsets.popper={...t.offsets.popper,...L(t.instance.popper,t.offsets.reference,t.placement)},t=j(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){const e=t.placement,n=e.split("-")[0],{popper:i,reference:o}=t.offsets,s=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[s?"left":"top"]=o[n]-(r?i[s?"width":"height"]:0),t.placement=k(e),t.offsets.popper=E(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!z(t.instance.modifiers,"hide","preventOverflow"))return t;const e=t.offsets.reference,n=F(t.instance.modifiers,(t=>"preventOverflow"===t.name)).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right"applyStyle"===t.name)).gpuAcceleration;void 0!==s&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");const r=void 0!==s?s:e.gpuAcceleration,a=m(t.instance.popper),l=T(a),d={position:o.position},c=function(t,e){const{popper:n,reference:i}=t.offsets,{round:o,floor:s}=Math,r=t=>t,a=o(i.width),l=o(n.width),d=-1!==["left","right"].indexOf(t.placement),c=-1!==t.placement.indexOf("-"),f=e?d||c||a%2==l%2?o:s:r,h=e?o:r;return{left:f(a%2==1&&l%2==1&&!c&&e?n.left-1:n.left),top:h(n.top),bottom:h(n.bottom),right:f(n.right)}}(t,window.devicePixelRatio<2||!Y),f="bottom"===n?"top":"bottom",h="right"===i?"left":"right",u=H("transform");let p,g;if(g="bottom"===f?"HTML"===a.nodeName?-a.clientHeight+c.bottom:-l.height+c.bottom:c.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+c.right:-l.width+c.right:c.left,r&&u)d[u]=`translate3d(${p}px, ${g}px, 0)`,d[f]=0,d[h]=0,d.willChange="transform";else{const t="bottom"===f?-1:1,e="right"===h?-1:1;d[f]=g*t,d[h]=p*e,d.willChange=`${f}, ${h}`}const _={"x-placement":t.placement};return t.attributes={..._,...t.attributes},t.styles={...d,...t.styles},t.arrowStyles={...t.offsets.arrow,...t.arrowStyles},t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return V(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach((function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)})),t.arrowElement&&Object.keys(t.arrowStyles).length&&V(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){const s=A(0,e,t,n.positionFixed),r=O(n.placement,s,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",r),V(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}};class it{constructor(t,e,n={}){this.update=r(this.update.bind(this)),this.options={...it.Defaults,...n},this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys({...it.Defaults.modifiers,...n.modifiers}).forEach((t=>{this.options.modifiers[t]={...it.Defaults.modifiers[t]||{},...n.modifiers?n.modifiers[t]:{}}})),this.modifiers=Object.keys(this.options.modifiers).map((t=>({name:t,...this.options.modifiers[t]}))).sort(((t,e)=>t.order-e.order)),this.modifiers.forEach((t=>{t.enabled&&a(t.onLoad)&&t.onLoad(this.reference,this.popper,this.options,t,this.state)})),this.update();const i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}update(){return P.call(this)}destroy(){return R.call(this)}enableEventListeners(){return $.call(this)}disableEventListeners(){return U.call(this)}scheduleUpdate=()=>requestAnimationFrame(this.update);static Utils=("undefined"!=typeof window?window:global).PopperUtils;static placements=X;static Defaults=nt}const ot="transitionend";function st(t){let e=!1;return i.default(this).one(rt.TRANSITION_END,(()=>{e=!0})),setTimeout((()=>{e||rt.triggerTransitionEnd(this)}),t),this}const rt={TRANSITION_END:"bsTransitionEnd",getUID(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement(t){let e=t.getAttribute("data-target");if(!e||"#"===e){const n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement(t){if(!t)return 0;let e=i.default(t).css("transition-duration"),n=i.default(t).css("transition-delay");const o=parseFloat(e),s=parseFloat(n);return o||s?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:t=>t.offsetHeight,triggerTransitionEnd(t){i.default(t).trigger(ot)},supportsTransitionEnd:()=>Boolean(ot),isElement:t=>(t[0]||t).nodeType,typeCheckConfig(t,e,n){for(const o in n)if(Object.prototype.hasOwnProperty.call(n,o)){const s=n[o],r=e[o],a=r&&rt.isElement(r)?"element":null===(i=r)||"undefined"==typeof i?`${i}`:{}.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(`${t.toUpperCase()}: Option "${o}" provided type "${a}" but expected type "${s}".`)}var i},findShadowRoot(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?rt.findShadowRoot(t.parentNode):null},jQueryDetection(){if("undefined"==typeof i.default)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");const t=i.default.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};rt.jQueryDetection(),i.default.fn.emulateTransitionEnd=st,i.default.event.special[rt.TRANSITION_END]={bindType:ot,delegateType:ot,handle(t){if(i.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};const at="bs.alert",lt=i.default.fn.alert;class dt{constructor(t){this._element=t}static get VERSION(){return"4.6.0"}close(t){let e=this._element;t&&(e=this._getRootElement(t));this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)}dispose(){i.default.removeData(this._element,at),this._element=null}_getRootElement(t){const e=rt.getSelectorFromElement(t);let n=!1;return e&&(n=document.querySelector(e)),n||(n=i.default(t).closest(".alert")[0]),n}_triggerCloseEvent(t){const e=i.default.Event("close.bs.alert");return i.default(t).trigger(e),e}_removeElement(t){if(i.default(t).removeClass("show"),!i.default(t).hasClass("fade"))return void this._destroyElement(t);const e=rt.getTransitionDurationFromElement(t);i.default(t).one(rt.TRANSITION_END,(e=>this._destroyElement(t,e))).emulateTransitionEnd(e)}_destroyElement(t){i.default(t).detach().trigger("closed.bs.alert").remove()}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(at);n||(n=new dt(this),e.data(at,n)),"close"===t&&n[t](this)}))}static _handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}i.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',dt._handleDismiss(new dt)),i.default.fn.alert=dt._jQueryInterface,i.default.fn.alert.Constructor=dt,i.default.fn.alert.noConflict=()=>(i.default.fn.alert=lt,dt._jQueryInterface);const ct="bs.button",ft=i.default.fn.button,ht="active",ut='[data-toggle^="button"]',pt='input:not([type="hidden"])',mt=".btn";class gt{constructor(t){this._element=t,this.shouldAvoidTriggerChange=!1}static get VERSION(){return"4.6.0"}toggle(){let t=!0,e=!0;const n=i.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){const o=this._element.querySelector(pt);if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains(ht))t=!1;else{const t=n.querySelector(".active");t&&i.default(t).removeClass(ht)}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains(ht)),this.shouldAvoidTriggerChange||i.default(o).trigger("change")),o.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ht)),t&&i.default(this._element).toggleClass(ht))}dispose(){i.default.removeData(this._element,ct),this._element=null}static _jQueryInterface(t,e){return this.each((function(){const n=i.default(this);let o=n.data(ct);o||(o=new gt(this),n.data(ct,o)),o.shouldAvoidTriggerChange=e,"toggle"===t&&o[t]()}))}}i.default(document).on("click.bs.button.data-api",ut,(t=>{let e=t.target;const n=e;if(i.default(e).hasClass("btn")||(e=i.default(e).closest(mt)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{const o=e.querySelector(pt);if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||gt._jQueryInterface.call(i.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",ut,(t=>{const e=i.default(t.target).closest(mt)[0];i.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),i.default(window).on("load.bs.button.data-api",(()=>{let t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn'));for(let e=0,n=t.length;e(i.default.fn.button=ft,gt._jQueryInterface);const _t="carousel",bt="bs.carousel",vt=".bs.carousel",yt=i.default.fn[_t],wt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Et={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Tt="next",Ct="prev",St="slid.bs.carousel",Dt="active",Nt=".active.carousel-item",xt={TOUCH:"touch",PEN:"pen"};class Ot{constructor(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}static get VERSION(){return"4.6.0"}static get Default(){return wt}next(){this._isSliding||this._slide(Tt)}nextWhenVisible(){const t=i.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()}prev(){this._isSliding||this._slide(Ct)}pause(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(rt.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=this._element.querySelector(Nt);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void i.default(this._element).one(St,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const n=t>e?Tt:Ct;this._slide(n,this._items[t])}dispose(){i.default(this._element).off(vt),i.default.removeData(this._element,bt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}_getConfig(t){return t={...wt,...t},rt.typeCheckConfig(_t,t,Et),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}_addEventListeners(){this._config.keyboard&&i.default(this._element).on("keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&i.default(this._element).on("mouseenter.bs.carousel",(t=>this.pause(t))).on("mouseleave.bs.carousel",(t=>this.cycle(t))),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const t=t=>{this._pointerEvent&&xt[t.originalEvent.pointerType.toUpperCase()]?this.touchStartX=t.originalEvent.clientX:this._pointerEvent||(this.touchStartX=t.originalEvent.touches[0].clientX)},e=t=>{t.originalEvent.touches&&t.originalEvent.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=t.originalEvent.touches[0].clientX-this.touchStartX},n=t=>{this._pointerEvent&&xt[t.originalEvent.pointerType.toUpperCase()]&&(this.touchDeltaX=t.originalEvent.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};i.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(t=>t.preventDefault())),this._pointerEvent?(i.default(this._element).on("pointerdown.bs.carousel",(e=>t(e))),i.default(this._element).on("pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(i.default(this._element).on("touchstart.bs.carousel",(e=>t(e))),i.default(this._element).on("touchmove.bs.carousel",(t=>e(t))),i.default(this._element).on("touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}}_getItemIndex(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)}_getItemByDirection(t,e){const n=t===Tt,i=t===Ct,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;const r=(o+(t===Ct?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]}_triggerSlideEvent(t,e){const n=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(Nt)),s=i.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:o,to:n});return i.default(this._element).trigger(s),s}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));i.default(e).removeClass(Dt);const n=this._indicatorsElement.children[this._getItemIndex(t)];n&&i.default(n).addClass(Dt)}}_updateInterval(){const t=this._activeElement||this._element.querySelector(Nt);if(!t)return;const e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(t,e){const n=this._element.querySelector(Nt),o=this._getItemIndex(n),s=e||n&&this._getItemByDirection(t,n),r=this._getItemIndex(s),a=Boolean(this._interval);let l,d,c;if(t===Tt?(l="carousel-item-left",d="carousel-item-next",c="left"):(l="carousel-item-right",d="carousel-item-prev",c="right"),s&&i.default(s).hasClass(Dt))return void(this._isSliding=!1);if(this._triggerSlideEvent(s,c).isDefaultPrevented())return;if(!n||!s)return;this._isSliding=!0,a&&this.pause(),this._setActiveIndicatorElement(s),this._activeElement=s;const f=i.default.Event(St,{relatedTarget:s,direction:c,from:o,to:r});if(i.default(this._element).hasClass("slide")){i.default(s).addClass(d),rt.reflow(s),i.default(n).addClass(l),i.default(s).addClass(l);const t=rt.getTransitionDurationFromElement(n);i.default(n).one(rt.TRANSITION_END,(()=>{i.default(s).removeClass(`${l} ${d}`).addClass(Dt),i.default(n).removeClass(`active ${d} ${l}`),this._isSliding=!1,setTimeout((()=>i.default(this._element).trigger(f)),0)})).emulateTransitionEnd(t)}else i.default(n).removeClass(Dt),i.default(s).addClass(Dt),this._isSliding=!1,i.default(this._element).trigger(f);a&&this.cycle()}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(bt),n={...wt,...i.default(this).data()};"object"==typeof t&&(n={...n,...t});const o="string"==typeof t?t:n.slide;if(e||(e=new Ot(this,n),i.default(this).data(bt,e)),"number"==typeof t)e.to(t);else if("string"==typeof o){if("undefined"==typeof e[o])throw new TypeError(`No method named "${o}"`);e[o]()}else n.interval&&n.ride&&(e.pause(),e.cycle())}))}static _dataApiClickHandler(t){const e=rt.getSelectorFromElement(this);if(!e)return;const n=i.default(e)[0];if(!n||!i.default(n).hasClass("carousel"))return;const o={...i.default(n).data(),...i.default(this).data()},s=this.getAttribute("data-slide-to");s&&(o.interval=!1),Ot._jQueryInterface.call(i.default(n),o),s&&i.default(n).data(bt).to(s),t.preventDefault()}}i.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",Ot._dataApiClickHandler),i.default(window).on("load.bs.carousel.data-api",(()=>{const t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]'));for(let e=0,n=t.length;e(i.default.fn[_t]=yt,Ot._jQueryInterface);const At="collapse",It="bs.collapse",kt=i.default.fn[At],Lt={toggle:!0,parent:""},Ft={toggle:"boolean",parent:"(string|element)"},jt="show",Pt="collapse",Mt="collapsing",Ht="collapsed",Rt="width",Bt='[data-toggle="collapse"]';class qt{constructor(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll(`[data-toggle="collapse"][href="#${t.id}"],[data-toggle="collapse"][data-target="#${t.id}"]`));const n=[].slice.call(document.querySelectorAll(Bt));for(let e=0,i=n.length;ee===t));null!==o&&s.length>0&&(this._selector=o,this._triggerArray.push(i))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get VERSION(){return"4.6.0"}static get Default(){return Lt}toggle(){i.default(this._element).hasClass(jt)?this.hide():this.show()}show(){if(this._isTransitioning||i.default(this._element).hasClass(jt))return;let t,e;if(this._parent&&(t=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((t=>"string"==typeof this._config.parent?t.getAttribute("data-parent")===this._config.parent:t.classList.contains(Pt))),0===t.length&&(t=null)),t&&(e=i.default(t).not(this._selector).data(It),e&&e._isTransitioning))return;const n=i.default.Event("show.bs.collapse");if(i.default(this._element).trigger(n),n.isDefaultPrevented())return;t&&(qt._jQueryInterface.call(i.default(t).not(this._selector),"hide"),e||i.default(t).data(It,null));const o=this._getDimension();i.default(this._element).removeClass(Pt).addClass(Mt),this._element.style[o]=0,this._triggerArray.length&&i.default(this._triggerArray).removeClass(Ht).attr("aria-expanded",!0),this.setTransitioning(!0);const s=`scroll${o[0].toUpperCase()+o.slice(1)}`,r=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,(()=>{i.default(this._element).removeClass(Mt).addClass("collapse show"),this._element.style[o]="",this.setTransitioning(!1),i.default(this._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[o]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!i.default(this._element).hasClass(jt))return;const t=i.default.Event("hide.bs.collapse");if(i.default(this._element).trigger(t),t.isDefaultPrevented())return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,rt.reflow(this._element),i.default(this._element).addClass(Mt).removeClass("collapse show");const n=this._triggerArray.length;if(n>0)for(let t=0;t{this.setTransitioning(!1),i.default(this._element).removeClass(Mt).addClass(Pt).trigger("hidden.bs.collapse")})).emulateTransitionEnd(o)}setTransitioning(t){this._isTransitioning=t}dispose(){i.default.removeData(this._element,It),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(t){return(t={...Lt,...t}).toggle=Boolean(t.toggle),rt.typeCheckConfig(At,t,Ft),t}_getDimension(){return i.default(this._element).hasClass(Rt)?Rt:"height"}_getParent(){let t;rt.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);const e=`[data-toggle="collapse"][data-parent="${this._config.parent}"]`,n=[].slice.call(t.querySelectorAll(e));return i.default(n).each(((t,e)=>{this._addAriaAndCollapsedClass(qt._getTargetFromElement(e),[e])})),t}_addAriaAndCollapsedClass(t,e){const n=i.default(t).hasClass(jt);e.length&&i.default(e).toggleClass(Ht,!n).attr("aria-expanded",n)}static _getTargetFromElement(t){const e=rt.getSelectorFromElement(t);return e?document.querySelector(e):null}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(It);const o={...Lt,...e.data(),..."object"==typeof t&&t?t:{}};if(!n&&o.toggle&&"string"==typeof t&&/show|hide/.test(t)&&(o.toggle=!1),n||(n=new qt(this,o),e.data(It,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}i.default(document).on("click.bs.collapse.data-api",Bt,(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();const e=i.default(this),n=rt.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(n));i.default(o).each((function(){const t=i.default(this),n=t.data(It)?"toggle":e.data();qt._jQueryInterface.call(t,n)}))})),i.default.fn[At]=qt._jQueryInterface,i.default.fn[At].Constructor=qt,i.default.fn[At].noConflict=()=>(i.default.fn[At]=kt,qt._jQueryInterface);var Wt="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,$t=function(){for(var t=["Edge","Trident","Firefox"],e=0;e=0)return 1;return 0}();var Ut=Wt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),$t))}};function Qt(t){return t&&"[object Function]"==={}.toString.call(t)}function Vt(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function Yt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function zt(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Vt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:zt(Yt(t))}function Xt(t){return t&&t.referenceNode?t.referenceNode:t}var Kt=Wt&&!(!window.MSInputMethodContext||!document.documentMode),Gt=Wt&&/MSIE 10/.test(navigator.userAgent);function Jt(t){return 11===t?Kt:10===t?Gt:Kt||Gt}function Zt(t){if(!t)return document.documentElement;for(var e=Jt(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Vt(n,"position")?Zt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function te(t){return null!==t.parentNode?te(t.parentNode):t}function ee(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,s=document.createRange();s.setStart(i,0),s.setEnd(o,0);var r,a,l=s.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(r=l).nodeName)||"HTML"!==a&&Zt(r.firstElementChild)!==r?Zt(l):l;var d=te(t);return d.host?ee(d.host,e):ee(t,te(e).host)}function ne(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,s=t.ownerDocument.scrollingElement||o;return s[n]}return t[n]}function ie(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=ne(e,"top"),o=ne(e,"left"),s=n?-1:1;return t.top+=i*s,t.bottom+=i*s,t.left+=o*s,t.right+=o*s,t}function oe(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function se(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Jt(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function re(t){var e=t.body,n=t.documentElement,i=Jt(10)&&getComputedStyle(n);return{height:se("Height",e,n,i),width:se("Width",e,n,i)}}var ae=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},le=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=Jt(10),o="HTML"===e.nodeName,s=he(t),r=he(e),a=zt(t),l=Vt(e),d=parseFloat(l.borderTopWidth),c=parseFloat(l.borderLeftWidth);n&&o&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));var f=fe({top:s.top-r.top-d,left:s.left-r.left-c,width:s.width,height:s.height});if(f.marginTop=0,f.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop),u=parseFloat(l.marginLeft);f.top-=d-h,f.bottom-=d-h,f.left-=c-u,f.right-=c-u,f.marginTop=h,f.marginLeft=u}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(f=ie(f,e)),f}function pe(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=ue(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),s=Math.max(n.clientHeight,window.innerHeight||0),r=e?0:ne(n),a=e?0:ne(n,"left"),l={top:r-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:s};return fe(l)}function me(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===Vt(t,"position"))return!0;var n=Yt(t);return!!n&&me(n)}function ge(t){if(!t||!t.parentElement||Jt())return document.documentElement;for(var e=t.parentElement;e&&"none"===Vt(e,"transform");)e=e.parentElement;return e||document.documentElement}function _e(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},r=o?ge(t):ee(t,Xt(e));if("viewport"===i)s=pe(r,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=zt(Yt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=ue(a,r,o);if("HTML"!==a.nodeName||me(r))s=l;else{var d=re(t.ownerDocument),c=d.height,f=d.width;s.top+=l.top-l.marginTop,s.bottom=c+l.top,s.left+=l.left-l.marginLeft,s.right=f+l.left}}var h="number"==typeof(n=n||0);return s.left+=h?n:n.left||0,s.top+=h?n:n.top||0,s.right-=h?n:n.right||0,s.bottom-=h?n:n.bottom||0,s}function be(t){return t.width*t.height}function ve(t,e,n,i,o){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var r=_e(n,i,s,o),a={top:{width:r.width,height:e.top-r.top},right:{width:r.right-e.right,height:r.height},bottom:{width:r.width,height:r.bottom-e.bottom},left:{width:e.left-r.left,height:r.height}},l=Object.keys(a).map((function(t){return ce({key:t},a[t],{area:be(a[t])})})).sort((function(t,e){return e.area-t.area})),d=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),c=d.length>0?d[0].key:l[0].key,f=t.split("-")[1];return c+(f?"-"+f:"")}function ye(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?ge(e):ee(e,Xt(n));return ue(n,o,i)}function we(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Ee(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Te(t,e,n){n=n.split("-")[0];var i=we(t),o={width:i.width,height:i.height},s=-1!==["right","left"].indexOf(n),r=s?"top":"left",a=s?"left":"top",l=s?"height":"width",d=s?"width":"height";return o[r]=e[r]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[d]:e[Ee(a)],o}function Ce(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Se(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=Ce(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&Qt(n)&&(e.offsets.popper=fe(e.offsets.popper),e.offsets.reference=fe(e.offsets.reference),e=n(e,t))})),e}function De(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=ye(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=ve(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Te(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Se(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Ne(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function xe(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=Be.indexOf(t),i=Be.slice(n+1).concat(Be.slice(0,n));return e?i.reverse():i}var We="flip",$e="clockwise",Ue="counterclockwise";function Qe(t,e,n,i){var o=[0,0],s=-1!==["right","left"].indexOf(i),r=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=r.indexOf(Ce(r,(function(t){return-1!==t.search(/,|\s/)})));r[a]&&-1===r[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,d=-1!==a?[r.slice(0,a).concat([r[a].split(l)[0]]),[r[a].split(l)[1]].concat(r.slice(a+1))]:[r];return(d=d.map((function(t,i){var o=(1===i?!s:s)?"height":"width",r=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,r=!0,t):r?(t[t.length-1]+=e,r=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),s=+o[1],r=o[2];if(!s)return t;if(0===r.indexOf("%")){var a=void 0;switch(r){case"%p":a=n;break;case"%":case"%r":default:a=i}return fe(a)[e]/100*s}if("vh"===r||"vw"===r)return("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*s;return s}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){je(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var Ve={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,s=o.reference,r=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",d=a?"width":"height",c={start:de({},l,s[l]),end:de({},l,s[l]+s[d]-r[d])};t.offsets.popper=ce({},r,c[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,s=o.popper,r=o.reference,a=i.split("-")[0],l=void 0;return l=je(+n)?[+n,0]:Qe(n,s,r,a),"left"===a?(s.top+=l[0],s.left-=l[1]):"right"===a?(s.top+=l[0],s.left+=l[1]):"top"===a?(s.left+=l[0],s.top-=l[1]):"bottom"===a&&(s.left+=l[0],s.top+=l[1]),t.popper=s,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||Zt(t.instance.popper);t.instance.reference===n&&(n=Zt(n));var i=xe("transform"),o=t.instance.popper.style,s=o.top,r=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=_e(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=s,o.left=r,o[i]=a,e.boundaries=l;var d=e.priority,c=t.offsets.popper,f={primary:function(t){var n=c[t];return c[t]l[t]&&!e.escapeWithReference&&(i=Math.min(c[n],l[t]-("right"===t?c.width:c.height))),de({},n,i)}};return d.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c=ce({},c,f[e](t))})),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],s=Math.floor,r=-1!==["top","bottom"].indexOf(o),a=r?"right":"bottom",l=r?"left":"top",d=r?"width":"height";return n[a]s(i[a])&&(t.offsets.popper[l]=s(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!He(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],s=t.offsets,r=s.popper,a=s.reference,l=-1!==["left","right"].indexOf(o),d=l?"height":"width",c=l?"Top":"Left",f=c.toLowerCase(),h=l?"left":"top",u=l?"bottom":"right",p=we(i)[d];a[u]-pr[u]&&(t.offsets.popper[f]+=a[f]+p-r[u]),t.offsets.popper=fe(t.offsets.popper);var m=a[f]+a[d]/2-p/2,g=Vt(t.instance.popper),_=parseFloat(g["margin"+c]),b=parseFloat(g["border"+c+"Width"]),v=m-t.offsets.popper[f]-_-b;return v=Math.max(Math.min(r[d]-p,v),0),t.arrowElement=i,t.offsets.arrow=(de(n={},f,Math.round(v)),de(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Ne(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=_e(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Ee(i),s=t.placement.split("-")[1]||"",r=[];switch(e.behavior){case We:r=[i,o];break;case $e:r=qe(i);break;case Ue:r=qe(i,!0);break;default:r=e.behavior}return r.forEach((function(a,l){if(i!==a||r.length===l+1)return t;i=t.placement.split("-")[0],o=Ee(i);var d=t.offsets.popper,c=t.offsets.reference,f=Math.floor,h="left"===i&&f(d.right)>f(c.left)||"right"===i&&f(d.left)f(c.top)||"bottom"===i&&f(d.top)f(n.right),m=f(d.top)f(n.bottom),_="left"===i&&u||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,b=-1!==["top","bottom"].indexOf(i),v=!!e.flipVariations&&(b&&"start"===s&&u||b&&"end"===s&&p||!b&&"start"===s&&m||!b&&"end"===s&&g),y=!!e.flipVariationsByContent&&(b&&"start"===s&&p||b&&"end"===s&&u||!b&&"start"===s&&g||!b&&"end"===s&&m),w=v||y;(h||_||w)&&(t.flipped=!0,(h||_)&&(i=r[l+1]),w&&(s=function(t){return"end"===t?"start":"start"===t?"end":t}(s)),t.placement=i+(s?"-"+s:""),t.offsets.popper=ce({},t.offsets.popper,Te(t.instance.popper,t.offsets.reference,t.placement)),t=Se(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,s=i.reference,r=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[r?"left":"top"]=s[n]-(a?o[r?"width":"height"]:0),t.placement=Ee(e),t.offsets.popper=fe(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!He(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Ce(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};ae(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=Ut(this.update.bind(this)),this.options=ce({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(ce({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=ce({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return ce({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&Qt(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var s=this.options.eventsEnabled;s&&this.enableEventListeners(),this.state.eventsEnabled=s}return le(t,[{key:"update",value:function(){return De.call(this)}},{key:"destroy",value:function(){return Oe.call(this)}},{key:"enableEventListeners",value:function(){return Le.call(this)}},{key:"disableEventListeners",value:function(){return Fe.call(this)}}]),t}();Ye.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ye.placements=Re,Ye.Defaults=Ve;var ze=Ye;const Xe="dropdown",Ke="bs.dropdown",Ge=".bs.dropdown",Je=i.default.fn[Xe],Ze=new RegExp("38|40|27"),tn="hide.bs.dropdown",en="hidden.bs.dropdown",nn="click.bs.dropdown.data-api",on="keydown.bs.dropdown.data-api",sn="disabled",rn="show",an="dropdown-menu-right",ln='[data-toggle="dropdown"]',dn=".dropdown-menu",cn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},fn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"};class hn{constructor(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get VERSION(){return"4.6.0"}static get Default(){return cn}static get DefaultType(){return fn}toggle(){if(this._element.disabled||i.default(this._element).hasClass(sn))return;const t=i.default(this._menu).hasClass(rn);hn._clearMenus(),t||this.show(!0)}show(t=!1){if(this._element.disabled||i.default(this._element).hasClass(sn)||i.default(this._menu).hasClass(rn))return;const e={relatedTarget:this._element},n=i.default.Event("show.bs.dropdown",e),o=hn._getParentFromElement(this._element);if(i.default(o).trigger(n),!n.isDefaultPrevented()){if(!this._inNavbar&&t){if("undefined"==typeof ze)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=o:rt.isElement(this._config.reference)&&(t=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(t=this._config.reference[0])),"scrollParent"!==this._config.boundary&&i.default(o).addClass("position-static"),this._popper=new ze(t,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===i.default(o).closest(".navbar-nav").length&&i.default(document.body).children().on("mouseover",null,i.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),i.default(this._menu).toggleClass(rn),i.default(o).toggleClass(rn).trigger(i.default.Event("shown.bs.dropdown",e))}}hide(){if(this._element.disabled||i.default(this._element).hasClass(sn)||!i.default(this._menu).hasClass(rn))return;const t={relatedTarget:this._element},e=i.default.Event(tn,t),n=hn._getParentFromElement(this._element);i.default(n).trigger(e),e.isDefaultPrevented()||(this._popper&&this._popper.destroy(),i.default(this._menu).toggleClass(rn),i.default(n).toggleClass(rn).trigger(i.default.Event(en,t)))}dispose(){i.default.removeData(this._element,Ke),i.default(this._element).off(Ge),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)}update(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()}_addEventListeners(){i.default(this._element).on("click.bs.dropdown",(t=>{t.preventDefault(),t.stopPropagation(),this.toggle()}))}_getConfig(t){return t={...this.constructor.Default,...i.default(this._element).data(),...t},rt.typeCheckConfig(Xe,t,this.constructor.DefaultType),t}_getMenuElement(){if(!this._menu){const t=hn._getParentFromElement(this._element);t&&(this._menu=t.querySelector(dn))}return this._menu}_getPlacement(){const t=i.default(this._element.parentNode);let e="bottom-start";return t.hasClass("dropup")?e=i.default(this._menu).hasClass(an)?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":i.default(this._menu).hasClass(an)&&(e="bottom-end"),e}_detectNavbar(){return i.default(this._element).closest(".navbar").length>0}_getOffset(){const t={};return"function"==typeof this._config.offset?t.fn=t=>(t.offsets={...t.offsets,...this._config.offset(t.offsets,this._element)||{}},t):t.offset=this._config.offset,t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),{...t,...this._config.popperConfig}}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(Ke);if(e||(e=new hn(this,"object"==typeof t?t:null),i.default(this).data(Ke,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static _clearMenus(t){if(t&&(3===t.which||"keyup"===t.type&&9!==t.which))return;const e=[].slice.call(document.querySelectorAll(ln));for(let n=0,o=e.length;ni.default(t).is(":visible")));if(0===o.length)return;let s=o.indexOf(t.target);38===t.which&&s>0&&s--,40===t.which&&s{t.stopPropagation()})),i.default.fn[Xe]=hn._jQueryInterface,i.default.fn[Xe].Constructor=hn,i.default.fn[Xe].noConflict=()=>(i.default.fn[Xe]=Je,hn._jQueryInterface);const un="modal",pn="bs.modal",mn=".bs.modal",gn=i.default.fn.modal,_n={backdrop:!0,keyboard:!0,focus:!0,show:!0},bn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},vn="hidden.bs.modal",yn="show.bs.modal",wn="focusin.bs.modal",En="resize.bs.modal",Tn="click.dismiss.bs.modal",Cn="keydown.dismiss.bs.modal",Sn="mousedown.dismiss.bs.modal",Dn="modal-open",Nn="fade",xn="show",On="modal-static",An=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",In=".sticky-top";class kn{constructor(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get VERSION(){return"4.6.0"}static get Default(){return _n}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||this._isTransitioning)return;i.default(this._element).hasClass(Nn)&&(this._isTransitioning=!0);const e=i.default.Event(yn,{relatedTarget:t});i.default(this._element).trigger(e),this._isShown||e.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),i.default(this._element).on(Tn,'[data-dismiss="modal"]',(t=>this.hide(t))),i.default(this._dialog).on(Sn,(()=>{i.default(this._element).one("mouseup.dismiss.bs.modal",(t=>{i.default(t.target).is(this._element)&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(t){if(t&&t.preventDefault(),!this._isShown||this._isTransitioning)return;const e=i.default.Event("hide.bs.modal");if(i.default(this._element).trigger(e),!this._isShown||e.isDefaultPrevented())return;this._isShown=!1;const n=i.default(this._element).hasClass(Nn);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),i.default(document).off(wn),i.default(this._element).removeClass(xn),i.default(this._element).off(Tn),i.default(this._dialog).off(Sn),n){const t=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,(t=>this._hideModal(t))).emulateTransitionEnd(t)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach((t=>i.default(t).off(mn))),i.default(document).off(wn),i.default.removeData(this._element,pn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(t){return t={..._n,...t},rt.typeCheckConfig(un,t,bn),t}_triggerBackdropTransition(){const t=i.default.Event("hidePrevented.bs.modal");if(i.default(this._element).trigger(t),t.isDefaultPrevented())return;const e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add(On);const n=rt.getTransitionDurationFromElement(this._dialog);i.default(this._element).off(rt.TRANSITION_END),i.default(this._element).one(rt.TRANSITION_END,(()=>{this._element.classList.remove(On),e||i.default(this._element).one(rt.TRANSITION_END,(()=>{this._element.style.overflowY=""})).emulateTransitionEnd(this._element,n)})).emulateTransitionEnd(n),this._element.focus()}_showElement(t){const e=i.default(this._element).hasClass(Nn),n=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i.default(this._dialog).hasClass("modal-dialog-scrollable")&&n?n.scrollTop=0:this._element.scrollTop=0,e&&rt.reflow(this._element),i.default(this._element).addClass(xn),this._config.focus&&this._enforceFocus();const o=i.default.Event("shown.bs.modal",{relatedTarget:t}),s=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,i.default(this._element).trigger(o)};if(e){const t=rt.getTransitionDurationFromElement(this._dialog);i.default(this._dialog).one(rt.TRANSITION_END,s).emulateTransitionEnd(t)}else s()}_enforceFocus(){i.default(document).off(wn).on(wn,(t=>{document!==t.target&&this._element!==t.target&&0===i.default(this._element).has(t.target).length&&this._element.focus()}))}_setEscapeEvent(){this._isShown?i.default(this._element).on(Cn,(t=>{this._config.keyboard&&27===t.which?(t.preventDefault(),this.hide()):this._config.keyboard||27!==t.which||this._triggerBackdropTransition()})):this._isShown||i.default(this._element).off(Cn)}_setResizeEvent(){this._isShown?i.default(window).on(En,(t=>this.handleUpdate(t))):i.default(window).off(En)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((()=>{i.default(document.body).removeClass(Dn),this._resetAdjustments(),this._resetScrollbar(),i.default(this._element).trigger(vn)}))}_removeBackdrop(){this._backdrop&&(i.default(this._backdrop).remove(),this._backdrop=null)}_showBackdrop(t){const e=i.default(this._element).hasClass(Nn)?Nn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",e&&this._backdrop.classList.add(e),i.default(this._backdrop).appendTo(document.body),i.default(this._element).on(Tn,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())})),e&&rt.reflow(this._backdrop),i.default(this._backdrop).addClass(xn),!t)return;if(!e)return void t();const n=rt.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(rt.TRANSITION_END,t).emulateTransitionEnd(n)}else if(!this._isShown&&this._backdrop){i.default(this._backdrop).removeClass(xn);const e=()=>{this._removeBackdrop(),t&&t()};if(i.default(this._element).hasClass(Nn)){const t=rt.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(rt.TRANSITION_END,e).emulateTransitionEnd(t)}else e()}else t&&t()}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=`${this._scrollbarWidth}px`),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=`${this._scrollbarWidth}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right){const n=e.style.paddingRight,o=i.default(e).css("padding-right");i.default(e).data("padding-right",n).css("padding-right",`${parseFloat(o)+this._scrollbarWidth}px`)})),i.default(e).each(((t,e)=>{const n=e.style.marginRight,o=i.default(e).css("margin-right");i.default(e).data("margin-right",n).css("margin-right",parseFloat(o)-this._scrollbarWidth+"px")}));const n=document.body.style.paddingRight,o=i.default(document.body).css("padding-right");i.default(document.body).data("padding-right",n).css("padding-right",`${parseFloat(o)+this._scrollbarWidth}px`)}i.default(document.body).addClass(Dn)}_resetScrollbar(){const t=[].slice.call(document.querySelectorAll(An));i.default(t).each(((t,e)=>{const n=i.default(e).data("padding-right");i.default(e).removeData("padding-right"),e.style.paddingRight=n||""}));const e=[].slice.call(document.querySelectorAll(".sticky-top"));i.default(e).each(((t,e)=>{const n=i.default(e).data("margin-right");"undefined"!=typeof n&&i.default(e).css("margin-right",n).removeData("margin-right")}));const n=i.default(document.body).data("padding-right");i.default(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""}_getScrollbarWidth(){const t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);const e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}static _jQueryInterface(t,e){return this.each((function(){let n=i.default(this).data(pn);const o={..._n,...i.default(this).data(),..."object"==typeof t&&t?t:{}};if(n||(n=new kn(this,o),i.default(this).data(pn,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t](e)}else o.show&&n.show(e)}))}}i.default(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){let e;const n=rt.getSelectorFromElement(this);n&&(e=document.querySelector(n));const o=i.default(e).data(pn)?"toggle":{...i.default(e).data(),...i.default(this).data()};"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();const s=i.default(e).one(yn,(t=>{t.isDefaultPrevented()||s.one(vn,(()=>{i.default(this).is(":visible")&&this.focus()}))}));kn._jQueryInterface.call(i.default(e),o,this)})),i.default.fn.modal=kn._jQueryInterface,i.default.fn.modal.Constructor=kn,i.default.fn.modal.noConflict=()=>(i.default.fn.modal=gn,kn._jQueryInterface);const Ln=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Fn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},jn=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Pn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function Mn(t,e){const n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ln.indexOf(n)||Boolean(t.nodeValue.match(jn)||t.nodeValue.match(Pn));const i=e.filter((t=>t instanceof RegExp));for(let t=0,e=i.length;t{Mn(t,a)||n.removeAttribute(t.nodeName)}))}return i.body.innerHTML}const Rn="tooltip",Bn="bs.tooltip",qn=".bs.tooltip",Wn=i.default.fn.tooltip,$n=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Un=["sanitize","whiteList","sanitizeFn"],Qn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Vn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Yn={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:Fn,popperConfig:null},zn="show",Xn="out",Kn={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Gn="fade",Jn="show",Zn="hover",ti="focus";class ei{constructor(t,e){if("undefined"==typeof ze)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}static get VERSION(){return"4.6.0"}static get Default(){return Yn}static get NAME(){return Rn}static get DATA_KEY(){return Bn}static get Event(){return Kn}static get EVENT_KEY(){return qn}static get DefaultType(){return Qn}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this.constructor.DATA_KEY;let n=i.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i.default(this.getTipElement()).hasClass(Jn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),i.default.removeData(this.element,this.constructor.DATA_KEY),i.default(this.element).off(this.constructor.EVENT_KEY),i.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null}show(){if("none"===i.default(this.element).css("display"))throw new Error("Please use show on visible elements");const t=i.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i.default(this.element).trigger(t);const e=rt.findShadowRoot(this.element),n=i.default.contains(null!==e?e:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;const o=this.getTipElement(),s=rt.getUID(this.constructor.NAME);o.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.default(o).addClass(Gn);const r="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(r);this.addAttachmentClass(a);const l=this._getContainer();i.default(o).data(this.constructor.DATA_KEY,this),i.default.contains(this.element.ownerDocument.documentElement,this.tip)||i.default(o).appendTo(l),i.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new ze(this.element,o,this._getPopperConfig(a)),i.default(o).addClass(Jn),i.default(o).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i.default(document.body).children().on("mouseover",null,i.default.noop);const d=()=>{this.config.animation&&this._fixTransition();const t=this._hoverState;this._hoverState=null,i.default(this.element).trigger(this.constructor.Event.SHOWN),t===Xn&&this._leave(null,this)};if(i.default(this.tip).hasClass(Gn)){const t=rt.getTransitionDurationFromElement(this.tip);i.default(this.tip).one(rt.TRANSITION_END,d).emulateTransitionEnd(t)}else d()}}hide(t){const e=this.getTipElement(),n=i.default.Event(this.constructor.Event.HIDE),o=()=>{this._hoverState!==zn&&e.parentNode&&e.parentNode.removeChild(e),this._cleanTipClass(),this.element.removeAttribute("aria-describedby"),i.default(this.element).trigger(this.constructor.Event.HIDDEN),null!==this._popper&&this._popper.destroy(),t&&t()};if(i.default(this.element).trigger(n),!n.isDefaultPrevented()){if(i.default(e).removeClass(Jn),"ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,i.default(this.tip).hasClass(Gn)){const t=rt.getTransitionDurationFromElement(e);i.default(e).one(rt.TRANSITION_END,o).emulateTransitionEnd(t)}else o();this._hoverState=""}}update(){null!==this._popper&&this._popper.scheduleUpdate()}isWithContent(){return Boolean(this.getTitle())}addAttachmentClass(t){i.default(this.getTipElement()).addClass(`bs-tooltip-${t}`)}getTipElement(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip}setContent(){const t=this.getTipElement();this.setElementContent(i.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),i.default(t).removeClass("fade show")}setElementContent(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Hn(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?i.default(e).parent().is(t)||t.empty().append(e):t.text(i.default(e).text())}getTitle(){let t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t}_getPopperConfig(t){return{...{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:t=>{t.originalPlacement!==t.placement&&this._handlePopperPlacementChange(t)},onUpdate:t=>this._handlePopperPlacementChange(t)},...this.config.popperConfig}}_getOffset(){const t={};return"function"==typeof this.config.offset?t.fn=t=>(t.offsets={...t.offsets,...this.config.offset(t.offsets,this.element)||{}},t):t.offset=this.config.offset,t}_getContainer(){return!1===this.config.container?document.body:rt.isElement(this.config.container)?i.default(this.config.container):i.default(document).find(this.config.container)}_getAttachment(t){return Vn[t.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach((t=>{if("click"===t)i.default(this.element).on(this.constructor.Event.CLICK,this.config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===Zn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n=t===Zn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;i.default(this.element).on(e,this.config.selector,(t=>this._enter(t))).on(n,this.config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this.element&&this.hide()},i.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}_enter(t,e){const n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?ti:Zn]=!0),i.default(e.getTipElement()).hasClass(Jn)||e._hoverState===zn?e._hoverState=zn:(clearTimeout(e._timeout),e._hoverState=zn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===zn&&e.show()}),e.config.delay.show):e.show())}_leave(t,e){const n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?ti:Zn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Xn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===Xn&&e.hide()}),e.config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=i.default(this.element).data();return Object.keys(e).forEach((t=>{-1!==Un.indexOf(t)&&delete e[t]})),"number"==typeof(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),rt.typeCheckConfig(Rn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Hn(t.template,t.whiteList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this.config)for(const e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t}_cleanTipClass(){const t=i.default(this.getTipElement()),e=t.attr("class").match($n);null!==e&&e.length&&t.removeClass(e.join(""))}_handlePopperPlacementChange(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))}_fixTransition(){const t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(i.default(t).removeClass(Gn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(Bn);const o="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new ei(this,o),e.data(Bn,n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}i.default.fn.tooltip=ei._jQueryInterface,i.default.fn.tooltip.Constructor=ei,i.default.fn.tooltip.noConflict=()=>(i.default.fn.tooltip=Wn,ei._jQueryInterface);const ni="popover",ii="bs.popover",oi=".bs.popover",si=i.default.fn.popover,ri=new RegExp("(^|\\s)bs-popover\\S+","g"),ai={...ei.Default,placement:"right",trigger:"click",content:"",template:''},li={...ei.DefaultType,content:"(string|element|function)"},di={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class ci extends ei{static get VERSION(){return"4.6.0"}static get Default(){return ai}static get NAME(){return ni}static get DATA_KEY(){return ii}static get Event(){return di}static get EVENT_KEY(){return oi}static get DefaultType(){return li}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(t){i.default(this.getTipElement()).addClass(`bs-popover-${t}`)}getTipElement(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip}setContent(){const t=i.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());let e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const t=i.default(this.getTipElement()),e=t.attr("class").match(ri);null!==e&&e.length>0&&t.removeClass(e.join(""))}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(ii);const n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new ci(this,n),i.default(this).data(ii,e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}i.default.fn.popover=ci._jQueryInterface,i.default.fn.popover.Constructor=ci,i.default.fn.popover.noConflict=()=>(i.default.fn.popover=si,ci._jQueryInterface);const fi="scrollspy",hi="bs.scrollspy",ui=".bs.scrollspy",pi=i.default.fn[fi],mi={offset:10,method:"auto",target:""},gi={offset:"number",method:"string",target:"(string|element)"},_i="active",bi=".nav, .list-group",vi=".nav-link",yi="position";class wi{constructor(t,e){this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=`${this._config.target} .nav-link,${this._config.target} .list-group-item,${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i.default(this._scrollElement).on("scroll.bs.scrollspy",(t=>this._process(t))),this.refresh(),this._process()}static get VERSION(){return"4.6.0"}static get Default(){return mi}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":yi,e="auto"===this._config.method?t:this._config.method,n=e===yi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();[].slice.call(document.querySelectorAll(this._selector)).map((t=>{let o;const s=rt.getSelectorFromElement(t);if(s&&(o=document.querySelector(s)),o){const t=o.getBoundingClientRect();if(t.width||t.height)return[i.default(o)[e]().top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){i.default.removeData(this._element,hi),i.default(this._scrollElement).off(ui),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(t){if("string"!=typeof(t={...mi,..."object"==typeof t&&t?t:{}}).target&&rt.isElement(t.target)){let e=i.default(t.target).attr("id");e||(e=rt.getUID(fi),i.default(t.target).attr("id",e)),t.target=`#${e}`}return rt.typeCheckConfig(fi,t,gi),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;){this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&("undefined"==typeof this._offsets[e+1]||t`${e}[data-target="${t}"],${e}[href="${t}"]`)),n=i.default([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass("dropdown-item")?(n.closest(".dropdown").find(".dropdown-toggle").addClass(_i),n.addClass(_i)):(n.addClass(_i),n.parents(bi).prev(".nav-link, .list-group-item").addClass(_i),n.parents(bi).prev(".nav-item").children(vi).addClass(_i)),i.default(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})}_clear(){[].slice.call(document.querySelectorAll(this._selector)).filter((t=>t.classList.contains(_i))).forEach((t=>t.classList.remove(_i)))}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(hi);if(e||(e=new wi(this,"object"==typeof t&&t),i.default(this).data(hi,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}i.default(window).on("load.bs.scrollspy.data-api",(()=>{const t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]'));for(let e=t.length;e--;){const n=i.default(t[e]);wi._jQueryInterface.call(n,n.data())}})),i.default.fn[fi]=wi._jQueryInterface,i.default.fn[fi].Constructor=wi,i.default.fn[fi].noConflict=()=>(i.default.fn[fi]=pi,wi._jQueryInterface);const Ei="bs.tab",Ti=i.default.fn.tab,Ci="active",Si="fade",Di="show",Ni=".active",xi="> li > .active";class Oi{constructor(t){this._element=t}static get VERSION(){return"4.6.0"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&i.default(this._element).hasClass(Ci)||i.default(this._element).hasClass("disabled"))return;let t,e;const n=i.default(this._element).closest(".nav, .list-group")[0],o=rt.getSelectorFromElement(this._element);if(n){const t="UL"===n.nodeName||"OL"===n.nodeName?xi:Ni;e=i.default.makeArray(i.default(n).find(t)),e=e[e.length-1]}const s=i.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=i.default.Event("show.bs.tab",{relatedTarget:e});if(e&&i.default(e).trigger(s),i.default(this._element).trigger(r),r.isDefaultPrevented()||s.isDefaultPrevented())return;o&&(t=document.querySelector(o)),this._activate(this._element,n);const a=()=>{const t=i.default.Event("hidden.bs.tab",{relatedTarget:this._element}),n=i.default.Event("shown.bs.tab",{relatedTarget:e});i.default(e).trigger(t),i.default(this._element).trigger(n)};t?this._activate(t,t.parentNode,a):a()}dispose(){i.default.removeData(this._element,Ei),this._element=null}_activate(t,e,n){const o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?i.default(e).children(Ni):i.default(e).find(xi))[0],s=n&&o&&i.default(o).hasClass(Si),r=()=>this._transitionComplete(t,o,n);if(o&&s){const t=rt.getTransitionDurationFromElement(o);i.default(o).removeClass(Di).one(rt.TRANSITION_END,r).emulateTransitionEnd(t)}else r()}_transitionComplete(t,e,n){if(e){i.default(e).removeClass(Ci);const t=i.default(e.parentNode).find("> .dropdown-menu .active")[0];t&&i.default(t).removeClass(Ci),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(i.default(t).addClass(Ci),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),rt.reflow(t),t.classList.contains(Si)&&t.classList.add(Di),t.parentNode&&i.default(t.parentNode).hasClass("dropdown-menu")){const e=i.default(t).closest(".dropdown")[0];if(e){const t=[].slice.call(e.querySelectorAll(".dropdown-toggle"));i.default(t).addClass(Ci)}t.setAttribute("aria-expanded",!0)}n&&n()}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(Ei);if(n||(n=new Oi(this),e.data(Ei,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}i.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),Oi._jQueryInterface.call(i.default(this),"show")})),i.default.fn.tab=Oi._jQueryInterface,i.default.fn.tab.Constructor=Oi,i.default.fn.tab.noConflict=()=>(i.default.fn.tab=Ti,Oi._jQueryInterface);const Ai="toast",Ii="bs.toast",ki=i.default.fn.toast,Li="click.dismiss.bs.toast",Fi="hide",ji="show",Pi="showing",Mi={animation:"boolean",autohide:"boolean",delay:"number"},Hi={animation:!0,autohide:!0,delay:500};class Ri{constructor(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}static get VERSION(){return"4.6.0"}static get DefaultType(){return Mi}static get Default(){return Hi}show(){const t=i.default.Event("show.bs.toast");if(i.default(this._element).trigger(t),t.isDefaultPrevented())return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");const e=()=>{this._element.classList.remove(Pi),this._element.classList.add(ji),i.default(this._element).trigger("shown.bs.toast"),this._config.autohide&&(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay))};if(this._element.classList.remove(Fi),rt.reflow(this._element),this._element.classList.add(Pi),this._config.animation){const t=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,e).emulateTransitionEnd(t)}else e()}hide(){if(!this._element.classList.contains(ji))return;const t=i.default.Event("hide.bs.toast");i.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}dispose(){this._clearTimeout(),this._element.classList.contains(ji)&&this._element.classList.remove(ji),i.default(this._element).off(Li),i.default.removeData(this._element,Ii),this._element=null,this._config=null}_getConfig(t){return t={...Hi,...i.default(this._element).data(),..."object"==typeof t&&t?t:{}},rt.typeCheckConfig(Ai,t,this.constructor.DefaultType),t}_setListeners(){i.default(this._element).on(Li,'[data-dismiss="toast"]',(()=>this.hide()))}_close(){const t=()=>{this._element.classList.add(Fi),i.default(this._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ji),this._config.animation){const e=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,t).emulateTransitionEnd(e)}else t()}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(Ii);if(n||(n=new Ri(this,"object"==typeof t&&t),e.data(Ii,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t](this)}}))}}var Bi,qi,Wi;i.default.fn.toast=Ri._jQueryInterface,i.default.fn.toast.Constructor=Ri,i.default.fn.toast.noConflict=()=>(i.default.fn.toast=ki,Ri._jQueryInterface),Bi=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,qi=navigator.userAgent.toLowerCase().indexOf("opera")>-1,Wi=navigator.userAgent.toLowerCase().indexOf("msie")>-1,(Bi||qi||Wi)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",(function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}),!1),t.Alert=dt,t.Button=gt,t.Carousel=Ot,t.Collapse=qt,t.Dropdown=hn,t.Modal=kn,t.Popover=ci,t.Popper=it,t.Scrollspy=wi,t.Tab=Oi,t.Toast=Ri,t.Tooltip=ei,t.Util=rt,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).understrap={},t.jQuery)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e),o="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator;const s=function(){const t=["Edge","Trident","Firefox"];for(let e=0;e=0)return 1;return 0}();var r=o&&window.Promise?function(t){let e=!1;return()=>{e||(e=!0,window.Promise.resolve().then((()=>{e=!1,t()})))}}:function(t){let e=!1;return()=>{e||(e=!0,setTimeout((()=>{e=!1,t()}),s))}};function a(t){return t&&"[object Function]"==={}.toString.call(t)}function l(t,e){if(1!==t.nodeType)return[];const n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function d(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:e,overflowX:n,overflowY:i}=l(t);return/(auto|scroll|overlay)/.test(e+i+n)?t:c(d(t))}function f(t){return t&&t.referenceNode?t.referenceNode:t}const h=o&&!(!window.MSInputMethodContext||!document.documentMode),u=o&&/MSIE 10/.test(navigator.userAgent);function p(t){return 11===t?h:10===t?u:h||u}function m(t){if(!t)return document.documentElement;const e=p(10)?document.body:null;let n=t.offsetParent||null;for(;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;const i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===l(n,"position")?m(n):n:t?t.ownerDocument.documentElement:document.documentElement}function g(t){return null!==t.parentNode?g(t.parentNode):t}function _(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;const n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,s=document.createRange();s.setStart(i,0),s.setEnd(o,0);const{commonAncestorContainer:r}=s;if(t!==r&&e!==r||i.contains(o))return function(t){const{nodeName:e}=t;return"BODY"!==e&&("HTML"===e||m(t.firstElementChild)===t)}(r)?r:m(r);const a=g(t);return a.host?_(a.host,e):_(t,g(e).host)}function b(t,e="top"){const n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){const e=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||e)[n]}return t[n]}function v(t,e){const n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t[`border${n}Width`])+parseFloat(t[`border${i}Width`])}function y(t,e,n,i){return Math.max(e[`offset${t}`],e[`scroll${t}`],n[`client${t}`],n[`offset${t}`],n[`scroll${t}`],p(10)?parseInt(n[`offset${t}`])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function w(t){const e=t.body,n=t.documentElement,i=p(10)&&getComputedStyle(n);return{height:y("Height",e,n,i),width:y("Width",e,n,i)}}function E(t){return{...t,right:t.left+t.width,bottom:t.top+t.height}}function T(t){let e={};try{if(p(10)){e=t.getBoundingClientRect();const n=b(t,"top"),i=b(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}const n={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?w(t.ownerDocument):{},o=i.width||t.clientWidth||n.width,s=i.height||t.clientHeight||n.height;let r=t.offsetWidth-o,a=t.offsetHeight-s;if(r||a){const e=l(t);r-=v(e,"x"),a-=v(e,"y"),n.width-=r,n.height-=a}return E(n)}function C(t,e,n=!1){const i=p(10),o="HTML"===e.nodeName,s=T(t),r=T(e),a=c(t),d=l(e),f=parseFloat(d.borderTopWidth),h=parseFloat(d.borderLeftWidth);n&&o&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));let u=E({top:s.top-r.top-f,left:s.left-r.left-h,width:s.width,height:s.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){const t=parseFloat(d.marginTop),e=parseFloat(d.marginLeft);u.top-=f-t,u.bottom-=f-t,u.left-=h-e,u.right-=h-e,u.marginTop=t,u.marginLeft=e}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e,n=!1){const i=b(e,"top"),o=b(e,"left"),s=n?-1:1;return t.top+=i*s,t.bottom+=i*s,t.left+=o*s,t.right+=o*s,t}(u,e)),u}function S(t){const e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===l(t,"position"))return!0;const n=d(t);return!!n&&S(n)}function D(t){if(!t||!t.parentElement||p())return document.documentElement;let e=t.parentElement;for(;e&&"none"===l(e,"transform");)e=e.parentElement;return e||document.documentElement}function N(t,e,n,i,o=!1){let s={top:0,left:0};const r=o?D(t):_(t,f(e));if("viewport"===i)s=function(t,e=!1){const n=t.ownerDocument.documentElement,i=C(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),s=Math.max(n.clientHeight,window.innerHeight||0),r=e?0:b(n),a=e?0:b(n,"left");return E({top:r-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:s})}(r,o);else{let n;"scrollParent"===i?(n=c(d(e)),"BODY"===n.nodeName&&(n=t.ownerDocument.documentElement)):n="window"===i?t.ownerDocument.documentElement:i;const a=C(n,r,o);if("HTML"!==n.nodeName||S(r))s=a;else{const{height:e,width:n}=w(t.ownerDocument);s.top+=a.top-a.marginTop,s.bottom=e+a.top,s.left+=a.left-a.marginLeft,s.right=n+a.left}}const a="number"==typeof(n=n||0);return s.left+=a?n:n.left||0,s.top+=a?n:n.top||0,s.right-=a?n:n.right||0,s.bottom-=a?n:n.bottom||0,s}function x({width:t,height:e}){return t*e}function O(t,e,n,i,o,s=0){if(-1===t.indexOf("auto"))return t;const r=N(n,i,s,o),a={top:{width:r.width,height:e.top-r.top},right:{width:r.right-e.right,height:r.height},bottom:{width:r.width,height:r.bottom-e.bottom},left:{width:e.left-r.left,height:r.height}},l=Object.keys(a).map((t=>({key:t,...a[t],area:x(a[t])}))).sort(((t,e)=>e.area-t.area)),d=l.filter((({width:t,height:e})=>t>=n.clientWidth&&e>=n.clientHeight)),c=d.length>0?d[0].key:l[0].key,f=t.split("-")[1];return c+(f?`-${f}`:"")}function A(t,e,n,i=null){return C(n,i?D(e):_(e,f(n)),i)}function I(t){const e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function k(t){const e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(t=>e[t]))}function L(t,e,n){n=n.split("-")[0];const i=I(t),o={width:i.width,height:i.height},s=-1!==["right","left"].indexOf(n),r=s?"top":"left",a=s?"left":"top",l=s?"height":"width",d=s?"width":"height";return o[r]=e[r]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[d]:e[k(a)],o}function F(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function j(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((t=>t[e]===n));const i=F(t,(t=>t[e]===n));return t.indexOf(i)}(t,"name",n))).forEach((t=>{t.function;const n=t.function||t.fn;t.enabled&&a(n)&&(e.offsets.popper=E(e.offsets.popper),e.offsets.reference=E(e.offsets.reference),e=n(e,t))})),e}function P(){if(this.state.isDestroyed)return;let t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=A(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=O(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=L(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=j(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}function M(t,e){return t.some((({name:t,enabled:n})=>n&&t===e))}function H(t){const e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1);for(let i=0;i{t.removeEventListener("scroll",e.updateBound)})),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function Q(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function V(t,e){Object.keys(e).forEach((n=>{let i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Q(e[n])&&(i="px"),t.style[n]=e[n]+i}))}const Y=o&&/Firefox/i.test(navigator.userAgent);function z(t,e,n){const i=F(t,(({name:t})=>t===e)),o=!!i&&t.some((t=>t.name===n&&t.enabled&&t.ordert.trim())),a=r.indexOf(F(r,(t=>-1!==t.search(/,|\s/))));r[a]&&r[a].indexOf(",");const l=/\s*,\s*|\s+/;let d=-1!==a?[r.slice(0,a).concat([r[a].split(l)[0]]),[r[a].split(l)[1]].concat(r.slice(a+1))]:[r];return d=d.map(((t,i)=>{const o=(1===i?!s:s)?"height":"width";let r=!1;return t.reduce(((t,e)=>""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,r=!0,t):r?(t[t.length-1]+=e,r=!1,t):t.concat(e)),[]).map((t=>function(t,e,n,i){const o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),s=+o[1],r=o[2];if(!s)return t;if(0===r.indexOf("%")){let t;switch(r){case"%p":t=n;break;case"%":case"%r":default:t=i}return E(t)[e]/100*s}if("vh"===r||"vw"===r){let t;return t="vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0),t/100*s}return s}(t,o,e,n)))})),d.forEach(((t,e)=>{t.forEach(((n,i)=>{Q(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var nt={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:()=>{},onUpdate:()=>{},modifiers:{shift:{order:100,enabled:!0,fn:function(t){const e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){const{reference:e,popper:o}=t.offsets,s=-1!==["bottom","top"].indexOf(n),r=s?"left":"top",a=s?"width":"height",l={start:{[r]:e[r]},end:{[r]:e[r]+e[a]-o[a]}};t.offsets.popper={...o,...l[i]}}return t}},offset:{order:200,enabled:!0,fn:function(t,{offset:e}){const{placement:n,offsets:{popper:i,reference:o}}=t,s=n.split("-")[0];let r;return r=Q(+e)?[+e,0]:et(e,i,o,s),"left"===s?(i.top+=r[0],i.left-=r[1]):"right"===s?(i.top+=r[0],i.left+=r[1]):"top"===s?(i.left+=r[0],i.top-=r[1]):"bottom"===s&&(i.left+=r[0],i.top+=r[1]),t.popper=i,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){let n=e.boundariesElement||m(t.instance.popper);t.instance.reference===n&&(n=m(n));const i=H("transform"),o=t.instance.popper.style,{top:s,left:r,[i]:a}=o;o.top="",o.left="",o[i]="";const l=N(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=s,o.left=r,o[i]=a,e.boundaries=l;const d=e.priority;let c=t.offsets.popper;const f={primary(t){let n=c[t];return c[t]l[t]&&!e.escapeWithReference&&(i=Math.min(c[n],l[t]-("right"===t?c.width:c.height))),{[n]:i}}};return d.forEach((t=>{const e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c={...c,...f[e](t)}})),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){const{popper:e,reference:n}=t.offsets,i=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(i),r=s?"right":"bottom",a=s?"left":"top",l=s?"width":"height";return e[r]o(n[r])&&(t.offsets.popper[a]=o(n[r])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){if(!z(t.instance.modifiers,"arrow","keepTogether"))return t;let n=e.element;if("string"==typeof n){if(n=t.instance.popper.querySelector(n),!n)return t}else if(!t.instance.popper.contains(n))return t;const i=t.placement.split("-")[0],{popper:o,reference:s}=t.offsets,r=-1!==["left","right"].indexOf(i),a=r?"height":"width",d=r?"Top":"Left",c=d.toLowerCase(),f=r?"left":"top",h=r?"bottom":"right",u=I(n)[a];s[h]-uo[h]&&(t.offsets.popper[c]+=s[c]+u-o[h]),t.offsets.popper=E(t.offsets.popper);const p=s[c]+s[a]/2-u/2,m=l(t.instance.popper),g=parseFloat(m[`margin${d}`]),_=parseFloat(m[`border${d}Width`]);let b=p-t.offsets.popper[c]-g-_;return b=Math.max(Math.min(o[a]-u,b),0),t.arrowElement=n,t.offsets.arrow={[c]:Math.round(b),[f]:""},t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(M(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;const n=N(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed);let i=t.placement.split("-")[0],o=k(i),s=t.placement.split("-")[1]||"",r=[];switch(e.behavior){case J:r=[i,o];break;case Z:r=G(i);break;case tt:r=G(i,!0);break;default:r=e.behavior}return r.forEach(((a,l)=>{if(i!==a||r.length===l+1)return t;i=t.placement.split("-")[0],o=k(i);const d=t.offsets.popper,c=t.offsets.reference,f=Math.floor,h="left"===i&&f(d.right)>f(c.left)||"right"===i&&f(d.left)f(c.top)||"bottom"===i&&f(d.top)f(n.right),m=f(d.top)f(n.bottom),_="left"===i&&u||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,b=-1!==["top","bottom"].indexOf(i),v=!!e.flipVariations&&(b&&"start"===s&&u||b&&"end"===s&&p||!b&&"start"===s&&m||!b&&"end"===s&&g),y=!!e.flipVariationsByContent&&(b&&"start"===s&&p||b&&"end"===s&&u||!b&&"start"===s&&g||!b&&"end"===s&&m),w=v||y;(h||_||w)&&(t.flipped=!0,(h||_)&&(i=r[l+1]),w&&(s=function(t){return"end"===t?"start":"start"===t?"end":t}(s)),t.placement=i+(s?"-"+s:""),t.offsets.popper={...t.offsets.popper,...L(t.instance.popper,t.offsets.reference,t.placement)},t=j(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){const e=t.placement,n=e.split("-")[0],{popper:i,reference:o}=t.offsets,s=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[s?"left":"top"]=o[n]-(r?i[s?"width":"height"]:0),t.placement=k(e),t.offsets.popper=E(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!z(t.instance.modifiers,"hide","preventOverflow"))return t;const e=t.offsets.reference,n=F(t.instance.modifiers,(t=>"preventOverflow"===t.name)).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right"applyStyle"===t.name)).gpuAcceleration,r=void 0!==s?s:e.gpuAcceleration,a=m(t.instance.popper),l=T(a),d={position:o.position},c=function(t,e){const{popper:n,reference:i}=t.offsets,{round:o,floor:s}=Math,r=t=>t,a=o(i.width),l=o(n.width),d=-1!==["left","right"].indexOf(t.placement),c=-1!==t.placement.indexOf("-"),f=e?d||c||a%2==l%2?o:s:r,h=e?o:r;return{left:f(a%2==1&&l%2==1&&!c&&e?n.left-1:n.left),top:h(n.top),bottom:h(n.bottom),right:f(n.right)}}(t,window.devicePixelRatio<2||!Y),f="bottom"===n?"top":"bottom",h="right"===i?"left":"right",u=H("transform");let p,g;if(g="bottom"===f?"HTML"===a.nodeName?-a.clientHeight+c.bottom:-l.height+c.bottom:c.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+c.right:-l.width+c.right:c.left,r&&u)d[u]=`translate3d(${p}px, ${g}px, 0)`,d[f]=0,d[h]=0,d.willChange="transform";else{const t="bottom"===f?-1:1,e="right"===h?-1:1;d[f]=g*t,d[h]=p*e,d.willChange=`${f}, ${h}`}const _={"x-placement":t.placement};return t.attributes={..._,...t.attributes},t.styles={...d,...t.styles},t.arrowStyles={...t.offsets.arrow,...t.arrowStyles},t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return V(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach((function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)})),t.arrowElement&&Object.keys(t.arrowStyles).length&&V(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){const s=A(0,e,t,n.positionFixed),r=O(n.placement,s,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",r),V(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}};class it{constructor(t,e,n={}){this.update=r(this.update.bind(this)),this.options={...it.Defaults,...n},this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys({...it.Defaults.modifiers,...n.modifiers}).forEach((t=>{this.options.modifiers[t]={...it.Defaults.modifiers[t]||{},...n.modifiers?n.modifiers[t]:{}}})),this.modifiers=Object.keys(this.options.modifiers).map((t=>({name:t,...this.options.modifiers[t]}))).sort(((t,e)=>t.order-e.order)),this.modifiers.forEach((t=>{t.enabled&&a(t.onLoad)&&t.onLoad(this.reference,this.popper,this.options,t,this.state)})),this.update();const i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}update(){return P.call(this)}destroy(){return B.call(this)}enableEventListeners(){return $.call(this)}disableEventListeners(){return U.call(this)}scheduleUpdate=()=>requestAnimationFrame(this.update);static Utils=("undefined"!=typeof window?window:global).PopperUtils;static placements=X;static Defaults=nt}const ot="transitionend";function st(t){let e=!1;return i.default(this).one(rt.TRANSITION_END,(()=>{e=!0})),setTimeout((()=>{e||rt.triggerTransitionEnd(this)}),t),this}const rt={TRANSITION_END:"bsTransitionEnd",getUID(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement(t){let e=t.getAttribute("data-target");if(!e||"#"===e){const n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement(t){if(!t)return 0;let e=i.default(t).css("transition-duration"),n=i.default(t).css("transition-delay");const o=parseFloat(e),s=parseFloat(n);return o||s?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:t=>t.offsetHeight,triggerTransitionEnd(t){i.default(t).trigger(ot)},supportsTransitionEnd:()=>Boolean(ot),isElement:t=>(t[0]||t).nodeType,typeCheckConfig(t,e,n){for(const o in n)if(Object.prototype.hasOwnProperty.call(n,o)){const s=n[o],r=e[o],a=r&&rt.isElement(r)?"element":null==(i=r)?`${i}`:{}.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(`${t.toUpperCase()}: Option "${o}" provided type "${a}" but expected type "${s}".`)}var i},findShadowRoot(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?rt.findShadowRoot(t.parentNode):null},jQueryDetection(){if(void 0===i.default)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");const t=i.default.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};rt.jQueryDetection(),i.default.fn.emulateTransitionEnd=st,i.default.event.special[rt.TRANSITION_END]={bindType:ot,delegateType:ot,handle(t){if(i.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};const at="bs.alert",lt=i.default.fn.alert;class dt{constructor(t){this._element=t}static get VERSION(){return"4.6.0"}close(t){let e=this._element;t&&(e=this._getRootElement(t));this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)}dispose(){i.default.removeData(this._element,at),this._element=null}_getRootElement(t){const e=rt.getSelectorFromElement(t);let n=!1;return e&&(n=document.querySelector(e)),n||(n=i.default(t).closest(".alert")[0]),n}_triggerCloseEvent(t){const e=i.default.Event("close.bs.alert");return i.default(t).trigger(e),e}_removeElement(t){if(i.default(t).removeClass("show"),!i.default(t).hasClass("fade"))return void this._destroyElement(t);const e=rt.getTransitionDurationFromElement(t);i.default(t).one(rt.TRANSITION_END,(e=>this._destroyElement(t,e))).emulateTransitionEnd(e)}_destroyElement(t){i.default(t).detach().trigger("closed.bs.alert").remove()}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(at);n||(n=new dt(this),e.data(at,n)),"close"===t&&n[t](this)}))}static _handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}i.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',dt._handleDismiss(new dt)),i.default.fn.alert=dt._jQueryInterface,i.default.fn.alert.Constructor=dt,i.default.fn.alert.noConflict=()=>(i.default.fn.alert=lt,dt._jQueryInterface);const ct="bs.button",ft=i.default.fn.button,ht="active",ut='[data-toggle^="button"]',pt='input:not([type="hidden"])',mt=".btn";class gt{constructor(t){this._element=t,this.shouldAvoidTriggerChange=!1}static get VERSION(){return"4.6.0"}toggle(){let t=!0,e=!0;const n=i.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){const o=this._element.querySelector(pt);if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains(ht))t=!1;else{const t=n.querySelector(".active");t&&i.default(t).removeClass(ht)}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains(ht)),this.shouldAvoidTriggerChange||i.default(o).trigger("change")),o.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ht)),t&&i.default(this._element).toggleClass(ht))}dispose(){i.default.removeData(this._element,ct),this._element=null}static _jQueryInterface(t,e){return this.each((function(){const n=i.default(this);let o=n.data(ct);o||(o=new gt(this),n.data(ct,o)),o.shouldAvoidTriggerChange=e,"toggle"===t&&o[t]()}))}}i.default(document).on("click.bs.button.data-api",ut,(t=>{let e=t.target;const n=e;if(i.default(e).hasClass("btn")||(e=i.default(e).closest(mt)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{const o=e.querySelector(pt);if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||gt._jQueryInterface.call(i.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",ut,(t=>{const e=i.default(t.target).closest(mt)[0];i.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),i.default(window).on("load.bs.button.data-api",(()=>{let t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn'));for(let e=0,n=t.length;e(i.default.fn.button=ft,gt._jQueryInterface);const _t="carousel",bt="bs.carousel",vt=".bs.carousel",yt=i.default.fn[_t],wt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Et={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Tt="next",Ct="prev",St="slid.bs.carousel",Dt="active",Nt=".active.carousel-item",xt={TOUCH:"touch",PEN:"pen"};class Ot{constructor(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}static get VERSION(){return"4.6.0"}static get Default(){return wt}next(){this._isSliding||this._slide(Tt)}nextWhenVisible(){const t=i.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()}prev(){this._isSliding||this._slide(Ct)}pause(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(rt.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=this._element.querySelector(Nt);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void i.default(this._element).one(St,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const n=t>e?Tt:Ct;this._slide(n,this._items[t])}dispose(){i.default(this._element).off(vt),i.default.removeData(this._element,bt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}_getConfig(t){return t={...wt,...t},rt.typeCheckConfig(_t,t,Et),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}_addEventListeners(){this._config.keyboard&&i.default(this._element).on("keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&i.default(this._element).on("mouseenter.bs.carousel",(t=>this.pause(t))).on("mouseleave.bs.carousel",(t=>this.cycle(t))),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const t=t=>{this._pointerEvent&&xt[t.originalEvent.pointerType.toUpperCase()]?this.touchStartX=t.originalEvent.clientX:this._pointerEvent||(this.touchStartX=t.originalEvent.touches[0].clientX)},e=t=>{t.originalEvent.touches&&t.originalEvent.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=t.originalEvent.touches[0].clientX-this.touchStartX},n=t=>{this._pointerEvent&&xt[t.originalEvent.pointerType.toUpperCase()]&&(this.touchDeltaX=t.originalEvent.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};i.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(t=>t.preventDefault())),this._pointerEvent?(i.default(this._element).on("pointerdown.bs.carousel",(e=>t(e))),i.default(this._element).on("pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(i.default(this._element).on("touchstart.bs.carousel",(e=>t(e))),i.default(this._element).on("touchmove.bs.carousel",(t=>e(t))),i.default(this._element).on("touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}}_getItemIndex(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)}_getItemByDirection(t,e){const n=t===Tt,i=t===Ct,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;const r=(o+(t===Ct?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]}_triggerSlideEvent(t,e){const n=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(Nt)),s=i.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:o,to:n});return i.default(this._element).trigger(s),s}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));i.default(e).removeClass(Dt);const n=this._indicatorsElement.children[this._getItemIndex(t)];n&&i.default(n).addClass(Dt)}}_updateInterval(){const t=this._activeElement||this._element.querySelector(Nt);if(!t)return;const e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(t,e){const n=this._element.querySelector(Nt),o=this._getItemIndex(n),s=e||n&&this._getItemByDirection(t,n),r=this._getItemIndex(s),a=Boolean(this._interval);let l,d,c;if(t===Tt?(l="carousel-item-left",d="carousel-item-next",c="left"):(l="carousel-item-right",d="carousel-item-prev",c="right"),s&&i.default(s).hasClass(Dt))return void(this._isSliding=!1);if(this._triggerSlideEvent(s,c).isDefaultPrevented())return;if(!n||!s)return;this._isSliding=!0,a&&this.pause(),this._setActiveIndicatorElement(s),this._activeElement=s;const f=i.default.Event(St,{relatedTarget:s,direction:c,from:o,to:r});if(i.default(this._element).hasClass("slide")){i.default(s).addClass(d),rt.reflow(s),i.default(n).addClass(l),i.default(s).addClass(l);const t=rt.getTransitionDurationFromElement(n);i.default(n).one(rt.TRANSITION_END,(()=>{i.default(s).removeClass(`${l} ${d}`).addClass(Dt),i.default(n).removeClass(`active ${d} ${l}`),this._isSliding=!1,setTimeout((()=>i.default(this._element).trigger(f)),0)})).emulateTransitionEnd(t)}else i.default(n).removeClass(Dt),i.default(s).addClass(Dt),this._isSliding=!1,i.default(this._element).trigger(f);a&&this.cycle()}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(bt),n={...wt,...i.default(this).data()};"object"==typeof t&&(n={...n,...t});const o="string"==typeof t?t:n.slide;if(e||(e=new Ot(this,n),i.default(this).data(bt,e)),"number"==typeof t)e.to(t);else if("string"==typeof o){if(void 0===e[o])throw new TypeError(`No method named "${o}"`);e[o]()}else n.interval&&n.ride&&(e.pause(),e.cycle())}))}static _dataApiClickHandler(t){const e=rt.getSelectorFromElement(this);if(!e)return;const n=i.default(e)[0];if(!n||!i.default(n).hasClass("carousel"))return;const o={...i.default(n).data(),...i.default(this).data()},s=this.getAttribute("data-slide-to");s&&(o.interval=!1),Ot._jQueryInterface.call(i.default(n),o),s&&i.default(n).data(bt).to(s),t.preventDefault()}}i.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",Ot._dataApiClickHandler),i.default(window).on("load.bs.carousel.data-api",(()=>{const t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]'));for(let e=0,n=t.length;e(i.default.fn[_t]=yt,Ot._jQueryInterface);const At="collapse",It="bs.collapse",kt=i.default.fn[At],Lt={toggle:!0,parent:""},Ft={toggle:"boolean",parent:"(string|element)"},jt="show",Pt="collapse",Mt="collapsing",Ht="collapsed",Bt="width",Rt='[data-toggle="collapse"]';class qt{constructor(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll(`[data-toggle="collapse"][href="#${t.id}"],[data-toggle="collapse"][data-target="#${t.id}"]`));const n=[].slice.call(document.querySelectorAll(Rt));for(let e=0,i=n.length;ee===t));null!==o&&s.length>0&&(this._selector=o,this._triggerArray.push(i))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get VERSION(){return"4.6.0"}static get Default(){return Lt}toggle(){i.default(this._element).hasClass(jt)?this.hide():this.show()}show(){if(this._isTransitioning||i.default(this._element).hasClass(jt))return;let t,e;if(this._parent&&(t=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((t=>"string"==typeof this._config.parent?t.getAttribute("data-parent")===this._config.parent:t.classList.contains(Pt))),0===t.length&&(t=null)),t&&(e=i.default(t).not(this._selector).data(It),e&&e._isTransitioning))return;const n=i.default.Event("show.bs.collapse");if(i.default(this._element).trigger(n),n.isDefaultPrevented())return;t&&(qt._jQueryInterface.call(i.default(t).not(this._selector),"hide"),e||i.default(t).data(It,null));const o=this._getDimension();i.default(this._element).removeClass(Pt).addClass(Mt),this._element.style[o]=0,this._triggerArray.length&&i.default(this._triggerArray).removeClass(Ht).attr("aria-expanded",!0),this.setTransitioning(!0);const s=`scroll${o[0].toUpperCase()+o.slice(1)}`,r=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,(()=>{i.default(this._element).removeClass(Mt).addClass("collapse show"),this._element.style[o]="",this.setTransitioning(!1),i.default(this._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[o]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!i.default(this._element).hasClass(jt))return;const t=i.default.Event("hide.bs.collapse");if(i.default(this._element).trigger(t),t.isDefaultPrevented())return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,rt.reflow(this._element),i.default(this._element).addClass(Mt).removeClass("collapse show");const n=this._triggerArray.length;if(n>0)for(let t=0;t{this.setTransitioning(!1),i.default(this._element).removeClass(Mt).addClass(Pt).trigger("hidden.bs.collapse")})).emulateTransitionEnd(o)}setTransitioning(t){this._isTransitioning=t}dispose(){i.default.removeData(this._element,It),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(t){return(t={...Lt,...t}).toggle=Boolean(t.toggle),rt.typeCheckConfig(At,t,Ft),t}_getDimension(){return i.default(this._element).hasClass(Bt)?Bt:"height"}_getParent(){let t;rt.isElement(this._config.parent)?(t=this._config.parent,void 0!==this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);const e=`[data-toggle="collapse"][data-parent="${this._config.parent}"]`,n=[].slice.call(t.querySelectorAll(e));return i.default(n).each(((t,e)=>{this._addAriaAndCollapsedClass(qt._getTargetFromElement(e),[e])})),t}_addAriaAndCollapsedClass(t,e){const n=i.default(t).hasClass(jt);e.length&&i.default(e).toggleClass(Ht,!n).attr("aria-expanded",n)}static _getTargetFromElement(t){const e=rt.getSelectorFromElement(t);return e?document.querySelector(e):null}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(It);const o={...Lt,...e.data(),..."object"==typeof t&&t?t:{}};if(!n&&o.toggle&&"string"==typeof t&&/show|hide/.test(t)&&(o.toggle=!1),n||(n=new qt(this,o),e.data(It,n)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}i.default(document).on("click.bs.collapse.data-api",Rt,(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();const e=i.default(this),n=rt.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(n));i.default(o).each((function(){const t=i.default(this),n=t.data(It)?"toggle":e.data();qt._jQueryInterface.call(t,n)}))})),i.default.fn[At]=qt._jQueryInterface,i.default.fn[At].Constructor=qt,i.default.fn[At].noConflict=()=>(i.default.fn[At]=kt,qt._jQueryInterface); +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var Wt="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,$t=function(){for(var t=["Edge","Trident","Firefox"],e=0;e=0)return 1;return 0}();var Ut=Wt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),$t))}};function Qt(t){return t&&"[object Function]"==={}.toString.call(t)}function Vt(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function Yt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function zt(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Vt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:zt(Yt(t))}function Xt(t){return t&&t.referenceNode?t.referenceNode:t}var Kt=Wt&&!(!window.MSInputMethodContext||!document.documentMode),Gt=Wt&&/MSIE 10/.test(navigator.userAgent);function Jt(t){return 11===t?Kt:10===t?Gt:Kt||Gt}function Zt(t){if(!t)return document.documentElement;for(var e=Jt(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Vt(n,"position")?Zt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function te(t){return null!==t.parentNode?te(t.parentNode):t}function ee(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,s=document.createRange();s.setStart(i,0),s.setEnd(o,0);var r,a,l=s.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(r=l).nodeName)||"HTML"!==a&&Zt(r.firstElementChild)!==r?Zt(l):l;var d=te(t);return d.host?ee(d.host,e):ee(t,te(e).host)}function ne(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,s=t.ownerDocument.scrollingElement||o;return s[n]}return t[n]}function ie(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=ne(e,"top"),o=ne(e,"left"),s=n?-1:1;return t.top+=i*s,t.bottom+=i*s,t.left+=o*s,t.right+=o*s,t}function oe(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function se(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Jt(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function re(t){var e=t.body,n=t.documentElement,i=Jt(10)&&getComputedStyle(n);return{height:se("Height",e,n,i),width:se("Width",e,n,i)}}var ae=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},le=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=Jt(10),o="HTML"===e.nodeName,s=he(t),r=he(e),a=zt(t),l=Vt(e),d=parseFloat(l.borderTopWidth),c=parseFloat(l.borderLeftWidth);n&&o&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));var f=fe({top:s.top-r.top-d,left:s.left-r.left-c,width:s.width,height:s.height});if(f.marginTop=0,f.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop),u=parseFloat(l.marginLeft);f.top-=d-h,f.bottom-=d-h,f.left-=c-u,f.right-=c-u,f.marginTop=h,f.marginLeft=u}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(f=ie(f,e)),f}function pe(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=ue(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),s=Math.max(n.clientHeight,window.innerHeight||0),r=e?0:ne(n),a=e?0:ne(n,"left"),l={top:r-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:s};return fe(l)}function me(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===Vt(t,"position"))return!0;var n=Yt(t);return!!n&&me(n)}function ge(t){if(!t||!t.parentElement||Jt())return document.documentElement;for(var e=t.parentElement;e&&"none"===Vt(e,"transform");)e=e.parentElement;return e||document.documentElement}function _e(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},r=o?ge(t):ee(t,Xt(e));if("viewport"===i)s=pe(r,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=zt(Yt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=ue(a,r,o);if("HTML"!==a.nodeName||me(r))s=l;else{var d=re(t.ownerDocument),c=d.height,f=d.width;s.top+=l.top-l.marginTop,s.bottom=c+l.top,s.left+=l.left-l.marginLeft,s.right=f+l.left}}var h="number"==typeof(n=n||0);return s.left+=h?n:n.left||0,s.top+=h?n:n.top||0,s.right-=h?n:n.right||0,s.bottom-=h?n:n.bottom||0,s}function be(t){return t.width*t.height}function ve(t,e,n,i,o){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var r=_e(n,i,s,o),a={top:{width:r.width,height:e.top-r.top},right:{width:r.right-e.right,height:r.height},bottom:{width:r.width,height:r.bottom-e.bottom},left:{width:e.left-r.left,height:r.height}},l=Object.keys(a).map((function(t){return ce({key:t},a[t],{area:be(a[t])})})).sort((function(t,e){return e.area-t.area})),d=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),c=d.length>0?d[0].key:l[0].key,f=t.split("-")[1];return c+(f?"-"+f:"")}function ye(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?ge(e):ee(e,Xt(n));return ue(n,o,i)}function we(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Ee(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Te(t,e,n){n=n.split("-")[0];var i=we(t),o={width:i.width,height:i.height},s=-1!==["right","left"].indexOf(n),r=s?"top":"left",a=s?"left":"top",l=s?"height":"width",d=s?"width":"height";return o[r]=e[r]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[d]:e[Ee(a)],o}function Ce(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Se(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=Ce(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function;var n=t.function||t.fn;t.enabled&&Qt(n)&&(e.offsets.popper=fe(e.offsets.popper),e.offsets.reference=fe(e.offsets.reference),e=n(e,t))})),e}function De(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=ye(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=ve(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Te(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Se(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Ne(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function xe(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],n=Re.indexOf(t),i=Re.slice(n+1).concat(Re.slice(0,n));return e?i.reverse():i}var We="flip",$e="clockwise",Ue="counterclockwise";function Qe(t,e,n,i){var o=[0,0],s=-1!==["right","left"].indexOf(i),r=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=r.indexOf(Ce(r,(function(t){return-1!==t.search(/,|\s/)})));r[a]&&r[a].indexOf(",");var l=/\s*,\s*|\s+/,d=-1!==a?[r.slice(0,a).concat([r[a].split(l)[0]]),[r[a].split(l)[1]].concat(r.slice(a+1))]:[r];return(d=d.map((function(t,i){var o=(1===i?!s:s)?"height":"width",r=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,r=!0,t):r?(t[t.length-1]+=e,r=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),s=+o[1],r=o[2];if(!s)return t;if(0===r.indexOf("%")){var a=void 0;switch(r){case"%p":a=n;break;case"%":case"%r":default:a=i}return fe(a)[e]/100*s}if("vh"===r||"vw"===r)return("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*s;return s}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){je(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var Ve={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,s=o.reference,r=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",d=a?"width":"height",c={start:de({},l,s[l]),end:de({},l,s[l]+s[d]-r[d])};t.offsets.popper=ce({},r,c[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,s=o.popper,r=o.reference,a=i.split("-")[0],l=void 0;return l=je(+n)?[+n,0]:Qe(n,s,r,a),"left"===a?(s.top+=l[0],s.left-=l[1]):"right"===a?(s.top+=l[0],s.left+=l[1]):"top"===a?(s.left+=l[0],s.top-=l[1]):"bottom"===a&&(s.left+=l[0],s.top+=l[1]),t.popper=s,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||Zt(t.instance.popper);t.instance.reference===n&&(n=Zt(n));var i=xe("transform"),o=t.instance.popper.style,s=o.top,r=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=_e(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=s,o.left=r,o[i]=a,e.boundaries=l;var d=e.priority,c=t.offsets.popper,f={primary:function(t){var n=c[t];return c[t]l[t]&&!e.escapeWithReference&&(i=Math.min(c[n],l[t]-("right"===t?c.width:c.height))),de({},n,i)}};return d.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c=ce({},c,f[e](t))})),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],s=Math.floor,r=-1!==["top","bottom"].indexOf(o),a=r?"right":"bottom",l=r?"left":"top",d=r?"width":"height";return n[a]s(i[a])&&(t.offsets.popper[l]=s(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!He(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return t;var o=t.placement.split("-")[0],s=t.offsets,r=s.popper,a=s.reference,l=-1!==["left","right"].indexOf(o),d=l?"height":"width",c=l?"Top":"Left",f=c.toLowerCase(),h=l?"left":"top",u=l?"bottom":"right",p=we(i)[d];a[u]-pr[u]&&(t.offsets.popper[f]+=a[f]+p-r[u]),t.offsets.popper=fe(t.offsets.popper);var m=a[f]+a[d]/2-p/2,g=Vt(t.instance.popper),_=parseFloat(g["margin"+c]),b=parseFloat(g["border"+c+"Width"]),v=m-t.offsets.popper[f]-_-b;return v=Math.max(Math.min(r[d]-p,v),0),t.arrowElement=i,t.offsets.arrow=(de(n={},f,Math.round(v)),de(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Ne(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=_e(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Ee(i),s=t.placement.split("-")[1]||"",r=[];switch(e.behavior){case We:r=[i,o];break;case $e:r=qe(i);break;case Ue:r=qe(i,!0);break;default:r=e.behavior}return r.forEach((function(a,l){if(i!==a||r.length===l+1)return t;i=t.placement.split("-")[0],o=Ee(i);var d=t.offsets.popper,c=t.offsets.reference,f=Math.floor,h="left"===i&&f(d.right)>f(c.left)||"right"===i&&f(d.left)f(c.top)||"bottom"===i&&f(d.top)f(n.right),m=f(d.top)f(n.bottom),_="left"===i&&u||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,b=-1!==["top","bottom"].indexOf(i),v=!!e.flipVariations&&(b&&"start"===s&&u||b&&"end"===s&&p||!b&&"start"===s&&m||!b&&"end"===s&&g),y=!!e.flipVariationsByContent&&(b&&"start"===s&&p||b&&"end"===s&&u||!b&&"start"===s&&g||!b&&"end"===s&&m),w=v||y;(h||_||w)&&(t.flipped=!0,(h||_)&&(i=r[l+1]),w&&(s=function(t){return"end"===t?"start":"start"===t?"end":t}(s)),t.placement=i+(s?"-"+s:""),t.offsets.popper=ce({},t.offsets.popper,Te(t.instance.popper,t.offsets.reference,t.placement)),t=Se(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,s=i.reference,r=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[r?"left":"top"]=s[n]-(a?o[r?"width":"height"]:0),t.placement=Ee(e),t.offsets.popper=fe(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!He(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Ce(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};ae(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=Ut(this.update.bind(this)),this.options=ce({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(ce({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=ce({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return ce({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&Qt(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var s=this.options.eventsEnabled;s&&this.enableEventListeners(),this.state.eventsEnabled=s}return le(t,[{key:"update",value:function(){return De.call(this)}},{key:"destroy",value:function(){return Oe.call(this)}},{key:"enableEventListeners",value:function(){return Le.call(this)}},{key:"disableEventListeners",value:function(){return Fe.call(this)}}]),t}();Ye.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ye.placements=Be,Ye.Defaults=Ve;var ze=Ye;const Xe="dropdown",Ke="bs.dropdown",Ge=".bs.dropdown",Je=i.default.fn[Xe],Ze=new RegExp("38|40|27"),tn="hide.bs.dropdown",en="hidden.bs.dropdown",nn="click.bs.dropdown.data-api",on="keydown.bs.dropdown.data-api",sn="disabled",rn="show",an="dropdown-menu-right",ln='[data-toggle="dropdown"]',dn=".dropdown-menu",cn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},fn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"};class hn{constructor(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get VERSION(){return"4.6.0"}static get Default(){return cn}static get DefaultType(){return fn}toggle(){if(this._element.disabled||i.default(this._element).hasClass(sn))return;const t=i.default(this._menu).hasClass(rn);hn._clearMenus(),t||this.show(!0)}show(t=!1){if(this._element.disabled||i.default(this._element).hasClass(sn)||i.default(this._menu).hasClass(rn))return;const e={relatedTarget:this._element},n=i.default.Event("show.bs.dropdown",e),o=hn._getParentFromElement(this._element);if(i.default(o).trigger(n),!n.isDefaultPrevented()){if(!this._inNavbar&&t){if(void 0===ze)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=o:rt.isElement(this._config.reference)&&(t=this._config.reference,void 0!==this._config.reference.jquery&&(t=this._config.reference[0])),"scrollParent"!==this._config.boundary&&i.default(o).addClass("position-static"),this._popper=new ze(t,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===i.default(o).closest(".navbar-nav").length&&i.default(document.body).children().on("mouseover",null,i.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),i.default(this._menu).toggleClass(rn),i.default(o).toggleClass(rn).trigger(i.default.Event("shown.bs.dropdown",e))}}hide(){if(this._element.disabled||i.default(this._element).hasClass(sn)||!i.default(this._menu).hasClass(rn))return;const t={relatedTarget:this._element},e=i.default.Event(tn,t),n=hn._getParentFromElement(this._element);i.default(n).trigger(e),e.isDefaultPrevented()||(this._popper&&this._popper.destroy(),i.default(this._menu).toggleClass(rn),i.default(n).toggleClass(rn).trigger(i.default.Event(en,t)))}dispose(){i.default.removeData(this._element,Ke),i.default(this._element).off(Ge),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)}update(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()}_addEventListeners(){i.default(this._element).on("click.bs.dropdown",(t=>{t.preventDefault(),t.stopPropagation(),this.toggle()}))}_getConfig(t){return t={...this.constructor.Default,...i.default(this._element).data(),...t},rt.typeCheckConfig(Xe,t,this.constructor.DefaultType),t}_getMenuElement(){if(!this._menu){const t=hn._getParentFromElement(this._element);t&&(this._menu=t.querySelector(dn))}return this._menu}_getPlacement(){const t=i.default(this._element.parentNode);let e="bottom-start";return t.hasClass("dropup")?e=i.default(this._menu).hasClass(an)?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":i.default(this._menu).hasClass(an)&&(e="bottom-end"),e}_detectNavbar(){return i.default(this._element).closest(".navbar").length>0}_getOffset(){const t={};return"function"==typeof this._config.offset?t.fn=t=>(t.offsets={...t.offsets,...this._config.offset(t.offsets,this._element)||{}},t):t.offset=this._config.offset,t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),{...t,...this._config.popperConfig}}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(Ke);if(e||(e=new hn(this,"object"==typeof t?t:null),i.default(this).data(Ke,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static _clearMenus(t){if(t&&(3===t.which||"keyup"===t.type&&9!==t.which))return;const e=[].slice.call(document.querySelectorAll(ln));for(let n=0,o=e.length;ni.default(t).is(":visible")));if(0===o.length)return;let s=o.indexOf(t.target);38===t.which&&s>0&&s--,40===t.which&&s{t.stopPropagation()})),i.default.fn[Xe]=hn._jQueryInterface,i.default.fn[Xe].Constructor=hn,i.default.fn[Xe].noConflict=()=>(i.default.fn[Xe]=Je,hn._jQueryInterface);const un="modal",pn="bs.modal",mn=".bs.modal",gn=i.default.fn.modal,_n={backdrop:!0,keyboard:!0,focus:!0,show:!0},bn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},vn="hidden.bs.modal",yn="show.bs.modal",wn="focusin.bs.modal",En="resize.bs.modal",Tn="click.dismiss.bs.modal",Cn="keydown.dismiss.bs.modal",Sn="mousedown.dismiss.bs.modal",Dn="modal-open",Nn="fade",xn="show",On="modal-static",An=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",In=".sticky-top";class kn{constructor(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get VERSION(){return"4.6.0"}static get Default(){return _n}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||this._isTransitioning)return;i.default(this._element).hasClass(Nn)&&(this._isTransitioning=!0);const e=i.default.Event(yn,{relatedTarget:t});i.default(this._element).trigger(e),this._isShown||e.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),i.default(this._element).on(Tn,'[data-dismiss="modal"]',(t=>this.hide(t))),i.default(this._dialog).on(Sn,(()=>{i.default(this._element).one("mouseup.dismiss.bs.modal",(t=>{i.default(t.target).is(this._element)&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(t){if(t&&t.preventDefault(),!this._isShown||this._isTransitioning)return;const e=i.default.Event("hide.bs.modal");if(i.default(this._element).trigger(e),!this._isShown||e.isDefaultPrevented())return;this._isShown=!1;const n=i.default(this._element).hasClass(Nn);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),i.default(document).off(wn),i.default(this._element).removeClass(xn),i.default(this._element).off(Tn),i.default(this._dialog).off(Sn),n){const t=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,(t=>this._hideModal(t))).emulateTransitionEnd(t)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach((t=>i.default(t).off(mn))),i.default(document).off(wn),i.default.removeData(this._element,pn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(t){return t={..._n,...t},rt.typeCheckConfig(un,t,bn),t}_triggerBackdropTransition(){const t=i.default.Event("hidePrevented.bs.modal");if(i.default(this._element).trigger(t),t.isDefaultPrevented())return;const e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add(On);const n=rt.getTransitionDurationFromElement(this._dialog);i.default(this._element).off(rt.TRANSITION_END),i.default(this._element).one(rt.TRANSITION_END,(()=>{this._element.classList.remove(On),e||i.default(this._element).one(rt.TRANSITION_END,(()=>{this._element.style.overflowY=""})).emulateTransitionEnd(this._element,n)})).emulateTransitionEnd(n),this._element.focus()}_showElement(t){const e=i.default(this._element).hasClass(Nn),n=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i.default(this._dialog).hasClass("modal-dialog-scrollable")&&n?n.scrollTop=0:this._element.scrollTop=0,e&&rt.reflow(this._element),i.default(this._element).addClass(xn),this._config.focus&&this._enforceFocus();const o=i.default.Event("shown.bs.modal",{relatedTarget:t}),s=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,i.default(this._element).trigger(o)};if(e){const t=rt.getTransitionDurationFromElement(this._dialog);i.default(this._dialog).one(rt.TRANSITION_END,s).emulateTransitionEnd(t)}else s()}_enforceFocus(){i.default(document).off(wn).on(wn,(t=>{document!==t.target&&this._element!==t.target&&0===i.default(this._element).has(t.target).length&&this._element.focus()}))}_setEscapeEvent(){this._isShown?i.default(this._element).on(Cn,(t=>{this._config.keyboard&&27===t.which?(t.preventDefault(),this.hide()):this._config.keyboard||27!==t.which||this._triggerBackdropTransition()})):this._isShown||i.default(this._element).off(Cn)}_setResizeEvent(){this._isShown?i.default(window).on(En,(t=>this.handleUpdate(t))):i.default(window).off(En)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((()=>{i.default(document.body).removeClass(Dn),this._resetAdjustments(),this._resetScrollbar(),i.default(this._element).trigger(vn)}))}_removeBackdrop(){this._backdrop&&(i.default(this._backdrop).remove(),this._backdrop=null)}_showBackdrop(t){const e=i.default(this._element).hasClass(Nn)?Nn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",e&&this._backdrop.classList.add(e),i.default(this._backdrop).appendTo(document.body),i.default(this._element).on(Tn,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())})),e&&rt.reflow(this._backdrop),i.default(this._backdrop).addClass(xn),!t)return;if(!e)return void t();const n=rt.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(rt.TRANSITION_END,t).emulateTransitionEnd(n)}else if(!this._isShown&&this._backdrop){i.default(this._backdrop).removeClass(xn);const e=()=>{this._removeBackdrop(),t&&t()};if(i.default(this._element).hasClass(Nn)){const t=rt.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(rt.TRANSITION_END,e).emulateTransitionEnd(t)}else e()}else t&&t()}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=`${this._scrollbarWidth}px`),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=`${this._scrollbarWidth}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right){const n=e.style.paddingRight,o=i.default(e).css("padding-right");i.default(e).data("padding-right",n).css("padding-right",`${parseFloat(o)+this._scrollbarWidth}px`)})),i.default(e).each(((t,e)=>{const n=e.style.marginRight,o=i.default(e).css("margin-right");i.default(e).data("margin-right",n).css("margin-right",parseFloat(o)-this._scrollbarWidth+"px")}));const n=document.body.style.paddingRight,o=i.default(document.body).css("padding-right");i.default(document.body).data("padding-right",n).css("padding-right",`${parseFloat(o)+this._scrollbarWidth}px`)}i.default(document.body).addClass(Dn)}_resetScrollbar(){const t=[].slice.call(document.querySelectorAll(An));i.default(t).each(((t,e)=>{const n=i.default(e).data("padding-right");i.default(e).removeData("padding-right"),e.style.paddingRight=n||""}));const e=[].slice.call(document.querySelectorAll(".sticky-top"));i.default(e).each(((t,e)=>{const n=i.default(e).data("margin-right");void 0!==n&&i.default(e).css("margin-right",n).removeData("margin-right")}));const n=i.default(document.body).data("padding-right");i.default(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""}_getScrollbarWidth(){const t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);const e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}static _jQueryInterface(t,e){return this.each((function(){let n=i.default(this).data(pn);const o={..._n,...i.default(this).data(),..."object"==typeof t&&t?t:{}};if(n||(n=new kn(this,o),i.default(this).data(pn,n)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t](e)}else o.show&&n.show(e)}))}}i.default(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){let e;const n=rt.getSelectorFromElement(this);n&&(e=document.querySelector(n));const o=i.default(e).data(pn)?"toggle":{...i.default(e).data(),...i.default(this).data()};"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();const s=i.default(e).one(yn,(t=>{t.isDefaultPrevented()||s.one(vn,(()=>{i.default(this).is(":visible")&&this.focus()}))}));kn._jQueryInterface.call(i.default(e),o,this)})),i.default.fn.modal=kn._jQueryInterface,i.default.fn.modal.Constructor=kn,i.default.fn.modal.noConflict=()=>(i.default.fn.modal=gn,kn._jQueryInterface);const Ln=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Fn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},jn=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Pn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function Mn(t,e){const n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ln.indexOf(n)||Boolean(t.nodeValue.match(jn)||t.nodeValue.match(Pn));const i=e.filter((t=>t instanceof RegExp));for(let t=0,e=i.length;t{Mn(t,a)||n.removeAttribute(t.nodeName)}))}return i.body.innerHTML}const Bn="tooltip",Rn="bs.tooltip",qn=".bs.tooltip",Wn=i.default.fn.tooltip,$n=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Un=["sanitize","whiteList","sanitizeFn"],Qn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Vn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Yn={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:Fn,popperConfig:null},zn="show",Xn="out",Kn={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Gn="fade",Jn="show",Zn="hover",ti="focus";class ei{constructor(t,e){if(void 0===ze)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}static get VERSION(){return"4.6.0"}static get Default(){return Yn}static get NAME(){return Bn}static get DATA_KEY(){return Rn}static get Event(){return Kn}static get EVENT_KEY(){return qn}static get DefaultType(){return Qn}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this.constructor.DATA_KEY;let n=i.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i.default(this.getTipElement()).hasClass(Jn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),i.default.removeData(this.element,this.constructor.DATA_KEY),i.default(this.element).off(this.constructor.EVENT_KEY),i.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null}show(){if("none"===i.default(this.element).css("display"))throw new Error("Please use show on visible elements");const t=i.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i.default(this.element).trigger(t);const e=rt.findShadowRoot(this.element),n=i.default.contains(null!==e?e:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;const o=this.getTipElement(),s=rt.getUID(this.constructor.NAME);o.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.default(o).addClass(Gn);const r="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(r);this.addAttachmentClass(a);const l=this._getContainer();i.default(o).data(this.constructor.DATA_KEY,this),i.default.contains(this.element.ownerDocument.documentElement,this.tip)||i.default(o).appendTo(l),i.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new ze(this.element,o,this._getPopperConfig(a)),i.default(o).addClass(Jn),i.default(o).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i.default(document.body).children().on("mouseover",null,i.default.noop);const d=()=>{this.config.animation&&this._fixTransition();const t=this._hoverState;this._hoverState=null,i.default(this.element).trigger(this.constructor.Event.SHOWN),t===Xn&&this._leave(null,this)};if(i.default(this.tip).hasClass(Gn)){const t=rt.getTransitionDurationFromElement(this.tip);i.default(this.tip).one(rt.TRANSITION_END,d).emulateTransitionEnd(t)}else d()}}hide(t){const e=this.getTipElement(),n=i.default.Event(this.constructor.Event.HIDE),o=()=>{this._hoverState!==zn&&e.parentNode&&e.parentNode.removeChild(e),this._cleanTipClass(),this.element.removeAttribute("aria-describedby"),i.default(this.element).trigger(this.constructor.Event.HIDDEN),null!==this._popper&&this._popper.destroy(),t&&t()};if(i.default(this.element).trigger(n),!n.isDefaultPrevented()){if(i.default(e).removeClass(Jn),"ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,i.default(this.tip).hasClass(Gn)){const t=rt.getTransitionDurationFromElement(e);i.default(e).one(rt.TRANSITION_END,o).emulateTransitionEnd(t)}else o();this._hoverState=""}}update(){null!==this._popper&&this._popper.scheduleUpdate()}isWithContent(){return Boolean(this.getTitle())}addAttachmentClass(t){i.default(this.getTipElement()).addClass(`bs-tooltip-${t}`)}getTipElement(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip}setContent(){const t=this.getTipElement();this.setElementContent(i.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),i.default(t).removeClass("fade show")}setElementContent(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Hn(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?i.default(e).parent().is(t)||t.empty().append(e):t.text(i.default(e).text())}getTitle(){let t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t}_getPopperConfig(t){return{...{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:t=>{t.originalPlacement!==t.placement&&this._handlePopperPlacementChange(t)},onUpdate:t=>this._handlePopperPlacementChange(t)},...this.config.popperConfig}}_getOffset(){const t={};return"function"==typeof this.config.offset?t.fn=t=>(t.offsets={...t.offsets,...this.config.offset(t.offsets,this.element)||{}},t):t.offset=this.config.offset,t}_getContainer(){return!1===this.config.container?document.body:rt.isElement(this.config.container)?i.default(this.config.container):i.default(document).find(this.config.container)}_getAttachment(t){return Vn[t.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach((t=>{if("click"===t)i.default(this.element).on(this.constructor.Event.CLICK,this.config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===Zn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n=t===Zn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;i.default(this.element).on(e,this.config.selector,(t=>this._enter(t))).on(n,this.config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this.element&&this.hide()},i.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}_enter(t,e){const n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?ti:Zn]=!0),i.default(e.getTipElement()).hasClass(Jn)||e._hoverState===zn?e._hoverState=zn:(clearTimeout(e._timeout),e._hoverState=zn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===zn&&e.show()}),e.config.delay.show):e.show())}_leave(t,e){const n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?ti:Zn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Xn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===Xn&&e.hide()}),e.config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=i.default(this.element).data();return Object.keys(e).forEach((t=>{-1!==Un.indexOf(t)&&delete e[t]})),"number"==typeof(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),rt.typeCheckConfig(Bn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Hn(t.template,t.whiteList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this.config)for(const e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t}_cleanTipClass(){const t=i.default(this.getTipElement()),e=t.attr("class").match($n);null!==e&&e.length&&t.removeClass(e.join(""))}_handlePopperPlacementChange(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))}_fixTransition(){const t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(i.default(t).removeClass(Gn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(Rn);const o="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new ei(this,o),e.data(Rn,n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}i.default.fn.tooltip=ei._jQueryInterface,i.default.fn.tooltip.Constructor=ei,i.default.fn.tooltip.noConflict=()=>(i.default.fn.tooltip=Wn,ei._jQueryInterface);const ni="popover",ii="bs.popover",oi=".bs.popover",si=i.default.fn.popover,ri=new RegExp("(^|\\s)bs-popover\\S+","g"),ai={...ei.Default,placement:"right",trigger:"click",content:"",template:''},li={...ei.DefaultType,content:"(string|element|function)"},di={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class ci extends ei{static get VERSION(){return"4.6.0"}static get Default(){return ai}static get NAME(){return ni}static get DATA_KEY(){return ii}static get Event(){return di}static get EVENT_KEY(){return oi}static get DefaultType(){return li}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(t){i.default(this.getTipElement()).addClass(`bs-popover-${t}`)}getTipElement(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip}setContent(){const t=i.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());let e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const t=i.default(this.getTipElement()),e=t.attr("class").match(ri);null!==e&&e.length>0&&t.removeClass(e.join(""))}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(ii);const n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new ci(this,n),i.default(this).data(ii,e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}i.default.fn.popover=ci._jQueryInterface,i.default.fn.popover.Constructor=ci,i.default.fn.popover.noConflict=()=>(i.default.fn.popover=si,ci._jQueryInterface);const fi="scrollspy",hi="bs.scrollspy",ui=".bs.scrollspy",pi=i.default.fn[fi],mi={offset:10,method:"auto",target:""},gi={offset:"number",method:"string",target:"(string|element)"},_i="active",bi=".nav, .list-group",vi=".nav-link",yi="position";class wi{constructor(t,e){this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=`${this._config.target} .nav-link,${this._config.target} .list-group-item,${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i.default(this._scrollElement).on("scroll.bs.scrollspy",(t=>this._process(t))),this.refresh(),this._process()}static get VERSION(){return"4.6.0"}static get Default(){return mi}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":yi,e="auto"===this._config.method?t:this._config.method,n=e===yi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();[].slice.call(document.querySelectorAll(this._selector)).map((t=>{let o;const s=rt.getSelectorFromElement(t);if(s&&(o=document.querySelector(s)),o){const t=o.getBoundingClientRect();if(t.width||t.height)return[i.default(o)[e]().top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){i.default.removeData(this._element,hi),i.default(this._scrollElement).off(ui),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(t){if("string"!=typeof(t={...mi,..."object"==typeof t&&t?t:{}}).target&&rt.isElement(t.target)){let e=i.default(t.target).attr("id");e||(e=rt.getUID(fi),i.default(t.target).attr("id",e)),t.target=`#${e}`}return rt.typeCheckConfig(fi,t,gi),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;){this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-target="${t}"],${e}[href="${t}"]`)),n=i.default([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass("dropdown-item")?(n.closest(".dropdown").find(".dropdown-toggle").addClass(_i),n.addClass(_i)):(n.addClass(_i),n.parents(bi).prev(".nav-link, .list-group-item").addClass(_i),n.parents(bi).prev(".nav-item").children(vi).addClass(_i)),i.default(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})}_clear(){[].slice.call(document.querySelectorAll(this._selector)).filter((t=>t.classList.contains(_i))).forEach((t=>t.classList.remove(_i)))}static _jQueryInterface(t){return this.each((function(){let e=i.default(this).data(hi);if(e||(e=new wi(this,"object"==typeof t&&t),i.default(this).data(hi,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}i.default(window).on("load.bs.scrollspy.data-api",(()=>{const t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]'));for(let e=t.length;e--;){const n=i.default(t[e]);wi._jQueryInterface.call(n,n.data())}})),i.default.fn[fi]=wi._jQueryInterface,i.default.fn[fi].Constructor=wi,i.default.fn[fi].noConflict=()=>(i.default.fn[fi]=pi,wi._jQueryInterface);const Ei="bs.tab",Ti=i.default.fn.tab,Ci="active",Si="fade",Di="show",Ni=".active",xi="> li > .active";class Oi{constructor(t){this._element=t}static get VERSION(){return"4.6.0"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&i.default(this._element).hasClass(Ci)||i.default(this._element).hasClass("disabled"))return;let t,e;const n=i.default(this._element).closest(".nav, .list-group")[0],o=rt.getSelectorFromElement(this._element);if(n){const t="UL"===n.nodeName||"OL"===n.nodeName?xi:Ni;e=i.default.makeArray(i.default(n).find(t)),e=e[e.length-1]}const s=i.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=i.default.Event("show.bs.tab",{relatedTarget:e});if(e&&i.default(e).trigger(s),i.default(this._element).trigger(r),r.isDefaultPrevented()||s.isDefaultPrevented())return;o&&(t=document.querySelector(o)),this._activate(this._element,n);const a=()=>{const t=i.default.Event("hidden.bs.tab",{relatedTarget:this._element}),n=i.default.Event("shown.bs.tab",{relatedTarget:e});i.default(e).trigger(t),i.default(this._element).trigger(n)};t?this._activate(t,t.parentNode,a):a()}dispose(){i.default.removeData(this._element,Ei),this._element=null}_activate(t,e,n){const o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?i.default(e).children(Ni):i.default(e).find(xi))[0],s=n&&o&&i.default(o).hasClass(Si),r=()=>this._transitionComplete(t,o,n);if(o&&s){const t=rt.getTransitionDurationFromElement(o);i.default(o).removeClass(Di).one(rt.TRANSITION_END,r).emulateTransitionEnd(t)}else r()}_transitionComplete(t,e,n){if(e){i.default(e).removeClass(Ci);const t=i.default(e.parentNode).find("> .dropdown-menu .active")[0];t&&i.default(t).removeClass(Ci),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(i.default(t).addClass(Ci),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),rt.reflow(t),t.classList.contains(Si)&&t.classList.add(Di),t.parentNode&&i.default(t.parentNode).hasClass("dropdown-menu")){const e=i.default(t).closest(".dropdown")[0];if(e){const t=[].slice.call(e.querySelectorAll(".dropdown-toggle"));i.default(t).addClass(Ci)}t.setAttribute("aria-expanded",!0)}n&&n()}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(Ei);if(n||(n=new Oi(this),e.data(Ei,n)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}))}}i.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),Oi._jQueryInterface.call(i.default(this),"show")})),i.default.fn.tab=Oi._jQueryInterface,i.default.fn.tab.Constructor=Oi,i.default.fn.tab.noConflict=()=>(i.default.fn.tab=Ti,Oi._jQueryInterface);const Ai="toast",Ii="bs.toast",ki=i.default.fn.toast,Li="click.dismiss.bs.toast",Fi="hide",ji="show",Pi="showing",Mi={animation:"boolean",autohide:"boolean",delay:"number"},Hi={animation:!0,autohide:!0,delay:500};class Bi{constructor(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}static get VERSION(){return"4.6.0"}static get DefaultType(){return Mi}static get Default(){return Hi}show(){const t=i.default.Event("show.bs.toast");if(i.default(this._element).trigger(t),t.isDefaultPrevented())return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");const e=()=>{this._element.classList.remove(Pi),this._element.classList.add(ji),i.default(this._element).trigger("shown.bs.toast"),this._config.autohide&&(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay))};if(this._element.classList.remove(Fi),rt.reflow(this._element),this._element.classList.add(Pi),this._config.animation){const t=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,e).emulateTransitionEnd(t)}else e()}hide(){if(!this._element.classList.contains(ji))return;const t=i.default.Event("hide.bs.toast");i.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}dispose(){this._clearTimeout(),this._element.classList.contains(ji)&&this._element.classList.remove(ji),i.default(this._element).off(Li),i.default.removeData(this._element,Ii),this._element=null,this._config=null}_getConfig(t){return t={...Hi,...i.default(this._element).data(),..."object"==typeof t&&t?t:{}},rt.typeCheckConfig(Ai,t,this.constructor.DefaultType),t}_setListeners(){i.default(this._element).on(Li,'[data-dismiss="toast"]',(()=>this.hide()))}_close(){const t=()=>{this._element.classList.add(Fi),i.default(this._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ji),this._config.animation){const e=rt.getTransitionDurationFromElement(this._element);i.default(this._element).one(rt.TRANSITION_END,t).emulateTransitionEnd(e)}else t()}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static _jQueryInterface(t){return this.each((function(){const e=i.default(this);let n=e.data(Ii);if(n||(n=new Bi(this,"object"==typeof t&&t),e.data(Ii,n)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t](this)}}))}}var Ri,qi,Wi;i.default.fn.toast=Bi._jQueryInterface,i.default.fn.toast.Constructor=Bi,i.default.fn.toast.noConflict=()=>(i.default.fn.toast=ki,Bi._jQueryInterface),Ri=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,qi=navigator.userAgent.toLowerCase().indexOf("opera")>-1,Wi=navigator.userAgent.toLowerCase().indexOf("msie")>-1,(Ri||qi||Wi)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",(function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}),!1),t.Alert=dt,t.Button=gt,t.Carousel=Ot,t.Collapse=qt,t.Dropdown=hn,t.Modal=kn,t.Popover=ci,t.Popper=it,t.Scrollspy=wi,t.Tab=Oi,t.Toast=Bi,t.Tooltip=ei,t.Util=rt,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=child-theme.min.js.map \ No newline at end of file diff --git a/js/child-theme.min.js.map b/js/child-theme.min.js.map index 39ad4d3cb..f2b2e399b 100644 --- a/js/child-theme.min.js.map +++ b/js/child-theme.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/popper.js/src/utils/isBrowser.js","../node_modules/popper.js/src/utils/debounce.js","../node_modules/popper.js/src/utils/isFunction.js","../node_modules/popper.js/src/utils/getStyleComputedProperty.js","../node_modules/popper.js/src/utils/getParentNode.js","../node_modules/popper.js/src/utils/getScrollParent.js","../node_modules/popper.js/src/utils/getReferenceNode.js","../node_modules/popper.js/src/utils/isIE.js","../node_modules/popper.js/src/utils/getOffsetParent.js","../node_modules/popper.js/src/utils/getRoot.js","../node_modules/popper.js/src/utils/findCommonOffsetParent.js","../node_modules/popper.js/src/utils/isOffsetContainer.js","../node_modules/popper.js/src/utils/getScroll.js","../node_modules/popper.js/src/utils/getBordersSize.js","../node_modules/popper.js/src/utils/getWindowSizes.js","../node_modules/popper.js/src/utils/getClientRect.js","../node_modules/popper.js/src/utils/getBoundingClientRect.js","../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","../node_modules/popper.js/src/utils/includeScroll.js","../node_modules/popper.js/src/utils/isFixed.js","../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","../node_modules/popper.js/src/utils/getBoundaries.js","../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../node_modules/popper.js/src/utils/computeAutoPlacement.js","../node_modules/popper.js/src/utils/getReferenceOffsets.js","../node_modules/popper.js/src/utils/getOuterSizes.js","../node_modules/popper.js/src/utils/getOppositePlacement.js","../node_modules/popper.js/src/utils/getPopperOffsets.js","../node_modules/popper.js/src/utils/find.js","../node_modules/popper.js/src/utils/runModifiers.js","../node_modules/popper.js/src/utils/findIndex.js","../node_modules/popper.js/src/methods/update.js","../node_modules/popper.js/src/utils/isModifierEnabled.js","../node_modules/popper.js/src/utils/getSupportedPropertyName.js","../node_modules/popper.js/src/methods/destroy.js","../node_modules/popper.js/src/utils/getWindow.js","../node_modules/popper.js/src/utils/setupEventListeners.js","../node_modules/popper.js/src/methods/enableEventListeners.js","../node_modules/popper.js/src/methods/disableEventListeners.js","../node_modules/popper.js/src/utils/removeEventListeners.js","../node_modules/popper.js/src/utils/isNumeric.js","../node_modules/popper.js/src/utils/setStyles.js","../node_modules/popper.js/src/modifiers/computeStyle.js","../node_modules/popper.js/src/utils/isModifierRequired.js","../node_modules/popper.js/src/methods/placements.js","../node_modules/popper.js/src/utils/clockwise.js","../node_modules/popper.js/src/modifiers/flip.js","../node_modules/popper.js/src/modifiers/offset.js","../node_modules/popper.js/src/modifiers/index.js","../node_modules/popper.js/src/methods/defaults.js","../node_modules/popper.js/src/modifiers/shift.js","../node_modules/popper.js/src/modifiers/preventOverflow.js","../node_modules/popper.js/src/modifiers/keepTogether.js","../node_modules/popper.js/src/modifiers/arrow.js","../node_modules/popper.js/src/utils/getOppositeVariation.js","../node_modules/popper.js/src/modifiers/inner.js","../node_modules/popper.js/src/modifiers/hide.js","../node_modules/popper.js/src/utils/getRoundedOffsets.js","../node_modules/popper.js/src/modifiers/applyStyle.js","../node_modules/popper.js/src/utils/setAttributes.js","../node_modules/popper.js/src/index.js","../node_modules/bootstrap/js/src/util.js","../node_modules/bootstrap/js/src/alert.js","../node_modules/bootstrap/js/src/button.js","../node_modules/bootstrap/js/src/carousel.js","../node_modules/bootstrap/js/src/collapse.js","../node_modules/popper.js/dist/esm/popper.js","../node_modules/bootstrap/js/src/dropdown.js","../node_modules/bootstrap/js/src/modal.js","../node_modules/bootstrap/js/src/tools/sanitizer.js","../node_modules/bootstrap/js/src/tooltip.js","../node_modules/bootstrap/js/src/popover.js","../node_modules/bootstrap/js/src/scrollspy.js","../node_modules/bootstrap/js/src/tab.js","../node_modules/bootstrap/js/src/toast.js","../src/js/skip-link-focus-fix.js"],"names":["isBrowser$1","window","document","navigator","timeoutDuration","longerTimeoutBrowsers","i","length","isBrowser","userAgent","indexOf","debounce$1","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","call","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","isOffsetContainer","element1root","getScroll","side","upperSide","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","area","sort","a","b","filteredAreas","filter","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","runModifiers","modifiers","data","ends","undefined","slice","prop","value","findIndex","cur","match","obj","forEach","console","warn","enabled","update","this","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","placements$1","validPlacements","placements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","size","toValue","index2","Defaults$1","shift","shiftvariation","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","constructor","debounce","bind","Defaults","jquery","requestAnimationFrame","Utils","global","PopperUtils","TRANSITION_END","transitionEndEmulator","duration","$","one","Util","triggerTransitionEnd","getUID","random","getElementById","getSelectorFromElement","selector","getAttribute","hrefAttr","_","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","trigger","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","hasOwnProperty","expectedTypes","valueType","RegExp","Error","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","jQueryDetection","TypeError","emulateTransitionEnd","special","bindType","delegateType","handle","is","handleObj","handler","apply","arguments","DATA_KEY","JQUERY_NO_CONFLICT","Alert","_element","VERSION","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_INPUT","SELECTOR_BUTTON","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","activeElement","focus","hasAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","buttons","querySelectorAll","add","NAME","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","EVENT_SLID","SELECTOR_ACTIVE_ITEM","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","_updateInterval","setInterval","visibilityState","to","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","originalEvent","pointerType","clientX","touches","move","clearTimeout","which","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","addClass","elementInterval","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","SELECTOR_DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","show","actives","activesData","not","startEvent","dimension","_getDimension","attr","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","_getStyleComputedProp","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","assign","source","_getWindowSizes","_ref","_ref2","commonOffsetParent","_requesting","_data$offsets","_data$offsets$arrow","_this","Popper$1","REGEXP_KEYDOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_MENURIGHT","SELECTOR_MENU","boundary","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","stopPropagation","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","backdrop","EVENT_SHOW","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","uriAttrs","DefaultWhitelist","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","container","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","TRIGGER_HOVER","TRIGGER_FOCUS","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","text","empty","append","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation","Popover","_getContent","method","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close","isWebkit","isOpera","isIe","location","substring","tabIndex"],"mappings":"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","sourcesContent":["export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n if (!element) {\n return\n }\n\n const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '
' +\n '
' +\n '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n $(tip).addClass(this.config.customClass)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both
    and