button.js 5.88 KB
Newer Older
Mark Otto's avatar
dist    
Mark Otto committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
  (global.Button = factory(global.jQuery));
}(this, (function ($) { 'use strict';

  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;

  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);
    }
  }
Mark Otto's avatar
dist    
Mark Otto committed
18

Mark Otto's avatar
dist    
Mark Otto committed
19
20
21
22
23
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
Mark Otto's avatar
grunt    
Mark Otto committed
24

fat's avatar
fat committed
25
  /**
Mark Otto's avatar
dist    
Mark Otto committed
26
   * --------------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
27
   * Bootstrap (v4.1.3): button.js
Mark Otto's avatar
dist    
Mark Otto committed
28
29
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
fat's avatar
fat committed
30
   */
Mark Otto's avatar
dist    
Mark Otto committed
31
32

  var Button = function ($$$1) {
Mark Otto's avatar
dist    
Mark Otto committed
33
34
    /**
     * ------------------------------------------------------------------------
Mark Otto's avatar
dist    
Mark Otto committed
35
     * Constants
Mark Otto's avatar
dist    
Mark Otto committed
36
37
     * ------------------------------------------------------------------------
     */
Mark Otto's avatar
dist    
Mark Otto committed
38
    var NAME = 'button';
Mark Otto's avatar
Mark Otto committed
39
    var VERSION = '4.1.3';
Mark Otto's avatar
dist    
Mark Otto committed
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
    var DATA_KEY = 'bs.button';
    var EVENT_KEY = "." + DATA_KEY;
    var DATA_API_KEY = '.data-api';
    var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
    var ClassName = {
      ACTIVE: 'active',
      BUTTON: 'btn',
      FOCUS: 'focus'
    };
    var Selector = {
      DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
      DATA_TOGGLE: '[data-toggle="buttons"]',
      INPUT: 'input',
      ACTIVE: '.active',
      BUTTON: '.btn'
    };
    var Event = {
      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)
      /**
       * ------------------------------------------------------------------------
       * Class Definition
       * ------------------------------------------------------------------------
       */
fat's avatar
fat committed
64

Mark Otto's avatar
dist    
Mark Otto committed
65
    };
fat's avatar
fat committed
66

Mark Otto's avatar
dist    
Mark Otto committed
67
68
69
70
71
72
    var Button =
    /*#__PURE__*/
    function () {
      function Button(element) {
        this._element = element;
      } // Getters
Jacob Thornton's avatar
Jacob Thornton committed
73

Mark Otto's avatar
dist    
Mark Otto committed
74

Mark Otto's avatar
dist    
Mark Otto committed
75
      var _proto = Button.prototype;
Mark Otto's avatar
dist    
Mark Otto committed
76

Mark Otto's avatar
dist    
Mark Otto committed
77
78
79
80
81
      // Public
      _proto.toggle = function toggle() {
        var triggerChangeEvent = true;
        var addAriaPressed = true;
        var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
fat's avatar
fat committed
82

Mark Otto's avatar
dist    
Mark Otto committed
83
84
        if (rootElement) {
          var input = this._element.querySelector(Selector.INPUT);
fat's avatar
fat committed
85

Mark Otto's avatar
dist    
Mark Otto committed
86
87
88
89
90
91
          if (input) {
            if (input.type === 'radio') {
              if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
                triggerChangeEvent = false;
              } else {
                var activeElement = rootElement.querySelector(Selector.ACTIVE);
fat's avatar
fat committed
92

Mark Otto's avatar
dist    
Mark Otto committed
93
94
95
                if (activeElement) {
                  $$$1(activeElement).removeClass(ClassName.ACTIVE);
                }
fat's avatar
fat committed
96
97
98
              }
            }

Mark Otto's avatar
dist    
Mark Otto committed
99
100
101
102
103
104
105
            if (triggerChangeEvent) {
              if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
                return;
              }

              input.checked = !this._element.classList.contains(ClassName.ACTIVE);
              $$$1(input).trigger('change');
Johann-S's avatar
build    
Johann-S committed
106
            }
Mark Otto's avatar
dist    
Mark Otto committed
107

Mark Otto's avatar
dist    
Mark Otto committed
108
109
            input.focus();
            addAriaPressed = false;
fat's avatar
fat committed
110
          }
Mark Otto's avatar
dist    
Mark Otto committed
111
        }
fat's avatar
fat committed
112

Mark Otto's avatar
dist    
Mark Otto committed
113
114
        if (addAriaPressed) {
          this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
fat's avatar
fat committed
115
        }
Mark Otto's avatar
grunt    
Mark Otto committed
116

Mark Otto's avatar
dist    
Mark Otto committed
117
118
119
120
        if (triggerChangeEvent) {
          $$$1(this._element).toggleClass(ClassName.ACTIVE);
        }
      };
Mark Otto's avatar
dist    
Mark Otto committed
121

Mark Otto's avatar
dist    
Mark Otto committed
122
123
124
125
      _proto.dispose = function dispose() {
        $$$1.removeData(this._element, DATA_KEY);
        this._element = null;
      }; // Static
fat's avatar
fat committed
126
127


Mark Otto's avatar
dist    
Mark Otto committed
128
129
130
      Button._jQueryInterface = function _jQueryInterface(config) {
        return this.each(function () {
          var data = $$$1(this).data(DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
131

Mark Otto's avatar
dist    
Mark Otto committed
132
133
134
135
          if (!data) {
            data = new Button(this);
            $$$1(this).data(DATA_KEY, data);
          }
Mark Otto's avatar
grunt    
Mark Otto committed
136

Mark Otto's avatar
dist    
Mark Otto committed
137
138
139
140
141
          if (config === 'toggle') {
            data[config]();
          }
        });
      };
Mark Otto's avatar
dist    
Mark Otto committed
142

Mark Otto's avatar
dist    
Mark Otto committed
143
144
145
146
      _createClass(Button, null, [{
        key: "VERSION",
        get: function get() {
          return VERSION;
Mark Otto's avatar
dist    
Mark Otto committed
147
        }
Mark Otto's avatar
dist    
Mark Otto committed
148
      }]);
Mark Otto's avatar
dist    
Mark Otto committed
149

Mark Otto's avatar
dist    
Mark Otto committed
150
151
152
153
154
155
156
      return Button;
    }();
    /**
     * ------------------------------------------------------------------------
     * Data Api implementation
     * ------------------------------------------------------------------------
     */
fat's avatar
fat committed
157
158


Mark Otto's avatar
dist    
Mark Otto committed
159
160
161
    $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
      event.preventDefault();
      var button = event.target;
Mark Otto's avatar
dist    
Mark Otto committed
162

Mark Otto's avatar
dist    
Mark Otto committed
163
164
165
      if (!$$$1(button).hasClass(ClassName.BUTTON)) {
        button = $$$1(button).closest(Selector.BUTTON);
      }
fat's avatar
fat committed
166

Mark Otto's avatar
dist    
Mark Otto committed
167
168
169
170
171
172
173
174
175
176
      Button._jQueryInterface.call($$$1(button), 'toggle');
    }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
      var button = $$$1(event.target).closest(Selector.BUTTON)[0];
      $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
    });
    /**
     * ------------------------------------------------------------------------
     * jQuery
     * ------------------------------------------------------------------------
     */
fat's avatar
fat committed
177

Mark Otto's avatar
dist    
Mark Otto committed
178
179
    $$$1.fn[NAME] = Button._jQueryInterface;
    $$$1.fn[NAME].Constructor = Button;
fat's avatar
fat committed
180

Mark Otto's avatar
dist    
Mark Otto committed
181
182
183
184
    $$$1.fn[NAME].noConflict = function () {
      $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
      return Button._jQueryInterface;
    };
Mark Otto's avatar
dist    
Mark Otto committed
185

Mark Otto's avatar
dist    
Mark Otto committed
186
187
    return Button;
  }($);
fat's avatar
fat committed
188
189

  return Button;
Mark Otto's avatar
dist    
Mark Otto committed
190
191
192

})));
//# sourceMappingURL=button.js.map