ably-ui 8.7.0.dev.7021bee → 8.7.0.dev.7072b07
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -6
- data/README.md +15 -4
- data/lib/ably_ui/core/code/component.css +2 -0
- data/lib/ably_ui/core/code/component.js +739 -1
- data/lib/ably_ui/core/company_autocomplete/component.css +2 -0
- data/lib/ably_ui/core/company_autocomplete/component.js +1161 -1
- data/lib/ably_ui/core/connect_state_wrapper/component.js +22 -1
- data/lib/ably_ui/core/contact_footer/component.css +2 -0
- data/lib/ably_ui/core/contact_footer/component.js +211 -1
- data/lib/ably_ui/core/cookie_message/component.css +2 -0
- data/lib/ably_ui/core/cookie_message/component.js +82 -1
- data/lib/ably_ui/core/core.rb +12 -4
- data/lib/ably_ui/core/customer_logos/component.js +22 -1
- data/lib/ably_ui/core/dropdown_menu/component.js +22 -1
- data/lib/ably_ui/core/feature_footer/component.css +2 -0
- data/lib/ably_ui/core/feature_footer/component.js +211 -1
- data/lib/ably_ui/core/featured_link/component.css +2 -0
- data/lib/ably_ui/core/featured_link/component.js +82 -1
- data/lib/ably_ui/core/flash/component.css +2 -0
- data/lib/ably_ui/core/flash/component.js +82 -1
- data/lib/ably_ui/core/footer/component.css +23 -1
- data/lib/ably_ui/core/footer/component.js +82 -1
- data/lib/ably_ui/core/footer/footer.html.erb +120 -63
- data/lib/ably_ui/core/icon/component.js +22 -1
- data/lib/ably_ui/core/images/best-support-2023.svg +1 -0
- data/lib/ably_ui/core/images/fastest-implementation-2023.svg +1 -0
- data/lib/ably_ui/core/images/high-performer-2022.png +0 -0
- data/lib/ably_ui/core/images/high-performer-2023.svg +1 -0
- data/lib/ably_ui/core/images/highest-user-adoption-2022.png +0 -0
- data/lib/ably_ui/core/images/highest-user-adoption-2023.svg +1 -0
- data/lib/ably_ui/core/images/users-love-us-2022.png +0 -0
- data/lib/ably_ui/core/loader/component.js +22 -1
- data/lib/ably_ui/core/logo/component.js +22 -1
- data/lib/ably_ui/core/meganav/component.css +3 -3
- data/lib/ably_ui/core/meganav/component.js +992 -1
- data/lib/ably_ui/core/meganav/component.json +2 -2
- data/lib/ably_ui/core/meganav/meganav.rb +6 -6
- data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1159 -1
- data/lib/ably_ui/core/meganav_content_company/component.js +22 -1
- data/lib/ably_ui/core/meganav_content_company/meganav_content_company.html.erb +9 -0
- data/lib/ably_ui/core/meganav_content_developers/component.js +22 -1
- data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.html.erb +30 -14
- data/lib/ably_ui/core/meganav_content_products/component.js +22 -0
- data/lib/ably_ui/core/{meganav_content_platform/meganav_content_platform.html.erb → meganav_content_products/meganav_content_products.html.erb} +15 -33
- data/lib/ably_ui/core/{meganav_content_platform/meganav_content_platform.rb → meganav_content_products/meganav_content_products.rb} +1 -1
- data/lib/ably_ui/core/meganav_content_use_cases/component.js +22 -1
- data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.html.erb +42 -38
- data/lib/ably_ui/core/meganav_control/component.js +241 -1
- data/lib/ably_ui/core/meganav_control_mobile_dropdown/component.js +180 -1
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/component.js +142 -1
- data/lib/ably_ui/core/meganav_control_mobile_panel_open/component.js +170 -1
- data/lib/ably_ui/core/meganav_items_desktop/component.js +22 -1
- data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.rb +1 -1
- data/lib/ably_ui/core/meganav_items_mobile/component.js +22 -1
- data/lib/ably_ui/core/meganav_items_signed_in/component.js +22 -1
- data/lib/ably_ui/core/meganav_search/component.js +22 -1
- data/lib/ably_ui/core/meganav_search_autocomplete/component.js +295 -1
- data/lib/ably_ui/core/meganav_search_panel/component.js +22 -1
- data/lib/ably_ui/core/meganav_search_suggestions/component.js +258 -1
- data/lib/ably_ui/core/notice/component.css +2 -0
- data/lib/ably_ui/core/notice/component.js +872 -1
- data/lib/ably_ui/core/scripts.js +1465 -1
- data/lib/ably_ui/core/showcase/component.css +2 -0
- data/lib/ably_ui/core/showcase/component.js +343 -1
- data/lib/ably_ui/core/sign_out_link/component.js +22 -1
- data/lib/ably_ui/core/slider/component.css +2 -0
- data/lib/ably_ui/core/slider/component.js +255 -1
- data/lib/ably_ui/core/sprites.svg +99 -0
- data/lib/ably_ui/core/styles.css +3 -7
- data/lib/ably_ui/core/uptime/component.css +2 -0
- data/lib/ably_ui/core/uptime/component.js +82 -1
- data/lib/ably_ui/reset/scripts.js +1 -1
- data/lib/ably_ui/reset/styles.css +1 -11
- data/lib/ably_ui/version.rb +1 -1
- metadata +12 -7
- data/lib/ably_ui/core/meganav_content_platform/component.js +0 -1
- data/lib/ably_ui/react/connect_state_wrapper/component.js +0 -1
- data/lib/ably_ui/react/scripts.js +0 -1
@@ -1 +1,241 @@
|
|
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"]["MeganavControl"] = 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/MeganavControl/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
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
105
|
+
|
106
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
107
|
+
|
108
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
109
|
+
|
110
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
111
|
+
|
112
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
113
|
+
|
114
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
var MeganavControl = function MeganavControl() {
|
119
|
+
var controls = Array.from((0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryIdAll)("meganav-control"));
|
120
|
+
var panels = Array.from((0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryIdAll)("meganav-panel"));
|
121
|
+
var mdBreakpoint = getComputedStyle(document.documentElement).getPropertyValue("--bp-md");
|
122
|
+
|
123
|
+
var hoverEnabled = function hoverEnabled() {
|
124
|
+
return window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(mdBreakpoint, ")")).matches;
|
125
|
+
};
|
126
|
+
|
127
|
+
var isSearchControl = function isSearchControl(node) {
|
128
|
+
return node.dataset.control === "search";
|
129
|
+
};
|
130
|
+
|
131
|
+
var isSearchPanelOpen = function isSearchPanelOpen() {
|
132
|
+
var searchPanel = document.querySelector('[data-id="meganav-panel"]#panel-search');
|
133
|
+
if (!searchPanel) return;
|
134
|
+
return !searchPanel.classList.contains("invisible");
|
135
|
+
};
|
136
|
+
|
137
|
+
var controlsHaveFocus = function controlsHaveFocus() {
|
138
|
+
return controls.some(function (control) {
|
139
|
+
return control === document.activeElement;
|
140
|
+
});
|
141
|
+
};
|
142
|
+
|
143
|
+
var hover = function hover(control, panel, open) {
|
144
|
+
if (hoverEnabled() && !controlsHaveFocus() && !isSearchPanelOpen()) {
|
145
|
+
var _panel$classList;
|
146
|
+
|
147
|
+
var classes = ["invisible", "visible"];
|
148
|
+
|
149
|
+
(_panel$classList = panel.classList).replace.apply(_panel$classList, _toConsumableArray(open ? classes : classes.reverse()));
|
150
|
+
|
151
|
+
control.setAttribute("aria-expanded", open);
|
152
|
+
control.dataset.hover = open;
|
153
|
+
}
|
154
|
+
};
|
155
|
+
|
156
|
+
var mouseenterHandler = function mouseenterHandler(control, panel) {
|
157
|
+
return function () {
|
158
|
+
return hover(control, panel, true);
|
159
|
+
};
|
160
|
+
};
|
161
|
+
|
162
|
+
var mouseleaveHandler = function mouseleaveHandler(control, panel) {
|
163
|
+
return function () {
|
164
|
+
return hover(control, panel, false);
|
165
|
+
};
|
166
|
+
};
|
167
|
+
|
168
|
+
var clickHandler = function clickHandler(control, panel) {
|
169
|
+
return function () {
|
170
|
+
controls.forEach(function (node) {
|
171
|
+
return node !== control && node.setAttribute("aria-expanded", false);
|
172
|
+
});
|
173
|
+
panels.forEach(function (node) {
|
174
|
+
return node !== panel && node.classList.replace("visible", "invisible");
|
175
|
+
});
|
176
|
+
var ariaExpanded = control.getAttribute("aria-expanded"); // Prevent closing of the panel if it was already opened by hovering
|
177
|
+
|
178
|
+
var openedByHover = control.dataset.hover === "true";
|
179
|
+
|
180
|
+
if (ariaExpanded === "true" && !openedByHover) {
|
181
|
+
control.setAttribute("aria-expanded", false);
|
182
|
+
panel.classList.replace("visible", "invisible");
|
183
|
+
} else {
|
184
|
+
control.setAttribute("aria-expanded", true);
|
185
|
+
panel.classList.replace("invisible", "visible");
|
186
|
+
}
|
187
|
+
|
188
|
+
if (openedByHover) {
|
189
|
+
control.dataset.hover = false;
|
190
|
+
}
|
191
|
+
|
192
|
+
if (isSearchControl(control)) {
|
193
|
+
var searchInput = (0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryId)("meganav-search-input", panel);
|
194
|
+
if (!searchInput) return;
|
195
|
+
searchInput.focus();
|
196
|
+
} else {
|
197
|
+
control.focus();
|
198
|
+
}
|
199
|
+
};
|
200
|
+
};
|
201
|
+
|
202
|
+
return controls.map(function (control) {
|
203
|
+
var item = control.parentNode;
|
204
|
+
var panel = document.querySelector("#".concat(control.getAttribute("aria-controls")));
|
205
|
+
var click = clickHandler(control, panel);
|
206
|
+
control.addEventListener("click", click);
|
207
|
+
var mouseenter, mouseleave;
|
208
|
+
|
209
|
+
if (!isSearchControl(control)) {
|
210
|
+
mouseenter = mouseenterHandler(control, panel);
|
211
|
+
mouseleave = mouseleaveHandler(control, panel);
|
212
|
+
item.addEventListener("mouseenter", mouseenter);
|
213
|
+
item.addEventListener("mouseleave", mouseleave);
|
214
|
+
}
|
215
|
+
|
216
|
+
return [{
|
217
|
+
teardown: function teardown() {
|
218
|
+
if (mouseenter && mouseleave) {
|
219
|
+
item.removeEventListener("mouseenter", mouseenter);
|
220
|
+
item.removeEventListener("mouseleave", mouseleave);
|
221
|
+
}
|
222
|
+
|
223
|
+
control.removeEventListener("click", click);
|
224
|
+
},
|
225
|
+
clear: function clear() {
|
226
|
+
control.setAttribute("aria-expanded", false);
|
227
|
+
panel.classList.replace("visible", "invisible");
|
228
|
+
}
|
229
|
+
}];
|
230
|
+
}).flat();
|
231
|
+
};
|
232
|
+
|
233
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MeganavControl);
|
234
|
+
})();
|
235
|
+
|
236
|
+
__webpack_exports__ = __webpack_exports__["default"];
|
237
|
+
/******/ return __webpack_exports__;
|
238
|
+
/******/ })()
|
239
|
+
;
|
240
|
+
});
|
241
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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aXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvLi9zcmMvY29yZS9kb20tcXVlcnkuanMiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS8uL3NyYy9jb3JlL01lZ2FuYXZDb250cm9sL2NvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJBYmx5VWlcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiQWJseVVpXCJdID0gcm9vdFtcIkFibHlVaVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl0gPSByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl1bXCJNZWdhbmF2Q29udHJvbFwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiLCJleHBvcnQgY29uc3QgcXVlcnlJZCA9ICh2YWwsIHJvb3QgPSBkb2N1bWVudCkgPT5cbiAgcm9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pZD0ke3ZhbH1dYCk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeUlkQWxsID0gKHZhbCwgcm9vdCA9IGRvY3VtZW50KSA9PlxuICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFtkYXRhLWlkPSR7dmFsfV1gKTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgcXVlcnlJZCwgcXVlcnlJZEFsbCB9IGZyb20gXCIuLi9kb20tcXVlcnlcIjtcblxuY29uc3QgTWVnYW5hdkNvbnRyb2wgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRyb2xzID0gQXJyYXkuZnJvbShxdWVyeUlkQWxsKFwibWVnYW5hdi1jb250cm9sXCIpKTtcbiAgY29uc3QgcGFuZWxzID0gQXJyYXkuZnJvbShxdWVyeUlkQWxsKFwibWVnYW5hdi1wYW5lbFwiKSk7XG4gIGNvbnN0IG1kQnJlYWtwb2ludCA9IGdldENvbXB1dGVkU3R5bGUoXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICkuZ2V0UHJvcGVydHlWYWx1ZShcIi0tYnAtbWRcIik7XG5cbiAgY29uc3QgaG92ZXJFbmFibGVkID0gKCkgPT5cbiAgICB3aW5kb3cubWF0Y2hNZWRpYShcbiAgICAgIGAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiAke21kQnJlYWtwb2ludH0pYFxuICAgICkubWF0Y2hlcztcblxuICBjb25zdCBpc1NlYXJjaENvbnRyb2wgPSAobm9kZSkgPT4gbm9kZS5kYXRhc2V0LmNvbnRyb2wgPT09IFwic2VhcmNoXCI7XG5cbiAgY29uc3QgaXNTZWFyY2hQYW5lbE9wZW4gPSAoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoUGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJ1tkYXRhLWlkPVwibWVnYW5hdi1wYW5lbFwiXSNwYW5lbC1zZWFyY2gnXG4gICAgKTtcbiAgICBpZiAoIXNlYXJjaFBhbmVsKSByZXR1cm47XG4gICAgcmV0dXJuICFzZWFyY2hQYW5lbC5jbGFzc0xpc3QuY29udGFpbnMoXCJpbnZpc2libGVcIik7XG4gIH07XG5cbiAgY29uc3QgY29udHJvbHNIYXZlRm9jdXMgPSAoKSA9PlxuICAgIGNvbnRyb2xzLnNvbWUoKGNvbnRyb2wpID0+IGNvbnRyb2wgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuXG4gIGNvbnN0IGhvdmVyID0gKGNvbnRyb2wsIHBhbmVsLCBvcGVuKSA9PiB7XG4gICAgaWYgKGhvdmVyRW5hYmxlZCgpICYmICFjb250cm9sc0hhdmVGb2N1cygpICYmICFpc1NlYXJjaFBhbmVsT3BlbigpKSB7XG4gICAgICBjb25zdCBjbGFzc2VzID0gW1wiaW52aXNpYmxlXCIsIFwidmlzaWJsZVwiXTtcbiAgICAgIHBhbmVsLmNsYXNzTGlzdC5yZXBsYWNlKC4uLihvcGVuID8gY2xhc3NlcyA6IGNsYXNzZXMucmV2ZXJzZSgpKSk7XG4gICAgICBjb250cm9sLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgb3Blbik7XG4gICAgICBjb250cm9sLmRhdGFzZXQuaG92ZXIgPSBvcGVuO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBtb3VzZWVudGVySGFuZGxlciA9IChjb250cm9sLCBwYW5lbCkgPT4gKCkgPT5cbiAgICBob3Zlcihjb250cm9sLCBwYW5lbCwgdHJ1ZSk7XG5cbiAgY29uc3QgbW91c2VsZWF2ZUhhbmRsZXIgPSAoY29udHJvbCwgcGFuZWwpID0+ICgpID0+XG4gICAgaG92ZXIoY29udHJvbCwgcGFuZWwsIGZhbHNlKTtcblxuICBjb25zdCBjbGlja0hhbmRsZXIgPSAoY29udHJvbCwgcGFuZWwpID0+ICgpID0+IHtcbiAgICBjb250cm9scy5mb3JFYWNoKFxuICAgICAgKG5vZGUpID0+IG5vZGUgIT09IGNvbnRyb2wgJiYgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKVxuICAgICk7XG5cbiAgICBwYW5lbHMuZm9yRWFjaChcbiAgICAgIChub2RlKSA9PiBub2RlICE9PSBwYW5lbCAmJiBub2RlLmNsYXNzTGlzdC5yZXBsYWNlKFwidmlzaWJsZVwiLCBcImludmlzaWJsZVwiKVxuICAgICk7XG5cbiAgICBjb25zdCBhcmlhRXhwYW5kZWQgPSBjb250cm9sLmdldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIik7XG5cbiAgICAvLyBQcmV2ZW50IGNsb3Npbmcgb2YgdGhlIHBhbmVsIGlmIGl0IHdhcyBhbHJlYWR5IG9wZW5lZCBieSBob3ZlcmluZ1xuICAgIGNvbnN0IG9wZW5lZEJ5SG92ZXIgPSBjb250cm9sLmRhdGFzZXQuaG92ZXIgPT09IFwidHJ1ZVwiO1xuXG4gICAgaWYgKGFyaWFFeHBhbmRlZCA9PT0gXCJ0cnVlXCIgJiYgIW9wZW5lZEJ5SG92ZXIpIHtcbiAgICAgIGNvbnRyb2wuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBmYWxzZSk7XG4gICAgICBwYW5lbC5jbGFzc0xpc3QucmVwbGFjZShcInZpc2libGVcIiwgXCJpbnZpc2libGVcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRyb2wuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCB0cnVlKTtcbiAgICAgIHBhbmVsLmNsYXNzTGlzdC5yZXBsYWNlKFwiaW52aXNpYmxlXCIsIFwidmlzaWJsZVwiKTtcbiAgICB9XG5cbiAgICBpZiAob3BlbmVkQnlIb3Zlcikge1xuICAgICAgY29udHJvbC5kYXRhc2V0LmhvdmVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGlzU2VhcmNoQ29udHJvbChjb250cm9sKSkge1xuICAgICAgY29uc3Qgc2VhcmNoSW5wdXQgPSBxdWVyeUlkKFwibWVnYW5hdi1zZWFyY2gtaW5wdXRcIiwgcGFuZWwpO1xuICAgICAgaWYgKCFzZWFyY2hJbnB1dCkgcmV0dXJuO1xuICAgICAgc2VhcmNoSW5wdXQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udHJvbC5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gY29udHJvbHNcbiAgICAubWFwKChjb250cm9sKSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gY29udHJvbC5wYXJlbnROb2RlO1xuICAgICAgY29uc3QgcGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgIyR7Y29udHJvbC5nZXRBdHRyaWJ1dGUoXCJhcmlhLWNvbnRyb2xzXCIpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjbGljayA9IGNsaWNrSGFuZGxlcihjb250cm9sLCBwYW5lbCk7XG4gICAgICBjb250cm9sLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGljayk7XG4gICAgICBsZXQgbW91c2VlbnRlciwgbW91c2VsZWF2ZTtcblxuICAgICAgaWYgKCFpc1NlYXJjaENvbnRyb2woY29udHJvbCkpIHtcbiAgICAgICAgbW91c2VlbnRlciA9IG1vdXNlZW50ZXJIYW5kbGVyKGNvbnRyb2wsIHBhbmVsKTtcbiAgICAgICAgbW91c2VsZWF2ZSA9IG1vdXNlbGVhdmVIYW5kbGVyKGNvbnRyb2wsIHBhbmVsKTtcblxuICAgICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsIG1vdXNlZW50ZXIpO1xuICAgICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIG1vdXNlbGVhdmUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdGVhcmRvd246ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChtb3VzZWVudGVyICYmIG1vdXNlbGVhdmUpIHtcbiAgICAgICAgICAgICAgaXRlbS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBtb3VzZWVudGVyKTtcbiAgICAgICAgICAgICAgaXRlbS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCBtb3VzZWxlYXZlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29udHJvbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2xpY2spO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICBwYW5lbC5jbGFzc0xpc3QucmVwbGFjZShcInZpc2libGVcIiwgXCJpbnZpc2libGVcIik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSlcbiAgICAuZmxhdCgpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWVnYW5hdkNvbnRyb2w7XG4iXSwibmFtZXMiOlsicXVlcnlJZCIsInZhbCIsInJvb3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeUlkQWxsIiwicXVlcnlTZWxlY3RvckFsbCIsIk1lZ2FuYXZDb250cm9sIiwiY29udHJvbHMiLCJBcnJheSIsImZyb20iLCJwYW5lbHMiLCJtZEJyZWFrcG9pbnQiLCJnZXRDb21wdXRlZFN0eWxlIiwiZG9jdW1lbnRFbGVtZW50IiwiZ2V0UHJvcGVydHlWYWx1ZSIsImhvdmVyRW5hYmxlZCIsIndpbmRvdyIsIm1hdGNoTWVkaWEiLCJtYXRjaGVzIiwiaXNTZWFyY2hDb250cm9sIiwibm9kZSIsImRhdGFzZXQiLCJjb250cm9sIiwiaXNTZWFyY2hQYW5lbE9wZW4iLCJzZWFyY2hQYW5lbCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiY29udHJvbHNIYXZlRm9jdXMiLCJzb21lIiwiYWN0aXZlRWxlbWVudCIsImhvdmVyIiwicGFuZWwiLCJvcGVuIiwiY2xhc3NlcyIsInJlcGxhY2UiLCJyZXZlcnNlIiwic2V0QXR0cmlidXRlIiwibW91c2VlbnRlckhhbmRsZXIiLCJtb3VzZWxlYXZlSGFuZGxlciIsImNsaWNrSGFuZGxlciIsImZvckVhY2giLCJhcmlhRXhwYW5kZWQiLCJnZXRBdHRyaWJ1dGUiLCJvcGVuZWRCeUhvdmVyIiwic2VhcmNoSW5wdXQiLCJmb2N1cyIsIm1hcCIsIml0ZW0iLCJwYXJlbnROb2RlIiwiY2xpY2siLCJhZGRFdmVudExpc3RlbmVyIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJ0ZWFyZG93biIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjbGVhciIsImZsYXQiXSwic291cmNlUm9vdCI6IiJ9
|
@@ -1 +1,180 @@
|
|
1
|
-
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
3
|
+
module.exports = factory(require("scroll-lock"));
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
5
|
+
define([], factory);
|
6
|
+
else if(typeof exports === 'object')
|
7
|
+
exports["AblyUi"] = factory(require("scroll-lock"));
|
8
|
+
else
|
9
|
+
root["AblyUi"] = root["AblyUi"] || {}, root["AblyUi"]["Core"] = root["AblyUi"]["Core"] || {}, root["AblyUi"]["Core"]["MeganavControlMobileDropdown"] = factory(root[undefined]);
|
10
|
+
})(this, (__WEBPACK_EXTERNAL_MODULE_scroll_lock__) => {
|
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
|
+
/***/ "scroll-lock":
|
38
|
+
/*!*********************************************************************!*\
|
39
|
+
!*** external {"commonjs":"scroll-lock","commonjs2":"scroll-lock"} ***!
|
40
|
+
\*********************************************************************/
|
41
|
+
/***/ ((module) => {
|
42
|
+
|
43
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_scroll_lock__;
|
44
|
+
|
45
|
+
/***/ })
|
46
|
+
|
47
|
+
/******/ });
|
48
|
+
/************************************************************************/
|
49
|
+
/******/ // The module cache
|
50
|
+
/******/ var __webpack_module_cache__ = {};
|
51
|
+
/******/
|
52
|
+
/******/ // The require function
|
53
|
+
/******/ function __webpack_require__(moduleId) {
|
54
|
+
/******/ // Check if module is in cache
|
55
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
56
|
+
/******/ if (cachedModule !== undefined) {
|
57
|
+
/******/ return cachedModule.exports;
|
58
|
+
/******/ }
|
59
|
+
/******/ // Create a new module (and put it into the cache)
|
60
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
61
|
+
/******/ // no module.id needed
|
62
|
+
/******/ // no module.loaded needed
|
63
|
+
/******/ exports: {}
|
64
|
+
/******/ };
|
65
|
+
/******/
|
66
|
+
/******/ // Execute the module function
|
67
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
68
|
+
/******/
|
69
|
+
/******/ // Return the exports of the module
|
70
|
+
/******/ return module.exports;
|
71
|
+
/******/ }
|
72
|
+
/******/
|
73
|
+
/************************************************************************/
|
74
|
+
/******/ /* webpack/runtime/compat get default export */
|
75
|
+
/******/ (() => {
|
76
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
77
|
+
/******/ __webpack_require__.n = (module) => {
|
78
|
+
/******/ var getter = module && module.__esModule ?
|
79
|
+
/******/ () => (module['default']) :
|
80
|
+
/******/ () => (module);
|
81
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
82
|
+
/******/ return getter;
|
83
|
+
/******/ };
|
84
|
+
/******/ })();
|
85
|
+
/******/
|
86
|
+
/******/ /* webpack/runtime/define property getters */
|
87
|
+
/******/ (() => {
|
88
|
+
/******/ // define getter functions for harmony exports
|
89
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
90
|
+
/******/ for(var key in definition) {
|
91
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
92
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
93
|
+
/******/ }
|
94
|
+
/******/ }
|
95
|
+
/******/ };
|
96
|
+
/******/ })();
|
97
|
+
/******/
|
98
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
99
|
+
/******/ (() => {
|
100
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
101
|
+
/******/ })();
|
102
|
+
/******/
|
103
|
+
/******/ /* webpack/runtime/make namespace object */
|
104
|
+
/******/ (() => {
|
105
|
+
/******/ // define __esModule on exports
|
106
|
+
/******/ __webpack_require__.r = (exports) => {
|
107
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
108
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
109
|
+
/******/ }
|
110
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
111
|
+
/******/ };
|
112
|
+
/******/ })();
|
113
|
+
/******/
|
114
|
+
/************************************************************************/
|
115
|
+
var __webpack_exports__ = {};
|
116
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
117
|
+
(() => {
|
118
|
+
/*!************************************************************!*\
|
119
|
+
!*** ./src/core/MeganavControlMobileDropdown/component.js ***!
|
120
|
+
\************************************************************/
|
121
|
+
__webpack_require__.r(__webpack_exports__);
|
122
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
123
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
124
|
+
/* harmony export */ });
|
125
|
+
/* harmony import */ var scroll_lock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! scroll-lock */ "scroll-lock");
|
126
|
+
/* harmony import */ var scroll_lock__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(scroll_lock__WEBPACK_IMPORTED_MODULE_0__);
|
127
|
+
/* harmony import */ var _dom_query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-query */ "./src/core/dom-query.js");
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
var MeganavControlMobileDropdown = function MeganavControlMobileDropdown(_ref) {
|
132
|
+
var clearPanels = _ref.clearPanels;
|
133
|
+
var control = (0,_dom_query__WEBPACK_IMPORTED_MODULE_1__.queryId)("meganav-control-mobile-dropdown");
|
134
|
+
var dropdown = (0,_dom_query__WEBPACK_IMPORTED_MODULE_1__.queryId)("meganav-mobile-dropdown");
|
135
|
+
var menuIcon = (0,_dom_query__WEBPACK_IMPORTED_MODULE_1__.queryId)("meganav-control-mobile-dropdown-menu");
|
136
|
+
var closeIcon = (0,_dom_query__WEBPACK_IMPORTED_MODULE_1__.queryId)("meganav-control-mobile-dropdown-close");
|
137
|
+
|
138
|
+
var clickHandler = function clickHandler() {
|
139
|
+
var ariaExpanded = control.getAttribute("aria-expanded");
|
140
|
+
|
141
|
+
if (ariaExpanded === "false") {
|
142
|
+
dropdown.classList.replace("invisible", "visible");
|
143
|
+
control.setAttribute("aria-expanded", true);
|
144
|
+
scroll_lock__WEBPACK_IMPORTED_MODULE_0___default().disablePageScroll();
|
145
|
+
} else {
|
146
|
+
dropdown.classList.replace("visible", "invisible");
|
147
|
+
control.setAttribute("aria-expanded", false);
|
148
|
+
scroll_lock__WEBPACK_IMPORTED_MODULE_0___default().enablePageScroll();
|
149
|
+
clearPanels();
|
150
|
+
}
|
151
|
+
|
152
|
+
menuIcon.classList.toggle("hidden");
|
153
|
+
closeIcon.classList.toggle("hidden");
|
154
|
+
};
|
155
|
+
|
156
|
+
control.addEventListener("click", clickHandler);
|
157
|
+
return {
|
158
|
+
teardown: function teardown() {
|
159
|
+
control.removeEventListener("click", clickHandler);
|
160
|
+
scroll_lock__WEBPACK_IMPORTED_MODULE_0___default().enablePageScroll();
|
161
|
+
},
|
162
|
+
clear: function clear() {
|
163
|
+
dropdown.classList.replace("visible", "invisible");
|
164
|
+
control.setAttribute("aria-expanded", false);
|
165
|
+
menuIcon.classList.remove("hidden");
|
166
|
+
closeIcon.classList.add("hidden");
|
167
|
+
scroll_lock__WEBPACK_IMPORTED_MODULE_0___default().enablePageScroll();
|
168
|
+
}
|
169
|
+
};
|
170
|
+
};
|
171
|
+
|
172
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MeganavControlMobileDropdown);
|
173
|
+
})();
|
174
|
+
|
175
|
+
__webpack_exports__ = __webpack_exports__["default"];
|
176
|
+
/******/ return __webpack_exports__;
|
177
|
+
/******/ })()
|
178
|
+
;
|
179
|
+
});
|
180
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2Q29udHJvbE1vYmlsZURyb3Bkb3duL2NvbXBvbmVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLHVEQUF1RDtBQUM5RixDQUFDO0FBQ0QsTzs7Ozs7Ozs7Ozs7Ozs7O0FDVk8sSUFBTUEsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsR0FBRDtBQUFBLE1BQU1DLElBQU4sdUVBQWFDLFFBQWI7QUFBQSxTQUNyQkQsSUFBSSxDQUFDRSxhQUFMLG9CQUErQkgsR0FBL0IsT0FEcUI7QUFBQSxDQUFoQjtBQUdBLElBQU1JLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNKLEdBQUQ7QUFBQSxNQUFNQyxJQUFOLHVFQUFhQyxRQUFiO0FBQUEsU0FDeEJELElBQUksQ0FBQ0ksZ0JBQUwsb0JBQWtDTCxHQUFsQyxPQUR3QjtBQUFBLENBQW5COzs7Ozs7Ozs7O0FDSFA7Ozs7OztVQ0FBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7O1dDdEJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQSxpQ0FBaUMsV0FBVztXQUM1QztXQUNBOzs7OztXQ1BBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7OztBQ05BO0FBRUE7O0FBRUEsSUFBTU8sNEJBQTRCLEdBQUcsU0FBL0JBLDRCQUErQixPQUFxQjtBQUFBLE1BQWxCQyxXQUFrQixRQUFsQkEsV0FBa0I7QUFDeEQsTUFBTUMsT0FBTyxHQUFHVixtREFBTyxDQUFDLGlDQUFELENBQXZCO0FBQ0EsTUFBTVcsUUFBUSxHQUFHWCxtREFBTyxDQUFDLHlCQUFELENBQXhCO0FBQ0EsTUFBTVksUUFBUSxHQUFHWixtREFBTyxDQUFDLHNDQUFELENBQXhCO0FBQ0EsTUFBTWEsU0FBUyxHQUFHYixtREFBTyxDQUFDLHVDQUFELENBQXpCOztBQUVBLE1BQU1jLFlBQVksR0FBRyxTQUFmQSxZQUFlLEdBQU07QUFDekIsUUFBTUMsWUFBWSxHQUFHTCxPQUFPLENBQUNNLFlBQVIsQ0FBcUIsZUFBckIsQ0FBckI7O0FBRUEsUUFBSUQsWUFBWSxLQUFLLE9BQXJCLEVBQThCO0FBQzVCSixNQUFBQSxRQUFRLENBQUNNLFNBQVQsQ0FBbUJDLE9BQW5CLENBQTJCLFdBQTNCLEVBQXdDLFNBQXhDO0FBQ0FSLE1BQUFBLE9BQU8sQ0FBQ1MsWUFBUixDQUFxQixlQUFyQixFQUFzQyxJQUF0QztBQUNBWixNQUFBQSxvRUFBQTtBQUNELEtBSkQsTUFJTztBQUNMSSxNQUFBQSxRQUFRLENBQUNNLFNBQVQsQ0FBbUJDLE9BQW5CLENBQTJCLFNBQTNCLEVBQXNDLFdBQXRDO0FBQ0FSLE1BQUFBLE9BQU8sQ0FBQ1MsWUFBUixDQUFxQixlQUFyQixFQUFzQyxLQUF0QztBQUNBWixNQUFBQSxtRUFBQTtBQUNBRSxNQUFBQSxXQUFXO0FBQ1o7O0FBRURHLElBQUFBLFFBQVEsQ0FBQ0ssU0FBVCxDQUFtQkssTUFBbkIsQ0FBMEIsUUFBMUI7QUFDQVQsSUFBQUEsU0FBUyxDQUFDSSxTQUFWLENBQW9CSyxNQUFwQixDQUEyQixRQUEzQjtBQUNELEdBaEJEOztBQWtCQVosRUFBQUEsT0FBTyxDQUFDYSxnQkFBUixDQUF5QixPQUF6QixFQUFrQ1QsWUFBbEM7QUFFQSxTQUFPO0FBQ0xVLElBQUFBLFFBQVEsRUFBRSxvQkFBTTtBQUNkZCxNQUFBQSxPQUFPLENBQUNlLG1CQUFSLENBQTRCLE9BQTVCLEVBQXFDWCxZQUFyQztBQUNBUCxNQUFBQSxtRUFBQTtBQUNELEtBSkk7QUFLTG1CLElBQUFBLEtBQUssRUFBRSxpQkFBTTtBQUNYZixNQUFBQSxRQUFRLENBQUNNLFNBQVQsQ0FBbUJDLE9BQW5CLENBQTJCLFNBQTNCLEVBQXNDLFdBQXRDO0FBQ0FSLE1BQUFBLE9BQU8sQ0FBQ1MsWUFBUixDQUFxQixlQUFyQixFQUFzQyxLQUF0QztBQUNBUCxNQUFBQSxRQUFRLENBQUNLLFNBQVQsQ0FBbUJVLE1BQW5CLENBQTBCLFFBQTFCO0FBQ0FkLE1BQUFBLFNBQVMsQ0FBQ0ksU0FBVixDQUFvQlcsR0FBcEIsQ0FBd0IsUUFBeEI7QUFDQXJCLE1BQUFBLG1FQUFBO0FBQ0Q7QUFYSSxHQUFQO0FBYUQsQ0F2Q0Q7O0FBeUNBLGlFQUFlQyw0QkFBZixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0FibHlVaS5Db3JlLy4vc3JjL2NvcmUvZG9tLXF1ZXJ5LmpzIiwid2VicGFjazovL0FibHlVaS5Db3JlL2V4dGVybmFsIHVtZCB7XCJjb21tb25qc1wiOlwic2Nyb2xsLWxvY2tcIixcImNvbW1vbmpzMlwiOlwic2Nyb2xsLWxvY2tcIn0iLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS8uL3NyYy9jb3JlL01lZ2FuYXZDb250cm9sTW9iaWxlRHJvcGRvd24vY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcInNjcm9sbC1sb2NrXCIpKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkocmVxdWlyZShcInNjcm9sbC1sb2NrXCIpKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250cm9sTW9iaWxlRHJvcGRvd25cIl0gPSBmYWN0b3J5KHJvb3RbdW5kZWZpbmVkXSk7XG59KSh0aGlzLCAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9zY3JvbGxfbG9ja19fKSA9PiB7XG5yZXR1cm4gIiwiZXhwb3J0IGNvbnN0IHF1ZXJ5SWQgPSAodmFsLCByb290ID0gZG9jdW1lbnQpID0+XG4gIHJvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtaWQ9JHt2YWx9XWApO1xuXG5leHBvcnQgY29uc3QgcXVlcnlJZEFsbCA9ICh2YWwsIHJvb3QgPSBkb2N1bWVudCkgPT5cbiAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKGBbZGF0YS1pZD0ke3ZhbH1dYCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfc2Nyb2xsX2xvY2tfXzsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHNjcm9sbExvY2sgZnJvbSBcInNjcm9sbC1sb2NrXCI7XG5cbmltcG9ydCB7IHF1ZXJ5SWQgfSBmcm9tIFwiLi4vZG9tLXF1ZXJ5XCI7XG5cbmNvbnN0IE1lZ2FuYXZDb250cm9sTW9iaWxlRHJvcGRvd24gPSAoeyBjbGVhclBhbmVscyB9KSA9PiB7XG4gIGNvbnN0IGNvbnRyb2wgPSBxdWVyeUlkKFwibWVnYW5hdi1jb250cm9sLW1vYmlsZS1kcm9wZG93blwiKTtcbiAgY29uc3QgZHJvcGRvd24gPSBxdWVyeUlkKFwibWVnYW5hdi1tb2JpbGUtZHJvcGRvd25cIik7XG4gIGNvbnN0IG1lbnVJY29uID0gcXVlcnlJZChcIm1lZ2FuYXYtY29udHJvbC1tb2JpbGUtZHJvcGRvd24tbWVudVwiKTtcbiAgY29uc3QgY2xvc2VJY29uID0gcXVlcnlJZChcIm1lZ2FuYXYtY29udHJvbC1tb2JpbGUtZHJvcGRvd24tY2xvc2VcIik7XG5cbiAgY29uc3QgY2xpY2tIYW5kbGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IGNvbnRyb2wuZ2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiKTtcblxuICAgIGlmIChhcmlhRXhwYW5kZWQgPT09IFwiZmFsc2VcIikge1xuICAgICAgZHJvcGRvd24uY2xhc3NMaXN0LnJlcGxhY2UoXCJpbnZpc2libGVcIiwgXCJ2aXNpYmxlXCIpO1xuICAgICAgY29udHJvbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIHRydWUpO1xuICAgICAgc2Nyb2xsTG9jay5kaXNhYmxlUGFnZVNjcm9sbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkcm9wZG93bi5jbGFzc0xpc3QucmVwbGFjZShcInZpc2libGVcIiwgXCJpbnZpc2libGVcIik7XG4gICAgICBjb250cm9sLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgZmFsc2UpO1xuICAgICAgc2Nyb2xsTG9jay5lbmFibGVQYWdlU2Nyb2xsKCk7XG4gICAgICBjbGVhclBhbmVscygpO1xuICAgIH1cblxuICAgIG1lbnVJY29uLmNsYXNzTGlzdC50b2dnbGUoXCJoaWRkZW5cIik7XG4gICAgY2xvc2VJY29uLmNsYXNzTGlzdC50b2dnbGUoXCJoaWRkZW5cIik7XG4gIH07XG5cbiAgY29udHJvbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2xpY2tIYW5kbGVyKTtcblxuICByZXR1cm4ge1xuICAgIHRlYXJkb3duOiAoKSA9PiB7XG4gICAgICBjb250cm9sLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGlja0hhbmRsZXIpO1xuICAgICAgc2Nyb2xsTG9jay5lbmFibGVQYWdlU2Nyb2xsKCk7XG4gICAgfSxcbiAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgZHJvcGRvd24uY2xhc3NMaXN0LnJlcGxhY2UoXCJ2aXNpYmxlXCIsIFwiaW52aXNpYmxlXCIpO1xuICAgICAgY29udHJvbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcbiAgICAgIG1lbnVJY29uLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRkZW5cIik7XG4gICAgICBjbG9zZUljb24uY2xhc3NMaXN0LmFkZChcImhpZGRlblwiKTtcbiAgICAgIHNjcm9sbExvY2suZW5hYmxlUGFnZVNjcm9sbCgpO1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZWdhbmF2Q29udHJvbE1vYmlsZURyb3Bkb3duO1xuIl0sIm5hbWVzIjpbInF1ZXJ5SWQiLCJ2YWwiLCJyb290IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicXVlcnlJZEFsbCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJzY3JvbGxMb2NrIiwiTWVnYW5hdkNvbnRyb2xNb2JpbGVEcm9wZG93biIsImNsZWFyUGFuZWxzIiwiY29udHJvbCIsImRyb3Bkb3duIiwibWVudUljb24iLCJjbG9zZUljb24iLCJjbGlja0hhbmRsZXIiLCJhcmlhRXhwYW5kZWQiLCJnZXRBdHRyaWJ1dGUiLCJjbGFzc0xpc3QiLCJyZXBsYWNlIiwic2V0QXR0cmlidXRlIiwiZGlzYWJsZVBhZ2VTY3JvbGwiLCJlbmFibGVQYWdlU2Nyb2xsIiwidG9nZ2xlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRlYXJkb3duIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNsZWFyIiwicmVtb3ZlIiwiYWRkIl0sInNvdXJjZVJvb3QiOiIifQ==
|
@@ -1 +1,142 @@
|
|
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"]["MeganavControlMobilePanelClose"] = 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/MeganavControlMobilePanelClose/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
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
|
106
|
+
var closeControls = Array.from((0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryIdAll)("meganav-control-mobile-panel-close"));
|
107
|
+
var openControls = Array.from((0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryIdAll)("meganav-control-mobile-panel-open"));
|
108
|
+
|
109
|
+
var clickHandler = function clickHandler(btn, openBtn, panel) {
|
110
|
+
return function () {
|
111
|
+
btn.setAttribute("aria-expanded", false);
|
112
|
+
openBtn.setAttribute("aria-expanded", false);
|
113
|
+
panel.classList.replace("block", "hidden");
|
114
|
+
panel.style.height = null;
|
115
|
+
};
|
116
|
+
};
|
117
|
+
|
118
|
+
return closeControls.map(function (btn) {
|
119
|
+
var openBtn = openControls.find(function (open) {
|
120
|
+
return open.getAttribute("aria-controls") === btn.getAttribute("aria-controls");
|
121
|
+
});
|
122
|
+
var panel = document.querySelector("#".concat(btn.getAttribute("aria-controls")));
|
123
|
+
var handler = clickHandler(btn, openBtn, panel);
|
124
|
+
btn.addEventListener("click", handler);
|
125
|
+
return {
|
126
|
+
teardown: function teardown() {
|
127
|
+
return btn.removeEventListener("click", handler);
|
128
|
+
},
|
129
|
+
clear: function clear() {
|
130
|
+
return btn.setAttribute("aria-expanded", false);
|
131
|
+
}
|
132
|
+
};
|
133
|
+
});
|
134
|
+
});
|
135
|
+
})();
|
136
|
+
|
137
|
+
__webpack_exports__ = __webpack_exports__["default"];
|
138
|
+
/******/ return __webpack_exports__;
|
139
|
+
/******/ })()
|
140
|
+
;
|
141
|
+
});
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2Q29udHJvbE1vYmlsZVBhbmVsQ2xvc2UvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPOzs7Ozs7Ozs7Ozs7Ozs7QUNWTyxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxHQUFEO0FBQUEsTUFBTUMsSUFBTix1RUFBYUMsUUFBYjtBQUFBLFNBQ3JCRCxJQUFJLENBQUNFLGFBQUwsb0JBQStCSCxHQUEvQixPQURxQjtBQUFBLENBQWhCO0FBR0EsSUFBTUksVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0osR0FBRDtBQUFBLE1BQU1DLElBQU4sdUVBQWFDLFFBQWI7QUFBQSxTQUN4QkQsSUFBSSxDQUFDSSxnQkFBTCxvQkFBa0NMLEdBQWxDLE9BRHdCO0FBQUEsQ0FBbkI7Ozs7OztVQ0hQO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7O1dDdEJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7QUNOQTtBQUVBLGlFQUFlLFlBQU07QUFDbkIsTUFBTU0sYUFBYSxHQUFHQyxLQUFLLENBQUNDLElBQU4sQ0FDcEJKLHNEQUFVLENBQUMsb0NBQUQsQ0FEVSxDQUF0QjtBQUdBLE1BQU1LLFlBQVksR0FBR0YsS0FBSyxDQUFDQyxJQUFOLENBQ25CSixzREFBVSxDQUFDLG1DQUFELENBRFMsQ0FBckI7O0FBSUEsTUFBTU0sWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLEVBQWVDLEtBQWY7QUFBQSxXQUF5QixZQUFNO0FBQ2xERixNQUFBQSxHQUFHLENBQUNHLFlBQUosQ0FBaUIsZUFBakIsRUFBa0MsS0FBbEM7QUFDQUYsTUFBQUEsT0FBTyxDQUFDRSxZQUFSLENBQXFCLGVBQXJCLEVBQXNDLEtBQXRDO0FBQ0FELE1BQUFBLEtBQUssQ0FBQ0UsU0FBTixDQUFnQkMsT0FBaEIsQ0FBd0IsT0FBeEIsRUFBaUMsUUFBakM7QUFDQUgsTUFBQUEsS0FBSyxDQUFDSSxLQUFOLENBQVlDLE1BQVosR0FBcUIsSUFBckI7QUFDRCxLQUxvQjtBQUFBLEdBQXJCOztBQU9BLFNBQU9aLGFBQWEsQ0FBQ2EsR0FBZCxDQUFrQixVQUFDUixHQUFELEVBQVM7QUFDaEMsUUFBTUMsT0FBTyxHQUFHSCxZQUFZLENBQUNXLElBQWIsQ0FDZCxVQUFDQyxJQUFEO0FBQUEsYUFDRUEsSUFBSSxDQUFDQyxZQUFMLENBQWtCLGVBQWxCLE1BQXVDWCxHQUFHLENBQUNXLFlBQUosQ0FBaUIsZUFBakIsQ0FEekM7QUFBQSxLQURjLENBQWhCO0FBSUEsUUFBTVQsS0FBSyxHQUFHWCxRQUFRLENBQUNDLGFBQVQsWUFDUlEsR0FBRyxDQUFDVyxZQUFKLENBQWlCLGVBQWpCLENBRFEsRUFBZDtBQUdBLFFBQU1DLE9BQU8sR0FBR2IsWUFBWSxDQUFDQyxHQUFELEVBQU1DLE9BQU4sRUFBZUMsS0FBZixDQUE1QjtBQUVBRixJQUFBQSxHQUFHLENBQUNhLGdCQUFKLENBQXFCLE9BQXJCLEVBQThCRCxPQUE5QjtBQUVBLFdBQU87QUFDTEUsTUFBQUEsUUFBUSxFQUFFO0FBQUEsZUFBTWQsR0FBRyxDQUFDZSxtQkFBSixDQUF3QixPQUF4QixFQUFpQ0gsT0FBakMsQ0FBTjtBQUFBLE9BREw7QUFFTEksTUFBQUEsS0FBSyxFQUFFO0FBQUEsZUFBTWhCLEdBQUcsQ0FBQ0csWUFBSixDQUFpQixlQUFqQixFQUFrQyxLQUFsQyxDQUFOO0FBQUE7QUFGRixLQUFQO0FBSUQsR0FoQk0sQ0FBUDtBQWlCRCxDQWhDRCxFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0FibHlVaS5Db3JlLy4vc3JjL2NvcmUvZG9tLXF1ZXJ5LmpzIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvLi9zcmMvY29yZS9NZWdhbmF2Q29udHJvbE1vYmlsZVBhbmVsQ2xvc2UvY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250cm9sTW9iaWxlUGFuZWxDbG9zZVwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiLCJleHBvcnQgY29uc3QgcXVlcnlJZCA9ICh2YWwsIHJvb3QgPSBkb2N1bWVudCkgPT5cbiAgcm9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pZD0ke3ZhbH1dYCk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeUlkQWxsID0gKHZhbCwgcm9vdCA9IGRvY3VtZW50KSA9PlxuICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFtkYXRhLWlkPSR7dmFsfV1gKTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgcXVlcnlJZEFsbCB9IGZyb20gXCIuLi9kb20tcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuICBjb25zdCBjbG9zZUNvbnRyb2xzID0gQXJyYXkuZnJvbShcbiAgICBxdWVyeUlkQWxsKFwibWVnYW5hdi1jb250cm9sLW1vYmlsZS1wYW5lbC1jbG9zZVwiKVxuICApO1xuICBjb25zdCBvcGVuQ29udHJvbHMgPSBBcnJheS5mcm9tKFxuICAgIHF1ZXJ5SWRBbGwoXCJtZWdhbmF2LWNvbnRyb2wtbW9iaWxlLXBhbmVsLW9wZW5cIilcbiAgKTtcblxuICBjb25zdCBjbGlja0hhbmRsZXIgPSAoYnRuLCBvcGVuQnRuLCBwYW5lbCkgPT4gKCkgPT4ge1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcbiAgICBvcGVuQnRuLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgZmFsc2UpO1xuICAgIHBhbmVsLmNsYXNzTGlzdC5yZXBsYWNlKFwiYmxvY2tcIiwgXCJoaWRkZW5cIik7XG4gICAgcGFuZWwuc3R5bGUuaGVpZ2h0ID0gbnVsbDtcbiAgfTtcblxuICByZXR1cm4gY2xvc2VDb250cm9scy5tYXAoKGJ0bikgPT4ge1xuICAgIGNvbnN0IG9wZW5CdG4gPSBvcGVuQ29udHJvbHMuZmluZChcbiAgICAgIChvcGVuKSA9PlxuICAgICAgICBvcGVuLmdldEF0dHJpYnV0ZShcImFyaWEtY29udHJvbHNcIikgPT09IGJ0bi5nZXRBdHRyaWJ1dGUoXCJhcmlhLWNvbnRyb2xzXCIpXG4gICAgKTtcbiAgICBjb25zdCBwYW5lbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgIyR7YnRuLmdldEF0dHJpYnV0ZShcImFyaWEtY29udHJvbHNcIil9YFxuICAgICk7XG4gICAgY29uc3QgaGFuZGxlciA9IGNsaWNrSGFuZGxlcihidG4sIG9wZW5CdG4sIHBhbmVsKTtcblxuICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGVhcmRvd246ICgpID0+IGJ0bi5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlciksXG4gICAgICBjbGVhcjogKCkgPT4gYnRuLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgZmFsc2UpLFxuICAgIH07XG4gIH0pO1xufTtcbiJdLCJuYW1lcyI6WyJxdWVyeUlkIiwidmFsIiwicm9vdCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInF1ZXJ5SWRBbGwiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY2xvc2VDb250cm9scyIsIkFycmF5IiwiZnJvbSIsIm9wZW5Db250cm9scyIsImNsaWNrSGFuZGxlciIsImJ0biIsIm9wZW5CdG4iLCJwYW5lbCIsInNldEF0dHJpYnV0ZSIsImNsYXNzTGlzdCIsInJlcGxhY2UiLCJzdHlsZSIsImhlaWdodCIsIm1hcCIsImZpbmQiLCJvcGVuIiwiZ2V0QXR0cmlidXRlIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0ZWFyZG93biIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjbGVhciJdLCJzb3VyY2VSb290IjoiIn0=
|