1 (function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
3 typeof define === 'function' && define.amd ? define(['jquery'], factory) :
4 (global.Button = factory(global.jQuery));
5 }(this, (function ($) { 'use strict';
7 $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
9 function _defineProperties(target, props) {
10 for (var i = 0; i < props.length; i++) {
11 var descriptor = props[i];
12 descriptor.enumerable = descriptor.enumerable || false;
13 descriptor.configurable = true;
14 if ("value" in descriptor) descriptor.writable = true;
15 Object.defineProperty(target, descriptor.key, descriptor);
19 function _createClass(Constructor, protoProps, staticProps) {
20 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
21 if (staticProps) _defineProperties(Constructor, staticProps);
26 * --------------------------------------------------------------------------
27 * Bootstrap (v4.1.3): button.js
28 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
29 * --------------------------------------------------------------------------
32 var Button = function ($$$1) {
34 * ------------------------------------------------------------------------
36 * ------------------------------------------------------------------------
39 var VERSION = '4.1.3';
40 var DATA_KEY = 'bs.button';
41 var EVENT_KEY = "." + DATA_KEY;
42 var DATA_API_KEY = '.data-api';
43 var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
50 DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
51 DATA_TOGGLE: '[data-toggle="buttons"]',
57 CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
58 FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
60 * ------------------------------------------------------------------------
62 * ------------------------------------------------------------------------
70 function Button(element) {
71 this._element = element;
75 var _proto = Button.prototype;
78 _proto.toggle = function toggle() {
79 var triggerChangeEvent = true;
80 var addAriaPressed = true;
81 var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
84 var input = this._element.querySelector(Selector.INPUT);
87 if (input.type === 'radio') {
88 if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
89 triggerChangeEvent = false;
91 var activeElement = rootElement.querySelector(Selector.ACTIVE);
94 $$$1(activeElement).removeClass(ClassName.ACTIVE);
99 if (triggerChangeEvent) {
100 if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
104 input.checked = !this._element.classList.contains(ClassName.ACTIVE);
105 $$$1(input).trigger('change');
109 addAriaPressed = false;
113 if (addAriaPressed) {
114 this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
117 if (triggerChangeEvent) {
118 $$$1(this._element).toggleClass(ClassName.ACTIVE);
122 _proto.dispose = function dispose() {
123 $$$1.removeData(this._element, DATA_KEY);
124 this._element = null;
128 Button._jQueryInterface = function _jQueryInterface(config) {
129 return this.each(function () {
130 var data = $$$1(this).data(DATA_KEY);
133 data = new Button(this);
134 $$$1(this).data(DATA_KEY, data);
137 if (config === 'toggle') {
143 _createClass(Button, null, [{
145 get: function get() {
153 * ------------------------------------------------------------------------
154 * Data Api implementation
155 * ------------------------------------------------------------------------
159 $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
160 event.preventDefault();
161 var button = event.target;
163 if (!$$$1(button).hasClass(ClassName.BUTTON)) {
164 button = $$$1(button).closest(Selector.BUTTON);
167 Button._jQueryInterface.call($$$1(button), 'toggle');
168 }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
169 var button = $$$1(event.target).closest(Selector.BUTTON)[0];
170 $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
173 * ------------------------------------------------------------------------
175 * ------------------------------------------------------------------------
178 $$$1.fn[NAME] = Button._jQueryInterface;
179 $$$1.fn[NAME].Constructor = Button;
181 $$$1.fn[NAME].noConflict = function () {
182 $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
183 return Button._jQueryInterface;
192 //# sourceMappingURL=button.js.map