Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap-rubygem.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Mazovetskiy <glex.spb@gmail.com>2021-01-05 18:50:14 +0300
committerGleb Mazovetskiy <glex.spb@gmail.com>2021-01-05 18:50:14 +0300
commitcd3fbc224696165e8512fff126cc514307a3cdb5 (patch)
treef0cab95bd7ab4b14c4565a458b06340ab842b034
parent687c95032ccaf5e8dad4a5c3958e41305cc278b4 (diff)
Update to 5.0.0.beta1v5.0.0.beta1
1. rake update[v5.0.0-beta1] 2. Update version.rb and the README version
-rw-r--r--README.md2
-rw-r--r--assets/javascripts/bootstrap-sprockets.js16
-rw-r--r--assets/javascripts/bootstrap.js1192
-rw-r--r--assets/javascripts/bootstrap.min.js4
-rw-r--r--assets/javascripts/bootstrap/alert.js98
-rw-r--r--assets/javascripts/bootstrap/button.js87
-rw-r--r--assets/javascripts/bootstrap/carousel.js195
-rw-r--r--assets/javascripts/bootstrap/collapse.js155
-rw-r--r--assets/javascripts/bootstrap/dom/data.js4
-rw-r--r--assets/javascripts/bootstrap/dom/event-handler.js22
-rw-r--r--assets/javascripts/bootstrap/dom/manipulator.js23
-rw-r--r--assets/javascripts/bootstrap/dom/selector-engine.js4
-rw-r--r--assets/javascripts/bootstrap/dropdown.js241
-rw-r--r--assets/javascripts/bootstrap/modal.js262
-rw-r--r--assets/javascripts/bootstrap/popover.js30
-rw-r--r--assets/javascripts/bootstrap/scrollspy.js118
-rw-r--r--assets/javascripts/bootstrap/tab.js95
-rw-r--r--assets/javascripts/bootstrap/toast.js132
-rw-r--r--assets/javascripts/bootstrap/tooltip.js375
-rw-r--r--assets/stylesheets/_bootstrap-grid.scss14
-rw-r--r--assets/stylesheets/_bootstrap-reboot.scss2
-rw-r--r--assets/stylesheets/_bootstrap.scss2
-rw-r--r--assets/stylesheets/bootstrap/_alert.scss6
-rw-r--r--assets/stylesheets/bootstrap/_breadcrumb.scss2
-rw-r--r--assets/stylesheets/bootstrap/_button-group.scss10
-rw-r--r--assets/stylesheets/bootstrap/_card.scss6
-rw-r--r--assets/stylesheets/bootstrap/_carousel.scss35
-rw-r--r--assets/stylesheets/bootstrap/_dropdown.scss45
-rw-r--r--assets/stylesheets/bootstrap/_functions.scss3
-rw-r--r--assets/stylesheets/bootstrap/_list-group.scss12
-rw-r--r--assets/stylesheets/bootstrap/_navbar.scss2
-rw-r--r--assets/stylesheets/bootstrap/_pagination.scss2
-rw-r--r--assets/stylesheets/bootstrap/_popover.scss31
-rw-r--r--assets/stylesheets/bootstrap/_reboot.scss22
-rw-r--r--assets/stylesheets/bootstrap/_spinners.scss2
-rw-r--r--assets/stylesheets/bootstrap/_tables.scss1
-rw-r--r--assets/stylesheets/bootstrap/_toasts.scss26
-rw-r--r--assets/stylesheets/bootstrap/_tooltip.scss24
-rw-r--r--assets/stylesheets/bootstrap/_utilities.scss63
-rw-r--r--assets/stylesheets/bootstrap/_variables.scss42
-rw-r--r--assets/stylesheets/bootstrap/bootstrap-utilities.scss2
-rw-r--r--assets/stylesheets/bootstrap/forms/_form-check.scss10
-rw-r--r--assets/stylesheets/bootstrap/forms/_input-group.scss6
-rw-r--r--assets/stylesheets/bootstrap/mixins/_border-radius.scss12
-rw-r--r--assets/stylesheets/bootstrap/mixins/_caret.scss12
-rw-r--r--assets/stylesheets/bootstrap/mixins/_container.scss6
-rw-r--r--assets/stylesheets/bootstrap/mixins/_forms.scss2
-rw-r--r--assets/stylesheets/bootstrap/mixins/_pagination.scss6
-rw-r--r--assets/stylesheets/bootstrap/mixins/_utilities.scss19
-rw-r--r--lib/bootstrap/version.rb4
50 files changed, 2007 insertions, 1479 deletions
diff --git a/README.md b/README.md
index aef4c67..31e93e0 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Please see the appropriate guide for your environment of choice:
Add `bootstrap` to your Gemfile:
```ruby
-gem 'bootstrap', '~> 5.0.0.alpha3'
+gem 'bootstrap', '~> 5.0.0.beta1'
```
Ensure that `sprockets-rails` is at least v2.3.2.
diff --git a/assets/javascripts/bootstrap-sprockets.js b/assets/javascripts/bootstrap-sprockets.js
index beb45e3..da281f4 100644
--- a/assets/javascripts/bootstrap-sprockets.js
+++ b/assets/javascripts/bootstrap-sprockets.js
@@ -1,15 +1,15 @@
//= require ./bootstrap/dom/data
//= require ./bootstrap/dom/event-handler
+//= require ./bootstrap/alert
+//= require ./bootstrap/button
//= require ./bootstrap/dom/manipulator
-//= require ./bootstrap/toast
//= require ./bootstrap/dom/selector-engine
-//= require ./bootstrap/dropdown
-//= require ./bootstrap/alert
-//= require ./bootstrap/tooltip
+//= require ./bootstrap/carousel
//= require ./bootstrap/collapse
+//= require ./bootstrap/dropdown
//= require ./bootstrap/modal
-//= require ./bootstrap/tab
-//= require ./bootstrap/scrollspy
-//= require ./bootstrap/button
-//= require ./bootstrap/carousel
+//= require ./bootstrap/tooltip
//= require ./bootstrap/popover
+//= require ./bootstrap/scrollspy
+//= require ./bootstrap/tab
+//= require ./bootstrap/toast
diff --git a/assets/javascripts/bootstrap.js b/assets/javascripts/bootstrap.js
index 55fe6f7..9547ed5 100644
--- a/assets/javascripts/bootstrap.js
+++ b/assets/javascripts/bootstrap.js
@@ -1,17 +1,35 @@
/*!
- * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap v5.0.0-beta1 (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('popper.js')) :
- typeof define === 'function' && define.amd ? define(['popper.js'], factory) :
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory(global.Popper));
}(this, (function (Popper) { 'use strict';
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
- var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
@@ -55,7 +73,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -86,7 +104,7 @@
};
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -121,8 +139,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -131,7 +149,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -221,7 +239,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -236,9 +254,11 @@
}
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): dom/data.js
+ * Bootstrap (v5.0.0-beta1): dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -305,7 +325,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): dom/event-handler.js
+ * Bootstrap (v5.0.0-beta1): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -325,7 +345,7 @@
mouseenter: 'mouseover',
mouseleave: 'mouseout'
};
- var nativeEvents = ['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'];
+ var nativeEvents = new Set(['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']);
/**
* ------------------------------------------------------------------------
* Private methods
@@ -407,7 +427,7 @@
typeEvent = custom;
}
- var isNative = nativeEvents.indexOf(typeEvent) > -1;
+ var isNative = nativeEvents.has(typeEvent);
if (!isNative) {
typeEvent = originalTypeEvent;
@@ -464,7 +484,7 @@
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
var storeElementEvent = events[typeEvent] || {};
Object.keys(storeElementEvent).forEach(function (handlerKey) {
- if (handlerKey.indexOf(namespace) > -1) {
+ if (handlerKey.includes(namespace)) {
var event = storeElementEvent[handlerKey];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}
@@ -490,7 +510,7 @@
var inNamespace = typeEvent !== originalTypeEvent;
var events = getEvent(element);
- var isNamespace = originalTypeEvent.charAt(0) === '.';
+ var isNamespace = originalTypeEvent.startsWith('.');
if (typeof originalHandler !== 'undefined') {
// Simplest case: handler is passed, remove that listener ONLY.
@@ -512,7 +532,7 @@
Object.keys(storeElementEvent).forEach(function (keyHandlers) {
var handlerKey = keyHandlers.replace(stripUidRegex, '');
- if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
var event = storeElementEvent[keyHandlers];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}
@@ -526,7 +546,7 @@
var $ = getjQuery();
var typeEvent = event.replace(stripNameRegex, '');
var inNamespace = event !== typeEvent;
- var isNative = nativeEvents.indexOf(typeEvent) > -1;
+ var isNative = nativeEvents.has(typeEvent);
var jQueryEvent;
var bubbles = true;
var nativeDispatch = true;
@@ -584,12 +604,52 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data.setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data.removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data.getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'alert';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
- var SELECTOR_DISMISS = '[data-dismiss="alert"]';
+ var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
var EVENT_CLOSE = "close" + EVENT_KEY;
var EVENT_CLOSED = "closed" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
@@ -602,15 +662,12 @@
* ------------------------------------------------------------------------
*/
- var Alert = /*#__PURE__*/function () {
- function Alert(element) {
- this._element = element;
-
- if (this._element) {
- Data.setData(element, DATA_KEY, this);
- }
- } // Getters
+ var Alert = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Alert, _BaseComponent);
+ function Alert() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
var _proto = Alert.prototype;
@@ -625,11 +682,6 @@
}
this._removeElement(rootElement);
- };
-
- _proto.dispose = function dispose() {
- Data.removeData(this._element, DATA_KEY);
- this._element = null;
} // Private
;
@@ -692,19 +744,16 @@
};
};
- Alert.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY);
- };
-
_createClass(Alert, null, [{
- key: "VERSION",
+ key: "DATA_KEY",
+ // Getters
get: function get() {
- return VERSION;
+ return DATA_KEY;
}
}]);
return Alert;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -743,12 +792,11 @@
*/
var NAME$1 = 'button';
- 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';
var CLASS_NAME_ACTIVE = 'active';
- var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1;
/**
* ------------------------------------------------------------------------
@@ -756,12 +804,12 @@
* ------------------------------------------------------------------------
*/
- var Button = /*#__PURE__*/function () {
- function Button(element) {
- this._element = element;
- Data.setData(element, DATA_KEY$1, this);
- } // Getters
+ var Button = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Button, _BaseComponent);
+ function Button() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
var _proto = Button.prototype;
@@ -769,11 +817,6 @@
_proto.toggle = function toggle() {
// Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
- };
-
- _proto.dispose = function dispose() {
- Data.removeData(this._element, DATA_KEY$1);
- this._element = null;
} // Static
;
@@ -791,19 +834,16 @@
});
};
- Button.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$1);
- };
-
_createClass(Button, null, [{
- key: "VERSION",
+ key: "DATA_KEY",
+ // Getters
get: function get() {
- return VERSION$1;
+ return DATA_KEY$1;
}
}]);
return Button;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -847,7 +887,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): dom/manipulator.js
+ * Bootstrap (v5.0.0-beta1): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -879,25 +919,28 @@
var Manipulator = {
setDataAttribute: function setDataAttribute(element, key, value) {
- element.setAttribute("data-" + normalizeDataKey(key), value);
+ element.setAttribute("data-bs-" + normalizeDataKey(key), value);
},
removeDataAttribute: function removeDataAttribute(element, key) {
- element.removeAttribute("data-" + normalizeDataKey(key));
+ element.removeAttribute("data-bs-" + normalizeDataKey(key));
},
getDataAttributes: function getDataAttributes(element) {
if (!element) {
return {};
}
- var attributes = _extends({}, element.dataset);
-
- Object.keys(attributes).forEach(function (key) {
- attributes[key] = normalizeData(attributes[key]);
+ var attributes = {};
+ Object.keys(element.dataset).filter(function (key) {
+ return key.startsWith('bs');
+ }).forEach(function (key) {
+ var pureKey = key.replace(/^bs/, '');
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
+ attributes[pureKey] = normalizeData(element.dataset[key]);
});
return attributes;
},
getDataAttribute: function getDataAttribute(element, key) {
- return normalizeData(element.getAttribute("data-" + normalizeDataKey(key)));
+ return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key)));
},
offset: function offset(element) {
var rect = element.getBoundingClientRect();
@@ -916,7 +959,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): dom/selector-engine.js
+ * Bootstrap (v5.0.0-beta1): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -1005,7 +1048,6 @@
*/
var NAME$2 = 'carousel';
- 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';
@@ -1050,8 +1092,8 @@
var CLASS_NAME_CAROUSEL = 'carousel';
var CLASS_NAME_ACTIVE$1 = 'active';
var CLASS_NAME_SLIDE = 'slide';
- var CLASS_NAME_RIGHT = 'carousel-item-right';
- var CLASS_NAME_LEFT = 'carousel-item-left';
+ var CLASS_NAME_END = 'carousel-item-end';
+ var CLASS_NAME_START = 'carousel-item-start';
var CLASS_NAME_NEXT = 'carousel-item-next';
var CLASS_NAME_PREV = 'carousel-item-prev';
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
@@ -1061,8 +1103,8 @@
var SELECTOR_ITEM_IMG = '.carousel-item img';
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
var SELECTOR_INDICATORS = '.carousel-indicators';
- var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
- var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
+ var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
var PointerType = {
TOUCH: 'touch',
PEN: 'pen'
@@ -1073,25 +1115,29 @@
* ------------------------------------------------------------------------
*/
- var Carousel = /*#__PURE__*/function () {
- function Carousel(element, config) {
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this.touchTimeout = null;
- this.touchStartX = 0;
- this.touchDeltaX = 0;
- this._config = this._getConfig(config);
- this._element = element;
- this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
- this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent);
-
- this._addEventListeners();
+ var Carousel = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Carousel, _BaseComponent);
- Data.setData(element, DATA_KEY$2, this);
+ function Carousel(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._items = null;
+ _this._interval = null;
+ _this._activeElement = null;
+ _this._isPaused = false;
+ _this._isSliding = false;
+ _this.touchTimeout = null;
+ _this.touchStartX = 0;
+ _this.touchDeltaX = 0;
+ _this._config = _this._getConfig(config);
+ _this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this._element);
+ _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ _this._pointerEvent = Boolean(window.PointerEvent);
+
+ _this._addEventListeners();
+
+ return _this;
} // Getters
@@ -1150,7 +1196,7 @@
};
_proto.to = function to(index) {
- var _this = this;
+ var _this2 = this;
this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
@@ -1162,7 +1208,7 @@
if (this._isSliding) {
EventHandler.one(this._element, EVENT_SLID, function () {
- return _this.to(index);
+ return _this2.to(index);
});
return;
}
@@ -1179,11 +1225,11 @@
};
_proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
EventHandler.off(this._element, EVENT_KEY$2);
- Data.removeData(this._element, DATA_KEY$2);
this._items = null;
this._config = null;
- this._element = null;
this._interval = null;
this._isPaused = null;
this._isSliding = null;
@@ -1219,20 +1265,20 @@
};
_proto._addEventListeners = function _addEventListeners() {
- var _this2 = this;
+ var _this3 = this;
if (this._config.keyboard) {
EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {
- return _this2._keydown(event);
+ return _this3._keydown(event);
});
}
if (this._config.pause === 'hover') {
EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {
- return _this2.pause(event);
+ return _this3.pause(event);
});
EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {
- return _this2.cycle(event);
+ return _this3.cycle(event);
});
}
@@ -1242,33 +1288,33 @@
};
_proto._addTouchEventListeners = function _addTouchEventListeners() {
- var _this3 = this;
+ var _this4 = this;
var start = function start(event) {
- if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
- _this3.touchStartX = event.clientX;
- } else if (!_this3._pointerEvent) {
- _this3.touchStartX = event.touches[0].clientX;
+ if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
+ _this4.touchStartX = event.clientX;
+ } else if (!_this4._pointerEvent) {
+ _this4.touchStartX = event.touches[0].clientX;
}
};
var move = function move(event) {
// ensure swiping with one touch and not pinching
if (event.touches && event.touches.length > 1) {
- _this3.touchDeltaX = 0;
+ _this4.touchDeltaX = 0;
} else {
- _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
+ _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
}
};
var end = function end(event) {
- if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
- _this3.touchDeltaX = event.clientX - _this3.touchStartX;
+ if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
+ _this4.touchDeltaX = event.clientX - _this4.touchStartX;
}
- _this3._handleSwipe();
+ _this4._handleSwipe();
- if (_this3._config.pause === 'hover') {
+ if (_this4._config.pause === 'hover') {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it;
@@ -1276,15 +1322,15 @@
// (as if it's the second time we tap on it, mouseenter compat event
// is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling
- _this3.pause();
+ _this4.pause();
- if (_this3.touchTimeout) {
- clearTimeout(_this3.touchTimeout);
+ if (_this4.touchTimeout) {
+ clearTimeout(_this4.touchTimeout);
}
- _this3.touchTimeout = setTimeout(function (event) {
- return _this3.cycle(event);
- }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
+ _this4.touchTimeout = setTimeout(function (event) {
+ return _this4.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
}
};
@@ -1393,7 +1439,7 @@
return;
}
- var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
+ var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
if (elementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
@@ -1404,7 +1450,7 @@
};
_proto._slide = function _slide(direction, element) {
- var _this4 = this;
+ var _this5 = this;
var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
@@ -1420,11 +1466,11 @@
var eventDirectionName;
if (direction === DIRECTION_NEXT) {
- directionalClassName = CLASS_NAME_LEFT;
+ directionalClassName = CLASS_NAME_START;
orderClassName = CLASS_NAME_NEXT;
eventDirectionName = DIRECTION_LEFT;
} else {
- directionalClassName = CLASS_NAME_RIGHT;
+ directionalClassName = CLASS_NAME_END;
orderClassName = CLASS_NAME_PREV;
eventDirectionName = DIRECTION_RIGHT;
}
@@ -1465,9 +1511,9 @@
nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE$1);
activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
- _this4._isSliding = false;
+ _this5._isSliding = false;
setTimeout(function () {
- EventHandler.trigger(_this4._element, EVENT_SLID, {
+ EventHandler.trigger(_this5._element, EVENT_SLID, {
relatedTarget: nextElement,
direction: eventDirectionName,
from: activeElementIndex,
@@ -1538,7 +1584,7 @@
var config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this));
- var slideIndex = this.getAttribute('data-slide-to');
+ var slideIndex = this.getAttribute('data-bs-slide-to');
if (slideIndex) {
config.interval = false;
@@ -1553,24 +1599,20 @@
event.preventDefault();
};
- Carousel.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$2);
- };
-
_createClass(Carousel, null, [{
- key: "VERSION",
+ key: "Default",
get: function get() {
- return VERSION$2;
+ return Default;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default;
+ return DATA_KEY$2;
}
}]);
return Carousel;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -1616,7 +1658,6 @@
*/
var NAME$3 = 'collapse';
- 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';
@@ -1640,19 +1681,23 @@
var WIDTH = 'width';
var HEIGHT = 'height';
var SELECTOR_ACTIVES = '.show, .collapsing';
- var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]';
+ var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="collapse"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
- var Collapse = /*#__PURE__*/function () {
+ var Collapse = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Collapse, _BaseComponent);
+
function Collapse(element, config) {
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-target=\"#" + element.id + "\"]"));
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._isTransitioning = false;
+ _this._config = _this._getConfig(config);
+ _this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1 + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE$1 + "[data-bs-target=\"#" + element.id + "\"]"));
var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1);
for (var i = 0, len = toggleList.length; i < len; i++) {
@@ -1663,23 +1708,23 @@
});
if (selector !== null && filterElement.length) {
- this._selector = selector;
+ _this._selector = selector;
- this._triggerArray.push(elem);
+ _this._triggerArray.push(elem);
}
}
- this._parent = this._config.parent ? this._getParent() : null;
+ _this._parent = _this._config.parent ? _this._getParent() : null;
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+ if (!_this._config.parent) {
+ _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
}
- if (this._config.toggle) {
- this.toggle();
+ if (_this._config.toggle) {
+ _this.toggle();
}
- Data.setData(element, DATA_KEY$3, this);
+ return _this;
} // Getters
@@ -1695,7 +1740,7 @@
};
_proto.show = function show() {
- var _this = this;
+ var _this2 = this;
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@@ -1706,8 +1751,8 @@
if (this._parent) {
actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
- if (typeof _this._config.parent === 'string') {
- return elem.getAttribute('data-parent') === _this._config.parent;
+ if (typeof _this2._config.parent === 'string') {
+ return elem.getAttribute('data-bs-parent') === _this2._config.parent;
}
return elem.classList.contains(CLASS_NAME_COLLAPSE);
@@ -1721,10 +1766,10 @@
var container = SelectorEngine.findOne(this._selector);
if (actives) {
- var tempActiveData = actives.filter(function (elem) {
+ var tempActiveData = actives.find(function (elem) {
return container !== elem;
});
- activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY$3) : null;
+ activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY$3) : null;
if (activesData && activesData._isTransitioning) {
return;
@@ -1767,15 +1812,15 @@
this.setTransitioning(true);
var complete = function complete() {
- _this._element.classList.remove(CLASS_NAME_COLLAPSING);
+ _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
+ _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
- _this._element.style[dimension] = '';
+ _this2._element.style[dimension] = '';
- _this.setTransitioning(false);
+ _this2.setTransitioning(false);
- EventHandler.trigger(_this._element, EVENT_SHOWN);
+ EventHandler.trigger(_this2._element, EVENT_SHOWN);
};
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -1787,7 +1832,7 @@
};
_proto.hide = function hide() {
- var _this2 = this;
+ var _this3 = this;
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@@ -1825,13 +1870,13 @@
this.setTransitioning(true);
var complete = function complete() {
- _this2.setTransitioning(false);
+ _this3.setTransitioning(false);
- _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
+ _this3._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this2._element.classList.add(CLASS_NAME_COLLAPSE);
+ _this3._element.classList.add(CLASS_NAME_COLLAPSE);
- EventHandler.trigger(_this2._element, EVENT_HIDDEN);
+ EventHandler.trigger(_this3._element, EVENT_HIDDEN);
};
this._element.style[dimension] = '';
@@ -1845,10 +1890,10 @@
};
_proto.dispose = function dispose() {
- Data.removeData(this._element, DATA_KEY$3);
+ _BaseComponent.prototype.dispose.call(this);
+
this._config = null;
this._parent = null;
- this._element = null;
this._triggerArray = null;
this._isTransitioning = null;
} // Private
@@ -1867,7 +1912,7 @@
};
_proto._getParent = function _getParent() {
- var _this3 = this;
+ var _this4 = this;
var parent = this._config.parent;
@@ -1880,11 +1925,11 @@
parent = SelectorEngine.findOne(parent);
}
- var selector = SELECTOR_DATA_TOGGLE$1 + "[data-parent=\"" + parent + "\"]";
+ var selector = SELECTOR_DATA_TOGGLE$1 + "[data-bs-parent=\"" + parent + "\"]";
SelectorEngine.find(selector, parent).forEach(function (element) {
var selected = getElementFromSelector(element);
- _this3._addAriaAndCollapsedClass(selected, [element]);
+ _this4._addAriaAndCollapsedClass(selected, [element]);
});
return parent;
};
@@ -1935,24 +1980,20 @@
});
};
- Collapse.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$3);
- };
-
_createClass(Collapse, null, [{
- key: "VERSION",
+ key: "Default",
get: function get() {
- return VERSION$3;
+ return Default$1;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default$1;
+ return DATA_KEY$3;
}
}]);
return Collapse;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -2018,7 +2059,6 @@
*/
var NAME$4 = 'dropdown';
- 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';
@@ -2041,26 +2081,24 @@
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_SHOW$1 = 'show';
var CLASS_NAME_DROPUP = 'dropup';
- var CLASS_NAME_DROPRIGHT = 'dropright';
- var CLASS_NAME_DROPLEFT = 'dropleft';
- var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
+ var CLASS_NAME_DROPEND = 'dropend';
+ var CLASS_NAME_DROPSTART = 'dropstart';
var CLASS_NAME_NAVBAR = 'navbar';
- var CLASS_NAME_POSITION_STATIC = 'position-static';
- var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
+ var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="dropdown"]';
var SELECTOR_FORM_CHILD = '.dropdown form';
var SELECTOR_MENU = '.dropdown-menu';
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
- var PLACEMENT_TOP = 'top-start';
- var PLACEMENT_TOPEND = 'top-end';
- var PLACEMENT_BOTTOM = 'bottom-start';
- var PLACEMENT_BOTTOMEND = 'bottom-end';
- var PLACEMENT_RIGHT = 'right-start';
- var PLACEMENT_LEFT = 'left-start';
+ var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';
+ var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';
+ var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';
+ var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';
+ var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';
+ var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';
var Default$2 = {
offset: 0,
flip: true,
- boundary: 'scrollParent',
+ boundary: 'clippingParents',
reference: 'toggle',
display: 'dynamic',
popperConfig: null
@@ -2079,17 +2117,21 @@
* ------------------------------------------------------------------------
*/
- var Dropdown = /*#__PURE__*/function () {
+ var Dropdown = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Dropdown, _BaseComponent);
+
function Dropdown(element, config) {
- this._element = element;
- this._popper = null;
- this._config = this._getConfig(config);
- this._menu = this._getMenuElement();
- this._inNavbar = this._detectNavbar();
+ var _this;
- this._addEventListeners();
+ _this = _BaseComponent.call(this, element) || this;
+ _this._popper = null;
+ _this._config = _this._getConfig(config);
+ _this._menu = _this._getMenuElement();
+ _this._inNavbar = _this._detectNavbar();
- Data.setData(element, DATA_KEY$4, this);
+ _this._addEventListeners();
+
+ return _this;
} // Getters
@@ -2125,12 +2167,12 @@
if (showEvent.defaultPrevented) {
return;
- } // Disable totally Popper.js for Dropdown in Navbar
+ } // Totally disable Popper for Dropdowns in Navbar
if (!this._inNavbar) {
- if (typeof Popper__default['default'] === 'undefined') {
- throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)');
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
}
var referenceElement = this._element;
@@ -2143,16 +2185,9 @@
if (typeof this._config.reference.jquery !== 'undefined') {
referenceElement = this._config.reference[0];
}
- } // If boundary is not `scrollParent`, then set position to `static`
- // to allow the menu to "escape" the scroll parent's boundaries
- // https://github.com/twbs/bootstrap/issues/24251
-
-
- if (this._config.boundary !== 'scrollParent') {
- parent.classList.add(CLASS_NAME_POSITION_STATIC);
}
- this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());
+ this._popper = Popper.createPopper(referenceElement, this._menu, this._getPopperConfig());
} // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
@@ -2205,9 +2240,9 @@
};
_proto.dispose = function dispose() {
- Data.removeData(this._element, DATA_KEY$4);
+ _BaseComponent.prototype.dispose.call(this);
+
EventHandler.off(this._element, EVENT_KEY$4);
- this._element = null;
this._menu = null;
if (this._popper) {
@@ -2221,19 +2256,19 @@
this._inNavbar = this._detectNavbar();
if (this._popper) {
- this._popper.scheduleUpdate();
+ this._popper.update();
}
} // Private
;
_proto._addEventListeners = function _addEventListeners() {
- var _this = this;
+ var _this2 = this;
EventHandler.on(this._element, EVENT_CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
- _this.toggle();
+ _this2.toggle();
});
};
@@ -2249,60 +2284,46 @@
_proto._getPlacement = function _getPlacement() {
var parentDropdown = this._element.parentNode;
- var placement = PLACEMENT_BOTTOM; // Handle dropup
- if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
- 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)) {
- placement = PLACEMENT_LEFT;
- } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
- placement = PLACEMENT_BOTTOMEND;
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
+ return PLACEMENT_RIGHT;
}
- return placement;
- };
-
- _proto._detectNavbar = function _detectNavbar() {
- return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
- };
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
+ return PLACEMENT_LEFT;
+ } // We need to trim the value because custom properties can also include spaces
- _proto._getOffset = function _getOffset() {
- var _this2 = this;
- var offset = {};
+ var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
- if (typeof this._config.offset === 'function') {
- offset.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
- return data;
- };
- } else {
- offset.offset = this._config.offset;
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
+ return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
}
- return offset;
+ return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
+ };
+
+ _proto._detectNavbar = function _detectNavbar() {
+ return this._element.closest("." + CLASS_NAME_NAVBAR) !== null;
};
_proto._getPopperConfig = function _getPopperConfig() {
var popperConfig = {
placement: this._getPlacement(),
- modifiers: {
- offset: this._getOffset(),
- flip: {
- enabled: this._config.flip
- },
- preventOverflow: {
- boundariesElement: this._config.boundary
+ modifiers: [{
+ name: 'preventOverflow',
+ options: {
+ altBoundary: this._config.flip,
+ rootBoundary: this._config.boundary
}
- }
- }; // Disable Popper.js if we have a static display
+ }]
+ }; // Disable Popper if we have a static display
if (this._config.display === 'static') {
- popperConfig.modifiers.applyStyle = {
+ popperConfig.modifiers = [{
+ name: 'applyStyles',
enabled: false
- };
+ }];
}
return _extends({}, popperConfig, this._config.popperConfig);
@@ -2437,15 +2458,14 @@
return;
}
- var index = items.indexOf(event.target);
+ var index = items.indexOf(event.target); // Up
if (event.key === ARROW_UP_KEY && index > 0) {
- // Up
index--;
- }
+ } // Down
+
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
- // Down
index++;
} // index is -1 if the first keydown is an ArrowUp
@@ -2454,16 +2474,7 @@
items[index].focus();
};
- Dropdown.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$4);
- };
-
_createClass(Dropdown, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$4;
- }
- }, {
key: "Default",
get: function get() {
return Default$2;
@@ -2473,10 +2484,15 @@
get: function get() {
return DefaultType$2;
}
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY$4;
+ }
}]);
return Dropdown;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -2526,7 +2542,6 @@
*/
var NAME$5 = 'modal';
- 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';
@@ -2534,14 +2549,12 @@
var Default$3 = {
backdrop: true,
keyboard: true,
- focus: true,
- show: true
+ focus: true
};
var DefaultType$3 = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
+ focus: 'boolean'
};
var EVENT_HIDE$2 = "hide" + EVENT_KEY$5;
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5;
@@ -2563,8 +2576,8 @@
var CLASS_NAME_STATIC = 'modal-static';
var SELECTOR_DIALOG = '.modal-dialog';
var SELECTOR_MODAL_BODY = '.modal-body';
- var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="modal"]';
- var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
+ var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="modal"]';
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top';
/**
@@ -2573,18 +2586,22 @@
* ------------------------------------------------------------------------
*/
- var Modal = /*#__PURE__*/function () {
+ var Modal = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Modal, _BaseComponent);
+
function Modal(element, config) {
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._isTransitioning = false;
- this._scrollbarWidth = 0;
- Data.setData(element, DATA_KEY$5, this);
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);
+ _this._backdrop = null;
+ _this._isShown = false;
+ _this._isBodyOverflowing = false;
+ _this._ignoreBackdropClick = false;
+ _this._isTransitioning = false;
+ _this._scrollbarWidth = 0;
+ return _this;
} // Getters
@@ -2596,7 +2613,7 @@
};
_proto.show = function show(relatedTarget) {
- var _this = this;
+ var _this2 = this;
if (this._isShown || this._isTransitioning) {
return;
@@ -2627,23 +2644,23 @@
this._setResizeEvent();
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
- return _this.hide(event);
+ return _this2.hide(event);
});
EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
- EventHandler.one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
- if (event.target === _this._element) {
- _this._ignoreBackdropClick = true;
+ EventHandler.one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
+ if (event.target === _this2._element) {
+ _this2._ignoreBackdropClick = true;
}
});
});
this._showBackdrop(function () {
- return _this._showElement(relatedTarget);
+ return _this2._showElement(relatedTarget);
});
};
_proto.hide = function hide(event) {
- var _this2 = this;
+ var _this3 = this;
if (event) {
event.preventDefault();
@@ -2681,7 +2698,7 @@
if (transition) {
var transitionDuration = getTransitionDurationFromElement(this._element);
EventHandler.one(this._element, TRANSITION_END, function (event) {
- return _this2._hideModal(event);
+ return _this3._hideModal(event);
});
emulateTransitionEnd(this._element, transitionDuration);
} else {
@@ -2693,16 +2710,17 @@
[window, this._element, this._dialog].forEach(function (htmlElement) {
return EventHandler.off(htmlElement, EVENT_KEY$5);
});
+
+ _BaseComponent.prototype.dispose.call(this);
/**
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
* Do not move `document` in `htmlElements` array
* It will remove `EVENT_CLICK_DATA_API` event that should remain
*/
+
EventHandler.off(document, EVENT_FOCUSIN);
- Data.removeData(this._element, DATA_KEY$5);
this._config = null;
- this._element = null;
this._dialog = null;
this._backdrop = null;
this._isShown = null;
@@ -2724,7 +2742,7 @@
};
_proto._showElement = function _showElement(relatedTarget) {
- var _this3 = this;
+ var _this4 = this;
var transition = this._element.classList.contains(CLASS_NAME_FADE);
@@ -2760,12 +2778,12 @@
}
var transitionComplete = function transitionComplete() {
- if (_this3._config.focus) {
- _this3._element.focus();
+ if (_this4._config.focus) {
+ _this4._element.focus();
}
- _this3._isTransitioning = false;
- EventHandler.trigger(_this3._element, EVENT_SHOWN$2, {
+ _this4._isTransitioning = false;
+ EventHandler.trigger(_this4._element, EVENT_SHOWN$2, {
relatedTarget: relatedTarget
});
};
@@ -2780,28 +2798,28 @@
};
_proto._enforceFocus = function _enforceFocus() {
- var _this4 = this;
+ var _this5 = this;
EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop
EventHandler.on(document, EVENT_FOCUSIN, function (event) {
- if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
- _this4._element.focus();
+ if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
+ _this5._element.focus();
}
});
};
_proto._setEscapeEvent = function _setEscapeEvent() {
- var _this5 = this;
+ var _this6 = this;
if (this._isShown) {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
+ if (_this6._config.keyboard && event.key === ESCAPE_KEY$1) {
event.preventDefault();
- _this5.hide();
- } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
- _this5._triggerBackdropTransition();
+ _this6.hide();
+ } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY$1) {
+ _this6._triggerBackdropTransition();
}
});
} else {
@@ -2810,11 +2828,11 @@
};
_proto._setResizeEvent = function _setResizeEvent() {
- var _this6 = this;
+ var _this7 = this;
if (this._isShown) {
EventHandler.on(window, EVENT_RESIZE, function () {
- return _this6._adjustDialog();
+ return _this7._adjustDialog();
});
} else {
EventHandler.off(window, EVENT_RESIZE);
@@ -2822,7 +2840,7 @@
};
_proto._hideModal = function _hideModal() {
- var _this7 = this;
+ var _this8 = this;
this._element.style.display = 'none';
@@ -2837,11 +2855,11 @@
this._showBackdrop(function () {
document.body.classList.remove(CLASS_NAME_OPEN);
- _this7._resetAdjustments();
+ _this8._resetAdjustments();
- _this7._resetScrollbar();
+ _this8._resetScrollbar();
- EventHandler.trigger(_this7._element, EVENT_HIDDEN$2);
+ EventHandler.trigger(_this8._element, EVENT_HIDDEN$2);
});
};
@@ -2852,7 +2870,7 @@
};
_proto._showBackdrop = function _showBackdrop(callback) {
- var _this8 = this;
+ var _this9 = this;
var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
@@ -2866,8 +2884,8 @@
document.body.appendChild(this._backdrop);
EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {
- if (_this8._ignoreBackdropClick) {
- _this8._ignoreBackdropClick = false;
+ if (_this9._ignoreBackdropClick) {
+ _this9._ignoreBackdropClick = false;
return;
}
@@ -2875,7 +2893,11 @@
return;
}
- _this8._triggerBackdropTransition();
+ if (_this9._config.backdrop === 'static') {
+ _this9._triggerBackdropTransition();
+ } else {
+ _this9.hide();
+ }
});
if (animate) {
@@ -2896,7 +2918,7 @@
this._backdrop.classList.remove(CLASS_NAME_SHOW$2);
var callbackRemove = function callbackRemove() {
- _this8._removeBackdrop();
+ _this9._removeBackdrop();
callback();
};
@@ -2915,41 +2937,37 @@
};
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
- var _this9 = this;
+ var _this10 = this;
- if (this._config.backdrop === 'static') {
- var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
+ var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
- if (hideEvent.defaultPrevented) {
- return;
- }
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (!isModalOverflowing) {
- this._element.style.overflowY = 'hidden';
- }
+ if (!isModalOverflowing) {
+ this._element.style.overflowY = 'hidden';
+ }
- this._element.classList.add(CLASS_NAME_STATIC);
+ this._element.classList.add(CLASS_NAME_STATIC);
- var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
- EventHandler.off(this._element, TRANSITION_END);
- EventHandler.one(this._element, TRANSITION_END, function () {
- _this9._element.classList.remove(CLASS_NAME_STATIC);
+ var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler.off(this._element, TRANSITION_END);
+ EventHandler.one(this._element, TRANSITION_END, function () {
+ _this10._element.classList.remove(CLASS_NAME_STATIC);
- if (!isModalOverflowing) {
- EventHandler.one(_this9._element, TRANSITION_END, function () {
- _this9._element.style.overflowY = '';
- });
- emulateTransitionEnd(_this9._element, modalTransitionDuration);
- }
- });
- emulateTransitionEnd(this._element, modalTransitionDuration);
+ if (!isModalOverflowing) {
+ EventHandler.one(_this10._element, TRANSITION_END, function () {
+ _this10._element.style.overflowY = '';
+ });
+ emulateTransitionEnd(_this10._element, modalTransitionDuration);
+ }
+ });
+ emulateTransitionEnd(this._element, modalTransitionDuration);
- this._element.focus();
- } else {
- this.hide();
- }
+ this._element.focus();
} // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
// ----------------------------------------------------------------------
@@ -2958,11 +2976,11 @@
_proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (!this._isBodyOverflowing && isModalOverflowing) {
+ if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
this._element.style.paddingLeft = this._scrollbarWidth + "px";
}
- if (this._isBodyOverflowing && !isModalOverflowing) {
+ if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
this._element.style.paddingRight = this._scrollbarWidth + "px";
}
};
@@ -2979,7 +2997,7 @@
};
_proto._setScrollbar = function _setScrollbar() {
- var _this10 = this;
+ var _this11 = this;
if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@@ -2989,20 +3007,20 @@
var actualPadding = element.style.paddingRight;
var calculatedPadding = window.getComputedStyle(element)['padding-right'];
Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
- element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
+ element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px";
}); // Adjust sticky content margin
SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
var actualMargin = element.style.marginRight;
var calculatedMargin = window.getComputedStyle(element)['margin-right'];
Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
- element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
+ element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px";
}); // Adjust body padding
var actualPadding = document.body.style.paddingRight;
var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
- document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
+ document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
}
document.body.classList.add(CLASS_NAME_OPEN);
@@ -3065,30 +3083,24 @@
}
data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
}
});
};
- Modal.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$5);
- };
-
_createClass(Modal, null, [{
- key: "VERSION",
+ key: "Default",
get: function get() {
- return VERSION$5;
+ return Default$3;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default$3;
+ return DATA_KEY$5;
}
}]);
return Modal;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -3097,7 +3109,7 @@
EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {
- var _this11 = this;
+ var _this12 = this;
var target = getElementFromSelector(this);
@@ -3112,8 +3124,8 @@
}
EventHandler.one(target, EVENT_HIDDEN$2, function () {
- if (isVisible(_this11)) {
- _this11.focus();
+ if (isVisible(_this12)) {
+ _this12.focus();
}
});
});
@@ -3152,11 +3164,11 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/sanitizer.js
+ * Bootstrap (v5.0.0-beta1): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
- var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
+ var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
@@ -3176,8 +3188,8 @@
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
var attrName = attr.nodeName.toLowerCase();
- if (allowedAttributeList.indexOf(attrName) !== -1) {
- if (uriAttrs.indexOf(attrName) !== -1) {
+ if (allowedAttributeList.includes(attrName)) {
+ if (uriAttrs.has(attrName)) {
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
}
@@ -3253,7 +3265,7 @@
var el = elements[i];
var elName = el.nodeName.toLowerCase();
- if (allowlistKeys.indexOf(elName) === -1) {
+ if (!allowlistKeys.includes(elName)) {
el.parentNode.removeChild(el);
return "continue";
}
@@ -3284,12 +3296,11 @@
*/
var NAME$6 = 'tooltip';
- 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';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var DISALLOWED_ATTRIBUTES = ['sanitize', 'allowList', 'sanitizeFn'];
+ var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
var DefaultType$4 = {
animation: 'boolean',
template: 'string',
@@ -3299,10 +3310,10 @@
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
- offset: '(number|string|function)',
container: '(string|element|boolean)',
- fallbackPlacement: '(string|array)',
+ fallbackPlacements: '(null|array)',
boundary: '(string|element)',
+ customClass: '(string|function)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
allowList: 'object',
@@ -3311,23 +3322,23 @@
var AttachmentMap = {
AUTO: 'auto',
TOP: 'top',
- RIGHT: 'right',
+ RIGHT: isRTL ? 'left' : 'right',
BOTTOM: 'bottom',
- LEFT: 'left'
+ LEFT: isRTL ? 'right' : 'left'
};
var Default$4 = {
animation: true,
- template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+ template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
- offset: 0,
container: false,
- fallbackPlacement: 'flip',
- boundary: 'scrollParent',
+ fallbackPlacements: null,
+ boundary: 'clippingParents',
+ customClass: '',
sanitize: true,
sanitizeFn: null,
allowList: DefaultAllowlist,
@@ -3361,26 +3372,30 @@
* ------------------------------------------------------------------------
*/
- var Tooltip = /*#__PURE__*/function () {
+ var Tooltip = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tooltip, _BaseComponent);
+
function Tooltip(element, config) {
- if (typeof Popper__default['default'] === 'undefined') {
- throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
- } // private
+ var _this;
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
+ }
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._popper = null; // Protected
+ _this = _BaseComponent.call(this, element) || this; // private
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
+ _this._isEnabled = true;
+ _this._timeout = 0;
+ _this._hoverState = '';
+ _this._activeTrigger = {};
+ _this._popper = null; // Protected
- this._setListeners();
+ _this.config = _this._getConfig(config);
+ _this.tip = null;
- Data.setData(element, this.constructor.DATA_KEY, this);
+ _this._setListeners();
+
+ return _this;
} // Getters
@@ -3433,9 +3448,8 @@
_proto.dispose = function dispose() {
clearTimeout(this._timeout);
- Data.removeData(this.element, this.constructor.DATA_KEY);
- EventHandler.off(this.element, this.constructor.EVENT_KEY);
- EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.off(this._element, this.constructor.EVENT_KEY);
+ EventHandler.off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -3451,22 +3465,23 @@
}
this._popper = null;
- this.element = null;
this.config = null;
this.tip = null;
+
+ _BaseComponent.prototype.dispose.call(this);
};
_proto.show = function show() {
- var _this = this;
+ var _this2 = this;
- if (this.element.style.display === 'none') {
+ if (this._element.style.display === 'none') {
throw new Error('Please use show on visible elements');
}
if (this.isWithContent() && this._isEnabled) {
- var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
- var shadowRoot = findShadowRoot(this.element);
- var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
+ var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);
+ var shadowRoot = findShadowRoot(this._element);
+ var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);
if (showEvent.defaultPrevented || !isInTheDom) {
return;
@@ -3475,14 +3490,16 @@
var tip = this.getTipElement();
var tipId = getUID(this.constructor.NAME);
tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
+
+ this._element.setAttribute('aria-describedby', tipId);
+
this.setContent();
if (this.config.animation) {
tip.classList.add(CLASS_NAME_FADE$1);
}
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;
var attachment = this._getAttachment(placement);
@@ -3492,17 +3509,25 @@
Data.setData(tip, this.constructor.DATA_KEY, this);
- if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
+ if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
container.appendChild(tip);
}
- EventHandler.trigger(this.element, this.constructor.Event.INSERTED);
- this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));
- tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra
+ EventHandler.trigger(this._element, this.constructor.Event.INSERTED);
+ this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));
+ tip.classList.add(CLASS_NAME_SHOW$3);
+ var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;
+
+ if (customClass) {
+ var _tip$classList;
+
+ (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));
+ } // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
if ('ontouchstart' in document.documentElement) {
var _ref;
@@ -3512,16 +3537,12 @@
}
var complete = function complete() {
- if (_this.config.animation) {
- _this._fixTransition();
- }
-
- var prevHoverState = _this._hoverState;
- _this._hoverState = null;
- EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
+ var prevHoverState = _this2._hoverState;
+ _this2._hoverState = null;
+ EventHandler.trigger(_this2._element, _this2.constructor.Event.SHOWN);
if (prevHoverState === HOVER_STATE_OUT) {
- _this._leave(null, _this);
+ _this2._leave(null, _this2);
}
};
@@ -3536,7 +3557,7 @@
};
_proto.hide = function hide() {
- var _this2 = this;
+ var _this3 = this;
if (!this._popper) {
return;
@@ -3545,20 +3566,24 @@
var tip = this.getTipElement();
var complete = function complete() {
- if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
+ if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
- _this2._cleanTipClass();
+ _this3._cleanTipClass();
- _this2.element.removeAttribute('aria-describedby');
+ _this3._element.removeAttribute('aria-describedby');
- EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN);
+ EventHandler.trigger(_this3._element, _this3.constructor.Event.HIDDEN);
- _this2._popper.destroy();
+ if (_this3._popper) {
+ _this3._popper.destroy();
+
+ _this3._popper = null;
+ }
};
- var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
+ var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);
if (hideEvent.defaultPrevented) {
return;
@@ -3592,7 +3617,7 @@
_proto.update = function update() {
if (this._popper !== null) {
- this._popper.scheduleUpdate();
+ this._popper.update();
}
} // Protected
;
@@ -3653,64 +3678,73 @@
};
_proto.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
+ var title = this._element.getAttribute('data-bs-original-title');
if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;
}
return title;
+ };
+
+ _proto.updateAttachment = function updateAttachment(attachment) {
+ if (attachment === 'right') {
+ return 'end';
+ }
+
+ if (attachment === 'left') {
+ return 'start';
+ }
+
+ return attachment;
} // Private
;
_proto._getPopperConfig = function _getPopperConfig(attachment) {
- var _this3 = this;
+ var _this4 = this;
+
+ var flipModifier = {
+ name: 'flip',
+ options: {
+ altBoundary: true
+ }
+ };
+
+ if (this.config.fallbackPlacements) {
+ flipModifier.options.fallbackPlacements = this.config.fallbackPlacements;
+ }
var defaultBsConfig = {
placement: attachment,
- modifiers: {
- offset: this._getOffset(),
- flip: {
- behavior: this.config.fallbackPlacement
- },
- arrow: {
+ modifiers: [flipModifier, {
+ name: 'preventOverflow',
+ options: {
+ rootBoundary: this.config.boundary
+ }
+ }, {
+ name: 'arrow',
+ options: {
element: "." + this.constructor.NAME + "-arrow"
- },
- preventOverflow: {
- boundariesElement: this.config.boundary
}
- },
- onCreate: function onCreate(data) {
- if (data.originalPlacement !== data.placement) {
- _this3._handlePopperPlacementChange(data);
+ }, {
+ name: 'onChange',
+ enabled: true,
+ phase: 'afterWrite',
+ fn: function fn(data) {
+ return _this4._handlePopperPlacementChange(data);
+ }
+ }],
+ onFirstUpdate: function onFirstUpdate(data) {
+ if (data.options.placement !== data.placement) {
+ _this4._handlePopperPlacementChange(data);
}
- },
- onUpdate: function onUpdate(data) {
- return _this3._handlePopperPlacementChange(data);
}
};
return _extends({}, defaultBsConfig, this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
- this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
- };
-
- _proto._getOffset = function _getOffset() {
- var _this4 = this;
-
- var offset = {};
-
- if (typeof this.config.offset === 'function') {
- offset.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
- return data;
- };
- } else {
- offset.offset = this.config.offset;
- }
-
- return offset;
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
};
_proto._getContainer = function _getContainer() {
@@ -3735,28 +3769,28 @@
var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) {
if (trigger === 'click') {
- EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
+ EventHandler.on(_this5._element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
return _this5.toggle(event);
});
} else if (trigger !== TRIGGER_MANUAL) {
var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
- EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) {
+ EventHandler.on(_this5._element, eventIn, _this5.config.selector, function (event) {
return _this5._enter(event);
});
- EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) {
+ EventHandler.on(_this5._element, eventOut, _this5.config.selector, function (event) {
return _this5._leave(event);
});
}
});
this._hideModalHandler = function () {
- if (_this5.element) {
+ if (_this5._element) {
_this5.hide();
}
};
- EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
this.config = _extends({}, this.config, {
@@ -3769,11 +3803,18 @@
};
_proto._fixTitle = function _fixTitle() {
- var titleType = typeof this.element.getAttribute('data-original-title');
+ var title = this._element.getAttribute('title');
+
+ var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');
+
+ if (title || originalTitleType !== 'string') {
+ this._element.setAttribute('data-bs-original-title', title || '');
+
+ if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {
+ this._element.setAttribute('aria-label', title);
+ }
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
+ this._element.setAttribute('title', '');
}
};
@@ -3853,9 +3894,9 @@
};
_proto._getConfig = function _getConfig(config) {
- var dataAttributes = Manipulator.getDataAttributes(this.element);
+ var dataAttributes = Manipulator.getDataAttributes(this._element);
Object.keys(dataAttributes).forEach(function (dataAttr) {
- if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
+ if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
delete dataAttributes[dataAttr];
}
});
@@ -3918,26 +3959,17 @@
};
_proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
- this.tip = popperData.instance.popper;
-
- this._cleanTipClass();
-
- this._addAttachmentClass(this._getAttachment(popperData.placement));
- };
-
- _proto._fixTransition = function _fixTransition() {
- var tip = this.getTipElement();
- var initConfigAnimation = this.config.animation;
+ var state = popperData.state;
- if (tip.getAttribute('x-placement') !== null) {
+ if (!state) {
return;
}
- tip.classList.remove(CLASS_NAME_FADE$1);
- this.config.animation = false;
- this.hide();
- this.show();
- this.config.animation = initConfigAnimation;
+ this.tip = state.elements.popper;
+
+ this._cleanTipClass();
+
+ this._addAttachmentClass(this._getAttachment(state.placement));
} // Static
;
@@ -3965,16 +3997,7 @@
});
};
- Tooltip.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$6);
- };
-
_createClass(Tooltip, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$6;
- }
- }, {
key: "Default",
get: function get() {
return Default$4;
@@ -4007,7 +4030,7 @@
}]);
return Tooltip;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* jQuery
@@ -4039,7 +4062,6 @@
*/
var NAME$7 = 'popover';
- 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';
@@ -4049,7 +4071,7 @@
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>'
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
});
var DefaultType$5 = _extends({}, Tooltip.DefaultType, {
@@ -4100,7 +4122,7 @@
var content = this._getContent();
if (typeof content === 'function') {
- content = content.call(this.element);
+ content = content.call(this._element);
}
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
@@ -4109,11 +4131,11 @@
;
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
- this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment);
+ this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + this.updateAttachment(attachment));
};
_proto._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || this.config.content;
+ return this._element.getAttribute('data-bs-content') || this.config.content;
};
_proto._cleanTipClass = function _cleanTipClass() {
@@ -4155,18 +4177,9 @@
});
};
- Popover.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$7);
- };
-
_createClass(Popover, null, [{
- key: "VERSION",
- // Getters
- get: function get() {
- return VERSION$7;
- }
- }, {
key: "Default",
+ // Getters
get: function get() {
return Default$5;
}
@@ -4230,7 +4243,6 @@
*/
var NAME$8 = 'scrollspy';
- 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';
@@ -4249,7 +4261,7 @@
var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6;
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
var CLASS_NAME_ACTIVE$2 = 'active';
- var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
+ var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_NAV_LINKS = '.nav-link';
var SELECTOR_NAV_ITEMS = '.nav-item';
@@ -4264,26 +4276,29 @@
* ------------------------------------------------------------------------
*/
- var ScrollSpy = /*#__PURE__*/function () {
- function ScrollSpy(element, config) {
- var _this = this;
+ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(ScrollSpy, _BaseComponent);
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + ", " + this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- EventHandler.on(this._scrollElement, EVENT_SCROLL, function (event) {
+ function ScrollSpy(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._scrollElement = element.tagName === 'BODY' ? window : element;
+ _this._config = _this._getConfig(config);
+ _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
+ _this._offsets = [];
+ _this._targets = [];
+ _this._activeTarget = null;
+ _this._scrollHeight = 0;
+ EventHandler.on(_this._scrollElement, EVENT_SCROLL, function (event) {
return _this._process(event);
});
- this.refresh();
- this._process();
+ _this.refresh();
+
+ _this._process();
- Data.setData(element, DATA_KEY$8, this);
+ return _this;
} // Getters
@@ -4325,9 +4340,9 @@
};
_proto.dispose = function dispose() {
- Data.removeData(this._element, DATA_KEY$8);
+ _BaseComponent.prototype.dispose.call(this);
+
EventHandler.off(this._scrollElement, EVENT_KEY$8);
- this._element = null;
this._scrollElement = null;
this._config = null;
this._selector = null;
@@ -4412,7 +4427,7 @@
this._clear();
var queries = this._selector.split(',').map(function (selector) {
- return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
+ return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
});
var link = SelectorEngine.findOne(queries.join(','));
@@ -4472,24 +4487,20 @@
});
};
- ScrollSpy.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$8);
- };
-
_createClass(ScrollSpy, null, [{
- key: "VERSION",
+ key: "Default",
get: function get() {
- return VERSION$8;
+ return Default$6;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default$6;
+ return DATA_KEY$8;
}
}]);
return ScrollSpy;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -4532,7 +4543,6 @@
*/
var NAME$9 = 'tab';
- 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';
@@ -4550,7 +4560,7 @@
var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';
var SELECTOR_ACTIVE$1 = '.active';
var SELECTOR_ACTIVE_UL = ':scope > li > .active';
- var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
+ var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
/**
@@ -4559,12 +4569,12 @@
* ------------------------------------------------------------------------
*/
- var Tab = /*#__PURE__*/function () {
- function Tab(element) {
- this._element = element;
- Data.setData(this._element, DATA_KEY$9, this);
- } // Getters
+ var Tab = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tab, _BaseComponent);
+ function Tab() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
var _proto = Tab.prototype;
@@ -4619,11 +4629,6 @@
} else {
complete();
}
- };
-
- _proto.dispose = function dispose() {
- Data.removeData(this._element, DATA_KEY$9);
- this._element = null;
} // Private
;
@@ -4706,19 +4711,16 @@
});
};
- Tab.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$9);
- };
-
_createClass(Tab, null, [{
- key: "VERSION",
+ key: "DATA_KEY",
+ // Getters
get: function get() {
- return VERSION$9;
+ return DATA_KEY$9;
}
}]);
return Tab;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -4761,7 +4763,6 @@
*/
var NAME$a = 'toast';
- 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;
@@ -4783,22 +4784,26 @@
autohide: true,
delay: 5000
};
- var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="toast"]';
+ var SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="toast"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
- var Toast = /*#__PURE__*/function () {
+ var Toast = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Toast, _BaseComponent);
+
function Toast(element, config) {
- this._element = element;
- this._config = this._getConfig(config);
- this._timeout = null;
+ var _this;
- this._setListeners();
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._timeout = null;
- Data.setData(element, DATA_KEY$a, this);
+ _this._setListeners();
+
+ return _this;
} // Getters
@@ -4806,7 +4811,7 @@
// Public
_proto.show = function show() {
- var _this = this;
+ var _this2 = this;
var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4);
@@ -4821,16 +4826,16 @@
}
var complete = function complete() {
- _this._element.classList.remove(CLASS_NAME_SHOWING);
+ _this2._element.classList.remove(CLASS_NAME_SHOWING);
- _this._element.classList.add(CLASS_NAME_SHOW$6);
+ _this2._element.classList.add(CLASS_NAME_SHOW$6);
- EventHandler.trigger(_this._element, EVENT_SHOWN$4);
+ EventHandler.trigger(_this2._element, EVENT_SHOWN$4);
- if (_this._config.autohide) {
- _this._timeout = setTimeout(function () {
- _this.hide();
- }, _this._config.delay);
+ if (_this2._config.autohide) {
+ _this2._timeout = setTimeout(function () {
+ _this2.hide();
+ }, _this2._config.delay);
}
};
@@ -4850,7 +4855,7 @@
};
_proto.hide = function hide() {
- var _this2 = this;
+ var _this3 = this;
if (!this._element.classList.contains(CLASS_NAME_SHOW$6)) {
return;
@@ -4863,9 +4868,9 @@
}
var complete = function complete() {
- _this2._element.classList.add(CLASS_NAME_HIDE);
+ _this3._element.classList.add(CLASS_NAME_HIDE);
- EventHandler.trigger(_this2._element, EVENT_HIDDEN$4);
+ EventHandler.trigger(_this3._element, EVENT_HIDDEN$4);
};
this._element.classList.remove(CLASS_NAME_SHOW$6);
@@ -4887,8 +4892,9 @@
}
EventHandler.off(this._element, EVENT_CLICK_DISMISS$1);
- Data.removeData(this._element, DATA_KEY$a);
- this._element = null;
+
+ _BaseComponent.prototype.dispose.call(this);
+
this._config = null;
} // Private
;
@@ -4900,10 +4906,10 @@
};
_proto._setListeners = function _setListeners() {
- var _this3 = this;
+ var _this4 = this;
EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {
- return _this3.hide();
+ return _this4.hide();
});
};
@@ -4933,16 +4939,7 @@
});
};
- Toast.getInstance = function getInstance(element) {
- return Data.getData(element, DATA_KEY$a);
- };
-
_createClass(Toast, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$a;
- }
- }, {
key: "DefaultType",
get: function get() {
return DefaultType$7;
@@ -4952,10 +4949,15 @@
get: function get() {
return Default$7;
}
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY$a;
+ }
}]);
return Toast;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* jQuery
@@ -4982,7 +4984,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): index.umd.js
+ * Bootstrap (v5.0.0-beta1): 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 d7784f1..1bca763 100644
--- a/assets/javascripts/bootstrap.min.js
+++ b/assets/javascripts/bootstrap.min.js
@@ -1,6 +1,6 @@
/*!
- * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap v5.0.0-beta1 (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=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}}));
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}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)}function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var a,l,c=function(t){do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},u=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():null}return e},d=function(t){var e=u(t);return e&&document.querySelector(e)?e:null},f=function(t){var e=u(t);return e?document.querySelector(e):null},h=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=Number.parseFloat(n),s=Number.parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0},p=function(t){t.dispatchEvent(new Event("transitionend"))},g=function(t){return(t[0]||t).nodeType},m=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)},_=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+'".')}))},v=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},b=function(){return function(){}},y=function(t){return t.offsetHeight},w=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},E=function(t){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t()},T="rtl"===document.documentElement.dir,k=(a={},l=1,{set:function(t,e,n){void 0===t.bsKey&&(t.bsKey={key:e,id:l},l++),a[t.bsKey.id]=n},get:function(t,e){if(!t||void 0===t.bsKey)return null;var n=t.bsKey;return n.key===e?a[n.id]:null},delete:function(t,e){if(void 0!==t.bsKey){var n=t.bsKey;n.key===e&&(delete a[n.id],delete t.bsKey)}}}),A=function(t,e,n){k.set(t,e,n)},L=function(t,e){return k.get(t,e)},C=function(t,e){k.delete(t,e)},D=/[^.]*(?=\..*)\.|.*/,S=/\..*/,N=/::\d+$/,O={},I=1,j={mouseenter:"mouseover",mouseleave:"mouseout"},P=new Set(["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 x(t,e){return e&&e+"::"+I++||t.uidEvent||I++}function H(t){var e=x(t);return t.uidEvent=e,O[e]=O[e]||{},O[e]}function B(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 M(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(S,""),r=j[s];return r&&(s=r),P.has(s)||(s=t),[i,o,s]}function R(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=M(e,n,i),r=s[0],a=s[1],l=s[2],c=H(t),u=c[l]||(c[l]={}),d=B(u,a,r?n:null);if(d)d.oneOff=d.oneOff&&o;else{var f=x(a,e.replace(D,"")),h=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&&Q.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&&Q.off(t,i.type,e),e.apply(t,[i])}}(t,n);h.delegationSelector=r?n:null,h.originalHandler=a,h.oneOff=o,h.uidEvent=f,u[f]=h,t.addEventListener(l,h,r)}}}function K(t,e,n,i,o){var s=B(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var Q={on:function(t,e,n,i){R(t,e,n,i,!1)},one:function(t,e,n,i){R(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=M(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=H(t),u=e.startsWith(".");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.includes(i)){var r=o[s];K(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var d=c[a]||{};Object.keys(d).forEach((function(n){var i=n.replace(N,"");if(!l||e.includes(i)){var o=d[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=w(),s=e.replace(S,""),r=e!==s,a=P.has(s),l=!0,c=!0,u=!1,d=null;return r&&o&&(i=o.Event(e,n),o(t).trigger(i),l=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),u=i.isDefaultPrevented()),a?(d=document.createEvent("HTMLEvents")).initEvent(s,l,!0):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(d,t,{get:function(){return n[t]}})})),u&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==i&&i.preventDefault(),d}},U=function(){function t(t){t&&(this._element=t,A(t,this.constructor.DATA_KEY,this))}return t.prototype.dispose=function(){C(this._element,this.constructor.DATA_KEY),this._element=null},t.getInstance=function(t){return L(t,this.DATA_KEY)},o(t,null,[{key:"VERSION",get:function(){return"5.0.0-beta1"}}]),t}(),W="alert",F=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.close=function(t){var e=t?this._getRootElement(t):this._element,n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n._getRootElement=function(t){return f(t)||t.closest(".alert")},n._triggerCloseEvent=function(t){return Q.trigger(t,"close.bs.alert")},n._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=h(t);Q.one(t,"transitionend",(function(){return e._destroyElement(t)})),m(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),Q.trigger(t,"closed.bs.alert")},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.alert");n||(n=new e(this)),"close"===t&&n[t](this)}))},e.handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.alert"}}]),e}(U);Q.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',F.handleDismiss(new F)),E((function(){var t=w();if(t){var e=t.fn[W];t.fn[W]=F.jQueryInterface,t.fn[W].Constructor=F,t.fn[W].noConflict=function(){return t.fn[W]=e,F.jQueryInterface}}}));var Y=function(t){function e(){return t.apply(this,arguments)||this}return r(e,t),e.prototype.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.button");n||(n=new e(this)),"toggle"===t&&n[t]()}))},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.button"}}]),e}(U);function z(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function X(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}Q.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',(function(t){t.preventDefault();var e=t.target.closest('[data-bs-toggle="button"]'),n=L(e,"bs.button");n||(n=new Y(e)),n.toggle()})),E((function(){var t=w();if(t){var e=t.fn.button;t.fn.button=Y.jQueryInterface,t.fn.button.Constructor=Y,t.fn.button.noConflict=function(){return t.fn.button=e,Y.jQueryInterface}}}));var q={setDataAttribute:function(t,e,n){t.setAttribute("data-bs-"+X(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-bs-"+X(e))},getDataAttributes:function(t){if(!t)return{};var e={};return Object.keys(t.dataset).filter((function(t){return t.startsWith("bs")})).forEach((function(n){var i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=z(t.dataset[n])})),e},getDataAttribute:function(t,e){return z(t.getAttribute("data-bs-"+X(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}}},V={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[]}},$="carousel",G=".bs.carousel",Z={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},J={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},tt={TOUCH:"touch",PEN:"pen"},et=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._items=null,i._interval=null,i._activeElement=null,i._isPaused=!1,i._isSliding=!1,i.touchTimeout=null,i.touchStartX=0,i.touchDeltaX=0,i._config=i._getConfig(n),i._indicatorsElement=V.findOne(".carousel-indicators",i._element),i._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}r(e,t);var n=e.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.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))},n.to=function(t){var e=this;this._activeElement=V.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Q.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])}},n.dispose=function(){t.prototype.dispose.call(this),Q.off(this._element,G),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s({},Z,t),_($,t,J),t},n._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()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&Q.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(Q.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),Q.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&tt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&tt[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))};V.find(".carousel-item img",this._element).forEach((function(t){Q.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(Q.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),Q.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(Q.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),Q.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)})),Q.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},n._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()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},n._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]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(V.findOne(".active.carousel-item",this._element));return Q.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=V.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")}},n._updateInterval=function(){var t=this._activeElement||V.findOne(".active.carousel-item",this._element);if(t){var e=Number.parseInt(t.getAttribute("data-bs-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}},n._slide=function(t,e){var n,i,o,s=this,r=V.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-start",i="carousel-item-next",o="left"):(n="carousel-item-end",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),y(l),r.classList.add(n),l.classList.add(n);var d=h(r);Q.one(r,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),r.classList.remove("active",i,n),s._isSliding=!1,setTimeout((function(){Q.trigger(s._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),m(r,d)}else r.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,Q.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},e.carouselInterface=function(t,n){var i=L(t,"bs.carousel"),o=s({},Z,q.getDataAttributes(t));"object"==typeof n&&(o=s({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new e(t,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())},e.jQueryInterface=function(t){return this.each((function(){e.carouselInterface(this,t)}))},e.dataApiClickHandler=function(t){var n=f(this);if(n&&n.classList.contains("carousel")){var i=s({},q.getDataAttributes(n),q.getDataAttributes(this)),o=this.getAttribute("data-bs-slide-to");o&&(i.interval=!1),e.carouselInterface(n,i),o&&L(n,"bs.carousel").to(o),t.preventDefault()}},o(e,null,[{key:"Default",get:function(){return Z}},{key:"DATA_KEY",get:function(){return"bs.carousel"}}]),e}(U);Q.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",et.dataApiClickHandler),Q.on(window,"load.bs.carousel.data-api",(function(){for(var t=V.find('[data-bs-ride="carousel"]'),e=0,n=t.length;e<n;e++)et.carouselInterface(t[e],L(t[e],"bs.carousel"))})),E((function(){var t=w();if(t){var e=t.fn[$];t.fn[$]=et.jQueryInterface,t.fn[$].Constructor=et,t.fn[$].noConflict=function(){return t.fn[$]=e,et.jQueryInterface}}}));var nt="collapse",it={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},st=function(t){function e(e,n){var i;(i=t.call(this,e)||this)._isTransitioning=!1,i._config=i._getConfig(n),i._triggerArray=V.find('[data-bs-toggle="collapse"][href="#'+e.id+'"],[data-bs-toggle="collapse"][data-bs-target="#'+e.id+'"]');for(var o=V.find('[data-bs-toggle="collapse"]'),s=0,r=o.length;s<r;s++){var a=o[s],l=d(a),c=V.find(l).filter((function(t){return t===e}));null!==l&&c.length&&(i._selector=l,i._triggerArray.push(a))}return i._parent=i._config.parent?i._getParent():null,i._config.parent||i._addAriaAndCollapsedClass(i._element,i._triggerArray),i._config.toggle&&i.toggle(),i}r(e,t);var n=e.prototype;return n.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},n.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=V.find(".show, .collapsing",this._parent).filter((function(e){return"string"==typeof t._config.parent?e.getAttribute("data-bs-parent")===t._config.parent:e.classList.contains("collapse")}))).length&&(n=null);var o=V.findOne(this._selector);if(n){var s=n.find((function(t){return o!==t}));if((i=s?L(s,"bs.collapse"):null)&&i._isTransitioning)return}if(!Q.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(t){o!==t&&e.collapseInterface(t,"hide"),i||A(t,"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=h(this._element);Q.one(this._element,"transitionend",(function(){t._element.classList.remove("collapsing"),t._element.classList.add("collapse","show"),t._element.style[r]="",t.setTransitioning(!1),Q.trigger(t._element,"shown.bs.collapse")})),m(this._element,l),this._element.style[r]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!Q.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(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=f(o);s&&!s.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=h(this._element);Q.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),Q.trigger(t._element,"hidden.bs.collapse")})),m(this._element,r)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){t.prototype.dispose.call(this),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=s({},it,t)).toggle=Boolean(t.toggle),_(nt,t,ot),t},n._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},n._getParent=function(){var t=this,e=this._config.parent;g(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=V.findOne(e);var n='[data-bs-toggle="collapse"][data-bs-parent="'+e+'"]';return V.find(n,e).forEach((function(e){var n=f(e);t._addAriaAndCollapsedClass(n,[e])})),e},n._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)}))}},e.collapseInterface=function(t,n){var i=L(t,"bs.collapse"),o=s({},it,q.getDataAttributes(t),"object"==typeof n&&n?n:{});if(!i&&o.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new e(t,o)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e.jQueryInterface=function(t){return this.each((function(){e.collapseInterface(this,t)}))},o(e,null,[{key:"Default",get:function(){return it}},{key:"DATA_KEY",get:function(){return"bs.collapse"}}]),e}(U);Q.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=q.getDataAttributes(this),n=d(this);V.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,st.collapseInterface(t,n)}))})),E((function(){var t=w();if(t){var e=t.fn[nt];t.fn[nt]=st.jQueryInterface,t.fn[nt].Constructor=st,t.fn[nt].noConflict=function(){return t.fn[nt]=e,st.jQueryInterface}}}));var rt="dropdown",at=new RegExp("ArrowUp|ArrowDown|Escape"),lt=T?"top-end":"top-start",ct=T?"top-start":"top-end",ut=T?"bottom-end":"bottom-start",dt=T?"bottom-start":"bottom-end",ft=T?"left-start":"right-start",ht=T?"right-start":"left-start",pt={offset:0,flip:!0,boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null},gt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},mt=function(e){function i(t,n){var i;return(i=e.call(this,t)||this)._popper=null,i._config=i._getConfig(n),i._menu=i._getMenuElement(),i._inNavbar=i._detectNavbar(),i._addEventListeners(),i}r(i,e);var a=i.prototype;return a.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var t=this._element.classList.contains("show");i.clearMenus(),t||this.show()}},a.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var e=i.getParentFromElement(this._element),o={relatedTarget:this._element};if(!Q.trigger(this._element,"show.bs.dropdown",o).defaultPrevented){if(!this._inNavbar){if(void 0===n)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var s=this._element;"parent"===this._config.reference?s=e:g(this._config.reference)&&(s=this._config.reference,void 0!==this._config.reference.jquery&&(s=this._config.reference[0])),this._popper=t.createPopper(s,this._menu,this._getPopperConfig())}var r;if("ontouchstart"in document.documentElement&&!e.closest(".navbar-nav"))(r=[]).concat.apply(r,document.body.children).forEach((function(t){return Q.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),Q.trigger(e,"shown.bs.dropdown",o)}}},a.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var t=i.getParentFromElement(this._element),e={relatedTarget:this._element};Q.trigger(t,"hide.bs.dropdown",e).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),Q.trigger(t,"hidden.bs.dropdown",e))}},a.dispose=function(){e.prototype.dispose.call(this),Q.off(this._element,".bs.dropdown"),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},a.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()},a._addEventListeners=function(){var t=this;Q.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},a._getConfig=function(t){return t=s({},this.constructor.Default,q.getDataAttributes(this._element),t),_(rt,t,this.constructor.DefaultType),t},a._getMenuElement=function(){return V.next(this._element,".dropdown-menu")[0]},a._getPlacement=function(){var t=this._element.parentNode;if(t.classList.contains("dropend"))return ft;if(t.classList.contains("dropstart"))return ht;var e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ct:lt:e?dt:ut},a._detectNavbar=function(){return null!==this._element.closest(".navbar")},a._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{altBoundary:this._config.flip,rootBoundary:this._config.boundary}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),s({},t,this._config.popperConfig)},i.dropdownInterface=function(t,e){var n=L(t,"bs.dropdown");if(n||(n=new i(t,"object"==typeof e?e:null)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}},i.jQueryInterface=function(t){return this.each((function(){i.dropdownInterface(this,t)}))},i.clearMenus=function(t){if(!t||2!==t.button&&("keyup"!==t.type||"Tab"===t.key))for(var e=V.find('[data-bs-toggle="dropdown"]'),n=0,o=e.length;n<o;n++){var s=i.getParentFromElement(e[n]),r=L(e[n],"bs.dropdown"),a={relatedTarget:e[n]};if(t&&"click"===t.type&&(a.clickEvent=t),r){var l=r._menu;if(e[n].classList.contains("show"))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&"Tab"===t.key)&&l.contains(t.target)))if(!Q.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 Q.off(t,"mouseover",null,(function(){}))}));e[n].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),l.classList.remove("show"),e[n].classList.remove("show"),Q.trigger(s,"hidden.bs.dropdown",a)}}}},i.getParentFromElement=function(t){return f(t)||t.parentNode},i.dataApiKeydownHandler=function(t){if(!(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!at.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var e=i.getParentFromElement(this),n=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-bs-toggle="dropdown"]')?this:V.prev(this,'[data-bs-toggle="dropdown"]')[0]).focus(),void i.clearMenus();if(n&&"Space"!==t.key){var o=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(v);if(o.length){var s=o.indexOf(t.target);"ArrowUp"===t.key&&s>0&&s--,"ArrowDown"===t.key&&s<o.length-1&&s++,o[s=-1===s?0:s].focus()}}else i.clearMenus()}},o(i,null,[{key:"Default",get:function(){return pt}},{key:"DefaultType",get:function(){return gt}},{key:"DATA_KEY",get:function(){return"bs.dropdown"}}]),i}(U);Q.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',mt.dataApiKeydownHandler),Q.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",mt.dataApiKeydownHandler),Q.on(document,"click.bs.dropdown.data-api",mt.clearMenus),Q.on(document,"keyup.bs.dropdown.data-api",mt.clearMenus),Q.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),mt.dropdownInterface(this,"toggle")})),Q.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()})),E((function(){var t=w();if(t){var e=t.fn[rt];t.fn[rt]=mt.jQueryInterface,t.fn[rt].Constructor=mt,t.fn[rt].noConflict=function(){return t.fn[rt]=e,mt.jQueryInterface}}}));var _t={backdrop:!0,keyboard:!0,focus:!0},vt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},bt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._dialog=V.findOne(".modal-dialog",e),i._backdrop=null,i._isShown=!1,i._isBodyOverflowing=!1,i._ignoreBackdropClick=!1,i._isTransitioning=!1,i._scrollbarWidth=0,i}r(e,t);var n=e.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains("fade")&&(this._isTransitioning=!0);var n=Q.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(),Q.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',(function(t){return e.hide(t)})),Q.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){Q.one(e._element,"mouseup.dismiss.bs.modal",(function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},n.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!Q.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(),Q.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),Q.off(this._element,"click.dismiss.bs.modal"),Q.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=h(this._element);Q.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),m(this._element,i)}else this._hideModal()}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return Q.off(t,".bs.modal")})),t.prototype.dispose.call(this),Q.off(document,"focusin.bs.modal"),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=s({},_t,t),_("modal",t,vt),t},n._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=V.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&&y(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Q.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var s=h(this._dialog);Q.one(this._dialog,"transitionend",o),m(this._dialog,s)}else o()},n._enforceFocus=function(){var t=this;Q.off(document,"focusin.bs.modal"),Q.on(document,"focusin.bs.modal",(function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()}))},n._setEscapeEvent=function(){var t=this;this._isShown?Q.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()})):Q.off(this._element,"keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?Q.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):Q.off(window,"resize.bs.modal")},n._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(),Q.trigger(t._element,"hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._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),Q.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&y(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=h(this._backdrop);Q.one(this._backdrop,"transitionend",t),m(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=h(this._backdrop);Q.one(this._backdrop,"transitionend",o),m(this._backdrop,s)}else o()}else t()},n._triggerBackdropTransition=function(){var t=this;if(!Q.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented){var e=this._element.scrollHeight>document.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=h(this._dialog);Q.off(this._element,"transitionend"),Q.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(Q.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),m(t._element,n))})),m(this._element,n),this._element.focus()}},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!T||this._isBodyOverflowing&&!t&&T)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!T||!this._isBodyOverflowing&&t&&T)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){V.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];q.setDataAttribute(e,"padding-right",n),e.style.paddingRight=Number.parseFloat(i)+t._scrollbarWidth+"px"})),V.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];q.setDataAttribute(e,"margin-right",n),e.style.marginRight=Number.parseFloat(i)-t._scrollbarWidth+"px"}));var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];q.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=Number.parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},n._resetScrollbar=function(){V.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=q.getDataAttribute(t,"padding-right");void 0!==e&&(q.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),V.find(".sticky-top").forEach((function(t){var e=q.getDataAttribute(t,"margin-right");void 0!==e&&(q.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=q.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(q.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._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},e.jQueryInterface=function(t,n){return this.each((function(){var i=L(this,"bs.modal"),o=s({},_t,q.getDataAttributes(this),"object"==typeof t&&t?t:{});if(i||(i=new e(this,o)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](n)}}))},o(e,null,[{key:"Default",get:function(){return _t}},{key:"DATA_KEY",get:function(){return"bs.modal"}}]),e}(U);Q.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){var e=this,n=f(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),Q.one(n,"show.bs.modal",(function(t){t.defaultPrevented||Q.one(n,"hidden.bs.modal",(function(){v(e)&&e.focus()}))}));var i=L(n,"bs.modal");if(!i){var o=s({},q.getDataAttributes(n),q.getDataAttributes(this));i=new bt(n,o)}i.show(this)})),E((function(){var t=w();if(t){var e=t.fn.modal;t.fn.modal=bt.jQueryInterface,t.fn.modal.Constructor=bt,t.fn.modal.noConflict=function(){return t.fn.modal=e,bt.jQueryInterface}}}));var yt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),wt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Et=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Tt={"*":["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 kt(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(!s.includes(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(e.includes(n))return!yt.has(n)||Boolean(t.nodeValue.match(wt)||t.nodeValue.match(Et));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 At="tooltip",Lt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Ct=new Set(["sanitize","allowList","sanitizeFn"]),Dt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",container:"(string|element|boolean)",fallbackPlacements:"(null|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object)"},St={AUTO:"auto",TOP:"top",RIGHT:T?"left":"right",BOTTOM:"bottom",LEFT:T?"right":"left"},Nt={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",container:!1,fallbackPlacements:null,boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:Tt,popperConfig:null},Ot={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"},It=function(e){function i(t,i){var o;if(void 0===n)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(o=e.call(this,t)||this)._isEnabled=!0,o._timeout=0,o._hoverState="",o._activeTrigger={},o._popper=null,o.config=o._getConfig(i),o.tip=null,o._setListeners(),o}r(i,e);var a=i.prototype;return a.enable=function(){this._isEnabled=!0},a.disable=function(){this._isEnabled=!1},a.toggleEnabled=function(){this._isEnabled=!this._isEnabled},a.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()),A(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)}},a.dispose=function(){clearTimeout(this._timeout),Q.off(this._element,this.constructor.EVENT_KEY),Q.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.config=null,this.tip=null,e.prototype.dispose.call(this)},a.show=function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=Q.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(n.defaultPrevented||!o)return;var s=this.getTipElement(),r=c(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 u=this._getContainer();A(s,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(s),Q.trigger(this._element,this.constructor.Event.INSERTED),this._popper=t.createPopper(this._element,s,this._getPopperConfig(l)),s.classList.add("show");var d,f,p="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;if(p)(d=s.classList).add.apply(d,p.split(" "));if("ontouchstart"in document.documentElement)(f=[]).concat.apply(f,document.body.children).forEach((function(t){Q.on(t,"mouseover",(function(){}))}));var g=function(){var t=e._hoverState;e._hoverState=null,Q.trigger(e._element,e.constructor.Event.SHOWN),"out"===t&&e._leave(null,e)};if(this.tip.classList.contains("fade")){var _=h(this.tip);Q.one(this.tip,"transitionend",g),m(this.tip,_)}else g()}},a.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"),Q.trigger(t._element,t.constructor.Event.HIDDEN),t._popper&&(t._popper.destroy(),t._popper=null)};if(!Q.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 Q.off(t,"mouseover",b)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=h(e);Q.one(e,"transitionend",n),m(e,o)}else n();this._hoverState=""}}},a.update=function(){null!==this._popper&&this._popper.update()},a.isWithContent=function(){return Boolean(this.getTitle())},a.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},a.setContent=function(){var t=this.getTipElement();this.setElementContent(V.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},a.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=kt(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},a.getTitle=function(){var t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t},a.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},a._getPopperConfig=function(t){var e=this,n={name:"flip",options:{altBoundary:!0}};return this.config.fallbackPlacements&&(n.options.fallbackPlacements=this.config.fallbackPlacements),s({},{placement:t,modifiers:[n,{name:"preventOverflow",options:{rootBoundary:this.config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(t){return e._handlePopperPlacementChange(t)}}],onFirstUpdate:function(t){t.options.placement!==t.placement&&e._handlePopperPlacementChange(t)}},this.config.popperConfig)},a._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))},a._getContainer=function(){return!1===this.config.container?document.body:g(this.config.container)?this.config.container:V.findOne(this.config.container)},a._getAttachment=function(t){return St[t.toUpperCase()]},a._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)Q.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;Q.on(t._element,n,t.config.selector,(function(e){return t._enter(e)})),Q.on(t._element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t._element&&t.hide()},Q.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},a._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},a._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),A(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())},a._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),A(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())},a._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},a._getConfig=function(t){var e=q.getDataAttributes(this._element);return Object.keys(e).forEach((function(t){Ct.has(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()),_(At,t,this.constructor.DefaultType),t.sanitize&&(t.template=kt(t.template,t.allowList,t.sanitizeFn)),t},a._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},a._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)}))},a._handlePopperPlacementChange=function(t){var e=t.state;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))},i.jQueryInterface=function(t){return this.each((function(){var e=L(this,"bs.tooltip"),n="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o(i,null,[{key:"Default",get:function(){return Nt}},{key:"NAME",get:function(){return At}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ot}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Dt}}]),i}(U);E((function(){var t=w();if(t){var e=t.fn[At];t.fn[At]=It.jQueryInterface,t.fn[At].Constructor=It,t.fn[At].noConflict=function(){return t.fn[At]=e,It.jQueryInterface}}}));var jt="popover",Pt=new RegExp("(^|\\s)bs-popover\\S+","g"),xt=s({},It.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>'}),Ht=s({},It.DefaultType,{content:"(string|element|function)"}),Bt={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"},Mt=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.setContent=function(){var t=this.getTipElement();this.setElementContent(V.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(V.findOne(".popover-body",t),e),t.classList.remove("fade","show")},n._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))},n._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},n._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.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i),A(this,"bs.popover",n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return xt}},{key:"NAME",get:function(){return jt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Bt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Ht}}]),e}(It);E((function(){var t=w();if(t){var e=t.fn[jt];t.fn[jt]=Mt.jQueryInterface,t.fn[jt].Constructor=Mt,t.fn[jt].noConflict=function(){return t.fn[jt]=e,Mt.jQueryInterface}}}));var Rt="scrollspy",Kt={offset:10,method:"auto",target:""},Qt={offset:"number",method:"string",target:"(string|element)"},Ut=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._scrollElement="BODY"===e.tagName?window:e,i._config=i._getConfig(n),i._selector=i._config.target+" .nav-link, "+i._config.target+" .list-group-item, "+i._config.target+" .dropdown-item",i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,Q.on(i._scrollElement,"scroll.bs.scrollspy",(function(t){return i._process(t)})),i.refresh(),i._process(),i}r(e,t);var n=e.prototype;return n.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(),V.find(this._selector).map((function(t){var e=d(t),o=e?V.findOne(e):null;if(o){var s=o.getBoundingClientRect();if(s.width||s.height)return[q[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])}))},n.dispose=function(){t.prototype.dispose.call(this),Q.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},Kt,"object"==typeof t&&t?t:{})).target&&g(t.target)){var e=t.target.id;e||(e=c(Rt),t.target.id=e),t.target="#"+e}return _(Rt,t,Qt),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._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])}}},n._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-bs-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=V.findOne(e.join(","));n.classList.contains("dropdown-item")?(V.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),V.parents(n,".nav, .list-group").forEach((function(t){V.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),V.prev(t,".nav-item").forEach((function(t){V.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),Q.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){V.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.scrollspy");if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return Kt}},{key:"DATA_KEY",get:function(){return"bs.scrollspy"}}]),e}(U);Q.on(window,"load.bs.scrollspy.data-api",(function(){V.find('[data-bs-spy="scroll"]').forEach((function(t){return new Ut(t,q.getDataAttributes(t))}))})),E((function(){var t=w();if(t){var e=t.fn[Rt];t.fn[Rt]=Ut.jQueryInterface,t.fn[Rt].Constructor=Ut,t.fn[Rt].noConflict=function(){return t.fn[Rt]=e,Ut.jQueryInterface}}}));var Wt=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.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=f(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=V.find(o,i))[e.length-1]}var s=null;if(e&&(s=Q.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(Q.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){Q.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),Q.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,".active"):V.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=h(o);o.classList.remove("show"),Q.one(o,"transitionend",r),m(o,a)}else r()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=V.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),y(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&V.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.tab")||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.tab"}}]),e}(U);Q.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new Wt(this)).show()})),E((function(){var t=w();if(t){var e=t.fn.tab;t.fn.tab=Wt.jQueryInterface,t.fn.tab.Constructor=Wt,t.fn.tab.noConflict=function(){return t.fn.tab=e,Wt.jQueryInterface}}}));var Ft={animation:"boolean",autohide:"boolean",delay:"number"},Yt={animation:!0,autohide:!0,delay:5e3},zt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}r(e,t);var n=e.prototype;return n.show=function(){var t=this;if(!Q.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"),Q.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),y(this._element),this._element.classList.add("showing"),this._config.animation){var n=h(this._element);Q.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains("show")&&!Q.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),Q.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=h(this._element);Q.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),Q.off(this._element,"click.dismiss.bs.toast"),t.prototype.dispose.call(this),this._config=null},n._getConfig=function(t){return t=s({},Yt,q.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),_("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;Q.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',(function(){return t.hide()}))},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}}))},o(e,null,[{key:"DefaultType",get:function(){return Ft}},{key:"Default",get:function(){return Yt}},{key:"DATA_KEY",get:function(){return"bs.toast"}}]),e}(U);return E((function(){var t=w();if(t){var e=t.fn.toast;t.fn.toast=zt.jQueryInterface,t.fn.toast.Constructor=zt,t.fn.toast.noConflict=function(){return t.fn.toast=e,zt.jQueryInterface}}})),{Alert:F,Button:Y,Carousel:et,Collapse:st,Dropdown:mt,Modal:bt,Popover:Mt,ScrollSpy:Ut,Tab:Wt,Toast:zt,Tooltip:It}}));
diff --git a/assets/javascripts/bootstrap/alert.js b/assets/javascripts/bootstrap/alert.js
index 6046c71..7ce77e1 100644
--- a/assets/javascripts/bootstrap/alert.js
+++ b/assets/javascripts/bootstrap/alert.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap alert.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap alert.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler));
}(this, (function (Data, EventHandler) { 'use strict';
@@ -16,7 +16,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -24,7 +24,7 @@
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -49,8 +49,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -59,7 +59,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -88,7 +88,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -103,6 +103,8 @@
}
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
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; }
@@ -112,12 +114,57 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ function _defineProperties$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'alert';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
- var SELECTOR_DISMISS = '[data-dismiss="alert"]';
+ var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
var EVENT_CLOSE = "close" + EVENT_KEY;
var EVENT_CLOSED = "closed" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
@@ -130,15 +177,12 @@
* ------------------------------------------------------------------------
*/
- var Alert = /*#__PURE__*/function () {
- function Alert(element) {
- this._element = element;
-
- if (this._element) {
- Data__default['default'].setData(element, DATA_KEY, this);
- }
- } // Getters
+ var Alert = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Alert, _BaseComponent);
+ function Alert() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
var _proto = Alert.prototype;
@@ -153,11 +197,6 @@
}
this._removeElement(rootElement);
- };
-
- _proto.dispose = function dispose() {
- Data__default['default'].removeData(this._element, DATA_KEY);
- this._element = null;
} // Private
;
@@ -220,19 +259,16 @@
};
};
- Alert.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Alert, null, [{
- key: "VERSION",
+ _createClass$1(Alert, null, [{
+ key: "DATA_KEY",
+ // Getters
get: function get() {
- return VERSION;
+ return DATA_KEY;
}
}]);
return Alert;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/button.js b/assets/javascripts/bootstrap/button.js
index ac5b22e..b66105b 100644
--- a/assets/javascripts/bootstrap/button.js
+++ b/assets/javascripts/bootstrap/button.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap button.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap button.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler));
}(this, (function (Data, EventHandler) { 'use strict';
@@ -16,7 +16,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -25,7 +25,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -40,6 +40,8 @@
}
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
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; }
@@ -49,13 +51,58 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ function _defineProperties$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'button';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var CLASS_NAME_ACTIVE = 'active';
- var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
/**
* ------------------------------------------------------------------------
@@ -63,12 +110,12 @@
* ------------------------------------------------------------------------
*/
- var Button = /*#__PURE__*/function () {
- function Button(element) {
- this._element = element;
- Data__default['default'].setData(element, DATA_KEY, this);
- } // Getters
+ var Button = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Button, _BaseComponent);
+ function Button() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
var _proto = Button.prototype;
@@ -76,11 +123,6 @@
_proto.toggle = function toggle() {
// Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
- };
-
- _proto.dispose = function dispose() {
- Data__default['default'].removeData(this._element, DATA_KEY);
- this._element = null;
} // Static
;
@@ -98,19 +140,16 @@
});
};
- Button.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Button, null, [{
- key: "VERSION",
+ _createClass$1(Button, null, [{
+ key: "DATA_KEY",
+ // Getters
get: function get() {
- return VERSION;
+ return DATA_KEY;
}
}]);
return Button;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/carousel.js b/assets/javascripts/bootstrap/carousel.js
index ea9269b..e8f84c6 100644
--- a/assets/javascripts/bootstrap/carousel.js
+++ b/assets/javascripts/bootstrap/carousel.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap carousel.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap carousel.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@@ -18,7 +18,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -34,7 +34,7 @@
};
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -132,7 +132,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -147,7 +147,7 @@
}
};
- 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); }
+ var isRTL = document.documentElement.dir === 'rtl';
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); } }
@@ -158,8 +158,55 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'carousel';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -204,8 +251,8 @@
var CLASS_NAME_CAROUSEL = 'carousel';
var CLASS_NAME_ACTIVE = 'active';
var CLASS_NAME_SLIDE = 'slide';
- var CLASS_NAME_RIGHT = 'carousel-item-right';
- var CLASS_NAME_LEFT = 'carousel-item-left';
+ var CLASS_NAME_END = 'carousel-item-end';
+ var CLASS_NAME_START = 'carousel-item-start';
var CLASS_NAME_NEXT = 'carousel-item-next';
var CLASS_NAME_PREV = 'carousel-item-prev';
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
@@ -215,8 +262,8 @@
var SELECTOR_ITEM_IMG = '.carousel-item img';
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
var SELECTOR_INDICATORS = '.carousel-indicators';
- var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
- var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
+ var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
var PointerType = {
TOUCH: 'touch',
PEN: 'pen'
@@ -227,25 +274,29 @@
* ------------------------------------------------------------------------
*/
- var Carousel = /*#__PURE__*/function () {
- function Carousel(element, config) {
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this.touchTimeout = null;
- this.touchStartX = 0;
- this.touchDeltaX = 0;
- this._config = this._getConfig(config);
- this._element = element;
- this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, this._element);
- this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent);
+ var Carousel = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Carousel, _BaseComponent);
- this._addEventListeners();
-
- Data__default['default'].setData(element, DATA_KEY, this);
+ function Carousel(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._items = null;
+ _this._interval = null;
+ _this._activeElement = null;
+ _this._isPaused = false;
+ _this._isSliding = false;
+ _this.touchTimeout = null;
+ _this.touchStartX = 0;
+ _this.touchDeltaX = 0;
+ _this._config = _this._getConfig(config);
+ _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);
+ _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ _this._pointerEvent = Boolean(window.PointerEvent);
+
+ _this._addEventListeners();
+
+ return _this;
} // Getters
@@ -304,7 +355,7 @@
};
_proto.to = function to(index) {
- var _this = this;
+ var _this2 = this;
this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
@@ -316,7 +367,7 @@
if (this._isSliding) {
EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
- return _this.to(index);
+ return _this2.to(index);
});
return;
}
@@ -333,11 +384,11 @@
};
_proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
EventHandler__default['default'].off(this._element, EVENT_KEY);
- Data__default['default'].removeData(this._element, DATA_KEY);
this._items = null;
this._config = null;
- this._element = null;
this._interval = null;
this._isPaused = null;
this._isSliding = null;
@@ -373,20 +424,20 @@
};
_proto._addEventListeners = function _addEventListeners() {
- var _this2 = this;
+ var _this3 = this;
if (this._config.keyboard) {
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
- return _this2._keydown(event);
+ return _this3._keydown(event);
});
}
if (this._config.pause === 'hover') {
EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
- return _this2.pause(event);
+ return _this3.pause(event);
});
EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
- return _this2.cycle(event);
+ return _this3.cycle(event);
});
}
@@ -396,33 +447,33 @@
};
_proto._addTouchEventListeners = function _addTouchEventListeners() {
- var _this3 = this;
+ var _this4 = this;
var start = function start(event) {
- if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
- _this3.touchStartX = event.clientX;
- } else if (!_this3._pointerEvent) {
- _this3.touchStartX = event.touches[0].clientX;
+ if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
+ _this4.touchStartX = event.clientX;
+ } else if (!_this4._pointerEvent) {
+ _this4.touchStartX = event.touches[0].clientX;
}
};
var move = function move(event) {
// ensure swiping with one touch and not pinching
if (event.touches && event.touches.length > 1) {
- _this3.touchDeltaX = 0;
+ _this4.touchDeltaX = 0;
} else {
- _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
+ _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
}
};
var end = function end(event) {
- if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
- _this3.touchDeltaX = event.clientX - _this3.touchStartX;
+ if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
+ _this4.touchDeltaX = event.clientX - _this4.touchStartX;
}
- _this3._handleSwipe();
+ _this4._handleSwipe();
- if (_this3._config.pause === 'hover') {
+ if (_this4._config.pause === 'hover') {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it;
@@ -430,15 +481,15 @@
// (as if it's the second time we tap on it, mouseenter compat event
// is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling
- _this3.pause();
+ _this4.pause();
- if (_this3.touchTimeout) {
- clearTimeout(_this3.touchTimeout);
+ if (_this4.touchTimeout) {
+ clearTimeout(_this4.touchTimeout);
}
- _this3.touchTimeout = setTimeout(function (event) {
- return _this3.cycle(event);
- }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
+ _this4.touchTimeout = setTimeout(function (event) {
+ return _this4.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
}
};
@@ -547,7 +598,7 @@
return;
}
- var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
+ var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
if (elementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
@@ -558,7 +609,7 @@
};
_proto._slide = function _slide(direction, element) {
- var _this4 = this;
+ var _this5 = this;
var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
@@ -574,11 +625,11 @@
var eventDirectionName;
if (direction === DIRECTION_NEXT) {
- directionalClassName = CLASS_NAME_LEFT;
+ directionalClassName = CLASS_NAME_START;
orderClassName = CLASS_NAME_NEXT;
eventDirectionName = DIRECTION_LEFT;
} else {
- directionalClassName = CLASS_NAME_RIGHT;
+ directionalClassName = CLASS_NAME_END;
orderClassName = CLASS_NAME_PREV;
eventDirectionName = DIRECTION_RIGHT;
}
@@ -619,9 +670,9 @@
nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE);
activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
- _this4._isSliding = false;
+ _this5._isSliding = false;
setTimeout(function () {
- EventHandler__default['default'].trigger(_this4._element, EVENT_SLID, {
+ EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
relatedTarget: nextElement,
direction: eventDirectionName,
from: activeElementIndex,
@@ -692,7 +743,7 @@
var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
- var slideIndex = this.getAttribute('data-slide-to');
+ var slideIndex = this.getAttribute('data-bs-slide-to');
if (slideIndex) {
config.interval = false;
@@ -707,24 +758,20 @@
event.preventDefault();
};
- Carousel.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Carousel, null, [{
- key: "VERSION",
+ _createClass$1(Carousel, null, [{
+ key: "Default",
get: function get() {
- return VERSION;
+ return Default;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default;
+ return DATA_KEY;
}
}]);
return Carousel;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/collapse.js b/assets/javascripts/bootstrap/collapse.js
index 833ca34..67efbd9 100644
--- a/assets/javascripts/bootstrap/collapse.js
+++ b/assets/javascripts/bootstrap/collapse.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap collapse.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap collapse.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@@ -18,7 +18,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -34,7 +34,7 @@
};
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -69,8 +69,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -79,7 +79,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -128,7 +128,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -143,7 +143,7 @@
}
};
- 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); }
+ var isRTL = document.documentElement.dir === 'rtl';
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); } }
@@ -154,8 +154,55 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'collapse';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -179,19 +226,23 @@
var WIDTH = 'width';
var HEIGHT = 'height';
var SELECTOR_ACTIVES = '.show, .collapsing';
- var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
- var Collapse = /*#__PURE__*/function () {
+ var Collapse = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Collapse, _BaseComponent);
+
function Collapse(element, config) {
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-target=\"#" + element.id + "\"]"));
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._isTransitioning = false;
+ _this._config = _this._getConfig(config);
+ _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]"));
var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
for (var i = 0, len = toggleList.length; i < len; i++) {
@@ -202,23 +253,23 @@
});
if (selector !== null && filterElement.length) {
- this._selector = selector;
+ _this._selector = selector;
- this._triggerArray.push(elem);
+ _this._triggerArray.push(elem);
}
}
- this._parent = this._config.parent ? this._getParent() : null;
+ _this._parent = _this._config.parent ? _this._getParent() : null;
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+ if (!_this._config.parent) {
+ _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
}
- if (this._config.toggle) {
- this.toggle();
+ if (_this._config.toggle) {
+ _this.toggle();
}
- Data__default['default'].setData(element, DATA_KEY, this);
+ return _this;
} // Getters
@@ -234,7 +285,7 @@
};
_proto.show = function show() {
- var _this = this;
+ var _this2 = this;
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@@ -245,8 +296,8 @@
if (this._parent) {
actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
- if (typeof _this._config.parent === 'string') {
- return elem.getAttribute('data-parent') === _this._config.parent;
+ if (typeof _this2._config.parent === 'string') {
+ return elem.getAttribute('data-bs-parent') === _this2._config.parent;
}
return elem.classList.contains(CLASS_NAME_COLLAPSE);
@@ -260,10 +311,10 @@
var container = SelectorEngine__default['default'].findOne(this._selector);
if (actives) {
- var tempActiveData = actives.filter(function (elem) {
+ var tempActiveData = actives.find(function (elem) {
return container !== elem;
});
- activesData = tempActiveData[0] ? Data__default['default'].getData(tempActiveData[0], DATA_KEY) : null;
+ activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;
if (activesData && activesData._isTransitioning) {
return;
@@ -306,15 +357,15 @@
this.setTransitioning(true);
var complete = function complete() {
- _this._element.classList.remove(CLASS_NAME_COLLAPSING);
+ _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
+ _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
- _this._element.style[dimension] = '';
+ _this2._element.style[dimension] = '';
- _this.setTransitioning(false);
+ _this2.setTransitioning(false);
- EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN);
+ EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
};
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -326,7 +377,7 @@
};
_proto.hide = function hide() {
- var _this2 = this;
+ var _this3 = this;
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@@ -364,13 +415,13 @@
this.setTransitioning(true);
var complete = function complete() {
- _this2.setTransitioning(false);
+ _this3.setTransitioning(false);
- _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
+ _this3._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this2._element.classList.add(CLASS_NAME_COLLAPSE);
+ _this3._element.classList.add(CLASS_NAME_COLLAPSE);
- EventHandler__default['default'].trigger(_this2._element, EVENT_HIDDEN);
+ EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
};
this._element.style[dimension] = '';
@@ -384,10 +435,10 @@
};
_proto.dispose = function dispose() {
- Data__default['default'].removeData(this._element, DATA_KEY);
+ _BaseComponent.prototype.dispose.call(this);
+
this._config = null;
this._parent = null;
- this._element = null;
this._triggerArray = null;
this._isTransitioning = null;
} // Private
@@ -406,7 +457,7 @@
};
_proto._getParent = function _getParent() {
- var _this3 = this;
+ var _this4 = this;
var parent = this._config.parent;
@@ -419,11 +470,11 @@
parent = SelectorEngine__default['default'].findOne(parent);
}
- var selector = SELECTOR_DATA_TOGGLE + "[data-parent=\"" + parent + "\"]";
+ var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]";
SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
var selected = getElementFromSelector(element);
- _this3._addAriaAndCollapsedClass(selected, [element]);
+ _this4._addAriaAndCollapsedClass(selected, [element]);
});
return parent;
};
@@ -474,24 +525,20 @@
});
};
- Collapse.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Collapse, null, [{
- key: "VERSION",
+ _createClass$1(Collapse, null, [{
+ key: "Default",
get: function get() {
- return VERSION;
+ return Default;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default;
+ return DATA_KEY;
}
}]);
return Collapse;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/dom/data.js b/assets/javascripts/bootstrap/dom/data.js
index 61712f5..c9f98bf 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-alpha3 (https://getbootstrap.com/)
+ * Bootstrap data.js v5.0.0-beta1 (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-alpha3): dom/data.js
+ * Bootstrap (v5.0.0-beta1): 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 0ae06b9..13732d5 100644
--- a/assets/javascripts/bootstrap/dom/event-handler.js
+++ b/assets/javascripts/bootstrap/dom/event-handler.js
@@ -1,5 +1,5 @@
/*!
- * Bootstrap event-handler.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap event-handler.js v5.0.0-beta1 (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-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -20,16 +20,18 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
return null;
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): dom/event-handler.js
+ * Bootstrap (v5.0.0-beta1): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -49,7 +51,7 @@
mouseenter: 'mouseover',
mouseleave: 'mouseout'
};
- var nativeEvents = ['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'];
+ var nativeEvents = new Set(['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']);
/**
* ------------------------------------------------------------------------
* Private methods
@@ -131,7 +133,7 @@
typeEvent = custom;
}
- var isNative = nativeEvents.indexOf(typeEvent) > -1;
+ var isNative = nativeEvents.has(typeEvent);
if (!isNative) {
typeEvent = originalTypeEvent;
@@ -188,7 +190,7 @@
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
var storeElementEvent = events[typeEvent] || {};
Object.keys(storeElementEvent).forEach(function (handlerKey) {
- if (handlerKey.indexOf(namespace) > -1) {
+ if (handlerKey.includes(namespace)) {
var event = storeElementEvent[handlerKey];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}
@@ -214,7 +216,7 @@
var inNamespace = typeEvent !== originalTypeEvent;
var events = getEvent(element);
- var isNamespace = originalTypeEvent.charAt(0) === '.';
+ var isNamespace = originalTypeEvent.startsWith('.');
if (typeof originalHandler !== 'undefined') {
// Simplest case: handler is passed, remove that listener ONLY.
@@ -236,7 +238,7 @@
Object.keys(storeElementEvent).forEach(function (keyHandlers) {
var handlerKey = keyHandlers.replace(stripUidRegex, '');
- if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
var event = storeElementEvent[keyHandlers];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}
@@ -250,7 +252,7 @@
var $ = getjQuery();
var typeEvent = event.replace(stripNameRegex, '');
var inNamespace = event !== typeEvent;
- var isNative = nativeEvents.indexOf(typeEvent) > -1;
+ var isNative = nativeEvents.has(typeEvent);
var jQueryEvent;
var bubbles = true;
var nativeDispatch = true;
diff --git a/assets/javascripts/bootstrap/dom/manipulator.js b/assets/javascripts/bootstrap/dom/manipulator.js
index 2deda26..f0a7132 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-alpha3 (https://getbootstrap.com/)
+ * Bootstrap manipulator.js v5.0.0-beta1 (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)
*/
@@ -9,11 +9,9 @@
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());
}(this, (function () { 'use strict';
- 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); }
-
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): dom/manipulator.js
+ * Bootstrap (v5.0.0-beta1): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -45,25 +43,28 @@
var Manipulator = {
setDataAttribute: function setDataAttribute(element, key, value) {
- element.setAttribute("data-" + normalizeDataKey(key), value);
+ element.setAttribute("data-bs-" + normalizeDataKey(key), value);
},
removeDataAttribute: function removeDataAttribute(element, key) {
- element.removeAttribute("data-" + normalizeDataKey(key));
+ element.removeAttribute("data-bs-" + normalizeDataKey(key));
},
getDataAttributes: function getDataAttributes(element) {
if (!element) {
return {};
}
- var attributes = _extends({}, element.dataset);
-
- Object.keys(attributes).forEach(function (key) {
- attributes[key] = normalizeData(attributes[key]);
+ var attributes = {};
+ Object.keys(element.dataset).filter(function (key) {
+ return key.startsWith('bs');
+ }).forEach(function (key) {
+ var pureKey = key.replace(/^bs/, '');
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
+ attributes[pureKey] = normalizeData(element.dataset[key]);
});
return attributes;
},
getDataAttribute: function getDataAttribute(element, key) {
- return normalizeData(element.getAttribute("data-" + normalizeDataKey(key)));
+ return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key)));
},
offset: function offset(element) {
var rect = element.getBoundingClientRect();
diff --git a/assets/javascripts/bootstrap/dom/selector-engine.js b/assets/javascripts/bootstrap/dom/selector-engine.js
index ade9bd6..ffc7f44 100644
--- a/assets/javascripts/bootstrap/dom/selector-engine.js
+++ b/assets/javascripts/bootstrap/dom/selector-engine.js
@@ -1,5 +1,5 @@
/*!
- * Bootstrap selector-engine.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap selector-engine.js v5.0.0-beta1 (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-alpha3): dom/selector-engine.js
+ * Bootstrap (v5.0.0-beta1): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
diff --git a/assets/javascripts/bootstrap/dropdown.js b/assets/javascripts/bootstrap/dropdown.js
index 375e23f..a1496cc 100644
--- a/assets/javascripts/bootstrap/dropdown.js
+++ b/assets/javascripts/bootstrap/dropdown.js
@@ -1,25 +1,45 @@
/*!
- * Bootstrap dropdown.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap dropdown.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('popper.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', 'popper.js', './dom/selector-engine.js'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine));
-}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
+}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
+
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
- var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -33,7 +53,7 @@
};
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -86,7 +106,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -101,7 +121,7 @@
}
};
- 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); }
+ var isRTL = document.documentElement.dir === 'rtl';
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); } }
@@ -112,8 +132,55 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'dropdown';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -136,26 +203,24 @@
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_SHOW = 'show';
var CLASS_NAME_DROPUP = 'dropup';
- var CLASS_NAME_DROPRIGHT = 'dropright';
- var CLASS_NAME_DROPLEFT = 'dropleft';
- var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
+ var CLASS_NAME_DROPEND = 'dropend';
+ var CLASS_NAME_DROPSTART = 'dropstart';
var CLASS_NAME_NAVBAR = 'navbar';
- var CLASS_NAME_POSITION_STATIC = 'position-static';
- var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]';
var SELECTOR_FORM_CHILD = '.dropdown form';
var SELECTOR_MENU = '.dropdown-menu';
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
- var PLACEMENT_TOP = 'top-start';
- var PLACEMENT_TOPEND = 'top-end';
- var PLACEMENT_BOTTOM = 'bottom-start';
- var PLACEMENT_BOTTOMEND = 'bottom-end';
- var PLACEMENT_RIGHT = 'right-start';
- var PLACEMENT_LEFT = 'left-start';
+ var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';
+ var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';
+ var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';
+ var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';
+ var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';
+ var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';
var Default = {
offset: 0,
flip: true,
- boundary: 'scrollParent',
+ boundary: 'clippingParents',
reference: 'toggle',
display: 'dynamic',
popperConfig: null
@@ -174,17 +239,21 @@
* ------------------------------------------------------------------------
*/
- var Dropdown = /*#__PURE__*/function () {
+ var Dropdown = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Dropdown, _BaseComponent);
+
function Dropdown(element, config) {
- this._element = element;
- this._popper = null;
- this._config = this._getConfig(config);
- this._menu = this._getMenuElement();
- this._inNavbar = this._detectNavbar();
+ var _this;
- this._addEventListeners();
+ _this = _BaseComponent.call(this, element) || this;
+ _this._popper = null;
+ _this._config = _this._getConfig(config);
+ _this._menu = _this._getMenuElement();
+ _this._inNavbar = _this._detectNavbar();
- Data__default['default'].setData(element, DATA_KEY, this);
+ _this._addEventListeners();
+
+ return _this;
} // Getters
@@ -220,12 +289,12 @@
if (showEvent.defaultPrevented) {
return;
- } // Disable totally Popper.js for Dropdown in Navbar
+ } // Totally disable Popper for Dropdowns in Navbar
if (!this._inNavbar) {
- if (typeof Popper__default['default'] === 'undefined') {
- throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)');
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
}
var referenceElement = this._element;
@@ -238,16 +307,9 @@
if (typeof this._config.reference.jquery !== 'undefined') {
referenceElement = this._config.reference[0];
}
- } // If boundary is not `scrollParent`, then set position to `static`
- // to allow the menu to "escape" the scroll parent's boundaries
- // https://github.com/twbs/bootstrap/issues/24251
-
-
- if (this._config.boundary !== 'scrollParent') {
- parent.classList.add(CLASS_NAME_POSITION_STATIC);
}
- this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());
+ this._popper = Popper.createPopper(referenceElement, this._menu, this._getPopperConfig());
} // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
@@ -300,9 +362,9 @@
};
_proto.dispose = function dispose() {
- Data__default['default'].removeData(this._element, DATA_KEY);
+ _BaseComponent.prototype.dispose.call(this);
+
EventHandler__default['default'].off(this._element, EVENT_KEY);
- this._element = null;
this._menu = null;
if (this._popper) {
@@ -316,19 +378,19 @@
this._inNavbar = this._detectNavbar();
if (this._popper) {
- this._popper.scheduleUpdate();
+ this._popper.update();
}
} // Private
;
_proto._addEventListeners = function _addEventListeners() {
- var _this = this;
+ var _this2 = this;
EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
- _this.toggle();
+ _this2.toggle();
});
};
@@ -344,60 +406,46 @@
_proto._getPlacement = function _getPlacement() {
var parentDropdown = this._element.parentNode;
- var placement = PLACEMENT_BOTTOM; // Handle dropup
- if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
- 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)) {
- placement = PLACEMENT_LEFT;
- } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
- placement = PLACEMENT_BOTTOMEND;
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
+ return PLACEMENT_RIGHT;
}
- return placement;
- };
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
+ return PLACEMENT_LEFT;
+ } // We need to trim the value because custom properties can also include spaces
- _proto._detectNavbar = function _detectNavbar() {
- return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
- };
- _proto._getOffset = function _getOffset() {
- var _this2 = this;
-
- var offset = {};
+ var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
- if (typeof this._config.offset === 'function') {
- offset.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
- return data;
- };
- } else {
- offset.offset = this._config.offset;
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
+ return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
}
- return offset;
+ return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
+ };
+
+ _proto._detectNavbar = function _detectNavbar() {
+ return this._element.closest("." + CLASS_NAME_NAVBAR) !== null;
};
_proto._getPopperConfig = function _getPopperConfig() {
var popperConfig = {
placement: this._getPlacement(),
- modifiers: {
- offset: this._getOffset(),
- flip: {
- enabled: this._config.flip
- },
- preventOverflow: {
- boundariesElement: this._config.boundary
+ modifiers: [{
+ name: 'preventOverflow',
+ options: {
+ altBoundary: this._config.flip,
+ rootBoundary: this._config.boundary
}
- }
- }; // Disable Popper.js if we have a static display
+ }]
+ }; // Disable Popper if we have a static display
if (this._config.display === 'static') {
- popperConfig.modifiers.applyStyle = {
+ popperConfig.modifiers = [{
+ name: 'applyStyles',
enabled: false
- };
+ }];
}
return _extends({}, popperConfig, this._config.popperConfig);
@@ -532,15 +580,14 @@
return;
}
- var index = items.indexOf(event.target);
+ var index = items.indexOf(event.target); // Up
if (event.key === ARROW_UP_KEY && index > 0) {
- // Up
index--;
- }
+ } // Down
+
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
- // Down
index++;
} // index is -1 if the first keydown is an ArrowUp
@@ -549,16 +596,7 @@
items[index].focus();
};
- Dropdown.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Dropdown, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
+ _createClass$1(Dropdown, null, [{
key: "Default",
get: function get() {
return Default;
@@ -568,10 +606,15 @@
get: function get() {
return DefaultType;
}
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
}]);
return Dropdown;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/modal.js b/assets/javascripts/bootstrap/modal.js
index 4f631a5..2cd83e9 100644
--- a/assets/javascripts/bootstrap/modal.js
+++ b/assets/javascripts/bootstrap/modal.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap modal.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap modal.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@@ -18,7 +18,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -34,7 +34,7 @@
};
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -132,7 +132,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -147,7 +147,7 @@
}
};
- 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); }
+ var isRTL = document.documentElement.dir === 'rtl';
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); } }
@@ -158,8 +158,55 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'modal';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -167,14 +214,12 @@
var Default = {
backdrop: true,
keyboard: true,
- focus: true,
- show: true
+ focus: true
};
var DefaultType = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
+ focus: 'boolean'
};
var EVENT_HIDE = "hide" + EVENT_KEY;
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
@@ -196,8 +241,8 @@
var CLASS_NAME_STATIC = 'modal-static';
var SELECTOR_DIALOG = '.modal-dialog';
var SELECTOR_MODAL_BODY = '.modal-body';
- var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
- var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top';
/**
@@ -206,18 +251,22 @@
* ------------------------------------------------------------------------
*/
- var Modal = /*#__PURE__*/function () {
+ var Modal = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Modal, _BaseComponent);
+
function Modal(element, config) {
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._isTransitioning = false;
- this._scrollbarWidth = 0;
- Data__default['default'].setData(element, DATA_KEY, this);
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
+ _this._backdrop = null;
+ _this._isShown = false;
+ _this._isBodyOverflowing = false;
+ _this._ignoreBackdropClick = false;
+ _this._isTransitioning = false;
+ _this._scrollbarWidth = 0;
+ return _this;
} // Getters
@@ -229,7 +278,7 @@
};
_proto.show = function show(relatedTarget) {
- var _this = this;
+ var _this2 = this;
if (this._isShown || this._isTransitioning) {
return;
@@ -260,23 +309,23 @@
this._setResizeEvent();
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
- return _this.hide(event);
+ return _this2.hide(event);
});
EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
- EventHandler__default['default'].one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
- if (event.target === _this._element) {
- _this._ignoreBackdropClick = true;
+ EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
+ if (event.target === _this2._element) {
+ _this2._ignoreBackdropClick = true;
}
});
});
this._showBackdrop(function () {
- return _this._showElement(relatedTarget);
+ return _this2._showElement(relatedTarget);
});
};
_proto.hide = function hide(event) {
- var _this2 = this;
+ var _this3 = this;
if (event) {
event.preventDefault();
@@ -314,7 +363,7 @@
if (transition) {
var transitionDuration = getTransitionDurationFromElement(this._element);
EventHandler__default['default'].one(this._element, TRANSITION_END, function (event) {
- return _this2._hideModal(event);
+ return _this3._hideModal(event);
});
emulateTransitionEnd(this._element, transitionDuration);
} else {
@@ -326,16 +375,17 @@
[window, this._element, this._dialog].forEach(function (htmlElement) {
return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
});
+
+ _BaseComponent.prototype.dispose.call(this);
/**
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
* Do not move `document` in `htmlElements` array
* It will remove `EVENT_CLICK_DATA_API` event that should remain
*/
+
EventHandler__default['default'].off(document, EVENT_FOCUSIN);
- Data__default['default'].removeData(this._element, DATA_KEY);
this._config = null;
- this._element = null;
this._dialog = null;
this._backdrop = null;
this._isShown = null;
@@ -357,7 +407,7 @@
};
_proto._showElement = function _showElement(relatedTarget) {
- var _this3 = this;
+ var _this4 = this;
var transition = this._element.classList.contains(CLASS_NAME_FADE);
@@ -393,12 +443,12 @@
}
var transitionComplete = function transitionComplete() {
- if (_this3._config.focus) {
- _this3._element.focus();
+ if (_this4._config.focus) {
+ _this4._element.focus();
}
- _this3._isTransitioning = false;
- EventHandler__default['default'].trigger(_this3._element, EVENT_SHOWN, {
+ _this4._isTransitioning = false;
+ EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
relatedTarget: relatedTarget
});
};
@@ -413,28 +463,28 @@
};
_proto._enforceFocus = function _enforceFocus() {
- var _this4 = this;
+ var _this5 = this;
EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
- if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
- _this4._element.focus();
+ if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
+ _this5._element.focus();
}
});
};
_proto._setEscapeEvent = function _setEscapeEvent() {
- var _this5 = this;
+ var _this6 = this;
if (this._isShown) {
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this5._config.keyboard && event.key === ESCAPE_KEY) {
+ if (_this6._config.keyboard && event.key === ESCAPE_KEY) {
event.preventDefault();
- _this5.hide();
- } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY) {
- _this5._triggerBackdropTransition();
+ _this6.hide();
+ } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
+ _this6._triggerBackdropTransition();
}
});
} else {
@@ -443,11 +493,11 @@
};
_proto._setResizeEvent = function _setResizeEvent() {
- var _this6 = this;
+ var _this7 = this;
if (this._isShown) {
EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
- return _this6._adjustDialog();
+ return _this7._adjustDialog();
});
} else {
EventHandler__default['default'].off(window, EVENT_RESIZE);
@@ -455,7 +505,7 @@
};
_proto._hideModal = function _hideModal() {
- var _this7 = this;
+ var _this8 = this;
this._element.style.display = 'none';
@@ -470,11 +520,11 @@
this._showBackdrop(function () {
document.body.classList.remove(CLASS_NAME_OPEN);
- _this7._resetAdjustments();
+ _this8._resetAdjustments();
- _this7._resetScrollbar();
+ _this8._resetScrollbar();
- EventHandler__default['default'].trigger(_this7._element, EVENT_HIDDEN);
+ EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);
});
};
@@ -485,7 +535,7 @@
};
_proto._showBackdrop = function _showBackdrop(callback) {
- var _this8 = this;
+ var _this9 = this;
var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
@@ -499,8 +549,8 @@
document.body.appendChild(this._backdrop);
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
- if (_this8._ignoreBackdropClick) {
- _this8._ignoreBackdropClick = false;
+ if (_this9._ignoreBackdropClick) {
+ _this9._ignoreBackdropClick = false;
return;
}
@@ -508,7 +558,11 @@
return;
}
- _this8._triggerBackdropTransition();
+ if (_this9._config.backdrop === 'static') {
+ _this9._triggerBackdropTransition();
+ } else {
+ _this9.hide();
+ }
});
if (animate) {
@@ -529,7 +583,7 @@
this._backdrop.classList.remove(CLASS_NAME_SHOW);
var callbackRemove = function callbackRemove() {
- _this8._removeBackdrop();
+ _this9._removeBackdrop();
callback();
};
@@ -548,41 +602,37 @@
};
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
- var _this9 = this;
+ var _this10 = this;
- if (this._config.backdrop === 'static') {
- var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
- if (hideEvent.defaultPrevented) {
- return;
- }
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (!isModalOverflowing) {
- this._element.style.overflowY = 'hidden';
- }
+ if (!isModalOverflowing) {
+ this._element.style.overflowY = 'hidden';
+ }
- this._element.classList.add(CLASS_NAME_STATIC);
+ this._element.classList.add(CLASS_NAME_STATIC);
- var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
- EventHandler__default['default'].off(this._element, TRANSITION_END);
- EventHandler__default['default'].one(this._element, TRANSITION_END, function () {
- _this9._element.classList.remove(CLASS_NAME_STATIC);
+ var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler__default['default'].off(this._element, TRANSITION_END);
+ EventHandler__default['default'].one(this._element, TRANSITION_END, function () {
+ _this10._element.classList.remove(CLASS_NAME_STATIC);
- if (!isModalOverflowing) {
- EventHandler__default['default'].one(_this9._element, TRANSITION_END, function () {
- _this9._element.style.overflowY = '';
- });
- emulateTransitionEnd(_this9._element, modalTransitionDuration);
- }
- });
- emulateTransitionEnd(this._element, modalTransitionDuration);
+ if (!isModalOverflowing) {
+ EventHandler__default['default'].one(_this10._element, TRANSITION_END, function () {
+ _this10._element.style.overflowY = '';
+ });
+ emulateTransitionEnd(_this10._element, modalTransitionDuration);
+ }
+ });
+ emulateTransitionEnd(this._element, modalTransitionDuration);
- this._element.focus();
- } else {
- this.hide();
- }
+ this._element.focus();
} // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
// ----------------------------------------------------------------------
@@ -591,11 +641,11 @@
_proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (!this._isBodyOverflowing && isModalOverflowing) {
+ if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
this._element.style.paddingLeft = this._scrollbarWidth + "px";
}
- if (this._isBodyOverflowing && !isModalOverflowing) {
+ if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
this._element.style.paddingRight = this._scrollbarWidth + "px";
}
};
@@ -612,7 +662,7 @@
};
_proto._setScrollbar = function _setScrollbar() {
- var _this10 = this;
+ var _this11 = this;
if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@@ -622,20 +672,20 @@
var actualPadding = element.style.paddingRight;
var calculatedPadding = window.getComputedStyle(element)['padding-right'];
Manipulator__default['default'].setDataAttribute(element, 'padding-right', actualPadding);
- element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
+ element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px";
}); // Adjust sticky content margin
SelectorEngine__default['default'].find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
var actualMargin = element.style.marginRight;
var calculatedMargin = window.getComputedStyle(element)['margin-right'];
Manipulator__default['default'].setDataAttribute(element, 'margin-right', actualMargin);
- element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
+ element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px";
}); // Adjust body padding
var actualPadding = document.body.style.paddingRight;
var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
Manipulator__default['default'].setDataAttribute(document.body, 'padding-right', actualPadding);
- document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
+ document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
}
document.body.classList.add(CLASS_NAME_OPEN);
@@ -698,30 +748,24 @@
}
data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
}
});
};
- Modal.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Modal, null, [{
- key: "VERSION",
+ _createClass$1(Modal, null, [{
+ key: "Default",
get: function get() {
- return VERSION;
+ return Default;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default;
+ return DATA_KEY;
}
}]);
return Modal;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@@ -730,7 +774,7 @@
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
- var _this11 = this;
+ var _this12 = this;
var target = getElementFromSelector(this);
@@ -745,8 +789,8 @@
}
EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
- if (isVisible(_this11)) {
- _this11.focus();
+ if (isVisible(_this12)) {
+ _this12.focus();
}
});
});
diff --git a/assets/javascripts/bootstrap/popover.js b/assets/javascripts/bootstrap/popover.js
index 8160a48..cfeeb9b 100644
--- a/assets/javascripts/bootstrap/popover.js
+++ b/assets/javascripts/bootstrap/popover.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap popover.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap popover.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/selector-engine.js', './tooltip.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
@@ -17,7 +17,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -26,7 +26,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -41,6 +41,8 @@
}
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
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; }
@@ -55,7 +57,6 @@
*/
var NAME = 'popover';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var CLASS_PREFIX = 'bs-popover';
@@ -65,7 +66,7 @@
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>'
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
});
var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
@@ -116,7 +117,7 @@
var content = this._getContent();
if (typeof content === 'function') {
- content = content.call(this.element);
+ content = content.call(this._element);
}
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
@@ -125,11 +126,11 @@
;
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
- this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
};
_proto._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || this.config.content;
+ return this._element.getAttribute('data-bs-content') || this.config.content;
};
_proto._cleanTipClass = function _cleanTipClass() {
@@ -171,18 +172,9 @@
});
};
- Popover.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
_createClass(Popover, null, [{
- key: "VERSION",
- // Getters
- get: function get() {
- return VERSION;
- }
- }, {
key: "Default",
+ // Getters
get: function get() {
return Default;
}
diff --git a/assets/javascripts/bootstrap/scrollspy.js b/assets/javascripts/bootstrap/scrollspy.js
index f33c996..f7503c9 100644
--- a/assets/javascripts/bootstrap/scrollspy.js
+++ b/assets/javascripts/bootstrap/scrollspy.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap scrollspy.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap scrollspy.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@@ -18,7 +18,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -47,7 +47,7 @@
};
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -87,7 +87,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -102,7 +102,7 @@
}
};
- 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); }
+ var isRTL = document.documentElement.dir === 'rtl';
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); } }
@@ -113,8 +113,55 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'scrollspy';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -133,7 +180,7 @@
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
var CLASS_NAME_ACTIVE = 'active';
- var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
+ var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_NAV_LINKS = '.nav-link';
var SELECTOR_NAV_ITEMS = '.nav-item';
@@ -148,26 +195,29 @@
* ------------------------------------------------------------------------
*/
- var ScrollSpy = /*#__PURE__*/function () {
- function ScrollSpy(element, config) {
- var _this = this;
+ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(ScrollSpy, _BaseComponent);
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + ", " + this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, function (event) {
+ function ScrollSpy(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._scrollElement = element.tagName === 'BODY' ? window : element;
+ _this._config = _this._getConfig(config);
+ _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
+ _this._offsets = [];
+ _this._targets = [];
+ _this._activeTarget = null;
+ _this._scrollHeight = 0;
+ EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function (event) {
return _this._process(event);
});
- this.refresh();
- this._process();
+ _this.refresh();
+
+ _this._process();
- Data__default['default'].setData(element, DATA_KEY, this);
+ return _this;
} // Getters
@@ -209,9 +259,9 @@
};
_proto.dispose = function dispose() {
- Data__default['default'].removeData(this._element, DATA_KEY);
+ _BaseComponent.prototype.dispose.call(this);
+
EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
- this._element = null;
this._scrollElement = null;
this._config = null;
this._selector = null;
@@ -296,7 +346,7 @@
this._clear();
var queries = this._selector.split(',').map(function (selector) {
- return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
+ return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
});
var link = SelectorEngine__default['default'].findOne(queries.join(','));
@@ -356,24 +406,20 @@
});
};
- ScrollSpy.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(ScrollSpy, null, [{
- key: "VERSION",
+ _createClass$1(ScrollSpy, null, [{
+ key: "Default",
get: function get() {
- return VERSION;
+ return Default;
}
}, {
- key: "Default",
+ key: "DATA_KEY",
get: function get() {
- return Default;
+ return DATA_KEY;
}
}]);
return ScrollSpy;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/tab.js b/assets/javascripts/bootstrap/tab.js
index ad9f539..a56a900 100644
--- a/assets/javascripts/bootstrap/tab.js
+++ b/assets/javascripts/bootstrap/tab.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap tab.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap tab.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/selector-engine.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine));
}(this, (function (Data, EventHandler, SelectorEngine) { 'use strict';
@@ -17,7 +17,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -25,7 +25,7 @@
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var getSelector = function getSelector(element) {
- var selector = element.getAttribute('data-target');
+ var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@@ -50,8 +50,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -60,7 +60,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -93,7 +93,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -108,6 +108,8 @@
}
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
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; }
@@ -117,8 +119,53 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ function _defineProperties$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'tab';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -136,7 +183,7 @@
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_ACTIVE = '.active';
var SELECTOR_ACTIVE_UL = ':scope > li > .active';
- var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
/**
@@ -145,12 +192,12 @@
* ------------------------------------------------------------------------
*/
- var Tab = /*#__PURE__*/function () {
- function Tab(element) {
- this._element = element;
- Data__default['default'].setData(this._element, DATA_KEY, this);
- } // Getters
+ var Tab = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tab, _BaseComponent);
+ function Tab() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
var _proto = Tab.prototype;
@@ -205,11 +252,6 @@
} else {
complete();
}
- };
-
- _proto.dispose = function dispose() {
- Data__default['default'].removeData(this._element, DATA_KEY);
- this._element = null;
} // Private
;
@@ -292,19 +334,16 @@
});
};
- Tab.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Tab, null, [{
- key: "VERSION",
+ _createClass$1(Tab, null, [{
+ key: "DATA_KEY",
+ // Getters
get: function get() {
- return VERSION;
+ return DATA_KEY;
}
}]);
return Tab;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
diff --git a/assets/javascripts/bootstrap/toast.js b/assets/javascripts/bootstrap/toast.js
index 1955f51..7a1cd83 100644
--- a/assets/javascripts/bootstrap/toast.js
+++ b/assets/javascripts/bootstrap/toast.js
@@ -1,11 +1,11 @@
/*!
- * Bootstrap toast.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap toast.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js'], factory) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator));
}(this, (function (Data, EventHandler, Manipulator) { 'use strict';
@@ -17,7 +17,7 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -42,8 +42,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -52,7 +52,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -101,7 +101,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -116,7 +116,7 @@
}
};
- 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); }
+ var isRTL = document.documentElement.dir === 'rtl';
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); } }
@@ -127,8 +127,55 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'toast';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.toast';
var EVENT_KEY = "." + DATA_KEY;
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
@@ -150,22 +197,26 @@
autohide: true,
delay: 5000
};
- var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]';
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
- var Toast = /*#__PURE__*/function () {
+ var Toast = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Toast, _BaseComponent);
+
function Toast(element, config) {
- this._element = element;
- this._config = this._getConfig(config);
- this._timeout = null;
+ var _this;
- this._setListeners();
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._timeout = null;
- Data__default['default'].setData(element, DATA_KEY, this);
+ _this._setListeners();
+
+ return _this;
} // Getters
@@ -173,7 +224,7 @@
// Public
_proto.show = function show() {
- var _this = this;
+ var _this2 = this;
var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
@@ -188,16 +239,16 @@
}
var complete = function complete() {
- _this._element.classList.remove(CLASS_NAME_SHOWING);
+ _this2._element.classList.remove(CLASS_NAME_SHOWING);
- _this._element.classList.add(CLASS_NAME_SHOW);
+ _this2._element.classList.add(CLASS_NAME_SHOW);
- EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN);
+ EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
- if (_this._config.autohide) {
- _this._timeout = setTimeout(function () {
- _this.hide();
- }, _this._config.delay);
+ if (_this2._config.autohide) {
+ _this2._timeout = setTimeout(function () {
+ _this2.hide();
+ }, _this2._config.delay);
}
};
@@ -217,7 +268,7 @@
};
_proto.hide = function hide() {
- var _this2 = this;
+ var _this3 = this;
if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@@ -230,9 +281,9 @@
}
var complete = function complete() {
- _this2._element.classList.add(CLASS_NAME_HIDE);
+ _this3._element.classList.add(CLASS_NAME_HIDE);
- EventHandler__default['default'].trigger(_this2._element, EVENT_HIDDEN);
+ EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
};
this._element.classList.remove(CLASS_NAME_SHOW);
@@ -254,8 +305,9 @@
}
EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
- Data__default['default'].removeData(this._element, DATA_KEY);
- this._element = null;
+
+ _BaseComponent.prototype.dispose.call(this);
+
this._config = null;
} // Private
;
@@ -267,10 +319,10 @@
};
_proto._setListeners = function _setListeners() {
- var _this3 = this;
+ var _this4 = this;
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
- return _this3.hide();
+ return _this4.hide();
});
};
@@ -300,16 +352,7 @@
});
};
- Toast.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Toast, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
+ _createClass$1(Toast, null, [{
key: "DefaultType",
get: function get() {
return DefaultType;
@@ -319,10 +362,15 @@
get: function get() {
return Default;
}
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
}]);
return Toast;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* jQuery
diff --git a/assets/javascripts/bootstrap/tooltip.js b/assets/javascripts/bootstrap/tooltip.js
index d9f02db..930edb4 100644
--- a/assets/javascripts/bootstrap/tooltip.js
+++ b/assets/javascripts/bootstrap/tooltip.js
@@ -1,25 +1,45 @@
/*!
- * Bootstrap tooltip.js v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap tooltip.js v5.0.0-beta1 (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('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('popper.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', 'popper.js', './dom/selector-engine.js'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine));
-}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
+}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
+
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
- var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/index.js
+ * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@@ -59,8 +79,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@@ -69,7 +89,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@@ -141,7 +161,7 @@
var _window = window,
jQuery = _window.jQuery;
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@@ -156,13 +176,15 @@
}
};
+ var isRTL = document.documentElement.dir === 'rtl';
+
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.0.0-alpha3): util/sanitizer.js
+ * Bootstrap (v5.0.0-beta1): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
- var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
+ var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
@@ -182,8 +204,8 @@
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
var attrName = attr.nodeName.toLowerCase();
- if (allowedAttributeList.indexOf(attrName) !== -1) {
- if (uriAttrs.indexOf(attrName) !== -1) {
+ if (allowedAttributeList.includes(attrName)) {
+ if (uriAttrs.has(attrName)) {
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
}
@@ -259,7 +281,7 @@
var el = elements[i];
var elName = el.nodeName.toLowerCase();
- if (allowlistKeys.indexOf(elName) === -1) {
+ if (!allowlistKeys.includes(elName)) {
el.parentNode.removeChild(el);
return "continue";
}
@@ -283,8 +305,6 @@
return createdDocument.body.innerHTML;
}
- 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); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@@ -294,13 +314,60 @@
* ------------------------------------------------------------------------
*/
+ var VERSION = '5.0.0-beta1';
+
+ var BaseComponent = /*#__PURE__*/function () {
+ function BaseComponent(element) {
+ if (!element) {
+ return;
+ }
+
+ this._element = element;
+ Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ }
+
+ var _proto = BaseComponent.prototype;
+
+ _proto.dispose = function dispose() {
+ Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
+ this._element = null;
+ }
+ /** Static */
+ ;
+
+ BaseComponent.getInstance = function getInstance(element) {
+ return Data__default['default'].getData(element, this.DATA_KEY);
+ };
+
+ _createClass(BaseComponent, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+
+ return BaseComponent;
+ }();
+
+ 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$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
+
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
var NAME = 'tooltip';
- var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var DISALLOWED_ATTRIBUTES = ['sanitize', 'allowList', 'sanitizeFn'];
+ var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
var DefaultType = {
animation: 'boolean',
template: 'string',
@@ -310,10 +377,10 @@
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
- offset: '(number|string|function)',
container: '(string|element|boolean)',
- fallbackPlacement: '(string|array)',
+ fallbackPlacements: '(null|array)',
boundary: '(string|element)',
+ customClass: '(string|function)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
allowList: 'object',
@@ -322,23 +389,23 @@
var AttachmentMap = {
AUTO: 'auto',
TOP: 'top',
- RIGHT: 'right',
+ RIGHT: isRTL ? 'left' : 'right',
BOTTOM: 'bottom',
- LEFT: 'left'
+ LEFT: isRTL ? 'right' : 'left'
};
var Default = {
animation: true,
- template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+ template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
- offset: 0,
container: false,
- fallbackPlacement: 'flip',
- boundary: 'scrollParent',
+ fallbackPlacements: null,
+ boundary: 'clippingParents',
+ customClass: '',
sanitize: true,
sanitizeFn: null,
allowList: DefaultAllowlist,
@@ -372,26 +439,30 @@
* ------------------------------------------------------------------------
*/
- var Tooltip = /*#__PURE__*/function () {
+ var Tooltip = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tooltip, _BaseComponent);
+
function Tooltip(element, config) {
- if (typeof Popper__default['default'] === 'undefined') {
- throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
- } // private
+ var _this;
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
+ }
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._popper = null; // Protected
+ _this = _BaseComponent.call(this, element) || this; // private
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
+ _this._isEnabled = true;
+ _this._timeout = 0;
+ _this._hoverState = '';
+ _this._activeTrigger = {};
+ _this._popper = null; // Protected
- this._setListeners();
+ _this.config = _this._getConfig(config);
+ _this.tip = null;
- Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
+ _this._setListeners();
+
+ return _this;
} // Getters
@@ -444,9 +515,8 @@
_proto.dispose = function dispose() {
clearTimeout(this._timeout);
- Data__default['default'].removeData(this.element, this.constructor.DATA_KEY);
- EventHandler__default['default'].off(this.element, this.constructor.EVENT_KEY);
- EventHandler__default['default'].off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
+ EventHandler__default['default'].off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -462,22 +532,23 @@
}
this._popper = null;
- this.element = null;
this.config = null;
this.tip = null;
+
+ _BaseComponent.prototype.dispose.call(this);
};
_proto.show = function show() {
- var _this = this;
+ var _this2 = this;
- if (this.element.style.display === 'none') {
+ if (this._element.style.display === 'none') {
throw new Error('Please use show on visible elements');
}
if (this.isWithContent() && this._isEnabled) {
- var showEvent = EventHandler__default['default'].trigger(this.element, this.constructor.Event.SHOW);
- var shadowRoot = findShadowRoot(this.element);
- var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
+ var showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);
+ var shadowRoot = findShadowRoot(this._element);
+ var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);
if (showEvent.defaultPrevented || !isInTheDom) {
return;
@@ -486,14 +557,16 @@
var tip = this.getTipElement();
var tipId = getUID(this.constructor.NAME);
tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
+
+ this._element.setAttribute('aria-describedby', tipId);
+
this.setContent();
if (this.config.animation) {
tip.classList.add(CLASS_NAME_FADE);
}
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;
var attachment = this._getAttachment(placement);
@@ -503,17 +576,25 @@
Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);
- if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
+ if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
container.appendChild(tip);
}
- EventHandler__default['default'].trigger(this.element, this.constructor.Event.INSERTED);
- this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));
- tip.classList.add(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra
+ EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);
+ this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));
+ tip.classList.add(CLASS_NAME_SHOW);
+ var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;
+
+ if (customClass) {
+ var _tip$classList;
+
+ (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));
+ } // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
if ('ontouchstart' in document.documentElement) {
var _ref;
@@ -523,16 +604,12 @@
}
var complete = function complete() {
- if (_this.config.animation) {
- _this._fixTransition();
- }
-
- var prevHoverState = _this._hoverState;
- _this._hoverState = null;
- EventHandler__default['default'].trigger(_this.element, _this.constructor.Event.SHOWN);
+ var prevHoverState = _this2._hoverState;
+ _this2._hoverState = null;
+ EventHandler__default['default'].trigger(_this2._element, _this2.constructor.Event.SHOWN);
if (prevHoverState === HOVER_STATE_OUT) {
- _this._leave(null, _this);
+ _this2._leave(null, _this2);
}
};
@@ -547,7 +624,7 @@
};
_proto.hide = function hide() {
- var _this2 = this;
+ var _this3 = this;
if (!this._popper) {
return;
@@ -556,20 +633,24 @@
var tip = this.getTipElement();
var complete = function complete() {
- if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
+ if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
- _this2._cleanTipClass();
+ _this3._cleanTipClass();
+
+ _this3._element.removeAttribute('aria-describedby');
- _this2.element.removeAttribute('aria-describedby');
+ EventHandler__default['default'].trigger(_this3._element, _this3.constructor.Event.HIDDEN);
- EventHandler__default['default'].trigger(_this2.element, _this2.constructor.Event.HIDDEN);
+ if (_this3._popper) {
+ _this3._popper.destroy();
- _this2._popper.destroy();
+ _this3._popper = null;
+ }
};
- var hideEvent = EventHandler__default['default'].trigger(this.element, this.constructor.Event.HIDE);
+ var hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);
if (hideEvent.defaultPrevented) {
return;
@@ -603,7 +684,7 @@
_proto.update = function update() {
if (this._popper !== null) {
- this._popper.scheduleUpdate();
+ this._popper.update();
}
} // Protected
;
@@ -664,64 +745,73 @@
};
_proto.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
+ var title = this._element.getAttribute('data-bs-original-title');
if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;
}
return title;
+ };
+
+ _proto.updateAttachment = function updateAttachment(attachment) {
+ if (attachment === 'right') {
+ return 'end';
+ }
+
+ if (attachment === 'left') {
+ return 'start';
+ }
+
+ return attachment;
} // Private
;
_proto._getPopperConfig = function _getPopperConfig(attachment) {
- var _this3 = this;
+ var _this4 = this;
+
+ var flipModifier = {
+ name: 'flip',
+ options: {
+ altBoundary: true
+ }
+ };
+
+ if (this.config.fallbackPlacements) {
+ flipModifier.options.fallbackPlacements = this.config.fallbackPlacements;
+ }
var defaultBsConfig = {
placement: attachment,
- modifiers: {
- offset: this._getOffset(),
- flip: {
- behavior: this.config.fallbackPlacement
- },
- arrow: {
+ modifiers: [flipModifier, {
+ name: 'preventOverflow',
+ options: {
+ rootBoundary: this.config.boundary
+ }
+ }, {
+ name: 'arrow',
+ options: {
element: "." + this.constructor.NAME + "-arrow"
- },
- preventOverflow: {
- boundariesElement: this.config.boundary
}
- },
- onCreate: function onCreate(data) {
- if (data.originalPlacement !== data.placement) {
- _this3._handlePopperPlacementChange(data);
+ }, {
+ name: 'onChange',
+ enabled: true,
+ phase: 'afterWrite',
+ fn: function fn(data) {
+ return _this4._handlePopperPlacementChange(data);
+ }
+ }],
+ onFirstUpdate: function onFirstUpdate(data) {
+ if (data.options.placement !== data.placement) {
+ _this4._handlePopperPlacementChange(data);
}
- },
- onUpdate: function onUpdate(data) {
- return _this3._handlePopperPlacementChange(data);
}
};
return _extends({}, defaultBsConfig, this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
- this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
- };
-
- _proto._getOffset = function _getOffset() {
- var _this4 = this;
-
- var offset = {};
-
- if (typeof this.config.offset === 'function') {
- offset.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
- return data;
- };
- } else {
- offset.offset = this.config.offset;
- }
-
- return offset;
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
};
_proto._getContainer = function _getContainer() {
@@ -746,28 +836,28 @@
var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) {
if (trigger === 'click') {
- EventHandler__default['default'].on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
+ EventHandler__default['default'].on(_this5._element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
return _this5.toggle(event);
});
} else if (trigger !== TRIGGER_MANUAL) {
var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
- EventHandler__default['default'].on(_this5.element, eventIn, _this5.config.selector, function (event) {
+ EventHandler__default['default'].on(_this5._element, eventIn, _this5.config.selector, function (event) {
return _this5._enter(event);
});
- EventHandler__default['default'].on(_this5.element, eventOut, _this5.config.selector, function (event) {
+ EventHandler__default['default'].on(_this5._element, eventOut, _this5.config.selector, function (event) {
return _this5._leave(event);
});
}
});
this._hideModalHandler = function () {
- if (_this5.element) {
+ if (_this5._element) {
_this5.hide();
}
};
- EventHandler__default['default'].on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler__default['default'].on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
this.config = _extends({}, this.config, {
@@ -780,11 +870,18 @@
};
_proto._fixTitle = function _fixTitle() {
- var titleType = typeof this.element.getAttribute('data-original-title');
+ var title = this._element.getAttribute('title');
+
+ var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');
+
+ if (title || originalTitleType !== 'string') {
+ this._element.setAttribute('data-bs-original-title', title || '');
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
+ if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {
+ this._element.setAttribute('aria-label', title);
+ }
+
+ this._element.setAttribute('title', '');
}
};
@@ -864,9 +961,9 @@
};
_proto._getConfig = function _getConfig(config) {
- var dataAttributes = Manipulator__default['default'].getDataAttributes(this.element);
+ var dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);
Object.keys(dataAttributes).forEach(function (dataAttr) {
- if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
+ if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
delete dataAttributes[dataAttr];
}
});
@@ -929,26 +1026,17 @@
};
_proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
- this.tip = popperData.instance.popper;
-
- this._cleanTipClass();
-
- this._addAttachmentClass(this._getAttachment(popperData.placement));
- };
+ var state = popperData.state;
- _proto._fixTransition = function _fixTransition() {
- var tip = this.getTipElement();
- var initConfigAnimation = this.config.animation;
-
- if (tip.getAttribute('x-placement') !== null) {
+ if (!state) {
return;
}
- tip.classList.remove(CLASS_NAME_FADE);
- this.config.animation = false;
- this.hide();
- this.show();
- this.config.animation = initConfigAnimation;
+ this.tip = state.elements.popper;
+
+ this._cleanTipClass();
+
+ this._addAttachmentClass(this._getAttachment(state.placement));
} // Static
;
@@ -976,16 +1064,7 @@
});
};
- Tooltip.getInstance = function getInstance(element) {
- return Data__default['default'].getData(element, DATA_KEY);
- };
-
- _createClass(Tooltip, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
+ _createClass$1(Tooltip, null, [{
key: "Default",
get: function get() {
return Default;
@@ -1018,7 +1097,7 @@
}]);
return Tooltip;
- }();
+ }(BaseComponent);
/**
* ------------------------------------------------------------------------
* jQuery
diff --git a/assets/stylesheets/_bootstrap-grid.scss b/assets/stylesheets/_bootstrap-grid.scss
index 2d81009..c222d8c 100644
--- a/assets/stylesheets/_bootstrap-grid.scss
+++ b/assets/stylesheets/_bootstrap-grid.scss
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Grid v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap Grid v5.0.0-beta1 (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)
@@ -42,23 +42,23 @@ $utilities: map-get-multiple(
"bootstrap/margin-x",
"bootstrap/margin-y",
"bootstrap/margin-top",
- "bootstrap/margin-right",
+ "bootstrap/margin-end",
"bootstrap/margin-bottom",
- "bootstrap/margin-left",
+ "bootstrap/margin-start",
"bootstrap/negative-margin",
"bootstrap/negative-margin-x",
"bootstrap/negative-margin-y",
"bootstrap/negative-margin-top",
- "bootstrap/negative-margin-right",
+ "bootstrap/negative-margin-end",
"bootstrap/negative-margin-bottom",
- "bootstrap/negative-margin-left",
+ "bootstrap/negative-margin-start",
"bootstrap/padding",
"bootstrap/padding-x",
"bootstrap/padding-y",
"bootstrap/padding-top",
- "bootstrap/padding-right",
+ "bootstrap/padding-end",
"bootstrap/padding-bottom",
- "bootstrap/padding-left",
+ "bootstrap/padding-start",
)
);
diff --git a/assets/stylesheets/_bootstrap-reboot.scss b/assets/stylesheets/_bootstrap-reboot.scss
index 384c463..36d9d3b 100644
--- a/assets/stylesheets/_bootstrap-reboot.scss
+++ b/assets/stylesheets/_bootstrap-reboot.scss
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Reboot v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap Reboot v5.0.0-beta1 (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 55a59ee..63520f0 100644
--- a/assets/stylesheets/_bootstrap.scss
+++ b/assets/stylesheets/_bootstrap.scss
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap v5.0.0-beta1 (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/_alert.scss b/assets/stylesheets/bootstrap/_alert.scss
index 24fa2bd..3d9b69b 100644
--- a/assets/stylesheets/bootstrap/_alert.scss
+++ b/assets/stylesheets/bootstrap/_alert.scss
@@ -44,9 +44,9 @@
// Generate contextual modifier classes for colorizing the alert.
@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);
+ $background: shift-color($value, $alert-bg-scale);
+ $border: shift-color($value, $alert-border-scale);
+ $color: shift-color($value, $alert-color-scale);
@if (contrast-ratio($background, $color) < $min-contrast-ratio) {
$color: mix($value, color-contrast($background), abs($alert-color-scale));
}
diff --git a/assets/stylesheets/bootstrap/_breadcrumb.scss b/assets/stylesheets/bootstrap/_breadcrumb.scss
index b30668b..f7fafe7 100644
--- a/assets/stylesheets/bootstrap/_breadcrumb.scss
+++ b/assets/stylesheets/bootstrap/_breadcrumb.scss
@@ -18,7 +18,7 @@
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);
+ content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
}
}
diff --git a/assets/stylesheets/bootstrap/_button-group.scss b/assets/stylesheets/bootstrap/_button-group.scss
index 1571d1e..13aa056 100644
--- a/assets/stylesheets/bootstrap/_button-group.scss
+++ b/assets/stylesheets/bootstrap/_button-group.scss
@@ -43,7 +43,7 @@
// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
- @include border-right-radius(0);
+ @include border-end-radius(0);
}
// The left radius should be 0 if the button is:
@@ -53,7 +53,7 @@
> .btn:nth-child(n + 3),
> :not(.btn-check) + .btn,
> .btn-group:not(:first-child) > .btn {
- @include border-left-radius(0);
+ @include border-start-radius(0);
}
}
@@ -75,11 +75,11 @@
&::after,
.dropup &::after,
- .dropright &::after {
+ .dropend &::after {
margin-left: 0;
}
- .dropleft &::before {
+ .dropstart &::before {
margin-right: 0;
}
}
@@ -132,7 +132,7 @@
@include border-bottom-radius(0);
}
- > .btn:not(:first-child),
+ > .btn ~ .btn,
> .btn-group:not(:first-child) > .btn {
@include border-top-radius(0);
}
diff --git a/assets/stylesheets/bootstrap/_card.scss b/assets/stylesheets/bootstrap/_card.scss
index 9b0f496..4b2eebf 100644
--- a/assets/stylesheets/bootstrap/_card.scss
+++ b/assets/stylesheets/bootstrap/_card.scss
@@ -69,7 +69,7 @@
}
+ .card-link {
- margin-left: $card-spacer-x;
+ margin-left: $card-spacer-x #{"/* rtl:ignore */"};
}
}
@@ -181,7 +181,7 @@
// Handle rounded corners
@if $enable-rounded {
&:not(:last-child) {
- @include border-right-radius(0);
+ @include border-end-radius(0);
.card-img-top,
.card-header {
@@ -196,7 +196,7 @@
}
&:not(:first-child) {
- @include border-left-radius(0);
+ @include border-start-radius(0);
.card-img-top,
.card-header {
diff --git a/assets/stylesheets/bootstrap/_carousel.scss b/assets/stylesheets/bootstrap/_carousel.scss
index ef77cbb..d2e42bc 100644
--- a/assets/stylesheets/bootstrap/_carousel.scss
+++ b/assets/stylesheets/bootstrap/_carousel.scss
@@ -3,12 +3,12 @@
// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
// even when their scroll action started on a carousel, but for compatibility (with Firefox)
// we're preventing all actions instead
-// 2. The .carousel-item-left and .carousel-item-right is used to indicate where
+// 2. The .carousel-item-start and .carousel-item-end is used to indicate where
// the active slide is heading.
// 3. .active.carousel-item is the current slide.
-// 4. .active.carousel-item-left and .active.carousel-item-right is the current
+// 4. .active.carousel-item-start and .active.carousel-item-end is the current
// slide in its in-transition state. Only one of these occurs at a time.
-// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right
+// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end
// is the upcoming slide in transition.
.carousel {
@@ -42,16 +42,19 @@
display: block;
}
-.carousel-item-next:not(.carousel-item-left),
-.active.carousel-item-right {
+/* rtl:begin:ignore */
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
transform: translateX(100%);
}
-.carousel-item-prev:not(.carousel-item-right),
-.active.carousel-item-left {
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
transform: translateX(-100%);
}
+/* rtl:end:ignore */
+
//
// Alternate transitions
@@ -65,14 +68,14 @@
}
.carousel-item.active,
- .carousel-item-next.carousel-item-left,
- .carousel-item-prev.carousel-item-right {
+ .carousel-item-next.carousel-item-start,
+ .carousel-item-prev.carousel-item-end {
z-index: 1;
opacity: 1;
}
- .active.carousel-item-left,
- .active.carousel-item-right {
+ .active.carousel-item-start,
+ .active.carousel-item-end {
z-index: 0;
opacity: 0;
@include transition(opacity 0s $carousel-transition-duration);
@@ -128,6 +131,15 @@
background-position: 50%;
background-size: 100% 100%;
}
+
+/* rtl:options: {
+ "autoRename": true,
+ "stringMap":[ {
+ "name" : "prev-next",
+ "search" : "prev",
+ "replace" : "next"
+ } ]
+} */
.carousel-control-prev-icon {
background-image: escape-svg($carousel-control-prev-icon-bg);
}
@@ -135,7 +147,6 @@
background-image: escape-svg($carousel-control-next-icon-bg);
}
-
// Optional indicator pips
//
// Add an ordered list with the following class and add a list item for each
diff --git a/assets/stylesheets/bootstrap/_dropdown.scss b/assets/stylesheets/bootstrap/_dropdown.scss
index fef1c9b..f9ad977 100644
--- a/assets/stylesheets/bootstrap/_dropdown.scss
+++ b/assets/stylesheets/bootstrap/_dropdown.scss
@@ -1,8 +1,8 @@
// The dropdown wrapper (`<div>`)
.dropup,
-.dropright,
+.dropend,
.dropdown,
-.dropleft {
+.dropstart {
position: relative;
}
@@ -32,21 +32,31 @@
border: $dropdown-border-width solid $dropdown-border-color;
@include border-radius($dropdown-border-radius);
@include box-shadow($dropdown-box-shadow);
+
+ // Reset positioning when positioned with Popper
+ &[style] {
+ right: auto !important; // stylelint-disable-line declaration-no-important
+ }
}
// scss-docs-start responsive-breakpoints
+// We deliberately hardcode the `bs-` prefix because we check
+// this custom property in JS to determine Popper's positioning
+
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
- .dropdown-menu#{$infix}-left {
- right: auto;
- left: 0;
+ .dropdown-menu#{$infix}-start {
+ --bs-position: start;
+ right: auto #{"/* rtl:ignore */"};
+ left: 0 #{"/* rtl:ignore */"};
}
- .dropdown-menu#{$infix}-right {
- right: 0;
- left: auto;
+ .dropdown-menu#{$infix}-end {
+ --bs-position: end;
+ right: 0 #{"/* rtl:ignore */"};
+ left: auto #{"/* rtl:ignore */"};
}
}
}
@@ -67,7 +77,7 @@
}
}
-.dropright {
+.dropend {
.dropdown-menu {
top: 0;
right: auto;
@@ -77,14 +87,14 @@
}
.dropdown-toggle {
- @include caret(right);
+ @include caret(end);
&::after {
vertical-align: 0;
}
}
}
-.dropleft {
+.dropstart {
.dropdown-menu {
top: 0;
right: 100%;
@@ -94,24 +104,13 @@
}
.dropdown-toggle {
- @include caret(left);
+ @include caret(start);
&::before {
vertical-align: 0;
}
}
}
-// When enabled Popper.js, reset basic dropdown position
-// stylelint-disable-next-line no-duplicate-selectors
-.dropdown-menu {
- &[x-placement^="top"],
- &[x-placement^="right"],
- &[x-placement^="bottom"],
- &[x-placement^="left"] {
- right: auto;
- bottom: auto;
- }
-}
// Dividers (basically an `<hr>`) within the dropdown
.dropdown-divider {
diff --git a/assets/stylesheets/bootstrap/_functions.scss b/assets/stylesheets/bootstrap/_functions.scss
index b95fbf9..29114fc 100644
--- a/assets/stylesheets/bootstrap/_functions.scss
+++ b/assets/stylesheets/bootstrap/_functions.scss
@@ -161,9 +161,8 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
@return mix(black, $color, $weight);
}
-// Scale a color:
// Shade the color if the weight is positive, else tint it
-@function scale-color($color, $weight) {
+@function shift-color($color, $weight) {
@return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
}
// scss-docs-end color-functions
diff --git a/assets/stylesheets/bootstrap/_list-group.scss b/assets/stylesheets/bootstrap/_list-group.scss
index 2ce0c8b..a95adc1 100644
--- a/assets/stylesheets/bootstrap/_list-group.scss
+++ b/assets/stylesheets/bootstrap/_list-group.scss
@@ -99,13 +99,13 @@
> .list-group-item {
&:first-child {
- @include border-bottom-left-radius($list-group-border-radius);
- @include border-top-right-radius(0);
+ @include border-bottom-start-radius($list-group-border-radius);
+ @include border-top-end-radius(0);
}
&:last-child {
- @include border-top-right-radius($list-group-border-radius);
- @include border-bottom-left-radius(0);
+ @include border-top-end-radius($list-group-border-radius);
+ @include border-bottom-start-radius(0);
}
&.active {
@@ -152,8 +152,8 @@
// Organizationally, this must come after the `:hover` states.
@each $state, $value in $theme-colors {
- $background: scale-color($value, $list-group-item-bg-scale);
- $color: scale-color($value, $list-group-item-color-scale);
+ $background: shift-color($value, $list-group-item-bg-scale);
+ $color: shift-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));
}
diff --git a/assets/stylesheets/bootstrap/_navbar.scss b/assets/stylesheets/bootstrap/_navbar.scss
index 607c317..852328a 100644
--- a/assets/stylesheets/bootstrap/_navbar.scss
+++ b/assets/stylesheets/bootstrap/_navbar.scss
@@ -56,7 +56,7 @@
.navbar-brand {
padding-top: $navbar-brand-padding-y;
padding-bottom: $navbar-brand-padding-y;
- margin-right: $navbar-brand-margin-right;
+ margin-right: $navbar-brand-margin-end;
@include font-size($navbar-brand-font-size);
text-decoration: if($link-decoration == none, null, none);
white-space: nowrap;
diff --git a/assets/stylesheets/bootstrap/_pagination.scss b/assets/stylesheets/bootstrap/_pagination.scss
index 819f6d1..04bf825 100644
--- a/assets/stylesheets/bootstrap/_pagination.scss
+++ b/assets/stylesheets/bootstrap/_pagination.scss
@@ -31,7 +31,7 @@
.page-item {
&:not(:first-child) .page-link {
- margin-left: $pagination-margin-left;
+ margin-left: $pagination-margin-start;
}
&.active .page-link {
diff --git a/assets/stylesheets/bootstrap/_popover.scss b/assets/stylesheets/bootstrap/_popover.scss
index 55bfe1f..e4f6860 100644
--- a/assets/stylesheets/bootstrap/_popover.scss
+++ b/assets/stylesheets/bootstrap/_popover.scss
@@ -1,7 +1,7 @@
.popover {
position: absolute;
top: 0;
- left: 0;
+ left: 0 #{"/* rtl:ignore */"};
z-index: $zindex-popover;
display: block;
max-width: $popover-max-width;
@@ -36,7 +36,8 @@
}
.bs-popover-top {
- margin-bottom: $popover-arrow-height;
+ // Overrule margin set by popper.js
+ margin-bottom: $popover-arrow-height !important; // stylelint-disable-line declaration-no-important
> .popover-arrow {
bottom: subtract(-$popover-arrow-height, $popover-border-width);
@@ -55,8 +56,9 @@
}
}
-.bs-popover-right {
- margin-left: $popover-arrow-height;
+.bs-popover-end {
+ // Overrule margin set by popper.js
+ margin-left: $popover-arrow-height !important; // stylelint-disable-line declaration-no-important
> .popover-arrow {
left: subtract(-$popover-arrow-height, $popover-border-width);
@@ -79,7 +81,8 @@
}
.bs-popover-bottom {
- margin-top: $popover-arrow-height;
+ // Overrule margin set by popper.js
+ margin-top: $popover-arrow-height !important; // stylelint-disable-line declaration-no-important
> .popover-arrow {
top: subtract(-$popover-arrow-height, $popover-border-width);
@@ -110,8 +113,9 @@
}
}
-.bs-popover-left {
- margin-right: $popover-arrow-height;
+.bs-popover-start {
+ // Overrule margin set by popper.js
+ margin-right: $popover-arrow-height !important; // stylelint-disable-line declaration-no-important
> .popover-arrow {
right: subtract(-$popover-arrow-height, $popover-border-width);
@@ -134,21 +138,20 @@
}
.bs-popover-auto {
- &[x-placement^="top"] {
+ &[data-popper-placement^="top"] {
@extend .bs-popover-top;
}
- &[x-placement^="right"] {
- @extend .bs-popover-right;
+ &[data-popper-placement^="right"] {
+ @extend .bs-popover-end;
}
- &[x-placement^="bottom"] {
+ &[data-popper-placement^="bottom"] {
@extend .bs-popover-bottom;
}
- &[x-placement^="left"] {
- @extend .bs-popover-left;
+ &[data-popper-placement^="left"] {
+ @extend .bs-popover-start;
}
}
-
// Offset the popover to account for the popover arrow
.popover-header {
padding: $popover-header-padding-y $popover-header-padding-x;
diff --git a/assets/stylesheets/bootstrap/_reboot.scss b/assets/stylesheets/bootstrap/_reboot.scss
index f64297b..50ba743 100644
--- a/assets/stylesheets/bootstrap/_reboot.scss
+++ b/assets/stylesheets/bootstrap/_reboot.scss
@@ -1,4 +1,4 @@
-// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
+// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
// Reboot
@@ -149,13 +149,13 @@ p {
// Abbreviations
//
-// 1. Duplicate behavior to the data-* attribute for our tooltip plugin
+// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin
// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
// 3. Add explicit cursor to indicate changed behavior.
// 4. Prevent the text-decoration to be skipped.
abbr[title],
-abbr[data-original-title] { // 1
+abbr[data-bs-original-title] { // 1
text-decoration: underline; // 2
text-decoration: underline dotted; // 2
cursor: help; // 3
@@ -290,6 +290,8 @@ kbd,
samp {
font-family: $font-family-code;
@include font-size(1em); // Correct the odd `em` font sizing in all browsers.
+ direction: ltr #{"/* rtl:ignore */"};
+ unicode-bidi: bidi-override;
}
// 1. Remove browser default top margin
@@ -551,6 +553,20 @@ legend {
-webkit-appearance: textfield; // 2
}
+// 1. A few input types should stay LTR
+// See https://rtlstyling.com/posts/rtl-styling#form-inputs
+// 2. RTL only output
+// See https://rtlcss.com/learn/usage-guide/control-directives/#raw
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
+
// Remove the inner padding in Chrome and Safari on macOS.
::-webkit-search-decoration {
diff --git a/assets/stylesheets/bootstrap/_spinners.scss b/assets/stylesheets/bootstrap/_spinners.scss
index e932aac..7444ed1 100644
--- a/assets/stylesheets/bootstrap/_spinners.scss
+++ b/assets/stylesheets/bootstrap/_spinners.scss
@@ -3,7 +3,7 @@
//
@keyframes spinner-border {
- to { transform: rotate(360deg); }
+ to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
}
.spinner-border {
diff --git a/assets/stylesheets/bootstrap/_tables.scss b/assets/stylesheets/bootstrap/_tables.scss
index 1b2db30..506c60b 100644
--- a/assets/stylesheets/bootstrap/_tables.scss
+++ b/assets/stylesheets/bootstrap/_tables.scss
@@ -4,7 +4,6 @@
.table {
--#{$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};
diff --git a/assets/stylesheets/bootstrap/_toasts.scss b/assets/stylesheets/bootstrap/_toasts.scss
index e2b98e6..7a1cf73 100644
--- a/assets/stylesheets/bootstrap/_toasts.scss
+++ b/assets/stylesheets/bootstrap/_toasts.scss
@@ -1,29 +1,31 @@
.toast {
- max-width: $toast-max-width;
+ width: $toast-max-width;
+ max-width: 100%;
@include font-size($toast-font-size);
color: $toast-color;
+ pointer-events: auto;
background-color: $toast-background-color;
background-clip: padding-box;
border: $toast-border-width solid $toast-border-color;
box-shadow: $toast-box-shadow;
- opacity: 0;
@include border-radius($toast-border-radius);
- &:not(:last-child) {
- margin-bottom: $toast-padding-x;
+ &:not(.showing):not(.show) {
+ opacity: 0;
}
- &.showing {
- opacity: 1;
+ &.hide {
+ display: none;
}
+}
- &.show {
- display: block;
- opacity: 1;
- }
+.toast-container {
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
- &.hide {
- display: none;
+ > :not(:last-child) {
+ margin-bottom: $toast-spacing;
}
}
diff --git a/assets/stylesheets/bootstrap/_tooltip.scss b/assets/stylesheets/bootstrap/_tooltip.scss
index 4d405e0..2993bf7 100644
--- a/assets/stylesheets/bootstrap/_tooltip.scss
+++ b/assets/stylesheets/bootstrap/_tooltip.scss
@@ -36,14 +36,14 @@
bottom: 0;
&::before {
- top: 0;
+ top: -1px;
border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
border-top-color: $tooltip-arrow-color;
}
}
}
-.bs-tooltip-right {
+.bs-tooltip-end {
padding: 0 $tooltip-arrow-height;
.tooltip-arrow {
@@ -52,7 +52,7 @@
height: $tooltip-arrow-width;
&::before {
- right: 0;
+ right: -1px;
border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
border-right-color: $tooltip-arrow-color;
}
@@ -66,14 +66,14 @@
top: 0;
&::before {
- bottom: 0;
+ bottom: -1px;
border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
border-bottom-color: $tooltip-arrow-color;
}
}
}
-.bs-tooltip-left {
+.bs-tooltip-start {
padding: 0 $tooltip-arrow-height;
.tooltip-arrow {
@@ -82,7 +82,7 @@
height: $tooltip-arrow-width;
&::before {
- left: 0;
+ left: -1px;
border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
border-left-color: $tooltip-arrow-color;
}
@@ -90,17 +90,17 @@
}
.bs-tooltip-auto {
- &[x-placement^="top"] {
+ &[data-popper-placement^="top"] {
@extend .bs-tooltip-top;
}
- &[x-placement^="right"] {
- @extend .bs-tooltip-right;
+ &[data-popper-placement^="right"] {
+ @extend .bs-tooltip-end;
}
- &[x-placement^="bottom"] {
+ &[data-popper-placement^="bottom"] {
@extend .bs-tooltip-bottom;
}
- &[x-placement^="left"] {
- @extend .bs-tooltip-left;
+ &[data-popper-placement^="left"] {
+ @extend .bs-tooltip-start;
}
}
diff --git a/assets/stylesheets/bootstrap/_utilities.scss b/assets/stylesheets/bootstrap/_utilities.scss
index 03c71d1..89bf168 100644
--- a/assets/stylesheets/bootstrap/_utilities.scss
+++ b/assets/stylesheets/bootstrap/_utilities.scss
@@ -12,7 +12,11 @@ $utilities: map-merge(
"float": (
responsive: true,
property: float,
- values: left right none
+ values: (
+ start: left,
+ end: right,
+ none: none,
+ )
),
"overflow": (
property: overflow,
@@ -47,19 +51,23 @@ $utilities: map-merge(
property: bottom,
values: $position-values
),
- "left": (
+ "start": (
property: left,
+ class: start,
values: $position-values
),
- "right": (
+ "end": (
property: right,
+ class: end,
values: $position-values
),
"translate-middle": (
property: transform,
class: translate-middle,
values: (
- null: (translateX(-50%) translateY(-50%))
+ null: translate(-50%, -50%),
+ x: translateX(-50%),
+ y: translateY(-50%),
)
),
"border": (
@@ -76,8 +84,9 @@ $utilities: map-merge(
0: 0,
)
),
- "border-right": (
+ "border-end": (
property: border-right,
+ class: border-end,
values: (
null: $border-width solid $border-color,
0: 0,
@@ -90,8 +99,9 @@ $utilities: map-merge(
0: 0,
)
),
- "border-left": (
+ "border-start": (
property: border-left,
+ class: border-start,
values: (
null: $border-width solid $border-color,
0: 0,
@@ -288,10 +298,10 @@ $utilities: map-merge(
class: mt,
values: map-merge($spacers, (auto: auto))
),
- "margin-right": (
+ "margin-end": (
responsive: true,
property: margin-right,
- class: mr,
+ class: me,
values: map-merge($spacers, (auto: auto))
),
"margin-bottom": (
@@ -300,10 +310,10 @@ $utilities: map-merge(
class: mb,
values: map-merge($spacers, (auto: auto))
),
- "margin-left": (
+ "margin-start": (
responsive: true,
property: margin-left,
- class: ml,
+ class: ms,
values: map-merge($spacers, (auto: auto))
),
// Negative margin utilities
@@ -331,10 +341,10 @@ $utilities: map-merge(
class: mt,
values: $negative-spacers
),
- "negative-margin-right": (
+ "negative-margin-end": (
responsive: true,
property: margin-right,
- class: mr,
+ class: me,
values: $negative-spacers
),
"negative-margin-bottom": (
@@ -343,10 +353,10 @@ $utilities: map-merge(
class: mb,
values: $negative-spacers
),
- "negative-margin-left": (
+ "negative-margin-start": (
responsive: true,
property: margin-left,
- class: ml,
+ class: ms,
values: $negative-spacers
),
// Padding utilities
@@ -374,10 +384,10 @@ $utilities: map-merge(
class: pt,
values: $spacers
),
- "padding-right": (
+ "padding-end": (
responsive: true,
property: padding-right,
- class: pr,
+ class: pe,
values: $spacers
),
"padding-bottom": (
@@ -386,10 +396,10 @@ $utilities: map-merge(
class: pb,
values: $spacers
),
- "padding-left": (
+ "padding-start": (
responsive: true,
property: padding-left,
- class: pl,
+ class: ps,
values: $spacers
),
// Text
@@ -424,7 +434,11 @@ $utilities: map-merge(
responsive: true,
property: text-align,
class: text,
- values: left right center
+ values: (
+ start: left,
+ end: right,
+ center: center,
+ )
),
"color": (
property: color,
@@ -483,7 +497,8 @@ $utilities: map-merge(
"word-wrap": (
property: word-wrap word-break,
class: text,
- values: (break: break-word)
+ values: (break: break-word),
+ rtl: false
),
"font-family": (
property: font-family,
@@ -517,9 +532,9 @@ $utilities: map-merge(
class: rounded-top,
values: (null: $border-radius)
),
- "rounded-right": (
+ "rounded-end": (
property: border-top-right-radius border-bottom-right-radius,
- class: rounded-right,
+ class: rounded-end,
values: (null: $border-radius)
),
"rounded-bottom": (
@@ -527,9 +542,9 @@ $utilities: map-merge(
class: rounded-bottom,
values: (null: $border-radius)
),
- "rounded-left": (
+ "rounded-start": (
property: border-bottom-left-radius border-top-left-radius,
- class: rounded-left,
+ class: rounded-start,
values: (null: $border-radius)
),
"visibility": (
diff --git a/assets/stylesheets/bootstrap/_variables.scss b/assets/stylesheets/bootstrap/_variables.scss
index 2a8b45e..d9acaca 100644
--- a/assets/stylesheets/bootstrap/_variables.scss
+++ b/assets/stylesheets/bootstrap/_variables.scss
@@ -275,7 +275,7 @@ $body-text-align: null !default;
$link-color: $primary !default;
$link-decoration: underline !default;
$link-shade-percentage: 20% !default;
-$link-hover-color: scale-color($link-color, $link-shade-percentage) !default;
+$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;
$link-hover-decoration: null !default;
$stretched-link-pseudo-element: after !default;
@@ -337,7 +337,7 @@ $gutters: $spacers !default;
// Container padding
-$container-padding-x: $grid-gutter-width !default;
+$container-padding-x: $grid-gutter-width / 2 !default;
// Components
@@ -535,12 +535,12 @@ $table-caption-color: $text-muted !default;
$table-bg-scale: -80% !default;
$table-variants: (
- "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),
+ "primary": shift-color($primary, $table-bg-scale),
+ "secondary": shift-color($secondary, $table-bg-scale),
+ "success": shift-color($success, $table-bg-scale),
+ "info": shift-color($info, $table-bg-scale),
+ "warning": shift-color($warning, $table-bg-scale),
+ "danger": shift-color($danger, $table-bg-scale),
"light": $light,
"dark": $dark,
) !default;
@@ -679,7 +679,7 @@ $input-transition: border-color .15s ease-in-out, box-shado
$form-check-input-width: 1em !default;
$form-check-min-height: $font-size-base * $line-height-base !default;
-$form-check-padding-left: $form-check-input-width + .5em !default;
+$form-check-padding-start: $form-check-input-width + .5em !default;
$form-check-margin-bottom: .125rem !default;
$form-check-label-color: null !default;
$form-check-label-cursor: null !default;
@@ -711,7 +711,7 @@ $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;
+$form-switch-padding-start: $form-switch-width + .5em !default;
$form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>") !default;
$form-switch-border-radius: $form-switch-width !default;
@@ -722,7 +722,7 @@ $form-switch-checked-color: $component-active-color !default;
$form-switch-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>") !default;
$form-switch-checked-bg-position: right center !default;
-$form-check-inline-margin-right: 1rem !default;
+$form-check-inline-margin-end: 1rem !default;
$input-group-addon-padding-y: $input-padding-y !default;
$input-group-addon-padding-x: $input-padding-x !default;
@@ -748,9 +748,9 @@ $form-select-bg-size: 16px 12px !default; // In pixels because ima
$form-select-indicator-color: $gray-800 !default;
$form-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/></svg>") !default;
-$form-select-feedback-icon-padding-right: add(1em * .75, (2 * $form-select-padding-y * .75) + $form-select-padding-x + $form-select-indicator-padding) !default;
-$form-select-feedback-icon-position: center right ($form-select-padding-x + $form-select-indicator-padding) !default;
-$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
+$form-select-feedback-icon-padding-end: add(1em * .75, (2 * $form-select-padding-y * .75) + $form-select-padding-x + $form-select-indicator-padding) !default;
+$form-select-feedback-icon-position: center right ($form-select-padding-x + $form-select-indicator-padding) !default;
+$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
$form-select-border-width: $input-border-width !default;
$form-select-border-color: $input-border-color !default;
@@ -879,7 +879,7 @@ $navbar-brand-font-size: $font-size-lg !default;
$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
-$navbar-brand-margin-right: 1rem !default;
+$navbar-brand-margin-end: 1rem !default;
$navbar-toggler-padding-y: .25rem !default;
$navbar-toggler-padding-x: .75rem !default;
@@ -969,7 +969,7 @@ $pagination-color: $link-color !default;
$pagination-bg: $white !default;
$pagination-border-width: $border-width !default;
$pagination-border-radius: $border-radius !default;
-$pagination-margin-left: -$pagination-border-width !default;
+$pagination-margin-start: -$pagination-border-width !default;
$pagination-border-color: $gray-300 !default;
$pagination-focus-color: $link-hover-color !default;
@@ -1108,6 +1108,7 @@ $toast-border-width: 1px !default;
$toast-border-color: rgba(0, 0, 0, .1) !default;
$toast-border-radius: $border-radius !default;
$toast-box-shadow: $box-shadow !default;
+$toast-spacing: $container-padding-x !default;
$toast-header-color: $gray-600 !default;
$toast-header-background-color: rgba($white, .85) !default;
@@ -1245,15 +1246,16 @@ $figure-caption-color: $gray-600 !default;
// Breadcrumbs
$breadcrumb-font-size: null !default;
-$breadcrumb-padding-y: $spacer / 2 !default;
-$breadcrumb-padding-x: $spacer !default;
+$breadcrumb-padding-y: 0 !default;
+$breadcrumb-padding-x: 0 !default;
$breadcrumb-item-padding-x: .5rem !default;
$breadcrumb-margin-bottom: 1rem !default;
-$breadcrumb-bg: $gray-200 !default;
+$breadcrumb-bg: null !default;
$breadcrumb-divider-color: $gray-600 !default;
$breadcrumb-active-color: $gray-600 !default;
$breadcrumb-divider: quote("/") !default;
-$breadcrumb-border-radius: $border-radius !default;
+$breadcrumb-divider-flipped: $breadcrumb-divider !default;
+$breadcrumb-border-radius: null !default;
// Carousel
diff --git a/assets/stylesheets/bootstrap/bootstrap-utilities.scss b/assets/stylesheets/bootstrap/bootstrap-utilities.scss
index 9ae1684..8d96cf9 100644
--- a/assets/stylesheets/bootstrap/bootstrap-utilities.scss
+++ b/assets/stylesheets/bootstrap/bootstrap-utilities.scss
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Utilities v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap Utilities v5.0.0-beta1 (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/_form-check.scss b/assets/stylesheets/bootstrap/forms/_form-check.scss
index 77af825..1d6d873 100644
--- a/assets/stylesheets/bootstrap/forms/_form-check.scss
+++ b/assets/stylesheets/bootstrap/forms/_form-check.scss
@@ -5,12 +5,12 @@
.form-check {
display: block;
min-height: $form-check-min-height;
- padding-left: $form-check-padding-left;
+ padding-left: $form-check-padding-start;
margin-bottom: $form-check-margin-bottom;
.form-check-input {
float: left;
- margin-left: $form-check-padding-left * -1;
+ margin-left: $form-check-padding-start * -1;
}
}
@@ -105,11 +105,11 @@
//
.form-switch {
- padding-left: $form-switch-padding-left;
+ padding-left: $form-switch-padding-start;
.form-check-input {
width: $form-switch-width;
- margin-left: $form-switch-padding-left * -1;
+ margin-left: $form-switch-padding-start * -1;
background-image: escape-svg($form-switch-bg-image);
background-position: left center;
@include border-radius($form-switch-border-radius);
@@ -132,7 +132,7 @@
.form-check-inline {
display: inline-block;
- margin-right: $form-check-inline-margin-right;
+ margin-right: $form-check-inline-margin-end;
}
.btn-check {
diff --git a/assets/stylesheets/bootstrap/forms/_input-group.scss b/assets/stylesheets/bootstrap/forms/_input-group.scss
index 2729ecc..1400529 100644
--- a/assets/stylesheets/bootstrap/forms/_input-group.scss
+++ b/assets/stylesheets/bootstrap/forms/_input-group.scss
@@ -98,14 +98,14 @@
&:not(.has-validation) {
> :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
> .dropdown-toggle:nth-last-child(n + 3) {
- @include border-right-radius(0);
+ @include border-end-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);
+ @include border-end-radius(0);
}
}
@@ -116,6 +116,6 @@
> :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
margin-left: -$input-border-width;
- @include border-left-radius(0);
+ @include border-start-radius(0);
}
}
diff --git a/assets/stylesheets/bootstrap/mixins/_border-radius.scss b/assets/stylesheets/bootstrap/mixins/_border-radius.scss
index 70f5720..819b8ab 100644
--- a/assets/stylesheets/bootstrap/mixins/_border-radius.scss
+++ b/assets/stylesheets/bootstrap/mixins/_border-radius.scss
@@ -30,7 +30,7 @@
}
}
-@mixin border-right-radius($radius: $border-radius) {
+@mixin border-end-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-right-radius: valid-radius($radius);
border-bottom-right-radius: valid-radius($radius);
@@ -44,32 +44,32 @@
}
}
-@mixin border-left-radius($radius: $border-radius) {
+@mixin border-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
border-bottom-left-radius: valid-radius($radius);
}
}
-@mixin border-top-left-radius($radius: $border-radius) {
+@mixin border-top-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
}
}
-@mixin border-top-right-radius($radius: $border-radius) {
+@mixin border-top-end-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-right-radius: valid-radius($radius);
}
}
-@mixin border-bottom-right-radius($radius: $border-radius) {
+@mixin border-bottom-end-radius($radius: $border-radius) {
@if $enable-rounded {
border-bottom-right-radius: valid-radius($radius);
}
}
-@mixin border-bottom-left-radius($radius: $border-radius) {
+@mixin border-bottom-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-bottom-left-radius: valid-radius($radius);
}
diff --git a/assets/stylesheets/bootstrap/mixins/_caret.scss b/assets/stylesheets/bootstrap/mixins/_caret.scss
index 07d7228..fc10669 100644
--- a/assets/stylesheets/bootstrap/mixins/_caret.scss
+++ b/assets/stylesheets/bootstrap/mixins/_caret.scss
@@ -12,14 +12,14 @@
border-left: $caret-width solid transparent;
}
-@mixin caret-right {
+@mixin caret-end {
border-top: $caret-width solid transparent;
border-right: 0;
border-bottom: $caret-width solid transparent;
border-left: $caret-width solid;
}
-@mixin caret-left {
+@mixin caret-start {
border-top: $caret-width solid transparent;
border-right: $caret-width solid;
border-bottom: $caret-width solid transparent;
@@ -36,12 +36,12 @@
@include caret-down();
} @else if $direction == up {
@include caret-up();
- } @else if $direction == right {
- @include caret-right();
+ } @else if $direction == end {
+ @include caret-end();
}
}
- @if $direction == left {
+ @if $direction == start {
&::after {
display: none;
}
@@ -51,7 +51,7 @@
margin-right: $caret-spacing;
vertical-align: $caret-vertical-align;
content: "";
- @include caret-left();
+ @include caret-start();
}
}
diff --git a/assets/stylesheets/bootstrap/mixins/_container.scss b/assets/stylesheets/bootstrap/mixins/_container.scss
index f391c22..ee6044d 100644
--- a/assets/stylesheets/bootstrap/mixins/_container.scss
+++ b/assets/stylesheets/bootstrap/mixins/_container.scss
@@ -1,11 +1,9 @@
// Container mixins
@mixin make-container($gutter: $container-padding-x) {
- --bs-gutter-x: #{$gutter};
-
width: 100%;
- 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
+ padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});
+ padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});
margin-right: auto;
margin-left: auto;
}
diff --git a/assets/stylesheets/bootstrap/mixins/_forms.scss b/assets/stylesheets/bootstrap/mixins/_forms.scss
index 9adc0de..5e4cfd4 100644
--- a/assets/stylesheets/bootstrap/mixins/_forms.scss
+++ b/assets/stylesheets/bootstrap/mixins/_forms.scss
@@ -79,7 +79,7 @@
border-color: $color;
@if $enable-validation-icons {
- padding-right: $form-select-feedback-icon-padding-right;
+ padding-right: $form-select-feedback-icon-padding-end;
background-image: escape-svg($form-select-indicator), escape-svg($icon);
background-position: $form-select-bg-position, $form-select-feedback-icon-position;
background-size: $form-select-bg-size, $form-select-feedback-icon-size;
diff --git a/assets/stylesheets/bootstrap/mixins/_pagination.scss b/assets/stylesheets/bootstrap/mixins/_pagination.scss
index 52ad1e1..9cb7fd8 100644
--- a/assets/stylesheets/bootstrap/mixins/_pagination.scss
+++ b/assets/stylesheets/bootstrap/mixins/_pagination.scss
@@ -7,16 +7,16 @@
}
.page-item {
- @if $pagination-margin-left == (-$pagination-border-width) {
+ @if $pagination-margin-start == (-$pagination-border-width) {
&:first-child {
.page-link {
- @include border-left-radius($border-radius);
+ @include border-start-radius($border-radius);
}
}
&:last-child {
.page-link {
- @include border-right-radius($border-radius);
+ @include border-end-radius($border-radius);
}
}
} @else {
diff --git a/assets/stylesheets/bootstrap/mixins/_utilities.scss b/assets/stylesheets/bootstrap/mixins/_utilities.scss
index cd9f930..4d2370a 100644
--- a/assets/stylesheets/bootstrap/mixins/_utilities.scss
+++ b/assets/stylesheets/bootstrap/mixins/_utilities.scss
@@ -20,6 +20,9 @@
$property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
$property-class: if($property-class == null, "", $property-class);
+ // State params to generate pseudo-classes
+ $state: if(map-has-key($utility, state), map-get($utility, state), ());
+
$infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);
// Don't prefix if value key is null (eg. with shadow class)
@@ -38,12 +41,28 @@
}
}
+ $is-rtl: map-get($utility, rtl);
+
@if $value != null {
+ @if $is-rtl == false {
+ /* rtl:begin:remove */
+ }
.#{$property-class + $infix + $property-class-modifier} {
@each $property in $properties {
#{$property}: $value if($enable-important-utilities, !important, null);
}
}
+
+ @each $pseudo in $state {
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+ @each $property in $properties {
+ #{$property}: $value if($enable-important-utilities, !important, null);
+ }
+ }
+ }
+ @if $is-rtl == false {
+ /* rtl:end:remove */
+ }
}
}
}
diff --git a/lib/bootstrap/version.rb b/lib/bootstrap/version.rb
index 93dbf80..61f1e7b 100644
--- a/lib/bootstrap/version.rb
+++ b/lib/bootstrap/version.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
module Bootstrap
- VERSION = '5.0.0.alpha3'
- BOOTSTRAP_SHA = '384eccbfaf3f234944f8d60ac70dd7966814c994'
+ VERSION = '5.0.0.beta1'
+ BOOTSTRAP_SHA = '63f3d939eaceeb84dcc77a7392953bcc8c5bc0a3'
end