This commit is contained in:
Mark Otto 2017-09-30 14:28:03 -07:00
parent 136c49a13f
commit f5ad6e3987
40 changed files with 3517 additions and 3926 deletions

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

File diff suppressed because one or more lines are too long

View File

@ -161,6 +161,7 @@ pre {
margin-top: 0; margin-top: 0;
margin-bottom: 1rem; margin-bottom: 1rem;
overflow: auto; overflow: auto;
-ms-overflow-style: scrollbar;
} }
figure { figure {
@ -210,6 +211,10 @@ label {
margin-bottom: .5rem; margin-bottom: .5rem;
} }
button {
border-radius: 0;
}
button:focus { button:focus {
outline: 1px dotted; outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color; outline: 5px auto -webkit-focus-ring-color;

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important} *,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */ /*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

View File

@ -225,6 +225,7 @@ pre {
margin-top: 0; margin-top: 0;
margin-bottom: 1rem; margin-bottom: 1rem;
overflow: auto; overflow: auto;
-ms-overflow-style: scrollbar;
} }
figure { figure {
@ -274,6 +275,10 @@ label {
margin-bottom: .5rem; margin-bottom: .5rem;
} }
button {
border-radius: 0;
}
button:focus { button:focus {
outline: 1px dotted; outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color; outline: 5px auto -webkit-focus-ring-color;
@ -2850,10 +2855,6 @@ tbody.collapse.show {
background-color: transparent; background-color: transparent;
} }
.show > a {
outline: 0;
}
.dropdown-menu.show { .dropdown-menu.show {
display: block; display: block;
} }
@ -3001,12 +3002,12 @@ tbody.collapse.show {
border-radius: 0; border-radius: 0;
} }
.btn-group-vertical:first-child:not(:last-child) { .btn-group-vertical > .btn:first-child:not(:last-child) {
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
.btn-group-vertical:last-child:not(:first-child) { .btn-group-vertical > .btn:last-child:not(:first-child) {
border-top-left-radius: 0; border-top-left-radius: 0;
border-top-right-radius: 0; border-top-right-radius: 0;
} }
@ -3569,10 +3570,8 @@ tbody.collapse.show {
@media (min-width: 576px) { @media (min-width: 576px) {
.navbar-expand-sm { .navbar-expand-sm {
-ms-flex-direction: row; -ms-flex-flow: row nowrap;
flex-direction: row; flex-flow: row nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-ms-flex-pack: start; -ms-flex-pack: start;
justify-content: flex-start; justify-content: flex-start;
} }
@ -3617,10 +3616,8 @@ tbody.collapse.show {
@media (min-width: 768px) { @media (min-width: 768px) {
.navbar-expand-md { .navbar-expand-md {
-ms-flex-direction: row; -ms-flex-flow: row nowrap;
flex-direction: row; flex-flow: row nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-ms-flex-pack: start; -ms-flex-pack: start;
justify-content: flex-start; justify-content: flex-start;
} }
@ -3665,10 +3662,8 @@ tbody.collapse.show {
@media (min-width: 992px) { @media (min-width: 992px) {
.navbar-expand-lg { .navbar-expand-lg {
-ms-flex-direction: row; -ms-flex-flow: row nowrap;
flex-direction: row; flex-flow: row nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-ms-flex-pack: start; -ms-flex-pack: start;
justify-content: flex-start; justify-content: flex-start;
} }
@ -3713,10 +3708,8 @@ tbody.collapse.show {
@media (min-width: 1200px) { @media (min-width: 1200px) {
.navbar-expand-xl { .navbar-expand-xl {
-ms-flex-direction: row; -ms-flex-flow: row nowrap;
flex-direction: row; flex-flow: row nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-ms-flex-pack: start; -ms-flex-pack: start;
justify-content: flex-start; justify-content: flex-start;
} }
@ -3752,10 +3745,8 @@ tbody.collapse.show {
} }
.navbar-expand { .navbar-expand {
-ms-flex-direction: row; -ms-flex-flow: row nowrap;
flex-direction: row; flex-flow: row nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-ms-flex-pack: start; -ms-flex-pack: start;
justify-content: flex-start; justify-content: flex-start;
} }
@ -3948,6 +3939,10 @@ tbody.collapse.show {
border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
} }
.card-header + .list-group .list-group-item:first-child {
border-top: 0;
}
.card-footer { .card-footer {
padding: 0.75rem 1.25rem; padding: 0.75rem 1.25rem;
background-color: rgba(0, 0, 0, 0.03); background-color: rgba(0, 0, 0, 0.03);
@ -4072,13 +4067,16 @@ tbody.collapse.show {
.card-group .card:last-child .card-img-bottom { .card-group .card:last-child .card-img-bottom {
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
.card-group .card:not(:first-child):not(:last-child) { .card-group .card:not(:first-child):not(:last-child):not(:only-child) {
border-radius: 0; border-radius: 0;
} }
.card-group .card:not(:first-child):not(:last-child) .card-img-top, .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
.card-group .card:not(:first-child):not(:last-child) .card-img-bottom { .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom {
border-radius: 0; border-radius: 0;
} }
.card-group .card:only-child {
border-radius: 0.25rem;
}
} }
.card-columns .card { .card-columns .card {

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

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

103
js/dist/alert.js vendored
View File

@ -1,8 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -10,38 +8,31 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Alert = function () { var Alert = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150; var TRANSITION_DURATION = 150;
var Selector = { var Selector = {
DISMISS: '[data-dismiss="alert"]' DISMISS: '[data-dismiss="alert"]'
}; };
var Event = { var Event = {
CLOSE: 'close' + EVENT_KEY, CLOSE: "close" + EVENT_KEY,
CLOSED: 'closed' + EVENT_KEY, CLOSED: "closed" + EVENT_KEY,
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
ALERT: 'alert', ALERT: 'alert',
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -49,25 +40,23 @@ var Alert = function () {
*/ */
}; };
var Alert = function () {
var Alert =
/*#__PURE__*/
function () {
function Alert(element) { function Alert(element) {
_classCallCheck(this, Alert);
this._element = element; this._element = element;
} } // getters
// getters
_createClass(Alert, [{
key: 'close',
var _proto = Alert.prototype;
// public // public
_proto.close = function close(element) {
value: function close(element) {
element = element || this._element; element = element || this._element;
var rootElement = this._getRootElement(element); var rootElement = this._getRootElement(element);
var customEvent = this._triggerCloseEvent(rootElement); var customEvent = this._triggerCloseEvent(rootElement);
if (customEvent.isDefaultPrevented()) { if (customEvent.isDefaultPrevented()) {
@ -75,19 +64,15 @@ var Alert = function () {
} }
this._removeElement(rootElement); this._removeElement(rootElement);
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
} }; // private
// private
}, { _proto._getRootElement = function _getRootElement(element) {
key: '_getRootElement',
value: function _getRootElement(element) {
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
var parent = false; var parent = false;
@ -96,46 +81,40 @@ var Alert = function () {
} }
if (!parent) { if (!parent) {
parent = $(element).closest('.' + ClassName.ALERT)[0]; parent = $(element).closest("." + ClassName.ALERT)[0];
} }
return parent; return parent;
} };
}, {
key: '_triggerCloseEvent',
value: function _triggerCloseEvent(element) {
var closeEvent = $.Event(Event.CLOSE);
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
var closeEvent = $.Event(Event.CLOSE);
$(element).trigger(closeEvent); $(element).trigger(closeEvent);
return closeEvent; return closeEvent;
} };
}, {
key: '_removeElement', _proto._removeElement = function _removeElement(element) {
value: function _removeElement(element) {
var _this = this; var _this = this;
$(element).removeClass(ClassName.SHOW); $(element).removeClass(ClassName.SHOW);
if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
this._destroyElement(element); this._destroyElement(element);
return; return;
} }
$(element).one(Util.TRANSITION_END, function (event) { $(element).one(Util.TRANSITION_END, function (event) {
return _this._destroyElement(element, event); return _this._destroyElement(element, event);
}).emulateTransitionEnd(TRANSITION_DURATION); }).emulateTransitionEnd(TRANSITION_DURATION);
} };
}, {
key: '_destroyElement', _proto._destroyElement = function _destroyElement(element) {
value: function _destroyElement(element) {
$(element).detach().trigger(Event.CLOSED).remove(); $(element).detach().trigger(Event.CLOSED).remove();
} }; // static
// static
}], [{ Alert._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var $element = $(this); var $element = $(this);
var data = $element.data(DATA_KEY); var data = $element.data(DATA_KEY);
@ -149,10 +128,9 @@ var Alert = function () {
data[config](this); data[config](this);
} }
}); });
} };
}, {
key: '_handleDismiss', Alert._handleDismiss = function _handleDismiss(alertInstance) {
value: function _handleDismiss(alertInstance) {
return function (event) { return function (event) {
if (event) { if (event) {
event.preventDefault(); event.preventDefault();
@ -160,9 +138,10 @@ var Alert = function () {
alertInstance.close(this); alertInstance.close(this);
}; };
} };
}, {
key: 'VERSION', _createClass(Alert, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
@ -170,15 +149,14 @@ var Alert = function () {
return Alert; return Alert;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
$(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -187,6 +165,7 @@ var Alert = function () {
$.fn[NAME] = Alert._jQueryInterface; $.fn[NAME] = Alert._jQueryInterface;
$.fn[NAME].Constructor = Alert; $.fn[NAME].Constructor = Alert;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Alert._jQueryInterface; return Alert._jQueryInterface;

File diff suppressed because one or more lines are too long

63
js/dist/button.js vendored
View File

@ -1,8 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -10,28 +8,23 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Button = function () { var Button = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'button'; var NAME = 'button';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ClassName = { var ClassName = {
ACTIVE: 'active', ACTIVE: 'active',
BUTTON: 'btn', BUTTON: 'btn',
FOCUS: 'focus' FOCUS: 'focus'
}; };
var Selector = { var Selector = {
DATA_TOGGLE_CARROT: '[data-toggle^="button"]', DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
DATA_TOGGLE: '[data-toggle="buttons"]', DATA_TOGGLE: '[data-toggle="buttons"]',
@ -39,11 +32,9 @@ var Button = function () {
ACTIVE: '.active', ACTIVE: '.active',
BUTTON: '.btn' BUTTON: '.btn'
}; };
var Event = { var Event = {
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY) FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -51,22 +42,19 @@ var Button = function () {
*/ */
}; };
var Button = function () {
var Button =
/*#__PURE__*/
function () {
function Button(element) { function Button(element) {
_classCallCheck(this, Button);
this._element = element; this._element = element;
} } // getters
// getters
_createClass(Button, [{
key: 'toggle',
var _proto = Button.prototype;
// public // public
_proto.toggle = function toggle() {
value: function toggle() {
var triggerChangeEvent = true; var triggerChangeEvent = true;
var addAriaPressed = true; var addAriaPressed = true;
var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0]; var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
@ -91,6 +79,7 @@ var Button = function () {
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) { if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
return; return;
} }
input.checked = !$(this._element).hasClass(ClassName.ACTIVE); input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
$(input).trigger('change'); $(input).trigger('change');
} }
@ -107,19 +96,15 @@ var Button = function () {
if (triggerChangeEvent) { if (triggerChangeEvent) {
$(this._element).toggleClass(ClassName.ACTIVE); $(this._element).toggleClass(ClassName.ACTIVE);
} }
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
} }; // static
// static
}], [{ Button._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
@ -132,9 +117,10 @@ var Button = function () {
data[config](); data[config]();
} }
}); });
} };
}, {
key: 'VERSION', _createClass(Button, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
@ -142,16 +128,15 @@ var Button = function () {
return Button; return Button;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
event.preventDefault(); event.preventDefault();
var button = event.target; var button = event.target;
if (!$(button).hasClass(ClassName.BUTTON)) { if (!$(button).hasClass(ClassName.BUTTON)) {
@ -163,7 +148,6 @@ var Button = function () {
var button = $(event.target).closest(Selector.BUTTON)[0]; var button = $(event.target).closest(Selector.BUTTON)[0];
$(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -172,6 +156,7 @@ var Button = function () {
$.fn[NAME] = Button._jQueryInterface; $.fn[NAME] = Button._jQueryInterface;
$.fn[NAME].Constructor = Button; $.fn[NAME].Constructor = Button;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Button._jQueryInterface; return Button._jQueryInterface;

File diff suppressed because one or more lines are too long

233
js/dist/carousel.js vendored
View File

@ -1,10 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -12,24 +8,23 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Carousel = function () { var Carousel = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'carousel'; var NAME = 'carousel';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
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_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var Default = { var Default = {
@ -39,7 +34,6 @@ var Carousel = function () {
pause: 'hover', pause: 'hover',
wrap: true wrap: true
}; };
var DefaultType = { var DefaultType = {
interval: '(number|boolean)', interval: '(number|boolean)',
keyboard: 'boolean', keyboard: 'boolean',
@ -47,25 +41,22 @@ var Carousel = function () {
pause: '(string|boolean)', pause: '(string|boolean)',
wrap: 'boolean' wrap: 'boolean'
}; };
var Direction = { var Direction = {
NEXT: 'next', NEXT: 'next',
PREV: 'prev', PREV: 'prev',
LEFT: 'left', LEFT: 'left',
RIGHT: 'right' RIGHT: 'right'
}; };
var Event = { var Event = {
SLIDE: 'slide' + EVENT_KEY, SLIDE: "slide" + EVENT_KEY,
SLID: 'slid' + EVENT_KEY, SLID: "slid" + EVENT_KEY,
KEYDOWN: 'keydown' + EVENT_KEY, KEYDOWN: "keydown" + EVENT_KEY,
MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSEENTER: "mouseenter" + EVENT_KEY,
MOUSELEAVE: 'mouseleave' + EVENT_KEY, MOUSELEAVE: "mouseleave" + EVENT_KEY,
TOUCHEND: 'touchend' + EVENT_KEY, TOUCHEND: "touchend" + EVENT_KEY,
LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY, LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
CAROUSEL: 'carousel', CAROUSEL: 'carousel',
ACTIVE: 'active', ACTIVE: 'active',
@ -76,7 +67,6 @@ var Carousel = function () {
PREV: 'carousel-item-prev', PREV: 'carousel-item-prev',
ITEM: 'carousel-item' ITEM: 'carousel-item'
}; };
var Selector = { var Selector = {
ACTIVE: '.active', ACTIVE: '.active',
ACTIVE_ITEM: '.active.carousel-item', ACTIVE_ITEM: '.active.carousel-item',
@ -85,7 +75,6 @@ var Carousel = function () {
INDICATORS: '.carousel-indicators', INDICATORS: '.carousel-indicators',
DATA_SLIDE: '[data-slide], [data-slide-to]', DATA_SLIDE: '[data-slide], [data-slide-to]',
DATA_RIDE: '[data-ride="carousel"]' DATA_RIDE: '[data-ride="carousel"]'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -93,58 +82,49 @@ var Carousel = function () {
*/ */
}; };
var Carousel = function () {
function Carousel(element, config) {
_classCallCheck(this, Carousel);
var Carousel =
/*#__PURE__*/
function () {
function Carousel(element, config) {
this._items = null; this._items = null;
this._interval = null; this._interval = null;
this._activeElement = null; this._activeElement = null;
this._isPaused = false; this._isPaused = false;
this._isSliding = false; this._isSliding = false;
this.touchTimeout = null; this.touchTimeout = null;
this._config = this._getConfig(config); this._config = this._getConfig(config);
this._element = $(element)[0]; this._element = $(element)[0];
this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]; this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
this._addEventListeners(); this._addEventListeners();
} } // getters
// getters
_createClass(Carousel, [{
key: 'next',
var _proto = Carousel.prototype;
// public // public
_proto.next = function next() {
value: function next() {
if (!this._isSliding) { if (!this._isSliding) {
this._slide(Direction.NEXT); this._slide(Direction.NEXT);
} }
} };
}, {
key: 'nextWhenVisible', _proto.nextWhenVisible = function nextWhenVisible() {
value: function nextWhenVisible() {
// Don't call next when the page isn't visible // Don't call next when the page isn't visible
// or the carousel or its parent isn't visible // or the carousel or its parent isn't visible
if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') { if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
this.next(); this.next();
} }
} };
}, {
key: 'prev', _proto.prev = function prev() {
value: function prev() {
if (!this._isSliding) { if (!this._isSliding) {
this._slide(Direction.PREV); this._slide(Direction.PREV);
} }
} };
}, {
key: 'pause', _proto.pause = function pause(event) {
value: function pause(event) {
if (!event) { if (!event) {
this._isPaused = true; this._isPaused = true;
} }
@ -156,10 +136,9 @@ var Carousel = function () {
clearInterval(this._interval); clearInterval(this._interval);
this._interval = null; this._interval = null;
} };
}, {
key: 'cycle', _proto.cycle = function cycle(event) {
value: function cycle(event) {
if (!event) { if (!event) {
this._isPaused = false; this._isPaused = false;
} }
@ -172,10 +151,9 @@ var Carousel = function () {
if (this._config.interval && !this._isPaused) { if (this._config.interval && !this._isPaused) {
this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
} }
} };
}, {
key: 'to', _proto.to = function to(index) {
value: function to(index) {
var _this = this; var _this = this;
this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
@ -202,13 +180,11 @@ var Carousel = function () {
var direction = index > activeIndex ? Direction.NEXT : Direction.PREV; var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
this._slide(direction, this._items[index]); this._slide(direction, this._items[index]);
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$(this._element).off(EVENT_KEY); $(this._element).off(EVENT_KEY);
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
this._items = null; this._items = null;
this._config = null; this._config = null;
this._element = null; this._element = null;
@ -217,20 +193,16 @@ var Carousel = function () {
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) {
key: '_getConfig',
value: function _getConfig(config) {
config = $.extend({}, Default, config); config = $.extend({}, Default, config);
Util.typeCheckConfig(NAME, config, DefaultType); Util.typeCheckConfig(NAME, config, DefaultType);
return config; return config;
} };
}, {
key: '_addEventListeners', _proto._addEventListeners = function _addEventListeners() {
value: function _addEventListeners() {
var _this2 = this; var _this2 = this;
if (this._config.keyboard) { if (this._config.keyboard) {
@ -245,6 +217,7 @@ var Carousel = function () {
}).on(Event.MOUSELEAVE, function (event) { }).on(Event.MOUSELEAVE, function (event) {
return _this2.cycle(event); return _this2.cycle(event);
}); });
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
@ -255,19 +228,20 @@ var Carousel = function () {
// events to fire) we explicitly restart cycling // events to fire) we explicitly restart cycling
$(this._element).on(Event.TOUCHEND, function () { $(this._element).on(Event.TOUCHEND, function () {
_this2.pause(); _this2.pause();
if (_this2.touchTimeout) { if (_this2.touchTimeout) {
clearTimeout(_this2.touchTimeout); clearTimeout(_this2.touchTimeout);
} }
_this2.touchTimeout = setTimeout(function (event) { _this2.touchTimeout = setTimeout(function (event) {
return _this2.cycle(event); return _this2.cycle(event);
}, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval); }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
}); });
} }
} }
} };
}, {
key: '_keydown', _proto._keydown = function _keydown(event) {
value: function _keydown(event) {
if (/input|textarea/i.test(event.target.tagName)) { if (/input|textarea/i.test(event.target.tagName)) {
return; return;
} }
@ -277,26 +251,28 @@ var Carousel = function () {
event.preventDefault(); event.preventDefault();
this.prev(); this.prev();
break; break;
case ARROW_RIGHT_KEYCODE: case ARROW_RIGHT_KEYCODE:
event.preventDefault(); event.preventDefault();
this.next(); this.next();
break; break;
default: default:
return; return;
} }
} };
}, {
key: '_getItemIndex', _proto._getItemIndex = function _getItemIndex(element) {
value: function _getItemIndex(element) {
this._items = $.makeArray($(element).parent().find(Selector.ITEM)); this._items = $.makeArray($(element).parent().find(Selector.ITEM));
return this._items.indexOf(element); return this._items.indexOf(element);
} };
}, {
key: '_getItemByDirection', _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
value: function _getItemByDirection(direction, activeElement) {
var isNextDirection = direction === Direction.NEXT; var isNextDirection = direction === Direction.NEXT;
var isPrevDirection = direction === Direction.PREV; var isPrevDirection = direction === Direction.PREV;
var activeIndex = this._getItemIndex(activeElement); var activeIndex = this._getItemIndex(activeElement);
var lastItemIndex = this._items.length - 1; var lastItemIndex = this._items.length - 1;
var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
@ -306,28 +282,25 @@ var Carousel = function () {
var delta = direction === Direction.PREV ? -1 : 1; var delta = direction === Direction.PREV ? -1 : 1;
var itemIndex = (activeIndex + delta) % this._items.length; var itemIndex = (activeIndex + delta) % this._items.length;
return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
} };
}, {
key: '_triggerSlideEvent', _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
value: function _triggerSlideEvent(relatedTarget, eventDirectionName) {
var targetIndex = this._getItemIndex(relatedTarget); var targetIndex = this._getItemIndex(relatedTarget);
var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]); var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
var slideEvent = $.Event(Event.SLIDE, { var slideEvent = $.Event(Event.SLIDE, {
relatedTarget: relatedTarget, relatedTarget: relatedTarget,
direction: eventDirectionName, direction: eventDirectionName,
from: fromIndex, from: fromIndex,
to: targetIndex to: targetIndex
}); });
$(this._element).trigger(slideEvent); $(this._element).trigger(slideEvent);
return slideEvent; return slideEvent;
} };
}, {
key: '_setActiveIndicatorElement', _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
value: function _setActiveIndicatorElement(element) {
if (this._indicatorsElement) { if (this._indicatorsElement) {
$(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
@ -337,21 +310,23 @@ var Carousel = function () {
$(nextIndicator).addClass(ClassName.ACTIVE); $(nextIndicator).addClass(ClassName.ACTIVE);
} }
} }
} };
}, {
key: '_slide', _proto._slide = function _slide(direction, element) {
value: function _slide(direction, element) {
var _this3 = this; var _this3 = this;
var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
var activeElementIndex = this._getItemIndex(activeElement);
var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
var nextElementIndex = this._getItemIndex(nextElement);
var isCycling = Boolean(this._interval);
var directionalClassName = void 0; var activeElementIndex = this._getItemIndex(activeElement);
var orderClassName = void 0;
var eventDirectionName = void 0; var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
var nextElementIndex = this._getItemIndex(nextElement);
var isCycling = Boolean(this._interval);
var directionalClassName;
var orderClassName;
var eventDirectionName;
if (direction === Direction.NEXT) { if (direction === Direction.NEXT) {
directionalClassName = ClassName.LEFT; directionalClassName = ClassName.LEFT;
@ -369,6 +344,7 @@ var Carousel = function () {
} }
var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
if (slideEvent.isDefaultPrevented()) { if (slideEvent.isDefaultPrevented()) {
return; return;
} }
@ -394,21 +370,14 @@ var Carousel = function () {
}); });
if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
$(nextElement).addClass(orderClassName); $(nextElement).addClass(orderClassName);
Util.reflow(nextElement); Util.reflow(nextElement);
$(activeElement).addClass(directionalClassName); $(activeElement).addClass(directionalClassName);
$(nextElement).addClass(directionalClassName); $(nextElement).addClass(directionalClassName);
$(activeElement).one(Util.TRANSITION_END, function () { $(activeElement).one(Util.TRANSITION_END, function () {
$(nextElement).removeClass(directionalClassName + ' ' + orderClassName).addClass(ClassName.ACTIVE); $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
$(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
$(activeElement).removeClass(ClassName.ACTIVE + ' ' + orderClassName + ' ' + directionalClassName);
_this3._isSliding = false; _this3._isSliding = false;
setTimeout(function () { setTimeout(function () {
return $(_this3._element).trigger(slidEvent); return $(_this3._element).trigger(slidEvent);
}, 0); }, 0);
@ -416,7 +385,6 @@ var Carousel = function () {
} else { } else {
$(activeElement).removeClass(ClassName.ACTIVE); $(activeElement).removeClass(ClassName.ACTIVE);
$(nextElement).addClass(ClassName.ACTIVE); $(nextElement).addClass(ClassName.ACTIVE);
this._isSliding = false; this._isSliding = false;
$(this._element).trigger(slidEvent); $(this._element).trigger(slidEvent);
} }
@ -424,18 +392,16 @@ var Carousel = function () {
if (isCycling) { if (isCycling) {
this.cycle(); this.cycle();
} }
} }; // static
// static
}], [{ Carousel._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
var _config = $.extend({}, Default, $(this).data()); var _config = $.extend({}, Default, $(this).data());
if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') { if (typeof config === 'object') {
$.extend(_config, config); $.extend(_config, config);
} }
@ -450,18 +416,18 @@ var Carousel = function () {
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 Error("No method named \"" + action + "\"");
} }
data[action](); data[action]();
} else if (_config.interval) { } else if (_config.interval) {
data.pause(); data.pause();
data.cycle(); data.cycle();
} }
}); });
} };
}, {
key: '_dataApiClickHandler', Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
value: function _dataApiClickHandler(event) {
var selector = Util.getSelectorFromElement(this); var selector = Util.getSelectorFromElement(this);
if (!selector) { if (!selector) {
@ -488,14 +454,15 @@ var Carousel = function () {
} }
event.preventDefault(); event.preventDefault();
} };
}, {
key: 'VERSION', _createClass(Carousel, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
@ -503,22 +470,21 @@ var Carousel = function () {
return Carousel; return Carousel;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
$(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
$(window).on(Event.LOAD_DATA_API, function () { $(window).on(Event.LOAD_DATA_API, function () {
$(Selector.DATA_RIDE).each(function () { $(Selector.DATA_RIDE).each(function () {
var $carousel = $(this); var $carousel = $(this);
Carousel._jQueryInterface.call($carousel, $carousel.data()); Carousel._jQueryInterface.call($carousel, $carousel.data());
}); });
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -527,6 +493,7 @@ var Carousel = function () {
$.fn[NAME] = Carousel._jQueryInterface; $.fn[NAME] = Carousel._jQueryInterface;
$.fn[NAME].Constructor = Carousel; $.fn[NAME].Constructor = Carousel;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Carousel._jQueryInterface; return Carousel._jQueryInterface;

File diff suppressed because one or more lines are too long

184
js/dist/collapse.js vendored
View File

@ -1,10 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -12,57 +8,47 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Collapse = function () { var Collapse = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'collapse'; var NAME = 'collapse';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 600; var TRANSITION_DURATION = 600;
var Default = { var Default = {
toggle: true, toggle: true,
parent: '' parent: ''
}; };
var DefaultType = { var DefaultType = {
toggle: 'boolean', toggle: 'boolean',
parent: 'string' parent: '(string|element)'
}; };
var Event = { var Event = {
SHOW: 'show' + EVENT_KEY, SHOW: "show" + EVENT_KEY,
SHOWN: 'shown' + EVENT_KEY, SHOWN: "shown" + EVENT_KEY,
HIDE: 'hide' + EVENT_KEY, HIDE: "hide" + EVENT_KEY,
HIDDEN: 'hidden' + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY,
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
SHOW: 'show', SHOW: 'show',
COLLAPSE: 'collapse', COLLAPSE: 'collapse',
COLLAPSING: 'collapsing', COLLAPSING: 'collapsing',
COLLAPSED: 'collapsed' COLLAPSED: 'collapsed'
}; };
var Dimension = { var Dimension = {
WIDTH: 'width', WIDTH: 'width',
HEIGHT: 'height' HEIGHT: 'height'
}; };
var Selector = { var Selector = {
ACTIVES: '.show, .collapsing', ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]' DATA_TOGGLE: '[data-toggle="collapse"]'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -70,18 +56,21 @@ var Collapse = function () {
*/ */
}; };
var Collapse = function () {
function Collapse(element, config) {
_classCallCheck(this, Collapse);
var Collapse =
/*#__PURE__*/
function () {
function Collapse(element, config) {
this._isTransitioning = false; this._isTransitioning = false;
this._element = element; this._element = element;
this._config = this._getConfig(config); this._config = this._getConfig(config);
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
var tabToggles = $(Selector.DATA_TOGGLE); var tabToggles = $(Selector.DATA_TOGGLE);
for (var i = 0; i < tabToggles.length; i++) { for (var i = 0; i < tabToggles.length; i++) {
var elem = tabToggles[i]; var elem = tabToggles[i];
var selector = Util.getSelectorFromElement(elem); var selector = Util.getSelectorFromElement(elem);
if (selector !== null && $(selector).filter(element).length > 0) { if (selector !== null && $(selector).filter(element).length > 0) {
this._triggerArray.push(elem); this._triggerArray.push(elem);
} }
@ -96,37 +85,33 @@ var Collapse = function () {
if (this._config.toggle) { if (this._config.toggle) {
this.toggle(); this.toggle();
} }
} } // getters
// getters
_createClass(Collapse, [{
key: 'toggle',
var _proto = Collapse.prototype;
// public // public
_proto.toggle = function toggle() {
value: function toggle() {
if ($(this._element).hasClass(ClassName.SHOW)) { if ($(this._element).hasClass(ClassName.SHOW)) {
this.hide(); this.hide();
} else { } else {
this.show(); this.show();
} }
} };
}, {
key: 'show', _proto.show = function show() {
value: function show() {
var _this = this; var _this = this;
if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) { if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
return; return;
} }
var actives = void 0; var actives;
var activesData = void 0; var activesData;
if (this._parent) { if (this._parent) {
actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES)); actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
if (!actives.length) { if (!actives.length) {
actives = null; actives = null;
} }
@ -134,6 +119,7 @@ var Collapse = function () {
if (actives) { if (actives) {
activesData = $(actives).data(DATA_KEY); activesData = $(actives).data(DATA_KEY);
if (activesData && activesData._isTransitioning) { if (activesData && activesData._isTransitioning) {
return; return;
} }
@ -141,12 +127,14 @@ var Collapse = function () {
var startEvent = $.Event(Event.SHOW); var startEvent = $.Event(Event.SHOW);
$(this._element).trigger(startEvent); $(this._element).trigger(startEvent);
if (startEvent.isDefaultPrevented()) { if (startEvent.isDefaultPrevented()) {
return; return;
} }
if (actives) { if (actives) {
Collapse._jQueryInterface.call($(actives), 'hide'); Collapse._jQueryInterface.call($(actives), 'hide');
if (!activesData) { if (!activesData) {
$(actives).data(DATA_KEY, null); $(actives).data(DATA_KEY, null);
} }
@ -155,7 +143,6 @@ var Collapse = function () {
var dimension = this._getDimension(); var dimension = this._getDimension();
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); $(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) {
@ -166,7 +153,6 @@ var Collapse = function () {
var complete = function complete() { var complete = function complete() {
$(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW); $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
_this._element.style[dimension] = ''; _this._element.style[dimension] = '';
_this.setTransitioning(false); _this.setTransitioning(false);
@ -180,15 +166,12 @@ var Collapse = function () {
} }
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
var scrollSize = 'scroll' + capitalizedDimension; var scrollSize = "scroll" + capitalizedDimension;
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
this._element.style[dimension] = this._element[scrollSize] + "px";
};
this._element.style[dimension] = this._element[scrollSize] + 'px'; _proto.hide = function hide() {
}
}, {
key: 'hide',
value: function hide() {
var _this2 = this; var _this2 = this;
if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) { if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
@ -197,24 +180,25 @@ var Collapse = function () {
var startEvent = $.Event(Event.HIDE); var startEvent = $.Event(Event.HIDE);
$(this._element).trigger(startEvent); $(this._element).trigger(startEvent);
if (startEvent.isDefaultPrevented()) { if (startEvent.isDefaultPrevented()) {
return; return;
} }
var dimension = this._getDimension(); var dimension = this._getDimension();
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + 'px'; this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
Util.reflow(this._element); Util.reflow(this._element);
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
if (this._triggerArray.length) { if (this._triggerArray.length) {
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);
if (selector !== null) { if (selector !== null) {
var $elem = $(selector); var $elem = $(selector);
if (!$elem.hasClass(ClassName.SHOW)) { if (!$elem.hasClass(ClassName.SHOW)) {
$(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
} }
@ -226,6 +210,7 @@ var Collapse = function () {
var complete = function complete() { var complete = function complete() {
_this2.setTransitioning(false); _this2.setTransitioning(false);
$(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
}; };
@ -237,57 +222,58 @@ var Collapse = function () {
} }
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
} };
}, {
key: 'setTransitioning',
value: function setTransitioning(isTransitioning) {
this._isTransitioning = isTransitioning;
}
}, {
key: 'dispose',
value: function dispose() {
$.removeData(this._element, DATA_KEY);
_proto.setTransitioning = function setTransitioning(isTransitioning) {
this._isTransitioning = isTransitioning;
};
_proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
this._config = null; this._config = null;
this._parent = null; this._parent = null;
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) {
key: '_getConfig',
value: function _getConfig(config) {
config = $.extend({}, Default, config); config = $.extend({}, 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;
} };
}, {
key: '_getDimension', _proto._getDimension = function _getDimension() {
value: function _getDimension() {
var hasWidth = $(this._element).hasClass(Dimension.WIDTH); var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
} };
}, {
key: '_getParent', _proto._getParent = function _getParent() {
value: function _getParent() {
var _this3 = this; var _this3 = this;
var parent = $(this._config.parent)[0]; var parent = null;
var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
if (Util.isElement(this._config.parent)) {
parent = this._config.parent; // it's a jQuery object
if (typeof this._config.parent.jquery !== 'undefined') {
parent = this._config.parent[0];
}
} else {
parent = $(this._config.parent)[0];
}
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
$(parent).find(selector).each(function (i, element) { $(parent).find(selector).each(function (i, element) {
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
}); });
return parent; return parent;
} };
}, {
key: '_addAriaAndCollapsedClass', _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
value: function _addAriaAndCollapsedClass(element, triggerArray) {
if (element) { if (element) {
var isOpen = $(element).hasClass(ClassName.SHOW); var isOpen = $(element).hasClass(ClassName.SHOW);
@ -295,23 +281,20 @@ var Collapse = function () {
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
} }
} }
} }; // static
// static
}], [{ Collapse._getTargetFromElement = function _getTargetFromElement(element) {
key: '_getTargetFromElement',
value: function _getTargetFromElement(element) {
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
return selector ? $(selector)[0] : null; return selector ? $(selector)[0] : null;
} };
}, {
key: '_jQueryInterface', Collapse._jQueryInterface = function _jQueryInterface(config) {
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var $this = $(this); var $this = $(this);
var data = $this.data(DATA_KEY); var data = $this.data(DATA_KEY);
var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
if (!data && _config.toggle && /show|hide/.test(config)) { if (!data && _config.toggle && /show|hide/.test(config)) {
_config.toggle = false; _config.toggle = false;
@ -324,19 +307,21 @@ var Collapse = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](); data[config]();
} }
}); });
} };
}, {
key: 'VERSION', _createClass(Collapse, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
@ -344,13 +329,13 @@ var Collapse = function () {
return Collapse; return Collapse;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
if (event.currentTarget.tagName === 'A') { if (event.currentTarget.tagName === 'A') {
@ -363,10 +348,10 @@ var Collapse = function () {
var $target = $(this); var $target = $(this);
var data = $target.data(DATA_KEY); var data = $target.data(DATA_KEY);
var config = data ? 'toggle' : $trigger.data(); var config = data ? 'toggle' : $trigger.data();
Collapse._jQueryInterface.call($target, config); Collapse._jQueryInterface.call($target, config);
}); });
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -375,6 +360,7 @@ var Collapse = function () {
$.fn[NAME] = Collapse._jQueryInterface; $.fn[NAME] = Collapse._jQueryInterface;
$.fn[NAME].Constructor = Collapse; $.fn[NAME].Constructor = Collapse;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Collapse._jQueryInterface; return Collapse._jQueryInterface;

File diff suppressed because one or more lines are too long

219
js/dist/dropdown.js vendored
View File

@ -1,10 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -12,9 +8,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Dropdown = function () { var Dropdown = function () {
/** /**
* Check for Popper dependency * Check for Popper dependency
* Popper - https://popper.js.org * Popper - https://popper.js.org
@ -22,38 +16,42 @@ var Dropdown = function () {
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)'); throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'dropdown'; var NAME = 'dropdown';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow 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 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 RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: "hide" + EVENT_KEY,
HIDDEN: 'hidden' + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY,
SHOW: 'show' + EVENT_KEY, SHOW: "show" + EVENT_KEY,
SHOWN: 'shown' + EVENT_KEY, SHOWN: "shown" + EVENT_KEY,
CLICK: 'click' + EVENT_KEY, CLICK: "click" + EVENT_KEY,
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY, KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
DISABLED: 'disabled', DISABLED: 'disabled',
SHOW: 'show', SHOW: 'show',
@ -61,7 +59,6 @@ var Dropdown = function () {
MENURIGHT: 'dropdown-menu-right', MENURIGHT: 'dropdown-menu-right',
MENULEFT: 'dropdown-menu-left' MENULEFT: 'dropdown-menu-left'
}; };
var Selector = { var Selector = {
DATA_TOGGLE: '[data-toggle="dropdown"]', DATA_TOGGLE: '[data-toggle="dropdown"]',
FORM_CHILD: '.dropdown form', FORM_CHILD: '.dropdown form',
@ -69,23 +66,19 @@ var Dropdown = function () {
NAVBAR_NAV: '.navbar-nav', NAVBAR_NAV: '.navbar-nav',
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)' VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
}; };
var AttachmentMap = { var AttachmentMap = {
TOP: 'top-start', TOP: 'top-start',
TOPEND: 'top-end', TOPEND: 'top-end',
BOTTOM: 'bottom-start', BOTTOM: 'bottom-start',
BOTTOMEND: 'bottom-end' BOTTOMEND: 'bottom-end'
}; };
var Default = { var Default = {
offset: 0, offset: 0,
flip: true flip: true
}; };
var DefaultType = { var DefaultType = {
offset: '(number|string)', offset: '(number|string)',
flip: 'boolean' flip: 'boolean'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -93,10 +86,11 @@ var Dropdown = function () {
*/ */
}; };
var Dropdown = function () {
function Dropdown(element, config) {
_classCallCheck(this, Dropdown);
var Dropdown =
/*#__PURE__*/
function () {
function Dropdown(element, config) {
this._element = element; this._element = element;
this._popper = null; this._popper = null;
this._config = this._getConfig(config); this._config = this._getConfig(config);
@ -104,22 +98,19 @@ var Dropdown = function () {
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
this._addEventListeners(); this._addEventListeners();
} } // getters
// getters
_createClass(Dropdown, [{
key: 'toggle',
var _proto = Dropdown.prototype;
// public // public
_proto.toggle = function toggle() {
value: function toggle() {
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) { if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
return; return;
} }
var parent = Dropdown._getParentFromElement(this._element); var parent = Dropdown._getParentFromElement(this._element);
var isActive = $(this._menu).hasClass(ClassName.SHOW); var isActive = $(this._menu).hasClass(ClassName.SHOW);
Dropdown._clearMenus(); Dropdown._clearMenus();
@ -132,113 +123,108 @@ var Dropdown = function () {
relatedTarget: this._element relatedTarget: this._element
}; };
var showEvent = $.Event(Event.SHOW, relatedTarget); var showEvent = $.Event(Event.SHOW, relatedTarget);
$(parent).trigger(showEvent); $(parent).trigger(showEvent);
if (showEvent.isDefaultPrevented()) { if (showEvent.isDefaultPrevented()) {
return; return;
} }
var element = this._element; var element = this._element; // for dropup with alignment we use the parent as popper container
// for dropup with alignment we use the parent as popper container
if ($(parent).hasClass(ClassName.DROPUP)) { if ($(parent).hasClass(ClassName.DROPUP)) {
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) { if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
element = parent; element = parent;
} }
} }
this._popper = new Popper(element, this._menu, this._getPopperConfig());
// if this is a touch-enabled device we add extra this._popper = new Popper(element, this._menu, this._getPopperConfig()); // 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 && !$(parent).closest(Selector.NAVBAR_NAV).length) { if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
$('body').children().on('mouseover', null, $.noop); $('body').children().on('mouseover', null, $.noop);
} }
this._element.focus(); this._element.focus();
this._element.setAttribute('aria-expanded', true); this._element.setAttribute('aria-expanded', true);
$(this._menu).toggleClass(ClassName.SHOW); $(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget)); $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
$(this._element).off(EVENT_KEY); $(this._element).off(EVENT_KEY);
this._element = null; this._element = null;
this._menu = null; this._menu = null;
if (this._popper !== null) { if (this._popper !== null) {
this._popper.destroy(); this._popper.destroy();
} }
this._popper = null; this._popper = null;
} };
}, {
key: 'update', _proto.update = function update() {
value: function update() {
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
} }; // private
// private
}, { _proto._addEventListeners = function _addEventListeners() {
key: '_addEventListeners',
value: function _addEventListeners() {
var _this = this; var _this = this;
$(this._element).on(Event.CLICK, function (event) { $(this._element).on(Event.CLICK, function (event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
_this.toggle(); _this.toggle();
}); });
} };
}, {
key: '_getConfig', _proto._getConfig = function _getConfig(config) {
value: function _getConfig(config) {
config = $.extend({}, this.constructor.Default, $(this._element).data(), config); config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config; return config;
} };
}, {
key: '_getMenuElement', _proto._getMenuElement = function _getMenuElement() {
value: function _getMenuElement() {
if (!this._menu) { if (!this._menu) {
var parent = Dropdown._getParentFromElement(this._element); var parent = Dropdown._getParentFromElement(this._element);
this._menu = $(parent).find(Selector.MENU)[0]; this._menu = $(parent).find(Selector.MENU)[0];
} }
return this._menu;
}
}, {
key: '_getPlacement',
value: function _getPlacement() {
var $parentDropdown = $(this._element).parent();
var placement = AttachmentMap.BOTTOM;
// Handle dropup return this._menu;
};
_proto._getPlacement = function _getPlacement() {
var $parentDropdown = $(this._element).parent();
var placement = AttachmentMap.BOTTOM; // Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP)) { if ($parentDropdown.hasClass(ClassName.DROPUP)) {
placement = AttachmentMap.TOP; placement = AttachmentMap.TOP;
if ($(this._menu).hasClass(ClassName.MENURIGHT)) { if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND; placement = AttachmentMap.TOPEND;
} }
} else if ($(this._menu).hasClass(ClassName.MENURIGHT)) { } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND; placement = AttachmentMap.BOTTOMEND;
} }
return placement; return placement;
} };
}, {
key: '_detectNavbar', _proto._detectNavbar = function _detectNavbar() {
value: function _detectNavbar() {
return $(this._element).closest('.navbar').length > 0; return $(this._element).closest('.navbar').length > 0;
} };
}, {
key: '_getPopperConfig', _proto._getPopperConfig = function _getPopperConfig() {
value: function _getPopperConfig() {
var popperConfig = { var popperConfig = {
placement: this._getPlacement(), placement: this._getPlacement(),
modifiers: { modifiers: {
@ -248,25 +234,25 @@ var Dropdown = function () {
flip: { flip: {
enabled: this._config.flip enabled: this._config.flip
} }
} } // Disable Popper.js for Dropdown in Navbar
// Disable Popper.js for Dropdown in Navbar };
};if (this._inNavbar) {
if (this._inNavbar) {
popperConfig.modifiers.applyStyle = { popperConfig.modifiers.applyStyle = {
enabled: !this._inNavbar enabled: !this._inNavbar
}; };
} }
return popperConfig; return popperConfig;
} }; // static
// static
}], [{ Dropdown._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
var _config = typeof config === 'object' ? config : null;
if (!data) { if (!data) {
data = new Dropdown(this, _config); data = new Dropdown(this, _config);
@ -275,22 +261,24 @@ var Dropdown = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](); data[config]();
} }
}); });
} };
}, {
key: '_clearMenus', Dropdown._clearMenus = function _clearMenus(event) {
value: function _clearMenus(event) {
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
return; return;
} }
var toggles = $.makeArray($(Selector.DATA_TOGGLE)); var toggles = $.makeArray($(Selector.DATA_TOGGLE));
for (var i = 0; i < toggles.length; i++) { for (var i = 0; i < toggles.length; i++) {
var parent = Dropdown._getParentFromElement(toggles[i]); var parent = Dropdown._getParentFromElement(toggles[i]);
var context = $(toggles[i]).data(DATA_KEY); var context = $(toggles[i]).data(DATA_KEY);
var relatedTarget = { var relatedTarget = {
relatedTarget: toggles[i] relatedTarget: toggles[i]
@ -301,6 +289,7 @@ var Dropdown = function () {
} }
var dropdownMenu = context._menu; var dropdownMenu = context._menu;
if (!$(parent).hasClass(ClassName.SHOW)) { if (!$(parent).hasClass(ClassName.SHOW)) {
continue; continue;
} }
@ -311,26 +300,25 @@ var Dropdown = function () {
var hideEvent = $.Event(Event.HIDE, relatedTarget); var hideEvent = $.Event(Event.HIDE, relatedTarget);
$(parent).trigger(hideEvent); $(parent).trigger(hideEvent);
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
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
$('body').children().off('mouseover', null, $.noop); $('body').children().off('mouseover', null, $.noop);
} }
toggles[i].setAttribute('aria-expanded', 'false'); toggles[i].setAttribute('aria-expanded', 'false');
$(dropdownMenu).removeClass(ClassName.SHOW); $(dropdownMenu).removeClass(ClassName.SHOW);
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget)); $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
} }
} };
}, {
key: '_getParentFromElement', Dropdown._getParentFromElement = function _getParentFromElement(element) {
value: function _getParentFromElement(element) { var parent;
var parent = void 0;
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
if (selector) { if (selector) {
@ -338,10 +326,9 @@ var Dropdown = function () {
} }
return parent || element.parentNode; return parent || element.parentNode;
} };
}, {
key: '_dataApiKeydownHandler', Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
value: function _dataApiKeydownHandler(event) {
if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) { if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
return; return;
} }
@ -354,10 +341,10 @@ var Dropdown = function () {
} }
var parent = Dropdown._getParentFromElement(this); var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.SHOW); var isActive = $(parent).hasClass(ClassName.SHOW);
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
if (event.which === ESCAPE_KEYCODE) { 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');
@ -390,19 +377,20 @@ var Dropdown = function () {
} }
items[index].focus(); items[index].focus();
} };
}, {
key: 'VERSION', _createClass(Dropdown, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, { }, {
key: 'DefaultType', key: "DefaultType",
get: function get() { get: function get() {
return DefaultType; return DefaultType;
} }
@ -410,21 +398,21 @@ var Dropdown = function () {
return Dropdown; return Dropdown;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
Dropdown._jQueryInterface.call($(this), 'toggle'); Dropdown._jQueryInterface.call($(this), 'toggle');
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
e.stopPropagation(); e.stopPropagation();
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -433,6 +421,7 @@ var Dropdown = function () {
$.fn[NAME] = Dropdown._jQueryInterface; $.fn[NAME] = Dropdown._jQueryInterface;
$.fn[NAME].Constructor = Dropdown; $.fn[NAME].Constructor = Dropdown;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Dropdown._jQueryInterface; return Dropdown._jQueryInterface;

File diff suppressed because one or more lines are too long

4
js/dist/index.js vendored
View File

@ -1,12 +1,9 @@
'use strict';
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-alpha.6): index.js * Bootstrap (v4.0.0-alpha.6): index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
(function () { (function () {
if (typeof jQuery === 'undefined') { if (typeof jQuery === 'undefined') {
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
@ -15,6 +12,7 @@
var version = $.fn.jquery.split(' ')[0].split('.'); var version = $.fn.jquery.split(' ')[0].split('.');
var min = 3; var min = 3;
var max = 4; var max = 4;
if (version[0] < min || version[0] >= max) { if (version[0] < min || version[0] >= max) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0'); throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0');
} }

View File

@ -1 +1 @@
{"version":3,"sources":["../src/index.js"],"names":["jQuery","Error","version","$","fn","jquery","split","min","max"],"mappings":";;AAaA;;;;;;;AAOA,CAAC,YAAM;AACL,MAAI,OAAOA,MAAP,KAAkB,WAAtB,EAAmC;AACjC,UAAM,IAAIC,KAAJ,CAAU,kGAAV,CAAN;AACD;;AAED,MAAMC,UAAUC,EAAEC,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,MAAM,CAAZ;AACA,MAAMC,MAAM,CAAZ;AACA,MAAIN,QAAQ,CAAR,IAAaK,GAAb,IAAoBL,QAAQ,CAAR,KAAcM,GAAtC,EAA2C;AACzC,UAAM,IAAIP,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAXD,EAWGD,MAXH","file":"index.js","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n if (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const min = 3\n const max = 4\n if (version[0] < min || version[0] >= max) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0')\n }\n})(jQuery)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} {"version":3,"sources":["../src/index.js"],"names":["jQuery","Error","version","$","fn","jquery","split","min","max"],"mappings":"AAaA;;;;;;AAOA,CAAC,YAAM;AACL,MAAI,OAAOA,MAAP,KAAkB,WAAtB,EAAmC;AACjC,UAAM,IAAIC,KAAJ,CAAU,kGAAV,CAAN;AACD;;AAED,MAAMC,UAAUC,EAAEC,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,MAAM,CAAZ;AACA,MAAMC,MAAM,CAAZ;;AACA,MAAIN,QAAQ,CAAR,IAAaK,GAAb,IAAoBL,QAAQ,CAAR,KAAcM,GAAtC,EAA2C;AACzC,UAAM,IAAIP,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAXD,EAWGD,MAXH","file":"index.js","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n if (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const min = 3\n const max = 4\n if (version[0] < min || version[0] >= max) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0')\n }\n})(jQuery)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]}

272
js/dist/modal.js vendored
View File

@ -1,10 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -12,19 +8,16 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Modal = function () { var Modal = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'modal'; var NAME = 'modal';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 300; var TRANSITION_DURATION = 300;
@ -37,28 +30,25 @@ var Modal = function () {
focus: true, focus: true,
show: true show: true
}; };
var DefaultType = { var DefaultType = {
backdrop: '(boolean|string)', backdrop: '(boolean|string)',
keyboard: 'boolean', keyboard: 'boolean',
focus: 'boolean', focus: 'boolean',
show: 'boolean' show: 'boolean'
}; };
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: "hide" + EVENT_KEY,
HIDDEN: 'hidden' + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY,
SHOW: 'show' + EVENT_KEY, SHOW: "show" + EVENT_KEY,
SHOWN: 'shown' + EVENT_KEY, SHOWN: "shown" + EVENT_KEY,
FOCUSIN: 'focusin' + EVENT_KEY, FOCUSIN: "focusin" + EVENT_KEY,
RESIZE: 'resize' + EVENT_KEY, RESIZE: "resize" + EVENT_KEY,
CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
SCROLLBAR_MEASURER: 'modal-scrollbar-measure', SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
BACKDROP: 'modal-backdrop', BACKDROP: 'modal-backdrop',
@ -66,7 +56,6 @@ var Modal = function () {
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
}; };
var Selector = { var Selector = {
DIALOG: '.modal-dialog', DIALOG: '.modal-dialog',
DATA_TOGGLE: '[data-toggle="modal"]', DATA_TOGGLE: '[data-toggle="modal"]',
@ -74,7 +63,6 @@ var Modal = function () {
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
STICKY_CONTENT: '.sticky-top', STICKY_CONTENT: '.sticky-top',
NAVBAR_TOGGLER: '.navbar-toggler' NAVBAR_TOGGLER: '.navbar-toggler'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -82,10 +70,11 @@ var Modal = function () {
*/ */
}; };
var Modal = function () {
function Modal(element, config) {
_classCallCheck(this, Modal);
var Modal =
/*#__PURE__*/
function () {
function Modal(element, config) {
this._config = this._getConfig(config); this._config = this._getConfig(config);
this._element = element; this._element = element;
this._dialog = $(element).find(Selector.DIALOG)[0]; this._dialog = $(element).find(Selector.DIALOG)[0];
@ -95,22 +84,17 @@ var Modal = function () {
this._ignoreBackdropClick = false; this._ignoreBackdropClick = false;
this._originalBodyPadding = 0; this._originalBodyPadding = 0;
this._scrollbarWidth = 0; this._scrollbarWidth = 0;
} } // getters
// getters
_createClass(Modal, [{
key: 'toggle',
var _proto = Modal.prototype;
// public // public
_proto.toggle = function toggle(relatedTarget) {
value: function toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget); return this._isShown ? this.hide() : this.show(relatedTarget);
} };
}, {
key: 'show', _proto.show = function show(relatedTarget) {
value: function show(relatedTarget) {
var _this = this; var _this = this;
if (this._isTransitioning) { if (this._isTransitioning) {
@ -124,7 +108,6 @@ var Modal = function () {
var showEvent = $.Event(Event.SHOW, { var showEvent = $.Event(Event.SHOW, {
relatedTarget: relatedTarget relatedTarget: relatedTarget
}); });
$(this._element).trigger(showEvent); $(this._element).trigger(showEvent);
if (this._isShown || showEvent.isDefaultPrevented()) { if (this._isShown || showEvent.isDefaultPrevented()) {
@ -134,6 +117,7 @@ var Modal = function () {
this._isShown = true; this._isShown = true;
this._checkScrollbar(); this._checkScrollbar();
this._setScrollbar(); this._setScrollbar();
this._adjustDialog(); this._adjustDialog();
@ -141,12 +125,12 @@ var Modal = function () {
$(document.body).addClass(ClassName.OPEN); $(document.body).addClass(ClassName.OPEN);
this._setEscapeEvent(); this._setEscapeEvent();
this._setResizeEvent(); this._setResizeEvent();
$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) { $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
return _this.hide(event); return _this.hide(event);
}); });
$(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
$(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
if ($(event.target).is(_this._element)) { if ($(event.target).is(_this._element)) {
@ -158,10 +142,9 @@ var Modal = function () {
this._showBackdrop(function () { this._showBackdrop(function () {
return _this._showElement(relatedTarget); return _this._showElement(relatedTarget);
}); });
} };
}, {
key: 'hide', _proto.hide = function hide(event) {
value: function hide(event) {
var _this2 = this; var _this2 = this;
if (event) { if (event) {
@ -179,7 +162,6 @@ var Modal = function () {
} }
var hideEvent = $.Event(Event.HIDE); var hideEvent = $.Event(Event.HIDE);
$(this._element).trigger(hideEvent); $(this._element).trigger(hideEvent);
if (!this._isShown || hideEvent.isDefaultPrevented()) { if (!this._isShown || hideEvent.isDefaultPrevented()) {
@ -189,31 +171,26 @@ var Modal = function () {
this._isShown = false; this._isShown = false;
this._setEscapeEvent(); this._setEscapeEvent();
this._setResizeEvent(); this._setResizeEvent();
$(document).off(Event.FOCUSIN); $(document).off(Event.FOCUSIN);
$(this._element).removeClass(ClassName.SHOW); $(this._element).removeClass(ClassName.SHOW);
$(this._element).off(Event.CLICK_DISMISS); $(this._element).off(Event.CLICK_DISMISS);
$(this._dialog).off(Event.MOUSEDOWN_DISMISS); $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
if (transition) { if (transition) {
$(this._element).one(Util.TRANSITION_END, function (event) { $(this._element).one(Util.TRANSITION_END, function (event) {
return _this2._hideModal(event); return _this2._hideModal(event);
}).emulateTransitionEnd(TRANSITION_DURATION); }).emulateTransitionEnd(TRANSITION_DURATION);
} else { } else {
this._hideModal(); this._hideModal();
} }
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
$(window, document, this._element, this._backdrop).off(EVENT_KEY); $(window, document, this._element, this._backdrop).off(EVENT_KEY);
this._config = null; this._config = null;
this._element = null; this._element = null;
this._dialog = null; this._dialog = null;
@ -222,25 +199,20 @@ var Modal = function () {
this._isBodyOverflowing = null; this._isBodyOverflowing = null;
this._ignoreBackdropClick = null; this._ignoreBackdropClick = null;
this._scrollbarWidth = null; this._scrollbarWidth = null;
} };
}, {
key: 'handleUpdate', _proto.handleUpdate = function handleUpdate() {
value: function handleUpdate() {
this._adjustDialog(); this._adjustDialog();
} }; // private
// private
}, { _proto._getConfig = function _getConfig(config) {
key: '_getConfig',
value: function _getConfig(config) {
config = $.extend({}, Default, config); config = $.extend({}, Default, config);
Util.typeCheckConfig(NAME, config, DefaultType); Util.typeCheckConfig(NAME, config, DefaultType);
return config; return config;
} };
}, {
key: '_showElement', _proto._showElement = function _showElement(relatedTarget) {
value: function _showElement(relatedTarget) {
var _this3 = this; var _this3 = this;
var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
@ -251,7 +223,9 @@ var Modal = function () {
} }
this._element.style.display = 'block'; this._element.style.display = 'block';
this._element.removeAttribute('aria-hidden'); this._element.removeAttribute('aria-hidden');
this._element.scrollTop = 0; this._element.scrollTop = 0;
if (transition) { if (transition) {
@ -272,6 +246,7 @@ var Modal = function () {
if (_this3._config.focus) { if (_this3._config.focus) {
_this3._element.focus(); _this3._element.focus();
} }
_this3._isTransitioning = false; _this3._isTransitioning = false;
$(_this3._element).trigger(shownEvent); $(_this3._element).trigger(shownEvent);
}; };
@ -281,10 +256,9 @@ var Modal = function () {
} else { } else {
transitionComplete(); transitionComplete();
} }
} };
}, {
key: '_enforceFocus', _proto._enforceFocus = function _enforceFocus() {
value: function _enforceFocus() {
var _this4 = this; var _this4 = this;
$(document).off(Event.FOCUSIN) // guard against infinite focus loop $(document).off(Event.FOCUSIN) // guard against infinite focus loop
@ -293,26 +267,25 @@ var Modal = function () {
_this4._element.focus(); _this4._element.focus();
} }
}); });
} };
}, {
key: '_setEscapeEvent', _proto._setEscapeEvent = function _setEscapeEvent() {
value: function _setEscapeEvent() {
var _this5 = this; var _this5 = this;
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 === ESCAPE_KEYCODE) { if (event.which === ESCAPE_KEYCODE) {
event.preventDefault(); event.preventDefault();
_this5.hide(); _this5.hide();
} }
}); });
} else if (!this._isShown) { } else if (!this._isShown) {
$(this._element).off(Event.KEYDOWN_DISMISS); $(this._element).off(Event.KEYDOWN_DISMISS);
} }
} };
}, {
key: '_setResizeEvent', _proto._setResizeEvent = function _setResizeEvent() {
value: function _setResizeEvent() {
var _this6 = this; var _this6 = this;
if (this._isShown) { if (this._isShown) {
@ -322,40 +295,42 @@ var Modal = function () {
} else { } else {
$(window).off(Event.RESIZE); $(window).off(Event.RESIZE);
} }
} };
}, {
key: '_hideModal', _proto._hideModal = function _hideModal() {
value: function _hideModal() {
var _this7 = this; var _this7 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', true); this._element.setAttribute('aria-hidden', true);
this._isTransitioning = false; this._isTransitioning = false;
this._showBackdrop(function () { this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN); $(document.body).removeClass(ClassName.OPEN);
_this7._resetAdjustments(); _this7._resetAdjustments();
_this7._resetScrollbar(); _this7._resetScrollbar();
$(_this7._element).trigger(Event.HIDDEN); $(_this7._element).trigger(Event.HIDDEN);
}); });
} };
}, {
key: '_removeBackdrop', _proto._removeBackdrop = function _removeBackdrop() {
value: function _removeBackdrop() {
if (this._backdrop) { if (this._backdrop) {
$(this._backdrop).remove(); $(this._backdrop).remove();
this._backdrop = null; this._backdrop = null;
} }
} };
}, {
key: '_showBackdrop', _proto._showBackdrop = function _showBackdrop(callback) {
value: function _showBackdrop(callback) {
var _this8 = this; var _this8 = this;
var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
if (this._isShown && this._config.backdrop) { if (this._isShown && this._config.backdrop) {
var doAnimate = Util.supportsTransitionEnd() && animate; var doAnimate = Util.supportsTransitionEnd() && animate;
this._backdrop = document.createElement('div'); this._backdrop = document.createElement('div');
this._backdrop.className = ClassName.BACKDROP; this._backdrop.className = ClassName.BACKDROP;
@ -364,15 +339,16 @@ var Modal = function () {
} }
$(this._backdrop).appendTo(document.body); $(this._backdrop).appendTo(document.body);
$(this._element).on(Event.CLICK_DISMISS, function (event) { $(this._element).on(Event.CLICK_DISMISS, function (event) {
if (_this8._ignoreBackdropClick) { if (_this8._ignoreBackdropClick) {
_this8._ignoreBackdropClick = false; _this8._ignoreBackdropClick = false;
return; return;
} }
if (event.target !== event.currentTarget) { if (event.target !== event.currentTarget) {
return; return;
} }
if (_this8._config.backdrop === 'static') { if (_this8._config.backdrop === 'static') {
_this8._element.focus(); _this8._element.focus();
} else { } else {
@ -401,6 +377,7 @@ var Modal = function () {
var callbackRemove = function callbackRemove() { var callbackRemove = function callbackRemove() {
_this8._removeBackdrop(); _this8._removeBackdrop();
if (callback) { if (callback) {
callback(); callback();
} }
@ -414,103 +391,92 @@ var Modal = function () {
} else if (callback) { } else if (callback) {
callback(); callback();
} }
} }; // ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals // the following methods are used to handle overflowing modals
// todo (fat): these should probably be refactored out of modal.js // todo (fat): these should probably be refactored out of modal.js
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
}, {
key: '_adjustDialog', _proto._adjustDialog = function _adjustDialog() {
value: function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
if (!this._isBodyOverflowing && isModalOverflowing) { if (!this._isBodyOverflowing && isModalOverflowing) {
this._element.style.paddingLeft = this._scrollbarWidth + 'px'; this._element.style.paddingLeft = this._scrollbarWidth + "px";
} }
if (this._isBodyOverflowing && !isModalOverflowing) { if (this._isBodyOverflowing && !isModalOverflowing) {
this._element.style.paddingRight = this._scrollbarWidth + 'px'; this._element.style.paddingRight = this._scrollbarWidth + "px";
} }
} };
}, {
key: '_resetAdjustments', _proto._resetAdjustments = function _resetAdjustments() {
value: function _resetAdjustments() {
this._element.style.paddingLeft = ''; this._element.style.paddingLeft = '';
this._element.style.paddingRight = ''; this._element.style.paddingRight = '';
} };
}, {
key: '_checkScrollbar', _proto._checkScrollbar = function _checkScrollbar() {
value: function _checkScrollbar() {
var rect = document.body.getBoundingClientRect(); var rect = document.body.getBoundingClientRect();
this._isBodyOverflowing = rect.left + rect.right < window.innerWidth; this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
this._scrollbarWidth = this._getScrollbarWidth(); this._scrollbarWidth = this._getScrollbarWidth();
} };
}, {
key: '_setScrollbar', _proto._setScrollbar = function _setScrollbar() {
value: function _setScrollbar() {
var _this9 = this; var _this9 = this;
if (this._isBodyOverflowing) { if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
// Adjust fixed content padding // Adjust fixed content padding
$(Selector.FIXED_CONTENT).each(function (index, element) { $(Selector.FIXED_CONTENT).each(function (index, element) {
var actualPadding = $(element)[0].style.paddingRight; var actualPadding = $(element)[0].style.paddingRight;
var calculatedPadding = $(element).css('padding-right'); var calculatedPadding = $(element).css('padding-right');
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + 'px'); $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
}); }); // Adjust sticky content margin
// Adjust sticky content margin
$(Selector.STICKY_CONTENT).each(function (index, element) { $(Selector.STICKY_CONTENT).each(function (index, element) {
var actualMargin = $(element)[0].style.marginRight; var actualMargin = $(element)[0].style.marginRight;
var calculatedMargin = $(element).css('margin-right'); var calculatedMargin = $(element).css('margin-right');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + 'px'); $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
}); }); // Adjust navbar-toggler margin
// Adjust navbar-toggler margin
$(Selector.NAVBAR_TOGGLER).each(function (index, element) { $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
var actualMargin = $(element)[0].style.marginRight; var actualMargin = $(element)[0].style.marginRight;
var calculatedMargin = $(element).css('margin-right'); var calculatedMargin = $(element).css('margin-right');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + 'px'); $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
}); }); // Adjust body padding
// Adjust body padding
var actualPadding = document.body.style.paddingRight; var actualPadding = document.body.style.paddingRight;
var calculatedPadding = $('body').css('padding-right'); var calculatedPadding = $('body').css('padding-right');
$('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + 'px'); $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
} }
} };
}, {
key: '_resetScrollbar', _proto._resetScrollbar = function _resetScrollbar() {
value: function _resetScrollbar() {
// Restore fixed content padding // Restore fixed content padding
$(Selector.FIXED_CONTENT).each(function (index, element) { $(Selector.FIXED_CONTENT).each(function (index, element) {
var padding = $(element).data('padding-right'); var padding = $(element).data('padding-right');
if (typeof padding !== 'undefined') { if (typeof padding !== 'undefined') {
$(element).css('padding-right', padding).removeData('padding-right'); $(element).css('padding-right', padding).removeData('padding-right');
} }
}); }); // Restore sticky content and navbar-toggler margin
// Restore sticky content and navbar-toggler margin $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
$(Selector.STICKY_CONTENT + ', ' + Selector.NAVBAR_TOGGLER).each(function (index, element) {
var margin = $(element).data('margin-right'); var margin = $(element).data('margin-right');
if (typeof margin !== 'undefined') { if (typeof margin !== 'undefined') {
$(element).css('margin-right', margin).removeData('margin-right'); $(element).css('margin-right', margin).removeData('margin-right');
} }
}); }); // Restore body padding
// Restore body padding
var padding = $('body').data('padding-right'); var padding = $('body').data('padding-right');
if (typeof padding !== 'undefined') { if (typeof padding !== 'undefined') {
$('body').css('padding-right', padding).removeData('padding-right'); $('body').css('padding-right', padding).removeData('padding-right');
} }
} };
}, {
key: '_getScrollbarWidth', _proto._getScrollbarWidth = function _getScrollbarWidth() {
value: function _getScrollbarWidth() {
// thx d.walsh // thx d.walsh
var scrollDiv = document.createElement('div'); var scrollDiv = document.createElement('div');
scrollDiv.className = ClassName.SCROLLBAR_MEASURER; scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
@ -518,16 +484,14 @@ var Modal = function () {
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) {
key: '_jQueryInterface',
value: function _jQueryInterface(config, relatedTarget) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
var _config = $.extend({}, Modal.Default, $(this).data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
if (!data) { if (!data) {
data = new Modal(this, _config); data = new Modal(this, _config);
@ -536,21 +500,23 @@ var Modal = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](relatedTarget); data[config](relatedTarget);
} else if (_config.show) { } else if (_config.show) {
data.show(relatedTarget); data.show(relatedTarget);
} }
}); });
} };
}, {
key: 'VERSION', _createClass(Modal, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
@ -558,17 +524,17 @@ var Modal = function () {
return Modal; return Modal;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
var _this10 = this; var _this10 = this;
var target = void 0; var target;
var selector = Util.getSelectorFromElement(this); var selector = Util.getSelectorFromElement(this);
if (selector) { if (selector) {
@ -596,7 +562,6 @@ var Modal = function () {
Modal._jQueryInterface.call($(target), config, this); Modal._jQueryInterface.call($(target), config, this);
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -605,6 +570,7 @@ var Modal = function () {
$.fn[NAME] = Modal._jQueryInterface; $.fn[NAME] = Modal._jQueryInterface;
$.fn[NAME].Constructor = Modal; $.fn[NAME].Constructor = Modal;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Modal._jQueryInterface; return Modal._jQueryInterface;

File diff suppressed because one or more lines are too long

143
js/dist/popover.js vendored
View File

@ -1,14 +1,8 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -16,56 +10,47 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Popover = function () { var Popover = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'popover'; var NAME = 'popover';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
var DATA_KEY = 'bs.popover'; var DATA_KEY = 'bs.popover';
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var CLASS_PREFIX = 'bs-popover'; var CLASS_PREFIX = 'bs-popover';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g'); var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var Default = $.extend({}, Tooltip.Default, { var Default = $.extend({}, Tooltip.Default, {
placement: 'right', placement: 'right',
trigger: 'click', trigger: 'click',
content: '', content: '',
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
}); });
var DefaultType = $.extend({}, Tooltip.DefaultType, { var DefaultType = $.extend({}, Tooltip.DefaultType, {
content: '(string|element|function)' content: '(string|element|function)'
}); });
var ClassName = { var ClassName = {
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
}; };
var Selector = { var Selector = {
TITLE: '.popover-header', TITLE: '.popover-header',
CONTENT: '.popover-body' CONTENT: '.popover-body'
}; };
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: "hide" + EVENT_KEY,
HIDDEN: 'hidden' + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY,
SHOW: 'show' + EVENT_KEY, SHOW: "show" + EVENT_KEY,
SHOWN: 'shown' + EVENT_KEY, SHOWN: "shown" + EVENT_KEY,
INSERTED: 'inserted' + EVENT_KEY, INSERTED: "inserted" + EVENT_KEY,
CLICK: 'click' + EVENT_KEY, CLICK: "click" + EVENT_KEY,
FOCUSIN: 'focusin' + EVENT_KEY, FOCUSIN: "focusin" + EVENT_KEY,
FOCUSOUT: 'focusout' + EVENT_KEY, FOCUSOUT: "focusout" + EVENT_KEY,
MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSEENTER: "mouseenter" + EVENT_KEY,
MOUSELEAVE: 'mouseleave' + EVENT_KEY MOUSELEAVE: "mouseleave" + EVENT_KEY
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -73,72 +58,60 @@ var Popover = function () {
*/ */
}; };
var Popover = function (_Tooltip) {
_inherits(Popover, _Tooltip); var Popover =
/*#__PURE__*/
function (_Tooltip) {
_inheritsLoose(Popover, _Tooltip);
function Popover() { function Popover() {
_classCallCheck(this, Popover); return _Tooltip.apply(this, arguments) || this;
return _possibleConstructorReturn(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).apply(this, arguments));
} }
_createClass(Popover, [{ var _proto = Popover.prototype;
key: 'isWithContent',
// overrides // overrides
_proto.isWithContent = function isWithContent() {
value: function isWithContent() {
return this.getTitle() || this._getContent(); return this.getTitle() || this._getContent();
} };
}, {
key: 'addAttachmentClass', _proto.addAttachmentClass = function addAttachmentClass(attachment) {
value: function addAttachmentClass(attachment) { $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment); };
}
}, { _proto.getTipElement = function getTipElement() {
key: 'getTipElement',
value: function getTipElement() {
this.tip = this.tip || $(this.config.template)[0]; this.tip = this.tip || $(this.config.template)[0];
return this.tip; return this.tip;
} };
}, {
key: 'setContent', _proto.setContent = function setContent() {
value: function setContent() { var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
var $tip = $(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());
this.setElementContent($tip.find(Selector.CONTENT), this._getContent()); this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
}; // private
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
}
// private _proto._getContent = function _getContent() {
}, {
key: '_getContent',
value: function _getContent() {
return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content); return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
} };
}, {
key: '_cleanTipClass', _proto._cleanTipClass = function _cleanTipClass() {
value: function _cleanTipClass() {
var $tip = $(this.getTipElement()); var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
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) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
var _config = typeof config === 'object' ? config : null;
if (!data && /destroy|hide/.test(config)) { if (!data && /destroy|hide/.test(config)) {
return; return;
@ -151,48 +124,47 @@ var Popover = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](); data[config]();
} }
}); });
} };
}, {
key: 'VERSION',
_createClass(Popover, null, [{
key: "VERSION",
// getters // getters
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, { }, {
key: 'NAME', key: "NAME",
get: function get() { get: function get() {
return NAME; return NAME;
} }
}, { }, {
key: 'DATA_KEY', key: "DATA_KEY",
get: function get() { get: function get() {
return DATA_KEY; return DATA_KEY;
} }
}, { }, {
key: 'Event', key: "Event",
get: function get() { get: function get() {
return Event; return Event;
} }
}, { }, {
key: 'EVENT_KEY', key: "EVENT_KEY",
get: function get() { get: function get() {
return EVENT_KEY; return EVENT_KEY;
} }
}, { }, {
key: 'DefaultType', key: "DefaultType",
get: function get() { get: function get() {
return DefaultType; return DefaultType;
} }
@ -200,15 +172,16 @@ var Popover = function () {
return Popover; return Popover;
}(Tooltip); }(Tooltip);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Popover._jQueryInterface; $.fn[NAME] = Popover._jQueryInterface;
$.fn[NAME].Constructor = Popover; $.fn[NAME].Constructor = Popover;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Popover._jQueryInterface; return Popover._jQueryInterface;

File diff suppressed because one or more lines are too long

172
js/dist/scrollspy.js vendored
View File

@ -1,10 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -12,61 +8,52 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var ScrollSpy = function () { var ScrollSpy = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'scrollspy'; var NAME = 'scrollspy';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var Default = { var Default = {
offset: 10, offset: 10,
method: 'auto', method: 'auto',
target: '' target: ''
}; };
var DefaultType = { var DefaultType = {
offset: 'number', offset: 'number',
method: 'string', method: 'string',
target: '(string|element)' target: '(string|element)'
}; };
var Event = { var Event = {
ACTIVATE: 'activate' + EVENT_KEY, ACTIVATE: "activate" + EVENT_KEY,
SCROLL: 'scroll' + EVENT_KEY, SCROLL: "scroll" + EVENT_KEY,
LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
DROPDOWN_ITEM: 'dropdown-item', DROPDOWN_ITEM: 'dropdown-item',
DROPDOWN_MENU: 'dropdown-menu', DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active' ACTIVE: 'active'
}; };
var Selector = { var Selector = {
DATA_SPY: '[data-spy="scroll"]', DATA_SPY: '[data-spy="scroll"]',
ACTIVE: '.active', ACTIVE: '.active',
NAV_LIST_GROUP: '.nav, .list-group', NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link', NAV_LINKS: '.nav-link',
NAV_ITEMS: '.nav-item',
LIST_ITEMS: '.list-group-item', LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown', DROPDOWN: '.dropdown',
DROPDOWN_ITEMS: '.dropdown-item', DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle' DROPDOWN_TOGGLE: '.dropdown-toggle'
}; };
var OffsetMethod = { var OffsetMethod = {
OFFSET: 'offset', OFFSET: 'offset',
POSITION: 'position' POSITION: 'position'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -74,55 +61,45 @@ var ScrollSpy = function () {
*/ */
}; };
var ScrollSpy = function () {
var ScrollSpy =
/*#__PURE__*/
function () {
function ScrollSpy(element, config) { function ScrollSpy(element, config) {
var _this = this; var _this = this;
_classCallCheck(this, ScrollSpy);
this._element = element; this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element; this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config); this._config = this._getConfig(config);
this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.LIST_ITEMS + ',') + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS); this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
this._offsets = []; this._offsets = [];
this._targets = []; this._targets = [];
this._activeTarget = null; this._activeTarget = null;
this._scrollHeight = 0; this._scrollHeight = 0;
$(this._scrollElement).on(Event.SCROLL, function (event) { $(this._scrollElement).on(Event.SCROLL, function (event) {
return _this._process(event); return _this._process(event);
}); });
this.refresh(); this.refresh();
this._process(); this._process();
} } // getters
// getters
_createClass(ScrollSpy, [{
key: 'refresh',
var _proto = ScrollSpy.prototype;
// public // public
_proto.refresh = function refresh() {
value: 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.POSITION : OffsetMethod.OFFSET;
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 = [];
this._targets = []; this._targets = [];
this._scrollHeight = this._getScrollHeight(); this._scrollHeight = this._getScrollHeight();
var targets = $.makeArray($(this._selector)); var targets = $.makeArray($(this._selector));
targets.map(function (element) { targets.map(function (element) {
var target = void 0; var target;
var targetSelector = Util.getSelectorFromElement(element); var targetSelector = Util.getSelectorFromElement(element);
if (targetSelector) { if (targetSelector) {
@ -131,11 +108,13 @@ var ScrollSpy = function () {
if (target) { if (target) {
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 [$(target)[offsetMethod]().top + offsetBase, targetSelector]; return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
} }
} }
return null; return null;
}).filter(function (item) { }).filter(function (item) {
return item; return item;
@ -143,15 +122,14 @@ var ScrollSpy = function () {
return a[0] - b[0]; return a[0] - b[0];
}).forEach(function (item) { }).forEach(function (item) {
_this2._offsets.push(item[0]); _this2._offsets.push(item[0]);
_this2._targets.push(item[1]); _this2._targets.push(item[1]);
}); });
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
$(this._scrollElement).off(EVENT_KEY); $(this._scrollElement).off(EVENT_KEY);
this._element = null; this._element = null;
this._scrollElement = null; this._scrollElement = null;
this._config = null; this._config = null;
@ -160,48 +138,44 @@ var ScrollSpy = function () {
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) {
key: '_getConfig',
value: function _getConfig(config) {
config = $.extend({}, Default, config); config = $.extend({}, Default, config);
if (typeof config.target !== 'string') { if (typeof config.target !== 'string') {
var id = $(config.target).attr('id'); var id = $(config.target).attr('id');
if (!id) { if (!id) {
id = Util.getUID(NAME); id = Util.getUID(NAME);
$(config.target).attr('id', id); $(config.target).attr('id', id);
} }
config.target = '#' + id;
config.target = "#" + id;
} }
Util.typeCheckConfig(NAME, config, DefaultType); Util.typeCheckConfig(NAME, config, DefaultType);
return config; return config;
} };
}, {
key: '_getScrollTop', _proto._getScrollTop = function _getScrollTop() {
value: function _getScrollTop() {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
} };
}, {
key: '_getScrollHeight', _proto._getScrollHeight = function _getScrollHeight() {
value: function _getScrollHeight() {
return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
} };
}, {
key: '_getOffsetHeight', _proto._getOffsetHeight = function _getOffsetHeight() {
value: function _getOffsetHeight() {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
} };
}, {
key: '_process', _proto._process = function _process() {
value: function _process() {
var scrollTop = this._getScrollTop() + this._config.offset; var scrollTop = this._getScrollTop() + this._config.offset;
var scrollHeight = this._getScrollHeight(); var scrollHeight = this._getScrollHeight();
var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
if (this._scrollHeight !== scrollHeight) { if (this._scrollHeight !== scrollHeight) {
@ -214,12 +188,15 @@ var ScrollSpy = function () {
if (this._activeTarget !== target) { if (this._activeTarget !== target) {
this._activate(target); this._activate(target);
} }
return; return;
} }
if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
this._activeTarget = null; this._activeTarget = null;
this._clear(); this._clear();
return; return;
} }
@ -230,20 +207,19 @@ var ScrollSpy = function () {
this._activate(this._targets[i]); this._activate(this._targets[i]);
} }
} }
} };
}, {
key: '_activate', _proto._activate = function _activate(target) {
value: function _activate(target) {
this._activeTarget = target; this._activeTarget = target;
this._clear(); this._clear();
var queries = this._selector.split(','); var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
// eslint-disable-next-line arrow-body-style
queries = queries.map(function (selector) {
return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]');
});
queries = queries.map(function (selector) {
return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
});
var $link = $(queries.join(',')); var $link = $(queries.join(','));
if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
@ -251,30 +227,29 @@ var ScrollSpy = function () {
$link.addClass(ClassName.ACTIVE); $link.addClass(ClassName.ACTIVE);
} else { } else {
// Set triggered link as active // Set triggered link as active
$link.addClass(ClassName.ACTIVE); $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
// Set triggered links parents as active
// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE);
$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
} }
$(this._scrollElement).trigger(Event.ACTIVATE, { $(this._scrollElement).trigger(Event.ACTIVATE, {
relatedTarget: target relatedTarget: target
}); });
} };
}, {
key: '_clear', _proto._clear = function _clear() {
value: function _clear() {
$(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
} }; // static
// static
}], [{ ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;
var _config = typeof config === 'object' && config;
if (!data) { if (!data) {
data = new ScrollSpy(this, _config); data = new ScrollSpy(this, _config);
@ -283,19 +258,21 @@ var ScrollSpy = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](); data[config]();
} }
}); });
} };
}, {
key: 'VERSION', _createClass(ScrollSpy, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
@ -303,22 +280,22 @@ var ScrollSpy = function () {
return ScrollSpy; return ScrollSpy;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(window).on(Event.LOAD_DATA_API, function () { $(window).on(Event.LOAD_DATA_API, function () {
var scrollSpys = $.makeArray($(Selector.DATA_SPY)); var scrollSpys = $.makeArray($(Selector.DATA_SPY));
for (var i = scrollSpys.length; i--;) { for (var i = scrollSpys.length; i--;) {
var $spy = $(scrollSpys[i]); var $spy = $(scrollSpys[i]);
ScrollSpy._jQueryInterface.call($spy, $spy.data()); ScrollSpy._jQueryInterface.call($spy, $spy.data());
} }
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -327,6 +304,7 @@ var ScrollSpy = function () {
$.fn[NAME] = ScrollSpy._jQueryInterface; $.fn[NAME] = ScrollSpy._jQueryInterface;
$.fn[NAME].Constructor = ScrollSpy; $.fn[NAME].Constructor = ScrollSpy;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return ScrollSpy._jQueryInterface; return ScrollSpy._jQueryInterface;

File diff suppressed because one or more lines are too long

107
js/dist/tab.js vendored
View File

@ -1,8 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -10,31 +8,26 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Tab = function () { var Tab = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tab'; var NAME = 'tab';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
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';
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150; var TRANSITION_DURATION = 150;
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: "hide" + EVENT_KEY,
HIDDEN: 'hidden' + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY,
SHOW: 'show' + EVENT_KEY, SHOW: "show" + EVENT_KEY,
SHOWN: 'shown' + EVENT_KEY, SHOWN: "shown" + EVENT_KEY,
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
}; };
var ClassName = { var ClassName = {
DROPDOWN_MENU: 'dropdown-menu', DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active', ACTIVE: 'active',
@ -42,7 +35,6 @@ var Tab = function () {
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
}; };
var Selector = { var Selector = {
DROPDOWN: '.dropdown', DROPDOWN: '.dropdown',
NAV_LIST_GROUP: '.nav, .list-group', NAV_LIST_GROUP: '.nav, .list-group',
@ -51,7 +43,6 @@ var Tab = function () {
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle', DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -59,30 +50,27 @@ var Tab = function () {
*/ */
}; };
var Tab = function () {
var Tab =
/*#__PURE__*/
function () {
function Tab(element) { function Tab(element) {
_classCallCheck(this, Tab);
this._element = element; this._element = element;
} } // getters
// getters
_createClass(Tab, [{
key: 'show',
var _proto = Tab.prototype;
// public // public
_proto.show = function show() {
value: function show() {
var _this = this; var _this = this;
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) { if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
return; return;
} }
var target = void 0; var target;
var previous = void 0; var previous;
var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]; var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
var selector = Util.getSelectorFromElement(this._element); var selector = Util.getSelectorFromElement(this._element);
@ -95,7 +83,6 @@ var Tab = function () {
var hideEvent = $.Event(Event.HIDE, { var hideEvent = $.Event(Event.HIDE, {
relatedTarget: this._element relatedTarget: this._element
}); });
var showEvent = $.Event(Event.SHOW, { var showEvent = $.Event(Event.SHOW, {
relatedTarget: previous relatedTarget: previous
}); });
@ -120,11 +107,9 @@ var Tab = function () {
var hiddenEvent = $.Event(Event.HIDDEN, { var hiddenEvent = $.Event(Event.HIDDEN, {
relatedTarget: _this._element relatedTarget: _this._element
}); });
var shownEvent = $.Event(Event.SHOWN, { var shownEvent = $.Event(Event.SHOWN, {
relatedTarget: previous relatedTarget: previous
}); });
$(previous).trigger(hiddenEvent); $(previous).trigger(hiddenEvent);
$(_this._element).trigger(shownEvent); $(_this._element).trigger(shownEvent);
}; };
@ -134,22 +119,19 @@ var Tab = function () {
} else { } else {
complete(); complete();
} }
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
} }; // private
// private
}, { _proto._activate = function _activate(element, container, callback) {
key: '_activate',
value: function _activate(element, container, callback) {
var _this2 = this; var _this2 = this;
var activeElements = void 0; var activeElements;
if (container.nodeName === 'UL') { if (container.nodeName === 'UL') {
activeElements = $(container).find(Selector.ACTIVE_UL); activeElements = $(container).find(Selector.ACTIVE_UL);
} else { } else {
@ -172,24 +154,27 @@ var Tab = function () {
if (active) { if (active) {
$(active).removeClass(ClassName.SHOW); $(active).removeClass(ClassName.SHOW);
} }
} };
}, {
key: '_transitionComplete', _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
value: function _transitionComplete(element, active, isTransitioning, callback) {
if (active) { if (active) {
$(active).removeClass(ClassName.ACTIVE); $(active).removeClass(ClassName.ACTIVE);
var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
if (dropdownChild) { if (dropdownChild) {
$(dropdownChild).removeClass(ClassName.ACTIVE); $(dropdownChild).removeClass(ClassName.ACTIVE);
} }
active.setAttribute('aria-expanded', false); if (active.getAttribute('role') === 'tab') {
active.setAttribute('aria-selected', false);
}
} }
$(element).addClass(ClassName.ACTIVE); $(element).addClass(ClassName.ACTIVE);
element.setAttribute('aria-expanded', true);
if (element.getAttribute('role') === 'tab') {
element.setAttribute('aria-selected', true);
}
if (isTransitioning) { if (isTransitioning) {
Util.reflow(element); Util.reflow(element);
@ -199,8 +184,8 @@ var Tab = function () {
} }
if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
var dropdownElement = $(element).closest(Selector.DROPDOWN)[0]; var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
if (dropdownElement) { if (dropdownElement) {
$(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
} }
@ -211,13 +196,10 @@ var Tab = function () {
if (callback) { if (callback) {
callback(); callback();
} }
} }; // static
// static
}], [{ Tab._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var $this = $(this); var $this = $(this);
var data = $this.data(DATA_KEY); var data = $this.data(DATA_KEY);
@ -229,14 +211,16 @@ var Tab = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](); data[config]();
} }
}); });
} };
}, {
key: 'VERSION', _createClass(Tab, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
@ -244,18 +228,18 @@ var Tab = function () {
return Tab; return Tab;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault(); event.preventDefault();
Tab._jQueryInterface.call($(this), 'show'); Tab._jQueryInterface.call($(this), 'show');
}); });
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
@ -264,6 +248,7 @@ var Tab = function () {
$.fn[NAME] = Tab._jQueryInterface; $.fn[NAME] = Tab._jQueryInterface;
$.fn[NAME].Constructor = Tab; $.fn[NAME].Constructor = Tab;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Tab._jQueryInterface; return Tab._jQueryInterface;

2
js/dist/tab.js.map vendored

File diff suppressed because one or more lines are too long

320
js/dist/tooltip.js vendored
View File

@ -1,10 +1,6 @@
'use strict'; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
@ -12,9 +8,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Tooltip = function () { var Tooltip = function () {
/** /**
* Check for Popper dependency * Check for Popper dependency
* Popper - https://popper.js.org * Popper - https://popper.js.org
@ -22,22 +16,21 @@ var Tooltip = function () {
if (typeof Popper === 'undefined') { if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)'); throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
} }
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NAME = 'tooltip'; var NAME = 'tooltip';
var VERSION = '4.0.0-beta'; var VERSION = '4.0.0-beta';
var DATA_KEY = 'bs.tooltip'; var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = '.' + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150; var TRANSITION_DURATION = 150;
var CLASS_PREFIX = 'bs-tooltip'; var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g'); var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DefaultType = { var DefaultType = {
animation: 'boolean', animation: 'boolean',
template: 'string', template: 'string',
@ -51,7 +44,6 @@ var Tooltip = function () {
container: '(string|element|boolean)', container: '(string|element|boolean)',
fallbackPlacement: '(string|array)' fallbackPlacement: '(string|array)'
}; };
var AttachmentMap = { var AttachmentMap = {
AUTO: 'auto', AUTO: 'auto',
TOP: 'top', TOP: 'top',
@ -59,7 +51,6 @@ var Tooltip = function () {
BOTTOM: 'bottom', BOTTOM: 'bottom',
LEFT: 'left' LEFT: 'left'
}; };
var Default = { var Default = {
animation: true, animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>', template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
@ -73,42 +64,36 @@ var Tooltip = function () {
container: false, container: false,
fallbackPlacement: 'flip' fallbackPlacement: 'flip'
}; };
var HoverState = { var HoverState = {
SHOW: 'show', SHOW: 'show',
OUT: 'out' OUT: 'out'
}; };
var Event = { var Event = {
HIDE: 'hide' + EVENT_KEY, HIDE: "hide" + EVENT_KEY,
HIDDEN: 'hidden' + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY,
SHOW: 'show' + EVENT_KEY, SHOW: "show" + EVENT_KEY,
SHOWN: 'shown' + EVENT_KEY, SHOWN: "shown" + EVENT_KEY,
INSERTED: 'inserted' + EVENT_KEY, INSERTED: "inserted" + EVENT_KEY,
CLICK: 'click' + EVENT_KEY, CLICK: "click" + EVENT_KEY,
FOCUSIN: 'focusin' + EVENT_KEY, FOCUSIN: "focusin" + EVENT_KEY,
FOCUSOUT: 'focusout' + EVENT_KEY, FOCUSOUT: "focusout" + EVENT_KEY,
MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSEENTER: "mouseenter" + EVENT_KEY,
MOUSELEAVE: 'mouseleave' + EVENT_KEY MOUSELEAVE: "mouseleave" + EVENT_KEY
}; };
var ClassName = { var ClassName = {
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
}; };
var Selector = { var Selector = {
TOOLTIP: '.tooltip', TOOLTIP: '.tooltip',
TOOLTIP_INNER: '.tooltip-inner', TOOLTIP_INNER: '.tooltip-inner',
ARROW: '.arrow' ARROW: '.arrow'
}; };
var Trigger = { var Trigger = {
HOVER: 'hover', HOVER: 'hover',
FOCUS: 'focus', FOCUS: 'focus',
CLICK: 'click', CLICK: 'click',
MANUAL: 'manual' MANUAL: 'manual'
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
@ -116,49 +101,42 @@ var Tooltip = function () {
*/ */
}; };
var Tooltip = function () {
function Tooltip(element, config) {
_classCallCheck(this, Tooltip);
var Tooltip =
/*#__PURE__*/
function () {
function Tooltip(element, config) {
// private // private
this._isEnabled = true; this._isEnabled = true;
this._timeout = 0; this._timeout = 0;
this._hoverState = ''; this._hoverState = '';
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; this._popper = null; // protected
// 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
_createClass(Tooltip, [{
key: 'enable',
var _proto = Tooltip.prototype;
// public // public
_proto.enable = function enable() {
value: function enable() {
this._isEnabled = true; this._isEnabled = true;
} };
}, {
key: 'disable', _proto.disable = function disable() {
value: function disable() {
this._isEnabled = false; this._isEnabled = false;
} };
}, {
key: 'toggleEnabled', _proto.toggleEnabled = function toggleEnabled() {
value: function toggleEnabled() {
this._isEnabled = !this._isEnabled; this._isEnabled = !this._isEnabled;
} };
}, {
key: 'toggle', _proto.toggle = function toggle(event) {
value: function toggle(event) {
if (!this._isEnabled) { if (!this._isEnabled) {
return; return;
} }
@ -180,22 +158,19 @@ var Tooltip = function () {
context._leave(null, context); context._leave(null, context);
} }
} else { } else {
if ($(this.getTipElement()).hasClass(ClassName.SHOW)) { if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
this._leave(null, this); this._leave(null, this);
return; return;
} }
this._enter(null, this); this._enter(null, this);
} }
} };
}, {
key: 'dispose', _proto.dispose = function dispose() {
value: function dispose() {
clearTimeout(this._timeout); clearTimeout(this._timeout);
$.removeData(this.element, this.constructor.DATA_KEY); $.removeData(this.element, this.constructor.DATA_KEY);
$(this.element).off(this.constructor.EVENT_KEY); $(this.element).off(this.constructor.EVENT_KEY);
$(this.element).closest('.modal').off('hide.bs.modal'); $(this.element).closest('.modal').off('hide.bs.modal');
@ -207,6 +182,7 @@ var Tooltip = function () {
this._timeout = null; this._timeout = null;
this._hoverState = null; this._hoverState = null;
this._activeTrigger = null; this._activeTrigger = null;
if (this._popper !== null) { if (this._popper !== null) {
this._popper.destroy(); this._popper.destroy();
} }
@ -215,10 +191,9 @@ var Tooltip = function () {
this.element = null; this.element = null;
this.config = null; this.config = null;
this.tip = null; this.tip = null;
} };
}, {
key: 'show', _proto.show = function show() {
value: function show() {
var _this = this; var _this = this;
if ($(this.element).css('display') === 'none') { if ($(this.element).css('display') === 'none') {
@ -226,9 +201,9 @@ var Tooltip = function () {
} }
var showEvent = $.Event(this.constructor.Event.SHOW); var showEvent = $.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) { if (this.isWithContent() && this._isEnabled) {
$(this.element).trigger(showEvent); $(this.element).trigger(showEvent);
var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element); var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
if (showEvent.isDefaultPrevented() || !isInTheDom) { if (showEvent.isDefaultPrevented() || !isInTheDom) {
@ -237,10 +212,8 @@ var Tooltip = function () {
var tip = this.getTipElement(); var tip = this.getTipElement();
var tipId = Util.getUID(this.constructor.NAME); var tipId = Util.getUID(this.constructor.NAME);
tip.setAttribute('id', tipId); tip.setAttribute('id', tipId);
this.element.setAttribute('aria-describedby', tipId); this.element.setAttribute('aria-describedby', tipId);
this.setContent(); this.setContent();
if (this.config.animation) { if (this.config.animation) {
@ -250,10 +223,9 @@ var Tooltip = function () {
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
var attachment = this._getAttachment(placement); var attachment = this._getAttachment(placement);
this.addAttachmentClass(attachment); this.addAttachmentClass(attachment);
var container = this.config.container === false ? document.body : $(this.config.container); var container = this.config.container === false ? document.body : $(this.config.container);
$(tip).data(this.constructor.DATA_KEY, this); $(tip).data(this.constructor.DATA_KEY, this);
if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) { if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
@ -261,7 +233,6 @@ var Tooltip = function () {
} }
$(this.element).trigger(this.constructor.Event.INSERTED); $(this.element).trigger(this.constructor.Event.INSERTED);
this._popper = new Popper(this.element, tip, { this._popper = new Popper(this.element, tip, {
placement: attachment, placement: attachment,
modifiers: { modifiers: {
@ -284,13 +255,11 @@ var Tooltip = function () {
_this._handlePopperPlacementChange(data); _this._handlePopperPlacementChange(data);
} }
}); });
$(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
$(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
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
$('body').children().on('mouseover', null, $.noop); $('body').children().on('mouseover', null, $.noop);
} }
@ -299,9 +268,9 @@ var Tooltip = function () {
if (_this.config.animation) { if (_this.config.animation) {
_this._fixTransition(); _this._fixTransition();
} }
var prevHoverState = _this._hoverState; var prevHoverState = _this._hoverState;
_this._hoverState = null; _this._hoverState = null;
$(_this.element).trigger(_this.constructor.Event.SHOWN); $(_this.element).trigger(_this.constructor.Event.SHOWN);
if (prevHoverState === HoverState.OUT) { if (prevHoverState === HoverState.OUT) {
@ -315,22 +284,25 @@ var Tooltip = function () {
complete(); complete();
} }
} }
} };
}, {
key: 'hide', _proto.hide = function hide(callback) {
value: function hide(callback) {
var _this2 = this; var _this2 = this;
var tip = this.getTipElement(); var tip = this.getTipElement();
var hideEvent = $.Event(this.constructor.Event.HIDE); var hideEvent = $.Event(this.constructor.Event.HIDE);
var complete = function complete() { var complete = function complete() {
if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) { if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip); tip.parentNode.removeChild(tip);
} }
_this2._cleanTipClass(); _this2._cleanTipClass();
_this2.element.removeAttribute('aria-describedby'); _this2.element.removeAttribute('aria-describedby');
$(_this2.element).trigger(_this2.constructor.Event.HIDDEN); $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
if (_this2._popper !== null) { if (_this2._popper !== null) {
_this2._popper.destroy(); _this2._popper.destroy();
} }
@ -346,10 +318,9 @@ var Tooltip = function () {
return; return;
} }
$(tip).removeClass(ClassName.SHOW); $(tip).removeClass(ClassName.SHOW); // 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
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
$('body').children().off('mouseover', null, $.noop); $('body').children().off('mouseover', null, $.noop);
} }
@ -359,52 +330,44 @@ var Tooltip = function () {
this._activeTrigger[Trigger.HOVER] = false; this._activeTrigger[Trigger.HOVER] = false;
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
$(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
} else { } else {
complete(); complete();
} }
this._hoverState = ''; this._hoverState = '';
} };
}, {
key: 'update', _proto.update = function update() {
value: function update() {
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
} }; // protected
// protected
}, { _proto.isWithContent = function isWithContent() {
key: 'isWithContent',
value: function isWithContent() {
return Boolean(this.getTitle()); return Boolean(this.getTitle());
} };
}, {
key: 'addAttachmentClass', _proto.addAttachmentClass = function addAttachmentClass(attachment) {
value: function addAttachmentClass(attachment) { $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment); };
}
}, { _proto.getTipElement = function getTipElement() {
key: 'getTipElement',
value: function getTipElement() {
this.tip = this.tip || $(this.config.template)[0]; this.tip = this.tip || $(this.config.template)[0];
return this.tip; return this.tip;
} };
}, {
key: 'setContent', _proto.setContent = function setContent() {
value: function setContent() {
var $tip = $(this.getTipElement()); var $tip = $(this.getTipElement());
this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()); this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW); $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
} };
}, {
key: 'setElementContent', _proto.setElementContent = function setElementContent($element, content) {
value: function setElementContent($element, content) {
var html = this.config.html; var html = this.config.html;
if ((typeof content === 'undefined' ? 'undefined' : _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 (!$(content).parent().is($element)) { if (!$(content).parent().is($element)) {
@ -416,10 +379,9 @@ var Tooltip = function () {
} else { } else {
$element[html ? 'html' : 'text'](content); $element[html ? 'html' : 'text'](content);
} }
} };
}, {
key: 'getTitle', _proto.getTitle = function getTitle() {
value: function getTitle() {
var title = this.element.getAttribute('data-original-title'); var title = this.element.getAttribute('data-original-title');
if (!title) { if (!title) {
@ -427,22 +389,17 @@ var Tooltip = function () {
} }
return title; return title;
} }; // private
// private
}, { _proto._getAttachment = function _getAttachment(placement) {
key: '_getAttachment',
value: function _getAttachment(placement) {
return AttachmentMap[placement.toUpperCase()]; return AttachmentMap[placement.toUpperCase()];
} };
}, {
key: '_setListeners', _proto._setListeners = function _setListeners() {
value: function _setListeners() {
var _this3 = this; var _this3 = this;
var triggers = this.config.trigger.split(' '); var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) { triggers.forEach(function (trigger) {
if (trigger === 'click') { if (trigger === 'click') {
$(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) { $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
@ -451,7 +408,6 @@ var Tooltip = function () {
} else if (trigger !== Trigger.MANUAL) { } else if (trigger !== Trigger.MANUAL) {
var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
$(_this3.element).on(eventIn, _this3.config.selector, function (event) { $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
return _this3._enter(event); return _this3._enter(event);
}).on(eventOut, _this3.config.selector, function (event) { }).on(eventOut, _this3.config.selector, function (event) {
@ -472,21 +428,19 @@ var Tooltip = function () {
} else { } else {
this._fixTitle(); this._fixTitle();
} }
} };
}, {
key: '_fixTitle', _proto._fixTitle = function _fixTitle() {
value: function _fixTitle() { var titleType = typeof this.element.getAttribute('data-original-title');
var titleType = _typeof(this.element.getAttribute('data-original-title'));
if (this.element.getAttribute('title') || titleType !== 'string') { if (this.element.getAttribute('title') || titleType !== 'string') {
this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
this.element.setAttribute('title', ''); this.element.setAttribute('title', '');
} }
} };
}, {
key: '_enter',
value: function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
_proto._enter = function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
context = context || $(event.currentTarget).data(dataKey); context = context || $(event.currentTarget).data(dataKey);
if (!context) { if (!context) {
@ -504,7 +458,6 @@ var Tooltip = function () {
} }
clearTimeout(context._timeout); clearTimeout(context._timeout);
context._hoverState = HoverState.SHOW; context._hoverState = HoverState.SHOW;
if (!context.config.delay || !context.config.delay.show) { if (!context.config.delay || !context.config.delay.show) {
@ -517,12 +470,10 @@ var Tooltip = function () {
context.show(); context.show();
} }
}, context.config.delay.show); }, context.config.delay.show);
} };
}, {
key: '_leave',
value: function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
_proto._leave = function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
context = context || $(event.currentTarget).data(dataKey); context = context || $(event.currentTarget).data(dataKey);
if (!context) { if (!context) {
@ -539,7 +490,6 @@ var Tooltip = function () {
} }
clearTimeout(context._timeout); clearTimeout(context._timeout);
context._hoverState = HoverState.OUT; context._hoverState = HoverState.OUT;
if (!context.config.delay || !context.config.delay.hide) { if (!context.config.delay || !context.config.delay.hide) {
@ -552,10 +502,9 @@ var Tooltip = function () {
context.hide(); context.hide();
} }
}, context.config.delay.hide); }, context.config.delay.hide);
} };
}, {
key: '_isWithActiveTrigger', _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
value: function _isWithActiveTrigger() {
for (var trigger in this._activeTrigger) { for (var trigger in this._activeTrigger) {
if (this._activeTrigger[trigger]) { if (this._activeTrigger[trigger]) {
return true; return true;
@ -563,10 +512,9 @@ var Tooltip = function () {
} }
return false; return false;
} };
}, {
key: '_getConfig', _proto._getConfig = function _getConfig(config) {
value: function _getConfig(config) {
config = $.extend({}, this.constructor.Default, $(this.element).data(), config); config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
if (typeof config.delay === 'number') { if (typeof config.delay === 'number') {
@ -585,12 +533,10 @@ var Tooltip = function () {
} }
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config; return config;
} };
}, {
key: '_getDelegateConfig', _proto._getDelegateConfig = function _getDelegateConfig() {
value: function _getDelegateConfig() {
var config = {}; var config = {};
if (this.config) { if (this.config) {
@ -602,45 +548,44 @@ var Tooltip = function () {
} }
return config; return config;
} };
}, {
key: '_cleanTipClass', _proto._cleanTipClass = function _cleanTipClass() {
value: function _cleanTipClass() {
var $tip = $(this.getTipElement()); var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) { if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join('')); $tip.removeClass(tabClass.join(''));
} }
} };
}, {
key: '_handlePopperPlacementChange', _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
value: function _handlePopperPlacementChange(data) {
this._cleanTipClass(); this._cleanTipClass();
this.addAttachmentClass(this._getAttachment(data.placement)); this.addAttachmentClass(this._getAttachment(data.placement));
} };
}, {
key: '_fixTransition', _proto._fixTransition = function _fixTransition() {
value: function _fixTransition() {
var tip = this.getTipElement(); var tip = this.getTipElement();
var initConfigAnimation = this.config.animation; var initConfigAnimation = this.config.animation;
if (tip.getAttribute('x-placement') !== null) { if (tip.getAttribute('x-placement') !== null) {
return; return;
} }
$(tip).removeClass(ClassName.FADE); $(tip).removeClass(ClassName.FADE);
this.config.animation = false; this.config.animation = false;
this.hide(); this.hide();
this.show(); this.show();
this.config.animation = initConfigAnimation; this.config.animation = initConfigAnimation;
} }; // static
// static
}], [{ Tooltip._jQueryInterface = function _jQueryInterface(config) {
key: '_jQueryInterface',
value: function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
var data = $(this).data(DATA_KEY); var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;
var _config = typeof config === 'object' && config;
if (!data && /dispose|hide/.test(config)) { if (!data && /dispose|hide/.test(config)) {
return; return;
@ -653,44 +598,46 @@ var Tooltip = function () {
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 Error("No method named \"" + config + "\"");
} }
data[config](); data[config]();
} }
}); });
} };
}, {
key: 'VERSION', _createClass(Tooltip, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return VERSION;
} }
}, { }, {
key: 'Default', key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, { }, {
key: 'NAME', key: "NAME",
get: function get() { get: function get() {
return NAME; return NAME;
} }
}, { }, {
key: 'DATA_KEY', key: "DATA_KEY",
get: function get() { get: function get() {
return DATA_KEY; return DATA_KEY;
} }
}, { }, {
key: 'Event', key: "Event",
get: function get() { get: function get() {
return Event; return Event;
} }
}, { }, {
key: 'EVENT_KEY', key: "EVENT_KEY",
get: function get() { get: function get() {
return EVENT_KEY; return EVENT_KEY;
} }
}, { }, {
key: 'DefaultType', key: "DefaultType",
get: function get() { get: function get() {
return DefaultType; return DefaultType;
} }
@ -698,15 +645,16 @@ var Tooltip = function () {
return Tooltip; return Tooltip;
}(); }();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
$.fn[NAME] = Tooltip._jQueryInterface; $.fn[NAME] = Tooltip._jQueryInterface;
$.fn[NAME].Constructor = Tooltip; $.fn[NAME].Constructor = Tooltip;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Tooltip._jQueryInterface; return Tooltip._jQueryInterface;

File diff suppressed because one or more lines are too long

38
js/dist/util.js vendored
View File

@ -1,39 +1,29 @@
'use strict';
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): util.js * Bootstrap (v4.0.0-beta): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Util = function () { var Util = function () {
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Private TransitionEnd Helpers * Private TransitionEnd Helpers
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var transition = false; var transition = false;
var MAX_UID = 1000000; var MAX_UID = 1000000;
var TransitionEndEvent = { var TransitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd', WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend', MozTransition: 'transitionend',
OTransition: 'oTransitionEnd otransitionend', OTransition: 'oTransitionEnd otransitionend',
transition: 'transitionend' transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
// 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();
} }
function isElement(obj) {
return (obj[0] || obj).nodeType;
}
function getSpecialTransitionEndEvent() { function getSpecialTransitionEndEvent() {
return { return {
bindType: transition.end, bindType: transition.end,
@ -42,6 +32,7 @@ var Util = function () {
if ($(event.target).is(this)) { if ($(event.target).is(this)) {
return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
} }
return undefined; // eslint-disable-line no-undefined return undefined; // eslint-disable-line no-undefined
} }
}; };
@ -69,49 +60,45 @@ var Util = function () {
var _this = this; var _this = this;
var called = false; var called = false;
$(this).one(Util.TRANSITION_END, function () { $(this).one(Util.TRANSITION_END, function () {
called = true; called = true;
}); });
setTimeout(function () { setTimeout(function () {
if (!called) { if (!called) {
Util.triggerTransitionEnd(_this); Util.triggerTransitionEnd(_this);
} }
}, duration); }, duration);
return this; return this;
} }
function setTransitionEndSupport() { function setTransitionEndSupport() {
transition = transitionEndTest(); transition = transitionEndTest();
$.fn.emulateTransitionEnd = transitionEndEmulator; $.fn.emulateTransitionEnd = transitionEndEmulator;
if (Util.supportsTransitionEnd()) { if (Util.supportsTransitionEnd()) {
$.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
} }
} }
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Public Util Api * Public Util Api
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
var Util = { var Util = {
TRANSITION_END: 'bsTransitionEnd', TRANSITION_END: 'bsTransitionEnd',
getUID: function getUID(prefix) { getUID: function getUID(prefix) {
do { do {
// eslint-disable-next-line no-bitwise // eslint-disable-next-line no-bitwise
prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
} while (document.getElementById(prefix)); } while (document.getElementById(prefix));
return prefix; return prefix;
}, },
getSelectorFromElement: function getSelectorFromElement(element) { getSelectorFromElement: function getSelectorFromElement(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
selector = element.getAttribute('href') || ''; selector = element.getAttribute('href') || '';
} }
@ -132,23 +119,24 @@ var Util = function () {
supportsTransitionEnd: function supportsTransitionEnd() { supportsTransitionEnd: function supportsTransitionEnd() {
return Boolean(transition); return Boolean(transition);
}, },
isElement: function isElement(obj) {
return (obj[0] || obj).nodeType;
},
typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
for (var property in configTypes) { for (var property in configTypes) {
if (Object.prototype.hasOwnProperty.call(configTypes, property)) { if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
var expectedTypes = configTypes[property]; var expectedTypes = configTypes[property];
var value = config[property]; var value = config[property];
var valueType = value && isElement(value) ? 'element' : toType(value); var valueType = value && Util.isElement(value) ? 'element' : toType(value);
if (!new RegExp(expectedTypes).test(valueType)) { if (!new RegExp(expectedTypes).test(valueType)) {
throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
} }
} }
} }
} }
}; };
setTransitionEndSupport(); setTransitionEndSupport();
return Util; return Util;
}(jQuery); }(jQuery);
//# sourceMappingURL=util.js.map //# sourceMappingURL=util.js.map

2
js/dist/util.js.map vendored

File diff suppressed because one or more lines are too long