@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.
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 +195 -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 +196 -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 +5 -1
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * CoreUI navigation.js v4.2.1 (https://coreui.io)
2
+ * CoreUI navigation.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('./util/index'), require('./dom/data'), require('./dom/event-handler'), require('./dom/manipulator'), require('./dom/selector-engine'), require('./base-component')) :
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['./util/index', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Navigation = factory(global.Index, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.BaseComponent));
10
- })(this, (function (index, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
10
+ })(this, (function (index_js, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
12
  const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
@@ -19,10 +19,11 @@
19
19
 
20
20
  /**
21
21
  * --------------------------------------------------------------------------
22
- * CoreUI (v4.2.1): navigation.js
22
+ * CoreUI (v4.2.3): navigation.js
23
23
  * Licensed under MIT (https://coreui.io/license)
24
24
  * --------------------------------------------------------------------------
25
25
  */
26
+
26
27
  /**
27
28
  * ------------------------------------------------------------------------
28
29
  * Constants
@@ -52,6 +53,7 @@
52
53
  const SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle';
53
54
  const SELECTOR_NAV_LINK = '.nav-link';
54
55
  const SELECTOR_DATA_NAVIGATION = '[data-coreui="navigation"]';
56
+
55
57
  /**
56
58
  * ------------------------------------------------------------------------
57
59
  * Class Definition
@@ -62,71 +64,61 @@
62
64
  constructor(element, config) {
63
65
  super(element);
64
66
  this._config = this._getConfig(config);
65
-
66
67
  this._setActiveLink();
67
-
68
68
  this._addEventListeners();
69
-
70
69
  Data__default.default.set(element, DATA_KEY, this);
71
- } // Getters
72
-
70
+ }
71
+ // Getters
73
72
 
74
73
  static get Default() {
75
74
  return Default;
76
75
  }
77
-
78
76
  static get DATA_KEY() {
79
77
  return DATA_KEY;
80
78
  }
81
-
82
79
  static get DefaultType() {
83
80
  return DefaultType;
84
81
  }
85
-
86
82
  static get NAME() {
87
83
  return NAME;
88
- } // Private
84
+ }
89
85
 
86
+ // Private
90
87
 
91
88
  _getConfig(config) {
92
- config = { ...Default,
89
+ config = {
90
+ ...Default,
93
91
  ...Manipulator__default.default.getDataAttributes(this._element),
94
92
  ...(typeof config === 'object' ? config : {})
95
93
  };
96
94
  return config;
97
95
  }
98
-
99
96
  _setActiveLink() {
100
97
  for (const element of Array.from(this._element.querySelectorAll(SELECTOR_NAV_LINK))) {
101
98
  if (element.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {
102
99
  continue;
103
100
  }
104
-
105
101
  let currentUrl = String(window.location);
106
102
  const urlHasParams = /\?.*=/;
107
103
  const urlHasQueryString = /\?./;
108
104
  const urlHasHash = /#./;
109
-
110
105
  if (urlHasParams.test(currentUrl) || urlHasQueryString.test(currentUrl)) {
111
106
  currentUrl = currentUrl.split('?')[0];
112
107
  }
113
-
114
108
  if (urlHasHash.test(currentUrl)) {
115
109
  currentUrl = currentUrl.split('#')[0];
116
110
  }
117
-
118
111
  if (this._config.activeLinksExact && element.href === currentUrl) {
119
- element.classList.add(CLASS_NAME_ACTIVE); // eslint-disable-next-line unicorn/no-array-for-each
120
-
112
+ element.classList.add(CLASS_NAME_ACTIVE);
113
+ // eslint-disable-next-line unicorn/no-array-for-each
121
114
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
122
115
  element.classList.add(CLASS_NAME_SHOW);
123
116
  element.setAttribute('aria-expanded', true);
124
117
  });
125
118
  }
126
-
127
119
  if (!this._config.activeLinksExact && element.href.startsWith(currentUrl)) {
128
- element.classList.add(CLASS_NAME_ACTIVE); // eslint-disable-next-line unicorn/no-array-for-each
129
-
120
+ element.classList.add(CLASS_NAME_ACTIVE);
121
+ // eslint-disable-next-line unicorn/no-array-for-each
130
122
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
131
123
  element.classList.add(CLASS_NAME_SHOW);
132
124
  element.setAttribute('aria-expanded', true);
@@ -134,11 +126,11 @@
134
126
  }
135
127
  }
136
128
  }
137
-
138
129
  _getParents(element, selector) {
139
130
  // Setup parents array
140
- const parents = []; // Get matching parent elements
131
+ const parents = [];
141
132
 
133
+ // Get matching parent elements
142
134
  for (; element && element !== document; element = element.parentNode) {
143
135
  // Add matching parents to array
144
136
  if (selector) {
@@ -149,14 +141,11 @@
149
141
  parents.push(element);
150
142
  }
151
143
  }
152
-
153
144
  return parents;
154
145
  }
155
-
156
146
  _getAllSiblings(element, filter) {
157
147
  const siblings = [];
158
148
  element = element.parentNode.firstChild;
159
-
160
149
  do {
161
150
  if (element.nodeType === 3) {
162
151
  continue; // text node
@@ -168,31 +157,25 @@
168
157
 
169
158
  if (!filter || filter(element)) {
170
159
  siblings.push(element);
171
- } // eslint-disable-next-line no-cond-assign
160
+ }
172
161
 
162
+ // eslint-disable-next-line no-cond-assign
173
163
  } while (element = element.nextSibling);
174
-
175
164
  return siblings;
176
165
  }
177
-
178
166
  _getChildren(n, skipMe) {
179
167
  const children = [];
180
-
181
168
  for (; n; n = n.nextSibling) {
182
169
  if (n.nodeType === 1 && n !== skipMe) {
183
170
  children.push(n);
184
171
  }
185
172
  }
186
-
187
173
  return children;
188
174
  }
189
-
190
175
  _getSiblings(element, filter) {
191
176
  const siblings = this._getChildren(element.parentNode.firstChild, element).filter(filter);
192
-
193
177
  return siblings;
194
178
  }
195
-
196
179
  _slideDown(element) {
197
180
  element.style.height = 'auto';
198
181
  const height = element.clientHeight;
@@ -200,36 +183,30 @@
200
183
  setTimeout(() => {
201
184
  element.style.height = `${height}px`;
202
185
  }, 0);
203
-
204
186
  this._queueCallback(() => {
205
187
  element.style.height = 'auto';
206
188
  }, element, true);
207
189
  }
208
-
209
190
  _slideUp(element, callback) {
210
191
  const height = element.clientHeight;
211
192
  element.style.height = `${height}px`;
212
193
  setTimeout(() => {
213
194
  element.style.height = '0px';
214
195
  }, 0);
215
-
216
196
  this._queueCallback(() => {
217
197
  if (typeof callback === 'function') {
218
198
  callback();
219
199
  }
220
200
  }, element, true);
221
201
  }
222
-
223
202
  _toggleGroupItems(event) {
224
203
  let toggler = event.target;
225
-
226
204
  if (!toggler.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {
227
205
  toggler = toggler.closest(SELECTOR_NAV_GROUP_TOGGLE);
228
206
  }
207
+ const filter = element => Boolean(element.classList.contains(CLASS_NAME_NAV_GROUP) && element.classList.contains(CLASS_NAME_SHOW));
229
208
 
230
- const filter = element => Boolean(element.classList.contains(CLASS_NAME_NAV_GROUP) && element.classList.contains(CLASS_NAME_SHOW)); // Close other groups
231
-
232
-
209
+ // Close other groups
233
210
  if (this._config.groupsAutoCollapse === true) {
234
211
  for (const element of this._getSiblings(toggler.parentNode, filter)) {
235
212
  this._slideUp(SelectorEngine__default.default.findOne(SELECTOR_NAV_GROUP_ITEMS, element), () => {
@@ -238,62 +215,53 @@
238
215
  });
239
216
  }
240
217
  }
241
-
242
218
  if (toggler.parentNode.classList.contains(CLASS_NAME_SHOW)) {
243
219
  this._slideUp(SelectorEngine__default.default.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode), () => {
244
220
  toggler.parentNode.classList.remove(CLASS_NAME_SHOW);
245
221
  toggler.parentNode.setAttribute('aria-expanded', false);
246
222
  });
247
-
248
223
  return;
249
224
  }
250
-
251
225
  toggler.parentNode.classList.add(CLASS_NAME_SHOW);
252
226
  toggler.parentNode.setAttribute('aria-expanded', true);
253
-
254
227
  this._slideDown(SelectorEngine__default.default.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode));
255
228
  }
256
-
257
229
  _addEventListeners() {
258
230
  EventHandler__default.default.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_NAV_GROUP_TOGGLE, event => {
259
231
  event.preventDefault();
260
-
261
232
  this._toggleGroupItems(event, this);
262
233
  });
263
- } // Static
234
+ }
264
235
 
236
+ // Static
265
237
 
266
238
  static navigationInterface(element, config) {
267
239
  const data = Navigation.getOrCreateInstance(element, config);
268
-
269
240
  if (typeof config === 'string') {
270
241
  if (typeof data[config] === 'undefined') {
271
242
  throw new TypeError(`No method named "${config}"`);
272
243
  }
273
-
274
244
  data[config]();
275
245
  }
276
246
  }
277
-
278
247
  static jQueryInterface(config) {
279
248
  return this.each(function () {
280
249
  Navigation.navigationInterface(this, config);
281
250
  });
282
251
  }
283
-
284
252
  }
253
+
285
254
  /**
286
255
  * ------------------------------------------------------------------------
287
256
  * Data Api implementation
288
257
  * ------------------------------------------------------------------------
289
258
  */
290
-
291
-
292
259
  EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
293
260
  for (const element of Array.from(document.querySelectorAll(SELECTOR_DATA_NAVIGATION))) {
294
261
  Navigation.navigationInterface(element);
295
262
  }
296
263
  });
264
+
297
265
  /**
298
266
  * ------------------------------------------------------------------------
299
267
  * jQuery
@@ -301,7 +269,7 @@
301
269
  * add .Navigation to jQuery only if jQuery is present
302
270
  */
303
271
 
304
- index.defineJQueryPlugin(Navigation);
272
+ index_js.defineJQueryPlugin(Navigation);
305
273
 
306
274
  return Navigation;
307
275
 
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sources":["../src/navigation.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.1): navigation.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'navigation'\nconst DATA_KEY = 'coreui.navigation'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n activeLinksExact: true,\n groupsAutoCollapse: true\n}\n\nconst DefaultType = {\n activeLinksExact: 'boolean',\n groupsAutoCollapse: '(string|boolean)'\n}\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SHOW = 'show'\n\nconst CLASS_NAME_NAV_GROUP = 'nav-group'\nconst CLASS_NAME_NAV_GROUP_TOGGLE = 'nav-group-toggle'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_NAV_GROUP = '.nav-group'\nconst SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items'\nconst SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_DATA_NAVIGATION = '[data-coreui=\"navigation\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Navigation extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._config = this._getConfig(config)\n this._setActiveLink()\n this._addEventListeners()\n\n Data.set(element, DATA_KEY, this)\n }\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n\n return config\n }\n\n _setActiveLink() {\n for (const element of Array.from(this._element.querySelectorAll(SELECTOR_NAV_LINK))) {\n if (element.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n continue\n }\n\n let currentUrl = String(window.location)\n\n const urlHasParams = /\\?.*=/\n const urlHasQueryString = /\\?./\n const urlHasHash = /#./\n\n if (urlHasParams.test(currentUrl) || urlHasQueryString.test(currentUrl)) {\n currentUrl = currentUrl.split('?')[0]\n }\n\n if (urlHasHash.test(currentUrl)) {\n currentUrl = currentUrl.split('#')[0]\n }\n\n if (this._config.activeLinksExact && element.href === currentUrl) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n if (!this._config.activeLinksExact && element.href.startsWith(currentUrl)) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n }\n }\n\n _getParents(element, selector) {\n // Setup parents array\n const parents = []\n\n // Get matching parent elements\n for (; element && element !== document; element = element.parentNode) {\n // Add matching parents to array\n if (selector) {\n if (element.matches(selector)) {\n parents.push(element)\n }\n } else {\n parents.push(element)\n }\n }\n\n return parents\n }\n\n _getAllSiblings(element, filter) {\n const siblings = []\n element = element.parentNode.firstChild\n do {\n if (element.nodeType === 3) {\n continue // text node\n }\n\n if (element.nodeType === 8) {\n continue // comment node\n }\n\n if (!filter || filter(element)) {\n siblings.push(element)\n }\n\n // eslint-disable-next-line no-cond-assign\n } while (element = element.nextSibling)\n\n return siblings\n }\n\n _getChildren(n, skipMe) {\n const children = []\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== skipMe) {\n children.push(n)\n }\n }\n\n return children\n }\n\n _getSiblings(element, filter) {\n const siblings = this._getChildren(element.parentNode.firstChild, element).filter(filter)\n return siblings\n }\n\n _slideDown(element) {\n element.style.height = 'auto'\n const height = element.clientHeight\n element.style.height = '0px'\n setTimeout(() => {\n element.style.height = `${height}px`\n }, 0)\n\n this._queueCallback(() => {\n element.style.height = 'auto'\n }, element, true)\n }\n\n _slideUp(element, callback) {\n const height = element.clientHeight\n element.style.height = `${height}px`\n setTimeout(() => {\n element.style.height = '0px'\n }, 0)\n\n this._queueCallback(() => {\n if (typeof callback === 'function') {\n callback()\n }\n }, element, true)\n }\n\n _toggleGroupItems(event) {\n let toggler = event.target\n if (!toggler.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n toggler = toggler.closest(SELECTOR_NAV_GROUP_TOGGLE)\n }\n\n const filter = element => Boolean(element.classList.contains(CLASS_NAME_NAV_GROUP) && element.classList.contains(CLASS_NAME_SHOW))\n\n // Close other groups\n if (this._config.groupsAutoCollapse === true) {\n for (const element of this._getSiblings(toggler.parentNode, filter)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, element), () => {\n element.classList.remove(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', false)\n })\n }\n }\n\n if (toggler.parentNode.classList.contains(CLASS_NAME_SHOW)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode), () => {\n toggler.parentNode.classList.remove(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', false)\n })\n return\n }\n\n toggler.parentNode.classList.add(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', true)\n this._slideDown(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode))\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_NAV_GROUP_TOGGLE, event => {\n event.preventDefault()\n this._toggleGroupItems(event, this)\n })\n }\n\n // Static\n\n static navigationInterface(element, config) {\n const data = Navigation.getOrCreateInstance(element, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Navigation.navigationInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of Array.from(document.querySelectorAll(SELECTOR_DATA_NAVIGATION))) {\n Navigation.navigationInterface(element)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Navigation to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Navigation)\n\nexport default Navigation\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","activeLinksExact","groupsAutoCollapse","DefaultType","CLASS_NAME_ACTIVE","CLASS_NAME_SHOW","CLASS_NAME_NAV_GROUP","CLASS_NAME_NAV_GROUP_TOGGLE","EVENT_CLICK_DATA_API","EVENT_LOAD_DATA_API","SELECTOR_NAV_GROUP","SELECTOR_NAV_GROUP_ITEMS","SELECTOR_NAV_GROUP_TOGGLE","SELECTOR_NAV_LINK","SELECTOR_DATA_NAVIGATION","Navigation","BaseComponent","constructor","element","config","_config","_getConfig","_setActiveLink","_addEventListeners","Data","set","Manipulator","getDataAttributes","_element","Array","from","querySelectorAll","classList","contains","currentUrl","String","window","location","urlHasParams","urlHasQueryString","urlHasHash","test","split","href","add","_getParents","forEach","setAttribute","startsWith","selector","parents","document","parentNode","matches","push","_getAllSiblings","filter","siblings","firstChild","nodeType","nextSibling","_getChildren","n","skipMe","children","_getSiblings","_slideDown","style","height","clientHeight","setTimeout","_queueCallback","_slideUp","callback","_toggleGroupItems","event","toggler","target","closest","Boolean","SelectorEngine","findOne","remove","EventHandler","on","preventDefault","navigationInterface","data","getOrCreateInstance","TypeError","jQueryInterface","each","defineJQueryPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EASA;EACA;EACA;EACA;EACA;;EAEA,MAAMA,IAAI,GAAG,YAAb,CAAA;EACA,MAAMC,QAAQ,GAAG,mBAAjB,CAAA;EACA,MAAMC,SAAS,GAAI,CAAGD,CAAAA,EAAAA,QAAS,CAA/B,CAAA,CAAA;EACA,MAAME,YAAY,GAAG,WAArB,CAAA;EAEA,MAAMC,OAAO,GAAG;EACdC,EAAAA,gBAAgB,EAAE,IADJ;EAEdC,EAAAA,kBAAkB,EAAE,IAAA;EAFN,CAAhB,CAAA;EAKA,MAAMC,WAAW,GAAG;EAClBF,EAAAA,gBAAgB,EAAE,SADA;EAElBC,EAAAA,kBAAkB,EAAE,kBAAA;EAFF,CAApB,CAAA;EAKA,MAAME,iBAAiB,GAAG,QAA1B,CAAA;EACA,MAAMC,eAAe,GAAG,MAAxB,CAAA;EAEA,MAAMC,oBAAoB,GAAG,WAA7B,CAAA;EACA,MAAMC,2BAA2B,GAAG,kBAApC,CAAA;EAEA,MAAMC,oBAAoB,GAAI,CAAA,KAAA,EAAOV,SAAU,CAAA,EAAEC,YAAa,CAA9D,CAAA,CAAA;EACA,MAAMU,mBAAmB,GAAI,CAAA,IAAA,EAAMX,SAAU,CAAA,EAAEC,YAAa,CAA5D,CAAA,CAAA;EAEA,MAAMW,kBAAkB,GAAG,YAA3B,CAAA;EACA,MAAMC,wBAAwB,GAAG,kBAAjC,CAAA;EACA,MAAMC,yBAAyB,GAAG,mBAAlC,CAAA;EACA,MAAMC,iBAAiB,GAAG,WAA1B,CAAA;EACA,MAAMC,wBAAwB,GAAG,4BAAjC,CAAA;EAEA;EACA;EACA;EACA;EACA;;EAEA,MAAMC,UAAN,SAAyBC,8BAAzB,CAAuC;EACrCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,MAAV,EAAkB;EAC3B,IAAA,KAAA,CAAMD,OAAN,CAAA,CAAA;EACA,IAAA,IAAA,CAAKE,OAAL,GAAe,IAAA,CAAKC,UAAL,CAAgBF,MAAhB,CAAf,CAAA;;EACA,IAAA,IAAA,CAAKG,cAAL,EAAA,CAAA;;EACA,IAAA,IAAA,CAAKC,kBAAL,EAAA,CAAA;;EAEAC,IAAAA,qBAAI,CAACC,GAAL,CAASP,OAAT,EAAkBrB,QAAlB,EAA4B,IAA5B,CAAA,CAAA;EACD,GARoC;;;EAWnB,EAAA,WAAPG,OAAO,GAAG;EACnB,IAAA,OAAOA,OAAP,CAAA;EACD,GAAA;;EAEkB,EAAA,WAARH,QAAQ,GAAG;EACpB,IAAA,OAAOA,QAAP,CAAA;EACD,GAAA;;EAEqB,EAAA,WAAXM,WAAW,GAAG;EACvB,IAAA,OAAOA,WAAP,CAAA;EACD,GAAA;;EAEc,EAAA,WAAJP,IAAI,GAAG;EAChB,IAAA,OAAOA,IAAP,CAAA;EACD,GAzBoC;;;IA6BrCyB,UAAU,CAACF,MAAD,EAAS;MACjBA,MAAM,GAAG,EACP,GAAGnB,OADI;EAEP,MAAA,GAAG0B,4BAAW,CAACC,iBAAZ,CAA8B,IAAA,CAAKC,QAAnC,CAFI;EAGP,MAAA,IAAI,OAAOT,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,EAA1C,CAAA;OAHF,CAAA;EAMA,IAAA,OAAOA,MAAP,CAAA;EACD,GAAA;;EAEDG,EAAAA,cAAc,GAAG;EACf,IAAA,KAAK,MAAMJ,OAAX,IAAsBW,KAAK,CAACC,IAAN,CAAW,IAAKF,CAAAA,QAAL,CAAcG,gBAAd,CAA+BlB,iBAA/B,CAAX,CAAtB,EAAqF;QACnF,IAAIK,OAAO,CAACc,SAAR,CAAkBC,QAAlB,CAA2B1B,2BAA3B,CAAJ,EAA6D;EAC3D,QAAA,SAAA;EACD,OAAA;;EAED,MAAA,IAAI2B,UAAU,GAAGC,MAAM,CAACC,MAAM,CAACC,QAAR,CAAvB,CAAA;QAEA,MAAMC,YAAY,GAAG,OAArB,CAAA;QACA,MAAMC,iBAAiB,GAAG,KAA1B,CAAA;QACA,MAAMC,UAAU,GAAG,IAAnB,CAAA;;EAEA,MAAA,IAAIF,YAAY,CAACG,IAAb,CAAkBP,UAAlB,CAAA,IAAiCK,iBAAiB,CAACE,IAAlB,CAAuBP,UAAvB,CAArC,EAAyE;UACvEA,UAAU,GAAGA,UAAU,CAACQ,KAAX,CAAiB,GAAjB,CAAA,CAAsB,CAAtB,CAAb,CAAA;EACD,OAAA;;EAED,MAAA,IAAIF,UAAU,CAACC,IAAX,CAAgBP,UAAhB,CAAJ,EAAiC;UAC/BA,UAAU,GAAGA,UAAU,CAACQ,KAAX,CAAiB,GAAjB,CAAA,CAAsB,CAAtB,CAAb,CAAA;EACD,OAAA;;QAED,IAAI,IAAA,CAAKtB,OAAL,CAAanB,gBAAb,IAAiCiB,OAAO,CAACyB,IAAR,KAAiBT,UAAtD,EAAkE;EAChEhB,QAAAA,OAAO,CAACc,SAAR,CAAkBY,GAAlB,CAAsBxC,iBAAtB,EADgE;;EAGhEyB,QAAAA,KAAK,CAACC,IAAN,CAAW,IAAA,CAAKe,WAAL,CAAiB3B,OAAjB,EAA0BR,kBAA1B,CAAX,CAAA,CAA0DoC,OAA1D,CAAkE5B,OAAO,IAAI;EAC3EA,UAAAA,OAAO,CAACc,SAAR,CAAkBY,GAAlB,CAAsBvC,eAAtB,CAAA,CAAA;EACAa,UAAAA,OAAO,CAAC6B,YAAR,CAAqB,eAArB,EAAsC,IAAtC,CAAA,CAAA;WAFF,CAAA,CAAA;EAID,OAAA;;EAED,MAAA,IAAI,CAAC,IAAA,CAAK3B,OAAL,CAAanB,gBAAd,IAAkCiB,OAAO,CAACyB,IAAR,CAAaK,UAAb,CAAwBd,UAAxB,CAAtC,EAA2E;EACzEhB,QAAAA,OAAO,CAACc,SAAR,CAAkBY,GAAlB,CAAsBxC,iBAAtB,EADyE;;EAGzEyB,QAAAA,KAAK,CAACC,IAAN,CAAW,IAAA,CAAKe,WAAL,CAAiB3B,OAAjB,EAA0BR,kBAA1B,CAAX,CAAA,CAA0DoC,OAA1D,CAAkE5B,OAAO,IAAI;EAC3EA,UAAAA,OAAO,CAACc,SAAR,CAAkBY,GAAlB,CAAsBvC,eAAtB,CAAA,CAAA;EACAa,UAAAA,OAAO,CAAC6B,YAAR,CAAqB,eAArB,EAAsC,IAAtC,CAAA,CAAA;WAFF,CAAA,CAAA;EAID,OAAA;EACF,KAAA;EACF,GAAA;;EAEDF,EAAAA,WAAW,CAAC3B,OAAD,EAAU+B,QAAV,EAAoB;EAC7B;EACA,IAAA,MAAMC,OAAO,GAAG,EAAhB,CAF6B;;MAK7B,OAAOhC,OAAO,IAAIA,OAAO,KAAKiC,QAA9B,EAAwCjC,OAAO,GAAGA,OAAO,CAACkC,UAA1D,EAAsE;EACpE;EACA,MAAA,IAAIH,QAAJ,EAAc;EACZ,QAAA,IAAI/B,OAAO,CAACmC,OAAR,CAAgBJ,QAAhB,CAAJ,EAA+B;YAC7BC,OAAO,CAACI,IAAR,CAAapC,OAAb,CAAA,CAAA;EACD,SAAA;EACF,OAJD,MAIO;UACLgC,OAAO,CAACI,IAAR,CAAapC,OAAb,CAAA,CAAA;EACD,OAAA;EACF,KAAA;;EAED,IAAA,OAAOgC,OAAP,CAAA;EACD,GAAA;;EAEDK,EAAAA,eAAe,CAACrC,OAAD,EAAUsC,MAAV,EAAkB;MAC/B,MAAMC,QAAQ,GAAG,EAAjB,CAAA;EACAvC,IAAAA,OAAO,GAAGA,OAAO,CAACkC,UAAR,CAAmBM,UAA7B,CAAA;;MACA,GAAG;EACD,MAAA,IAAIxC,OAAO,CAACyC,QAAR,KAAqB,CAAzB,EAA4B;EAC1B,QAAA,SAD0B;EAE3B,OAAA;;EAED,MAAA,IAAIzC,OAAO,CAACyC,QAAR,KAAqB,CAAzB,EAA4B;EAC1B,QAAA,SAD0B;EAE3B,OAAA;;EAED,MAAA,IAAI,CAACH,MAAD,IAAWA,MAAM,CAACtC,OAAD,CAArB,EAAgC;UAC9BuC,QAAQ,CAACH,IAAT,CAAcpC,OAAd,CAAA,CAAA;EACD,OAXA;;EAcF,KAdD,QAcSA,OAAO,GAAGA,OAAO,CAAC0C,WAd3B,EAAA;;EAgBA,IAAA,OAAOH,QAAP,CAAA;EACD,GAAA;;EAEDI,EAAAA,YAAY,CAACC,CAAD,EAAIC,MAAJ,EAAY;MACtB,MAAMC,QAAQ,GAAG,EAAjB,CAAA;;EACA,IAAA,OAAOF,CAAP,EAAUA,CAAC,GAAGA,CAAC,CAACF,WAAhB,EAA6B;QAC3B,IAAIE,CAAC,CAACH,QAAF,KAAe,CAAf,IAAoBG,CAAC,KAAKC,MAA9B,EAAsC;UACpCC,QAAQ,CAACV,IAAT,CAAcQ,CAAd,CAAA,CAAA;EACD,OAAA;EACF,KAAA;;EAED,IAAA,OAAOE,QAAP,CAAA;EACD,GAAA;;EAEDC,EAAAA,YAAY,CAAC/C,OAAD,EAAUsC,MAAV,EAAkB;EAC5B,IAAA,MAAMC,QAAQ,GAAG,IAAA,CAAKI,YAAL,CAAkB3C,OAAO,CAACkC,UAAR,CAAmBM,UAArC,EAAiDxC,OAAjD,CAAA,CAA0DsC,MAA1D,CAAiEA,MAAjE,CAAjB,CAAA;;EACA,IAAA,OAAOC,QAAP,CAAA;EACD,GAAA;;IAEDS,UAAU,CAAChD,OAAD,EAAU;EAClBA,IAAAA,OAAO,CAACiD,KAAR,CAAcC,MAAd,GAAuB,MAAvB,CAAA;EACA,IAAA,MAAMA,MAAM,GAAGlD,OAAO,CAACmD,YAAvB,CAAA;EACAnD,IAAAA,OAAO,CAACiD,KAAR,CAAcC,MAAd,GAAuB,KAAvB,CAAA;EACAE,IAAAA,UAAU,CAAC,MAAM;EACfpD,MAAAA,OAAO,CAACiD,KAAR,CAAcC,MAAd,GAAwB,CAAA,EAAEA,MAAO,CAAjC,EAAA,CAAA,CAAA;OADQ,EAEP,CAFO,CAAV,CAAA;;MAIA,IAAKG,CAAAA,cAAL,CAAoB,MAAM;EACxBrD,MAAAA,OAAO,CAACiD,KAAR,CAAcC,MAAd,GAAuB,MAAvB,CAAA;OADF,EAEGlD,OAFH,EAEY,IAFZ,CAAA,CAAA;EAGD,GAAA;;EAEDsD,EAAAA,QAAQ,CAACtD,OAAD,EAAUuD,QAAV,EAAoB;EAC1B,IAAA,MAAML,MAAM,GAAGlD,OAAO,CAACmD,YAAvB,CAAA;EACAnD,IAAAA,OAAO,CAACiD,KAAR,CAAcC,MAAd,GAAwB,CAAA,EAAEA,MAAO,CAAjC,EAAA,CAAA,CAAA;EACAE,IAAAA,UAAU,CAAC,MAAM;EACfpD,MAAAA,OAAO,CAACiD,KAAR,CAAcC,MAAd,GAAuB,KAAvB,CAAA;OADQ,EAEP,CAFO,CAAV,CAAA;;MAIA,IAAKG,CAAAA,cAAL,CAAoB,MAAM;EACxB,MAAA,IAAI,OAAOE,QAAP,KAAoB,UAAxB,EAAoC;UAClCA,QAAQ,EAAA,CAAA;EACT,OAAA;OAHH,EAIGvD,OAJH,EAIY,IAJZ,CAAA,CAAA;EAKD,GAAA;;IAEDwD,iBAAiB,CAACC,KAAD,EAAQ;EACvB,IAAA,IAAIC,OAAO,GAAGD,KAAK,CAACE,MAApB,CAAA;;MACA,IAAI,CAACD,OAAO,CAAC5C,SAAR,CAAkBC,QAAlB,CAA2B1B,2BAA3B,CAAL,EAA8D;EAC5DqE,MAAAA,OAAO,GAAGA,OAAO,CAACE,OAAR,CAAgBlE,yBAAhB,CAAV,CAAA;EACD,KAAA;;MAED,MAAM4C,MAAM,GAAGtC,OAAO,IAAI6D,OAAO,CAAC7D,OAAO,CAACc,SAAR,CAAkBC,QAAlB,CAA2B3B,oBAA3B,CAAoDY,IAAAA,OAAO,CAACc,SAAR,CAAkBC,QAAlB,CAA2B5B,eAA3B,CAArD,CAAjC,CANuB;;;EASvB,IAAA,IAAI,KAAKe,OAAL,CAAalB,kBAAb,KAAoC,IAAxC,EAA8C;EAC5C,MAAA,KAAK,MAAMgB,OAAX,IAAsB,IAAA,CAAK+C,YAAL,CAAkBW,OAAO,CAACxB,UAA1B,EAAsCI,MAAtC,CAAtB,EAAqE;UACnE,IAAKgB,CAAAA,QAAL,CAAcQ,+BAAc,CAACC,OAAf,CAAuBtE,wBAAvB,EAAiDO,OAAjD,CAAd,EAAyE,MAAM;EAC7EA,UAAAA,OAAO,CAACc,SAAR,CAAkBkD,MAAlB,CAAyB7E,eAAzB,CAAA,CAAA;EACAa,UAAAA,OAAO,CAAC6B,YAAR,CAAqB,eAArB,EAAsC,KAAtC,CAAA,CAAA;WAFF,CAAA,CAAA;EAID,OAAA;EACF,KAAA;;MAED,IAAI6B,OAAO,CAACxB,UAAR,CAAmBpB,SAAnB,CAA6BC,QAA7B,CAAsC5B,eAAtC,CAAJ,EAA4D;EAC1D,MAAA,IAAA,CAAKmE,QAAL,CAAcQ,+BAAc,CAACC,OAAf,CAAuBtE,wBAAvB,EAAiDiE,OAAO,CAACxB,UAAzD,CAAd,EAAoF,MAAM;EACxFwB,QAAAA,OAAO,CAACxB,UAAR,CAAmBpB,SAAnB,CAA6BkD,MAA7B,CAAoC7E,eAApC,CAAA,CAAA;EACAuE,QAAAA,OAAO,CAACxB,UAAR,CAAmBL,YAAnB,CAAgC,eAAhC,EAAiD,KAAjD,CAAA,CAAA;SAFF,CAAA,CAAA;;EAIA,MAAA,OAAA;EACD,KAAA;;EAED6B,IAAAA,OAAO,CAACxB,UAAR,CAAmBpB,SAAnB,CAA6BY,GAA7B,CAAiCvC,eAAjC,CAAA,CAAA;EACAuE,IAAAA,OAAO,CAACxB,UAAR,CAAmBL,YAAnB,CAAgC,eAAhC,EAAiD,IAAjD,CAAA,CAAA;;MACA,IAAKmB,CAAAA,UAAL,CAAgBc,+BAAc,CAACC,OAAf,CAAuBtE,wBAAvB,EAAiDiE,OAAO,CAACxB,UAAzD,CAAhB,CAAA,CAAA;EACD,GAAA;;EAED7B,EAAAA,kBAAkB,GAAG;MACnB4D,6BAAY,CAACC,EAAb,CAAgB,IAAKxD,CAAAA,QAArB,EAA+BpB,oBAA/B,EAAqDI,yBAArD,EAAgF+D,KAAK,IAAI;EACvFA,MAAAA,KAAK,CAACU,cAAN,EAAA,CAAA;;EACA,MAAA,IAAA,CAAKX,iBAAL,CAAuBC,KAAvB,EAA8B,IAA9B,CAAA,CAAA;OAFF,CAAA,CAAA;EAID,GAvMoC;;;EA2MX,EAAA,OAAnBW,mBAAmB,CAACpE,OAAD,EAAUC,MAAV,EAAkB;MAC1C,MAAMoE,IAAI,GAAGxE,UAAU,CAACyE,mBAAX,CAA+BtE,OAA/B,EAAwCC,MAAxC,CAAb,CAAA;;EAEA,IAAA,IAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,MAAA,IAAI,OAAOoE,IAAI,CAACpE,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,QAAA,MAAM,IAAIsE,SAAJ,CAAe,CAAmBtE,iBAAAA,EAAAA,MAAO,GAAzC,CAAN,CAAA;EACD,OAAA;;QAEDoE,IAAI,CAACpE,MAAD,CAAJ,EAAA,CAAA;EACD,KAAA;EACF,GAAA;;IAEqB,OAAfuE,eAAe,CAACvE,MAAD,EAAS;MAC7B,OAAO,IAAA,CAAKwE,IAAL,CAAU,YAAY;EAC3B5E,MAAAA,UAAU,CAACuE,mBAAX,CAA+B,IAA/B,EAAqCnE,MAArC,CAAA,CAAA;EACD,KAFM,CAAP,CAAA;EAGD,GAAA;;EA3NoC,CAAA;EA8NvC;EACA;EACA;EACA;EACA;;;AACAgE,+BAAY,CAACC,EAAb,CAAgBhD,MAAhB,EAAwB3B,mBAAxB,EAA6C,MAAM;EACjD,EAAA,KAAK,MAAMS,OAAX,IAAsBW,KAAK,CAACC,IAAN,CAAWqB,QAAQ,CAACpB,gBAAT,CAA0BjB,wBAA1B,CAAX,CAAtB,EAAuF;MACrFC,UAAU,CAACuE,mBAAX,CAA+BpE,OAA/B,CAAA,CAAA;EACD,GAAA;EACF,CAJD,CAAA,CAAA;EAMA;EACA;EACA;EACA;EACA;EACA;;AAEA0E,0BAAkB,CAAC7E,UAAD,CAAlB;;;;;;;;"}
1
+ {"version":3,"file":"navigation.js","sources":["../src/navigation.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.3): navigation.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'navigation'\nconst DATA_KEY = 'coreui.navigation'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n activeLinksExact: true,\n groupsAutoCollapse: true\n}\n\nconst DefaultType = {\n activeLinksExact: 'boolean',\n groupsAutoCollapse: '(string|boolean)'\n}\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SHOW = 'show'\n\nconst CLASS_NAME_NAV_GROUP = 'nav-group'\nconst CLASS_NAME_NAV_GROUP_TOGGLE = 'nav-group-toggle'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_NAV_GROUP = '.nav-group'\nconst SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items'\nconst SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_DATA_NAVIGATION = '[data-coreui=\"navigation\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Navigation extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._config = this._getConfig(config)\n this._setActiveLink()\n this._addEventListeners()\n\n Data.set(element, DATA_KEY, this)\n }\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n\n return config\n }\n\n _setActiveLink() {\n for (const element of Array.from(this._element.querySelectorAll(SELECTOR_NAV_LINK))) {\n if (element.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n continue\n }\n\n let currentUrl = String(window.location)\n\n const urlHasParams = /\\?.*=/\n const urlHasQueryString = /\\?./\n const urlHasHash = /#./\n\n if (urlHasParams.test(currentUrl) || urlHasQueryString.test(currentUrl)) {\n currentUrl = currentUrl.split('?')[0]\n }\n\n if (urlHasHash.test(currentUrl)) {\n currentUrl = currentUrl.split('#')[0]\n }\n\n if (this._config.activeLinksExact && element.href === currentUrl) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n if (!this._config.activeLinksExact && element.href.startsWith(currentUrl)) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n }\n }\n\n _getParents(element, selector) {\n // Setup parents array\n const parents = []\n\n // Get matching parent elements\n for (; element && element !== document; element = element.parentNode) {\n // Add matching parents to array\n if (selector) {\n if (element.matches(selector)) {\n parents.push(element)\n }\n } else {\n parents.push(element)\n }\n }\n\n return parents\n }\n\n _getAllSiblings(element, filter) {\n const siblings = []\n element = element.parentNode.firstChild\n do {\n if (element.nodeType === 3) {\n continue // text node\n }\n\n if (element.nodeType === 8) {\n continue // comment node\n }\n\n if (!filter || filter(element)) {\n siblings.push(element)\n }\n\n // eslint-disable-next-line no-cond-assign\n } while (element = element.nextSibling)\n\n return siblings\n }\n\n _getChildren(n, skipMe) {\n const children = []\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== skipMe) {\n children.push(n)\n }\n }\n\n return children\n }\n\n _getSiblings(element, filter) {\n const siblings = this._getChildren(element.parentNode.firstChild, element).filter(filter)\n return siblings\n }\n\n _slideDown(element) {\n element.style.height = 'auto'\n const height = element.clientHeight\n element.style.height = '0px'\n setTimeout(() => {\n element.style.height = `${height}px`\n }, 0)\n\n this._queueCallback(() => {\n element.style.height = 'auto'\n }, element, true)\n }\n\n _slideUp(element, callback) {\n const height = element.clientHeight\n element.style.height = `${height}px`\n setTimeout(() => {\n element.style.height = '0px'\n }, 0)\n\n this._queueCallback(() => {\n if (typeof callback === 'function') {\n callback()\n }\n }, element, true)\n }\n\n _toggleGroupItems(event) {\n let toggler = event.target\n if (!toggler.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n toggler = toggler.closest(SELECTOR_NAV_GROUP_TOGGLE)\n }\n\n const filter = element => Boolean(element.classList.contains(CLASS_NAME_NAV_GROUP) && element.classList.contains(CLASS_NAME_SHOW))\n\n // Close other groups\n if (this._config.groupsAutoCollapse === true) {\n for (const element of this._getSiblings(toggler.parentNode, filter)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, element), () => {\n element.classList.remove(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', false)\n })\n }\n }\n\n if (toggler.parentNode.classList.contains(CLASS_NAME_SHOW)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode), () => {\n toggler.parentNode.classList.remove(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', false)\n })\n return\n }\n\n toggler.parentNode.classList.add(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', true)\n this._slideDown(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode))\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_NAV_GROUP_TOGGLE, event => {\n event.preventDefault()\n this._toggleGroupItems(event, this)\n })\n }\n\n // Static\n\n static navigationInterface(element, config) {\n const data = Navigation.getOrCreateInstance(element, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Navigation.navigationInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of Array.from(document.querySelectorAll(SELECTOR_DATA_NAVIGATION))) {\n Navigation.navigationInterface(element)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Navigation to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Navigation)\n\nexport default Navigation\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","activeLinksExact","groupsAutoCollapse","DefaultType","CLASS_NAME_ACTIVE","CLASS_NAME_SHOW","CLASS_NAME_NAV_GROUP","CLASS_NAME_NAV_GROUP_TOGGLE","EVENT_CLICK_DATA_API","EVENT_LOAD_DATA_API","SELECTOR_NAV_GROUP","SELECTOR_NAV_GROUP_ITEMS","SELECTOR_NAV_GROUP_TOGGLE","SELECTOR_NAV_LINK","SELECTOR_DATA_NAVIGATION","Navigation","BaseComponent","constructor","element","config","_config","_getConfig","_setActiveLink","_addEventListeners","Data","set","Manipulator","getDataAttributes","_element","Array","from","querySelectorAll","classList","contains","currentUrl","String","window","location","urlHasParams","urlHasQueryString","urlHasHash","test","split","href","add","_getParents","forEach","setAttribute","startsWith","selector","parents","document","parentNode","matches","push","_getAllSiblings","filter","siblings","firstChild","nodeType","nextSibling","_getChildren","n","skipMe","children","_getSiblings","_slideDown","style","height","clientHeight","setTimeout","_queueCallback","_slideUp","callback","_toggleGroupItems","event","toggler","target","closest","Boolean","SelectorEngine","findOne","remove","EventHandler","on","preventDefault","navigationInterface","data","getOrCreateInstance","TypeError","jQueryInterface","each","defineJQueryPlugin"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * CoreUI offcanvas.js v4.2.1 (https://coreui.io)
2
+ * CoreUI offcanvas.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('./util/index'), require('./util/scrollbar'), require('./dom/event-handler'), require('./base-component'), require('./dom/selector-engine'), require('./util/backdrop'), require('./util/focustrap'), require('./util/component-functions')) :
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index.js'), require('./util/scrollbar.js'), require('./dom/event-handler.js'), require('./base-component.js'), require('./dom/selector-engine.js'), require('./util/backdrop.js'), require('./util/focustrap.js'), require('./util/component-functions.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['./util/index', './util/scrollbar', './dom/event-handler', './base-component', './dom/selector-engine', './util/backdrop', './util/focustrap', './util/component-functions'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Offcanvas = factory(global.Index, global.Scrollbar, global.EventHandler, global.BaseComponent, global.SelectorEngine, global.Backdrop, global.Focustrap, global.ComponentFunctions));
10
- })(this, (function (index, ScrollBarHelper, EventHandler, BaseComponent, SelectorEngine, Backdrop, FocusTrap, componentFunctions) { 'use strict';
10
+ })(this, (function (index_js, ScrollBarHelper, EventHandler, BaseComponent, SelectorEngine, Backdrop, FocusTrap, componentFunctions_js) { 'use strict';
11
11
 
12
12
  const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
@@ -20,13 +20,14 @@
20
20
 
21
21
  /**
22
22
  * --------------------------------------------------------------------------
23
- * CoreUI (v4.2.1): dropdown.js
23
+ * CoreUI (v4.2.3): dropdown.js
24
24
  * Licensed under MIT (https://coreui.io/license)
25
25
  *
26
26
  * This component is a modified version of the Bootstrap's offcanvas.js
27
27
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
28
28
  * --------------------------------------------------------------------------
29
29
  */
30
+
30
31
  /**
31
32
  * Constants
32
33
  */
@@ -61,6 +62,7 @@
61
62
  keyboard: 'boolean',
62
63
  scroll: 'boolean'
63
64
  };
65
+
64
66
  /**
65
67
  * Class definition
66
68
  */
@@ -71,130 +73,95 @@
71
73
  this._isShown = false;
72
74
  this._backdrop = this._initializeBackDrop();
73
75
  this._focustrap = this._initializeFocusTrap();
74
-
75
76
  this._addEventListeners();
76
- } // Getters
77
-
77
+ }
78
78
 
79
+ // Getters
79
80
  static get Default() {
80
81
  return Default;
81
82
  }
82
-
83
83
  static get DefaultType() {
84
84
  return DefaultType;
85
85
  }
86
-
87
86
  static get NAME() {
88
87
  return NAME;
89
- } // Public
90
-
88
+ }
91
89
 
90
+ // Public
92
91
  toggle(relatedTarget) {
93
92
  return this._isShown ? this.hide() : this.show(relatedTarget);
94
93
  }
95
-
96
94
  show(relatedTarget) {
97
95
  if (this._isShown) {
98
96
  return;
99
97
  }
100
-
101
98
  const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, {
102
99
  relatedTarget
103
100
  });
104
-
105
101
  if (showEvent.defaultPrevented) {
106
102
  return;
107
103
  }
108
-
109
104
  this._isShown = true;
110
-
111
105
  this._backdrop.show();
112
-
113
106
  if (!this._config.scroll) {
114
107
  new ScrollBarHelper__default.default().hide();
115
108
  }
116
-
117
109
  this._element.setAttribute('aria-modal', true);
118
-
119
110
  this._element.setAttribute('role', 'dialog');
120
-
121
111
  this._element.classList.add(CLASS_NAME_SHOWING);
122
-
123
112
  const completeCallBack = () => {
124
- if (!this._config.scroll) {
113
+ if (!this._config.scroll || this._config.backdrop) {
125
114
  this._focustrap.activate();
126
115
  }
127
-
128
116
  this._element.classList.add(CLASS_NAME_SHOW);
129
-
130
117
  this._element.classList.remove(CLASS_NAME_SHOWING);
131
-
132
118
  EventHandler__default.default.trigger(this._element, EVENT_SHOWN, {
133
119
  relatedTarget
134
120
  });
135
121
  };
136
-
137
122
  this._queueCallback(completeCallBack, this._element, true);
138
123
  }
139
-
140
124
  hide() {
141
125
  if (!this._isShown) {
142
126
  return;
143
127
  }
144
-
145
128
  const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
146
-
147
129
  if (hideEvent.defaultPrevented) {
148
130
  return;
149
131
  }
150
-
151
132
  this._focustrap.deactivate();
152
-
153
133
  this._element.blur();
154
-
155
134
  this._isShown = false;
156
-
157
135
  this._element.classList.add(CLASS_NAME_HIDING);
158
-
159
136
  this._backdrop.hide();
160
-
161
137
  const completeCallback = () => {
162
138
  this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING);
163
-
164
139
  this._element.removeAttribute('aria-modal');
165
-
166
140
  this._element.removeAttribute('role');
167
-
168
141
  if (!this._config.scroll) {
169
142
  new ScrollBarHelper__default.default().reset();
170
143
  }
171
-
172
144
  EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
173
145
  };
174
-
175
146
  this._queueCallback(completeCallback, this._element, true);
176
147
  }
177
-
178
148
  dispose() {
179
149
  this._backdrop.dispose();
180
-
181
150
  this._focustrap.deactivate();
182
-
183
151
  super.dispose();
184
- } // Private
185
-
152
+ }
186
153
 
154
+ // Private
187
155
  _initializeBackDrop() {
188
156
  const clickCallback = () => {
189
157
  if (this._config.backdrop === 'static') {
190
158
  EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
191
159
  return;
192
160
  }
193
-
194
161
  this.hide();
195
- }; // 'static' option will be translated to true, and booleans will keep their value
196
-
162
+ };
197
163
 
164
+ // 'static' option will be translated to true, and booleans will keep their value
198
165
  const isVisible = Boolean(this._config.backdrop);
199
166
  return new Backdrop__default.default({
200
167
  className: CLASS_NAME_BACKDROP,
@@ -204,75 +171,63 @@
204
171
  clickCallback: isVisible ? clickCallback : null
205
172
  });
206
173
  }
207
-
208
174
  _initializeFocusTrap() {
209
175
  return new FocusTrap__default.default({
210
176
  trapElement: this._element
211
177
  });
212
178
  }
213
-
214
179
  _addEventListeners() {
215
180
  EventHandler__default.default.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
216
181
  if (event.key !== ESCAPE_KEY) {
217
182
  return;
218
183
  }
219
-
220
184
  if (!this._config.keyboard) {
221
185
  EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
222
186
  return;
223
187
  }
224
-
225
188
  this.hide();
226
189
  });
227
- } // Static
228
-
190
+ }
229
191
 
192
+ // Static
230
193
  static jQueryInterface(config) {
231
194
  return this.each(function () {
232
195
  const data = Offcanvas.getOrCreateInstance(this, config);
233
-
234
196
  if (typeof config !== 'string') {
235
197
  return;
236
198
  }
237
-
238
199
  if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
239
200
  throw new TypeError(`No method named "${config}"`);
240
201
  }
241
-
242
202
  data[config](this);
243
203
  });
244
204
  }
245
-
246
205
  }
206
+
247
207
  /**
248
208
  * Data API implementation
249
209
  */
250
210
 
251
-
252
211
  EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
253
- const target = index.getElementFromSelector(this);
254
-
212
+ const target = SelectorEngine__default.default.getElementFromSelector(this);
255
213
  if (['A', 'AREA'].includes(this.tagName)) {
256
214
  event.preventDefault();
257
215
  }
258
-
259
- if (index.isDisabled(this)) {
216
+ if (index_js.isDisabled(this)) {
260
217
  return;
261
218
  }
262
-
263
219
  EventHandler__default.default.one(target, EVENT_HIDDEN, () => {
264
220
  // focus on trigger when it is closed
265
- if (index.isVisible(this)) {
221
+ if (index_js.isVisible(this)) {
266
222
  this.focus();
267
223
  }
268
- }); // avoid conflict when clicking a toggler of an offcanvas, while another is open
224
+ });
269
225
 
226
+ // avoid conflict when clicking a toggler of an offcanvas, while another is open
270
227
  const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
271
-
272
228
  if (alreadyOpen && alreadyOpen !== target) {
273
229
  Offcanvas.getInstance(alreadyOpen).hide();
274
230
  }
275
-
276
231
  const data = Offcanvas.getOrCreateInstance(target);
277
232
  data.toggle(this);
278
233
  });
@@ -288,12 +243,13 @@
288
243
  }
289
244
  }
290
245
  });
291
- componentFunctions.enableDismissTrigger(Offcanvas);
246
+ componentFunctions_js.enableDismissTrigger(Offcanvas);
247
+
292
248
  /**
293
249
  * jQuery
294
250
  */
295
251
 
296
- index.defineJQueryPlugin(Offcanvas);
252
+ index_js.defineJQueryPlugin(Offcanvas);
297
253
 
298
254
  return Offcanvas;
299
255