Replace Bootstrap 4 Beta 3 with Bootstrap 4 final

This commit is contained in:
koenemann 2018-01-22 09:09:25 +01:00
parent 044f000028
commit 826d0aa43c
35 changed files with 9838 additions and 1193 deletions

File diff suppressed because it is too large Load Diff

8
css/theme.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
/*! /*!
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
@ -54,7 +54,7 @@ function _inheritsLoose(subClass, superClass) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): util.js * Bootstrap (v4.0.0): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -66,7 +66,7 @@ var Util = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var transition = false; var transition = false;
var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp) var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
function toType(obj) { function toType(obj) {
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
@ -87,7 +87,7 @@ var Util = function ($$$1) {
} }
function transitionEndTest() { function transitionEndTest() {
if (window.QUnit) { if (typeof window !== 'undefined' && window.QUnit) {
return false; return false;
} }
@ -121,7 +121,7 @@ var Util = function ($$$1) {
} }
function escapeId(selector) { function escapeId(selector) {
// we escape IDs in case of special selectors (selector = '#myId:something') // We escape IDs in case of special selectors (selector = '#myId:something')
// $.escapeSelector does not exist in jQuery < 3 // $.escapeSelector does not exist in jQuery < 3
selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1'); selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
return selector; return selector;
@ -148,7 +148,7 @@ var Util = function ($$$1) {
if (!selector || selector === '#') { if (!selector || selector === '#') {
selector = element.getAttribute('href') || ''; selector = element.getAttribute('href') || '';
} // if it's an ID } // If it's an ID
if (selector.charAt(0) === '#') { if (selector.charAt(0) === '#') {
@ -158,7 +158,7 @@ var Util = function ($$$1) {
try { try {
var $selector = $$$1(document).find(selector); var $selector = $$$1(document).find(selector);
return $selector.length > 0 ? selector : null; return $selector.length > 0 ? selector : null;
} catch (error) { } catch (err) {
return null; return null;
} }
}, },
@ -194,7 +194,7 @@ var Util = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): alert.js * Bootstrap (v4.0.0): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -206,7 +206,7 @@ var Alert = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -237,12 +237,12 @@ var Alert = function ($$$1) {
function () { function () {
function Alert(element) { function Alert(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Alert.prototype; var _proto = Alert.prototype;
// public // Public
_proto.close = function close(element) { _proto.close = function close(element) {
element = element || this._element; element = element || this._element;
@ -260,7 +260,7 @@ var Alert = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // private }; // Private
_proto._getRootElement = function _getRootElement(element) { _proto._getRootElement = function _getRootElement(element) {
@ -302,7 +302,7 @@ var Alert = function ($$$1) {
_proto._destroyElement = function _destroyElement(element) { _proto._destroyElement = function _destroyElement(element) {
$$$1(element).detach().trigger(Event.CLOSED).remove(); $$$1(element).detach().trigger(Event.CLOSED).remove();
}; // static }; // Static
Alert._jQueryInterface = function _jQueryInterface(config) { Alert._jQueryInterface = function _jQueryInterface(config) {
@ -366,7 +366,7 @@ var Alert = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): button.js * Bootstrap (v4.0.0): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -378,7 +378,7 @@ var Button = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'button'; var NAME = 'button';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.button'; var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -411,12 +411,12 @@ var Button = function ($$$1) {
function () { function () {
function Button(element) { function Button(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Button.prototype; var _proto = Button.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
var triggerChangeEvent = true; var triggerChangeEvent = true;
var addAriaPressed = true; var addAriaPressed = true;
@ -464,7 +464,7 @@ var Button = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // static }; // Static
Button._jQueryInterface = function _jQueryInterface(config) { Button._jQueryInterface = function _jQueryInterface(config) {
@ -529,7 +529,7 @@ var Button = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): carousel.js * Bootstrap (v4.0.0): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -541,7 +541,7 @@ var Carousel = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'carousel'; var NAME = 'carousel';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.carousel'; var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -624,12 +624,12 @@ var Carousel = function ($$$1) {
this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0]; this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
this._addEventListeners(); this._addEventListeners();
} // getters } // Getters
var _proto = Carousel.prototype; var _proto = Carousel.prototype;
// public // Public
_proto.next = function next() { _proto.next = function next() {
if (!this._isSliding) { if (!this._isSliding) {
this._slide(Direction.NEXT); this._slide(Direction.NEXT);
@ -719,7 +719,7 @@ var Carousel = function ($$$1) {
this._isSliding = null; this._isSliding = null;
this._activeElement = null; this._activeElement = null;
this._indicatorsElement = null; this._indicatorsElement = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -745,7 +745,7 @@ var Carousel = function ($$$1) {
}); });
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
// if it's a touch-enabled device, mouseenter/leave are fired as // If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel // part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it; // would stop cycling until user tapped out of it;
// here, we listen for touchend, explicitly pause the carousel // here, we listen for touchend, explicitly pause the carousel
@ -784,7 +784,6 @@ var Carousel = function ($$$1) {
break; break;
default: default:
return;
} }
}; };
@ -876,7 +875,7 @@ var Carousel = function ($$$1) {
} }
if (!activeElement || !nextElement) { if (!activeElement || !nextElement) {
// some weirdness is happening, so we bail // Some weirdness is happening, so we bail
return; return;
} }
@ -918,7 +917,7 @@ var Carousel = function ($$$1) {
if (isCycling) { if (isCycling) {
this.cycle(); this.cycle();
} }
}; // static }; // Static
Carousel._jQueryInterface = function _jQueryInterface(config) { Carousel._jQueryInterface = function _jQueryInterface(config) {
@ -942,7 +941,7 @@ var Carousel = function ($$$1) {
data.to(config); data.to(config);
} else if (typeof action === 'string') { } else if (typeof action === 'string') {
if (typeof data[action] === 'undefined') { if (typeof data[action] === 'undefined') {
throw new Error("No method named \"" + action + "\""); throw new TypeError("No method named \"" + action + "\"");
} }
data[action](); data[action]();
@ -1029,7 +1028,7 @@ var Carousel = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): collapse.js * Bootstrap (v4.0.0): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1041,7 +1040,7 @@ var Collapse = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'collapse'; var NAME = 'collapse';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.collapse'; var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1098,6 +1097,8 @@ var Collapse = function ($$$1) {
var selector = Util.getSelectorFromElement(elem); var selector = Util.getSelectorFromElement(elem);
if (selector !== null && $$$1(selector).filter(element).length > 0) { if (selector !== null && $$$1(selector).filter(element).length > 0) {
this._selector = selector;
this._triggerArray.push(elem); this._triggerArray.push(elem);
} }
} }
@ -1111,12 +1112,12 @@ var Collapse = function ($$$1) {
if (this._config.toggle) { if (this._config.toggle) {
this.toggle(); this.toggle();
} }
} // getters } // Getters
var _proto = Collapse.prototype; var _proto = Collapse.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
if ($$$1(this._element).hasClass(ClassName.SHOW)) { if ($$$1(this._element).hasClass(ClassName.SHOW)) {
this.hide(); this.hide();
@ -1136,15 +1137,15 @@ var Collapse = function ($$$1) {
var activesData; var activesData;
if (this._parent) { if (this._parent) {
actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES)); actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
if (!actives.length) { if (actives.length === 0) {
actives = null; actives = null;
} }
} }
if (actives) { if (actives) {
activesData = $$$1(actives).data(DATA_KEY); activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
if (activesData && activesData._isTransitioning) { if (activesData && activesData._isTransitioning) {
return; return;
@ -1159,7 +1160,7 @@ var Collapse = function ($$$1) {
} }
if (actives) { if (actives) {
Collapse._jQueryInterface.call($$$1(actives), 'hide'); Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
if (!activesData) { if (!activesData) {
$$$1(actives).data(DATA_KEY, null); $$$1(actives).data(DATA_KEY, null);
@ -1171,7 +1172,7 @@ var Collapse = function ($$$1) {
$$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
this._element.style[dimension] = 0; this._element.style[dimension] = 0;
if (this._triggerArray.length) { if (this._triggerArray.length > 0) {
$$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
} }
@ -1217,7 +1218,7 @@ var Collapse = function ($$$1) {
Util.reflow(this._element); Util.reflow(this._element);
$$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
if (this._triggerArray.length) { if (this._triggerArray.length > 0) {
for (var i = 0; i < this._triggerArray.length; i++) { for (var i = 0; i < this._triggerArray.length; i++) {
var trigger = this._triggerArray[i]; var trigger = this._triggerArray[i];
var selector = Util.getSelectorFromElement(trigger); var selector = Util.getSelectorFromElement(trigger);
@ -1261,12 +1262,12 @@ var Collapse = function ($$$1) {
this._element = null; this._element = null;
this._triggerArray = null; this._triggerArray = null;
this._isTransitioning = null; this._isTransitioning = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _extends({}, Default, config); config = _extends({}, Default, config);
config.toggle = Boolean(config.toggle); // coerce string values config.toggle = Boolean(config.toggle); // Coerce string values
Util.typeCheckConfig(NAME, config, DefaultType); Util.typeCheckConfig(NAME, config, DefaultType);
return config; return config;
@ -1283,7 +1284,7 @@ var Collapse = function ($$$1) {
var parent = null; var parent = null;
if (Util.isElement(this._config.parent)) { if (Util.isElement(this._config.parent)) {
parent = this._config.parent; // it's a jQuery object parent = this._config.parent; // It's a jQuery object
if (typeof this._config.parent.jquery !== 'undefined') { if (typeof this._config.parent.jquery !== 'undefined') {
parent = this._config.parent[0]; parent = this._config.parent[0];
@ -1303,11 +1304,11 @@ var Collapse = function ($$$1) {
if (element) { if (element) {
var isOpen = $$$1(element).hasClass(ClassName.SHOW); var isOpen = $$$1(element).hasClass(ClassName.SHOW);
if (triggerArray.length) { if (triggerArray.length > 0) {
$$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
} }
} }
}; // static }; // Static
Collapse._getTargetFromElement = function _getTargetFromElement(element) { Collapse._getTargetFromElement = function _getTargetFromElement(element) {
@ -1333,7 +1334,7 @@ var Collapse = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -1396,7 +1397,7 @@ var Collapse = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): dropdown.js * Bootstrap (v4.0.0): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1408,7 +1409,7 @@ var Dropdown = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'dropdown'; var NAME = 'dropdown';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.dropdown'; var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1491,12 +1492,12 @@ var Dropdown = function ($$$1) {
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
this._addEventListeners(); this._addEventListeners();
} // getters } // Getters
var _proto = Dropdown.prototype; var _proto = Dropdown.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) { if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
return; return;
@ -1529,10 +1530,10 @@ var Dropdown = function ($$$1) {
* Popper - https://popper.js.org * Popper - https://popper.js.org
*/ */
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)'); throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
} }
var element = this._element; // for dropup with alignment we use the parent as popper container var element = this._element; // For dropup with alignment we use the parent as popper container
if ($$$1(parent).hasClass(ClassName.DROPUP)) { if ($$$1(parent).hasClass(ClassName.DROPUP)) {
if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) { if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
@ -1548,13 +1549,13 @@ var Dropdown = function ($$$1) {
} }
this._popper = new Popper(element, this._menu, this._getPopperConfig()); this._popper = new Popper(element, this._menu, this._getPopperConfig());
} // if this is a touch-enabled device we add extra } // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ('ontouchstart' in document.documentElement && !$$$1(parent).closest(Selector.NAVBAR_NAV).length) { if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
$$$1('body').children().on('mouseover', null, $$$1.noop); $$$1('body').children().on('mouseover', null, $$$1.noop);
} }
@ -1585,7 +1586,7 @@ var Dropdown = function ($$$1) {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // private }; // Private
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
@ -1667,7 +1668,7 @@ var Dropdown = function ($$$1) {
} }
}; };
return popperConfig; return popperConfig;
}; // static }; // Static
Dropdown._jQueryInterface = function _jQueryInterface(config) { Dropdown._jQueryInterface = function _jQueryInterface(config) {
@ -1683,7 +1684,7 @@ var Dropdown = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -1725,7 +1726,7 @@ var Dropdown = function ($$$1) {
if (hideEvent.isDefaultPrevented()) { if (hideEvent.isDefaultPrevented()) {
continue; continue;
} // if this is a touch-enabled device we remove the extra } // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support // empty mouseover listeners we added for iOS support
@ -1748,7 +1749,8 @@ var Dropdown = function ($$$1) {
} }
return parent || element.parentNode; return parent || element.parentNode;
}; }; // eslint-disable-next-line complexity
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
// If not input/textarea: // If not input/textarea:
@ -1785,19 +1787,19 @@ var Dropdown = function ($$$1) {
var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get(); var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
if (!items.length) { if (items.length === 0) {
return; return;
} }
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === ARROW_UP_KEYCODE && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // Up
index--; index--;
} }
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // Down
index++; index++;
} }
@ -1860,7 +1862,7 @@ var Dropdown = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): modal.js * Bootstrap (v4.0.0): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1872,7 +1874,7 @@ var Modal = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'modal'; var NAME = 'modal';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.modal'; var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1941,12 +1943,12 @@ var Modal = function ($$$1) {
this._ignoreBackdropClick = false; this._ignoreBackdropClick = false;
this._originalBodyPadding = 0; this._originalBodyPadding = 0;
this._scrollbarWidth = 0; this._scrollbarWidth = 0;
} // getters } // Getters
var _proto = Modal.prototype; var _proto = Modal.prototype;
// public // Public
_proto.toggle = function toggle(relatedTarget) { _proto.toggle = function toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget); return this._isShown ? this.hide() : this.show(relatedTarget);
}; };
@ -2059,7 +2061,7 @@ var Modal = function ($$$1) {
_proto.handleUpdate = function handleUpdate() { _proto.handleUpdate = function handleUpdate() {
this._adjustDialog(); this._adjustDialog();
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -2074,7 +2076,7 @@ var Modal = function ($$$1) {
var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE); var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
// don't move modals dom position // Don't move modal's DOM position
document.body.appendChild(this._element); document.body.appendChild(this._element);
} }
@ -2117,9 +2119,9 @@ var Modal = function ($$$1) {
_proto._enforceFocus = function _enforceFocus() { _proto._enforceFocus = function _enforceFocus() {
var _this4 = this; var _this4 = this;
$$$1(document).off(Event.FOCUSIN) // guard against infinite focus loop $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
.on(Event.FOCUSIN, function (event) { .on(Event.FOCUSIN, function (event) {
if (document !== event.target && _this4._element !== event.target && !$$$1(_this4._element).has(event.target).length) { if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
_this4._element.focus(); _this4._element.focus();
} }
}); });
@ -2340,7 +2342,7 @@ var Modal = function ($$$1) {
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv); document.body.removeChild(scrollDiv);
return scrollbarWidth; return scrollbarWidth;
}; // static }; // Static
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
@ -2356,7 +2358,7 @@ var Modal = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](relatedTarget); data[config](relatedTarget);
@ -2404,7 +2406,7 @@ var Modal = function ($$$1) {
var $target = $$$1(target).one(Event.SHOW, function (showEvent) { var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
if (showEvent.isDefaultPrevented()) { if (showEvent.isDefaultPrevented()) {
// only register focus restorer if modal will actually get shown // Only register focus restorer if modal will actually get shown
return; return;
} }
@ -2436,7 +2438,7 @@ var Modal = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): tooltip.js * Bootstrap (v4.0.0): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -2448,7 +2450,7 @@ var Tooltip = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tooltip'; var NAME = 'tooltip';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.tooltip'; var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -2537,7 +2539,7 @@ var Tooltip = function ($$$1) {
* Popper - https://popper.js.org * Popper - https://popper.js.org
*/ */
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)'); throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
} // private } // private
@ -2545,19 +2547,19 @@ var Tooltip = function ($$$1) {
this._timeout = 0; this._timeout = 0;
this._hoverState = ''; this._hoverState = '';
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; // protected this._popper = null; // Protected
this.element = element; this.element = element;
this.config = this._getConfig(config); this.config = this._getConfig(config);
this.tip = null; this.tip = null;
this._setListeners(); this._setListeners();
} // getters } // Getters
var _proto = Tooltip.prototype; var _proto = Tooltip.prototype;
// public // Public
_proto.enable = function enable() { _proto.enable = function enable() {
this._isEnabled = true; this._isEnabled = true;
}; };
@ -2692,7 +2694,7 @@ var Tooltip = function ($$$1) {
_this._handlePopperPlacementChange(data); _this._handlePopperPlacementChange(data);
} }
}); });
$$$1(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@ -2755,7 +2757,7 @@ var Tooltip = function ($$$1) {
return; return;
} }
$$$1(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support // empty mouseover listeners we added for iOS support
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
@ -2779,7 +2781,7 @@ var Tooltip = function ($$$1) {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // protected }; // Protected
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
@ -2805,7 +2807,7 @@ var Tooltip = function ($$$1) {
var html = this.config.html; var html = this.config.html;
if (typeof content === 'object' && (content.nodeType || content.jquery)) { if (typeof content === 'object' && (content.nodeType || content.jquery)) {
// content is a DOM node or a jQuery // Content is a DOM node or a jQuery
if (html) { if (html) {
if (!$$$1(content).parent().is($element)) { if (!$$$1(content).parent().is($element)) {
$element.empty().append(content); $element.empty().append(content);
@ -2826,7 +2828,7 @@ var Tooltip = function ($$$1) {
} }
return title; return title;
}; // private }; // Private
_proto._getAttachment = function _getAttachment(placement) { _proto._getAttachment = function _getAttachment(placement) {
@ -3015,7 +3017,7 @@ var Tooltip = function ($$$1) {
this.hide(); this.hide();
this.show(); this.show();
this.config.animation = initConfigAnimation; this.config.animation = initConfigAnimation;
}; // static }; // Static
Tooltip._jQueryInterface = function _jQueryInterface(config) { Tooltip._jQueryInterface = function _jQueryInterface(config) {
@ -3035,7 +3037,7 @@ var Tooltip = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3101,7 +3103,7 @@ var Tooltip = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): popover.js * Bootstrap (v4.0.0): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3113,7 +3115,7 @@ var Popover = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'popover'; var NAME = 'popover';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.popover'; var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -3166,7 +3168,7 @@ var Popover = function ($$$1) {
var _proto = Popover.prototype; var _proto = Popover.prototype;
// overrides // Overrides
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
return this.getTitle() || this._getContent(); return this.getTitle() || this._getContent();
}; };
@ -3181,7 +3183,7 @@ var Popover = function ($$$1) {
}; };
_proto.setContent = function setContent() { _proto.setContent = function setContent() {
var $tip = $$$1(this.getTipElement()); // we use append for html objects to maintain js events var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
@ -3193,7 +3195,7 @@ var Popover = function ($$$1) {
this.setElementContent($tip.find(Selector.CONTENT), content); this.setElementContent($tip.find(Selector.CONTENT), content);
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
}; // private }; // Private
_proto._getContent = function _getContent() { _proto._getContent = function _getContent() {
@ -3207,7 +3209,7 @@ var Popover = function ($$$1) {
if (tabClass !== null && tabClass.length > 0) { if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join('')); $tip.removeClass(tabClass.join(''));
} }
}; // static }; // Static
Popover._jQueryInterface = function _jQueryInterface(config) { Popover._jQueryInterface = function _jQueryInterface(config) {
@ -3227,7 +3229,7 @@ var Popover = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3237,7 +3239,7 @@ var Popover = function ($$$1) {
_createClass(Popover, null, [{ _createClass(Popover, null, [{
key: "VERSION", key: "VERSION",
// getters // Getters
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
@ -3294,7 +3296,7 @@ var Popover = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): scrollspy.js * Bootstrap (v4.0.0): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3306,7 +3308,7 @@ var ScrollSpy = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'scrollspy'; var NAME = 'scrollspy';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.scrollspy'; var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -3373,16 +3375,16 @@ var ScrollSpy = function ($$$1) {
this.refresh(); this.refresh();
this._process(); this._process();
} // getters } // Getters
var _proto = ScrollSpy.prototype; var _proto = ScrollSpy.prototype;
// public // Public
_proto.refresh = function refresh() { _proto.refresh = function refresh() {
var _this2 = this; var _this2 = this;
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
this._offsets = []; this._offsets = [];
@ -3401,7 +3403,7 @@ var ScrollSpy = function ($$$1) {
var targetBCR = target.getBoundingClientRect(); var targetBCR = target.getBoundingClientRect();
if (targetBCR.width || targetBCR.height) { if (targetBCR.width || targetBCR.height) {
// todo (fat): remove sketch reliance on jQuery position/offset // TODO (fat): remove sketch reliance on jQuery position/offset
return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
} }
@ -3429,7 +3431,7 @@ var ScrollSpy = function ($$$1) {
this._targets = null; this._targets = null;
this._activeTarget = null; this._activeTarget = null;
this._scrollHeight = null; this._scrollHeight = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -3533,7 +3535,7 @@ var ScrollSpy = function ($$$1) {
_proto._clear = function _clear() { _proto._clear = function _clear() {
$$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
}; // static }; // Static
ScrollSpy._jQueryInterface = function _jQueryInterface(config) { ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
@ -3549,7 +3551,7 @@ var ScrollSpy = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3605,7 +3607,7 @@ var ScrollSpy = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): tab.js * Bootstrap (v4.0.0): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3617,7 +3619,7 @@ var Tab = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tab'; var NAME = 'tab';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.tab'; var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -3658,12 +3660,12 @@ var Tab = function ($$$1) {
function () { function () {
function Tab(element) { function Tab(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Tab.prototype; var _proto = Tab.prototype;
// public // Public
_proto.show = function show() { _proto.show = function show() {
var _this = this; var _this = this;
@ -3726,7 +3728,7 @@ var Tab = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // private }; // Private
_proto._activate = function _activate(element, container, callback) { _proto._activate = function _activate(element, container, callback) {
@ -3790,7 +3792,7 @@ var Tab = function ($$$1) {
if (callback) { if (callback) {
callback(); callback();
} }
}; // static }; // Static
Tab._jQueryInterface = function _jQueryInterface(config) { Tab._jQueryInterface = function _jQueryInterface(config) {
@ -3805,7 +3807,7 @@ var Tab = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3859,7 +3861,7 @@ var Tab = function ($$$1) {
(function ($$$1) { (function ($$$1) {
if (typeof $$$1 === 'undefined') { if (typeof $$$1 === 'undefined') {
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
} }
var version = $$$1.fn.jquery.split(' ')[0].split('.'); var version = $$$1.fn.jquery.split(' ')[0].split('.');

2
js/theme.min.js vendored

File diff suppressed because one or more lines are too long

8713
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -27,29 +27,29 @@
}, },
"homepage": "https://understrap.com", "homepage": "https://understrap.com",
"dependencies": { "dependencies": {
"bootstrap": "4.0.0-beta.3", "bootstrap": "4.0.0",
"browser-sync": "^2.22.0", "browser-sync": "^2.22.0",
"del": "^3.0.0", "del": "^3.0.0",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"gulp": "^3.9.1", "gulp": "^3.9.1",
"gulp-clean-css": "^3.9.1", "gulp-clean-css": "^3.9.1",
"gulp-clone": "^1.0.0", "gulp-clone": "^1.1.4",
"gulp-concat": "^2.6.1", "gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.2", "gulp-cssnano": "^2.1.2",
"gulp-ignore": "^2.0.2", "gulp-ignore": "^2.0.2",
"gulp-imagemin": "^4.0.0", "gulp-imagemin": "^4.0.0",
"gulp-merge": "^0.1.1", "gulp-merge": "^0.1.1",
"gulp-plumber": "^1.1.0", "gulp-plumber": "^1.2.0",
"gulp-rename": "^1.2.2", "gulp-rename": "^1.2.2",
"gulp-rimraf": "^0.2.1", "gulp-rimraf": "^0.2.2",
"gulp-sass": "^3.1.0", "gulp-sass": "^3.1.0",
"gulp-sequence": "^0.4.6", "gulp-sequence": "^0.4.6",
"gulp-sourcemaps": "2.6.2", "gulp-sourcemaps": "2.6.2",
"gulp-uglify": "^3.0.0", "gulp-uglify": "^3.0.0",
"gulp-watch": "^4.3.11", "gulp-watch": "^4.3.11",
"merge2": "^1.2.0", "merge2": "^1.2.1",
"popper.js": "^1.12.9", "popper.js": "^1.13.0",
"run-sequence": "^2.2.0", "run-sequence": "^2.2.1",
"undescores-for-npm": "^1.0.0" "undescores-for-npm": "^1.0.0"
} }
} }

View File

@ -1,7 +1,7 @@
/*! /*!
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors * Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc. * Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */

View File

@ -1,6 +1,6 @@
/*! /*!
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
@ -53,7 +53,7 @@ function _inheritsLoose(subClass, superClass) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): util.js * Bootstrap (v4.0.0): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -65,7 +65,7 @@ var Util = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var transition = false; var transition = false;
var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp) var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
function toType(obj) { function toType(obj) {
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
@ -86,7 +86,7 @@ var Util = function ($$$1) {
} }
function transitionEndTest() { function transitionEndTest() {
if (window.QUnit) { if (typeof window !== 'undefined' && window.QUnit) {
return false; return false;
} }
@ -120,7 +120,7 @@ var Util = function ($$$1) {
} }
function escapeId(selector) { function escapeId(selector) {
// we escape IDs in case of special selectors (selector = '#myId:something') // We escape IDs in case of special selectors (selector = '#myId:something')
// $.escapeSelector does not exist in jQuery < 3 // $.escapeSelector does not exist in jQuery < 3
selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1'); selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
return selector; return selector;
@ -147,7 +147,7 @@ var Util = function ($$$1) {
if (!selector || selector === '#') { if (!selector || selector === '#') {
selector = element.getAttribute('href') || ''; selector = element.getAttribute('href') || '';
} // if it's an ID } // If it's an ID
if (selector.charAt(0) === '#') { if (selector.charAt(0) === '#') {
@ -157,7 +157,7 @@ var Util = function ($$$1) {
try { try {
var $selector = $$$1(document).find(selector); var $selector = $$$1(document).find(selector);
return $selector.length > 0 ? selector : null; return $selector.length > 0 ? selector : null;
} catch (error) { } catch (err) {
return null; return null;
} }
}, },
@ -193,7 +193,7 @@ var Util = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): alert.js * Bootstrap (v4.0.0): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -205,7 +205,7 @@ var Alert = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -236,12 +236,12 @@ var Alert = function ($$$1) {
function () { function () {
function Alert(element) { function Alert(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Alert.prototype; var _proto = Alert.prototype;
// public // Public
_proto.close = function close(element) { _proto.close = function close(element) {
element = element || this._element; element = element || this._element;
@ -259,7 +259,7 @@ var Alert = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // private }; // Private
_proto._getRootElement = function _getRootElement(element) { _proto._getRootElement = function _getRootElement(element) {
@ -301,7 +301,7 @@ var Alert = function ($$$1) {
_proto._destroyElement = function _destroyElement(element) { _proto._destroyElement = function _destroyElement(element) {
$$$1(element).detach().trigger(Event.CLOSED).remove(); $$$1(element).detach().trigger(Event.CLOSED).remove();
}; // static }; // Static
Alert._jQueryInterface = function _jQueryInterface(config) { Alert._jQueryInterface = function _jQueryInterface(config) {
@ -365,7 +365,7 @@ var Alert = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): button.js * Bootstrap (v4.0.0): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -377,7 +377,7 @@ var Button = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'button'; var NAME = 'button';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.button'; var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -410,12 +410,12 @@ var Button = function ($$$1) {
function () { function () {
function Button(element) { function Button(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Button.prototype; var _proto = Button.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
var triggerChangeEvent = true; var triggerChangeEvent = true;
var addAriaPressed = true; var addAriaPressed = true;
@ -463,7 +463,7 @@ var Button = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // static }; // Static
Button._jQueryInterface = function _jQueryInterface(config) { Button._jQueryInterface = function _jQueryInterface(config) {
@ -528,7 +528,7 @@ var Button = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): carousel.js * Bootstrap (v4.0.0): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -540,7 +540,7 @@ var Carousel = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'carousel'; var NAME = 'carousel';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.carousel'; var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -623,12 +623,12 @@ var Carousel = function ($$$1) {
this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0]; this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
this._addEventListeners(); this._addEventListeners();
} // getters } // Getters
var _proto = Carousel.prototype; var _proto = Carousel.prototype;
// public // Public
_proto.next = function next() { _proto.next = function next() {
if (!this._isSliding) { if (!this._isSliding) {
this._slide(Direction.NEXT); this._slide(Direction.NEXT);
@ -718,7 +718,7 @@ var Carousel = function ($$$1) {
this._isSliding = null; this._isSliding = null;
this._activeElement = null; this._activeElement = null;
this._indicatorsElement = null; this._indicatorsElement = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -744,7 +744,7 @@ var Carousel = function ($$$1) {
}); });
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
// if it's a touch-enabled device, mouseenter/leave are fired as // If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel // part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it; // would stop cycling until user tapped out of it;
// here, we listen for touchend, explicitly pause the carousel // here, we listen for touchend, explicitly pause the carousel
@ -783,7 +783,6 @@ var Carousel = function ($$$1) {
break; break;
default: default:
return;
} }
}; };
@ -875,7 +874,7 @@ var Carousel = function ($$$1) {
} }
if (!activeElement || !nextElement) { if (!activeElement || !nextElement) {
// some weirdness is happening, so we bail // Some weirdness is happening, so we bail
return; return;
} }
@ -917,7 +916,7 @@ var Carousel = function ($$$1) {
if (isCycling) { if (isCycling) {
this.cycle(); this.cycle();
} }
}; // static }; // Static
Carousel._jQueryInterface = function _jQueryInterface(config) { Carousel._jQueryInterface = function _jQueryInterface(config) {
@ -941,7 +940,7 @@ var Carousel = function ($$$1) {
data.to(config); data.to(config);
} else if (typeof action === 'string') { } else if (typeof action === 'string') {
if (typeof data[action] === 'undefined') { if (typeof data[action] === 'undefined') {
throw new Error("No method named \"" + action + "\""); throw new TypeError("No method named \"" + action + "\"");
} }
data[action](); data[action]();
@ -1028,7 +1027,7 @@ var Carousel = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): collapse.js * Bootstrap (v4.0.0): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1040,7 +1039,7 @@ var Collapse = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'collapse'; var NAME = 'collapse';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.collapse'; var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1097,6 +1096,8 @@ var Collapse = function ($$$1) {
var selector = Util.getSelectorFromElement(elem); var selector = Util.getSelectorFromElement(elem);
if (selector !== null && $$$1(selector).filter(element).length > 0) { if (selector !== null && $$$1(selector).filter(element).length > 0) {
this._selector = selector;
this._triggerArray.push(elem); this._triggerArray.push(elem);
} }
} }
@ -1110,12 +1111,12 @@ var Collapse = function ($$$1) {
if (this._config.toggle) { if (this._config.toggle) {
this.toggle(); this.toggle();
} }
} // getters } // Getters
var _proto = Collapse.prototype; var _proto = Collapse.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
if ($$$1(this._element).hasClass(ClassName.SHOW)) { if ($$$1(this._element).hasClass(ClassName.SHOW)) {
this.hide(); this.hide();
@ -1135,15 +1136,15 @@ var Collapse = function ($$$1) {
var activesData; var activesData;
if (this._parent) { if (this._parent) {
actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES)); actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
if (!actives.length) { if (actives.length === 0) {
actives = null; actives = null;
} }
} }
if (actives) { if (actives) {
activesData = $$$1(actives).data(DATA_KEY); activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
if (activesData && activesData._isTransitioning) { if (activesData && activesData._isTransitioning) {
return; return;
@ -1158,7 +1159,7 @@ var Collapse = function ($$$1) {
} }
if (actives) { if (actives) {
Collapse._jQueryInterface.call($$$1(actives), 'hide'); Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
if (!activesData) { if (!activesData) {
$$$1(actives).data(DATA_KEY, null); $$$1(actives).data(DATA_KEY, null);
@ -1170,7 +1171,7 @@ var Collapse = function ($$$1) {
$$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
this._element.style[dimension] = 0; this._element.style[dimension] = 0;
if (this._triggerArray.length) { if (this._triggerArray.length > 0) {
$$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
} }
@ -1216,7 +1217,7 @@ var Collapse = function ($$$1) {
Util.reflow(this._element); Util.reflow(this._element);
$$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
if (this._triggerArray.length) { if (this._triggerArray.length > 0) {
for (var i = 0; i < this._triggerArray.length; i++) { for (var i = 0; i < this._triggerArray.length; i++) {
var trigger = this._triggerArray[i]; var trigger = this._triggerArray[i];
var selector = Util.getSelectorFromElement(trigger); var selector = Util.getSelectorFromElement(trigger);
@ -1260,12 +1261,12 @@ var Collapse = function ($$$1) {
this._element = null; this._element = null;
this._triggerArray = null; this._triggerArray = null;
this._isTransitioning = null; this._isTransitioning = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _extends({}, Default, config); config = _extends({}, Default, config);
config.toggle = Boolean(config.toggle); // coerce string values config.toggle = Boolean(config.toggle); // Coerce string values
Util.typeCheckConfig(NAME, config, DefaultType); Util.typeCheckConfig(NAME, config, DefaultType);
return config; return config;
@ -1282,7 +1283,7 @@ var Collapse = function ($$$1) {
var parent = null; var parent = null;
if (Util.isElement(this._config.parent)) { if (Util.isElement(this._config.parent)) {
parent = this._config.parent; // it's a jQuery object parent = this._config.parent; // It's a jQuery object
if (typeof this._config.parent.jquery !== 'undefined') { if (typeof this._config.parent.jquery !== 'undefined') {
parent = this._config.parent[0]; parent = this._config.parent[0];
@ -1302,11 +1303,11 @@ var Collapse = function ($$$1) {
if (element) { if (element) {
var isOpen = $$$1(element).hasClass(ClassName.SHOW); var isOpen = $$$1(element).hasClass(ClassName.SHOW);
if (triggerArray.length) { if (triggerArray.length > 0) {
$$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
} }
} }
}; // static }; // Static
Collapse._getTargetFromElement = function _getTargetFromElement(element) { Collapse._getTargetFromElement = function _getTargetFromElement(element) {
@ -1332,7 +1333,7 @@ var Collapse = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3830,7 +3831,7 @@ Popper.Defaults = Defaults;
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): dropdown.js * Bootstrap (v4.0.0): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3842,7 +3843,7 @@ var Dropdown = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'dropdown'; var NAME = 'dropdown';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.dropdown'; var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -3925,12 +3926,12 @@ var Dropdown = function ($$$1) {
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
this._addEventListeners(); this._addEventListeners();
} // getters } // Getters
var _proto = Dropdown.prototype; var _proto = Dropdown.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) { if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
return; return;
@ -3963,10 +3964,10 @@ var Dropdown = function ($$$1) {
* Popper - https://popper.js.org * Popper - https://popper.js.org
*/ */
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)'); throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
} }
var element = this._element; // for dropup with alignment we use the parent as popper container var element = this._element; // For dropup with alignment we use the parent as popper container
if ($$$1(parent).hasClass(ClassName.DROPUP)) { if ($$$1(parent).hasClass(ClassName.DROPUP)) {
if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) { if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
@ -3982,13 +3983,13 @@ var Dropdown = function ($$$1) {
} }
this._popper = new Popper(element, this._menu, this._getPopperConfig()); this._popper = new Popper(element, this._menu, this._getPopperConfig());
} // if this is a touch-enabled device we add extra } // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ('ontouchstart' in document.documentElement && !$$$1(parent).closest(Selector.NAVBAR_NAV).length) { if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
$$$1('body').children().on('mouseover', null, $$$1.noop); $$$1('body').children().on('mouseover', null, $$$1.noop);
} }
@ -4019,7 +4020,7 @@ var Dropdown = function ($$$1) {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // private }; // Private
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
@ -4101,7 +4102,7 @@ var Dropdown = function ($$$1) {
} }
}; };
return popperConfig; return popperConfig;
}; // static }; // Static
Dropdown._jQueryInterface = function _jQueryInterface(config) { Dropdown._jQueryInterface = function _jQueryInterface(config) {
@ -4117,7 +4118,7 @@ var Dropdown = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -4159,7 +4160,7 @@ var Dropdown = function ($$$1) {
if (hideEvent.isDefaultPrevented()) { if (hideEvent.isDefaultPrevented()) {
continue; continue;
} // if this is a touch-enabled device we remove the extra } // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support // empty mouseover listeners we added for iOS support
@ -4182,7 +4183,8 @@ var Dropdown = function ($$$1) {
} }
return parent || element.parentNode; return parent || element.parentNode;
}; }; // eslint-disable-next-line complexity
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
// If not input/textarea: // If not input/textarea:
@ -4219,19 +4221,19 @@ var Dropdown = function ($$$1) {
var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get(); var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
if (!items.length) { if (items.length === 0) {
return; return;
} }
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === ARROW_UP_KEYCODE && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // Up
index--; index--;
} }
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // Down
index++; index++;
} }
@ -4294,7 +4296,7 @@ var Dropdown = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): modal.js * Bootstrap (v4.0.0): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -4306,7 +4308,7 @@ var Modal = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'modal'; var NAME = 'modal';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.modal'; var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -4375,12 +4377,12 @@ var Modal = function ($$$1) {
this._ignoreBackdropClick = false; this._ignoreBackdropClick = false;
this._originalBodyPadding = 0; this._originalBodyPadding = 0;
this._scrollbarWidth = 0; this._scrollbarWidth = 0;
} // getters } // Getters
var _proto = Modal.prototype; var _proto = Modal.prototype;
// public // Public
_proto.toggle = function toggle(relatedTarget) { _proto.toggle = function toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget); return this._isShown ? this.hide() : this.show(relatedTarget);
}; };
@ -4493,7 +4495,7 @@ var Modal = function ($$$1) {
_proto.handleUpdate = function handleUpdate() { _proto.handleUpdate = function handleUpdate() {
this._adjustDialog(); this._adjustDialog();
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -4508,7 +4510,7 @@ var Modal = function ($$$1) {
var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE); var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
// don't move modals dom position // Don't move modal's DOM position
document.body.appendChild(this._element); document.body.appendChild(this._element);
} }
@ -4551,9 +4553,9 @@ var Modal = function ($$$1) {
_proto._enforceFocus = function _enforceFocus() { _proto._enforceFocus = function _enforceFocus() {
var _this4 = this; var _this4 = this;
$$$1(document).off(Event.FOCUSIN) // guard against infinite focus loop $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
.on(Event.FOCUSIN, function (event) { .on(Event.FOCUSIN, function (event) {
if (document !== event.target && _this4._element !== event.target && !$$$1(_this4._element).has(event.target).length) { if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
_this4._element.focus(); _this4._element.focus();
} }
}); });
@ -4774,7 +4776,7 @@ var Modal = function ($$$1) {
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv); document.body.removeChild(scrollDiv);
return scrollbarWidth; return scrollbarWidth;
}; // static }; // Static
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
@ -4790,7 +4792,7 @@ var Modal = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](relatedTarget); data[config](relatedTarget);
@ -4838,7 +4840,7 @@ var Modal = function ($$$1) {
var $target = $$$1(target).one(Event.SHOW, function (showEvent) { var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
if (showEvent.isDefaultPrevented()) { if (showEvent.isDefaultPrevented()) {
// only register focus restorer if modal will actually get shown // Only register focus restorer if modal will actually get shown
return; return;
} }
@ -4870,7 +4872,7 @@ var Modal = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): tooltip.js * Bootstrap (v4.0.0): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -4882,7 +4884,7 @@ var Tooltip = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tooltip'; var NAME = 'tooltip';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.tooltip'; var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -4971,7 +4973,7 @@ var Tooltip = function ($$$1) {
* Popper - https://popper.js.org * Popper - https://popper.js.org
*/ */
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)'); throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
} // private } // private
@ -4979,19 +4981,19 @@ var Tooltip = function ($$$1) {
this._timeout = 0; this._timeout = 0;
this._hoverState = ''; this._hoverState = '';
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; // protected this._popper = null; // Protected
this.element = element; this.element = element;
this.config = this._getConfig(config); this.config = this._getConfig(config);
this.tip = null; this.tip = null;
this._setListeners(); this._setListeners();
} // getters } // Getters
var _proto = Tooltip.prototype; var _proto = Tooltip.prototype;
// public // Public
_proto.enable = function enable() { _proto.enable = function enable() {
this._isEnabled = true; this._isEnabled = true;
}; };
@ -5126,7 +5128,7 @@ var Tooltip = function ($$$1) {
_this._handlePopperPlacementChange(data); _this._handlePopperPlacementChange(data);
} }
}); });
$$$1(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@ -5189,7 +5191,7 @@ var Tooltip = function ($$$1) {
return; return;
} }
$$$1(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support // empty mouseover listeners we added for iOS support
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
@ -5213,7 +5215,7 @@ var Tooltip = function ($$$1) {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // protected }; // Protected
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
@ -5239,7 +5241,7 @@ var Tooltip = function ($$$1) {
var html = this.config.html; var html = this.config.html;
if (typeof content === 'object' && (content.nodeType || content.jquery)) { if (typeof content === 'object' && (content.nodeType || content.jquery)) {
// content is a DOM node or a jQuery // Content is a DOM node or a jQuery
if (html) { if (html) {
if (!$$$1(content).parent().is($element)) { if (!$$$1(content).parent().is($element)) {
$element.empty().append(content); $element.empty().append(content);
@ -5260,7 +5262,7 @@ var Tooltip = function ($$$1) {
} }
return title; return title;
}; // private }; // Private
_proto._getAttachment = function _getAttachment(placement) { _proto._getAttachment = function _getAttachment(placement) {
@ -5449,7 +5451,7 @@ var Tooltip = function ($$$1) {
this.hide(); this.hide();
this.show(); this.show();
this.config.animation = initConfigAnimation; this.config.animation = initConfigAnimation;
}; // static }; // Static
Tooltip._jQueryInterface = function _jQueryInterface(config) { Tooltip._jQueryInterface = function _jQueryInterface(config) {
@ -5469,7 +5471,7 @@ var Tooltip = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -5535,7 +5537,7 @@ var Tooltip = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): popover.js * Bootstrap (v4.0.0): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -5547,7 +5549,7 @@ var Popover = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'popover'; var NAME = 'popover';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.popover'; var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -5600,7 +5602,7 @@ var Popover = function ($$$1) {
var _proto = Popover.prototype; var _proto = Popover.prototype;
// overrides // Overrides
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
return this.getTitle() || this._getContent(); return this.getTitle() || this._getContent();
}; };
@ -5615,7 +5617,7 @@ var Popover = function ($$$1) {
}; };
_proto.setContent = function setContent() { _proto.setContent = function setContent() {
var $tip = $$$1(this.getTipElement()); // we use append for html objects to maintain js events var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
@ -5627,7 +5629,7 @@ var Popover = function ($$$1) {
this.setElementContent($tip.find(Selector.CONTENT), content); this.setElementContent($tip.find(Selector.CONTENT), content);
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
}; // private }; // Private
_proto._getContent = function _getContent() { _proto._getContent = function _getContent() {
@ -5641,7 +5643,7 @@ var Popover = function ($$$1) {
if (tabClass !== null && tabClass.length > 0) { if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join('')); $tip.removeClass(tabClass.join(''));
} }
}; // static }; // Static
Popover._jQueryInterface = function _jQueryInterface(config) { Popover._jQueryInterface = function _jQueryInterface(config) {
@ -5661,7 +5663,7 @@ var Popover = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -5671,7 +5673,7 @@ var Popover = function ($$$1) {
_createClass(Popover, null, [{ _createClass(Popover, null, [{
key: "VERSION", key: "VERSION",
// getters // Getters
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
@ -5728,7 +5730,7 @@ var Popover = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): scrollspy.js * Bootstrap (v4.0.0): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -5740,7 +5742,7 @@ var ScrollSpy = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'scrollspy'; var NAME = 'scrollspy';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.scrollspy'; var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -5807,16 +5809,16 @@ var ScrollSpy = function ($$$1) {
this.refresh(); this.refresh();
this._process(); this._process();
} // getters } // Getters
var _proto = ScrollSpy.prototype; var _proto = ScrollSpy.prototype;
// public // Public
_proto.refresh = function refresh() { _proto.refresh = function refresh() {
var _this2 = this; var _this2 = this;
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
this._offsets = []; this._offsets = [];
@ -5835,7 +5837,7 @@ var ScrollSpy = function ($$$1) {
var targetBCR = target.getBoundingClientRect(); var targetBCR = target.getBoundingClientRect();
if (targetBCR.width || targetBCR.height) { if (targetBCR.width || targetBCR.height) {
// todo (fat): remove sketch reliance on jQuery position/offset // TODO (fat): remove sketch reliance on jQuery position/offset
return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
} }
@ -5863,7 +5865,7 @@ var ScrollSpy = function ($$$1) {
this._targets = null; this._targets = null;
this._activeTarget = null; this._activeTarget = null;
this._scrollHeight = null; this._scrollHeight = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -5967,7 +5969,7 @@ var ScrollSpy = function ($$$1) {
_proto._clear = function _clear() { _proto._clear = function _clear() {
$$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
}; // static }; // Static
ScrollSpy._jQueryInterface = function _jQueryInterface(config) { ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
@ -5983,7 +5985,7 @@ var ScrollSpy = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -6039,7 +6041,7 @@ var ScrollSpy = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): tab.js * Bootstrap (v4.0.0): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -6051,7 +6053,7 @@ var Tab = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tab'; var NAME = 'tab';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.tab'; var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -6092,12 +6094,12 @@ var Tab = function ($$$1) {
function () { function () {
function Tab(element) { function Tab(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Tab.prototype; var _proto = Tab.prototype;
// public // Public
_proto.show = function show() { _proto.show = function show() {
var _this = this; var _this = this;
@ -6160,7 +6162,7 @@ var Tab = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // private }; // Private
_proto._activate = function _activate(element, container, callback) { _proto._activate = function _activate(element, container, callback) {
@ -6224,7 +6226,7 @@ var Tab = function ($$$1) {
if (callback) { if (callback) {
callback(); callback();
} }
}; // static }; // Static
Tab._jQueryInterface = function _jQueryInterface(config) { Tab._jQueryInterface = function _jQueryInterface(config) {
@ -6239,7 +6241,7 @@ var Tab = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -6293,7 +6295,7 @@ var Tab = function ($$$1) {
(function ($$$1) { (function ($$$1) {
if (typeof $$$1 === 'undefined') { if (typeof $$$1 === 'undefined') {
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
} }
var version = $$$1.fn.jquery.split(' ')[0].split('.'); var version = $$$1.fn.jquery.split(' ')[0].split('.');

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
/*! /*!
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
@ -54,7 +54,7 @@ function _inheritsLoose(subClass, superClass) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): util.js * Bootstrap (v4.0.0): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -66,7 +66,7 @@ var Util = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var transition = false; var transition = false;
var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp) var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
function toType(obj) { function toType(obj) {
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
@ -87,7 +87,7 @@ var Util = function ($$$1) {
} }
function transitionEndTest() { function transitionEndTest() {
if (window.QUnit) { if (typeof window !== 'undefined' && window.QUnit) {
return false; return false;
} }
@ -121,7 +121,7 @@ var Util = function ($$$1) {
} }
function escapeId(selector) { function escapeId(selector) {
// we escape IDs in case of special selectors (selector = '#myId:something') // We escape IDs in case of special selectors (selector = '#myId:something')
// $.escapeSelector does not exist in jQuery < 3 // $.escapeSelector does not exist in jQuery < 3
selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1'); selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
return selector; return selector;
@ -148,7 +148,7 @@ var Util = function ($$$1) {
if (!selector || selector === '#') { if (!selector || selector === '#') {
selector = element.getAttribute('href') || ''; selector = element.getAttribute('href') || '';
} // if it's an ID } // If it's an ID
if (selector.charAt(0) === '#') { if (selector.charAt(0) === '#') {
@ -158,7 +158,7 @@ var Util = function ($$$1) {
try { try {
var $selector = $$$1(document).find(selector); var $selector = $$$1(document).find(selector);
return $selector.length > 0 ? selector : null; return $selector.length > 0 ? selector : null;
} catch (error) { } catch (err) {
return null; return null;
} }
}, },
@ -194,7 +194,7 @@ var Util = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): alert.js * Bootstrap (v4.0.0): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -206,7 +206,7 @@ var Alert = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -237,12 +237,12 @@ var Alert = function ($$$1) {
function () { function () {
function Alert(element) { function Alert(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Alert.prototype; var _proto = Alert.prototype;
// public // Public
_proto.close = function close(element) { _proto.close = function close(element) {
element = element || this._element; element = element || this._element;
@ -260,7 +260,7 @@ var Alert = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // private }; // Private
_proto._getRootElement = function _getRootElement(element) { _proto._getRootElement = function _getRootElement(element) {
@ -302,7 +302,7 @@ var Alert = function ($$$1) {
_proto._destroyElement = function _destroyElement(element) { _proto._destroyElement = function _destroyElement(element) {
$$$1(element).detach().trigger(Event.CLOSED).remove(); $$$1(element).detach().trigger(Event.CLOSED).remove();
}; // static }; // Static
Alert._jQueryInterface = function _jQueryInterface(config) { Alert._jQueryInterface = function _jQueryInterface(config) {
@ -366,7 +366,7 @@ var Alert = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): button.js * Bootstrap (v4.0.0): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -378,7 +378,7 @@ var Button = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'button'; var NAME = 'button';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.button'; var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -411,12 +411,12 @@ var Button = function ($$$1) {
function () { function () {
function Button(element) { function Button(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Button.prototype; var _proto = Button.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
var triggerChangeEvent = true; var triggerChangeEvent = true;
var addAriaPressed = true; var addAriaPressed = true;
@ -464,7 +464,7 @@ var Button = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // static }; // Static
Button._jQueryInterface = function _jQueryInterface(config) { Button._jQueryInterface = function _jQueryInterface(config) {
@ -529,7 +529,7 @@ var Button = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): carousel.js * Bootstrap (v4.0.0): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -541,7 +541,7 @@ var Carousel = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'carousel'; var NAME = 'carousel';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.carousel'; var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -624,12 +624,12 @@ var Carousel = function ($$$1) {
this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0]; this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
this._addEventListeners(); this._addEventListeners();
} // getters } // Getters
var _proto = Carousel.prototype; var _proto = Carousel.prototype;
// public // Public
_proto.next = function next() { _proto.next = function next() {
if (!this._isSliding) { if (!this._isSliding) {
this._slide(Direction.NEXT); this._slide(Direction.NEXT);
@ -719,7 +719,7 @@ var Carousel = function ($$$1) {
this._isSliding = null; this._isSliding = null;
this._activeElement = null; this._activeElement = null;
this._indicatorsElement = null; this._indicatorsElement = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -745,7 +745,7 @@ var Carousel = function ($$$1) {
}); });
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
// if it's a touch-enabled device, mouseenter/leave are fired as // If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel // part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it; // would stop cycling until user tapped out of it;
// here, we listen for touchend, explicitly pause the carousel // here, we listen for touchend, explicitly pause the carousel
@ -784,7 +784,6 @@ var Carousel = function ($$$1) {
break; break;
default: default:
return;
} }
}; };
@ -876,7 +875,7 @@ var Carousel = function ($$$1) {
} }
if (!activeElement || !nextElement) { if (!activeElement || !nextElement) {
// some weirdness is happening, so we bail // Some weirdness is happening, so we bail
return; return;
} }
@ -918,7 +917,7 @@ var Carousel = function ($$$1) {
if (isCycling) { if (isCycling) {
this.cycle(); this.cycle();
} }
}; // static }; // Static
Carousel._jQueryInterface = function _jQueryInterface(config) { Carousel._jQueryInterface = function _jQueryInterface(config) {
@ -942,7 +941,7 @@ var Carousel = function ($$$1) {
data.to(config); data.to(config);
} else if (typeof action === 'string') { } else if (typeof action === 'string') {
if (typeof data[action] === 'undefined') { if (typeof data[action] === 'undefined') {
throw new Error("No method named \"" + action + "\""); throw new TypeError("No method named \"" + action + "\"");
} }
data[action](); data[action]();
@ -1029,7 +1028,7 @@ var Carousel = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): collapse.js * Bootstrap (v4.0.0): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1041,7 +1040,7 @@ var Collapse = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'collapse'; var NAME = 'collapse';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.collapse'; var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1098,6 +1097,8 @@ var Collapse = function ($$$1) {
var selector = Util.getSelectorFromElement(elem); var selector = Util.getSelectorFromElement(elem);
if (selector !== null && $$$1(selector).filter(element).length > 0) { if (selector !== null && $$$1(selector).filter(element).length > 0) {
this._selector = selector;
this._triggerArray.push(elem); this._triggerArray.push(elem);
} }
} }
@ -1111,12 +1112,12 @@ var Collapse = function ($$$1) {
if (this._config.toggle) { if (this._config.toggle) {
this.toggle(); this.toggle();
} }
} // getters } // Getters
var _proto = Collapse.prototype; var _proto = Collapse.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
if ($$$1(this._element).hasClass(ClassName.SHOW)) { if ($$$1(this._element).hasClass(ClassName.SHOW)) {
this.hide(); this.hide();
@ -1136,15 +1137,15 @@ var Collapse = function ($$$1) {
var activesData; var activesData;
if (this._parent) { if (this._parent) {
actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES)); actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
if (!actives.length) { if (actives.length === 0) {
actives = null; actives = null;
} }
} }
if (actives) { if (actives) {
activesData = $$$1(actives).data(DATA_KEY); activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
if (activesData && activesData._isTransitioning) { if (activesData && activesData._isTransitioning) {
return; return;
@ -1159,7 +1160,7 @@ var Collapse = function ($$$1) {
} }
if (actives) { if (actives) {
Collapse._jQueryInterface.call($$$1(actives), 'hide'); Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
if (!activesData) { if (!activesData) {
$$$1(actives).data(DATA_KEY, null); $$$1(actives).data(DATA_KEY, null);
@ -1171,7 +1172,7 @@ var Collapse = function ($$$1) {
$$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
this._element.style[dimension] = 0; this._element.style[dimension] = 0;
if (this._triggerArray.length) { if (this._triggerArray.length > 0) {
$$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
} }
@ -1217,7 +1218,7 @@ var Collapse = function ($$$1) {
Util.reflow(this._element); Util.reflow(this._element);
$$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
if (this._triggerArray.length) { if (this._triggerArray.length > 0) {
for (var i = 0; i < this._triggerArray.length; i++) { for (var i = 0; i < this._triggerArray.length; i++) {
var trigger = this._triggerArray[i]; var trigger = this._triggerArray[i];
var selector = Util.getSelectorFromElement(trigger); var selector = Util.getSelectorFromElement(trigger);
@ -1261,12 +1262,12 @@ var Collapse = function ($$$1) {
this._element = null; this._element = null;
this._triggerArray = null; this._triggerArray = null;
this._isTransitioning = null; this._isTransitioning = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _extends({}, Default, config); config = _extends({}, Default, config);
config.toggle = Boolean(config.toggle); // coerce string values config.toggle = Boolean(config.toggle); // Coerce string values
Util.typeCheckConfig(NAME, config, DefaultType); Util.typeCheckConfig(NAME, config, DefaultType);
return config; return config;
@ -1283,7 +1284,7 @@ var Collapse = function ($$$1) {
var parent = null; var parent = null;
if (Util.isElement(this._config.parent)) { if (Util.isElement(this._config.parent)) {
parent = this._config.parent; // it's a jQuery object parent = this._config.parent; // It's a jQuery object
if (typeof this._config.parent.jquery !== 'undefined') { if (typeof this._config.parent.jquery !== 'undefined') {
parent = this._config.parent[0]; parent = this._config.parent[0];
@ -1303,11 +1304,11 @@ var Collapse = function ($$$1) {
if (element) { if (element) {
var isOpen = $$$1(element).hasClass(ClassName.SHOW); var isOpen = $$$1(element).hasClass(ClassName.SHOW);
if (triggerArray.length) { if (triggerArray.length > 0) {
$$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
} }
} }
}; // static }; // Static
Collapse._getTargetFromElement = function _getTargetFromElement(element) { Collapse._getTargetFromElement = function _getTargetFromElement(element) {
@ -1333,7 +1334,7 @@ var Collapse = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -1396,7 +1397,7 @@ var Collapse = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): dropdown.js * Bootstrap (v4.0.0): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1408,7 +1409,7 @@ var Dropdown = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'dropdown'; var NAME = 'dropdown';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.dropdown'; var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1491,12 +1492,12 @@ var Dropdown = function ($$$1) {
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
this._addEventListeners(); this._addEventListeners();
} // getters } // Getters
var _proto = Dropdown.prototype; var _proto = Dropdown.prototype;
// public // Public
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) { if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
return; return;
@ -1529,10 +1530,10 @@ var Dropdown = function ($$$1) {
* Popper - https://popper.js.org * Popper - https://popper.js.org
*/ */
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)'); throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
} }
var element = this._element; // for dropup with alignment we use the parent as popper container var element = this._element; // For dropup with alignment we use the parent as popper container
if ($$$1(parent).hasClass(ClassName.DROPUP)) { if ($$$1(parent).hasClass(ClassName.DROPUP)) {
if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) { if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
@ -1548,13 +1549,13 @@ var Dropdown = function ($$$1) {
} }
this._popper = new Popper(element, this._menu, this._getPopperConfig()); this._popper = new Popper(element, this._menu, this._getPopperConfig());
} // if this is a touch-enabled device we add extra } // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ('ontouchstart' in document.documentElement && !$$$1(parent).closest(Selector.NAVBAR_NAV).length) { if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
$$$1('body').children().on('mouseover', null, $$$1.noop); $$$1('body').children().on('mouseover', null, $$$1.noop);
} }
@ -1585,7 +1586,7 @@ var Dropdown = function ($$$1) {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // private }; // Private
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
@ -1667,7 +1668,7 @@ var Dropdown = function ($$$1) {
} }
}; };
return popperConfig; return popperConfig;
}; // static }; // Static
Dropdown._jQueryInterface = function _jQueryInterface(config) { Dropdown._jQueryInterface = function _jQueryInterface(config) {
@ -1683,7 +1684,7 @@ var Dropdown = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -1725,7 +1726,7 @@ var Dropdown = function ($$$1) {
if (hideEvent.isDefaultPrevented()) { if (hideEvent.isDefaultPrevented()) {
continue; continue;
} // if this is a touch-enabled device we remove the extra } // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support // empty mouseover listeners we added for iOS support
@ -1748,7 +1749,8 @@ var Dropdown = function ($$$1) {
} }
return parent || element.parentNode; return parent || element.parentNode;
}; }; // eslint-disable-next-line complexity
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
// If not input/textarea: // If not input/textarea:
@ -1785,19 +1787,19 @@ var Dropdown = function ($$$1) {
var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get(); var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
if (!items.length) { if (items.length === 0) {
return; return;
} }
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === ARROW_UP_KEYCODE && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // Up
index--; index--;
} }
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // Down
index++; index++;
} }
@ -1860,7 +1862,7 @@ var Dropdown = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): modal.js * Bootstrap (v4.0.0): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -1872,7 +1874,7 @@ var Modal = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'modal'; var NAME = 'modal';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.modal'; var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -1941,12 +1943,12 @@ var Modal = function ($$$1) {
this._ignoreBackdropClick = false; this._ignoreBackdropClick = false;
this._originalBodyPadding = 0; this._originalBodyPadding = 0;
this._scrollbarWidth = 0; this._scrollbarWidth = 0;
} // getters } // Getters
var _proto = Modal.prototype; var _proto = Modal.prototype;
// public // Public
_proto.toggle = function toggle(relatedTarget) { _proto.toggle = function toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget); return this._isShown ? this.hide() : this.show(relatedTarget);
}; };
@ -2059,7 +2061,7 @@ var Modal = function ($$$1) {
_proto.handleUpdate = function handleUpdate() { _proto.handleUpdate = function handleUpdate() {
this._adjustDialog(); this._adjustDialog();
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -2074,7 +2076,7 @@ var Modal = function ($$$1) {
var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE); var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
// don't move modals dom position // Don't move modal's DOM position
document.body.appendChild(this._element); document.body.appendChild(this._element);
} }
@ -2117,9 +2119,9 @@ var Modal = function ($$$1) {
_proto._enforceFocus = function _enforceFocus() { _proto._enforceFocus = function _enforceFocus() {
var _this4 = this; var _this4 = this;
$$$1(document).off(Event.FOCUSIN) // guard against infinite focus loop $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
.on(Event.FOCUSIN, function (event) { .on(Event.FOCUSIN, function (event) {
if (document !== event.target && _this4._element !== event.target && !$$$1(_this4._element).has(event.target).length) { if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
_this4._element.focus(); _this4._element.focus();
} }
}); });
@ -2340,7 +2342,7 @@ var Modal = function ($$$1) {
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv); document.body.removeChild(scrollDiv);
return scrollbarWidth; return scrollbarWidth;
}; // static }; // Static
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
@ -2356,7 +2358,7 @@ var Modal = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](relatedTarget); data[config](relatedTarget);
@ -2404,7 +2406,7 @@ var Modal = function ($$$1) {
var $target = $$$1(target).one(Event.SHOW, function (showEvent) { var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
if (showEvent.isDefaultPrevented()) { if (showEvent.isDefaultPrevented()) {
// only register focus restorer if modal will actually get shown // Only register focus restorer if modal will actually get shown
return; return;
} }
@ -2436,7 +2438,7 @@ var Modal = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): tooltip.js * Bootstrap (v4.0.0): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -2448,7 +2450,7 @@ var Tooltip = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tooltip'; var NAME = 'tooltip';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.tooltip'; var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -2537,7 +2539,7 @@ var Tooltip = function ($$$1) {
* Popper - https://popper.js.org * Popper - https://popper.js.org
*/ */
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)'); throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
} // private } // private
@ -2545,19 +2547,19 @@ var Tooltip = function ($$$1) {
this._timeout = 0; this._timeout = 0;
this._hoverState = ''; this._hoverState = '';
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; // protected this._popper = null; // Protected
this.element = element; this.element = element;
this.config = this._getConfig(config); this.config = this._getConfig(config);
this.tip = null; this.tip = null;
this._setListeners(); this._setListeners();
} // getters } // Getters
var _proto = Tooltip.prototype; var _proto = Tooltip.prototype;
// public // Public
_proto.enable = function enable() { _proto.enable = function enable() {
this._isEnabled = true; this._isEnabled = true;
}; };
@ -2692,7 +2694,7 @@ var Tooltip = function ($$$1) {
_this._handlePopperPlacementChange(data); _this._handlePopperPlacementChange(data);
} }
}); });
$$$1(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@ -2755,7 +2757,7 @@ var Tooltip = function ($$$1) {
return; return;
} }
$$$1(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support // empty mouseover listeners we added for iOS support
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
@ -2779,7 +2781,7 @@ var Tooltip = function ($$$1) {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // protected }; // Protected
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
@ -2805,7 +2807,7 @@ var Tooltip = function ($$$1) {
var html = this.config.html; var html = this.config.html;
if (typeof content === 'object' && (content.nodeType || content.jquery)) { if (typeof content === 'object' && (content.nodeType || content.jquery)) {
// content is a DOM node or a jQuery // Content is a DOM node or a jQuery
if (html) { if (html) {
if (!$$$1(content).parent().is($element)) { if (!$$$1(content).parent().is($element)) {
$element.empty().append(content); $element.empty().append(content);
@ -2826,7 +2828,7 @@ var Tooltip = function ($$$1) {
} }
return title; return title;
}; // private }; // Private
_proto._getAttachment = function _getAttachment(placement) { _proto._getAttachment = function _getAttachment(placement) {
@ -3015,7 +3017,7 @@ var Tooltip = function ($$$1) {
this.hide(); this.hide();
this.show(); this.show();
this.config.animation = initConfigAnimation; this.config.animation = initConfigAnimation;
}; // static }; // Static
Tooltip._jQueryInterface = function _jQueryInterface(config) { Tooltip._jQueryInterface = function _jQueryInterface(config) {
@ -3035,7 +3037,7 @@ var Tooltip = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3101,7 +3103,7 @@ var Tooltip = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): popover.js * Bootstrap (v4.0.0): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3113,7 +3115,7 @@ var Popover = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'popover'; var NAME = 'popover';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.popover'; var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@ -3166,7 +3168,7 @@ var Popover = function ($$$1) {
var _proto = Popover.prototype; var _proto = Popover.prototype;
// overrides // Overrides
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
return this.getTitle() || this._getContent(); return this.getTitle() || this._getContent();
}; };
@ -3181,7 +3183,7 @@ var Popover = function ($$$1) {
}; };
_proto.setContent = function setContent() { _proto.setContent = function setContent() {
var $tip = $$$1(this.getTipElement()); // we use append for html objects to maintain js events var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
@ -3193,7 +3195,7 @@ var Popover = function ($$$1) {
this.setElementContent($tip.find(Selector.CONTENT), content); this.setElementContent($tip.find(Selector.CONTENT), content);
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
}; // private }; // Private
_proto._getContent = function _getContent() { _proto._getContent = function _getContent() {
@ -3207,7 +3209,7 @@ var Popover = function ($$$1) {
if (tabClass !== null && tabClass.length > 0) { if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join('')); $tip.removeClass(tabClass.join(''));
} }
}; // static }; // Static
Popover._jQueryInterface = function _jQueryInterface(config) { Popover._jQueryInterface = function _jQueryInterface(config) {
@ -3227,7 +3229,7 @@ var Popover = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3237,7 +3239,7 @@ var Popover = function ($$$1) {
_createClass(Popover, null, [{ _createClass(Popover, null, [{
key: "VERSION", key: "VERSION",
// getters // Getters
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
@ -3294,7 +3296,7 @@ var Popover = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): scrollspy.js * Bootstrap (v4.0.0): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3306,7 +3308,7 @@ var ScrollSpy = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'scrollspy'; var NAME = 'scrollspy';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.scrollspy'; var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -3373,16 +3375,16 @@ var ScrollSpy = function ($$$1) {
this.refresh(); this.refresh();
this._process(); this._process();
} // getters } // Getters
var _proto = ScrollSpy.prototype; var _proto = ScrollSpy.prototype;
// public // Public
_proto.refresh = function refresh() { _proto.refresh = function refresh() {
var _this2 = this; var _this2 = this;
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
this._offsets = []; this._offsets = [];
@ -3401,7 +3403,7 @@ var ScrollSpy = function ($$$1) {
var targetBCR = target.getBoundingClientRect(); var targetBCR = target.getBoundingClientRect();
if (targetBCR.width || targetBCR.height) { if (targetBCR.width || targetBCR.height) {
// todo (fat): remove sketch reliance on jQuery position/offset // TODO (fat): remove sketch reliance on jQuery position/offset
return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
} }
@ -3429,7 +3431,7 @@ var ScrollSpy = function ($$$1) {
this._targets = null; this._targets = null;
this._activeTarget = null; this._activeTarget = null;
this._scrollHeight = null; this._scrollHeight = null;
}; // private }; // Private
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
@ -3533,7 +3535,7 @@ var ScrollSpy = function ($$$1) {
_proto._clear = function _clear() { _proto._clear = function _clear() {
$$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
}; // static }; // Static
ScrollSpy._jQueryInterface = function _jQueryInterface(config) { ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
@ -3549,7 +3551,7 @@ var ScrollSpy = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3605,7 +3607,7 @@ var ScrollSpy = function ($$$1) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta.3): tab.js * Bootstrap (v4.0.0): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -3617,7 +3619,7 @@ var Tab = function ($$$1) {
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tab'; var NAME = 'tab';
var VERSION = '4.0.0-beta.3'; var VERSION = '4.0.0';
var DATA_KEY = 'bs.tab'; var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -3658,12 +3660,12 @@ var Tab = function ($$$1) {
function () { function () {
function Tab(element) { function Tab(element) {
this._element = element; this._element = element;
} // getters } // Getters
var _proto = Tab.prototype; var _proto = Tab.prototype;
// public // Public
_proto.show = function show() { _proto.show = function show() {
var _this = this; var _this = this;
@ -3726,7 +3728,7 @@ var Tab = function ($$$1) {
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$$$1.removeData(this._element, DATA_KEY); $$$1.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // private }; // Private
_proto._activate = function _activate(element, container, callback) { _proto._activate = function _activate(element, container, callback) {
@ -3790,7 +3792,7 @@ var Tab = function ($$$1) {
if (callback) { if (callback) {
callback(); callback();
} }
}; // static }; // Static
Tab._jQueryInterface = function _jQueryInterface(config) { Tab._jQueryInterface = function _jQueryInterface(config) {
@ -3805,7 +3807,7 @@ var Tab = function ($$$1) {
if (typeof config === 'string') { if (typeof config === 'string') {
if (typeof data[config] === 'undefined') { if (typeof data[config] === 'undefined') {
throw new Error("No method named \"" + config + "\""); throw new TypeError("No method named \"" + config + "\"");
} }
data[config](); data[config]();
@ -3859,7 +3861,7 @@ var Tab = function ($$$1) {
(function ($$$1) { (function ($$$1) {
if (typeof $$$1 === 'undefined') { if (typeof $$$1 === 'undefined') {
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
} }
var version = $$$1.fn.jquery.split(' ')[0].split('.'); var version = $$$1.fn.jquery.split(' ')[0].split('.');

File diff suppressed because one or more lines are too long

View File

@ -46,6 +46,6 @@
@each $color, $value in $theme-colors { @each $color, $value in $theme-colors {
.alert-#{$color} { .alert-#{$color} {
@include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6)); @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
} }
} }

View File

@ -34,12 +34,12 @@
} }
// Opinionated: add "hand" cursor to non-disabled .btn elements // Opinionated: add "hand" cursor to non-disabled .btn elements
&:not([disabled]):not(.disabled) { &:not(:disabled):not(.disabled) {
cursor: pointer; cursor: pointer;
} }
&:not([disabled]):not(.disabled):active, &:not(:disabled):not(.disabled):active,
&:not([disabled]):not(.disabled).active { &:not(:disabled):not(.disabled).active {
background-image: none; background-image: none;
@include box-shadow($btn-active-box-shadow); @include box-shadow($btn-active-box-shadow);
@ -51,7 +51,7 @@
// Future-proof disabling of clicks on `<a>` elements // Future-proof disabling of clicks on `<a>` elements
a.btn.disabled, a.btn.disabled,
fieldset[disabled] a.btn { fieldset:disabled a.btn {
pointer-events: none; pointer-events: none;
} }
@ -68,11 +68,7 @@ fieldset[disabled] a.btn {
@each $color, $value in $theme-colors { @each $color, $value in $theme-colors {
.btn-outline-#{$color} { .btn-outline-#{$color} {
@if $color == "light" { @include button-outline-variant($value);
@include button-outline-variant($value, $gray-900);
} @else {
@include button-outline-variant($value, $white);
}
} }
} }

View File

@ -14,7 +14,7 @@
} }
// Opinionated: add "hand" cursor to non-disabled .close elements // Opinionated: add "hand" cursor to non-disabled .close elements
&:not([disabled]):not(.disabled) { &:not(:disabled):not(.disabled) {
cursor: pointer; cursor: pointer;
} }
} }

View File

@ -117,6 +117,15 @@
background-image: $custom-checkbox-indicator-icon-indeterminate; background-image: $custom-checkbox-indicator-icon-indeterminate;
} }
} }
.custom-control-input:disabled {
&:checked ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg;
}
&:indeterminate ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg;
}
}
} }
// Radios // Radios
@ -136,6 +145,12 @@
background-image: $custom-radio-indicator-icon-checked; background-image: $custom-radio-indicator-icon-checked;
} }
} }
.custom-control-input:disabled {
&:checked ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg;
}
}
} }
@ -148,7 +163,7 @@
.custom-select { .custom-select {
display: inline-block; display: inline-block;
width: 100%; width: 100%;
height: $input-height; height: $custom-select-height;
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x; padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
line-height: $custom-select-line-height; line-height: $custom-select-line-height;
color: $custom-select-color; color: $custom-select-color;

View File

@ -11,9 +11,9 @@
align-items: stretch; align-items: stretch;
width: 100%; width: 100%;
.form-control, > .form-control,
.custom-select, > .custom-select,
.custom-file { > .custom-file {
position: relative; // For focus state's z-index position: relative; // For focus state's z-index
flex: 1 1 auto; flex: 1 1 auto;
// Add width 1% and flex-basis auto to ensure that button will not wrap out // Add width 1% and flex-basis auto to ensure that button will not wrap out
@ -26,27 +26,29 @@
z-index: 3; z-index: 3;
} }
+ .form-control { + .form-control,
+ .custom-select,
+ .custom-file {
margin-left: -$input-border-width; margin-left: -$input-border-width;
} }
} }
.form-control, > .form-control,
.custom-select { > .custom-select {
&:not(:last-child) { @include border-right-radius(0); } &:not(:last-child) { @include border-right-radius(0); }
&:not(:first-child) { @include border-left-radius(0); } &:not(:first-child) { @include border-left-radius(0); }
} }
// Custom file inputs have more complex markup, thus requiring different // Custom file inputs have more complex markup, thus requiring different
// border-radius overrides. // border-radius overrides.
.custom-file { > .custom-file {
display: flex; display: flex;
align-items: center; align-items: center;
&:not(:last-child) .custom-file-control, &:not(:last-child) .custom-file-label,
&:not(:last-child) .custom-file-control::before { @include border-right-radius(0); } &:not(:last-child) .custom-file-label::before { @include border-right-radius(0); }
&:not(:first-child) .custom-file-control, &:not(:first-child) .custom-file-label,
&:not(:first-child) .custom-file-control::before { @include border-left-radius(0); } &:not(:first-child) .custom-file-label::before { @include border-left-radius(0); }
} }
} }
@ -60,7 +62,6 @@
.input-group-prepend, .input-group-prepend,
.input-group-append { .input-group-append {
display: flex; display: flex;
align-items: center;
// Ensure buttons are always above inputs for more visually pleasing borders. // Ensure buttons are always above inputs for more visually pleasing borders.
// This isn't needed for `.input-group-text` since it shares the same border-color // This isn't needed for `.input-group-text` since it shares the same border-color
@ -88,6 +89,8 @@
// to prepend or append to an input. // to prepend or append to an input.
.input-group-text { .input-group-text {
display: flex;
align-items: center;
padding: $input-padding-y $input-padding-x; padding: $input-padding-y $input-padding-x;
margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
font-size: $font-size-base; // Match inputs font-size: $font-size-base; // Match inputs

View File

@ -118,7 +118,7 @@
} }
// Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements // Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
&:not([disabled]):not(.disabled) { &:not(:disabled):not(.disabled) {
cursor: pointer; cursor: pointer;
} }
} }
@ -168,8 +168,8 @@
} }
.nav-link { .nav-link {
padding-right: .5rem; padding-right: $navbar-nav-link-padding-x;
padding-left: .5rem; padding-left: $navbar-nav-link-padding-x;
} }
} }

View File

@ -14,16 +14,21 @@
background-color: $pagination-bg; background-color: $pagination-bg;
border: $pagination-border-width solid $pagination-border-color; border: $pagination-border-width solid $pagination-border-color;
@include hover-focus { &:hover {
color: $pagination-hover-color; color: $pagination-hover-color;
text-decoration: none; text-decoration: none;
background-color: $pagination-hover-bg; background-color: $pagination-hover-bg;
border-color: $pagination-hover-border-color; border-color: $pagination-hover-border-color;
} }
&:focus {
z-index: 2;
outline: 0;
box-shadow: $pagination-focus-box-shadow;
}
// Opinionated: add "hand" cursor to non-disabled .page-link elements // Opinionated: add "hand" cursor to non-disabled .page-link elements
&:not([disabled]):not(.disabled) { &:not(:disabled):not(.disabled) {
cursor: pointer; cursor: pointer;
} }
} }

View File

@ -8,13 +8,13 @@
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values. // So reset our font and text properties to avoid inheriting weird values.
@include reset-text(); @include reset-text();
font-size: $font-size-sm; font-size: $popover-font-size;
// Allow breaking very long words so they don't overflow the popover's bounds // Allow breaking very long words so they don't overflow the popover's bounds
word-wrap: break-word; word-wrap: break-word;
background-color: $popover-bg; background-color: $popover-bg;
background-clip: padding-box; background-clip: padding-box;
border: $popover-border-width solid $popover-border-color; border: $popover-border-width solid $popover-border-color;
@include border-radius($border-radius-lg); @include border-radius($popover-border-radius);
@include box-shadow($popover-box-shadow); @include box-shadow($popover-box-shadow);
.arrow { .arrow {

View File

@ -20,10 +20,11 @@
box-shadow: none !important; box-shadow: none !important;
} }
a, a {
a:visited { &:not(.btn) {
text-decoration: underline; text-decoration: underline;
} }
}
// Bootstrap specific; comment the following selector out // Bootstrap specific; comment the following selector out
//a[href]::after { //a[href]::after {
@ -82,6 +83,19 @@
// Bootstrap specific changes start // Bootstrap specific changes start
// Specify a size and min-width to make printing closer across browsers.
// We don't set margin here because it breaks `size` in Chrome. We also
// don't use `!important` on `size` as it breaks in Chrome.
@page {
size: $print-page-size;
}
body {
min-width: $print-body-min-width !important;
}
.container {
min-width: $print-body-min-width !important;
}
// Bootstrap components // Bootstrap components
.navbar { .navbar {
display: none; display: none;

View File

@ -279,29 +279,6 @@ svg:not(:root) {
} }
// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.
//
// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11
// DON'T remove the click delay when `<meta name="viewport" content="width=device-width">` is present.
// However, they DO support removing the click delay via `touch-action: manipulation`.
// See:
// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch
// * https://caniuse.com/#feat=css-touch-action
// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
a,
area,
button,
[role="button"],
input:not([type="range"]),
label,
select,
summary,
textarea {
touch-action: manipulation;
}
// //
// Tables // Tables
// //

View File

@ -7,7 +7,7 @@
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values. // So reset our font and text properties to avoid inheriting weird values.
@include reset-text(); @include reset-text();
font-size: $font-size-sm; font-size: $tooltip-font-size;
// Allow breaking very long words so they don't overflow the tooltip's bounds // Allow breaking very long words so they don't overflow the tooltip's bounds
word-wrap: break-word; word-wrap: break-word;
opacity: 0; opacity: 0;
@ -111,5 +111,5 @@
color: $tooltip-color; color: $tooltip-color;
text-align: center; text-align: center;
background-color: $tooltip-bg; background-color: $tooltip-bg;
@include border-radius($border-radius); @include border-radius($tooltip-border-radius);
} }

View File

@ -15,7 +15,7 @@ $gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default; $gray-300: #dee2e6 !default;
$gray-400: #ced4da !default; $gray-400: #ced4da !default;
$gray-500: #adb5bd !default; $gray-500: #adb5bd !default;
$gray-600: #868e96 !default; $gray-600: #6c757d !default;
$gray-700: #495057 !default; $gray-700: #495057 !default;
$gray-800: #343a40 !default; $gray-800: #343a40 !default;
$gray-900: #212529 !default; $gray-900: #212529 !default;
@ -103,7 +103,7 @@ $enable-rounded: true !default;
$enable-shadows: false !default; $enable-shadows: false !default;
$enable-gradients: false !default; $enable-gradients: false !default;
$enable-transitions: true !default; $enable-transitions: true !default;
$enable-hover-media-query: false !default; $enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
$enable-grid-classes: true !default; $enable-grid-classes: true !default;
$enable-print-styles: true !default; $enable-print-styles: true !default;
@ -114,23 +114,27 @@ $enable-print-styles: true !default;
// variables. Mostly focused on spacing. // variables. Mostly focused on spacing.
// You can add more entries to the $spacers map, should you need more variation. // You can add more entries to the $spacers map, should you need more variation.
// stylelint-disable
$spacer: 1rem !default; $spacer: 1rem !default;
$spacers: ( $spacers: () !default;
$spacers: map-merge((
0: 0, 0: 0,
1: ($spacer * .25), 1: ($spacer * .25),
2: ($spacer * .5), 2: ($spacer * .5),
3: $spacer, 3: $spacer,
4: ($spacer * 1.5), 4: ($spacer * 1.5),
5: ($spacer * 3) 5: ($spacer * 3)
) !default; ), $spacers);
// This variable affects the `.h-*` and `.w-*` classes. // This variable affects the `.h-*` and `.w-*` classes.
$sizes: ( $sizes: () !default;
$sizes: map-merge((
25: 25%, 25: 25%,
50: 50%, 50: 50%,
75: 75%, 75: 75%,
100: 100% 100: 100%
) !default; ), $sizes);
// stylelint-enable
// Body // Body
// //
@ -201,7 +205,7 @@ $line-height-lg: 1.5 !default;
$line-height-sm: 1.5 !default; $line-height-sm: 1.5 !default;
$border-width: 1px !default; $border-width: 1px !default;
$border-color: $gray-200 !default; $border-color: $gray-300 !default;
$border-radius: .25rem !default; $border-radius: .25rem !default;
$border-radius-lg: .3rem !default; $border-radius-lg: .3rem !default;
@ -323,7 +327,7 @@ $input-btn-padding-x: .75rem !default;
$input-btn-line-height: $line-height-base !default; $input-btn-line-height: $line-height-base !default;
$input-btn-focus-width: .2rem !default; $input-btn-focus-width: .2rem !default;
$input-btn-focus-color: rgba(theme-color("primary"), .25) !default; $input-btn-focus-color: rgba($component-active-bg, .25) !default;
$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default; $input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
$input-btn-padding-y-sm: .25rem !default; $input-btn-padding-y-sm: .25rem !default;
@ -401,14 +405,14 @@ $input-border-radius-lg: $border-radius-lg !default;
$input-border-radius-sm: $border-radius-sm !default; $input-border-radius-sm: $border-radius-sm !default;
$input-focus-bg: $input-bg !default; $input-focus-bg: $input-bg !default;
$input-focus-border-color: lighten(theme-color("primary"), 25%) !default; $input-focus-border-color: lighten($component-active-bg, 25%) !default;
$input-focus-color: $input-color !default; $input-focus-color: $input-color !default;
$input-focus-width: $input-btn-focus-width !default; $input-focus-width: $input-btn-focus-width !default;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default; $input-focus-box-shadow: $input-btn-focus-box-shadow !default;
$input-placeholder-color: $gray-600 !default; $input-placeholder-color: $gray-600 !default;
$input-height-border: $input-btn-border-width * 2 !default; $input-height-border: $input-border-width * 2 !default;
$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default; $input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default; $input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
@ -447,20 +451,21 @@ $custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !
$custom-control-indicator-disabled-bg: $gray-200 !default; $custom-control-indicator-disabled-bg: $gray-200 !default;
$custom-control-label-disabled-color: $gray-600 !default; $custom-control-label-disabled-color: $gray-600 !default;
$custom-control-indicator-checked-color: $white !default; $custom-control-indicator-checked-color: $component-active-color !default;
$custom-control-indicator-checked-bg: theme-color("primary") !default; $custom-control-indicator-checked-bg: $component-active-bg !default;
$custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
$custom-control-indicator-checked-box-shadow: none !default; $custom-control-indicator-checked-box-shadow: none !default;
$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default; $custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
$custom-control-indicator-active-color: $white !default; $custom-control-indicator-active-color: $component-active-color !default;
$custom-control-indicator-active-bg: lighten(theme-color("primary"), 35%) !default; $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
$custom-control-indicator-active-box-shadow: none !default; $custom-control-indicator-active-box-shadow: none !default;
$custom-checkbox-indicator-border-radius: $border-radius !default; $custom-checkbox-indicator-border-radius: $border-radius !default;
$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default; $custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
$custom-checkbox-indicator-indeterminate-bg: theme-color("primary") !default; $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default; $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
$custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default; $custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default;
$custom-checkbox-indicator-indeterminate-box-shadow: none !default; $custom-checkbox-indicator-indeterminate-box-shadow: none !default;
@ -485,7 +490,7 @@ $custom-select-border-color: $input-border-color !default;
$custom-select-border-radius: $border-radius !default; $custom-select-border-radius: $border-radius !default;
$custom-select-focus-border-color: $input-focus-border-color !default; $custom-select-focus-border-color: $input-focus-border-color !default;
$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), $input-btn-focus-box-shadow !default; $custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;
$custom-select-font-size-sm: 75% !default; $custom-select-font-size-sm: 75% !default;
$custom-select-height-sm: $input-height-sm !default; $custom-select-height-sm: $input-height-sm !default;
@ -585,6 +590,8 @@ $nav-pills-link-active-bg: $component-active-bg !default;
$navbar-padding-y: ($spacer / 2) !default; $navbar-padding-y: ($spacer / 2) !default;
$navbar-padding-x: $spacer !default; $navbar-padding-x: $spacer !default;
$navbar-nav-link-padding-x: .5rem !default;
$navbar-brand-font-size: $font-size-lg !default; $navbar-brand-font-size: $font-size-lg !default;
// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default; $nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;
@ -625,13 +632,15 @@ $pagination-bg: $white !default;
$pagination-border-width: $border-width !default; $pagination-border-width: $border-width !default;
$pagination-border-color: $gray-300 !default; $pagination-border-color: $gray-300 !default;
$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
$pagination-hover-color: $link-hover-color !default; $pagination-hover-color: $link-hover-color !default;
$pagination-hover-bg: $gray-200 !default; $pagination-hover-bg: $gray-200 !default;
$pagination-hover-border-color: $gray-300 !default; $pagination-hover-border-color: $gray-300 !default;
$pagination-active-color: $white !default; $pagination-active-color: $component-active-color !default;
$pagination-active-bg: theme-color("primary") !default; $pagination-active-bg: $component-active-bg !default;
$pagination-active-border-color: theme-color("primary") !default; $pagination-active-border-color: $pagination-active-bg !default;
$pagination-disabled-color: $gray-600 !default; $pagination-disabled-color: $gray-600 !default;
$pagination-disabled-bg: $white !default; $pagination-disabled-bg: $white !default;
@ -667,9 +676,11 @@ $card-columns-margin: $card-spacer-y !default;
// Tooltips // Tooltips
$tooltip-font-size: $font-size-sm !default;
$tooltip-max-width: 200px !default; $tooltip-max-width: 200px !default;
$tooltip-color: $white !default; $tooltip-color: $white !default;
$tooltip-bg: $black !default; $tooltip-bg: $black !default;
$tooltip-border-radius: $border-radius !default;
$tooltip-opacity: .9 !default; $tooltip-opacity: .9 !default;
$tooltip-padding-y: .25rem !default; $tooltip-padding-y: .25rem !default;
$tooltip-padding-x: .5rem !default; $tooltip-padding-x: .5rem !default;
@ -682,10 +693,12 @@ $tooltip-arrow-color: $tooltip-bg !default;
// Popovers // Popovers
$popover-font-size: $font-size-sm !default;
$popover-bg: $white !default; $popover-bg: $white !default;
$popover-max-width: 276px !default; $popover-max-width: 276px !default;
$popover-border-width: $border-width !default; $popover-border-width: $border-width !default;
$popover-border-color: rgba($black, .2) !default; $popover-border-color: rgba($black, .2) !default;
$popover-border-radius: $border-radius-lg !default;
$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default; $popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;
$popover-header-bg: darken($popover-bg, 3%) !default; $popover-header-bg: darken($popover-bg, 3%) !default;
@ -760,6 +773,10 @@ $alert-border-radius: $border-radius !default;
$alert-link-font-weight: $font-weight-bold !default; $alert-link-font-weight: $font-weight-bold !default;
$alert-border-width: $border-width !default; $alert-border-width: $border-width !default;
$alert-bg-level: -10 !default;
$alert-border-level: -9 !default;
$alert-color-level: 6 !default;
// Progress bars // Progress bars
@ -870,3 +887,8 @@ $kbd-bg: $gray-900 !default;
$pre-color: $gray-900 !default; $pre-color: $gray-900 !default;
$pre-scrollable-max-height: 340px !default; $pre-scrollable-max-height: 340px !default;
// Printing
$print-page-size: a3 !default;
$print-body-min-width: map-get($grid-breakpoints, "lg") !default;

View File

@ -1,7 +1,7 @@
/*! /*!
* Bootstrap Grid v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors * Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc. * Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
@ -23,13 +23,10 @@ html {
@import "functions"; @import "functions";
@import "variables"; @import "variables";
//
// Grid mixins
//
@import "mixins/breakpoints"; @import "mixins/breakpoints";
@import "mixins/grid-framework"; @import "mixins/grid-framework";
@import "mixins/grid"; @import "mixins/grid";
@import "grid"; @import "grid";
@import "utilities/display";
@import "utilities/flex"; @import "utilities/flex";

View File

@ -1,7 +1,7 @@
/*! /*!
* Bootstrap Reboot v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors * Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc. * Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/ */

View File

@ -1,7 +1,7 @@
/*! /*!
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com) * Bootstrap v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors * Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc. * Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */

View File

@ -29,15 +29,17 @@
} }
// Maximum breakpoint width. Null for the largest (last) breakpoint. // Maximum breakpoint width. Null for the largest (last) breakpoint.
// The maximum value is calculated as the minimum of the next one less 0.01px // The maximum value is calculated as the minimum of the next one less 0.02px
// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths. // to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max // See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
// See https://bugs.webkit.org/show_bug.cgi?id=178261
// //
// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) // >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// 767px // 767.98px
@function breakpoint-max($name, $breakpoints: $grid-breakpoints) { @function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
$next: breakpoint-next($name, $breakpoints); $next: breakpoint-next($name, $breakpoints);
@return if($next, breakpoint-min($next, $breakpoints) - .01px, null); @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);
} }
// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront. // Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
@ -88,11 +90,11 @@
@content; @content;
} }
} @else if $max == null { } @else if $max == null {
@include media-breakpoint-up($lower) { @include media-breakpoint-up($lower, $breakpoints) {
@content; @content;
} }
} @else if $min == null { } @else if $min == null {
@include media-breakpoint-down($upper) { @include media-breakpoint-down($upper, $breakpoints) {
@content; @content;
} }
} }
@ -110,11 +112,11 @@
@content; @content;
} }
} @else if $max == null { } @else if $max == null {
@include media-breakpoint-up($name) { @include media-breakpoint-up($name, $breakpoints) {
@content; @content;
} }
} @else if $min == null { } @else if $min == null {
@include media-breakpoint-down($name) { @include media-breakpoint-down($name, $breakpoints) {
@content; @content;
} }
} }

View File

@ -28,12 +28,13 @@
// Disabled comes first so active can properly restyle // Disabled comes first so active can properly restyle
&.disabled, &.disabled,
&:disabled { &:disabled {
color: color-yiq($background);
background-color: $background; background-color: $background;
border-color: $border; border-color: $border;
} }
&:not([disabled]):not(.disabled):active, &:not(:disabled):not(.disabled):active,
&:not([disabled]):not(.disabled).active, &:not(:disabled):not(.disabled).active,
.show > &.dropdown-toggle { .show > &.dropdown-toggle {
color: color-yiq($active-background); color: color-yiq($active-background);
background-color: $active-background; background-color: $active-background;
@ -53,14 +54,14 @@
} }
} }
@mixin button-outline-variant($color, $color-hover: #fff, $active-background: $color, $active-border: $color) { @mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
color: $color; color: $color;
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
border-color: $color; border-color: $color;
&:hover { &:hover {
color: color-yiq($color); color: $color-hover;
background-color: $active-background; background-color: $active-background;
border-color: $active-border; border-color: $active-border;
} }
@ -76,15 +77,22 @@
background-color: transparent; background-color: transparent;
} }
&:not([disabled]):not(.disabled):active, &:not(:disabled):not(.disabled):active,
&:not([disabled]):not(.disabled).active, &:not(:disabled):not(.disabled).active,
.show > &.dropdown-toggle { .show > &.dropdown-toggle {
color: color-yiq($color-hover); color: color-yiq($active-background);
background-color: $active-background; background-color: $active-background;
border-color: $active-border; border-color: $active-border;
&:focus {
// Avoid using mixin so we can pass custom focus shadow properly // Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows and $btn-active-box-shadow != none {
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
} @else {
box-shadow: 0 0 0 $btn-focus-width rgba($color, .5); box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
} }
}
}
} }
// Button sizes // Button sizes

View File

@ -27,7 +27,6 @@
@mixin form-validation-state($state, $color) { @mixin form-validation-state($state, $color) {
.#{$state}-feedback { .#{$state}-feedback {
display: none; display: none;
width: 100%; width: 100%;
@ -41,7 +40,7 @@
top: 100%; top: 100%;
z-index: 5; z-index: 5;
display: none; display: none;
width: 250px; max-width: 100%; // Contain to parent when possible
padding: .5rem; padding: .5rem;
margin-top: .1rem; margin-top: .1rem;
font-size: .875rem; font-size: .875rem;
@ -75,6 +74,11 @@
~ .form-check-label { ~ .form-check-label {
color: $color; color: $color;
} }
~ .#{$state}-feedback,
~ .#{$state}-tooltip {
display: block;
}
} }
} }

View File

@ -46,14 +46,12 @@
} }
} }
.order#{$infix}-first { .order#{$infix}-first { order: -1; }
order: -1;
}
@for $i from 1 through $columns { .order#{$infix}-last { order: $columns + 1; }
.order#{$infix}-#{$i} {
order: $i; @for $i from 0 through $columns {
} .order#{$infix}-#{$i} { order: $i; }
} }
// `$columns - 1` because offsetting by the width of an entire row isn't possible // `$columns - 1` because offsetting by the width of an entire row isn't possible

View File

@ -1,61 +1,39 @@
// stylelint-disable indentation // stylelint-disable indentation
// Hover mixin and `$enable-hover-media-query` are deprecated.
//
// Origally added during our alphas and maintained during betas, this mixin was
// designed to prevent `:hover` stickiness on iOSan issue where hover styles
// would persist after initial touch.
//
// For backward compatibility, we've kept these mixins and updated them to
// always return their regular psuedo-classes instead of a shimmed media query.
//
// Issue: https://github.com/twbs/bootstrap/issues/25195
@mixin hover { @mixin hover {
// TODO: re-enable along with mq4-hover-shim
// @if $enable-hover-media-query {
// // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover
// // Currently shimmed by https://github.com/twbs/mq4-hover-shim
// @media (hover: hover) {
// &:hover { @content }
// }
// }
// @else {
&:hover { @content; } &:hover { @content; }
// }
} }
@mixin hover-focus { @mixin hover-focus {
@if $enable-hover-media-query { &:hover,
&:focus { &:focus {
@content; @content;
} }
@include hover { @content; }
} @else {
&:focus,
&:hover {
@content;
}
}
} }
@mixin plain-hover-focus { @mixin plain-hover-focus {
@if $enable-hover-media-query {
&, &,
&:hover,
&:focus { &:focus {
@content; @content;
} }
@include hover { @content; }
} @else {
&,
&:focus,
&:hover {
@content;
}
}
} }
@mixin hover-focus-active { @mixin hover-focus-active {
@if $enable-hover-media-query { &:hover,
&:focus, &:focus,
&:active { &:active {
@content; @content;
} }
@include hover { @content; }
} @else {
&:focus,
&:active,
&:hover {
@content;
}
}
} }

View File

@ -4,12 +4,8 @@
.list-group-item-#{$state} { .list-group-item-#{$state} {
color: $color; color: $color;
background-color: $background; background-color: $background;
}
a.list-group-item-#{$state},
button.list-group-item-#{$state} {
color: $color;
&.list-group-item-action {
@include hover-focus { @include hover-focus {
color: $color; color: $color;
background-color: darken($background, 5%); background-color: darken($background, 5%);
@ -21,4 +17,5 @@
border-color: $color; border-color: $color;
} }
} }
}
} }

View File

@ -5,6 +5,11 @@
// //
.border { border: $border-width solid $border-color !important; } .border { border: $border-width solid $border-color !important; }
.border-top { border-top: $border-width solid $border-color !important; }
.border-right { border-right: $border-width solid $border-color !important; }
.border-bottom { border-bottom: $border-width solid $border-color !important; }
.border-left { border-left: $border-width solid $border-color !important; }
.border-0 { border: 0 !important; } .border-0 { border: 0 !important; }
.border-top-0 { border-top: 0 !important; } .border-top-0 { border-top: 0 !important; }
.border-right-0 { border-right: 0 !important; } .border-right-0 { border-right: 0 !important; }

View File

@ -25,32 +25,14 @@
// Utilities for toggling `display` in print // Utilities for toggling `display` in print
// //
.d-print-block { @media print {
display: none !important; .d-print-none { display: none !important; }
.d-print-inline { display: inline !important; }
@media print { .d-print-inline-block { display: inline-block !important; }
display: block !important; .d-print-block { display: block !important; }
} .d-print-table { display: table !important; }
} .d-print-table-row { display: table-row !important; }
.d-print-table-cell { display: table-cell !important; }
.d-print-inline { .d-print-flex { display: flex !important; }
display: none !important; .d-print-inline-flex { display: inline-flex !important; }
@media print {
display: inline !important;
}
}
.d-print-inline-block {
display: none !important;
@media print {
display: inline-block !important;
}
}
.d-print-none {
@media print {
display: none !important;
}
} }