mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
159 KiB
Plaintext
1 line
159 KiB
Plaintext
{"version":3,"sources":["../../rollupPluginBabelHelpers","../../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":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","Util","$","transition","TransitionEndEvent","prefix","Math","random","document","getElementById","element","selector","getAttribute","charAt","escapeSelector","substr","replace","escapeId","find","error","offsetHeight","trigger","end","Boolean","obj","nodeType","componentName","config","configTypes","property","hasOwnProperty","call","expectedTypes","value","valueType","isElement","toString","match","toLowerCase","toType","RegExp","test","Error","toUpperCase","window","QUnit","el","createElement","name","style","transitionEndTest","fn","emulateTransitionEnd","duration","called","this","one","TRANSITION_END","triggerTransitionEnd","_this","supportsTransitionEnd","event","special","is","handleObj","handler","apply","arguments","Alert","JQUERY_NO_CONFLICT","Event","ClassName","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","noConflict","Button","NAME","Selector","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","DATA_KEY","EVENT_KEY","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","extend","typeCheckConfig","keyboard","KEYDOWN","_this2","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","wrap","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","LEFT","RIGHT","slidEvent","reflow","_this3","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","COLLAPSED","attr","setTransitioning","complete","SHOWN","scrollSize","slice","HIDE","getBoundingClientRect","HIDDEN","isTransitioning","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","KEYDOWN_DISMISS","RESIZE","_this6","_resetAdjustments","_resetScrollbar","_this7","_removeBackdrop","callback","animate","backdrop","doAnimate","className","BACKDROP","appendTo","_this8","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","_this9","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","CLASS_PREFIX","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","tabClass","join","initConfigAnimation","Popover","subClass","superClass","create","__proto__","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n const TransitionEndEvent = {\n WebkitTransition : 'webkitTransitionEnd',\n transition : 'transitionend'\n }\n\n // shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[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 transitionEndTest() {\n if (window.QUnit) {\n return false\n }\n\n const el = document.createElement('bootstrap')\n\n for (const name in TransitionEndEvent) {\n if (typeof el.style[name] !== 'undefined') {\n return {\n end: TransitionEndEvent[name]\n }\n }\n }\n\n return false\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 transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // we escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1) :\n selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\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 // if it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (error) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\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})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0-beta.2'\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 const TRANSITION_DURATION = 150\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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\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\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 (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\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 /**\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 * ------------------------------------------------------------------------\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})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0-beta.2'\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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\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\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\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\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 /**\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 * ------------------------------------------------------------------------\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})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0-beta.2'\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 TRANSITION_DURATION = 600\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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n\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\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\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.supportsTransitionEnd()) {\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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\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 return\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\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 (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\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 })\n .emulateTransitionEnd(TRANSITION_DURATION)\n\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\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend({}, Default, $(this).data())\n\n if (typeof config === 'object') {\n $.extend(_config, config)\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 Error(`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 = $.extend({}, $(target).data(), $(this).data())\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 /**\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 * ------------------------------------------------------------------------\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})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0-beta.2'\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 const TRANSITION_DURATION = 600\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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n\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._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\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\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($(this._parent).children().children(Selector.ACTIVES))\n if (!actives.length) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).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), '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) {\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 if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\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) {\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\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\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) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\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 = $.extend(\n {},\n Default,\n $this.data(),\n typeof config === 'object' && 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 Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\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 <a> 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 * ------------------------------------------------------------------------\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})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0-beta.2'\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 }\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)'\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 }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n\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\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 Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n let element = this._element\n // for dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n }\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) {\n $('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 = $.extend(\n {},\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 = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})\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 }\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 Error(`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 $('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 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\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) {\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 /**\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 * ------------------------------------------------------------------------\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\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0-beta.2'\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 TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n\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._originalBodyPadding = 0\n this._scrollbarWidth = 0\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\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 (Util.supportsTransitionEnd() && $(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\n const transition = Util.supportsTransitionEnd() && $(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 if (transition) {\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\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 = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals 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 $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\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) {\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\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 const doAnimate = Util.supportsTransitionEnd() && animate\n\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 (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\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 (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n\n } else if (callback) {\n callback()\n }\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 = $('body').css('padding-right')\n $('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 = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('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\n // static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend(\n {},\n Modal.Default,\n $(this).data(),\n typeof config === 'object' && 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 Error(`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 /**\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' : $.extend({}, $(target).data(), $(this).data())\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 * ------------------------------------------------------------------------\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})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0-beta.2'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\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 }\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 : '<div class=\"tooltip\" role=\"tooltip\">'\n + '<div class=\"arrow\"></div>'\n + '<div class=\"tooltip-inner\"></div></div>',\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 }\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\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 Error('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\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\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\n } else {\n\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 },\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 $('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 (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\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 $('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 (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n this._hoverState = ''\n\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\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\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 = $.extend({}, 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 = $.extend(\n {},\n this.constructor.Default,\n $(this.element).data(),\n 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 Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\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\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0-beta.2'\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 = $.extend({}, Tooltip.Default, {\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">'\n + '<div class=\"arrow\"></div>'\n + '<h3 class=\"popover-header\"></h3>'\n + '<div class=\"popover-body\"></div></div>'\n })\n\n const DefaultType = $.extend({}, 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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\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\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\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 Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\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})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0-beta.2'\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 * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n\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\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n refresh() {\n const autoMethod = this._scrollElement !== this._scrollElement.window ?\n OffsetMethod.POSITION : OffsetMethod.OFFSET\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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\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 <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\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\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0-beta.2'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\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_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback\n && Util.supportsTransitionEnd()\n && (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.SHOW)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\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, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} |