@openeuropa/bcl-bootstrap 0.25.1 → 0.26.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.
- package/bootstrap-icons.svg +1 -1
- package/icons/apple.svg +2 -2
- package/icons/boombox-fill.svg +2 -2
- package/icons/cup-fill.svg +1 -1
- package/icons/cup.svg +1 -1
- package/js/dist/alert.js +3 -12
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +32 -18
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +3 -12
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +207 -307
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +57 -88
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +1 -3
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +87 -106
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +21 -25
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +11 -10
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +83 -115
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +95 -152
- package/js/dist/modal.js.map +1 -1
- package/js/dist/offcanvas.js +75 -58
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +29 -56
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +176 -125
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/tab.js +207 -92
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +23 -37
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +259 -348
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +62 -39
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +1 -1
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +75 -0
- package/js/dist/util/config.js.map +1 -0
- package/js/dist/util/focustrap.js +41 -34
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +56 -52
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +12 -19
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +49 -34
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +151 -0
- package/js/dist/util/swipe.js.map +1 -0
- package/js/dist/util/template-factory.js +173 -0
- package/js/dist/util/template-factory.js.map +1 -0
- package/js/src/alert.js +3 -15
- package/js/src/base-component.js +28 -18
- package/js/src/button.js +3 -17
- package/js/src/carousel.js +203 -319
- package/js/src/collapse.js +61 -94
- package/js/src/dom/data.js +1 -3
- package/js/src/dom/event-handler.js +80 -108
- package/js/src/dom/manipulator.js +22 -31
- package/js/src/dom/selector-engine.js +10 -19
- package/js/src/dropdown.js +84 -138
- package/js/src/modal.js +94 -158
- package/js/src/offcanvas.js +72 -61
- package/js/src/popover.js +31 -62
- package/js/src/scrollspy.js +166 -171
- package/js/src/tab.js +193 -110
- package/js/src/toast.js +19 -41
- package/js/src/tooltip.js +259 -371
- package/js/src/util/backdrop.js +55 -36
- package/js/src/util/component-functions.js +1 -1
- package/js/src/util/config.js +66 -0
- package/js/src/util/focustrap.js +38 -28
- package/js/src/util/index.js +67 -64
- package/js/src/util/sanitizer.js +11 -19
- package/js/src/util/scrollbar.js +47 -30
- package/js/src/util/swipe.js +146 -0
- package/js/src/util/template-factory.js +160 -0
- package/package.json +4 -4
- package/scss/_accordion.scss +52 -24
- package/scss/_alert.scss +18 -4
- package/scss/_badge.scss +14 -5
- package/scss/_breadcrumb.scss +22 -10
- package/scss/_button-group.scss +3 -0
- package/scss/_buttons.scss +97 -22
- package/scss/_card.scss +55 -37
- package/scss/_close.scss +1 -1
- package/scss/_containers.scss +1 -1
- package/scss/_dropdown.scss +83 -75
- package/scss/_functions.scss +7 -7
- package/scss/_grid.scss +3 -3
- package/scss/_helpers.scss +1 -0
- package/scss/_list-group.scss +44 -27
- package/scss/_maps.scss +54 -0
- package/scss/_modal.scss +71 -43
- package/scss/_nav.scss +53 -20
- package/scss/_navbar.scss +91 -150
- package/scss/_offcanvas.scss +119 -59
- package/scss/_pagination.scss +66 -21
- package/scss/_placeholders.scss +1 -1
- package/scss/_popover.scss +90 -52
- package/scss/_progress.scss +20 -9
- package/scss/_reboot.scss +25 -40
- package/scss/_root.scss +40 -21
- package/scss/_spinners.scss +38 -22
- package/scss/_tables.scss +32 -23
- package/scss/_toasts.scss +35 -16
- package/scss/_tooltip.scss +61 -56
- package/scss/_type.scss +2 -0
- package/scss/_utilities.scss +43 -26
- package/scss/_variables.scss +113 -121
- package/scss/bootstrap-grid.scss +3 -6
- package/scss/bootstrap-reboot.scss +3 -7
- package/scss/bootstrap-utilities.scss +3 -6
- package/scss/bootstrap.scss +4 -6
- package/scss/forms/_floating-labels.scss +14 -3
- package/scss/forms/_form-check.scss +28 -5
- package/scss/forms/_form-control.scss +12 -37
- package/scss/forms/_form-select.scss +0 -1
- package/scss/forms/_input-group.scss +15 -7
- package/scss/helpers/_color-bg.scss +10 -0
- package/scss/helpers/_colored-links.scss +2 -2
- package/scss/helpers/_position.scss +7 -1
- package/scss/helpers/_ratio.scss +2 -2
- package/scss/helpers/_vr.scss +1 -1
- package/scss/mixins/_alert.scss +7 -3
- package/scss/mixins/_banner.scss +9 -0
- package/scss/mixins/_breakpoints.scss +8 -8
- package/scss/mixins/_buttons.scss +32 -95
- package/scss/mixins/_container.scss +4 -2
- package/scss/mixins/_forms.scss +8 -0
- package/scss/mixins/_gradients.scss +1 -1
- package/scss/mixins/_grid.scss +12 -12
- package/scss/mixins/_pagination.scss +4 -25
- package/scss/mixins/_reset-text.scss +1 -1
- package/scss/mixins/_table-variants.scss +12 -9
- package/scss/mixins/_utilities.scss +12 -4
package/js/dist/offcanvas.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./util/scrollbar'), require('./dom/event-handler'), require('./base-component'), require('./dom/selector-engine'), require('./
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['./util/index', './util/scrollbar', './dom/event-handler', './base-component', './dom/selector-engine', './
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Offcanvas = factory(global.Index, global.Scrollbar, global.EventHandler, global.BaseComponent, global.SelectorEngine, global.
|
|
5
|
-
})(this, (function (index, ScrollBarHelper, EventHandler, BaseComponent, SelectorEngine,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./util/scrollbar'), require('./dom/event-handler'), require('./base-component'), require('./dom/selector-engine'), require('./util/backdrop'), require('./util/focustrap'), require('./util/component-functions')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['./util/index', './util/scrollbar', './dom/event-handler', './base-component', './dom/selector-engine', './util/backdrop', './util/focustrap', './util/component-functions'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Offcanvas = factory(global.Index, global.Scrollbar, global.EventHandler, global.BaseComponent, global.SelectorEngine, global.Backdrop, global.Focustrap, global.ComponentFunctions));
|
|
5
|
+
})(this, (function (index, ScrollBarHelper, EventHandler, BaseComponent, SelectorEngine, Backdrop, FocusTrap, componentFunctions) { 'use strict';
|
|
6
6
|
|
|
7
7
|
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
8
8
|
|
|
@@ -10,20 +10,17 @@
|
|
|
10
10
|
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
11
11
|
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
12
12
|
const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
13
|
-
const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
14
13
|
const Backdrop__default = /*#__PURE__*/_interopDefaultLegacy(Backdrop);
|
|
15
14
|
const FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
17
|
* --------------------------------------------------------------------------
|
|
19
|
-
* Bootstrap (v5.
|
|
18
|
+
* Bootstrap (v5.2.0): offcanvas.js
|
|
20
19
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
21
20
|
* --------------------------------------------------------------------------
|
|
22
21
|
*/
|
|
23
22
|
/**
|
|
24
|
-
* ------------------------------------------------------------------------
|
|
25
23
|
* Constants
|
|
26
|
-
* ------------------------------------------------------------------------
|
|
27
24
|
*/
|
|
28
25
|
|
|
29
26
|
const NAME = 'offcanvas';
|
|
@@ -32,36 +29,37 @@
|
|
|
32
29
|
const DATA_API_KEY = '.data-api';
|
|
33
30
|
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
|
|
34
31
|
const ESCAPE_KEY = 'Escape';
|
|
35
|
-
const Default = {
|
|
36
|
-
backdrop: true,
|
|
37
|
-
keyboard: true,
|
|
38
|
-
scroll: false
|
|
39
|
-
};
|
|
40
|
-
const DefaultType = {
|
|
41
|
-
backdrop: 'boolean',
|
|
42
|
-
keyboard: 'boolean',
|
|
43
|
-
scroll: 'boolean'
|
|
44
|
-
};
|
|
45
32
|
const CLASS_NAME_SHOW = 'show';
|
|
33
|
+
const CLASS_NAME_SHOWING = 'showing';
|
|
34
|
+
const CLASS_NAME_HIDING = 'hiding';
|
|
46
35
|
const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';
|
|
47
36
|
const OPEN_SELECTOR = '.offcanvas.show';
|
|
48
37
|
const EVENT_SHOW = `show${EVENT_KEY}`;
|
|
49
38
|
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
|
50
39
|
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
|
40
|
+
const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;
|
|
51
41
|
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
|
42
|
+
const EVENT_RESIZE = `resize${EVENT_KEY}`;
|
|
52
43
|
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
53
44
|
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;
|
|
54
45
|
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]';
|
|
46
|
+
const Default = {
|
|
47
|
+
backdrop: true,
|
|
48
|
+
keyboard: true,
|
|
49
|
+
scroll: false
|
|
50
|
+
};
|
|
51
|
+
const DefaultType = {
|
|
52
|
+
backdrop: '(boolean|string)',
|
|
53
|
+
keyboard: 'boolean',
|
|
54
|
+
scroll: 'boolean'
|
|
55
|
+
};
|
|
55
56
|
/**
|
|
56
|
-
*
|
|
57
|
-
* Class Definition
|
|
58
|
-
* ------------------------------------------------------------------------
|
|
57
|
+
* Class definition
|
|
59
58
|
*/
|
|
60
59
|
|
|
61
60
|
class Offcanvas extends BaseComponent__default.default {
|
|
62
61
|
constructor(element, config) {
|
|
63
|
-
super(element);
|
|
64
|
-
this._config = this._getConfig(config);
|
|
62
|
+
super(element, config);
|
|
65
63
|
this._isShown = false;
|
|
66
64
|
this._backdrop = this._initializeBackDrop();
|
|
67
65
|
this._focustrap = this._initializeFocusTrap();
|
|
@@ -70,12 +68,16 @@
|
|
|
70
68
|
} // Getters
|
|
71
69
|
|
|
72
70
|
|
|
73
|
-
static get NAME() {
|
|
74
|
-
return NAME;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
71
|
static get Default() {
|
|
78
72
|
return Default;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static get DefaultType() {
|
|
76
|
+
return DefaultType;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static get NAME() {
|
|
80
|
+
return NAME;
|
|
79
81
|
} // Public
|
|
80
82
|
|
|
81
83
|
|
|
@@ -97,7 +99,6 @@
|
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
this._isShown = true;
|
|
100
|
-
this._element.style.visibility = 'visible';
|
|
101
102
|
|
|
102
103
|
this._backdrop.show();
|
|
103
104
|
|
|
@@ -105,19 +106,21 @@
|
|
|
105
106
|
new ScrollBarHelper__default.default().hide();
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
this._element.removeAttribute('aria-hidden');
|
|
109
|
-
|
|
110
109
|
this._element.setAttribute('aria-modal', true);
|
|
111
110
|
|
|
112
111
|
this._element.setAttribute('role', 'dialog');
|
|
113
112
|
|
|
114
|
-
this._element.classList.add(
|
|
113
|
+
this._element.classList.add(CLASS_NAME_SHOWING);
|
|
115
114
|
|
|
116
115
|
const completeCallBack = () => {
|
|
117
|
-
if (!this._config.scroll) {
|
|
116
|
+
if (!this._config.scroll || this._config.backdrop) {
|
|
118
117
|
this._focustrap.activate();
|
|
119
118
|
}
|
|
120
119
|
|
|
120
|
+
this._element.classList.add(CLASS_NAME_SHOW);
|
|
121
|
+
|
|
122
|
+
this._element.classList.remove(CLASS_NAME_SHOWING);
|
|
123
|
+
|
|
121
124
|
EventHandler__default.default.trigger(this._element, EVENT_SHOWN, {
|
|
122
125
|
relatedTarget
|
|
123
126
|
});
|
|
@@ -143,19 +146,17 @@
|
|
|
143
146
|
|
|
144
147
|
this._isShown = false;
|
|
145
148
|
|
|
146
|
-
this._element.classList.
|
|
149
|
+
this._element.classList.add(CLASS_NAME_HIDING);
|
|
147
150
|
|
|
148
151
|
this._backdrop.hide();
|
|
149
152
|
|
|
150
153
|
const completeCallback = () => {
|
|
151
|
-
this._element.
|
|
154
|
+
this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING);
|
|
152
155
|
|
|
153
156
|
this._element.removeAttribute('aria-modal');
|
|
154
157
|
|
|
155
158
|
this._element.removeAttribute('role');
|
|
156
159
|
|
|
157
|
-
this._element.style.visibility = 'hidden';
|
|
158
|
-
|
|
159
160
|
if (!this._config.scroll) {
|
|
160
161
|
new ScrollBarHelper__default.default().reset();
|
|
161
162
|
}
|
|
@@ -175,22 +176,24 @@
|
|
|
175
176
|
} // Private
|
|
176
177
|
|
|
177
178
|
|
|
178
|
-
_getConfig(config) {
|
|
179
|
-
config = { ...Default,
|
|
180
|
-
...Manipulator__default.default.getDataAttributes(this._element),
|
|
181
|
-
...(typeof config === 'object' ? config : {})
|
|
182
|
-
};
|
|
183
|
-
index.typeCheckConfig(NAME, config, DefaultType);
|
|
184
|
-
return config;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
179
|
_initializeBackDrop() {
|
|
180
|
+
const clickCallback = () => {
|
|
181
|
+
if (this._config.backdrop === 'static') {
|
|
182
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
this.hide();
|
|
187
|
+
}; // 'static' option will be translated to true, and booleans will keep their value
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
const isVisible = Boolean(this._config.backdrop);
|
|
188
191
|
return new Backdrop__default.default({
|
|
189
192
|
className: CLASS_NAME_BACKDROP,
|
|
190
|
-
isVisible
|
|
193
|
+
isVisible,
|
|
191
194
|
isAnimated: true,
|
|
192
195
|
rootElement: this._element.parentNode,
|
|
193
|
-
clickCallback:
|
|
196
|
+
clickCallback: isVisible ? clickCallback : null
|
|
194
197
|
});
|
|
195
198
|
}
|
|
196
199
|
|
|
@@ -202,9 +205,16 @@
|
|
|
202
205
|
|
|
203
206
|
_addEventListeners() {
|
|
204
207
|
EventHandler__default.default.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
205
|
-
if (
|
|
206
|
-
|
|
208
|
+
if (event.key !== ESCAPE_KEY) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (!this._config.keyboard) {
|
|
213
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
214
|
+
return;
|
|
207
215
|
}
|
|
216
|
+
|
|
217
|
+
this.hide();
|
|
208
218
|
});
|
|
209
219
|
} // Static
|
|
210
220
|
|
|
@@ -227,9 +237,7 @@
|
|
|
227
237
|
|
|
228
238
|
}
|
|
229
239
|
/**
|
|
230
|
-
*
|
|
231
|
-
* Data Api implementation
|
|
232
|
-
* ------------------------------------------------------------------------
|
|
240
|
+
* Data API implementation
|
|
233
241
|
*/
|
|
234
242
|
|
|
235
243
|
|
|
@@ -251,21 +259,30 @@
|
|
|
251
259
|
}
|
|
252
260
|
}); // avoid conflict when clicking a toggler of an offcanvas, while another is open
|
|
253
261
|
|
|
254
|
-
const
|
|
262
|
+
const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
|
|
255
263
|
|
|
256
|
-
if (
|
|
257
|
-
Offcanvas.getInstance(
|
|
264
|
+
if (alreadyOpen && alreadyOpen !== target) {
|
|
265
|
+
Offcanvas.getInstance(alreadyOpen).hide();
|
|
258
266
|
}
|
|
259
267
|
|
|
260
268
|
const data = Offcanvas.getOrCreateInstance(target);
|
|
261
269
|
data.toggle(this);
|
|
262
270
|
});
|
|
263
|
-
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () =>
|
|
271
|
+
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
|
|
272
|
+
for (const selector of SelectorEngine__default.default.find(OPEN_SELECTOR)) {
|
|
273
|
+
Offcanvas.getOrCreateInstance(selector).show();
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
EventHandler__default.default.on(window, EVENT_RESIZE, () => {
|
|
277
|
+
for (const element of SelectorEngine__default.default.find('[aria-modal][class*=show][class*=offcanvas-]')) {
|
|
278
|
+
if (getComputedStyle(element).position !== 'fixed') {
|
|
279
|
+
Offcanvas.getOrCreateInstance(element).hide();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
264
283
|
componentFunctions.enableDismissTrigger(Offcanvas);
|
|
265
284
|
/**
|
|
266
|
-
* ------------------------------------------------------------------------
|
|
267
285
|
* jQuery
|
|
268
|
-
* ------------------------------------------------------------------------
|
|
269
286
|
*/
|
|
270
287
|
|
|
271
288
|
index.defineJQueryPlugin(Offcanvas);
|
package/js/dist/offcanvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offcanvas.js","sources":["../src/offcanvas.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport ScrollBarHelper from './util/scrollbar'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n if (!this._config.scroll) {\n this._focustrap.activate()\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () =>\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show())\n)\n\nenableDismissTrigger(Offcanvas)\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_LOAD_DATA_API","ESCAPE_KEY","Default","backdrop","keyboard","scroll","DefaultType","CLASS_NAME_SHOW","CLASS_NAME_BACKDROP","OPEN_SELECTOR","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_TOGGLE","Offcanvas","BaseComponent","constructor","element","config","_config","_getConfig","_isShown","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_addEventListeners","toggle","relatedTarget","hide","show","showEvent","EventHandler","trigger","_element","defaultPrevented","style","visibility","ScrollBarHelper","removeAttribute","setAttribute","classList","add","completeCallBack","activate","_queueCallback","hideEvent","deactivate","blur","remove","completeCallback","reset","dispose","Manipulator","getDataAttributes","typeCheckConfig","Backdrop","className","isVisible","isAnimated","rootElement","parentNode","clickCallback","FocusTrap","trapElement","on","event","key","jQueryInterface","each","data","getOrCreateInstance","undefined","startsWith","TypeError","document","target","getElementFromSelector","includes","tagName","preventDefault","isDisabled","one","focus","allReadyOpen","SelectorEngine","findOne","getInstance","window","find","forEach","el","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"offcanvas.js","sources":["../src/offcanvas.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n isVisible\n} from './util/index'\nimport ScrollBarHelper from './util/scrollbar'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\nconst CLASS_NAME_HIDING = 'hiding'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOWING)\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate()\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.add(CLASS_NAME_HIDING)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n return\n }\n\n this.hide()\n }\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop)\n\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (!this._config.keyboard) {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n return\n }\n\n this.hide()\n })\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_LOAD_DATA_API","ESCAPE_KEY","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","CLASS_NAME_HIDING","CLASS_NAME_BACKDROP","OPEN_SELECTOR","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_RESIZE","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_TOGGLE","Default","backdrop","keyboard","scroll","DefaultType","Offcanvas","BaseComponent","constructor","element","config","_isShown","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_addEventListeners","toggle","relatedTarget","hide","show","showEvent","EventHandler","trigger","_element","defaultPrevented","_config","ScrollBarHelper","setAttribute","classList","add","completeCallBack","activate","remove","_queueCallback","hideEvent","deactivate","blur","completeCallback","removeAttribute","reset","dispose","clickCallback","isVisible","Boolean","Backdrop","className","isAnimated","rootElement","parentNode","FocusTrap","trapElement","on","event","key","jQueryInterface","each","data","getOrCreateInstance","undefined","startsWith","TypeError","document","target","getElementFromSelector","includes","tagName","preventDefault","isDisabled","one","focus","alreadyOpen","SelectorEngine","findOne","getInstance","window","selector","find","getComputedStyle","position","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}
|
package/js/dist/popover.js
CHANGED
|
@@ -10,48 +10,29 @@
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* --------------------------------------------------------------------------
|
|
13
|
-
* Bootstrap (v5.
|
|
13
|
+
* Bootstrap (v5.2.0): popover.js
|
|
14
14
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
15
15
|
* --------------------------------------------------------------------------
|
|
16
16
|
*/
|
|
17
17
|
/**
|
|
18
|
-
* ------------------------------------------------------------------------
|
|
19
18
|
* Constants
|
|
20
|
-
* ------------------------------------------------------------------------
|
|
21
19
|
*/
|
|
22
20
|
|
|
23
21
|
const NAME = 'popover';
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const CLASS_PREFIX = 'bs-popover';
|
|
22
|
+
const SELECTOR_TITLE = '.popover-header';
|
|
23
|
+
const SELECTOR_CONTENT = '.popover-body';
|
|
27
24
|
const Default = { ...Tooltip__default.default.Default,
|
|
28
|
-
placement: 'right',
|
|
29
|
-
offset: [0, 8],
|
|
30
|
-
trigger: 'click',
|
|
31
25
|
content: '',
|
|
32
|
-
|
|
26
|
+
offset: [0, 8],
|
|
27
|
+
placement: 'right',
|
|
28
|
+
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
|
|
29
|
+
trigger: 'click'
|
|
33
30
|
};
|
|
34
31
|
const DefaultType = { ...Tooltip__default.default.DefaultType,
|
|
35
|
-
content: '(string|element|function)'
|
|
36
|
-
};
|
|
37
|
-
const Event = {
|
|
38
|
-
HIDE: `hide${EVENT_KEY}`,
|
|
39
|
-
HIDDEN: `hidden${EVENT_KEY}`,
|
|
40
|
-
SHOW: `show${EVENT_KEY}`,
|
|
41
|
-
SHOWN: `shown${EVENT_KEY}`,
|
|
42
|
-
INSERTED: `inserted${EVENT_KEY}`,
|
|
43
|
-
CLICK: `click${EVENT_KEY}`,
|
|
44
|
-
FOCUSIN: `focusin${EVENT_KEY}`,
|
|
45
|
-
FOCUSOUT: `focusout${EVENT_KEY}`,
|
|
46
|
-
MOUSEENTER: `mouseenter${EVENT_KEY}`,
|
|
47
|
-
MOUSELEAVE: `mouseleave${EVENT_KEY}`
|
|
32
|
+
content: '(null|string|element|function)'
|
|
48
33
|
};
|
|
49
|
-
const SELECTOR_TITLE = '.popover-header';
|
|
50
|
-
const SELECTOR_CONTENT = '.popover-body';
|
|
51
34
|
/**
|
|
52
|
-
*
|
|
53
|
-
* Class Definition
|
|
54
|
-
* ------------------------------------------------------------------------
|
|
35
|
+
* Class definition
|
|
55
36
|
*/
|
|
56
37
|
|
|
57
38
|
class Popover extends Tooltip__default.default {
|
|
@@ -60,36 +41,29 @@
|
|
|
60
41
|
return Default;
|
|
61
42
|
}
|
|
62
43
|
|
|
63
|
-
static get NAME() {
|
|
64
|
-
return NAME;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
static get Event() {
|
|
68
|
-
return Event;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
44
|
static get DefaultType() {
|
|
72
45
|
return DefaultType;
|
|
73
|
-
} // Overrides
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
isWithContent() {
|
|
77
|
-
return this.getTitle() || this._getContent();
|
|
78
46
|
}
|
|
79
47
|
|
|
80
|
-
|
|
81
|
-
|
|
48
|
+
static get NAME() {
|
|
49
|
+
return NAME;
|
|
50
|
+
} // Overrides
|
|
51
|
+
|
|
82
52
|
|
|
83
|
-
|
|
53
|
+
_isWithContent() {
|
|
54
|
+
return this._getTitle() || this._getContent();
|
|
84
55
|
} // Private
|
|
85
56
|
|
|
86
57
|
|
|
87
|
-
|
|
88
|
-
return
|
|
58
|
+
_getContentForTemplate() {
|
|
59
|
+
return {
|
|
60
|
+
[SELECTOR_TITLE]: this._getTitle(),
|
|
61
|
+
[SELECTOR_CONTENT]: this._getContent()
|
|
62
|
+
};
|
|
89
63
|
}
|
|
90
64
|
|
|
91
|
-
|
|
92
|
-
return
|
|
65
|
+
_getContent() {
|
|
66
|
+
return this._resolvePossibleFunction(this._config.content);
|
|
93
67
|
} // Static
|
|
94
68
|
|
|
95
69
|
|
|
@@ -97,22 +71,21 @@
|
|
|
97
71
|
return this.each(function () {
|
|
98
72
|
const data = Popover.getOrCreateInstance(this, config);
|
|
99
73
|
|
|
100
|
-
if (typeof config
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
74
|
+
if (typeof config !== 'string') {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
104
77
|
|
|
105
|
-
|
|
78
|
+
if (typeof data[config] === 'undefined') {
|
|
79
|
+
throw new TypeError(`No method named "${config}"`);
|
|
106
80
|
}
|
|
81
|
+
|
|
82
|
+
data[config]();
|
|
107
83
|
});
|
|
108
84
|
}
|
|
109
85
|
|
|
110
86
|
}
|
|
111
87
|
/**
|
|
112
|
-
* ------------------------------------------------------------------------
|
|
113
88
|
* jQuery
|
|
114
|
-
* ------------------------------------------------------------------------
|
|
115
|
-
* add .Popover to jQuery only if jQuery is present
|
|
116
89
|
*/
|
|
117
90
|
|
|
118
91
|
|
package/js/dist/popover.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","sources":["../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.
|
|
1
|
+
{"version":3,"file":"popover.js","sources":["../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Tooltip from './tooltip'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n"],"names":["NAME","SELECTOR_TITLE","SELECTOR_CONTENT","Default","Tooltip","content","offset","placement","template","trigger","DefaultType","Popover","_isWithContent","_getTitle","_getContent","_getContentForTemplate","_resolvePossibleFunction","_config","jQueryInterface","config","each","data","getOrCreateInstance","TypeError","defineJQueryPlugin"],"mappings":";;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;;EAEA,MAAMA,IAAI,GAAG,SAAb,CAAA;EAEA,MAAMC,cAAc,GAAG,iBAAvB,CAAA;EACA,MAAMC,gBAAgB,GAAG,eAAzB,CAAA;EAEA,MAAMC,OAAO,GAAG,EACd,GAAGC,wBAAO,CAACD,OADG;EAEdE,EAAAA,OAAO,EAAE,EAFK;EAGdC,EAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,CAHM;EAIdC,EAAAA,SAAS,EAAE,OAJG;IAKdC,QAAQ,EAAE,yCACR,mCADQ,GAER,kCAFQ,GAGR,kCAHQ,GAIR,QATY;EAUdC,EAAAA,OAAO,EAAE,OAAA;EAVK,CAAhB,CAAA;EAaA,MAAMC,WAAW,GAAG,EAClB,GAAGN,wBAAO,CAACM,WADO;EAElBL,EAAAA,OAAO,EAAE,gCAAA;EAFS,CAApB,CAAA;EAKA;EACA;EACA;;EAEA,MAAMM,OAAN,SAAsBP,wBAAtB,CAA8B;EAC5B;EACkB,EAAA,WAAPD,OAAO,GAAG;EACnB,IAAA,OAAOA,OAAP,CAAA;EACD,GAAA;;EAEqB,EAAA,WAAXO,WAAW,GAAG;EACvB,IAAA,OAAOA,WAAP,CAAA;EACD,GAAA;;EAEc,EAAA,WAAJV,IAAI,GAAG;EAChB,IAAA,OAAOA,IAAP,CAAA;EACD,GAZ2B;;;EAe5BY,EAAAA,cAAc,GAAG;EACf,IAAA,OAAO,IAAKC,CAAAA,SAAL,EAAoB,IAAA,IAAA,CAAKC,WAAL,EAA3B,CAAA;EACD,GAjB2B;;;EAoB5BC,EAAAA,sBAAsB,GAAG;MACvB,OAAO;EACL,MAAA,CAACd,cAAD,GAAkB,IAAKY,CAAAA,SAAL,EADb;QAEL,CAACX,gBAAD,GAAoB,IAAA,CAAKY,WAAL,EAAA;OAFtB,CAAA;EAID,GAAA;;EAEDA,EAAAA,WAAW,GAAG;EACZ,IAAA,OAAO,KAAKE,wBAAL,CAA8B,KAAKC,OAAL,CAAaZ,OAA3C,CAAP,CAAA;EACD,GA7B2B;;;IAgCN,OAAfa,eAAe,CAACC,MAAD,EAAS;MAC7B,OAAO,IAAA,CAAKC,IAAL,CAAU,YAAY;QAC3B,MAAMC,IAAI,GAAGV,OAAO,CAACW,mBAAR,CAA4B,IAA5B,EAAkCH,MAAlC,CAAb,CAAA;;EAEA,MAAA,IAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,QAAA,OAAA;EACD,OAAA;;EAED,MAAA,IAAI,OAAOE,IAAI,CAACF,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,QAAA,MAAM,IAAII,SAAJ,CAAe,CAAmBJ,iBAAAA,EAAAA,MAAO,GAAzC,CAAN,CAAA;EACD,OAAA;;QAEDE,IAAI,CAACF,MAAD,CAAJ,EAAA,CAAA;EACD,KAZM,CAAP,CAAA;EAaD,GAAA;;EA9C2B,CAAA;EAiD9B;EACA;EACA;;;AAEAK,0BAAkB,CAACb,OAAD,CAAlB;;;;;;;;"}
|