diff options
Diffstat (limited to 'assets')
56 files changed, 1221 insertions, 1142 deletions
diff --git a/assets/javascripts/bootstrap-sprockets.js b/assets/javascripts/bootstrap-sprockets.js index b62c1db..beb45e3 100644 --- a/assets/javascripts/bootstrap-sprockets.js +++ b/assets/javascripts/bootstrap-sprockets.js @@ -1,16 +1,15 @@ //= require ./bootstrap/dom/data //= require ./bootstrap/dom/event-handler //= require ./bootstrap/dom/manipulator +//= require ./bootstrap/toast //= require ./bootstrap/dom/selector-engine -//= require ./bootstrap/collapse -//= require ./bootstrap/dom/polyfill -//= require ./bootstrap/modal -//= require ./bootstrap/alert //= require ./bootstrap/dropdown +//= require ./bootstrap/alert //= require ./bootstrap/tooltip -//= require ./bootstrap/toast +//= require ./bootstrap/collapse +//= require ./bootstrap/modal +//= require ./bootstrap/tab //= require ./bootstrap/scrollspy //= require ./bootstrap/button -//= require ./bootstrap/popover -//= require ./bootstrap/tab //= require ./bootstrap/carousel +//= require ./bootstrap/popover diff --git a/assets/javascripts/bootstrap.js b/assets/javascripts/bootstrap.js index 0f7f2b5..55fe6f7 100644 --- a/assets/javascripts/bootstrap.js +++ b/assets/javascripts/bootstrap.js @@ -1,5 +1,5 @@ /*! - * Bootstrap v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -55,7 +55,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -228,9 +228,17 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/data.js + * Bootstrap (v5.0.0-alpha3): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -295,81 +303,9 @@ } }; - /* istanbul ignore file */ - var find = Element.prototype.querySelectorAll; - var findOne = Element.prototype.querySelector; // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - - var defaultPreventedPreservedOnDispatch = function () { - var e = new CustomEvent('Bootstrap', { - cancelable: true - }); - var element = document.createElement('div'); - element.addEventListener('Bootstrap', function () { - return null; - }); - e.preventDefault(); - element.dispatchEvent(e); - return e.defaultPrevented; - }(); - - var scopeSelectorRegex = /:scope\b/; - - var supportScopeQuery = function () { - var element = document.createElement('div'); - - try { - element.querySelectorAll(':scope *'); - } catch (_) { - return false; - } - - return true; - }(); - - if (!supportScopeQuery) { - find = function find(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelectorAll(selector); - } - - var hasId = Boolean(this.id); - - if (!hasId) { - this.id = getUID('scope'); - } - - var nodeList = null; - - try { - selector = selector.replace(scopeSelectorRegex, "#" + this.id); - nodeList = this.querySelectorAll(selector); - } finally { - if (!hasId) { - this.removeAttribute('id'); - } - } - - return nodeList; - }; - - findOne = function findOne(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelector(selector); - } - - var matches = find.call(this, selector); - - if (typeof matches[0] !== 'undefined') { - return matches[0]; - } - - return null; - }; - } - /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/event-handler.js + * Bootstrap (v5.0.0-alpha3): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -379,7 +315,6 @@ * ------------------------------------------------------------------------ */ - var $ = getjQuery(); var namespaceRegex = /[^.]*(?=\..*)\.|.*/; var stripNameRegex = /\..*/; var stripUidRegex = /::\d+$/; @@ -588,6 +523,7 @@ return null; } + var $ = getjQuery(); var typeEvent = event.replace(stripNameRegex, ''); var inNamespace = event !== typeEvent; var isNative = nativeEvents.indexOf(typeEvent) > -1; @@ -628,14 +564,6 @@ if (defaultPrevented) { evt.preventDefault(); - - if (!defaultPreventedPreservedOnDispatch) { - Object.defineProperty(evt, 'defaultPrevented', { - get: function get() { - return true; - } - }); - } } if (nativeDispatch) { @@ -657,7 +585,7 @@ */ var NAME = 'alert'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.alert'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -785,26 +713,28 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); - var $$1 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .alert to jQuery only if jQuery is present + * add .Alert to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$1) { - var JQUERY_NO_CONFLICT = $$1.fn[NAME]; - $$1.fn[NAME] = Alert.jQueryInterface; - $$1.fn[NAME].Constructor = Alert; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Alert.jQueryInterface; + $.fn[NAME].Constructor = Alert; - $$1.fn[NAME].noConflict = function () { - $$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Alert.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -813,7 +743,7 @@ */ var NAME$1 = 'button'; - var VERSION$1 = '5.0.0-alpha2'; + var VERSION$1 = '5.0.0-alpha3'; var DATA_KEY$1 = 'bs.button'; var EVENT_KEY$1 = "." + DATA_KEY$1; var DATA_API_KEY$1 = '.data-api'; @@ -892,30 +822,32 @@ data.toggle(); }); - var $$2 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .button to jQuery only if jQuery is present + * add .Button to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$2) { - var JQUERY_NO_CONFLICT$1 = $$2.fn[NAME$1]; - $$2.fn[NAME$1] = Button.jQueryInterface; - $$2.fn[NAME$1].Constructor = Button; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$1]; + $.fn[NAME$1] = Button.jQueryInterface; + $.fn[NAME$1].Constructor = Button; - $$2.fn[NAME$1].noConflict = function () { - $$2.fn[NAME$1] = JQUERY_NO_CONFLICT$1; - return Button.jQueryInterface; - }; - } + $.fn[NAME$1].noConflict = function () { + $.fn[NAME$1] = JQUERY_NO_CONFLICT; + return Button.jQueryInterface; + }; + } + }); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/manipulator.js + * Bootstrap (v5.0.0-alpha3): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -979,52 +911,41 @@ top: element.offsetTop, left: element.offsetLeft }; - }, - toggleClass: function toggleClass(element, className) { - if (!element) { - return; - } - - if (element.classList.contains(className)) { - element.classList.remove(className); - } else { - element.classList.add(className); - } } }; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/selector-engine.js + * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NODE_TEXT = 3; var SelectorEngine = { matches: function matches(element, selector) { return element.matches(selector); }, - find: function find$1(selector, element) { + find: function find(selector, element) { var _ref; if (element === void 0) { element = document.documentElement; } - return (_ref = []).concat.apply(_ref, find.call(element, selector)); + return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector)); }, - findOne: function findOne$1(selector, element) { + findOne: function findOne(selector, element) { if (element === void 0) { element = document.documentElement; } - return findOne.call(element, selector); + return Element.prototype.querySelector.call(element, selector); }, children: function children(element, selector) { var _ref2; @@ -1084,7 +1005,7 @@ */ var NAME$2 = 'carousel'; - var VERSION$2 = '5.0.0-alpha2'; + var VERSION$2 = '5.0.0-alpha3'; var DATA_KEY$2 = 'bs.carousel'; var EVENT_KEY$2 = "." + DATA_KEY$2; var DATA_API_KEY$2 = '.data-api'; @@ -1222,6 +1143,8 @@ } if (this._config && this._config.interval && !this._isPaused) { + this._updateInterval(); + this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); } }; @@ -1463,6 +1386,23 @@ } }; + _proto._updateInterval = function _updateInterval() { + var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + + if (!element) { + return; + } + + var elementInterval = parseInt(element.getAttribute('data-interval'), 10); + + if (elementInterval) { + this._config.defaultInterval = this._config.defaultInterval || this._config.interval; + this._config.interval = elementInterval; + } else { + this._config.interval = this._config.defaultInterval || this._config.interval; + } + }; + _proto._slide = function _slide(direction, element) { var _this4 = this; @@ -1513,20 +1453,13 @@ this._setActiveIndicatorElement(nextElement); + this._activeElement = nextElement; + if (this._element.classList.contains(CLASS_NAME_SLIDE)) { nextElement.classList.add(orderClassName); reflow(nextElement); activeElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName); - var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); - - if (nextElementInterval) { - this._config.defaultInterval = this._config.defaultInterval || this._config.interval; - this._config.interval = nextElementInterval; - } else { - this._config.interval = this._config.defaultInterval || this._config.interval; - } - var transitionDuration = getTransitionDurationFromElement(activeElement); EventHandler.one(activeElement, TRANSITION_END, function () { nextElement.classList.remove(directionalClassName, orderClassName); @@ -1653,26 +1586,28 @@ Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2)); } }); - var $$3 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .carousel to jQuery only if jQuery is present + * add .Carousel to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$3) { - var JQUERY_NO_CONFLICT$2 = $$3.fn[NAME$2]; - $$3.fn[NAME$2] = Carousel.jQueryInterface; - $$3.fn[NAME$2].Constructor = Carousel; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$2]; + $.fn[NAME$2] = Carousel.jQueryInterface; + $.fn[NAME$2].Constructor = Carousel; - $$3.fn[NAME$2].noConflict = function () { - $$3.fn[NAME$2] = JQUERY_NO_CONFLICT$2; - return Carousel.jQueryInterface; - }; - } + $.fn[NAME$2].noConflict = function () { + $.fn[NAME$2] = JQUERY_NO_CONFLICT; + return Carousel.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -1681,7 +1616,7 @@ */ var NAME$3 = 'collapse'; - var VERSION$3 = '5.0.0-alpha2'; + var VERSION$3 = '5.0.0-alpha3'; var DATA_KEY$3 = 'bs.collapse'; var EVENT_KEY$3 = "." + DATA_KEY$3; var DATA_API_KEY$3 = '.data-api'; @@ -2053,26 +1988,28 @@ Collapse.collapseInterface(element, config); }); }); - var $$4 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .collapse to jQuery only if jQuery is present + * add .Collapse to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$4) { - var JQUERY_NO_CONFLICT$3 = $$4.fn[NAME$3]; - $$4.fn[NAME$3] = Collapse.jQueryInterface; - $$4.fn[NAME$3].Constructor = Collapse; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$3]; + $.fn[NAME$3] = Collapse.jQueryInterface; + $.fn[NAME$3].Constructor = Collapse; - $$4.fn[NAME$3].noConflict = function () { - $$4.fn[NAME$3] = JQUERY_NO_CONFLICT$3; - return Collapse.jQueryInterface; - }; - } + $.fn[NAME$3].noConflict = function () { + $.fn[NAME$3] = JQUERY_NO_CONFLICT; + return Collapse.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -2081,7 +2018,7 @@ */ var NAME$4 = 'dropdown'; - var VERSION$4 = '5.0.0-alpha2'; + var VERSION$4 = '5.0.0-alpha3'; var DATA_KEY$4 = 'bs.dropdown'; var EVENT_KEY$4 = "." + DATA_KEY$4; var DATA_API_KEY$4 = '.data-api'; @@ -2234,8 +2171,10 @@ this._element.setAttribute('aria-expanded', true); - Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1); - Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$1); + + this._element.classList.toggle(CLASS_NAME_SHOW$1); + EventHandler.trigger(parent, EVENT_SHOWN$1, relatedTarget); }; @@ -2258,8 +2197,10 @@ this._popper.destroy(); } - Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW$1); - Manipulator.toggleClass(this._element, CLASS_NAME_SHOW$1); + this._menu.classList.toggle(CLASS_NAME_SHOW$1); + + this._element.classList.toggle(CLASS_NAME_SHOW$1); + EventHandler.trigger(parent, EVENT_HIDDEN$1, relatedTarget); }; @@ -2311,11 +2252,7 @@ var placement = PLACEMENT_BOTTOM; // Handle dropup if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { - placement = PLACEMENT_TOP; - - if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) { - placement = PLACEMENT_TOPEND; - } + placement = this._menu.classList.contains(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) { placement = PLACEMENT_RIGHT; } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) { @@ -2559,26 +2496,28 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { return e.stopPropagation(); }); - var $$5 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .dropdown to jQuery only if jQuery is present + * add .Dropdown to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$5) { - var JQUERY_NO_CONFLICT$4 = $$5.fn[NAME$4]; - $$5.fn[NAME$4] = Dropdown.jQueryInterface; - $$5.fn[NAME$4].Constructor = Dropdown; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$4]; + $.fn[NAME$4] = Dropdown.jQueryInterface; + $.fn[NAME$4].Constructor = Dropdown; - $$5.fn[NAME$4].noConflict = function () { - $$5.fn[NAME$4] = JQUERY_NO_CONFLICT$4; - return Dropdown.jQueryInterface; - }; - } + $.fn[NAME$4].noConflict = function () { + $.fn[NAME$4] = JQUERY_NO_CONFLICT; + return Dropdown.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -2587,7 +2526,7 @@ */ var NAME$5 = 'modal'; - var VERSION$5 = '5.0.0-alpha2'; + var VERSION$5 = '5.0.0-alpha3'; var DATA_KEY$5 = 'bs.modal'; var EVENT_KEY$5 = "." + DATA_KEY$5; var DATA_API_KEY$5 = '.data-api'; @@ -3188,30 +3127,32 @@ data.show(this); }); - var $$6 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .modal to jQuery only if jQuery is present + * add .Modal to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$6) { - var JQUERY_NO_CONFLICT$5 = $$6.fn[NAME$5]; - $$6.fn[NAME$5] = Modal.jQueryInterface; - $$6.fn[NAME$5].Constructor = Modal; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$5]; + $.fn[NAME$5] = Modal.jQueryInterface; + $.fn[NAME$5].Constructor = Modal; - $$6.fn[NAME$5].noConflict = function () { - $$6.fn[NAME$5] = JQUERY_NO_CONFLICT$5; - return Modal.jQueryInterface; - }; - } + $.fn[NAME$5].noConflict = function () { + $.fn[NAME$5] = JQUERY_NO_CONFLICT; + return Modal.jQueryInterface; + }; + } + }); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/sanitizer.js + * Bootstrap (v5.0.0-alpha3): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -3343,7 +3284,7 @@ */ var NAME$6 = 'tooltip'; - var VERSION$6 = '5.0.0-alpha2'; + var VERSION$6 = '5.0.0-alpha3'; var DATA_KEY$6 = 'bs.tooltip'; var EVENT_KEY$6 = "." + DATA_KEY$6; var CLASS_PREFIX = 'bs-tooltip'; @@ -4067,27 +4008,29 @@ return Tooltip; }(); - - var $$7 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .tooltip to jQuery only if jQuery is present + * add .Tooltip to jQuery only if jQuery is present */ - /* istanbul ignore if */ - if ($$7) { - var JQUERY_NO_CONFLICT$6 = $$7.fn[NAME$6]; - $$7.fn[NAME$6] = Tooltip.jQueryInterface; - $$7.fn[NAME$6].Constructor = Tooltip; + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - $$7.fn[NAME$6].noConflict = function () { - $$7.fn[NAME$6] = JQUERY_NO_CONFLICT$6; - return Tooltip.jQueryInterface; - }; - } + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$6]; + $.fn[NAME$6] = Tooltip.jQueryInterface; + $.fn[NAME$6].Constructor = Tooltip; + + $.fn[NAME$6].noConflict = function () { + $.fn[NAME$6] = JQUERY_NO_CONFLICT; + return Tooltip.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -4096,7 +4039,7 @@ */ var NAME$7 = 'popover'; - var VERSION$7 = '5.0.0-alpha2'; + var VERSION$7 = '5.0.0-alpha3'; var DATA_KEY$7 = 'bs.popover'; var EVENT_KEY$7 = "." + DATA_KEY$7; var CLASS_PREFIX$1 = 'bs-popover'; @@ -4256,26 +4199,29 @@ return Popover; }(Tooltip); - - var $$8 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .Popover to jQuery only if jQuery is present */ - /* istanbul ignore if */ - if ($$8) { - var JQUERY_NO_CONFLICT$7 = $$8.fn[NAME$7]; - $$8.fn[NAME$7] = Popover.jQueryInterface; - $$8.fn[NAME$7].Constructor = Popover; + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - $$8.fn[NAME$7].noConflict = function () { - $$8.fn[NAME$7] = JQUERY_NO_CONFLICT$7; - return Popover.jQueryInterface; - }; - } + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$7]; + $.fn[NAME$7] = Popover.jQueryInterface; + $.fn[NAME$7].Constructor = Popover; + + $.fn[NAME$7].noConflict = function () { + $.fn[NAME$7] = JQUERY_NO_CONFLICT; + return Popover.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -4284,7 +4230,7 @@ */ var NAME$8 = 'scrollspy'; - var VERSION$8 = '5.0.0-alpha2'; + var VERSION$8 = '5.0.0-alpha3'; var DATA_KEY$8 = 'bs.scrollspy'; var EVENT_KEY$8 = "." + DATA_KEY$8; var DATA_API_KEY$6 = '.data-api'; @@ -4556,25 +4502,28 @@ return new ScrollSpy(spy, Manipulator.getDataAttributes(spy)); }); }); - var $$9 = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .ScrollSpy to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$9) { - var JQUERY_NO_CONFLICT$8 = $$9.fn[NAME$8]; - $$9.fn[NAME$8] = ScrollSpy.jQueryInterface; - $$9.fn[NAME$8].Constructor = ScrollSpy; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$8]; + $.fn[NAME$8] = ScrollSpy.jQueryInterface; + $.fn[NAME$8].Constructor = ScrollSpy; - $$9.fn[NAME$8].noConflict = function () { - $$9.fn[NAME$8] = JQUERY_NO_CONFLICT$8; - return ScrollSpy.jQueryInterface; - }; - } + $.fn[NAME$8].noConflict = function () { + $.fn[NAME$8] = JQUERY_NO_CONFLICT; + return ScrollSpy.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -4583,7 +4532,7 @@ */ var NAME$9 = 'tab'; - var VERSION$9 = '5.0.0-alpha2'; + var VERSION$9 = '5.0.0-alpha3'; var DATA_KEY$9 = 'bs.tab'; var EVENT_KEY$9 = "." + DATA_KEY$9; var DATA_API_KEY$7 = '.data-api'; @@ -4782,26 +4731,28 @@ var data = Data.getData(this, DATA_KEY$9) || new Tab(this); data.show(); }); - var $$a = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .tab to jQuery only if jQuery is present + * add .Tab to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($$a) { - var JQUERY_NO_CONFLICT$9 = $$a.fn[NAME$9]; - $$a.fn[NAME$9] = Tab.jQueryInterface; - $$a.fn[NAME$9].Constructor = Tab; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$9]; + $.fn[NAME$9] = Tab.jQueryInterface; + $.fn[NAME$9].Constructor = Tab; - $$a.fn[NAME$9].noConflict = function () { - $$a.fn[NAME$9] = JQUERY_NO_CONFLICT$9; - return Tab.jQueryInterface; - }; - } + $.fn[NAME$9].noConflict = function () { + $.fn[NAME$9] = JQUERY_NO_CONFLICT; + return Tab.jQueryInterface; + }; + } + }); /** * ------------------------------------------------------------------------ @@ -4810,7 +4761,7 @@ */ var NAME$a = 'toast'; - var VERSION$a = '5.0.0-alpha2'; + var VERSION$a = '5.0.0-alpha3'; var DATA_KEY$a = 'bs.toast'; var EVENT_KEY$a = "." + DATA_KEY$a; var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a; @@ -5005,31 +4956,33 @@ return Toast; }(); - - var $$b = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .toast to jQuery only if jQuery is present + * add .Toast to jQuery only if jQuery is present */ - /* istanbul ignore if */ - if ($$b) { - var JQUERY_NO_CONFLICT$a = $$b.fn[NAME$a]; - $$b.fn[NAME$a] = Toast.jQueryInterface; - $$b.fn[NAME$a].Constructor = Toast; + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - $$b.fn[NAME$a].noConflict = function () { - $$b.fn[NAME$a] = JQUERY_NO_CONFLICT$a; - return Toast.jQueryInterface; - }; - } + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME$a]; + $.fn[NAME$a] = Toast.jQueryInterface; + $.fn[NAME$a].Constructor = Toast; + + $.fn[NAME$a].noConflict = function () { + $.fn[NAME$a] = JQUERY_NO_CONFLICT; + return Toast.jQueryInterface; + }; + } + }); /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): index.umd.js + * Bootstrap (v5.0.0-alpha3): index.umd.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ diff --git a/assets/javascripts/bootstrap.min.js b/assets/javascripts/bootstrap.min.js index 25243a9..d7784f1 100644 --- a/assets/javascripts/bootstrap.min.js +++ b/assets/javascripts/bootstrap.min.js @@ -1,6 +1,6 @@ /*! - * Bootstrap v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=e(t);function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}var r,a,l,c,u=function(t){do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},h=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():null}return e},f=function(t){var e=h(t);return e&&document.querySelector(e)?e:null},d=function(t){var e=h(t);return e?document.querySelector(e):null},g=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},p=function(t){t.dispatchEvent(new Event("transitionend"))},m=function(t){return(t[0]||t).nodeType},_=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||p(t)}),i)},v=function(t,e,n){Object.keys(n).forEach((function(i){var o,s=n[i],r=e[i],a=r&&m(r)?"element":null==(o=r)?""+o:{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+s+'".')}))},b=function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},y=function(){return function(){}},w=function(t){return t.offsetHeight},E=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-no-jquery")?t:null},T=(r={},a=1,{set:function(t,e,n){void 0===t.bsKey&&(t.bsKey={key:e,id:a},a++),r[t.bsKey.id]=n},get:function(t,e){if(!t||void 0===t.bsKey)return null;var n=t.bsKey;return n.key===e?r[n.id]:null},delete:function(t,e){if(void 0!==t.bsKey){var n=t.bsKey;n.key===e&&(delete r[n.id],delete t.bsKey)}}}),k=function(t,e,n){T.set(t,e,n)},L=function(t,e){return T.get(t,e)},C=function(t,e){T.delete(t,e)},A=Element.prototype.querySelectorAll,S=Element.prototype.querySelector,D=(l=new CustomEvent("Bootstrap",{cancelable:!0}),(c=document.createElement("div")).addEventListener("Bootstrap",(function(){return null})),l.preventDefault(),c.dispatchEvent(l),l.defaultPrevented),I=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(A=function(t){if(!I.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=u("scope"));var n=null;try{t=t.replace(I,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},S=function(t){if(!I.test(t))return this.querySelector(t);var e=A.call(this,t);return void 0!==e[0]?e[0]:null});var O=E(),N=/[^.]*(?=\..*)\.|.*/,j=/\..*/,x=/::\d+$/,P={},R=1,H={mouseenter:"mouseover",mouseleave:"mouseout"},B=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function M(t,e){return e&&e+"::"+R++||t.uidEvent||R++}function Q(t){var e=M(t);return t.uidEvent=e,P[e]=P[e]||{},P[e]}function U(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,s=i.length;o<s;o++){var r=t[i[o]];if(r.originalHandler===e&&r.delegationSelector===n)return r}return null}function F(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(j,""),r=H[s];return r&&(s=r),B.indexOf(s)>-1||(s=t),[i,o,s]}function W(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=F(e,n,i),r=s[0],a=s[1],l=s[2],c=Q(t),u=c[l]||(c[l]={}),h=U(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=M(a,e.replace(N,"")),d=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return o.delegateTarget=r,i.oneOff&&V.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return i.delegateTarget=t,n.oneOff&&V.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=f,u[f]=d,t.addEventListener(l,d,r)}}}function K(t,e,n,i,o){var s=U(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var V={on:function(t,e,n,i){W(t,e,n,i,!1)},one:function(t,e,n,i){W(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=F(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=Q(t),u="."===e.charAt(0);if(void 0===r){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(s){if(s.indexOf(i)>-1){var r=o[s];K(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var h=c[a]||{};Object.keys(h).forEach((function(n){var i=n.replace(x,"");if(!l||e.indexOf(i)>-1){var o=h[n];K(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;K(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(j,""),s=e!==o,r=B.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&O&&(i=O.Event(e,n),O(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),r?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})})),c&&(u.preventDefault(),D||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},q="alert",z=function(){function t(t){this._element=t,this._element&&k(t,"bs.alert",this)}var e=t.prototype;return e.close=function(t){var e=t?this._getRootElement(t):this._element,n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){C(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){return d(t)||t.closest(".alert")},e._triggerCloseEvent=function(t){return V.trigger(t,"close.bs.alert")},e._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=g(t);V.one(t,"transitionend",(function(){return e._destroyElement(t)})),_(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),V.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.alert");n||(n=new t(this)),"close"===e&&n[e](this)}))},t.handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t.getInstance=function(t){return L(t,"bs.alert")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}}]),t}();V.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',z.handleDismiss(new z));var X=E();if(X){var Y=X.fn[q];X.fn[q]=z.jQueryInterface,X.fn[q].Constructor=z,X.fn[q].noConflict=function(){return X.fn[q]=Y,z.jQueryInterface}}var $=function(){function t(t){this._element=t,k(t,"bs.button",this)}var e=t.prototype;return e.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},e.dispose=function(){C(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return L(t,"bs.button")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}}]),t}();V.on(document,"click.bs.button.data-api",'[data-toggle="button"]',(function(t){t.preventDefault();var e=t.target.closest('[data-toggle="button"]'),n=L(e,"bs.button");n||(n=new $(e)),n.toggle()}));var G=E();if(G){var Z=G.fn.button;G.fn.button=$.jQueryInterface,G.fn.button.Constructor=$,G.fn.button.noConflict=function(){return G.fn.button=Z,$.jQueryInterface}}function J(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function tt(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}var et={setDataAttribute:function(t,e,n){t.setAttribute("data-"+tt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+tt(e))},getDataAttributes:function(t){if(!t)return{};var e=s({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=J(e[t])})),e},getDataAttribute:function(t,e){return J(t.getAttribute("data-"+tt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},nt={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,A.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),S.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(e)}))},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},it="carousel",ot=".bs.carousel",st={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},rt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},at={TOUCH:"touch",PEN:"pen"},lt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=nt.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners(),k(t,"bs.carousel",this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){!document.hidden&&b(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),nt.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=nt.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)V.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){V.off(this._element,ot),C(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=s({},st,t),v(it,t,rt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&V.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(V.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),V.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&at[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&at[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};nt.find(".carousel-item img",this._element).forEach((function(t){V.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(V.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),V.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(V.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),V.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),V.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?nt.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(nt.findOne(".active.carousel-item",this._element));return V.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=nt.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},e._slide=function(t,e){var n,i,o,s=this,r=nt.findOne(".active.carousel-item",this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",o="left"):(n="carousel-item-right",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&r&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains("slide")){l.classList.add(i),w(l),r.classList.add(n),l.classList.add(n);var h=parseInt(l.getAttribute("data-interval"),10);h?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=h):this._config.interval=this._config.defaultInterval||this._config.interval;var f=g(r);V.one(r,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),r.classList.remove("active",i,n),s._isSliding=!1,setTimeout((function(){V.trigger(s._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),_(r,f)}else r.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,V.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t.carouselInterface=function(e,n){var i=L(e,"bs.carousel"),o=s({},st,et.getDataAttributes(e));"object"==typeof n&&(o=s({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(e,o)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())},t.jQueryInterface=function(e){return this.each((function(){t.carouselInterface(this,e)}))},t.dataApiClickHandler=function(e){var n=d(this);if(n&&n.classList.contains("carousel")){var i=s({},et.getDataAttributes(n),et.getDataAttributes(this)),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),t.carouselInterface(n,i),o&&L(n,"bs.carousel").to(o),e.preventDefault()}},t.getInstance=function(t){return L(t,"bs.carousel")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return st}}]),t}();V.on(document,"click.bs.carousel.data-api","[data-slide], [data-slide-to]",lt.dataApiClickHandler),V.on(window,"load.bs.carousel.data-api",(function(){for(var t=nt.find('[data-ride="carousel"]'),e=0,n=t.length;e<n;e++)lt.carouselInterface(t[e],L(t[e],"bs.carousel"))}));var ct=E();if(ct){var ut=ct.fn[it];ct.fn[it]=lt.jQueryInterface,ct.fn[it].Constructor=lt,ct.fn[it].noConflict=function(){return ct.fn[it]=ut,lt.jQueryInterface}}var ht="collapse",ft={toggle:!0,parent:""},dt={toggle:"boolean",parent:"(string|element)"},gt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=nt.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]');for(var n=nt.find('[data-toggle="collapse"]'),i=0,o=n.length;i<o;i++){var s=n[i],r=f(s),a=nt.find(r).filter((function(e){return e===t}));null!==r&&a.length&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),k(t,"bs.collapse",this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=nt.find(".show, .collapsing",this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains("collapse")}))).length&&(n=null);var o=nt.findOne(this._selector);if(n){var s=n.filter((function(t){return o!==t}));if((i=s[0]?L(s[0],"bs.collapse"):null)&&i._isTransitioning)return}if(!V.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||k(e,"bs.collapse",null)}));var r=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=g(this._element);V.one(this._element,"transitionend",(function(){e._element.classList.remove("collapsing"),e._element.classList.add("collapse","show"),e._element.style[r]="",e.setTransitioning(!1),V.trigger(e._element,"shown.bs.collapse")})),_(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!V.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",w(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=d(o);s&&!s.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=g(this._element);V.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),V.trigger(t._element,"hidden.bs.collapse")})),_(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){C(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=s({},ft,t)).toggle=Boolean(t.toggle),v(ht,t,dt),t},e._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},e._getParent=function(){var t=this,e=this._config.parent;m(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=nt.findOne(e);var n='[data-toggle="collapse"][data-parent="'+e+'"]';return nt.find(n,e).forEach((function(e){var n=d(e);t._addAriaAndCollapsedClass(n,[e])})),e},e._addAriaAndCollapsedClass=function(t,e){if(t&&e.length){var n=t.classList.contains("show");e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=L(e,"bs.collapse"),o=s({},ft,et.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&o.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new t(e,o)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t.jQueryInterface=function(e){return this.each((function(){t.collapseInterface(this,e)}))},t.getInstance=function(t){return L(t,"bs.collapse")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return ft}}]),t}();V.on(document,"click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=et.getDataAttributes(this),n=f(this);nt.find(n).forEach((function(t){var n,i=L(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,gt.collapseInterface(t,n)}))}));var pt=E();if(pt){var mt=pt.fn[ht];pt.fn[ht]=gt.jQueryInterface,pt.fn[ht].Constructor=gt,pt.fn[ht].noConflict=function(){return pt.fn[ht]=mt,gt.jQueryInterface}}var _t="dropdown",vt=new RegExp("ArrowUp|ArrowDown|Escape"),bt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},yt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},wt=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),k(t,"bs.dropdown",this)}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var e=this._element.classList.contains("show");t.clearMenus(),e||this.show()}},e.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var e=t.getParentFromElement(this._element),i={relatedTarget:this._element};if(!V.trigger(this._element,"show.bs.dropdown",i).defaultPrevented){if(!this._inNavbar){if(void 0===n.default)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:m(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add("position-static"),this._popper=new n.default(o,this._menu,this._getPopperConfig())}var s;if("ontouchstart"in document.documentElement&&!e.closest(".navbar-nav"))(s=[]).concat.apply(s,document.body.children).forEach((function(t){return V.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),et.toggleClass(this._menu,"show"),et.toggleClass(this._element,"show"),V.trigger(e,"shown.bs.dropdown",i)}}},e.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};V.trigger(e,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),et.toggleClass(this._menu,"show"),et.toggleClass(this._element,"show"),V.trigger(e,"hidden.bs.dropdown",n))}},e.dispose=function(){C(this._element,"bs.dropdown"),V.off(this._element,".bs.dropdown"),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;V.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=s({},this.constructor.Default,et.getDataAttributes(this._element),t),v(_t,t,this.constructor.DefaultType),t},e._getMenuElement=function(){return nt.next(this._element,".dropdown-menu")[0]},e._getPlacement=function(){var t=this._element.parentNode,e="bottom-start";return t.classList.contains("dropup")?(e="top-start",this._menu.classList.contains("dropdown-menu-right")&&(e="top-end")):t.classList.contains("dropright")?e="right-start":t.classList.contains("dropleft")?e="left-start":this._menu.classList.contains("dropdown-menu-right")&&(e="bottom-end"),e},e._detectNavbar=function(){return Boolean(this._element.closest(".navbar"))},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),s({},t,this._config.popperConfig)},t.dropdownInterface=function(e,n){var i=L(e,"bs.dropdown");if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t.jQueryInterface=function(e){return this.each((function(){t.dropdownInterface(this,e)}))},t.clearMenus=function(e){if(!e||2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(var n=nt.find('[data-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var s=t.getParentFromElement(n[i]),r=L(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),r){var l=r._menu;if(n[i].classList.contains("show"))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&"Tab"===e.key)&&l.contains(e.target)))if(!V.trigger(s,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return V.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),V.trigger(s,"hidden.bs.dropdown",a)}}}},t.getParentFromElement=function(t){return d(t)||t.parentNode},t.dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?"Space"===e.key||"Escape"!==e.key&&("ArrowDown"!==e.key&&"ArrowUp"!==e.key||e.target.closest(".dropdown-menu")):!vt.test(e.key))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=t.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===e.key)return(this.matches('[data-toggle="dropdown"]')?this:nt.prev(this,'[data-toggle="dropdown"]')[0]).focus(),void t.clearMenus();if(i&&"Space"!==e.key){var o=nt.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(b);if(o.length){var s=o.indexOf(e.target);"ArrowUp"===e.key&&s>0&&s--,"ArrowDown"===e.key&&s<o.length-1&&s++,o[s=-1===s?0:s].focus()}}else t.clearMenus()}},t.getInstance=function(t){return L(t,"bs.dropdown")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return bt}},{key:"DefaultType",get:function(){return yt}}]),t}();V.on(document,"keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',wt.dataApiKeydownHandler),V.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",wt.dataApiKeydownHandler),V.on(document,"click.bs.dropdown.data-api",wt.clearMenus),V.on(document,"keyup.bs.dropdown.data-api",wt.clearMenus),V.on(document,"click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),wt.dropdownInterface(this,"toggle")})),V.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()}));var Et=E();if(Et){var Tt=Et.fn[_t];Et.fn[_t]=wt.jQueryInterface,Et.fn[_t].Constructor=wt,Et.fn[_t].noConflict=function(){return Et.fn[_t]=Tt,wt.jQueryInterface}}var kt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Lt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ct=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=nt.findOne(".modal-dialog",t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,k(t,"bs.modal",this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains("fade")&&(this._isTransitioning=!0);var n=V.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),V.on(this._element,"click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),V.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){V.one(e._element,"mouseup.dismiss.bs.modal",(function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},e.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!V.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),V.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),V.off(this._element,"click.dismiss.bs.modal"),V.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=g(this._element);V.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),_(this._element,i)}else this._hideModal()}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return V.off(t,".bs.modal")})),V.off(document,"focusin.bs.modal"),C(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=s({},kt,t),v("modal",t,Lt),t},e._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=nt.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&w(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,V.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var s=g(this._dialog);V.one(this._dialog,"transitionend",o),_(this._dialog,s)}else o()},e._enforceFocus=function(){var t=this;V.off(document,"focusin.bs.modal"),V.on(document,"focusin.bs.modal",(function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?V.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&"Escape"===e.key?(e.preventDefault(),t.hide()):t._config.keyboard||"Escape"!==e.key||t._triggerBackdropTransition()})):V.off(this._element,"keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?V.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):V.off(window,"resize.bs.modal")},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){document.body.classList.remove("modal-open"),t._resetAdjustments(),t._resetScrollbar(),V.trigger(t._element,"hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),V.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&w(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=g(this._backdrop);V.one(this._backdrop,"transitionend",t),_(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var s=g(this._backdrop);V.one(this._backdrop,"transitionend",o),_(this._backdrop,s)}else o()}else t()},e._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){if(V.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;var e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=g(this._dialog);V.off(this._element,"transitionend"),V.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(V.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),_(t._element,n))})),_(this._element,n),this._element.focus()}else this.hide()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){nt.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];et.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"})),nt.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];et.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"}));var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];et.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},e._resetScrollbar=function(){nt.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=et.getDataAttribute(t,"padding-right");void 0!==e&&(et.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),nt.find(".sticky-top").forEach((function(t){var e=et.getDataAttribute(t,"margin-right");void 0!==e&&(et.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=et.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(et.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t.jQueryInterface=function(e,n){return this.each((function(){var i=L(this,"bs.modal"),o=s({},kt,et.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,o)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else o.show&&i.show(n)}))},t.getInstance=function(t){return L(t,"bs.modal")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return kt}}]),t}();V.on(document,"click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e=this,n=d(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),V.one(n,"show.bs.modal",(function(t){t.defaultPrevented||V.one(n,"hidden.bs.modal",(function(){b(e)&&e.focus()}))}));var i=L(n,"bs.modal");if(!i){var o=s({},et.getDataAttributes(n),et.getDataAttributes(this));i=new Ct(n,o)}i.show(this)}));var At=E();if(At){var St=At.fn.modal;At.fn.modal=Ct.jQueryInterface,At.fn.modal.Constructor=Ct,At.fn.modal.noConflict=function(){return At.fn.modal=St,Ct.jQueryInterface}}var Dt=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],It=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Ot=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Nt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function jt(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(e),r=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=r[t],a=o.nodeName.toLowerCase();if(-1===s.indexOf(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Dt.indexOf(n)||Boolean(t.nodeValue.match(It)||t.nodeValue.match(Ot));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=r.length;l<c;l++)a(l);return o.body.innerHTML}var xt="tooltip",Pt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Rt=["sanitize","allowList","sanitizeFn"],Ht={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object)"},Bt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Mt={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,allowList:Nt,popperConfig:null},Qt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Ut=function(){function t(t,e){if(void 0===n.default)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners(),k(t,this.constructor.DATA_KEY,this)}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=L(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),C(this.element,this.constructor.DATA_KEY),V.off(this.element,this.constructor.EVENT_KEY),V.off(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=V.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(e.defaultPrevented||!o)return;var s=this.getTipElement(),r=u(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var c,h=this._getContainer();if(k(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||h.appendChild(s),V.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new n.default(this.element,s,this._getPopperConfig(l)),s.classList.add("show"),"ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){V.on(t,"mouseover",(function(){}))}));var f=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,V.trigger(t.element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var d=g(this.tip);V.one(this.tip,"transitionend",f),_(this.tip,d)}else f()}},e.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),V.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!V.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return V.off(t,"mouseover",y)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=g(e);V.one(e,"transitionend",n),_(e,o)}else n();this._hoverState=""}}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(nt.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},e.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&m(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=jt(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:m(this.config.container)?this.config.container:nt.findOne(this.config.container)},e._getAttachment=function(t){return Bt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)V.on(t.element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;V.on(t.element,n,t.config.selector,(function(e){return t._enter(e)})),V.on(t.element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},V.on(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=et.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==Rt.indexOf(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),v(xt,t,this.constructor.DefaultType),t.sanitize&&(t.template=jt(t.template,t.allowList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Pt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tooltip")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return Mt}},{key:"NAME",get:function(){return xt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Qt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ht}}]),t}(),Ft=E();if(Ft){var Wt=Ft.fn[xt];Ft.fn[xt]=Ut.jQueryInterface,Ft.fn[xt].Constructor=Ut,Ft.fn[xt].noConflict=function(){return Ft.fn[xt]=Wt,Ut.jQueryInterface}}var Kt="popover",Vt=new RegExp("(^|\\s)bs-popover\\S+","g"),qt=s({},Ut.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),zt=s({},Ut.DefaultType,{content:"(string|element|function)"}),Xt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Yt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var s=i.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.setContent=function(){var t=this.getTipElement();this.setElementContent(nt.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(nt.findOne(".popover-body",t),e),t.classList.remove("fade","show")},s._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Vt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},i.jQueryInterface=function(t){return this.each((function(){var e=L(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),k(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},i.getInstance=function(t){return L(t,"bs.popover")},o(i,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return qt}},{key:"NAME",get:function(){return Kt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Xt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return zt}}]),i}(Ut),$t=E();if($t){var Gt=$t.fn[Kt];$t.fn[Kt]=Yt.jQueryInterface,$t.fn[Kt].Constructor=Yt,$t.fn[Kt].noConflict=function(){return $t.fn[Kt]=Gt,Yt.jQueryInterface}}var Zt="scrollspy",Jt={offset:10,method:"auto",target:""},te={offset:"number",method:"string",target:"(string|element)"},ee=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link, "+this._config.target+" .list-group-item, "+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,V.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),k(t,"bs.scrollspy",this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),nt.find(this._selector).map((function(t){var e=f(t),o=e?nt.findOne(e):null;if(o){var s=o.getBoundingClientRect();if(s.width||s.height)return[et[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){C(this._element,"bs.scrollspy"),V.off(this._scrollElement,".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=s({},Jt,"object"==typeof t&&t?t:{})).target&&m(t.target)){var e=t.target.id;e||(e=u(Zt),t.target.id=e),t.target="#"+e}return v(Zt,t,te),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=nt.findOne(e.join(","));n.classList.contains("dropdown-item")?(nt.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),nt.parents(n,".nav, .list-group").forEach((function(t){nt.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),nt.prev(t,".nav-item").forEach((function(t){nt.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),V.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){nt.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.scrollspy")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"Default",get:function(){return Jt}}]),t}();V.on(window,"load.bs.scrollspy.data-api",(function(){nt.find('[data-spy="scroll"]').forEach((function(t){return new ee(t,et.getDataAttributes(t))}))}));var ne=E();if(ne){var ie=ne.fn[Zt];ne.fn[Zt]=ee.jQueryInterface,ne.fn[Zt].Constructor=ee,ne.fn[Zt].noConflict=function(){return ne.fn[Zt]=ie,ee.jQueryInterface}}var oe=function(){function t(t){this._element=t,k(this._element,"bs.tab",this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||this._element.classList.contains("disabled"))){var e,n=d(this._element),i=this._element.closest(".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=nt.find(o,i))[e.length-1]}var s=null;if(e&&(s=V.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(V.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){V.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),V.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},e.dispose=function(){C(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?nt.children(e,".active"):nt.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=g(o);o.classList.remove("show"),V.one(o,"transitionend",r),_(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=nt.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),w(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&nt.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tab")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}}]),t}();V.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new oe(this)).show()}));var se=E();if(se){var re=se.fn.tab;se.fn.tab=oe.jQueryInterface,se.fn.tab.Constructor=oe,se.fn.tab.noConflict=function(){return se.fn.tab=re,oe.jQueryInterface}}var ae={animation:"boolean",autohide:"boolean",delay:"number"},le={animation:!0,autohide:!0,delay:5e3},ce=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),k(t,"bs.toast",this)}var e=t.prototype;return e.show=function(){var t=this;if(!V.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),V.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),w(this._element),this._element.classList.add("showing"),this._config.animation){var n=g(this._element);V.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains("show")&&!V.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),V.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=g(this._element);V.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),V.off(this._element,"click.dismiss.bs.toast"),C(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=s({},le,et.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),v("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;V.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return L(t,"bs.toast")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha2"}},{key:"DefaultType",get:function(){return ae}},{key:"Default",get:function(){return le}}]),t}(),ue=E();if(ue){var he=ue.fn.toast;ue.fn.toast=ce.jQueryInterface,ue.fn.toast.Constructor=ce,ue.fn.toast.noConflict=function(){return ue.fn.toast=he,ce.jQueryInterface}}return{Alert:z,Button:$,Carousel:lt,Collapse:gt,Dropdown:wt,Modal:Ct,Popover:Yt,ScrollSpy:ee,Tab:oe,Toast:ce,Tooltip:Ut}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=e(t);function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}var r,a,l=function(t){do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},c=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():null}return e},u=function(t){var e=c(t);return e&&document.querySelector(e)?e:null},h=function(t){var e=c(t);return e?document.querySelector(e):null},f=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},d=function(t){t.dispatchEvent(new Event("transitionend"))},g=function(t){return(t[0]||t).nodeType},p=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||d(t)}),i)},m=function(t,e,n){Object.keys(n).forEach((function(i){var o,s=n[i],r=e[i],a=r&&g(r)?"element":null==(o=r)?""+o:{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+s+'".')}))},_=function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},v=function(){return function(){}},b=function(t){return t.offsetHeight},y=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-no-jquery")?t:null},w=function(t){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t()},E=(r={},a=1,{set:function(t,e,n){void 0===t.bsKey&&(t.bsKey={key:e,id:a},a++),r[t.bsKey.id]=n},get:function(t,e){if(!t||void 0===t.bsKey)return null;var n=t.bsKey;return n.key===e?r[n.id]:null},delete:function(t,e){if(void 0!==t.bsKey){var n=t.bsKey;n.key===e&&(delete r[n.id],delete t.bsKey)}}}),T=function(t,e,n){E.set(t,e,n)},k=function(t,e){return E.get(t,e)},L=function(t,e){E.delete(t,e)},C=/[^.]*(?=\..*)\.|.*/,A=/\..*/,S=/::\d+$/,D={},I=1,O={mouseenter:"mouseover",mouseleave:"mouseout"},N=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function j(t,e){return e&&e+"::"+I++||t.uidEvent||I++}function x(t){var e=j(t);return t.uidEvent=e,D[e]=D[e]||{},D[e]}function P(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,s=i.length;o<s;o++){var r=t[i[o]];if(r.originalHandler===e&&r.delegationSelector===n)return r}return null}function R(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(A,""),r=O[s];return r&&(s=r),N.indexOf(s)>-1||(s=t),[i,o,s]}function H(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=R(e,n,i),r=s[0],a=s[1],l=s[2],c=x(t),u=c[l]||(c[l]={}),h=P(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=j(a,e.replace(C,"")),d=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return o.delegateTarget=r,i.oneOff&&B.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return i.delegateTarget=t,n.oneOff&&B.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=f,u[f]=d,t.addEventListener(l,d,r)}}}function M(t,e,n,i,o){var s=P(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var B={on:function(t,e,n,i){H(t,e,n,i,!1)},one:function(t,e,n,i){H(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=R(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=x(t),u="."===e.charAt(0);if(void 0===r){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(s){if(s.indexOf(i)>-1){var r=o[s];M(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var h=c[a]||{};Object.keys(h).forEach((function(n){var i=n.replace(S,"");if(!l||e.indexOf(i)>-1){var o=h[n];M(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;M(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=y(),s=e.replace(A,""),r=e!==s,a=N.indexOf(s)>-1,l=!0,c=!0,u=!1,h=null;return r&&o&&(i=o.Event(e,n),o(t).trigger(i),l=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),u=i.isDefaultPrevented()),a?(h=document.createEvent("HTMLEvents")).initEvent(s,l,!0):h=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(h,t,{get:function(){return n[t]}})})),u&&h.preventDefault(),c&&t.dispatchEvent(h),h.defaultPrevented&&void 0!==i&&i.preventDefault(),h}},Q="alert",U=function(){function t(t){this._element=t,this._element&&T(t,"bs.alert",this)}var e=t.prototype;return e.close=function(t){var e=t?this._getRootElement(t):this._element,n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){L(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){return h(t)||t.closest(".alert")},e._triggerCloseEvent=function(t){return B.trigger(t,"close.bs.alert")},e._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=f(t);B.one(t,"transitionend",(function(){return e._destroyElement(t)})),p(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),B.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.alert");n||(n=new t(this)),"close"===e&&n[e](this)}))},t.handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t.getInstance=function(t){return k(t,"bs.alert")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}}]),t}();B.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',U.handleDismiss(new U)),w((function(){var t=y();if(t){var e=t.fn[Q];t.fn[Q]=U.jQueryInterface,t.fn[Q].Constructor=U,t.fn[Q].noConflict=function(){return t.fn[Q]=e,U.jQueryInterface}}}));var F=function(){function t(t){this._element=t,T(t,"bs.button",this)}var e=t.prototype;return e.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},e.dispose=function(){L(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return k(t,"bs.button")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}}]),t}();function W(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function K(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}B.on(document,"click.bs.button.data-api",'[data-toggle="button"]',(function(t){t.preventDefault();var e=t.target.closest('[data-toggle="button"]'),n=k(e,"bs.button");n||(n=new F(e)),n.toggle()})),w((function(){var t=y();if(t){var e=t.fn.button;t.fn.button=F.jQueryInterface,t.fn.button.Constructor=F,t.fn.button.noConflict=function(){return t.fn.button=e,F.jQueryInterface}}}));var V={setDataAttribute:function(t,e,n){t.setAttribute("data-"+K(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+K(e))},getDataAttributes:function(t){if(!t)return{};var e=s({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=W(e[t])})),e},getDataAttribute:function(t,e){return W(t.getAttribute("data-"+K(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}}},z={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,Element.prototype.querySelectorAll.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),Element.prototype.querySelector.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(e)}))},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},X="carousel",Y=".bs.carousel",q={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},$={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},G={TOUCH:"touch",PEN:"pen"},Z=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners(),T(t,"bs.carousel",this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){!document.hidden&&_(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),z.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(d(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=z.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)B.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){B.off(this._element,Y),L(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=s({},q,t),m(X,t,$),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&B.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(B.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),B.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&G[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&G[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};z.find(".carousel-item img",this._element).forEach((function(t){B.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(B.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),B.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(B.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),B.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),B.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?z.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(z.findOne(".active.carousel-item",this._element));return B.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=z.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},e._updateInterval=function(){var t=this._activeElement||z.findOne(".active.carousel-item",this._element);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,i,o,s=this,r=z.findOne(".active.carousel-item",this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",o="left"):(n="carousel-item-right",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&r&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._activeElement=l,this._element.classList.contains("slide")){l.classList.add(i),b(l),r.classList.add(n),l.classList.add(n);var h=f(r);B.one(r,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),r.classList.remove("active",i,n),s._isSliding=!1,setTimeout((function(){B.trigger(s._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),p(r,h)}else r.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,B.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t.carouselInterface=function(e,n){var i=k(e,"bs.carousel"),o=s({},q,V.getDataAttributes(e));"object"==typeof n&&(o=s({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(e,o)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())},t.jQueryInterface=function(e){return this.each((function(){t.carouselInterface(this,e)}))},t.dataApiClickHandler=function(e){var n=h(this);if(n&&n.classList.contains("carousel")){var i=s({},V.getDataAttributes(n),V.getDataAttributes(this)),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),t.carouselInterface(n,i),o&&k(n,"bs.carousel").to(o),e.preventDefault()}},t.getInstance=function(t){return k(t,"bs.carousel")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return q}}]),t}();B.on(document,"click.bs.carousel.data-api","[data-slide], [data-slide-to]",Z.dataApiClickHandler),B.on(window,"load.bs.carousel.data-api",(function(){for(var t=z.find('[data-ride="carousel"]'),e=0,n=t.length;e<n;e++)Z.carouselInterface(t[e],k(t[e],"bs.carousel"))})),w((function(){var t=y();if(t){var e=t.fn[X];t.fn[X]=Z.jQueryInterface,t.fn[X].Constructor=Z,t.fn[X].noConflict=function(){return t.fn[X]=e,Z.jQueryInterface}}}));var J="collapse",tt={toggle:!0,parent:""},et={toggle:"boolean",parent:"(string|element)"},nt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=z.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]');for(var n=z.find('[data-toggle="collapse"]'),i=0,o=n.length;i<o;i++){var s=n[i],r=u(s),a=z.find(r).filter((function(e){return e===t}));null!==r&&a.length&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),T(t,"bs.collapse",this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=z.find(".show, .collapsing",this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains("collapse")}))).length&&(n=null);var o=z.findOne(this._selector);if(n){var s=n.filter((function(t){return o!==t}));if((i=s[0]?k(s[0],"bs.collapse"):null)&&i._isTransitioning)return}if(!B.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||T(e,"bs.collapse",null)}));var r=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=f(this._element);B.one(this._element,"transitionend",(function(){e._element.classList.remove("collapsing"),e._element.classList.add("collapse","show"),e._element.style[r]="",e.setTransitioning(!1),B.trigger(e._element,"shown.bs.collapse")})),p(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!B.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",b(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=h(o);s&&!s.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=f(this._element);B.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),B.trigger(t._element,"hidden.bs.collapse")})),p(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){L(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=s({},tt,t)).toggle=Boolean(t.toggle),m(J,t,et),t},e._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},e._getParent=function(){var t=this,e=this._config.parent;g(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=z.findOne(e);var n='[data-toggle="collapse"][data-parent="'+e+'"]';return z.find(n,e).forEach((function(e){var n=h(e);t._addAriaAndCollapsedClass(n,[e])})),e},e._addAriaAndCollapsedClass=function(t,e){if(t&&e.length){var n=t.classList.contains("show");e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=k(e,"bs.collapse"),o=s({},tt,V.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&o.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new t(e,o)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t.jQueryInterface=function(e){return this.each((function(){t.collapseInterface(this,e)}))},t.getInstance=function(t){return k(t,"bs.collapse")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return tt}}]),t}();B.on(document,"click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=V.getDataAttributes(this),n=u(this);z.find(n).forEach((function(t){var n,i=k(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,nt.collapseInterface(t,n)}))})),w((function(){var t=y();if(t){var e=t.fn[J];t.fn[J]=nt.jQueryInterface,t.fn[J].Constructor=nt,t.fn[J].noConflict=function(){return t.fn[J]=e,nt.jQueryInterface}}}));var it="dropdown",ot=new RegExp("ArrowUp|ArrowDown|Escape"),st={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},rt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},at=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),T(t,"bs.dropdown",this)}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var e=this._element.classList.contains("show");t.clearMenus(),e||this.show()}},e.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var e=t.getParentFromElement(this._element),i={relatedTarget:this._element};if(!B.trigger(this._element,"show.bs.dropdown",i).defaultPrevented){if(!this._inNavbar){if(void 0===n.default)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:g(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add("position-static"),this._popper=new n.default(o,this._menu,this._getPopperConfig())}var s;if("ontouchstart"in document.documentElement&&!e.closest(".navbar-nav"))(s=[]).concat.apply(s,document.body.children).forEach((function(t){return B.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),B.trigger(e,"shown.bs.dropdown",i)}}},e.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};B.trigger(e,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),B.trigger(e,"hidden.bs.dropdown",n))}},e.dispose=function(){L(this._element,"bs.dropdown"),B.off(this._element,".bs.dropdown"),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;B.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=s({},this.constructor.Default,V.getDataAttributes(this._element),t),m(it,t,this.constructor.DefaultType),t},e._getMenuElement=function(){return z.next(this._element,".dropdown-menu")[0]},e._getPlacement=function(){var t=this._element.parentNode,e="bottom-start";return t.classList.contains("dropup")?e=this._menu.classList.contains("dropdown-menu-right")?"top-end":"top-start":t.classList.contains("dropright")?e="right-start":t.classList.contains("dropleft")?e="left-start":this._menu.classList.contains("dropdown-menu-right")&&(e="bottom-end"),e},e._detectNavbar=function(){return Boolean(this._element.closest(".navbar"))},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),s({},t,this._config.popperConfig)},t.dropdownInterface=function(e,n){var i=k(e,"bs.dropdown");if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t.jQueryInterface=function(e){return this.each((function(){t.dropdownInterface(this,e)}))},t.clearMenus=function(e){if(!e||2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(var n=z.find('[data-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var s=t.getParentFromElement(n[i]),r=k(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),r){var l=r._menu;if(n[i].classList.contains("show"))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&"Tab"===e.key)&&l.contains(e.target)))if(!B.trigger(s,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return B.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),B.trigger(s,"hidden.bs.dropdown",a)}}}},t.getParentFromElement=function(t){return h(t)||t.parentNode},t.dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?"Space"===e.key||"Escape"!==e.key&&("ArrowDown"!==e.key&&"ArrowUp"!==e.key||e.target.closest(".dropdown-menu")):!ot.test(e.key))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=t.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===e.key)return(this.matches('[data-toggle="dropdown"]')?this:z.prev(this,'[data-toggle="dropdown"]')[0]).focus(),void t.clearMenus();if(i&&"Space"!==e.key){var o=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(_);if(o.length){var s=o.indexOf(e.target);"ArrowUp"===e.key&&s>0&&s--,"ArrowDown"===e.key&&s<o.length-1&&s++,o[s=-1===s?0:s].focus()}}else t.clearMenus()}},t.getInstance=function(t){return k(t,"bs.dropdown")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return st}},{key:"DefaultType",get:function(){return rt}}]),t}();B.on(document,"keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',at.dataApiKeydownHandler),B.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",at.dataApiKeydownHandler),B.on(document,"click.bs.dropdown.data-api",at.clearMenus),B.on(document,"keyup.bs.dropdown.data-api",at.clearMenus),B.on(document,"click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),at.dropdownInterface(this,"toggle")})),B.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()})),w((function(){var t=y();if(t){var e=t.fn[it];t.fn[it]=at.jQueryInterface,t.fn[it].Constructor=at,t.fn[it].noConflict=function(){return t.fn[it]=e,at.jQueryInterface}}}));var lt={backdrop:!0,keyboard:!0,focus:!0,show:!0},ct={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},ut=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=z.findOne(".modal-dialog",t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,T(t,"bs.modal",this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains("fade")&&(this._isTransitioning=!0);var n=B.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),B.on(this._element,"click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),B.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){B.one(e._element,"mouseup.dismiss.bs.modal",(function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},e.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!B.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),B.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),B.off(this._element,"click.dismiss.bs.modal"),B.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=f(this._element);B.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),p(this._element,i)}else this._hideModal()}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return B.off(t,".bs.modal")})),B.off(document,"focusin.bs.modal"),L(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=s({},lt,t),m("modal",t,ct),t},e._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=z.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&b(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,B.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var s=f(this._dialog);B.one(this._dialog,"transitionend",o),p(this._dialog,s)}else o()},e._enforceFocus=function(){var t=this;B.off(document,"focusin.bs.modal"),B.on(document,"focusin.bs.modal",(function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?B.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&"Escape"===e.key?(e.preventDefault(),t.hide()):t._config.keyboard||"Escape"!==e.key||t._triggerBackdropTransition()})):B.off(this._element,"keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?B.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):B.off(window,"resize.bs.modal")},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){document.body.classList.remove("modal-open"),t._resetAdjustments(),t._resetScrollbar(),B.trigger(t._element,"hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),B.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&b(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=f(this._backdrop);B.one(this._backdrop,"transitionend",t),p(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var s=f(this._backdrop);B.one(this._backdrop,"transitionend",o),p(this._backdrop,s)}else o()}else t()},e._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){if(B.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;var e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=f(this._dialog);B.off(this._element,"transitionend"),B.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(B.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),p(t._element,n))})),p(this._element,n),this._element.focus()}else this.hide()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){z.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];V.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"})),z.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];V.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"}));var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];V.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},e._resetScrollbar=function(){z.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=V.getDataAttribute(t,"padding-right");void 0!==e&&(V.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),z.find(".sticky-top").forEach((function(t){var e=V.getDataAttribute(t,"margin-right");void 0!==e&&(V.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=V.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(V.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t.jQueryInterface=function(e,n){return this.each((function(){var i=k(this,"bs.modal"),o=s({},lt,V.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,o)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else o.show&&i.show(n)}))},t.getInstance=function(t){return k(t,"bs.modal")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return lt}}]),t}();B.on(document,"click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e=this,n=h(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),B.one(n,"show.bs.modal",(function(t){t.defaultPrevented||B.one(n,"hidden.bs.modal",(function(){_(e)&&e.focus()}))}));var i=k(n,"bs.modal");if(!i){var o=s({},V.getDataAttributes(n),V.getDataAttributes(this));i=new ut(n,o)}i.show(this)})),w((function(){var t=y();if(t){var e=t.fn.modal;t.fn.modal=ut.jQueryInterface,t.fn.modal.Constructor=ut,t.fn.modal.noConflict=function(){return t.fn.modal=e,ut.jQueryInterface}}}));var ht=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ft=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,dt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,gt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function pt(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(e),r=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=r[t],a=o.nodeName.toLowerCase();if(-1===s.indexOf(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===ht.indexOf(n)||Boolean(t.nodeValue.match(ft)||t.nodeValue.match(dt));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=r.length;l<c;l++)a(l);return o.body.innerHTML}var mt="tooltip",_t=new RegExp("(^|\\s)bs-tooltip\\S+","g"),vt=["sanitize","allowList","sanitizeFn"],bt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object)"},yt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},wt={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,allowList:gt,popperConfig:null},Et={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Tt=function(){function t(t,e){if(void 0===n.default)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners(),T(t,this.constructor.DATA_KEY,this)}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=k(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),L(this.element,this.constructor.DATA_KEY),B.off(this.element,this.constructor.EVENT_KEY),B.off(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=B.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(e.defaultPrevented||!o)return;var s=this.getTipElement(),r=l(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,c=this._getAttachment(a);this._addAttachmentClass(c);var u,h=this._getContainer();if(T(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||h.appendChild(s),B.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new n.default(this.element,s,this._getPopperConfig(c)),s.classList.add("show"),"ontouchstart"in document.documentElement)(u=[]).concat.apply(u,document.body.children).forEach((function(t){B.on(t,"mouseover",(function(){}))}));var d=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,B.trigger(t.element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var g=f(this.tip);B.one(this.tip,"transitionend",d),p(this.tip,g)}else d()}},e.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),B.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!B.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return B.off(t,"mouseover",v)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=f(e);B.one(e,"transitionend",n),p(e,o)}else n();this._hoverState=""}}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},e.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&g(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=pt(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:g(this.config.container)?this.config.container:z.findOne(this.config.container)},e._getAttachment=function(t){return yt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)B.on(t.element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;B.on(t.element,n,t.config.selector,(function(e){return t._enter(e)})),B.on(t.element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},B.on(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||k(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||k(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=V.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==vt.indexOf(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),m(mt,t,this.constructor.DefaultType),t.sanitize&&(t.template=pt(t.template,t.allowList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(_t);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return k(t,"bs.tooltip")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return wt}},{key:"NAME",get:function(){return mt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Et}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return bt}}]),t}();w((function(){var t=y();if(t){var e=t.fn[mt];t.fn[mt]=Tt.jQueryInterface,t.fn[mt].Constructor=Tt,t.fn[mt].noConflict=function(){return t.fn[mt]=e,Tt.jQueryInterface}}}));var kt="popover",Lt=new RegExp("(^|\\s)bs-popover\\S+","g"),Ct=s({},Tt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),At=s({},Tt.DefaultType,{content:"(string|element|function)"}),St={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Dt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var s=i.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(z.findOne(".popover-body",t),e),t.classList.remove("fade","show")},s._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Lt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},i.jQueryInterface=function(t){return this.each((function(){var e=k(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),T(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},i.getInstance=function(t){return k(t,"bs.popover")},o(i,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return Ct}},{key:"NAME",get:function(){return kt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return St}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return At}}]),i}(Tt);w((function(){var t=y();if(t){var e=t.fn[kt];t.fn[kt]=Dt.jQueryInterface,t.fn[kt].Constructor=Dt,t.fn[kt].noConflict=function(){return t.fn[kt]=e,Dt.jQueryInterface}}}));var It="scrollspy",Ot={offset:10,method:"auto",target:""},Nt={offset:"number",method:"string",target:"(string|element)"},jt=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link, "+this._config.target+" .list-group-item, "+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,B.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),T(t,"bs.scrollspy",this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),z.find(this._selector).map((function(t){var e=u(t),o=e?z.findOne(e):null;if(o){var s=o.getBoundingClientRect();if(s.width||s.height)return[V[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){L(this._element,"bs.scrollspy"),B.off(this._scrollElement,".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=s({},Ot,"object"==typeof t&&t?t:{})).target&&g(t.target)){var e=t.target.id;e||(e=l(It),t.target.id=e),t.target="#"+e}return m(It,t,Nt),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=z.findOne(e.join(","));n.classList.contains("dropdown-item")?(z.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),z.parents(n,".nav, .list-group").forEach((function(t){z.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),z.prev(t,".nav-item").forEach((function(t){z.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),B.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){z.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return k(t,"bs.scrollspy")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"Default",get:function(){return Ot}}]),t}();B.on(window,"load.bs.scrollspy.data-api",(function(){z.find('[data-spy="scroll"]').forEach((function(t){return new jt(t,V.getDataAttributes(t))}))})),w((function(){var t=y();if(t){var e=t.fn[It];t.fn[It]=jt.jQueryInterface,t.fn[It].Constructor=jt,t.fn[It].noConflict=function(){return t.fn[It]=e,jt.jQueryInterface}}}));var xt=function(){function t(t){this._element=t,T(this._element,"bs.tab",this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active")||this._element.classList.contains("disabled"))){var e,n=h(this._element),i=this._element.closest(".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=z.find(o,i))[e.length-1]}var s=null;if(e&&(s=B.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(B.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){B.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),B.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},e.dispose=function(){L(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?z.children(e,".active"):z.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=f(o);o.classList.remove("show"),B.one(o,"transitionend",r),p(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=z.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),b(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&z.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return k(t,"bs.tab")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}}]),t}();B.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(k(this,"bs.tab")||new xt(this)).show()})),w((function(){var t=y();if(t){var e=t.fn.tab;t.fn.tab=xt.jQueryInterface,t.fn.tab.Constructor=xt,t.fn.tab.noConflict=function(){return t.fn.tab=e,xt.jQueryInterface}}}));var Pt={animation:"boolean",autohide:"boolean",delay:"number"},Rt={animation:!0,autohide:!0,delay:5e3},Ht=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),T(t,"bs.toast",this)}var e=t.prototype;return e.show=function(){var t=this;if(!B.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),B.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),b(this._element),this._element.classList.add("showing"),this._config.animation){var n=f(this._element);B.one(this._element,"transitionend",e),p(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains("show")&&!B.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),B.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=f(this._element);B.one(this._element,"transitionend",e),p(this._element,n)}else e()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),B.off(this._element,"click.dismiss.bs.toast"),L(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=s({},Rt,V.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),m("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;B.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return k(t,"bs.toast")},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha3"}},{key:"DefaultType",get:function(){return Pt}},{key:"Default",get:function(){return Rt}}]),t}();return w((function(){var t=y();if(t){var e=t.fn.toast;t.fn.toast=Ht.jQueryInterface,t.fn.toast.Constructor=Ht,t.fn.toast.noConflict=function(){return t.fn.toast=e,Ht.jQueryInterface}}})),{Alert:U,Button:F,Carousel:Z,Collapse:nt,Dropdown:at,Modal:ut,Popover:Dt,ScrollSpy:jt,Tab:xt,Toast:Ht,Tooltip:Tt}})); diff --git a/assets/javascripts/bootstrap/alert.js b/assets/javascripts/bootstrap/alert.js index 3f6b22f..6046c71 100644 --- a/assets/javascripts/bootstrap/alert.js +++ b/assets/javascripts/bootstrap/alert.js @@ -1,5 +1,5 @@ /*! - * Bootstrap alert.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap alert.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -16,7 +16,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -95,6 +95,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -105,7 +113,7 @@ */ var NAME = 'alert'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.alert'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -233,26 +241,28 @@ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .alert to jQuery only if jQuery is present + * add .Alert to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Alert.jQueryInterface; - $.fn[NAME].Constructor = Alert; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Alert.jQueryInterface; + $.fn[NAME].Constructor = Alert; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Alert.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert.jQueryInterface; + }; + } + }); return Alert; diff --git a/assets/javascripts/bootstrap/button.js b/assets/javascripts/bootstrap/button.js index 83d3009..ac5b22e 100644 --- a/assets/javascripts/bootstrap/button.js +++ b/assets/javascripts/bootstrap/button.js @@ -1,5 +1,5 @@ /*! - * Bootstrap button.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap button.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -16,7 +16,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -32,6 +32,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -42,7 +50,7 @@ */ var NAME = 'button'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.button'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -121,26 +129,28 @@ data.toggle(); }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .button to jQuery only if jQuery is present + * add .Button to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Button.jQueryInterface; - $.fn[NAME].Constructor = Button; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Button.jQueryInterface; + $.fn[NAME].Constructor = Button; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Button.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Button.jQueryInterface; + }; + } + }); return Button; diff --git a/assets/javascripts/bootstrap/carousel.js b/assets/javascripts/bootstrap/carousel.js index d2ca828..ea9269b 100644 --- a/assets/javascripts/bootstrap/carousel.js +++ b/assets/javascripts/bootstrap/carousel.js @@ -1,5 +1,5 @@ /*! - * Bootstrap carousel.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap carousel.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -18,7 +18,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -139,6 +139,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 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); } } @@ -151,7 +159,7 @@ */ var NAME = 'carousel'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.carousel'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -289,6 +297,8 @@ } if (this._config && this._config.interval && !this._isPaused) { + this._updateInterval(); + this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); } }; @@ -530,6 +540,23 @@ } }; + _proto._updateInterval = function _updateInterval() { + var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element); + + if (!element) { + return; + } + + var elementInterval = parseInt(element.getAttribute('data-interval'), 10); + + if (elementInterval) { + this._config.defaultInterval = this._config.defaultInterval || this._config.interval; + this._config.interval = elementInterval; + } else { + this._config.interval = this._config.defaultInterval || this._config.interval; + } + }; + _proto._slide = function _slide(direction, element) { var _this4 = this; @@ -580,20 +607,13 @@ this._setActiveIndicatorElement(nextElement); + this._activeElement = nextElement; + if (this._element.classList.contains(CLASS_NAME_SLIDE)) { nextElement.classList.add(orderClassName); reflow(nextElement); activeElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName); - var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); - - if (nextElementInterval) { - this._config.defaultInterval = this._config.defaultInterval || this._config.interval; - this._config.interval = nextElementInterval; - } else { - this._config.interval = this._config.defaultInterval || this._config.interval; - } - var transitionDuration = getTransitionDurationFromElement(activeElement); EventHandler__default['default'].one(activeElement, TRANSITION_END, function () { nextElement.classList.remove(directionalClassName, orderClassName); @@ -720,26 +740,28 @@ Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY)); } }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .carousel to jQuery only if jQuery is present + * add .Carousel to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Carousel.jQueryInterface; - $.fn[NAME].Constructor = Carousel; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Carousel.jQueryInterface; + $.fn[NAME].Constructor = Carousel; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Carousel.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Carousel.jQueryInterface; + }; + } + }); return Carousel; diff --git a/assets/javascripts/bootstrap/collapse.js b/assets/javascripts/bootstrap/collapse.js index e86dce8..833ca34 100644 --- a/assets/javascripts/bootstrap/collapse.js +++ b/assets/javascripts/bootstrap/collapse.js @@ -1,5 +1,5 @@ /*! - * Bootstrap collapse.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap collapse.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -18,7 +18,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -135,6 +135,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 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); } } @@ -147,7 +155,7 @@ */ var NAME = 'collapse'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.collapse'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -519,26 +527,28 @@ Collapse.collapseInterface(element, config); }); }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .collapse to jQuery only if jQuery is present + * add .Collapse to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Collapse.jQueryInterface; - $.fn[NAME].Constructor = Collapse; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Collapse.jQueryInterface; + $.fn[NAME].Constructor = Collapse; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Collapse.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Collapse.jQueryInterface; + }; + } + }); return Collapse; diff --git a/assets/javascripts/bootstrap/dom/data.js b/assets/javascripts/bootstrap/dom/data.js index 778ebfa..61712f5 100644 --- a/assets/javascripts/bootstrap/dom/data.js +++ b/assets/javascripts/bootstrap/dom/data.js @@ -1,5 +1,5 @@ /*! - * Bootstrap data.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap data.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -11,7 +11,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/data.js + * Bootstrap (v5.0.0-alpha3): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ diff --git a/assets/javascripts/bootstrap/dom/event-handler.js b/assets/javascripts/bootstrap/dom/event-handler.js index 5ae7c3e..0ae06b9 100644 --- a/assets/javascripts/bootstrap/dom/event-handler.js +++ b/assets/javascripts/bootstrap/dom/event-handler.js @@ -1,17 +1,17 @@ /*! - * Bootstrap event-handler.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap event-handler.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : - typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Polyfill)); -}(this, (function (polyfill_js) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory()); +}(this, (function () { 'use strict'; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -29,7 +29,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/event-handler.js + * Bootstrap (v5.0.0-alpha3): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -39,7 +39,6 @@ * ------------------------------------------------------------------------ */ - var $ = getjQuery(); var namespaceRegex = /[^.]*(?=\..*)\.|.*/; var stripNameRegex = /\..*/; var stripUidRegex = /::\d+$/; @@ -248,6 +247,7 @@ return null; } + var $ = getjQuery(); var typeEvent = event.replace(stripNameRegex, ''); var inNamespace = event !== typeEvent; var isNative = nativeEvents.indexOf(typeEvent) > -1; @@ -288,14 +288,6 @@ if (defaultPrevented) { evt.preventDefault(); - - if (!polyfill_js.defaultPreventedPreservedOnDispatch) { - Object.defineProperty(evt, 'defaultPrevented', { - get: function get() { - return true; - } - }); - } } if (nativeDispatch) { diff --git a/assets/javascripts/bootstrap/dom/manipulator.js b/assets/javascripts/bootstrap/dom/manipulator.js index 04d073d..2deda26 100644 --- a/assets/javascripts/bootstrap/dom/manipulator.js +++ b/assets/javascripts/bootstrap/dom/manipulator.js @@ -1,5 +1,5 @@ /*! - * Bootstrap manipulator.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap manipulator.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -13,7 +13,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/manipulator.js + * Bootstrap (v5.0.0-alpha3): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -77,17 +77,6 @@ top: element.offsetTop, left: element.offsetLeft }; - }, - toggleClass: function toggleClass(element, className) { - if (!element) { - return; - } - - if (element.classList.contains(className)) { - element.classList.remove(className); - } else { - element.classList.add(className); - } } }; diff --git a/assets/javascripts/bootstrap/dom/polyfill.js b/assets/javascripts/bootstrap/dom/polyfill.js deleted file mode 100644 index 5ee16b2..0000000 --- a/assets/javascripts/bootstrap/dom/polyfill.js +++ /dev/null @@ -1,110 +0,0 @@ -/*! - * Bootstrap polyfill.js v5.0.0-alpha2 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Polyfill = {})); -}(this, (function (exports) { 'use strict'; - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - var MAX_UID = 1000000; - /** - * -------------------------------------------------------------------------- - * Public Util Api - * -------------------------------------------------------------------------- - */ - - - var getUID = function getUID(prefix) { - do { - prefix += Math.floor(Math.random() * MAX_UID); - } while (document.getElementById(prefix)); - - return prefix; - }; - - /* istanbul ignore file */ - exports.find = Element.prototype.querySelectorAll; - exports.findOne = Element.prototype.querySelector; // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - - var defaultPreventedPreservedOnDispatch = function () { - var e = new CustomEvent('Bootstrap', { - cancelable: true - }); - var element = document.createElement('div'); - element.addEventListener('Bootstrap', function () { - return null; - }); - e.preventDefault(); - element.dispatchEvent(e); - return e.defaultPrevented; - }(); - - var scopeSelectorRegex = /:scope\b/; - - var supportScopeQuery = function () { - var element = document.createElement('div'); - - try { - element.querySelectorAll(':scope *'); - } catch (_) { - return false; - } - - return true; - }(); - - if (!supportScopeQuery) { - exports.find = function find(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelectorAll(selector); - } - - var hasId = Boolean(this.id); - - if (!hasId) { - this.id = getUID('scope'); - } - - var nodeList = null; - - try { - selector = selector.replace(scopeSelectorRegex, "#" + this.id); - nodeList = this.querySelectorAll(selector); - } finally { - if (!hasId) { - this.removeAttribute('id'); - } - } - - return nodeList; - }; - - exports.findOne = function findOne(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelector(selector); - } - - var matches = exports.find.call(this, selector); - - if (typeof matches[0] !== 'undefined') { - return matches[0]; - } - - return null; - }; - } - - exports.defaultPreventedPreservedOnDispatch = defaultPreventedPreservedOnDispatch; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); diff --git a/assets/javascripts/bootstrap/dom/selector-engine.js b/assets/javascripts/bootstrap/dom/selector-engine.js index cdfbbb4..ade9bd6 100644 --- a/assets/javascripts/bootstrap/dom/selector-engine.js +++ b/assets/javascripts/bootstrap/dom/selector-engine.js @@ -1,26 +1,26 @@ /*! - * Bootstrap selector-engine.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap selector-engine.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : - typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory(global.Polyfill)); -}(this, (function (polyfill_js) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory()); +}(this, (function () { 'use strict'; /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): dom/selector-engine.js + * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NODE_TEXT = 3; var SelectorEngine = { matches: function matches(element, selector) { @@ -33,14 +33,14 @@ element = document.documentElement; } - return (_ref = []).concat.apply(_ref, polyfill_js.find.call(element, selector)); + return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector)); }, findOne: function findOne(selector, element) { if (element === void 0) { element = document.documentElement; } - return polyfill_js.findOne.call(element, selector); + return Element.prototype.querySelector.call(element, selector); }, children: function children(element, selector) { var _ref2; diff --git a/assets/javascripts/bootstrap/dropdown.js b/assets/javascripts/bootstrap/dropdown.js index 1ecc208..375e23f 100644 --- a/assets/javascripts/bootstrap/dropdown.js +++ b/assets/javascripts/bootstrap/dropdown.js @@ -1,5 +1,5 @@ /*! - * Bootstrap dropdown.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap dropdown.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -19,7 +19,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -93,6 +93,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 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); } } @@ -105,7 +113,7 @@ */ var NAME = 'dropdown'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.dropdown'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -258,8 +266,10 @@ this._element.setAttribute('aria-expanded', true); - Manipulator__default['default'].toggleClass(this._menu, CLASS_NAME_SHOW); - Manipulator__default['default'].toggleClass(this._element, CLASS_NAME_SHOW); + this._menu.classList.toggle(CLASS_NAME_SHOW); + + this._element.classList.toggle(CLASS_NAME_SHOW); + EventHandler__default['default'].trigger(parent, EVENT_SHOWN, relatedTarget); }; @@ -282,8 +292,10 @@ this._popper.destroy(); } - Manipulator__default['default'].toggleClass(this._menu, CLASS_NAME_SHOW); - Manipulator__default['default'].toggleClass(this._element, CLASS_NAME_SHOW); + this._menu.classList.toggle(CLASS_NAME_SHOW); + + this._element.classList.toggle(CLASS_NAME_SHOW); + EventHandler__default['default'].trigger(parent, EVENT_HIDDEN, relatedTarget); }; @@ -335,11 +347,7 @@ var placement = PLACEMENT_BOTTOM; // Handle dropup if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { - placement = PLACEMENT_TOP; - - if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) { - placement = PLACEMENT_TOPEND; - } + placement = this._menu.classList.contains(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) { placement = PLACEMENT_RIGHT; } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) { @@ -583,26 +591,28 @@ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) { return e.stopPropagation(); }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .dropdown to jQuery only if jQuery is present + * add .Dropdown to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Dropdown.jQueryInterface; - $.fn[NAME].Constructor = Dropdown; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Dropdown.jQueryInterface; + $.fn[NAME].Constructor = Dropdown; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Dropdown.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Dropdown.jQueryInterface; + }; + } + }); return Dropdown; diff --git a/assets/javascripts/bootstrap/modal.js b/assets/javascripts/bootstrap/modal.js index 79c0823..4f631a5 100644 --- a/assets/javascripts/bootstrap/modal.js +++ b/assets/javascripts/bootstrap/modal.js @@ -1,5 +1,5 @@ /*! - * Bootstrap modal.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap modal.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -18,7 +18,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -139,6 +139,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 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); } } @@ -151,7 +159,7 @@ */ var NAME = 'modal'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.modal'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -752,26 +760,28 @@ data.show(this); }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .modal to jQuery only if jQuery is present + * add .Modal to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Modal.jQueryInterface; - $.fn[NAME].Constructor = Modal; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Modal.jQueryInterface; + $.fn[NAME].Constructor = Modal; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Modal.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Modal.jQueryInterface; + }; + } + }); return Modal; diff --git a/assets/javascripts/bootstrap/popover.js b/assets/javascripts/bootstrap/popover.js index ce2cf65..8160a48 100644 --- a/assets/javascripts/bootstrap/popover.js +++ b/assets/javascripts/bootstrap/popover.js @@ -1,5 +1,5 @@ /*! - * Bootstrap popover.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap popover.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -17,7 +17,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -33,6 +33,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -47,7 +55,7 @@ */ var NAME = 'popover'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.popover'; var EVENT_KEY = "." + DATA_KEY; var CLASS_PREFIX = 'bs-popover'; @@ -207,26 +215,29 @@ return Popover; }(Tooltip__default['default']); - - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .Popover to jQuery only if jQuery is present */ - /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Popover.jQueryInterface; - $.fn[NAME].Constructor = Popover; + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Popover.jQueryInterface; - }; - } + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Popover.jQueryInterface; + $.fn[NAME].Constructor = Popover; + + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Popover.jQueryInterface; + }; + } + }); return Popover; diff --git a/assets/javascripts/bootstrap/scrollspy.js b/assets/javascripts/bootstrap/scrollspy.js index 669ea21..f33c996 100644 --- a/assets/javascripts/bootstrap/scrollspy.js +++ b/assets/javascripts/bootstrap/scrollspy.js @@ -1,5 +1,5 @@ /*! - * Bootstrap scrollspy.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap scrollspy.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -18,7 +18,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -94,6 +94,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 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); } } @@ -106,7 +114,7 @@ */ var NAME = 'scrollspy'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.scrollspy'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -378,25 +386,28 @@ return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy)); }); }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .ScrollSpy to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = ScrollSpy.jQueryInterface; - $.fn[NAME].Constructor = ScrollSpy; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = ScrollSpy.jQueryInterface; + $.fn[NAME].Constructor = ScrollSpy; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return ScrollSpy.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return ScrollSpy.jQueryInterface; + }; + } + }); return ScrollSpy; diff --git a/assets/javascripts/bootstrap/tab.js b/assets/javascripts/bootstrap/tab.js index 995f665..ad9f539 100644 --- a/assets/javascripts/bootstrap/tab.js +++ b/assets/javascripts/bootstrap/tab.js @@ -1,5 +1,5 @@ /*! - * Bootstrap tab.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap tab.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -17,7 +17,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -100,6 +100,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -110,7 +118,7 @@ */ var NAME = 'tab'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.tab'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -309,26 +317,28 @@ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this); data.show(); }); - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .tab to jQuery only if jQuery is present + * add .Tab to jQuery only if jQuery is present */ - /* istanbul ignore if */ + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Tab.jQueryInterface; - $.fn[NAME].Constructor = Tab; + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Tab.jQueryInterface; + $.fn[NAME].Constructor = Tab; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Tab.jQueryInterface; - }; - } + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tab.jQueryInterface; + }; + } + }); return Tab; diff --git a/assets/javascripts/bootstrap/toast.js b/assets/javascripts/bootstrap/toast.js index 16c270f..1955f51 100644 --- a/assets/javascripts/bootstrap/toast.js +++ b/assets/javascripts/bootstrap/toast.js @@ -1,5 +1,5 @@ /*! - * Bootstrap toast.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap toast.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -17,7 +17,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -108,6 +108,14 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 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); } } @@ -120,7 +128,7 @@ */ var NAME = 'toast'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.toast'; var EVENT_KEY = "." + DATA_KEY; var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY; @@ -315,27 +323,29 @@ return Toast; }(); - - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .toast to jQuery only if jQuery is present + * add .Toast to jQuery only if jQuery is present */ - /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Toast.jQueryInterface; - $.fn[NAME].Constructor = Toast; + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Toast.jQueryInterface; - }; - } + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Toast.jQueryInterface; + $.fn[NAME].Constructor = Toast; + + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Toast.jQueryInterface; + }; + } + }); return Toast; diff --git a/assets/javascripts/bootstrap/tooltip.js b/assets/javascripts/bootstrap/tooltip.js index 9d2dc9e..d9f02db 100644 --- a/assets/javascripts/bootstrap/tooltip.js +++ b/assets/javascripts/bootstrap/tooltip.js @@ -1,5 +1,5 @@ /*! - * Bootstrap tooltip.js v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap tooltip.js v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -19,7 +19,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/index.js + * Bootstrap (v5.0.0-alpha3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -148,9 +148,17 @@ return null; }; + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-alpha2): util/sanitizer.js + * Bootstrap (v5.0.0-alpha3): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -287,7 +295,7 @@ */ var NAME = 'tooltip'; - var VERSION = '5.0.0-alpha2'; + var VERSION = '5.0.0-alpha3'; var DATA_KEY = 'bs.tooltip'; var EVENT_KEY = "." + DATA_KEY; var CLASS_PREFIX = 'bs-tooltip'; @@ -1011,27 +1019,29 @@ return Tooltip; }(); - - var $ = getjQuery(); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ - * add .tooltip to jQuery only if jQuery is present + * add .Tooltip to jQuery only if jQuery is present */ - /* istanbul ignore if */ - if ($) { - var JQUERY_NO_CONFLICT = $.fn[NAME]; - $.fn[NAME] = Tooltip.jQueryInterface; - $.fn[NAME].Constructor = Tooltip; + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; - return Tooltip.jQueryInterface; - }; - } + if ($) { + var JQUERY_NO_CONFLICT = $.fn[NAME]; + $.fn[NAME] = Tooltip.jQueryInterface; + $.fn[NAME].Constructor = Tooltip; + + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tooltip.jQueryInterface; + }; + } + }); return Tooltip; diff --git a/assets/stylesheets/_bootstrap-grid.scss b/assets/stylesheets/_bootstrap-grid.scss index 64ae965..2d81009 100644 --- a/assets/stylesheets/_bootstrap-grid.scss +++ b/assets/stylesheets/_bootstrap-grid.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap Grid v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap Grid v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/assets/stylesheets/_bootstrap-reboot.scss b/assets/stylesheets/_bootstrap-reboot.scss index fded39c..384c463 100644 --- a/assets/stylesheets/_bootstrap-reboot.scss +++ b/assets/stylesheets/_bootstrap-reboot.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap Reboot v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap Reboot v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/assets/stylesheets/_bootstrap.scss b/assets/stylesheets/_bootstrap.scss index beb028d..55a59ee 100644 --- a/assets/stylesheets/_bootstrap.scss +++ b/assets/stylesheets/_bootstrap.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) @@ -28,6 +28,7 @@ @import "bootstrap/nav"; @import "bootstrap/navbar"; @import "bootstrap/card"; +@import "bootstrap/accordion"; @import "bootstrap/breadcrumb"; @import "bootstrap/pagination"; @import "bootstrap/badge"; diff --git a/assets/stylesheets/bootstrap/_accordion.scss b/assets/stylesheets/bootstrap/_accordion.scss new file mode 100644 index 0000000..a68aaa7 --- /dev/null +++ b/assets/stylesheets/bootstrap/_accordion.scss @@ -0,0 +1,125 @@ +// +// Base styles +// + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: $accordion-button-padding-y $accordion-button-padding-x; + @include font-size($font-size-base); + color: $accordion-button-color; + background-color: $accordion-button-bg; + border: $accordion-border-width solid $accordion-border-color; + @include border-radius(0); + overflow-anchor: none; + @include transition($accordion-transition); + + &.collapsed { + border-bottom-width: 0; + } + + &:not(.collapsed) { + color: $accordion-button-active-color; + background-color: $accordion-button-active-bg; + + &::after { + background-image: escape-svg($accordion-button-active-icon); + transform: $accordion-icon-transform; + } + } + + // Accordion icon + &::after { + flex-shrink: 0; + width: $accordion-icon-width; + height: $accordion-icon-width; + margin-left: auto; + content: ""; + background-image: escape-svg($accordion-button-icon); + background-repeat: no-repeat; + background-size: $accordion-icon-width; + @include transition($accordion-icon-transition); + } + + &:hover { + z-index: 2; + } + + &:focus { + z-index: 3; + border-color: $accordion-button-focus-border-color; + outline: 0; + box-shadow: $accordion-button-focus-box-shadow; + } +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + &:first-of-type { + .accordion-button { + @include border-top-radius($accordion-border-radius); + } + } + + &:last-of-type { + .accordion-button { + // Only set a border-radius on the last item if the accordion is collapsed + &.collapsed { + border-bottom-width: $accordion-border-width; + @include border-bottom-radius($accordion-border-radius); + } + } + + .accordion-collapse { + border-bottom-width: $accordion-border-width; + @include border-bottom-radius($accordion-border-radius); + } + } +} + +.accordion-collapse { + border: solid $accordion-border-color; + border-width: 0 $accordion-border-width; +} + +.accordion-body { + padding: $accordion-body-padding-y $accordion-body-padding-x; +} + + +// Flush accordion items +// +// Remove borders and border-radius to keep accordion items edge-to-edge. + +.accordion-flush { + .accordion-button { + border-right: 0; + border-left: 0; + @include border-radius(0); + } + + .accordion-collapse { + border-width: 0; + } + + .accordion-item { + &:first-of-type { + .accordion-button { + border-top-width: 0; + @include border-top-radius(0); + } + } + + &:last-of-type { + .accordion-button.collapsed { + border-bottom-width: 0; + @include border-bottom-radius(0); + } + } + } +} diff --git a/assets/stylesheets/bootstrap/_alert.scss b/assets/stylesheets/bootstrap/_alert.scss index d0536f3..24fa2bd 100644 --- a/assets/stylesheets/bootstrap/_alert.scss +++ b/assets/stylesheets/bootstrap/_alert.scss @@ -34,6 +34,7 @@ position: absolute; top: 0; right: 0; + z-index: $stretched-link-z-index + 1; padding: $alert-padding-y * 1.25 $alert-padding-x; } } @@ -42,9 +43,15 @@ // scss-docs-start alert-modifiers // Generate contextual modifier classes for colorizing the alert. -@each $color, $value in $theme-colors { - .alert-#{$color} { - @include alert-variant(color-level($value, $alert-bg-level), color-level($value, $alert-border-level), color-level($value, $alert-color-level)); +@each $state, $value in $theme-colors { + $background: scale-color($value, $alert-bg-scale); + $border: scale-color($value, $alert-border-scale); + $color: scale-color($value, $alert-color-scale); + @if (contrast-ratio($background, $color) < $min-contrast-ratio) { + $color: mix($value, color-contrast($background), abs($alert-color-scale)); + } + .alert-#{$state} { + @include alert-variant($background, $border, $color); } } // scss-docs-end alert-modifiers diff --git a/assets/stylesheets/bootstrap/_breadcrumb.scss b/assets/stylesheets/bootstrap/_breadcrumb.scss index db8e741..b30668b 100644 --- a/assets/stylesheets/bootstrap/_breadcrumb.scss +++ b/assets/stylesheets/bootstrap/_breadcrumb.scss @@ -10,14 +10,12 @@ } .breadcrumb-item { - display: flex; - // The separator between breadcrumbs (by default, a forward-slash: "/") + .breadcrumb-item { padding-left: $breadcrumb-item-padding-x; &::before { - display: inline-block; // Suppress underlining of the separator + float: left; // Suppress inline spacings and underlining of the separator padding-right: $breadcrumb-item-padding-x; color: $breadcrumb-divider-color; content: escape-svg($breadcrumb-divider); diff --git a/assets/stylesheets/bootstrap/_button-group.scss b/assets/stylesheets/bootstrap/_button-group.scss index b15c629..1571d1e 100644 --- a/assets/stylesheets/bootstrap/_button-group.scss +++ b/assets/stylesheets/bootstrap/_button-group.scss @@ -1,5 +1,3 @@ -// stylelint-disable selector-no-qualifying-type - // Make the div behave like a button .btn-group, .btn-group-vertical { diff --git a/assets/stylesheets/bootstrap/_buttons.scss b/assets/stylesheets/bootstrap/_buttons.scss index e17d489..8f28d02 100644 --- a/assets/stylesheets/bootstrap/_buttons.scss +++ b/assets/stylesheets/bootstrap/_buttons.scss @@ -107,18 +107,3 @@ .btn-sm { @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm); } - - -// -// Block button -// - -.btn-block { - display: block; - width: 100%; - - // Vertically space out multiple block buttons - + .btn-block { - margin-top: $btn-block-spacing-y; - } -} diff --git a/assets/stylesheets/bootstrap/_card.scss b/assets/stylesheets/bootstrap/_card.scss index a526ec1..9b0f496 100644 --- a/assets/stylesheets/bootstrap/_card.scss +++ b/assets/stylesheets/bootstrap/_card.scss @@ -213,30 +213,3 @@ } } } - - -// -// Accordion -// - -.accordion { - overflow-anchor: none; - - > .card { - overflow: hidden; - - &:not(:last-of-type) { - border-bottom: 0; - @include border-bottom-radius(0); - } - - &:not(:first-of-type) { - @include border-top-radius(0); - } - - > .card-header { - @include border-radius(0); - margin-bottom: -$card-border-width; - } - } -} diff --git a/assets/stylesheets/bootstrap/_close.scss b/assets/stylesheets/bootstrap/_close.scss index fd1971d..db5d027 100644 --- a/assets/stylesheets/bootstrap/_close.scss +++ b/assets/stylesheets/bootstrap/_close.scss @@ -9,8 +9,7 @@ height: $btn-close-height; padding: $btn-close-padding-y $btn-close-padding-x; color: $btn-close-color; - background: transparent escape-svg($btn-close-bg) no-repeat center center / $btn-close-width auto; // include transparent for button elements - background-clip: content-box; + background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements border: 0; // for button elements @include border-radius(); opacity: $btn-close-opacity; diff --git a/assets/stylesheets/bootstrap/_forms.scss b/assets/stylesheets/bootstrap/_forms.scss index 39ba90d..7b17d84 100644 --- a/assets/stylesheets/bootstrap/_forms.scss +++ b/assets/stylesheets/bootstrap/_forms.scss @@ -3,7 +3,7 @@ @import "forms/form-control"; @import "forms/form-select"; @import "forms/form-check"; -@import "forms/form-file"; @import "forms/form-range"; +@import "forms/floating-labels"; @import "forms/input-group"; @import "forms/validation"; diff --git a/assets/stylesheets/bootstrap/_functions.scss b/assets/stylesheets/bootstrap/_functions.scss index fd72c98..b95fbf9 100644 --- a/assets/stylesheets/bootstrap/_functions.scss +++ b/assets/stylesheets/bootstrap/_functions.scss @@ -150,23 +150,23 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100); } -// Request a color level -// scss-docs-start color-level -@function color-level($color: $primary, $level: 0) { - $color-base: if($level > 0, $black, $white); - $level: abs($level); - - @return mix($color-base, $color, $level * $theme-color-interval); +// scss-docs-start color-functions +// Tint a color: mix a color with white +@function tint-color($color, $weight) { + @return mix(white, $color, $weight); } -// scss-docs-end color-level -@function tint-color($color, $level) { - @return mix(white, $color, $level * $theme-color-interval); +// Shade a color: mix a color with black +@function shade-color($color, $weight) { + @return mix(black, $color, $weight); } -@function shade-color($color, $level) { - @return mix(black, $color, $level * $theme-color-interval); +// Scale a color: +// Shade the color if the weight is positive, else tint it +@function scale-color($color, $weight) { + @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight)); } +// scss-docs-end color-functions // Return valid calc @function add($value1, $value2, $return-calc: true) { diff --git a/assets/stylesheets/bootstrap/_list-group.scss b/assets/stylesheets/bootstrap/_list-group.scss index b193790..2ce0c8b 100644 --- a/assets/stylesheets/bootstrap/_list-group.scss +++ b/assets/stylesheets/bootstrap/_list-group.scss @@ -151,7 +151,13 @@ // Add modifier classes to change text and background color on individual items. // Organizationally, this must come after the `:hover` states. -@each $color, $value in $theme-colors { - @include list-group-item-variant($color, color-level($value, $list-group-item-bg-level), color-level($value, $list-group-item-color-level)); +@each $state, $value in $theme-colors { + $background: scale-color($value, $list-group-item-bg-scale); + $color: scale-color($value, $list-group-item-color-scale); + @if (contrast-ratio($background, $color) < $min-contrast-ratio) { + $color: mix($value, color-contrast($background), abs($alert-color-scale)); + } + + @include list-group-item-variant($state, $background, $color); } // scss-docs-end list-group-modifiers diff --git a/assets/stylesheets/bootstrap/_popover.scss b/assets/stylesheets/bootstrap/_popover.scss index 6ebb2c3..55bfe1f 100644 --- a/assets/stylesheets/bootstrap/_popover.scss +++ b/assets/stylesheets/bootstrap/_popover.scss @@ -156,7 +156,7 @@ @include font-size($font-size-base); color: $popover-header-color; background-color: $popover-header-bg; - border-bottom: $popover-border-width solid darken($popover-header-bg, 5%); + border-bottom: $popover-border-width solid shade-color($popover-header-bg, 10%); @include border-top-radius($popover-inner-border-radius); &:empty { diff --git a/assets/stylesheets/bootstrap/_progress.scss b/assets/stylesheets/bootstrap/_progress.scss index a3fbecf..b48ffc4 100644 --- a/assets/stylesheets/bootstrap/_progress.scss +++ b/assets/stylesheets/bootstrap/_progress.scss @@ -34,7 +34,7 @@ @if $enable-transitions { .progress-bar-animated { - animation: progress-bar-stripes $progress-bar-animation-timing; + animation: $progress-bar-animation-timing progress-bar-stripes; @if $enable-reduced-motion { @media (prefers-reduced-motion: reduce) { diff --git a/assets/stylesheets/bootstrap/_reboot.scss b/assets/stylesheets/bootstrap/_reboot.scss index 223adfd..f64297b 100644 --- a/assets/stylesheets/bootstrap/_reboot.scss +++ b/assets/stylesheets/bootstrap/_reboot.scss @@ -27,6 +27,12 @@ :root { font-size: $font-size-root; + + @if $enable-smooth-scroll { + @media (prefers-reduced-motion: no-preference) { + scroll-behavior: smooth; + } + } } @@ -289,8 +295,6 @@ samp { // 1. Remove browser default top margin // 2. Reset browser default of `1em` to use `rem`s // 3. Don't allow content to break outside -// 4. Disable auto-hiding scrollbar in legacy Edge to avoid overlap, -// making it impossible to interact with the content pre { display: block; @@ -299,7 +303,6 @@ pre { overflow: auto; // 3 @include font-size($code-font-size); color: $pre-color; - -ms-overflow-style: scrollbar; // 4 // Account for some code outputs that place code tags in pre tags code { @@ -411,8 +414,8 @@ button { // Credit https://github.com/suitcss/base/ button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: dotted 1px; + outline: -webkit-focus-ring-color auto 5px; } // 1. Remove the margin in Firefox and Safari @@ -428,13 +431,6 @@ textarea { line-height: inherit; } -// Show the overflow in Edge - -button, -input { - overflow: visible; -} - // Remove the inheritance of text transform in Firefox button, @@ -510,8 +506,7 @@ fieldset { // 1. By using `float: left`, the legend will behave like a block element. // This way the border of a fieldset wraps around the legend if present. -// 2. Correct the text wrapping in Edge. -// 3. Fix wrapping bug. +// 2. Fix wrapping bug. // See https://github.com/twbs/bootstrap/issues/29712 legend { @@ -522,10 +517,9 @@ legend { @include font-size($legend-font-size); font-weight: $legend-font-weight; line-height: inherit; - white-space: normal; // 2 + * { - clear: left; // 3 + clear: left; // 2 } } @@ -569,7 +563,15 @@ legend { padding: 0; } -// 1. Change font properties to `inherit` in Safari. + +// Inherit font family and line height for file input buttons + +// stylelint-disable-next-line selector-pseudo-element-no-unknown +::file-selector-button { + font: inherit; +} + +// 1. Change font properties to `inherit` // 2. Correct the inability to style clickable types in iOS and Safari. ::-webkit-file-upload-button { diff --git a/assets/stylesheets/bootstrap/_root.scss b/assets/stylesheets/bootstrap/_root.scss index 44eff17..768d634 100644 --- a/assets/stylesheets/bootstrap/_root.scss +++ b/assets/stylesheets/bootstrap/_root.scss @@ -1,16 +1,16 @@ :root { // Custom variable values only support SassScript inside `#{}`. @each $color, $value in $colors { - --bs-#{$color}: #{$value}; + --#{$variable-prefix}#{$color}: #{$value}; } @each $color, $value in $theme-colors { - --bs-#{$color}: #{$value}; + --#{$variable-prefix}#{$color}: #{$value}; } // Use `inspect` for lists so that quoted items keep the quotes. // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 - --bs-font-sans-serif: #{inspect($font-family-sans-serif)}; - --bs-font-monospace: #{inspect($font-family-monospace)}; - --bs-gradient: #{$gradient}; + --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)}; + --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)}; + --#{$variable-prefix}gradient: #{$gradient}; } diff --git a/assets/stylesheets/bootstrap/_spinners.scss b/assets/stylesheets/bootstrap/_spinners.scss index 9e083ea..e932aac 100644 --- a/assets/stylesheets/bootstrap/_spinners.scss +++ b/assets/stylesheets/bootstrap/_spinners.scss @@ -15,7 +15,7 @@ border-right-color: transparent; // stylelint-disable-next-line property-disallowed-list border-radius: 50%; - animation: spinner-border $spinner-animation-speed linear infinite; + animation: $spinner-animation-speed linear infinite spinner-border; } .spinner-border-sm { @@ -47,10 +47,19 @@ // stylelint-disable-next-line property-disallowed-list border-radius: 50%; opacity: 0; - animation: spinner-grow $spinner-animation-speed linear infinite; + animation: $spinner-animation-speed linear infinite spinner-grow; } .spinner-grow-sm { width: $spinner-width-sm; height: $spinner-height-sm; } + +@if $enable-reduced-motion { + @media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + animation-duration: $spinner-animation-speed * 2; + } + } +} diff --git a/assets/stylesheets/bootstrap/_tables.scss b/assets/stylesheets/bootstrap/_tables.scss index 47ffde1..1b2db30 100644 --- a/assets/stylesheets/bootstrap/_tables.scss +++ b/assets/stylesheets/bootstrap/_tables.scss @@ -3,14 +3,14 @@ // .table { - --bs-table-bg: #{$table-bg}; - --bs-table-accent-bg: transparent; - --bs-table-striped-color: #{$table-striped-color}; - --bs-table-striped-bg: #{$table-striped-bg}; - --bs-table-active-color: #{$table-active-color}; - --bs-table-active-bg: #{$table-active-bg}; - --bs-table-hover-color: #{$table-hover-color}; - --bs-table-hover-bg: #{$table-hover-bg}; + --#{$variable-prefix}table-bg: #{$table-bg}; + --#{$variable-prefix}table-accent-bg: transparent; + --#{$variable-prefix}table-striped-color: #{$table-striped-color}; + --#{$variable-prefix}table-striped-bg: #{$table-striped-bg}; + --#{$variable-prefix}table-active-color: #{$table-active-color}; + --#{$variable-prefix}table-active-bg: #{$table-active-bg}; + --#{$variable-prefix}table-hover-color: #{$table-hover-color}; + --#{$variable-prefix}table-hover-bg: #{$table-hover-bg}; width: 100%; margin-bottom: $spacer; @@ -25,8 +25,8 @@ // stylelint-disable-next-line selector-max-universal > :not(caption) > * > * { padding: $table-cell-padding-y $table-cell-padding-x; - background-color: var(--bs-table-bg); - background-image: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)); + background-color: var(--#{$variable-prefix}table-bg); + background-image: linear-gradient(var(--#{$variable-prefix}table-accent-bg), var(--#{$variable-prefix}table-accent-bg)); border-bottom-width: $table-border-width; } @@ -99,8 +99,8 @@ .table-striped { > tbody > tr:nth-of-type(#{$table-striped-order}) { - --bs-table-accent-bg: var(--bs-table-striped-bg); - color: var(--bs-table-striped-color); + --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg); + color: var(--#{$variable-prefix}table-striped-color); } } @@ -109,8 +109,8 @@ // The `.table-active` class can be added to highlight rows or cells .table-active { - --bs-table-accent-bg: var(--bs-table-active-bg); - color: var(--bs-table-active-color); + --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-active-bg); + color: var(--#{$variable-prefix}table-active-color); } // Hover effect @@ -119,8 +119,8 @@ .table-hover { > tbody > tr:hover { - --bs-table-accent-bg: var(--bs-table-hover-bg); - color: var(--bs-table-hover-color); + --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg); + color: var(--#{$variable-prefix}table-hover-color); } } diff --git a/assets/stylesheets/bootstrap/_utilities.scss b/assets/stylesheets/bootstrap/_utilities.scss index e9a9b1e..03c71d1 100644 --- a/assets/stylesheets/bootstrap/_utilities.scss +++ b/assets/stylesheets/bootstrap/_utilities.scss @@ -16,14 +16,14 @@ $utilities: map-merge( ), "overflow": ( property: overflow, - values: auto hidden, + values: auto hidden visible scroll, ), "display": ( responsive: true, print: true, property: display, class: d, - values: inline inline-block block table table-row table-cell flex inline-flex none + values: inline inline-block block grid table table-row table-cell flex inline-flex none ), "shadow": ( property: box-shadow, @@ -196,6 +196,12 @@ $utilities: map-merge( class: flex, values: wrap nowrap wrap-reverse ), + "gap": ( + responsive: true, + property: gap, + class: gap, + values: $spacers + ), "justify-content": ( responsive: true, property: justify-content, @@ -387,8 +393,20 @@ $utilities: map-merge( values: $spacers ), // Text + "font-size": ( + rfs: true, + property: font-size, + class: fs, + values: $font-sizes + ), + "font-style": ( + property: font-style, + class: fst, + values: italic normal + ), "font-weight": ( property: font-weight, + class: fw, values: ( light: $font-weight-light, lighter: $font-weight-lighter, @@ -448,7 +466,7 @@ $utilities: map-merge( "gradient": ( property: background-image, class: bg, - values: (gradient: var(--bs-gradient)) + values: (gradient: var(--#{$variable-prefix}gradient)) ), "white-space": ( property: white-space, @@ -462,11 +480,6 @@ $utilities: map-merge( property: text-decoration, values: none underline line-through ), - "font-style": ( - property: font-style, - class: font, - values: italic normal - ), "word-wrap": ( property: word-wrap word-break, class: text, @@ -475,7 +488,7 @@ $utilities: map-merge( "font-family": ( property: font-family, class: font, - values: (monospace: var(--bs-font-monospace)) + values: (monospace: var(--#{$variable-prefix}font-monospace)) ), "user-select": ( property: user-select, @@ -491,11 +504,12 @@ $utilities: map-merge( class: rounded, values: ( null: $border-radius, - sm: $border-radius-sm, - lg: $border-radius-lg, - circle: 50%, - pill: $rounded-pill, 0: 0, + 1: $border-radius-sm, + 2: $border-radius, + 3: $border-radius-lg, + circle: 50%, + pill: $border-radius-pill ) ), "rounded-top": ( diff --git a/assets/stylesheets/bootstrap/_variables.scss b/assets/stylesheets/bootstrap/_variables.scss index e4d844f..2a8b45e 100644 --- a/assets/stylesheets/bootstrap/_variables.scss +++ b/assets/stylesheets/bootstrap/_variables.scss @@ -67,7 +67,7 @@ $info: $cyan !default; $warning: $yellow !default; $danger: $red !default; $light: $gray-100 !default; -$dark: $gray-800 !default; +$dark: $gray-900 !default; // scss-docs-start theme-colors-map $theme-colors: ( @@ -82,9 +82,6 @@ $theme-colors: ( ) !default; // scss-docs-end theme-colors-map -// Set a specific jump point for requesting color jumps -$theme-color-interval: 8% !default; - // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7. // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast $min-contrast-ratio: 4.5 !default; @@ -94,105 +91,105 @@ $color-contrast-dark: $black !default; $color-contrast-light: $white !default; // fusv-disable -$blue-100: tint-color($blue, 8) !default; -$blue-200: tint-color($blue, 6) !default; -$blue-300: tint-color($blue, 4) !default; -$blue-400: tint-color($blue, 2) !default; +$blue-100: tint-color($blue, 80%) !default; +$blue-200: tint-color($blue, 60%) !default; +$blue-300: tint-color($blue, 40%) !default; +$blue-400: tint-color($blue, 20%) !default; $blue-500: $blue !default; -$blue-600: shade-color($blue, 2) !default; -$blue-700: shade-color($blue, 4) !default; -$blue-800: shade-color($blue, 6) !default; -$blue-900: shade-color($blue, 8) !default; - -$indigo-100: tint-color($indigo, 8) !default; -$indigo-200: tint-color($indigo, 6) !default; -$indigo-300: tint-color($indigo, 4) !default; -$indigo-400: tint-color($indigo, 2) !default; +$blue-600: shade-color($blue, 20%) !default; +$blue-700: shade-color($blue, 40%) !default; +$blue-800: shade-color($blue, 60%) !default; +$blue-900: shade-color($blue, 80%) !default; + +$indigo-100: tint-color($indigo, 80%) !default; +$indigo-200: tint-color($indigo, 60%) !default; +$indigo-300: tint-color($indigo, 40%) !default; +$indigo-400: tint-color($indigo, 20%) !default; $indigo-500: $indigo !default; -$indigo-600: shade-color($indigo, 2) !default; -$indigo-700: shade-color($indigo, 4) !default; -$indigo-800: shade-color($indigo, 6) !default; -$indigo-900: shade-color($indigo, 8) !default; - -$purple-100: tint-color($purple, 8) !default; -$purple-200: tint-color($purple, 6) !default; -$purple-300: tint-color($purple, 4) !default; -$purple-400: tint-color($purple, 2) !default; +$indigo-600: shade-color($indigo, 20%) !default; +$indigo-700: shade-color($indigo, 40%) !default; +$indigo-800: shade-color($indigo, 60%) !default; +$indigo-900: shade-color($indigo, 80%) !default; + +$purple-100: tint-color($purple, 80%) !default; +$purple-200: tint-color($purple, 60%) !default; +$purple-300: tint-color($purple, 40%) !default; +$purple-400: tint-color($purple, 20%) !default; $purple-500: $purple !default; -$purple-600: shade-color($purple, 2) !default; -$purple-700: shade-color($purple, 4) !default; -$purple-800: shade-color($purple, 6) !default; -$purple-900: shade-color($purple, 8) !default; - -$pink-100: tint-color($pink, 8) !default; -$pink-200: tint-color($pink, 6) !default; -$pink-300: tint-color($pink, 4) !default; -$pink-400: tint-color($pink, 2) !default; +$purple-600: shade-color($purple, 20%) !default; +$purple-700: shade-color($purple, 40%) !default; +$purple-800: shade-color($purple, 60%) !default; +$purple-900: shade-color($purple, 80%) !default; + +$pink-100: tint-color($pink, 80%) !default; +$pink-200: tint-color($pink, 60%) !default; +$pink-300: tint-color($pink, 40%) !default; +$pink-400: tint-color($pink, 20%) !default; $pink-500: $pink !default; -$pink-600: shade-color($pink, 2) !default; -$pink-700: shade-color($pink, 4) !default; -$pink-800: shade-color($pink, 6) !default; -$pink-900: shade-color($pink, 8) !default; - -$red-100: tint-color($red, 8) !default; -$red-200: tint-color($red, 6) !default; -$red-300: tint-color($red, 4) !default; -$red-400: tint-color($red, 2) !default; +$pink-600: shade-color($pink, 20%) !default; +$pink-700: shade-color($pink, 40%) !default; +$pink-800: shade-color($pink, 60%) !default; +$pink-900: shade-color($pink, 80%) !default; + +$red-100: tint-color($red, 80%) !default; +$red-200: tint-color($red, 60%) !default; +$red-300: tint-color($red, 40%) !default; +$red-400: tint-color($red, 20%) !default; $red-500: $red !default; -$red-600: shade-color($red, 2) !default; -$red-700: shade-color($red, 4) !default; -$red-800: shade-color($red, 6) !default; -$red-900: shade-color($red, 8) !default; - -$orange-100: tint-color($orange, 8) !default; -$orange-200: tint-color($orange, 6) !default; -$orange-300: tint-color($orange, 4) !default; -$orange-400: tint-color($orange, 2) !default; +$red-600: shade-color($red, 20%) !default; +$red-700: shade-color($red, 40%) !default; +$red-800: shade-color($red, 60%) !default; +$red-900: shade-color($red, 80%) !default; + +$orange-100: tint-color($orange, 80%) !default; +$orange-200: tint-color($orange, 60%) !default; +$orange-300: tint-color($orange, 40%) !default; +$orange-400: tint-color($orange, 20%) !default; $orange-500: $orange !default; -$orange-600: shade-color($orange, 2) !default; -$orange-700: shade-color($orange, 4) !default; -$orange-800: shade-color($orange, 6) !default; -$orange-900: shade-color($orange, 8) !default; - -$yellow-100: tint-color($yellow, 8) !default; -$yellow-200: tint-color($yellow, 6) !default; -$yellow-300: tint-color($yellow, 4) !default; -$yellow-400: tint-color($yellow, 2) !default; +$orange-600: shade-color($orange, 20%) !default; +$orange-700: shade-color($orange, 40%) !default; +$orange-800: shade-color($orange, 60%) !default; +$orange-900: shade-color($orange, 80%) !default; + +$yellow-100: tint-color($yellow, 80%) !default; +$yellow-200: tint-color($yellow, 60%) !default; +$yellow-300: tint-color($yellow, 40%) !default; +$yellow-400: tint-color($yellow, 20%) !default; $yellow-500: $yellow !default; -$yellow-600: shade-color($yellow, 2) !default; -$yellow-700: shade-color($yellow, 4) !default; -$yellow-800: shade-color($yellow, 6) !default; -$yellow-900: shade-color($yellow, 8) !default; - -$green-100: tint-color($green, 8) !default; -$green-200: tint-color($green, 6) !default; -$green-300: tint-color($green, 4) !default; -$green-400: tint-color($green, 2) !default; +$yellow-600: shade-color($yellow, 20%) !default; +$yellow-700: shade-color($yellow, 40%) !default; +$yellow-800: shade-color($yellow, 60%) !default; +$yellow-900: shade-color($yellow, 80%) !default; + +$green-100: tint-color($green, 80%) !default; +$green-200: tint-color($green, 60%) !default; +$green-300: tint-color($green, 40%) !default; +$green-400: tint-color($green, 20%) !default; $green-500: $green !default; -$green-600: shade-color($green, 2) !default; -$green-700: shade-color($green, 4) !default; -$green-800: shade-color($green, 6) !default; -$green-900: shade-color($green, 8) !default; - -$teal-100: tint-color($teal, 8) !default; -$teal-200: tint-color($teal, 6) !default; -$teal-300: tint-color($teal, 4) !default; -$teal-400: tint-color($teal, 2) !default; +$green-600: shade-color($green, 20%) !default; +$green-700: shade-color($green, 40%) !default; +$green-800: shade-color($green, 60%) !default; +$green-900: shade-color($green, 80%) !default; + +$teal-100: tint-color($teal, 80%) !default; +$teal-200: tint-color($teal, 60%) !default; +$teal-300: tint-color($teal, 40%) !default; +$teal-400: tint-color($teal, 20%) !default; $teal-500: $teal !default; -$teal-600: shade-color($teal, 2) !default; -$teal-700: shade-color($teal, 4) !default; -$teal-800: shade-color($teal, 6) !default; -$teal-900: shade-color($teal, 8) !default; - -$cyan-100: tint-color($cyan, 8) !default; -$cyan-200: tint-color($cyan, 6) !default; -$cyan-300: tint-color($cyan, 4) !default; -$cyan-400: tint-color($cyan, 2) !default; +$teal-600: shade-color($teal, 20%) !default; +$teal-700: shade-color($teal, 40%) !default; +$teal-800: shade-color($teal, 60%) !default; +$teal-900: shade-color($teal, 80%) !default; + +$cyan-100: tint-color($cyan, 80%) !default; +$cyan-200: tint-color($cyan, 60%) !default; +$cyan-300: tint-color($cyan, 40%) !default; +$cyan-400: tint-color($cyan, 20%) !default; $cyan-500: $cyan !default; -$cyan-600: shade-color($cyan, 2) !default; -$cyan-700: shade-color($cyan, 4) !default; -$cyan-800: shade-color($cyan, 6) !default; -$cyan-900: shade-color($cyan, 8) !default; +$cyan-600: shade-color($cyan, 20%) !default; +$cyan-700: shade-color($cyan, 40%) !default; +$cyan-800: shade-color($cyan, 60%) !default; +$cyan-900: shade-color($cyan, 80%) !default; // fusv-enable // Characters which are escaped by the escape-svg function @@ -214,6 +211,7 @@ $enable-shadows: false !default; $enable-gradients: false !default; $enable-transitions: true !default; $enable-reduced-motion: true !default; +$enable-smooth-scroll: true !default; $enable-grid-classes: true !default; $enable-button-pointers: true !default; $enable-rfs: true !default; @@ -222,6 +220,10 @@ $enable-negative-margins: false !default; $enable-deprecation-messages: true !default; $enable-important-utilities: true !default; +// Prefix for :root CSS variables + +$variable-prefix: bs- !default; + // Gradient // // The gradient which is added to components if `$enable-gradients` is `true` @@ -272,10 +274,9 @@ $body-text-align: null !default; $link-color: $primary !default; $link-decoration: underline !default; -$link-hover-color: darken($link-color, 15%) !default; +$link-shade-percentage: 20% !default; +$link-hover-color: scale-color($link-color, $link-shade-percentage) !default; $link-hover-decoration: null !default; -// Darken percentage for links with `.text-*` class (e.g. `.text-success`) -$emphasized-link-hover-darken-percentage: 15% !default; $stretched-link-pseudo-element: after !default; $stretched-link-z-index: 1 !default; @@ -344,11 +345,6 @@ $container-padding-x: $grid-gutter-width !default; // Define common padding and border radius sizes and more. $border-width: 1px !default; -$border-color: $gray-300 !default; - -$border-radius: .25rem !default; -$border-radius-sm: .2rem !default; -$border-radius-lg: .3rem !default; $border-widths: ( 0: 0, 1: 1px, @@ -358,7 +354,12 @@ $border-widths: ( 5: 5px ) !default; -$rounded-pill: 50rem !default; +$border-color: $gray-300 !default; + +$border-radius: .25rem !default; +$border-radius-sm: .2rem !default; +$border-radius-lg: .3rem !default; +$border-radius-pill: 50rem !default; $box-shadow: 0 .5rem 1rem rgba($black, .15) !default; $box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default; @@ -392,11 +393,11 @@ $aspect-ratios: ( // Font, line-height, and color for body text, headings, and more. // stylelint-disable value-keyword-case -$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; +$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; // stylelint-enable value-keyword-case -$font-family-base: var(--bs-font-sans-serif) !default; -$font-family-code: var(--bs-font-monospace) !default; +$font-family-base: var(--#{$variable-prefix}font-sans-serif) !default; +$font-family-code: var(--#{$variable-prefix}font-monospace) !default; // $font-size-root effects the value of `rem`, which is used for as well font sizes, paddings and margins // $font-size-base effects the font size of the body text @@ -424,6 +425,17 @@ $h4-font-size: $font-size-base * 1.5 !default; $h5-font-size: $font-size-base * 1.25 !default; $h6-font-size: $font-size-base !default; +// scss-docs-start font-sizes +$font-sizes: ( + 1: $h1-font-size, + 2: $h2-font-size, + 3: $h3-font-size, + 4: $h4-font-size, + 5: $h5-font-size, + 6: $h6-font-size +) !default; +// scss-docs-end font-sizes + $headings-margin-bottom: $spacer / 2 !default; $headings-font-family: null !default; $headings-font-style: null !default; @@ -520,15 +532,15 @@ $table-group-separator-color: currentColor !default; $table-caption-color: $text-muted !default; -$table-bg-level: -9 !default; +$table-bg-scale: -80% !default; $table-variants: ( - "primary": color-level($primary, $table-bg-level), - "secondary": color-level($secondary, $table-bg-level), - "success": color-level($success, $table-bg-level), - "info": color-level($info, $table-bg-level), - "warning": color-level($warning, $table-bg-level), - "danger": color-level($danger, $table-bg-level), + "primary": scale-color($primary, $table-bg-scale), + "secondary": scale-color($secondary, $table-bg-scale), + "success": scale-color($success, $table-bg-scale), + "info": scale-color($info, $table-bg-scale), + "warning": scale-color($warning, $table-bg-scale), + "danger": scale-color($danger, $table-bg-scale), "light": $light, "dark": $dark, ) !default; @@ -593,8 +605,6 @@ $btn-link-color: $link-color !default; $btn-link-hover-color: $link-hover-color !default; $btn-link-disabled-color: $gray-600 !default; -$btn-block-spacing-y: .5rem !default; - // Allows for customizing button radius independently from global border radius $btn-border-radius: $border-radius !default; $btn-border-radius-sm: $border-radius-sm !default; @@ -636,7 +646,7 @@ $input-bg: $white !default; $input-disabled-bg: $gray-200 !default; $input-disabled-border-color: null !default; -$input-color: $gray-700 !default; +$input-color: $body-color !default; $input-border-color: $gray-400 !default; $input-border-width: $input-btn-border-width !default; $input-box-shadow: $box-shadow-inset !default; @@ -646,7 +656,7 @@ $input-border-radius-sm: $border-radius-sm !default; $input-border-radius-lg: $border-radius-lg !default; $input-focus-bg: $input-bg !default; -$input-focus-border-color: lighten($component-active-bg, 25%) !default; +$input-focus-border-color: tint-color($component-active-bg, 50%) !default; $input-focus-color: $input-color !default; $input-focus-width: $input-btn-focus-width !default; $input-focus-box-shadow: $input-btn-focus-box-shadow !default; @@ -695,6 +705,10 @@ $form-check-input-indeterminate-bg-color: $component-active-bg !default; $form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default; $form-check-input-indeterminate-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>") !default; +$form-check-input-disabled-opacity: .5 !default; +$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default; +$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default; + $form-switch-color: rgba(0, 0, 0, .25) !default; $form-switch-width: 2em !default; $form-switch-padding-left: $form-switch-width + .5em !default; @@ -717,12 +731,10 @@ $input-group-addon-color: $input-color !default; $input-group-addon-bg: $gray-200 !default; $input-group-addon-border-color: $input-border-color !default; - $form-select-padding-y: $input-padding-y !default; $form-select-padding-x: $input-padding-x !default; $form-select-font-family: $input-font-family !default; $form-select-font-size: $input-font-size !default; -$form-select-height: $input-height !default; $form-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator $form-select-font-weight: $input-font-weight !default; $form-select-line-height: $input-line-height !default; @@ -752,12 +764,10 @@ $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focu $form-select-padding-y-sm: $input-padding-y-sm !default; $form-select-padding-x-sm: $input-padding-x-sm !default; $form-select-font-size-sm: $input-font-size-sm !default; -$form-select-height-sm: $input-height-sm !default; $form-select-padding-y-lg: $input-padding-y-lg !default; $form-select-padding-x-lg: $input-padding-x-lg !default; $form-select-font-size-lg: $input-font-size-lg !default; -$form-select-height-lg: $input-height-lg !default; $form-range-track-width: 100% !default; $form-range-track-height: .5rem !default; @@ -774,40 +784,22 @@ $form-range-thumb-border-radius: 1rem !default; $form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default; $form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default; $form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge -$form-range-thumb-active-bg: lighten($component-active-bg, 35%) !default; +$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default; $form-range-thumb-disabled-bg: $gray-500 !default; $form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; -$form-file-height: $input-height !default; -$form-file-focus-border-color: $input-focus-border-color !default; -$form-file-focus-box-shadow: $input-focus-box-shadow !default; -$form-file-disabled-bg: $input-disabled-bg !default; -$form-file-disabled-border-color: $input-disabled-border-color !default; - -$form-file-padding-y: $input-padding-y !default; -$form-file-padding-x: $input-padding-x !default; -$form-file-line-height: $input-line-height !default; -$form-file-font-family: $input-font-family !default; -$form-file-font-weight: $input-font-weight !default; -$form-file-color: $input-color !default; -$form-file-bg: $input-bg !default; -$form-file-border-width: $input-border-width !default; -$form-file-border-color: $input-border-color !default; -$form-file-border-radius: $input-border-radius !default; -$form-file-box-shadow: $input-box-shadow !default; -$form-file-button-color: $form-file-color !default; +$form-file-button-color: $input-color !default; $form-file-button-bg: $input-group-addon-bg !default; +$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default; -$form-file-padding-y-sm: $input-padding-y-sm !default; -$form-file-padding-x-sm: $input-padding-x-sm !default; -$form-file-font-size-sm: $input-font-size-sm !default; -$form-file-height-sm: $input-height-sm !default; - -$form-file-padding-y-lg: $input-padding-y-lg !default; -$form-file-padding-x-lg: $input-padding-x-lg !default; -$form-file-font-size-lg: $input-font-size-lg !default; -$form-file-height-lg: $input-height-lg !default; - +$form-floating-height: add(3.5rem, $input-height-border) !default; +$form-floating-padding-x: $input-padding-x !default; +$form-floating-padding-y: 1rem !default; +$form-floating-input-padding-t: 1.625rem !default; +$form-floating-input-padding-b: .625rem !default; +$form-floating-label-opacity: .65 !default; +$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default; +$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default; // Form validation @@ -820,7 +812,7 @@ $form-feedback-invalid-color: $danger !default; $form-feedback-icon-valid-color: $form-feedback-valid-color !default; $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>") !default; $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; -$form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default; +$form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default; // scss-docs-start form-validation-states $form-validation-states: ( @@ -936,7 +928,7 @@ $dropdown-divider-margin-y: $spacer / 2 !default; $dropdown-box-shadow: $box-shadow !default; $dropdown-link-color: $gray-900 !default; -$dropdown-link-hover-color: darken($gray-900, 5%) !default; +$dropdown-link-hover-color: shade-color($gray-900, 10%) !default; $dropdown-link-hover-bg: $gray-100 !default; $dropdown-link-active-color: $component-active-color !default; @@ -1020,6 +1012,37 @@ $card-img-overlay-padding: $spacer !default; $card-group-margin: $grid-gutter-width / 2 !default; +// Accordion +$accordion-padding-y: 1rem !default; +$accordion-padding-x: 1.25rem !default; +$accordion-color: $body-color !default; +$accordion-bg: transparent !default; +$accordion-border-width: $border-width !default; +$accordion-border-color: rgba($black, .125) !default; +$accordion-border-radius: $border-radius !default; + +$accordion-body-padding-y: $accordion-padding-y !default; +$accordion-body-padding-x: $accordion-padding-x !default; + +$accordion-button-padding-y: $accordion-padding-y !default; +$accordion-button-padding-x: $accordion-padding-x !default; +$accordion-button-color: $accordion-color !default; +$accordion-button-bg: $accordion-bg !default; +$accordion-transition: $btn-transition, border-radius .15s ease !default; +$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default; +$accordion-button-active-color: shade-color($primary, 10%) !default; + +$accordion-button-focus-border-color: $input-focus-border-color !default; +$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default; + +$accordion-icon-width: 1.25rem !default; +$accordion-icon-color: $accordion-color !default; +$accordion-icon-active-color: $accordion-button-active-color !default; +$accordion-icon-transition: transform .2s ease-in-out !default; +$accordion-icon-transform: rotate(180deg) !default; + +$accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default; +$accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default; // Tooltips @@ -1057,7 +1080,7 @@ $popover-border-radius: $border-radius-lg !default; $popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default; $popover-box-shadow: $box-shadow !default; -$popover-header-bg: darken($popover-bg, 3%) !default; +$popover-header-bg: shade-color($popover-bg, 6%) !default; $popover-header-color: $headings-color !default; $popover-header-padding-y: .5rem !default; $popover-header-padding-x: $spacer !default; @@ -1155,9 +1178,9 @@ $alert-border-radius: $border-radius !default; $alert-link-font-weight: $font-weight-bold !default; $alert-border-width: $border-width !default; -$alert-bg-level: -10 !default; -$alert-border-level: -9 !default; -$alert-color-level: 6 !default; +$alert-bg-scale: -80% !default; +$alert-border-scale: -70% !default; +$alert-color-scale: 40% !default; $alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side @@ -1185,8 +1208,8 @@ $list-group-border-radius: $border-radius !default; $list-group-item-padding-y: $spacer / 2 !default; $list-group-item-padding-x: $spacer !default; -$list-group-item-bg-level: -9 !default; -$list-group-item-color-level: 6 !default; +$list-group-item-bg-scale: -80% !default; +$list-group-item-color-scale: 40% !default; $list-group-hover-bg: $gray-100 !default; $list-group-active-color: $component-active-color !default; @@ -1256,8 +1279,8 @@ $carousel-caption-spacer: 1.25rem !default; $carousel-control-icon-width: 2rem !default; -$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default; -$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default; +$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default; +$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default; $carousel-transition-duration: .6s !default; $carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) @@ -1286,7 +1309,7 @@ $btn-close-height: $btn-close-width !default; $btn-close-padding-x: .25em !default; $btn-close-padding-y: $btn-close-padding-x !default; $btn-close-color: $black !default; -$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$btn-close-color}' viewBox='0 0 16 16'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default; +$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default; $btn-close-focus-shadow: $input-btn-focus-box-shadow !default; $btn-close-opacity: .5 !default; $btn-close-hover-opacity: .75 !default; diff --git a/assets/stylesheets/bootstrap/bootstrap-utilities.scss b/assets/stylesheets/bootstrap/bootstrap-utilities.scss index 3edb9fd..9ae1684 100644 --- a/assets/stylesheets/bootstrap/bootstrap-utilities.scss +++ b/assets/stylesheets/bootstrap/bootstrap-utilities.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap Utilities v5.0.0-alpha2 (https://getbootstrap.com/) + * Bootstrap Utilities v5.0.0-alpha3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/assets/stylesheets/bootstrap/forms/_floating-labels.scss b/assets/stylesheets/bootstrap/forms/_floating-labels.scss new file mode 100644 index 0000000..8b2e2b8 --- /dev/null +++ b/assets/stylesheets/bootstrap/forms/_floating-labels.scss @@ -0,0 +1,61 @@ +.form-floating { + position: relative; + + > .form-control, + > .form-select { + height: $form-floating-height; + padding: $form-floating-padding-y $form-floating-padding-x; + } + + > label { + position: absolute; + top: 0; + left: 0; + height: 100%; // allow textareas + padding: $form-floating-padding-y $form-floating-padding-x; + pointer-events: none; + border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model + transform-origin: 0 0; + @include transition($form-floating-transition); + } + + // stylelint-disable no-duplicate-selectors + > .form-control { + &::placeholder { + color: transparent; + } + + &:focus, + &:not(:placeholder-shown) { + padding-top: $form-floating-input-padding-t; + padding-bottom: $form-floating-input-padding-b; + } + // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped + &:-webkit-autofill { + padding-top: $form-floating-input-padding-t; + padding-bottom: $form-floating-input-padding-b; + } + } + + > .form-select { + padding-top: $form-floating-input-padding-t; + padding-bottom: $form-floating-input-padding-b; + } + + > .form-control:focus, + > .form-control:not(:placeholder-shown), + > .form-select { + ~ label { + opacity: $form-floating-label-opacity; + transform: $form-floating-label-transform; + } + } + // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped + > .form-control:-webkit-autofill { + ~ label { + opacity: $form-floating-label-opacity; + transform: $form-floating-label-transform; + } + } + // stylelint-enable no-duplicate-selectors +} diff --git a/assets/stylesheets/bootstrap/forms/_form-check.scss b/assets/stylesheets/bootstrap/forms/_form-check.scss index 84e3e57..77af825 100644 --- a/assets/stylesheets/bootstrap/forms/_form-check.scss +++ b/assets/stylesheets/bootstrap/forms/_form-check.scss @@ -53,7 +53,7 @@ &[type="checkbox"] { @if $enable-gradients { - background-image: escape-svg($form-check-input-checked-bg-image), var(--bs-gradient); + background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient); } @else { background-image: escape-svg($form-check-input-checked-bg-image); } @@ -61,7 +61,7 @@ &[type="radio"] { @if $enable-gradients { - background-image: escape-svg($form-check-radio-checked-bg-image), var(--bs-gradient); + background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient); } @else { background-image: escape-svg($form-check-radio-checked-bg-image); } @@ -73,7 +73,7 @@ border-color: $form-check-input-indeterminate-border-color; @if $enable-gradients { - background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--bs-gradient); + background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient); } @else { background-image: escape-svg($form-check-input-indeterminate-bg-image); } @@ -82,7 +82,7 @@ &:disabled { pointer-events: none; filter: none; - opacity: .5; + opacity: $form-check-input-disabled-opacity; } // Use disabled attribute in addition of :disabled pseudo-class @@ -90,7 +90,7 @@ &[disabled], &:disabled { ~ .form-check-label { - opacity: .5; + opacity: $form-check-label-disabled-opacity; } } } @@ -122,7 +122,7 @@ background-position: $form-switch-checked-bg-position; @if $enable-gradients { - background-image: escape-svg($form-switch-checked-bg-image), var(--bs-gradient); + background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient); } @else { background-image: escape-svg($form-switch-checked-bg-image); } @@ -139,4 +139,13 @@ position: absolute; clip: rect(0, 0, 0, 0); pointer-events: none; + + &[disabled], + &:disabled { + + .btn { + pointer-events: none; + filter: none; + opacity: $form-check-btn-check-disabled-opacity; + } + } } diff --git a/assets/stylesheets/bootstrap/forms/_form-control.scss b/assets/stylesheets/bootstrap/forms/_form-control.scss index 6686ecf..bac416f 100644 --- a/assets/stylesheets/bootstrap/forms/_form-control.scss +++ b/assets/stylesheets/bootstrap/forms/_form-control.scss @@ -1,11 +1,10 @@ // -// Textual form controls +// General form controls (plus a few specific high-level interventions) // .form-control { display: block; width: 100%; - min-height: $input-height; padding: $input-padding-y $input-padding-x; font-family: $input-font-family; @include font-size($input-font-size); @@ -23,6 +22,14 @@ @include box-shadow($input-box-shadow); @include transition($input-transition); + &[type="file"] { + overflow: hidden; // prevent pseudo element button overlap + + &:not(:disabled):not([readonly]) { + cursor: pointer; + } + } + // Customize the `:focus` state to imitate native WebKit styles. &:focus { color: $input-focus-color; @@ -37,6 +44,14 @@ } } + // Add some height to date inputs on iOS + // https://github.com/twbs/bootstrap/issues/23307 + // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved + &::-webkit-date-and-time-value { + // Multiply line-height by 1em if it has no unit + height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height); + } + // Placeholder &::placeholder { color: $input-placeholder-color; @@ -56,6 +71,47 @@ // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655. opacity: 1; } + + // File input buttons theming + // stylelint-disable-next-line selector-pseudo-element-no-unknown + &::file-selector-button { + padding: $input-padding-y $input-padding-x; + margin: (-$input-padding-y) (-$input-padding-x); + margin-inline-end: $input-padding-x; + color: $form-file-button-color; + @include gradient-bg($form-file-button-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: $input-border-width; + border-radius: 0; // stylelint-disable-line property-disallowed-list + @include transition($btn-transition); + } + + // stylelint-disable-next-line selector-pseudo-element-no-unknown + &:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: $form-file-button-hover-bg; + } + + &::-webkit-file-upload-button { + padding: $input-padding-y $input-padding-x; + margin: (-$input-padding-y) (-$input-padding-x); + margin-inline-end: $input-padding-x; + color: $form-file-button-color; + @include gradient-bg($form-file-button-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: $input-border-width; + border-radius: 0; // stylelint-disable-line property-disallowed-list + @include transition($btn-transition); + } + + &:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: $form-file-button-hover-bg; + } } // Readonly controls as plain text @@ -93,6 +149,19 @@ padding: $input-padding-y-sm $input-padding-x-sm; @include font-size($input-font-size-sm); @include border-radius($input-border-radius-sm); + + // stylelint-disable-next-line selector-pseudo-element-no-unknown + &::file-selector-button { + padding: $input-padding-y-sm $input-padding-x-sm; + margin: (-$input-padding-y-sm) (-$input-padding-x-sm); + margin-inline-end: $input-padding-x-sm; + } + + &::-webkit-file-upload-button { + padding: $input-padding-y-sm $input-padding-x-sm; + margin: (-$input-padding-y-sm) (-$input-padding-x-sm); + margin-inline-end: $input-padding-x-sm; + } } .form-control-lg { @@ -100,17 +169,55 @@ padding: $input-padding-y-lg $input-padding-x-lg; @include font-size($input-font-size-lg); @include border-radius($input-border-radius-lg); + + // stylelint-disable-next-line selector-pseudo-element-no-unknown + &::file-selector-button { + padding: $input-padding-y-lg $input-padding-x-lg; + margin: (-$input-padding-y-lg) (-$input-padding-x-lg); + margin-inline-end: $input-padding-x-lg; + } + + &::-webkit-file-upload-button { + padding: $input-padding-y-lg $input-padding-x-lg; + margin: (-$input-padding-y-lg) (-$input-padding-x-lg); + margin-inline-end: $input-padding-x-lg; + } +} + +// Make sure textareas don't shrink too much when resized +// https://github.com/twbs/bootstrap/pull/29124 +// stylelint-disable selector-no-qualifying-type +textarea { + &.form-control { + min-height: $input-height; + } + + &.form-control-sm { + min-height: $input-height-sm; + } + + &.form-control-lg { + min-height: $input-height-lg; + } } +// stylelint-enable selector-no-qualifying-type .form-control-color { max-width: 3rem; + height: auto; // Override fixed browser height padding: $input-padding-y; -} -.form-control-color::-moz-color-swatch { - @include border-radius($input-border-radius); -} + &:not(:disabled):not([readonly]) { + cursor: pointer; + } + + &::-moz-color-swatch { + height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height); + @include border-radius($input-border-radius); + } -.form-control-color::-webkit-color-swatch { - @include border-radius($input-border-radius); + &::-webkit-color-swatch { + height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height); + @include border-radius($input-border-radius); + } } diff --git a/assets/stylesheets/bootstrap/forms/_form-file.scss b/assets/stylesheets/bootstrap/forms/_form-file.scss deleted file mode 100644 index 5bc4afc..0000000 --- a/assets/stylesheets/bootstrap/forms/_form-file.scss +++ /dev/null @@ -1,91 +0,0 @@ -.form-file { - --bs-form-file-height: #{$form-file-height}; - position: relative; -} - -.form-file-input { - position: relative; - z-index: 2; - width: 100%; - height: var(--bs-form-file-height); - margin: 0; - opacity: 0; - - &:focus-within ~ .form-file-label { - border-color: $form-file-focus-border-color; - box-shadow: $form-file-focus-box-shadow; - } - - // Use disabled attribute in addition of :disabled pseudo-class - // See: https://github.com/twbs/bootstrap/issues/28247 - &[disabled] ~ .form-file-label .form-file-text, - &:disabled ~ .form-file-label .form-file-text { - background-color: $form-file-disabled-bg; - border-color: $form-file-disabled-border-color; - } -} - -.form-file-label { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 1; - display: flex; - height: var(--bs-form-file-height); - border-color: $form-file-border-color; - @include border-radius($form-file-border-radius); - @include box-shadow($form-file-box-shadow); -} - -.form-file-text { - display: block; - flex-grow: 1; - padding: $form-file-padding-y $form-file-padding-x; - overflow: hidden; - font-family: $form-file-font-family; - font-weight: $form-file-font-weight; - line-height: $form-file-line-height; - color: $form-file-color; - text-overflow: ellipsis; - white-space: nowrap; - background-color: $form-file-bg; - border-color: inherit; - border-style: solid; - border-width: $form-file-border-width; - @include border-left-radius(inherit); -} - -.form-file-button { - display: block; - flex-shrink: 0; - padding: $form-file-padding-y $form-file-padding-x; - margin-left: -$form-file-border-width; - line-height: $form-file-line-height; - color: $form-file-button-color; - @include gradient-bg($form-file-button-bg); - border-color: inherit; - border-style: solid; - border-width: $form-file-border-width; - @include border-right-radius(inherit); -} - -.form-file-sm { - --bs-form-file-height: #{$form-file-height-sm}; - @include font-size($form-file-font-size-sm); - - .form-file-text, - .form-file-button { - padding: $form-file-padding-y-sm $form-file-padding-x-sm; - } -} - -.form-file-lg { - --bs-form-file-height: #{$form-file-height-lg}; - @include font-size($form-file-font-size-lg); - - .form-file-text, - .form-file-button { - padding: $form-file-padding-y-lg $form-file-padding-x-lg; - } -} diff --git a/assets/stylesheets/bootstrap/forms/_form-range.scss b/assets/stylesheets/bootstrap/forms/_form-range.scss index 6cf9013..b603a7b 100644 --- a/assets/stylesheets/bootstrap/forms/_form-range.scss +++ b/assets/stylesheets/bootstrap/forms/_form-range.scss @@ -18,7 +18,6 @@ // No box-shadow() mixin for focus accessibility. &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; } &::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; } - &::-ms-thumb { box-shadow: $form-range-thumb-focus-box-shadow; } } &::-moz-focus-outer { @@ -78,46 +77,6 @@ @include box-shadow($form-range-track-box-shadow); } - &::-ms-thumb { - width: $form-range-thumb-width; - height: $form-range-thumb-height; - margin-top: 0; // Edge specific - margin-right: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden. - margin-left: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden. - @include gradient-bg($form-range-thumb-bg); - border: $form-range-thumb-border; - @include border-radius($form-range-thumb-border-radius); - @include box-shadow($form-range-thumb-box-shadow); - @include transition($form-range-thumb-transition); - appearance: none; - - &:active { - @include gradient-bg($form-range-thumb-active-bg); - } - } - - &::-ms-track { - width: $form-range-track-width; - height: $form-range-track-height; - color: transparent; - cursor: $form-range-track-cursor; - background-color: transparent; - border-color: transparent; - border-width: $form-range-thumb-height / 2; - @include box-shadow($form-range-track-box-shadow); - } - - &::-ms-fill-lower { - background-color: $form-range-track-bg; - @include border-radius($form-range-track-border-radius); - } - - &::-ms-fill-upper { - margin-right: 15px; // arbitrary? - background-color: $form-range-track-bg; - @include border-radius($form-range-track-border-radius); - } - &:disabled { pointer-events: none; @@ -128,9 +87,5 @@ &::-moz-range-thumb { background-color: $form-range-thumb-disabled-bg; } - - &::-ms-thumb { - background-color: $form-range-thumb-disabled-bg; - } } } diff --git a/assets/stylesheets/bootstrap/forms/_form-select.scss b/assets/stylesheets/bootstrap/forms/_form-select.scss index e4cab08..1866da9 100644 --- a/assets/stylesheets/bootstrap/forms/_form-select.scss +++ b/assets/stylesheets/bootstrap/forms/_form-select.scss @@ -6,7 +6,6 @@ .form-select { display: block; width: 100%; - height: $form-select-height; padding: $form-select-padding-y ($form-select-padding-x + $form-select-indicator-padding) $form-select-padding-y $form-select-padding-x; font-family: $form-select-font-family; @include font-size($form-select-font-size); @@ -33,21 +32,10 @@ // Avoid using mixin so we can pass custom focus shadow properly box-shadow: $form-select-focus-box-shadow; } - - &::-ms-value { - // For visual consistency with other platforms/browsers, - // suppress the default white text on blue background highlight given to - // the selected option text when the (still closed) <select> receives focus - // in Edge. - // See https://github.com/twbs/bootstrap/issues/19398. - color: $input-color; - background-color: $input-bg; - } } &[multiple], &[size]:not([size="1"]) { - height: auto; padding-right: $form-select-padding-x; background-image: none; } @@ -66,7 +54,6 @@ } .form-select-sm { - height: $form-select-height-sm; padding-top: $form-select-padding-y-sm; padding-bottom: $form-select-padding-y-sm; padding-left: $form-select-padding-x-sm; @@ -74,7 +61,6 @@ } .form-select-lg { - height: $form-select-height-lg; padding-top: $form-select-padding-y-lg; padding-bottom: $form-select-padding-y-lg; padding-left: $form-select-padding-x-lg; diff --git a/assets/stylesheets/bootstrap/forms/_input-group.scss b/assets/stylesheets/bootstrap/forms/_input-group.scss index 7a9a14d..2729ecc 100644 --- a/assets/stylesheets/bootstrap/forms/_input-group.scss +++ b/assets/stylesheets/bootstrap/forms/_input-group.scss @@ -10,8 +10,7 @@ width: 100%; > .form-control, - > .form-select, - > .form-file { + > .form-select { position: relative; // For focus state's z-index flex: 1 1 auto; width: 1%; @@ -20,26 +19,10 @@ // Bring the "active" form control to the top of surrounding elements > .form-control:focus, - > .form-select:focus, - > .form-file .form-file-input:focus ~ .form-file-label { + > .form-select:focus { z-index: 3; } - // Bring the custom file input above the label - > .form-file { - > .form-file-input:focus { - z-index: 4; - } - - &:not(:last-child) > .form-file-label { - @include border-right-radius(0); - } - - &:not(:first-child) > .form-file-label { - @include border-left-radius(0); - } - } - // Ensure buttons are always above inputs for more visually pleasing borders. // This isn't needed for `.input-group-text` since it shares the same border-color // as our inputs. @@ -80,14 +63,6 @@ // Remix the default form control sizing classes into new ones for easier // manipulation. -.input-group-lg > .form-control { - min-height: $input-height-lg; -} - -.input-group-lg > .form-select { - height: $input-height-lg; -} - .input-group-lg > .form-control, .input-group-lg > .form-select, .input-group-lg > .input-group-text, @@ -97,14 +72,6 @@ @include border-radius($input-border-radius-lg); } -.input-group-sm > .form-control { - min-height: $input-height-sm; -} - -.input-group-sm > .form-select { - height: $input-height-sm; -} - .input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text, @@ -128,12 +95,26 @@ // stylelint-disable-next-line no-duplicate-selectors .input-group { - > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), - > .dropdown-toggle:nth-last-child(n + 3) { - @include border-right-radius(0); + &:not(.has-validation) { + > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), + > .dropdown-toggle:nth-last-child(n + 3) { + @include border-right-radius(0); + } + } + + &.has-validation { + > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu), + > .dropdown-toggle:nth-last-child(n + 4) { + @include border-right-radius(0); + } + } + + $validation-messages: ""; + @each $state in map-keys($form-validation-states) { + $validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)"; } - > :not(:first-child):not(.dropdown-menu) { + > :not(:first-child):not(.dropdown-menu)#{$validation-messages} { margin-left: -$input-border-width; @include border-left-radius(0); } diff --git a/assets/stylesheets/bootstrap/helpers/_colored-links.scss b/assets/stylesheets/bootstrap/helpers/_colored-links.scss index d135194..8c167de 100644 --- a/assets/stylesheets/bootstrap/helpers/_colored-links.scss +++ b/assets/stylesheets/bootstrap/helpers/_colored-links.scss @@ -2,10 +2,10 @@ .link-#{$color} { color: $value; - @if $emphasized-link-hover-darken-percentage != 0 { + @if $link-shade-percentage != 0 { &:hover, &:focus { - color: if(color-contrast($value) == $color-contrast-light, darken($value, $emphasized-link-hover-darken-percentage), lighten($value, $emphasized-link-hover-darken-percentage)); + color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)); } } } diff --git a/assets/stylesheets/bootstrap/mixins/_alert.scss b/assets/stylesheets/bootstrap/mixins/_alert.scss index 20da83a..99ebbc3 100644 --- a/assets/stylesheets/bootstrap/mixins/_alert.scss +++ b/assets/stylesheets/bootstrap/mixins/_alert.scss @@ -4,6 +4,6 @@ border-color: $border; .alert-link { - color: darken($color, 10%); + color: shade-color($color, 20%); } } diff --git a/assets/stylesheets/bootstrap/mixins/_buttons.scss b/assets/stylesheets/bootstrap/mixins/_buttons.scss index eeade6a..3aabd89 100644 --- a/assets/stylesheets/bootstrap/mixins/_buttons.scss +++ b/assets/stylesheets/bootstrap/mixins/_buttons.scss @@ -7,11 +7,11 @@ $background, $border, $color: color-contrast($background), - $hover-background: if($color == $color-contrast-light, darken($background, 7.5%), lighten($background, 7.5%)), - $hover-border: if($color == $color-contrast-light, darken($border, 10%), lighten($border, 5%)), + $hover-background: if($color == $color-contrast-light, shade-color($background, 15%), tint-color($background, 15%)), + $hover-border: if($color == $color-contrast-light, shade-color($border, 20%), tint-color($border, 10%)), $hover-color: color-contrast($hover-background), - $active-background: if($color == $color-contrast-light, darken($background, 10%), lighten($background, 10%)), - $active-border: if($color == $color-contrast-light, darken($border, 12.5%), lighten($border, 5%)), + $active-background: if($color == $color-contrast-light, shade-color($background, 20%), tint-color($background, 20%)), + $active-border: if($color == $color-contrast-light, shade-color($border, 25%), tint-color($border, 10%)), $active-color: color-contrast($active-background), $disabled-background: $background, $disabled-border: $border, diff --git a/assets/stylesheets/bootstrap/mixins/_forms.scss b/assets/stylesheets/bootstrap/mixins/_forms.scss index 99ca559..9adc0de 100644 --- a/assets/stylesheets/bootstrap/mixins/_forms.scss +++ b/assets/stylesheets/bootstrap/mixins/_forms.scss @@ -114,20 +114,4 @@ margin-left: .5em; } } - - // custom file - .form-file-input { - @include form-validation-state-selector($state) { - ~ .form-file-label { - border-color: $color; - } - - &:focus { - ~ .form-file-label { - border-color: $color; - box-shadow: 0 0 0 $input-focus-width rgba($color, .25); - } - } - } - } } diff --git a/assets/stylesheets/bootstrap/mixins/_gradients.scss b/assets/stylesheets/bootstrap/mixins/_gradients.scss index 8b87c0f..ec38ca1 100644 --- a/assets/stylesheets/bootstrap/mixins/_gradients.scss +++ b/assets/stylesheets/bootstrap/mixins/_gradients.scss @@ -4,7 +4,7 @@ background-color: $color; @if $enable-gradients { - background-image: var(--bs-gradient); + background-image: var(--#{$variable-prefix}gradient); } } diff --git a/assets/stylesheets/bootstrap/mixins/_grid.scss b/assets/stylesheets/bootstrap/mixins/_grid.scss index a229199..92bb88a 100644 --- a/assets/stylesheets/bootstrap/mixins/_grid.scss +++ b/assets/stylesheets/bootstrap/mixins/_grid.scss @@ -3,13 +3,13 @@ // Generate semantic grid columns with these mixins. @mixin make-row($gutter: $grid-gutter-width) { - --bs-gutter-x: #{$gutter}; - --bs-gutter-y: 0; + --#{$variable-prefix}gutter-x: #{$gutter}; + --#{$variable-prefix}gutter-y: 0; display: flex; flex-wrap: wrap; - margin-top: calc(var(--bs-gutter-y) * -1); // stylelint-disable-line function-disallowed-list - margin-right: calc(var(--bs-gutter-x) / -2); // stylelint-disable-line function-disallowed-list - margin-left: calc(var(--bs-gutter-x) / -2); // stylelint-disable-line function-disallowed-list + margin-top: calc(var(--#{$variable-prefix}gutter-y) * -1); // stylelint-disable-line function-disallowed-list + margin-right: calc(var(--#{$variable-prefix}gutter-x) / -2); // stylelint-disable-line function-disallowed-list + margin-left: calc(var(--#{$variable-prefix}gutter-x) / -2); // stylelint-disable-line function-disallowed-list } @mixin make-col-ready($gutter: $grid-gutter-width) { @@ -21,9 +21,9 @@ flex-shrink: 0; width: 100%; max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid - padding-right: calc(var(--bs-gutter-x) / 2); // stylelint-disable-line function-disallowed-list - padding-left: calc(var(--bs-gutter-x) / 2); // stylelint-disable-line function-disallowed-list - margin-top: var(--bs-gutter-y); + padding-right: calc(var(--#{$variable-prefix}gutter-x) / 2); // stylelint-disable-line function-disallowed-list + padding-left: calc(var(--#{$variable-prefix}gutter-x) / 2); // stylelint-disable-line function-disallowed-list + margin-top: var(--#{$variable-prefix}gutter-y); } @mixin make-col($size, $columns: $grid-columns) { @@ -107,12 +107,12 @@ @each $key, $value in $gutters { .g#{$infix}-#{$key}, .gx#{$infix}-#{$key} { - --bs-gutter-x: #{$value}; + --#{$variable-prefix}gutter-x: #{$value}; } .g#{$infix}-#{$key}, .gy#{$infix}-#{$key} { - --bs-gutter-y: #{$value}; + --#{$variable-prefix}gutter-y: #{$value}; } } } diff --git a/assets/stylesheets/bootstrap/mixins/_list-group.scss b/assets/stylesheets/bootstrap/mixins/_list-group.scss index 965fc4b..351e910 100644 --- a/assets/stylesheets/bootstrap/mixins/_list-group.scss +++ b/assets/stylesheets/bootstrap/mixins/_list-group.scss @@ -9,7 +9,7 @@ &:hover, &:focus { color: $color; - background-color: darken($background, 5%); + background-color: shade-color($background, 10%); } &.active { diff --git a/assets/stylesheets/bootstrap/mixins/_table-variants.scss b/assets/stylesheets/bootstrap/mixins/_table-variants.scss index 89f482c..9fd0fb0 100644 --- a/assets/stylesheets/bootstrap/mixins/_table-variants.scss +++ b/assets/stylesheets/bootstrap/mixins/_table-variants.scss @@ -6,13 +6,13 @@ $striped-bg: mix($color, $background, percentage($table-striped-bg-factor)); $active-bg: mix($color, $background, percentage($table-active-bg-factor)); - --bs-table-bg: #{$background}; - --bs-table-striped-bg: #{$striped-bg}; - --bs-table-striped-color: #{color-contrast($striped-bg)}; - --bs-table-active-bg: #{$active-bg}; - --bs-table-active-color: #{color-contrast($active-bg)}; - --bs-table-hover-bg: #{$hover-bg}; - --bs-table-hover-color: #{color-contrast($hover-bg)}; + --#{$variable-prefix}table-bg: #{$background}; + --#{$variable-prefix}table-striped-bg: #{$striped-bg}; + --#{$variable-prefix}table-striped-color: #{color-contrast($striped-bg)}; + --#{$variable-prefix}table-active-bg: #{$active-bg}; + --#{$variable-prefix}table-active-color: #{color-contrast($active-bg)}; + --#{$variable-prefix}table-hover-bg: #{$hover-bg}; + --#{$variable-prefix}table-hover-color: #{color-contrast($hover-bg)}; color: $color; border-color: mix($color, $background, percentage($table-border-factor)); |