bootstrap 5.1.1 → 5.1.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 (34) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +13 -13
  4. data/assets/javascripts/bootstrap/base-component.js +13 -13
  5. data/assets/javascripts/bootstrap/button.js +10 -10
  6. data/assets/javascripts/bootstrap/carousel.js +39 -39
  7. data/assets/javascripts/bootstrap/collapse.js +28 -27
  8. data/assets/javascripts/bootstrap/dom/data.js +5 -5
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +5 -5
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +4 -4
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +5 -5
  12. data/assets/javascripts/bootstrap/dropdown.js +37 -39
  13. data/assets/javascripts/bootstrap/modal.js +51 -51
  14. data/assets/javascripts/bootstrap/offcanvas.js +40 -40
  15. data/assets/javascripts/bootstrap/popover.js +10 -10
  16. data/assets/javascripts/bootstrap/scrollspy.js +27 -27
  17. data/assets/javascripts/bootstrap/tab.js +19 -19
  18. data/assets/javascripts/bootstrap/toast.js +21 -21
  19. data/assets/javascripts/bootstrap/tooltip.js +55 -58
  20. data/assets/javascripts/bootstrap-sprockets.js +7 -7
  21. data/assets/javascripts/bootstrap.js +64 -66
  22. data/assets/javascripts/bootstrap.min.js +2 -2
  23. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  25. data/assets/stylesheets/_bootstrap.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +1 -0
  27. data/assets/stylesheets/bootstrap/_tables.scss +8 -4
  28. data/assets/stylesheets/bootstrap/_variables.scss +6 -4
  29. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  30. data/assets/stylesheets/bootstrap/forms/_form-select.scss +2 -0
  31. data/assets/stylesheets/bootstrap/mixins/_grid.scss +4 -3
  32. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +1 -1
  33. data/lib/bootstrap/version.rb +2 -2
  34. metadata +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap tooltip.js v5.1.1 (https://getbootstrap.com/)
2
+ * Bootstrap tooltip.js v5.1.2 (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
  */
@@ -7,40 +7,38 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
- }(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
10
+ })(this, (function (Popper, Data, 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
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule) return e;
16
- var n = Object.create(null);
16
+ const n = Object.create(null);
17
17
  if (e) {
18
- Object.keys(e).forEach(function (k) {
18
+ for (const k in e) {
19
19
  if (k !== 'default') {
20
- var d = Object.getOwnPropertyDescriptor(e, k);
20
+ const d = Object.getOwnPropertyDescriptor(e, k);
21
21
  Object.defineProperty(n, k, d.get ? d : {
22
22
  enumerable: true,
23
- get: function () {
24
- return e[k];
25
- }
23
+ get: () => e[k]
26
24
  });
27
25
  }
28
- });
26
+ }
29
27
  }
30
- n['default'] = e;
28
+ n.default = e;
31
29
  return Object.freeze(n);
32
30
  }
33
31
 
34
- var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
35
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
36
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
37
- var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
38
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
39
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
32
+ const Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
33
+ const Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
34
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
35
+ const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
36
+ const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
37
+ const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
40
38
 
41
39
  /**
42
40
  * --------------------------------------------------------------------------
43
- * Bootstrap (v5.1.1): util/index.js
41
+ * Bootstrap (v5.1.2): util/index.js
44
42
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
45
43
  * --------------------------------------------------------------------------
46
44
  */
@@ -182,42 +180,42 @@
182
180
 
183
181
  /**
184
182
  * --------------------------------------------------------------------------
185
- * Bootstrap (v5.1.1): util/sanitizer.js
183
+ * Bootstrap (v5.1.2): util/sanitizer.js
186
184
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
187
185
  * --------------------------------------------------------------------------
188
186
  */
189
- const uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
187
+ const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
190
188
  const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
191
189
  /**
192
190
  * A pattern that recognizes a commonly useful subset of URLs that are safe.
193
191
  *
194
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
192
+ * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
195
193
  */
196
194
 
197
- const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i;
195
+ const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
198
196
  /**
199
197
  * A pattern that matches safe data URLs. Only matches image, video and audio types.
200
198
  *
201
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
199
+ * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
202
200
  */
203
201
 
204
202
  const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
205
203
 
206
- const allowedAttribute = (attr, allowedAttributeList) => {
207
- const attrName = attr.nodeName.toLowerCase();
204
+ const allowedAttribute = (attribute, allowedAttributeList) => {
205
+ const attributeName = attribute.nodeName.toLowerCase();
208
206
 
209
- if (allowedAttributeList.includes(attrName)) {
210
- if (uriAttrs.has(attrName)) {
211
- return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));
207
+ if (allowedAttributeList.includes(attributeName)) {
208
+ if (uriAttributes.has(attributeName)) {
209
+ return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
212
210
  }
213
211
 
214
212
  return true;
215
213
  }
216
214
 
217
- const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute.
215
+ const regExp = allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp); // Check if a regular expression validates the attribute.
218
216
 
219
217
  for (let i = 0, len = regExp.length; i < len; i++) {
220
- if (regExp[i].test(attrName)) {
218
+ if (regExp[i].test(attributeName)) {
221
219
  return true;
222
220
  }
223
221
  }
@@ -269,23 +267,22 @@
269
267
 
270
268
  const domParser = new window.DOMParser();
271
269
  const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
272
- const allowlistKeys = Object.keys(allowList);
273
270
  const elements = [].concat(...createdDocument.body.querySelectorAll('*'));
274
271
 
275
272
  for (let i = 0, len = elements.length; i < len; i++) {
276
- const el = elements[i];
277
- const elName = el.nodeName.toLowerCase();
273
+ const element = elements[i];
274
+ const elementName = element.nodeName.toLowerCase();
278
275
 
279
- if (!allowlistKeys.includes(elName)) {
280
- el.remove();
276
+ if (!Object.keys(allowList).includes(elementName)) {
277
+ element.remove();
281
278
  continue;
282
279
  }
283
280
 
284
- const attributeList = [].concat(...el.attributes);
285
- const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);
286
- attributeList.forEach(attr => {
287
- if (!allowedAttribute(attr, allowedAttributes)) {
288
- el.removeAttribute(attr.nodeName);
281
+ const attributeList = [].concat(...element.attributes);
282
+ const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);
283
+ attributeList.forEach(attribute => {
284
+ if (!allowedAttribute(attribute, allowedAttributes)) {
285
+ element.removeAttribute(attribute.nodeName);
289
286
  }
290
287
  });
291
288
  }
@@ -295,7 +292,7 @@
295
292
 
296
293
  /**
297
294
  * --------------------------------------------------------------------------
298
- * Bootstrap (v5.1.1): tooltip.js
295
+ * Bootstrap (v5.1.2): tooltip.js
299
296
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
300
297
  * --------------------------------------------------------------------------
301
298
  */
@@ -385,7 +382,7 @@
385
382
  * ------------------------------------------------------------------------
386
383
  */
387
384
 
388
- class Tooltip extends BaseComponent__default['default'] {
385
+ class Tooltip extends BaseComponent__default.default {
389
386
  constructor(element, config) {
390
387
  if (typeof Popper__namespace === 'undefined') {
391
388
  throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
@@ -463,7 +460,7 @@
463
460
 
464
461
  dispose() {
465
462
  clearTimeout(this._timeout);
466
- EventHandler__default['default'].off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
463
+ EventHandler__default.default.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
467
464
 
468
465
  if (this.tip) {
469
466
  this.tip.remove();
@@ -483,7 +480,7 @@
483
480
  return;
484
481
  }
485
482
 
486
- const showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);
483
+ const showEvent = EventHandler__default.default.trigger(this._element, this.constructor.Event.SHOW);
487
484
  const shadowRoot = findShadowRoot(this._element);
488
485
  const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);
489
486
 
@@ -519,11 +516,11 @@
519
516
  const {
520
517
  container
521
518
  } = this._config;
522
- Data__default['default'].set(tip, this.constructor.DATA_KEY, this);
519
+ Data__default.default.set(tip, this.constructor.DATA_KEY, this);
523
520
 
524
521
  if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
525
522
  container.append(tip);
526
- EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);
523
+ EventHandler__default.default.trigger(this._element, this.constructor.Event.INSERTED);
527
524
  }
528
525
 
529
526
  if (this._popper) {
@@ -546,14 +543,14 @@
546
543
 
547
544
  if ('ontouchstart' in document.documentElement) {
548
545
  [].concat(...document.body.children).forEach(element => {
549
- EventHandler__default['default'].on(element, 'mouseover', noop);
546
+ EventHandler__default.default.on(element, 'mouseover', noop);
550
547
  });
551
548
  }
552
549
 
553
550
  const complete = () => {
554
551
  const prevHoverState = this._hoverState;
555
552
  this._hoverState = null;
556
- EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOWN);
553
+ EventHandler__default.default.trigger(this._element, this.constructor.Event.SHOWN);
557
554
 
558
555
  if (prevHoverState === HOVER_STATE_OUT) {
559
556
  this._leave(null, this);
@@ -585,12 +582,12 @@
585
582
 
586
583
  this._element.removeAttribute('aria-describedby');
587
584
 
588
- EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDDEN);
585
+ EventHandler__default.default.trigger(this._element, this.constructor.Event.HIDDEN);
589
586
 
590
587
  this._disposePopper();
591
588
  };
592
589
 
593
- const hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);
590
+ const hideEvent = EventHandler__default.default.trigger(this._element, this.constructor.Event.HIDE);
594
591
 
595
592
  if (hideEvent.defaultPrevented) {
596
593
  return;
@@ -600,7 +597,7 @@
600
597
  // empty mouseover listeners we added for iOS support
601
598
 
602
599
  if ('ontouchstart' in document.documentElement) {
603
- [].concat(...document.body.children).forEach(element => EventHandler__default['default'].off(element, 'mouseover', noop));
600
+ [].concat(...document.body.children).forEach(element => EventHandler__default.default.off(element, 'mouseover', noop));
604
601
  }
605
602
 
606
603
  this._activeTrigger[TRIGGER_CLICK] = false;
@@ -643,7 +640,7 @@
643
640
  }
644
641
 
645
642
  _sanitizeAndSetContent(template, content, selector) {
646
- const templateElement = SelectorEngine__default['default'].findOne(selector, template);
643
+ const templateElement = SelectorEngine__default.default.findOne(selector, template);
647
644
 
648
645
  if (!content && templateElement) {
649
646
  templateElement.remove();
@@ -781,12 +778,12 @@
781
778
 
782
779
  triggers.forEach(trigger => {
783
780
  if (trigger === 'click') {
784
- EventHandler__default['default'].on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event));
781
+ EventHandler__default.default.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event));
785
782
  } else if (trigger !== TRIGGER_MANUAL) {
786
783
  const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN;
787
784
  const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;
788
- EventHandler__default['default'].on(this._element, eventIn, this._config.selector, event => this._enter(event));
789
- EventHandler__default['default'].on(this._element, eventOut, this._config.selector, event => this._leave(event));
785
+ EventHandler__default.default.on(this._element, eventIn, this._config.selector, event => this._enter(event));
786
+ EventHandler__default.default.on(this._element, eventOut, this._config.selector, event => this._leave(event));
790
787
  }
791
788
  });
792
789
 
@@ -796,7 +793,7 @@
796
793
  }
797
794
  };
798
795
 
799
- EventHandler__default['default'].on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
796
+ EventHandler__default.default.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
800
797
 
801
798
  if (this._config.selector) {
802
799
  this._config = { ...this._config,
@@ -888,7 +885,7 @@
888
885
  }
889
886
 
890
887
  _getConfig(config) {
891
- const dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);
888
+ const dataAttributes = Manipulator__default.default.getDataAttributes(this._element);
892
889
  Object.keys(dataAttributes).forEach(dataAttr => {
893
890
  if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
894
891
  delete dataAttributes[dataAttr];
@@ -1005,4 +1002,4 @@
1005
1002
 
1006
1003
  return Tooltip;
1007
1004
 
1008
- })));
1005
+ }));
@@ -1,19 +1,19 @@
1
1
  //= require ./bootstrap-global-this-define
2
+ //= require ./bootstrap/dom/manipulator
2
3
  //= require ./bootstrap/dom/data
3
4
  //= require ./bootstrap/dom/event-handler
4
5
  //= require ./bootstrap/base-component
5
- //= require ./bootstrap/dom/manipulator
6
6
  //= require ./bootstrap/dom/selector-engine
7
- //= require ./bootstrap/scrollspy
8
- //= require ./bootstrap/carousel
9
- //= require ./bootstrap/alert
10
- //= require ./bootstrap/modal
7
+ //= require ./bootstrap/offcanvas
11
8
  //= require ./bootstrap/tooltip
12
9
  //= require ./bootstrap/popover
10
+ //= require ./bootstrap/modal
13
11
  //= require ./bootstrap/button
14
- //= require ./bootstrap/collapse
15
12
  //= require ./bootstrap/tab
16
- //= require ./bootstrap/offcanvas
17
13
  //= require ./bootstrap/dropdown
14
+ //= require ./bootstrap/alert
18
15
  //= require ./bootstrap/toast
16
+ //= require ./bootstrap/carousel
17
+ //= require ./bootstrap/scrollspy
18
+ //= require ./bootstrap/collapse
19
19
  //= require ./bootstrap-global-this-undefine