{"version":3,"sources":["wwwroot/node_modules/jquery/dist/jquery.min.js","wwwroot/node_modules/jquery-validation/dist/jquery.validate.min.js","wwwroot/node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js","wwwroot/node_modules/popper.js/src/utils/isFunction.js","wwwroot/node_modules/popper.js/src/utils/getStyleComputedProperty.js","wwwroot/node_modules/popper.js/src/utils/getParentNode.js","wwwroot/node_modules/popper.js/src/utils/getScrollParent.js","wwwroot/node_modules/popper.js/src/utils/getReferenceNode.js","wwwroot/node_modules/popper.js/src/utils/isIE.js","wwwroot/node_modules/popper.js/src/utils/getOffsetParent.js","wwwroot/node_modules/popper.js/src/utils/isOffsetContainer.js","wwwroot/node_modules/popper.js/src/utils/getRoot.js","wwwroot/node_modules/popper.js/src/utils/findCommonOffsetParent.js","wwwroot/node_modules/popper.js/src/utils/getScroll.js","wwwroot/node_modules/popper.js/src/utils/includeScroll.js","wwwroot/node_modules/popper.js/src/utils/getBordersSize.js","wwwroot/node_modules/popper.js/src/utils/getWindowSizes.js","wwwroot/node_modules/popper.js/src/utils/getClientRect.js","wwwroot/node_modules/popper.js/src/utils/getBoundingClientRect.js","wwwroot/node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","wwwroot/node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","wwwroot/node_modules/popper.js/src/utils/isFixed.js","wwwroot/node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","wwwroot/node_modules/popper.js/src/utils/getBoundaries.js","wwwroot/node_modules/popper.js/src/utils/computeAutoPlacement.js","wwwroot/node_modules/popper.js/src/utils/getReferenceOffsets.js","wwwroot/node_modules/popper.js/src/utils/getOuterSizes.js","wwwroot/node_modules/popper.js/src/utils/getOppositePlacement.js","wwwroot/node_modules/popper.js/src/utils/getPopperOffsets.js","wwwroot/node_modules/popper.js/src/utils/find.js","wwwroot/node_modules/popper.js/src/utils/findIndex.js","wwwroot/node_modules/popper.js/src/utils/runModifiers.js","wwwroot/node_modules/popper.js/src/methods/update.js","wwwroot/node_modules/popper.js/src/utils/isModifierEnabled.js","wwwroot/node_modules/popper.js/src/utils/getSupportedPropertyName.js","wwwroot/node_modules/popper.js/src/methods/destroy.js","wwwroot/node_modules/popper.js/src/utils/getWindow.js","wwwroot/node_modules/popper.js/src/utils/setupEventListeners.js","wwwroot/node_modules/popper.js/src/methods/enableEventListeners.js","wwwroot/node_modules/popper.js/src/utils/removeEventListeners.js","wwwroot/node_modules/popper.js/src/methods/disableEventListeners.js","wwwroot/node_modules/popper.js/src/utils/isNumeric.js","wwwroot/node_modules/popper.js/src/utils/setStyles.js","wwwroot/node_modules/popper.js/src/utils/setAttributes.js","wwwroot/node_modules/popper.js/src/utils/getRoundedOffsets.js","wwwroot/node_modules/popper.js/src/utils/isModifierRequired.js","wwwroot/node_modules/popper.js/src/utils/getOppositeVariation.js","wwwroot/node_modules/popper.js/src/utils/clockwise.js","wwwroot/node_modules/popper.js/src/modifiers/offset.js","wwwroot/node_modules/popper.js/src/modifiers/arrow.js","wwwroot/node_modules/popper.js/src/utils/isBrowser.js","wwwroot/node_modules/popper.js/src/utils/debounce.js","wwwroot/node_modules/popper.js/src/modifiers/computeStyle.js","wwwroot/node_modules/popper.js/src/modifiers/flip.js","wwwroot/node_modules/popper.js/src/index.js","wwwroot/node_modules/popper.js/src/methods/defaults.js","wwwroot/node_modules/popper.js/src/modifiers/index.js","wwwroot/node_modules/popper.js/src/modifiers/shift.js","wwwroot/node_modules/popper.js/src/modifiers/preventOverflow.js","wwwroot/node_modules/popper.js/src/modifiers/keepTogether.js","wwwroot/node_modules/popper.js/src/modifiers/inner.js","wwwroot/node_modules/popper.js/src/modifiers/hide.js","wwwroot/node_modules/popper.js/src/modifiers/applyStyle.js","wwwroot/node_modules/bootstrap/js/src/util.js","wwwroot/node_modules/bootstrap/js/src/dropdown.js","wwwroot/node_modules/bootstrap/js/src/collapse.js","wwwroot/node_modules/bootstrap/js/src/toast.js","wwwroot/node_modules/bootstrap/js/src/modal.js","wwwroot/node_modules/bootstrap/js/src/tools/sanitizer.js","wwwroot/node_modules/bootstrap/js/src/tooltip.js","wwwroot/node_modules/loading-visualization/dist/main.ts"],"names":["functionToCheck","getType","toString","call","element","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","document","body","getStyleComputedProperty","overflow","overflowX","overflowY","test","getScrollParent","getParentNode","reference","referenceNode","version","isIE11","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","indexOf","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","isIE10","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","getReferenceNode","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","length","key","variation","split","commonOffsetParent","x","marginBottom","y","marginRight","hash","replace","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","Array","prototype","find","arr","findIndex","cur","match","obj","modifiersToRun","ends","modifiers","slice","forEach","warn","fn","enabled","isFunction","data","state","isDestroyed","getReferenceOffsets","options","positionFixed","computeAutoPlacement","flip","originalPlacement","getPopperOffsets","position","runModifiers","isCreated","onUpdate","onCreate","some","name","prefixes","upperProp","charAt","toUpperCase","i","prefix","toCheck","style","isModifierEnabled","removeAttribute","willChange","getSupportedPropertyName","disableEventListeners","removeOnDestroy","removeChild","isBody","target","addEventListener","passive","push","updateBound","scrollElement","scrollParents","eventsEnabled","setupEventListeners","scheduleUpdate","removeEventListener","removeEventListeners","n","isNaN","isFinite","unit","isNumeric","value","attributes","setAttribute","round","noRound","referenceWidth","popperWidth","isVertical","isVariation","horizontalToInteger","verticalToInteger","bothOddWidth","requesting","isRequired","requested","counter","index","validPlacements","concat","reverse","str","size","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","mergeWithPrevious","op","reduce","toValue","index2","basePlacement","parseOffset","min","floor","max","navigator","longerTimeoutBrowsers","isBrowser","userAgent","supportsMicroTasks","Promise","called","resolve","then","scheduled","MSInputMethodContext","documentMode","isFirefox","placements","BEHAVIORS","Popper","requestAnimationFrame","update","debounce","bind","Defaults","jquery","modifierOptions","onLoad","enableEventListeners","destroy","Utils","global","PopperUtils","shiftvariation","shiftOffsets","instance","transformProp","popperStyles","transform","priority","check","escapeWithReference","opSide","isModifierRequired","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","clockwise","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","hide","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrowStyles","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","special","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","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLASS_NAME_DISABLED","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_DATA_TOGGLE","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","boundary","display","popperConfig","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","isActive","_clearMenus","show","usePopper","relatedTarget","showEvent","Event","_getParentFromElement","isDefaultPrevented","referenceElement","addClass","_getPopperConfig","closest","children","on","noop","focus","toggleClass","hideEvent","dispose","removeData","off","preventDefault","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","preventOverflow","applyStyle","_jQueryInterface","each","which","type","toggles","querySelectorAll","context","clickEvent","dropdownMenu","tagName","removeClass","_dataApiKeydownHandler","items","item","e","Constructor","noConflict","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","classList","not","startEvent","dimension","_getDimension","attr","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$element","currentTarget","$trigger","selectors","$target","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","EVENT_CLICK_DISMISS","SELECTOR_DATA_DISMISS","animation","autohide","delay","Toast","_timeout","_setListeners","_clearTimeout","add","remove","_close","clearTimeout","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","backdrop","keyboard","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","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","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","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elName","attributeList","whitelistedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","template","title","container","fallbackPlacement","customClass","sanitize","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_hoverState","_activeTrigger","tip","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","defaultBsConfig","_handlePopperPlacementChange","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation"],"mappings":"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","file":"libraries-core.bundle.js","sourcesContent":["/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.6.0\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"\",y.option=!!ce.lastChild;var ge={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ve(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n\",\"\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=zt.pop()||S.expando+\"_\"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Ut.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0\").attr(\"name\",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is(\"form\")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k=\"undefined\"!=typeof this.attr(\"contenteditable\")&&\"false\"!==this.attr(\"contenteditable\");if(null!=j&&(!j.form&&k&&(j.form=this.closest(\"form\")[0],j.name=this.attr(\"name\")),null!=j.form)){if(b)switch(d=a.data(j.form,\"validator\").settings,e=d.rules,f=a.validator.staticRules(j),b){case\"add\":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case\"remove\":return c?(i={},a.each(c.split(/\\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")};a.extend(a.expr.pseudos||a.expr[\":\"],{blank:function(c){return!b(\"\"+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(\"\"+d)},unchecked:function(b){return!a(b).prop(\"checked\")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp(\"\\\\{\"+a+\"\\\\}\",\"g\"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:\"error\",pendingClass:\"pending\",validClass:\"valid\",errorElement:\"label\",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:\":hidden\",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&\"\"===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){\"radio\"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){\"radio\"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:\"This field is required.\",remote:\"Please fix this field.\",email:\"Please enter a valid email address.\",url:\"Please enter a valid URL.\",date:\"Please enter a valid date.\",dateISO:\"Please enter a valid date (ISO).\",number:\"Please enter a valid number.\",digits:\"Please enter only digits.\",equalTo:\"Please enter the same value again.\",maxlength:a.validator.format(\"Please enter no more than {0} characters.\"),minlength:a.validator.format(\"Please enter at least {0} characters.\"),rangelength:a.validator.format(\"Please enter a value between {0} and {1} characters long.\"),range:a.validator.format(\"Please enter a value between {0} and {1}.\"),max:a.validator.format(\"Please enter a value less than or equal to {0}.\"),min:a.validator.format(\"Please enter a value greater than or equal to {0}.\"),step:a.validator.format(\"Please enter a multiple of {0}.\")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=\"undefined\"!=typeof a(this).attr(\"contenteditable\")&&\"false\"!==a(this).attr(\"contenteditable\");if(!this.form&&c&&(this.form=a(this).closest(\"form\")[0],this.name=a(this).attr(\"name\")),d===this.form){var e=a.data(this.form,\"validator\"),f=\"on\"+b.type.replace(/^validate/,\"\"),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){\"string\"==typeof c&&(c=c.split(/\\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on(\"focusin.validate focusout.validate keyup.validate\",\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']\",b).on(\"click.validate\",\"select, option, [type='radio'], [type='checkbox']\",b),this.settings.invalidHandler&&a(this.currentForm).on(\"invalid-form.validate\",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler(\"invalid-form\",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr(\"aria-invalid\",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData(\"previousValue\").removeAttr(\"aria-invalid\");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,\"\"),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(\"\"),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(\":visible\").trigger(\"focus\").trigger(\"focusin\")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find(\"input, select, textarea, [contenteditable]\").not(\":submit, :reset, :image, :disabled\").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr(\"name\"),e=\"undefined\"!=typeof a(this).attr(\"contenteditable\")&&\"false\"!==a(this).attr(\"contenteditable\");return!d&&b.settings.debug&&window.console&&console.error(\"%o has no name assigned\",this),e&&(this.form=a(this).closest(\"form\")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(\" \").join(\".\");return a(this.settings.errorElement+\".\"+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g=\"undefined\"!=typeof e.attr(\"contenteditable\")&&\"false\"!==e.attr(\"contenteditable\");return\"radio\"===f||\"checkbox\"===f?this.findByName(b.name).filter(\":checked\").val():\"number\"===f&&\"undefined\"!=typeof b.validity?b.validity.badInput?\"NaN\":e.val():(c=g?e.text():e.val(),\"file\"===f?\"C:\\\\fakepath\\\\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf(\"/\"),d>=0?c.substr(d+1):(d=c.lastIndexOf(\"\\\\\"),d>=0?c.substr(d+1):c)):\"string\"==typeof c?c.replace(/\\r/g,\"\"):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);\"function\"==typeof g.normalizer?f=g.normalizer:\"function\"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),\"dependency-mismatch\"===c&&1===h){i=!0;continue}if(i=!1,\"pending\"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log(\"Exception occurred when checking element \"+b.id+\", check the '\"+e.method+\"' method.\",k),k instanceof TypeError&&(k.message+=\". Exception occurred when checking element \"+b.id+\", check the '\"+e.method+\"' method.\"),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data(\"msg\"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data(\"msg\")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for \"+b.name+\"\"),e=/\\$?\\{(\\d+)\\}/g;return\"function\"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,\"{$1}\"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr(\"aria-describedby\");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a(\"<\"+this.settings.errorElement+\">\").attr(\"id\",i+\"-error\").addClass(this.settings.errorClass).html(c||\"\"),d=h,this.settings.wrapper&&(d=h.hide().show().wrap(\"<\"+this.settings.wrapper+\"/>\").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is(\"label\")?h.attr(\"for\",i):0===h.parents(\"label[for='\"+this.escapeCssMeta(i)+\"']\").length&&(f=h.attr(\"id\"),j?j.match(new RegExp(\"\\\\b\"+this.escapeCssMeta(f)+\"\\\\b\"))||(j+=\" \"+f):j=f,a(b).attr(\"aria-describedby\",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a(\"[name='\"+g.escapeCssMeta(b)+\"']\",g.currentForm).attr(\"aria-describedby\",h.attr(\"id\"))})))),!c&&this.settings.success&&(h.text(\"\"),\"string\"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr(\"aria-describedby\"),e=\"label[for='\"+c+\"'], label[for='\"+c+\"'] *\";return d&&(e=e+\", #\"+this.escapeCssMeta(d).replace(/\\s+/g,\", #\")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?\"\":a.replace(/([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g,\"\\\\$1\")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find(\"[name='\"+this.escapeCssMeta(b)+\"']\")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case\"select\":return a(\"option:selected\",c).length;case\"input\":if(this.checkable(c))return this.findByName(c.name).filter(\":checked\").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{\"boolean\":function(a){return a},string:function(b,c){return!!a(b,c.form).length},\"function\":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&\"dependency-mismatch\"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger(\"submit\"),this.submitButton&&a(\"input:hidden[name='\"+this.submitButton.name+\"']\",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler(\"invalid-form\",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c=\"string\"==typeof c&&c||\"remote\",a.data(b,\"previousValue\")||a.data(b,\"previousValue\",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(\".validate\").removeData(\"validator\").find(\".validate-equalTo-blur\").off(\".validate-equalTo\").removeClass(\"validate-equalTo-blur\").find(\".validate-lessThan-blur\").off(\".validate-lessThan\").removeClass(\"validate-lessThan-blur\").find(\".validate-lessThanEqual-blur\").off(\".validate-lessThanEqual\").removeClass(\"validate-lessThanEqual-blur\").find(\".validate-greaterThanEqual-blur\").off(\".validate-greaterThanEqual\").removeClass(\"validate-greaterThanEqual-blur\").find(\".validate-greaterThan-blur\").off(\".validate-greaterThan\").removeClass(\"validate-greaterThan-blur\")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr(\"class\");return d&&a.each(d.split(\" \"),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&\"range\"!==b&&(a[\"date\"===b?\"dateISO\":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute(\"type\");for(c in a.validator.methods)\"required\"===c?(d=b.getAttribute(c),\"\"===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute(\"type\");for(c in a.validator.methods)d=f.data(\"rule\"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),\"\"===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,\"validator\");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case\"string\":f=!!a(e.depends,c.form).length;break;case\"function\":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,\"validator\").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]=\"function\"==typeof d&&\"normalizer\"!==a?d(c):d}),a.each([\"minlength\",\"maxlength\"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each([\"rangelength\",\"range\"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:\"string\"==typeof b[this]&&(a=b[this].replace(/[\\[\\]]/g,\"\").split(/[\\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if(\"string\"==typeof b){var c={};a.each(b.split(/\\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return\"dependency-mismatch\";if(\"select\"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn(\"The `date` method is deprecated and will be removed in version '2.0.0'.\\nPlease don't use it, since it relies on the Date constructor, which\\nbehaves very differently across browsers and locales. Use `dateISO`\\ninstead or one of the locale specific methods in `localizations/`\\nand `additional-methods.js`.\")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr(\"type\"),g=\"Step attribute on input type \"+f+\" is not supported.\",h=[\"text\",\"number\",\"range\"],i=new RegExp(\"\\\\b\"+f+\"\\\\b\"),j=f&&!i.test(h.join()),k=function(a){var b=(\"\"+a).match(/(?:\\.(\\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(\".validate-equalTo-blur\").length&&e.addClass(\"validate-equalTo-blur\").on(\"blur.validate-equalTo\",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return\"dependency-mismatch\";e=\"string\"==typeof e&&e||\"remote\";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d=\"string\"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:\"abort\",port:\"validate\"+c.name,dataType:\"json\",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||\"true\"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),\"pending\")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,c){var e=a.port;\"abort\"===a.mode&&(d[e]&&d[e].abort(),d[e]=c)}):(c=a.ajax,a.ajax=function(b){var e=(\"mode\"in b?b:a.ajaxSettings).mode,f=(\"port\"in b?b:a.ajaxSettings).port;return\"abort\"===e?(d[f]&&d[f].abort(),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a});","// Unobtrusive validation support library for jQuery and jQuery Validate\r\n// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// @version v3.2.12\r\n!function(a){\"function\"==typeof define&&define.amd?define(\"jquery.validate.unobtrusive\",[\"jquery-validation\"],a):\"object\"==typeof module&&module.exports?module.exports=a(require(\"jquery-validation\")):jQuery.validator.unobtrusive=a(jQuery)}(function(a){function e(a,e,n){a.rules[e]=n,a.message&&(a.messages[e]=a.message)}function n(a){return a.replace(/^\\s+|\\s+$/g,\"\").split(/\\s*,\\s*/g)}function t(a){return a.replace(/([!\"#$%&'()*+,.\\/:;<=>?@\\[\\\\\\]^`{|}~])/g,\"\\\\$1\")}function r(a){return a.substr(0,a.lastIndexOf(\".\")+1)}function i(a,e){return 0===a.indexOf(\"*.\")&&(a=a.replace(\"*.\",e)),a}function o(e,n){var r=a(this).find(\"[data-valmsg-for='\"+t(n[0].name)+\"']\"),i=r.attr(\"data-valmsg-replace\"),o=i?a.parseJSON(i)!==!1:null;r.removeClass(\"field-validation-valid\").addClass(\"field-validation-error\"),e.data(\"unobtrusiveContainer\",r),o?(r.empty(),e.removeClass(\"input-validation-error\").appendTo(r)):e.hide()}function d(e,n){var t=a(this).find(\"[data-valmsg-summary=true]\"),r=t.find(\"ul\");r&&r.length&&n.errorList.length&&(r.empty(),t.addClass(\"validation-summary-errors\").removeClass(\"validation-summary-valid\"),a.each(n.errorList,function(){a(\"
  • \").html(this.message).appendTo(r)}))}function s(e){var n=e.data(\"unobtrusiveContainer\");if(n){var t=n.attr(\"data-valmsg-replace\"),r=t?a.parseJSON(t):null;n.addClass(\"field-validation-valid\").removeClass(\"field-validation-error\"),e.removeData(\"unobtrusiveContainer\"),r&&n.empty()}}function l(e){var n=a(this),t=\"__jquery_unobtrusive_validation_form_reset\";if(!n.data(t)){n.data(t,!0);try{n.data(\"validator\").resetForm()}finally{n.removeData(t)}n.find(\".validation-summary-errors\").addClass(\"validation-summary-valid\").removeClass(\"validation-summary-errors\"),n.find(\".field-validation-error\").addClass(\"field-validation-valid\").removeClass(\"field-validation-error\").removeData(\"unobtrusiveContainer\").find(\">*\").removeData(\"unobtrusiveContainer\")}}function u(e){var n=a(e),t=n.data(v),r=a.proxy(l,e),i=f.unobtrusive.options||{},u=function(n,t){var r=i[n];r&&a.isFunction(r)&&r.apply(e,t)};return t||(t={options:{errorClass:i.errorClass||\"input-validation-error\",errorElement:i.errorElement||\"span\",errorPlacement:function(){o.apply(e,arguments),u(\"errorPlacement\",arguments)},invalidHandler:function(){d.apply(e,arguments),u(\"invalidHandler\",arguments)},messages:{},rules:{},success:function(){s.apply(e,arguments),u(\"success\",arguments)}},attachValidation:function(){n.off(\"reset.\"+v,r).on(\"reset.\"+v,r).validate(this.options)},validate:function(){return n.validate(),n.valid()}},n.data(v,t)),t}var m,f=a.validator,v=\"unobtrusiveValidation\";return f.unobtrusive={adapters:[],parseElement:function(e,n){var t,r,i,o=a(e),d=o.parents(\"form\")[0];d&&(t=u(d),t.options.rules[e.name]=r={},t.options.messages[e.name]=i={},a.each(this.adapters,function(){var n=\"data-val-\"+this.name,t=o.attr(n),s={};void 0!==t&&(n+=\"-\",a.each(this.params,function(){s[this]=o.attr(n+this)}),this.adapt({element:e,form:d,message:t,params:s,rules:r,messages:i}))}),a.extend(r,{__dummy__:!0}),n||t.attachValidation())},parse:function(e){var n=a(e),t=n.parents().addBack().filter(\"form\").add(n.find(\"form\")).has(\"[data-val=true]\");n.find(\"[data-val=true]\").each(function(){f.unobtrusive.parseElement(this,!0)}),t.each(function(){var a=u(this);a&&a.attachValidation()})}},m=f.unobtrusive.adapters,m.add=function(a,e,n){return n||(n=e,e=[]),this.push({name:a,params:e,adapt:n}),this},m.addBool=function(a,n){return this.add(a,function(t){e(t,n||a,!0)})},m.addMinMax=function(a,n,t,r,i,o){return this.add(a,[i||\"min\",o||\"max\"],function(a){var i=a.params.min,o=a.params.max;i&&o?e(a,r,[i,o]):i?e(a,n,i):o&&e(a,t,o)})},m.addSingleVal=function(a,n,t){return this.add(a,[n||\"val\"],function(r){e(r,t||a,r.params[n])})},f.addMethod(\"__dummy__\",function(a,e,n){return!0}),f.addMethod(\"regex\",function(a,e,n){var t;return!!this.optional(e)||(t=new RegExp(n).exec(a),t&&0===t.index&&t[0].length===a.length)}),f.addMethod(\"nonalphamin\",function(a,e,n){var t;return n&&(t=a.match(/\\W/g),t=t&&t.length>=n),t}),f.methods.extension?(m.addSingleVal(\"accept\",\"mimtype\"),m.addSingleVal(\"extension\",\"extension\")):m.addSingleVal(\"extension\",\"extension\",\"accept\"),m.addSingleVal(\"regex\",\"pattern\"),m.addBool(\"creditcard\").addBool(\"date\").addBool(\"digits\").addBool(\"email\").addBool(\"number\").addBool(\"url\"),m.addMinMax(\"length\",\"minlength\",\"maxlength\",\"rangelength\").addMinMax(\"range\",\"min\",\"max\",\"range\"),m.addMinMax(\"minlength\",\"minlength\").addMinMax(\"maxlength\",\"minlength\",\"maxlength\"),m.add(\"equalto\",[\"other\"],function(n){var o=r(n.element.name),d=n.params.other,s=i(d,o),l=a(n.form).find(\":input\").filter(\"[name='\"+t(s)+\"']\")[0];e(n,\"equalTo\",l)}),m.add(\"required\",function(a){\"INPUT\"===a.element.tagName.toUpperCase()&&\"CHECKBOX\"===a.element.type.toUpperCase()||e(a,\"required\",!0)}),m.add(\"remote\",[\"url\",\"type\",\"additionalfields\"],function(o){var d={url:o.params.url,type:o.params.type||\"GET\",data:{}},s=r(o.element.name);a.each(n(o.params.additionalfields||o.element.name),function(e,n){var r=i(n,s);d.data[r]=function(){var e=a(o.form).find(\":input\").filter(\"[name='\"+t(r)+\"']\");return e.is(\":checkbox\")?e.filter(\":checked\").val()||e.filter(\":hidden\").val()||\"\":e.is(\":radio\")?e.filter(\":checked\").val()||\"\":e.val()}}),e(o,\"remote\",d)}),m.add(\"password\",[\"min\",\"nonalphamin\",\"regex\"],function(a){a.params.min&&e(a,\"minlength\",a.params.min),a.params.nonalphamin&&e(a,\"nonalphamin\",a.params.nonalphamin),a.params.regex&&e(a,\"regex\",a.params.regex)}),m.add(\"fileextensions\",[\"extensions\"],function(a){e(a,\"extension\",a.params.extensions)}),a(function(){f.unobtrusive.parse(document)}),f.unobtrusive});","/**\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","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 * 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","/**\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","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","/*\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 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 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 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 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 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 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 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","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","/**\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","/**\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","/**\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 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 * 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 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 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 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","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","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 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","// 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","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","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","/**\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 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","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 * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Private TransitionEnd Helpers\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 * Public Util API\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\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.1): 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 * Constants\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.1'\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 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 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 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 * Class definition\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 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 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 // Check for Popper dependency\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 _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 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 * Data API implementation\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 * jQuery\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.1): 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 * Constants\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\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 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 SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\n/**\n * Class definition\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 static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\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 _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 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 * Data API implementation\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 * jQuery\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 * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): toast.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 * Constants\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\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) {\n data = new Toast(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](this)\n }\n })\n }\n}\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): 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 * Constants\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.1'\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 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 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 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\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\n/**\n * Class definition\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 static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\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 const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\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 _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 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 * Data API implementation\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 * jQuery\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.1): 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 https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/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(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\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 (regExp[i].test(attrName)) {\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 // eslint-disable-next-line unicorn/prefer-spread\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.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { DefaultWhitelist, sanitizeHtml } from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.6.1'\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\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\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 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 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 * Class definition\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 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 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 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 _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 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 * jQuery\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","class lv {\r\n /**\r\n * iterates through all elements and calls function create on them\r\n */\r\n public initLoaderAll(): void {\r\n let divs = document.getElementsByTagName(\"DIV\");\r\n for (let i = 0; i < divs.length; i++) {\r\n if (!divs[i].hasChildNodes()) {\r\n lv.create(divs[i]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * returns list of non-main classes (every except the one that specifies the element)\r\n * @param classList\r\n * @param notIncludingClass\r\n */\r\n private static getModifyingClasses(classList: Array, notIncludingClass: string): string[] {\r\n let modifyingClasses: string[] = [];\r\n for (let i = 0; i < classList.length; i++) {\r\n if (classList[i] != notIncludingClass) {\r\n modifyingClasses.push(classList[i]);\r\n }\r\n }\r\n return modifyingClasses;\r\n }\r\n\r\n /**\r\n * decides type of passed element and returns its object\r\n * @param element - pass existing element or null\r\n * @param classString - classes separated with one space that specifies type of element, optional, only when passing null instead of element\r\n */\r\n public static create(element: HTMLDivElement = null, classString?: string): lv.ElementBase {\r\n let classes : Array = [];\r\n if (element != null) {\r\n let listOfClasses = element.classList;\r\n for (let i = 0; i < listOfClasses.length; i++) {\r\n classes.push(listOfClasses[i]);\r\n }\r\n } else if (classString != null) {\r\n classes = classString.split(\" \");\r\n }\r\n for (let i = 0; i < classes.length; i++) {\r\n switch (classes[i]) {\r\n case \"lv-bars\":\r\n return new lv.Circle(element, lv.CircleType.Bars, lv.getModifyingClasses(classes, \"lv-bars\"));\r\n case \"lv-squares\":\r\n return new lv.Circle(element, lv.CircleType.Squares, lv.getModifyingClasses(classes, \"lv-squares\"));\r\n case \"lv-circles\":\r\n return new lv.Circle(element, lv.CircleType.Circles, lv.getModifyingClasses(classes, \"lv-circles\"));\r\n case \"lv-dots\":\r\n return new lv.Circle(element, lv.CircleType.Dots, lv.getModifyingClasses(classes, \"lv-dots\"));\r\n case \"lv-spinner\":\r\n return new lv.Circle(element, lv.CircleType.Spinner, lv.getModifyingClasses(classes, \"lv-spinner\"));\r\n case \"lv-dashed\":\r\n return new lv.Circle(element, lv.CircleType.Dashed, lv.getModifyingClasses(classes, \"lv-dashed\"));\r\n case \"lv-determinate_circle\":\r\n return new lv.Circle(element, lv.CircleType.DeterminateCircle, lv.getModifyingClasses(classes, \"lv-determinate_circle\"));\r\n case \"lv-line\":\r\n return new lv.Bar(element, lv.BarType.Line, lv.getModifyingClasses(classes, \"lv-line\"));\r\n case \"lv-bordered_line\":\r\n return new lv.Bar(element, lv.BarType.BorderedLine, lv.getModifyingClasses(classes, \"lv-bordered_line\"));\r\n case \"lv-determinate_line\":\r\n return new lv.Bar(element, lv.BarType.DeterminateLine, lv.getModifyingClasses(classes, \"lv-determinate_line\"));\r\n case \"lv-determinate_bordered_line\":\r\n return new lv.Bar(element, lv.BarType.DeterminateBorderedLine, lv.getModifyingClasses(classes, \"lv-determinate_bordered_line\"));\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * observes for changes in DOM and creates new element's objects\r\n * @param mutationList\r\n * @param observer\r\n */\r\n private callback(mutationList, observer: MutationObserver): void {\r\n for (let i = 0; i < mutationList.length; i++) {\r\n if (mutationList[i].type === \"childList\") {\r\n try {\r\n if (mutationList[i].addedNodes[0].classList.length > 0) {\r\n // filling the node with divs when it is empty\r\n lv.create(mutationList[i].addedNodes[0]);\r\n }\r\n } catch (error) {}\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * initializing the observer and starting observation\r\n */\r\n private observer: MutationObserver;\r\n constructor() {\r\n this.observer = new MutationObserver(this.callback);\r\n }\r\n public startObserving() {\r\n this.observer.observe(document.body, {childList: true, subtree: true});\r\n }\r\n public stopObserving() {\r\n this.observer.disconnect();\r\n }\r\n}\r\nnamespace lv {\r\n interface IDictionary {\r\n [key: number]: IDescription;\r\n }\r\n interface IDescription {\r\n divCount: number;\r\n className: string;\r\n }\r\n\r\n /**\r\n * specifies functions same for all elements\r\n */\r\n export abstract class ElementBase {\r\n \r\n protected element: HTMLDivElement;\r\n \r\n constructor(element: HTMLDivElement) {\r\n this.element = element === null ? document.createElement('div') : element;\r\n }\r\n\r\n public show(): void {\r\n this.element.style.display = null;\r\n }\r\n\r\n public hide(): void {\r\n this.element.style.display = \"none\";\r\n }\r\n\r\n public remove(): void {\r\n this.element.parentNode.removeChild(this.element);\r\n }\r\n\r\n public setLabel(labelText: string): void {\r\n this.element.setAttribute(\"data-label\", labelText);\r\n }\r\n\r\n public removeLabel(): void {\r\n this.element.removeAttribute(\"data-label\");\r\n }\r\n\r\n public showPercentage(): void {\r\n this.element.setAttribute(\"data-percentage\", \"true\");\r\n }\r\n\r\n public hidePercentage(): void {\r\n this.element.removeAttribute(\"data-percentage\");\r\n }\r\n\r\n public setId(idText: string): void {\r\n this.element.setAttribute(\"id\", idText);\r\n }\r\n\r\n public removeId(): void {\r\n this.element.removeAttribute(\"id\");\r\n }\r\n\r\n /**\r\n * adds class or classes to element\r\n * @param classString - string that contains classes separated with one space\r\n */\r\n public addClass(classString: string): void {\r\n let classList = classString.split(\" \");\r\n for (let i = 0; i < classList.length; i++) {\r\n this.element.classList.add(classList[i]);\r\n }\r\n }\r\n\r\n /**\r\n * if element contains specified class or classes, it/they are removed\r\n * @param classString - string that contains classes separated with one space\r\n */\r\n public removeClass(classString: string): void {\r\n let classList = classString.split(\" \");\r\n for (let i = 0; i < classList.length; i++) {\r\n if (this.element.classList.contains(classList[i])) {\r\n this.element.classList.remove(classList[i]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * returns DOM element - needed for placing or removing the element with jquery\r\n */\r\n public getElement(): HTMLDivElement {\r\n return this.element;\r\n }\r\n\r\n /**\r\n * updates determinate element\r\n * @param type\r\n * @param newValue\r\n * @param maxValue\r\n */\r\n public abstract update(type: string, newValue: number, maxValue: number): void;\r\n\r\n /**\r\n * resets determinate element to 0\r\n * @param maxValue\r\n */\r\n public reset(maxValue: number): void {\r\n this.update('set', 0, maxValue);\r\n }\r\n\r\n /**\r\n * sets determinate element to 100%\r\n * @param maxValue\r\n */\r\n public fill(maxValue: number): void {\r\n this.update('set', maxValue, maxValue);\r\n }\r\n\r\n /**\r\n * adds positive or negative value to a determinate element\r\n * @param addValue\r\n * @param maxValue\r\n */\r\n public add(addValue: number, maxValue: number): void {\r\n this.update('add', addValue, maxValue);\r\n }\r\n\r\n /**\r\n * sets loading bar to passed value\r\n * @param value\r\n * @param maxValue\r\n */\r\n public set(value: number, maxValue: number): void {\r\n this.update('set', value, maxValue);\r\n }\r\n\r\n /**\r\n * initializes an element\r\n * @param loaderElement\r\n * @param description\r\n */\r\n public initLoader(loaderElement: HTMLDivElement, description: IDescription): void {\r\n // manual addition on specified object\r\n if (!loaderElement.hasChildNodes()) {\r\n this.fillElement(loaderElement, description.className, description.divCount);\r\n }\r\n }\r\n\r\n /**\r\n * fills element with appropriate number of divs\r\n * @param element\r\n * @param elementClass\r\n * @param divNumber\r\n */\r\n private fillElement(element: HTMLElement, elementClass: string, divNumber: number): void {\r\n for (let i = 0; i < divNumber; i += 1) {\r\n element.appendChild(document.createElement(\"DIV\"));\r\n }\r\n if (elementClass === \"lv-determinate_circle\" || elementClass === \"lv-determinate_line\" || elementClass === \"lv-determinate_bordered_line\") {\r\n element.lastElementChild.innerHTML = \"0\";\r\n }\r\n if (!element.classList.contains(elementClass)) {\r\n element.classList.add(elementClass);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * class for linear elements\r\n */\r\n export class Bar extends ElementBase {\r\n private divCount: IDictionary = {};\r\n\r\n /**\r\n * creates linear element\r\n * @param element\r\n * @param barType\r\n * @param classes\r\n */\r\n constructor(element: HTMLDivElement, barType: BarType, classes: string[] = null) {\r\n super(element);\r\n this.divCount[BarType.Line] = {className: \"lv-line\", divCount: 1};\r\n this.divCount[BarType.BorderedLine] = {className: \"lv-bordered_line\", divCount: 1};\r\n this.divCount[BarType.DeterminateLine] = {className: \"lv-determinate_line\", divCount: 2};\r\n this.divCount[BarType.DeterminateBorderedLine] = {className: \"lv-determinate_bordered_line\", divCount: 2};\r\n this.initLoader(this.element, this.divCount[barType]);\r\n for (let i = 0; i < classes.length; i++) {\r\n this.element.classList.add(classes[i]);\r\n }\r\n }\r\n\r\n /**\r\n * type specific update function for linear element\r\n * @param type\r\n * @param newValue\r\n * @param maxValue\r\n */\r\n update(type: string, newValue: number, maxValue: number): void {\r\n // getting current width of line from the page\r\n let line: HTMLDivElement = this.element.firstElementChild;\r\n let percentage: HTMLDivElement = this.element.lastElementChild;\r\n let currentWidth: number = parseFloat(line.style.width);\r\n // protective condition for empty line\r\n if (isNaN(currentWidth)) {\r\n currentWidth = 0;\r\n }\r\n // end point of the animation\r\n let goalWidth: number;\r\n if (type === \"add\") {\r\n goalWidth = currentWidth + Math.round((newValue / maxValue) * 1000) / 10;\r\n } else if (type === \"set\") {\r\n goalWidth = Math.round((newValue / maxValue) * 1000) / 10;\r\n }\r\n // prevent overflow from both sides\r\n if (goalWidth > 100) {\r\n goalWidth = 100.0;\r\n }\r\n if (goalWidth < 0) {\r\n goalWidth = 0;\r\n }\r\n let animation = setInterval(frame, 5);\r\n function frame() {\r\n if (currentWidth > goalWidth) { // shortening the line\r\n if (currentWidth < goalWidth + 0.01) {\r\n clearInterval(animation);\r\n } else {\r\n currentWidth -= 0.1;\r\n }\r\n } else { // extending the line\r\n if (currentWidth > goalWidth - 0.01) {\r\n clearInterval(animation);\r\n } else {\r\n currentWidth += 0.1;\r\n }\r\n }\r\n line.style.width = currentWidth + \"%\";\r\n // updating the percentage\r\n percentage.innerHTML = currentWidth.toFixed(1);\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * class for square or circular elements\r\n */\r\n export class Circle extends ElementBase {\r\n\r\n private divCount: IDictionary = {};\r\n\r\n /**\r\n * creates square or circular element\r\n * @param element\r\n * @param circleType\r\n * @param classes\r\n */\r\n constructor(element: HTMLDivElement, circleType: CircleType, classes: string[] = null) {\r\n super(element);\r\n this.divCount[CircleType.Bars] = {className: \"lv-bars\", divCount: 8};\r\n this.divCount[CircleType.Squares] = {className: \"lv-squares\", divCount: 4};\r\n this.divCount[CircleType.Circles] = {className: \"lv-circles\", divCount: 12};\r\n this.divCount[CircleType.Dots] = {className: \"lv-dots\", divCount: 4};\r\n this.divCount[CircleType.DeterminateCircle] = {className: \"lv-determinate_circle\", divCount: 4};\r\n this.divCount[CircleType.Spinner] = {className: \"lv-spinner\", divCount: 1};\r\n this.divCount[CircleType.Dashed] = {className: \"lv-dashed\", divCount: 1};\r\n this.initLoader(this.element, this.divCount[circleType]);\r\n for (let i = 0; i < classes.length; i++) {\r\n this.element.classList.add(classes[i]);\r\n }\r\n }\r\n\r\n /**\r\n * type specific update function for non-linear elements\r\n * @param type\r\n * @param newValue\r\n * @param maxValue\r\n */\r\n update(type: string, newValue: number, maxValue: number): void {\r\n let rotationOffset: number = -45; // initial rotation of the spinning div in css\r\n // separating individual parts of the circle\r\n let background: HTMLDivElement = this.element.children[0];\r\n let overlay: HTMLDivElement = this.element.children[1];\r\n let spinner: HTMLDivElement = this.element.children[2];\r\n let percentage: HTMLDivElement = this.element.children[3];\r\n // getting the colors defined in css\r\n let backgroundColor: string = window.getComputedStyle(background).borderTopColor;\r\n let spinnerColor: string = window.getComputedStyle(spinner).borderTopColor;\r\n // computing current rotation of spinning part of circle using rotation matrix\r\n let rotationMatrix = window.getComputedStyle(spinner).getPropertyValue(\"transform\").split(\"(\")[1].split(\")\")[0].split(\",\");\r\n let currentAngle: number = Math.round(Math.atan2(parseFloat(rotationMatrix[1]), parseFloat(rotationMatrix[0])) * (180 / Math.PI)) - rotationOffset;\r\n // safety conditions for full and empty circle (360 <=> 0 and that caused problems)\r\n if (percentage.innerHTML === \"100\") {\r\n currentAngle = 360;\r\n }\r\n if (currentAngle < 0) {\r\n currentAngle += 360;\r\n }\r\n // end point of the animation\r\n let goalAngle: number;\r\n if (type === \"add\") {\r\n goalAngle = currentAngle + Math.round((newValue / maxValue) * 360);\r\n } else if (type === \"set\") {\r\n goalAngle = Math.round((newValue / maxValue) * 360);\r\n }\r\n // prevent overflow to both sides\r\n if (goalAngle > 360) {\r\n goalAngle = 360;\r\n }\r\n if (goalAngle < 0) {\r\n goalAngle = 0;\r\n }\r\n let id = setInterval(frame, 3);\r\n function frame() {\r\n if (currentAngle === goalAngle) { // stopping the animation when end point is reached\r\n clearInterval(id);\r\n } else {\r\n if (currentAngle < goalAngle) { // \"filling\" the circle\r\n if (currentAngle === 90) {\r\n background.style.borderRightColor = spinnerColor;\r\n overlay.style.borderTopColor = \"transparent\";\r\n } else if (currentAngle === 180) {\r\n background.style.borderBottomColor = spinnerColor;\r\n } else if (currentAngle === 270) {\r\n background.style.borderLeftColor = spinnerColor;\r\n }\r\n currentAngle += 1;\r\n } else { // \"emptying the circle\"\r\n if (currentAngle === 270) {\r\n background.style.borderLeftColor = backgroundColor;\r\n } else if (currentAngle === 180) {\r\n background.style.borderBottomColor = backgroundColor;\r\n } else if (currentAngle === 90) {\r\n background.style.borderRightColor = backgroundColor;\r\n overlay.style.borderTopColor = backgroundColor;\r\n }\r\n currentAngle -= 1;\r\n }\r\n // rotating the circle\r\n spinner.style.transform = \"rotate(\" + (rotationOffset + currentAngle).toString() + \"deg)\";\r\n // updating percentage\r\n percentage.innerHTML = (Math.round((currentAngle / 360) * 100)).toString();\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * list of linear elements\r\n */\r\n export enum BarType {\r\n Line,\r\n BorderedLine,\r\n DeterminateLine,\r\n DeterminateBorderedLine,\r\n }\r\n\r\n /**\r\n * list of non-linear elements\r\n */\r\n export enum CircleType {\r\n Bars,\r\n Squares,\r\n Circles,\r\n Dots,\r\n DeterminateCircle,\r\n Spinner,\r\n Dashed,\r\n }\r\n}"]}