bootstrap 4.5.3 → 5.2.3
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 +55 -0
- data/README.md +28 -5
- data/assets/javascripts/bootstrap/alert.js +54 -133
- data/assets/javascripts/bootstrap/base-component.js +99 -0
- data/assets/javascripts/bootstrap/button.js +44 -183
- data/assets/javascripts/bootstrap/carousel.js +308 -450
- data/assets/javascripts/bootstrap/collapse.js +180 -243
- data/assets/javascripts/bootstrap/dom/data.js +66 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +283 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +84 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
- data/assets/javascripts/bootstrap/dropdown.js +320 -387
- data/assets/javascripts/bootstrap/modal.js +238 -478
- data/assets/javascripts/bootstrap/offcanvas.js +297 -0
- data/assets/javascripts/bootstrap/popover.js +58 -163
- data/assets/javascripts/bootstrap/scrollspy.js +223 -228
- data/assets/javascripts/bootstrap/tab.js +251 -166
- data/assets/javascripts/bootstrap/toast.js +147 -149
- data/assets/javascripts/bootstrap/tooltip.js +434 -646
- data/assets/javascripts/bootstrap/util/backdrop.js +165 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +46 -0
- data/assets/javascripts/bootstrap/util/config.js +79 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +129 -0
- data/assets/javascripts/bootstrap/util/index.js +350 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +122 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +138 -0
- data/assets/javascripts/bootstrap/util/swipe.js +155 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +177 -0
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +24 -8
- data/assets/javascripts/bootstrap.js +4037 -3206
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +56 -21
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -7
- data/assets/stylesheets/_bootstrap.scss +20 -13
- data/assets/stylesheets/bootstrap/_accordion.scss +149 -0
- data/assets/stylesheets/bootstrap/_alert.scss +33 -14
- data/assets/stylesheets/bootstrap/_badge.scss +15 -31
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +23 -27
- data/assets/stylesheets/bootstrap/_button-group.scss +25 -46
- data/assets/stylesheets/bootstrap/_buttons.scss +136 -71
- data/assets/stylesheets/bootstrap/_card.scss +61 -113
- data/assets/stylesheets/bootstrap/_carousel.scss +64 -35
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +128 -71
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +181 -23
- data/assets/stylesheets/bootstrap/_grid.scss +13 -53
- data/assets/stylesheets/bootstrap/_helpers.scss +10 -0
- data/assets/stylesheets/bootstrap/_images.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +72 -34
- data/assets/stylesheets/bootstrap/_maps.scss +54 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -13
- data/assets/stylesheets/bootstrap/_modal.scss +107 -110
- data/assets/stylesheets/bootstrap/_nav.scss +72 -23
- data/assets/stylesheets/bootstrap/_navbar.scss +127 -173
- data/assets/stylesheets/bootstrap/_offcanvas.scss +144 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +99 -73
- data/assets/stylesheets/bootstrap/_progress.scss +26 -14
- data/assets/stylesheets/bootstrap/_reboot.scss +326 -200
- data/assets/stylesheets/bootstrap/_root.scss +62 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +51 -22
- data/assets/stylesheets/bootstrap/_tables.scss +94 -115
- data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
- data/assets/stylesheets/bootstrap/_tooltip.scss +68 -63
- data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
- data/assets/stylesheets/bootstrap/_type.scss +40 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +647 -18
- data/assets/stylesheets/bootstrap/_variables.scss +1018 -526
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +75 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +175 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +194 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +71 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +10 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +8 -6
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +20 -16
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +48 -74
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +119 -37
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +7 -19
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +278 -128
- data/bootstrap.gemspec +3 -5
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +31 -7
- data/tasks/updater/network.rb +9 -3
- data/tasks/updater.rb +2 -2
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -3
- data/test/gemfiles/rails_5_2.gemfile +8 -0
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- data/test/gemfiles/rails_7_0.gemfile +7 -0
- data/test/test_helper.rb +3 -2
- metadata +70 -78
- data/.travis.yml +0 -31
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -524
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
- /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap offcanvas.js v5.2.3 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
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')) :
|
|
8
|
+
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) :
|
|
9
|
+
(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));
|
|
10
|
+
})(this, (function (index, ScrollBarHelper, EventHandler, BaseComponent, SelectorEngine, Backdrop, FocusTrap, componentFunctions) { 'use strict';
|
|
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);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* --------------------------------------------------------------------------
|
|
23
|
+
* Bootstrap (v5.2.3): offcanvas.js
|
|
24
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
25
|
+
* --------------------------------------------------------------------------
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Constants
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
const NAME = 'offcanvas';
|
|
32
|
+
const DATA_KEY = 'bs.offcanvas';
|
|
33
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
34
|
+
const DATA_API_KEY = '.data-api';
|
|
35
|
+
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
|
|
36
|
+
const ESCAPE_KEY = 'Escape';
|
|
37
|
+
const CLASS_NAME_SHOW = 'show';
|
|
38
|
+
const CLASS_NAME_SHOWING = 'showing';
|
|
39
|
+
const CLASS_NAME_HIDING = 'hiding';
|
|
40
|
+
const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';
|
|
41
|
+
const OPEN_SELECTOR = '.offcanvas.show';
|
|
42
|
+
const EVENT_SHOW = `show${EVENT_KEY}`;
|
|
43
|
+
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
|
44
|
+
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
|
45
|
+
const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;
|
|
46
|
+
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
|
47
|
+
const EVENT_RESIZE = `resize${EVENT_KEY}`;
|
|
48
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
49
|
+
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;
|
|
50
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]';
|
|
51
|
+
const Default = {
|
|
52
|
+
backdrop: true,
|
|
53
|
+
keyboard: true,
|
|
54
|
+
scroll: false
|
|
55
|
+
};
|
|
56
|
+
const DefaultType = {
|
|
57
|
+
backdrop: '(boolean|string)',
|
|
58
|
+
keyboard: 'boolean',
|
|
59
|
+
scroll: 'boolean'
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Class definition
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
class Offcanvas extends BaseComponent__default.default {
|
|
66
|
+
constructor(element, config) {
|
|
67
|
+
super(element, config);
|
|
68
|
+
this._isShown = false;
|
|
69
|
+
this._backdrop = this._initializeBackDrop();
|
|
70
|
+
this._focustrap = this._initializeFocusTrap();
|
|
71
|
+
|
|
72
|
+
this._addEventListeners();
|
|
73
|
+
} // Getters
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
static get Default() {
|
|
77
|
+
return Default;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static get DefaultType() {
|
|
81
|
+
return DefaultType;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static get NAME() {
|
|
85
|
+
return NAME;
|
|
86
|
+
} // Public
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
toggle(relatedTarget) {
|
|
90
|
+
return this._isShown ? this.hide() : this.show(relatedTarget);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
show(relatedTarget) {
|
|
94
|
+
if (this._isShown) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, {
|
|
99
|
+
relatedTarget
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
if (showEvent.defaultPrevented) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
this._isShown = true;
|
|
107
|
+
|
|
108
|
+
this._backdrop.show();
|
|
109
|
+
|
|
110
|
+
if (!this._config.scroll) {
|
|
111
|
+
new ScrollBarHelper__default.default().hide();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
this._element.setAttribute('aria-modal', true);
|
|
115
|
+
|
|
116
|
+
this._element.setAttribute('role', 'dialog');
|
|
117
|
+
|
|
118
|
+
this._element.classList.add(CLASS_NAME_SHOWING);
|
|
119
|
+
|
|
120
|
+
const completeCallBack = () => {
|
|
121
|
+
if (!this._config.scroll || this._config.backdrop) {
|
|
122
|
+
this._focustrap.activate();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
this._element.classList.add(CLASS_NAME_SHOW);
|
|
126
|
+
|
|
127
|
+
this._element.classList.remove(CLASS_NAME_SHOWING);
|
|
128
|
+
|
|
129
|
+
EventHandler__default.default.trigger(this._element, EVENT_SHOWN, {
|
|
130
|
+
relatedTarget
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
this._queueCallback(completeCallBack, this._element, true);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
hide() {
|
|
138
|
+
if (!this._isShown) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
|
|
143
|
+
|
|
144
|
+
if (hideEvent.defaultPrevented) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
this._focustrap.deactivate();
|
|
149
|
+
|
|
150
|
+
this._element.blur();
|
|
151
|
+
|
|
152
|
+
this._isShown = false;
|
|
153
|
+
|
|
154
|
+
this._element.classList.add(CLASS_NAME_HIDING);
|
|
155
|
+
|
|
156
|
+
this._backdrop.hide();
|
|
157
|
+
|
|
158
|
+
const completeCallback = () => {
|
|
159
|
+
this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING);
|
|
160
|
+
|
|
161
|
+
this._element.removeAttribute('aria-modal');
|
|
162
|
+
|
|
163
|
+
this._element.removeAttribute('role');
|
|
164
|
+
|
|
165
|
+
if (!this._config.scroll) {
|
|
166
|
+
new ScrollBarHelper__default.default().reset();
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
this._queueCallback(completeCallback, this._element, true);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
dispose() {
|
|
176
|
+
this._backdrop.dispose();
|
|
177
|
+
|
|
178
|
+
this._focustrap.deactivate();
|
|
179
|
+
|
|
180
|
+
super.dispose();
|
|
181
|
+
} // Private
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
_initializeBackDrop() {
|
|
185
|
+
const clickCallback = () => {
|
|
186
|
+
if (this._config.backdrop === 'static') {
|
|
187
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
this.hide();
|
|
192
|
+
}; // 'static' option will be translated to true, and booleans will keep their value
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
const isVisible = Boolean(this._config.backdrop);
|
|
196
|
+
return new Backdrop__default.default({
|
|
197
|
+
className: CLASS_NAME_BACKDROP,
|
|
198
|
+
isVisible,
|
|
199
|
+
isAnimated: true,
|
|
200
|
+
rootElement: this._element.parentNode,
|
|
201
|
+
clickCallback: isVisible ? clickCallback : null
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
_initializeFocusTrap() {
|
|
206
|
+
return new FocusTrap__default.default({
|
|
207
|
+
trapElement: this._element
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
_addEventListeners() {
|
|
212
|
+
EventHandler__default.default.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
213
|
+
if (event.key !== ESCAPE_KEY) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (!this._config.keyboard) {
|
|
218
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
this.hide();
|
|
223
|
+
});
|
|
224
|
+
} // Static
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
static jQueryInterface(config) {
|
|
228
|
+
return this.each(function () {
|
|
229
|
+
const data = Offcanvas.getOrCreateInstance(this, config);
|
|
230
|
+
|
|
231
|
+
if (typeof config !== 'string') {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
|
|
236
|
+
throw new TypeError(`No method named "${config}"`);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
data[config](this);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Data API implementation
|
|
246
|
+
*/
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
250
|
+
const target = index.getElementFromSelector(this);
|
|
251
|
+
|
|
252
|
+
if (['A', 'AREA'].includes(this.tagName)) {
|
|
253
|
+
event.preventDefault();
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (index.isDisabled(this)) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
EventHandler__default.default.one(target, EVENT_HIDDEN, () => {
|
|
261
|
+
// focus on trigger when it is closed
|
|
262
|
+
if (index.isVisible(this)) {
|
|
263
|
+
this.focus();
|
|
264
|
+
}
|
|
265
|
+
}); // avoid conflict when clicking a toggler of an offcanvas, while another is open
|
|
266
|
+
|
|
267
|
+
const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
|
|
268
|
+
|
|
269
|
+
if (alreadyOpen && alreadyOpen !== target) {
|
|
270
|
+
Offcanvas.getInstance(alreadyOpen).hide();
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const data = Offcanvas.getOrCreateInstance(target);
|
|
274
|
+
data.toggle(this);
|
|
275
|
+
});
|
|
276
|
+
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
|
|
277
|
+
for (const selector of SelectorEngine__default.default.find(OPEN_SELECTOR)) {
|
|
278
|
+
Offcanvas.getOrCreateInstance(selector).show();
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
EventHandler__default.default.on(window, EVENT_RESIZE, () => {
|
|
282
|
+
for (const element of SelectorEngine__default.default.find('[aria-modal][class*=show][class*=offcanvas-]')) {
|
|
283
|
+
if (getComputedStyle(element).position !== 'fixed') {
|
|
284
|
+
Offcanvas.getOrCreateInstance(element).hide();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
componentFunctions.enableDismissTrigger(Offcanvas);
|
|
289
|
+
/**
|
|
290
|
+
* jQuery
|
|
291
|
+
*/
|
|
292
|
+
|
|
293
|
+
index.defineJQueryPlugin(Offcanvas);
|
|
294
|
+
|
|
295
|
+
return Offcanvas;
|
|
296
|
+
|
|
297
|
+
}));
|
|
@@ -1,206 +1,101 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap popover.js
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap popover.js v5.2.3 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2022 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 (
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./tooltip')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./util/index', './tooltip'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Index, global.Tooltip));
|
|
10
|
+
})(this, (function (index, Tooltip) { 'use strict';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
14
|
+
const Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
16
15
|
|
|
17
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
18
|
-
|
|
19
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
20
|
-
|
|
21
|
-
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
|
22
|
-
|
|
23
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
24
16
|
/**
|
|
25
|
-
*
|
|
17
|
+
* --------------------------------------------------------------------------
|
|
18
|
+
* Bootstrap (v5.2.3): popover.js
|
|
19
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
20
|
+
* --------------------------------------------------------------------------
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
26
23
|
* Constants
|
|
27
|
-
* ------------------------------------------------------------------------
|
|
28
24
|
*/
|
|
29
25
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
|
35
|
-
var CLASS_PREFIX = 'bs-popover';
|
|
36
|
-
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
|
37
|
-
|
|
38
|
-
var Default = _extends({}, Tooltip__default['default'].Default, {
|
|
39
|
-
placement: 'right',
|
|
40
|
-
trigger: 'click',
|
|
26
|
+
const NAME = 'popover';
|
|
27
|
+
const SELECTOR_TITLE = '.popover-header';
|
|
28
|
+
const SELECTOR_CONTENT = '.popover-body';
|
|
29
|
+
const Default = { ...Tooltip__default.default.Default,
|
|
41
30
|
content: '',
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var CLASS_NAME_FADE = 'fade';
|
|
50
|
-
var CLASS_NAME_SHOW = 'show';
|
|
51
|
-
var SELECTOR_TITLE = '.popover-header';
|
|
52
|
-
var SELECTOR_CONTENT = '.popover-body';
|
|
53
|
-
var Event = {
|
|
54
|
-
HIDE: "hide" + EVENT_KEY,
|
|
55
|
-
HIDDEN: "hidden" + EVENT_KEY,
|
|
56
|
-
SHOW: "show" + EVENT_KEY,
|
|
57
|
-
SHOWN: "shown" + EVENT_KEY,
|
|
58
|
-
INSERTED: "inserted" + EVENT_KEY,
|
|
59
|
-
CLICK: "click" + EVENT_KEY,
|
|
60
|
-
FOCUSIN: "focusin" + EVENT_KEY,
|
|
61
|
-
FOCUSOUT: "focusout" + EVENT_KEY,
|
|
62
|
-
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
|
63
|
-
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
|
31
|
+
offset: [0, 8],
|
|
32
|
+
placement: 'right',
|
|
33
|
+
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
|
|
34
|
+
trigger: 'click'
|
|
35
|
+
};
|
|
36
|
+
const DefaultType = { ...Tooltip__default.default.DefaultType,
|
|
37
|
+
content: '(null|string|element|function)'
|
|
64
38
|
};
|
|
65
39
|
/**
|
|
66
|
-
*
|
|
67
|
-
* Class Definition
|
|
68
|
-
* ------------------------------------------------------------------------
|
|
40
|
+
* Class definition
|
|
69
41
|
*/
|
|
70
42
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return _Tooltip.apply(this, arguments) || this;
|
|
43
|
+
class Popover extends Tooltip__default.default {
|
|
44
|
+
// Getters
|
|
45
|
+
static get Default() {
|
|
46
|
+
return Default;
|
|
76
47
|
}
|
|
77
48
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
_proto.isWithContent = function isWithContent() {
|
|
82
|
-
return this.getTitle() || this._getContent();
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
_proto.addAttachmentClass = function addAttachmentClass(attachment) {
|
|
86
|
-
$__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
_proto.getTipElement = function getTipElement() {
|
|
90
|
-
this.tip = this.tip || $__default['default'](this.config.template)[0];
|
|
91
|
-
return this.tip;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
_proto.setContent = function setContent() {
|
|
95
|
-
var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events
|
|
96
|
-
|
|
97
|
-
this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
|
|
49
|
+
static get DefaultType() {
|
|
50
|
+
return DefaultType;
|
|
51
|
+
}
|
|
98
52
|
|
|
99
|
-
|
|
53
|
+
static get NAME() {
|
|
54
|
+
return NAME;
|
|
55
|
+
} // Overrides
|
|
100
56
|
|
|
101
|
-
if (typeof content === 'function') {
|
|
102
|
-
content = content.call(this.element);
|
|
103
|
-
}
|
|
104
57
|
|
|
105
|
-
|
|
106
|
-
|
|
58
|
+
_isWithContent() {
|
|
59
|
+
return this._getTitle() || this._getContent();
|
|
107
60
|
} // Private
|
|
108
|
-
;
|
|
109
61
|
|
|
110
|
-
_proto._getContent = function _getContent() {
|
|
111
|
-
return this.element.getAttribute('data-content') || this.config.content;
|
|
112
|
-
};
|
|
113
62
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
63
|
+
_getContentForTemplate() {
|
|
64
|
+
return {
|
|
65
|
+
[SELECTOR_TITLE]: this._getTitle(),
|
|
66
|
+
[SELECTOR_CONTENT]: this._getContent()
|
|
67
|
+
};
|
|
68
|
+
}
|
|
117
69
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
70
|
+
_getContent() {
|
|
71
|
+
return this._resolvePossibleFunction(this._config.content);
|
|
121
72
|
} // Static
|
|
122
|
-
;
|
|
123
73
|
|
|
124
|
-
Popover._jQueryInterface = function _jQueryInterface(config) {
|
|
125
|
-
return this.each(function () {
|
|
126
|
-
var data = $__default['default'](this).data(DATA_KEY);
|
|
127
74
|
|
|
128
|
-
|
|
75
|
+
static jQueryInterface(config) {
|
|
76
|
+
return this.each(function () {
|
|
77
|
+
const data = Popover.getOrCreateInstance(this, config);
|
|
129
78
|
|
|
130
|
-
if (
|
|
79
|
+
if (typeof config !== 'string') {
|
|
131
80
|
return;
|
|
132
81
|
}
|
|
133
82
|
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
$__default['default'](this).data(DATA_KEY, data);
|
|
83
|
+
if (typeof data[config] === 'undefined') {
|
|
84
|
+
throw new TypeError(`No method named "${config}"`);
|
|
137
85
|
}
|
|
138
86
|
|
|
139
|
-
|
|
140
|
-
if (typeof data[config] === 'undefined') {
|
|
141
|
-
throw new TypeError("No method named \"" + config + "\"");
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
data[config]();
|
|
145
|
-
}
|
|
87
|
+
data[config]();
|
|
146
88
|
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
key: "VERSION",
|
|
151
|
-
// Getters
|
|
152
|
-
get: function get() {
|
|
153
|
-
return VERSION;
|
|
154
|
-
}
|
|
155
|
-
}, {
|
|
156
|
-
key: "Default",
|
|
157
|
-
get: function get() {
|
|
158
|
-
return Default;
|
|
159
|
-
}
|
|
160
|
-
}, {
|
|
161
|
-
key: "NAME",
|
|
162
|
-
get: function get() {
|
|
163
|
-
return NAME;
|
|
164
|
-
}
|
|
165
|
-
}, {
|
|
166
|
-
key: "DATA_KEY",
|
|
167
|
-
get: function get() {
|
|
168
|
-
return DATA_KEY;
|
|
169
|
-
}
|
|
170
|
-
}, {
|
|
171
|
-
key: "Event",
|
|
172
|
-
get: function get() {
|
|
173
|
-
return Event;
|
|
174
|
-
}
|
|
175
|
-
}, {
|
|
176
|
-
key: "EVENT_KEY",
|
|
177
|
-
get: function get() {
|
|
178
|
-
return EVENT_KEY;
|
|
179
|
-
}
|
|
180
|
-
}, {
|
|
181
|
-
key: "DefaultType",
|
|
182
|
-
get: function get() {
|
|
183
|
-
return DefaultType;
|
|
184
|
-
}
|
|
185
|
-
}]);
|
|
186
|
-
|
|
187
|
-
return Popover;
|
|
188
|
-
}(Tooltip__default['default']);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
}
|
|
189
92
|
/**
|
|
190
|
-
* ------------------------------------------------------------------------
|
|
191
93
|
* jQuery
|
|
192
|
-
* ------------------------------------------------------------------------
|
|
193
94
|
*/
|
|
194
95
|
|
|
195
96
|
|
|
196
|
-
|
|
197
|
-
$__default['default'].fn[NAME].Constructor = Popover;
|
|
198
|
-
|
|
199
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
200
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
201
|
-
return Popover._jQueryInterface;
|
|
202
|
-
};
|
|
97
|
+
index.defineJQueryPlugin(Popover);
|
|
203
98
|
|
|
204
99
|
return Popover;
|
|
205
100
|
|
|
206
|
-
}))
|
|
101
|
+
}));
|