diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index 6f89566101..c5cf3fd6d9 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js @@ -2,1249 +2,3496 @@ * Bootstrap v4.0.0-alpha (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */'use strict';if (typeof jQuery === 'undefined') { - throw new Error('Bootstrap\'s JavaScript requires jQuery'); -}+(function ($) { - var version = $.fn.jquery.split(' ')[0].split('.');if (version[0] < 2 && version[1] < 9 || version[0] == 1 && version[1] == 9 && version[2] < 1) { - throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher'); + */ + +if (typeof jQuery === 'undefined') { + throw new Error('Bootstrap\'s JavaScript requires jQuery') +} + ++function ($) { + var version = $.fn.jquery.split(' ')[0].split('.') + if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) { + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher') } -})(jQuery);+(function ($) { +}(jQuery); + + ++function ($) { + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +'use strict'; + +var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +var Util = (function ($) { + /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): util.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */'use strict';var _get = function get(_x, _x2, _x3) { - var _again = true;_function: while (_again) { - var object = _x, - property = _x2, - receiver = _x3;desc = parent = getter = undefined;_again = false;if (object === null) object = Function.prototype;var desc = Object.getOwnPropertyDescriptor(object, property);if (desc === undefined) { - var parent = Object.getPrototypeOf(object);if (parent === null) { - return undefined; - } else { - _x = parent;_x2 = property;_x3 = receiver;_again = true;continue _function; + * ------------------------------------------------------------------------ + * Private TransitionEnd Helpers + * ------------------------------------------------------------------------ + */ + + var transition = false; + + var TransitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + // shoutout AngusCroll (https://goo.gl/pxwQGp) + function toType(obj) { + return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); + } + + function isElement(obj) { + return (obj[0] || obj).nodeType; + } + + function getSpecialTransitionEndEvent() { + return { + bindType: transition.end, + delegateType: transition.end, + handle: function handle(event) { + if ($(event.target).is(this)) { + return event.handleObj.handler.apply(this, arguments); } - } else if ('value' in desc) { - return desc.value; - } else { - var getter = desc.get;if (getter === undefined) { - return undefined; - }return getter.call(receiver); } - } - };var _createClass = (function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); - } - }return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; }; - })();function _inherits(subClass, superClass) { - if (typeof superClass !== 'function' && superClass !== null) { - throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); - }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - }function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function'); + } + + function transitionEndTest() { + if (window.QUnit) { + return false; } - }var Util = (function ($) { - /** - * ------------------------------------------------------------------------ - * Private TransitionEnd Helpers - * ------------------------------------------------------------------------ - */var transition = false;var TransitionEndEvent = { WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd otransitionend', transition: 'transitionend' }; // shoutout AngusCroll (https://goo.gl/pxwQGp) - function toType(obj) { - return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); - }function isElement(obj) { - return (obj[0] || obj).nodeType; - }function getSpecialTransitionEndEvent() { - return { bindType: transition.end, delegateType: transition.end, handle: function handle(event) { - if ($(event.target).is(this)) { - return event.handleObj.handler.apply(this, arguments); - } - } }; - }function transitionEndTest() { - if (window.QUnit) { - return false; - }var el = document.createElement('bootstrap');for (var name in TransitionEndEvent) { - if (el.style[name] !== undefined) { - return { end: TransitionEndEvent[name] }; - } - }return false; - }function transitionEndEmulator(duration) { - var _this = this;var called = false;$(this).one(Util.TRANSITION_END, function () { - called = true; - });setTimeout(function () { - if (!called) { - Util.triggerTransitionEnd(_this); - } - }, duration);return this; - }function setTransitionEndSupport() { - transition = transitionEndTest();$.fn.emulateTransitionEnd = transitionEndEmulator;if (Util.supportsTransitionEnd()) { - $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + + var el = document.createElement('bootstrap'); + + for (var name in TransitionEndEvent) { + if (el.style[name] !== undefined) { + return { end: TransitionEndEvent[name] }; } - } /** - * -------------------------------------------------------------------------- - * Public Util Api - * -------------------------------------------------------------------------- - */var Util = { TRANSITION_END: 'bsTransitionEnd', getUID: function getUID(prefix) { - do prefix += ~ ~(Math.random() * 1000000); while (document.getElementById(prefix));return prefix; - }, getSelectorFromElement: function getSelectorFromElement(element) { - var selector = element.getAttribute('data-target');if (!selector) { - selector = element.getAttribute('href') || '';selector = /^#[a-z]/i.test(selector) ? selector : null; - }return selector; - }, reflow: function reflow(element) { - new Function('bs', 'return bs')(element.offsetHeight); - }, triggerTransitionEnd: function triggerTransitionEnd(element) { - $(element).trigger(transition.end); - }, supportsTransitionEnd: function supportsTransitionEnd() { - return !!transition; - }, typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { - for (var property in configTypes) { - var expectedTypes = configTypes[property];var value = config[property];var valueType = undefined;if (value && isElement(value)) valueType = 'element';else valueType = toType(value);if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); - } + } + + return false; + } + + function transitionEndEmulator(duration) { + var _this = this; + + var called = false; + + $(this).one(Util.TRANSITION_END, function () { + called = true; + }); + + setTimeout(function () { + if (!called) { + Util.triggerTransitionEnd(_this); + } + }, duration); + + return this; + } + + function setTransitionEndSupport() { + transition = transitionEndTest(); + + $.fn.emulateTransitionEnd = transitionEndEmulator; + + if (Util.supportsTransitionEnd()) { + $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + } + } + + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + var Util = { + + TRANSITION_END: 'bsTransitionEnd', + + getUID: function getUID(prefix) { + do prefix += ~ ~(Math.random() * 1000000); while (document.getElementById(prefix)); + return prefix; + }, + + getSelectorFromElement: function getSelectorFromElement(element) { + var selector = element.getAttribute('data-target'); + + if (!selector) { + selector = element.getAttribute('href') || ''; + selector = /^#[a-z]/i.test(selector) ? selector : null; + } + + return selector; + }, + + reflow: function reflow(element) { + new Function('bs', 'return bs')(element.offsetHeight); + }, + + triggerTransitionEnd: function triggerTransitionEnd(element) { + $(element).trigger(transition.end); + }, + + supportsTransitionEnd: function supportsTransitionEnd() { + return !!transition; + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + + for (var property in configTypes) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = undefined; + + if (value && isElement(value)) valueType = 'element';else valueType = toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); } - } };setTransitionEndSupport();return Util; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): alert.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Alert = (function ($) { + } + } + + }; + + setTransitionEndSupport(); + + return Util; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Alert = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'alert'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.alert'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Selector = { + DISMISS: '[data-dismiss="alert"]' + }; + + var Event = { + CLOSE: 'close' + EVENT_KEY, + CLOSED: 'closed' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + ALERT: 'alert', + FADE: 'fade', + IN: 'in' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Alert = (function () { + function Alert(element) { + _classCallCheck(this, Alert); + + this._element = element; + } + /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'alert';var VERSION = '4.0.0';var DATA_KEY = 'bs.alert';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 150;var Selector = { DISMISS: '[data-dismiss="alert"]' };var Event = { CLOSE: 'close' + EVENT_KEY, CLOSED: 'closed' + EVENT_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY };var ClassName = { ALERT: 'alert', FADE: 'fade', IN: 'in' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Alert = (function () { - function Alert(element) { - _classCallCheck(this, Alert);this._element = element; - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Alert, [{ key: 'close', // public - value: function close(element) { - element = element || this._element;var rootElement = this._getRootElement(element);var customEvent = this._triggerCloseEvent(rootElement);if (customEvent.isDefaultPrevented()) { - return; - }this._removeElement(rootElement); - } }, { key: 'dispose', value: function dispose() { - $.removeData(this._element, DATA_KEY);this._element = null; - } // private - }, { key: '_getRootElement', value: function _getRootElement(element) { - var parent = false;var selector = Util.getSelectorFromElement(element);if (selector) { - parent = $(selector)[0]; - }if (!parent) { - parent = $(element).closest('.' + ClassName.ALERT)[0]; - }return parent; - } }, { key: '_triggerCloseEvent', value: function _triggerCloseEvent(element) { - var closeEvent = $.Event(Event.CLOSE);$(element).trigger(closeEvent);return closeEvent; - } }, { key: '_removeElement', value: function _removeElement(element) { - $(element).removeClass(ClassName.IN);if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { - this._destroyElement(element);return; - }$(element).one(Util.TRANSITION_END, this._destroyElement.bind(this, element)).emulateTransitionEnd(TRANSITION_DURATION); - } }, { key: '_destroyElement', value: function _destroyElement(element) { - $(element).detach().trigger(Event.CLOSED).remove(); - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var $element = $(this);var data = $element.data(DATA_KEY);if (!data) { - data = new Alert(this);$element.data(DATA_KEY, data); - }if (config === 'close') { - data[config](this); - } - }); - } }, { key: '_handleDismiss', value: function _handleDismiss(alertInstance) { - return function (event) { - if (event) { - event.preventDefault(); - }alertInstance.close(this); - }; - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }]);return Alert; - })();$(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Alert._jQueryInterface;$.fn[NAME].Constructor = Alert;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Alert._jQueryInterface; - };return Alert; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): button.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Button = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'button';var VERSION = '4.0.0';var DATA_KEY = 'bs.button';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 150;var ClassName = { ACTIVE: 'active', BUTTON: 'btn', FOCUS: 'focus' };var Selector = { DATA_TOGGLE_CARROT: '[data-toggle^="button"]', DATA_TOGGLE: '[data-toggle="buttons"]', INPUT: 'input', ACTIVE: '.active', BUTTON: '.btn' };var Event = { CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY) }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Button = (function () { - function Button(element) { - _classCallCheck(this, Button);this._element = element; - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Button, [{ key: 'toggle', // public - value: function toggle() { - var triggerChangeEvent = true;var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];if (rootElement) { - var input = $(this._element).find(Selector.INPUT)[0];if (input) { - if (input.type === 'radio') { - if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) { - triggerChangeEvent = false; - } else { - var activeElement = $(rootElement).find(Selector.ACTIVE)[0];if (activeElement) { - $(activeElement).removeClass(ClassName.ACTIVE); - } - } - }if (triggerChangeEvent) { - input.checked = !$(this._element).hasClass(ClassName.ACTIVE);$(this._element).trigger('change'); - } - } - } else { - this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE)); - }if (triggerChangeEvent) { - $(this._element).toggleClass(ClassName.ACTIVE); - } - } }, { key: 'dispose', value: function dispose() { - $.removeData(this._element, DATA_KEY);this._element = null; - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY);if (!data) { - data = new Button(this);$(this).data(DATA_KEY, data); - }if (config === 'toggle') { - data[config](); - } - }); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }]);return Button; - })();$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { - event.preventDefault();var button = event.target;if (!$(button).hasClass(ClassName.BUTTON)) { - button = $(button).closest(Selector.BUTTON); - }Button._jQueryInterface.call($(button), 'toggle'); - }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { - var button = $(event.target).closest(Selector.BUTTON)[0];$(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Button._jQueryInterface;$.fn[NAME].Constructor = Button;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Button._jQueryInterface; - };return Button; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): carousel.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Carousel = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'carousel';var VERSION = '4.0.0';var DATA_KEY = 'bs.carousel';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 600;var Default = { interval: 5000, keyboard: true, slide: false, pause: 'hover', wrap: true };var DefaultType = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', pause: '(string|boolean)', wrap: 'boolean' };var Direction = { NEXT: 'next', PREVIOUS: 'prev' };var Event = { SLIDE: 'slide' + EVENT_KEY, SLID: 'slid' + EVENT_KEY, KEYDOWN: 'keydown' + EVENT_KEY, MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSELEAVE: 'mouseleave' + EVENT_KEY, LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY };var ClassName = { CAROUSEL: 'carousel', ACTIVE: 'active', SLIDE: 'slide', RIGHT: 'right', LEFT: 'left', ITEM: 'carousel-item' };var Selector = { ACTIVE: '.active', ACTIVE_ITEM: '.active.carousel-item', ITEM: '.carousel-item', NEXT_PREV: '.next, .prev', INDICATORS: '.carousel-indicators', DATA_SLIDE: '[data-slide], [data-slide-to]', DATA_RIDE: '[data-ride="carousel"]' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Carousel = (function () { - function Carousel(element, config) { - _classCallCheck(this, Carousel);this._items = null;this._interval = null;this._activeElement = null;this._isPaused = false;this._isSliding = false;this._config = this._getConfig(config);this._element = $(element)[0];this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];this._addEventListeners(); - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Carousel, [{ key: 'next', // public - value: function next() { - if (!this._isSliding) { - this._slide(Direction.NEXT); - } - } }, { key: 'prev', value: function prev() { - if (!this._isSliding) { - this._slide(Direction.PREVIOUS); - } - } }, { key: 'pause', value: function pause(event) { - if (!event) { - this._isPaused = true; - }if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) { - Util.triggerTransitionEnd(this._element);this.cycle(true); - }clearInterval(this._interval);this._interval = null; - } }, { key: 'cycle', value: function cycle(event) { - if (!event) { - this._isPaused = false; - }if (this._interval) { - clearInterval(this._interval);this._interval = null; - }if (this._config.interval && !this._isPaused) { - this._interval = setInterval($.proxy(this.next, this), this._config.interval); - } - } }, { key: 'to', value: function to(index) { - var _this2 = this;this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];var activeIndex = this._getItemIndex(this._activeElement);if (index > this._items.length - 1 || index < 0) { - return; - }if (this._isSliding) { - $(this._element).one(Event.SLID, function () { - return _this2.to(index); - });return; - }if (activeIndex == index) { - this.pause();this.cycle();return; - }var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS;this._slide(direction, this._items[index]); - } }, { key: 'dispose', value: function dispose() { - $(this._element).off(EVENT_KEY);$.removeData(this._element, DATA_KEY);this._items = null;this._config = null;this._element = null;this._interval = null;this._isPaused = null;this._isSliding = null;this._activeElement = null;this._indicatorsElement = null; - } // private - }, { key: '_getConfig', value: function _getConfig(config) { - config = $.extend({}, Default, config);Util.typeCheckConfig(NAME, config, DefaultType);return config; - } }, { key: '_addEventListeners', value: function _addEventListeners() { - if (this._config.keyboard) { - $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this)); - }if (this._config.pause == 'hover' && !('ontouchstart' in document.documentElement)) { - $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this)); - } - } }, { key: '_keydown', value: function _keydown(event) { - event.preventDefault();if (/input|textarea/i.test(event.target.tagName)) return;switch (event.which) {case 37: - this.prev();break;case 39: - this.next();break;default: - return;} - } }, { key: '_getItemIndex', value: function _getItemIndex(element) { - this._items = $.makeArray($(element).parent().find(Selector.ITEM));return this._items.indexOf(element); - } }, { key: '_getItemByDirection', value: function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === Direction.NEXT;var isPrevDirection = direction === Direction.PREVIOUS;var activeIndex = this._getItemIndex(activeElement);var lastItemIndex = this._items.length - 1;var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex == lastItemIndex;if (isGoingToWrap && !this._config.wrap) { - return activeElement; - }var delta = direction == Direction.PREVIOUS ? -1 : 1;var itemIndex = (activeIndex + delta) % this._items.length;return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - } }, { key: '_triggerSlideEvent', value: function _triggerSlideEvent(relatedTarget, directionalClassname) { - var slideEvent = $.Event(Event.SLIDE, { relatedTarget: relatedTarget, direction: directionalClassname });$(this._element).trigger(slideEvent);return slideEvent; - } }, { key: '_setActiveIndicatorElement', value: function _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];if (nextIndicator) { - $(nextIndicator).addClass(ClassName.ACTIVE); - } - } - } }, { key: '_slide', value: function _slide(direction, element) { - var _this3 = this;var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);var isCycling = !!this._interval;var directionalClassName = direction == Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT;if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { - this._isSliding = false;return; - }var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName);if (slideEvent.isDefaultPrevented()) { - return; - }if (!activeElement || !nextElement) { - // some weirdness is happening, so we bail - return; - }this._isSliding = true;if (isCycling) { - this.pause(); - }this._setActiveIndicatorElement(nextElement);var slidEvent = $.Event(Event.SLID, { relatedTarget: nextElement, direction: directionalClassName });if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { - $(nextElement).addClass(direction);Util.reflow(nextElement);$(activeElement).addClass(directionalClassName);$(nextElement).addClass(directionalClassName);$(activeElement).one(Util.TRANSITION_END, function () { - $(nextElement).removeClass(directionalClassName).removeClass(direction);$(nextElement).addClass(ClassName.ACTIVE);$(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName);_this3._isSliding = false;setTimeout(function () { - return $(_this3._element).trigger(slidEvent); - }, 0); - }).emulateTransitionEnd(TRANSITION_DURATION); - } else { - $(activeElement).removeClass(ClassName.ACTIVE);$(nextElement).addClass(ClassName.ACTIVE);this._isSliding = false;$(this._element).trigger(slidEvent); - }if (isCycling) { - this.cycle(); - } - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY);var _config = $.extend({}, Default, $(this).data());if (typeof config === 'object') { - $.extend(_config, config); - }var action = typeof config === 'string' ? config : _config.slide;if (!data) { - data = new Carousel(this, _config);$(this).data(DATA_KEY, data); - }if (typeof config == 'number') { - data.to(config); - } else if (action) { - data[action](); - } else if (_config.interval) { - data.pause();data.cycle(); - } - }); - } }, { key: '_dataApiClickHandler', value: function _dataApiClickHandler(event) { - var selector = Util.getSelectorFromElement(this);if (!selector) { - return; - }var target = $(selector)[0];if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { - return; - }var config = $.extend({}, $(target).data(), $(this).data());var slideIndex = this.getAttribute('data-slide-to');if (slideIndex) { - config.interval = false; - }Carousel._jQueryInterface.call($(target), config);if (slideIndex) { - $(target).data(DATA_KEY).to(slideIndex); - }event.preventDefault(); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }, { key: 'Default', get: function get() { - return Default; - } }]);return Carousel; - })();$(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);$(window).on(Event.LOAD_DATA_API, function () { - $(Selector.DATA_RIDE).each(function () { - var $carousel = $(this);Carousel._jQueryInterface.call($carousel, $carousel.data()); - }); - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Carousel._jQueryInterface;$.fn[NAME].Constructor = Carousel;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Carousel._jQueryInterface; - };return Carousel; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): collapse.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Collapse = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'collapse';var VERSION = '4.0.0';var DATA_KEY = 'bs.collapse';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 600;var Default = { toggle: true, parent: '' };var DefaultType = { toggle: 'boolean', parent: 'string' };var Event = { SHOW: 'show' + EVENT_KEY, SHOWN: 'shown' + EVENT_KEY, HIDE: 'hide' + EVENT_KEY, HIDDEN: 'hidden' + EVENT_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY };var ClassName = { IN: 'in', COLLAPSE: 'collapse', COLLAPSING: 'collapsing', COLLAPSED: 'collapsed' };var Dimension = { WIDTH: 'width', HEIGHT: 'height' };var Selector = { ACTIVES: '.panel > .in, .panel > .collapsing', DATA_TOGGLE: '[data-toggle="collapse"]' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Collapse = (function () { - function Collapse(element, config) { - _classCallCheck(this, Collapse);this._isTransitioning = false;this._element = element;this._config = this._getConfig(config);this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));this._parent = this._config.parent ? this._getParent() : null;if (!this._config.parent) { - this._addAriaAndCollapsedClass(this._element, this._triggerArray); - }if (this._config.toggle) { - this.toggle(); - } - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Collapse, [{ key: 'toggle', // public - value: function toggle() { - if ($(this._element).hasClass(ClassName.IN)) { - this.hide(); - } else { - this.show(); - } - } }, { key: 'show', value: function show() { - var _this4 = this;if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) { - return; - }var actives = undefined;var activesData = undefined;if (this._parent) { - actives = $.makeArray($(Selector.ACTIVES));if (!actives.length) { - actives = null; - } - }if (actives) { - activesData = $(actives).data(DATA_KEY);if (activesData && activesData._isTransitioning) { - return; - } - }var startEvent = $.Event(Event.SHOW);$(this._element).trigger(startEvent);if (startEvent.isDefaultPrevented()) { - return; - }if (actives) { - Collapse._jQueryInterface.call($(actives), 'hide');if (!activesData) { - $(actives).data(DATA_KEY, null); - } - }var dimension = this._getDimension();$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);this._element.style[dimension] = 0;this._element.setAttribute('aria-expanded', true);if (this._triggerArray.length) { - $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); - }this.setTransitioning(true);var complete = function complete() { - $(_this4._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN);_this4._element.style[dimension] = '';_this4.setTransitioning(false);$(_this4._element).trigger(Event.SHOWN); - };if (!Util.supportsTransitionEnd()) { - complete();return; - }var scrollSize = 'scroll' + (dimension[0].toUpperCase() + dimension.slice(1));$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);this._element.style[dimension] = this._element[scrollSize] + 'px'; - } }, { key: 'hide', value: function hide() { - var _this5 = this;if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) { - return; - }var startEvent = $.Event(Event.HIDE);$(this._element).trigger(startEvent);if (startEvent.isDefaultPrevented()) { - return; - }var dimension = this._getDimension();var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight';this._element.style[dimension] = this._element[offsetDimension] + 'px';Util.reflow(this._element);$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN);this._element.setAttribute('aria-expanded', false);if (this._triggerArray.length) { - $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); - }this.setTransitioning(true);var complete = function complete() { - _this5.setTransitioning(false);$(_this5._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); - };this._element.style[dimension] = 0;if (!Util.supportsTransitionEnd()) { - return complete(); - }$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); - } }, { key: 'setTransitioning', value: function setTransitioning(isTransitioning) { - this._isTransitioning = isTransitioning; - } }, { key: 'dispose', value: function dispose() { - $.removeData(this._element, DATA_KEY);this._config = null;this._parent = null;this._element = null;this._triggerArray = null;this._isTransitioning = null; - } // private - }, { key: '_getConfig', value: function _getConfig(config) { - config = $.extend({}, Default, config);config.toggle = !!config.toggle; // coerce string values - Util.typeCheckConfig(NAME, config, DefaultType);return config; - } }, { key: '_getDimension', value: function _getDimension() { - var hasWidth = $(this._element).hasClass(Dimension.WIDTH);return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; - } }, { key: '_getParent', value: function _getParent() { - var _this6 = this;var parent = $(this._config.parent)[0];var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';$(parent).find(selector).each(function (i, element) { - _this6._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); - });return parent; - } }, { key: '_addAriaAndCollapsedClass', value: function _addAriaAndCollapsedClass(element, triggerArray) { - if (element) { - var isOpen = $(element).hasClass(ClassName.IN);element.setAttribute('aria-expanded', isOpen);if (triggerArray.length) { - $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); - } - } - } // static - }], [{ key: '_getTargetFromElement', value: function _getTargetFromElement(element) { - var selector = Util.getSelectorFromElement(element);return selector ? $(selector)[0] : null; - } }, { key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var $this = $(this);var data = $this.data(DATA_KEY);var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);if (!data && _config.toggle && /show|hide/.test(config)) { - _config.toggle = false; - }if (!data) { - data = new Collapse(this, _config);$this.data(DATA_KEY, data); - }if (typeof config === 'string') { - data[config](); - } - }); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }, { key: 'Default', get: function get() { - return Default; - } }]);return Collapse; - })();$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - event.preventDefault();var target = Collapse._getTargetFromElement(this);var data = $(target).data(DATA_KEY);var config = data ? 'toggle' : $(this).data();Collapse._jQueryInterface.call($(target), config); - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Collapse._jQueryInterface;$.fn[NAME].Constructor = Collapse;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Collapse._jQueryInterface; - };return Collapse; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): dropdown.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Dropdown = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'dropdown';var VERSION = '4.0.0';var DATA_KEY = 'bs.dropdown';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var Event = { HIDE: 'hide' + EVENT_KEY, HIDDEN: 'hidden' + EVENT_KEY, SHOW: 'show' + EVENT_KEY, SHOWN: 'shown' + EVENT_KEY, CLICK: 'click' + EVENT_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY };var ClassName = { BACKDROP: 'dropdown-backdrop', DISABLED: 'disabled', OPEN: 'open' };var Selector = { BACKDROP: '.dropdown-backdrop', DATA_TOGGLE: '[data-toggle="dropdown"]', FORM_CHILD: '.dropdown form', ROLE_MENU: '[role="menu"]', ROLE_LISTBOX: '[role="listbox"]', NAVBAR_NAV: '.navbar-nav', VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Dropdown = (function () { - function Dropdown(element) { - _classCallCheck(this, Dropdown);this._element = element;this._addEventListeners(); - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Dropdown, [{ key: 'toggle', // public - value: function toggle() { - if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { - return; - }var parent = Dropdown._getParentFromElement(this);var isActive = $(parent).hasClass(ClassName.OPEN);Dropdown._clearMenus();if (isActive) { - return false; - }if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) { - // if mobile we use a backdrop because click events don't delegate - var dropdown = document.createElement('div');dropdown.className = ClassName.BACKDROP;$(dropdown).insertBefore(this);$(dropdown).on('click', Dropdown._clearMenus); - }var relatedTarget = { relatedTarget: this };var showEvent = $.Event(Event.SHOW, relatedTarget);$(parent).trigger(showEvent);if (showEvent.isDefaultPrevented()) { - return; - }this.focus();this.setAttribute('aria-expanded', 'true');$(parent).toggleClass(ClassName.OPEN);$(parent).trigger(Event.SHOWN, relatedTarget);return false; - } }, { key: 'dispose', value: function dispose() { - $.removeData(this._element, DATA_KEY);$(this._element).off(EVENT_KEY);this._element = null; - } // private - }, { key: '_addEventListeners', value: function _addEventListeners() { - $(this._element).on(Event.CLICK, this.toggle); - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY);if (!data) { - $(this).data(DATA_KEY, data = new Dropdown(this)); - }if (typeof config === 'string') { - data[config].call(this); - } - }); - } }, { key: '_clearMenus', value: function _clearMenus(event) { - if (event && event.which === 3) { - return; - }var backdrop = $(Selector.BACKDROP)[0];if (backdrop) { - backdrop.parentNode.removeChild(backdrop); - }var toggles = $.makeArray($(Selector.DATA_TOGGLE));for (var i = 0; i < toggles.length; i++) { - var _parent = Dropdown._getParentFromElement(toggles[i]);var relatedTarget = { relatedTarget: toggles[i] };if (!$(_parent).hasClass(ClassName.OPEN)) { - continue; - }if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) { - continue; - }var hideEvent = $.Event(Event.HIDE, relatedTarget);$(_parent).trigger(hideEvent);if (hideEvent.isDefaultPrevented()) { - continue; - }toggles[i].setAttribute('aria-expanded', 'false');$(_parent).removeClass(ClassName.OPEN).trigger(Event.HIDDEN, relatedTarget); - } - } }, { key: '_getParentFromElement', value: function _getParentFromElement(element) { - var parent = undefined;var selector = Util.getSelectorFromElement(element);if (selector) { - parent = $(selector)[0]; - }return parent || element.parentNode; - } }, { key: '_dataApiKeydownHandler', value: function _dataApiKeydownHandler(event) { - if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) { - return; - }event.preventDefault();event.stopPropagation();if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { - return; - }var parent = Dropdown._getParentFromElement(this);var isActive = $(parent).hasClass(ClassName.OPEN);if (!isActive && event.which !== 27 || isActive && event.which === 27) { - if (event.which === 27) { - var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];$(toggle).trigger('focus'); - }$(this).trigger('click');return; - }var items = $.makeArray($(Selector.VISIBLE_ITEMS));items = items.filter(function (item) { - return item.offsetWidth || item.offsetHeight; - });if (!items.length) { - return; - }var index = items.indexOf(event.target);if (event.which === 38 && index > 0) index--; // up - if (event.which === 40 && index < items.length - 1) index++; // down - if (! ~index) index = 0;items[index].focus(); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }]);return Dropdown; - })();$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { - e.stopPropagation(); - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Dropdown._jQueryInterface;$.fn[NAME].Constructor = Dropdown;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Dropdown._jQueryInterface; - };return Dropdown; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): modal.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Modal = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'modal';var VERSION = '4.0.0';var DATA_KEY = 'bs.modal';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 300;var BACKDROP_TRANSITION_DURATION = 150;var Default = { backdrop: true, keyboard: true, focus: true, show: true };var DefaultType = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean', show: 'boolean' };var Event = { HIDE: 'hide' + EVENT_KEY, HIDDEN: 'hidden' + EVENT_KEY, SHOW: 'show' + EVENT_KEY, SHOWN: 'shown' + EVENT_KEY, FOCUSIN: 'focusin' + EVENT_KEY, RESIZE: 'resize' + EVENT_KEY, CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY };var ClassName = { SCROLLBAR_MEASURER: 'modal-scrollbar-measure', BACKDROP: 'modal-backdrop', OPEN: 'modal-open', FADE: 'fade', IN: 'in' };var Selector = { DIALOG: '.modal-dialog', DATA_TOGGLE: '[data-toggle="modal"]', DATA_DISMISS: '[data-dismiss="modal"]', FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Modal = (function () { - function Modal(element, config) { - _classCallCheck(this, Modal);this._config = this._getConfig(config);this._element = element;this._dialog = $(element).find(Selector.DIALOG)[0];this._backdrop = null;this._isShown = false;this._isBodyOverflowing = false;this._ignoreBackdropClick = false;this._originalBodyPadding = 0;this._scrollbarWidth = 0; - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Modal, [{ key: 'toggle', // public - value: function toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget); - } }, { key: 'show', value: function show(relatedTarget) { - var _this7 = this;var showEvent = $.Event(Event.SHOW, { relatedTarget: relatedTarget });$(this._element).trigger(showEvent);if (this._isShown || showEvent.isDefaultPrevented()) { - return; - }this._isShown = true;this._checkScrollbar();this._setScrollbar();$(document.body).addClass(ClassName.OPEN);this._setEscapeEvent();this._setResizeEvent();$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this));$(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { - $(_this7._element).one(Event.MOUSEUP_DISMISS, function (event) { - if ($(event.target).is(_this7._element)) { - that._ignoreBackdropClick = true; - } - }); - });this._showBackdrop($.proxy(this._showElement, this, relatedTarget)); - } }, { key: 'hide', value: function hide(event) { - if (event) { - event.preventDefault(); - }var hideEvent = $.Event(Event.HIDE);$(this._element).trigger(hideEvent);if (!this._isShown || hideEvent.isDefaultPrevented()) { - return; - }this._isShown = false;this._setEscapeEvent();this._setResizeEvent();$(document).off(Event.FOCUSIN);$(this._element).removeClass(ClassName.IN);$(this._element).off(Event.CLICK_DISMISS);$(this._dialog).off(Event.MOUSEDOWN_DISMISS);if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { - $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION); - } else { - this._hideModal(); - } - } }, { key: 'dispose', value: function dispose() { - $.removeData(this._element, DATA_KEY);$(window).off(EVENT_KEY);$(document).off(EVENT_KEY);$(this._element).off(EVENT_KEY);$(this._backdrop).off(EVENT_KEY);this._config = null;this._element = null;this._dialog = null;this._backdrop = null;this._isShown = null;this._isBodyOverflowing = null;this._ignoreBackdropClick = null;this._originalBodyPadding = null;this._scrollbarWidth = null; - } // private - }, { key: '_getConfig', value: function _getConfig(config) { - config = $.extend({}, Default, config);Util.typeCheckConfig(NAME, config, DefaultType);return config; - } }, { key: '_showElement', value: function _showElement(relatedTarget) { - var _this8 = this;var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { - // don't move modals dom position - document.body.appendChild(this._element); - }this._element.style.display = 'block';this._element.scrollTop = 0;if (transition) { - Util.reflow(this._element); - }$(this._element).addClass(ClassName.IN);if (this._config.focus) this._enforceFocus();var shownEvent = $.Event(Event.SHOWN, { relatedTarget: relatedTarget });var transitionComplete = function transitionComplete() { - if (_this8._config.focus) _this8._element.focus();$(_this8._element).trigger(shownEvent); - };if (transition) { - $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); - } else { - transitionComplete(); - } - } }, { key: '_enforceFocus', value: function _enforceFocus() { - var _this9 = this;$(document).off(Event.FOCUSIN) // guard against infinite focus loop - .on(Event.FOCUSIN, function (event) { - if (_this9._element !== event.target && !$(_this9._element).has(event.target).length) { - _this9._element.focus(); - } - }); - } }, { key: '_setEscapeEvent', value: function _setEscapeEvent() { - var _this10 = this;if (this._isShown && this._config.keyboard) { - $(this._element).on(Event.KEYDOWN_DISMISS, function (event) { - if (event.which === 27) { - _this10.hide(); - } - }); - } else if (!this._isShown) { - $(this._element).off(Event.KEYDOWN_DISMISS); - } - } }, { key: '_setResizeEvent', value: function _setResizeEvent() { - if (this._isShown) { - $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this)); - } else { - $(window).off(Event.RESIZE); - } - } }, { key: '_hideModal', value: function _hideModal() { - var _this11 = this;this._element.style.display = 'none';this._showBackdrop(function () { - $(document.body).removeClass(ClassName.OPEN);_this11._resetAdjustments();_this11._resetScrollbar();$(_this11._element).trigger(Event.HIDDEN); - }); - } }, { key: '_removeBackdrop', value: function _removeBackdrop() { - if (this._backdrop) { - $(this._backdrop).remove();this._backdrop = null; - } - } }, { key: '_showBackdrop', value: function _showBackdrop(callback) { - var _this12 = this;var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';if (this._isShown && this._config.backdrop) { - var doAnimate = Util.supportsTransitionEnd() && animate;this._backdrop = document.createElement('div');this._backdrop.className = ClassName.BACKDROP;if (animate) { - $(this._backdrop).addClass(animate); - }$(this._backdrop).appendTo(document.body);$(this._element).on(Event.CLICK_DISMISS, function (event) { - if (_this12._ignoreBackdropClick) { - _this12._ignoreBackdropClick = false;return; - }if (event.target !== event.currentTarget) { - return; - }if (_this12._config.backdrop === 'static') { - _this12._element.focus(); - } else { - _this12.hide(); - } - });if (doAnimate) { - Util.reflow(this._backdrop); - }$(this._backdrop).addClass(ClassName.IN);if (!callback) { - return; - }if (!doAnimate) { - callback();return; - }$(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); - } else if (!this._isShown && this._backdrop) { - $(this._backdrop).removeClass(ClassName.IN);var callbackRemove = function callbackRemove() { - _this12._removeBackdrop();if (callback) { - callback(); - } - };if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { - $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); - } else { - callbackRemove(); - } - } else if (callback) { - callback(); - } - } // ---------------------------------------------------------------------- - // the following methods are used to handle overflowing modals - // todo (fat): these should probably be refactored out of modal.js - // ---------------------------------------------------------------------- - }, { key: '_handleUpdate', value: function _handleUpdate() { - this._adjustDialog(); - } }, { key: '_adjustDialog', value: function _adjustDialog() { - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;if (!this._isBodyOverflowing && isModalOverflowing) { - this._element.style.paddingLeft = this._scrollbarWidth + 'px'; - }if (this._isBodyOverflowing && !isModalOverflowing) { - this._element.style.paddingRight = this._scrollbarWidth + 'px'; - } - } }, { key: '_resetAdjustments', value: function _resetAdjustments() { - this._element.style.paddingLeft = '';this._element.style.paddingRight = ''; - } }, { key: '_checkScrollbar', value: function _checkScrollbar() { - var fullWindowWidth = window.innerWidth;if (!fullWindowWidth) { - // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect();fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); - }this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth;this._scrollbarWidth = this._getScrollbarWidth(); - } }, { key: '_setScrollbar', value: function _setScrollbar() { - var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);this._originalBodyPadding = document.body.style.paddingRight || '';if (this._isBodyOverflowing) { - document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px'; - } - } }, { key: '_resetScrollbar', value: function _resetScrollbar() { - document.body.style.paddingRight = this._originalBodyPadding; - } }, { key: '_getScrollbarWidth', value: function _getScrollbarWidth() { - // thx d.walsh - var scrollDiv = document.createElement('div');scrollDiv.className = ClassName.SCROLLBAR_MEASURER;document.body.appendChild(scrollDiv);var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;document.body.removeChild(scrollDiv);return scrollbarWidth; - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config, relatedTarget) { - return this.each(function () { - var data = $(this).data(DATA_KEY);var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);if (!data) { - data = new Modal(this, _config);$(this).data(DATA_KEY, data); - }if (typeof config === 'string') { - data[config](relatedTarget); - } else if (_config.show) { - data.show(relatedTarget); - } - }); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }, { key: 'Default', get: function get() { - return Default; - } }]);return Modal; - })();$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - var _this13 = this;var target = undefined;var selector = Util.getSelectorFromElement(this);if (selector) { - target = $(selector)[0]; - }var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());if (this.tagName === 'A') { - event.preventDefault(); - }var $target = $(target).one(Event.SHOW, function (showEvent) { - if (showEvent.isDefaultPrevented()) { - // only register focus restorer if modal will actually get shown + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Alert, [{ + key: 'close', + + // public + + value: function close(element) { + element = element || this._element; + + var rootElement = this._getRootElement(element); + var customEvent = this._triggerCloseEvent(rootElement); + + if (customEvent.isDefaultPrevented()) { return; - }$target.one(Event.HIDDEN, function () { - if ($(_this13).is(':visible')) { - _this13.focus(); + } + + this._removeElement(rootElement); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + + // private + + }, { + key: '_getRootElement', + value: function _getRootElement(element) { + var parent = false; + var selector = Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + if (!parent) { + parent = $(element).closest('.' + ClassName.ALERT)[0]; + } + + return parent; + } + }, { + key: '_triggerCloseEvent', + value: function _triggerCloseEvent(element) { + var closeEvent = $.Event(Event.CLOSE); + $(element).trigger(closeEvent); + return closeEvent; + } + }, { + key: '_removeElement', + value: function _removeElement(element) { + $(element).removeClass(ClassName.IN); + + if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { + this._destroyElement(element); + return; + } + + $(element).one(Util.TRANSITION_END, this._destroyElement.bind(this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var $element = $(this); + var data = $element.data(DATA_KEY); + + if (!data) { + data = new Alert(this); + $element.data(DATA_KEY, data); + } + + if (config === 'close') { + data[config](this); } }); - });Modal._jQueryInterface.call($(target), config, this); - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Modal._jQueryInterface;$.fn[NAME].Constructor = Modal;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Modal._jQueryInterface; - };return Modal; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): scrollspy.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var ScrollSpy = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'scrollspy';var VERSION = '4.0.0';var DATA_KEY = 'bs.scrollspy';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var Default = { offset: 10, method: 'auto', target: '' };var DefaultType = { offset: 'number', method: 'string', target: '(string|element)' };var Event = { ACTIVATE: 'activate' + EVENT_KEY, SCROLL: 'scroll' + EVENT_KEY, LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY };var ClassName = { DROPDOWN_MENU: 'dropdown-menu', ACTIVE: 'active' };var Selector = { DATA_SPY: '[data-spy="scroll"]', ACTIVE: '.active', LI: 'li', LI_DROPDOWN: 'li.dropdown', NAV_ANCHORS: '.nav li > a' };var OffsetMethod = { OFFSET: 'offset', POSITION: 'position' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var ScrollSpy = (function () { - function ScrollSpy(element, config) { - _classCallCheck(this, ScrollSpy);this._element = element;this._scrollElement = element.tagName === 'BODY' ? window : element;this._config = this._getConfig(config);this._selector = this._config.target + ' ' + Selector.NAV_ANCHORS;this._offsets = [];this._targets = [];this._activeTarget = null;this._scrollHeight = 0;$(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this));this.refresh();this._process(); - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(ScrollSpy, [{ key: 'refresh', // public - value: function refresh() { - var _this14 = this;var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;this._offsets = [];this._targets = [];this._scrollHeight = this._getScrollHeight();var targets = $.makeArray($(this._selector));targets.map(function (element) { - var target = undefined;var targetSelector = Util.getSelectorFromElement(element);if (targetSelector) { - target = $(targetSelector)[0]; - }if (target && (target.offsetWidth || target.offsetHeight)) { - // todo (fat): remove sketch reliance on jQuery position/offset - return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; - } - }).filter(function (item) { - return item; - }).sort(function (a, b) { - return a[0] - b[0]; - }).forEach(function (item) { - _this14._offsets.push(item[0]);_this14._targets.push(item[1]); - }); - } }, { key: 'dispose', value: function dispose() { - $.removeData(this._element, DATA_KEY);$(this._scrollElement).off(EVENT_KEY);this._element = null;this._scrollElement = null;this._config = null;this._selector = null;this._offsets = null;this._targets = null;this._activeTarget = null;this._scrollHeight = null; - } // private - }, { key: '_getConfig', value: function _getConfig(config) { - config = $.extend({}, Default, config);if (typeof config.target !== 'string') { - var id = $(config.target).attr('id');if (!id) { - id = Util.getUID(NAME);$(config.target).attr('id', id); - }config.target = '#' + id; - }Util.typeCheckConfig(NAME, config, DefaultType);return config; - } }, { key: '_getScrollTop', value: function _getScrollTop() { - return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop; - } }, { key: '_getScrollHeight', value: function _getScrollHeight() { - return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - } }, { key: '_process', value: function _process() { - var scrollTop = this._getScrollTop() + this._config.offset;var scrollHeight = this._getScrollHeight();var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight;if (this._scrollHeight !== scrollHeight) { - this.refresh(); - }if (scrollTop >= maxScroll) { - var target = this._targets[this._targets.length - 1];if (this._activeTarget !== target) { - this._activate(target); - } - }if (this._activeTarget && scrollTop < this._offsets[0]) { - this._activeTarget = null;this._clear();return; - }for (var i = this._offsets.length; i--;) { - var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]);if (isActiveTarget) { - this._activate(this._targets[i]); - } - } - } }, { key: '_activate', value: function _activate(target) { - this._activeTarget = target;this._clear();var selector = this._selector + '[data-target="' + target + '"],' + (this._selector + '[href="' + target + '"]'); // todo (fat): getting all the raw li's up the tree is not great. - var parentListItems = $(selector).parents(Selector.LI);for (var i = parentListItems.length; i--;) { - $(parentListItems[i]).addClass(ClassName.ACTIVE);var itemParent = parentListItems[i].parentNode;if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) { - var closestDropdown = $(itemParent).closest(Selector.LI_DROPDOWN)[0];$(closestDropdown).addClass(ClassName.ACTIVE); - } - }$(this._scrollElement).trigger(Event.ACTIVATE, { relatedTarget: target }); - } }, { key: '_clear', value: function _clear() { - var activeParents = $(this._selector).parentsUntil(this._config.target, Selector.ACTIVE);for (var i = activeParents.length; i--;) { - $(activeParents[i]).removeClass(ClassName.ACTIVE); - } - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY);var _config = typeof config === 'object' && config || null;if (!data) { - data = new ScrollSpy(this, _config);$(this).data(DATA_KEY, data); - }if (typeof config === 'string') { - data[config](); - } - }); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }, { key: 'Default', get: function get() { - return Default; - } }]);return ScrollSpy; - })();$(window).on(Event.LOAD_DATA_API, function () { - var scrollSpys = $.makeArray($(Selector.DATA_SPY));for (var i = scrollSpys.length; i--;) { - var $spy = $(scrollSpys[i]);ScrollSpy._jQueryInterface.call($spy, $spy.data()); } - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = ScrollSpy._jQueryInterface;$.fn[NAME].Constructor = ScrollSpy;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return ScrollSpy._jQueryInterface; - };return ScrollSpy; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): tab.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Tab = (function ($) { + }, { + key: '_handleDismiss', + value: function _handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } + + alertInstance.close(this); + }; + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Alert; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Alert._jQueryInterface; + $.fn[NAME].Constructor = Alert; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert._jQueryInterface; + }; + + return Alert; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Button = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'button'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.button'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var ClassName = { + ACTIVE: 'active', + BUTTON: 'btn', + FOCUS: 'focus' + }; + + var Selector = { + DATA_TOGGLE_CARROT: '[data-toggle^="button"]', + DATA_TOGGLE: '[data-toggle="buttons"]', + INPUT: 'input', + ACTIVE: '.active', + BUTTON: '.btn' + }; + + var Event = { + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, + FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY) + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Button = (function () { + function Button(element) { + _classCallCheck(this, Button); + + this._element = element; + } + /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'tab';var VERSION = '4.0.0';var DATA_KEY = 'bs.tab';var EVENT_KEY = '.' + DATA_KEY;var DATA_API_KEY = '.data-api';var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 150;var Event = { HIDE: 'hide' + EVENT_KEY, HIDDEN: 'hidden' + EVENT_KEY, SHOW: 'show' + EVENT_KEY, SHOWN: 'shown' + EVENT_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY };var ClassName = { DROPDOWN_MENU: 'dropdown-menu', ACTIVE: 'active', FADE: 'fade', IN: 'in' };var Selector = { A: 'a', LI: 'li', LI_DROPDOWN: 'li.dropdown', UL: 'ul:not(.dropdown-menu)', FADE_CHILD: '> .fade', ACTIVE: '.active', ACTIVE_CHILD: '> .active', DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu > .active' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Tab = (function () { - function Tab(element) { - _classCallCheck(this, Tab);this._element = element; - } /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ // getters - _createClass(Tab, [{ key: 'show', // public - value: function show() { - var _this15 = this;if (this._element.parentNode && this._element.parentNode.nodeType == Node.ELEMENT_NODE && $(this._element).parent().hasClass(ClassName.ACTIVE)) { + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Button, [{ + key: 'toggle', + + // public + + value: function toggle() { + var triggerChangeEvent = true; + var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0]; + + if (rootElement) { + var input = $(this._element).find(Selector.INPUT)[0]; + + if (input) { + if (input.type === 'radio') { + if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) { + triggerChangeEvent = false; + } else { + var activeElement = $(rootElement).find(Selector.ACTIVE)[0]; + + if (activeElement) { + $(activeElement).removeClass(ClassName.ACTIVE); + } + } + } + + if (triggerChangeEvent) { + input.checked = !$(this._element).hasClass(ClassName.ACTIVE); + $(this._element).trigger('change'); + } + } + } else { + this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE)); + } + + if (triggerChangeEvent) { + $(this._element).toggleClass(ClassName.ACTIVE); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + data = new Button(this); + $(this).data(DATA_KEY, data); + } + + if (config === 'toggle') { + data[config](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Button; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + event.preventDefault(); + + var button = event.target; + + if (!$(button).hasClass(ClassName.BUTTON)) { + button = $(button).closest(Selector.BUTTON); + } + + Button._jQueryInterface.call($(button), 'toggle'); + }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + var button = $(event.target).closest(Selector.BUTTON)[0]; + $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Button._jQueryInterface; + $.fn[NAME].Constructor = Button; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Button._jQueryInterface; + }; + + return Button; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Carousel = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'carousel'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.carousel'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true + }; + + var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean' + }; + + var Direction = { + NEXT: 'next', + PREVIOUS: 'prev' + }; + + var Event = { + SLIDE: 'slide' + EVENT_KEY, + SLID: 'slid' + EVENT_KEY, + KEYDOWN: 'keydown' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + CAROUSEL: 'carousel', + ACTIVE: 'active', + SLIDE: 'slide', + RIGHT: 'right', + LEFT: 'left', + ITEM: 'carousel-item' + }; + + var Selector = { + ACTIVE: '.active', + ACTIVE_ITEM: '.active.carousel-item', + ITEM: '.carousel-item', + NEXT_PREV: '.next, .prev', + INDICATORS: '.carousel-indicators', + DATA_SLIDE: '[data-slide], [data-slide-to]', + DATA_RIDE: '[data-ride="carousel"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Carousel = (function () { + function Carousel(element, config) { + _classCallCheck(this, Carousel); + + this._items = null; + this._interval = null; + this._activeElement = null; + + this._isPaused = false; + this._isSliding = false; + + this._config = this._getConfig(config); + this._element = $(element)[0]; + this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]; + + this._addEventListeners(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Carousel, [{ + key: 'next', + + // public + + value: function next() { + if (!this._isSliding) { + this._slide(Direction.NEXT); + } + } + }, { + key: 'prev', + value: function prev() { + if (!this._isSliding) { + this._slide(Direction.PREVIOUS); + } + } + }, { + key: 'pause', + value: function pause(event) { + if (!event) { + this._isPaused = true; + } + + if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) { + Util.triggerTransitionEnd(this._element); + this.cycle(true); + } + + clearInterval(this._interval); + this._interval = null; + } + }, { + key: 'cycle', + value: function cycle(event) { + if (!event) { + this._isPaused = false; + } + + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + + if (this._config.interval && !this._isPaused) { + this._interval = setInterval($.proxy(this.next, this), this._config.interval); + } + } + }, { + key: 'to', + value: function to(index) { + var _this2 = this; + + this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + $(this._element).one(Event.SLID, function () { + return _this2.to(index); + }); + return; + } + + if (activeIndex == index) { + this.pause(); + this.cycle(); + return; + } + + var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS; + + this._slide(direction, this._items[index]); + } + }, { + key: 'dispose', + value: function dispose() { + $(this._element).off(EVENT_KEY); + $.removeData(this._element, DATA_KEY); + + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + if (this._config.keyboard) { + $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this)); + } + + if (this._config.pause == 'hover' && !('ontouchstart' in document.documentElement)) { + $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this)); + } + } + }, { + key: '_keydown', + value: function _keydown(event) { + event.preventDefault(); + + if (/input|textarea/i.test(event.target.tagName)) return; + + switch (event.which) { + case 37: + this.prev();break; + case 39: + this.next();break; + default: return; - }var target = undefined;var previous = undefined;var ulElement = $(this._element).closest(Selector.UL)[0];var selector = Util.getSelectorFromElement(this._element);if (ulElement) { - previous = $.makeArray($(ulElement).find(Selector.ACTIVE));previous = previous[previous.length - 1];if (previous) { - previous = $(previous).find(Selector.A)[0]; - } - }var hideEvent = $.Event(Event.HIDE, { relatedTarget: this._element });var showEvent = $.Event(Event.SHOW, { relatedTarget: previous });if (previous) { - $(previous).trigger(hideEvent); - }$(this._element).trigger(showEvent);if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { + } + } + }, { + key: '_getItemIndex', + value: function _getItemIndex(element) { + this._items = $.makeArray($(element).parent().find(Selector.ITEM)); + return this._items.indexOf(element); + } + }, { + key: '_getItemByDirection', + value: function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREVIOUS; + var activeIndex = this._getItemIndex(activeElement); + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex == lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } + + var delta = direction == Direction.PREVIOUS ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; + + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + } + }, { + key: '_triggerSlideEvent', + value: function _triggerSlideEvent(relatedTarget, directionalClassname) { + var slideEvent = $.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: directionalClassname + }); + + $(this._element).trigger(slideEvent); + + return slideEvent; + } + }, { + key: '_setActiveIndicatorElement', + value: function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + + if (nextIndicator) { + $(nextIndicator).addClass(ClassName.ACTIVE); + } + } + } + }, { + key: '_slide', + value: function _slide(direction, element) { + var _this3 = this; + + var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var isCycling = !!this._interval; + + var directionalClassName = direction == Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT; + + if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false; + return; + } + + var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName); + if (slideEvent.isDefaultPrevented()) { + return; + } + + if (!activeElement || !nextElement) { + // some weirdness is happening, so we bail + return; + } + + this._isSliding = true; + + if (isCycling) { + this.pause(); + } + + this._setActiveIndicatorElement(nextElement); + + var slidEvent = $.Event(Event.SLID, { + relatedTarget: nextElement, + direction: directionalClassName + }); + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { + + $(nextElement).addClass(direction); + + Util.reflow(nextElement); + + $(activeElement).addClass(directionalClassName); + $(nextElement).addClass(directionalClassName); + + $(activeElement).one(Util.TRANSITION_END, function () { + $(nextElement).removeClass(directionalClassName).removeClass(direction); + + $(nextElement).addClass(ClassName.ACTIVE); + + $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName); + + _this3._isSliding = false; + + setTimeout(function () { + return $(_this3._element).trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + $(activeElement).removeClass(ClassName.ACTIVE); + $(nextElement).addClass(ClassName.ACTIVE); + + this._isSliding = false; + $(this._element).trigger(slidEvent); + } + + if (isCycling) { + this.cycle(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Default, $(this).data()); + + if (typeof config === 'object') { + $.extend(_config, config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config == 'number') { + data.to(config); + } else if (action) { + data[action](); + } else if (_config.interval) { + data.pause(); + data.cycle(); + } + }); + } + }, { + key: '_dataApiClickHandler', + value: function _dataApiClickHandler(event) { + var selector = Util.getSelectorFromElement(this); + + if (!selector) { + return; + } + + var target = $(selector)[0]; + + if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { + return; + } + + var config = $.extend({}, $(target).data(), $(this).data()); + + var slideIndex = this.getAttribute('data-slide-to'); + if (slideIndex) { + config.interval = false; + } + + Carousel._jQueryInterface.call($(target), config); + + if (slideIndex) { + $(target).data(DATA_KEY).to(slideIndex); + } + + event.preventDefault(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Carousel; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); + + $(window).on(Event.LOAD_DATA_API, function () { + $(Selector.DATA_RIDE).each(function () { + var $carousel = $(this); + Carousel._jQueryInterface.call($carousel, $carousel.data()); + }); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Carousel._jQueryInterface; + $.fn[NAME].Constructor = Carousel; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Carousel._jQueryInterface; + }; + + return Carousel; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Collapse = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'collapse'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.collapse'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + toggle: true, + parent: '' + }; + + var DefaultType = { + toggle: 'boolean', + parent: 'string' + }; + + var Event = { + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + IN: 'in', + COLLAPSE: 'collapse', + COLLAPSING: 'collapsing', + COLLAPSED: 'collapsed' + }; + + var Dimension = { + WIDTH: 'width', + HEIGHT: 'height' + }; + + var Selector = { + ACTIVES: '.panel > .in, .panel > .collapsing', + DATA_TOGGLE: '[data-toggle="collapse"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Collapse = (function () { + function Collapse(element, config) { + _classCallCheck(this, Collapse); + + this._isTransitioning = false; + this._element = element; + this._config = this._getConfig(config); + this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); + + this._parent = this._config.parent ? this._getParent() : null; + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); + } + + if (this._config.toggle) { + this.toggle(); + } + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Collapse, [{ + key: 'toggle', + + // public + + value: function toggle() { + if ($(this._element).hasClass(ClassName.IN)) { + this.hide(); + } else { + this.show(); + } + } + }, { + key: 'show', + value: function show() { + var _this4 = this; + + if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) { + return; + } + + var actives = undefined; + var activesData = undefined; + + if (this._parent) { + actives = $.makeArray($(Selector.ACTIVES)); + if (!actives.length) { + actives = null; + } + } + + if (actives) { + activesData = $(actives).data(DATA_KEY); + if (activesData && activesData._isTransitioning) { return; - }if (selector) { - target = $(selector)[0]; - }this._activate($(this._element).closest(Selector.LI)[0], ulElement);var complete = function complete() { - var hiddenEvent = $.Event(Event.HIDDEN, { relatedTarget: _this15._element });var shownEvent = $.Event(Event.SHOWN, { relatedTarget: previous });$(previous).trigger(hiddenEvent);$(_this15._element).trigger(shownEvent); - };if (target) { - this._activate(target, target.parentNode, complete); - } else { - complete(); } - } }, { key: 'dispose', value: function dispose() { - $.removeClass(this._element, DATA_KEY);this._element = null; - } // private - }, { key: '_activate', value: function _activate(element, container, callback) { - var active = $(container).find(Selector.ACTIVE_CHILD)[0];var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || !!$(container).find(Selector.FADE_CHILD)[0]);var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback);if (active && isTransitioning) { - $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); - } else { - complete(); - }if (active) { - $(active).removeClass(ClassName.IN); + } + + var startEvent = $.Event(Event.SHOW); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } + + if (actives) { + Collapse._jQueryInterface.call($(actives), 'hide'); + if (!activesData) { + $(actives).data(DATA_KEY, null); } - } }, { key: '_transitionComplete', value: function _transitionComplete(element, active, isTransitioning, callback) { - if (active) { - $(active).removeClass(ClassName.ACTIVE);var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];if (dropdownChild) { - $(dropdownChild).removeClass(ClassName.ACTIVE); - }var activeToggle = $(active).find(Selector.DATA_TOGGLE)[0];if (activeToggle) { - activeToggle.setAttribute('aria-expanded', false); - } - }$(element).addClass(ClassName.ACTIVE);var elementToggle = $(element).find(Selector.DATA_TOGGLE)[0];if (elementToggle) { - elementToggle.setAttribute('aria-expanded', true); - }if (isTransitioning) { - Util.reflow(element);$(element).addClass(ClassName.IN); - } else { - $(element).removeClass(ClassName.FADE); - }if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { - var dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0];if (dropdownElement) { - $(dropdownElement).addClass(ClassName.ACTIVE); - }elementToggle = $(element).find(Selector.DATA_TOGGLE)[0];if (elementToggle) { - elementToggle.setAttribute('aria-expanded', true); - } - }if (callback) { - callback(); + } + + var dimension = this._getDimension(); + + $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); + + this._element.style[dimension] = 0; + this._element.setAttribute('aria-expanded', true); + + if (this._triggerArray.length) { + $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); + } + + this.setTransitioning(true); + + var complete = function complete() { + $(_this4._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN); + + _this4._element.style[dimension] = ''; + + _this4.setTransitioning(false); + + $(_this4._element).trigger(Event.SHOWN); + }; + + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } + + var scrollSize = 'scroll' + (dimension[0].toUpperCase() + dimension.slice(1)); + + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + + this._element.style[dimension] = this._element[scrollSize] + 'px'; + } + }, { + key: 'hide', + value: function hide() { + var _this5 = this; + + if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) { + return; + } + + var startEvent = $.Event(Event.HIDE); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } + + var dimension = this._getDimension(); + var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight'; + + this._element.style[dimension] = this._element[offsetDimension] + 'px'; + + Util.reflow(this._element); + + $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN); + + this._element.setAttribute('aria-expanded', false); + + if (this._triggerArray.length) { + $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); + } + + this.setTransitioning(true); + + var complete = function complete() { + _this5.setTransitioning(false); + $(_this5._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); + }; + + this._element.style[dimension] = 0; + + if (!Util.supportsTransitionEnd()) { + return complete(); + } + + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: 'setTransitioning', + value: function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + this._config = null; + this._parent = null; + this._element = null; + this._triggerArray = null; + this._isTransitioning = null; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = !!config.toggle; // coerce string values + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_getDimension', + value: function _getDimension() { + var hasWidth = $(this._element).hasClass(Dimension.WIDTH); + return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; + } + }, { + key: '_getParent', + value: function _getParent() { + var _this6 = this; + + var parent = $(this._config.parent)[0]; + var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]'; + + $(parent).find(selector).each(function (i, element) { + _this6._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + }); + + return parent; + } + }, { + key: '_addAriaAndCollapsedClass', + value: function _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + var isOpen = $(element).hasClass(ClassName.IN); + element.setAttribute('aria-expanded', isOpen); + + if (triggerArray.length) { + $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); } - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var $this = $(this);var data = $this.data(DATA_KEY);if (!data) { - data = data = new Tab(this);$this.data(DATA_KEY, data); - }if (typeof config === 'string') { - data[config](); + } + } + + // static + + }], [{ + key: '_getTargetFromElement', + value: function _getTargetFromElement(element) { + var selector = Util.getSelectorFromElement(element); + return selector ? $(selector)[0] : null; + } + }, { + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config); + + if (!data && _config.toggle && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(this, _config); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Collapse; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + + var target = Collapse._getTargetFromElement(this); + + var data = $(target).data(DATA_KEY); + var config = data ? 'toggle' : $(this).data(); + + Collapse._jQueryInterface.call($(target), config); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Collapse._jQueryInterface; + $.fn[NAME].Constructor = Collapse; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Collapse._jQueryInterface; + }; + + return Collapse; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Dropdown = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'dropdown'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.dropdown'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, + KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + BACKDROP: 'dropdown-backdrop', + DISABLED: 'disabled', + OPEN: 'open' + }; + + var Selector = { + BACKDROP: '.dropdown-backdrop', + DATA_TOGGLE: '[data-toggle="dropdown"]', + FORM_CHILD: '.dropdown form', + ROLE_MENU: '[role="menu"]', + ROLE_LISTBOX: '[role="listbox"]', + NAVBAR_NAV: '.navbar-nav', + VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Dropdown = (function () { + function Dropdown(element) { + _classCallCheck(this, Dropdown); + + this._element = element; + + this._addEventListeners(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Dropdown, [{ + key: 'toggle', + + // public + + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + Dropdown._clearMenus(); + + if (isActive) { + return false; + } + + if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) { + + // if mobile we use a backdrop because click events don't delegate + var dropdown = document.createElement('div'); + dropdown.className = ClassName.BACKDROP; + $(dropdown).insertBefore(this); + $(dropdown).on('click', Dropdown._clearMenus); + } + + var relatedTarget = { relatedTarget: this }; + var showEvent = $.Event(Event.SHOW, relatedTarget); + + $(parent).trigger(showEvent); + + if (showEvent.isDefaultPrevented()) { + return; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger($.Event(Event.SHOWN, relatedTarget)); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + + // private + + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + $(this).data(DATA_KEY, data = new Dropdown(this)); + } + + if (typeof config === 'string') { + data[config].call(this); + } + }); + } + }, { + key: '_clearMenus', + value: function _clearMenus(event) { + if (event && event.which === 3) { + return; + } + + var backdrop = $(Selector.BACKDROP)[0]; + if (backdrop) { + backdrop.parentNode.removeChild(backdrop); + } + + var toggles = $.makeArray($(Selector.DATA_TOGGLE)); + + for (var i = 0; i < toggles.length; i++) { + var _parent = Dropdown._getParentFromElement(toggles[i]); + var relatedTarget = { relatedTarget: toggles[i] }; + + if (!$(_parent).hasClass(ClassName.OPEN)) { + continue; + } + + if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) { + continue; + } + + var hideEvent = $.Event(Event.HIDE, relatedTarget); + $(_parent).trigger(hideEvent); + if (hideEvent.isDefaultPrevented()) { + continue; + } + + toggles[i].setAttribute('aria-expanded', 'false'); + + $(_parent).removeClass(ClassName.OPEN).trigger($.Event(Event.HIDDEN, relatedTarget)); + } + } + }, { + key: '_getParentFromElement', + value: function _getParentFromElement(element) { + var parent = undefined; + var selector = Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + return parent || element.parentNode; + } + }, { + key: '_dataApiKeydownHandler', + value: function _dataApiKeydownHandler(event) { + if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + if (!isActive && event.which !== 27 || isActive && event.which === 27) { + + if (event.which === 27) { + var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; + $(toggle).trigger('focus'); + } + + $(this).trigger('click'); + return; + } + + var items = $.makeArray($(Selector.VISIBLE_ITEMS)); + + items = items.filter(function (item) { + return item.offsetWidth || item.offsetHeight; + }); + + if (!items.length) { + return; + } + + var index = items.indexOf(event.target); + + if (event.which === 38 && index > 0) index--; // up + if (event.which === 40 && index < items.length - 1) index++; // down + if (! ~index) index = 0; + + items[index].focus(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Dropdown; + })(); + + $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + e.stopPropagation(); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Dropdown._jQueryInterface; + $.fn[NAME].Constructor = Dropdown; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Dropdown._jQueryInterface; + }; + + return Dropdown; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Modal = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'modal'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.modal'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 300; + var BACKDROP_TRANSITION_DURATION = 150; + + var Default = { + backdrop: true, + keyboard: true, + focus: true, + show: true + }; + + var DefaultType = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + RESIZE: 'resize' + EVENT_KEY, + CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, + KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, + MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, + MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + SCROLLBAR_MEASURER: 'modal-scrollbar-measure', + BACKDROP: 'modal-backdrop', + OPEN: 'modal-open', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + DIALOG: '.modal-dialog', + DATA_TOGGLE: '[data-toggle="modal"]', + DATA_DISMISS: '[data-dismiss="modal"]', + FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Modal = (function () { + function Modal(element, config) { + _classCallCheck(this, Modal); + + this._config = this._getConfig(config); + this._element = element; + this._dialog = $(element).find(Selector.DIALOG)[0]; + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._originalBodyPadding = 0; + this._scrollbarWidth = 0; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Modal, [{ + key: 'toggle', + + // public + + value: function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + }, { + key: 'show', + value: function show(relatedTarget) { + var _this7 = this; + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: relatedTarget + }); + + $(this._element).trigger(showEvent); + + if (this._isShown || showEvent.isDefaultPrevented()) { + return; + } + + this._isShown = true; + + this._checkScrollbar(); + this._setScrollbar(); + + $(document.body).addClass(ClassName.OPEN); + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this)); + + $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { + $(_this7._element).one(Event.MOUSEUP_DISMISS, function (event) { + if ($(event.target).is(_this7._element)) { + that._ignoreBackdropClick = true; } }); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }]);return Tab; - })();$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - event.preventDefault();Tab._jQueryInterface.call($(this), 'show'); - }); /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */$.fn[NAME] = Tab._jQueryInterface;$.fn[NAME].Constructor = Tab;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Tab._jQueryInterface; - };return Tab; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): tooltip.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Tooltip = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'tooltip';var VERSION = '4.0.0';var DATA_KEY = 'bs.tooltip';var EVENT_KEY = '.' + DATA_KEY;var JQUERY_NO_CONFLICT = $.fn[NAME];var TRANSITION_DURATION = 150;var CLASS_PREFIX = 'bs-tether';var Default = { animation: true, template: '', trigger: 'hover focus', title: '', delay: 0, html: false, selector: false, placement: 'top', offset: '0 0', constraints: [] };var DefaultType = { animation: 'boolean', template: 'string', title: '(string|function)', trigger: 'string', delay: '(number|object)', html: 'boolean', selector: '(string|boolean)', placement: '(string|function)', offset: 'string', constraints: 'array' };var AttachmentMap = { TOP: 'bottom center', RIGHT: 'middle left', BOTTOM: 'top center', LEFT: 'middle right' };var HoverState = { IN: 'in', OUT: 'out' };var Event = { HIDE: 'hide' + EVENT_KEY, HIDDEN: 'hidden' + EVENT_KEY, SHOW: 'show' + EVENT_KEY, SHOWN: 'shown' + EVENT_KEY, INSERTED: 'inserted' + EVENT_KEY, CLICK: 'click' + EVENT_KEY, FOCUSIN: 'focusin' + EVENT_KEY, FOCUSOUT: 'focusout' + EVENT_KEY, MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSELEAVE: 'mouseleave' + EVENT_KEY };var ClassName = { FADE: 'fade', IN: 'in' };var Selector = { TOOLTIP: '.tooltip', TOOLTIP_INNER: '.tooltip-inner' };var TetherClass = { element: false, enabled: false };var Trigger = { HOVER: 'hover', FOCUS: 'focus', CLICK: 'click', MANUAL: 'manual' }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Tooltip = (function () { - function Tooltip(element, config) { - _classCallCheck(this, Tooltip); // private - this._isEnabled = true;this._timeout = 0;this._hoverState = '';this._activeTrigger = {};this._tether = null; // protected - this.element = element;this.config = this._getConfig(config);this.tip = null;this._setListeners(); - } /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ // getters - _createClass(Tooltip, [{ key: 'enable', // public - value: function enable() { - this._isEnabled = true; - } }, { key: 'disable', value: function disable() { - this._isEnabled = false; - } }, { key: 'toggleEnabled', value: function toggleEnabled() { - this._isEnabled = !this._isEnabled; - } }, { key: 'toggle', value: function toggle(event) { - var context = this;var dataKey = this.constructor.DATA_KEY;if (event) { - context = $(event.currentTarget).data(dataKey);if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig());$(event.currentTarget).data(dataKey, context); - }context._activeTrigger.click = !context._activeTrigger.click;if (context._isWithActiveTrigger()) { - context._enter(null, context); - } else { - context._leave(null, context); + }); + + this._showBackdrop($.proxy(this._showElement, this, relatedTarget)); + } + }, { + key: 'hide', + value: function hide(event) { + if (event) { + event.preventDefault(); + } + + var hideEvent = $.Event(Event.HIDE); + + $(this._element).trigger(hideEvent); + + if (!this._isShown || hideEvent.isDefaultPrevented()) { + return; + } + + this._isShown = false; + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(document).off(Event.FOCUSIN); + + $(this._element).removeClass(ClassName.IN); + + $(this._element).off(Event.CLICK_DISMISS); + $(this._dialog).off(Event.MOUSEDOWN_DISMISS); + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + + $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION); + } else { + this._hideModal(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + $(window).off(EVENT_KEY); + $(document).off(EVENT_KEY); + $(this._element).off(EVENT_KEY); + $(this._backdrop).off(EVENT_KEY); + + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._originalBodyPadding = null; + this._scrollbarWidth = null; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_showElement', + value: function _showElement(relatedTarget) { + var _this8 = this; + + var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // don't move modals dom position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + this._element.scrollTop = 0; + + if (transition) { + Util.reflow(this._element); + } + + $(this._element).addClass(ClassName.IN); + + if (this._config.focus) this._enforceFocus(); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: relatedTarget + }); + + var transitionComplete = function transitionComplete() { + if (_this8._config.focus) _this8._element.focus(); + $(_this8._element).trigger(shownEvent); + }; + + if (transition) { + $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + transitionComplete(); + } + } + }, { + key: '_enforceFocus', + value: function _enforceFocus() { + var _this9 = this; + + $(document).off(Event.FOCUSIN) // guard against infinite focus loop + .on(Event.FOCUSIN, function (event) { + if (_this9._element !== event.target && !$(_this9._element).has(event.target).length) { + _this9._element.focus(); + } + }); + } + }, { + key: '_setEscapeEvent', + value: function _setEscapeEvent() { + var _this10 = this; + + if (this._isShown && this._config.keyboard) { + $(this._element).on(Event.KEYDOWN_DISMISS, function (event) { + if (event.which === 27) { + _this10.hide(); } - } else { - $(context.getTipElement()).hasClass(ClassName.IN) ? context._leave(null, context) : context._enter(null, context); + }); + } else if (!this._isShown) { + $(this._element).off(Event.KEYDOWN_DISMISS); + } + } + }, { + key: '_setResizeEvent', + value: function _setResizeEvent() { + if (this._isShown) { + $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this)); + } else { + $(window).off(Event.RESIZE); + } + } + }, { + key: '_hideModal', + value: function _hideModal() { + var _this11 = this; + + this._element.style.display = 'none'; + this._showBackdrop(function () { + $(document.body).removeClass(ClassName.OPEN); + _this11._resetAdjustments(); + _this11._resetScrollbar(); + $(_this11._element).trigger(Event.HIDDEN); + }); + } + }, { + key: '_removeBackdrop', + value: function _removeBackdrop() { + if (this._backdrop) { + $(this._backdrop).remove(); + this._backdrop = null; + } + } + }, { + key: '_showBackdrop', + value: function _showBackdrop(callback) { + var _this12 = this; + + var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; + + if (this._isShown && this._config.backdrop) { + var doAnimate = Util.supportsTransitionEnd() && animate; + + this._backdrop = document.createElement('div'); + this._backdrop.className = ClassName.BACKDROP; + + if (animate) { + $(this._backdrop).addClass(animate); } - } }, { key: 'dispose', value: function dispose() { - clearTimeout(this._timeout);this.cleanupTether();$.removeData(this.element, this.constructor.DATA_KEY);$(this.element).off(this.constructor.EVENT_KEY);if (this.tip) { - $(this.tip).remove(); - }this._isEnabled = null;this._timeout = null;this._hoverState = null;this._activeTrigger = null;this._tether = null;this.element = null;this.config = null;this.tip = null; - } }, { key: 'show', value: function show() { - var _this16 = this;var showEvent = $.Event(this.constructor.Event.SHOW);if (this.isWithContent() && this._isEnabled) { - $(this.element).trigger(showEvent);var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);if (showEvent.isDefaultPrevented() || !isInTheDom) { + + $(this._backdrop).appendTo(document.body); + + $(this._element).on(Event.CLICK_DISMISS, function (event) { + if (_this12._ignoreBackdropClick) { + _this12._ignoreBackdropClick = false; return; - }var tip = this.getTipElement();var tipId = Util.getUID(this.constructor.NAME);tip.setAttribute('id', tipId);this.element.setAttribute('aria-describedby', tipId);this.setContent();if (this.config.animation) { - $(tip).addClass(ClassName.FADE); - }var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;var attachment = this._getAttachment(placement);$(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body);$(this.element).trigger(this.constructor.Event.INSERTED);this._tether = new Tether({ element: tip, target: this.element, attachment: attachment, classes: TetherClass, classPrefix: CLASS_PREFIX, offset: this.config.offset, constraints: this.config.constraints });Util.reflow(tip);this._tether.position();$(tip).addClass(ClassName.IN);var complete = function complete() { - var prevHoverState = _this16._hoverState;_this16._hoverState = null;$(_this16.element).trigger(_this16.constructor.Event.SHOWN);if (prevHoverState === HoverState.OUT) { - _this16._leave(null, _this16); - } - };Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ? $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION) : complete(); + } + if (event.target !== event.currentTarget) { + return; + } + if (_this12._config.backdrop === 'static') { + _this12._element.focus(); + } else { + _this12.hide(); + } + }); + + if (doAnimate) { + Util.reflow(this._backdrop); } - } }, { key: 'hide', value: function hide(callback) { - var _this17 = this;var tip = this.getTipElement();var hideEvent = $.Event(this.constructor.Event.HIDE);var complete = function complete() { - if (_this17._hoverState !== HoverState.IN && tip.parentNode) { - tip.parentNode.removeChild(tip); - }_this17.element.removeAttribute('aria-describedby');$(_this17.element).trigger(_this17.constructor.Event.HIDDEN);_this17.cleanupTether();if (callback) { + + $(this._backdrop).addClass(ClassName.IN); + + if (!callback) { + return; + } + + if (!doAnimate) { + callback(); + return; + } + + $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else if (!this._isShown && this._backdrop) { + $(this._backdrop).removeClass(ClassName.IN); + + var callbackRemove = function callbackRemove() { + _this12._removeBackdrop(); + if (callback) { callback(); } - };$(this.element).trigger(hideEvent);if (hideEvent.isDefaultPrevented()) { - return; - }$(tip).removeClass(ClassName.IN);if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { - $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + }; + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); } else { - complete(); - }this._hoverState = ''; - } // protected - }, { key: 'isWithContent', value: function isWithContent() { - return !!this.getTitle(); - } }, { key: 'getTipElement', value: function getTipElement() { - return this.tip = this.tip || $(this.config.template)[0]; - } }, { key: 'setContent', value: function setContent() { - var tip = this.getTipElement();var title = this.getTitle();var method = this.config.html ? 'innerHTML' : 'innerText';$(tip).find(Selector.TOOLTIP_INNER)[0][method] = title;$(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN);this.cleanupTether(); - } }, { key: 'getTitle', value: function getTitle() { - var title = this.element.getAttribute('data-original-title');if (!title) { - title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; - }return title; - } }, { key: 'cleanupTether', value: function cleanupTether() { - if (this._tether) { - this._tether.destroy(); // clean up after tether's junk classes - // remove after they fix issue - // (https://github.com/HubSpot/tether/issues/36) - $(this.element).removeClass(this._removeTetherClasses);$(this.tip).removeClass(this._removeTetherClasses); + callbackRemove(); } - } // private - }, { key: '_getAttachment', value: function _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()]; - } }, { key: '_setListeners', value: function _setListeners() { - var _this18 = this;var triggers = this.config.trigger.split(' ');triggers.forEach(function (trigger) { - if (trigger === 'click') { - $(_this18.element).on(_this18.constructor.Event.CLICK, _this18.config.selector, $.proxy(_this18.toggle, _this18)); - } else if (trigger !== Trigger.MANUAL) { - var eventIn = trigger == Trigger.HOVER ? _this18.constructor.Event.MOUSEENTER : _this18.constructor.Event.FOCUSIN;var eventOut = trigger == Trigger.HOVER ? _this18.constructor.Event.MOUSELEAVE : _this18.constructor.Event.FOCUSOUT;$(_this18.element).on(eventIn, _this18.config.selector, $.proxy(_this18._enter, _this18)).on(eventOut, _this18.config.selector, $.proxy(_this18._leave, _this18)); - } - });if (this.config.selector) { - this.config = $.extend({}, this.config, { trigger: 'manual', selector: '' }); - } else { - this._fixTitle(); + } else if (callback) { + callback(); + } + } + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + }, { + key: '_handleUpdate', + value: function _handleUpdate() { + this._adjustDialog(); + } + }, { + key: '_adjustDialog', + value: function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + 'px'; + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetAdjustments', + value: function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + } + }, { + key: '_checkScrollbar', + value: function _checkScrollbar() { + var fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { + // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + } + }, { + key: '_setScrollbar', + value: function _setScrollbar() { + var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10); + + this._originalBodyPadding = document.body.style.paddingRight || ''; + + if (this._isBodyOverflowing) { + document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetScrollbar', + value: function _resetScrollbar() { + document.body.style.paddingRight = this._originalBodyPadding; + } + }, { + key: '_getScrollbarWidth', + value: function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = ClassName.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config); + + if (!data) { + data = new Modal(this, _config); + $(this).data(DATA_KEY, data); } - } }, { key: '_removeTetherClasses', value: function _removeTetherClasses(i, css) { - return ((css.baseVal || css).match(new RegExp('(^|\\s)' + CLASS_PREFIX + '-\\S+', 'g')) || []).join(' '); - } }, { key: '_fixTitle', value: function _fixTitle() { - var titleType = typeof this.element.getAttribute('data-original-title');if (this.element.getAttribute('title') || titleType !== 'string') { - this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');this.element.setAttribute('title', ''); + + if (typeof config === 'string') { + data[config](relatedTarget); + } else if (_config.show) { + data.show(relatedTarget); } - } }, { key: '_enter', value: function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY;context = context || $(event.currentTarget).data(dataKey);if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig());$(event.currentTarget).data(dataKey, context); - }if (event) { - context._activeTrigger[event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; - }if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) { - context._hoverState = HoverState.IN;return; - }clearTimeout(context._timeout);context._hoverState = HoverState.IN;if (!context.config.delay || !context.config.delay.show) { - context.show();return; - }context._timeout = setTimeout(function () { - if (context._hoverState === HoverState.IN) { - context.show(); - } - }, context.config.delay.show); - } }, { key: '_leave', value: function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY;context = context || $(event.currentTarget).data(dataKey);if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig());$(event.currentTarget).data(dataKey, context); - }if (event) { - context._activeTrigger[event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; - }if (context._isWithActiveTrigger()) { - return; - }clearTimeout(context._timeout);context._hoverState = HoverState.OUT;if (!context.config.delay || !context.config.delay.hide) { - context.hide();return; - }context._timeout = setTimeout(function () { - if (context._hoverState === HoverState.OUT) { - context.hide(); - } - }, context.config.delay.hide); - } }, { key: '_isWithActiveTrigger', value: function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true; - } - }return false; - } }, { key: '_getConfig', value: function _getConfig(config) { - config = $.extend({}, this.constructor.Default, $(this.element).data(), config);if (config.delay && typeof config.delay === 'number') { - config.delay = { show: config.delay, hide: config.delay }; - }Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);return config; - } }, { key: '_getDelegateConfig', value: function _getDelegateConfig() { - var config = {};if (this.config) { - for (var key in this.config) { - var value = this.config[key];if (this.constructor.Default[key] !== value) { - config[key] = value; - } - } - }return config; - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY);var _config = typeof config === 'object' ? config : null;if (!data && /destroy|hide/.test(config)) { - return; - }if (!data) { - data = new Tooltip(this, _config);$(this).data(DATA_KEY, data); - }if (typeof config === 'string') { - data[config](); - } - }); - } }, { key: 'VERSION', get: function get() { - return VERSION; - } }, { key: 'Default', get: function get() { - return Default; - } }, { key: 'NAME', get: function get() { - return NAME; - } }, { key: 'DATA_KEY', get: function get() { - return DATA_KEY; - } }, { key: 'Event', get: function get() { - return Event; - } }, { key: 'EVENT_KEY', get: function get() { - return EVENT_KEY; - } }, { key: 'DefaultType', get: function get() { - return DefaultType; - } }]);return Tooltip; - })();$.fn[NAME] = Tooltip._jQueryInterface;$.fn[NAME].Constructor = Tooltip;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Tooltip._jQueryInterface; - };return Tooltip; - })(jQuery); /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0): popover.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */var Popover = (function ($) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */var NAME = 'popover';var VERSION = '4.0.0';var DATA_KEY = 'bs.popover';var EVENT_KEY = '.' + DATA_KEY;var JQUERY_NO_CONFLICT = $.fn[NAME];var Default = $.extend({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', template: '' });var DefaultType = $.extend({}, Tooltip.DefaultType, { content: '(string|function)' });var ClassName = { FADE: 'fade', IN: 'in' };var Selector = { TITLE: '.popover-title', CONTENT: '.popover-content', ARROW: '.popover-arrow' };var Event = { HIDE: 'hide' + EVENT_KEY, HIDDEN: 'hidden' + EVENT_KEY, SHOW: 'show' + EVENT_KEY, SHOWN: 'shown' + EVENT_KEY, INSERTED: 'inserted' + EVENT_KEY, CLICK: 'click' + EVENT_KEY, FOCUSIN: 'focusin' + EVENT_KEY, FOCUSOUT: 'focusout' + EVENT_KEY, MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSELEAVE: 'mouseleave' + EVENT_KEY }; /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */var Popover = (function (_Tooltip) { - _inherits(Popover, _Tooltip);function Popover() { - _classCallCheck(this, Popover);_get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments); - } /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */_createClass(Popover, [{ key: 'isWithContent', // overrides - value: function isWithContent() { - return this.getTitle() || this._getContent(); - } }, { key: 'getTipElement', value: function getTipElement() { - return this.tip = this.tip || $(this.config.template)[0]; - } }, { key: 'setContent', value: function setContent() { - var tip = this.getTipElement();var title = this.getTitle();var content = this._getContent();var titleElement = $(tip).find(Selector.TITLE)[0];if (titleElement) { - titleElement[this.config.html ? 'innerHTML' : 'innerText'] = title; - } // we use append for html objects to maintain js events - $(tip).find(Selector.CONTENT).children().detach().end()[this.config.html ? typeof content === 'string' ? 'html' : 'append' : 'text'](content);$(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN);this.cleanupTether(); - } // private - }, { key: '_getContent', value: function _getContent() { - return this.element.getAttribute('data-content') || (typeof this.config.content == 'function' ? this.config.content.call(this.element) : this.config.content); - } // static - }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY);var _config = typeof config === 'object' ? config : null;if (!data && /destroy|hide/.test(config)) { - return; - }if (!data) { - data = new Popover(this, _config);$(this).data(DATA_KEY, data); - }if (typeof config === 'string') { - data[config](); - } - }); - } }, { key: 'VERSION', // getters - get: function get() { - return VERSION; - } }, { key: 'Default', get: function get() { - return Default; - } }, { key: 'NAME', get: function get() { - return NAME; - } }, { key: 'DATA_KEY', get: function get() { - return DATA_KEY; - } }, { key: 'Event', get: function get() { - return Event; - } }, { key: 'EVENT_KEY', get: function get() { - return EVENT_KEY; - } }, { key: 'DefaultType', get: function get() { - return DefaultType; - } }]);return Popover; - })(Tooltip);$.fn[NAME] = Popover._jQueryInterface;$.fn[NAME].Constructor = Popover;$.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT;return Popover._jQueryInterface; - };return Popover; - })(jQuery); + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Modal; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + var _this13 = this; + + var target = undefined; + var selector = Util.getSelectorFromElement(this); + + if (selector) { + target = $(selector)[0]; + } + + var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data()); + + if (this.tagName === 'A') { + event.preventDefault(); + } + + var $target = $(target).one(Event.SHOW, function (showEvent) { + if (showEvent.isDefaultPrevented()) { + // only register focus restorer if modal will actually get shown + return; + } + + $target.one(Event.HIDDEN, function () { + if ($(_this13).is(':visible')) { + _this13.focus(); + } + }); + }); + + Modal._jQueryInterface.call($(target), config, this); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Modal._jQueryInterface; + $.fn[NAME].Constructor = Modal; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Modal._jQueryInterface; + }; + + return Modal; })(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var ScrollSpy = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'scrollspy'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.scrollspy'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Default = { + offset: 10, + method: 'auto', + target: '' + }; + + var DefaultType = { + offset: 'number', + method: 'string', + target: '(string|element)' + }; + + var Event = { + ACTIVATE: 'activate' + EVENT_KEY, + SCROLL: 'scroll' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active' + }; + + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_ANCHORS: '.nav li > a' + }; + + var OffsetMethod = { + OFFSET: 'offset', + POSITION: 'position' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var ScrollSpy = (function () { + function ScrollSpy(element, config) { + _classCallCheck(this, ScrollSpy); + + this._element = element; + this._scrollElement = element.tagName === 'BODY' ? window : element; + this._config = this._getConfig(config); + this._selector = this._config.target + ' ' + Selector.NAV_ANCHORS; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(ScrollSpy, [{ + key: 'refresh', + + // public + + value: function refresh() { + var _this14 = this; + + var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; + + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + + var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; + + this._offsets = []; + this._targets = []; + + this._scrollHeight = this._getScrollHeight(); + + var targets = $.makeArray($(this._selector)); + + targets.map(function (element) { + var target = undefined; + var targetSelector = Util.getSelectorFromElement(element); + + if (targetSelector) { + target = $(targetSelector)[0]; + } + + if (target && (target.offsetWidth || target.offsetHeight)) { + // todo (fat): remove sketch reliance on jQuery position/offset + return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + } + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this14._offsets.push(item[0]); + _this14._targets.push(item[1]); + }); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._scrollElement).off(EVENT_KEY); + + this._element = null; + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + + if (typeof config.target !== 'string') { + var id = $(config.target).attr('id'); + if (!id) { + id = Util.getUID(NAME); + $(config.target).attr('id', id); + } + config.target = '#' + id; + } + + Util.typeCheckConfig(NAME, config, DefaultType); + + return config; + } + }, { + key: '_getScrollTop', + value: function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop; + } + }, { + key: '_getScrollHeight', + value: function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + } + }, { + key: '_process', + value: function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + var scrollHeight = this._getScrollHeight(); + var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight; + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + } + + if (this._activeTarget && scrollTop < this._offsets[0]) { + this._activeTarget = null; + this._clear(); + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + } + }, { + key: '_activate', + value: function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var selector = this._selector + '[data-target="' + target + '"],' + (this._selector + '[href="' + target + '"]'); + + // todo (fat): getting all the raw li's up the tree is not great. + var parentListItems = $(selector).parents(Selector.LI); + + for (var i = parentListItems.length; i--;) { + $(parentListItems[i]).addClass(ClassName.ACTIVE); + + var itemParent = parentListItems[i].parentNode; + + if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) { + var closestDropdown = $(itemParent).closest(Selector.LI_DROPDOWN)[0]; + $(closestDropdown).addClass(ClassName.ACTIVE); + } + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + var activeParents = $(this._selector).parentsUntil(this._config.target, Selector.ACTIVE); + + for (var i = activeParents.length; i--;) { + $(activeParents[i]).removeClass(ClassName.ACTIVE); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' && config || null; + + if (!data) { + data = new ScrollSpy(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return ScrollSpy; + })(); + + $(window).on(Event.LOAD_DATA_API, function () { + var scrollSpys = $.makeArray($(Selector.DATA_SPY)); + + for (var i = scrollSpys.length; i--;) { + var $spy = $(scrollSpys[i]); + ScrollSpy._jQueryInterface.call($spy, $spy.data()); + } + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = ScrollSpy._jQueryInterface; + $.fn[NAME].Constructor = ScrollSpy; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return ScrollSpy._jQueryInterface; + }; + + return ScrollSpy; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tab = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tab'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tab'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + A: 'a', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu > .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this15 = this; + + if (this._element.parentNode && this._element.parentNode.nodeType == Node.ELEMENT_NODE && $(this._element).parent().hasClass(ClassName.ACTIVE)) { + return; + } + + var target = undefined; + var previous = undefined; + var ulElement = $(this._element).closest(Selector.UL)[0]; + var selector = Util.getSelectorFromElement(this._element); + + if (ulElement) { + previous = $.makeArray($(ulElement).find(Selector.ACTIVE)); + previous = previous[previous.length - 1]; + + if (previous) { + previous = $(previous).find(Selector.A)[0]; + } + } + + var hideEvent = $.Event(Event.HIDE, { + relatedTarget: this._element + }); + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: previous + }); + + if (previous) { + $(previous).trigger(hideEvent); + } + + $(this._element).trigger(showEvent); + + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { + return; + } + + if (selector) { + target = $(selector)[0]; + } + + this._activate($(this._element).closest(Selector.LI)[0], ulElement); + + var complete = function complete() { + var hiddenEvent = $.Event(Event.HIDDEN, { + relatedTarget: _this15._element + }); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: previous + }); + + $(previous).trigger(hiddenEvent); + $(_this15._element).trigger(shownEvent); + }; + + if (target) { + this._activate(target, target.parentNode, complete); + } else { + complete(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeClass(this._element, DATA_KEY); + this._element = null; + } + + // private + + }, { + key: '_activate', + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || !!$(container).find(Selector.FADE_CHILD)[0]); + + var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback); + + if (active && isTransitioning) { + $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + if (active) { + $(active).removeClass(ClassName.IN); + } + } + }, { + key: '_transitionComplete', + value: function _transitionComplete(element, active, isTransitioning, callback) { + if (active) { + $(active).removeClass(ClassName.ACTIVE); + + var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; + if (dropdownChild) { + $(dropdownChild).removeClass(ClassName.ACTIVE); + } + + var activeToggle = $(active).find(Selector.DATA_TOGGLE)[0]; + if (activeToggle) { + activeToggle.setAttribute('aria-expanded', false); + } + } + + $(element).addClass(ClassName.ACTIVE); + + var elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + + if (isTransitioning) { + Util.reflow(element); + $(element).addClass(ClassName.IN); + } else { + $(element).removeClass(ClassName.FADE); + } + + if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { + + var dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).addClass(ClassName.ACTIVE); + } + + elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + } + + if (callback) { + callback(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + + if (!data) { + data = data = new Tab(this); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Tab; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + Tab._jQueryInterface.call($(this), 'show'); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tab._jQueryInterface; + $.fn[NAME].Constructor = Tab; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tab._jQueryInterface; + }; + + return Tab; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tooltip = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tooltip'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tooltip'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + var CLASS_PREFIX = 'bs-tether'; + + var Default = { + animation: true, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + selector: false, + placement: 'top', + offset: '0 0', + constraints: [] + }; + + var DefaultType = { + animation: 'boolean', + template: 'string', + title: '(string|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: 'string', + constraints: 'array' + }; + + var AttachmentMap = { + TOP: 'bottom center', + RIGHT: 'middle left', + BOTTOM: 'top center', + LEFT: 'middle right' + }; + + var HoverState = { + IN: 'in', + OUT: 'out' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TOOLTIP: '.tooltip', + TOOLTIP_INNER: '.tooltip-inner' + }; + + var TetherClass = { + element: false, + enabled: false + }; + + var Trigger = { + HOVER: 'hover', + FOCUS: 'focus', + CLICK: 'click', + MANUAL: 'manual' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tooltip = (function () { + function Tooltip(element, config) { + _classCallCheck(this, Tooltip); + + // private + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._tether = null; + + // protected + this.element = element; + this.config = this._getConfig(config); + this.tip = null; + + this._setListeners(); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Tooltip, [{ + key: 'enable', + + // public + + value: function enable() { + this._isEnabled = true; + } + }, { + key: 'disable', + value: function disable() { + this._isEnabled = false; + } + }, { + key: 'toggleEnabled', + value: function toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + }, { + key: 'toggle', + value: function toggle(event) { + var context = this; + var dataKey = this.constructor.DATA_KEY; + + if (event) { + context = $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(null, context); + } else { + context._leave(null, context); + } + } else { + $(context.getTipElement()).hasClass(ClassName.IN) ? context._leave(null, context) : context._enter(null, context); + } + } + }, { + key: 'dispose', + value: function dispose() { + clearTimeout(this._timeout); + + this.cleanupTether(); + + $.removeData(this.element, this.constructor.DATA_KEY); + + $(this.element).off(this.constructor.EVENT_KEY); + + if (this.tip) { + $(this.tip).remove(); + } + + this._isEnabled = null; + this._timeout = null; + this._hoverState = null; + this._activeTrigger = null; + this._tether = null; + + this.element = null; + this.config = null; + this.tip = null; + } + }, { + key: 'show', + value: function show() { + var _this16 = this; + + var showEvent = $.Event(this.constructor.Event.SHOW); + + if (this.isWithContent() && this._isEnabled) { + $(this.element).trigger(showEvent); + + var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element); + + if (showEvent.isDefaultPrevented() || !isInTheDom) { + return; + } + + var tip = this.getTipElement(); + var tipId = Util.getUID(this.constructor.NAME); + + tip.setAttribute('id', tipId); + this.element.setAttribute('aria-describedby', tipId); + + this.setContent(); + + if (this.config.animation) { + $(tip).addClass(ClassName.FADE); + } + + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; + + var attachment = this._getAttachment(placement); + + $(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body); + + $(this.element).trigger(this.constructor.Event.INSERTED); + + this._tether = new Tether({ + element: tip, + target: this.element, + attachment: attachment, + classes: TetherClass, + classPrefix: CLASS_PREFIX, + offset: this.config.offset, + constraints: this.config.constraints + }); + + Util.reflow(tip); + this._tether.position(); + + $(tip).addClass(ClassName.IN); + + var complete = function complete() { + var prevHoverState = _this16._hoverState; + _this16._hoverState = null; + + $(_this16.element).trigger(_this16.constructor.Event.SHOWN); + + if (prevHoverState === HoverState.OUT) { + _this16._leave(null, _this16); + } + }; + + Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ? $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION) : complete(); + } + } + }, { + key: 'hide', + value: function hide(callback) { + var _this17 = this; + + var tip = this.getTipElement(); + var hideEvent = $.Event(this.constructor.Event.HIDE); + var complete = function complete() { + if (_this17._hoverState !== HoverState.IN && tip.parentNode) { + tip.parentNode.removeChild(tip); + } + + _this17.element.removeAttribute('aria-describedby'); + $(_this17.element).trigger(_this17.constructor.Event.HIDDEN); + _this17.cleanupTether(); + + if (callback) { + callback(); + } + }; + + $(this.element).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + return; + } + + $(tip).removeClass(ClassName.IN); + + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + + $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + this._hoverState = ''; + } + + // protected + + }, { + key: 'isWithContent', + value: function isWithContent() { + return !!this.getTitle(); + } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var method = this.config.html ? 'innerHTML' : 'innerText'; + + $(tip).find(Selector.TOOLTIP_INNER)[0][method] = title; + + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); + } + }, { + key: 'getTitle', + value: function getTitle() { + var title = this.element.getAttribute('data-original-title'); + + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; + } + + return title; + } + }, { + key: 'cleanupTether', + value: function cleanupTether() { + if (this._tether) { + this._tether.destroy(); + + // clean up after tether's junk classes + // remove after they fix issue + // (https://github.com/HubSpot/tether/issues/36) + $(this.element).removeClass(this._removeTetherClasses); + $(this.tip).removeClass(this._removeTetherClasses); + } + } + + // private + + }, { + key: '_getAttachment', + value: function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + } + }, { + key: '_setListeners', + value: function _setListeners() { + var _this18 = this; + + var triggers = this.config.trigger.split(' '); + + triggers.forEach(function (trigger) { + if (trigger === 'click') { + $(_this18.element).on(_this18.constructor.Event.CLICK, _this18.config.selector, $.proxy(_this18.toggle, _this18)); + } else if (trigger !== Trigger.MANUAL) { + var eventIn = trigger == Trigger.HOVER ? _this18.constructor.Event.MOUSEENTER : _this18.constructor.Event.FOCUSIN; + var eventOut = trigger == Trigger.HOVER ? _this18.constructor.Event.MOUSELEAVE : _this18.constructor.Event.FOCUSOUT; + + $(_this18.element).on(eventIn, _this18.config.selector, $.proxy(_this18._enter, _this18)).on(eventOut, _this18.config.selector, $.proxy(_this18._leave, _this18)); + } + }); + + if (this.config.selector) { + this.config = $.extend({}, this.config, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); + } + } + }, { + key: '_removeTetherClasses', + value: function _removeTetherClasses(i, css) { + return ((css.baseVal || css).match(new RegExp('(^|\\s)' + CLASS_PREFIX + '-\\S+', 'g')) || []).join(' '); + } + }, { + key: '_fixTitle', + value: function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); + } + } + }, { + key: '_enter', + value: function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; + } + + if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) { + context._hoverState = HoverState.IN; + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.IN; + + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.IN) { + context.show(); + } + }, context.config.delay.show); + } + }, { + key: '_leave', + value: function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; + } + + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.OUT; + + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.OUT) { + context.hide(); + } + }, context.config.delay.hide); + } + }, { + key: '_isWithActiveTrigger', + value: function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; + } + } + + return false; + } + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, this.constructor.Default, $(this.element).data(), config); + + if (config.delay && typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + + return config; + } + }, { + key: '_getDelegateConfig', + value: function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + var value = this.config[key]; + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + } + + return config; + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Tooltip(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Tooltip; + })(); + + $.fn[NAME] = Tooltip._jQueryInterface; + $.fn[NAME].Constructor = Tooltip; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tooltip._jQueryInterface; + }; + + return Tooltip; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Popover = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'popover'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.popover'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Default = $.extend({}, Tooltip.Default, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); + + var DefaultType = $.extend({}, Tooltip.DefaultType, { + content: '(string|function)' + }); + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TITLE: '.popover-title', + CONTENT: '.popover-content', + ARROW: '.popover-arrow' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Popover = (function (_Tooltip) { + _inherits(Popover, _Tooltip); + + function Popover() { + _classCallCheck(this, Popover); + + _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + _createClass(Popover, [{ + key: 'isWithContent', + + // overrides + + value: function isWithContent() { + return this.getTitle() || this._getContent(); + } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var content = this._getContent(); + var titleElement = $(tip).find(Selector.TITLE)[0]; + + if (titleElement) { + titleElement[this.config.html ? 'innerHTML' : 'innerText'] = title; + } + + // we use append for html objects to maintain js events + $(tip).find(Selector.CONTENT).children().detach().end()[this.config.html ? typeof content === 'string' ? 'html' : 'append' : 'text'](content); + + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); + } + + // private + + }, { + key: '_getContent', + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content == 'function' ? this.config.content.call(this.element) : this.config.content); + } + + // static + + }], [{ + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Popover(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }, { + key: 'VERSION', + + // getters + + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Popover; + })(Tooltip); + + $.fn[NAME] = Popover._jQueryInterface; + $.fn[NAME].Constructor = Popover; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Popover._jQueryInterface; + }; + + return Popover; +})(jQuery); + +}(jQuery); diff --git a/dist/js/bootstrap.min.js b/dist/js/bootstrap.min.js index e882249a81..b6dc3e751d 100644 --- a/dist/js/bootstrap.min.js +++ b/dist/js/bootstrap.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(){"use strict";function a(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}{var c=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;h=j=i=void 0,d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;return void 0===i?void 0:i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return void 0;a=j,b=f,c=g,d=!0}},d=function(){function a(a,b){for(var c=0;cthis._items.length-1||0>b)){if(this._isSliding)return void a(this._element).one(o.SLID,function(){return c.to(b)});if(d==b)return this.pause(),void this.cycle();var e=b>d?n.NEXT:n.PREVIOUS;this._slide(e,this._items[b])}}},{key:"dispose",value:function(){a(this._element).off(h),a.removeData(this._element,g),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),e.typeCheckConfig(c,b,m),b}},{key:"_addEventListeners",value:function(){this._config.keyboard&&a(this._element).on(o.KEYDOWN,a.proxy(this._keydown,this)),"hover"!=this._config.pause||"ontouchstart"in document.documentElement||a(this._element).on(o.MOUSEENTER,a.proxy(this.pause,this)).on(o.MOUSELEAVE,a.proxy(this.cycle,this))}},{key:"_keydown",value:function(a){if(a.preventDefault(),!/input|textarea/i.test(a.target.tagName))switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}}},{key:"_getItemIndex",value:function(b){return this._items=a.makeArray(a(b).parent().find(q.ITEM)),this._items.indexOf(b)}},{key:"_getItemByDirection",value:function(a,b){var c=a===n.NEXT,d=a===n.PREVIOUS,e=this._getItemIndex(b),f=this._items.length-1,g=d&&0===e||c&&e==f;if(g&&!this._config.wrap)return b;var h=a==n.PREVIOUS?-1:1,i=(e+h)%this._items.length;return-1===i?this._items[this._items.length-1]:this._items[i]}},{key:"_triggerSlideEvent",value:function(b,c){var d=a.Event(o.SLIDE,{relatedTarget:b,direction:c});return a(this._element).trigger(d),d}},{key:"_setActiveIndicatorElement",value:function(b){if(this._indicatorsElement){a(this._indicatorsElement).find(q.ACTIVE).removeClass(p.ACTIVE);var c=this._indicatorsElement.children[this._getItemIndex(b)];c&&a(c).addClass(p.ACTIVE)}}},{key:"_slide",value:function(b,c){var d=this,f=a(this._element).find(q.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=!!this._interval,i=b==n.NEXT?p.LEFT:p.RIGHT;if(g&&a(g).hasClass(p.ACTIVE))return void(this._isSliding=!1);var j=this._triggerSlideEvent(g,i);if(!j.isDefaultPrevented()&&f&&g){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(g);var l=a.Event(o.SLID,{relatedTarget:g,direction:i});e.supportsTransitionEnd()&&a(this._element).hasClass(p.SLIDE)?(a(g).addClass(b),e.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(e.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(p.ACTIVE),a(f).removeClass(p.ACTIVE).removeClass(b).removeClass(i),d._isSliding=!1,setTimeout(function(){return a(d._element).trigger(l)},0)}).emulateTransitionEnd(k)):(a(f).removeClass(p.ACTIVE),a(g).addClass(p.ACTIVE),this._isSliding=!1,a(this._element).trigger(l)),h&&this.cycle()}}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d=a.extend({},l,a(this).data());"object"==typeof b&&a.extend(d,b);var e="string"==typeof b?b:d.slide;c||(c=new i(this,d),a(this).data(g,c)),"number"==typeof b?c.to(b):e?c[e]():d.interval&&(c.pause(),c.cycle())})}},{key:"_dataApiClickHandler",value:function(b){var c=e.getSelectorFromElement(this);if(c){var d=a(c)[0];if(d&&a(d).hasClass(p.CAROUSEL)){var f=a.extend({},a(d).data(),a(this).data()),h=this.getAttribute("data-slide-to");h&&(f.interval=!1),i._jQueryInterface.call(a(d),f),h&&a(d).data(g).to(h),b.preventDefault()}}}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),i}();return a(document).on(o.CLICK_DATA_API,q.DATA_SLIDE,r._dataApiClickHandler),a(window).on(o.LOAD_DATA_API,function(){a(q.DATA_RIDE).each(function(){var b=a(this);r._jQueryInterface.call(b,b.data())})}),a.fn[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="collapse",f="4.0.0",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[c],k=600,l={toggle:!0,parent:""},m={toggle:"boolean",parent:"string"},n={SHOW:"show"+h,SHOWN:"shown"+h,HIDE:"hide"+h,HIDDEN:"hidden"+h,CLICK_DATA_API:"click"+h+i},o={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},q={ACTIVES:".panel > .in, .panel > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},r=function(){function h(c,d){b(this,h),this._isTransitioning=!1,this._element=c,this._config=this._getConfig(d),this._triggerArray=a.makeArray(a('[data-toggle="collapse"][href="#'+c.id+'"],'+('[data-toggle="collapse"][data-target="#'+c.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return d(h,[{key:"toggle",value:function(){a(this._element).hasClass(o.IN)?this.hide():this.show()}},{key:"show",value:function(){var b=this;if(!this._isTransitioning&&!a(this._element).hasClass(o.IN)){var c=void 0,d=void 0;if(this._parent&&(c=a.makeArray(a(q.ACTIVES)),c.length||(c=null)),!(c&&(d=a(c).data(g),d&&d._isTransitioning))){var f=a.Event(n.SHOW);if(a(this._element).trigger(f),!f.isDefaultPrevented()){c&&(h._jQueryInterface.call(a(c),"hide"),d||a(c).data(g,null));var i=this._getDimension();a(this._element).removeClass(o.COLLAPSE).addClass(o.COLLAPSING),this._element.style[i]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&a(this._triggerArray).removeClass(o.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var j=function(){a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).addClass(o.IN),b._element.style[i]="",b.setTransitioning(!1),a(b._element).trigger(n.SHOWN)};if(!e.supportsTransitionEnd())return void j();var l="scroll"+(i[0].toUpperCase()+i.slice(1));a(this._element).one(e.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[l]+"px"}}}}},{key:"hide",value:function(){var b=this;if(!this._isTransitioning&&a(this._element).hasClass(o.IN)){var c=a.Event(n.HIDE);if(a(this._element).trigger(c),!c.isDefaultPrevented()){var d=this._getDimension(),f=d===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[d]=this._element[f]+"px",e.reflow(this._element),a(this._element).addClass(o.COLLAPSING).removeClass(o.COLLAPSE).removeClass(o.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&a(this._triggerArray).addClass(o.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var g=function(){b.setTransitioning(!1),a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).trigger(n.HIDDEN)};return this._element.style[d]=0,e.supportsTransitionEnd()?void a(this._element).one(e.TRANSITION_END,g).emulateTransitionEnd(k):g()}}}},{key:"setTransitioning",value:function(a){this._isTransitioning=a}},{key:"dispose",value:function(){a.removeData(this._element,g),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),b.toggle=!!b.toggle,e.typeCheckConfig(c,b,m),b}},{key:"_getDimension",value:function(){var b=a(this._element).hasClass(p.WIDTH);return b?p.WIDTH:p.HEIGHT}},{key:"_getParent",value:function(){var b=this,c=a(this._config.parent)[0],d='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return a(c).find(d).each(function(a,c){b._addAriaAndCollapsedClass(h._getTargetFromElement(c),[c])}),c}},{key:"_addAriaAndCollapsedClass",value:function(b,c){if(b){var d=a(b).hasClass(o.IN);b.setAttribute("aria-expanded",d),c.length&&a(c).toggleClass(o.COLLAPSED,!d).attr("aria-expanded",d)}}}],[{key:"_getTargetFromElement",value:function(b){var c=e.getSelectorFromElement(b);return c?a(c)[0]:null}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g),e=a.extend({},l,c.data(),"object"==typeof b&&b);!d&&e.toggle&&/show|hide/.test(b)&&(e.toggle=!1),d||(d=new h(this,e),c.data(g,d)),"string"==typeof b&&d[b]()})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),h}();return a(document).on(n.CLICK_DATA_API,q.DATA_TOGGLE,function(b){b.preventDefault();var c=r._getTargetFromElement(this),d=a(c).data(g),e=d?"toggle":a(this).data();r._jQueryInterface.call(a(c),e)}),a.fn[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="dropdown",f="4.0.0",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[c],k={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK:"click"+h,CLICK_DATA_API:"click"+h+i,KEYDOWN_DATA_API:"keydown"+h+i},l={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},m={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},n=function(){function c(a){b(this,c),this._element=a,this._addEventListeners()}return d(c,[{key:"toggle",value:function(){if(!this.disabled&&!a(this).hasClass(l.DISABLED)){var b=c._getParentFromElement(this),d=a(b).hasClass(l.OPEN);if(c._clearMenus(),d)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(m.NAVBAR_NAV).length){var e=document.createElement("div");e.className=l.BACKDROP,a(e).insertBefore(this),a(e).on("click",c._clearMenus)}var f={relatedTarget:this},g=a.Event(k.SHOW,f);if(a(b).trigger(g),!g.isDefaultPrevented())return this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(l.OPEN),a(b).trigger(k.SHOWN,f),!1}}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._element).off(h),this._element=null}},{key:"_addEventListeners",value:function(){a(this._element).on(k.CLICK,this.toggle)}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this).data(g);d||a(this).data(g,d=new c(this)),"string"==typeof b&&d[b].call(this)})}},{key:"_clearMenus",value:function(b){if(!b||3!==b.which){var d=a(m.BACKDROP)[0];d&&d.parentNode.removeChild(d);for(var e=a.makeArray(a(m.DATA_TOGGLE)),f=0;f0&&h--,40===b.which&&hdocument.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}},{key:"_checkScrollbar",value:function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this._isBodyOverflowing=document.body.clientWidth a"},p={OFFSET:"offset",POSITION:"position"},q=function(){function i(c,d){b(this,i),this._element=c,this._scrollElement="BODY"===c.tagName?window:c,this._config=this._getConfig(d),this._selector=this._config.target+" "+o.NAV_ANCHORS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,a(this._scrollElement).on(m.SCROLL,a.proxy(this._process,this)),this.refresh(),this._process()}return d(i,[{key:"refresh",value:function(){var b=this,c=this._scrollElement!==this._scrollElement.window?p.POSITION:p.OFFSET,d="auto"===this._config.method?c:this._config.method,f=d===p.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var g=a.makeArray(a(this._selector));g.map(function(b){var c=void 0,g=e.getSelectorFromElement(b);return g&&(c=a(g)[0]),c&&(c.offsetWidth||c.offsetHeight)?[a(c)[d]().top+f,g]:void 0}).filter(function(a){return a}).sort(function(a,b){return a[0]-b[0]}).forEach(function(a){b._offsets.push(a[0]),b._targets.push(a[1])})}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._scrollElement).off(h),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}},{key:"_getConfig",value:function(b){if(b=a.extend({},k,b),"string"!=typeof b.target){var d=a(b.target).attr("id");d||(d=e.getUID(c),a(b.target).attr("id",d)),b.target="#"+d}return e.typeCheckConfig(c,b,l),b}},{key:"_getScrollTop",value:function(){return this._scrollElement===window?this._scrollElement.scrollY:this._scrollElement.scrollTop}},{key:"_getScrollHeight",value:function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"_process",value:function(){var a=this._getScrollTop()+this._config.offset,b=this._getScrollHeight(),c=this._config.offset+b-this._scrollElement.offsetHeight;if(this._scrollHeight!==b&&this.refresh(),a>=c){var d=this._targets[this._targets.length-1];this._activeTarget!==d&&this._activate(d)}if(this._activeTarget&&a=this._offsets[e]&&(void 0===this._offsets[e+1]||a .fade",ACTIVE:".active",ACTIVE_CHILD:"> .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu > .active"},o=function(){function c(a){b(this,c),this._element=a}return d(c,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!=Node.ELEMENT_NODE||!a(this._element).parent().hasClass(m.ACTIVE)){var c=void 0,d=void 0,f=a(this._element).closest(n.UL)[0],g=e.getSelectorFromElement(this._element);f&&(d=a.makeArray(a(f).find(n.ACTIVE)),d=d[d.length-1],d&&(d=a(d).find(n.A)[0]));var h=a.Event(l.HIDE,{relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:d});if(d&&a(d).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(a(this._element).closest(n.LI)[0],f);var j=function(){var c=a.Event(l.HIDDEN,{relatedTarget:b._element -}),e=a.Event(l.SHOWN,{relatedTarget:d});a(d).trigger(c),a(b._element).trigger(e)};c?this._activate(c,c.parentNode,j):j()}}}},{key:"dispose",value:function(){a.removeClass(this._element,g),this._element=null}},{key:"_activate",value:function(b,c,d){var f=a(c).find(n.ACTIVE_CHILD)[0],g=d&&e.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||!!a(c).find(n.FADE_CHILD)[0]),h=a.proxy(this._transitionComplete,this,b,f,g,d);f&&g?a(f).one(e.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,d,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE);var h=a(c).find(n.DATA_TOGGLE)[0];h&&h.setAttribute("aria-expanded",!1)}a(b).addClass(m.ACTIVE);var i=a(b).find(n.DATA_TOGGLE)[0];if(i&&i.setAttribute("aria-expanded",!0),d?(e.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var j=a(b).closest(n.LI_DROPDOWN)[0];j&&a(j).addClass(m.ACTIVE),i=a(b).find(n.DATA_TOGGLE)[0],i&&i.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this),e=d.data(g);e||(e=e=new c(this),d.data(g,e)),"string"==typeof b&&e[b]()})}},{key:"VERSION",get:function(){return f}}]),c}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[c]=o._jQueryInterface,a.fn[c].Constructor=o,a.fn[c].noConflict=function(){return a.fn[c]=j,o._jQueryInterface},o}(jQuery),function(a){var c="tooltip",f="4.0.0",g="bs.tooltip",h="."+g,i=a.fn[c],j=150,k="bs-tether",l={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[]},m={animation:"boolean",template:"string",title:"(string|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array"},n={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},o={IN:"in",OUT:"out"},p={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},q={FADE:"fade",IN:"in"},r={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},s={element:!1,enabled:!1},t={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},u=function(){function i(a,c){b(this,i),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=a,this.config=this._getConfig(c),this.tip=null,this._setListeners()}return d(i,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(b){var c=this,d=this.constructor.DATA_KEY;b?(c=a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),c._activeTrigger.click=!c._activeTrigger.click,c._isWithActiveTrigger()?c._enter(null,c):c._leave(null,c)):a(c.getTipElement()).hasClass(q.IN)?c._leave(null,c):c._enter(null,c)}},{key:"dispose",value:function(){clearTimeout(this._timeout),this.cleanupTether(),a.removeData(this.element,this.constructor.DATA_KEY),a(this.element).off(this.constructor.EVENT_KEY),this.tip&&a(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null}},{key:"show",value:function(){var b=this,c=a.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){a(this.element).trigger(c);var d=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!d)return;var f=this.getTipElement(),g=e.getUID(this.constructor.NAME);f.setAttribute("id",g),this.element.setAttribute("aria-describedby",g),this.setContent(),this.config.animation&&a(f).addClass(q.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,f,this.element):this.config.placement,j=this._getAttachment(h);a(f).data(this.constructor.DATA_KEY,this).appendTo(document.body),a(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({element:f,target:this.element,attachment:j,classes:s,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints}),e.reflow(f),this._tether.position(),a(f).addClass(q.IN);var l=function(){var c=b._hoverState;b._hoverState=null,a(b.element).trigger(b.constructor.Event.SHOWN),c===o.OUT&&b._leave(null,b)};e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(this.tip).one(e.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION):l()}}},{key:"hide",value:function(b){var c=this,d=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==o.IN&&d.parentNode&&d.parentNode.removeChild(d),c.element.removeAttribute("aria-describedby"),a(c.element).trigger(c.constructor.Event.HIDDEN),c.cleanupTether(),b&&b()};a(this.element).trigger(f),f.isDefaultPrevented()||(a(d).removeClass(q.IN),e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(d).one(e.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return!!this.getTitle()}},{key:"getTipElement",value:function(){return this.tip=this.tip||a(this.config.template)[0]}},{key:"setContent",value:function(){var b=this.getTipElement(),c=this.getTitle(),d=this.config.html?"innerHTML":"innerText";a(b).find(r.TOOLTIP_INNER)[0][d]=c,a(b).removeClass(q.FADE).removeClass(q.IN),this.cleanupTether()}},{key:"getTitle",value:function(){var a=this.element.getAttribute("data-original-title");return a||(a="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),a}},{key:"cleanupTether",value:function(){this._tether&&(this._tether.destroy(),a(this.element).removeClass(this._removeTetherClasses),a(this.tip).removeClass(this._removeTetherClasses))}},{key:"_getAttachment",value:function(a){return n[a.toUpperCase()]}},{key:"_setListeners",value:function(){var b=this,c=this.config.trigger.split(" ");c.forEach(function(c){if("click"===c)a(b.element).on(b.constructor.Event.CLICK,b.config.selector,a.proxy(b.toggle,b));else if(c!==t.MANUAL){var d=c==t.HOVER?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN,e=c==t.HOVER?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;a(b.element).on(d,b.config.selector,a.proxy(b._enter,b)).on(e,b.config.selector,a.proxy(b._leave,b))}}),this.config.selector?this.config=a.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_removeTetherClasses",value:function(a,b){return((b.baseVal||b).match(new RegExp("(^|\\s)"+k+"-\\S+","g"))||[]).join(" ")}},{key:"_fixTitle",value:function(){var a=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==a)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}},{key:"_enter",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusin"==b.type?t.FOCUS:t.HOVER]=!0),a(c.getTipElement()).hasClass(q.IN)||c._hoverState===o.IN?void(c._hoverState=o.IN):(clearTimeout(c._timeout),c._hoverState=o.IN,c.config.delay&&c.config.delay.show?void(c._timeout=setTimeout(function(){c._hoverState===o.IN&&c.show()},c.config.delay.show)):void c.show())}},{key:"_leave",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusout"==b.type?t.FOCUS:t.HOVER]=!1),c._isWithActiveTrigger()?void 0:(clearTimeout(c._timeout),c._hoverState=o.OUT,c.config.delay&&c.config.delay.hide?void(c._timeout=setTimeout(function(){c._hoverState===o.OUT&&c.hide()},c.config.delay.hide)):void c.hide())}},{key:"_isWithActiveTrigger",value:function(){for(var a in this._activeTrigger)if(this._activeTrigger[a])return!0;return!1}},{key:"_getConfig",value:function(b){return b=a.extend({},this.constructor.Default,a(this.element).data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),e.typeCheckConfig(c,b,this.constructor.DefaultType),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config){var c=this.config[b];this.constructor.Default[b]!==c&&(a[b]=c)}return a}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b?b:null;(c||!/destroy|hide/.test(b))&&(c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]())})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return c}},{key:"DATA_KEY",get:function(){return g}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return m}}]),i}();return a.fn[c]=u._jQueryInterface,a.fn[c].Constructor=u,a.fn[c].noConflict=function(){return a.fn[c]=i,u._jQueryInterface},u}(jQuery));!function(e){var g="popover",h="4.0.0",i="bs.popover",j="."+i,k=e.fn[g],l=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),m=e.extend({},f.DefaultType,{content:"(string|function)"}),n={FADE:"fade",IN:"in"},o={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},p={HIDE:"hide"+j,HIDDEN:"hidden"+j,SHOW:"show"+j,SHOWN:"shown"+j,INSERTED:"inserted"+j,CLICK:"click"+j,FOCUSIN:"focusin"+j,FOCUSOUT:"focusout"+j,MOUSEENTER:"mouseenter"+j,MOUSELEAVE:"mouseleave"+j},q=function(f){function k(){b(this,k),c(Object.getPrototypeOf(k.prototype),"constructor",this).apply(this,arguments)}return a(k,f),d(k,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||e(this.config.template)[0]}},{key:"setContent",value:function(){var a=this.getTipElement(),b=this.getTitle(),c=this._getContent(),d=e(a).find(o.TITLE)[0];d&&(d[this.config.html?"innerHTML":"innerText"]=b),e(a).find(o.CONTENT).children().detach().end()[this.config.html?"string"==typeof c?"html":"append":"text"](c),e(a).removeClass(n.FADE).removeClass(n.IN),this.cleanupTether()}},{key:"_getContent",value:function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)}}],[{key:"_jQueryInterface",value:function(a){return this.each(function(){var b=e(this).data(i),c="object"==typeof a?a:null;(b||!/destroy|hide/.test(a))&&(b||(b=new k(this,c),e(this).data(i,b)),"string"==typeof a&&b[a]())})}},{key:"VERSION",get:function(){return h}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return g}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return j}},{key:"DefaultType",get:function(){return m}}]),k}(f);return e.fn[g]=q._jQueryInterface,e.fn[g].Constructor=q,e.fn[g].noConflict=function(){return e.fn[g]=k,q._jQueryInterface},q}(jQuery)}}(jQuery); \ No newline at end of file +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(){"use strict";function a(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}{var c=function(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;h=j=i=void 0,d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;return void 0===i?void 0:i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return void 0;a=j,b=f,c=g,d=!0}},d=function(){function a(a,b){for(var c=0;cthis._items.length-1||0>b)){if(this._isSliding)return void a(this._element).one(o.SLID,function(){return c.to(b)});if(d==b)return this.pause(),void this.cycle();var e=b>d?n.NEXT:n.PREVIOUS;this._slide(e,this._items[b])}}},{key:"dispose",value:function(){a(this._element).off(h),a.removeData(this._element,g),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),e.typeCheckConfig(c,b,m),b}},{key:"_addEventListeners",value:function(){this._config.keyboard&&a(this._element).on(o.KEYDOWN,a.proxy(this._keydown,this)),"hover"!=this._config.pause||"ontouchstart"in document.documentElement||a(this._element).on(o.MOUSEENTER,a.proxy(this.pause,this)).on(o.MOUSELEAVE,a.proxy(this.cycle,this))}},{key:"_keydown",value:function(a){if(a.preventDefault(),!/input|textarea/i.test(a.target.tagName))switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}}},{key:"_getItemIndex",value:function(b){return this._items=a.makeArray(a(b).parent().find(q.ITEM)),this._items.indexOf(b)}},{key:"_getItemByDirection",value:function(a,b){var c=a===n.NEXT,d=a===n.PREVIOUS,e=this._getItemIndex(b),f=this._items.length-1,g=d&&0===e||c&&e==f;if(g&&!this._config.wrap)return b;var h=a==n.PREVIOUS?-1:1,i=(e+h)%this._items.length;return-1===i?this._items[this._items.length-1]:this._items[i]}},{key:"_triggerSlideEvent",value:function(b,c){var d=a.Event(o.SLIDE,{relatedTarget:b,direction:c});return a(this._element).trigger(d),d}},{key:"_setActiveIndicatorElement",value:function(b){if(this._indicatorsElement){a(this._indicatorsElement).find(q.ACTIVE).removeClass(p.ACTIVE);var c=this._indicatorsElement.children[this._getItemIndex(b)];c&&a(c).addClass(p.ACTIVE)}}},{key:"_slide",value:function(b,c){var d=this,f=a(this._element).find(q.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=!!this._interval,i=b==n.NEXT?p.LEFT:p.RIGHT;if(g&&a(g).hasClass(p.ACTIVE))return void(this._isSliding=!1);var j=this._triggerSlideEvent(g,i);if(!j.isDefaultPrevented()&&f&&g){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(g);var l=a.Event(o.SLID,{relatedTarget:g,direction:i});e.supportsTransitionEnd()&&a(this._element).hasClass(p.SLIDE)?(a(g).addClass(b),e.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(e.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(p.ACTIVE),a(f).removeClass(p.ACTIVE).removeClass(b).removeClass(i),d._isSliding=!1,setTimeout(function(){return a(d._element).trigger(l)},0)}).emulateTransitionEnd(k)):(a(f).removeClass(p.ACTIVE),a(g).addClass(p.ACTIVE),this._isSliding=!1,a(this._element).trigger(l)),h&&this.cycle()}}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d=a.extend({},l,a(this).data());"object"==typeof b&&a.extend(d,b);var e="string"==typeof b?b:d.slide;c||(c=new i(this,d),a(this).data(g,c)),"number"==typeof b?c.to(b):e?c[e]():d.interval&&(c.pause(),c.cycle())})}},{key:"_dataApiClickHandler",value:function(b){var c=e.getSelectorFromElement(this);if(c){var d=a(c)[0];if(d&&a(d).hasClass(p.CAROUSEL)){var f=a.extend({},a(d).data(),a(this).data()),h=this.getAttribute("data-slide-to");h&&(f.interval=!1),i._jQueryInterface.call(a(d),f),h&&a(d).data(g).to(h),b.preventDefault()}}}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),i}();return a(document).on(o.CLICK_DATA_API,q.DATA_SLIDE,r._dataApiClickHandler),a(window).on(o.LOAD_DATA_API,function(){a(q.DATA_RIDE).each(function(){var b=a(this);r._jQueryInterface.call(b,b.data())})}),a.fn[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="collapse",f="4.0.0",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[c],k=600,l={toggle:!0,parent:""},m={toggle:"boolean",parent:"string"},n={SHOW:"show"+h,SHOWN:"shown"+h,HIDE:"hide"+h,HIDDEN:"hidden"+h,CLICK_DATA_API:"click"+h+i},o={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},q={ACTIVES:".panel > .in, .panel > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},r=function(){function h(c,d){b(this,h),this._isTransitioning=!1,this._element=c,this._config=this._getConfig(d),this._triggerArray=a.makeArray(a('[data-toggle="collapse"][href="#'+c.id+'"],'+('[data-toggle="collapse"][data-target="#'+c.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return d(h,[{key:"toggle",value:function(){a(this._element).hasClass(o.IN)?this.hide():this.show()}},{key:"show",value:function(){var b=this;if(!this._isTransitioning&&!a(this._element).hasClass(o.IN)){var c=void 0,d=void 0;if(this._parent&&(c=a.makeArray(a(q.ACTIVES)),c.length||(c=null)),!(c&&(d=a(c).data(g),d&&d._isTransitioning))){var f=a.Event(n.SHOW);if(a(this._element).trigger(f),!f.isDefaultPrevented()){c&&(h._jQueryInterface.call(a(c),"hide"),d||a(c).data(g,null));var i=this._getDimension();a(this._element).removeClass(o.COLLAPSE).addClass(o.COLLAPSING),this._element.style[i]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&a(this._triggerArray).removeClass(o.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var j=function(){a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).addClass(o.IN),b._element.style[i]="",b.setTransitioning(!1),a(b._element).trigger(n.SHOWN)};if(!e.supportsTransitionEnd())return void j();var l="scroll"+(i[0].toUpperCase()+i.slice(1));a(this._element).one(e.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[l]+"px"}}}}},{key:"hide",value:function(){var b=this;if(!this._isTransitioning&&a(this._element).hasClass(o.IN)){var c=a.Event(n.HIDE);if(a(this._element).trigger(c),!c.isDefaultPrevented()){var d=this._getDimension(),f=d===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[d]=this._element[f]+"px",e.reflow(this._element),a(this._element).addClass(o.COLLAPSING).removeClass(o.COLLAPSE).removeClass(o.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&a(this._triggerArray).addClass(o.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var g=function(){b.setTransitioning(!1),a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).trigger(n.HIDDEN)};return this._element.style[d]=0,e.supportsTransitionEnd()?void a(this._element).one(e.TRANSITION_END,g).emulateTransitionEnd(k):g()}}}},{key:"setTransitioning",value:function(a){this._isTransitioning=a}},{key:"dispose",value:function(){a.removeData(this._element,g),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),b.toggle=!!b.toggle,e.typeCheckConfig(c,b,m),b}},{key:"_getDimension",value:function(){var b=a(this._element).hasClass(p.WIDTH);return b?p.WIDTH:p.HEIGHT}},{key:"_getParent",value:function(){var b=this,c=a(this._config.parent)[0],d='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return a(c).find(d).each(function(a,c){b._addAriaAndCollapsedClass(h._getTargetFromElement(c),[c])}),c}},{key:"_addAriaAndCollapsedClass",value:function(b,c){if(b){var d=a(b).hasClass(o.IN);b.setAttribute("aria-expanded",d),c.length&&a(c).toggleClass(o.COLLAPSED,!d).attr("aria-expanded",d)}}}],[{key:"_getTargetFromElement",value:function(b){var c=e.getSelectorFromElement(b);return c?a(c)[0]:null}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g),e=a.extend({},l,c.data(),"object"==typeof b&&b);!d&&e.toggle&&/show|hide/.test(b)&&(e.toggle=!1),d||(d=new h(this,e),c.data(g,d)),"string"==typeof b&&d[b]()})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),h}();return a(document).on(n.CLICK_DATA_API,q.DATA_TOGGLE,function(b){b.preventDefault();var c=r._getTargetFromElement(this),d=a(c).data(g),e=d?"toggle":a(this).data();r._jQueryInterface.call(a(c),e)}),a.fn[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="dropdown",f="4.0.0",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[c],k={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK:"click"+h,CLICK_DATA_API:"click"+h+i,KEYDOWN_DATA_API:"keydown"+h+i},l={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},m={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},n=function(){function c(a){b(this,c),this._element=a,this._addEventListeners()}return d(c,[{key:"toggle",value:function(){if(!this.disabled&&!a(this).hasClass(l.DISABLED)){var b=c._getParentFromElement(this),d=a(b).hasClass(l.OPEN);if(c._clearMenus(),d)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(m.NAVBAR_NAV).length){var e=document.createElement("div");e.className=l.BACKDROP,a(e).insertBefore(this),a(e).on("click",c._clearMenus)}var f={relatedTarget:this},g=a.Event(k.SHOW,f);if(a(b).trigger(g),!g.isDefaultPrevented())return this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(l.OPEN),a(b).trigger(a.Event(k.SHOWN,f)),!1}}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._element).off(h),this._element=null}},{key:"_addEventListeners",value:function(){a(this._element).on(k.CLICK,this.toggle)}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this).data(g);d||a(this).data(g,d=new c(this)),"string"==typeof b&&d[b].call(this)})}},{key:"_clearMenus",value:function(b){if(!b||3!==b.which){var d=a(m.BACKDROP)[0];d&&d.parentNode.removeChild(d);for(var e=a.makeArray(a(m.DATA_TOGGLE)),f=0;f0&&h--,40===b.which&&hdocument.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}},{key:"_checkScrollbar",value:function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this._isBodyOverflowing=document.body.clientWidth a"},p={OFFSET:"offset",POSITION:"position"},q=function(){function i(c,d){b(this,i),this._element=c,this._scrollElement="BODY"===c.tagName?window:c,this._config=this._getConfig(d),this._selector=this._config.target+" "+o.NAV_ANCHORS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,a(this._scrollElement).on(m.SCROLL,a.proxy(this._process,this)),this.refresh(),this._process()}return d(i,[{key:"refresh",value:function(){var b=this,c=this._scrollElement!==this._scrollElement.window?p.POSITION:p.OFFSET,d="auto"===this._config.method?c:this._config.method,f=d===p.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var g=a.makeArray(a(this._selector));g.map(function(b){var c=void 0,g=e.getSelectorFromElement(b);return g&&(c=a(g)[0]),c&&(c.offsetWidth||c.offsetHeight)?[a(c)[d]().top+f,g]:void 0}).filter(function(a){return a}).sort(function(a,b){return a[0]-b[0]}).forEach(function(a){b._offsets.push(a[0]),b._targets.push(a[1])})}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._scrollElement).off(h),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}},{key:"_getConfig",value:function(b){if(b=a.extend({},k,b),"string"!=typeof b.target){var d=a(b.target).attr("id");d||(d=e.getUID(c),a(b.target).attr("id",d)),b.target="#"+d}return e.typeCheckConfig(c,b,l),b}},{key:"_getScrollTop",value:function(){return this._scrollElement===window?this._scrollElement.scrollY:this._scrollElement.scrollTop}},{key:"_getScrollHeight",value:function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"_process",value:function(){var a=this._getScrollTop()+this._config.offset,b=this._getScrollHeight(),c=this._config.offset+b-this._scrollElement.offsetHeight;if(this._scrollHeight!==b&&this.refresh(),a>=c){var d=this._targets[this._targets.length-1];this._activeTarget!==d&&this._activate(d)}if(this._activeTarget&&a=this._offsets[e]&&(void 0===this._offsets[e+1]||a .fade",ACTIVE:".active",ACTIVE_CHILD:"> .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu > .active"},o=function(){function c(a){b(this,c),this._element=a}return d(c,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!=Node.ELEMENT_NODE||!a(this._element).parent().hasClass(m.ACTIVE)){var c=void 0,d=void 0,f=a(this._element).closest(n.UL)[0],g=e.getSelectorFromElement(this._element);f&&(d=a.makeArray(a(f).find(n.ACTIVE)),d=d[d.length-1],d&&(d=a(d).find(n.A)[0]));var h=a.Event(l.HIDE,{relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:d});if(d&&a(d).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(a(this._element).closest(n.LI)[0],f);var j=function(){var c=a.Event(l.HIDDEN,{ +relatedTarget:b._element}),e=a.Event(l.SHOWN,{relatedTarget:d});a(d).trigger(c),a(b._element).trigger(e)};c?this._activate(c,c.parentNode,j):j()}}}},{key:"dispose",value:function(){a.removeClass(this._element,g),this._element=null}},{key:"_activate",value:function(b,c,d){var f=a(c).find(n.ACTIVE_CHILD)[0],g=d&&e.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||!!a(c).find(n.FADE_CHILD)[0]),h=a.proxy(this._transitionComplete,this,b,f,g,d);f&&g?a(f).one(e.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,d,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE);var h=a(c).find(n.DATA_TOGGLE)[0];h&&h.setAttribute("aria-expanded",!1)}a(b).addClass(m.ACTIVE);var i=a(b).find(n.DATA_TOGGLE)[0];if(i&&i.setAttribute("aria-expanded",!0),d?(e.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var j=a(b).closest(n.LI_DROPDOWN)[0];j&&a(j).addClass(m.ACTIVE),i=a(b).find(n.DATA_TOGGLE)[0],i&&i.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this),e=d.data(g);e||(e=e=new c(this),d.data(g,e)),"string"==typeof b&&e[b]()})}},{key:"VERSION",get:function(){return f}}]),c}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[c]=o._jQueryInterface,a.fn[c].Constructor=o,a.fn[c].noConflict=function(){return a.fn[c]=j,o._jQueryInterface},o}(jQuery),function(a){var c="tooltip",f="4.0.0",g="bs.tooltip",h="."+g,i=a.fn[c],j=150,k="bs-tether",l={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[]},m={animation:"boolean",template:"string",title:"(string|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array"},n={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},o={IN:"in",OUT:"out"},p={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},q={FADE:"fade",IN:"in"},r={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},s={element:!1,enabled:!1},t={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},u=function(){function i(a,c){b(this,i),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=a,this.config=this._getConfig(c),this.tip=null,this._setListeners()}return d(i,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(b){var c=this,d=this.constructor.DATA_KEY;b?(c=a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),c._activeTrigger.click=!c._activeTrigger.click,c._isWithActiveTrigger()?c._enter(null,c):c._leave(null,c)):a(c.getTipElement()).hasClass(q.IN)?c._leave(null,c):c._enter(null,c)}},{key:"dispose",value:function(){clearTimeout(this._timeout),this.cleanupTether(),a.removeData(this.element,this.constructor.DATA_KEY),a(this.element).off(this.constructor.EVENT_KEY),this.tip&&a(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null}},{key:"show",value:function(){var b=this,c=a.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){a(this.element).trigger(c);var d=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!d)return;var f=this.getTipElement(),g=e.getUID(this.constructor.NAME);f.setAttribute("id",g),this.element.setAttribute("aria-describedby",g),this.setContent(),this.config.animation&&a(f).addClass(q.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,f,this.element):this.config.placement,j=this._getAttachment(h);a(f).data(this.constructor.DATA_KEY,this).appendTo(document.body),a(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({element:f,target:this.element,attachment:j,classes:s,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints}),e.reflow(f),this._tether.position(),a(f).addClass(q.IN);var l=function(){var c=b._hoverState;b._hoverState=null,a(b.element).trigger(b.constructor.Event.SHOWN),c===o.OUT&&b._leave(null,b)};e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(this.tip).one(e.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION):l()}}},{key:"hide",value:function(b){var c=this,d=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==o.IN&&d.parentNode&&d.parentNode.removeChild(d),c.element.removeAttribute("aria-describedby"),a(c.element).trigger(c.constructor.Event.HIDDEN),c.cleanupTether(),b&&b()};a(this.element).trigger(f),f.isDefaultPrevented()||(a(d).removeClass(q.IN),e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(d).one(e.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return!!this.getTitle()}},{key:"getTipElement",value:function(){return this.tip=this.tip||a(this.config.template)[0]}},{key:"setContent",value:function(){var b=this.getTipElement(),c=this.getTitle(),d=this.config.html?"innerHTML":"innerText";a(b).find(r.TOOLTIP_INNER)[0][d]=c,a(b).removeClass(q.FADE).removeClass(q.IN),this.cleanupTether()}},{key:"getTitle",value:function(){var a=this.element.getAttribute("data-original-title");return a||(a="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),a}},{key:"cleanupTether",value:function(){this._tether&&(this._tether.destroy(),a(this.element).removeClass(this._removeTetherClasses),a(this.tip).removeClass(this._removeTetherClasses))}},{key:"_getAttachment",value:function(a){return n[a.toUpperCase()]}},{key:"_setListeners",value:function(){var b=this,c=this.config.trigger.split(" ");c.forEach(function(c){if("click"===c)a(b.element).on(b.constructor.Event.CLICK,b.config.selector,a.proxy(b.toggle,b));else if(c!==t.MANUAL){var d=c==t.HOVER?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN,e=c==t.HOVER?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;a(b.element).on(d,b.config.selector,a.proxy(b._enter,b)).on(e,b.config.selector,a.proxy(b._leave,b))}}),this.config.selector?this.config=a.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_removeTetherClasses",value:function(a,b){return((b.baseVal||b).match(new RegExp("(^|\\s)"+k+"-\\S+","g"))||[]).join(" ")}},{key:"_fixTitle",value:function(){var a=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==a)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}},{key:"_enter",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusin"==b.type?t.FOCUS:t.HOVER]=!0),a(c.getTipElement()).hasClass(q.IN)||c._hoverState===o.IN?void(c._hoverState=o.IN):(clearTimeout(c._timeout),c._hoverState=o.IN,c.config.delay&&c.config.delay.show?void(c._timeout=setTimeout(function(){c._hoverState===o.IN&&c.show()},c.config.delay.show)):void c.show())}},{key:"_leave",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusout"==b.type?t.FOCUS:t.HOVER]=!1),c._isWithActiveTrigger()?void 0:(clearTimeout(c._timeout),c._hoverState=o.OUT,c.config.delay&&c.config.delay.hide?void(c._timeout=setTimeout(function(){c._hoverState===o.OUT&&c.hide()},c.config.delay.hide)):void c.hide())}},{key:"_isWithActiveTrigger",value:function(){for(var a in this._activeTrigger)if(this._activeTrigger[a])return!0;return!1}},{key:"_getConfig",value:function(b){return b=a.extend({},this.constructor.Default,a(this.element).data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),e.typeCheckConfig(c,b,this.constructor.DefaultType),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config){var c=this.config[b];this.constructor.Default[b]!==c&&(a[b]=c)}return a}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b?b:null;(c||!/destroy|hide/.test(b))&&(c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]())})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return c}},{key:"DATA_KEY",get:function(){return g}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return m}}]),i}();return a.fn[c]=u._jQueryInterface,a.fn[c].Constructor=u,a.fn[c].noConflict=function(){return a.fn[c]=i,u._jQueryInterface},u}(jQuery));!function(e){var g="popover",h="4.0.0",i="bs.popover",j="."+i,k=e.fn[g],l=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),m=e.extend({},f.DefaultType,{content:"(string|function)"}),n={FADE:"fade",IN:"in"},o={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},p={HIDE:"hide"+j,HIDDEN:"hidden"+j,SHOW:"show"+j,SHOWN:"shown"+j,INSERTED:"inserted"+j,CLICK:"click"+j,FOCUSIN:"focusin"+j,FOCUSOUT:"focusout"+j,MOUSEENTER:"mouseenter"+j,MOUSELEAVE:"mouseleave"+j},q=function(f){function k(){b(this,k),c(Object.getPrototypeOf(k.prototype),"constructor",this).apply(this,arguments)}return a(k,f),d(k,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||e(this.config.template)[0]}},{key:"setContent",value:function(){var a=this.getTipElement(),b=this.getTitle(),c=this._getContent(),d=e(a).find(o.TITLE)[0];d&&(d[this.config.html?"innerHTML":"innerText"]=b),e(a).find(o.CONTENT).children().detach().end()[this.config.html?"string"==typeof c?"html":"append":"text"](c),e(a).removeClass(n.FADE).removeClass(n.IN),this.cleanupTether()}},{key:"_getContent",value:function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)}}],[{key:"_jQueryInterface",value:function(a){return this.each(function(){var b=e(this).data(i),c="object"==typeof a?a:null;(b||!/destroy|hide/.test(a))&&(b||(b=new k(this,c),e(this).data(i,b)),"string"==typeof a&&b[a]())})}},{key:"VERSION",get:function(){return h}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return g}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return j}},{key:"DefaultType",get:function(){return m}}]),k}(f);return e.fn[g]=q._jQueryInterface,e.fn[g].Constructor=q,e.fn[g].noConflict=function(){return e.fn[g]=k,q._jQueryInterface},q}(jQuery)}}(jQuery); \ No newline at end of file diff --git a/docs/assets/css/docs.min.css b/docs/assets/css/docs.min.css index e269d38eac..088616f0a7 100644 --- a/docs/assets/css/docs.min.css +++ b/docs/assets/css/docs.min.css @@ -3,5 +3,5 @@ * Copyright 2011-2014 Twitter, Inc. * Licensed under the Creative Commons Attribution 3.0 Unported License. For * details, see http://creativecommons.org/licenses/by/3.0/. - */.ge,.sd{font-style:italic}.bd-content>table{display:block;width:100%;max-width:100%;overflow-y:auto;margin-bottom:1rem}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;line-height:1.5;vertical-align:top;border:1px solid #eceeef}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-pageheader{padding:2rem .75rem;margin-bottom:3rem;color:#cdbfe3;background-color:#563d7c}.bd-pageheader .container{position:relative}.bd-pageheader h1{font-size:3rem;font-weight:400;color:#fff}.bd-pageheader p{margin-bottom:0;font-size:1.5rem}@media (min-width:34em){.bd-pageheader{padding-top:4rem;padding-bottom:4rem}.bd-pageheader .carbonad{margin:2rem 0 0!important}}@media (min-width:48em){.bd-pageheader h1{font-size:4rem}}@media (min-width:62em){.bd-pageheader h1,.bd-pageheader p{margin-right:380px}.bd-pageheader .carbonad{position:absolute;top:0;right:.75rem;margin:0!important}}.bd-example,.bd-masthead,.bd-search{position:relative}#markdown-toc ul,.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}#markdown-toc ul,.bd-search-results>li:first-child{margin-top:.25rem}@media (min-width:34em){.bd-title{font-size:3rem}.bd-title+p{font-size:1.25rem;font-weight:300}}#markdown-toc>li:first-child{display:none}#markdown-toc ul{padding-left:2rem}@media (min-width:48em){.bd-sidebar{padding-left:1rem}}.bd-search{margin-bottom:1.5rem}.bd-search .form-control{height:2.45rem;padding-top:.4rem;padding-bottom:.4rem;background-color:#fafafa}.bd-search .form-control:focus{background-color:#fff}.bd-search-results{right:0;display:block;padding:0;overflow:hidden;font-size:.9rem}.bd-search-results:empty{display:none}.bd-search-results>li>a{padding-left:.75rem;padding-right:.75rem}.bd-search-results>li:last-child{margin-bottom:.25rem}.bd-search-results>.no-results{padding:.75rem 1rem;color:#7a7a7a;text-align:center}.bd-sidenav{display:none}.bd-toc-link{display:block;padding:.25rem .75rem;color:#55595c}.bd-toc-link:focus,.bd-toc-link:hover{color:#0275d8;text-decoration:none}.active>.bd-toc-link{font-weight:500;color:#373a3c}.active>.bd-sidenav{display:block}.bd-toc-item.active{margin-top:1rem;margin-bottom:1rem}.bd-toc-item:first-child{margin-top:0}.bd-toc-item:last-child{margin-bottom:2rem}.bd-sidebar .nav>li>a{display:block;padding:.25rem .75rem;font-size:90%;color:#99979c}.bd-sidebar .nav>li>a:focus,.bd-sidebar .nav>li>a:hover{color:#0275d8;text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:focus>a,.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:500;color:#373a3c;background-color:transparent}.bd-booticon{display:block;width:9rem;height:9rem;font-size:6.5rem;line-height:9rem;color:#fff;text-align:center;cursor:default;background-color:#563d7c;border-radius:15%}.bd-booticon.inverse{color:#563d7c;background-color:#fff}.bd-booticon.outline{background-color:transparent;border:1px solid #cdbfe3}.bd-navbar{padding-top:1rem;padding-bottom:1rem;margin-bottom:0}.bd-navbar .nav-link{color:#8e869d}.bd-navbar .nav-link.active,.bd-navbar .nav-link:focus,.bd-navbar .nav-link:hover{color:#373a3c;background-color:transparent}.bd-navbar .nav-link.active{font-weight:500}.bd-masthead{padding:.9375rem;color:#cdbfe3;text-align:center;background:-webkit-linear-gradient(315deg,#322449,#563d7c,#7952b3);background:-o-linear-gradient(315deg,#322449,#563d7c,#7952b3);background:linear-gradient(135deg,#322449,#563d7c,#7952b3)}.bd-featurette .highlight,.carbonad{text-align:left}.bd-masthead .bd-booticon{margin:0 auto 2rem;color:#cdbfe3;border-color:#cdbfe3}.bd-masthead h1{font-weight:300;line-height:1}.bd-masthead .lead{margin-left:auto;margin-right:auto;margin-bottom:2rem;font-size:1rem;color:#fff}.bd-masthead .version{margin-top:-1rem;margin-bottom:2rem}.bd-masthead .btn{width:100%;padding:1rem 2rem;font-size:1.25rem;font-weight:500;color:#ffe484;border-color:#ffe484}.bd-masthead .btn:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.bd-masthead .carbonad{margin-bottom:-2rem!important}@media (min-width:34em){.bd-masthead{padding-top:8rem;padding-bottom:2rem}.bd-masthead .btn{width:auto}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:48em){.bd-masthead{padding-bottom:4rem}.bd-masthead .bd-header{margin-bottom:4rem}.bd-masthead h1{font-size:4rem}.bd-masthead .lead{font-size:1.5rem}.bd-masthead .carbonad{margin-top:3rem!important}}@media (min-width:62em){.bd-masthead .lead{width:85%;font-size:2rem}}.bd-featurette{padding-top:3rem;padding-bottom:3rem;font-size:1rem;line-height:1.5;color:#555;background-color:#fff;border-top:1px solid #eee}.bd-featurette-title{margin-bottom:.5rem;font-size:2rem;font-weight:400;color:#333}.bd-featurette-title+.lead{font-size:1.5rem;margin-bottom:2rem}.half-rule{width:6rem;margin:2.5rem 0}.carbonad,.carbonad-tag,.carbonad-text{width:auto!important;height:auto!important;font-family:inherit!important}.bd-featurette h4{margin-top:1rem;margin-bottom:.5rem;font-weight:400;color:#333}.bd-featurette-img{display:block;margin-bottom:1.25rem;color:#333}.bd-featurette-img:hover{color:#0275d8;text-decoration:none}.bd-featurette-img img{display:block;margin-bottom:1rem}@media (min-width:480px){.bd-featurette .img-responsive{margin-top:2rem}}@media (min-width:768px){.bd-featurette{padding-top:6rem;padding-bottom:6rem}.bd-featurette-title{font-size:2.5rem}.bd-featurette .lead{max-width:80%}.bd-featurette .img-responsive{margin-top:0}}.bd-featured-sites{margin-right:-1px;margin-left:-1px}.bd-featured-sites .col-xs-6{padding:1px}.bd-featured-sites .img-responsive{margin-top:0}@media (min-width:768px){.bd-featured-sites .col-sm-3:first-child img{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.bd-featured-sites .col-sm-3:last-child img{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}}.carbonad{padding:1.25rem!important;margin:2rem -1.5rem -2rem!important;overflow:hidden;font-size:.8rem!important;line-height:1rem!important;color:#cdbfe3!important;background:#3e2c5a!important;border:0!important}.bd-masthead .carbonad{background:#2a2730!important}.carbonad-img{margin:0!important}.carbonad-tag,.carbonad-text{display:block!important;float:none!important;margin-left:145px!important}.carbonad-text{padding-top:0!important}.carbonad-tag{color:inherit!important;text-align:left!important}.carbonad-tag a,.carbonad-tag a:hover,.carbonad-text a,.carbonad-text a:hover{color:#fff!important}.carbonad #azcarbon>img{display:none}.bd-footer-links li,.bd-social-buttons{display:inline-block}@media (min-width:34em){.carbonad{width:330px!important;padding:1rem!important;margin-right:auto!important;margin-left:auto!important;border-radius:.25rem}}.bd-footer{padding:4rem 0;margin-top:4rem;font-size:85%;background-color:#f7f7f7;text-align:center}.bd-footer a{font-weight:500;color:#55595c}.bd-footer a:hover{color:#0275d8}.bd-footer p{margin-bottom:0}@media (min-width:34em){.bd-footer{text-align:left}}.bd-brand-item,.bd-example-tooltips,.responsive-utilities td{text-align:center}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li+li{margin-left:1rem}.bd-social{margin-bottom:1.5rem;margin-left:-.5rem}.bd-social-buttons{padding-left:0;margin-bottom:0;list-style:none}.bd-social-buttons li{display:inline-block;padding:.25rem .5rem;line-height:1}.bd-social-buttons .twitter-follow-button{width:225px!important}.bd-social-buttons .twitter-share-button{width:98px!important}.github-btn{overflow:hidden;border:0}.bd-example-row .row{margin-bottom:1rem}.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-container{min-width:16rem;max-width:25rem;margin-left:auto;margin-right:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#daeeff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#fae3c4;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{padding:1rem;margin:1rem -1rem;border:solid #f7f7f9;border-width:.2rem 0 0}.bd-example:after,.bd-example:before{content:" ";display:table}.bd-example:after{clear:both}@media (min-width:34em){.bd-example{margin-left:0;margin-right:0;margin-bottom:0;padding:1.5rem;border-width:.2rem}}.bd-example+.highlight,.bd-example+.zero-clipboard+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .container{width:auto}.bd-example>.card{max-width:20rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.table-responsive:last-child>.table,.bd-example>:last-child{margin-bottom:0!important}.bd-example>.close{float:none}.bd-example-type .table .type-info{color:#999;vertical-align:middle}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img{margin-left:.5rem}.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select,.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example .navbar:last-child{margin-bottom:0}.bd-navbar-bottom-example,.bd-navbar-top-example{z-index:1;padding:0;overflow:hidden}.bd-navbar-bottom-example .navbar-header,.bd-navbar-top-example .navbar-header{margin-left:0}.bd-navbar-bottom-example .navbar-fixed-bottom,.bd-navbar-top-example .navbar-fixed-top{position:relative;margin-right:0;margin-left:0}.bd-navbar-top-example{padding-bottom:45px}.bd-navbar-top-example .navbar-fixed-top{top:-1px}.bd-navbar-bottom-example{padding-top:45px}.bd-navbar-bottom-example .navbar-fixed-bottom{bottom:-1px}.bd-navbar-bottom-example .navbar{margin-bottom:0}@media (min-width:768px){.bd-navbar-bottom-example .navbar-fixed-bottom,.bd-navbar-top-example .navbar-fixed-top{position:absolute}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.bd-example>.pager{margin-top:0}.bd-example-modal{background-color:#f5f5f5}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example>.dropdown>.dropdown-toggle{float:left}.bd-example>.dropdown>.dropdown-menu{position:static;display:block;margin-bottom:.25rem;clear:left}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-tooltips>.btn{margin-top:.25rem;margin-bottom:.25rem}.bd-example-popover{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.bd-example-tooltip .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.bd-example>.center-block:not(img){max-width:200px;padding:.5rem;background-color:#eee}.bd-example>.bg-danger,.bd-example>.bg-info,.bd-example>.bg-primary,.bd-example>.bg-success,.bd-example>.bg-warning{padding:.5rem;margin-top:.5rem;margin-bottom:.5rem}.highlight{padding:1rem;margin:1rem -1rem;background-color:#f7f7f9}@media (min-width:34em){.highlight{padding:1.5rem;margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#373a3c}#focusedInput{border-color:#66afe9;outline:0;outline:dotted thin\9;-webkit-box-shadow:0 0 .5rem rgba(102,175,233,.6);box-shadow:0 0 .5rem rgba(102,175,233,.6)}.table-responsive .highlight pre{white-space:normal}.bd-table th small,.responsive-utilities th small{display:block;font-weight:400;color:#999}.responsive-utilities tbody th{font-weight:400}.responsive-utilities td.is-visible{color:#468847;background-color:#dff0d8!important}.responsive-utilities td.is-hidden{color:#ccc;background-color:#f9f9f9!important}.responsive-utilities-test{margin-top:.25rem}.responsive-utilities-test .col-xs-6{margin-bottom:.5rem}.responsive-utilities-test span{display:block;padding:1rem .5rem;font-size:1rem;font-weight:700;line-height:1.1;text-align:center;border-radius:.25rem}.hidden-on .col-xs-6>.not-visible,.visible-on .col-xs-6>.not-visible{color:#999;border:1px solid #ddd}.hidden-on .col-xs-6 .visible,.visible-on .col-xs-6 .visible{color:#468847;background-color:#dff0d8;border:1px solid #d6e9c6}@media (max-width:33.9em){.hidden-xs-only{display:none!important}}@media (min-width:34em) and (max-width:47.9em){.hidden-sm-only{display:none!important}}@media (min-width:48em) and (max-width:61.9em){.hidden-md-only{display:none!important}}@media (min-width:62em) and (max-width:74.9em){.hidden-lg-only{display:none!important}}@media (min-width:75em){.hidden-xl-only{display:none!important}}.btn-bs{color:#926ccd;border-color:#926ccd}.btn-bs:active,.btn-bs:focus,.btn-bs:hover{color:#fff;background-color:#926ccd;border-color:#926ccd}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-brand-logos,.bd-callout code,.btn-clipboard{border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-examples .img-thumbnail{margin-bottom:.75rem}.bd-examples h4{margin-bottom:.25rem}.bd-examples p{margin-bottom:1.25rem}@media (max-width:480px){.bd-examples{margin-right:-.75rem;margin-left:-.75rem}.bd-examples>[class^=col-]{padding-right:.75rem;padding-left:.75rem}}.bd-team{margin-bottom:1.5rem}.bd-team .team-member{line-height:2rem;color:#555}.bd-team .team-member:hover{color:#333;text-decoration:none}.bd-team .github-btn{float:right;width:180px;height:1.25rem;margin-top:.25rem}.bd-team img,.color-swatch{float:left;border-radius:.25rem}.bd-team img{width:2rem;margin-right:.5rem}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9}.bd-brand-logos .inverse,.color-swatches .bd-purple{background-color:#563d7c}.bd-brand-item{padding:4rem 0}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-logos .inverse{color:#fff}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}.bd-brand-item .bd-booticon{margin-right:auto;margin-left:auto}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatch{width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem}.color-swatches .bd-purple-light{background-color:#cdbfe3}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.zero-clipboard{position:relative;display:none;float:right}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;cursor:pointer;background-color:transparent}.btn-clipboard-hover{color:#fff;background-color:#027de7}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}.zero-clipboard{display:block}}.hll{background-color:#ffc}.c{color:#999}.err{color:#A00;background-color:#FAA}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1,.cs{color:#999}.gd{background-color:#FCC;border:1px solid #C00}.gr{color:red}.gh{color:#030}.gi{background-color:#CFC;border:1px solid #0C0}.go{color:#AAA}.gp{color:#009}.gu{color:#030}.gt{color:#9C6}.kc,.kd,.kn,.kp,.kr{color:#069}.kt{color:#078}.m{color:#F60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0A8}.no{color:#360}.nd{color:#99F}.ni{color:#999}.ne{color:#C00}.nf{color:#C0F}.nl{color:#99F}.nn{color:#0CF}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf,.mh,.mi,.mo{color:#F60}.s2,.sb,.sc,.sd,.se,.sh{color:#C30}.si{color:#A00}.sx{color:#C30}.sr{color:#3AA}.s1{color:#C30}.ss{color:#FC3}.bp{color:#366}.vc,.vg,.vi{color:#033}.il{color:#F60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}.anchorjs-link{color:inherit}@media (max-width:480px){.anchorjs-link{display:none}}:hover>.anchorjs-link{opacity:.75;-webkit-transition:color .16s linear;-o-transition:color .16s linear;transition:color .16s linear}.anchorjs-link:focus,:hover>.anchorjs-link:hover{text-decoration:none;opacity:1} + */.ge,.sd{font-style:italic}.bd-content>table{display:block;width:100%;max-width:100%;overflow-y:auto;margin-bottom:1rem}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;line-height:1.5;vertical-align:top;border:1px solid #eceeef}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-pageheader{padding:2rem .75rem;margin-bottom:3rem;color:#cdbfe3;background-color:#563d7c}.bd-pageheader .container{position:relative}.bd-pageheader h1{font-size:3rem;font-weight:400;color:#fff}.bd-pageheader p{margin-bottom:0;font-size:1.5rem}@media (min-width:34em){.bd-pageheader{padding-top:4rem;padding-bottom:4rem}.bd-pageheader .carbonad{margin:2rem 0 0!important}}@media (min-width:48em){.bd-pageheader h1{font-size:4rem}}@media (min-width:62em){.bd-pageheader h1,.bd-pageheader p{margin-right:380px}.bd-pageheader .carbonad{position:absolute;top:0;right:.75rem;margin:0!important}}.bd-example,.bd-masthead,.bd-search{position:relative}#markdown-toc ul,.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}#markdown-toc ul,.bd-search-results>li:first-child{margin-top:.25rem}@media (min-width:34em){.bd-title{font-size:3rem}.bd-title+p{font-size:1.25rem;font-weight:300}}#markdown-toc>li:first-child{display:none}#markdown-toc ul{padding-left:2rem}@media (min-width:48em){.bd-sidebar{padding-left:1rem}}.bd-search{margin-bottom:1.5rem}.bd-search .form-control{height:2.45rem;padding-top:.4rem;padding-bottom:.4rem;background-color:#fafafa}.bd-search .form-control:focus{background-color:#fff}.bd-search-results{right:0;display:block;padding:0;overflow:hidden;font-size:.9rem}.bd-search-results:empty{display:none}.bd-search-results>li>a{padding-left:.75rem;padding-right:.75rem}.bd-search-results>li:last-child{margin-bottom:.25rem}.bd-search-results>.no-results{padding:.75rem 1rem;color:#7a7a7a;text-align:center}.bd-sidenav{display:none}.bd-toc-link{display:block;padding:.25rem .75rem;color:#55595c}.bd-toc-link:focus,.bd-toc-link:hover{color:#0275d8;text-decoration:none}.active>.bd-toc-link{font-weight:500;color:#373a3c}.active>.bd-sidenav{display:block}.bd-toc-item.active{margin-top:1rem;margin-bottom:1rem}.bd-toc-item:first-child{margin-top:0}.bd-toc-item:last-child{margin-bottom:2rem}.bd-sidebar .nav>li>a{display:block;padding:.25rem .75rem;font-size:90%;color:#99979c}.bd-sidebar .nav>li>a:focus,.bd-sidebar .nav>li>a:hover{color:#0275d8;text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:focus>a,.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:500;color:#373a3c;background-color:transparent}.bd-booticon{display:block;width:9rem;height:9rem;font-size:6.5rem;line-height:9rem;color:#fff;text-align:center;cursor:default;background-color:#563d7c;border-radius:15%}.bd-booticon.inverse{color:#563d7c;background-color:#fff}.bd-booticon.outline{background-color:transparent;border:1px solid #cdbfe3}.bd-navbar{padding-top:1rem;padding-bottom:1rem;margin-bottom:0}.bd-navbar .nav-link{color:#8e869d}.bd-navbar .nav-link.active,.bd-navbar .nav-link:focus,.bd-navbar .nav-link:hover{color:#373a3c;background-color:transparent}.bd-navbar .nav-link.active{font-weight:500}.bd-masthead{padding:.9375rem;color:#cdbfe3;text-align:center;background:-webkit-linear-gradient(135deg,#322449,#563d7c,#7952b3);background:linear-gradient(135deg,#322449,#563d7c,#7952b3)}.bd-featurette .highlight,.carbonad{text-align:left}.bd-masthead .bd-booticon{margin:0 auto 2rem;color:#cdbfe3;border-color:#cdbfe3}.bd-masthead h1{font-weight:300;line-height:1}.bd-masthead .lead{margin-left:auto;margin-right:auto;margin-bottom:2rem;font-size:1rem;color:#fff}.bd-masthead .version{margin-top:-1rem;margin-bottom:2rem}.bd-masthead .btn{width:100%;padding:1rem 2rem;font-size:1.25rem;font-weight:500;color:#ffe484;border-color:#ffe484}.bd-masthead .btn:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.bd-masthead .carbonad{margin-bottom:-2rem!important}@media (min-width:34em){.bd-masthead{padding-top:8rem;padding-bottom:2rem}.bd-masthead .btn{width:auto}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:48em){.bd-masthead{padding-bottom:4rem}.bd-masthead .bd-header{margin-bottom:4rem}.bd-masthead h1{font-size:4rem}.bd-masthead .lead{font-size:1.5rem}.bd-masthead .carbonad{margin-top:3rem!important}}@media (min-width:62em){.bd-masthead .lead{width:85%;font-size:2rem}}.bd-featurette{padding-top:3rem;padding-bottom:3rem;font-size:1rem;line-height:1.5;color:#555;background-color:#fff;border-top:1px solid #eee}.bd-featurette-title{margin-bottom:.5rem;font-size:2rem;font-weight:400;color:#333}.bd-featurette-title+.lead{font-size:1.5rem;margin-bottom:2rem}.half-rule{width:6rem;margin:2.5rem 0}.carbonad,.carbonad-tag,.carbonad-text{width:auto!important;height:auto!important;font-family:inherit!important}.bd-featurette h4{margin-top:1rem;margin-bottom:.5rem;font-weight:400;color:#333}.bd-featurette-img{display:block;margin-bottom:1.25rem;color:#333}.bd-featurette-img:hover{color:#0275d8;text-decoration:none}.bd-featurette-img img{display:block;margin-bottom:1rem}@media (min-width:480px){.bd-featurette .img-responsive{margin-top:2rem}}@media (min-width:768px){.bd-featurette{padding-top:6rem;padding-bottom:6rem}.bd-featurette-title{font-size:2.5rem}.bd-featurette .lead{max-width:80%}.bd-featurette .img-responsive{margin-top:0}}.bd-featured-sites{margin-right:-1px;margin-left:-1px}.bd-featured-sites .col-xs-6{padding:1px}.bd-featured-sites .img-responsive{margin-top:0}@media (min-width:768px){.bd-featured-sites .col-sm-3:first-child img{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.bd-featured-sites .col-sm-3:last-child img{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}}.carbonad{padding:1.25rem!important;margin:2rem -1.5rem -2rem!important;overflow:hidden;font-size:.8rem!important;line-height:1rem!important;color:#cdbfe3!important;background:#3e2c5a!important;border:0!important}.bd-masthead .carbonad{background:#2a2730!important}.carbonad-img{margin:0!important}.carbonad-tag,.carbonad-text{display:block!important;float:none!important;margin-left:145px!important}.carbonad-text{padding-top:0!important}.carbonad-tag{color:inherit!important;text-align:left!important}.carbonad-tag a,.carbonad-tag a:hover,.carbonad-text a,.carbonad-text a:hover{color:#fff!important}.carbonad #azcarbon>img{display:none}.bd-footer-links li,.bd-social-buttons{display:inline-block}@media (min-width:34em){.carbonad{width:330px!important;padding:1rem!important;margin-right:auto!important;margin-left:auto!important;border-radius:.25rem}}.bd-footer{padding:4rem 0;margin-top:4rem;font-size:85%;background-color:#f7f7f7;text-align:center}.bd-footer a{font-weight:500;color:#55595c}.bd-footer a:hover{color:#0275d8}.bd-footer p{margin-bottom:0}@media (min-width:34em){.bd-footer{text-align:left}}.bd-brand-item,.bd-example-tooltips,.responsive-utilities td{text-align:center}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li+li{margin-left:1rem}.bd-social{margin-bottom:1.5rem;margin-left:-.5rem}.bd-social-buttons{padding-left:0;margin-bottom:0;list-style:none}.bd-social-buttons li{display:inline-block;padding:.25rem .5rem;line-height:1}.bd-social-buttons .twitter-follow-button{width:225px!important}.bd-social-buttons .twitter-share-button{width:98px!important}.github-btn{overflow:hidden;border:0}.bd-example-row .row{margin-bottom:1rem}.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-container{min-width:16rem;max-width:25rem;margin-left:auto;margin-right:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#daeeff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#fae3c4;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{padding:1rem;margin:1rem -1rem;border:solid #f7f7f9;border-width:.2rem 0 0}.bd-example:after,.bd-example:before{content:" ";display:table}.bd-example:after{clear:both}@media (min-width:34em){.bd-example{margin-left:0;margin-right:0;margin-bottom:0;padding:1.5rem;border-width:.2rem}}.bd-example+.highlight,.bd-example+.zero-clipboard+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .container{width:auto}.bd-example>.card{max-width:20rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.table-responsive:last-child>.table,.bd-example>:last-child{margin-bottom:0!important}.bd-example>.close{float:none}.bd-example-type .table .type-info{color:#999;vertical-align:middle}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img{margin-left:.5rem}.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select,.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example .navbar:last-child{margin-bottom:0}.bd-navbar-bottom-example,.bd-navbar-top-example{z-index:1;padding:0;overflow:hidden}.bd-navbar-bottom-example .navbar-header,.bd-navbar-top-example .navbar-header{margin-left:0}.bd-navbar-bottom-example .navbar-fixed-bottom,.bd-navbar-top-example .navbar-fixed-top{position:relative;margin-right:0;margin-left:0}.bd-navbar-top-example{padding-bottom:45px}.bd-navbar-top-example .navbar-fixed-top{top:-1px}.bd-navbar-bottom-example{padding-top:45px}.bd-navbar-bottom-example .navbar-fixed-bottom{bottom:-1px}.bd-navbar-bottom-example .navbar{margin-bottom:0}@media (min-width:768px){.bd-navbar-bottom-example .navbar-fixed-bottom,.bd-navbar-top-example .navbar-fixed-top{position:absolute}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.bd-example>.pager{margin-top:0}.bd-example-modal{background-color:#f5f5f5}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example>.dropdown>.dropdown-toggle{float:left}.bd-example>.dropdown>.dropdown-menu{position:static;display:block;margin-bottom:.25rem;clear:left}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-tooltips>.btn{margin-top:.25rem;margin-bottom:.25rem}.bd-example-popover{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.bd-example-tooltip .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.bd-example>.center-block:not(img){max-width:200px;padding:.5rem;background-color:#eee}.bd-example>.bg-danger,.bd-example>.bg-info,.bd-example>.bg-primary,.bd-example>.bg-success,.bd-example>.bg-warning{padding:.5rem;margin-top:.5rem;margin-bottom:.5rem}.highlight{padding:1rem;margin:1rem -1rem;background-color:#f7f7f9}@media (min-width:34em){.highlight{padding:1.5rem;margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#373a3c}#focusedInput{border-color:#66afe9;outline:0;outline:dotted thin\9;box-shadow:0 0 .5rem rgba(102,175,233,.6)}.table-responsive .highlight pre{white-space:normal}.bd-table th small,.responsive-utilities th small{display:block;font-weight:400;color:#999}.responsive-utilities tbody th{font-weight:400}.responsive-utilities td.is-visible{color:#468847;background-color:#dff0d8!important}.responsive-utilities td.is-hidden{color:#ccc;background-color:#f9f9f9!important}.responsive-utilities-test{margin-top:.25rem}.responsive-utilities-test .col-xs-6{margin-bottom:.5rem}.responsive-utilities-test span{display:block;padding:1rem .5rem;font-size:1rem;font-weight:700;line-height:1.1;text-align:center;border-radius:.25rem}.hidden-on .col-xs-6>.not-visible,.visible-on .col-xs-6>.not-visible{color:#999;border:1px solid #ddd}.hidden-on .col-xs-6 .visible,.visible-on .col-xs-6 .visible{color:#468847;background-color:#dff0d8;border:1px solid #d6e9c6}@media (max-width:33.9em){.hidden-xs-only{display:none!important}}@media (min-width:34em) and (max-width:47.9em){.hidden-sm-only{display:none!important}}@media (min-width:48em) and (max-width:61.9em){.hidden-md-only{display:none!important}}@media (min-width:62em) and (max-width:74.9em){.hidden-lg-only{display:none!important}}@media (min-width:75em){.hidden-xl-only{display:none!important}}.btn-bs{color:#926ccd;border-color:#926ccd}.btn-bs:active,.btn-bs:focus,.btn-bs:hover{color:#fff;background-color:#926ccd;border-color:#926ccd}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout code{border-radius:.25rem}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-examples .img-thumbnail{margin-bottom:.75rem}.bd-examples h4{margin-bottom:.25rem}.bd-examples p{margin-bottom:1.25rem}@media (max-width:480px){.bd-examples{margin-right:-.75rem;margin-left:-.75rem}.bd-examples>[class^=col-]{padding-right:.75rem;padding-left:.75rem}}.bd-team{margin-bottom:1.5rem}.bd-team .team-member{line-height:2rem;color:#555}.bd-team .team-member:hover{color:#333;text-decoration:none}.bd-team .github-btn{float:right;width:180px;height:1.25rem;margin-top:.25rem}.bd-team img,.color-swatch{float:left;border-radius:.25rem}.bd-team img{width:2rem;margin-right:.5rem}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9;border-radius:.25rem}.bd-brand-logos .inverse,.color-swatches .bd-purple{background-color:#563d7c}.bd-brand-item{padding:4rem 0}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-logos .inverse{color:#fff}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}.bd-brand-item .bd-booticon{margin-right:auto;margin-left:auto}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatch{width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem}.color-swatches .bd-purple-light{background-color:#cdbfe3}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.zero-clipboard{position:relative;display:none;float:right}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;cursor:pointer;background-color:transparent;border-radius:.25rem}.btn-clipboard-hover{color:#fff;background-color:#027de7}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}.zero-clipboard{display:block}}.hll{background-color:#ffc}.c{color:#999}.err{color:#A00;background-color:#FAA}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1,.cs{color:#999}.gd{background-color:#FCC;border:1px solid #C00}.gr{color:red}.gh{color:#030}.gi{background-color:#CFC;border:1px solid #0C0}.go{color:#AAA}.gp{color:#009}.gu{color:#030}.gt{color:#9C6}.kc,.kd,.kn,.kp,.kr{color:#069}.kt{color:#078}.m{color:#F60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0A8}.no{color:#360}.nd{color:#99F}.ni{color:#999}.ne{color:#C00}.nf{color:#C0F}.nl{color:#99F}.nn{color:#0CF}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf,.mh,.mi,.mo{color:#F60}.s2,.sb,.sc,.sd,.se,.sh{color:#C30}.si{color:#A00}.sx{color:#C30}.sr{color:#3AA}.s1{color:#C30}.ss{color:#FC3}.bp{color:#366}.vc,.vg,.vi{color:#033}.il{color:#F60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}.anchorjs-link{color:inherit}@media (max-width:480px){.anchorjs-link{display:none}}:hover>.anchorjs-link{opacity:.75;-webkit-transition:color .16s linear;-o-transition:color .16s linear;transition:color .16s linear}.anchorjs-link:focus,:hover>.anchorjs-link:hover{text-decoration:none;opacity:1} /*# sourceMappingURL=docs.min.css.map */ \ No newline at end of file diff --git a/docs/assets/css/docs.min.css.map b/docs/assets/css/docs.min.css.map index c005bc1d76..8619284868 100644 --- a/docs/assets/css/docs.min.css.map +++ b/docs/assets/css/docs.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["docs/assets/css/docs.min.css"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["../scss/_syntax.scss","../scss/_layout.scss","../../../scss/_variables.scss","../scss/docs.scss","../../../scss/mixins/_breakpoints.scss","../scss/_component-examples.scss","../scss/_homepage.scss","../scss/_sidebar.scss","../scss/_booticon.scss","../scss/_ads.scss","../scss/_footer.scss","../scss/_social-buttons.scss","../scss/_brand.scss","../scss/_responsive-tests.scss","../../../scss/mixins/_clearfix.scss","../scss/_buttons.scss","../scss/_callouts.scss","../scss/_examples.scss","../scss/_team.scss","../scss/_zeroclipboard.scss","../scss/_browser-bugs.scss","../scss/_anchor.scss"],"names":[],"mappings":"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"} \ No newline at end of file