bootstrap 4.1.3 → 5.0.0

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 (156) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +17 -2
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +7 -4
  5. data/Rakefile +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +226 -166
  7. data/assets/javascripts/bootstrap/base-component.js +63 -0
  8. data/assets/javascripts/bootstrap/button.js +119 -165
  9. data/assets/javascripts/bootstrap/carousel.js +634 -445
  10. data/assets/javascripts/bootstrap/collapse.js +447 -327
  11. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +550 -425
  16. data/assets/javascripts/bootstrap/modal.js +695 -492
  17. data/assets/javascripts/bootstrap/offcanvas.js +671 -0
  18. data/assets/javascripts/bootstrap/popover.js +167 -217
  19. data/assets/javascripts/bootstrap/scrollspy.js +319 -302
  20. data/assets/javascripts/bootstrap/tab.js +303 -221
  21. data/assets/javascripts/bootstrap/toast.js +333 -0
  22. data/assets/javascripts/bootstrap/tooltip.js +896 -577
  23. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  24. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  25. data/assets/javascripts/bootstrap-sprockets.js +15 -7
  26. data/assets/javascripts/bootstrap.js +4262 -3163
  27. data/assets/javascripts/bootstrap.min.js +4 -4
  28. data/assets/stylesheets/_bootstrap-grid.scss +54 -21
  29. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  30. data/assets/stylesheets/_bootstrap.scss +21 -11
  31. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  32. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  33. data/assets/stylesheets/bootstrap/_badge.scss +3 -21
  34. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
  35. data/assets/stylesheets/bootstrap/_button-group.scss +29 -62
  36. data/assets/stylesheets/bootstrap/_buttons.scss +33 -65
  37. data/assets/stylesheets/bootstrap/_card.scss +55 -141
  38. data/assets/stylesheets/bootstrap/_carousel.scss +94 -101
  39. data/assets/stylesheets/bootstrap/_close.scss +33 -28
  40. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  41. data/assets/stylesheets/bootstrap/_dropdown.scss +114 -40
  42. data/assets/stylesheets/bootstrap/_forms.scss +9 -333
  43. data/assets/stylesheets/bootstrap/_functions.scss +148 -29
  44. data/assets/stylesheets/bootstrap/_grid.scss +4 -34
  45. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  46. data/assets/stylesheets/bootstrap/_images.scss +4 -4
  47. data/assets/stylesheets/bootstrap/_list-group.scss +86 -27
  48. data/assets/stylesheets/bootstrap/_mixins.scss +17 -16
  49. data/assets/stylesheets/bootstrap/_modal.scss +90 -42
  50. data/assets/stylesheets/bootstrap/_nav.scss +31 -10
  51. data/assets/stylesheets/bootstrap/_navbar.scss +68 -61
  52. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +13 -27
  54. data/assets/stylesheets/bootstrap/_popover.scss +63 -88
  55. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  56. data/assets/stylesheets/bootstrap/_reboot.scss +349 -211
  57. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  58. data/assets/stylesheets/bootstrap/_spinners.scss +69 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +79 -116
  60. data/assets/stylesheets/bootstrap/_toasts.scss +51 -0
  61. data/assets/stylesheets/bootstrap/_tooltip.scss +18 -18
  62. data/assets/stylesheets/bootstrap/_transitions.scss +2 -3
  63. data/assets/stylesheets/bootstrap/_type.scss +42 -63
  64. data/assets/stylesheets/bootstrap/_utilities.scss +594 -15
  65. data/assets/stylesheets/bootstrap/_variables.scss +952 -440
  66. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
  72. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  74. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  75. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  76. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  77. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  78. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  79. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  80. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  81. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  82. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  83. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +57 -14
  84. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +14 -1
  85. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +13 -9
  86. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +77 -53
  87. data/assets/stylesheets/bootstrap/mixins/_caret.scss +14 -16
  88. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  89. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  90. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  91. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  92. data/assets/stylesheets/bootstrap/mixins/_forms.scss +87 -97
  93. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  94. data/assets/stylesheets/bootstrap/mixins/_grid.scss +106 -33
  95. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  96. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  97. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +18 -9
  98. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  99. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  100. data/assets/stylesheets/bootstrap/mixins/_transition.scss +19 -6
  101. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  102. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  103. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  104. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +312 -0
  105. data/bootstrap.gemspec +7 -6
  106. data/lib/bootstrap/engine.rb +3 -0
  107. data/lib/bootstrap/version.rb +4 -2
  108. data/lib/bootstrap.rb +10 -7
  109. data/tasks/updater/js.rb +20 -5
  110. data/tasks/updater/network.rb +8 -2
  111. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  112. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  113. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  114. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  115. data/test/dummy_rails/app/views/pages/root.html +89 -0
  116. data/test/dummy_rails/config/application.rb +0 -3
  117. data/test/gemfiles/rails_6_0.gemfile +7 -0
  118. data/test/gemfiles/rails_6_1.gemfile +7 -0
  119. data/test/support/dummy_rails_integration.rb +3 -1
  120. data/test/test_helper.rb +18 -13
  121. metadata +64 -79
  122. data/assets/javascripts/bootstrap/util.js +0 -143
  123. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  124. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -433
  125. data/assets/stylesheets/bootstrap/_input-group.scss +0 -173
  126. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
  127. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  128. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  129. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  130. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
  131. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
  132. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
  133. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  134. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  135. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
  136. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
  137. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
  138. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
  139. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -13
  140. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
  141. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  142. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  143. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
  144. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
  145. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
  146. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  147. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
  148. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -37
  149. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  150. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  151. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
  152. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
  153. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -58
  154. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
  155. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
  156. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -1,264 +1,214 @@
1
+ /*!
2
+ * Bootstrap popover.js v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
1
6
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./tooltip.js')) :
3
- typeof define === 'function' && define.amd ? define(['jquery', './tooltip.js'], factory) :
4
- (global.Popover = factory(global.jQuery,global.Tooltip));
5
- }(this, (function ($,Tooltip) { 'use strict';
6
-
7
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
8
- Tooltip = Tooltip && Tooltip.hasOwnProperty('default') ? Tooltip['default'] : Tooltip;
9
-
10
- function _defineProperties(target, props) {
11
- for (var i = 0; i < props.length; i++) {
12
- var descriptor = props[i];
13
- descriptor.enumerable = descriptor.enumerable || false;
14
- descriptor.configurable = true;
15
- if ("value" in descriptor) descriptor.writable = true;
16
- Object.defineProperty(target, descriptor.key, descriptor);
17
- }
18
- }
19
-
20
- function _createClass(Constructor, protoProps, staticProps) {
21
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
22
- if (staticProps) _defineProperties(Constructor, staticProps);
23
- return Constructor;
24
- }
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
10
+ }(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
25
11
 
26
- function _defineProperty(obj, key, value) {
27
- if (key in obj) {
28
- Object.defineProperty(obj, key, {
29
- value: value,
30
- enumerable: true,
31
- configurable: true,
32
- writable: true
33
- });
34
- } else {
35
- obj[key] = value;
36
- }
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
37
13
 
38
- return obj;
39
- }
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
40
17
 
41
- function _objectSpread(target) {
42
- for (var i = 1; i < arguments.length; i++) {
43
- var source = arguments[i] != null ? arguments[i] : {};
44
- var ownKeys = Object.keys(source);
18
+ /**
19
+ * --------------------------------------------------------------------------
20
+ * Bootstrap (v5.0.0): util/index.js
21
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
+ * --------------------------------------------------------------------------
23
+ */
45
24
 
46
- if (typeof Object.getOwnPropertySymbols === 'function') {
47
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
48
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
49
- }));
50
- }
25
+ const getjQuery = () => {
26
+ const {
27
+ jQuery
28
+ } = window;
51
29
 
52
- ownKeys.forEach(function (key) {
53
- _defineProperty(target, key, source[key]);
54
- });
30
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
31
+ return jQuery;
55
32
  }
56
33
 
57
- return target;
58
- }
34
+ return null;
35
+ };
59
36
 
60
- function _inheritsLoose(subClass, superClass) {
61
- subClass.prototype = Object.create(superClass.prototype);
62
- subClass.prototype.constructor = subClass;
63
- subClass.__proto__ = superClass;
64
- }
37
+ const onDOMContentLoaded = callback => {
38
+ if (document.readyState === 'loading') {
39
+ document.addEventListener('DOMContentLoaded', callback);
40
+ } else {
41
+ callback();
42
+ }
43
+ };
44
+
45
+ const defineJQueryPlugin = (name, plugin) => {
46
+ onDOMContentLoaded(() => {
47
+ const $ = getjQuery();
48
+ /* istanbul ignore if */
49
+
50
+ if ($) {
51
+ const JQUERY_NO_CONFLICT = $.fn[name];
52
+ $.fn[name] = plugin.jQueryInterface;
53
+ $.fn[name].Constructor = plugin;
54
+
55
+ $.fn[name].noConflict = () => {
56
+ $.fn[name] = JQUERY_NO_CONFLICT;
57
+ return plugin.jQueryInterface;
58
+ };
59
+ }
60
+ });
61
+ };
65
62
 
66
63
  /**
67
64
  * --------------------------------------------------------------------------
68
- * Bootstrap (v4.1.3): popover.js
69
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
65
+ * Bootstrap (v5.0.0): popover.js
66
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
70
67
  * --------------------------------------------------------------------------
71
68
  */
69
+ /**
70
+ * ------------------------------------------------------------------------
71
+ * Constants
72
+ * ------------------------------------------------------------------------
73
+ */
72
74
 
73
- var Popover = function ($$$1) {
74
- /**
75
- * ------------------------------------------------------------------------
76
- * Constants
77
- * ------------------------------------------------------------------------
78
- */
79
- var NAME = 'popover';
80
- var VERSION = '4.1.3';
81
- var DATA_KEY = 'bs.popover';
82
- var EVENT_KEY = "." + DATA_KEY;
83
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
84
- var CLASS_PREFIX = 'bs-popover';
85
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
86
-
87
- var Default = _objectSpread({}, Tooltip.Default, {
88
- placement: 'right',
89
- trigger: 'click',
90
- content: '',
91
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
92
- });
75
+ const NAME = 'popover';
76
+ const DATA_KEY = 'bs.popover';
77
+ const EVENT_KEY = `.${DATA_KEY}`;
78
+ const CLASS_PREFIX = 'bs-popover';
79
+ const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
80
+ const Default = { ...Tooltip__default['default'].Default,
81
+ placement: 'right',
82
+ offset: [0, 8],
83
+ trigger: 'click',
84
+ content: '',
85
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
86
+ };
87
+ const DefaultType = { ...Tooltip__default['default'].DefaultType,
88
+ content: '(string|element|function)'
89
+ };
90
+ const Event = {
91
+ HIDE: `hide${EVENT_KEY}`,
92
+ HIDDEN: `hidden${EVENT_KEY}`,
93
+ SHOW: `show${EVENT_KEY}`,
94
+ SHOWN: `shown${EVENT_KEY}`,
95
+ INSERTED: `inserted${EVENT_KEY}`,
96
+ CLICK: `click${EVENT_KEY}`,
97
+ FOCUSIN: `focusin${EVENT_KEY}`,
98
+ FOCUSOUT: `focusout${EVENT_KEY}`,
99
+ MOUSEENTER: `mouseenter${EVENT_KEY}`,
100
+ MOUSELEAVE: `mouseleave${EVENT_KEY}`
101
+ };
102
+ const CLASS_NAME_FADE = 'fade';
103
+ const CLASS_NAME_SHOW = 'show';
104
+ const SELECTOR_TITLE = '.popover-header';
105
+ const SELECTOR_CONTENT = '.popover-body';
106
+ /**
107
+ * ------------------------------------------------------------------------
108
+ * Class Definition
109
+ * ------------------------------------------------------------------------
110
+ */
93
111
 
94
- var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
95
- content: '(string|element|function)'
96
- });
112
+ class Popover extends Tooltip__default['default'] {
113
+ // Getters
114
+ static get Default() {
115
+ return Default;
116
+ }
97
117
 
98
- var ClassName = {
99
- FADE: 'fade',
100
- SHOW: 'show'
101
- };
102
- var Selector = {
103
- TITLE: '.popover-header',
104
- CONTENT: '.popover-body'
105
- };
106
- var Event = {
107
- HIDE: "hide" + EVENT_KEY,
108
- HIDDEN: "hidden" + EVENT_KEY,
109
- SHOW: "show" + EVENT_KEY,
110
- SHOWN: "shown" + EVENT_KEY,
111
- INSERTED: "inserted" + EVENT_KEY,
112
- CLICK: "click" + EVENT_KEY,
113
- FOCUSIN: "focusin" + EVENT_KEY,
114
- FOCUSOUT: "focusout" + EVENT_KEY,
115
- MOUSEENTER: "mouseenter" + EVENT_KEY,
116
- MOUSELEAVE: "mouseleave" + EVENT_KEY
117
- /**
118
- * ------------------------------------------------------------------------
119
- * Class Definition
120
- * ------------------------------------------------------------------------
121
- */
122
-
123
- };
124
-
125
- var Popover =
126
- /*#__PURE__*/
127
- function (_Tooltip) {
128
- _inheritsLoose(Popover, _Tooltip);
129
-
130
- function Popover() {
131
- return _Tooltip.apply(this, arguments) || this;
132
- }
118
+ static get NAME() {
119
+ return NAME;
120
+ }
133
121
 
134
- var _proto = Popover.prototype;
122
+ static get DATA_KEY() {
123
+ return DATA_KEY;
124
+ }
135
125
 
136
- // Overrides
137
- _proto.isWithContent = function isWithContent() {
138
- return this.getTitle() || this._getContent();
139
- };
126
+ static get Event() {
127
+ return Event;
128
+ }
140
129
 
141
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
142
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
143
- };
130
+ static get EVENT_KEY() {
131
+ return EVENT_KEY;
132
+ }
144
133
 
145
- _proto.getTipElement = function getTipElement() {
146
- this.tip = this.tip || $$$1(this.config.template)[0];
147
- return this.tip;
148
- };
134
+ static get DefaultType() {
135
+ return DefaultType;
136
+ } // Overrides
149
137
 
150
- _proto.setContent = function setContent() {
151
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
152
138
 
153
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
139
+ isWithContent() {
140
+ return this.getTitle() || this._getContent();
141
+ }
154
142
 
155
- var content = this._getContent();
143
+ setContent() {
144
+ const tip = this.getTipElement(); // we use append for html objects to maintain js events
156
145
 
157
- if (typeof content === 'function') {
158
- content = content.call(this.element);
159
- }
146
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
160
147
 
161
- this.setElementContent($tip.find(Selector.CONTENT), content);
162
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
163
- }; // Private
148
+ let content = this._getContent();
164
149
 
150
+ if (typeof content === 'function') {
151
+ content = content.call(this._element);
152
+ }
165
153
 
166
- _proto._getContent = function _getContent() {
167
- return this.element.getAttribute('data-content') || this.config.content;
168
- };
154
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
155
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
156
+ } // Private
169
157
 
170
- _proto._cleanTipClass = function _cleanTipClass() {
171
- var $tip = $$$1(this.getTipElement());
172
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
173
158
 
174
- if (tabClass !== null && tabClass.length > 0) {
175
- $tip.removeClass(tabClass.join(''));
176
- }
177
- }; // Static
159
+ _addAttachmentClass(attachment) {
160
+ this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`);
161
+ }
178
162
 
163
+ _getContent() {
164
+ return this._element.getAttribute('data-bs-content') || this.config.content;
165
+ }
179
166
 
180
- Popover._jQueryInterface = function _jQueryInterface(config) {
181
- return this.each(function () {
182
- var data = $$$1(this).data(DATA_KEY);
167
+ _cleanTipClass() {
168
+ const tip = this.getTipElement();
169
+ const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
183
170
 
184
- var _config = typeof config === 'object' ? config : null;
171
+ if (tabClass !== null && tabClass.length > 0) {
172
+ tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
173
+ }
174
+ } // Static
185
175
 
186
- if (!data && /destroy|hide/.test(config)) {
187
- return;
188
- }
189
176
 
190
- if (!data) {
191
- data = new Popover(this, _config);
192
- $$$1(this).data(DATA_KEY, data);
193
- }
177
+ static jQueryInterface(config) {
178
+ return this.each(function () {
179
+ let data = Data__default['default'].get(this, DATA_KEY);
194
180
 
195
- if (typeof config === 'string') {
196
- if (typeof data[config] === 'undefined') {
197
- throw new TypeError("No method named \"" + config + "\"");
198
- }
181
+ const _config = typeof config === 'object' ? config : null;
199
182
 
200
- data[config]();
201
- }
202
- });
203
- };
204
-
205
- _createClass(Popover, null, [{
206
- key: "VERSION",
207
- // Getters
208
- get: function get() {
209
- return VERSION;
183
+ if (!data && /dispose|hide/.test(config)) {
184
+ return;
210
185
  }
211
- }, {
212
- key: "Default",
213
- get: function get() {
214
- return Default;
215
- }
216
- }, {
217
- key: "NAME",
218
- get: function get() {
219
- return NAME;
220
- }
221
- }, {
222
- key: "DATA_KEY",
223
- get: function get() {
224
- return DATA_KEY;
225
- }
226
- }, {
227
- key: "Event",
228
- get: function get() {
229
- return Event;
230
- }
231
- }, {
232
- key: "EVENT_KEY",
233
- get: function get() {
234
- return EVENT_KEY;
235
- }
236
- }, {
237
- key: "DefaultType",
238
- get: function get() {
239
- return DefaultType;
186
+
187
+ if (!data) {
188
+ data = new Popover(this, _config);
189
+ Data__default['default'].set(this, DATA_KEY, data);
240
190
  }
241
- }]);
242
191
 
243
- return Popover;
244
- }(Tooltip);
245
- /**
246
- * ------------------------------------------------------------------------
247
- * jQuery
248
- * ------------------------------------------------------------------------
249
- */
192
+ if (typeof config === 'string') {
193
+ if (typeof data[config] === 'undefined') {
194
+ throw new TypeError(`No method named "${config}"`);
195
+ }
250
196
 
197
+ data[config]();
198
+ }
199
+ });
200
+ }
251
201
 
252
- $$$1.fn[NAME] = Popover._jQueryInterface;
253
- $$$1.fn[NAME].Constructor = Popover;
202
+ }
203
+ /**
204
+ * ------------------------------------------------------------------------
205
+ * jQuery
206
+ * ------------------------------------------------------------------------
207
+ * add .Popover to jQuery only if jQuery is present
208
+ */
254
209
 
255
- $$$1.fn[NAME].noConflict = function () {
256
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
257
- return Popover._jQueryInterface;
258
- };
259
210
 
260
- return Popover;
261
- }($);
211
+ defineJQueryPlugin(NAME, Popover);
262
212
 
263
213
  return Popover;
264
214