@coreui/coreui 4.2.2 → 4.2.4

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.
Files changed (163) hide show
  1. package/README.md +1 -1
  2. package/dist/css/coreui-grid.css +61 -61
  3. package/dist/css/coreui-grid.css.map +1 -1
  4. package/dist/css/coreui-grid.min.css +1 -1
  5. package/dist/css/coreui-grid.min.css.map +1 -1
  6. package/dist/css/coreui-grid.rtl.css +62 -62
  7. package/dist/css/coreui-grid.rtl.css.map +1 -1
  8. package/dist/css/coreui-grid.rtl.min.css +2 -2
  9. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  10. package/dist/css/coreui-reboot.css +1 -1
  11. package/dist/css/coreui-reboot.css.map +1 -1
  12. package/dist/css/coreui-reboot.min.css +1 -1
  13. package/dist/css/coreui-reboot.min.css.map +1 -1
  14. package/dist/css/coreui-reboot.rtl.css +2 -2
  15. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  16. package/dist/css/coreui-reboot.rtl.min.css +2 -2
  17. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  18. package/dist/css/coreui-utilities.css +72 -2
  19. package/dist/css/coreui-utilities.css.map +1 -1
  20. package/dist/css/coreui-utilities.min.css +2 -2
  21. package/dist/css/coreui-utilities.min.css.map +1 -1
  22. package/dist/css/coreui-utilities.rtl.css +73 -3
  23. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  24. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  25. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  26. package/dist/css/coreui.css +193 -208
  27. package/dist/css/coreui.css.map +1 -1
  28. package/dist/css/coreui.min.css +2 -2
  29. package/dist/css/coreui.min.css.map +1 -1
  30. package/dist/css/coreui.rtl.css +194 -169
  31. package/dist/css/coreui.rtl.css.map +1 -1
  32. package/dist/css/coreui.rtl.min.css +3 -3
  33. package/dist/css/coreui.rtl.min.css.map +1 -1
  34. package/dist/js/coreui.bundle.js +704 -1534
  35. package/dist/js/coreui.bundle.js.map +1 -1
  36. package/dist/js/coreui.bundle.min.js +2 -2
  37. package/dist/js/coreui.bundle.min.js.map +1 -1
  38. package/dist/js/coreui.esm.js +641 -1482
  39. package/dist/js/coreui.esm.js.map +1 -1
  40. package/dist/js/coreui.esm.min.js +2 -2
  41. package/dist/js/coreui.esm.min.js.map +1 -1
  42. package/dist/js/coreui.js +642 -1483
  43. package/dist/js/coreui.js.map +1 -1
  44. package/dist/js/coreui.min.js +2 -2
  45. package/dist/js/coreui.min.js.map +1 -1
  46. package/js/dist/alert.js +15 -21
  47. package/js/dist/alert.js.map +1 -1
  48. package/js/dist/base-component.js +14 -25
  49. package/js/dist/base-component.js.map +1 -1
  50. package/js/dist/button.js +13 -12
  51. package/js/dist/button.js.map +1 -1
  52. package/js/dist/carousel.js +27 -103
  53. package/js/dist/carousel.js.map +1 -1
  54. package/js/dist/collapse.js +27 -84
  55. package/js/dist/collapse.js.map +1 -1
  56. package/js/dist/dom/data.js +8 -12
  57. package/js/dist/dom/data.js.map +1 -1
  58. package/js/dist/dom/event-handler.js +32 -69
  59. package/js/dist/dom/event-handler.js.map +1 -1
  60. package/js/dist/dom/manipulator.js +4 -17
  61. package/js/dist/dom/manipulator.js.map +1 -1
  62. package/js/dist/dom/selector-engine.js +41 -24
  63. package/js/dist/dom/selector-engine.js.map +1 -1
  64. package/js/dist/dropdown.js +55 -118
  65. package/js/dist/dropdown.js.map +1 -1
  66. package/js/dist/modal.js +42 -109
  67. package/js/dist/modal.js.map +1 -1
  68. package/js/dist/navigation.js +27 -59
  69. package/js/dist/navigation.js.map +1 -1
  70. package/js/dist/offcanvas.js +26 -70
  71. package/js/dist/offcanvas.js.map +1 -1
  72. package/js/dist/popover.js +18 -21
  73. package/js/dist/popover.js.map +1 -1
  74. package/js/dist/scrollspy.js +43 -71
  75. package/js/dist/scrollspy.js.map +1 -1
  76. package/js/dist/sidebar.js +21 -65
  77. package/js/dist/sidebar.js.map +1 -1
  78. package/js/dist/tab.js +41 -105
  79. package/js/dist/tab.js.map +1 -1
  80. package/js/dist/toast.js +26 -60
  81. package/js/dist/toast.js.map +1 -1
  82. package/js/dist/tooltip.js +88 -201
  83. package/js/dist/tooltip.js.map +1 -1
  84. package/js/dist/util/backdrop.js +24 -43
  85. package/js/dist/util/backdrop.js.map +1 -1
  86. package/js/dist/util/component-functions.js +14 -12
  87. package/js/dist/util/component-functions.js.map +1 -1
  88. package/js/dist/util/config.js +14 -20
  89. package/js/dist/util/config.js.map +1 -1
  90. package/js/dist/util/focustrap.js +15 -23
  91. package/js/dist/util/focustrap.js.map +1 -1
  92. package/js/dist/util/index.js +41 -110
  93. package/js/dist/util/index.js.map +1 -1
  94. package/js/dist/util/sanitizer.js +10 -20
  95. package/js/dist/util/sanitizer.js.map +1 -1
  96. package/js/dist/util/scrollbar.js +20 -39
  97. package/js/dist/util/scrollbar.js.map +1 -1
  98. package/js/dist/util/swipe.js +19 -33
  99. package/js/dist/util/swipe.js.map +1 -1
  100. package/js/dist/util/template-factory.js +22 -42
  101. package/js/dist/util/template-factory.js.map +1 -1
  102. package/js/src/alert.js +5 -5
  103. package/js/src/base-component.js +6 -6
  104. package/js/src/button.js +4 -6
  105. package/js/src/carousel.js +8 -9
  106. package/js/src/collapse.js +9 -14
  107. package/js/src/dom/data.js +2 -2
  108. package/js/src/dom/event-handler.js +19 -16
  109. package/js/src/dom/manipulator.js +2 -2
  110. package/js/src/dom/selector-engine.js +49 -6
  111. package/js/src/dropdown.js +19 -9
  112. package/js/src/modal.js +26 -22
  113. package/js/src/navigation.js +7 -7
  114. package/js/src/offcanvas.js +11 -12
  115. package/js/src/popover.js +3 -3
  116. package/js/src/scrollspy.js +14 -10
  117. package/js/src/sidebar.js +7 -7
  118. package/js/src/tab.js +13 -23
  119. package/js/src/toast.js +13 -8
  120. package/js/src/tooltip.js +53 -75
  121. package/js/src/util/backdrop.js +7 -4
  122. package/js/src/util/component-functions.js +8 -4
  123. package/js/src/util/config.js +7 -5
  124. package/js/src/util/focustrap.js +7 -4
  125. package/js/src/util/index.js +21 -51
  126. package/js/src/util/sanitizer.js +4 -4
  127. package/js/src/util/scrollbar.js +7 -4
  128. package/js/src/util/swipe.js +7 -4
  129. package/js/src/util/template-factory.js +9 -6
  130. package/package.json +31 -30
  131. package/scss/_accordion.scss +7 -3
  132. package/scss/_button-group.scss +1 -1
  133. package/scss/_buttons.scss +31 -6
  134. package/scss/_carousel.scss +0 -3
  135. package/scss/_dropdown.scss +2 -1
  136. package/scss/_functions.scss +2 -2
  137. package/scss/_icon.scss +1 -1
  138. package/scss/_list-group.scss +6 -5
  139. package/scss/_modal.scss +1 -1
  140. package/scss/_nav.scss +2 -2
  141. package/scss/_navbar.scss +3 -1
  142. package/scss/_offcanvas.scss +5 -4
  143. package/scss/_pagination.scss +1 -1
  144. package/scss/_placeholders.scss +1 -1
  145. package/scss/_popover.scss +5 -5
  146. package/scss/_spinners.scss +2 -2
  147. package/scss/_toasts.scss +5 -2
  148. package/scss/_variables.scss +18 -16
  149. package/scss/coreui-grid.rtl.scss +1 -1
  150. package/scss/coreui-grid.scss +1 -1
  151. package/scss/coreui-reboot.rtl.scss +1 -1
  152. package/scss/coreui-reboot.scss +1 -1
  153. package/scss/coreui-utilities.rtl.scss +1 -1
  154. package/scss/coreui-utilities.scss +4 -1
  155. package/scss/coreui.rtl.scss +1 -1
  156. package/scss/coreui.scss +1 -1
  157. package/scss/forms/_floating-labels.scss +1 -0
  158. package/scss/forms/_input-group.scss +19 -8
  159. package/scss/helpers/_vr.scss +1 -1
  160. package/scss/mixins/_forms.scss +10 -11
  161. package/scss/mixins/_table-variants.scss +2 -2
  162. package/scss/mixins/_utilities.scss +1 -1
  163. package/scss/sidebar/_sidebar-nav.scss +3 -2
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * CoreUI template-factory.js v4.2.2 (https://coreui.io)
2
+ * CoreUI template-factory.js v4.2.4 (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 (sanitizer, index, SelectorEngine, Config) { 'use strict';
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
- * Bootstrap (v5.2.0-beta1): util/template-factory.js
19
+ * CoreUI (v4.2.4): 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: sanitizer.DefaultAllowlist,
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
- } // Getters
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
- } // Public
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
- this._config.content = { ...this._config.content,
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
- } // Private
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
- if (index.isElement(content)) {
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 ? sanitizer.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
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 typeof arg === 'function' ? arg(this) : arg;
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 * Bootstrap (v5.2.0-beta1): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer'\nimport { getElement, isElement } from '../util/index'\nimport SelectorEngine from '../dom/selector-engine'\nimport Config from './config'\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 typeof arg === 'function' ? arg(this) : arg\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","element","append"],"mappings":"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"}
1
+ {"version":3,"file":"template-factory.js","sources":["../../src/util/template-factory.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.4): 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.2): alert.js
3
+ * CoreUI (v4.2.4): 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
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * CoreUI (v4.2.2): alert.js
3
+ * CoreUI (v4.2.4): 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.2'
20
+ const VERSION = '4.2.4'
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.2): alert.js
3
+ * CoreUI (v4.2.4): 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
  /**
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * CoreUI (v4.2.2): carousel.js
3
+ * CoreUI (v4.2.4): 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
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * CoreUI (v4.2.2): collapse.js
3
+ * CoreUI (v4.2.4): 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 selector = getSelectorFromElement(this)
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
  })
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * CoreUI (v4.2.2): dom/data.js
3
+ * CoreUI (v4.2.4): dom/selector-engine.js
4
4
  * Licensed under MIT (https://coreui.io/license)
5
5
  *
6
- * This component is a modified version of the Bootstrap's dom/data.js
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.2): dom/event-handler.js
3
+ * CoreUI (v4.2.4): dom/selector-engine.js
4
4
  * Licensed under MIT (https://coreui.io/license)
5
5
  *
6
- * This component is a modified version of the Bootstrap's dom/event-handler.js
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.delegateTarget = element
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.delegateTarget = target
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.keys(storeElementEvent)) {
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.keys(storeElementEvent)) {
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
- Object.defineProperty(obj, key, {
309
- get() {
310
- return value
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.2): dom/manipulator.js
3
+ * CoreUI (v4.2.4): dom/selector-engine.js
4
4
  * Licensed under MIT (https://coreui.io/license)
5
5
  *
6
- * This component is a modified version of the Bootstrap's dom/manipulator.js
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.2): dom/selector-engine.js
3
+ * CoreUI (v4.2.4): dom/selector-engine.js
4
4
  * Licensed under MIT (https://coreui.io/license)
5
5
  *
6
- * This component is a modified version of the Bootstrap's dom/selector-engine.js
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
- * Constants
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