{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","find","length","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","_createClass","key","get","on","Constructor","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","SHOW","SHOWN","HIDE","HIDDEN","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","slice","getBoundingClientRect","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","_objectSpread","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","e","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this10","animation","template","title","delay","html","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","forEach","eventIn","eventOut","_fixTitle","titleType","tabClass","join","initConfigAnimation","_Tooltip","_getContent","method","ACTIVATE","SCROLL","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","previous","listElement","itemSelector","nodeName","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","version"],"mappings":"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","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function 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 return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function 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\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\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 return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\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 const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\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\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\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(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.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(ClassName.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(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.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(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\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 = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).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 if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\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 && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (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(ClassName.POSITION_STATIC)\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(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n 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 = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; 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 (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.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 $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.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 = $(selector)[0]\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 event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\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._isTransitioning || !this._isShown) {\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(ClassName.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(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\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 $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_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._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\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.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.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 this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\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 && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\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._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.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(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(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 if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.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(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.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 =\n 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 = 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\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).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).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).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 if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const 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)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const 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 }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const 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 const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.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')\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 !== null) {\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 isInTheDom = $.contains(\n 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(ClassName.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.config.container === false ? document.body : $(this.config.container)\n\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, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\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) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\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 const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.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 !== HoverState.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(ClassName.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(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _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(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\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 if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\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(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.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 === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\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 = HoverState.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 === HoverState.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 config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\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 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 > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).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 $(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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

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