bootstrap 4.6.0 → 5.0.0.beta2

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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -1
  3. data/README.md +7 -4
  4. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  5. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  6. data/assets/javascripts/bootstrap-sprockets.js +14 -8
  7. data/assets/javascripts/bootstrap.js +2152 -1633
  8. data/assets/javascripts/bootstrap.min.js +2 -2
  9. data/assets/javascripts/bootstrap/alert.js +179 -64
  10. data/assets/javascripts/bootstrap/base-component.js +75 -0
  11. data/assets/javascripts/bootstrap/button.js +94 -143
  12. data/assets/javascripts/bootstrap/carousel.js +386 -202
  13. data/assets/javascripts/bootstrap/collapse.js +349 -132
  14. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  15. data/assets/javascripts/bootstrap/dom/event-handler.js +310 -0
  16. data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
  17. data/assets/javascripts/bootstrap/dom/selector-engine.js +93 -0
  18. data/assets/javascripts/bootstrap/dropdown.js +387 -224
  19. data/assets/javascripts/bootstrap/modal.js +391 -220
  20. data/assets/javascripts/bootstrap/popover.js +94 -49
  21. data/assets/javascripts/bootstrap/scrollspy.js +212 -80
  22. data/assets/javascripts/bootstrap/tab.js +198 -79
  23. data/assets/javascripts/bootstrap/toast.js +211 -78
  24. data/assets/javascripts/bootstrap/tooltip.js +558 -300
  25. data/assets/stylesheets/_bootstrap-grid.scss +51 -16
  26. data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
  27. data/assets/stylesheets/_bootstrap.scss +15 -8
  28. data/assets/stylesheets/bootstrap/_accordion.scss +126 -0
  29. data/assets/stylesheets/bootstrap/_alert.scss +15 -10
  30. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  31. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
  32. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  33. data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
  34. data/assets/stylesheets/bootstrap/_card.scss +21 -92
  35. data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
  36. data/assets/stylesheets/bootstrap/_close.scss +30 -30
  37. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  38. data/assets/stylesheets/bootstrap/_dropdown.scss +95 -38
  39. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  40. data/assets/stylesheets/bootstrap/_functions.scss +84 -23
  41. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  42. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  43. data/assets/stylesheets/bootstrap/_list-group.scss +17 -8
  44. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  45. data/assets/stylesheets/bootstrap/_modal.scss +41 -46
  46. data/assets/stylesheets/bootstrap/_nav.scss +16 -4
  47. data/assets/stylesheets/bootstrap/_navbar.scss +43 -71
  48. data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
  49. data/assets/stylesheets/bootstrap/_popover.scss +15 -27
  50. data/assets/stylesheets/bootstrap/_progress.scss +2 -4
  51. data/assets/stylesheets/bootstrap/_reboot.scss +314 -163
  52. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  53. data/assets/stylesheets/bootstrap/_spinners.scss +5 -5
  54. data/assets/stylesheets/bootstrap/_tables.scss +79 -114
  55. data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
  56. data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
  57. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  58. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  59. data/assets/stylesheets/bootstrap/_utilities.scss +566 -18
  60. data/assets/stylesheets/bootstrap/_variables.scss +673 -463
  61. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  62. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
  65. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  66. data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
  67. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  68. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  69. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  70. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  71. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  72. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  73. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  74. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  75. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  76. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  77. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  78. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
  79. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +8 -8
  80. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  81. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  82. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
  83. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  84. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  85. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  86. data/assets/stylesheets/bootstrap/mixins/_forms.scss +27 -88
  87. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  88. data/assets/stylesheets/bootstrap/mixins/_grid.scss +83 -32
  89. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  90. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
  91. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  92. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  93. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  94. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  95. data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
  96. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  97. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  98. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  99. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  100. data/bootstrap.gemspec +1 -3
  101. data/lib/bootstrap/version.rb +2 -2
  102. data/tasks/updater/js.rb +20 -5
  103. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  104. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  105. data/test/dummy_rails/app/views/pages/root.html +89 -0
  106. data/test/dummy_rails/config/application.rb +0 -3
  107. data/test/gemfiles/rails_6_1.gemfile +7 -0
  108. metadata +44 -75
  109. data/assets/javascripts/bootstrap/util.js +0 -192
  110. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  111. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  112. data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
  113. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  114. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  115. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  116. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  117. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  118. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  119. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  120. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  121. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  122. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  123. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  124. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  125. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  126. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  127. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  128. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  129. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  130. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  131. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  132. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  133. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  134. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  135. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  136. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  137. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  138. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  139. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  140. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  141. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  142. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  143. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  144. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  145. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -0,0 +1,81 @@
1
+ /*!
2
+ * Bootstrap data.js v5.0.0-beta2 (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
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory());
10
+ }(this, (function () { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap (v5.0.0-beta2): dom/data.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+
19
+ /**
20
+ * ------------------------------------------------------------------------
21
+ * Constants
22
+ * ------------------------------------------------------------------------
23
+ */
24
+ var mapData = function () {
25
+ var storeData = {};
26
+ var id = 1;
27
+ return {
28
+ set: function set(element, key, data) {
29
+ if (typeof element.bsKey === 'undefined') {
30
+ element.bsKey = {
31
+ key: key,
32
+ id: id
33
+ };
34
+ id++;
35
+ }
36
+
37
+ storeData[element.bsKey.id] = data;
38
+ },
39
+ get: function get(element, key) {
40
+ if (!element || typeof element.bsKey === 'undefined') {
41
+ return null;
42
+ }
43
+
44
+ var keyProperties = element.bsKey;
45
+
46
+ if (keyProperties.key === key) {
47
+ return storeData[keyProperties.id];
48
+ }
49
+
50
+ return null;
51
+ },
52
+ delete: function _delete(element, key) {
53
+ if (typeof element.bsKey === 'undefined') {
54
+ return;
55
+ }
56
+
57
+ var keyProperties = element.bsKey;
58
+
59
+ if (keyProperties.key === key) {
60
+ delete storeData[keyProperties.id];
61
+ delete element.bsKey;
62
+ }
63
+ }
64
+ };
65
+ }();
66
+
67
+ var Data = {
68
+ setData: function setData(instance, key, data) {
69
+ mapData.set(instance, key, data);
70
+ },
71
+ getData: function getData(instance, key) {
72
+ return mapData.get(instance, key);
73
+ },
74
+ removeData: function removeData(instance, key) {
75
+ mapData.delete(instance, key);
76
+ }
77
+ };
78
+
79
+ return Data;
80
+
81
+ })));
@@ -0,0 +1,310 @@
1
+ /*!
2
+ * Bootstrap event-handler.js v5.0.0-beta2 (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
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory());
10
+ }(this, (function () { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap (v5.0.0-beta2): util/index.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+
19
+ var getjQuery = function getjQuery() {
20
+ var _window = window,
21
+ jQuery = _window.jQuery;
22
+
23
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
24
+ return jQuery;
25
+ }
26
+
27
+ return null;
28
+ };
29
+
30
+ document.documentElement.dir === 'rtl';
31
+
32
+ /**
33
+ * --------------------------------------------------------------------------
34
+ * Bootstrap (v5.0.0-beta2): dom/event-handler.js
35
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
36
+ * --------------------------------------------------------------------------
37
+ */
38
+ /**
39
+ * ------------------------------------------------------------------------
40
+ * Constants
41
+ * ------------------------------------------------------------------------
42
+ */
43
+
44
+ var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
45
+ var stripNameRegex = /\..*/;
46
+ var stripUidRegex = /::\d+$/;
47
+ var eventRegistry = {}; // Events storage
48
+
49
+ var uidEvent = 1;
50
+ var customEvents = {
51
+ mouseenter: 'mouseover',
52
+ mouseleave: 'mouseout'
53
+ };
54
+ var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
55
+ /**
56
+ * ------------------------------------------------------------------------
57
+ * Private methods
58
+ * ------------------------------------------------------------------------
59
+ */
60
+
61
+ function getUidEvent(element, uid) {
62
+ return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++;
63
+ }
64
+
65
+ function getEvent(element) {
66
+ var uid = getUidEvent(element);
67
+ element.uidEvent = uid;
68
+ eventRegistry[uid] = eventRegistry[uid] || {};
69
+ return eventRegistry[uid];
70
+ }
71
+
72
+ function bootstrapHandler(element, fn) {
73
+ return function handler(event) {
74
+ event.delegateTarget = element;
75
+
76
+ if (handler.oneOff) {
77
+ EventHandler.off(element, event.type, fn);
78
+ }
79
+
80
+ return fn.apply(element, [event]);
81
+ };
82
+ }
83
+
84
+ function bootstrapDelegationHandler(element, selector, fn) {
85
+ return function handler(event) {
86
+ var domElements = element.querySelectorAll(selector);
87
+
88
+ for (var target = event.target; target && target !== this; target = target.parentNode) {
89
+ for (var i = domElements.length; i--;) {
90
+ if (domElements[i] === target) {
91
+ event.delegateTarget = target;
92
+
93
+ if (handler.oneOff) {
94
+ // eslint-disable-next-line unicorn/consistent-destructuring
95
+ EventHandler.off(element, event.type, fn);
96
+ }
97
+
98
+ return fn.apply(target, [event]);
99
+ }
100
+ }
101
+ } // To please ESLint
102
+
103
+
104
+ return null;
105
+ };
106
+ }
107
+
108
+ function findHandler(events, handler, delegationSelector) {
109
+ if (delegationSelector === void 0) {
110
+ delegationSelector = null;
111
+ }
112
+
113
+ var uidEventList = Object.keys(events);
114
+
115
+ for (var i = 0, len = uidEventList.length; i < len; i++) {
116
+ var event = events[uidEventList[i]];
117
+
118
+ if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
119
+ return event;
120
+ }
121
+ }
122
+
123
+ return null;
124
+ }
125
+
126
+ function normalizeParams(originalTypeEvent, handler, delegationFn) {
127
+ var delegation = typeof handler === 'string';
128
+ var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
129
+
130
+ var typeEvent = originalTypeEvent.replace(stripNameRegex, '');
131
+ var custom = customEvents[typeEvent];
132
+
133
+ if (custom) {
134
+ typeEvent = custom;
135
+ }
136
+
137
+ var isNative = nativeEvents.has(typeEvent);
138
+
139
+ if (!isNative) {
140
+ typeEvent = originalTypeEvent;
141
+ }
142
+
143
+ return [delegation, originalHandler, typeEvent];
144
+ }
145
+
146
+ function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {
147
+ if (typeof originalTypeEvent !== 'string' || !element) {
148
+ return;
149
+ }
150
+
151
+ if (!handler) {
152
+ handler = delegationFn;
153
+ delegationFn = null;
154
+ }
155
+
156
+ var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),
157
+ delegation = _normalizeParams[0],
158
+ originalHandler = _normalizeParams[1],
159
+ typeEvent = _normalizeParams[2];
160
+
161
+ var events = getEvent(element);
162
+ var handlers = events[typeEvent] || (events[typeEvent] = {});
163
+ var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);
164
+
165
+ if (previousFn) {
166
+ previousFn.oneOff = previousFn.oneOff && oneOff;
167
+ return;
168
+ }
169
+
170
+ var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
171
+ var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
172
+ fn.delegationSelector = delegation ? handler : null;
173
+ fn.originalHandler = originalHandler;
174
+ fn.oneOff = oneOff;
175
+ fn.uidEvent = uid;
176
+ handlers[uid] = fn;
177
+ element.addEventListener(typeEvent, fn, delegation);
178
+ }
179
+
180
+ function removeHandler(element, events, typeEvent, handler, delegationSelector) {
181
+ var fn = findHandler(events[typeEvent], handler, delegationSelector);
182
+
183
+ if (!fn) {
184
+ return;
185
+ }
186
+
187
+ element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
188
+ delete events[typeEvent][fn.uidEvent];
189
+ }
190
+
191
+ function removeNamespacedHandlers(element, events, typeEvent, namespace) {
192
+ var storeElementEvent = events[typeEvent] || {};
193
+ Object.keys(storeElementEvent).forEach(function (handlerKey) {
194
+ if (handlerKey.includes(namespace)) {
195
+ var event = storeElementEvent[handlerKey];
196
+ removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
197
+ }
198
+ });
199
+ }
200
+
201
+ var EventHandler = {
202
+ on: function on(element, event, handler, delegationFn) {
203
+ addHandler(element, event, handler, delegationFn, false);
204
+ },
205
+ one: function one(element, event, handler, delegationFn) {
206
+ addHandler(element, event, handler, delegationFn, true);
207
+ },
208
+ off: function off(element, originalTypeEvent, handler, delegationFn) {
209
+ if (typeof originalTypeEvent !== 'string' || !element) {
210
+ return;
211
+ }
212
+
213
+ var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn),
214
+ delegation = _normalizeParams2[0],
215
+ originalHandler = _normalizeParams2[1],
216
+ typeEvent = _normalizeParams2[2];
217
+
218
+ var inNamespace = typeEvent !== originalTypeEvent;
219
+ var events = getEvent(element);
220
+ var isNamespace = originalTypeEvent.startsWith('.');
221
+
222
+ if (typeof originalHandler !== 'undefined') {
223
+ // Simplest case: handler is passed, remove that listener ONLY.
224
+ if (!events || !events[typeEvent]) {
225
+ return;
226
+ }
227
+
228
+ removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);
229
+ return;
230
+ }
231
+
232
+ if (isNamespace) {
233
+ Object.keys(events).forEach(function (elementEvent) {
234
+ removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
235
+ });
236
+ }
237
+
238
+ var storeElementEvent = events[typeEvent] || {};
239
+ Object.keys(storeElementEvent).forEach(function (keyHandlers) {
240
+ var handlerKey = keyHandlers.replace(stripUidRegex, '');
241
+
242
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
243
+ var event = storeElementEvent[keyHandlers];
244
+ removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
245
+ }
246
+ });
247
+ },
248
+ trigger: function trigger(element, event, args) {
249
+ if (typeof event !== 'string' || !element) {
250
+ return null;
251
+ }
252
+
253
+ var $ = getjQuery();
254
+ var typeEvent = event.replace(stripNameRegex, '');
255
+ var inNamespace = event !== typeEvent;
256
+ var isNative = nativeEvents.has(typeEvent);
257
+ var jQueryEvent;
258
+ var bubbles = true;
259
+ var nativeDispatch = true;
260
+ var defaultPrevented = false;
261
+ var evt = null;
262
+
263
+ if (inNamespace && $) {
264
+ jQueryEvent = $.Event(event, args);
265
+ $(element).trigger(jQueryEvent);
266
+ bubbles = !jQueryEvent.isPropagationStopped();
267
+ nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
268
+ defaultPrevented = jQueryEvent.isDefaultPrevented();
269
+ }
270
+
271
+ if (isNative) {
272
+ evt = document.createEvent('HTMLEvents');
273
+ evt.initEvent(typeEvent, bubbles, true);
274
+ } else {
275
+ evt = new CustomEvent(event, {
276
+ bubbles: bubbles,
277
+ cancelable: true
278
+ });
279
+ } // merge custom information in our event
280
+
281
+
282
+ if (typeof args !== 'undefined') {
283
+ Object.keys(args).forEach(function (key) {
284
+ Object.defineProperty(evt, key, {
285
+ get: function get() {
286
+ return args[key];
287
+ }
288
+ });
289
+ });
290
+ }
291
+
292
+ if (defaultPrevented) {
293
+ evt.preventDefault();
294
+ }
295
+
296
+ if (nativeDispatch) {
297
+ element.dispatchEvent(evt);
298
+ }
299
+
300
+ if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {
301
+ jQueryEvent.preventDefault();
302
+ }
303
+
304
+ return evt;
305
+ }
306
+ };
307
+
308
+ return EventHandler;
309
+
310
+ })));
@@ -0,0 +1,86 @@
1
+ /*!
2
+ * Bootstrap manipulator.js v5.0.0-beta2 (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
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());
10
+ }(this, (function () { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap (v5.0.0-beta2): dom/manipulator.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+ function normalizeData(val) {
19
+ if (val === 'true') {
20
+ return true;
21
+ }
22
+
23
+ if (val === 'false') {
24
+ return false;
25
+ }
26
+
27
+ if (val === Number(val).toString()) {
28
+ return Number(val);
29
+ }
30
+
31
+ if (val === '' || val === 'null') {
32
+ return null;
33
+ }
34
+
35
+ return val;
36
+ }
37
+
38
+ function normalizeDataKey(key) {
39
+ return key.replace(/[A-Z]/g, function (chr) {
40
+ return "-" + chr.toLowerCase();
41
+ });
42
+ }
43
+
44
+ var Manipulator = {
45
+ setDataAttribute: function setDataAttribute(element, key, value) {
46
+ element.setAttribute("data-bs-" + normalizeDataKey(key), value);
47
+ },
48
+ removeDataAttribute: function removeDataAttribute(element, key) {
49
+ element.removeAttribute("data-bs-" + normalizeDataKey(key));
50
+ },
51
+ getDataAttributes: function getDataAttributes(element) {
52
+ if (!element) {
53
+ return {};
54
+ }
55
+
56
+ var attributes = {};
57
+ Object.keys(element.dataset).filter(function (key) {
58
+ return key.startsWith('bs');
59
+ }).forEach(function (key) {
60
+ var pureKey = key.replace(/^bs/, '');
61
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
62
+ attributes[pureKey] = normalizeData(element.dataset[key]);
63
+ });
64
+ return attributes;
65
+ },
66
+ getDataAttribute: function getDataAttribute(element, key) {
67
+ return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key)));
68
+ },
69
+ offset: function offset(element) {
70
+ var rect = element.getBoundingClientRect();
71
+ return {
72
+ top: rect.top + document.body.scrollTop,
73
+ left: rect.left + document.body.scrollLeft
74
+ };
75
+ },
76
+ position: function position(element) {
77
+ return {
78
+ top: element.offsetTop,
79
+ left: element.offsetLeft
80
+ };
81
+ }
82
+ };
83
+
84
+ return Manipulator;
85
+
86
+ })));