bootstrap 4.6.0 → 5.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +61 -0
  3. data/Gemfile +1 -0
  4. data/README.md +33 -6
  5. data/Rakefile +10 -1
  6. data/assets/javascripts/bootstrap/alert.js +53 -155
  7. data/assets/javascripts/bootstrap/base-component.js +83 -0
  8. data/assets/javascripts/bootstrap/button.js +43 -198
  9. data/assets/javascripts/bootstrap/carousel.js +285 -550
  10. data/assets/javascripts/bootstrap/collapse.js +169 -323
  11. data/assets/javascripts/bootstrap/dom/data.js +62 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +236 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +71 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +103 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +300 -467
  16. data/assets/javascripts/bootstrap/modal.js +226 -575
  17. data/assets/javascripts/bootstrap/offcanvas.js +245 -0
  18. data/assets/javascripts/bootstrap/popover.js +61 -205
  19. data/assets/javascripts/bootstrap/scrollspy.js +216 -287
  20. data/assets/javascripts/bootstrap/tab.js +226 -203
  21. data/assets/javascripts/bootstrap/toast.js +136 -209
  22. data/assets/javascripts/bootstrap/tooltip.js +411 -757
  23. data/assets/javascripts/bootstrap/util/backdrop.js +139 -0
  24. data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
  25. data/assets/javascripts/bootstrap/util/config.js +67 -0
  26. data/assets/javascripts/bootstrap/util/focustrap.js +113 -0
  27. data/assets/javascripts/bootstrap/util/index.js +281 -0
  28. data/assets/javascripts/bootstrap/util/sanitizer.js +110 -0
  29. data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
  30. data/assets/javascripts/bootstrap/util/swipe.js +134 -0
  31. data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
  32. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  33. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  34. data/assets/javascripts/bootstrap-sprockets.js +23 -7
  35. data/assets/javascripts/bootstrap.js +3649 -3587
  36. data/assets/javascripts/bootstrap.min.js +3 -3
  37. data/assets/stylesheets/_bootstrap-grid.scss +53 -21
  38. data/assets/stylesheets/_bootstrap-reboot.scss +5 -7
  39. data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
  40. data/assets/stylesheets/_bootstrap.scss +21 -13
  41. data/assets/stylesheets/bootstrap/_accordion.scss +158 -0
  42. data/assets/stylesheets/bootstrap/_alert.scss +32 -16
  43. data/assets/stylesheets/bootstrap/_badge.scss +15 -31
  44. data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -24
  45. data/assets/stylesheets/bootstrap/_button-group.scss +27 -48
  46. data/assets/stylesheets/bootstrap/_buttons.scss +136 -71
  47. data/assets/stylesheets/bootstrap/_card.scss +66 -113
  48. data/assets/stylesheets/bootstrap/_carousel.scss +83 -36
  49. data/assets/stylesheets/bootstrap/_close.scss +51 -28
  50. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  51. data/assets/stylesheets/bootstrap/_dropdown.scss +129 -71
  52. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  53. data/assets/stylesheets/bootstrap/_functions.scss +181 -23
  54. data/assets/stylesheets/bootstrap/_grid.scss +18 -52
  55. data/assets/stylesheets/bootstrap/_helpers.scss +12 -0
  56. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  57. data/assets/stylesheets/bootstrap/_list-group.scss +77 -34
  58. data/assets/stylesheets/bootstrap/_maps.scss +174 -0
  59. data/assets/stylesheets/bootstrap/_mixins.scss +10 -15
  60. data/assets/stylesheets/bootstrap/_modal.scss +107 -110
  61. data/assets/stylesheets/bootstrap/_nav.scss +102 -25
  62. data/assets/stylesheets/bootstrap/_navbar.scss +129 -172
  63. data/assets/stylesheets/bootstrap/_offcanvas.scss +146 -0
  64. data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
  65. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  66. data/assets/stylesheets/bootstrap/_popover.scss +99 -73
  67. data/assets/stylesheets/bootstrap/_progress.scss +35 -14
  68. data/assets/stylesheets/bootstrap/_reboot.scss +319 -192
  69. data/assets/stylesheets/bootstrap/_root.scss +177 -9
  70. data/assets/stylesheets/bootstrap/_spinners.scss +44 -24
  71. data/assets/stylesheets/bootstrap/_tables.scss +101 -115
  72. data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
  73. data/assets/stylesheets/bootstrap/_tooltip.scss +67 -63
  74. data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
  75. data/assets/stylesheets/bootstrap/_type.scss +40 -59
  76. data/assets/stylesheets/bootstrap/_utilities.scss +806 -18
  77. data/assets/stylesheets/bootstrap/_variables-dark.scss +87 -0
  78. data/assets/stylesheets/bootstrap/_variables.scss +1216 -615
  79. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +95 -0
  80. data/assets/stylesheets/bootstrap/forms/_form-check.scss +189 -0
  81. data/assets/stylesheets/bootstrap/forms/_form-control.scss +214 -0
  82. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  83. data/assets/stylesheets/bootstrap/forms/_form-select.scss +80 -0
  84. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  85. data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
  86. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  87. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  88. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
  89. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +30 -0
  90. data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
  91. data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
  92. data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
  93. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  94. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  95. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  96. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  97. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  98. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  99. data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -6
  100. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  101. data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
  102. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
  103. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  104. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +20 -16
  105. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
  106. data/assets/stylesheets/bootstrap/mixins/_caret.scss +34 -27
  107. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  108. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  109. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  110. data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
  111. data/assets/stylesheets/bootstrap/mixins/_forms.scss +53 -85
  112. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  113. data/assets/stylesheets/bootstrap/mixins/_grid.scss +119 -37
  114. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  115. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +7 -2
  116. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  117. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +7 -19
  118. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
  119. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
  120. data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
  121. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
  122. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +33 -0
  123. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  124. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +276 -132
  125. data/bootstrap.gemspec +6 -7
  126. data/lib/bootstrap/engine.rb +7 -1
  127. data/lib/bootstrap/version.rb +2 -2
  128. data/tasks/updater/js.rb +31 -7
  129. data/tasks/updater/network.rb +9 -3
  130. data/tasks/updater/scss.rb +2 -2
  131. data/tasks/updater.rb +2 -2
  132. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  133. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  134. data/test/dummy_rails/app/views/pages/root.html +89 -0
  135. data/test/dummy_rails/config/application.rb +0 -3
  136. data/test/gemfiles/rails_4_2.gemfile +1 -1
  137. data/test/gemfiles/rails_5_0.gemfile +1 -1
  138. data/test/gemfiles/rails_5_1.gemfile +1 -1
  139. data/test/gemfiles/rails_5_2.gemfile +8 -0
  140. data/test/gemfiles/rails_6_0.gemfile +1 -0
  141. data/test/gemfiles/rails_6_1.gemfile +8 -0
  142. data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
  143. data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
  144. data/test/test_helper.rb +3 -2
  145. metadata +97 -85
  146. data/.travis.yml +0 -31
  147. data/assets/javascripts/bootstrap/util.js +0 -192
  148. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  149. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  150. data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
  151. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  152. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  153. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  154. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  155. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  156. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  157. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  158. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  159. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  160. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  161. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  162. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  163. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  164. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  165. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  166. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  167. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  168. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  169. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  170. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  171. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  172. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  173. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  174. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  175. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  176. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  177. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  178. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  179. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  180. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  181. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  182. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  183. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
  184. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -1,233 +1,78 @@
1
1
  /*!
2
- * Bootstrap button.js v4.6.0 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap button.js v5.3.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
- typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery));
10
- }(this, (function ($) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./util/index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './util/index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.BaseComponent, global.EventHandler, global.Index));
10
+ })(this, (function (BaseComponent, EventHandler, index_js) { 'use strict';
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
-
16
- function _defineProperties(target, props) {
17
- for (var i = 0; i < props.length; i++) {
18
- var descriptor = props[i];
19
- descriptor.enumerable = descriptor.enumerable || false;
20
- descriptor.configurable = true;
21
- if ("value" in descriptor) descriptor.writable = true;
22
- Object.defineProperty(target, descriptor.key, descriptor);
23
- }
24
- }
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap button.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
25
18
 
26
- function _createClass(Constructor, protoProps, staticProps) {
27
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
28
- if (staticProps) _defineProperties(Constructor, staticProps);
29
- return Constructor;
30
- }
31
19
 
32
20
  /**
33
- * ------------------------------------------------------------------------
34
21
  * Constants
35
- * ------------------------------------------------------------------------
36
22
  */
37
23
 
38
- var NAME = 'button';
39
- var VERSION = '4.6.0';
40
- var DATA_KEY = 'bs.button';
41
- var EVENT_KEY = "." + DATA_KEY;
42
- var DATA_API_KEY = '.data-api';
43
- var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
44
- var CLASS_NAME_ACTIVE = 'active';
45
- var CLASS_NAME_BUTTON = 'btn';
46
- var CLASS_NAME_FOCUS = 'focus';
47
- var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
48
- var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
49
- var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
50
- var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
51
- var SELECTOR_INPUT = 'input:not([type="hidden"])';
52
- var SELECTOR_ACTIVE = '.active';
53
- var SELECTOR_BUTTON = '.btn';
54
- var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
55
- var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY);
56
- var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
24
+ const NAME = 'button';
25
+ const DATA_KEY = 'bs.button';
26
+ const EVENT_KEY = `.${DATA_KEY}`;
27
+ const DATA_API_KEY = '.data-api';
28
+ const CLASS_NAME_ACTIVE = 'active';
29
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
30
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
31
+
57
32
  /**
58
- * ------------------------------------------------------------------------
59
- * Class Definition
60
- * ------------------------------------------------------------------------
33
+ * Class definition
61
34
  */
62
35
 
63
- var Button = /*#__PURE__*/function () {
64
- function Button(element) {
65
- this._element = element;
66
- this.shouldAvoidTriggerChange = false;
67
- } // Getters
68
-
69
-
70
- var _proto = Button.prototype;
36
+ class Button extends BaseComponent {
37
+ // Getters
38
+ static get NAME() {
39
+ return NAME;
40
+ }
71
41
 
72
42
  // Public
73
- _proto.toggle = function toggle() {
74
- var triggerChangeEvent = true;
75
- var addAriaPressed = true;
76
- var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];
77
-
78
- if (rootElement) {
79
- var input = this._element.querySelector(SELECTOR_INPUT);
80
-
81
- if (input) {
82
- if (input.type === 'radio') {
83
- if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
84
- triggerChangeEvent = false;
85
- } else {
86
- var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
87
-
88
- if (activeElement) {
89
- $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);
90
- }
91
- }
92
- }
93
-
94
- if (triggerChangeEvent) {
95
- // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
96
- if (input.type === 'checkbox' || input.type === 'radio') {
97
- input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
98
- }
99
-
100
- if (!this.shouldAvoidTriggerChange) {
101
- $__default['default'](input).trigger('change');
102
- }
103
- }
104
-
105
- input.focus();
106
- addAriaPressed = false;
107
- }
108
- }
109
-
110
- if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
111
- if (addAriaPressed) {
112
- this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
113
- }
114
-
115
- if (triggerChangeEvent) {
116
- $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);
117
- }
118
- }
119
- };
120
-
121
- _proto.dispose = function dispose() {
122
- $__default['default'].removeData(this._element, DATA_KEY);
123
- this._element = null;
124
- } // Static
125
- ;
43
+ toggle() {
44
+ // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
45
+ this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
46
+ }
126
47
 
127
- Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {
48
+ // Static
49
+ static jQueryInterface(config) {
128
50
  return this.each(function () {
129
- var $element = $__default['default'](this);
130
- var data = $element.data(DATA_KEY);
131
-
132
- if (!data) {
133
- data = new Button(this);
134
- $element.data(DATA_KEY, data);
135
- }
136
-
137
- data.shouldAvoidTriggerChange = avoidTriggerChange;
138
-
51
+ const data = Button.getOrCreateInstance(this);
139
52
  if (config === 'toggle') {
140
53
  data[config]();
141
54
  }
142
55
  });
143
- };
144
-
145
- _createClass(Button, null, [{
146
- key: "VERSION",
147
- get: function get() {
148
- return VERSION;
149
- }
150
- }]);
56
+ }
57
+ }
151
58
 
152
- return Button;
153
- }();
154
59
  /**
155
- * ------------------------------------------------------------------------
156
- * Data Api implementation
157
- * ------------------------------------------------------------------------
60
+ * Data API implementation
158
61
  */
159
62
 
160
-
161
- $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
162
- var button = event.target;
163
- var initialButton = button;
164
-
165
- if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {
166
- button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];
167
- }
168
-
169
- if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
170
- event.preventDefault(); // work around Firefox bug #1540995
171
- } else {
172
- var inputBtn = button.querySelector(SELECTOR_INPUT);
173
-
174
- if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
175
- event.preventDefault(); // work around Firefox bug #1540995
176
-
177
- return;
178
- }
179
-
180
- if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
181
- Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');
182
- }
183
- }
184
- }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
185
- var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];
186
- $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
63
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
64
+ event.preventDefault();
65
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE);
66
+ const data = Button.getOrCreateInstance(button);
67
+ data.toggle();
187
68
  });
188
- $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {
189
- // ensure correct active class is set to match the controls' actual values/states
190
- // find all checkboxes/readio buttons inside data-toggle groups
191
- var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
192
-
193
- for (var i = 0, len = buttons.length; i < len; i++) {
194
- var button = buttons[i];
195
- var input = button.querySelector(SELECTOR_INPUT);
196
-
197
- if (input.checked || input.hasAttribute('checked')) {
198
- button.classList.add(CLASS_NAME_ACTIVE);
199
- } else {
200
- button.classList.remove(CLASS_NAME_ACTIVE);
201
- }
202
- } // find all button toggles
203
-
204
69
 
205
- buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
206
-
207
- for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
208
- var _button = buttons[_i];
209
-
210
- if (_button.getAttribute('aria-pressed') === 'true') {
211
- _button.classList.add(CLASS_NAME_ACTIVE);
212
- } else {
213
- _button.classList.remove(CLASS_NAME_ACTIVE);
214
- }
215
- }
216
- });
217
70
  /**
218
- * ------------------------------------------------------------------------
219
71
  * jQuery
220
- * ------------------------------------------------------------------------
221
72
  */
222
73
 
223
- $__default['default'].fn[NAME] = Button._jQueryInterface;
224
- $__default['default'].fn[NAME].Constructor = Button;
225
-
226
- $__default['default'].fn[NAME].noConflict = function () {
227
- $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
228
- return Button._jQueryInterface;
229
- };
74
+ index_js.defineJQueryPlugin(Button);
230
75
 
231
76
  return Button;
232
77
 
233
- })));
78
+ }));