@coreui/coreui 4.2.1 → 4.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.
- package/README.md +1 -1
- package/dist/css/coreui-grid.css +61 -61
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +1 -1
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +62 -62
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +2 -2
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +1 -1
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +1 -1
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +2 -2
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +2 -2
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +72 -2
- 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 +73 -3
- 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 +195 -208
- 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 +196 -169
- 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 +704 -1534
- 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 +641 -1482
- 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 +642 -1483
- 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 +15 -21
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +14 -25
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +13 -12
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +27 -103
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +27 -84
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +8 -12
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +32 -69
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +4 -17
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +41 -24
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +55 -118
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +42 -109
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +27 -59
- package/js/dist/navigation.js.map +1 -1
- package/js/dist/offcanvas.js +26 -70
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +18 -21
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +43 -71
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +21 -65
- package/js/dist/sidebar.js.map +1 -1
- package/js/dist/tab.js +41 -105
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +26 -60
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +88 -201
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +24 -43
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +14 -12
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +14 -20
- package/js/dist/util/config.js.map +1 -1
- package/js/dist/util/focustrap.js +15 -23
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +41 -110
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +10 -20
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +20 -39
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +19 -33
- package/js/dist/util/swipe.js.map +1 -1
- package/js/dist/util/template-factory.js +22 -42
- package/js/dist/util/template-factory.js.map +1 -1
- package/js/src/alert.js +5 -5
- package/js/src/base-component.js +6 -6
- package/js/src/button.js +4 -6
- package/js/src/carousel.js +8 -9
- package/js/src/collapse.js +9 -14
- package/js/src/dom/data.js +2 -2
- package/js/src/dom/event-handler.js +19 -16
- package/js/src/dom/manipulator.js +2 -2
- package/js/src/dom/selector-engine.js +49 -6
- package/js/src/dropdown.js +19 -9
- package/js/src/modal.js +26 -22
- package/js/src/navigation.js +7 -7
- package/js/src/offcanvas.js +11 -12
- package/js/src/popover.js +3 -3
- package/js/src/scrollspy.js +14 -10
- package/js/src/sidebar.js +7 -7
- package/js/src/tab.js +13 -23
- package/js/src/toast.js +13 -8
- package/js/src/tooltip.js +53 -75
- package/js/src/util/backdrop.js +7 -4
- package/js/src/util/component-functions.js +8 -4
- package/js/src/util/config.js +7 -5
- package/js/src/util/focustrap.js +7 -4
- package/js/src/util/index.js +21 -51
- package/js/src/util/sanitizer.js +4 -4
- package/js/src/util/scrollbar.js +7 -4
- package/js/src/util/swipe.js +7 -4
- package/js/src/util/template-factory.js +9 -6
- package/package.json +31 -30
- package/scss/_accordion.scss +7 -3
- package/scss/_button-group.scss +1 -1
- package/scss/_buttons.scss +31 -6
- package/scss/_carousel.scss +0 -3
- package/scss/_dropdown.scss +2 -1
- package/scss/_functions.scss +2 -2
- package/scss/_icon.scss +1 -1
- package/scss/_list-group.scss +6 -5
- package/scss/_modal.scss +1 -1
- package/scss/_nav.scss +2 -2
- package/scss/_navbar.scss +3 -1
- package/scss/_offcanvas.scss +5 -4
- package/scss/_pagination.scss +1 -1
- package/scss/_placeholders.scss +1 -1
- package/scss/_popover.scss +5 -5
- package/scss/_spinners.scss +2 -2
- package/scss/_toasts.scss +5 -2
- package/scss/_variables.scss +18 -16
- package/scss/coreui-grid.rtl.scss +1 -1
- package/scss/coreui-grid.scss +1 -1
- package/scss/coreui-reboot.rtl.scss +1 -1
- package/scss/coreui-reboot.scss +1 -1
- package/scss/coreui-utilities.rtl.scss +1 -1
- package/scss/coreui-utilities.scss +4 -1
- package/scss/coreui.rtl.scss +1 -1
- package/scss/coreui.scss +1 -1
- package/scss/forms/_floating-labels.scss +1 -0
- package/scss/forms/_input-group.scss +19 -8
- package/scss/helpers/_vr.scss +1 -1
- package/scss/mixins/_forms.scss +10 -11
- package/scss/mixins/_table-variants.scss +2 -2
- package/scss/mixins/_utilities.scss +1 -1
- package/scss/sidebar/_sidebar-nav.scss +5 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI template-factory.js v4.2.
|
|
2
|
+
* CoreUI template-factory.js v4.2.3 (https://coreui.io)
|
|
3
3
|
* Copyright 2022 The CoreUI Team (https://github.com/orgs/coreui/people)
|
|
4
4
|
* Licensed under MIT (https://coreui.io)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./sanitizer'), require('./index'), require('../dom/selector-engine'), require('./config')) :
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./sanitizer.js'), require('./index.js'), require('../dom/selector-engine.js'), require('./config.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['./sanitizer', './index', '../dom/selector-engine', './config'], factory) :
|
|
9
9
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TemplateFactory = factory(global.Sanitizer, global.Index, global.SelectorEngine, global.Config));
|
|
10
|
-
})(this, (function (
|
|
10
|
+
})(this, (function (sanitizer_js, index_js, SelectorEngine, Config) { 'use strict';
|
|
11
11
|
|
|
12
12
|
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
13
|
|
|
@@ -16,17 +16,21 @@
|
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* --------------------------------------------------------------------------
|
|
19
|
-
*
|
|
19
|
+
* CoreUI (v4.2.3): tab.js
|
|
20
|
+
* Licensed under MIT (https://coreui.io/license)
|
|
21
|
+
*
|
|
22
|
+
* This is a modified version of the Bootstrap's util/template-factory.js
|
|
20
23
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
21
24
|
* --------------------------------------------------------------------------
|
|
22
25
|
*/
|
|
26
|
+
|
|
23
27
|
/**
|
|
24
28
|
* Constants
|
|
25
29
|
*/
|
|
26
30
|
|
|
27
31
|
const NAME = 'TemplateFactory';
|
|
28
32
|
const Default = {
|
|
29
|
-
allowList:
|
|
33
|
+
allowList: sanitizer_js.DefaultAllowlist,
|
|
30
34
|
content: {},
|
|
31
35
|
// { selector : text , selector2 : text2 , }
|
|
32
36
|
extraClass: '',
|
|
@@ -48,6 +52,7 @@
|
|
|
48
52
|
entry: '(string|element|function|null)',
|
|
49
53
|
selector: '(string|element)'
|
|
50
54
|
};
|
|
55
|
+
|
|
51
56
|
/**
|
|
52
57
|
* Class definition
|
|
53
58
|
*/
|
|
@@ -56,65 +61,53 @@
|
|
|
56
61
|
constructor(config) {
|
|
57
62
|
super();
|
|
58
63
|
this._config = this._getConfig(config);
|
|
59
|
-
}
|
|
60
|
-
|
|
64
|
+
}
|
|
61
65
|
|
|
66
|
+
// Getters
|
|
62
67
|
static get Default() {
|
|
63
68
|
return Default;
|
|
64
69
|
}
|
|
65
|
-
|
|
66
70
|
static get DefaultType() {
|
|
67
71
|
return DefaultType;
|
|
68
72
|
}
|
|
69
|
-
|
|
70
73
|
static get NAME() {
|
|
71
74
|
return NAME;
|
|
72
|
-
}
|
|
73
|
-
|
|
75
|
+
}
|
|
74
76
|
|
|
77
|
+
// Public
|
|
75
78
|
getContent() {
|
|
76
79
|
return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);
|
|
77
80
|
}
|
|
78
|
-
|
|
79
81
|
hasContent() {
|
|
80
82
|
return this.getContent().length > 0;
|
|
81
83
|
}
|
|
82
|
-
|
|
83
84
|
changeContent(content) {
|
|
84
85
|
this._checkContent(content);
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
this._config.content = {
|
|
87
|
+
...this._config.content,
|
|
87
88
|
...content
|
|
88
89
|
};
|
|
89
90
|
return this;
|
|
90
91
|
}
|
|
91
|
-
|
|
92
92
|
toHtml() {
|
|
93
93
|
const templateWrapper = document.createElement('div');
|
|
94
94
|
templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
|
|
95
|
-
|
|
96
95
|
for (const [selector, text] of Object.entries(this._config.content)) {
|
|
97
96
|
this._setContent(templateWrapper, text, selector);
|
|
98
97
|
}
|
|
99
|
-
|
|
100
98
|
const template = templateWrapper.children[0];
|
|
101
|
-
|
|
102
99
|
const extraClass = this._resolvePossibleFunction(this._config.extraClass);
|
|
103
|
-
|
|
104
100
|
if (extraClass) {
|
|
105
101
|
template.classList.add(...extraClass.split(' '));
|
|
106
102
|
}
|
|
107
|
-
|
|
108
103
|
return template;
|
|
109
|
-
}
|
|
110
|
-
|
|
104
|
+
}
|
|
111
105
|
|
|
106
|
+
// Private
|
|
112
107
|
_typeCheckConfig(config) {
|
|
113
108
|
super._typeCheckConfig(config);
|
|
114
|
-
|
|
115
109
|
this._checkContent(config.content);
|
|
116
110
|
}
|
|
117
|
-
|
|
118
111
|
_checkContent(arg) {
|
|
119
112
|
for (const [selector, content] of Object.entries(arg)) {
|
|
120
113
|
super._typeCheckConfig({
|
|
@@ -123,53 +116,40 @@
|
|
|
123
116
|
}, DefaultContentType);
|
|
124
117
|
}
|
|
125
118
|
}
|
|
126
|
-
|
|
127
119
|
_setContent(template, content, selector) {
|
|
128
120
|
const templateElement = SelectorEngine__default.default.findOne(selector, template);
|
|
129
|
-
|
|
130
121
|
if (!templateElement) {
|
|
131
122
|
return;
|
|
132
123
|
}
|
|
133
|
-
|
|
134
124
|
content = this._resolvePossibleFunction(content);
|
|
135
|
-
|
|
136
125
|
if (!content) {
|
|
137
126
|
templateElement.remove();
|
|
138
127
|
return;
|
|
139
128
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
this._putElementInTemplate(index.getElement(content), templateElement);
|
|
143
|
-
|
|
129
|
+
if (index_js.isElement(content)) {
|
|
130
|
+
this._putElementInTemplate(index_js.getElement(content), templateElement);
|
|
144
131
|
return;
|
|
145
132
|
}
|
|
146
|
-
|
|
147
133
|
if (this._config.html) {
|
|
148
134
|
templateElement.innerHTML = this._maybeSanitize(content);
|
|
149
135
|
return;
|
|
150
136
|
}
|
|
151
|
-
|
|
152
137
|
templateElement.textContent = content;
|
|
153
138
|
}
|
|
154
|
-
|
|
155
139
|
_maybeSanitize(arg) {
|
|
156
|
-
return this._config.sanitize ?
|
|
140
|
+
return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
|
|
157
141
|
}
|
|
158
|
-
|
|
159
142
|
_resolvePossibleFunction(arg) {
|
|
160
|
-
return
|
|
143
|
+
return index_js.execute(arg, [this]);
|
|
161
144
|
}
|
|
162
|
-
|
|
163
145
|
_putElementInTemplate(element, templateElement) {
|
|
164
146
|
if (this._config.html) {
|
|
165
147
|
templateElement.innerHTML = '';
|
|
166
148
|
templateElement.append(element);
|
|
167
149
|
return;
|
|
168
150
|
}
|
|
169
|
-
|
|
170
151
|
templateElement.textContent = element.textContent;
|
|
171
152
|
}
|
|
172
|
-
|
|
173
153
|
}
|
|
174
154
|
|
|
175
155
|
return TemplateFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-factory.js","sources":["../../src/util/template-factory.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n *
|
|
1
|
+
{"version":3,"file":"template-factory.js","sources":["../../src/util/template-factory.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.3): tab.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This is a modified version of the Bootstrap's util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\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 getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n"],"names":["NAME","Default","allowList","DefaultAllowlist","content","extraClass","html","sanitize","sanitizeFn","template","DefaultType","DefaultContentType","entry","selector","TemplateFactory","Config","constructor","config","_config","_getConfig","getContent","Object","values","map","_resolvePossibleFunction","filter","Boolean","hasContent","length","changeContent","_checkContent","toHtml","templateWrapper","document","createElement","innerHTML","_maybeSanitize","text","entries","_setContent","children","classList","add","split","_typeCheckConfig","arg","templateElement","SelectorEngine","findOne","remove","isElement","_putElementInTemplate","getElement","textContent","sanitizeHtml","execute","element","append"],"mappings":"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"}
|
package/js/src/alert.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): alert.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's alert.js
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { defineJQueryPlugin } from './util/index'
|
|
12
|
-
import EventHandler from './dom/event-handler'
|
|
13
|
-
import BaseComponent from './base-component'
|
|
14
|
-
import { enableDismissTrigger } from './util/component-functions'
|
|
11
|
+
import { defineJQueryPlugin } from './util/index.js'
|
|
12
|
+
import EventHandler from './dom/event-handler.js'
|
|
13
|
+
import BaseComponent from './base-component.js'
|
|
14
|
+
import { enableDismissTrigger } from './util/component-functions.js'
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Constants
|
package/js/src/base-component.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): alert.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's base-component.js
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import Data from './dom/data'
|
|
12
|
-
import { executeAfterTransition, getElement } from './util/index'
|
|
13
|
-
import EventHandler from './dom/event-handler'
|
|
14
|
-
import Config from './util/config'
|
|
11
|
+
import Data from './dom/data.js'
|
|
12
|
+
import { executeAfterTransition, getElement } from './util/index.js'
|
|
13
|
+
import EventHandler from './dom/event-handler.js'
|
|
14
|
+
import Config from './util/config.js'
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Constants
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
const VERSION = '4.2.
|
|
20
|
+
const VERSION = '4.2.3'
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Class definition
|
package/js/src/button.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): alert.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's button.js
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { defineJQueryPlugin } from './util/index'
|
|
12
|
-
import EventHandler from './dom/event-handler'
|
|
13
|
-
import BaseComponent from './base-component'
|
|
11
|
+
import { defineJQueryPlugin } from './util/index.js'
|
|
12
|
+
import EventHandler from './dom/event-handler.js'
|
|
13
|
+
import BaseComponent from './base-component.js'
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Constants
|
|
@@ -22,9 +22,7 @@ const EVENT_KEY = `.${DATA_KEY}`
|
|
|
22
22
|
const DATA_API_KEY = '.data-api'
|
|
23
23
|
|
|
24
24
|
const CLASS_NAME_ACTIVE = 'active'
|
|
25
|
-
|
|
26
25
|
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle="button"]'
|
|
27
|
-
|
|
28
26
|
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
|
|
29
27
|
|
|
30
28
|
/**
|
package/js/src/carousel.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): carousel.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's carousel.js
|
|
@@ -10,18 +10,17 @@
|
|
|
10
10
|
|
|
11
11
|
import {
|
|
12
12
|
defineJQueryPlugin,
|
|
13
|
-
getElementFromSelector,
|
|
14
13
|
getNextActiveElement,
|
|
15
14
|
isRTL,
|
|
16
15
|
isVisible,
|
|
17
16
|
reflow,
|
|
18
17
|
triggerTransitionEnd
|
|
19
|
-
} from './util/index'
|
|
20
|
-
import EventHandler from './dom/event-handler'
|
|
21
|
-
import Manipulator from './dom/manipulator'
|
|
22
|
-
import SelectorEngine from './dom/selector-engine'
|
|
23
|
-
import Swipe from './util/swipe'
|
|
24
|
-
import BaseComponent from './base-component'
|
|
18
|
+
} from './util/index.js'
|
|
19
|
+
import EventHandler from './dom/event-handler.js'
|
|
20
|
+
import Manipulator from './dom/manipulator.js'
|
|
21
|
+
import SelectorEngine from './dom/selector-engine.js'
|
|
22
|
+
import Swipe from './util/swipe.js'
|
|
23
|
+
import BaseComponent from './base-component.js'
|
|
25
24
|
|
|
26
25
|
/**
|
|
27
26
|
* Constants
|
|
@@ -434,7 +433,7 @@ class Carousel extends BaseComponent {
|
|
|
434
433
|
*/
|
|
435
434
|
|
|
436
435
|
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {
|
|
437
|
-
const target = getElementFromSelector(this)
|
|
436
|
+
const target = SelectorEngine.getElementFromSelector(this)
|
|
438
437
|
|
|
439
438
|
if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
|
|
440
439
|
return
|
package/js/src/collapse.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): collapse.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
6
|
* This component is a modified version of the Bootstrap's collapse.js
|
|
@@ -11,13 +11,11 @@
|
|
|
11
11
|
import {
|
|
12
12
|
defineJQueryPlugin,
|
|
13
13
|
getElement,
|
|
14
|
-
getElementFromSelector,
|
|
15
|
-
getSelectorFromElement,
|
|
16
14
|
reflow
|
|
17
|
-
} from './util/index'
|
|
18
|
-
import EventHandler from './dom/event-handler'
|
|
19
|
-
import SelectorEngine from './dom/selector-engine'
|
|
20
|
-
import BaseComponent from './base-component'
|
|
15
|
+
} from './util/index.js'
|
|
16
|
+
import EventHandler from './dom/event-handler.js'
|
|
17
|
+
import SelectorEngine from './dom/selector-engine.js'
|
|
18
|
+
import BaseComponent from './base-component.js'
|
|
21
19
|
|
|
22
20
|
/**
|
|
23
21
|
* Constants
|
|
@@ -71,7 +69,7 @@ class Collapse extends BaseComponent {
|
|
|
71
69
|
const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
|
|
72
70
|
|
|
73
71
|
for (const elem of toggleList) {
|
|
74
|
-
const selector = getSelectorFromElement(elem)
|
|
72
|
+
const selector = SelectorEngine.getSelectorFromElement(elem)
|
|
75
73
|
const filterElement = SelectorEngine.find(selector)
|
|
76
74
|
.filter(foundElement => foundElement === this._element)
|
|
77
75
|
|
|
@@ -188,7 +186,7 @@ class Collapse extends BaseComponent {
|
|
|
188
186
|
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)
|
|
189
187
|
|
|
190
188
|
for (const trigger of this._triggerArray) {
|
|
191
|
-
const element = getElementFromSelector(trigger)
|
|
189
|
+
const element = SelectorEngine.getElementFromSelector(trigger)
|
|
192
190
|
|
|
193
191
|
if (element && !this._isShown(element)) {
|
|
194
192
|
this._addAriaAndCollapsedClass([trigger], false)
|
|
@@ -232,7 +230,7 @@ class Collapse extends BaseComponent {
|
|
|
232
230
|
const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)
|
|
233
231
|
|
|
234
232
|
for (const element of children) {
|
|
235
|
-
const selected = getElementFromSelector(element)
|
|
233
|
+
const selected = SelectorEngine.getElementFromSelector(element)
|
|
236
234
|
|
|
237
235
|
if (selected) {
|
|
238
236
|
this._addAriaAndCollapsedClass([element], this._isShown(selected))
|
|
@@ -288,10 +286,7 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (
|
|
|
288
286
|
event.preventDefault()
|
|
289
287
|
}
|
|
290
288
|
|
|
291
|
-
const
|
|
292
|
-
const selectorElements = SelectorEngine.find(selector)
|
|
293
|
-
|
|
294
|
-
for (const element of selectorElements) {
|
|
289
|
+
for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
|
|
295
290
|
Collapse.getOrCreateInstance(element, { toggle: false }).toggle()
|
|
296
291
|
}
|
|
297
292
|
})
|
package/js/src/dom/data.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): dom/selector-engine.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
|
-
* This
|
|
6
|
+
* This is a modified version of the Bootstrap's dom/data.js
|
|
7
7
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): dom/selector-engine.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
|
-
* This
|
|
6
|
+
* This is a modified version of the Bootstrap's dom/event-handler.js
|
|
7
7
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { getjQuery } from '../util/index'
|
|
11
|
+
import { getjQuery } from '../util/index.js'
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Constants
|
|
@@ -92,7 +92,7 @@ function getElementEvents(element) {
|
|
|
92
92
|
|
|
93
93
|
function bootstrapHandler(element, fn) {
|
|
94
94
|
return function handler(event) {
|
|
95
|
-
event
|
|
95
|
+
hydrateObj(event, { delegateTarget: element })
|
|
96
96
|
|
|
97
97
|
if (handler.oneOff) {
|
|
98
98
|
EventHandler.off(element, event.type, fn)
|
|
@@ -112,7 +112,7 @@ function bootstrapDelegationHandler(element, selector, fn) {
|
|
|
112
112
|
continue
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
event
|
|
115
|
+
hydrateObj(event, { delegateTarget: target })
|
|
116
116
|
|
|
117
117
|
if (handler.oneOff) {
|
|
118
118
|
EventHandler.off(element, event.type, selector, fn)
|
|
@@ -201,9 +201,8 @@ function removeHandler(element, events, typeEvent, handler, delegationSelector)
|
|
|
201
201
|
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
|
|
202
202
|
const storeElementEvent = events[typeEvent] || {}
|
|
203
203
|
|
|
204
|
-
for (const handlerKey of Object.
|
|
204
|
+
for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
|
|
205
205
|
if (handlerKey.includes(namespace)) {
|
|
206
|
-
const event = storeElementEvent[handlerKey]
|
|
207
206
|
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)
|
|
208
207
|
}
|
|
209
208
|
}
|
|
@@ -251,11 +250,10 @@ const EventHandler = {
|
|
|
251
250
|
}
|
|
252
251
|
}
|
|
253
252
|
|
|
254
|
-
for (const keyHandlers of Object.
|
|
253
|
+
for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
|
|
255
254
|
const handlerKey = keyHandlers.replace(stripUidRegex, '')
|
|
256
255
|
|
|
257
256
|
if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
|
|
258
|
-
const event = storeElementEvent[keyHandlers]
|
|
259
257
|
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)
|
|
260
258
|
}
|
|
261
259
|
}
|
|
@@ -303,13 +301,18 @@ const EventHandler = {
|
|
|
303
301
|
}
|
|
304
302
|
}
|
|
305
303
|
|
|
306
|
-
function hydrateObj(obj, meta) {
|
|
307
|
-
for (const [key, value] of Object.entries(meta
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
304
|
+
function hydrateObj(obj, meta = {}) {
|
|
305
|
+
for (const [key, value] of Object.entries(meta)) {
|
|
306
|
+
try {
|
|
307
|
+
obj[key] = value
|
|
308
|
+
} catch {
|
|
309
|
+
Object.defineProperty(obj, key, {
|
|
310
|
+
configurable: true,
|
|
311
|
+
get() {
|
|
312
|
+
return value
|
|
313
|
+
}
|
|
314
|
+
})
|
|
315
|
+
}
|
|
313
316
|
}
|
|
314
317
|
|
|
315
318
|
return obj
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): dom/selector-engine.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
|
-
* This
|
|
6
|
+
* This is a modified version of the Bootstrap's dom/manipulator.js
|
|
7
7
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
@@ -1,18 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* --------------------------------------------------------------------------
|
|
3
|
-
* CoreUI (v4.2.
|
|
3
|
+
* CoreUI (v4.2.3): dom/selector-engine.js
|
|
4
4
|
* Licensed under MIT (https://coreui.io/license)
|
|
5
5
|
*
|
|
6
|
-
* This
|
|
6
|
+
* This is a modified version of the Bootstrap's dom/selector-engine.js
|
|
7
7
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
8
8
|
* --------------------------------------------------------------------------
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { isDisabled, isVisible } from '../util/index'
|
|
11
|
+
import { isDisabled, isVisible, parseSelector } from '../util/index.js'
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const getSelector = element => {
|
|
14
|
+
let selector = element.getAttribute('data-coreui-target')
|
|
15
|
+
|
|
16
|
+
if (!selector || selector === '#') {
|
|
17
|
+
let hrefAttribute = element.getAttribute('href')
|
|
18
|
+
|
|
19
|
+
// The only valid content that could double as a selector are IDs or classes,
|
|
20
|
+
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
|
21
|
+
// `document.querySelector` will rightfully complain it is invalid.
|
|
22
|
+
// See https://github.com/twbs/bootstrap/issues/32273
|
|
23
|
+
if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {
|
|
24
|
+
return null
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Just in case some CMS puts out a full URL with the anchor appended
|
|
28
|
+
if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
|
|
29
|
+
hrefAttribute = `#${hrefAttribute.split('#')[1]}`
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return parseSelector(selector)
|
|
36
|
+
}
|
|
16
37
|
|
|
17
38
|
const SelectorEngine = {
|
|
18
39
|
find(selector, element = document.documentElement) {
|
|
@@ -80,6 +101,28 @@ const SelectorEngine = {
|
|
|
80
101
|
].map(selector => `${selector}:not([tabindex^="-"])`).join(',')
|
|
81
102
|
|
|
82
103
|
return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
getSelectorFromElement(element) {
|
|
107
|
+
const selector = getSelector(element)
|
|
108
|
+
|
|
109
|
+
if (selector) {
|
|
110
|
+
return SelectorEngine.findOne(selector) ? selector : null
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return null
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
getElementFromSelector(element) {
|
|
117
|
+
const selector = getSelector(element)
|
|
118
|
+
|
|
119
|
+
return selector ? SelectorEngine.findOne(selector) : null
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
getMultipleElementsFromSelector(element) {
|
|
123
|
+
const selector = getSelector(element)
|
|
124
|
+
|
|
125
|
+
return selector ? SelectorEngine.find(selector) : []
|
|
83
126
|
}
|
|
84
127
|
}
|
|
85
128
|
|