@appartmint/mint 2.4.4 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/css/mint.css +187 -50
  2. package/dist/css/mint.css.map +1 -1
  3. package/dist/css/mint.min.css +1 -1
  4. package/dist/css/mint.min.css.map +1 -1
  5. package/dist/js/imports/abstract/attaches-events.d.ts +26 -0
  6. package/dist/js/imports/abstract/attaches-events.d.ts.map +1 -0
  7. package/dist/js/imports/abstract/index.d.ts +5 -0
  8. package/dist/js/imports/abstract/index.d.ts.map +1 -0
  9. package/dist/js/imports/components/header.d.ts +10 -111
  10. package/dist/js/imports/components/header.d.ts.map +1 -1
  11. package/dist/js/imports/components/index.d.ts +2 -0
  12. package/dist/js/imports/components/index.d.ts.map +1 -1
  13. package/dist/js/imports/components/menu.d.ts +92 -0
  14. package/dist/js/imports/components/menu.d.ts.map +1 -0
  15. package/dist/js/imports/components/panel.d.ts +66 -0
  16. package/dist/js/imports/components/panel.d.ts.map +1 -0
  17. package/dist/js/imports/index.d.ts +2 -1
  18. package/dist/js/imports/index.d.ts.map +1 -1
  19. package/dist/js/imports/models/event.d.ts +9 -0
  20. package/dist/js/imports/models/event.d.ts.map +1 -0
  21. package/dist/js/imports/models/index.d.ts +1 -0
  22. package/dist/js/imports/models/index.d.ts.map +1 -1
  23. package/dist/js/imports/util/selectors.d.ts +1 -1
  24. package/dist/js/imports/util/selectors.d.ts.map +1 -1
  25. package/dist/js/index.js +455 -227
  26. package/dist/js/index.js.map +1 -1
  27. package/dist/js/index.min.js +1 -1
  28. package/dist/js/index.min.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/scss/imports/components/partial/_chat.scss +131 -0
  31. package/src/scss/imports/components/partial/_header.scss +6 -61
  32. package/src/scss/imports/components/partial/_index.scss +1 -0
  33. package/src/scss/imports/components/widget/_button.scss +2 -0
  34. package/src/scss/imports/components/widget/_index.scss +2 -0
  35. package/src/scss/imports/components/widget/_menu.scss +0 -0
  36. package/src/scss/imports/components/widget/_panel.scss +95 -0
package/dist/js/index.js CHANGED
@@ -1,5 +1,85 @@
1
1
  /******/ var __webpack_modules__ = ({
2
2
 
3
+ /***/ "./src/ts/imports/abstract/attaches-events.ts":
4
+ /*!****************************************************!*\
5
+ !*** ./src/ts/imports/abstract/attaches-events.ts ***!
6
+ \****************************************************/
7
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
+
9
+ __webpack_require__.r(__webpack_exports__);
10
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
+ /* harmony export */ MintAttachesEvents: () => (/* binding */ MintAttachesEvents)
12
+ /* harmony export */ });
13
+ /**
14
+ * Imports
15
+ */
16
+ /**
17
+ * Attaches Events
18
+ * @description Extended by classes that attach and detach events
19
+ */
20
+ class MintAttachesEvents {
21
+ /**
22
+ * Event handlers
23
+ */
24
+ events = [];
25
+ /**
26
+ * Attach event to the given element
27
+ * @param element - Element to attach event to
28
+ * @param event - Event to attach
29
+ * @param handler - Handler to attach
30
+ */
31
+ attachEvent(element, event, handler) {
32
+ if (element) {
33
+ let oldElement = this.events.find(e => e.el === element);
34
+ if (oldElement) {
35
+ oldElement.handlers.push(handler);
36
+ oldElement.events.push(event);
37
+ }
38
+ else {
39
+ this.events.push({
40
+ el: element,
41
+ handlers: [handler],
42
+ events: [event]
43
+ });
44
+ }
45
+ element.addEventListener(event, handler);
46
+ }
47
+ }
48
+ /**
49
+ * Detach events
50
+ */
51
+ detachEvents() {
52
+ this.events.forEach(event => {
53
+ event.handlers.forEach((handler, index) => {
54
+ event.el?.removeEventListener(event.events[index], handler);
55
+ });
56
+ });
57
+ this.events = [];
58
+ }
59
+ }
60
+
61
+
62
+ /***/ }),
63
+
64
+ /***/ "./src/ts/imports/abstract/index.ts":
65
+ /*!******************************************!*\
66
+ !*** ./src/ts/imports/abstract/index.ts ***!
67
+ \******************************************/
68
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69
+
70
+ __webpack_require__.r(__webpack_exports__);
71
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
72
+ /* harmony export */ MintAttachesEvents: () => (/* reexport safe */ _attaches_events__WEBPACK_IMPORTED_MODULE_0__.MintAttachesEvents)
73
+ /* harmony export */ });
74
+ /* harmony import */ var _attaches_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./attaches-events */ "./src/ts/imports/abstract/attaches-events.ts");
75
+ /**
76
+ * Forward all abstract exports
77
+ */
78
+
79
+
80
+
81
+ /***/ }),
82
+
3
83
  /***/ "./src/ts/imports/components/grid.ts":
4
84
  /*!*******************************************!*\
5
85
  !*** ./src/ts/imports/components/grid.ts ***!
@@ -38,14 +118,14 @@ class MintGrid {
38
118
 
39
119
  __webpack_require__.r(__webpack_exports__);
40
120
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41
- /* harmony export */ MintHeader: () => (/* binding */ MintHeader),
42
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
121
+ /* harmony export */ MintHeader: () => (/* binding */ MintHeader)
43
122
  /* harmony export */ });
44
- /* harmony import */ var _enums_side__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums/side */ "./src/ts/imports/enums/side.ts");
45
- /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ "./src/ts/imports/util/index.ts");
123
+ /* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./panel */ "./src/ts/imports/components/panel.ts");
124
+ /* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./menu */ "./src/ts/imports/components/menu.ts");
46
125
  /**
47
126
  * Imports
48
127
  */
128
+ // Mint
49
129
 
50
130
 
51
131
  /**
@@ -57,7 +137,9 @@ class MintHeader {
57
137
  * Navbar settings
58
138
  */
59
139
  settings = {
60
- from: _enums_side__WEBPACK_IMPORTED_MODULE_0__.EMintSide.Top,
140
+ id: 'mint-menu',
141
+ wrapperId: 'mint-wrapper',
142
+ title: 'menu',
61
143
  fixed: true
62
144
  };
63
145
  /**
@@ -65,150 +147,139 @@ class MintHeader {
65
147
  */
66
148
  el = {};
67
149
  /**
68
- * Event handlers
150
+ * Navigation functionality
69
151
  */
70
- events = [];
152
+ panel;
153
+ menu;
71
154
  /**
72
155
  * Initializes and closes the menu
73
156
  */
74
157
  constructor(settings) {
75
158
  this.settings = { ...this.settings, ...settings };
159
+ this.panel = new _panel__WEBPACK_IMPORTED_MODULE_0__.MintPanel(this.settings);
160
+ this.menu = new _menu__WEBPACK_IMPORTED_MODULE_1__.MintMenu(this.settings);
76
161
  this.attachElements();
77
- this.attachEvents();
78
162
  this.addClasses();
79
163
  }
80
164
  /**
81
- * Destroys the header
165
+ * Detach events
82
166
  */
83
- destroy() {
84
- console.log('npm destroy', this.events);
85
- this.events.forEach(event => {
86
- event.handlers.forEach((handler, index) => {
87
- event.el?.removeEventListener(event.events[index], handler);
88
- });
89
- });
90
- this.events = [];
167
+ detachEvents() {
168
+ this.panel?.detachEvents();
169
+ this.menu?.detachEvents();
91
170
  }
92
171
  /**
93
172
  * Adds elements to {@link el | `this.el`}
94
173
  */
95
174
  attachElements() {
96
- this.el.html = document.querySelector('html');
97
175
  this.el.body = document.querySelector('body');
98
- this.el.header = document.getElementById('mint-header');
99
- this.el.mobileButton = this.el.header?.querySelector(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.controls('mint-wrapper')) || null;
100
- this.el.wrapper = document.getElementById('mint-wrapper');
101
- this.el.main = document.getElementsByTagName('main')[0];
102
- }
103
- /**
104
- * Attach event to the given element
105
- * @param element - Element to attach event to
106
- * @param event - Event to attach
107
- * @param handler - Handler to attach
108
- */
109
- attachEvent(element, event, handler) {
110
- if (element) {
111
- let oldElement = this.events.find(e => e.el === element);
112
- if (oldElement) {
113
- oldElement.handlers.push(handler);
114
- oldElement.events.push(event);
115
- }
116
- else {
117
- this.events.push({
118
- el: element,
119
- handlers: [handler],
120
- events: [event]
121
- });
122
- }
123
- element.addEventListener(event, handler);
124
- }
125
- }
126
- /**
127
- * Adds events to the dom
128
- */
129
- attachEvents() {
130
- this.attachEvent(window, 'resize', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eHandleResize.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.default));
131
- this.attachEvent(window, 'scroll', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eHandleScroll.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.default, { trailing: false }));
132
- this.attachEvent(this.el.main, 'click', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eCloseMobileMenu.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.default, { trailing: false }));
133
- let focusables = this.el.header?.querySelectorAll(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.focusable), lastFocusable = focusables?.[focusables?.length - 1];
134
- this.attachEvent(lastFocusable, 'keydown', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eWrapTab.bind(this)));
135
- focusables?.forEach((focusable) => {
136
- this.attachEvent(focusable, 'keydown', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eHandleKeypress.bind(this)));
137
- });
138
- let menuButtons = this.el.wrapper?.querySelectorAll(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.controls());
139
- menuButtons?.forEach((menuButton) => {
140
- this.attachEvent(menuButton, 'click', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eToggleMenu.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.slow, { trailing: false }));
141
- });
142
- this.attachEvent(this.el.mobileButton, 'click', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eToggleMobileMenu.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.slow, { trailing: false }));
143
- this.attachEvent(this.el.wrapper, 'transitionend', this.eTransitionEnd.bind(this));
144
176
  }
145
177
  /**
146
178
  * Adds classes that inform the styles based on settings
147
179
  */
148
180
  addClasses() {
149
- this.el.header?.classList.remove('mint-top', 'mint-right', 'mint-bottom', 'mint-left');
150
- this.el.header?.classList.add(`mint-${_enums_side__WEBPACK_IMPORTED_MODULE_0__.EMintSide[this.settings.from ?? 0].toLowerCase()}`);
151
181
  if (this.settings.fixed) {
152
182
  this.el.body?.classList.add('mint-fixed');
153
183
  }
154
- if (this.settings.tray) {
155
- this.el.header?.classList.add('mint-tray');
156
- }
157
184
  }
185
+ }
186
+
187
+
188
+ /***/ }),
189
+
190
+ /***/ "./src/ts/imports/components/index.ts":
191
+ /*!********************************************!*\
192
+ !*** ./src/ts/imports/components/index.ts ***!
193
+ \********************************************/
194
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
195
+
196
+ __webpack_require__.r(__webpack_exports__);
197
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
198
+ /* harmony export */ MintGrid: () => (/* reexport safe */ _grid__WEBPACK_IMPORTED_MODULE_0__.MintGrid),
199
+ /* harmony export */ MintHeader: () => (/* reexport safe */ _header__WEBPACK_IMPORTED_MODULE_1__.MintHeader),
200
+ /* harmony export */ MintMenu: () => (/* reexport safe */ _menu__WEBPACK_IMPORTED_MODULE_2__.MintMenu),
201
+ /* harmony export */ MintPanel: () => (/* reexport safe */ _panel__WEBPACK_IMPORTED_MODULE_3__.MintPanel)
202
+ /* harmony export */ });
203
+ /* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./grid */ "./src/ts/imports/components/grid.ts");
204
+ /* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./header */ "./src/ts/imports/components/header.ts");
205
+ /* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./menu */ "./src/ts/imports/components/menu.ts");
206
+ /* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./panel */ "./src/ts/imports/components/panel.ts");
207
+ /**
208
+ * Forward all exports from the components directory
209
+ */
210
+
211
+
212
+
213
+
214
+
215
+
216
+ /***/ }),
217
+
218
+ /***/ "./src/ts/imports/components/menu.ts":
219
+ /*!*******************************************!*\
220
+ !*** ./src/ts/imports/components/menu.ts ***!
221
+ \*******************************************/
222
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
223
+
224
+ __webpack_require__.r(__webpack_exports__);
225
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
226
+ /* harmony export */ MintMenu: () => (/* binding */ MintMenu)
227
+ /* harmony export */ });
228
+ /* harmony import */ var _abstract__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../abstract */ "./src/ts/imports/abstract/index.ts");
229
+ /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ "./src/ts/imports/util/index.ts");
230
+ /**
231
+ * Imports
232
+ */
233
+ // Mint
234
+
235
+
236
+ /**
237
+ * Menu (dropdown) functionality
238
+ * @public
239
+ */
240
+ class MintMenu extends _abstract__WEBPACK_IMPORTED_MODULE_0__.MintAttachesEvents {
158
241
  /**
159
- * Sets the state of the mobile menu
160
- * @param open - `true` to open the menu or `false` to close it
242
+ * Tray settings
161
243
  */
162
- setMobileMenu(open = false) {
163
- let ariaExpanded = open ? 'true' : 'false', ariaLabel = open ? 'close menu' : 'open menu';
164
- this.el.mobileButton?.setAttribute('aria-expanded', ariaExpanded);
165
- setTimeout(() => {
166
- this.el.mobileButton?.setAttribute('aria-label', ariaLabel);
167
- }, _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.fast);
168
- if (open) {
169
- if (this.settings.fixed !== true) {
170
- window.scroll({
171
- top: 0,
172
- left: 0,
173
- behavior: 'smooth'
174
- });
175
- }
176
- setTimeout(() => {
177
- if (this.el.html) {
178
- let isMobile = _util__WEBPACK_IMPORTED_MODULE_1__.MintWindow.width() <= _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.break.sm, overflow = 'auto';
179
- if (this.settings.tray) {
180
- if (isMobile) {
181
- overflow = 'hidden';
182
- }
183
- }
184
- else {
185
- overflow = 'hidden';
186
- }
187
- this.el.html.style.overflow = overflow;
188
- }
189
- }, this.settings.from === _enums_side__WEBPACK_IMPORTED_MODULE_0__.EMintSide.Left ? _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.default : _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.instant);
190
- if (this.el.wrapper) {
191
- this.el.wrapper.style.display = 'flex';
192
- }
193
- requestAnimationFrame(() => {
194
- this.el.wrapper?.classList.add('mint-open');
195
- });
244
+ settings = {};
245
+ /**
246
+ * Frequently-referenced elements
247
+ */
248
+ el = {};
249
+ /**
250
+ * Initializes and closes the tray
251
+ */
252
+ constructor(settings) {
253
+ super();
254
+ this.settings = { ...this.settings, ...settings };
255
+ if (!this.settings.wrapperId) {
256
+ throw new Error('Wrapper ID is required');
196
257
  }
197
- else {
198
- if (this.el.html) {
199
- this.el.html.style.overflow = 'auto';
200
- }
201
- requestAnimationFrame(() => {
202
- this.el.wrapper?.classList.remove('mint-open');
203
- });
258
+ this.attachElements();
259
+ this.attachEvents();
260
+ requestAnimationFrame(() => {
204
261
  this.closeAllMenus();
205
- }
262
+ });
206
263
  }
207
264
  /**
208
- * Toggles the state of the mobile menu
265
+ * Adds elements to {@link el | `this.el`}
266
+ */
267
+ attachElements() {
268
+ this.el.wrapper = document.getElementById(this.settings.wrapperId);
269
+ }
270
+ /**
271
+ * Adds events to the dom
209
272
  */
210
- toggleMobileMenu() {
211
- this.setMobileMenu(this.el.mobileButton?.getAttribute('aria-expanded')?.toLowerCase() === 'false');
273
+ attachEvents() {
274
+ this.attachEvent(window, 'scroll', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eHandleScroll.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.default, { trailing: false }));
275
+ const focusables = this.el.wrapper?.querySelectorAll(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.focusable);
276
+ focusables?.forEach((focusable) => {
277
+ this.attachEvent(focusable, 'keydown', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eHandleKeypress.bind(this)));
278
+ });
279
+ const menuButtons = this.el.wrapper?.querySelectorAll(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.controls());
280
+ menuButtons?.forEach((menuButton) => {
281
+ this.attachEvent(menuButton, 'click', _util__WEBPACK_IMPORTED_MODULE_1__.MintEvent.throttleEvent(this.eToggleMenu.bind(this), _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.delay.slow, { trailing: false }));
282
+ });
212
283
  }
213
284
  /**
214
285
  * Sets the state of the provided button's menu
@@ -261,7 +332,7 @@ class MintHeader {
261
332
  });
262
333
  }
263
334
  /**
264
- * Closes all submenus of the n4vbar
335
+ * Closes all submenus of the menu
265
336
  */
266
337
  closeAllMenus() {
267
338
  let menuButtons = this.el.wrapper?.querySelectorAll(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.subMenuButtons);
@@ -274,7 +345,7 @@ class MintHeader {
274
345
  */
275
346
  openClosestMenu() {
276
347
  let activeButton = document.activeElement, activeMenu = activeButton?.nextElementSibling, showing = activeButton?.getAttribute('aria-expanded')?.toLowerCase() === 'true';
277
- if (activeButton?.getAttribute('aria-controls') === 'mint-wrapper') {
348
+ if (activeButton?.getAttribute('aria-controls') === this.settings.wrapperId) {
278
349
  activeMenu = this.el.wrapper;
279
350
  }
280
351
  if (activeButton?.getAttribute('aria-controls') && activeMenu && !showing) {
@@ -287,7 +358,7 @@ class MintHeader {
287
358
  * Closes the menu closest to the document's focus
288
359
  */
289
360
  closeClosestMenu() {
290
- let activeElement = document.activeElement, activeMenu = activeElement?.closest(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.subMenu), activeButton = activeMenu?.previousElementSibling ? activeMenu.previousElementSibling : this.el.mobileButton;
361
+ let activeElement = document.activeElement, activeMenu = activeElement?.closest(_util__WEBPACK_IMPORTED_MODULE_1__.MintSelectors.subMenu), activeButton = activeMenu?.previousElementSibling;
291
362
  if (activeElement?.getAttribute('aria-controls') && activeElement?.getAttribute('aria-expanded')?.toLowerCase() === 'true') {
292
363
  activeButton = activeElement;
293
364
  }
@@ -307,37 +378,6 @@ class MintHeader {
307
378
  this.openClosestMenu();
308
379
  }
309
380
  }
310
- /**
311
- * Closes the mobile menu when the window resizes
312
- */
313
- eHandleResize() {
314
- const isMobile = _util__WEBPACK_IMPORTED_MODULE_1__.MintWindow.width() <= _util__WEBPACK_IMPORTED_MODULE_1__.MintSettings.break.sm;
315
- let closeMenu = true;
316
- if (this.el.header?.classList.contains('mint-tray')) {
317
- closeMenu = false;
318
- }
319
- else if (!this.el.header?.classList.contains('mint-expand')) {
320
- closeMenu = false;
321
- }
322
- if (!isMobile && closeMenu) {
323
- this.setMobileMenu(false);
324
- }
325
- const isOpen = this.el.mobileButton?.getAttribute('aria-expanded')?.toLowerCase() === 'true';
326
- let overflow = 'auto';
327
- if (isOpen) {
328
- if (this.settings.tray) {
329
- if (isMobile) {
330
- overflow = 'hidden';
331
- }
332
- }
333
- else {
334
- overflow = 'hidden';
335
- }
336
- }
337
- if (this.el.html) {
338
- this.el.html.style.overflow = overflow;
339
- }
340
- }
341
381
  /**
342
382
  * Closes all submenus when the page is scrolled
343
383
  */
@@ -345,19 +385,7 @@ class MintHeader {
345
385
  this.closeAllMenus();
346
386
  }
347
387
  /**
348
- * Sends the focus to the menu button after tabbing past the last menu item
349
- * @param e - Keyboard event
350
- */
351
- eWrapTab(e) {
352
- if (e.key.toLowerCase() === 'tab' && !e.shiftKey) {
353
- this.el.mobileButton?.focus();
354
- if (document.activeElement === this.el.mobileButton) {
355
- e.preventDefault();
356
- }
357
- }
358
- }
359
- /**
360
- * Handles keypresses on n4vbar buttons
388
+ * Handles keypresses on menu buttons
361
389
  * @param e - Keyboard event
362
390
  */
363
391
  eHandleButtonKeypress(e) {
@@ -367,10 +395,6 @@ class MintHeader {
367
395
  if (subMenu?.classList.contains('mint-open')) {
368
396
  this.setMenu(subMenu);
369
397
  }
370
- else {
371
- this.setMobileMenu();
372
- this.el.menuButton?.focus();
373
- }
374
398
  break;
375
399
  case 'arrowleft':
376
400
  this.closeClosestMenu();
@@ -385,7 +409,7 @@ class MintHeader {
385
409
  }
386
410
  }
387
411
  /**
388
- * Handles keypresses on n4vbar links
412
+ * Handles keypresses on menu links
389
413
  * @param e - Keyboard event
390
414
  */
391
415
  eHandleLinkKeypress(e) {
@@ -405,7 +429,7 @@ class MintHeader {
405
429
  }
406
430
  }
407
431
  /**
408
- * Handles keypresses on the n4vbar
432
+ * Handles keypresses on the menu
409
433
  * @param e - Keyboard event
410
434
  */
411
435
  eHandleKeypress(e) {
@@ -422,18 +446,6 @@ class MintHeader {
422
446
  break;
423
447
  }
424
448
  }
425
- /**
426
- * Toggles the mobile menu
427
- */
428
- eToggleMobileMenu() {
429
- this.toggleMobileMenu();
430
- }
431
- /**
432
- * Closes the mobile menu
433
- */
434
- eCloseMobileMenu() {
435
- this.setMobileMenu(false);
436
- }
437
449
  /**
438
450
  * Toggles the clicked submenu
439
451
  * @param e - Mouse event
@@ -443,41 +455,232 @@ class MintHeader {
443
455
  this.closeSiblingMenus(target);
444
456
  this.toggleMenu(target);
445
457
  }
446
- /**
447
- * Runs after the mobile menu transitions
448
- */
449
- eTransitionEnd() {
450
- if (this.el.wrapper?.classList.contains('mint-open') === false) {
451
- this.el.wrapper.style.display = 'none';
452
- }
453
- }
454
- ;
455
458
  }
456
459
  ;
457
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MintHeader);
458
460
 
459
461
 
460
462
  /***/ }),
461
463
 
462
- /***/ "./src/ts/imports/components/index.ts":
464
+ /***/ "./src/ts/imports/components/panel.ts":
463
465
  /*!********************************************!*\
464
- !*** ./src/ts/imports/components/index.ts ***!
466
+ !*** ./src/ts/imports/components/panel.ts ***!
465
467
  \********************************************/
466
468
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
467
469
 
468
470
  __webpack_require__.r(__webpack_exports__);
469
471
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
470
- /* harmony export */ MintGrid: () => (/* reexport safe */ _grid__WEBPACK_IMPORTED_MODULE_0__.MintGrid),
471
- /* harmony export */ MintHeader: () => (/* reexport safe */ _header__WEBPACK_IMPORTED_MODULE_1__.MintHeader)
472
+ /* harmony export */ MintPanel: () => (/* binding */ MintPanel)
472
473
  /* harmony export */ });
473
- /* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./grid */ "./src/ts/imports/components/grid.ts");
474
- /* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./header */ "./src/ts/imports/components/header.ts");
474
+ /* harmony import */ var _enums_side__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums/side */ "./src/ts/imports/enums/side.ts");
475
+ /* harmony import */ var _abstract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../abstract */ "./src/ts/imports/abstract/index.ts");
476
+ /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ "./src/ts/imports/util/index.ts");
475
477
  /**
476
- * Forward all exports from the components directory
478
+ * Imports
477
479
  */
478
480
 
479
481
 
480
482
 
483
+ /**
484
+ * Panel (sidebar) functionality
485
+ * @public
486
+ */
487
+ class MintPanel extends _abstract__WEBPACK_IMPORTED_MODULE_1__.MintAttachesEvents {
488
+ /**
489
+ * Panel settings
490
+ */
491
+ settings = {
492
+ title: 'panel',
493
+ from: _enums_side__WEBPACK_IMPORTED_MODULE_0__.EMintSide.Top,
494
+ fixed: true
495
+ };
496
+ /**
497
+ * Frequently-referenced elements
498
+ */
499
+ el = {};
500
+ /**
501
+ * Initializes and closes the panel
502
+ */
503
+ constructor(settings) {
504
+ super();
505
+ this.settings = { ...this.settings, ...settings };
506
+ if (!this.settings.id || !this.settings.wrapperId) {
507
+ throw new Error('Panel ID and wrapper ID are required');
508
+ }
509
+ this.attachElements();
510
+ this.attachEvents();
511
+ this.addClasses();
512
+ requestAnimationFrame(() => {
513
+ this.setPanel();
514
+ });
515
+ }
516
+ /**
517
+ * Adds elements to {@link el | `this.el`}
518
+ */
519
+ attachElements() {
520
+ this.el.html = document.querySelector('html');
521
+ this.el.main = document.querySelector('main');
522
+ this.el.panel = document.getElementById(this.settings.id);
523
+ this.el.wrapper = document.getElementById(this.settings.wrapperId);
524
+ this.el.toggleButton = this.el.panel?.querySelector(_util__WEBPACK_IMPORTED_MODULE_2__.MintSelectors.controls(this.settings.wrapperId)) || null;
525
+ }
526
+ /**
527
+ * Adds events to the dom
528
+ */
529
+ attachEvents() {
530
+ this.attachEvent(window, 'resize', _util__WEBPACK_IMPORTED_MODULE_2__.MintEvent.throttleEvent(this.eHandleResize.bind(this), _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.delay.default));
531
+ this.attachEvent(this.el.main, 'click', _util__WEBPACK_IMPORTED_MODULE_2__.MintEvent.throttleEvent(this.eClose.bind(this), _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.delay.default, { trailing: false }));
532
+ const focusables = _util__WEBPACK_IMPORTED_MODULE_2__.MintSelectors.getFocusables(this.el.panel);
533
+ focusables?.forEach(focusable => {
534
+ this.attachEvent(focusable, 'keydown', _util__WEBPACK_IMPORTED_MODULE_2__.MintEvent.throttleEvent(this.eWrapTab.bind(this)));
535
+ });
536
+ this.attachEvent(this.el.toggleButton, 'click', _util__WEBPACK_IMPORTED_MODULE_2__.MintEvent.throttleEvent(this.eToggle.bind(this), _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.delay.slow, { trailing: false }));
537
+ this.attachEvent(this.el.wrapper, 'transitionend', this.eTransitionEnd.bind(this));
538
+ }
539
+ /**
540
+ * Adds classes that inform the styles based on settings
541
+ */
542
+ addClasses() {
543
+ this.el.panel?.classList.add('mint-panel');
544
+ this.el.wrapper?.classList.add('mint-panel-wrapper');
545
+ this.el.toggleButton?.classList.add('mint-panel-toggle');
546
+ if (this.settings.from) {
547
+ this.el.panel?.classList.remove('mint-top', 'mint-right', 'mint-bottom', 'mint-left');
548
+ this.el.panel?.classList.add(`mint-${_enums_side__WEBPACK_IMPORTED_MODULE_0__.EMintSide[this.settings.from].toLowerCase()}`);
549
+ }
550
+ if (this.settings.tray) {
551
+ this.el.panel?.classList.add('mint-tray');
552
+ }
553
+ }
554
+ /**
555
+ * Sets the state of the panel
556
+ * @param open - `true` to open the panel or `false` to close it
557
+ */
558
+ setPanel(open = false) {
559
+ let ariaExpanded = open ? 'true' : 'false', ariaLabel = open ? `close ${this.settings.title}` : `open ${this.settings.title}`;
560
+ this.el.toggleButton?.setAttribute('aria-expanded', ariaExpanded);
561
+ setTimeout(() => {
562
+ this.el.toggleButton?.setAttribute('aria-label', ariaLabel);
563
+ }, _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.delay.fast);
564
+ if (open) {
565
+ this.closeOtherPanels();
566
+ if (this.settings.fixed !== true) {
567
+ window.scroll({
568
+ top: 0,
569
+ left: 0,
570
+ behavior: 'smooth'
571
+ });
572
+ }
573
+ setTimeout(() => {
574
+ if (this.el.html) {
575
+ let isMobile = _util__WEBPACK_IMPORTED_MODULE_2__.MintWindow.width() <= _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.break.sm, overflow = 'auto';
576
+ if (this.settings.tray) {
577
+ if (isMobile) {
578
+ overflow = 'hidden';
579
+ }
580
+ }
581
+ else {
582
+ overflow = 'hidden';
583
+ }
584
+ console.log('Overflow', overflow, isMobile, this.settings.tray);
585
+ this.el.html.style.overflow = overflow;
586
+ }
587
+ }, this.settings.from === _enums_side__WEBPACK_IMPORTED_MODULE_0__.EMintSide.Left ? _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.delay.default : _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.delay.instant);
588
+ if (this.el.wrapper) {
589
+ this.el.wrapper.style.display = 'flex';
590
+ }
591
+ requestAnimationFrame(() => {
592
+ this.el.wrapper?.classList.add('mint-open');
593
+ });
594
+ }
595
+ else {
596
+ if (this.el.html) {
597
+ this.el.html.style.overflow = 'auto';
598
+ }
599
+ requestAnimationFrame(() => {
600
+ this.el.wrapper?.classList.remove('mint-open');
601
+ });
602
+ }
603
+ }
604
+ /**
605
+ * Toggles the state of the panel
606
+ */
607
+ togglePanel() {
608
+ this.setPanel(this.el.toggleButton?.getAttribute('aria-expanded')?.toLowerCase() === 'false');
609
+ }
610
+ /**
611
+ * Closes other panels
612
+ */
613
+ closeOtherPanels() {
614
+ const openPanelSelector = `.mint-panel-toggle[aria-expanded="true"]:not([aria-controls="${this.settings.wrapperId}"])`;
615
+ const toggleBtn = document.querySelector(openPanelSelector);
616
+ toggleBtn?.click();
617
+ }
618
+ /**
619
+ * Closes the panel when the window resizes
620
+ */
621
+ eHandleResize() {
622
+ const isMobile = _util__WEBPACK_IMPORTED_MODULE_2__.MintWindow.width() <= _util__WEBPACK_IMPORTED_MODULE_2__.MintSettings.break.sm;
623
+ let closeMenu = true;
624
+ if (this.el.panel?.classList.contains('mint-tray')) {
625
+ closeMenu = false;
626
+ }
627
+ else if (!this.el.panel?.classList.contains('mint-expand')) {
628
+ closeMenu = false;
629
+ }
630
+ if (!isMobile && closeMenu) {
631
+ this.setPanel(false);
632
+ }
633
+ const isOpen = this.el.toggleButton?.getAttribute('aria-expanded')?.toLowerCase() === 'true';
634
+ let overflow = 'auto';
635
+ if (isOpen) {
636
+ if (this.settings.tray) {
637
+ if (isMobile) {
638
+ overflow = 'hidden';
639
+ }
640
+ }
641
+ else {
642
+ overflow = 'hidden';
643
+ }
644
+ }
645
+ if (this.el.html) {
646
+ this.el.html.style.overflow = overflow;
647
+ }
648
+ }
649
+ /**
650
+ * Sends the focus to the toggle button after tabbing past the last focusable element
651
+ * @param e - Keyboard event
652
+ */
653
+ eWrapTab(e) {
654
+ const focusables = _util__WEBPACK_IMPORTED_MODULE_2__.MintSelectors.getFocusables(this.el.panel), lastFocusable = focusables?.[focusables?.length - 1], wrapTab = focusables?.length > 1 && document.activeElement === lastFocusable, isTab = e.key.toLowerCase() === 'tab' && !e.shiftKey;
655
+ if (isTab && wrapTab) {
656
+ this.el.toggleButton?.focus();
657
+ if (document.activeElement === this.el.toggleButton) {
658
+ e.preventDefault();
659
+ }
660
+ }
661
+ }
662
+ /**
663
+ * Toggles the panel
664
+ */
665
+ eToggle() {
666
+ this.togglePanel();
667
+ }
668
+ /**
669
+ * Closes the panel
670
+ */
671
+ eClose() {
672
+ this.setPanel(false);
673
+ }
674
+ /**
675
+ * Runs after the panel transitions
676
+ */
677
+ eTransitionEnd() {
678
+ if (this.el.wrapper?.classList.contains('mint-open') === false) {
679
+ this.el.wrapper.style.display = 'none';
680
+ }
681
+ }
682
+ }
683
+
481
684
 
482
685
  /***/ }),
483
686
 
@@ -533,30 +736,34 @@ var EMintSide;
533
736
 
534
737
  __webpack_require__.r(__webpack_exports__);
535
738
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
536
- /* harmony export */ EMintSide: () => (/* reexport safe */ _enums__WEBPACK_IMPORTED_MODULE_1__.EMintSide),
537
- /* harmony export */ MintAsync: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintAsync),
538
- /* harmony export */ MintDisplay: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintDisplay),
539
- /* harmony export */ MintEvent: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintEvent),
540
- /* harmony export */ MintGrid: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_0__.MintGrid),
541
- /* harmony export */ MintHeader: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_0__.MintHeader),
542
- /* harmony export */ MintIcon: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintIcon),
543
- /* harmony export */ MintItem: () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_2__.MintItem),
544
- /* harmony export */ MintList: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintList),
545
- /* harmony export */ MintMath: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintMath),
546
- /* harmony export */ MintObject: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintObject),
547
- /* harmony export */ MintScroll: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintScroll),
548
- /* harmony export */ MintSelectors: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintSelectors),
549
- /* harmony export */ MintSettings: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintSettings),
550
- /* harmony export */ MintText: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintText),
551
- /* harmony export */ MintWindow: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_3__.MintWindow),
552
- /* harmony export */ mintColor: () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_2__.mintColor)
739
+ /* harmony export */ EMintSide: () => (/* reexport safe */ _enums__WEBPACK_IMPORTED_MODULE_2__.EMintSide),
740
+ /* harmony export */ MintAsync: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintAsync),
741
+ /* harmony export */ MintAttachesEvents: () => (/* reexport safe */ _abstract__WEBPACK_IMPORTED_MODULE_0__.MintAttachesEvents),
742
+ /* harmony export */ MintDisplay: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintDisplay),
743
+ /* harmony export */ MintEvent: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintEvent),
744
+ /* harmony export */ MintGrid: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.MintGrid),
745
+ /* harmony export */ MintHeader: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.MintHeader),
746
+ /* harmony export */ MintIcon: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintIcon),
747
+ /* harmony export */ MintItem: () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.MintItem),
748
+ /* harmony export */ MintList: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintList),
749
+ /* harmony export */ MintMath: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintMath),
750
+ /* harmony export */ MintMenu: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.MintMenu),
751
+ /* harmony export */ MintObject: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintObject),
752
+ /* harmony export */ MintPanel: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.MintPanel),
753
+ /* harmony export */ MintScroll: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintScroll),
754
+ /* harmony export */ MintSelectors: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintSelectors),
755
+ /* harmony export */ MintSettings: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintSettings),
756
+ /* harmony export */ MintText: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintText),
757
+ /* harmony export */ MintWindow: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_4__.MintWindow),
758
+ /* harmony export */ mintColor: () => (/* reexport safe */ _models__WEBPACK_IMPORTED_MODULE_3__.mintColor)
553
759
  /* harmony export */ });
554
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components */ "./src/ts/imports/components/index.ts");
555
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enums */ "./src/ts/imports/enums/index.ts");
556
- /* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./models */ "./src/ts/imports/models/index.ts");
557
- /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "./src/ts/imports/util/index.ts");
760
+ /* harmony import */ var _abstract__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstract */ "./src/ts/imports/abstract/index.ts");
761
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components */ "./src/ts/imports/components/index.ts");
762
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./enums */ "./src/ts/imports/enums/index.ts");
763
+ /* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./models */ "./src/ts/imports/models/index.ts");
764
+ /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "./src/ts/imports/util/index.ts");
558
765
  /**
559
- * Forward all exports from the imports directory
766
+ * Forward all imports exports
560
767
  */
561
768
 
562
769
 
@@ -564,6 +771,7 @@ __webpack_require__.r(__webpack_exports__);
564
771
 
565
772
 
566
773
 
774
+
567
775
  /***/ }),
568
776
 
569
777
  /***/ "./src/ts/imports/models/color.ts":
@@ -670,6 +878,18 @@ class mintColor {
670
878
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mintColor);
671
879
 
672
880
 
881
+ /***/ }),
882
+
883
+ /***/ "./src/ts/imports/models/event.ts":
884
+ /*!****************************************!*\
885
+ !*** ./src/ts/imports/models/event.ts ***!
886
+ \****************************************/
887
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
888
+
889
+ __webpack_require__.r(__webpack_exports__);
890
+
891
+
892
+
673
893
  /***/ }),
674
894
 
675
895
  /***/ "./src/ts/imports/models/file.ts":
@@ -692,15 +912,16 @@ __webpack_require__.r(__webpack_exports__);
692
912
 
693
913
  __webpack_require__.r(__webpack_exports__);
694
914
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
695
- /* harmony export */ MintItem: () => (/* reexport safe */ _item__WEBPACK_IMPORTED_MODULE_2__.MintItem),
915
+ /* harmony export */ MintItem: () => (/* reexport safe */ _item__WEBPACK_IMPORTED_MODULE_3__.MintItem),
696
916
  /* harmony export */ mintColor: () => (/* reexport safe */ _color__WEBPACK_IMPORTED_MODULE_0__.mintColor)
697
917
  /* harmony export */ });
698
918
  /* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color */ "./src/ts/imports/models/color.ts");
699
- /* harmony import */ var _file__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./file */ "./src/ts/imports/models/file.ts");
700
- /* harmony import */ var _item__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./item */ "./src/ts/imports/models/item.ts");
701
- /* harmony import */ var _minify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minify */ "./src/ts/imports/models/minify.ts");
702
- /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./page */ "./src/ts/imports/models/page.ts");
703
- /* harmony import */ var _recaptcha__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./recaptcha */ "./src/ts/imports/models/recaptcha.ts");
919
+ /* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./event */ "./src/ts/imports/models/event.ts");
920
+ /* harmony import */ var _file__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./file */ "./src/ts/imports/models/file.ts");
921
+ /* harmony import */ var _item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./item */ "./src/ts/imports/models/item.ts");
922
+ /* harmony import */ var _minify__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./minify */ "./src/ts/imports/models/minify.ts");
923
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./page */ "./src/ts/imports/models/page.ts");
924
+ /* harmony import */ var _recaptcha__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./recaptcha */ "./src/ts/imports/models/recaptcha.ts");
704
925
  /**
705
926
  * Forward all exports from the models directory
706
927
  */
@@ -712,6 +933,7 @@ __webpack_require__.r(__webpack_exports__);
712
933
 
713
934
 
714
935
 
936
+
715
937
  /***/ }),
716
938
 
717
939
  /***/ "./src/ts/imports/models/item.ts":
@@ -2112,6 +2334,7 @@ __webpack_require__.r(__webpack_exports__);
2112
2334
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2113
2335
  /* harmony export */ EMintSide: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.EMintSide),
2114
2336
  /* harmony export */ MintAsync: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintAsync),
2337
+ /* harmony export */ MintAttachesEvents: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintAttachesEvents),
2115
2338
  /* harmony export */ MintDisplay: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintDisplay),
2116
2339
  /* harmony export */ MintEvent: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintEvent),
2117
2340
  /* harmony export */ MintGrid: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintGrid),
@@ -2120,7 +2343,9 @@ __webpack_require__.r(__webpack_exports__);
2120
2343
  /* harmony export */ MintItem: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintItem),
2121
2344
  /* harmony export */ MintList: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintList),
2122
2345
  /* harmony export */ MintMath: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintMath),
2346
+ /* harmony export */ MintMenu: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintMenu),
2123
2347
  /* harmony export */ MintObject: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintObject),
2348
+ /* harmony export */ MintPanel: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintPanel),
2124
2349
  /* harmony export */ MintScroll: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintScroll),
2125
2350
  /* harmony export */ MintSelectors: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintSelectors),
2126
2351
  /* harmony export */ MintSettings: () => (/* reexport safe */ _imports__WEBPACK_IMPORTED_MODULE_0__.MintSettings),
@@ -2143,6 +2368,7 @@ __webpack_require__.r(__webpack_exports__);
2143
2368
 
2144
2369
  var __webpack_exports__EMintSide = __webpack_exports__.EMintSide;
2145
2370
  var __webpack_exports__MintAsync = __webpack_exports__.MintAsync;
2371
+ var __webpack_exports__MintAttachesEvents = __webpack_exports__.MintAttachesEvents;
2146
2372
  var __webpack_exports__MintDisplay = __webpack_exports__.MintDisplay;
2147
2373
  var __webpack_exports__MintEvent = __webpack_exports__.MintEvent;
2148
2374
  var __webpack_exports__MintGrid = __webpack_exports__.MintGrid;
@@ -2151,13 +2377,15 @@ var __webpack_exports__MintIcon = __webpack_exports__.MintIcon;
2151
2377
  var __webpack_exports__MintItem = __webpack_exports__.MintItem;
2152
2378
  var __webpack_exports__MintList = __webpack_exports__.MintList;
2153
2379
  var __webpack_exports__MintMath = __webpack_exports__.MintMath;
2380
+ var __webpack_exports__MintMenu = __webpack_exports__.MintMenu;
2154
2381
  var __webpack_exports__MintObject = __webpack_exports__.MintObject;
2382
+ var __webpack_exports__MintPanel = __webpack_exports__.MintPanel;
2155
2383
  var __webpack_exports__MintScroll = __webpack_exports__.MintScroll;
2156
2384
  var __webpack_exports__MintSelectors = __webpack_exports__.MintSelectors;
2157
2385
  var __webpack_exports__MintSettings = __webpack_exports__.MintSettings;
2158
2386
  var __webpack_exports__MintText = __webpack_exports__.MintText;
2159
2387
  var __webpack_exports__MintWindow = __webpack_exports__.MintWindow;
2160
2388
  var __webpack_exports__mintColor = __webpack_exports__.mintColor;
2161
- export { __webpack_exports__EMintSide as EMintSide, __webpack_exports__MintAsync as MintAsync, __webpack_exports__MintDisplay as MintDisplay, __webpack_exports__MintEvent as MintEvent, __webpack_exports__MintGrid as MintGrid, __webpack_exports__MintHeader as MintHeader, __webpack_exports__MintIcon as MintIcon, __webpack_exports__MintItem as MintItem, __webpack_exports__MintList as MintList, __webpack_exports__MintMath as MintMath, __webpack_exports__MintObject as MintObject, __webpack_exports__MintScroll as MintScroll, __webpack_exports__MintSelectors as MintSelectors, __webpack_exports__MintSettings as MintSettings, __webpack_exports__MintText as MintText, __webpack_exports__MintWindow as MintWindow, __webpack_exports__mintColor as mintColor };
2389
+ export { __webpack_exports__EMintSide as EMintSide, __webpack_exports__MintAsync as MintAsync, __webpack_exports__MintAttachesEvents as MintAttachesEvents, __webpack_exports__MintDisplay as MintDisplay, __webpack_exports__MintEvent as MintEvent, __webpack_exports__MintGrid as MintGrid, __webpack_exports__MintHeader as MintHeader, __webpack_exports__MintIcon as MintIcon, __webpack_exports__MintItem as MintItem, __webpack_exports__MintList as MintList, __webpack_exports__MintMath as MintMath, __webpack_exports__MintMenu as MintMenu, __webpack_exports__MintObject as MintObject, __webpack_exports__MintPanel as MintPanel, __webpack_exports__MintScroll as MintScroll, __webpack_exports__MintSelectors as MintSelectors, __webpack_exports__MintSettings as MintSettings, __webpack_exports__MintText as MintText, __webpack_exports__MintWindow as MintWindow, __webpack_exports__mintColor as mintColor };
2162
2390
 
2163
2391
  //# sourceMappingURL=index.js.map