ably-ui 8.7.0.dev.7072b07 → 8.7.0.dev.7456b53

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +6 -6
  3. data/README.md +3 -7
  4. data/lib/ably_ui/core/code/component.css +0 -2
  5. data/lib/ably_ui/core/code/component.js +1 -739
  6. data/lib/ably_ui/core/company_autocomplete/component.css +0 -2
  7. data/lib/ably_ui/core/company_autocomplete/component.js +1 -1161
  8. data/lib/ably_ui/core/connect_state_wrapper/component.js +1 -22
  9. data/lib/ably_ui/core/contact_footer/component.css +0 -2
  10. data/lib/ably_ui/core/contact_footer/component.js +1 -211
  11. data/lib/ably_ui/core/cookie_message/component.css +0 -2
  12. data/lib/ably_ui/core/cookie_message/component.js +1 -82
  13. data/lib/ably_ui/core/core.rb +4 -8
  14. data/lib/ably_ui/core/customer_logos/component.js +1 -22
  15. data/lib/ably_ui/core/dropdown_menu/component.js +1 -22
  16. data/lib/ably_ui/core/feature_footer/component.css +0 -2
  17. data/lib/ably_ui/core/feature_footer/component.js +1 -211
  18. data/lib/ably_ui/core/featured_link/component.css +0 -2
  19. data/lib/ably_ui/core/featured_link/component.js +1 -82
  20. data/lib/ably_ui/core/flash/component.css +0 -2
  21. data/lib/ably_ui/core/flash/component.js +1 -82
  22. data/lib/ably_ui/core/footer/component.css +1 -3
  23. data/lib/ably_ui/core/footer/component.js +1 -82
  24. data/lib/ably_ui/core/footer/footer.html.erb +23 -18
  25. data/lib/ably_ui/core/icon/component.js +1 -22
  26. data/lib/ably_ui/core/loader/component.js +1 -22
  27. data/lib/ably_ui/core/logo/component.js +1 -22
  28. data/lib/ably_ui/core/meganav/component.css +3 -3
  29. data/lib/ably_ui/core/meganav/component.js +1 -992
  30. data/lib/ably_ui/core/meganav/component.json +1 -1
  31. data/lib/ably_ui/core/meganav/meganav.rb +4 -4
  32. data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1 -1159
  33. data/lib/ably_ui/core/meganav_content_company/component.js +1 -22
  34. data/lib/ably_ui/core/meganav_content_company/meganav_content_company.html.erb +0 -9
  35. data/lib/ably_ui/core/meganav_content_developers/component.js +1 -22
  36. data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.html.erb +2 -18
  37. data/lib/ably_ui/core/meganav_content_platform/component.js +1 -0
  38. data/lib/ably_ui/core/{meganav_content_products/meganav_content_products.html.erb → meganav_content_platform/meganav_content_platform.html.erb} +33 -15
  39. data/lib/ably_ui/core/{meganav_content_products/meganav_content_products.rb → meganav_content_platform/meganav_content_platform.rb} +1 -1
  40. data/lib/ably_ui/core/meganav_content_use_cases/component.js +1 -22
  41. data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.html.erb +38 -42
  42. data/lib/ably_ui/core/meganav_control/component.js +1 -241
  43. data/lib/ably_ui/core/meganav_control_mobile_dropdown/component.js +1 -180
  44. data/lib/ably_ui/core/meganav_control_mobile_panel_close/component.js +1 -142
  45. data/lib/ably_ui/core/meganav_control_mobile_panel_open/component.js +1 -170
  46. data/lib/ably_ui/core/meganav_items_desktop/component.js +1 -22
  47. data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.rb +1 -1
  48. data/lib/ably_ui/core/meganav_items_mobile/component.js +1 -22
  49. data/lib/ably_ui/core/meganav_items_signed_in/component.js +1 -22
  50. data/lib/ably_ui/core/meganav_search/component.js +1 -22
  51. data/lib/ably_ui/core/meganav_search_autocomplete/component.js +1 -295
  52. data/lib/ably_ui/core/meganav_search_panel/component.js +1 -22
  53. data/lib/ably_ui/core/meganav_search_suggestions/component.js +1 -258
  54. data/lib/ably_ui/core/notice/component.css +0 -2
  55. data/lib/ably_ui/core/notice/component.js +1 -872
  56. data/lib/ably_ui/core/scripts.js +1 -1465
  57. data/lib/ably_ui/core/showcase/component.css +0 -2
  58. data/lib/ably_ui/core/showcase/component.js +1 -343
  59. data/lib/ably_ui/core/sign_out_link/component.js +1 -22
  60. data/lib/ably_ui/core/slider/component.css +0 -2
  61. data/lib/ably_ui/core/slider/component.js +1 -255
  62. data/lib/ably_ui/core/sprites.svg +0 -93
  63. data/lib/ably_ui/core/styles.css +7 -3
  64. data/lib/ably_ui/core/uptime/component.css +0 -2
  65. data/lib/ably_ui/core/uptime/component.js +1 -82
  66. data/lib/ably_ui/reset/scripts.js +1 -1
  67. data/lib/ably_ui/reset/styles.css +11 -1
  68. data/lib/ably_ui/version.rb +1 -1
  69. metadata +5 -9
  70. data/lib/ably_ui/core/images/best-support-2023.svg +0 -1
  71. data/lib/ably_ui/core/images/fastest-implementation-2023.svg +0 -1
  72. data/lib/ably_ui/core/images/high-performer-2023.svg +0 -1
  73. data/lib/ably_ui/core/images/highest-user-adoption-2023.svg +0 -1
  74. data/lib/ably_ui/core/meganav_content_products/component.js +0 -22
@@ -1,258 +1 @@
1
- (function webpackUniversalModuleDefinition(root, factory) {
2
- if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory();
4
- else if(typeof define === 'function' && define.amd)
5
- define([], factory);
6
- else if(typeof exports === 'object')
7
- exports["AblyUi"] = factory();
8
- else
9
- root["AblyUi"] = root["AblyUi"] || {}, root["AblyUi"]["Core"] = root["AblyUi"]["Core"] || {}, root["AblyUi"]["Core"]["MeganavSearchSuggestions"] = factory();
10
- })(this, () => {
11
- return /******/ (() => { // webpackBootstrap
12
- /******/ "use strict";
13
- /******/ var __webpack_modules__ = ({
14
-
15
- /***/ "./src/core/dom-query.js":
16
- /*!*******************************!*\
17
- !*** ./src/core/dom-query.js ***!
18
- \*******************************/
19
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20
-
21
- __webpack_require__.r(__webpack_exports__);
22
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23
- /* harmony export */ "queryId": () => (/* binding */ queryId),
24
- /* harmony export */ "queryIdAll": () => (/* binding */ queryIdAll)
25
- /* harmony export */ });
26
- var queryId = function queryId(val) {
27
- var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
28
- return root.querySelector("[data-id=".concat(val, "]"));
29
- };
30
- var queryIdAll = function queryIdAll(val) {
31
- var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
32
- return root.querySelectorAll("[data-id=".concat(val, "]"));
33
- };
34
-
35
- /***/ })
36
-
37
- /******/ });
38
- /************************************************************************/
39
- /******/ // The module cache
40
- /******/ var __webpack_module_cache__ = {};
41
- /******/
42
- /******/ // The require function
43
- /******/ function __webpack_require__(moduleId) {
44
- /******/ // Check if module is in cache
45
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
46
- /******/ if (cachedModule !== undefined) {
47
- /******/ return cachedModule.exports;
48
- /******/ }
49
- /******/ // Create a new module (and put it into the cache)
50
- /******/ var module = __webpack_module_cache__[moduleId] = {
51
- /******/ // no module.id needed
52
- /******/ // no module.loaded needed
53
- /******/ exports: {}
54
- /******/ };
55
- /******/
56
- /******/ // Execute the module function
57
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
58
- /******/
59
- /******/ // Return the exports of the module
60
- /******/ return module.exports;
61
- /******/ }
62
- /******/
63
- /************************************************************************/
64
- /******/ /* webpack/runtime/define property getters */
65
- /******/ (() => {
66
- /******/ // define getter functions for harmony exports
67
- /******/ __webpack_require__.d = (exports, definition) => {
68
- /******/ for(var key in definition) {
69
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
70
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
71
- /******/ }
72
- /******/ }
73
- /******/ };
74
- /******/ })();
75
- /******/
76
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
77
- /******/ (() => {
78
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
79
- /******/ })();
80
- /******/
81
- /******/ /* webpack/runtime/make namespace object */
82
- /******/ (() => {
83
- /******/ // define __esModule on exports
84
- /******/ __webpack_require__.r = (exports) => {
85
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
86
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
87
- /******/ }
88
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
89
- /******/ };
90
- /******/ })();
91
- /******/
92
- /************************************************************************/
93
- var __webpack_exports__ = {};
94
- // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
95
- (() => {
96
- /*!********************************************************!*\
97
- !*** ./src/core/MeganavSearchSuggestions/component.js ***!
98
- \********************************************************/
99
- __webpack_require__.r(__webpack_exports__);
100
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
101
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
102
- /* harmony export */ });
103
- /* harmony import */ var _dom_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-query */ "./src/core/dom-query.js");
104
-
105
- var DRAG_BUFFER = 5;
106
-
107
- var getTranslateX = function getTranslateX(node) {
108
- return new DOMMatrix(window.getComputedStyle(node).transform).e;
109
- };
110
-
111
- var updateTranslateX = function updateTranslateX(node, value) {
112
- return node.style.transform = "translateX(".concat(value, "px)");
113
- };
114
-
115
- var dragLeftBoundary = function dragLeftBoundary(translateX, threshold) {
116
- return translateX >= threshold;
117
- };
118
-
119
- var dragRightBoundary = function dragRightBoundary(translateX, itemsWidth, windowWidth, threshold) {
120
- return Math.abs(translateX - windowWidth + threshold) > itemsWidth;
121
- };
122
-
123
- var getDistance = function getDistance(e, touchStartX) {
124
- var _e$changedTouches$;
125
-
126
- return ((_e$changedTouches$ = e.changedTouches[0]) === null || _e$changedTouches$ === void 0 ? void 0 : _e$changedTouches$.clientX) - touchStartX;
127
- };
128
-
129
- var withinBuffer = function withinBuffer(distance) {
130
- return Math.abs(distance) < DRAG_BUFFER;
131
- };
132
-
133
- var getItemsTotalWidth = function getItemsTotalWidth(nodes) {
134
- return nodes.map(function (item) {
135
- return item.getBoundingClientRect().width;
136
- }).reduce(function (acc, val) {
137
- return acc + val;
138
- }, 0);
139
- };
140
-
141
- var MeganavSearchSuggestions = function MeganavSearchSuggestions() {
142
- var suggestionsToggle = (0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryId)("meganav-mobile-search-input");
143
- var suggestions = (0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryId)("meganav-mobile-search-suggestions");
144
- var list = suggestions.querySelector("ul");
145
- var listItems = Array.from(list.querySelectorAll("li"));
146
-
147
- var dragLeft = function dragLeft(distance, threshold) {
148
- var currentTranslateX = getTranslateX(list);
149
- var translateX = Math.round(currentTranslateX + distance);
150
- if (dragLeftBoundary(translateX, threshold)) return;
151
- updateTranslateX(list, translateX);
152
- };
153
-
154
- var dragLeftEnd = function dragLeftEnd(distance, threshold) {
155
- var currentTranslateX = getTranslateX(list);
156
- var translateX = Math.round(currentTranslateX + distance);
157
-
158
- if (dragLeftBoundary(translateX, threshold)) {
159
- translateX = 0;
160
- }
161
-
162
- updateTranslateX(list, translateX);
163
- };
164
-
165
- var dragRight = function dragRight(distance, threshold) {
166
- var listWidth = list.getBoundingClientRect().width;
167
- var currentTranslateX = getTranslateX(list);
168
- var translateX = Math.round(currentTranslateX + distance);
169
- var itemsTotalWidth = getItemsTotalWidth(listItems);
170
-
171
- if (dragRightBoundary(translateX, itemsTotalWidth, listWidth, threshold)) {
172
- return;
173
- }
174
-
175
- updateTranslateX(list, translateX);
176
- };
177
-
178
- var dragRightEnd = function dragRightEnd(distance, threshold) {
179
- var listWidth = list.getBoundingClientRect().width;
180
- var currentTranslateX = getTranslateX(list);
181
- var itemsTotalWidth = getItemsTotalWidth(listItems);
182
- var translateX = Math.round(currentTranslateX + distance);
183
-
184
- if (dragRightBoundary(translateX, itemsTotalWidth, listWidth, threshold)) {
185
- translateX = -(itemsTotalWidth - listWidth + threshold);
186
- }
187
-
188
- updateTranslateX(list, translateX);
189
- };
190
-
191
- var touchStartX;
192
-
193
- var touchstartHandler = function touchstartHandler(e) {
194
- var _e$touches$;
195
-
196
- touchStartX = (_e$touches$ = e.touches[0]) === null || _e$touches$ === void 0 ? void 0 : _e$touches$.clientX;
197
- };
198
-
199
- var touchmoveHandler = function touchmoveHandler(e) {
200
- var distance = getDistance(e, touchStartX);
201
- if (withinBuffer(distance)) return;
202
- distance > 0 ? dragLeft(distance, 24) : dragRight(distance, 96);
203
- };
204
-
205
- var touchendHandler = function touchendHandler(e) {
206
- var distance = getDistance(e, touchStartX);
207
- if (withinBuffer(distance)) return;
208
- distance > 0 ? dragLeftEnd(distance, 24) : dragRightEnd(distance, 48);
209
- };
210
-
211
- var focusSuggestionsHandler = function focusSuggestionsHandler() {
212
- suggestions.classList.add("max-h-96");
213
- };
214
-
215
- var blurSuggestionsHandler = function blurSuggestionsHandler(e) {
216
- if (e.relatedTarget === suggestions.querySelectorAll("a")[0]) {
217
- return;
218
- }
219
-
220
- suggestions.classList.remove("max-h-96");
221
- };
222
-
223
- var wheelHandler = function wheelHandler(e) {
224
- var distance = e.deltaY * 4;
225
- if (withinBuffer(distance)) return;
226
- distance > 0 ? dragLeftEnd(distance, 24) : dragRightEnd(distance, 48);
227
- };
228
-
229
- suggestionsToggle.addEventListener("focus", focusSuggestionsHandler);
230
- suggestionsToggle.addEventListener("blur", blurSuggestionsHandler);
231
- suggestions.addEventListener("touchstart", touchstartHandler);
232
- suggestions.addEventListener("touchmove", touchmoveHandler);
233
- suggestions.addEventListener("touchend", touchendHandler);
234
- suggestions.addEventListener("wheel", wheelHandler);
235
- return {
236
- teardown: function teardown() {
237
- suggestionsToggle.removeEventListener("focus", focusSuggestionsHandler);
238
- suggestionsToggle.removeEventListener("blur", blurSuggestionsHandler);
239
- suggestions.removeEventListener("touchstart", touchstartHandler);
240
- suggestions.removeEventListener("touchmove", touchmoveHandler);
241
- suggestions.removeEventListener("touchend", touchendHandler);
242
- },
243
- clear: function clear() {
244
- suggestions.classList.remove("max-h-96");
245
- list.style.transform = "translateX(0px)";
246
- }
247
- };
248
- };
249
-
250
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MeganavSearchSuggestions);
251
- })();
252
-
253
- __webpack_exports__ = __webpack_exports__["default"];
254
- /******/ return __webpack_exports__;
255
- /******/ })()
256
- ;
257
- });
258
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2U2VhcmNoU3VnZ2VzdGlvbnMvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPOzs7Ozs7Ozs7Ozs7Ozs7QUNWTyxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxHQUFEO0FBQUEsTUFBTUMsSUFBTix1RUFBYUMsUUFBYjtBQUFBLFNBQ3JCRCxJQUFJLENBQUNFLGFBQUwsb0JBQStCSCxHQUEvQixPQURxQjtBQUFBLENBQWhCO0FBR0EsSUFBTUksVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0osR0FBRDtBQUFBLE1BQU1DLElBQU4sdUVBQWFDLFFBQWI7QUFBQSxTQUN4QkQsSUFBSSxDQUFDSSxnQkFBTCxvQkFBa0NMLEdBQWxDLE9BRHdCO0FBQUEsQ0FBbkI7Ozs7OztVQ0hQO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7O1dDdEJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7QUNOQTtBQUVBLElBQU1NLFdBQVcsR0FBRyxDQUFwQjs7QUFFQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLElBQUQ7QUFBQSxTQUNwQixJQUFJQyxTQUFKLENBQWNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JILElBQXhCLEVBQThCSSxTQUE1QyxFQUF1REMsQ0FEbkM7QUFBQSxDQUF0Qjs7QUFHQSxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENB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QUE4Q1Asc0JBQTlDO0FBQ0FwQixNQUFBQSxXQUFXLENBQUMyQixtQkFBWixDQUFnQyxZQUFoQyxFQUE4Q2QsaUJBQTlDO0FBQ0FiLE1BQUFBLFdBQVcsQ0FBQzJCLG1CQUFaLENBQWdDLFdBQWhDLEVBQTZDWixnQkFBN0M7QUFDQWYsTUFBQUEsV0FBVyxDQUFDMkIsbUJBQVosQ0FBZ0MsVUFBaEMsRUFBNENYLGVBQTVDO0FBQ0QsS0FQSTtBQVFMWSxJQUFBQSxLQUFLLEVBQUUsaUJBQU07QUFDWDVCLE1BQUFBLFdBQVcsQ0FBQ2tCLFNBQVosQ0FBc0JJLE1BQXRCLENBQTZCLFVBQTdCO0FBQ0FyQixNQUFBQSxJQUFJLENBQUMxQixLQUFMLENBQVdKLFNBQVg7QUFDRDtBQVhJLEdBQVA7QUFhRCxDQXpHRDs7QUEyR0EsaUVBQWUyQix3QkFBZixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0FibHlVaS5Db3JlLy4vc3JjL2NvcmUvZG9tLXF1ZXJ5LmpzIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvLi9zcmMvY29yZS9NZWdhbmF2U2VhcmNoU3VnZ2VzdGlvbnMvY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZTZWFyY2hTdWdnZXN0aW9uc1wiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiLCJleHBvcnQgY29uc3QgcXVlcnlJZCA9ICh2YWwsIHJvb3QgPSBkb2N1bWVudCkgPT5cbiAgcm9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pZD0ke3ZhbH1dYCk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeUlkQWxsID0gKHZhbCwgcm9vdCA9IGRvY3VtZW50KSA9PlxuICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFtkYXRhLWlkPSR7dmFsfV1gKTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgcXVlcnlJZCB9IGZyb20gXCIuLi9kb20tcXVlcnlcIjtcblxuY29uc3QgRFJBR19CVUZGRVIgPSA1O1xuXG5jb25zdCBnZXRUcmFuc2xhdGVYID0gKG5vZGUpID0+XG4gIG5ldyBET01NYXRyaXgod2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkudHJhbnNmb3JtKS5lO1xuXG5jb25zdCB1cGRhdGVUcmFuc2xhdGVYID0gKG5vZGUsIHZhbHVlKSA9PlxuICAobm9kZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgke3ZhbHVlfXB4KWApO1xuXG5jb25zdCBkcmFnTGVmdEJvdW5kYXJ5ID0gKHRyYW5zbGF0ZVgsIHRocmVzaG9sZCkgPT4gdHJhbnNsYXRlWCA+PSB0aHJlc2hvbGQ7XG5cbmNvbnN0IGRyYWdSaWdodEJvdW5kYXJ5ID0gKHRyYW5zbGF0ZVgsIGl0ZW1zV2lkdGgsIHdpbmRvd1dpZHRoLCB0aHJlc2hvbGQpID0+XG4gIE1hdGguYWJzKHRyYW5zbGF0ZVggLSB3aW5kb3dXaWR0aCArIHRocmVzaG9sZCkgPiBpdGVtc1dpZHRoO1xuXG5jb25zdCBnZXREaXN0YW5jZSA9IChlLCB0b3VjaFN0YXJ0WCkgPT5cbiAgZS5jaGFuZ2VkVG91Y2hlc1swXT8uY2xpZW50WCAtIHRvdWNoU3RhcnRYO1xuXG5jb25zdCB3aXRoaW5CdWZmZXIgPSAoZGlzdGFuY2UpID0+IE1hdGguYWJzKGRpc3RhbmNlKSA8IERSQUdfQlVGRkVSO1xuXG5jb25zdCBnZXRJdGVtc1RvdGFsV2lkdGggPSAobm9kZXMpID0+XG4gIG5vZGVzXG4gICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aClcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsLCAwKTtcblxuY29uc3QgTWVnYW5hdlNlYXJjaFN1Z2dlc3Rpb25zID0gKCkgPT4ge1xuICBjb25zdCBzdWdnZXN0aW9uc1RvZ2dsZSA9IHF1ZXJ5SWQoXCJtZWdhbmF2LW1vYmlsZS1zZWFyY2gtaW5wdXRcIik7XG4gIGNvbnN0IHN1Z2dlc3Rpb25zID0gcXVlcnlJZChcIm1lZ2FuYXYtbW9iaWxlLXNlYXJjaC1zdWdnZXN0aW9uc1wiKTtcbiAgY29uc3QgbGlzdCA9IHN1Z2dlc3Rpb25zLnF1ZXJ5U2VsZWN0b3IoXCJ1bFwiKTtcbiAgY29uc3QgbGlzdEl0ZW1zID0gQXJyYXkuZnJvbShsaXN0LnF1ZXJ5U2VsZWN0b3JBbGwoXCJsaVwiKSk7XG5cbiAgY29uc3QgZHJhZ0xlZnQgPSAoZGlzdGFuY2UsIHRocmVzaG9sZCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gZ2V0VHJhbnNsYXRlWChsaXN0KTtcbiAgICBjb25zdCB0cmFuc2xhdGVYID0gTWF0aC5yb3VuZChjdXJyZW50VHJhbnNsYXRlWCArIGRpc3RhbmNlKTtcbiAgICBpZiAoZHJhZ0xlZnRCb3VuZGFyeSh0cmFuc2xhdGVYLCB0aHJlc2hvbGQpKSByZXR1cm47XG4gICAgdXBkYXRlVHJhbnNsYXRlWChsaXN0LCB0cmFuc2xhdGVYKTtcbiAgfTtcblxuICBjb25zdCBkcmFnTGVmdEVuZCA9IChkaXN0YW5jZSwgdGhyZXNob2xkKSA9PiB7XG4gICAgY29uc3QgY3VycmVudFRyYW5zbGF0ZVggPSBnZXRUcmFuc2xhdGVYKGxpc3QpO1xuICAgIGxldCB0cmFuc2xhdGVYID0gTWF0aC5yb3VuZChjdXJyZW50VHJhbnNsYXRlWCArIGRpc3RhbmNlKTtcblxuICAgIGlmIChkcmFnTGVmdEJvdW5kYXJ5KHRyYW5zbGF0ZVgsIHRocmVzaG9sZCkpIHtcbiAgICAgIHRyYW5zbGF0ZVggPSAwO1xuICAgIH1cblxuICAgIHVwZGF0ZVRyYW5zbGF0ZVgobGlzdCwgdHJhbnNsYXRlWCk7XG4gIH07XG5cbiAgY29uc3QgZHJhZ1JpZ2h0ID0gKGRpc3RhbmNlLCB0aHJlc2hvbGQpID0+IHtcbiAgICBjb25zdCBsaXN0V2lkdGggPSBsaXN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gZ2V0VHJhbnNsYXRlWChsaXN0KTtcbiAgICBjb25zdCB0cmFuc2xhdGVYID0gTWF0aC5yb3VuZChjdXJyZW50VHJhbnNsYXRlWCArIGRpc3RhbmNlKTtcbiAgICBjb25zdCBpdGVtc1RvdGFsV2lkdGggPSBnZXRJdGVtc1RvdGFsV2lkdGgobGlzdEl0ZW1zKTtcblxuICAgIGlmIChkcmFnUmlnaHRCb3VuZGFyeSh0cmFuc2xhdGVYLCBpdGVtc1RvdGFsV2lkdGgsIGxpc3RXaWR0aCwgdGhyZXNob2xkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHVwZGF0ZVRyYW5zbGF0ZVgobGlzdCwgdHJhbnNsYXRlWCk7XG4gIH07XG5cbiAgY29uc3QgZHJhZ1JpZ2h0RW5kID0gKGRpc3RhbmNlLCB0aHJlc2hvbGQpID0+IHtcbiAgICBjb25zdCBsaXN0V2lkdGggPSBsaXN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gZ2V0VHJhbnNsYXRlWChsaXN0KTtcbiAgICBjb25zdCBpdGVtc1RvdGFsV2lkdGggPSBnZXRJdGVtc1RvdGFsV2lkdGgobGlzdEl0ZW1zKTtcbiAgICBsZXQgdHJhbnNsYXRlWCA9IE1hdGgucm91bmQoY3VycmVudFRyYW5zbGF0ZVggKyBkaXN0YW5jZSk7XG5cbiAgICBpZiAoZHJhZ1JpZ2h0Qm91bmRhcnkodHJhbnNsYXRlWCwgaXRlbXNUb3RhbFdpZHRoLCBsaXN0V2lkdGgsIHRocmVzaG9sZCkpIHtcbiAgICAgIHRyYW5zbGF0ZVggPSAtKGl0ZW1zVG90YWxXaWR0aCAtIGxpc3RXaWR0aCArIHRocmVzaG9sZCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVHJhbnNsYXRlWChsaXN0LCB0cmFuc2xhdGVYKTtcbiAgfTtcblxuICBsZXQgdG91Y2hTdGFydFg7XG5cbiAgY29uc3QgdG91Y2hzdGFydEhhbmRsZXIgPSAoZSkgPT4ge1xuICAgIHRvdWNoU3RhcnRYID0gZS50b3VjaGVzWzBdPy5jbGllbnRYO1xuICB9O1xuXG4gIGNvbnN0IHRvdWNobW92ZUhhbmRsZXIgPSAoZSkgPT4ge1xuICAgIGNvbnN0IGRpc3RhbmNlID0gZ2V0RGlzdGFuY2UoZSwgdG91Y2hTdGFydFgpO1xuICAgIGlmICh3aXRoaW5CdWZmZXIoZGlzdGFuY2UpKSByZXR1cm47XG4gICAgZGlzdGFuY2UgPiAwID8gZHJhZ0xlZnQoZGlzdGFuY2UsIDI0KSA6IGRyYWdSaWdodChkaXN0YW5jZSwgOTYpO1xuICB9O1xuXG4gIGNvbnN0IHRvdWNoZW5kSGFuZGxlciA9IChlKSA9PiB7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBnZXREaXN0YW5jZShlLCB0b3VjaFN0YXJ0WCk7XG4gICAgaWYgKHdpdGhpbkJ1ZmZlcihkaXN0YW5jZSkpIHJldHVybjtcbiAgICBkaXN0YW5jZSA+IDAgPyBkcmFnTGVmdEVuZChkaXN0YW5jZSwgMjQpIDogZHJhZ1JpZ2h0RW5kKGRpc3RhbmNlLCA0OCk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNTdWdnZXN0aW9uc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgc3VnZ2VzdGlvbnMuY2xhc3NMaXN0LmFkZChcIm1heC1oLTk2XCIpO1xuICB9O1xuXG4gIGNvbnN0IGJsdXJTdWdnZXN0aW9uc0hhbmRsZXIgPSAoZSkgPT4ge1xuICAgIGlmIChlLnJlbGF0ZWRUYXJnZXQgPT09IHN1Z2dlc3Rpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoXCJhXCIpWzBdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN1Z2dlc3Rpb25zLmNsYXNzTGlzdC5yZW1vdmUoXCJtYXgtaC05NlwiKTtcbiAgfTtcblxuICBjb25zdCB3aGVlbEhhbmRsZXIgPSAoZSkgPT4ge1xuICAgIGNvbnN0IGRpc3RhbmNlID0gZS5kZWx0YVkgKiA0O1xuICAgIGlmICh3aXRoaW5CdWZmZXIoZGlzdGFuY2UpKSByZXR1cm47XG4gICAgZGlzdGFuY2UgPiAwID8gZHJhZ0xlZnRFbmQoZGlzdGFuY2UsIDI0KSA6IGRyYWdSaWdodEVuZChkaXN0YW5jZSwgNDgpO1xuICB9O1xuXG4gIHN1Z2dlc3Rpb25zVG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCBmb2N1c1N1Z2dlc3Rpb25zSGFuZGxlcik7XG4gIHN1Z2dlc3Rpb25zVG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIGJsdXJTdWdnZXN0aW9uc0hhbmRsZXIpO1xuICBzdWdnZXN0aW9ucy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0b3VjaHN0YXJ0SGFuZGxlcik7XG4gIHN1Z2dlc3Rpb25zLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2htb3ZlSGFuZGxlcik7XG4gIHN1Z2dlc3Rpb25zLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCB0b3VjaGVuZEhhbmRsZXIpO1xuICBzdWdnZXN0aW9ucy5hZGRFdmVudExpc3RlbmVyKFwid2hlZWxcIiwgd2hlZWxIYW5kbGVyKTtcblxuICByZXR1cm4ge1xuICAgIHRlYXJkb3duOiAoKSA9PiB7XG4gICAgICBzdWdnZXN0aW9uc1RvZ2dsZS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIiwgZm9jdXNTdWdnZXN0aW9uc0hhbmRsZXIpO1xuICAgICAgc3VnZ2VzdGlvbnNUb2dnbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgYmx1clN1Z2dlc3Rpb25zSGFuZGxlcik7XG4gICAgICBzdWdnZXN0aW9ucy5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0b3VjaHN0YXJ0SGFuZGxlcik7XG4gICAgICBzdWdnZXN0aW9ucy5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRvdWNobW92ZUhhbmRsZXIpO1xuICAgICAgc3VnZ2VzdGlvbnMucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIHRvdWNoZW5kSGFuZGxlcik7XG4gICAgfSxcbiAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgc3VnZ2VzdGlvbnMuY2xhc3NMaXN0LnJlbW92ZShcIm1heC1oLTk2XCIpO1xuICAgICAgbGlzdC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgwcHgpYDtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWVnYW5hdlNlYXJjaFN1Z2dlc3Rpb25zO1xuIl0sIm5hbWVzIjpbInF1ZXJ5SWQiLCJ2YWwiLCJyb290IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicXVlcnlJZEFsbCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJEUkFHX0JVRkZFUiIsImdldFRyYW5zbGF0ZVgiLCJub2RlIiwiRE9NTWF0cml4Iiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInRyYW5zZm9ybSIsImUiLCJ1cGRhdGVUcmFuc2xhdGVYIiwidmFsdWUiLCJzdHlsZSIsImRyYWdMZWZ0Qm91bmRhcnkiLCJ0cmFuc2xhdGVYIiwidGhyZXNob2xkIiwiZHJhZ1JpZ2h0Qm91bmRhcnkiLCJpdGVtc1dpZHRoIiwid2luZG93V2lkdGgiLCJNYXRoIiwiYWJzIiwiZ2V0RGlzdGFuY2UiLCJ0b3VjaFN0YXJ0WCIsImNoYW5nZWRUb3VjaGVzIiwiY2xpZW50WCIsIndpdGhpbkJ1ZmZlciIsImRpc3RhbmNlIiwiZ2V0SXRlbXNUb3RhbFdpZHRoIiwibm9kZXMiLCJtYXAiLCJpdGVtIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJyZWR1Y2UiLCJhY2MiLCJNZWdhbmF2U2VhcmNoU3VnZ2VzdGlvbnMiLCJzdWdnZXN0aW9uc1RvZ2dsZSIsInN1Z2dlc3Rpb25zIiwibGlzdCIsImxpc3RJdGVtcyIsIkFycmF5IiwiZnJvbSIsImRyYWdMZWZ0IiwiY3VycmVudFRyYW5zbGF0ZVgiLCJyb3VuZCIsImRyYWdMZWZ0RW5kIiwiZHJhZ1JpZ2h0IiwibGlzdFdpZHRoIiwiaXRlbXNUb3RhbFdpZHRoIiwiZHJhZ1JpZ2h0RW5kIiwidG91Y2hzdGFydEhhbmRsZXIiLCJ0b3VjaGVzIiwidG91Y2htb3ZlSGFuZGxlciIsInRvdWNoZW5kSGFuZGxlciIsImZvY3VzU3VnZ2VzdGlvbnNIYW5kbGVyIiwiY2xhc3NMaXN0IiwiYWRkIiwiYmx1clN1Z2dlc3Rpb25zSGFuZGxlciIsInJlbGF0ZWRUYXJnZXQiLCJyZW1vdmUiLCJ3aGVlbEhhbmRsZXIiLCJkZWx0YVkiLCJhZGRFdmVudExpc3RlbmVyIiwidGVhcmRvd24iLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xlYXIiXSwic291cmNlUm9vdCI6IiJ9
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AblyUi=t():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavSearchSuggestions=t())}(this,(function(){return(()=>{"use strict";var e={9581:(e,t,n)=>{n.d(t,{A:()=>r});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector("[data-id=".concat(e,"]"))}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};return(()=>{n.d(r,{default:()=>d});var e=n(9581),t=function(e){return new DOMMatrix(window.getComputedStyle(e).transform).e},o=function(e,t){return e.style.transform="translateX(".concat(t,"px)")},i=function(e,t){return e>=t},u=function(e,t,n,r){return Math.abs(e-n+r)>t},a=function(e,t){var n;return(null===(n=e.changedTouches[0])||void 0===n?void 0:n.clientX)-t},c=function(e){return Math.abs(e)<5},s=function(e){return e.map((function(e){return e.getBoundingClientRect().width})).reduce((function(e,t){return e+t}),0)};const d=function(){var n,r=(0,e.A)("meganav-mobile-search-input"),d=(0,e.A)("meganav-mobile-search-suggestions"),l=d.querySelector("ul"),v=Array.from(l.querySelectorAll("li")),f=function(e,n){var r=t(l),u=Math.round(r+e);i(u,n)&&(u=0),o(l,u)},h=function(e,n){var r=l.getBoundingClientRect().width,i=t(l),a=s(v),c=Math.round(i+e);u(c,a,r,n)&&(c=-(a-r+n)),o(l,c)},m=function(e){var t;n=null===(t=e.touches[0])||void 0===t?void 0:t.clientX},p=function(e){var r=a(e,n);c(r)||(r>0?function(e,n){var r=t(l),u=Math.round(r+e);i(u,24)||o(l,u)}(r):function(e,n){var r=l.getBoundingClientRect().width,i=t(l),a=Math.round(i+e),c=s(v);u(a,c,r,96)||o(l,a)}(r))},y=function(e){var t=a(e,n);c(t)||(t>0?f(t,24):h(t,48))},b=function(){d.classList.add("max-h-96")},g=function(e){e.relatedTarget!==d.querySelectorAll("a")[0]&&d.classList.remove("max-h-96")};return r.addEventListener("focus",b),r.addEventListener("blur",g),d.addEventListener("touchstart",m),d.addEventListener("touchmove",p),d.addEventListener("touchend",y),d.addEventListener("wheel",(function(e){var t=4*e.deltaY;c(t)||(t>0?f(t,24):h(t,48))})),{teardown:function(){r.removeEventListener("focus",b),r.removeEventListener("blur",g),d.removeEventListener("touchstart",m),d.removeEventListener("touchmove",p),d.removeEventListener("touchend",y)},clear:function(){d.classList.remove("max-h-96"),l.style.transform="translateX(0px)"}}}})(),r.default})()}));
@@ -6,5 +6,3 @@
6
6
  }
7
7
  }
8
8
 
9
-
10
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9Ob3RpY2UvY29tcG9uZW50LmNzcyIsIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0lBQ0UsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQiw0QkFBNEI7RUFDOUI7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL0FibHlVaS5Db3JlLy4vc3JjL2NvcmUvTm90aWNlL2NvbXBvbmVudC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGxheWVyIGNvbXBvbmVudHMge1xuICAudWktYW5ub3VuY2VtZW50IHtcbiAgICBAYXBwbHkgZm9udC1zYW5zO1xuICAgIG1heC1oZWlnaHQ6IDM3LjVyZW07XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAzMDBtcztcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/