bootstrap 5.1.1 → 5.1.2

Sign up to get free protection for your applications and to get access to all the features.
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