bootstrap 4.1.3 → 5.0.0

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 (156) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +17 -2
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +7 -4
  5. data/Rakefile +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +226 -166
  7. data/assets/javascripts/bootstrap/base-component.js +63 -0
  8. data/assets/javascripts/bootstrap/button.js +119 -165
  9. data/assets/javascripts/bootstrap/carousel.js +634 -445
  10. data/assets/javascripts/bootstrap/collapse.js +447 -327
  11. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +550 -425
  16. data/assets/javascripts/bootstrap/modal.js +695 -492
  17. data/assets/javascripts/bootstrap/offcanvas.js +671 -0
  18. data/assets/javascripts/bootstrap/popover.js +167 -217
  19. data/assets/javascripts/bootstrap/scrollspy.js +319 -302
  20. data/assets/javascripts/bootstrap/tab.js +303 -221
  21. data/assets/javascripts/bootstrap/toast.js +333 -0
  22. data/assets/javascripts/bootstrap/tooltip.js +896 -577
  23. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  24. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  25. data/assets/javascripts/bootstrap-sprockets.js +15 -7
  26. data/assets/javascripts/bootstrap.js +4262 -3163
  27. data/assets/javascripts/bootstrap.min.js +4 -4
  28. data/assets/stylesheets/_bootstrap-grid.scss +54 -21
  29. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  30. data/assets/stylesheets/_bootstrap.scss +21 -11
  31. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  32. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  33. data/assets/stylesheets/bootstrap/_badge.scss +3 -21
  34. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
  35. data/assets/stylesheets/bootstrap/_button-group.scss +29 -62
  36. data/assets/stylesheets/bootstrap/_buttons.scss +33 -65
  37. data/assets/stylesheets/bootstrap/_card.scss +55 -141
  38. data/assets/stylesheets/bootstrap/_carousel.scss +94 -101
  39. data/assets/stylesheets/bootstrap/_close.scss +33 -28
  40. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  41. data/assets/stylesheets/bootstrap/_dropdown.scss +114 -40
  42. data/assets/stylesheets/bootstrap/_forms.scss +9 -333
  43. data/assets/stylesheets/bootstrap/_functions.scss +148 -29
  44. data/assets/stylesheets/bootstrap/_grid.scss +4 -34
  45. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  46. data/assets/stylesheets/bootstrap/_images.scss +4 -4
  47. data/assets/stylesheets/bootstrap/_list-group.scss +86 -27
  48. data/assets/stylesheets/bootstrap/_mixins.scss +17 -16
  49. data/assets/stylesheets/bootstrap/_modal.scss +90 -42
  50. data/assets/stylesheets/bootstrap/_nav.scss +31 -10
  51. data/assets/stylesheets/bootstrap/_navbar.scss +68 -61
  52. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +13 -27
  54. data/assets/stylesheets/bootstrap/_popover.scss +63 -88
  55. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  56. data/assets/stylesheets/bootstrap/_reboot.scss +349 -211
  57. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  58. data/assets/stylesheets/bootstrap/_spinners.scss +69 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +79 -116
  60. data/assets/stylesheets/bootstrap/_toasts.scss +51 -0
  61. data/assets/stylesheets/bootstrap/_tooltip.scss +18 -18
  62. data/assets/stylesheets/bootstrap/_transitions.scss +2 -3
  63. data/assets/stylesheets/bootstrap/_type.scss +42 -63
  64. data/assets/stylesheets/bootstrap/_utilities.scss +594 -15
  65. data/assets/stylesheets/bootstrap/_variables.scss +952 -440
  66. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
  72. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  74. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  75. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  76. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  77. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  78. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  79. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  80. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  81. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  82. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  83. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +57 -14
  84. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +14 -1
  85. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +13 -9
  86. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +77 -53
  87. data/assets/stylesheets/bootstrap/mixins/_caret.scss +14 -16
  88. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  89. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  90. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  91. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  92. data/assets/stylesheets/bootstrap/mixins/_forms.scss +87 -97
  93. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  94. data/assets/stylesheets/bootstrap/mixins/_grid.scss +106 -33
  95. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  96. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  97. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +18 -9
  98. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  99. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  100. data/assets/stylesheets/bootstrap/mixins/_transition.scss +19 -6
  101. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  102. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  103. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  104. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +312 -0
  105. data/bootstrap.gemspec +7 -6
  106. data/lib/bootstrap/engine.rb +3 -0
  107. data/lib/bootstrap/version.rb +4 -2
  108. data/lib/bootstrap.rb +10 -7
  109. data/tasks/updater/js.rb +20 -5
  110. data/tasks/updater/network.rb +8 -2
  111. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  112. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  113. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  114. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  115. data/test/dummy_rails/app/views/pages/root.html +89 -0
  116. data/test/dummy_rails/config/application.rb +0 -3
  117. data/test/gemfiles/rails_6_0.gemfile +7 -0
  118. data/test/gemfiles/rails_6_1.gemfile +7 -0
  119. data/test/support/dummy_rails_integration.rb +3 -1
  120. data/test/test_helper.rb +18 -13
  121. metadata +64 -79
  122. data/assets/javascripts/bootstrap/util.js +0 -143
  123. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  124. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -433
  125. data/assets/stylesheets/bootstrap/_input-group.scss +0 -173
  126. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
  127. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  128. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  129. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  130. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
  131. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
  132. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
  133. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  134. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  135. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
  136. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
  137. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
  138. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
  139. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -13
  140. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
  141. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  142. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  143. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
  144. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
  145. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
  146. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  147. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
  148. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -37
  149. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  150. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  151. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
  152. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
  153. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -58
  154. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
  155. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
  156. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -1,190 +1,144 @@
1
+ /*!
2
+ * Bootstrap button.js v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
1
6
  (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';
6
-
7
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
8
-
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);
16
- }
17
- }
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));
10
+ }(this, (function (Data, EventHandler, BaseComponent) { 'use strict';
18
11
 
19
- function _createClass(Constructor, protoProps, staticProps) {
20
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
21
- if (staticProps) _defineProperties(Constructor, staticProps);
22
- return Constructor;
23
- }
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
24
17
 
25
18
  /**
26
19
  * --------------------------------------------------------------------------
27
- * Bootstrap (v4.1.3): button.js
28
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
20
+ * Bootstrap (v5.0.0): util/index.js
21
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
29
22
  * --------------------------------------------------------------------------
30
23
  */
31
24
 
32
- var Button = function ($$$1) {
33
- /**
34
- * ------------------------------------------------------------------------
35
- * Constants
36
- * ------------------------------------------------------------------------
37
- */
38
- var NAME = 'button';
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];
44
- var ClassName = {
45
- ACTIVE: 'active',
46
- BUTTON: 'btn',
47
- FOCUS: 'focus'
48
- };
49
- var Selector = {
50
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
51
- DATA_TOGGLE: '[data-toggle="buttons"]',
52
- INPUT: 'input',
53
- ACTIVE: '.active',
54
- BUTTON: '.btn'
55
- };
56
- var Event = {
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)
59
- /**
60
- * ------------------------------------------------------------------------
61
- * Class Definition
62
- * ------------------------------------------------------------------------
63
- */
64
-
65
- };
66
-
67
- var Button =
68
- /*#__PURE__*/
69
- function () {
70
- function Button(element) {
71
- this._element = element;
72
- } // Getters
73
-
74
-
75
- var _proto = Button.prototype;
76
-
77
- // Public
78
- _proto.toggle = function toggle() {
79
- var triggerChangeEvent = true;
80
- var addAriaPressed = true;
81
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
82
-
83
- if (rootElement) {
84
- var input = this._element.querySelector(Selector.INPUT);
85
-
86
- if (input) {
87
- if (input.type === 'radio') {
88
- if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
89
- triggerChangeEvent = false;
90
- } else {
91
- var activeElement = rootElement.querySelector(Selector.ACTIVE);
92
-
93
- if (activeElement) {
94
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
95
- }
96
- }
97
- }
98
-
99
- if (triggerChangeEvent) {
100
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
101
- return;
102
- }
103
-
104
- input.checked = !this._element.classList.contains(ClassName.ACTIVE);
105
- $$$1(input).trigger('change');
106
- }
107
-
108
- input.focus();
109
- addAriaPressed = false;
110
- }
111
- }
25
+ const getjQuery = () => {
26
+ const {
27
+ jQuery
28
+ } = window;
112
29
 
113
- if (addAriaPressed) {
114
- this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
115
- }
30
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
31
+ return jQuery;
32
+ }
116
33
 
117
- if (triggerChangeEvent) {
118
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
119
- }
120
- };
34
+ return null;
35
+ };
36
+
37
+ const onDOMContentLoaded = callback => {
38
+ if (document.readyState === 'loading') {
39
+ document.addEventListener('DOMContentLoaded', callback);
40
+ } else {
41
+ callback();
42
+ }
43
+ };
44
+
45
+ const defineJQueryPlugin = (name, plugin) => {
46
+ onDOMContentLoaded(() => {
47
+ const $ = getjQuery();
48
+ /* istanbul ignore if */
49
+
50
+ if ($) {
51
+ const JQUERY_NO_CONFLICT = $.fn[name];
52
+ $.fn[name] = plugin.jQueryInterface;
53
+ $.fn[name].Constructor = plugin;
54
+
55
+ $.fn[name].noConflict = () => {
56
+ $.fn[name] = JQUERY_NO_CONFLICT;
57
+ return plugin.jQueryInterface;
58
+ };
59
+ }
60
+ });
61
+ };
62
+
63
+ /**
64
+ * --------------------------------------------------------------------------
65
+ * Bootstrap (v5.0.0): button.js
66
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
67
+ * --------------------------------------------------------------------------
68
+ */
69
+ /**
70
+ * ------------------------------------------------------------------------
71
+ * Constants
72
+ * ------------------------------------------------------------------------
73
+ */
74
+
75
+ const NAME = 'button';
76
+ const DATA_KEY = 'bs.button';
77
+ const EVENT_KEY = `.${DATA_KEY}`;
78
+ const DATA_API_KEY = '.data-api';
79
+ const CLASS_NAME_ACTIVE = 'active';
80
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
81
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
82
+ /**
83
+ * ------------------------------------------------------------------------
84
+ * Class Definition
85
+ * ------------------------------------------------------------------------
86
+ */
121
87
 
122
- _proto.dispose = function dispose() {
123
- $$$1.removeData(this._element, DATA_KEY);
124
- this._element = null;
125
- }; // Static
88
+ class Button extends BaseComponent__default['default'] {
89
+ // Getters
90
+ static get DATA_KEY() {
91
+ return DATA_KEY;
92
+ } // Public
126
93
 
127
94
 
128
- Button._jQueryInterface = function _jQueryInterface(config) {
129
- return this.each(function () {
130
- var data = $$$1(this).data(DATA_KEY);
95
+ toggle() {
96
+ // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
97
+ this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
98
+ } // Static
131
99
 
132
- if (!data) {
133
- data = new Button(this);
134
- $$$1(this).data(DATA_KEY, data);
135
- }
136
100
 
137
- if (config === 'toggle') {
138
- data[config]();
139
- }
140
- });
141
- };
101
+ static jQueryInterface(config) {
102
+ return this.each(function () {
103
+ let data = Data__default['default'].get(this, DATA_KEY);
142
104
 
143
- _createClass(Button, null, [{
144
- key: "VERSION",
145
- get: function get() {
146
- return VERSION;
105
+ if (!data) {
106
+ data = new Button(this);
147
107
  }
148
- }]);
149
108
 
150
- return Button;
151
- }();
152
- /**
153
- * ------------------------------------------------------------------------
154
- * Data Api implementation
155
- * ------------------------------------------------------------------------
156
- */
109
+ if (config === 'toggle') {
110
+ data[config]();
111
+ }
112
+ });
113
+ }
157
114
 
115
+ }
116
+ /**
117
+ * ------------------------------------------------------------------------
118
+ * Data Api implementation
119
+ * ------------------------------------------------------------------------
120
+ */
158
121
 
159
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
160
- event.preventDefault();
161
- var button = event.target;
162
122
 
163
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
164
- button = $$$1(button).closest(Selector.BUTTON);
165
- }
123
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
124
+ event.preventDefault();
125
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE);
126
+ let data = Data__default['default'].get(button, DATA_KEY);
166
127
 
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));
171
- });
172
- /**
173
- * ------------------------------------------------------------------------
174
- * jQuery
175
- * ------------------------------------------------------------------------
176
- */
177
-
178
- $$$1.fn[NAME] = Button._jQueryInterface;
179
- $$$1.fn[NAME].Constructor = Button;
180
-
181
- $$$1.fn[NAME].noConflict = function () {
182
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
183
- return Button._jQueryInterface;
184
- };
185
-
186
- return Button;
187
- }($);
128
+ if (!data) {
129
+ data = new Button(button);
130
+ }
131
+
132
+ data.toggle();
133
+ });
134
+ /**
135
+ * ------------------------------------------------------------------------
136
+ * jQuery
137
+ * ------------------------------------------------------------------------
138
+ * add .Button to jQuery only if jQuery is present
139
+ */
140
+
141
+ defineJQueryPlugin(NAME, Button);
188
142
 
189
143
  return Button;
190
144