bootstrap 5.0.2 → 5.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +78 -48
  4. data/assets/javascripts/bootstrap/base-component.js +22 -17
  5. data/assets/javascripts/bootstrap/button.js +19 -12
  6. data/assets/javascripts/bootstrap/carousel.js +66 -44
  7. data/assets/javascripts/bootstrap/collapse.js +114 -131
  8. data/assets/javascripts/bootstrap/dom/data.js +5 -5
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +11 -5
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +6 -6
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +49 -7
  12. data/assets/javascripts/bootstrap/dropdown.js +96 -106
  13. data/assets/javascripts/bootstrap/modal.js +241 -87
  14. data/assets/javascripts/bootstrap/offcanvas.js +203 -57
  15. data/assets/javascripts/bootstrap/popover.js +25 -58
  16. data/assets/javascripts/bootstrap/scrollspy.js +47 -66
  17. data/assets/javascripts/bootstrap/tab.js +41 -22
  18. data/assets/javascripts/bootstrap/toast.js +124 -29
  19. data/assets/javascripts/bootstrap/tooltip.js +122 -104
  20. data/assets/javascripts/bootstrap-sprockets.js +7 -7
  21. data/assets/javascripts/bootstrap.js +660 -630
  22. data/assets/javascripts/bootstrap.min.js +2 -2
  23. data/assets/stylesheets/_bootstrap-grid.scss +3 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +2 -4
  25. data/assets/stylesheets/_bootstrap.scss +2 -1
  26. data/assets/stylesheets/bootstrap/_card.scss +2 -1
  27. data/assets/stylesheets/bootstrap/_functions.scss +51 -12
  28. data/assets/stylesheets/bootstrap/_grid.scss +11 -0
  29. data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
  30. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  31. data/assets/stylesheets/bootstrap/_modal.scss +1 -11
  32. data/assets/stylesheets/bootstrap/_navbar.scss +30 -1
  33. data/assets/stylesheets/bootstrap/_offcanvas.scss +4 -0
  34. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  35. data/assets/stylesheets/bootstrap/_reboot.scss +12 -8
  36. data/assets/stylesheets/bootstrap/_root.scss +40 -2
  37. data/assets/stylesheets/bootstrap/_tables.scss +8 -4
  38. data/assets/stylesheets/bootstrap/_toasts.scss +2 -2
  39. data/assets/stylesheets/bootstrap/_transitions.scss +6 -0
  40. data/assets/stylesheets/bootstrap/_utilities.scss +44 -8
  41. data/assets/stylesheets/bootstrap/_variables.scss +184 -11
  42. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  43. data/assets/stylesheets/bootstrap/forms/_form-control.scss +1 -1
  44. data/assets/stylesheets/bootstrap/forms/_form-select.scss +2 -0
  45. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  46. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  47. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  48. data/assets/stylesheets/bootstrap/mixins/_grid.scss +29 -10
  49. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +27 -6
  50. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +1 -1
  51. data/bootstrap.gemspec +3 -3
  52. data/lib/bootstrap/version.rb +2 -2
  53. data/tasks/updater/js.rb +6 -2
  54. metadata +12 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0314dcfea7c5fef8beb89c89aae1079993ed58c6509eb6325a7b00bd25bac45e
4
- data.tar.gz: 1cf536b8bb87f45060505977be1c795d1159b72bce299caeb8652a2f9c122e21
3
+ metadata.gz: 666b108731be39c8122df9a54b7b2a1715f02b92e03caa941c132b3e7ec352ca
4
+ data.tar.gz: 57086f0d9bb88ba6a0abf74a5f0006b6eed21168d37009c2159e8ab9b68385f4
5
5
  SHA512:
6
- metadata.gz: 91e3199ea081cf8a4e515f637a20f155ae77ab602e821220e35218cd52af51563adc616646c099aeda3ee88ee1365d12bb12865963f6fae5b7481af449d3351d
7
- data.tar.gz: 56fbbc51f5db1cad7c06e785f7b8868010c7db2bdaa6d9278a012b28b15cf7cbbe7c5fa3339f49df40e751032e956f4a00d57558caff3f626d9f1ab4236122a4
6
+ metadata.gz: 6171d65c922c486d41a0cb7f4e781e389b2cf0d9e00cf7c350fcdf6ab59b814e8daa7449a9a97d7462e6945f766261466cbf750f0aedc07301f366d2f7731eaf
7
+ data.tar.gz: b65871d048cecf29a714362f75348bc167ba158e50197908cde71ff197d834c0d84eb9ead9be4f7c87c22f49da0c164a6aa997843b2bc5998f6b12effc762db7
data/README.md CHANGED
@@ -20,7 +20,7 @@ Please see the appropriate guide for your environment of choice:
20
20
  Add `bootstrap` to your Gemfile:
21
21
 
22
22
  ```ruby
23
- gem 'bootstrap', '~> 5.0.2'
23
+ gem 'bootstrap', '~> 5.1.3'
24
24
  ```
25
25
 
26
26
  Ensure that `sprockets-rails` is at least v2.3.2.
@@ -1,18 +1,25 @@
1
1
  /*!
2
- * Bootstrap alert.js v5.0.2 (https://getbootstrap.com/)
2
+ * Bootstrap alert.js v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 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('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/event-handler', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.SelectorEngine, global.EventHandler, global.Base));
10
- }(this, (function (SelectorEngine, EventHandler, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/event-handler.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/event-handler', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.EventHandler, global.Base));
10
+ })(this, (function (EventHandler, BaseComponent) { 'use strict';
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
14
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
+ const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
16
+
17
+ /**
18
+ * --------------------------------------------------------------------------
19
+ * Bootstrap (v5.1.3): util/index.js
20
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
+ * --------------------------------------------------------------------------
22
+ */
16
23
 
17
24
  const getSelector = element => {
18
25
  let selector = element.getAttribute('data-bs-target');
@@ -43,6 +50,22 @@
43
50
  return selector ? document.querySelector(selector) : null;
44
51
  };
45
52
 
53
+ const isDisabled = element => {
54
+ if (!element || element.nodeType !== Node.ELEMENT_NODE) {
55
+ return true;
56
+ }
57
+
58
+ if (element.classList.contains('disabled')) {
59
+ return true;
60
+ }
61
+
62
+ if (typeof element.disabled !== 'undefined') {
63
+ return element.disabled;
64
+ }
65
+
66
+ return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
67
+ };
68
+
46
69
  const getjQuery = () => {
47
70
  const {
48
71
  jQuery
@@ -93,7 +116,33 @@
93
116
 
94
117
  /**
95
118
  * --------------------------------------------------------------------------
96
- * Bootstrap (v5.0.2): alert.js
119
+ * Bootstrap (v5.1.3): util/component-functions.js
120
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
121
+ * --------------------------------------------------------------------------
122
+ */
123
+
124
+ const enableDismissTrigger = (component, method = 'hide') => {
125
+ const clickEvent = `click.dismiss${component.EVENT_KEY}`;
126
+ const name = component.NAME;
127
+ EventHandler__default.default.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
128
+ if (['A', 'AREA'].includes(this.tagName)) {
129
+ event.preventDefault();
130
+ }
131
+
132
+ if (isDisabled(this)) {
133
+ return;
134
+ }
135
+
136
+ const target = getElementFromSelector(this) || this.closest(`.${name}`);
137
+ const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
138
+
139
+ instance[method]();
140
+ });
141
+ };
142
+
143
+ /**
144
+ * --------------------------------------------------------------------------
145
+ * Bootstrap (v5.1.3): alert.js
97
146
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
98
147
  * --------------------------------------------------------------------------
99
148
  */
@@ -106,12 +155,8 @@
106
155
  const NAME = 'alert';
107
156
  const DATA_KEY = 'bs.alert';
108
157
  const EVENT_KEY = `.${DATA_KEY}`;
109
- const DATA_API_KEY = '.data-api';
110
- const SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
111
158
  const EVENT_CLOSE = `close${EVENT_KEY}`;
112
159
  const EVENT_CLOSED = `closed${EVENT_KEY}`;
113
- const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
114
- const CLASS_NAME_ALERT = 'alert';
115
160
  const CLASS_NAME_FADE = 'fade';
116
161
  const CLASS_NAME_SHOW = 'show';
117
162
  /**
@@ -120,44 +165,33 @@
120
165
  * ------------------------------------------------------------------------
121
166
  */
122
167
 
123
- class Alert extends BaseComponent__default['default'] {
168
+ class Alert extends BaseComponent__default.default {
124
169
  // Getters
125
170
  static get NAME() {
126
171
  return NAME;
127
172
  } // Public
128
173
 
129
174
 
130
- close(element) {
131
- const rootElement = element ? this._getRootElement(element) : this._element;
132
-
133
- const customEvent = this._triggerCloseEvent(rootElement);
175
+ close() {
176
+ const closeEvent = EventHandler__default.default.trigger(this._element, EVENT_CLOSE);
134
177
 
135
- if (customEvent === null || customEvent.defaultPrevented) {
178
+ if (closeEvent.defaultPrevented) {
136
179
  return;
137
180
  }
138
181
 
139
- this._removeElement(rootElement);
140
- } // Private
182
+ this._element.classList.remove(CLASS_NAME_SHOW);
141
183
 
184
+ const isAnimated = this._element.classList.contains(CLASS_NAME_FADE);
142
185
 
143
- _getRootElement(element) {
144
- return getElementFromSelector(element) || element.closest(`.${CLASS_NAME_ALERT}`);
145
- }
186
+ this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
187
+ } // Private
146
188
 
147
- _triggerCloseEvent(element) {
148
- return EventHandler__default['default'].trigger(element, EVENT_CLOSE);
149
- }
150
189
 
151
- _removeElement(element) {
152
- element.classList.remove(CLASS_NAME_SHOW);
153
- const isAnimated = element.classList.contains(CLASS_NAME_FADE);
190
+ _destroyElement() {
191
+ this._element.remove();
154
192
 
155
- this._queueCallback(() => this._destroyElement(element), element, isAnimated);
156
- }
157
-
158
- _destroyElement(element) {
159
- element.remove();
160
- EventHandler__default['default'].trigger(element, EVENT_CLOSED);
193
+ EventHandler__default.default.trigger(this._element, EVENT_CLOSED);
194
+ this.dispose();
161
195
  } // Static
162
196
 
163
197
 
@@ -165,20 +199,16 @@
165
199
  return this.each(function () {
166
200
  const data = Alert.getOrCreateInstance(this);
167
201
 
168
- if (config === 'close') {
169
- data[config](this);
202
+ if (typeof config !== 'string') {
203
+ return;
170
204
  }
171
- });
172
- }
173
205
 
174
- static handleDismiss(alertInstance) {
175
- return function (event) {
176
- if (event) {
177
- event.preventDefault();
206
+ if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
207
+ throw new TypeError(`No method named "${config}"`);
178
208
  }
179
209
 
180
- alertInstance.close(this);
181
- };
210
+ data[config](this);
211
+ });
182
212
  }
183
213
 
184
214
  }
@@ -189,7 +219,7 @@
189
219
  */
190
220
 
191
221
 
192
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
222
+ enableDismissTrigger(Alert, 'close');
193
223
  /**
194
224
  * ------------------------------------------------------------------------
195
225
  * jQuery
@@ -201,4 +231,4 @@
201
231
 
202
232
  return Alert;
203
233
 
204
- })));
234
+ }));
@@ -1,20 +1,25 @@
1
1
  /*!
2
- * Bootstrap base-component.js v5.0.2 (https://getbootstrap.com/)
2
+ * Bootstrap base-component.js v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 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('./dom/data.js'), require('./dom/selector-engine.js'), require('./dom/event-handler.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './dom/event-handler'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Base = factory(global.Data, global.SelectorEngine, global.EventHandler));
10
- }(this, (function (Data, SelectorEngine, EventHandler) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Base = factory(global.Data, global.EventHandler));
10
+ })(this, (function (Data, EventHandler) { 'use strict';
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
14
+ const Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
17
16
 
17
+ /**
18
+ * --------------------------------------------------------------------------
19
+ * Bootstrap (v5.1.3): util/index.js
20
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
+ * --------------------------------------------------------------------------
22
+ */
18
23
  const MILLISECONDS_MULTIPLIER = 1000;
19
24
  const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
20
25
 
@@ -64,7 +69,7 @@
64
69
  }
65
70
 
66
71
  if (typeof obj === 'string' && obj.length > 0) {
67
- return SelectorEngine__default['default'].findOne(obj);
72
+ return document.querySelector(obj);
68
73
  }
69
74
 
70
75
  return null;
@@ -108,7 +113,7 @@
108
113
 
109
114
  /**
110
115
  * --------------------------------------------------------------------------
111
- * Bootstrap (v5.0.2): base-component.js
116
+ * Bootstrap (v5.1.3): base-component.js
112
117
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
113
118
  * --------------------------------------------------------------------------
114
119
  */
@@ -118,7 +123,7 @@
118
123
  * ------------------------------------------------------------------------
119
124
  */
120
125
 
121
- const VERSION = '5.0.2';
126
+ const VERSION = '5.1.3';
122
127
 
123
128
  class BaseComponent {
124
129
  constructor(element) {
@@ -129,12 +134,12 @@
129
134
  }
130
135
 
131
136
  this._element = element;
132
- Data__default['default'].set(this._element, this.constructor.DATA_KEY, this);
137
+ Data__default.default.set(this._element, this.constructor.DATA_KEY, this);
133
138
  }
134
139
 
135
140
  dispose() {
136
- Data__default['default'].remove(this._element, this.constructor.DATA_KEY);
137
- EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
141
+ Data__default.default.remove(this._element, this.constructor.DATA_KEY);
142
+ EventHandler__default.default.off(this._element, this.constructor.EVENT_KEY);
138
143
  Object.getOwnPropertyNames(this).forEach(propertyName => {
139
144
  this[propertyName] = null;
140
145
  });
@@ -147,7 +152,7 @@
147
152
 
148
153
 
149
154
  static getInstance(element) {
150
- return Data__default['default'].get(element, this.DATA_KEY);
155
+ return Data__default.default.get(getElement(element), this.DATA_KEY);
151
156
  }
152
157
 
153
158
  static getOrCreateInstance(element, config = {}) {
@@ -174,4 +179,4 @@
174
179
 
175
180
  return BaseComponent;
176
181
 
177
- })));
182
+ }));
@@ -1,18 +1,25 @@
1
1
  /*!
2
- * Bootstrap button.js v5.0.2 (https://getbootstrap.com/)
2
+ * Bootstrap button.js v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 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('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/event-handler', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.SelectorEngine, global.EventHandler, global.Base));
10
- }(this, (function (SelectorEngine, EventHandler, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/event-handler.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/event-handler', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.EventHandler, global.Base));
10
+ })(this, (function (EventHandler, BaseComponent) { 'use strict';
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
14
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
+ const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
16
+
17
+ /**
18
+ * --------------------------------------------------------------------------
19
+ * Bootstrap (v5.1.3): util/index.js
20
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
+ * --------------------------------------------------------------------------
22
+ */
16
23
 
17
24
  const getjQuery = () => {
18
25
  const {
@@ -64,7 +71,7 @@
64
71
 
65
72
  /**
66
73
  * --------------------------------------------------------------------------
67
- * Bootstrap (v5.0.2): button.js
74
+ * Bootstrap (v5.1.3): button.js
68
75
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
69
76
  * --------------------------------------------------------------------------
70
77
  */
@@ -87,7 +94,7 @@
87
94
  * ------------------------------------------------------------------------
88
95
  */
89
96
 
90
- class Button extends BaseComponent__default['default'] {
97
+ class Button extends BaseComponent__default.default {
91
98
  // Getters
92
99
  static get NAME() {
93
100
  return NAME;
@@ -118,7 +125,7 @@
118
125
  */
119
126
 
120
127
 
121
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
128
+ EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
122
129
  event.preventDefault();
123
130
  const button = event.target.closest(SELECTOR_DATA_TOGGLE);
124
131
  const data = Button.getOrCreateInstance(button);
@@ -135,4 +142,4 @@
135
142
 
136
143
  return Button;
137
144
 
138
- })));
145
+ }));
@@ -1,21 +1,27 @@
1
1
  /*!
2
- * Bootstrap carousel.js v5.0.2 (https://getbootstrap.com/)
2
+ * Bootstrap carousel.js v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 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('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.SelectorEngine, global.EventHandler, global.Manipulator, global.Base));
10
- }(this, (function (SelectorEngine, EventHandler, Manipulator, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
+ })(this, (function (EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
15
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
- var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
14
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
+ const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
16
+ const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
17
+ const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
18
18
 
19
+ /**
20
+ * --------------------------------------------------------------------------
21
+ * Bootstrap (v5.1.3): util/index.js
22
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
+ * --------------------------------------------------------------------------
24
+ */
19
25
  const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
20
26
 
21
27
  const toType = obj => {
@@ -90,8 +96,20 @@
90
96
 
91
97
  return getComputedStyle(element).getPropertyValue('visibility') === 'visible';
92
98
  };
99
+ /**
100
+ * Trick to restart an element's animation
101
+ *
102
+ * @param {HTMLElement} element
103
+ * @return void
104
+ *
105
+ * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
106
+ */
107
+
93
108
 
94
- const reflow = element => element.offsetHeight;
109
+ const reflow = element => {
110
+ // eslint-disable-next-line no-unused-expressions
111
+ element.offsetHeight;
112
+ };
95
113
 
96
114
  const getjQuery = () => {
97
115
  const {
@@ -172,7 +190,7 @@
172
190
 
173
191
  /**
174
192
  * --------------------------------------------------------------------------
175
- * Bootstrap (v5.0.2): carousel.js
193
+ * Bootstrap (v5.1.3): carousel.js
176
194
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
177
195
  * --------------------------------------------------------------------------
178
196
  */
@@ -253,7 +271,7 @@
253
271
  * ------------------------------------------------------------------------
254
272
  */
255
273
 
256
- class Carousel extends BaseComponent__default['default'] {
274
+ class Carousel extends BaseComponent__default.default {
257
275
  constructor(element, config) {
258
276
  super(element);
259
277
  this._items = null;
@@ -265,7 +283,7 @@
265
283
  this.touchStartX = 0;
266
284
  this.touchDeltaX = 0;
267
285
  this._config = this._getConfig(config);
268
- this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, this._element);
286
+ this._indicatorsElement = SelectorEngine__default.default.findOne(SELECTOR_INDICATORS, this._element);
269
287
  this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
270
288
  this._pointerEvent = Boolean(window.PointerEvent);
271
289
 
@@ -303,7 +321,7 @@
303
321
  this._isPaused = true;
304
322
  }
305
323
 
306
- if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
324
+ if (SelectorEngine__default.default.findOne(SELECTOR_NEXT_PREV, this._element)) {
307
325
  triggerTransitionEnd(this._element);
308
326
  this.cycle(true);
309
327
  }
@@ -330,7 +348,7 @@
330
348
  }
331
349
 
332
350
  to(index) {
333
- this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
351
+ this._activeElement = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
334
352
 
335
353
  const activeIndex = this._getItemIndex(this._activeElement);
336
354
 
@@ -339,7 +357,7 @@
339
357
  }
340
358
 
341
359
  if (this._isSliding) {
342
- EventHandler__default['default'].one(this._element, EVENT_SLID, () => this.to(index));
360
+ EventHandler__default.default.one(this._element, EVENT_SLID, () => this.to(index));
343
361
  return;
344
362
  }
345
363
 
@@ -357,7 +375,7 @@
357
375
 
358
376
  _getConfig(config) {
359
377
  config = { ...Default,
360
- ...Manipulator__default['default'].getDataAttributes(this._element),
378
+ ...Manipulator__default.default.getDataAttributes(this._element),
361
379
  ...(typeof config === 'object' ? config : {})
362
380
  };
363
381
  typeCheckConfig(NAME, config, DefaultType);
@@ -383,12 +401,12 @@
383
401
 
384
402
  _addEventListeners() {
385
403
  if (this._config.keyboard) {
386
- EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
404
+ EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
387
405
  }
388
406
 
389
407
  if (this._config.pause === 'hover') {
390
- EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, event => this.pause(event));
391
- EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));
408
+ EventHandler__default.default.on(this._element, EVENT_MOUSEENTER, event => this.pause(event));
409
+ EventHandler__default.default.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));
392
410
  }
393
411
 
394
412
  if (this._config.touch && this._touchSupported) {
@@ -397,8 +415,12 @@
397
415
  }
398
416
 
399
417
  _addTouchEventListeners() {
418
+ const hasPointerPenTouch = event => {
419
+ return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
420
+ };
421
+
400
422
  const start = event => {
401
- if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
423
+ if (hasPointerPenTouch(event)) {
402
424
  this.touchStartX = event.clientX;
403
425
  } else if (!this._pointerEvent) {
404
426
  this.touchStartX = event.touches[0].clientX;
@@ -411,7 +433,7 @@
411
433
  };
412
434
 
413
435
  const end = event => {
414
- if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
436
+ if (hasPointerPenTouch(event)) {
415
437
  this.touchDeltaX = event.clientX - this.touchStartX;
416
438
  }
417
439
 
@@ -435,19 +457,19 @@
435
457
  }
436
458
  };
437
459
 
438
- SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {
439
- EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, e => e.preventDefault());
460
+ SelectorEngine__default.default.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {
461
+ EventHandler__default.default.on(itemImg, EVENT_DRAG_START, event => event.preventDefault());
440
462
  });
441
463
 
442
464
  if (this._pointerEvent) {
443
- EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, event => start(event));
444
- EventHandler__default['default'].on(this._element, EVENT_POINTERUP, event => end(event));
465
+ EventHandler__default.default.on(this._element, EVENT_POINTERDOWN, event => start(event));
466
+ EventHandler__default.default.on(this._element, EVENT_POINTERUP, event => end(event));
445
467
 
446
468
  this._element.classList.add(CLASS_NAME_POINTER_EVENT);
447
469
  } else {
448
- EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, event => start(event));
449
- EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, event => move(event));
450
- EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, event => end(event));
470
+ EventHandler__default.default.on(this._element, EVENT_TOUCHSTART, event => start(event));
471
+ EventHandler__default.default.on(this._element, EVENT_TOUCHMOVE, event => move(event));
472
+ EventHandler__default.default.on(this._element, EVENT_TOUCHEND, event => end(event));
451
473
  }
452
474
  }
453
475
 
@@ -466,7 +488,7 @@
466
488
  }
467
489
 
468
490
  _getItemIndex(element) {
469
- this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
491
+ this._items = element && element.parentNode ? SelectorEngine__default.default.find(SELECTOR_ITEM, element.parentNode) : [];
470
492
  return this._items.indexOf(element);
471
493
  }
472
494
 
@@ -478,9 +500,9 @@
478
500
  _triggerSlideEvent(relatedTarget, eventDirectionName) {
479
501
  const targetIndex = this._getItemIndex(relatedTarget);
480
502
 
481
- const fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
503
+ const fromIndex = this._getItemIndex(SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element));
482
504
 
483
- return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
505
+ return EventHandler__default.default.trigger(this._element, EVENT_SLIDE, {
484
506
  relatedTarget,
485
507
  direction: eventDirectionName,
486
508
  from: fromIndex,
@@ -490,10 +512,10 @@
490
512
 
491
513
  _setActiveIndicatorElement(element) {
492
514
  if (this._indicatorsElement) {
493
- const activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
515
+ const activeIndicator = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
494
516
  activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
495
517
  activeIndicator.removeAttribute('aria-current');
496
- const indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
518
+ const indicators = SelectorEngine__default.default.find(SELECTOR_INDICATOR, this._indicatorsElement);
497
519
 
498
520
  for (let i = 0; i < indicators.length; i++) {
499
521
  if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
@@ -506,7 +528,7 @@
506
528
  }
507
529
 
508
530
  _updateInterval() {
509
- const element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
531
+ const element = this._activeElement || SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
510
532
 
511
533
  if (!element) {
512
534
  return;
@@ -525,7 +547,7 @@
525
547
  _slide(directionOrOrder, element) {
526
548
  const order = this._directionToOrder(directionOrOrder);
527
549
 
528
- const activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
550
+ const activeElement = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
529
551
 
530
552
  const activeElementIndex = this._getItemIndex(activeElement);
531
553
 
@@ -571,7 +593,7 @@
571
593
  this._activeElement = nextElement;
572
594
 
573
595
  const triggerSlidEvent = () => {
574
- EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
596
+ EventHandler__default.default.trigger(this._element, EVENT_SLID, {
575
597
  relatedTarget: nextElement,
576
598
  direction: eventDirectionName,
577
599
  from: activeElementIndex,
@@ -672,8 +694,8 @@
672
694
  return;
673
695
  }
674
696
 
675
- const config = { ...Manipulator__default['default'].getDataAttributes(target),
676
- ...Manipulator__default['default'].getDataAttributes(this)
697
+ const config = { ...Manipulator__default.default.getDataAttributes(target),
698
+ ...Manipulator__default.default.getDataAttributes(this)
677
699
  };
678
700
  const slideIndex = this.getAttribute('data-bs-slide-to');
679
701
 
@@ -698,9 +720,9 @@
698
720
  */
699
721
 
700
722
 
701
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
702
- EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
703
- const carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
723
+ EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
724
+ EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
725
+ const carousels = SelectorEngine__default.default.find(SELECTOR_DATA_RIDE);
704
726
 
705
727
  for (let i = 0, len = carousels.length; i < len; i++) {
706
728
  Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));
@@ -717,4 +739,4 @@
717
739
 
718
740
  return Carousel;
719
741
 
720
- })));
742
+ }));