@coreui/coreui 4.0.5 → 4.1.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/README.md +4 -7
- package/dist/css/coreui-grid.css +254 -205
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +2 -2
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +255 -206
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +3 -3
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +63 -8
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +2 -2
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +64 -9
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +3 -3
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +181 -81
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +2 -2
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +182 -82
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +3 -3
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +693 -327
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +2 -2
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +676 -325
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +3 -3
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +776 -702
- package/dist/js/coreui.bundle.js.map +1 -1
- package/dist/js/coreui.bundle.min.js +2 -2
- package/dist/js/coreui.bundle.min.js.map +1 -1
- package/dist/js/coreui.esm.js +659 -611
- package/dist/js/coreui.esm.js.map +1 -1
- package/dist/js/coreui.esm.min.js +2 -2
- package/dist/js/coreui.esm.min.js.map +1 -1
- package/dist/js/coreui.js +669 -623
- package/dist/js/coreui.js.map +1 -1
- package/dist/js/coreui.min.js +2 -2
- package/dist/js/coreui.min.js.map +1 -1
- package/js/dist/alert.js +81 -48
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +25 -17
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +22 -12
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +69 -44
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +117 -131
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +5 -5
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +14 -5
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +6 -6
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +53 -8
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +99 -106
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +244 -87
- package/js/dist/modal.js.map +1 -1
- package/js/dist/offcanvas.js +205 -56
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +28 -58
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +40 -30
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/tab.js +44 -22
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +127 -29
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +122 -104
- package/js/dist/tooltip.js.map +1 -1
- package/js/src/alert.js +21 -47
- package/js/src/base-component.js +3 -3
- package/js/src/button.js +1 -1
- package/js/src/carousel.js +9 -4
- package/js/src/collapse.js +66 -119
- package/js/src/dom/data.js +1 -1
- package/js/src/dom/event-handler.js +1 -2
- package/js/src/dom/manipulator.js +3 -3
- package/js/src/dom/selector-engine.js +18 -1
- package/js/src/dropdown.js +53 -68
- package/js/src/modal.js +24 -35
- package/js/src/navigation.js +1 -1
- package/js/src/offcanvas.js +16 -18
- package/js/src/popover.js +7 -49
- package/js/src/scrollspy.js +1 -1
- package/js/src/sidebar.js +3 -3
- package/js/src/tab.js +1 -1
- package/js/src/toast.js +11 -11
- package/js/src/tooltip.js +66 -50
- package/js/src/util/backdrop.js +6 -5
- package/js/src/util/component-functions.js +34 -0
- package/js/src/util/focustrap.js +105 -0
- package/js/src/util/index.js +14 -5
- package/js/src/util/sanitizer.js +21 -22
- package/js/src/util/scrollbar.js +1 -1
- package/package.json +47 -44
- package/scss/_buttons.scss +1 -2
- package/scss/_card.scss +2 -1
- package/scss/_dropdown.scss +1 -1
- package/scss/_functions.scss +51 -12
- package/scss/_grid.scss +0 -23
- package/scss/_helpers.scss +2 -0
- package/scss/_mixins.scss +1 -0
- package/scss/_modal.scss +1 -11
- package/scss/_navbar.scss +30 -1
- package/scss/_offcanvas.scss +6 -2
- package/scss/_placeholders.scss +51 -0
- package/scss/_reboot.scss +12 -8
- package/scss/_root.scss +36 -7
- package/scss/_tables.scss +9 -5
- package/scss/_toasts.scss +2 -2
- package/scss/_transitions.scss +6 -0
- package/scss/_utilities.scss +31 -8
- package/scss/_variables.scss +184 -12
- package/scss/coreui-grid.rtl.scss +1 -1
- package/scss/coreui-grid.scss +3 -1
- package/scss/coreui-reboot.rtl.scss +1 -1
- package/scss/coreui-reboot.scss +2 -4
- package/scss/coreui-utilities.rtl.scss +1 -1
- package/scss/coreui-utilities.scss +1 -1
- package/scss/coreui.rtl.scss +1 -1
- package/scss/coreui.scss +2 -1
- package/scss/forms/_form-control.scss +1 -1
- package/scss/forms/_form-select.scss +2 -0
- package/scss/helpers/_stacks.scss +15 -0
- package/scss/helpers/_vr.scss +8 -0
- package/scss/mixins/_backdrop.scss +14 -0
- package/scss/mixins/_grid.scss +26 -7
- package/scss/mixins/_ltr-rtl.scss +21 -0
- package/scss/mixins/_utilities.scss +26 -26
- package/scss/mixins/_visually-hidden.scss +1 -1
package/js/src/modal.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): modal.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's modal.js
|
|
@@ -22,6 +22,8 @@ import SelectorEngine from './dom/selector-engine'
|
|
|
22
22
|
import ScrollBarHelper from './util/scrollbar'
|
|
23
23
|
import BaseComponent from './base-component'
|
|
24
24
|
import Backdrop from './util/backdrop'
|
|
25
|
+
import FocusTrap from './util/focustrap'
|
|
26
|
+
import { enableDismissTrigger } from './util/component-functions'
|
|
25
27
|
|
|
26
28
|
/**
|
|
27
29
|
* ------------------------------------------------------------------------
|
|
@@ -52,7 +54,6 @@ const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`
|
|
|
52
54
|
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
|
|
53
55
|
const EVENT_SHOW = `show${EVENT_KEY}`
|
|
54
56
|
const EVENT_SHOWN = `shown${EVENT_KEY}`
|
|
55
|
-
const EVENT_FOCUSIN = `focusin${EVENT_KEY}`
|
|
56
57
|
const EVENT_RESIZE = `resize${EVENT_KEY}`
|
|
57
58
|
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`
|
|
58
59
|
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`
|
|
@@ -65,10 +66,10 @@ const CLASS_NAME_FADE = 'fade'
|
|
|
65
66
|
const CLASS_NAME_SHOW = 'show'
|
|
66
67
|
const CLASS_NAME_STATIC = 'modal-static'
|
|
67
68
|
|
|
69
|
+
const OPEN_SELECTOR = '.modal.show'
|
|
68
70
|
const SELECTOR_DIALOG = '.modal-dialog'
|
|
69
71
|
const SELECTOR_MODAL_BODY = '.modal-body'
|
|
70
72
|
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle="modal"]'
|
|
71
|
-
const SELECTOR_DATA_DISMISS = '[data-coreui-dismiss="modal"]'
|
|
72
73
|
|
|
73
74
|
/**
|
|
74
75
|
* ------------------------------------------------------------------------
|
|
@@ -83,6 +84,7 @@ class Modal extends BaseComponent {
|
|
|
83
84
|
this._config = this._getConfig(config)
|
|
84
85
|
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)
|
|
85
86
|
this._backdrop = this._initializeBackDrop()
|
|
87
|
+
this._focustrap = this._initializeFocusTrap()
|
|
86
88
|
this._isShown = false
|
|
87
89
|
this._ignoreBackdropClick = false
|
|
88
90
|
this._isTransitioning = false
|
|
@@ -133,8 +135,6 @@ class Modal extends BaseComponent {
|
|
|
133
135
|
this._setEscapeEvent()
|
|
134
136
|
this._setResizeEvent()
|
|
135
137
|
|
|
136
|
-
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))
|
|
137
|
-
|
|
138
138
|
EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {
|
|
139
139
|
EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {
|
|
140
140
|
if (event.target === this._element) {
|
|
@@ -146,11 +146,7 @@ class Modal extends BaseComponent {
|
|
|
146
146
|
this._showBackdrop(() => this._showElement(relatedTarget))
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
hide(
|
|
150
|
-
if (event && ['A', 'AREA'].includes(event.target.tagName)) {
|
|
151
|
-
event.preventDefault()
|
|
152
|
-
}
|
|
153
|
-
|
|
149
|
+
hide() {
|
|
154
150
|
if (!this._isShown || this._isTransitioning) {
|
|
155
151
|
return
|
|
156
152
|
}
|
|
@@ -171,7 +167,7 @@ class Modal extends BaseComponent {
|
|
|
171
167
|
this._setEscapeEvent()
|
|
172
168
|
this._setResizeEvent()
|
|
173
169
|
|
|
174
|
-
|
|
170
|
+
this._focustrap.deactivate()
|
|
175
171
|
|
|
176
172
|
this._element.classList.remove(CLASS_NAME_SHOW)
|
|
177
173
|
|
|
@@ -186,14 +182,8 @@ class Modal extends BaseComponent {
|
|
|
186
182
|
.forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))
|
|
187
183
|
|
|
188
184
|
this._backdrop.dispose()
|
|
185
|
+
this._focustrap.deactivate()
|
|
189
186
|
super.dispose()
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
|
|
193
|
-
* Do not move `document` in `htmlElements` array
|
|
194
|
-
* It will remove `EVENT_CLICK_DATA_API` event that should remain
|
|
195
|
-
*/
|
|
196
|
-
EventHandler.off(document, EVENT_FOCUSIN)
|
|
197
187
|
}
|
|
198
188
|
|
|
199
189
|
handleUpdate() {
|
|
@@ -209,6 +199,12 @@ class Modal extends BaseComponent {
|
|
|
209
199
|
})
|
|
210
200
|
}
|
|
211
201
|
|
|
202
|
+
_initializeFocusTrap() {
|
|
203
|
+
return new FocusTrap({
|
|
204
|
+
trapElement: this._element
|
|
205
|
+
})
|
|
206
|
+
}
|
|
207
|
+
|
|
212
208
|
_getConfig(config) {
|
|
213
209
|
config = {
|
|
214
210
|
...Default,
|
|
@@ -225,7 +221,7 @@ class Modal extends BaseComponent {
|
|
|
225
221
|
|
|
226
222
|
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
|
227
223
|
// Don't move modal's DOM position
|
|
228
|
-
document.body.
|
|
224
|
+
document.body.append(this._element)
|
|
229
225
|
}
|
|
230
226
|
|
|
231
227
|
this._element.style.display = 'block'
|
|
@@ -244,13 +240,9 @@ class Modal extends BaseComponent {
|
|
|
244
240
|
|
|
245
241
|
this._element.classList.add(CLASS_NAME_SHOW)
|
|
246
242
|
|
|
247
|
-
if (this._config.focus) {
|
|
248
|
-
this._enforceFocus()
|
|
249
|
-
}
|
|
250
|
-
|
|
251
243
|
const transitionComplete = () => {
|
|
252
244
|
if (this._config.focus) {
|
|
253
|
-
this.
|
|
245
|
+
this._focustrap.activate()
|
|
254
246
|
}
|
|
255
247
|
|
|
256
248
|
this._isTransitioning = false
|
|
@@ -262,17 +254,6 @@ class Modal extends BaseComponent {
|
|
|
262
254
|
this._queueCallback(transitionComplete, this._dialog, isAnimated)
|
|
263
255
|
}
|
|
264
256
|
|
|
265
|
-
_enforceFocus() {
|
|
266
|
-
EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop
|
|
267
|
-
EventHandler.on(document, EVENT_FOCUSIN, event => {
|
|
268
|
-
if (document !== event.target &&
|
|
269
|
-
this._element !== event.target &&
|
|
270
|
-
!this._element.contains(event.target)) {
|
|
271
|
-
this._element.focus()
|
|
272
|
-
}
|
|
273
|
-
})
|
|
274
|
-
}
|
|
275
|
-
|
|
276
257
|
_setEscapeEvent() {
|
|
277
258
|
if (this._isShown) {
|
|
278
259
|
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
@@ -434,11 +415,19 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (
|
|
|
434
415
|
})
|
|
435
416
|
})
|
|
436
417
|
|
|
418
|
+
// avoid conflict when clicking moddal toggler while another one is open
|
|
419
|
+
const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)
|
|
420
|
+
if (allReadyOpen) {
|
|
421
|
+
Modal.getInstance(allReadyOpen).hide()
|
|
422
|
+
}
|
|
423
|
+
|
|
437
424
|
const data = Modal.getOrCreateInstance(target)
|
|
438
425
|
|
|
439
426
|
data.toggle(this)
|
|
440
427
|
})
|
|
441
428
|
|
|
429
|
+
enableDismissTrigger(Modal)
|
|
430
|
+
|
|
442
431
|
/**
|
|
443
432
|
* ------------------------------------------------------------------------
|
|
444
433
|
* jQuery
|
package/js/src/navigation.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): navigation.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
* --------------------------------------------------------------------------
|
|
6
6
|
*/
|
package/js/src/offcanvas.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): dropdown.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's offcanvas.js
|
|
@@ -21,6 +21,8 @@ import BaseComponent from './base-component'
|
|
|
21
21
|
import SelectorEngine from './dom/selector-engine'
|
|
22
22
|
import Manipulator from './dom/manipulator'
|
|
23
23
|
import Backdrop from './util/backdrop'
|
|
24
|
+
import FocusTrap from './util/focustrap'
|
|
25
|
+
import { enableDismissTrigger } from './util/component-functions'
|
|
24
26
|
|
|
25
27
|
/**
|
|
26
28
|
* ------------------------------------------------------------------------
|
|
@@ -48,18 +50,16 @@ const DefaultType = {
|
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
const CLASS_NAME_SHOW = 'show'
|
|
53
|
+
const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'
|
|
51
54
|
const OPEN_SELECTOR = '.offcanvas.show'
|
|
52
55
|
|
|
53
56
|
const EVENT_SHOW = `show${EVENT_KEY}`
|
|
54
57
|
const EVENT_SHOWN = `shown${EVENT_KEY}`
|
|
55
58
|
const EVENT_HIDE = `hide${EVENT_KEY}`
|
|
56
59
|
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
|
|
57
|
-
const EVENT_FOCUSIN = `focusin${EVENT_KEY}`
|
|
58
60
|
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
|
|
59
|
-
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`
|
|
60
61
|
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`
|
|
61
62
|
|
|
62
|
-
const SELECTOR_DATA_DISMISS = '[data-coreui-dismiss="offcanvas"]'
|
|
63
63
|
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle="offcanvas"]'
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -75,6 +75,7 @@ class Offcanvas extends BaseComponent {
|
|
|
75
75
|
this._config = this._getConfig(config)
|
|
76
76
|
this._isShown = false
|
|
77
77
|
this._backdrop = this._initializeBackDrop()
|
|
78
|
+
this._focustrap = this._initializeFocusTrap()
|
|
78
79
|
this._addEventListeners()
|
|
79
80
|
}
|
|
80
81
|
|
|
@@ -112,7 +113,6 @@ class Offcanvas extends BaseComponent {
|
|
|
112
113
|
|
|
113
114
|
if (!this._config.scroll) {
|
|
114
115
|
new ScrollBarHelper().hide()
|
|
115
|
-
this._enforceFocusOnElement(this._element)
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
this._element.removeAttribute('aria-hidden')
|
|
@@ -121,6 +121,10 @@ class Offcanvas extends BaseComponent {
|
|
|
121
121
|
this._element.classList.add(CLASS_NAME_SHOW)
|
|
122
122
|
|
|
123
123
|
const completeCallBack = () => {
|
|
124
|
+
if (!this._config.scroll) {
|
|
125
|
+
this._focustrap.activate()
|
|
126
|
+
}
|
|
127
|
+
|
|
124
128
|
EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })
|
|
125
129
|
}
|
|
126
130
|
|
|
@@ -138,7 +142,7 @@ class Offcanvas extends BaseComponent {
|
|
|
138
142
|
return
|
|
139
143
|
}
|
|
140
144
|
|
|
141
|
-
|
|
145
|
+
this._focustrap.deactivate()
|
|
142
146
|
this._element.blur()
|
|
143
147
|
this._isShown = false
|
|
144
148
|
this._element.classList.remove(CLASS_NAME_SHOW)
|
|
@@ -162,8 +166,8 @@ class Offcanvas extends BaseComponent {
|
|
|
162
166
|
|
|
163
167
|
dispose() {
|
|
164
168
|
this._backdrop.dispose()
|
|
169
|
+
this._focustrap.deactivate()
|
|
165
170
|
super.dispose()
|
|
166
|
-
EventHandler.off(document, EVENT_FOCUSIN)
|
|
167
171
|
}
|
|
168
172
|
|
|
169
173
|
// Private
|
|
@@ -180,6 +184,7 @@ class Offcanvas extends BaseComponent {
|
|
|
180
184
|
|
|
181
185
|
_initializeBackDrop() {
|
|
182
186
|
return new Backdrop({
|
|
187
|
+
className: CLASS_NAME_BACKDROP,
|
|
183
188
|
isVisible: this._config.backdrop,
|
|
184
189
|
isAnimated: true,
|
|
185
190
|
rootElement: this._element.parentNode,
|
|
@@ -187,21 +192,13 @@ class Offcanvas extends BaseComponent {
|
|
|
187
192
|
})
|
|
188
193
|
}
|
|
189
194
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if (document !== event.target &&
|
|
194
|
-
element !== event.target &&
|
|
195
|
-
!element.contains(event.target)) {
|
|
196
|
-
element.focus()
|
|
197
|
-
}
|
|
195
|
+
_initializeFocusTrap() {
|
|
196
|
+
return new FocusTrap({
|
|
197
|
+
trapElement: this._element
|
|
198
198
|
})
|
|
199
|
-
element.focus()
|
|
200
199
|
}
|
|
201
200
|
|
|
202
201
|
_addEventListeners() {
|
|
203
|
-
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())
|
|
204
|
-
|
|
205
202
|
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
206
203
|
if (this._config.keyboard && event.key === ESCAPE_KEY) {
|
|
207
204
|
this.hide()
|
|
@@ -266,6 +263,7 @@ EventHandler.on(window, EVENT_LOAD_DATA_API, () =>
|
|
|
266
263
|
SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show())
|
|
267
264
|
)
|
|
268
265
|
|
|
266
|
+
enableDismissTrigger(Offcanvas)
|
|
269
267
|
/**
|
|
270
268
|
* ------------------------------------------------------------------------
|
|
271
269
|
* jQuery
|
package/js/src/popover.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): popover.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's popover.js
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { defineJQueryPlugin } from './util/index'
|
|
12
|
-
import SelectorEngine from './dom/selector-engine'
|
|
13
12
|
import Tooltip from './tooltip'
|
|
14
13
|
|
|
15
14
|
/**
|
|
@@ -22,7 +21,6 @@ const NAME = 'popover'
|
|
|
22
21
|
const DATA_KEY = 'coreui.popover'
|
|
23
22
|
const EVENT_KEY = `.${DATA_KEY}`
|
|
24
23
|
const CLASS_PREFIX = 'bs-popover'
|
|
25
|
-
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
|
|
26
24
|
|
|
27
25
|
const Default = {
|
|
28
26
|
...Tooltip.Default,
|
|
@@ -55,9 +53,6 @@ const Event = {
|
|
|
55
53
|
MOUSELEAVE: `mouseleave${EVENT_KEY}`
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
const CLASS_NAME_FADE = 'fade'
|
|
59
|
-
const CLASS_NAME_SHOW = 'show'
|
|
60
|
-
|
|
61
56
|
const SELECTOR_TITLE = '.popover-header'
|
|
62
57
|
const SELECTOR_CONTENT = '.popover-body'
|
|
63
58
|
|
|
@@ -92,56 +87,19 @@ class Popover extends Tooltip {
|
|
|
92
87
|
return this.getTitle() || this._getContent()
|
|
93
88
|
}
|
|
94
89
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
this.tip = super.getTipElement()
|
|
101
|
-
|
|
102
|
-
if (!this.getTitle()) {
|
|
103
|
-
SelectorEngine.findOne(SELECTOR_TITLE, this.tip).remove()
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (!this._getContent()) {
|
|
107
|
-
SelectorEngine.findOne(SELECTOR_CONTENT, this.tip).remove()
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return this.tip
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
setContent() {
|
|
114
|
-
const tip = this.getTipElement()
|
|
115
|
-
|
|
116
|
-
// we use append for html objects to maintain js events
|
|
117
|
-
this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())
|
|
118
|
-
let content = this._getContent()
|
|
119
|
-
if (typeof content === 'function') {
|
|
120
|
-
content = content.call(this._element)
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)
|
|
124
|
-
|
|
125
|
-
tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)
|
|
90
|
+
setContent(tip) {
|
|
91
|
+
this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE)
|
|
92
|
+
this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT)
|
|
126
93
|
}
|
|
127
94
|
|
|
128
95
|
// Private
|
|
129
96
|
|
|
130
|
-
_addAttachmentClass(attachment) {
|
|
131
|
-
this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)
|
|
132
|
-
}
|
|
133
|
-
|
|
134
97
|
_getContent() {
|
|
135
|
-
return this.
|
|
98
|
+
return this._resolvePossibleFunction(this._config.content)
|
|
136
99
|
}
|
|
137
100
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)
|
|
141
|
-
if (tabClass !== null && tabClass.length > 0) {
|
|
142
|
-
tabClass.map(token => token.trim())
|
|
143
|
-
.forEach(tClass => tip.classList.remove(tClass))
|
|
144
|
-
}
|
|
101
|
+
_getBasicClassPrefix() {
|
|
102
|
+
return CLASS_PREFIX
|
|
145
103
|
}
|
|
146
104
|
|
|
147
105
|
// Static
|
package/js/src/scrollspy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): scrollspy.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's scrollspy.js
|
package/js/src/sidebar.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): sidebar.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
* --------------------------------------------------------------------------
|
|
6
6
|
*/
|
|
@@ -236,7 +236,7 @@ class Sidebar extends BaseComponent {
|
|
|
236
236
|
|
|
237
237
|
_removeBackdrop() {
|
|
238
238
|
if (this._backdrop) {
|
|
239
|
-
this._backdrop.
|
|
239
|
+
this._backdrop.remove()
|
|
240
240
|
this._backdrop = null
|
|
241
241
|
}
|
|
242
242
|
}
|
|
@@ -246,7 +246,7 @@ class Sidebar extends BaseComponent {
|
|
|
246
246
|
this._backdrop = document.createElement('div')
|
|
247
247
|
this._backdrop.className = CLASS_NAME_BACKDROP
|
|
248
248
|
this._backdrop.classList.add(CLASS_NAME_FADE)
|
|
249
|
-
document.body.
|
|
249
|
+
document.body.append(this._backdrop)
|
|
250
250
|
reflow(this._backdrop)
|
|
251
251
|
this._backdrop.classList.add(CLASS_NAME_SHOW)
|
|
252
252
|
}
|
package/js/src/tab.js
CHANGED
package/js/src/toast.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.0
|
|
3
|
+
* CoreUI (v4.1.0): toast.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's toast.js
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
import EventHandler from './dom/event-handler'
|
|
17
17
|
import Manipulator from './dom/manipulator'
|
|
18
18
|
import BaseComponent from './base-component'
|
|
19
|
+
import { enableDismissTrigger } from './util/component-functions'
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* ------------------------------------------------------------------------
|
|
@@ -27,7 +28,6 @@ const NAME = 'toast'
|
|
|
27
28
|
const DATA_KEY = 'coreui.toast'
|
|
28
29
|
const EVENT_KEY = `.${DATA_KEY}`
|
|
29
30
|
|
|
30
|
-
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`
|
|
31
31
|
const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`
|
|
32
32
|
const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`
|
|
33
33
|
const EVENT_FOCUSIN = `focusin${EVENT_KEY}`
|
|
@@ -38,7 +38,7 @@ const EVENT_SHOW = `show${EVENT_KEY}`
|
|
|
38
38
|
const EVENT_SHOWN = `shown${EVENT_KEY}`
|
|
39
39
|
|
|
40
40
|
const CLASS_NAME_FADE = 'fade'
|
|
41
|
-
const CLASS_NAME_HIDE = 'hide'
|
|
41
|
+
const CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility
|
|
42
42
|
const CLASS_NAME_SHOW = 'show'
|
|
43
43
|
const CLASS_NAME_SHOWING = 'showing'
|
|
44
44
|
|
|
@@ -54,8 +54,6 @@ const Default = {
|
|
|
54
54
|
delay: 5000
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
const SELECTOR_DATA_DISMISS = '[data-coreui-dismiss="toast"]'
|
|
58
|
-
|
|
59
57
|
/**
|
|
60
58
|
* ------------------------------------------------------------------------
|
|
61
59
|
* Class Definition
|
|
@@ -104,15 +102,14 @@ class Toast extends BaseComponent {
|
|
|
104
102
|
|
|
105
103
|
const complete = () => {
|
|
106
104
|
this._element.classList.remove(CLASS_NAME_SHOWING)
|
|
107
|
-
this._element.classList.add(CLASS_NAME_SHOW)
|
|
108
|
-
|
|
109
105
|
EventHandler.trigger(this._element, EVENT_SHOWN)
|
|
110
106
|
|
|
111
107
|
this._maybeScheduleHide()
|
|
112
108
|
}
|
|
113
109
|
|
|
114
|
-
this._element.classList.remove(CLASS_NAME_HIDE)
|
|
110
|
+
this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated
|
|
115
111
|
reflow(this._element)
|
|
112
|
+
this._element.classList.add(CLASS_NAME_SHOW)
|
|
116
113
|
this._element.classList.add(CLASS_NAME_SHOWING)
|
|
117
114
|
|
|
118
115
|
this._queueCallback(complete, this._element, this._config.animation)
|
|
@@ -130,11 +127,13 @@ class Toast extends BaseComponent {
|
|
|
130
127
|
}
|
|
131
128
|
|
|
132
129
|
const complete = () => {
|
|
133
|
-
this._element.classList.add(CLASS_NAME_HIDE)
|
|
130
|
+
this._element.classList.add(CLASS_NAME_HIDE) // @deprecated
|
|
131
|
+
this._element.classList.remove(CLASS_NAME_SHOWING)
|
|
132
|
+
this._element.classList.remove(CLASS_NAME_SHOW)
|
|
134
133
|
EventHandler.trigger(this._element, EVENT_HIDDEN)
|
|
135
134
|
}
|
|
136
135
|
|
|
137
|
-
this._element.classList.
|
|
136
|
+
this._element.classList.add(CLASS_NAME_SHOWING)
|
|
138
137
|
this._queueCallback(complete, this._element, this._config.animation)
|
|
139
138
|
}
|
|
140
139
|
|
|
@@ -204,7 +203,6 @@ class Toast extends BaseComponent {
|
|
|
204
203
|
}
|
|
205
204
|
|
|
206
205
|
_setListeners() {
|
|
207
|
-
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())
|
|
208
206
|
EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))
|
|
209
207
|
EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))
|
|
210
208
|
EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))
|
|
@@ -233,6 +231,8 @@ class Toast extends BaseComponent {
|
|
|
233
231
|
}
|
|
234
232
|
}
|
|
235
233
|
|
|
234
|
+
enableDismissTrigger(Toast)
|
|
235
|
+
|
|
236
236
|
/**
|
|
237
237
|
* ------------------------------------------------------------------------
|
|
238
238
|
* jQuery
|