mdb-ui-kit/dist/js/bootstrap-material-design.js.map
Federico Zivolo 2fba008f90 publish: fix: remove nojekyll...
generated from commit 24d054d4df
2017-08-31 15:01:33 +02:00

1 line
297 KiB
Plaintext

{"version":3,"file":"bootstrap-material-design.js","sources":["../../node_modules/bootstrap/js/src/util.js","../../node_modules/bootstrap/js/src/alert.js","../../node_modules/bootstrap/js/src/button.js","../../node_modules/bootstrap/js/src/carousel.js","../../node_modules/bootstrap/js/src/collapse.js","../../node_modules/bootstrap/js/src/dropdown.js","../../node_modules/bootstrap/js/src/modal.js","../../node_modules/bootstrap/js/src/tooltip.js","../../node_modules/bootstrap/js/src/popover.js","../../node_modules/bootstrap/js/src/scrollspy.js","../../node_modules/bootstrap/js/src/tab.js","../../js/util.js","../../js/base.js","../../js/baseInput.js","../../js/baseSelection.js","../../js/checkbox.js","../../js/checkboxInline.js","../../js/collapseInline.js","../../js/file.js","../../js/radio.js","../../js/radioInline.js","../../js/baseFormControl.js","../../js/select.js","../../js/switch.js","../../js/text.js","../../js/textarea.js","../../js/baseLayout.js","../../js/drawer.js","../../js/ripples.js","../../js/autofill.js","../../js/bootstrapMaterialDesign.js","../../js/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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 MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\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 isElement(obj) {\n return (obj[0] || obj).nodeType\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\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 (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\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(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 typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (configTypes.hasOwnProperty(property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && 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})(jQuery)\n\nexport default Util\n","import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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})(jQuery)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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})(jQuery)\n\nexport default Button\n","import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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 if (!document.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 (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})(jQuery)\n\nexport default Carousel\n","import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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'\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 const parent = $(this._config.parent)[0]\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 (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 if (!/input|textarea/i.test(event.target.tagName)) {\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})(jQuery)\n\nexport default Collapse\n","/* global Popper */\n\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\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\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0-beta'\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 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 }\n\n const Default = {\n placement : AttachmentMap.BOTTOM,\n offset : 0,\n flip : true\n }\n\n const DefaultType = {\n placement : 'string',\n offset : '(number|string)',\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 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 // 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 }\n this._popper = null\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 const elementData = $(this._element).data()\n if (elementData.placement !== undefined) {\n elementData.placement = AttachmentMap[elementData.placement.toUpperCase()]\n }\n\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 = this._config.placement\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\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 popperConfig = {\n placement : this._getPlacement(),\n modifiers : {\n offset : {\n offset : this._config.offset\n },\n flip : {\n enabled : this._config.flip\n }\n }\n }\n\n // Disable Popper.js for Dropdown in Navbar\n if (this._inNavbar) {\n popperConfig.modifiers.applyStyle = {\n enabled: !this._inNavbar\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 (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 (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n /input|textarea/i.test(event.target.tagName)) {\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})(jQuery)\n\nexport default Dropdown\n","import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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 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) {\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 $(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 transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\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 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 this._isBodyOverflowing = document.body.clientWidth < 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 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 navbar-toggler margin\n $(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 (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})(jQuery)\n\nexport default Modal\n","/* global Popper */\n\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\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\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0-beta'\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 // 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 (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 this._popper = null\n\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 return this.tip = this.tip || $(this.config.template)[0]\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 (config.delay && typeof config.delay === 'number') {\n config.delay = {\n show : config.delay,\n hide : config.delay\n }\n }\n\n if (config.title && typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (config.content && 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 (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 * 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})(jQuery)\n\nexport default Tooltip\n","import Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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 return this.tip = this.tip || $(this.config.template)[0]\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 this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // private\n\n _getContent() {\n return this.element.getAttribute('data-content')\n || (typeof this.config.content === 'function' ?\n this.config.content.call(this.element) :\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 (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})(jQuery)\n\nexport default Popover\n","import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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 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 && (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 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 }\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 (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})(jQuery)\n\nexport default ScrollSpy\n","import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): 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'\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 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 previous = $.makeArray($(listElement).find(Selector.ACTIVE))\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 const active = $(container).find(Selector.ACTIVE)[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 active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n element.setAttribute('aria-expanded', true)\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 (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})(jQuery)\n\nexport default Tab\n","const Util = (() => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transitionEnd = false;\n let transitionEndSelector = \"\";\n\n const TransitionEndEvent = {\n WebkitTransition: \"webkitTransitionEnd\",\n MozTransition: \"transitionend\",\n OTransition: \"oTransitionEnd otransitionend\",\n transition: \"transitionend\"\n };\n\n function transitionEndTest() {\n if (window.QUnit) {\n return false;\n }\n\n let el = document.createElement(\"bmd\");\n\n for (let name in TransitionEndEvent) {\n if (el.style[name] !== undefined) {\n return TransitionEndEvent[name]; // { end: TransitionEndEvent[name] }\n }\n }\n\n return false;\n }\n\n function setTransitionEndSupport() {\n transitionEnd = transitionEndTest();\n\n // generate a concatenated transition end event selector\n for (let name in TransitionEndEvent) {\n transitionEndSelector += ` ${TransitionEndEvent[name]}`;\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n let Util = {\n transitionEndSupported() {\n return transitionEnd;\n },\n\n transitionEndSelector() {\n return transitionEndSelector;\n },\n\n isChar(event) {\n if (typeof event.which === \"undefined\") {\n return true;\n } else if (typeof event.which === \"number\" && event.which > 0) {\n return (\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.which !== 8 && // backspace\n event.which !== 9 && // tab\n event.which !== 13 && // enter\n event.which !== 16 && // shift\n event.which !== 17 && // ctrl\n event.which !== 20 && // caps lock\n event.which !== 27 // escape\n );\n }\n return false;\n },\n\n assert($element, invalidTest, message) {\n if (invalidTest) {\n if (!$element === undefined) {\n $element.css(\"border\", \"1px solid red\");\n }\n console.error(message, $element); // eslint-disable-line no-console\n throw message;\n }\n },\n\n describe($element) {\n if ($element === undefined) {\n return \"undefined\";\n } else if ($element.length === 0) {\n return \"(no matching elements)\";\n }\n return `${$element[0].outerHTML.split(\">\")[0]}>`;\n }\n };\n\n setTransitionEndSupport();\n return Util;\n})(jQuery);\n\nexport default Util;\n","import Util from \"./util\";\n\nconst Base = ($ => {\n const ClassName = {\n BMD_FORM_GROUP: \"bmd-form-group\",\n IS_FILLED: \"is-filled\",\n IS_FOCUSED: \"is-focused\"\n };\n\n const Selector = {\n BMD_FORM_GROUP: `.${ClassName.BMD_FORM_GROUP}`\n };\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Base {\n /**\n *\n * @param element\n * @param config\n * @param properties - anything that needs to be set as this[key] = value. Works around the need to call `super` before using `this`\n */\n constructor($element, config, properties = {}) {\n this.$element = $element;\n this.config = $.extend(true, {}, Default, config);\n\n // set properties for use in the constructor initialization\n for (let key in properties) {\n this[key] = properties[key];\n }\n }\n\n dispose(dataKey) {\n this.$element.data(dataKey, null);\n this.$element = null;\n this.config = null;\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n addFormGroupFocus() {\n if (!this.$element.prop(\"disabled\")) {\n this.$bmdFormGroup.addClass(ClassName.IS_FOCUSED);\n }\n }\n\n removeFormGroupFocus() {\n this.$bmdFormGroup.removeClass(ClassName.IS_FOCUSED);\n }\n\n removeIsFilled() {\n this.$bmdFormGroup.removeClass(ClassName.IS_FILLED);\n }\n\n addIsFilled() {\n this.$bmdFormGroup.addClass(ClassName.IS_FILLED);\n }\n\n // Find bmd-form-group\n findMdbFormGroup(raiseError = true) {\n let mfg = this.$element.closest(Selector.BMD_FORM_GROUP);\n if (mfg.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.BMD_FORM_GROUP} for ${Util.describe(\n this.$element\n )}`\n );\n }\n return mfg;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n }\n\n return Base;\n})(jQuery);\n\nexport default Base;\n","import Base from \"./base\";\nimport Util from \"./util\";\n\nconst BaseInput = ($ => {\n const ClassName = {\n FORM_GROUP: \"form-group\",\n BMD_FORM_GROUP: \"bmd-form-group\",\n BMD_LABEL: \"bmd-label\",\n BMD_LABEL_STATIC: \"bmd-label-static\",\n BMD_LABEL_PLACEHOLDER: \"bmd-label-placeholder\",\n BMD_LABEL_FLOATING: \"bmd-label-floating\",\n HAS_DANGER: \"has-danger\",\n IS_FILLED: \"is-filled\",\n IS_FOCUSED: \"is-focused\",\n INPUT_GROUP: \"input-group\"\n };\n\n const Selector = {\n FORM_GROUP: `.${ClassName.FORM_GROUP}`,\n BMD_FORM_GROUP: `.${ClassName.BMD_FORM_GROUP}`,\n BMD_LABEL_WILDCARD: `label[class^='${ClassName.BMD_LABEL}'], label[class*=' ${ClassName.BMD_LABEL}']` // match any label variant if specified\n };\n\n const Default = {\n validate: false,\n formGroup: {\n required: false\n },\n bmdFormGroup: {\n template: `<span class='${ClassName.BMD_FORM_GROUP}'></span>`,\n create: true, // create a wrapper if form-group not found\n required: true // not recommended to turn this off, only used for inline components\n },\n label: {\n required: false,\n\n // Prioritized find order for resolving the label to be used as an bmd-label if not specified in the markup\n // - a function(thisComponent); or\n // - a string selector used like $bmdFormGroup.find(selector)\n //\n // Note this only runs if $bmdFormGroup.find(Selector.BMD_LABEL_WILDCARD) fails to find a label (as authored in the markup)\n //\n selectors: [\n `.form-control-label`, // in the case of horizontal or inline forms, this will be marked\n `> label` // usual case for text inputs, first child. Deeper would find toggle labels so don't do that.\n ],\n className: ClassName.BMD_LABEL_STATIC\n },\n requiredClasses: [],\n invalidComponentMatches: [],\n convertInputSizeVariations: true\n };\n\n const FormControlSizeMarkers = {\n \"form-control-lg\": \"bmd-form-group-lg\",\n \"form-control-sm\": \"bmd-form-group-sm\"\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseInput extends Base {\n /**\n *\n * @param element\n * @param config\n * @param properties - anything that needs to be set as this[key] = value. Works around the need to call `super` before using `this`\n */\n constructor($element, config, properties = {}) {\n super($element, $.extend(true, {}, Default, config), properties);\n\n // Enforce no overlap between components to prevent side effects\n this._rejectInvalidComponentMatches();\n\n // Enforce expected structure (if any)\n this.rejectWithoutRequiredStructure();\n\n // Enforce required classes for a consistent rendering\n this._rejectWithoutRequiredClasses();\n\n // Resolve the form-group first, it will be used for bmd-form-group if possible\n // note: different components have different rules\n this.$formGroup = this.findFormGroup(this.config.formGroup.required);\n\n // Will add bmd-form-group to form-group or create an bmd-form-group\n // Performance Note: for those forms that are really performance driven, create the markup with the .bmd-form-group to avoid\n // rendering changes once added.\n this.$bmdFormGroup = this.resolveMdbFormGroup();\n\n // Resolve and mark the bmdLabel if necessary as defined by the config\n this.$bmdLabel = this.resolveMdbLabel();\n\n // Signal to the bmd-form-group that a form-control-* variation is being used\n this.resolveMdbFormGroupSizing();\n\n this.addFocusListener();\n this.addChangeListener();\n\n if (this.$element.val() != \"\") {\n this.addIsFilled();\n }\n }\n\n dispose(dataKey) {\n super.dispose(dataKey);\n this.$bmdFormGroup = null;\n this.$formGroup = null;\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n rejectWithoutRequiredStructure() {\n // implement\n }\n\n addFocusListener() {\n this.$element\n .on(\"focus\", () => {\n this.addFormGroupFocus();\n })\n .on(\"blur\", () => {\n this.removeFormGroupFocus();\n });\n }\n\n addChangeListener() {\n this.$element\n .on(\"keydown paste\", event => {\n if (Util.isChar(event)) {\n this.addIsFilled();\n }\n })\n .on(\"keyup change\", () => {\n // make sure empty is added back when there is a programmatic value change.\n // NOTE: programmatic changing of value using $.val() must trigger the change event i.e. $.val('x').trigger('change')\n if (this.isEmpty()) {\n this.removeIsFilled();\n } else {\n this.addIsFilled();\n }\n\n if (this.config.validate) {\n // Validation events do not bubble, so they must be attached directly to the text: http://jsfiddle.net/PEpRM/1/\n // Further, even the bind method is being caught, but since we are already calling #checkValidity here, just alter\n // the form-group on change.\n //\n // NOTE: I'm not sure we should be intervening regarding validation, this seems better as a README and snippet of code.\n // BUT, I've left it here for backwards compatibility.\n let isValid =\n typeof this.$element[0].checkValidity === \"undefined\" ||\n this.$element[0].checkValidity();\n if (isValid) {\n this.removeHasDanger();\n } else {\n this.addHasDanger();\n }\n }\n });\n }\n\n addHasDanger() {\n this.$bmdFormGroup.addClass(ClassName.HAS_DANGER);\n }\n\n removeHasDanger() {\n this.$bmdFormGroup.removeClass(ClassName.HAS_DANGER);\n }\n\n isEmpty() {\n return (\n this.$element.val() === null ||\n this.$element.val() === undefined ||\n this.$element.val() === \"\"\n );\n }\n\n // Will add bmd-form-group to form-group or create a bmd-form-group if necessary\n resolveMdbFormGroup() {\n let mfg = this.findMdbFormGroup(false);\n if (mfg === undefined || mfg.length === 0) {\n if (\n this.config.bmdFormGroup.create &&\n (this.$formGroup === undefined || this.$formGroup.length === 0)\n ) {\n // If a form-group doesn't exist (not recommended), take a guess and wrap the element (assuming no label).\n // note: it's possible to make this smarter, but I need to see valid cases before adding any complexity.\n\n // this may be an input-group, wrap that instead\n if (this.outerElement().parent().hasClass(ClassName.INPUT_GROUP)) {\n this.outerElement()\n .parent()\n .wrap(this.config.bmdFormGroup.template);\n } else {\n this.outerElement().wrap(this.config.bmdFormGroup.template);\n }\n } else {\n // a form-group does exist, add our marker class to it\n this.$formGroup.addClass(ClassName.BMD_FORM_GROUP);\n\n // OLD: may want to implement this after all, see how the styling turns out, but using an existing form-group is less manipulation of the dom and therefore preferable\n // A form-group does exist, so add an bmd-form-group wrapping it's internal contents\n //fg.wrapInner(this.config.bmdFormGroup.template)\n }\n\n mfg = this.findMdbFormGroup(this.config.bmdFormGroup.required);\n }\n\n return mfg;\n }\n\n // Demarcation element (e.g. first child of a form-group)\n // Subclasses such as file inputs may have different structures\n outerElement() {\n return this.$element;\n }\n\n // Will add bmd-label to bmd-form-group if not already specified\n resolveMdbLabel() {\n let label = this.$bmdFormGroup.find(Selector.BMD_LABEL_WILDCARD);\n if (label === undefined || label.length === 0) {\n // we need to find it based on the configured selectors\n label = this.findMdbLabel(this.config.label.required);\n\n if (label === undefined || label.length === 0) {\n // no label found, and finder did not require one\n } else {\n // a candidate label was found, add the configured default class name\n label.addClass(this.config.label.className);\n }\n }\n\n return label;\n }\n\n // Find bmd-label variant based on the config selectors\n findMdbLabel(raiseError = true) {\n let label = null;\n\n // use the specified selector order\n for (let selector of this.config.label.selectors) {\n if ($.isFunction(selector)) {\n label = selector(this);\n } else {\n label = this.$bmdFormGroup.find(selector);\n }\n\n if (label !== undefined && label.length > 0) {\n break;\n }\n }\n\n if (label.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.BMD_LABEL_WILDCARD} within form-group for ${Util.describe(\n this.$element\n )}`\n );\n }\n return label;\n }\n\n // Find bmd-form-group\n findFormGroup(raiseError = true) {\n let fg = this.$element.closest(Selector.FORM_GROUP);\n if (fg.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.FORM_GROUP} for ${Util.describe(\n this.$element\n )}`\n );\n }\n return fg;\n }\n\n // Due to the interconnected nature of labels/inputs/help-blocks, signal the bmd-form-group-* size variation based on\n // a found form-control-* size\n resolveMdbFormGroupSizing() {\n if (!this.config.convertInputSizeVariations) {\n return;\n }\n\n // Modification - Change text-sm/lg to form-group-sm/lg instead (preferred standard and simpler css/less variants)\n for (let inputSize in FormControlSizeMarkers) {\n if (this.$element.hasClass(inputSize)) {\n //this.$element.removeClass(inputSize)\n this.$bmdFormGroup.addClass(FormControlSizeMarkers[inputSize]);\n }\n }\n }\n\n // ------------------------------------------------------------------------\n // private\n _rejectInvalidComponentMatches() {\n for (let otherComponent of this.config.invalidComponentMatches) {\n otherComponent.rejectMatch(this.constructor.name, this.$element);\n }\n }\n\n _rejectWithoutRequiredClasses() {\n for (let requiredClass of this.config.requiredClasses) {\n let found = false;\n // allow one of several classes to be passed in x||y\n if (requiredClass.indexOf(\"||\") !== -1) {\n let oneOf = requiredClass.split(\"||\");\n for (let requiredClass of oneOf) {\n if (this.$element.hasClass(requiredClass)) {\n found = true;\n break;\n }\n }\n } else if (this.$element.hasClass(requiredClass)) {\n found = true;\n }\n\n // error if not found\n if (!found) {\n $.error(\n `${this.constructor.name} element: ${Util.describe(\n this.$element\n )} requires class: ${requiredClass}`\n );\n }\n }\n }\n\n // ------------------------------------------------------------------------\n // static\n }\n\n return BaseInput;\n})(jQuery);\n\nexport default BaseInput;\n","import BaseInput from \"./baseInput\";\nimport Util from \"./util\";\n\nconst BaseSelection = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const Default = {\n label: {\n required: false\n\n // Prioritized find order for resolving the label to be used as an bmd-label if not specified in the markup\n // - a function(thisComponent); or\n // - a string selector used like $bmdFormGroup.find(selector)\n //\n // Note this only runs if $bmdFormGroup.find(Selector.BMD_LABEL_WILDCARD) fails to find a label (as authored in the markup)\n //\n //selectors: [\n // `.form-control-label`, // in the case of horizontal or inline forms, this will be marked\n // `> label` // usual case for text inputs\n //]\n }\n };\n\n const Selector = {\n LABEL: \"label\"\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseSelection extends BaseInput {\n constructor($element, config, properties) {\n // properties = {inputType: checkbox, outerClass: checkbox-inline}\n // '.checkbox|switch|radio > label > input[type=checkbox|radio]'\n // '.${this.outerClass} > label > input[type=${this.inputType}]'\n\n super($element, $.extend(true, {}, Default, config), properties);\n this.decorateMarkup();\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n decorateMarkup() {\n const $decorator = $(this.config.template);\n this.$element.after($decorator);\n\n // initialize ripples after decorator has been inserted into DOM\n if (this.config.ripples !== false) {\n $decorator.bmdRipples();\n }\n }\n\n // Demarcation element (e.g. first child of a form-group)\n outerElement() {\n // .checkbox|switch|radio > label > input[type=checkbox|radio]\n // label.checkbox-inline > input[type=checkbox|radio]\n // .${this.outerClass} > label > input[type=${this.inputType}]\n return this.$element.parent().closest(`.${this.outerClass}`);\n }\n\n rejectWithoutRequiredStructure() {\n // '.checkbox|switch|radio > label > input[type=checkbox|radio]'\n // '.${this.outerClass} > label > input[type=${this.inputType}]'\n Util.assert(\n this.$element,\n !this.$element.parent().prop(\"tagName\") === \"label\",\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} parent element should be <label>.`\n );\n Util.assert(\n this.$element,\n !this.outerElement().hasClass(this.outerClass),\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} outer element should have class ${this.outerClass}.`\n );\n }\n\n addFocusListener() {\n // checkboxes didn't appear to bubble to the document, so we'll bind these directly\n this.$element.closest(Selector.LABEL).hover(\n () => {\n this.addFormGroupFocus();\n },\n () => {\n this.removeFormGroupFocus();\n }\n );\n }\n\n addChangeListener() {\n this.$element.change(() => {\n this.$element.blur();\n });\n }\n\n // ------------------------------------------------------------------------\n // private\n }\n\n return BaseSelection;\n})(jQuery);\n\nexport default BaseSelection;\n","import BaseSelection from \"./baseSelection\";\n//import Text from './text'\n//import File from './file'\n//import Radio from './radio'\n//import Textarea from './textarea'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst Checkbox = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"checkbox\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n template: `<span class='checkbox-decorator'><span class='check'></span></span>`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Checkbox extends BaseSelection {\n constructor(\n $element,\n config,\n properties = { inputType: NAME, outerClass: NAME }\n ) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [File, Radio, Text, Textarea, Select]},\n Default,\n config\n ),\n properties\n );\n }\n\n dispose(dataKey = DATA_KEY) {\n super.dispose(dataKey);\n }\n\n static matches($element) {\n // '.checkbox > label > input[type=checkbox]'\n if ($element.attr(\"type\") === \"checkbox\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='checkbox'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Checkbox($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Checkbox._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Checkbox;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Checkbox._jQueryInterface;\n };\n\n return Checkbox;\n})(jQuery);\n\nexport default Checkbox;\n","import Checkbox from \"./checkbox\";\n\nconst CheckboxInline = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"checkboxInline\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n bmdFormGroup: {\n create: false, // no bmd-form-group creation if form-group not present. It messes with the layout.\n required: false\n }\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class CheckboxInline extends Checkbox {\n constructor(\n $element,\n config,\n properties = { inputType: \"checkbox\", outerClass: \"checkbox-inline\" }\n ) {\n super($element, $.extend(true, {}, Default, config), properties);\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n //static matches($element) {\n // // '.checkbox-inline > input[type=checkbox]'\n // if ($element.attr('type') === 'checkbox') {\n // return true\n // }\n // return false\n //}\n //\n //static rejectMatch(component, $element) {\n // Util.assert(this.$element, this.matches($element), `${component} component element ${Util.describe($element)} is invalid for type='checkbox'.`)\n //}\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new CheckboxInline($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = CheckboxInline._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = CheckboxInline;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return CheckboxInline._jQueryInterface;\n };\n\n return CheckboxInline;\n})(jQuery);\n\nexport default CheckboxInline;\n","import Base from \"./base\";\nimport Util from \"./util\";\n\nconst CollapseInline = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"collapseInline\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Selector = {\n ANY_INPUT: \"input, select, textarea\"\n };\n\n const ClassName = {\n IN: \"in\",\n COLLAPSE: \"collapse\",\n COLLAPSING: \"collapsing\",\n COLLAPSED: \"collapsed\",\n WIDTH: \"width\"\n };\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class CollapseInline extends Base {\n // $element is expected to be the trigger\n // i.e. <button class=\"btn bmd-btn-icon\" for=\"search\" data-toggle=\"collapse\" data-target=\"#search-field\" aria-expanded=\"false\" aria-controls=\"search-field\">\n constructor($element, config) {\n super($element, $.extend(true, {}, Default, config));\n this.$bmdFormGroup = this.findMdbFormGroup(true);\n\n let collapseSelector = $element.data(\"target\");\n this.$collapse = $(collapseSelector);\n\n Util.assert(\n $element,\n this.$collapse.length === 0,\n `Cannot find collapse target for ${Util.describe($element)}`\n );\n Util.assert(\n this.$collapse,\n !this.$collapse.hasClass(ClassName.COLLAPSE),\n `${Util.describe(\n this.$collapse\n )} is expected to have the '${ClassName.COLLAPSE}' class. It is being targeted by ${Util.describe(\n $element\n )}`\n );\n\n // find the first input for focusing\n let $inputs = this.$bmdFormGroup.find(Selector.ANY_INPUT);\n if ($inputs.length > 0) {\n this.$input = $inputs.first();\n }\n\n // automatically add the marker class to collapse width instead of height - nice convenience because it is easily forgotten\n if (!this.$collapse.hasClass(ClassName.WIDTH)) {\n this.$collapse.addClass(ClassName.WIDTH);\n }\n\n if (this.$input) {\n // add a listener to set focus\n this.$collapse.on(\"shown.bs.collapse\", () => {\n this.$input.focus();\n });\n\n // add a listener to collapse field\n this.$input.blur(() => {\n this.$collapse.collapse(\"hide\");\n });\n }\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n this.$bmdFormGroup = null;\n this.$collapse = null;\n this.$input = null;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new CollapseInline($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = CollapseInline._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = CollapseInline;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return CollapseInline._jQueryInterface;\n };\n\n return CollapseInline;\n})(jQuery);\n\nexport default CollapseInline;\n","import BaseInput from \"./baseInput\";\n//import Checkbox from './checkbox'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Text from './text'\n//import Textarea from './textarea'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst File = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"file\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n const ClassName = {\n FILE: NAME,\n IS_FILE: \"is-file\"\n };\n\n const Selector = {\n FILENAMES: \"input.form-control[readonly]\"\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class File extends BaseInput {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, Radio, Text, Textarea, Select, Switch]},\n Default,\n config\n )\n );\n\n this.$bmdFormGroup.addClass(ClassName.IS_FILE);\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n static matches($element) {\n if ($element.attr(\"type\") === \"file\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='file'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // Demarcation element (e.g. first child of a form-group)\n outerElement() {\n // label.file > input[type=file]\n return this.$element.parent().closest(`.${ClassName.FILE}`);\n }\n\n rejectWithoutRequiredStructure() {\n // label.file > input[type=file]\n Util.assert(\n this.$element,\n !this.outerElement().prop(\"tagName\") === \"label\",\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} parent element ${Util.describe(\n this.outerElement()\n )} should be <label>.`\n );\n Util.assert(\n this.$element,\n !this.outerElement().hasClass(ClassName.FILE),\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} parent element ${Util.describe(\n this.outerElement()\n )} should have class .${ClassName.FILE}.`\n );\n }\n\n addFocusListener() {\n this.$bmdFormGroup\n .on(\"focus\", () => {\n this.addFormGroupFocus();\n })\n .on(\"blur\", () => {\n this.removeFormGroupFocus();\n });\n }\n\n addChangeListener() {\n // set the fileinput readonly field with the name of the file\n this.$element.on(\"change\", () => {\n let value = \"\";\n $.each(this.$element.files, (i, file) => {\n value += `${file.name} , `;\n });\n value = value.substring(0, value.length - 2);\n if (value) {\n this.addIsFilled();\n } else {\n this.removeIsFilled();\n }\n this.$bmdFormGroup.find(Selector.FILENAMES).val(value);\n });\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new File($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = File._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = File;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return File._jQueryInterface;\n };\n\n return File;\n})(jQuery);\n\nexport default File;\n","import BaseSelection from \"./baseSelection\";\n//import Text from './text'\n//import File from './file'\n//import Checkbox from './checkbox'\n//import Switch from './switch'\nimport Util from \"./util\";\n\nconst Radio = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"radio\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n template: `<span class='bmd-radio'></span>`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Radio extends BaseSelection {\n constructor(\n $element,\n config,\n properties = { inputType: NAME, outerClass: NAME }\n ) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Switch, Text]},\n Default,\n config\n ),\n properties\n );\n }\n\n dispose(dataKey = DATA_KEY) {\n super.dispose(dataKey);\n }\n\n static matches($element) {\n // '.radio > label > input[type=radio]'\n if ($element.attr(\"type\") === \"radio\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='radio'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n //decorateMarkup() {\n // this.$element.after(this.config.template)\n //}\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Radio($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Radio._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Radio;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Radio._jQueryInterface;\n };\n\n return Radio;\n})(jQuery);\n\nexport default Radio;\n","import Radio from \"./radio\";\n\nconst RadioInline = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"radioInline\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n bmdFormGroup: {\n create: false, // no bmd-form-group creation if form-group not present. It messes with the layout.\n required: false\n }\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class RadioInline extends Radio {\n constructor(\n $element,\n config,\n properties = { inputType: \"radio\", outerClass: \"radio-inline\" }\n ) {\n super($element, $.extend(true, {}, Default, config), properties);\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new RadioInline($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = RadioInline._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = RadioInline;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return RadioInline._jQueryInterface;\n };\n\n return RadioInline;\n})(jQuery);\n\nexport default RadioInline;\n","import BaseInput from \"./baseInput\";\n\nconst BaseFormControl = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const Default = {\n requiredClasses: [\"form-control\"]\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseFormControl extends BaseInput {\n constructor($element, config) {\n super($element, $.extend(true, Default, config));\n\n // Initially mark as empty\n if (this.isEmpty()) {\n this.removeIsFilled();\n }\n }\n }\n\n return BaseFormControl;\n})(jQuery);\n\nexport default BaseFormControl;\n","import BaseFormControl from \"./baseFormControl\";\n//import Checkbox from './checkbox'\n//import File from './file'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Text from './text'\n//import Textarea from './textarea'\nimport Util from \"./util\";\n\nconst Select = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"select\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n requiredClasses: [\"form-control||custom-select\"]\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Select extends BaseFormControl {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Radio, Switch, Text, Textarea]},\n Default,\n config\n )\n );\n\n // floating labels will cover the options, so trigger them to be above (if used)\n this.addIsFilled();\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n static matches($element) {\n if ($element.prop(\"tagName\") === \"select\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for <select>.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Select($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Select._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Select;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Select._jQueryInterface;\n };\n\n return Select;\n})(jQuery);\n\nexport default Select;\n","import Checkbox from \"./checkbox\";\n\nconst Switch = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"switch\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n template: `<span class='bmd-switch-track'></span>`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Switch extends Checkbox {\n constructor(\n $element,\n config,\n properties = { inputType: \"checkbox\", outerClass: \"switch\" }\n ) {\n super($element, $.extend(true, {}, Default, config), properties);\n // selector: '.switch > label > input[type=checkbox]'\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Switch($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Switch._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Switch;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Switch._jQueryInterface;\n };\n\n return Switch;\n})(jQuery);\n\nexport default Switch;\n","import BaseFormControl from \"./baseFormControl\";\n//import Checkbox from './checkbox'\n//import File from './file'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Textarea from './textarea'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst Text = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"text\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Text extends BaseFormControl {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Radio, Switch, Select, Textarea]},\n Default,\n config\n )\n );\n }\n\n dispose(dataKey = DATA_KEY) {\n super.dispose(dataKey);\n }\n\n static matches($element) {\n if ($element.attr(\"type\") === \"text\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='text'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Text($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Text._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Text;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Text._jQueryInterface;\n };\n\n return Text;\n})(jQuery);\n\nexport default Text;\n","import BaseFormControl from \"./baseFormControl\";\n//import Checkbox from './checkbox'\n//import File from './file'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Text from './text'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst Textarea = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"textarea\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Textarea extends BaseFormControl {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Radio, Text, Select, Switch]},\n Default,\n config\n )\n );\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n static matches($element) {\n if ($element.prop(\"tagName\") === \"textarea\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for <textarea>.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Textarea($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Textarea._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Textarea;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Textarea._jQueryInterface;\n };\n\n return Textarea;\n})(jQuery);\n\nexport default Textarea;\n","import Base from \"./base\";\nimport Util from \"./util\";\n\nconst BaseLayout = ($ => {\n const ClassName = {\n CANVAS: \"bmd-layout-canvas\",\n CONTAINER: \"bmd-layout-container\",\n BACKDROP: `bmd-layout-backdrop`\n };\n\n const Selector = {\n CANVAS: `.${ClassName.CANVAS}`,\n CONTAINER: `.${ClassName.CONTAINER}`,\n BACKDROP: `.${ClassName.BACKDROP}`\n };\n\n const Default = {\n canvas: {\n create: true,\n required: true,\n template: `<div class=\"${ClassName.CANVAS}\"></div>`\n },\n backdrop: {\n create: true,\n required: true,\n template: `<div class=\"${ClassName.BACKDROP}\"></div>`\n }\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseLayout extends Base {\n constructor($element, config, properties = {}) {\n super($element, $.extend(true, {}, Default, config), properties);\n\n this.$container = this.findContainer(true);\n this.$backdrop = this.resolveBackdrop();\n this.resolveCanvas();\n }\n\n dispose(dataKey) {\n super.dispose(dataKey);\n this.$container = null;\n this.$backdrop = null;\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // Will wrap container in bmd-layout-canvas if necessary\n resolveCanvas() {\n let bd = this.findCanvas(false);\n if (bd === undefined || bd.length === 0) {\n if (this.config.canvas.create) {\n this.$container.wrap(this.config.canvas.template);\n }\n\n bd = this.findCanvas(this.config.canvas.required);\n }\n\n return bd;\n }\n\n // Find closest bmd-layout-container based on the given context\n findCanvas(raiseError = true, context = this.$container) {\n let canvas = context.closest(Selector.CANVAS);\n if (canvas.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.CANVAS} for ${Util.describe(context)}`\n );\n }\n return canvas;\n }\n\n // Will add bmd-layout-backdrop to bmd-layout-container if necessary\n resolveBackdrop() {\n let bd = this.findBackdrop(false);\n if (bd === undefined || bd.length === 0) {\n if (this.config.backdrop.create) {\n this.$container.append(this.config.backdrop.template);\n }\n\n bd = this.findBackdrop(this.config.backdrop.required);\n }\n\n return bd;\n }\n\n // Find closest bmd-layout-container based on the given context\n findBackdrop(raiseError = true, context = this.$container) {\n let backdrop = context.find(`> ${Selector.BACKDROP}`);\n if (backdrop.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.BACKDROP} for ${Util.describe(context)}`\n );\n }\n return backdrop;\n }\n\n // Find closest bmd-layout-container based on the given context\n findContainer(raiseError = true, context = this.$element) {\n let container = context.closest(Selector.CONTAINER);\n if (container.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.CONTAINER} for ${Util.describe(context)}`\n );\n }\n return container;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n }\n\n return BaseLayout;\n})(jQuery);\n\nexport default BaseLayout;\n","import BaseLayout from \"./baseLayout\";\n\nconst Drawer = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"drawer\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Keycodes = {\n ESCAPE: 27\n //ENTER: 13,\n //SPACE: 32\n };\n\n const ClassName = {\n IN: \"in\",\n DRAWER_IN: `bmd-drawer-in`,\n DRAWER_OUT: `bmd-drawer-out`,\n DRAWER: \"bmd-layout-drawer\",\n CONTAINER: \"bmd-layout-container\"\n };\n\n const Default = {\n focusSelector: `a, button, input`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Drawer extends BaseLayout {\n // $element is expected to be the trigger\n // i.e. <button class=\"btn bmd-btn-icon\" for=\"search\" data-toggle=\"drawer\" data-target=\"#my-side-nav-drawer\" aria-expanded=\"false\" aria-controls=\"my-side-nav-drawer\">\n constructor($element, config) {\n super($element, $.extend(true, {}, Default, config));\n\n this.$toggles = $(\n `[data-toggle=\"drawer\"][href=\"#${this.$element[0]\n .id}\"], [data-toggle=\"drawer\"][data-target=\"#${this.$element[0].id}\"]`\n );\n\n this._addAria();\n\n // click or escape on the backdrop closes the drawer\n this.$backdrop\n .keydown(ev => {\n if (ev.which === Keycodes.ESCAPE) {\n this.hide();\n }\n })\n .click(() => {\n this.hide();\n });\n\n // escape on the drawer closes it\n this.$element.keydown(ev => {\n if (ev.which === Keycodes.ESCAPE) {\n this.hide();\n }\n });\n\n // any toggle button clicks\n this.$toggles.click(() => {\n this.toggle();\n });\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n this.$toggles = null;\n }\n\n toggle() {\n if (this._isOpen()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isForcedClosed() || this._isOpen()) {\n return;\n }\n\n this.$toggles.attr(\"aria-expanded\", true);\n this.$element.attr(\"aria-expanded\", true);\n this.$element.attr(\"aria-hidden\", false);\n\n // focus on the first focusable item\n let $focusOn = this.$element.find(this.config.focusSelector);\n if ($focusOn.length > 0) {\n $focusOn.first().focus();\n }\n\n this.$container.addClass(ClassName.DRAWER_IN);\n // backdrop is responsively styled based on bmd-drawer-overlay, therefore style is none of our concern, simply add the marker class and let the scss determine if it should be displayed or not.\n this.$backdrop.addClass(ClassName.IN);\n }\n\n hide() {\n if (!this._isOpen()) {\n return;\n }\n\n this.$toggles.attr(\"aria-expanded\", false);\n this.$element.attr(\"aria-expanded\", false);\n this.$element.attr(\"aria-hidden\", true);\n\n this.$container.removeClass(ClassName.DRAWER_IN);\n this.$backdrop.removeClass(ClassName.IN);\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _isOpen() {\n return this.$container.hasClass(ClassName.DRAWER_IN);\n }\n\n _isForcedClosed() {\n return this.$container.hasClass(ClassName.DRAWER_OUT);\n }\n\n _addAria() {\n let isOpen = this._isOpen();\n this.$element.attr(\"aria-expanded\", isOpen);\n this.$element.attr(\"aria-hidden\", isOpen);\n\n if (this.$toggles.length) {\n this.$toggles.attr(\"aria-expanded\", isOpen);\n }\n }\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Drawer($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Drawer._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Drawer;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Drawer._jQueryInterface;\n };\n\n return Drawer;\n})(jQuery);\n\nexport default Drawer;\n","import Util from \"./util\";\n\nconst Ripples = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"ripples\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const ClassName = {\n CONTAINER: \"ripple-container\",\n DECORATOR: \"ripple-decorator\"\n };\n\n const Selector = {\n CONTAINER: `.${ClassName.CONTAINER}`,\n DECORATOR: `.${ClassName.DECORATOR}` //,\n };\n\n const Default = {\n container: {\n template: `<div class='${ClassName.CONTAINER}'></div>`\n },\n decorator: {\n template: `<div class='${ClassName.DECORATOR}'></div>`\n },\n trigger: {\n start: \"mousedown touchstart\",\n end: \"mouseup mouseleave touchend\"\n },\n touchUserAgentRegex: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i,\n duration: 500\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Ripples {\n constructor($element, config) {\n this.$element = $element;\n\n // console.log(`Adding ripples to ${Util.describe(this.$element)}`) // eslint-disable-line no-console\n this.config = $.extend(true, {}, Default, config);\n\n // attach initial listener\n this.$element.on(this.config.trigger.start, event => {\n this._onStartRipple(event);\n });\n }\n\n dispose() {\n this.$element.data(DATA_KEY, null);\n this.$element = null;\n this.$container = null;\n this.$decorator = null;\n this.config = null;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _onStartRipple(event) {\n // Verify if the user is just touching on a device and return if so\n if (this._isTouch() && event.type === \"mousedown\") {\n return;\n }\n\n // Find or create the ripple container element\n this._findOrCreateContainer();\n\n // Get relY and relX positions of the container element\n let relY = this._getRelY(event);\n let relX = this._getRelX(event);\n\n // If relY and/or relX are false, return the event\n if (!relY && !relX) {\n return;\n }\n\n // set the location and color each time (even if element is cached)\n this.$decorator.css({\n left: relX,\n top: relY,\n \"background-color\": this._getRipplesColor()\n });\n\n // Make sure the ripple has the styles applied (ugly hack but it works)\n this._forceStyleApplication();\n\n // Turn on the ripple animation\n this.rippleOn();\n\n // Call the rippleEnd function when the transition 'on' ends\n setTimeout(() => {\n this.rippleEnd();\n }, this.config.duration);\n\n // Detect when the user leaves the element to cleanup if not already done?\n this.$element.on(this.config.trigger.end, () => {\n if (this.$decorator) {\n // guard against race condition/mouse attack\n this.$decorator.data(\"mousedown\", \"off\");\n\n if (this.$decorator.data(\"animating\") === \"off\") {\n this.rippleOut();\n }\n }\n });\n }\n\n _findOrCreateContainer() {\n if (!this.$container || !this.$container.length > 0) {\n this.$element.append(this.config.container.template);\n this.$container = this.$element.find(Selector.CONTAINER);\n }\n\n // always add the rippleElement, it is always removed\n this.$container.append(this.config.decorator.template);\n this.$decorator = this.$container.find(Selector.DECORATOR);\n }\n\n // Make sure the ripple has the styles applied (ugly hack but it works)\n _forceStyleApplication() {\n return window.getComputedStyle(this.$decorator[0]).opacity;\n }\n\n /**\n * Get the relX\n */\n _getRelX(event) {\n let wrapperOffset = this.$container.offset();\n\n let result = null;\n if (!this._isTouch()) {\n // Get the mouse position relative to the ripple wrapper\n result = event.pageX - wrapperOffset.left;\n } else {\n // Make sure the user is using only one finger and then get the touch\n // position relative to the ripple wrapper\n event = event.originalEvent;\n\n if (event.touches.length === 1) {\n result = event.touches[0].pageX - wrapperOffset.left;\n } else {\n result = false;\n }\n }\n\n return result;\n }\n\n /**\n * Get the relY\n */\n _getRelY(event) {\n let containerOffset = this.$container.offset();\n let result = null;\n\n if (!this._isTouch()) {\n /**\n * Get the mouse position relative to the ripple wrapper\n */\n result = event.pageY - containerOffset.top;\n } else {\n /**\n * Make sure the user is using only one finger and then get the touch\n * position relative to the ripple wrapper\n */\n event = event.originalEvent;\n\n if (event.touches.length === 1) {\n result = event.touches[0].pageY - containerOffset.top;\n } else {\n result = false;\n }\n }\n\n return result;\n }\n\n /**\n * Get the ripple color\n */\n _getRipplesColor() {\n let color = this.$element.data(\"ripple-color\")\n ? this.$element.data(\"ripple-color\")\n : window.getComputedStyle(this.$element[0]).color;\n return color;\n }\n\n /**\n * Verify if the client is using a mobile device\n */\n _isTouch() {\n return this.config.touchUserAgentRegex.test(navigator.userAgent);\n }\n\n /**\n * End the animation of the ripple\n */\n rippleEnd() {\n if (this.$decorator) {\n // guard against race condition/mouse attack\n this.$decorator.data(\"animating\", \"off\");\n\n if (this.$decorator.data(\"mousedown\") === \"off\") {\n this.rippleOut(this.$decorator);\n }\n }\n }\n\n /**\n * Turn off the ripple effect\n */\n rippleOut() {\n this.$decorator.off();\n\n if (Util.transitionEndSupported()) {\n this.$decorator.addClass(\"ripple-out\");\n } else {\n this.$decorator.animate({ opacity: 0 }, 100, () => {\n this.$decorator.trigger(\"transitionend\");\n });\n }\n\n this.$decorator.on(Util.transitionEndSelector(), () => {\n if (this.$decorator) {\n this.$decorator.remove();\n this.$decorator = null;\n }\n });\n }\n\n /**\n * Turn on the ripple effect\n */\n rippleOn() {\n let size = this._getNewSize();\n\n if (Util.transitionEndSupported()) {\n this.$decorator\n .css({\n \"-ms-transform\": `scale(${size})`,\n \"-moz-transform\": `scale(${size})`,\n \"-webkit-transform\": `scale(${size})`,\n transform: `scale(${size})`\n })\n .addClass(\"ripple-on\")\n .data(\"animating\", \"on\")\n .data(\"mousedown\", \"on\");\n } else {\n this.$decorator.animate(\n {\n width:\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * 2,\n height:\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * 2,\n \"margin-left\":\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * -1,\n \"margin-top\":\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * -1,\n opacity: 0.2\n },\n this.config.duration,\n () => {\n this.$decorator.trigger(\"transitionend\");\n }\n );\n }\n }\n\n /**\n * Get the new size based on the element height/width and the ripple width\n */\n _getNewSize() {\n return (\n Math.max(this.$element.outerWidth(), this.$element.outerHeight()) /\n this.$decorator.outerWidth() *\n 2.5\n );\n }\n\n // ------------------------------------------------------------------------\n // static\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Ripples($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Ripples._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Ripples;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Ripples._jQueryInterface;\n };\n\n return Ripples;\n})(jQuery);\n\nexport default Ripples;\n","import Base from \"./base\";\n\nconst Autofill = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"autofill\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Autofill extends Base {\n constructor($element, config) {\n super($element, $.extend(true, {}, Default, config));\n\n this._watchLoading();\n this._attachEventHandlers();\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _watchLoading() {\n // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them\n setTimeout(() => {\n clearInterval(this._onLoading);\n }, 10000);\n }\n\n // This part of code will detect autofill when the page is loading (username and password inputs for example)\n _onLoading() {\n setInterval(() => {\n $(\"input[type!=checkbox]\").each((index, element) => {\n let $element = $(element);\n if ($element.val() && $element.val() !== $element.attr(\"value\")) {\n $element.trigger(\"change\");\n }\n });\n }, 100);\n }\n\n _attachEventHandlers() {\n // Listen on inputs of the focused form\n // (because user can select from the autofill dropdown only when the input has focus)\n let focused = null;\n $(document)\n .on(\"focus\", \"input\", event => {\n let $inputs = $(event.currentTarget)\n .closest(\"form\")\n .find(\"input\")\n .not(\"[type=file]\");\n focused = setInterval(() => {\n $inputs.each((index, element) => {\n let $element = $(element);\n if ($element.val() !== $element.attr(\"value\")) {\n $element.trigger(\"change\");\n }\n });\n }, 100);\n })\n .on(\"blur\", \".form-group input\", () => {\n clearInterval(focused);\n });\n }\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Autofill($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Autofill._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Autofill;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Autofill._jQueryInterface;\n };\n\n return Autofill;\n})(jQuery);\n\nexport default Autofill;\n","/**\n * $.bootstrapMaterialDesign(config) is a macro class to configure the components generally\n * used in Material Design for Bootstrap. You may pass overrides to the configurations\n * which will be passed into each component, or you may omit use of this class and\n * configure each component separately.\n */\nconst BootstrapMaterialDesign = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"bootstrapMaterialDesign\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = NAME; // retain this full name since it is long enough not to conflict\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n /**\n * Global configuration:\n * The global configuration hash will be mixed in to each components' config.\n * e.g. calling $.bootstrapMaterialDesign({global: { validate: true } }) would pass `validate:true` to every component\n *\n *\n * Component configuration:\n * - selector: may be a string or an array. Any array will be joined with a comma to generate the selector\n * - disable any component by defining it as false with an override. e.g. $.bootstrapMaterialDesign({ autofill: false })\n *\n * @see each individual component for more configuration settings.\n */\n const Default = {\n global: {\n validate: false,\n label: {\n className: \"bmd-label-static\" // default style of label to be used if not specified in the html markup\n }\n },\n autofill: {\n selector: \"body\"\n },\n checkbox: {\n selector: \".checkbox > label > input[type=checkbox]\"\n },\n checkboxInline: {\n selector: \"label.checkbox-inline > input[type=checkbox]\"\n },\n collapseInline: {\n selector: '.bmd-collapse-inline [data-toggle=\"collapse\"]'\n },\n drawer: {\n selector: \".bmd-layout-drawer\"\n },\n file: {\n selector: \"input[type=file]\"\n },\n radio: {\n selector: \".radio > label > input[type=radio]\"\n },\n radioInline: {\n selector: \"label.radio-inline > input[type=radio]\"\n },\n ripples: {\n //selector: ['.btn:not(.btn-link):not(.ripple-none)'] // testing only\n selector: [\n \".btn:not(.btn-link):not(.ripple-none)\",\n \".card-image:not(.ripple-none)\",\n \".navbar a:not(.ripple-none)\",\n \".dropdown-menu a:not(.ripple-none)\",\n \".nav-tabs a:not(.ripple-none)\",\n \".pagination li:not(.active):not(.disabled) a:not(.ripple-none)\",\n \".ripple\" // generic marker class to add ripple to elements\n ]\n },\n select: {\n selector: [\"select\"]\n },\n switch: {\n selector: \".switch > label > input[type=checkbox]\"\n },\n text: {\n // omit inputs we have specialized components to handle - we need to match text, email, etc. The easiest way to do this appears to be just omit the ones we don't want to match and let the rest fall through to this.\n selector: [\n `input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset])`\n ]\n },\n textarea: {\n selector: [\"textarea\"]\n },\n arrive: true,\n // create an ordered component list for instantiation\n instantiation: [\n \"ripples\",\n \"checkbox\",\n \"checkboxInline\",\n \"collapseInline\",\n \"drawer\",\n //'file',\n \"radio\",\n \"radioInline\",\n \"switch\",\n \"text\",\n \"textarea\",\n \"select\",\n \"autofill\"\n ]\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BootstrapMaterialDesign {\n constructor($element, config) {\n this.$element = $element;\n this.config = $.extend(true, {}, Default, config);\n let $document = $(document);\n\n for (let component of this.config.instantiation) {\n // the component's config fragment is passed in directly, allowing users to override\n let componentConfig = this.config[component];\n\n // check to make sure component config is enabled (not `false`)\n if (componentConfig) {\n // assemble the selector as it may be an array\n let selector = this._resolveSelector(componentConfig);\n\n // mix in global options\n componentConfig = $.extend(\n true,\n {},\n this.config.global,\n componentConfig\n );\n\n // create the jquery fn name e.g. 'bmdText' for 'text'\n let componentName = `${component.charAt(0).toUpperCase() +\n component.slice(1)}`;\n let jqueryFn = `bmd${componentName}`;\n\n try {\n // safely instantiate component on selector elements with config, report errors and move on.\n // console.debug(`instantiating: $('${selector}')[${jqueryFn}](${componentConfig})`) // eslint-disable-line no-console\n $(selector)[jqueryFn](componentConfig);\n\n // add to arrive if present and enabled\n if (document.arrive && this.config.arrive) {\n $document.arrive(selector, function() {\n // eslint-disable-line no-loop-func\n $(this)[jqueryFn](componentConfig);\n });\n }\n } catch (e) {\n let message = `Failed to instantiate component: $('${selector}')[${jqueryFn}](${componentConfig})`;\n console.error(message, e, `\\nSelected elements: `, $(selector)); // eslint-disable-line no-console\n throw e;\n }\n }\n }\n }\n\n dispose() {\n this.$element.data(DATA_KEY, null);\n this.$element = null;\n this.config = null;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _resolveSelector(componentConfig) {\n let selector = componentConfig.selector;\n if (Array.isArray(selector)) {\n selector = selector.join(\", \");\n }\n\n return selector;\n }\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new BootstrapMaterialDesign($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = BootstrapMaterialDesign._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = BootstrapMaterialDesign;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return BootstrapMaterialDesign._jQueryInterface;\n };\n\n return BootstrapMaterialDesign;\n})(jQuery);\n\nexport default BootstrapMaterialDesign;\n","/*\n * This is the main entry point.\n *\n * You can import other modules here, including external packages. When bundling using rollup you can mark those modules as external and have them excluded or, if they have a jsnext:main entry in their package.json (like this package does), let rollup bundle them into your dist file.\n *\n * at your application entry point. This is necessary for browsers that do not yet support some ES2015 runtime necessities such as Symbol. We do this in `index-iife.js` for our iife rollup bundle.\n */\n\n// Bootstrap components\nimport \"bootstrap/js/src/alert\";\nimport \"bootstrap/js/src/button\";\nimport \"bootstrap/js/src/carousel\";\nimport \"bootstrap/js/src/collapse\";\nimport \"bootstrap/js/src/dropdown\";\nimport \"bootstrap/js/src/modal\";\nimport \"bootstrap/js/src/popover\";\nimport \"bootstrap/js/src/scrollspy\";\nimport \"bootstrap/js/src/tab\";\nimport \"bootstrap/js/src/tooltip\";\nimport \"bootstrap/js/src/util\";\n\n// invalidComponentMatches is currently disabled due to https://github.com/rollup/rollup/issues/428#issuecomment-170066452\nimport \"./checkbox\";\nimport \"./checkboxInline\";\nimport \"./collapseInline\";\nimport \"./file\";\nimport \"./radio\";\nimport \"./radioInline\";\nimport \"./select\";\nimport \"./switch\";\nimport \"./text\";\nimport \"./textarea\";\n\nimport \"./drawer\";\n\nimport \"./ripples\";\nimport \"./autofill\";\nimport \"./bootstrapMaterialDesign\";\n"],"names":["Util","$","transition","MAX_UID","TransitionEndEvent","toType","obj","toString","call","match","toLowerCase","isElement","nodeType","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","el","document","createElement","name","style","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","prefix","Math","random","getElementById","element","selector","getAttribute","$selector","length","error","offsetHeight","trigger","Boolean","componentName","config","configTypes","property","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","jQuery","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","each","$element","data","alertInstance","preventDefault","close","on","CLICK_DATA_API","DISMISS","_handleDismiss","_jQueryInterface","Constructor","noConflict","Button","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","find","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","_slide","NEXT","hidden","next","PREV","NEXT_PREV","cycle","interval","setInterval","visibilityState","nextWhenVisible","bind","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","to","pause","direction","off","extend","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","prev","makeArray","ITEM","indexOf","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","nextIndicator","children","addClass","activeElementIndex","nextElement","_getItemByDirection","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","_triggerSlideEvent","_setActiveIndicatorElement","slidEvent","reflow","action","slide","CAROUSEL","slideIndex","DATA_SLIDE","_dataApiClickHandler","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","toggle","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","Dropdown","Popper","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","BOTTOM","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","NAVBAR_NAV","noop","destroy","scheduleUpdate","CLICK","stopPropagation","elementData","placement","constructor","MENU","$parentDropdown","TOP","TOPEND","BOTTOMEND","popperConfig","_getPlacement","offset","flip","modifiers","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","_dataApiKeydownHandler","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","_adjustDialog","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","handleUpdate","_resetAdjustments","_resetScrollbar","callback","animate","backdrop","doAnimate","className","BACKDROP","appendTo","currentTarget","callbackRemove","_removeBackdrop","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","clientWidth","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","css","parseFloat","NAVBAR_TOGGLER","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","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","template","$tip","setElementContent","TOOLTIP_INNER","content","html","jquery","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_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","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","innerHeight","maxScroll","_getOffsetHeight","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","hiddenEvent","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","transitionEnd","transitionEndSelector","ctrlKey","metaKey","altKey","invalidTest","message","outerHTML","Base","BMD_FORM_GROUP","properties","prop","$bmdFormGroup","IS_FOCUSED","IS_FILLED","raiseError","mfg","describe","BaseInput","FORM_GROUP","BMD_LABEL","BMD_LABEL_STATIC","FormControlSizeMarkers","_rejectInvalidComponentMatches","rejectWithoutRequiredStructure","_rejectWithoutRequiredClasses","$formGroup","findFormGroup","formGroup","required","resolveMdbFormGroup","$bmdLabel","resolveMdbLabel","resolveMdbFormGroupSizing","addFocusListener","addChangeListener","val","addIsFilled","addFormGroupFocus","removeFormGroupFocus","isChar","isEmpty","removeIsFilled","validate","isValid","checkValidity","removeHasDanger","addHasDanger","HAS_DANGER","findMdbFormGroup","bmdFormGroup","create","outerElement","INPUT_GROUP","label","BMD_LABEL_WILDCARD","findMdbLabel","selectors","isFunction","fg","convertInputSizeVariations","inputSize","invalidComponentMatches","otherComponent","rejectMatch","requiredClasses","requiredClass","found","oneOf","BaseSelection","decorateMarkup","$decorator","after","ripples","bmdRipples","outerClass","assert","LABEL","hover","change","blur","Checkbox","JQUERY_NAME","charAt","inputType","component","matches","CheckboxInline","CollapseInline","collapseSelector","$collapse","$inputs","ANY_INPUT","$input","first","collapse","File","IS_FILE","FILE","files","file","substring","FILENAMES","Radio","RadioInline","BaseFormControl","Select","Switch","Text","Textarea","BaseLayout","CANVAS","CONTAINER","$container","findContainer","$backdrop","resolveBackdrop","resolveCanvas","bd","findCanvas","canvas","findBackdrop","Drawer","Keycodes","$toggles","_addAria","keydown","ev","ESCAPE","_isOpen","_isForcedClosed","$focusOn","focusSelector","DRAWER_IN","IN","DRAWER_OUT","Ripples","DECORATOR","start","_onStartRipple","_isTouch","_findOrCreateContainer","relY","_getRelY","relX","_getRelX","_getRipplesColor","_forceStyleApplication","rippleOn","rippleEnd","rippleOut","decorator","getComputedStyle","opacity","wrapperOffset","result","pageX","left","originalEvent","touches","containerOffset","pageY","color","touchUserAgentRegex","navigator","userAgent","transitionEndSupported","size","_getNewSize","outerWidth","outerHeight","Autofill","_watchLoading","_attachEventHandlers","_onLoading","focused","not","BootstrapMaterialDesign","$document","componentConfig","_resolveSelector","global","jqueryFn","arrive","instantiation","Array","isArray"],"mappings":"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"}