[ci skip]
This commit is contained in:
Chris Rebert 2016-06-04 18:21:15 -07:00
parent eb350d1a7c
commit 0f3d427bbd
35 changed files with 176 additions and 87 deletions

View File

@ -1,5 +1,6 @@
/*! /*!
* Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com) * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com)
* Copyright 2011-2016 The Bootstrap Authors
* Copyright 2011-2016 Twitter, Inc. * Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
@ -396,17 +397,17 @@ a:focus {
outline-offset: -2px; outline-offset: -2px;
} }
a:not([href]) { a:not([href]):not([tabindex]) {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
a:not([href]):focus, a:not([href]):hover { a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
a:not([href]):focus { a:not([href]):not([tabindex]):focus {
outline: none; outline: none;
} }
@ -5666,6 +5667,10 @@ button.close {
border-radius: 0.2375rem 0.2375rem 0 0; border-radius: 0.2375rem 0.2375rem 0 0;
} }
.popover-title:empty {
display: none;
}
.popover-content { .popover-content {
padding: 9px 14px; padding: 9px 14px;
} }

File diff suppressed because one or more lines are too long

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-alpha.2 (http://getbootstrap.com) * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc. * Copyright 2011-2016 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)
*/ */
@ -45,6 +45,8 @@ var Util = (function ($) {
var transition = false; var transition = false;
var MAX_UID = 1000000;
var TransitionEndEvent = { var TransitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd', WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend', MozTransition: 'transitionend',
@ -69,6 +71,7 @@ var Util = (function ($) {
if ($(event.target).is(this)) { if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); return event.handleObj.handler.apply(this, arguments);
} }
return undefined;
} }
}; };
} }
@ -130,7 +133,7 @@ var Util = (function ($) {
getUID: function getUID(prefix) { getUID: function getUID(prefix) {
do { do {
/* eslint-disable no-bitwise */ /* eslint-disable no-bitwise */
prefix += ~ ~(Math.random() * 1000000); // "~~" acts like a faster Math.floor() here prefix += ~ ~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
/* eslint-enable no-bitwise */ /* eslint-enable no-bitwise */
} while (document.getElementById(prefix)); } while (document.getElementById(prefix));
return prefix; return prefix;
@ -561,6 +564,8 @@ var Carousel = (function ($) {
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 600; var TRANSITION_DURATION = 600;
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var Default = { var Default = {
interval: 5000, interval: 5000,
@ -776,10 +781,12 @@ var Carousel = (function ($) {
} }
switch (event.which) { switch (event.which) {
case 37: case ARROW_LEFT_KEYCODE:
this.prev();break; this.prev();
case 39: break;
this.next();break; case ARROW_RIGHT_KEYCODE:
this.next();
break;
default: default:
return; return;
} }
@ -1390,6 +1397,10 @@ var Dropdown = (function ($) {
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: 'hide' + EVENT_KEY,
@ -1524,7 +1535,7 @@ var Dropdown = (function ($) {
}, { }, {
key: '_clearMenus', key: '_clearMenus',
value: function _clearMenus(event) { value: function _clearMenus(event) {
if (event && event.which === 3) { if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
return; return;
} }
@ -1587,9 +1598,9 @@ var Dropdown = (function ($) {
var parent = Dropdown._getParentFromElement(this); var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.OPEN); var isActive = $(parent).hasClass(ClassName.OPEN);
if (!isActive && event.which !== 27 || isActive && event.which === 27) { if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
$(toggle).trigger('focus'); $(toggle).trigger('focus');
} }
@ -1610,12 +1621,12 @@ var Dropdown = (function ($) {
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === 38 && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // up
index--; index--;
} }
if (event.which === 40 && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // down
index++; index++;
} }
@ -1679,6 +1690,7 @@ var Modal = (function ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 300; var TRANSITION_DURATION = 300;
var BACKDROP_TRANSITION_DURATION = 150; var BACKDROP_TRANSITION_DURATION = 150;
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var Default = { var Default = {
backdrop: true, backdrop: true,
@ -1874,6 +1886,7 @@ var Modal = (function ($) {
} }
this._element.style.display = 'block'; this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden');
this._element.scrollTop = 0; this._element.scrollTop = 0;
if (transition) { if (transition) {
@ -1922,7 +1935,7 @@ var Modal = (function ($) {
if (this._isShown && this._config.keyboard) { if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) { $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
_this10.hide(); _this10.hide();
} }
}); });
@ -1945,6 +1958,7 @@ var Modal = (function ($) {
var _this11 = this; var _this11 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', 'true');
this._showBackdrop(function () { this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN); $(document.body).removeClass(ClassName.OPEN);
_this11._resetAdjustments(); _this11._resetAdjustments();
@ -2050,7 +2064,7 @@ var Modal = (function ($) {
} }
if (this._isBodyOverflowing && !isModalOverflowing) { if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + 'px~'; this._element.style.paddingRight = this._scrollbarWidth + 'px';
} }
} }
}, { }, {
@ -2311,6 +2325,7 @@ var ScrollSpy = (function ($) {
// todo (fat): remove sketch reliance on jQuery position/offset // todo (fat): remove sketch reliance on jQuery position/offset
return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
return null;
}).filter(function (item) { }).filter(function (item) {
return item; return item;
}).sort(function (a, b) { }).sort(function (a, b) {

File diff suppressed because one or more lines are too long

View File

@ -43,6 +43,8 @@
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 600; var TRANSITION_DURATION = 600;
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var Default = { var Default = {
interval: 5000, interval: 5000,
@ -258,10 +260,12 @@
} }
switch (event.which) { switch (event.which) {
case 37: case ARROW_LEFT_KEYCODE:
this.prev();break; this.prev();
case 39: break;
this.next();break; case ARROW_RIGHT_KEYCODE:
this.next();
break;
default: default:
return; return;
} }

View File

@ -42,6 +42,10 @@
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: 'hide' + EVENT_KEY,
@ -176,7 +180,7 @@
}, { }, {
key: '_clearMenus', key: '_clearMenus',
value: function _clearMenus(event) { value: function _clearMenus(event) {
if (event && event.which === 3) { if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
return; return;
} }
@ -239,9 +243,9 @@
var parent = Dropdown._getParentFromElement(this); var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.OPEN); var isActive = $(parent).hasClass(ClassName.OPEN);
if (!isActive && event.which !== 27 || isActive && event.which === 27) { if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
$(toggle).trigger('focus'); $(toggle).trigger('focus');
} }
@ -262,12 +266,12 @@
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === 38 && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // up
index--; index--;
} }
if (event.which === 40 && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // down
index++; index++;
} }

View File

@ -44,6 +44,7 @@
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 300; var TRANSITION_DURATION = 300;
var BACKDROP_TRANSITION_DURATION = 150; var BACKDROP_TRANSITION_DURATION = 150;
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var Default = { var Default = {
backdrop: true, backdrop: true,
@ -239,6 +240,7 @@
} }
this._element.style.display = 'block'; this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden');
this._element.scrollTop = 0; this._element.scrollTop = 0;
if (transition) { if (transition) {
@ -287,7 +289,7 @@
if (this._isShown && this._config.keyboard) { if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) { $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
_this4.hide(); _this4.hide();
} }
}); });
@ -310,6 +312,7 @@
var _this5 = this; var _this5 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', 'true');
this._showBackdrop(function () { this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN); $(document.body).removeClass(ClassName.OPEN);
_this5._resetAdjustments(); _this5._resetAdjustments();
@ -415,7 +418,7 @@
} }
if (this._isBodyOverflowing && !isModalOverflowing) { if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + 'px~'; this._element.style.paddingRight = this._scrollbarWidth + 'px';
} }
} }
}, { }, {

View File

@ -152,6 +152,7 @@
// todo (fat): remove sketch reliance on jQuery position/offset // todo (fat): remove sketch reliance on jQuery position/offset
return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
return null;
}).filter(function (item) { }).filter(function (item) {
return item; return item;
}).sort(function (a, b) { }).sort(function (a, b) {

5
dist/js/umd/util.js vendored
View File

@ -30,6 +30,8 @@
var transition = false; var transition = false;
var MAX_UID = 1000000;
var TransitionEndEvent = { var TransitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd', WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend', MozTransition: 'transitionend',
@ -54,6 +56,7 @@
if ($(event.target).is(this)) { if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); return event.handleObj.handler.apply(this, arguments);
} }
return undefined;
} }
}; };
} }
@ -115,7 +118,7 @@
getUID: function getUID(prefix) { getUID: function getUID(prefix) {
do { do {
/* eslint-disable no-bitwise */ /* eslint-disable no-bitwise */
prefix += ~ ~(Math.random() * 1000000); // "~~" acts like a faster Math.floor() here prefix += ~ ~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
/* eslint-enable no-bitwise */ /* eslint-enable no-bitwise */
} while (document.getElementById(prefix)); } while (document.getElementById(prefix));
return prefix; return prefix;

View File

@ -1,5 +1,6 @@
/*! /*!
* Bootstrap Docs (http://getbootstrap.com) * Bootstrap Docs (http://getbootstrap.com)
* Copyright 2011-2016 The Bootstrap Authors
* Copyright 2011-2016 Twitter, Inc. * Copyright 2011-2016 Twitter, Inc.
* Licensed under the Creative Commons Attribution 3.0 Unported License. For * Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see https://creativecommons.org/licenses/by/3.0/. * details, see https://creativecommons.org/licenses/by/3.0/.

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,5 +1,6 @@
/*! /*!
* Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com) * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com)
* Copyright 2011-2016 The Bootstrap Authors
* Copyright 2011-2016 Twitter, Inc. * Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
@ -396,17 +397,17 @@ a:focus {
outline-offset: -2px; outline-offset: -2px;
} }
a:not([href]) { a:not([href]):not([tabindex]) {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
a:not([href]):focus, a:not([href]):hover { a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
a:not([href]):focus { a:not([href]):not([tabindex]):focus {
outline: none; outline: none;
} }
@ -5666,6 +5667,10 @@ button.close {
border-radius: 0.2375rem 0.2375rem 0 0; border-radius: 0.2375rem 0.2375rem 0 0;
} }
.popover-title:empty {
display: none;
}
.popover-content { .popover-content {
padding: 9px 14px; padding: 9px 14px;
} }

File diff suppressed because one or more lines are too long

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-alpha.2 (http://getbootstrap.com) * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc. * Copyright 2011-2016 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)
*/ */
@ -45,6 +45,8 @@ var Util = (function ($) {
var transition = false; var transition = false;
var MAX_UID = 1000000;
var TransitionEndEvent = { var TransitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd', WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend', MozTransition: 'transitionend',
@ -69,6 +71,7 @@ var Util = (function ($) {
if ($(event.target).is(this)) { if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); return event.handleObj.handler.apply(this, arguments);
} }
return undefined;
} }
}; };
} }
@ -130,7 +133,7 @@ var Util = (function ($) {
getUID: function getUID(prefix) { getUID: function getUID(prefix) {
do { do {
/* eslint-disable no-bitwise */ /* eslint-disable no-bitwise */
prefix += ~ ~(Math.random() * 1000000); // "~~" acts like a faster Math.floor() here prefix += ~ ~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
/* eslint-enable no-bitwise */ /* eslint-enable no-bitwise */
} while (document.getElementById(prefix)); } while (document.getElementById(prefix));
return prefix; return prefix;
@ -561,6 +564,8 @@ var Carousel = (function ($) {
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 600; var TRANSITION_DURATION = 600;
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var Default = { var Default = {
interval: 5000, interval: 5000,
@ -776,10 +781,12 @@ var Carousel = (function ($) {
} }
switch (event.which) { switch (event.which) {
case 37: case ARROW_LEFT_KEYCODE:
this.prev();break; this.prev();
case 39: break;
this.next();break; case ARROW_RIGHT_KEYCODE:
this.next();
break;
default: default:
return; return;
} }
@ -1390,6 +1397,10 @@ var Dropdown = (function ($) {
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: 'hide' + EVENT_KEY,
@ -1524,7 +1535,7 @@ var Dropdown = (function ($) {
}, { }, {
key: '_clearMenus', key: '_clearMenus',
value: function _clearMenus(event) { value: function _clearMenus(event) {
if (event && event.which === 3) { if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
return; return;
} }
@ -1587,9 +1598,9 @@ var Dropdown = (function ($) {
var parent = Dropdown._getParentFromElement(this); var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.OPEN); var isActive = $(parent).hasClass(ClassName.OPEN);
if (!isActive && event.which !== 27 || isActive && event.which === 27) { if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
$(toggle).trigger('focus'); $(toggle).trigger('focus');
} }
@ -1610,12 +1621,12 @@ var Dropdown = (function ($) {
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === 38 && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // up
index--; index--;
} }
if (event.which === 40 && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // down
index++; index++;
} }
@ -1679,6 +1690,7 @@ var Modal = (function ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 300; var TRANSITION_DURATION = 300;
var BACKDROP_TRANSITION_DURATION = 150; var BACKDROP_TRANSITION_DURATION = 150;
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var Default = { var Default = {
backdrop: true, backdrop: true,
@ -1874,6 +1886,7 @@ var Modal = (function ($) {
} }
this._element.style.display = 'block'; this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden');
this._element.scrollTop = 0; this._element.scrollTop = 0;
if (transition) { if (transition) {
@ -1922,7 +1935,7 @@ var Modal = (function ($) {
if (this._isShown && this._config.keyboard) { if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) { $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
_this10.hide(); _this10.hide();
} }
}); });
@ -1945,6 +1958,7 @@ var Modal = (function ($) {
var _this11 = this; var _this11 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', 'true');
this._showBackdrop(function () { this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN); $(document.body).removeClass(ClassName.OPEN);
_this11._resetAdjustments(); _this11._resetAdjustments();
@ -2050,7 +2064,7 @@ var Modal = (function ($) {
} }
if (this._isBodyOverflowing && !isModalOverflowing) { if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + 'px~'; this._element.style.paddingRight = this._scrollbarWidth + 'px';
} }
} }
}, { }, {
@ -2311,6 +2325,7 @@ var ScrollSpy = (function ($) {
// todo (fat): remove sketch reliance on jQuery position/offset // todo (fat): remove sketch reliance on jQuery position/offset
return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
return null;
}).filter(function (item) { }).filter(function (item) {
return item; return item;
}).sort(function (a, b) { }).sort(function (a, b) {

File diff suppressed because one or more lines are too long

View File

@ -43,6 +43,8 @@
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 600; var TRANSITION_DURATION = 600;
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var Default = { var Default = {
interval: 5000, interval: 5000,
@ -258,10 +260,12 @@
} }
switch (event.which) { switch (event.which) {
case 37: case ARROW_LEFT_KEYCODE:
this.prev();break; this.prev();
case 39: break;
this.next();break; case ARROW_RIGHT_KEYCODE:
this.next();
break;
default: default:
return; return;
} }

View File

@ -42,6 +42,10 @@
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: 'hide' + EVENT_KEY,
@ -176,7 +180,7 @@
}, { }, {
key: '_clearMenus', key: '_clearMenus',
value: function _clearMenus(event) { value: function _clearMenus(event) {
if (event && event.which === 3) { if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
return; return;
} }
@ -239,9 +243,9 @@
var parent = Dropdown._getParentFromElement(this); var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.OPEN); var isActive = $(parent).hasClass(ClassName.OPEN);
if (!isActive && event.which !== 27 || isActive && event.which === 27) { if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
$(toggle).trigger('focus'); $(toggle).trigger('focus');
} }
@ -262,12 +266,12 @@
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === 38 && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // up
index--; index--;
} }
if (event.which === 40 && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // down
index++; index++;
} }

View File

@ -44,6 +44,7 @@
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 300; var TRANSITION_DURATION = 300;
var BACKDROP_TRANSITION_DURATION = 150; var BACKDROP_TRANSITION_DURATION = 150;
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var Default = { var Default = {
backdrop: true, backdrop: true,
@ -239,6 +240,7 @@
} }
this._element.style.display = 'block'; this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden');
this._element.scrollTop = 0; this._element.scrollTop = 0;
if (transition) { if (transition) {
@ -287,7 +289,7 @@
if (this._isShown && this._config.keyboard) { if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) { $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
_this4.hide(); _this4.hide();
} }
}); });
@ -310,6 +312,7 @@
var _this5 = this; var _this5 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', 'true');
this._showBackdrop(function () { this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN); $(document.body).removeClass(ClassName.OPEN);
_this5._resetAdjustments(); _this5._resetAdjustments();
@ -415,7 +418,7 @@
} }
if (this._isBodyOverflowing && !isModalOverflowing) { if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + 'px~'; this._element.style.paddingRight = this._scrollbarWidth + 'px';
} }
} }
}, { }, {

View File

@ -152,6 +152,7 @@
// todo (fat): remove sketch reliance on jQuery position/offset // todo (fat): remove sketch reliance on jQuery position/offset
return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
return null;
}).filter(function (item) { }).filter(function (item) {
return item; return item;
}).sort(function (a, b) { }).sort(function (a, b) {

View File

@ -30,6 +30,8 @@
var transition = false; var transition = false;
var MAX_UID = 1000000;
var TransitionEndEvent = { var TransitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd', WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend', MozTransition: 'transitionend',
@ -54,6 +56,7 @@
if ($(event.target).is(this)) { if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); return event.handleObj.handler.apply(this, arguments);
} }
return undefined;
} }
}; };
} }
@ -115,7 +118,7 @@
getUID: function getUID(prefix) { getUID: function getUID(prefix) {
do { do {
/* eslint-disable no-bitwise */ /* eslint-disable no-bitwise */
prefix += ~ ~(Math.random() * 1000000); // "~~" acts like a faster Math.floor() here prefix += ~ ~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
/* eslint-enable no-bitwise */ /* eslint-enable no-bitwise */
} while (document.getElementById(prefix)); } while (document.getElementById(prefix));
return prefix; return prefix;

12
js/dist/carousel.js vendored
View File

@ -26,6 +26,8 @@ var Carousel = (function ($) {
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 600; var TRANSITION_DURATION = 600;
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var Default = { var Default = {
interval: 5000, interval: 5000,
@ -241,10 +243,12 @@ var Carousel = (function ($) {
} }
switch (event.which) { switch (event.which) {
case 37: case ARROW_LEFT_KEYCODE:
this.prev();break; this.prev();
case 39: break;
this.next();break; case ARROW_RIGHT_KEYCODE:
this.next();
break;
default: default:
return; return;
} }

File diff suppressed because one or more lines are too long

14
js/dist/dropdown.js vendored
View File

@ -25,6 +25,10 @@ var Dropdown = (function ($) {
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: 'hide' + EVENT_KEY,
@ -159,7 +163,7 @@ var Dropdown = (function ($) {
}, { }, {
key: '_clearMenus', key: '_clearMenus',
value: function _clearMenus(event) { value: function _clearMenus(event) {
if (event && event.which === 3) { if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
return; return;
} }
@ -222,9 +226,9 @@ var Dropdown = (function ($) {
var parent = Dropdown._getParentFromElement(this); var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.OPEN); var isActive = $(parent).hasClass(ClassName.OPEN);
if (!isActive && event.which !== 27 || isActive && event.which === 27) { if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
$(toggle).trigger('focus'); $(toggle).trigger('focus');
} }
@ -245,12 +249,12 @@ var Dropdown = (function ($) {
var index = items.indexOf(event.target); var index = items.indexOf(event.target);
if (event.which === 38 && index > 0) { if (event.which === ARROW_UP_KEYCODE && index > 0) {
// up // up
index--; index--;
} }
if (event.which === 40 && index < items.length - 1) { if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
// down // down
index++; index++;
} }

File diff suppressed because one or more lines are too long

7
js/dist/modal.js vendored
View File

@ -27,6 +27,7 @@ var Modal = (function ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 300; var TRANSITION_DURATION = 300;
var BACKDROP_TRANSITION_DURATION = 150; var BACKDROP_TRANSITION_DURATION = 150;
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var Default = { var Default = {
backdrop: true, backdrop: true,
@ -222,6 +223,7 @@ var Modal = (function ($) {
} }
this._element.style.display = 'block'; this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden');
this._element.scrollTop = 0; this._element.scrollTop = 0;
if (transition) { if (transition) {
@ -270,7 +272,7 @@ var Modal = (function ($) {
if (this._isShown && this._config.keyboard) { if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) { $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === 27) { if (event.which === ESCAPE_KEYCODE) {
_this4.hide(); _this4.hide();
} }
}); });
@ -293,6 +295,7 @@ var Modal = (function ($) {
var _this5 = this; var _this5 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', 'true');
this._showBackdrop(function () { this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN); $(document.body).removeClass(ClassName.OPEN);
_this5._resetAdjustments(); _this5._resetAdjustments();
@ -398,7 +401,7 @@ var Modal = (function ($) {
} }
if (this._isBodyOverflowing && !isModalOverflowing) { if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + 'px~'; this._element.style.paddingRight = this._scrollbarWidth + 'px';
} }
} }
}, { }, {

File diff suppressed because one or more lines are too long

View File

@ -135,6 +135,7 @@ var ScrollSpy = (function ($) {
// todo (fat): remove sketch reliance on jQuery position/offset // todo (fat): remove sketch reliance on jQuery position/offset
return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
return null;
}).filter(function (item) { }).filter(function (item) {
return item; return item;
}).sort(function (a, b) { }).sort(function (a, b) {

File diff suppressed because one or more lines are too long

5
js/dist/util.js vendored
View File

@ -17,6 +17,8 @@ var Util = (function ($) {
var transition = false; var transition = false;
var MAX_UID = 1000000;
var TransitionEndEvent = { var TransitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd', WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend', MozTransition: 'transitionend',
@ -41,6 +43,7 @@ var Util = (function ($) {
if ($(event.target).is(this)) { if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); return event.handleObj.handler.apply(this, arguments);
} }
return undefined;
} }
}; };
} }
@ -102,7 +105,7 @@ var Util = (function ($) {
getUID: function getUID(prefix) { getUID: function getUID(prefix) {
do { do {
/* eslint-disable no-bitwise */ /* eslint-disable no-bitwise */
prefix += ~ ~(Math.random() * 1000000); // "~~" acts like a faster Math.floor() here prefix += ~ ~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
/* eslint-enable no-bitwise */ /* eslint-enable no-bitwise */
} while (document.getElementById(prefix)); } while (document.getElementById(prefix));
return prefix; return prefix;

2
js/dist/util.js.map vendored

File diff suppressed because one or more lines are too long