@coreui/coreui 4.1.5 → 4.2.1
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/LICENSE +2 -2
- package/README.md +64 -11
- package/dist/css/coreui-grid.css +23 -949
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +3 -3
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +25 -951
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +5 -5
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +35 -42
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +3 -3
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +36 -44
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +5 -5
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +279 -951
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +3 -3
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +275 -953
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +5 -5
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +2179 -2259
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +3 -3
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +2166 -2253
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +5 -5
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +2095 -1906
- 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 +2098 -1909
- 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 +2099 -1910
- 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 +10 -148
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +36 -122
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +9 -76
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +212 -507
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +64 -251
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +2 -4
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +82 -133
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +22 -26
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +16 -81
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +99 -338
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +106 -774
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +309 -0
- package/js/dist/navigation.js.map +1 -0
- package/js/dist/offcanvas.js +88 -680
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +35 -120
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +178 -264
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +347 -0
- package/js/dist/sidebar.js.map +1 -0
- package/js/dist/tab.js +226 -216
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +27 -216
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +271 -618
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +166 -0
- package/js/dist/util/backdrop.js.map +1 -0
- package/js/dist/util/component-functions.js +47 -0
- package/js/dist/util/component-functions.js.map +1 -0
- package/js/dist/util/config.js +80 -0
- package/js/dist/util/config.js.map +1 -0
- package/js/dist/util/focustrap.js +130 -0
- package/js/dist/util/focustrap.js.map +1 -0
- package/js/dist/util/index.js +354 -0
- package/js/dist/util/index.js.map +1 -0
- package/js/dist/util/sanitizer.js +126 -0
- package/js/dist/util/sanitizer.js.map +1 -0
- package/js/dist/util/scrollbar.js +139 -0
- package/js/dist/util/scrollbar.js.map +1 -0
- package/js/dist/util/swipe.js +156 -0
- package/js/dist/util/swipe.js.map +1 -0
- package/js/dist/util/template-factory.js +178 -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 -15
- package/js/src/carousel.js +203 -320
- package/js/src/collapse.js +61 -94
- package/js/src/dom/data.js +1 -3
- package/js/src/dom/event-handler.js +74 -107
- 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/navigation.js +12 -13
- package/js/src/offcanvas.js +71 -60
- package/js/src/popover.js +31 -62
- package/js/src/scrollspy.js +166 -171
- package/js/src/sidebar.js +5 -8
- package/js/src/tab.js +201 -110
- package/js/src/toast.js +19 -41
- package/js/src/tooltip.js +264 -374
- 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 +41 -57
- package/js/src/util/sanitizer.js +9 -17
- 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 +40 -40
- package/scss/_accordion.scss +53 -25
- package/scss/_alert.scss +29 -9
- package/scss/_badge.scss +15 -6
- package/scss/_breadcrumb.scss +23 -11
- package/scss/_button-group.scss +3 -0
- package/scss/_buttons.scss +77 -50
- package/scss/_callout.scss +18 -6
- package/scss/_card.scss +55 -37
- package/scss/_carousel.scss +6 -6
- package/scss/_close.scss +4 -4
- package/scss/_containers.scss +1 -1
- package/scss/_dropdown.scss +86 -64
- package/scss/_footer.scss +15 -5
- package/scss/_functions.scss +11 -24
- package/scss/_grid.scss +3 -3
- package/scss/_header.scss +59 -34
- package/scss/_helpers.scss +1 -0
- package/scss/_images.scss +3 -3
- package/scss/_list-group.scss +47 -29
- package/scss/_maps.scss +54 -0
- package/scss/_modal.scss +70 -43
- package/scss/_nav.scss +53 -20
- package/scss/_navbar.scss +84 -94
- package/scss/_offcanvas.scss +120 -60
- package/scss/_pagination.scss +66 -21
- package/scss/_popover.scss +90 -52
- package/scss/_progress.scss +20 -9
- package/scss/_reboot.scss +31 -58
- package/scss/_root.scss +41 -21
- package/scss/_spinners.scss +37 -21
- package/scss/_subheader.scss +9 -9
- package/scss/_tables.scss +34 -36
- package/scss/_toasts.scss +35 -19
- package/scss/_tooltip.scss +61 -56
- package/scss/_utilities.scss +42 -27
- package/scss/_variables.scss +169 -148
- package/scss/coreui-grid.rtl.scss +2 -2
- package/scss/coreui-grid.scss +3 -2
- package/scss/coreui-reboot.rtl.scss +2 -2
- package/scss/coreui-reboot.scss +2 -2
- package/scss/coreui-utilities.rtl.scss +2 -2
- package/scss/coreui-utilities.scss +3 -2
- package/scss/coreui.rtl.scss +2 -2
- package/scss/coreui.scss +3 -2
- package/scss/forms/_floating-labels.scss +14 -3
- package/scss/forms/_form-check.scss +42 -19
- package/scss/forms/_form-control.scss +25 -50
- package/scss/forms/_form-range.scss +8 -8
- package/scss/forms/_form-select.scss +8 -8
- package/scss/forms/_form-text.scss +1 -1
- package/scss/forms/_input-group.scss +3 -3
- package/scss/forms/_labels.scss +2 -2
- 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 -0
- package/scss/mixins/_alert.scss +10 -10
- package/scss/mixins/_breakpoints.scss +8 -8
- package/scss/mixins/_buttons.scss +45 -47
- package/scss/mixins/_container.scss +4 -2
- package/scss/mixins/_css-vars.scss +47 -47
- package/scss/mixins/_forms.scss +8 -0
- package/scss/mixins/_gradients.scss +1 -1
- package/scss/mixins/_grid.scss +11 -11
- package/scss/mixins/_list-group.scss +7 -9
- package/scss/mixins/_pagination.scss +4 -25
- package/scss/mixins/_table-variants.scss +20 -12
- package/scss/mixins/_utilities.scss +8 -3
- package/scss/sidebar/_sidebar-narrow.scss +10 -10
- package/scss/sidebar/_sidebar-nav.scss +33 -32
- package/scss/sidebar/_sidebar.scss +110 -56
package/js/src/offcanvas.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.1
|
|
3
|
+
* CoreUI (v4.2.1): 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
|
|
@@ -12,22 +12,18 @@ import {
|
|
|
12
12
|
defineJQueryPlugin,
|
|
13
13
|
getElementFromSelector,
|
|
14
14
|
isDisabled,
|
|
15
|
-
isVisible
|
|
16
|
-
typeCheckConfig
|
|
15
|
+
isVisible
|
|
17
16
|
} from './util/index'
|
|
18
17
|
import ScrollBarHelper from './util/scrollbar'
|
|
19
18
|
import EventHandler from './dom/event-handler'
|
|
20
19
|
import BaseComponent from './base-component'
|
|
21
20
|
import SelectorEngine from './dom/selector-engine'
|
|
22
|
-
import Manipulator from './dom/manipulator'
|
|
23
21
|
import Backdrop from './util/backdrop'
|
|
24
22
|
import FocusTrap from './util/focustrap'
|
|
25
23
|
import { enableDismissTrigger } from './util/component-functions'
|
|
26
24
|
|
|
27
25
|
/**
|
|
28
|
-
* ------------------------------------------------------------------------
|
|
29
26
|
* Constants
|
|
30
|
-
* ------------------------------------------------------------------------
|
|
31
27
|
*/
|
|
32
28
|
|
|
33
29
|
const NAME = 'offcanvas'
|
|
@@ -37,42 +33,43 @@ const DATA_API_KEY = '.data-api'
|
|
|
37
33
|
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`
|
|
38
34
|
const ESCAPE_KEY = 'Escape'
|
|
39
35
|
|
|
40
|
-
const Default = {
|
|
41
|
-
backdrop: true,
|
|
42
|
-
keyboard: true,
|
|
43
|
-
scroll: false
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const DefaultType = {
|
|
47
|
-
backdrop: 'boolean',
|
|
48
|
-
keyboard: 'boolean',
|
|
49
|
-
scroll: 'boolean'
|
|
50
|
-
}
|
|
51
|
-
|
|
52
36
|
const CLASS_NAME_SHOW = 'show'
|
|
37
|
+
const CLASS_NAME_SHOWING = 'showing'
|
|
38
|
+
const CLASS_NAME_HIDING = 'hiding'
|
|
53
39
|
const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'
|
|
54
40
|
const OPEN_SELECTOR = '.offcanvas.show'
|
|
55
41
|
|
|
56
42
|
const EVENT_SHOW = `show${EVENT_KEY}`
|
|
57
43
|
const EVENT_SHOWN = `shown${EVENT_KEY}`
|
|
58
44
|
const EVENT_HIDE = `hide${EVENT_KEY}`
|
|
45
|
+
const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`
|
|
59
46
|
const EVENT_HIDDEN = `hidden${EVENT_KEY}`
|
|
47
|
+
const EVENT_RESIZE = `resize${EVENT_KEY}`
|
|
60
48
|
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
|
|
61
49
|
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`
|
|
62
50
|
|
|
63
51
|
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle="offcanvas"]'
|
|
64
52
|
|
|
53
|
+
const Default = {
|
|
54
|
+
backdrop: true,
|
|
55
|
+
keyboard: true,
|
|
56
|
+
scroll: false
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const DefaultType = {
|
|
60
|
+
backdrop: '(boolean|string)',
|
|
61
|
+
keyboard: 'boolean',
|
|
62
|
+
scroll: 'boolean'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
* Class Definition
|
|
68
|
-
* ------------------------------------------------------------------------
|
|
66
|
+
* Class definition
|
|
69
67
|
*/
|
|
70
68
|
|
|
71
69
|
class Offcanvas extends BaseComponent {
|
|
72
70
|
constructor(element, config) {
|
|
73
|
-
super(element)
|
|
71
|
+
super(element, config)
|
|
74
72
|
|
|
75
|
-
this._config = this._getConfig(config)
|
|
76
73
|
this._isShown = false
|
|
77
74
|
this._backdrop = this._initializeBackDrop()
|
|
78
75
|
this._focustrap = this._initializeFocusTrap()
|
|
@@ -80,17 +77,19 @@ class Offcanvas extends BaseComponent {
|
|
|
80
77
|
}
|
|
81
78
|
|
|
82
79
|
// Getters
|
|
80
|
+
static get Default() {
|
|
81
|
+
return Default
|
|
82
|
+
}
|
|
83
83
|
|
|
84
|
-
static get
|
|
85
|
-
return
|
|
84
|
+
static get DefaultType() {
|
|
85
|
+
return DefaultType
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
static get
|
|
89
|
-
return
|
|
88
|
+
static get NAME() {
|
|
89
|
+
return NAME
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
// Public
|
|
93
|
-
|
|
94
93
|
toggle(relatedTarget) {
|
|
95
94
|
return this._isShown ? this.hide() : this.show(relatedTarget)
|
|
96
95
|
}
|
|
@@ -107,24 +106,23 @@ class Offcanvas extends BaseComponent {
|
|
|
107
106
|
}
|
|
108
107
|
|
|
109
108
|
this._isShown = true
|
|
110
|
-
this._element.style.visibility = 'visible'
|
|
111
|
-
|
|
112
109
|
this._backdrop.show()
|
|
113
110
|
|
|
114
111
|
if (!this._config.scroll) {
|
|
115
112
|
new ScrollBarHelper().hide()
|
|
116
113
|
}
|
|
117
114
|
|
|
118
|
-
this._element.removeAttribute('aria-hidden')
|
|
119
115
|
this._element.setAttribute('aria-modal', true)
|
|
120
116
|
this._element.setAttribute('role', 'dialog')
|
|
121
|
-
this._element.classList.add(
|
|
117
|
+
this._element.classList.add(CLASS_NAME_SHOWING)
|
|
122
118
|
|
|
123
119
|
const completeCallBack = () => {
|
|
124
120
|
if (!this._config.scroll) {
|
|
125
121
|
this._focustrap.activate()
|
|
126
122
|
}
|
|
127
123
|
|
|
124
|
+
this._element.classList.add(CLASS_NAME_SHOW)
|
|
125
|
+
this._element.classList.remove(CLASS_NAME_SHOWING)
|
|
128
126
|
EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })
|
|
129
127
|
}
|
|
130
128
|
|
|
@@ -145,14 +143,13 @@ class Offcanvas extends BaseComponent {
|
|
|
145
143
|
this._focustrap.deactivate()
|
|
146
144
|
this._element.blur()
|
|
147
145
|
this._isShown = false
|
|
148
|
-
this._element.classList.
|
|
146
|
+
this._element.classList.add(CLASS_NAME_HIDING)
|
|
149
147
|
this._backdrop.hide()
|
|
150
148
|
|
|
151
149
|
const completeCallback = () => {
|
|
152
|
-
this._element.
|
|
150
|
+
this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)
|
|
153
151
|
this._element.removeAttribute('aria-modal')
|
|
154
152
|
this._element.removeAttribute('role')
|
|
155
|
-
this._element.style.visibility = 'hidden'
|
|
156
153
|
|
|
157
154
|
if (!this._config.scroll) {
|
|
158
155
|
new ScrollBarHelper().reset()
|
|
@@ -171,24 +168,25 @@ class Offcanvas extends BaseComponent {
|
|
|
171
168
|
}
|
|
172
169
|
|
|
173
170
|
// Private
|
|
171
|
+
_initializeBackDrop() {
|
|
172
|
+
const clickCallback = () => {
|
|
173
|
+
if (this._config.backdrop === 'static') {
|
|
174
|
+
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)
|
|
175
|
+
return
|
|
176
|
+
}
|
|
174
177
|
|
|
175
|
-
|
|
176
|
-
config = {
|
|
177
|
-
...Default,
|
|
178
|
-
...Manipulator.getDataAttributes(this._element),
|
|
179
|
-
...(typeof config === 'object' ? config : {})
|
|
178
|
+
this.hide()
|
|
180
179
|
}
|
|
181
|
-
typeCheckConfig(NAME, config, DefaultType)
|
|
182
|
-
return config
|
|
183
|
-
}
|
|
184
180
|
|
|
185
|
-
|
|
181
|
+
// 'static' option will be translated to true, and booleans will keep their value
|
|
182
|
+
const isVisible = Boolean(this._config.backdrop)
|
|
183
|
+
|
|
186
184
|
return new Backdrop({
|
|
187
185
|
className: CLASS_NAME_BACKDROP,
|
|
188
|
-
isVisible
|
|
186
|
+
isVisible,
|
|
189
187
|
isAnimated: true,
|
|
190
188
|
rootElement: this._element.parentNode,
|
|
191
|
-
clickCallback:
|
|
189
|
+
clickCallback: isVisible ? clickCallback : null
|
|
192
190
|
})
|
|
193
191
|
}
|
|
194
192
|
|
|
@@ -200,14 +198,20 @@ class Offcanvas extends BaseComponent {
|
|
|
200
198
|
|
|
201
199
|
_addEventListeners() {
|
|
202
200
|
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
203
|
-
if (
|
|
204
|
-
|
|
201
|
+
if (event.key !== ESCAPE_KEY) {
|
|
202
|
+
return
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (!this._config.keyboard) {
|
|
206
|
+
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)
|
|
207
|
+
return
|
|
205
208
|
}
|
|
209
|
+
|
|
210
|
+
this.hide()
|
|
206
211
|
})
|
|
207
212
|
}
|
|
208
213
|
|
|
209
214
|
// Static
|
|
210
|
-
|
|
211
215
|
static jQueryInterface(config) {
|
|
212
216
|
return this.each(function () {
|
|
213
217
|
const data = Offcanvas.getOrCreateInstance(this, config)
|
|
@@ -226,9 +230,7 @@ class Offcanvas extends BaseComponent {
|
|
|
226
230
|
}
|
|
227
231
|
|
|
228
232
|
/**
|
|
229
|
-
*
|
|
230
|
-
* Data Api implementation
|
|
231
|
-
* ------------------------------------------------------------------------
|
|
233
|
+
* Data API implementation
|
|
232
234
|
*/
|
|
233
235
|
|
|
234
236
|
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
@@ -250,24 +252,33 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (
|
|
|
250
252
|
})
|
|
251
253
|
|
|
252
254
|
// avoid conflict when clicking a toggler of an offcanvas, while another is open
|
|
253
|
-
const
|
|
254
|
-
if (
|
|
255
|
-
Offcanvas.getInstance(
|
|
255
|
+
const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)
|
|
256
|
+
if (alreadyOpen && alreadyOpen !== target) {
|
|
257
|
+
Offcanvas.getInstance(alreadyOpen).hide()
|
|
256
258
|
}
|
|
257
259
|
|
|
258
260
|
const data = Offcanvas.getOrCreateInstance(target)
|
|
259
261
|
data.toggle(this)
|
|
260
262
|
})
|
|
261
263
|
|
|
262
|
-
EventHandler.on(window, EVENT_LOAD_DATA_API, () =>
|
|
263
|
-
SelectorEngine.find(OPEN_SELECTOR)
|
|
264
|
-
)
|
|
264
|
+
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
|
|
265
|
+
for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
|
|
266
|
+
Offcanvas.getOrCreateInstance(selector).show()
|
|
267
|
+
}
|
|
268
|
+
})
|
|
269
|
+
|
|
270
|
+
EventHandler.on(window, EVENT_RESIZE, () => {
|
|
271
|
+
for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {
|
|
272
|
+
if (getComputedStyle(element).position !== 'fixed') {
|
|
273
|
+
Offcanvas.getOrCreateInstance(element).hide()
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
})
|
|
265
277
|
|
|
266
278
|
enableDismissTrigger(Offcanvas)
|
|
279
|
+
|
|
267
280
|
/**
|
|
268
|
-
* ------------------------------------------------------------------------
|
|
269
281
|
* jQuery
|
|
270
|
-
* ------------------------------------------------------------------------
|
|
271
282
|
*/
|
|
272
283
|
|
|
273
284
|
defineJQueryPlugin(Offcanvas)
|
package/js/src/popover.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.1
|
|
3
|
+
* CoreUI (v4.2.1): 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
|
|
@@ -12,118 +12,87 @@ import { defineJQueryPlugin } from './util/index'
|
|
|
12
12
|
import Tooltip from './tooltip'
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* ------------------------------------------------------------------------
|
|
16
15
|
* Constants
|
|
17
|
-
* ------------------------------------------------------------------------
|
|
18
16
|
*/
|
|
19
17
|
|
|
20
18
|
const NAME = 'popover'
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
const
|
|
19
|
+
|
|
20
|
+
const SELECTOR_TITLE = '.popover-header'
|
|
21
|
+
const SELECTOR_CONTENT = '.popover-body'
|
|
24
22
|
|
|
25
23
|
const Default = {
|
|
26
24
|
...Tooltip.Default,
|
|
27
|
-
placement: 'right',
|
|
28
|
-
offset: [0, 8],
|
|
29
|
-
trigger: 'click',
|
|
30
25
|
content: '',
|
|
26
|
+
offset: [0, 8],
|
|
27
|
+
placement: 'right',
|
|
31
28
|
template: '<div class="popover" role="tooltip">' +
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
'<div class="popover-arrow"></div>' +
|
|
30
|
+
'<h3 class="popover-header"></h3>' +
|
|
31
|
+
'<div class="popover-body"></div>' +
|
|
32
|
+
'</div>',
|
|
33
|
+
trigger: 'click'
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
const DefaultType = {
|
|
39
37
|
...Tooltip.DefaultType,
|
|
40
|
-
content: '(string|element|function)'
|
|
38
|
+
content: '(null|string|element|function)'
|
|
41
39
|
}
|
|
42
40
|
|
|
43
|
-
const Event = {
|
|
44
|
-
HIDE: `hide${EVENT_KEY}`,
|
|
45
|
-
HIDDEN: `hidden${EVENT_KEY}`,
|
|
46
|
-
SHOW: `show${EVENT_KEY}`,
|
|
47
|
-
SHOWN: `shown${EVENT_KEY}`,
|
|
48
|
-
INSERTED: `inserted${EVENT_KEY}`,
|
|
49
|
-
CLICK: `click${EVENT_KEY}`,
|
|
50
|
-
FOCUSIN: `focusin${EVENT_KEY}`,
|
|
51
|
-
FOCUSOUT: `focusout${EVENT_KEY}`,
|
|
52
|
-
MOUSEENTER: `mouseenter${EVENT_KEY}`,
|
|
53
|
-
MOUSELEAVE: `mouseleave${EVENT_KEY}`
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const SELECTOR_TITLE = '.popover-header'
|
|
57
|
-
const SELECTOR_CONTENT = '.popover-body'
|
|
58
|
-
|
|
59
41
|
/**
|
|
60
|
-
*
|
|
61
|
-
* Class Definition
|
|
62
|
-
* ------------------------------------------------------------------------
|
|
42
|
+
* Class definition
|
|
63
43
|
*/
|
|
64
44
|
|
|
65
45
|
class Popover extends Tooltip {
|
|
66
46
|
// Getters
|
|
67
|
-
|
|
68
47
|
static get Default() {
|
|
69
48
|
return Default
|
|
70
49
|
}
|
|
71
50
|
|
|
72
|
-
static get NAME() {
|
|
73
|
-
return NAME
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
static get Event() {
|
|
77
|
-
return Event
|
|
78
|
-
}
|
|
79
|
-
|
|
80
51
|
static get DefaultType() {
|
|
81
52
|
return DefaultType
|
|
82
53
|
}
|
|
83
54
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
isWithContent() {
|
|
87
|
-
return this.getTitle() || this._getContent()
|
|
55
|
+
static get NAME() {
|
|
56
|
+
return NAME
|
|
88
57
|
}
|
|
89
58
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.
|
|
59
|
+
// Overrides
|
|
60
|
+
_isWithContent() {
|
|
61
|
+
return this._getTitle() || this._getContent()
|
|
93
62
|
}
|
|
94
63
|
|
|
95
64
|
// Private
|
|
65
|
+
_getContentForTemplate() {
|
|
66
|
+
return {
|
|
67
|
+
[SELECTOR_TITLE]: this._getTitle(),
|
|
68
|
+
[SELECTOR_CONTENT]: this._getContent()
|
|
69
|
+
}
|
|
70
|
+
}
|
|
96
71
|
|
|
97
72
|
_getContent() {
|
|
98
73
|
return this._resolvePossibleFunction(this._config.content)
|
|
99
74
|
}
|
|
100
75
|
|
|
101
|
-
_getBasicClassPrefix() {
|
|
102
|
-
return CLASS_PREFIX
|
|
103
|
-
}
|
|
104
|
-
|
|
105
76
|
// Static
|
|
106
|
-
|
|
107
77
|
static jQueryInterface(config) {
|
|
108
78
|
return this.each(function () {
|
|
109
79
|
const data = Popover.getOrCreateInstance(this, config)
|
|
110
80
|
|
|
111
|
-
if (typeof config
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
81
|
+
if (typeof config !== 'string') {
|
|
82
|
+
return
|
|
83
|
+
}
|
|
115
84
|
|
|
116
|
-
|
|
85
|
+
if (typeof data[config] === 'undefined') {
|
|
86
|
+
throw new TypeError(`No method named "${config}"`)
|
|
117
87
|
}
|
|
88
|
+
|
|
89
|
+
data[config]()
|
|
118
90
|
})
|
|
119
91
|
}
|
|
120
92
|
}
|
|
121
93
|
|
|
122
94
|
/**
|
|
123
|
-
* ------------------------------------------------------------------------
|
|
124
95
|
* jQuery
|
|
125
|
-
* ------------------------------------------------------------------------
|
|
126
|
-
* add .Popover to jQuery only if jQuery is present
|
|
127
96
|
*/
|
|
128
97
|
|
|
129
98
|
defineJQueryPlugin(Popover)
|