ably-ui 8.7.0.dev.7072b07 → 8.7.0.dev.7456b53
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -6
- data/README.md +3 -7
- data/lib/ably_ui/core/code/component.css +0 -2
- data/lib/ably_ui/core/code/component.js +1 -739
- data/lib/ably_ui/core/company_autocomplete/component.css +0 -2
- data/lib/ably_ui/core/company_autocomplete/component.js +1 -1161
- data/lib/ably_ui/core/connect_state_wrapper/component.js +1 -22
- data/lib/ably_ui/core/contact_footer/component.css +0 -2
- data/lib/ably_ui/core/contact_footer/component.js +1 -211
- data/lib/ably_ui/core/cookie_message/component.css +0 -2
- data/lib/ably_ui/core/cookie_message/component.js +1 -82
- data/lib/ably_ui/core/core.rb +4 -8
- data/lib/ably_ui/core/customer_logos/component.js +1 -22
- data/lib/ably_ui/core/dropdown_menu/component.js +1 -22
- data/lib/ably_ui/core/feature_footer/component.css +0 -2
- data/lib/ably_ui/core/feature_footer/component.js +1 -211
- data/lib/ably_ui/core/featured_link/component.css +0 -2
- data/lib/ably_ui/core/featured_link/component.js +1 -82
- data/lib/ably_ui/core/flash/component.css +0 -2
- data/lib/ably_ui/core/flash/component.js +1 -82
- data/lib/ably_ui/core/footer/component.css +1 -3
- data/lib/ably_ui/core/footer/component.js +1 -82
- data/lib/ably_ui/core/footer/footer.html.erb +23 -18
- data/lib/ably_ui/core/icon/component.js +1 -22
- data/lib/ably_ui/core/loader/component.js +1 -22
- data/lib/ably_ui/core/logo/component.js +1 -22
- data/lib/ably_ui/core/meganav/component.css +3 -3
- data/lib/ably_ui/core/meganav/component.js +1 -992
- data/lib/ably_ui/core/meganav/component.json +1 -1
- data/lib/ably_ui/core/meganav/meganav.rb +4 -4
- data/lib/ably_ui/core/meganav_blog_posts_list/component.js +1 -1159
- data/lib/ably_ui/core/meganav_content_company/component.js +1 -22
- data/lib/ably_ui/core/meganav_content_company/meganav_content_company.html.erb +0 -9
- data/lib/ably_ui/core/meganav_content_developers/component.js +1 -22
- data/lib/ably_ui/core/meganav_content_developers/meganav_content_developers.html.erb +2 -18
- data/lib/ably_ui/core/meganav_content_platform/component.js +1 -0
- data/lib/ably_ui/core/{meganav_content_products/meganav_content_products.html.erb → meganav_content_platform/meganav_content_platform.html.erb} +33 -15
- data/lib/ably_ui/core/{meganav_content_products/meganav_content_products.rb → meganav_content_platform/meganav_content_platform.rb} +1 -1
- data/lib/ably_ui/core/meganav_content_use_cases/component.js +1 -22
- data/lib/ably_ui/core/meganav_content_use_cases/meganav_content_use_cases.html.erb +38 -42
- data/lib/ably_ui/core/meganav_control/component.js +1 -241
- data/lib/ably_ui/core/meganav_control_mobile_dropdown/component.js +1 -180
- data/lib/ably_ui/core/meganav_control_mobile_panel_close/component.js +1 -142
- data/lib/ably_ui/core/meganav_control_mobile_panel_open/component.js +1 -170
- data/lib/ably_ui/core/meganav_items_desktop/component.js +1 -22
- data/lib/ably_ui/core/meganav_items_desktop/meganav_items_desktop.rb +1 -1
- data/lib/ably_ui/core/meganav_items_mobile/component.js +1 -22
- data/lib/ably_ui/core/meganav_items_signed_in/component.js +1 -22
- data/lib/ably_ui/core/meganav_search/component.js +1 -22
- data/lib/ably_ui/core/meganav_search_autocomplete/component.js +1 -295
- data/lib/ably_ui/core/meganav_search_panel/component.js +1 -22
- data/lib/ably_ui/core/meganav_search_suggestions/component.js +1 -258
- data/lib/ably_ui/core/notice/component.css +0 -2
- data/lib/ably_ui/core/notice/component.js +1 -872
- data/lib/ably_ui/core/scripts.js +1 -1465
- data/lib/ably_ui/core/showcase/component.css +0 -2
- data/lib/ably_ui/core/showcase/component.js +1 -343
- data/lib/ably_ui/core/sign_out_link/component.js +1 -22
- data/lib/ably_ui/core/slider/component.css +0 -2
- data/lib/ably_ui/core/slider/component.js +1 -255
- data/lib/ably_ui/core/sprites.svg +0 -93
- data/lib/ably_ui/core/styles.css +7 -3
- data/lib/ably_ui/core/uptime/component.css +0 -2
- data/lib/ably_ui/core/uptime/component.js +1 -82
- data/lib/ably_ui/reset/scripts.js +1 -1
- data/lib/ably_ui/reset/styles.css +11 -1
- data/lib/ably_ui/version.rb +1 -1
- metadata +5 -9
- data/lib/ably_ui/core/images/best-support-2023.svg +0 -1
- data/lib/ably_ui/core/images/fastest-implementation-2023.svg +0 -1
- data/lib/ably_ui/core/images/high-performer-2023.svg +0 -1
- data/lib/ably_ui/core/images/highest-user-adoption-2023.svg +0 -1
- data/lib/ably_ui/core/meganav_content_products/component.js +0 -22
@@ -1,22 +1 @@
|
|
1
|
-
(function
|
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"]["MeganavContentCompany"] = factory();
|
10
|
-
})(this, () => {
|
11
|
-
return /******/ (() => { // webpackBootstrap
|
12
|
-
var __webpack_exports__ = {};
|
13
|
-
/*!*****************************************************!*\
|
14
|
-
!*** ./src/core/MeganavContentCompany/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2Q29udGVudENvbXBhbnkvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250ZW50Q29tcGFueVwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|
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.MeganavContentCompany=o())}(this,(function(){return{}.default}));
|
@@ -72,15 +72,6 @@
|
|
72
72
|
</div>
|
73
73
|
<% end %>
|
74
74
|
</li>
|
75
|
-
<li>
|
76
|
-
<%= link_to abs_url("/events"), class: "ui-meganav-media-with-image group" do %>
|
77
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-display-events-col", size: "2.5rem")) %>
|
78
|
-
<div class="flex flex-col justify-center">
|
79
|
-
<p class="ui-meganav-media-heading">Events</p>
|
80
|
-
<p class="ui-meganav-media-copy">Join Ably at upcoming events.</p>
|
81
|
-
</div>
|
82
|
-
<% end %>
|
83
|
-
</li>
|
84
75
|
</ul>
|
85
76
|
</div>
|
86
77
|
|
@@ -1,22 +1 @@
|
|
1
|
-
(function
|
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, () => {
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2Q29udGVudERldmVsb3BlcnMvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsdURBQXVEO0FBQzlGLENBQUM7QUFDRCxPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250ZW50RGV2ZWxvcGVyc1wiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+IHtcbnJldHVybiAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|
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}));
|
@@ -33,17 +33,9 @@
|
|
33
33
|
</div>
|
34
34
|
<% end %>
|
35
35
|
</li>
|
36
|
-
<li>
|
37
|
-
<%= link_to abs_url("/examples"), class: "ui-meganav-media-with-image group" do %>
|
38
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-display-examples-col", size: "2.5rem")) %>
|
39
|
-
<div class="flex flex-col justify-center">
|
40
|
-
<p class="ui-meganav-media-heading">Live examples</p>
|
41
|
-
<p class="ui-meganav-media-copy">Discover our features and their use cases.</p>
|
42
|
-
</div>
|
43
|
-
<% end %>
|
44
|
-
</li>
|
45
36
|
</ul>
|
46
37
|
</div>
|
38
|
+
|
47
39
|
<div class="col-span-full md:col-span-4 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
|
48
40
|
<ul class="md:mt-40" aria-labelledby="meganav-developers-panel-explore">
|
49
41
|
<li>
|
@@ -73,17 +65,9 @@
|
|
73
65
|
</div>
|
74
66
|
<% end %>
|
75
67
|
</li>
|
76
|
-
<li>
|
77
|
-
<%= link_to abs_url("/reference-guide-multiplayer"), class: "ui-meganav-media-with-image group" do %>
|
78
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-multi-user-spaces-col", size: "2.5rem")) %>
|
79
|
-
<div class="flex flex-col justify-center">
|
80
|
-
<p class="ui-meganav-media-heading">Multiplayer reference guide</p>
|
81
|
-
<p class="ui-meganav-media-copy">Learn how to build collaborative features with Ably.</p>
|
82
|
-
</div>
|
83
|
-
<% end %>
|
84
|
-
</li>
|
85
68
|
</ul>
|
86
69
|
</div>
|
70
|
+
|
87
71
|
<div class="col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0">
|
88
72
|
<h3 class="ui-meganav-overline uppercase" id="meganav-developers-panel-quick-links">
|
89
73
|
Quick links
|
@@ -0,0 +1 @@
|
|
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}));
|
@@ -16,34 +16,52 @@
|
|
16
16
|
</div>
|
17
17
|
|
18
18
|
<div class="col-span-full md:col-span-4 pt-24 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
19
|
-
<h3 class="ui-meganav-overline" id="meganav-
|
20
|
-
|
21
|
-
</h3>
|
22
|
-
<ul class="mb-16" aria-labelledby="meganav-products-panel-list-examples">
|
19
|
+
<h3 class="ui-meganav-overline" id="meganav-platform-panel-list-examples">Our Examples</h3>
|
20
|
+
<ul class="mb-16" aria-labelledby="meganav-platform-panel-list-examples">
|
23
21
|
<li>
|
24
|
-
<%= link_to abs_url("/
|
25
|
-
<p class="ui-meganav-media-heading">
|
26
|
-
<p class="ui-meganav-media-copy">
|
22
|
+
<%= link_to abs_url("/examples/avatar-stack"), class: "ui-meganav-media group" do %>
|
23
|
+
<p class="ui-meganav-media-heading">Avatar Stack</p>
|
24
|
+
<p class="ui-meganav-media-copy">See who is connected in a digital space.</p>
|
27
25
|
<% end %>
|
28
26
|
</li>
|
29
27
|
<li>
|
30
|
-
<%= link_to abs_url("/
|
31
|
-
<p class="ui-meganav-media-heading">
|
32
|
-
<p class="ui-meganav-media-copy">
|
28
|
+
<%= link_to abs_url("/examples/emoji-reactions"), class: "ui-meganav-media group" do %>
|
29
|
+
<p class="ui-meganav-media-heading">Emoji Reactions</p>
|
30
|
+
<p class="ui-meganav-media-copy">React with an emoji to a message.</p>
|
33
31
|
<% end %>
|
34
32
|
</li>
|
35
33
|
<li>
|
36
|
-
<%= link_to abs_url("/
|
37
|
-
<p class="ui-meganav-media-heading">
|
38
|
-
<p class="ui-meganav-media-copy">
|
34
|
+
<%= link_to abs_url("/examples/activity-feed"), class: "ui-meganav-media group" do %>
|
35
|
+
<p class="ui-meganav-media-heading">Activity Feed</p>
|
36
|
+
<p class="ui-meganav-media-copy">Display a list of user actions in realtime.</p>
|
37
|
+
<% end %>
|
38
|
+
</li>
|
39
|
+
<li>
|
40
|
+
<%= link_to abs_url("/examples/live-charts"), class: "ui-meganav-media group" do %>
|
41
|
+
<p class="ui-meganav-media-heading">Live Charts</p>
|
42
|
+
<p class="ui-meganav-media-copy">Visualise live metrics and data in a chart.</p>
|
43
|
+
<% end %>
|
44
|
+
</li>
|
45
|
+
<li>
|
46
|
+
<%= link_to abs_url("/examples/live-cursors"), class: "ui-meganav-media group" do %>
|
47
|
+
<p class="ui-meganav-media-heading">Live Cursors</p>
|
48
|
+
<p class="ui-meganav-media-copy">Track all cursors in realtime.</p>
|
49
|
+
<% end %>
|
50
|
+
</li>
|
51
|
+
<li>
|
52
|
+
<%= link_to abs_url("/examples/typing-indicator"), class: "ui-meganav-media group" do %>
|
53
|
+
<p class="ui-meganav-media-heading">Typing Indicator</p>
|
54
|
+
<p class="ui-meganav-media-copy">See when a user is typing a message.</p>
|
39
55
|
<% end %>
|
40
56
|
</li>
|
41
57
|
</ul>
|
58
|
+
|
59
|
+
<%= render(AblyUi::Core::FeaturedLink.new(url: abs_url("/examples"), text_size: 'text-p3')) do %>Explore all live examples<% end %>
|
42
60
|
</div>
|
43
61
|
|
44
62
|
<div class="col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
45
|
-
<h3 class="ui-meganav-overline" id="meganav-
|
46
|
-
<ul class="mb-16" aria-labelledby="meganav-
|
63
|
+
<h3 class="ui-meganav-overline" id="meganav-platform-panel-list-our-technology">Our technology</h3>
|
64
|
+
<ul class="mb-16" aria-labelledby="meganav-platform-panel-list-our-technology">
|
47
65
|
<li>
|
48
66
|
<%= link_to abs_url("/four-pillars-of-dependability#performance"), class: "ui-meganav-media group" do %>
|
49
67
|
<p class="ui-meganav-media-heading">Predictable performance</p>
|
@@ -1,22 +1 @@
|
|
1
|
-
(function
|
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, () => {
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2Q29udGVudFVzZUNhc2VzL2NvbXBvbmVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLHVEQUF1RDtBQUM5RixDQUFDO0FBQ0QsTzs7Ozs7QUNWQSxxRCIsInNvdXJjZXMiOlsid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS8uL3NyYy9jb3JlL01lZ2FuYXZDb250ZW50VXNlQ2FzZXMvY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIk1lZ2FuYXZDb250ZW50VXNlQ2FzZXNcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwiLy8gVE9ETzogV2VicGFjayBleHBlY3RzIGEgLmpzIGZpbGUgZm9yIGFueSBjb21wb25lbnRcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==
|
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}));
|
@@ -3,68 +3,49 @@
|
|
3
3
|
<section class="grid grid-cols-12 ui-grid-gap-x w-full">
|
4
4
|
<div class="col-span-full md:col-span-4 py-24 lg:py-32 px-24 sm:px-32 md:pl-0 md:pr-24 bg-extra-light-grey">
|
5
5
|
<h3 class="ui-meganav-overline" id="meganav-use-cases-panel-use-cases">
|
6
|
-
|
6
|
+
Use cases
|
7
7
|
</h3>
|
8
8
|
<ul aria-labelledby="meganav-use-cases-panel-industry-use-cases">
|
9
|
-
|
10
9
|
<li>
|
11
|
-
<%= link_to abs_url("/solutions/
|
12
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-
|
10
|
+
<%= link_to abs_url("/solutions/live-updates-results-metrics"), class: "ui-meganav-media-with-image group" do %>
|
11
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-live-updates-results-metrics-col", size: "2.5rem")) %>
|
13
12
|
<div class="flex flex-col justify-center">
|
14
|
-
<p class="ui-meganav-media-heading">Live
|
15
|
-
<p class="ui-meganav-media-copy">Deliver
|
13
|
+
<p class="ui-meganav-media-heading">Live updates, results & metrics</p>
|
14
|
+
<p class="ui-meganav-media-copy">Deliver live updates to keep users informed.</p>
|
16
15
|
</div>
|
17
16
|
<% end %>
|
18
17
|
</li>
|
19
18
|
<li>
|
20
|
-
<%= link_to abs_url("/solutions/
|
21
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-
|
22
|
-
<div class="flex flex-col justify-center">
|
23
|
-
<p class="ui-meganav-media-heading">Multiplayer Collaboration</p>
|
24
|
-
<p class="ui-meganav-media-copy">Bring collaborative multiplayer experiences to your users.</p>
|
25
|
-
</div>
|
26
|
-
<% end %>
|
27
|
-
</li>
|
28
|
-
<li>
|
29
|
-
<%= link_to abs_url("/solutions/data-broadcast"), class: "ui-meganav-media-with-image group" do %>
|
30
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-display-data-broadcast-col", size: "2.5rem")) %>
|
19
|
+
<%= link_to abs_url("/solutions/chat"), class: "ui-meganav-media-with-image group" do %>
|
20
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-chat-stack-col", size: "2.5rem")) %>
|
31
21
|
<div class="flex flex-col justify-center">
|
32
|
-
<p class="ui-meganav-media-heading">
|
33
|
-
<p class="ui-meganav-media-copy">
|
22
|
+
<p class="ui-meganav-media-heading">Chat</p>
|
23
|
+
<p class="ui-meganav-media-copy">Deliver highly reliable chat experiences at scale. </p>
|
34
24
|
</div>
|
35
25
|
<% end %>
|
36
26
|
</li>
|
37
27
|
<li>
|
38
|
-
<%= link_to abs_url("/solutions/
|
39
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-display-
|
40
|
-
<div class="flex flex-col justify-center">
|
41
|
-
<p class="ui-meganav-media-heading">Data Synchronization</p>
|
42
|
-
<p class="ui-meganav-media-copy">Keep your frontend and backend in realtime sync, at global scale.</p>
|
43
|
-
</div>
|
44
|
-
<% end %>
|
45
|
-
</li>
|
46
|
-
<li>
|
47
|
-
<%= link_to abs_url("/push-notifications"), class: "ui-meganav-media-with-image group" do %>
|
48
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-display-push-notifications-col", size: "2.5rem")) %>
|
28
|
+
<%= link_to abs_url("/solutions/virtual-events"), class: "ui-meganav-media-with-image group" do %>
|
29
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-display-virtual-events-col", size: "2.5rem")) %>
|
49
30
|
<div class="flex flex-col justify-center">
|
50
|
-
<p class="ui-meganav-media-heading">
|
51
|
-
<p class="ui-meganav-media-copy">
|
31
|
+
<p class="ui-meganav-media-heading">Virtual Events</p>
|
32
|
+
<p class="ui-meganav-media-copy">Power engaging virtual events with realtime features.</p>
|
52
33
|
</div>
|
53
34
|
<% end %>
|
54
35
|
</li>
|
55
36
|
<li>
|
56
|
-
<%= link_to abs_url("/solutions/
|
57
|
-
<%= render(AblyUi::Core::Icon.new(name: "icon-
|
37
|
+
<%= link_to abs_url("/solutions/multi-user-virtual-spaces"), class: "ui-meganav-media-with-image group" do %>
|
38
|
+
<%= render(AblyUi::Core::Icon.new(name: "icon-multi-user-spaces-col", size: "2.5rem")) %>
|
58
39
|
<div class="flex flex-col justify-center">
|
59
|
-
<p class="ui-meganav-media-heading">
|
60
|
-
<p class="ui-meganav-media-copy">
|
40
|
+
<p class="ui-meganav-media-heading">Multi-user virtual spaces</p>
|
41
|
+
<p class="ui-meganav-media-copy">Build live and interactive multi-user applications.</p>
|
61
42
|
</div>
|
62
43
|
<% end %>
|
63
44
|
</li>
|
64
45
|
</ul>
|
65
46
|
</div>
|
66
47
|
|
67
|
-
<div class="col-span-full md:col-span-4 pt-24 pb-
|
48
|
+
<div class="col-span-full md:col-span-4 pt-24 pb-8 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
68
49
|
<h3 class="ui-meganav-overline" id="meganav-use-cases-panel-industry">
|
69
50
|
Industry
|
70
51
|
</h3>
|
@@ -99,11 +80,6 @@
|
|
99
80
|
<p class="ui-meganav-media-copy">Provide trustworthy, HIPAA-compliant realtime apps.</p>
|
100
81
|
<% end %>
|
101
82
|
</li>
|
102
|
-
</ul>
|
103
|
-
</div>
|
104
|
-
|
105
|
-
<div class="col-span-full md:col-span-4 pt-0 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
106
|
-
<ul aria-labelledby="meganav-use-cases-panel-solutions" class="mt-0 md:mt-40">
|
107
83
|
<li>
|
108
84
|
<%= link_to abs_url("/solutions/ecommerce-and-retail"), class: "ui-meganav-media group" do %>
|
109
85
|
<p class="ui-meganav-media-heading">eCommerce & Retail</p>
|
@@ -130,6 +106,26 @@
|
|
130
106
|
</li>
|
131
107
|
</ul>
|
132
108
|
</div>
|
109
|
+
|
110
|
+
<div class="col-span-full md:col-span-4 pt-8 pb-24 md:py-24 lg:py-32 px-24 sm:px-32 md:px-0 bg-white">
|
111
|
+
<h3 class="ui-meganav-overline" id="meganav-use-cases-panel-solutions">
|
112
|
+
Solutions
|
113
|
+
</h3>
|
114
|
+
<ul aria-labelledby="meganav-use-cases-panel-solutions">
|
115
|
+
<li>
|
116
|
+
<%= link_to abs_url("/solutions/extend-kafka-to-the-edge"), class: "ui-meganav-media group" do %>
|
117
|
+
<p class="ui-meganav-media-heading">Extend Kafka to the edge</p>
|
118
|
+
<p class="ui-meganav-media-copy">Reliably expand Kafka’s event streaming beyond your private network.</p>
|
119
|
+
<% end %>
|
120
|
+
</li>
|
121
|
+
<li>
|
122
|
+
<%= link_to abs_url("/solutions/asset-tracking"), class: "ui-meganav-media group" do %>
|
123
|
+
<p class="ui-meganav-media-heading">Asset Tracking</p>
|
124
|
+
<p class="ui-meganav-media-copy">Track assets in realtime with a solution optimised for last mile logistics.</p>
|
125
|
+
<% end %>
|
126
|
+
</li>
|
127
|
+
</ul>
|
128
|
+
</div>
|
133
129
|
</section>
|
134
130
|
<div class="ui-meganav-content-spacer"></div>
|
135
131
|
</div>
|
@@ -1,241 +1 @@
|
|
1
|
-
(function
|
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
|
+
!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,{A:()=>n,n:()=>o});var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector("[data-id=".concat(e,"]"))},o=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 o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.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:()=>o});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 o=function(){var r=Array.from((0,e.n)("meganav-control")),n=Array.from((0,e.n)("meganav-panel")),o=getComputedStyle(document.documentElement).getPropertyValue("--bp-md"),a=function(e){return"search"===e.dataset.control},i=function(e,n,a){if(window.matchMedia("(hover: hover) and (pointer: fine) and (min-width: ".concat(o,")")).matches&&!r.some((function(e){return e===document.activeElement}))&&!function(){var e=document.querySelector('[data-id="meganav-panel"]#panel-search');if(e)return!e.classList.contains("invisible")}()){var i,c=["invisible","visible"];(i=n.classList).replace.apply(i,function(e){if(Array.isArray(e))return t(e)}(u=a?c:c.reverse())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(u)||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}}(u)||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",a),e.dataset.hover=a}var u};return r.map((function(t){var o,c,u=t.parentNode,s=document.querySelector("#".concat(t.getAttribute("aria-controls"))),l=function(t,o){return function(){r.forEach((function(e){return e!==t&&e.setAttribute("aria-expanded",!1)})),n.forEach((function(e){return e!==o&&e.classList.replace("visible","invisible")}));var i=t.getAttribute("aria-expanded"),c="true"===t.dataset.hover;if("true"!==i||c?(t.setAttribute("aria-expanded",!0),o.classList.replace("invisible","visible")):(t.setAttribute("aria-expanded",!1),o.classList.replace("visible","invisible")),c&&(t.dataset.hover=!1),a(t)){var u=(0,e.A)("meganav-search-input",o);if(!u)return;u.focus()}else t.focus()}}(t,s);return t.addEventListener("click",l),a(t)||(o=function(e,t){return function(){return i(e,t,!0)}}(t,s),c=function(e,t){return function(){return i(e,t,!1)}}(t,s),u.addEventListener("mouseenter",o),u.addEventListener("mouseleave",c)),[{teardown:function(){o&&c&&(u.removeEventListener("mouseenter",o),u.removeEventListener("mouseleave",c)),t.removeEventListener("click",l)},clear:function(){t.setAttribute("aria-expanded",!1),s.classList.replace("visible","invisible")}}]})).flat()}})(),n.default})()}));
|