bootstrap 5.2.3 → 5.3.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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +11 -5
- data/Gemfile +1 -0
- data/README.md +6 -2
- data/Rakefile +10 -1
- data/assets/javascripts/bootstrap/alert.js +22 -32
- data/assets/javascripts/bootstrap/base-component.js +22 -38
- data/assets/javascripts/bootstrap/button.js +19 -22
- data/assets/javascripts/bootstrap/carousel.js +52 -135
- data/assets/javascripts/bootstrap/collapse.js +40 -102
- data/assets/javascripts/bootstrap/dom/data.js +8 -12
- data/assets/javascripts/bootstrap/dom/event-handler.js +19 -66
- data/assets/javascripts/bootstrap/dom/manipulator.js +4 -17
- data/assets/javascripts/bootstrap/dom/selector-engine.js +42 -24
- data/assets/javascripts/bootstrap/dropdown.js +74 -145
- data/assets/javascripts/bootstrap/modal.js +53 -133
- data/assets/javascripts/bootstrap/offcanvas.js +50 -102
- data/assets/javascripts/bootstrap/popover.js +23 -29
- data/assets/javascripts/bootstrap/scrollspy.js +53 -90
- data/assets/javascripts/bootstrap/tab.js +63 -112
- data/assets/javascripts/bootstrap/toast.js +31 -73
- data/assets/javascripts/bootstrap/tooltip.js +75 -177
- data/assets/javascripts/bootstrap/util/backdrop.js +28 -54
- data/assets/javascripts/bootstrap/util/component-functions.js +13 -18
- data/assets/javascripts/bootstrap/util/config.js +15 -27
- data/assets/javascripts/bootstrap/util/focustrap.js +20 -36
- data/assets/javascripts/bootstrap/util/index.js +42 -111
- data/assets/javascripts/bootstrap/util/sanitizer.js +30 -42
- data/assets/javascripts/bootstrap/util/scrollbar.js +24 -50
- data/assets/javascripts/bootstrap/util/swipe.js +27 -48
- data/assets/javascripts/bootstrap/util/template-factory.js +25 -52
- data/assets/javascripts/bootstrap-sprockets.js +10 -10
- data/assets/javascripts/bootstrap.js +689 -1444
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +1 -3
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -0
- data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
- data/assets/stylesheets/_bootstrap.scss +1 -0
- data/assets/stylesheets/bootstrap/_accordion.scss +9 -0
- data/assets/stylesheets/bootstrap/_alert.scss +8 -11
- data/assets/stylesheets/bootstrap/_button-group.scss +2 -2
- data/assets/stylesheets/bootstrap/_buttons.scss +3 -3
- data/assets/stylesheets/bootstrap/_card.scss +5 -0
- data/assets/stylesheets/bootstrap/_carousel.scss +20 -2
- data/assets/stylesheets/bootstrap/_close.scss +32 -9
- data/assets/stylesheets/bootstrap/_dropdown.scss +1 -0
- data/assets/stylesheets/bootstrap/_functions.scss +1 -1
- data/assets/stylesheets/bootstrap/_grid.scss +6 -0
- data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +12 -7
- data/assets/stylesheets/bootstrap/_maps.scss +120 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
- data/assets/stylesheets/bootstrap/_nav.scss +42 -17
- data/assets/stylesheets/bootstrap/_navbar.scss +15 -4
- data/assets/stylesheets/bootstrap/_offcanvas.scss +4 -2
- data/assets/stylesheets/bootstrap/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/_progress.scss +10 -1
- data/assets/stylesheets/bootstrap/_reboot.scss +8 -7
- data/assets/stylesheets/bootstrap/_root.scss +124 -10
- data/assets/stylesheets/bootstrap/_tables.scss +18 -11
- data/assets/stylesheets/bootstrap/_tooltip.scss +4 -5
- data/assets/stylesheets/bootstrap/_utilities.scss +175 -16
- data/assets/stylesheets/bootstrap/_variables-dark.scss +87 -0
- data/assets/stylesheets/bootstrap/_variables.scss +282 -169
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +23 -3
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +26 -12
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +24 -4
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +3 -3
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +12 -3
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +1 -1
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +1 -4
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +20 -2
- data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
- data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +4 -1
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +2 -4
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
- data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +8 -7
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +5 -1
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
- data/bootstrap.gemspec +4 -3
- data/lib/bootstrap/engine.rb +7 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- data/tasks/updater/scss.rb +2 -2
- data/test/gemfiles/rails_4_2.gemfile +1 -1
- data/test/gemfiles/rails_5_0.gemfile +1 -1
- data/test/gemfiles/rails_5_1.gemfile +1 -1
- data/test/gemfiles/rails_5_2.gemfile +1 -1
- data/test/gemfiles/rails_6_0.gemfile +1 -0
- data/test/gemfiles/rails_6_1.gemfile +1 -0
- data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
- data/test/gemfiles/{rails_7_0.gemfile → rails_7_0_sassc.gemfile} +1 -0
- metadata +35 -15
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +0 -18
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap offcanvas.js v5.2
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap offcanvas.js v5.3.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2023 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('./
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['./
|
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Offcanvas = factory(global.
|
|
10
|
-
})(this, (function (
|
|
11
|
-
|
|
12
|
-
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
|
-
|
|
14
|
-
const ScrollBarHelper__default = /*#__PURE__*/_interopDefaultLegacy(ScrollBarHelper);
|
|
15
|
-
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
-
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
17
|
-
const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
18
|
-
const Backdrop__default = /*#__PURE__*/_interopDefaultLegacy(Backdrop);
|
|
19
|
-
const FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/backdrop.js'), require('./util/component-functions.js'), require('./util/focustrap.js'), require('./util/index.js'), require('./util/scrollbar.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/selector-engine', './util/backdrop', './util/component-functions', './util/focustrap', './util/index', './util/scrollbar'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Offcanvas = factory(global.BaseComponent, global.EventHandler, global.SelectorEngine, global.Backdrop, global.ComponentFunctions, global.Focustrap, global.Index, global.Scrollbar));
|
|
10
|
+
})(this, (function (BaseComponent, EventHandler, SelectorEngine, Backdrop, componentFunctions_js, FocusTrap, index_js, ScrollBarHelper) { 'use strict';
|
|
20
11
|
|
|
21
12
|
/**
|
|
22
13
|
* --------------------------------------------------------------------------
|
|
23
|
-
* Bootstrap
|
|
14
|
+
* Bootstrap offcanvas.js
|
|
24
15
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
25
16
|
* --------------------------------------------------------------------------
|
|
26
17
|
*/
|
|
18
|
+
|
|
19
|
+
|
|
27
20
|
/**
|
|
28
21
|
* Constants
|
|
29
22
|
*/
|
|
@@ -58,142 +51,108 @@
|
|
|
58
51
|
keyboard: 'boolean',
|
|
59
52
|
scroll: 'boolean'
|
|
60
53
|
};
|
|
54
|
+
|
|
61
55
|
/**
|
|
62
56
|
* Class definition
|
|
63
57
|
*/
|
|
64
58
|
|
|
65
|
-
class Offcanvas extends
|
|
59
|
+
class Offcanvas extends BaseComponent {
|
|
66
60
|
constructor(element, config) {
|
|
67
61
|
super(element, config);
|
|
68
62
|
this._isShown = false;
|
|
69
63
|
this._backdrop = this._initializeBackDrop();
|
|
70
64
|
this._focustrap = this._initializeFocusTrap();
|
|
71
|
-
|
|
72
65
|
this._addEventListeners();
|
|
73
|
-
}
|
|
74
|
-
|
|
66
|
+
}
|
|
75
67
|
|
|
68
|
+
// Getters
|
|
76
69
|
static get Default() {
|
|
77
70
|
return Default;
|
|
78
71
|
}
|
|
79
|
-
|
|
80
72
|
static get DefaultType() {
|
|
81
73
|
return DefaultType;
|
|
82
74
|
}
|
|
83
|
-
|
|
84
75
|
static get NAME() {
|
|
85
76
|
return NAME;
|
|
86
|
-
}
|
|
87
|
-
|
|
77
|
+
}
|
|
88
78
|
|
|
79
|
+
// Public
|
|
89
80
|
toggle(relatedTarget) {
|
|
90
81
|
return this._isShown ? this.hide() : this.show(relatedTarget);
|
|
91
82
|
}
|
|
92
|
-
|
|
93
83
|
show(relatedTarget) {
|
|
94
84
|
if (this._isShown) {
|
|
95
85
|
return;
|
|
96
86
|
}
|
|
97
|
-
|
|
98
|
-
const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, {
|
|
87
|
+
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
|
|
99
88
|
relatedTarget
|
|
100
89
|
});
|
|
101
|
-
|
|
102
90
|
if (showEvent.defaultPrevented) {
|
|
103
91
|
return;
|
|
104
92
|
}
|
|
105
|
-
|
|
106
93
|
this._isShown = true;
|
|
107
|
-
|
|
108
94
|
this._backdrop.show();
|
|
109
|
-
|
|
110
95
|
if (!this._config.scroll) {
|
|
111
|
-
new
|
|
96
|
+
new ScrollBarHelper().hide();
|
|
112
97
|
}
|
|
113
|
-
|
|
114
98
|
this._element.setAttribute('aria-modal', true);
|
|
115
|
-
|
|
116
99
|
this._element.setAttribute('role', 'dialog');
|
|
117
|
-
|
|
118
100
|
this._element.classList.add(CLASS_NAME_SHOWING);
|
|
119
|
-
|
|
120
101
|
const completeCallBack = () => {
|
|
121
102
|
if (!this._config.scroll || this._config.backdrop) {
|
|
122
103
|
this._focustrap.activate();
|
|
123
104
|
}
|
|
124
|
-
|
|
125
105
|
this._element.classList.add(CLASS_NAME_SHOW);
|
|
126
|
-
|
|
127
106
|
this._element.classList.remove(CLASS_NAME_SHOWING);
|
|
128
|
-
|
|
129
|
-
EventHandler__default.default.trigger(this._element, EVENT_SHOWN, {
|
|
107
|
+
EventHandler.trigger(this._element, EVENT_SHOWN, {
|
|
130
108
|
relatedTarget
|
|
131
109
|
});
|
|
132
110
|
};
|
|
133
|
-
|
|
134
111
|
this._queueCallback(completeCallBack, this._element, true);
|
|
135
112
|
}
|
|
136
|
-
|
|
137
113
|
hide() {
|
|
138
114
|
if (!this._isShown) {
|
|
139
115
|
return;
|
|
140
116
|
}
|
|
141
|
-
|
|
142
|
-
const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
|
|
143
|
-
|
|
117
|
+
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
|
|
144
118
|
if (hideEvent.defaultPrevented) {
|
|
145
119
|
return;
|
|
146
120
|
}
|
|
147
|
-
|
|
148
121
|
this._focustrap.deactivate();
|
|
149
|
-
|
|
150
122
|
this._element.blur();
|
|
151
|
-
|
|
152
123
|
this._isShown = false;
|
|
153
|
-
|
|
154
124
|
this._element.classList.add(CLASS_NAME_HIDING);
|
|
155
|
-
|
|
156
125
|
this._backdrop.hide();
|
|
157
|
-
|
|
158
126
|
const completeCallback = () => {
|
|
159
127
|
this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING);
|
|
160
|
-
|
|
161
128
|
this._element.removeAttribute('aria-modal');
|
|
162
|
-
|
|
163
129
|
this._element.removeAttribute('role');
|
|
164
|
-
|
|
165
130
|
if (!this._config.scroll) {
|
|
166
|
-
new
|
|
131
|
+
new ScrollBarHelper().reset();
|
|
167
132
|
}
|
|
168
|
-
|
|
169
|
-
EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
|
|
133
|
+
EventHandler.trigger(this._element, EVENT_HIDDEN);
|
|
170
134
|
};
|
|
171
|
-
|
|
172
135
|
this._queueCallback(completeCallback, this._element, true);
|
|
173
136
|
}
|
|
174
|
-
|
|
175
137
|
dispose() {
|
|
176
138
|
this._backdrop.dispose();
|
|
177
|
-
|
|
178
139
|
this._focustrap.deactivate();
|
|
179
|
-
|
|
180
140
|
super.dispose();
|
|
181
|
-
}
|
|
182
|
-
|
|
141
|
+
}
|
|
183
142
|
|
|
143
|
+
// Private
|
|
184
144
|
_initializeBackDrop() {
|
|
185
145
|
const clickCallback = () => {
|
|
186
146
|
if (this._config.backdrop === 'static') {
|
|
187
|
-
|
|
147
|
+
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
188
148
|
return;
|
|
189
149
|
}
|
|
190
|
-
|
|
191
150
|
this.hide();
|
|
192
|
-
};
|
|
193
|
-
|
|
151
|
+
};
|
|
194
152
|
|
|
153
|
+
// 'static' option will be translated to true, and booleans will keep their value
|
|
195
154
|
const isVisible = Boolean(this._config.backdrop);
|
|
196
|
-
return new
|
|
155
|
+
return new Backdrop({
|
|
197
156
|
className: CLASS_NAME_BACKDROP,
|
|
198
157
|
isVisible,
|
|
199
158
|
isAnimated: true,
|
|
@@ -201,96 +160,85 @@
|
|
|
201
160
|
clickCallback: isVisible ? clickCallback : null
|
|
202
161
|
});
|
|
203
162
|
}
|
|
204
|
-
|
|
205
163
|
_initializeFocusTrap() {
|
|
206
|
-
return new
|
|
164
|
+
return new FocusTrap({
|
|
207
165
|
trapElement: this._element
|
|
208
166
|
});
|
|
209
167
|
}
|
|
210
|
-
|
|
211
168
|
_addEventListeners() {
|
|
212
|
-
|
|
169
|
+
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
213
170
|
if (event.key !== ESCAPE_KEY) {
|
|
214
171
|
return;
|
|
215
172
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
173
|
+
if (this._config.keyboard) {
|
|
174
|
+
this.hide();
|
|
219
175
|
return;
|
|
220
176
|
}
|
|
221
|
-
|
|
222
|
-
this.hide();
|
|
177
|
+
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
223
178
|
});
|
|
224
|
-
}
|
|
225
|
-
|
|
179
|
+
}
|
|
226
180
|
|
|
181
|
+
// Static
|
|
227
182
|
static jQueryInterface(config) {
|
|
228
183
|
return this.each(function () {
|
|
229
184
|
const data = Offcanvas.getOrCreateInstance(this, config);
|
|
230
|
-
|
|
231
185
|
if (typeof config !== 'string') {
|
|
232
186
|
return;
|
|
233
187
|
}
|
|
234
|
-
|
|
235
188
|
if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
|
|
236
189
|
throw new TypeError(`No method named "${config}"`);
|
|
237
190
|
}
|
|
238
|
-
|
|
239
191
|
data[config](this);
|
|
240
192
|
});
|
|
241
193
|
}
|
|
242
|
-
|
|
243
194
|
}
|
|
195
|
+
|
|
244
196
|
/**
|
|
245
197
|
* Data API implementation
|
|
246
198
|
*/
|
|
247
199
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
const target = index.getElementFromSelector(this);
|
|
251
|
-
|
|
200
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
201
|
+
const target = SelectorEngine.getElementFromSelector(this);
|
|
252
202
|
if (['A', 'AREA'].includes(this.tagName)) {
|
|
253
203
|
event.preventDefault();
|
|
254
204
|
}
|
|
255
|
-
|
|
256
|
-
if (index.isDisabled(this)) {
|
|
205
|
+
if (index_js.isDisabled(this)) {
|
|
257
206
|
return;
|
|
258
207
|
}
|
|
259
|
-
|
|
260
|
-
EventHandler__default.default.one(target, EVENT_HIDDEN, () => {
|
|
208
|
+
EventHandler.one(target, EVENT_HIDDEN, () => {
|
|
261
209
|
// focus on trigger when it is closed
|
|
262
|
-
if (
|
|
210
|
+
if (index_js.isVisible(this)) {
|
|
263
211
|
this.focus();
|
|
264
212
|
}
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
|
|
213
|
+
});
|
|
268
214
|
|
|
215
|
+
// avoid conflict when clicking a toggler of an offcanvas, while another is open
|
|
216
|
+
const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
|
|
269
217
|
if (alreadyOpen && alreadyOpen !== target) {
|
|
270
218
|
Offcanvas.getInstance(alreadyOpen).hide();
|
|
271
219
|
}
|
|
272
|
-
|
|
273
220
|
const data = Offcanvas.getOrCreateInstance(target);
|
|
274
221
|
data.toggle(this);
|
|
275
222
|
});
|
|
276
|
-
|
|
277
|
-
for (const selector of
|
|
223
|
+
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
|
|
224
|
+
for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
|
|
278
225
|
Offcanvas.getOrCreateInstance(selector).show();
|
|
279
226
|
}
|
|
280
227
|
});
|
|
281
|
-
|
|
282
|
-
for (const element of
|
|
228
|
+
EventHandler.on(window, EVENT_RESIZE, () => {
|
|
229
|
+
for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {
|
|
283
230
|
if (getComputedStyle(element).position !== 'fixed') {
|
|
284
231
|
Offcanvas.getOrCreateInstance(element).hide();
|
|
285
232
|
}
|
|
286
233
|
}
|
|
287
234
|
});
|
|
288
|
-
|
|
235
|
+
componentFunctions_js.enableDismissTrigger(Offcanvas);
|
|
236
|
+
|
|
289
237
|
/**
|
|
290
238
|
* jQuery
|
|
291
239
|
*/
|
|
292
240
|
|
|
293
|
-
|
|
241
|
+
index_js.defineJQueryPlugin(Offcanvas);
|
|
294
242
|
|
|
295
243
|
return Offcanvas;
|
|
296
244
|
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap popover.js v5.2
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap popover.js v5.3.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2023 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('./
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['./
|
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.
|
|
10
|
-
})(this, (function (
|
|
11
|
-
|
|
12
|
-
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
|
-
|
|
14
|
-
const Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./tooltip.js'), require('./util/index.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./tooltip', './util/index'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Tooltip, global.Index));
|
|
10
|
+
})(this, (function (Tooltip, index_js) { 'use strict';
|
|
15
11
|
|
|
16
12
|
/**
|
|
17
13
|
* --------------------------------------------------------------------------
|
|
18
|
-
* Bootstrap
|
|
14
|
+
* Bootstrap popover.js
|
|
19
15
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
20
16
|
* --------------------------------------------------------------------------
|
|
21
17
|
*/
|
|
18
|
+
|
|
19
|
+
|
|
22
20
|
/**
|
|
23
21
|
* Constants
|
|
24
22
|
*/
|
|
@@ -26,75 +24,71 @@
|
|
|
26
24
|
const NAME = 'popover';
|
|
27
25
|
const SELECTOR_TITLE = '.popover-header';
|
|
28
26
|
const SELECTOR_CONTENT = '.popover-body';
|
|
29
|
-
const Default = {
|
|
27
|
+
const Default = {
|
|
28
|
+
...Tooltip.Default,
|
|
30
29
|
content: '',
|
|
31
30
|
offset: [0, 8],
|
|
32
31
|
placement: 'right',
|
|
33
32
|
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
|
|
34
33
|
trigger: 'click'
|
|
35
34
|
};
|
|
36
|
-
const DefaultType = {
|
|
35
|
+
const DefaultType = {
|
|
36
|
+
...Tooltip.DefaultType,
|
|
37
37
|
content: '(null|string|element|function)'
|
|
38
38
|
};
|
|
39
|
+
|
|
39
40
|
/**
|
|
40
41
|
* Class definition
|
|
41
42
|
*/
|
|
42
43
|
|
|
43
|
-
class Popover extends
|
|
44
|
+
class Popover extends Tooltip {
|
|
44
45
|
// Getters
|
|
45
46
|
static get Default() {
|
|
46
47
|
return Default;
|
|
47
48
|
}
|
|
48
|
-
|
|
49
49
|
static get DefaultType() {
|
|
50
50
|
return DefaultType;
|
|
51
51
|
}
|
|
52
|
-
|
|
53
52
|
static get NAME() {
|
|
54
53
|
return NAME;
|
|
55
|
-
}
|
|
56
|
-
|
|
54
|
+
}
|
|
57
55
|
|
|
56
|
+
// Overrides
|
|
58
57
|
_isWithContent() {
|
|
59
58
|
return this._getTitle() || this._getContent();
|
|
60
|
-
}
|
|
61
|
-
|
|
59
|
+
}
|
|
62
60
|
|
|
61
|
+
// Private
|
|
63
62
|
_getContentForTemplate() {
|
|
64
63
|
return {
|
|
65
64
|
[SELECTOR_TITLE]: this._getTitle(),
|
|
66
65
|
[SELECTOR_CONTENT]: this._getContent()
|
|
67
66
|
};
|
|
68
67
|
}
|
|
69
|
-
|
|
70
68
|
_getContent() {
|
|
71
69
|
return this._resolvePossibleFunction(this._config.content);
|
|
72
|
-
}
|
|
73
|
-
|
|
70
|
+
}
|
|
74
71
|
|
|
72
|
+
// Static
|
|
75
73
|
static jQueryInterface(config) {
|
|
76
74
|
return this.each(function () {
|
|
77
75
|
const data = Popover.getOrCreateInstance(this, config);
|
|
78
|
-
|
|
79
76
|
if (typeof config !== 'string') {
|
|
80
77
|
return;
|
|
81
78
|
}
|
|
82
|
-
|
|
83
79
|
if (typeof data[config] === 'undefined') {
|
|
84
80
|
throw new TypeError(`No method named "${config}"`);
|
|
85
81
|
}
|
|
86
|
-
|
|
87
82
|
data[config]();
|
|
88
83
|
});
|
|
89
84
|
}
|
|
90
|
-
|
|
91
85
|
}
|
|
86
|
+
|
|
92
87
|
/**
|
|
93
88
|
* jQuery
|
|
94
89
|
*/
|
|
95
90
|
|
|
96
|
-
|
|
97
|
-
index.defineJQueryPlugin(Popover);
|
|
91
|
+
index_js.defineJQueryPlugin(Popover);
|
|
98
92
|
|
|
99
93
|
return Popover;
|
|
100
94
|
|