ably-ui 8.7.0.dev.7072b07 → 8.7.0.dev.7456b53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9NZWdhbmF2Q29udHJvbC9jb21wb25lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qyx1REFBdUQ7QUFDOUYsQ0FBQztBQUNELE87Ozs7Ozs7Ozs7Ozs7OztBQ1ZPLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLEdBQUQ7QUFBQSxNQUFNQyxJQUFOLHVFQUFhQyxRQUFiO0FBQUEsU0FDckJELElBQUksQ0FBQ0UsYUFBTCxvQkFBK0JILEdBQS9CLE9BRHFCO0FBQUEsQ0FBaEI7QUFHQSxJQUFNSSxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDSixHQUFEO0FBQUEsTUFBTUMsSUFBTix1RUFBYUMsUUFBYjtBQUFBLFNBQ3hCRCxJQUFJLENBQUNJLGdCQUFMLG9CQUFrQ0wsR0FBbEMsT0FEd0I7QUFBQSxDQUFuQjs7Ozs7O1VDSFA7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTs7Ozs7V0N0QkE7V0FDQTtXQUNBO1dBQ0E7V0FDQSx5Q0FBeUMsd0NBQXdDO1dBQ2pGO1dBQ0E7V0FDQTs7Ozs7V0NQQTs7Ozs7V0NBQTtXQUNBO1dBQ0E7V0FDQSx1REFBdUQsaUJBQWlCO1dBQ3hFO1dBQ0EsZ0RBQWdELGFBQWE7V0FDN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ05BOztBQUVBLElBQU1NLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsR0FBTTtBQUMzQixNQUFNQyxRQUFRLEdBQUdDLEtBQUssQ0FBQ0MsSUFBTixDQUFXTCxzREFBVSxDQUFDLGlCQUFELENBQXJCLENBQWpCO0FBQ0EsTUFBTU0sTUFBTSxHQUFHRixLQUFLLENBQUNDLElBQU4sQ0FBV0wsc0RBQVUsQ0FBQyxlQUFELENBQXJCLENBQWY7QUFDQSxNQUFNTyxZQUFZLEdBQUdDLGdCQUFnQixDQUNuQ1YsUUFBUSxDQUFDVyxlQUQwQixDQUFoQixDQUVuQkMsZ0JBRm1CLENBRUYsU0FGRSxDQUFyQjs7QUFJQSxNQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZTtBQUFBLFdBQ25CQyxNQUFNLENBQUNDLFVBQVAsOERBQ3dETixZQUR4RCxRQUVFTyxPQUhpQjtBQUFBLEdBQXJCOztBQUtBLE1BQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsT0FBTCxDQUFhQyxPQUFiLEtBQXlCLFFBQW5DO0FBQUEsR0FBeEI7O0FBRUEsTUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixHQUFNO0FBQzlCLFFBQU1DLFdBQVcsR0FBR3RCLFFBQVEsQ0FBQ0MsYUFBVCxDQUNsQix3Q0FEa0IsQ0FBcEI7QUFHQSxRQUFJLENBQUNxQixXQUFMLEVBQWtCO0FBQ2xCLFdBQU8sQ0FBQ0EsV0FBVyxDQUFDQyxTQUFaLENBQXNCQyxRQUF0QixDQUErQixXQUEvQixDQUFSO0FBQ0QsR0FORDs7QUFRQSxNQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CO0FBQUEsV0FDeEJwQixRQUFRLENBQUNxQixJQUFULENBQWMsVUFBQ04sT0FBRDtBQUFBLGFBQWFBLE9BQU8sS0FBS3BCLFFBQVEsQ0FBQzJCLGFBQWxDO0FBQUEsS0FBZCxDQUR3QjtBQUFBLEdBQTFCOztBQUdBLE1BQU1DLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQUNSLE9BQUQsRUFBVVMsS0FBVixFQUFpQkMsSUFBakIsRUFBMEI7QUFDdEMsUUFBSWpCLFlBQVksTUFBTSxDQUFDWSxpQkFBaUIsRUFBcEMsSUFBMEMsQ0FBQ0osaUJBQWlCLEVBQWhFLEVBQW9FO0FBQUE7O0FBQ2xFLFVBQU1VLE9BQU8sR0FBRyxDQUFDLFdBQUQsRUFBYyxTQUFkLENBQWhCOztBQUNBLDBCQUFBRixLQUFLLENBQUNOLFNBQU4sRUFBZ0JTLE9BQWhCLDRDQUE0QkYsSUFBSSxHQUFHQyxPQUFILEdBQWFBLE9BQU8sQ0FBQ0UsT0FBUixFQUE3Qzs7QUFDQWIsTUFBQUEsT0FBTyxDQUFDYyxZQUFSLENBQXFCLGVBQXJCLEVBQXNDSixJQUF0QztBQUNBVixNQUFBQSxPQUFPLENBQUNELE9BQVIsQ0FBZ0JTLEtBQWhCLEdBQXdCRSxJQUF4QjtBQUNEO0FBQ0YsR0FQRDs7QUFTQSxNQUFNSyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNmLE9BQUQsRUFBVVMsS0FBVjtBQUFBLFdBQW9CO0FBQUEsYUFDNUNELEtBQUssQ0FBQ1IsT0FBRCxFQUFVUyxLQUFWLEVBQWlCLElBQWpCLENBRHVDO0FBQUEsS0FBcEI7QUFBQSxHQUExQjs7QUFHQSxNQUFNTyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNoQixPQUFELEVBQVVTLEtBQVY7QUFBQSxXQUFvQjtBQUFBLGFBQzVDRCxLQUFLLENBQUNSLE9BQUQsRUFBVVMsS0FBVixFQUFpQixLQUFqQixDQUR1QztBQUFBLEtBQXBCO0FBQUEsR0FBMUI7O0FBR0EsTUFBTVEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ2pCLE9BQUQsRUFBVVMsS0FBVjtBQUFBLFdBQW9CLFlBQU07QUFDN0N4QixNQUFBQSxRQUFRLENBQUNpQyxPQUFULENBQ0UsVUFBQ3BCLElBQUQ7QUFBQSxlQUFVQSxJQUFJLEtBQUtFLE9BQVQsSUFBb0JGLElBQUksQ0FBQ2dCLFlBQUwsQ0FBa0IsZUFBbEIsRUFBbUMsS0FBbkMsQ0FBOUI7QUFBQSxPQURGO0FBSUExQixNQUFBQSxNQUFNLENBQUM4QixPQUFQLENBQ0UsVUFBQ3BCLElBQUQ7QUFBQSxlQUFVQSxJQUFJLEtBQUtXLEtBQVQsSUFBa0JYLElBQUksQ0FBQ0ssU0FBTCxDQUFlUyxPQUFmLENBQXVCLFNBQXZCLEVBQWtDLFdBQWxDLENBQTVCO0FBQUEsT0FERjtBQUlBLFVBQU1PLFlBQVksR0FBR25CLE9BQU8sQ0FBQ29CLFlBQVIsQ0FBcUIsZUFBckIsQ0FBckIsQ0FUNkMsQ0FXN0M7O0FBQ0EsVUFBTUMsYUFBYSxHQUFHckIsT0FBTyxDQUFDRCxPQUFSLENBQWdCUyxLQUFoQixLQUEwQixNQUFoRDs7QUFFQSxVQUFJVyxZQUFZLEtBQUssTUFBakIsSUFBMkIsQ0FBQ0UsYUFBaEMsRUFBK0M7QUFDN0NyQixRQUFBQSxPQUFPLENBQUNjLFlBQVIsQ0FBcUIsZUFBckIsRUFBc0MsS0FBdEM7QUFDQUwsUUFBQUEsS0FBSyxDQUFDTixTQUFOLENBQWdCUyxPQUFoQixDQUF3QixTQUF4QixFQUFtQyxXQUFuQztBQUNELE9BSEQsTUFHTztBQUNMWixRQUFBQSxPQUFPLENBQUNjLFlBQVIsQ0FBcUIsZUFBckIsRUFBc0MsSUFBdEM7QUFDQUwsUUFBQUEsS0FBSyxDQUFDTixTQUFOLENBQWdCUyxPQUFoQixDQUF3QixXQUF4QixFQUFxQyxTQUFyQztBQUNEOztBQUVELFVBQUlTLGFBQUosRUFBbUI7QUFDakJyQixRQUFBQSxPQUFPLENBQUNELE9BQVIsQ0FBZ0JTLEtBQWhCLEdBQXdCLEtBQXhCO0FBQ0Q7O0FBRUQsVUFBSVgsZUFBZSxDQUFDRyxPQUFELENBQW5CLEVBQThCO0FBQzVCLFlBQU1zQixXQUFXLEdBQUc3QyxtREFBTyxDQUFDLHNCQUFELEVBQXlCZ0MsS0FBekIsQ0FBM0I7QUFDQSxZQUFJLENBQUNhLFdBQUwsRUFBa0I7QUFDbEJBLFFBQUFBLFdBQVcsQ0FBQ0MsS0FBWjtBQUNELE9BSkQsTUFJTztBQUNMdkIsUUFBQUEsT0FBTyxDQUFDdUIsS0FBUjtBQUNEO0FBQ0YsS0FqQ29CO0FBQUEsR0FBckI7O0FBbUNBLFNBQU90QyxRQUFRLENBQ1p1QyxHQURJLENBQ0EsVUFBQ3hCLE9BQUQsRUFBYTtBQUNoQixRQUFNeUIsSUFBSSxHQUFHekIsT0FBTyxDQUFDMEIsVUFBckI7QUFDQSxRQUFNakIsS0FBSyxHQUFHN0IsUUFBUSxDQUFDQyxhQUFULFlBQ1JtQixPQUFPLENBQUNvQixZQUFSLENBQXFCLGVBQXJCLENBRFEsRUFBZDtBQUdBLFFBQU1PLEtBQUssR0FBR1YsWUFBWSxDQUFDakIsT0FBRCxFQUFVUyxLQUFWLENBQTFCO0FBQ0FULElBQUFBLE9BQU8sQ0FBQzRCLGdCQUFSLENBQXlCLE9BQXpCLEVBQWtDRCxLQUFsQztBQUNBLFFBQUlFLFVBQUosRUFBZ0JDLFVBQWhCOztBQUVBLFFBQUksQ0FBQ2pDLGVBQWUsQ0FBQ0csT0FBRCxDQUFwQixFQUErQjtBQUM3QjZCLE1BQUFBLFVBQVUsR0FBR2QsaUJBQWlCLENBQUNmLE9BQUQsRUFBVVMsS0FBVixDQUE5QjtBQUNBcUIsTUFBQUEsVUFBVSxHQUFHZCxpQkFBaUIsQ0FBQ2hCLE9BQUQsRUFBVVMsS0FBVixDQUE5QjtBQUVBZ0IsTUFBQUEsSUFBSSxDQUFDRyxnQkFBTCxDQUFzQixZQUF0QixFQUFvQ0MsVUFBcEM7QUFDQUosTUFBQUEsSUFBSSxDQUFDRyxnQkFBTCxDQUFzQixZQUF0QixFQUFvQ0UsVUFBcEM7QUFDRDs7QUFFRCxXQUFPLENBQ0w7QUFDRUMsTUFBQUEsUUFBUSxFQUFFLG9CQUFNO0FBQ2QsWUFBSUYsVUFBVSxJQUFJQyxVQUFsQixFQUE4QjtBQUM1QkwsVUFBQUEsSUFBSSxDQUFDTyxtQkFBTCxDQUF5QixZQUF6QixFQUF1Q0gsVUFBdkM7QUFDQUosVUFBQUEsSUFBSSxDQUFDTyxtQkFBTCxDQUF5QixZQUF6QixFQUF1Q0YsVUFBdkM7QUFDRDs7QUFFRDlCLFFBQUFBLE9BQU8sQ0FBQ2dDLG1CQUFSLENBQTRCLE9BQTVCLEVBQXFDTCxLQUFyQztBQUNELE9BUkg7QUFTRU0sTUFBQUEsS0FBSyxFQUFFLGlCQUFNO0FBQ1hqQyxRQUFBQSxPQUFPLENBQUNjLFlBQVIsQ0FBcUIsZUFBckIsRUFBc0MsS0FBdEM7QUFDQUwsUUFBQUEsS0FBSyxDQUFDTixTQUFOLENBQWdCUyxPQUFoQixDQUF3QixTQUF4QixFQUFtQyxXQUFuQztBQUNEO0FBWkgsS0FESyxDQUFQO0FBZ0JELEdBbENJLEVBbUNKc0IsSUFuQ0ksRUFBUDtBQW9DRCxDQS9HRDs7QUFpSEEsaUVBQWVsRCxjQUFmLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvLi9zcmMvY29yZS9kb20tcXVlcnkuanMiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS8uL3NyYy9jb3JlL01lZ2FuYXZDb250cm9sL2NvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJBYmx5VWlcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiQWJseVVpXCJdID0gcm9vdFtcIkFibHlVaVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl0gPSByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl1bXCJNZWdhbmF2Q29udHJvbFwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsICgpID0+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})()}));
|