ably-ui 4.5.0 → 5.0.0.dev.bf26560

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +13 -17
  4. data/lib/ably_ui/core/code/component.css +2 -0
  5. data/lib/ably_ui/core/code/component.js +7468 -1
  6. data/lib/ably_ui/core/connect_state_wrapper/component.js +22 -1
  7. data/lib/ably_ui/core/contact_footer/component.css +2 -0
  8. data/lib/ably_ui/core/contact_footer/component.js +211 -1
  9. data/lib/ably_ui/core/cookie_message/component.css +2 -0
  10. data/lib/ably_ui/core/cookie_message/component.js +82 -1
  11. data/lib/ably_ui/core/core.base.css +1 -0
  12. data/lib/ably_ui/core/core.components.css +49 -0
  13. data/lib/ably_ui/core/feature_footer/component.css +2 -0
  14. data/lib/ably_ui/core/feature_footer/component.js +211 -1
  15. data/lib/ably_ui/core/featured_link/component.css +2 -0
  16. data/lib/ably_ui/core/featured_link/component.js +82 -1
  17. data/lib/ably_ui/core/flash/component.css +2 -0
  18. data/lib/ably_ui/core/flash/component.js +82 -1
  19. data/lib/ably_ui/core/footer/component.css +2 -0
  20. data/lib/ably_ui/core/footer/component.js +82 -1
  21. data/lib/ably_ui/core/icon/component.css +1 -0
  22. data/lib/ably_ui/core/icon/component.js +22 -1
  23. data/lib/ably_ui/core/logo/component.js +22 -1
  24. data/lib/ably_ui/core/meganav/component.css +2 -0
  25. data/lib/ably_ui/core/meganav/component.js +1857 -1
  26. data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1934 -1
  27. data/lib/ably_ui/core/meganav_content_developers/component.js +22 -1
  28. data/lib/ably_ui/core/meganav_content_platform/component.js +22 -1
  29. data/lib/ably_ui/core/meganav_content_use_cases/component.js +22 -1
  30. data/lib/ably_ui/core/meganav_content_why_ably/component.js +22 -1
  31. data/lib/ably_ui/core/meganav_control/component.js +208 -1
  32. data/lib/ably_ui/core/meganav_control_mobile_dropdown/component.js +975 -1
  33. data/lib/ably_ui/core/meganav_control_mobile_panel_close/component.js +142 -1
  34. data/lib/ably_ui/core/meganav_control_mobile_panel_open/component.js +170 -1
  35. data/lib/ably_ui/core/meganav_items_desktop/component.js +22 -1
  36. data/lib/ably_ui/core/meganav_items_mobile/component.js +22 -1
  37. data/lib/ably_ui/core/meganav_items_signed_in/component.js +22 -1
  38. data/lib/ably_ui/core/notice/component.css +2 -0
  39. data/lib/ably_ui/core/notice/component.js +4613 -2
  40. data/lib/ably_ui/core/scripts.js +1 -1
  41. data/lib/ably_ui/core/showcase/component.css +2 -0
  42. data/lib/ably_ui/core/showcase/component.js +343 -1
  43. data/lib/ably_ui/core/sign_out_link/component.js +22 -1
  44. data/lib/ably_ui/core/slider/component.css +2 -0
  45. data/lib/ably_ui/core/slider/component.js +38 -1
  46. data/lib/ably_ui/core/slider/slider.html.erb +1 -1
  47. data/lib/ably_ui/core/styles.base.css +1 -0
  48. data/lib/ably_ui/core/styles.components.css +49 -0
  49. data/lib/ably_ui/core/uptime/component.css +2 -0
  50. data/lib/ably_ui/core/uptime/component.js +82 -1
  51. data/lib/ably_ui/react/connect_state_wrapper/component.js +1 -0
  52. data/lib/ably_ui/react/scripts.js +1 -0
  53. data/lib/ably_ui/version.rb +1 -1
  54. metadata +15 -8
@@ -1 +1,22 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentDevelopers=o())}(this,(function(){return{}.default}));
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"]["MeganavContentDevelopers"] = factory();
10
+ })(this, function() {
11
+ return /******/ (() => { // webpackBootstrap
12
+ var __webpack_exports__ = {};
13
+ /*!********************************************************!*\
14
+ !*** ./src/core/MeganavContentDevelopers/component.js ***!
15
+ \********************************************************/
16
+
17
+ __webpack_exports__ = __webpack_exports__.default;
18
+ /******/ return __webpack_exports__;
19
+ /******/ })()
20
+ ;
21
+ });
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPIiwiZmlsZSI6ImNvcmUvTWVnYW5hdkNvbnRlbnREZXZlbG9wZXJzL2NvbXBvbmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250ZW50RGV2ZWxvcGVyc1wiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuICJdLCJzb3VyY2VSb290IjoiIn0=
@@ -1 +1,22 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentPlatform=o())}(this,(function(){return{}.default}));
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"]["MeganavContentPlatform"] = factory();
10
+ })(this, function() {
11
+ return /******/ (() => { // webpackBootstrap
12
+ var __webpack_exports__ = {};
13
+ /*!******************************************************!*\
14
+ !*** ./src/core/MeganavContentPlatform/component.js ***!
15
+ \******************************************************/
16
+
17
+ __webpack_exports__ = __webpack_exports__.default;
18
+ /******/ return __webpack_exports__;
19
+ /******/ })()
20
+ ;
21
+ });
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPIiwiZmlsZSI6ImNvcmUvTWVnYW5hdkNvbnRlbnRQbGF0Zm9ybS9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJBYmx5VWlcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiQWJseVVpXCJdID0gcm9vdFtcIkFibHlVaVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl0gPSByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl1bXCJNZWdhbmF2Q29udGVudFBsYXRmb3JtXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIl0sInNvdXJjZVJvb3QiOiIifQ==
@@ -1 +1,22 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentUseCases=o())}(this,(function(){return{}.default}));
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"]["MeganavContentUseCases"] = factory();
10
+ })(this, function() {
11
+ return /******/ (() => { // webpackBootstrap
12
+ var __webpack_exports__ = {};
13
+ /*!******************************************************!*\
14
+ !*** ./src/core/MeganavContentUseCases/component.js ***!
15
+ \******************************************************/
16
+ // TODO: Webpack expects a .js file for any component
17
+ __webpack_exports__ = __webpack_exports__.default;
18
+ /******/ return __webpack_exports__;
19
+ /******/ })()
20
+ ;
21
+ });
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0FibHlVaS5Db3JlLltuYW1lXS8uL3NyYy9jb3JlL01lZ2FuYXZDb250ZW50VXNlQ2FzZXMvY29tcG9uZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPOzs7OztBQ1ZBLHFEIiwiZmlsZSI6ImNvcmUvTWVnYW5hdkNvbnRlbnRVc2VDYXNlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJBYmx5VWlcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiQWJseVVpXCJdID0gcm9vdFtcIkFibHlVaVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl0gPSByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl1bXCJNZWdhbmF2Q29udGVudFVzZUNhc2VzXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiLy8gVE9ETzogV2VicGFjayBleHBlY3RzIGEgLmpzIGZpbGUgZm9yIGFueSBjb21wb25lbnRcbiJdLCJzb3VyY2VSb290IjoiIn0=
@@ -1 +1,22 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.AblyUi=o():(e.AblyUi=e.AblyUi||{},e.AblyUi.Core=e.AblyUi.Core||{},e.AblyUi.Core.MeganavContentWhyAbly=o())}(this,(function(){return{}.default}));
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"]["MeganavContentWhyAbly"] = factory();
10
+ })(this, function() {
11
+ return /******/ (() => { // webpackBootstrap
12
+ var __webpack_exports__ = {};
13
+ /*!*****************************************************!*\
14
+ !*** ./src/core/MeganavContentWhyAbly/component.js ***!
15
+ \*****************************************************/
16
+
17
+ __webpack_exports__ = __webpack_exports__.default;
18
+ /******/ return __webpack_exports__;
19
+ /******/ })()
20
+ ;
21
+ });
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPIiwiZmlsZSI6ImNvcmUvTWVnYW5hdkNvbnRlbnRXaHlBYmx5L2NvbXBvbmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250ZW50V2h5QWJseVwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuICJdLCJzb3VyY2VSb290IjoiIn0=
@@ -1 +1,208 @@
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.MeganavControl=t())}(this,(function(){return(()=>{"use strict";var e={9581:(e,t,r)=>{r.d(t,{n:()=>n});var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelectorAll("[data-id=".concat(e,"]"))}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{r.d(n,{default:()=>i});var e=r(9581);function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}const i=function(){var r=Array.from((0,e.n)("meganav-control")),n=Array.from((0,e.n)("meganav-panel")),i=getComputedStyle(document.documentElement).getPropertyValue("--bp-md"),o=function(e,n,o){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(i,")")).matches&&!r.some((function(e){return e===document.activeElement}))){var a,u=["invisible","visible"];(a=n.classList).replace.apply(a,function(e){if(Array.isArray(e))return t(e)}(c=o?u:u.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),e.setAttribute("aria-expanded",o)}var c};return r.map((function(e){var t=e.parentNode,i=document.querySelector("#".concat(e.getAttribute("aria-controls"))),a=function(e,t){return function(){r.forEach((function(t){return t!==e&&t.setAttribute("aria-expanded",!1)})),n.forEach((function(e){return e!==t&&e.classList.replace("visible","invisible")})),e.getAttribute("aria-expanded")?(e.setAttribute("aria-expanded",!0),t.classList.replace("invisible","visible")):(e.setAttribute("aria-expanded",!1),t.classList.replace("visible","invisible"))}}(e,i),u=function(e,t){return function(){return o(e,t,!0)}}(e,i),c=function(e,t){return function(){return o(e,t,!1)}}(e,i);return t.addEventListener("mouseenter",u),t.addEventListener("mouseleave",c),e.addEventListener("click",a),[{teardown:function(){t.removeEventListener("mouseenter",u),t.removeEventListener("mouseleave",c),e.removeEventListener("click",a)},clear:function(){e.setAttribute("aria-expanded",!1),i.classList.replace("visible","invisible")}}]})).flat()}})(),n.default})()}));
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, function() {
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 controlsHaveFocus = function controlsHaveFocus() {
128
+ return controls.some(function (control) {
129
+ return control === document.activeElement;
130
+ });
131
+ };
132
+
133
+ var hover = function hover(control, panel, open) {
134
+ if (hoverEnabled() && !controlsHaveFocus()) {
135
+ var _panel$classList;
136
+
137
+ var classes = ["invisible", "visible"];
138
+
139
+ (_panel$classList = panel.classList).replace.apply(_panel$classList, _toConsumableArray(open ? classes : classes.reverse()));
140
+
141
+ control.setAttribute("aria-expanded", open);
142
+ }
143
+ };
144
+
145
+ var mouseenterHandler = function mouseenterHandler(control, panel) {
146
+ return function () {
147
+ return hover(control, panel, true);
148
+ };
149
+ };
150
+
151
+ var mouseleaveHandler = function mouseleaveHandler(control, panel) {
152
+ return function () {
153
+ return hover(control, panel, false);
154
+ };
155
+ };
156
+
157
+ var clickHandler = function clickHandler(control, panel) {
158
+ return function () {
159
+ controls.forEach(function (node) {
160
+ return node !== control && node.setAttribute("aria-expanded", false);
161
+ });
162
+ panels.forEach(function (node) {
163
+ return node !== panel && node.classList.replace("visible", "invisible");
164
+ });
165
+ var ariaExpanded = control.getAttribute("aria-expanded");
166
+
167
+ if (ariaExpanded) {
168
+ control.setAttribute("aria-expanded", true);
169
+ panel.classList.replace("invisible", "visible");
170
+ } else {
171
+ control.setAttribute("aria-expanded", false);
172
+ panel.classList.replace("visible", "invisible");
173
+ }
174
+ };
175
+ };
176
+
177
+ return controls.map(function (control) {
178
+ var item = control.parentNode;
179
+ var panel = document.querySelector("#".concat(control.getAttribute("aria-controls")));
180
+ var click = clickHandler(control, panel);
181
+ var mouseenter = mouseenterHandler(control, panel);
182
+ var mouseleave = mouseleaveHandler(control, panel);
183
+ item.addEventListener("mouseenter", mouseenter);
184
+ item.addEventListener("mouseleave", mouseleave);
185
+ control.addEventListener("click", click);
186
+ return [{
187
+ teardown: function teardown() {
188
+ item.removeEventListener("mouseenter", mouseenter);
189
+ item.removeEventListener("mouseleave", mouseleave);
190
+ control.removeEventListener("click", click);
191
+ },
192
+ clear: function clear() {
193
+ control.setAttribute("aria-expanded", false);
194
+ panel.classList.replace("visible", "invisible");
195
+ }
196
+ }];
197
+ }).flat();
198
+ };
199
+
200
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MeganavControl);
201
+ })();
202
+
203
+ __webpack_exports__ = __webpack_exports__.default;
204
+ /******/ return __webpack_exports__;
205
+ /******/ })()
206
+ ;
207
+ });
208
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0FibHlVaS5Db3JlLltuYW1lXS8uL3NyYy9jb3JlL2RvbS1xdWVyeS5qcyIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUuW25hbWVdL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS5bbmFtZV0vLi9zcmMvY29yZS9NZWdhbmF2Q29udHJvbC9jb21wb25lbnQuanMiXSwibmFtZXMiOlsicXVlcnlJZCIsInZhbCIsInJvb3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeUlkQWxsIiwicXVlcnlTZWxlY3RvckFsbCIsIk1lZ2FuYXZDb250cm9sIiwiY29udHJvbHMiLCJBcnJheSIsImZyb20iLCJwYW5lbHMiLCJtZEJyZWFrcG9pbnQiLCJnZXRDb21wdXRlZFN0eWxlIiwiZG9jdW1lbnRFbGVtZW50IiwiZ2V0UHJvcGVydHlWYWx1ZSIsImhvdmVyRW5hYmxlZCIsIndpbmRvdyIsIm1hdGNoTWVkaWEiLCJtYXRjaGVzIiwiY29udHJvbHNIYXZlRm9jdXMiLCJzb21lIiwiY29udHJvbCIsImFjdGl2ZUVsZW1lbnQiLCJob3ZlciIsInBhbmVsIiwib3BlbiIsImNsYXNzZXMiLCJjbGFzc0xpc3QiLCJyZXBsYWNlIiwicmV2ZXJzZSIsInNldEF0dHJpYnV0ZSIsIm1vdXNlZW50ZXJIYW5kbGVyIiwibW91c2VsZWF2ZUhhbmRsZXIiLCJjbGlja0hhbmRsZXIiLCJmb3JFYWNoIiwibm9kZSIsImFyaWFFeHBhbmRlZCIsImdldEF0dHJpYnV0ZSIsIm1hcCIsIml0ZW0iLCJwYXJlbnROb2RlIiwiY2xpY2siLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0ZWFyZG93biIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjbGVhciIsImZsYXQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPOzs7Ozs7Ozs7Ozs7Ozs7QUNWTyxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxHQUFEO0FBQUEsTUFBTUMsSUFBTix1RUFBYUMsUUFBYjtBQUFBLFNBQ3JCRCxJQUFJLENBQUNFLGFBQUwsb0JBQStCSCxHQUEvQixPQURxQjtBQUFBLENBQWhCO0FBR0EsSUFBTUksVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0osR0FBRDtBQUFBLE1BQU1DLElBQU4sdUVBQWFDLFFBQWI7QUFBQSxTQUN4QkQsSUFBSSxDQUFDSSxnQkFBTCxvQkFBa0NMLEdBQWxDLE9BRHdCO0FBQUEsQ0FBbkIsQzs7Ozs7O1VDSFA7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTs7Ozs7V0N0QkE7V0FDQTtXQUNBO1dBQ0E7V0FDQSx3Q0FBd0MseUNBQXlDO1dBQ2pGO1dBQ0E7V0FDQSxFOzs7OztXQ1BBLHdGOzs7OztXQ0FBO1dBQ0E7V0FDQTtXQUNBLHNEQUFzRCxrQkFBa0I7V0FDeEU7V0FDQSwrQ0FBK0MsY0FBYztXQUM3RCxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNOQTs7QUFFQSxJQUFNTSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLEdBQU07QUFDM0IsTUFBTUMs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YW5hdkNvbnRyb2wvY29tcG9uZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiQWJseVVpXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkFibHlVaVwiXSA9IHJvb3RbXCJBYmx5VWlcIl0gfHwge30sIHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdID0gcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl0gfHwge30sIHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdW1wiTWVnYW5hdkNvbnRyb2xcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCJleHBvcnQgY29uc3QgcXVlcnlJZCA9ICh2YWwsIHJvb3QgPSBkb2N1bWVudCkgPT5cbiAgcm9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pZD0ke3ZhbH1dYCk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeUlkQWxsID0gKHZhbCwgcm9vdCA9IGRvY3VtZW50KSA9PlxuICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoYFtkYXRhLWlkPSR7dmFsfV1gKTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgcXVlcnlJZEFsbCB9IGZyb20gXCIuLi9kb20tcXVlcnlcIjtcblxuY29uc3QgTWVnYW5hdkNvbnRyb2wgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRyb2xzID0gQXJyYXkuZnJvbShxdWVyeUlkQWxsKFwibWVnYW5hdi1jb250cm9sXCIpKTtcbiAgY29uc3QgcGFuZWxzID0gQXJyYXkuZnJvbShxdWVyeUlkQWxsKFwibWVnYW5hdi1wYW5lbFwiKSk7XG4gIGNvbnN0IG1kQnJlYWtwb2ludCA9IGdldENvbXB1dGVkU3R5bGUoXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICkuZ2V0UHJvcGVydHlWYWx1ZShcIi0tYnAtbWRcIik7XG5cbiAgY29uc3QgaG92ZXJFbmFibGVkID0gKCkgPT5cbiAgICB3aW5kb3cubWF0Y2hNZWRpYShcbiAgICAgIGAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiAke21kQnJlYWtwb2ludH0pYFxuICAgICkubWF0Y2hlcztcblxuICBjb25zdCBjb250cm9sc0hhdmVGb2N1cyA9ICgpID0+XG4gICAgY29udHJvbHMuc29tZSgoY29udHJvbCkgPT4gY29udHJvbCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XG5cbiAgY29uc3QgaG92ZXIgPSAoY29udHJvbCwgcGFuZWwsIG9wZW4pID0+IHtcbiAgICBpZiAoaG92ZXJFbmFibGVkKCkgJiYgIWNvbnRyb2xzSGF2ZUZvY3VzKCkpIHtcbiAgICAgIGNvbnN0IGNsYXNzZXMgPSBbXCJpbnZpc2libGVcIiwgXCJ2aXNpYmxlXCJdO1xuICAgICAgcGFuZWwuY2xhc3NMaXN0LnJlcGxhY2UoLi4uKG9wZW4gPyBjbGFzc2VzIDogY2xhc3Nlcy5yZXZlcnNlKCkpKTtcbiAgICAgIGNvbnRyb2wuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBvcGVuKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgbW91c2VlbnRlckhhbmRsZXIgPSAoY29udHJvbCwgcGFuZWwpID0+ICgpID0+XG4gICAgaG92ZXIoY29udHJvbCwgcGFuZWwsIHRydWUpO1xuXG4gIGNvbnN0IG1vdXNlbGVhdmVIYW5kbGVyID0gKGNvbnRyb2wsIHBhbmVsKSA9PiAoKSA9PlxuICAgIGhvdmVyKGNvbnRyb2wsIHBhbmVsLCBmYWxzZSk7XG5cbiAgY29uc3QgY2xpY2tIYW5kbGVyID0gKGNvbnRyb2wsIHBhbmVsKSA9PiAoKSA9PiB7XG4gICAgY29udHJvbHMuZm9yRWFjaChcbiAgICAgIChub2RlKSA9PiBub2RlICE9PSBjb250cm9sICYmIG5vZGUuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBmYWxzZSlcbiAgICApO1xuXG4gICAgcGFuZWxzLmZvckVhY2goXG4gICAgICAobm9kZSkgPT4gbm9kZSAhPT0gcGFuZWwgJiYgbm9kZS5jbGFzc0xpc3QucmVwbGFjZShcInZpc2libGVcIiwgXCJpbnZpc2libGVcIilcbiAgICApO1xuXG4gICAgY29uc3QgYXJpYUV4cGFuZGVkID0gY29udHJvbC5nZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIpO1xuXG4gICAgaWYgKGFyaWFFeHBhbmRlZCkge1xuICAgICAgY29udHJvbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIHRydWUpO1xuICAgICAgcGFuZWwuY2xhc3NMaXN0LnJlcGxhY2UoXCJpbnZpc2libGVcIiwgXCJ2aXNpYmxlXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250cm9sLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgZmFsc2UpO1xuICAgICAgcGFuZWwuY2xhc3NMaXN0LnJlcGxhY2UoXCJ2aXNpYmxlXCIsIFwiaW52aXNpYmxlXCIpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gY29udHJvbHNcbiAgICAubWFwKChjb250cm9sKSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gY29udHJvbC5wYXJlbnROb2RlO1xuICAgICAgY29uc3QgcGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgIyR7Y29udHJvbC5nZXRBdHRyaWJ1dGUoXCJhcmlhLWNvbnRyb2xzXCIpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjbGljayA9IGNsaWNrSGFuZGxlcihjb250cm9sLCBwYW5lbCk7XG4gICAgICBjb25zdCBtb3VzZWVudGVyID0gbW91c2VlbnRlckhhbmRsZXIoY29udHJvbCwgcGFuZWwpO1xuICAgICAgY29uc3QgbW91c2VsZWF2ZSA9IG1vdXNlbGVhdmVIYW5kbGVyKGNvbnRyb2wsIHBhbmVsKTtcblxuICAgICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBtb3VzZWVudGVyKTtcbiAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgbW91c2VsZWF2ZSk7XG4gICAgICBjb250cm9sLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGljayk7XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFyZG93bjogKCkgPT4ge1xuICAgICAgICAgICAgaXRlbS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBtb3VzZWVudGVyKTtcbiAgICAgICAgICAgIGl0ZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgbW91c2VsZWF2ZSk7XG4gICAgICAgICAgICBjb250cm9sLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGljayk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcbiAgICAgICAgICAgIHBhbmVsLmNsYXNzTGlzdC5yZXBsYWNlKFwidmlzaWJsZVwiLCBcImludmlzaWJsZVwiKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9KVxuICAgIC5mbGF0KCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZWdhbmF2Q29udHJvbDtcbiJdLCJzb3VyY2VSb290IjoiIn0=