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

github.com/twbs/bootstrap-rubygem.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/javascripts/bootstrap/dropdown.js')
-rw-r--r--assets/javascripts/bootstrap/dropdown.js298
1 files changed, 143 insertions, 155 deletions
diff --git a/assets/javascripts/bootstrap/dropdown.js b/assets/javascripts/bootstrap/dropdown.js
index 242ac91..0f53f14 100644
--- a/assets/javascripts/bootstrap/dropdown.js
+++ b/assets/javascripts/bootstrap/dropdown.js
@@ -1,17 +1,15 @@
-'use strict';
+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; }; }();
-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'); } }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.4): dropdown.js
+ * Bootstrap (v4.0.0-alpha.5): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
-var Dropdown = (function ($) {
+var Dropdown = function ($) {
/**
* ------------------------------------------------------------------------
@@ -20,7 +18,7 @@ var Dropdown = (function ($) {
*/
var NAME = 'dropdown';
- var VERSION = '4.0.0-alpha.4';
+ var VERSION = '4.0.0-alpha.5';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api';
@@ -62,7 +60,7 @@ var Dropdown = (function ($) {
* ------------------------------------------------------------------------
*/
- var Dropdown = (function () {
+ var Dropdown = function () {
function Dropdown(element) {
_classCallCheck(this, Dropdown);
@@ -71,201 +69,185 @@ var Dropdown = (function ($) {
this._addEventListeners();
}
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
-
// getters
- _createClass(Dropdown, [{
- key: 'toggle',
+ // public
- // public
+ Dropdown.prototype.toggle = function toggle() {
+ if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
+ return false;
+ }
- value: function toggle() {
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
- return false;
- }
+ var parent = Dropdown._getParentFromElement(this);
+ var isActive = $(parent).hasClass(ClassName.OPEN);
- var parent = Dropdown._getParentFromElement(this);
- var isActive = $(parent).hasClass(ClassName.OPEN);
+ Dropdown._clearMenus();
- Dropdown._clearMenus();
+ if (isActive) {
+ return false;
+ }
- if (isActive) {
- return false;
- }
+ if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
- if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
+ // if mobile we use a backdrop because click events don't delegate
+ var dropdown = document.createElement('div');
+ dropdown.className = ClassName.BACKDROP;
+ $(dropdown).insertBefore(this);
+ $(dropdown).on('click', Dropdown._clearMenus);
+ }
- // if mobile we use a backdrop because click events don't delegate
- var dropdown = document.createElement('div');
- dropdown.className = ClassName.BACKDROP;
- $(dropdown).insertBefore(this);
- $(dropdown).on('click', Dropdown._clearMenus);
- }
+ var relatedTarget = { relatedTarget: this };
+ var showEvent = $.Event(Event.SHOW, relatedTarget);
- var relatedTarget = { relatedTarget: this };
- var showEvent = $.Event(Event.SHOW, relatedTarget);
+ $(parent).trigger(showEvent);
- $(parent).trigger(showEvent);
+ if (showEvent.isDefaultPrevented()) {
+ return false;
+ }
- if (showEvent.isDefaultPrevented()) {
- return false;
- }
+ this.focus();
+ this.setAttribute('aria-expanded', 'true');
- this.focus();
- this.setAttribute('aria-expanded', 'true');
+ $(parent).toggleClass(ClassName.OPEN);
+ $(parent).trigger($.Event(Event.SHOWN, relatedTarget));
- $(parent).toggleClass(ClassName.OPEN);
- $(parent).trigger($.Event(Event.SHOWN, relatedTarget));
+ return false;
+ };
- return false;
- }
- }, {
- key: 'dispose',
- value: function dispose() {
- $.removeData(this._element, DATA_KEY);
- $(this._element).off(EVENT_KEY);
- this._element = null;
- }
+ Dropdown.prototype.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ $(this._element).off(EVENT_KEY);
+ this._element = null;
+ };
- // private
+ // private
- }, {
- key: '_addEventListeners',
- value: function _addEventListeners() {
- $(this._element).on(Event.CLICK, this.toggle);
- }
+ Dropdown.prototype._addEventListeners = function _addEventListeners() {
+ $(this._element).on(Event.CLICK, this.toggle);
+ };
- // static
+ // static
- }], [{
- key: '_jQueryInterface',
- value: function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
+ Dropdown._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
- if (!data) {
- $(this).data(DATA_KEY, data = new Dropdown(this));
- }
-
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config].call(this);
- }
- });
- }
- }, {
- key: '_clearMenus',
- value: function _clearMenus(event) {
- if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
- return;
+ if (!data) {
+ $(this).data(DATA_KEY, data = new Dropdown(this));
}
- var backdrop = $(Selector.BACKDROP)[0];
- if (backdrop) {
- backdrop.parentNode.removeChild(backdrop);
+ if (typeof config === 'string') {
+ if (data[config] === undefined) {
+ throw new Error('No method named "' + config + '"');
+ }
+ data[config].call(this);
}
+ });
+ };
- var toggles = $.makeArray($(Selector.DATA_TOGGLE));
+ Dropdown._clearMenus = function _clearMenus(event) {
+ if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
+ return;
+ }
- for (var i = 0; i < toggles.length; i++) {
- var _parent = Dropdown._getParentFromElement(toggles[i]);
- var relatedTarget = { relatedTarget: toggles[i] };
+ var backdrop = $(Selector.BACKDROP)[0];
+ if (backdrop) {
+ backdrop.parentNode.removeChild(backdrop);
+ }
- if (!$(_parent).hasClass(ClassName.OPEN)) {
- continue;
- }
+ var toggles = $.makeArray($(Selector.DATA_TOGGLE));
- if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) {
- continue;
- }
+ for (var i = 0; i < toggles.length; i++) {
+ var parent = Dropdown._getParentFromElement(toggles[i]);
+ var relatedTarget = { relatedTarget: toggles[i] };
- var hideEvent = $.Event(Event.HIDE, relatedTarget);
- $(_parent).trigger(hideEvent);
- if (hideEvent.isDefaultPrevented()) {
- continue;
- }
+ if (!$(parent).hasClass(ClassName.OPEN)) {
+ continue;
+ }
- toggles[i].setAttribute('aria-expanded', 'false');
+ if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(parent, event.target)) {
+ continue;
+ }
- $(_parent).removeClass(ClassName.OPEN).trigger($.Event(Event.HIDDEN, relatedTarget));
+ var hideEvent = $.Event(Event.HIDE, relatedTarget);
+ $(parent).trigger(hideEvent);
+ if (hideEvent.isDefaultPrevented()) {
+ continue;
}
+
+ toggles[i].setAttribute('aria-expanded', 'false');
+
+ $(parent).removeClass(ClassName.OPEN).trigger($.Event(Event.HIDDEN, relatedTarget));
}
- }, {
- key: '_getParentFromElement',
- value: function _getParentFromElement(element) {
- var parent = undefined;
- var selector = Util.getSelectorFromElement(element);
-
- if (selector) {
- parent = $(selector)[0];
- }
+ };
+
+ Dropdown._getParentFromElement = function _getParentFromElement(element) {
+ var parent = void 0;
+ var selector = Util.getSelectorFromElement(element);
- return parent || element.parentNode;
+ if (selector) {
+ parent = $(selector)[0];
}
- }, {
- key: '_dataApiKeydownHandler',
- value: function _dataApiKeydownHandler(event) {
- if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
- return;
- }
- event.preventDefault();
- event.stopPropagation();
+ return parent || element.parentNode;
+ };
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
- return;
- }
+ Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
+ if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
- var parent = Dropdown._getParentFromElement(this);
- var isActive = $(parent).hasClass(ClassName.OPEN);
+ event.preventDefault();
+ event.stopPropagation();
- if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
+ if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- if (event.which === ESCAPE_KEYCODE) {
- var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
- $(toggle).trigger('focus');
- }
+ var parent = Dropdown._getParentFromElement(this);
+ var isActive = $(parent).hasClass(ClassName.OPEN);
- $(this).trigger('click');
- return;
+ if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
+
+ if (event.which === ESCAPE_KEYCODE) {
+ var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
+ $(toggle).trigger('focus');
}
- var items = $.makeArray($(Selector.VISIBLE_ITEMS));
+ $(this).trigger('click');
+ return;
+ }
- items = items.filter(function (item) {
- return item.offsetWidth || item.offsetHeight;
- });
+ var items = $.makeArray($(Selector.VISIBLE_ITEMS));
- if (!items.length) {
- return;
- }
+ items = items.filter(function (item) {
+ return item.offsetWidth || item.offsetHeight;
+ });
- var index = items.indexOf(event.target);
+ if (!items.length) {
+ return;
+ }
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
- // up
- index--;
- }
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
- // down
- index++;
- }
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ // up
+ index--;
+ }
- if (index < 0) {
- index = 0;
- }
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ // down
+ index++;
+ }
- items[index].focus();
+ if (index < 0) {
+ index = 0;
}
- }, {
+
+ items[index].focus();
+ };
+
+ _createClass(Dropdown, null, [{
key: 'VERSION',
get: function get() {
return VERSION;
@@ -273,7 +255,13 @@ var Dropdown = (function ($) {
}]);
return Dropdown;
- })();
+ }();
+
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
e.stopPropagation();
@@ -293,4 +281,4 @@ var Dropdown = (function ($) {
};
return Dropdown;
-})(jQuery);
+}(jQuery);