bootstrap 4.3.1 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +1 -1
  5. data/assets/javascripts/bootstrap/alert.js +26 -35
  6. data/assets/javascripts/bootstrap/button.js +93 -52
  7. data/assets/javascripts/bootstrap/carousel.js +122 -120
  8. data/assets/javascripts/bootstrap/collapse.js +75 -71
  9. data/assets/javascripts/bootstrap/dropdown.js +143 -140
  10. data/assets/javascripts/bootstrap/modal.js +165 -134
  11. data/assets/javascripts/bootstrap/popover.js +47 -39
  12. data/assets/javascripts/bootstrap/scrollspy.js +71 -71
  13. data/assets/javascripts/bootstrap/tab.js +51 -60
  14. data/assets/javascripts/bootstrap/toast.js +84 -72
  15. data/assets/javascripts/bootstrap/tooltip.js +141 -131
  16. data/assets/javascripts/bootstrap/util.js +28 -7
  17. data/assets/javascripts/bootstrap-sprockets.js +6 -6
  18. data/assets/javascripts/bootstrap.js +811 -826
  19. data/assets/javascripts/bootstrap.min.js +3 -3
  20. data/assets/stylesheets/_bootstrap-grid.scss +3 -3
  21. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  22. data/assets/stylesheets/_bootstrap.scss +3 -3
  23. data/assets/stylesheets/bootstrap/_badge.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
  25. data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
  27. data/assets/stylesheets/bootstrap/_card.scss +28 -35
  28. data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
  29. data/assets/stylesheets/bootstrap/_close.scss +2 -3
  30. data/assets/stylesheets/bootstrap/_code.scss +1 -1
  31. data/assets/stylesheets/bootstrap/_custom-forms.scss +24 -9
  32. data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
  33. data/assets/stylesheets/bootstrap/_forms.scss +26 -9
  34. data/assets/stylesheets/bootstrap/_functions.scss +60 -5
  35. data/assets/stylesheets/bootstrap/_grid.scss +33 -8
  36. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_input-group.scss +1 -2
  38. data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
  39. data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
  40. data/assets/stylesheets/bootstrap/_modal.scss +28 -16
  41. data/assets/stylesheets/bootstrap/_nav.scss +4 -3
  42. data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
  43. data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
  44. data/assets/stylesheets/bootstrap/_popover.scss +8 -9
  45. data/assets/stylesheets/bootstrap/_print.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_progress.scss +6 -2
  47. data/assets/stylesheets/bootstrap/_reboot.scss +24 -27
  48. data/assets/stylesheets/bootstrap/_root.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
  50. data/assets/stylesheets/bootstrap/_tables.scss +3 -3
  51. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  52. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  53. data/assets/stylesheets/bootstrap/_variables.scss +46 -22
  54. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  55. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
  56. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
  58. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  59. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
  60. data/assets/stylesheets/bootstrap/mixins/_forms.scss +34 -49
  61. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
  62. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
  63. data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
  64. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  65. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  66. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  67. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
  68. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  69. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
  70. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
  71. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
  72. data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
  73. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  74. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  75. data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
  76. data/bootstrap.gemspec +1 -1
  77. data/lib/bootstrap/version.rb +2 -2
  78. data/tasks/updater/network.rb +2 -2
  79. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  80. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  81. data/test/gemfiles/rails_6_0.gemfile +7 -0
  82. data/test/support/dummy_rails_integration.rb +3 -1
  83. data/test/test_helper.rb +18 -13
  84. metadata +11 -5
@@ -1,17 +1,17 @@
1
1
  /*!
2
- * Bootstrap tooltip.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap tooltip.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
9
9
  (global = global || self, global.Tooltip = factory(global.jQuery, global.Popper, global.Util));
10
- }(this, function ($, Popper, Util) { 'use strict';
10
+ }(this, (function ($, Popper, Util) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
14
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper;
14
+ Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
15
15
 
16
16
  function _defineProperties(target, props) {
17
17
  for (var i = 0; i < props.length; i++) {
@@ -44,20 +44,35 @@
44
44
  return obj;
45
45
  }
46
46
 
47
- function _objectSpread(target) {
47
+ function ownKeys(object, enumerableOnly) {
48
+ var keys = Object.keys(object);
49
+
50
+ if (Object.getOwnPropertySymbols) {
51
+ var symbols = Object.getOwnPropertySymbols(object);
52
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
53
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
54
+ });
55
+ keys.push.apply(keys, symbols);
56
+ }
57
+
58
+ return keys;
59
+ }
60
+
61
+ function _objectSpread2(target) {
48
62
  for (var i = 1; i < arguments.length; i++) {
49
63
  var source = arguments[i] != null ? arguments[i] : {};
50
- var ownKeys = Object.keys(source);
51
64
 
52
- if (typeof Object.getOwnPropertySymbols === 'function') {
53
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
54
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
55
- }));
65
+ if (i % 2) {
66
+ ownKeys(Object(source), true).forEach(function (key) {
67
+ _defineProperty(target, key, source[key]);
68
+ });
69
+ } else if (Object.getOwnPropertyDescriptors) {
70
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
71
+ } else {
72
+ ownKeys(Object(source)).forEach(function (key) {
73
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
74
+ });
56
75
  }
57
-
58
- ownKeys.forEach(function (key) {
59
- _defineProperty(target, key, source[key]);
60
- });
61
76
  }
62
77
 
63
78
  return target;
@@ -65,7 +80,7 @@
65
80
 
66
81
  /**
67
82
  * --------------------------------------------------------------------------
68
- * Bootstrap (v4.3.1): tools/sanitizer.js
83
+ * Bootstrap (v4.5.0): tools/sanitizer.js
69
84
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
70
85
  * --------------------------------------------------------------------------
71
86
  */
@@ -90,7 +105,7 @@
90
105
  h5: [],
91
106
  h6: [],
92
107
  i: [],
93
- img: ['src', 'alt', 'title', 'width', 'height'],
108
+ img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
94
109
  li: [],
95
110
  ol: [],
96
111
  p: [],
@@ -103,21 +118,21 @@
103
118
  strong: [],
104
119
  u: [],
105
120
  ul: []
106
- /**
107
- * A pattern that recognizes a commonly useful subset of URLs that are safe.
108
- *
109
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
110
- */
111
-
112
121
  };
113
- var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
122
+ /**
123
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
124
+ *
125
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
126
+ */
127
+
128
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
114
129
  /**
115
130
  * A pattern that matches safe data URLs. Only matches image, video and audio types.
116
131
  *
117
132
  * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
118
133
  */
119
134
 
120
- var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
135
+ var 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;
121
136
 
122
137
  function allowedAttribute(attr, allowedAttributeList) {
123
138
  var attrName = attr.nodeName.toLowerCase();
@@ -134,7 +149,7 @@
134
149
  return attrRegex instanceof RegExp;
135
150
  }); // Check if a regular expression validates the attribute.
136
151
 
137
- for (var i = 0, l = regExp.length; i < l; i++) {
152
+ for (var i = 0, len = regExp.length; i < len; i++) {
138
153
  if (attrName.match(regExp[i])) {
139
154
  return true;
140
155
  }
@@ -176,7 +191,7 @@
176
191
  };
177
192
 
178
193
  for (var i = 0, len = elements.length; i < len; i++) {
179
- var _ret = _loop(i, len);
194
+ var _ret = _loop(i);
180
195
 
181
196
  if (_ret === "continue") continue;
182
197
  }
@@ -191,7 +206,7 @@
191
206
  */
192
207
 
193
208
  var NAME = 'tooltip';
194
- var VERSION = '4.3.1';
209
+ var VERSION = '4.5.0';
195
210
  var DATA_KEY = 'bs.tooltip';
196
211
  var EVENT_KEY = "." + DATA_KEY;
197
212
  var JQUERY_NO_CONFLICT = $.fn[NAME];
@@ -213,7 +228,8 @@
213
228
  boundary: '(string|element)',
214
229
  sanitize: 'boolean',
215
230
  sanitizeFn: '(null|function)',
216
- whiteList: 'object'
231
+ whiteList: 'object',
232
+ popperConfig: '(null|object)'
217
233
  };
218
234
  var AttachmentMap = {
219
235
  AUTO: 'auto',
@@ -237,12 +253,11 @@
237
253
  boundary: 'scrollParent',
238
254
  sanitize: true,
239
255
  sanitizeFn: null,
240
- whiteList: DefaultWhitelist
241
- };
242
- var HoverState = {
243
- SHOW: 'show',
244
- OUT: 'out'
256
+ whiteList: DefaultWhitelist,
257
+ popperConfig: null
245
258
  };
259
+ var HOVER_STATE_SHOW = 'show';
260
+ var HOVER_STATE_OUT = 'out';
246
261
  var Event = {
247
262
  HIDE: "hide" + EVENT_KEY,
248
263
  HIDDEN: "hidden" + EVENT_KEY,
@@ -255,36 +270,22 @@
255
270
  MOUSEENTER: "mouseenter" + EVENT_KEY,
256
271
  MOUSELEAVE: "mouseleave" + EVENT_KEY
257
272
  };
258
- var ClassName = {
259
- FADE: 'fade',
260
- SHOW: 'show'
261
- };
262
- var Selector = {
263
- TOOLTIP: '.tooltip',
264
- TOOLTIP_INNER: '.tooltip-inner',
265
- ARROW: '.arrow'
266
- };
267
- var Trigger = {
268
- HOVER: 'hover',
269
- FOCUS: 'focus',
270
- CLICK: 'click',
271
- MANUAL: 'manual'
272
- /**
273
- * ------------------------------------------------------------------------
274
- * Class Definition
275
- * ------------------------------------------------------------------------
276
- */
277
-
278
- };
273
+ var CLASS_NAME_FADE = 'fade';
274
+ var CLASS_NAME_SHOW = 'show';
275
+ var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
276
+ var SELECTOR_ARROW = '.arrow';
277
+ var TRIGGER_HOVER = 'hover';
278
+ var TRIGGER_FOCUS = 'focus';
279
+ var TRIGGER_CLICK = 'click';
280
+ var TRIGGER_MANUAL = 'manual';
281
+ /**
282
+ * ------------------------------------------------------------------------
283
+ * Class Definition
284
+ * ------------------------------------------------------------------------
285
+ */
279
286
 
280
- var Tooltip =
281
- /*#__PURE__*/
282
- function () {
287
+ var Tooltip = /*#__PURE__*/function () {
283
288
  function Tooltip(element, config) {
284
- /**
285
- * Check for Popper dependency
286
- * Popper - https://popper.js.org
287
- */
288
289
  if (typeof Popper === 'undefined') {
289
290
  throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
290
291
  } // private
@@ -341,7 +342,7 @@
341
342
  context._leave(null, context);
342
343
  }
343
344
  } else {
344
- if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
345
+ if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {
345
346
  this._leave(null, this);
346
347
 
347
348
  return;
@@ -355,7 +356,7 @@
355
356
  clearTimeout(this._timeout);
356
357
  $.removeData(this.element, this.constructor.DATA_KEY);
357
358
  $(this.element).off(this.constructor.EVENT_KEY);
358
- $(this.element).closest('.modal').off('hide.bs.modal');
359
+ $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);
359
360
 
360
361
  if (this.tip) {
361
362
  $(this.tip).remove();
@@ -366,7 +367,7 @@
366
367
  this._hoverState = null;
367
368
  this._activeTrigger = null;
368
369
 
369
- if (this._popper !== null) {
370
+ if (this._popper) {
370
371
  this._popper.destroy();
371
372
  }
372
373
 
@@ -401,7 +402,7 @@
401
402
  this.setContent();
402
403
 
403
404
  if (this.config.animation) {
404
- $(tip).addClass(ClassName.FADE);
405
+ $(tip).addClass(CLASS_NAME_FADE);
405
406
  }
406
407
 
407
408
  var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
@@ -419,30 +420,8 @@
419
420
  }
420
421
 
421
422
  $(this.element).trigger(this.constructor.Event.INSERTED);
422
- this._popper = new Popper(this.element, tip, {
423
- placement: attachment,
424
- modifiers: {
425
- offset: this._getOffset(),
426
- flip: {
427
- behavior: this.config.fallbackPlacement
428
- },
429
- arrow: {
430
- element: Selector.ARROW
431
- },
432
- preventOverflow: {
433
- boundariesElement: this.config.boundary
434
- }
435
- },
436
- onCreate: function onCreate(data) {
437
- if (data.originalPlacement !== data.placement) {
438
- _this._handlePopperPlacementChange(data);
439
- }
440
- },
441
- onUpdate: function onUpdate(data) {
442
- return _this._handlePopperPlacementChange(data);
443
- }
444
- });
445
- $(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
423
+ this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
424
+ $(tip).addClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra
446
425
  // empty mouseover listeners to the body's immediate children;
447
426
  // only needed because of broken event delegation on iOS
448
427
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@@ -460,12 +439,12 @@
460
439
  _this._hoverState = null;
461
440
  $(_this.element).trigger(_this.constructor.Event.SHOWN);
462
441
 
463
- if (prevHoverState === HoverState.OUT) {
442
+ if (prevHoverState === HOVER_STATE_OUT) {
464
443
  _this._leave(null, _this);
465
444
  }
466
445
  };
467
446
 
468
- if ($(this.tip).hasClass(ClassName.FADE)) {
447
+ if ($(this.tip).hasClass(CLASS_NAME_FADE)) {
469
448
  var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
470
449
  $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
471
450
  } else {
@@ -481,7 +460,7 @@
481
460
  var hideEvent = $.Event(this.constructor.Event.HIDE);
482
461
 
483
462
  var complete = function complete() {
484
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
463
+ if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
485
464
  tip.parentNode.removeChild(tip);
486
465
  }
487
466
 
@@ -506,18 +485,18 @@
506
485
  return;
507
486
  }
508
487
 
509
- $(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
488
+ $(tip).removeClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra
510
489
  // empty mouseover listeners we added for iOS support
511
490
 
512
491
  if ('ontouchstart' in document.documentElement) {
513
492
  $(document.body).children().off('mouseover', null, $.noop);
514
493
  }
515
494
 
516
- this._activeTrigger[Trigger.CLICK] = false;
517
- this._activeTrigger[Trigger.FOCUS] = false;
518
- this._activeTrigger[Trigger.HOVER] = false;
495
+ this._activeTrigger[TRIGGER_CLICK] = false;
496
+ this._activeTrigger[TRIGGER_FOCUS] = false;
497
+ this._activeTrigger[TRIGGER_HOVER] = false;
519
498
 
520
- if ($(this.tip).hasClass(ClassName.FADE)) {
499
+ if ($(this.tip).hasClass(CLASS_NAME_FADE)) {
521
500
  var transitionDuration = Util.getTransitionDurationFromElement(tip);
522
501
  $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
523
502
  } else {
@@ -549,8 +528,8 @@
549
528
 
550
529
  _proto.setContent = function setContent() {
551
530
  var tip = this.getTipElement();
552
- this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle());
553
- $(tip).removeClass(ClassName.FADE + " " + ClassName.SHOW);
531
+ this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());
532
+ $(tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
554
533
  };
555
534
 
556
535
  _proto.setElementContent = function setElementContent($element, content) {
@@ -589,14 +568,43 @@
589
568
  } // Private
590
569
  ;
591
570
 
592
- _proto._getOffset = function _getOffset() {
571
+ _proto._getPopperConfig = function _getPopperConfig(attachment) {
593
572
  var _this3 = this;
594
573
 
574
+ var defaultBsConfig = {
575
+ placement: attachment,
576
+ modifiers: {
577
+ offset: this._getOffset(),
578
+ flip: {
579
+ behavior: this.config.fallbackPlacement
580
+ },
581
+ arrow: {
582
+ element: SELECTOR_ARROW
583
+ },
584
+ preventOverflow: {
585
+ boundariesElement: this.config.boundary
586
+ }
587
+ },
588
+ onCreate: function onCreate(data) {
589
+ if (data.originalPlacement !== data.placement) {
590
+ _this3._handlePopperPlacementChange(data);
591
+ }
592
+ },
593
+ onUpdate: function onUpdate(data) {
594
+ return _this3._handlePopperPlacementChange(data);
595
+ }
596
+ };
597
+ return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
598
+ };
599
+
600
+ _proto._getOffset = function _getOffset() {
601
+ var _this4 = this;
602
+
595
603
  var offset = {};
596
604
 
597
605
  if (typeof this.config.offset === 'function') {
598
606
  offset.fn = function (data) {
599
- data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
607
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
600
608
  return data;
601
609
  };
602
610
  } else {
@@ -623,32 +631,35 @@
623
631
  };
624
632
 
625
633
  _proto._setListeners = function _setListeners() {
626
- var _this4 = this;
634
+ var _this5 = this;
627
635
 
628
636
  var triggers = this.config.trigger.split(' ');
629
637
  triggers.forEach(function (trigger) {
630
638
  if (trigger === 'click') {
631
- $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
632
- return _this4.toggle(event);
639
+ $(_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
640
+ return _this5.toggle(event);
633
641
  });
634
- } else if (trigger !== Trigger.MANUAL) {
635
- var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
636
- var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
637
- $(_this4.element).on(eventIn, _this4.config.selector, function (event) {
638
- return _this4._enter(event);
639
- }).on(eventOut, _this4.config.selector, function (event) {
640
- return _this4._leave(event);
642
+ } else if (trigger !== TRIGGER_MANUAL) {
643
+ var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
644
+ var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
645
+ $(_this5.element).on(eventIn, _this5.config.selector, function (event) {
646
+ return _this5._enter(event);
647
+ }).on(eventOut, _this5.config.selector, function (event) {
648
+ return _this5._leave(event);
641
649
  });
642
650
  }
643
651
  });
644
- $(this.element).closest('.modal').on('hide.bs.modal', function () {
645
- if (_this4.element) {
646
- _this4.hide();
652
+
653
+ this._hideModalHandler = function () {
654
+ if (_this5.element) {
655
+ _this5.hide();
647
656
  }
648
- });
657
+ };
658
+
659
+ $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);
649
660
 
650
661
  if (this.config.selector) {
651
- this.config = _objectSpread({}, this.config, {
662
+ this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
652
663
  trigger: 'manual',
653
664
  selector: ''
654
665
  });
@@ -676,16 +687,16 @@
676
687
  }
677
688
 
678
689
  if (event) {
679
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
690
+ context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
680
691
  }
681
692
 
682
- if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
683
- context._hoverState = HoverState.SHOW;
693
+ if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {
694
+ context._hoverState = HOVER_STATE_SHOW;
684
695
  return;
685
696
  }
686
697
 
687
698
  clearTimeout(context._timeout);
688
- context._hoverState = HoverState.SHOW;
699
+ context._hoverState = HOVER_STATE_SHOW;
689
700
 
690
701
  if (!context.config.delay || !context.config.delay.show) {
691
702
  context.show();
@@ -693,7 +704,7 @@
693
704
  }
694
705
 
695
706
  context._timeout = setTimeout(function () {
696
- if (context._hoverState === HoverState.SHOW) {
707
+ if (context._hoverState === HOVER_STATE_SHOW) {
697
708
  context.show();
698
709
  }
699
710
  }, context.config.delay.show);
@@ -709,7 +720,7 @@
709
720
  }
710
721
 
711
722
  if (event) {
712
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
723
+ context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
713
724
  }
714
725
 
715
726
  if (context._isWithActiveTrigger()) {
@@ -717,7 +728,7 @@
717
728
  }
718
729
 
719
730
  clearTimeout(context._timeout);
720
- context._hoverState = HoverState.OUT;
731
+ context._hoverState = HOVER_STATE_OUT;
721
732
 
722
733
  if (!context.config.delay || !context.config.delay.hide) {
723
734
  context.hide();
@@ -725,7 +736,7 @@
725
736
  }
726
737
 
727
738
  context._timeout = setTimeout(function () {
728
- if (context._hoverState === HoverState.OUT) {
739
+ if (context._hoverState === HOVER_STATE_OUT) {
729
740
  context.hide();
730
741
  }
731
742
  }, context.config.delay.hide);
@@ -748,7 +759,7 @@
748
759
  delete dataAttributes[dataAttr];
749
760
  }
750
761
  });
751
- config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
762
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
752
763
 
753
764
  if (typeof config.delay === 'number') {
754
765
  config.delay = {
@@ -798,8 +809,7 @@
798
809
  };
799
810
 
800
811
  _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
801
- var popperInstance = popperData.instance;
802
- this.tip = popperInstance.popper;
812
+ this.tip = popperData.instance.popper;
803
813
 
804
814
  this._cleanTipClass();
805
815
 
@@ -814,7 +824,7 @@
814
824
  return;
815
825
  }
816
826
 
817
- $(tip).removeClass(ClassName.FADE);
827
+ $(tip).removeClass(CLASS_NAME_FADE);
818
828
  this.config.animation = false;
819
829
  this.hide();
820
830
  this.show();
@@ -903,4 +913,4 @@
903
913
 
904
914
  return Tooltip;
905
915
 
906
- }));
916
+ })));
@@ -1,19 +1,19 @@
1
1
  /*!
2
- * Bootstrap util.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap util.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
9
  (global = global || self, global.Util = factory(global.jQuery));
10
- }(this, function ($) { 'use strict';
10
+ }(this, (function ($) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
13
 
14
14
  /**
15
15
  * --------------------------------------------------------------------------
16
- * Bootstrap (v4.3.1): util.js
16
+ * Bootstrap (v4.5.0): util.js
17
17
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
18
  * --------------------------------------------------------------------------
19
19
  */
@@ -28,6 +28,10 @@
28
28
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
29
29
 
30
30
  function toType(obj) {
31
+ if (obj === null || typeof obj === 'undefined') {
32
+ return "" + obj;
33
+ }
34
+
31
35
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
32
36
  }
33
37
 
@@ -40,7 +44,7 @@
40
44
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
41
45
  }
42
46
 
43
- return undefined; // eslint-disable-line no-undefined
47
+ return undefined;
44
48
  }
45
49
  };
46
50
  }
@@ -162,10 +166,27 @@
162
166
  }
163
167
 
164
168
  return Util.findShadowRoot(element.parentNode);
169
+ },
170
+ jQueryDetection: function jQueryDetection() {
171
+ if (typeof $ === 'undefined') {
172
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
173
+ }
174
+
175
+ var version = $.fn.jquery.split(' ')[0].split('.');
176
+ var minMajor = 1;
177
+ var ltMajor = 2;
178
+ var minMinor = 9;
179
+ var minPatch = 1;
180
+ var maxMajor = 4;
181
+
182
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
183
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
184
+ }
165
185
  }
166
186
  };
187
+ Util.jQueryDetection();
167
188
  setTransitionEndSupport();
168
189
 
169
190
  return Util;
170
191
 
171
- }));
192
+ })));
@@ -1,12 +1,12 @@
1
+ //= require ./bootstrap/button
1
2
  //= require ./bootstrap/util
3
+ //= require ./bootstrap/tooltip
4
+ //= require ./bootstrap/popover
5
+ //= require ./bootstrap/tab
2
6
  //= require ./bootstrap/alert
3
- //= require ./bootstrap/button
4
7
  //= require ./bootstrap/carousel
5
- //= require ./bootstrap/collapse
6
8
  //= require ./bootstrap/dropdown
7
9
  //= require ./bootstrap/modal
8
- //= require ./bootstrap/tooltip
9
- //= require ./bootstrap/popover
10
- //= require ./bootstrap/scrollspy
11
- //= require ./bootstrap/tab
12
10
  //= require ./bootstrap/toast
11
+ //= require ./bootstrap/collapse
12
+ //= require ./bootstrap/scrollspy