@ably/ui 8.7.0-dev.7021bee → 8.7.0-dev.7072b07
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.
- package/README.md +15 -4
- package/core/.DS_Store +0 -0
- package/core/Code/component.css +2 -0
- package/core/Code/component.js +739 -1
- package/core/Code.jsx +557 -410
- package/core/CompanyAutocomplete/component.css +2 -0
- package/core/CompanyAutocomplete/component.js +1161 -1
- package/core/ConnectStateWrapper/component.js +22 -1
- package/core/ConnectStateWrapper.jsx +29 -15
- package/core/ContactFooter/component.css +2 -0
- package/core/ContactFooter/component.js +211 -1
- package/core/ContactFooter.jsx +221 -144
- package/core/CookieMessage/component.css +2 -0
- package/core/CookieMessage/component.js +82 -1
- package/core/CookieMessage.jsx +62 -45
- package/core/CustomerLogos/component.js +22 -1
- package/core/CustomerLogos.jsx +16 -7
- package/core/DropdownMenu/component.js +22 -1
- package/core/DropdownMenu.jsx +26 -13
- package/core/FeatureFooter/component.css +2 -0
- package/core/FeatureFooter/component.js +211 -1
- package/core/FeaturedLink/component.css +2 -0
- package/core/FeaturedLink/component.js +82 -1
- package/core/FeaturedLink.jsx +25 -12
- package/core/Flash/component.css +2 -0
- package/core/Flash/component.js +82 -1
- package/core/Flash.jsx +132 -104
- package/core/Footer/component.css +23 -1
- package/core/Footer/component.js +82 -1
- package/core/Footer.jsx +307 -203
- package/core/Icon/component.js +22 -1
- package/core/Icon.jsx +16 -7
- package/core/Loader/component.js +22 -1
- package/core/Loader.jsx +16 -7
- package/core/Logo/component.js +22 -1
- package/core/Logo.jsx +16 -7
- package/core/Meganav/component.css +3 -3
- package/core/Meganav/component.js +992 -1
- package/core/Meganav/component.json +2 -2
- package/core/Meganav.jsx +2702 -2361
- package/core/MeganavBlogPostsList/component.js +1159 -1
- package/core/MeganavBlogPostsList.jsx +34 -17
- package/core/MeganavContentCompany/component.js +22 -1
- package/core/MeganavContentCompany.jsx +293 -216
- package/core/MeganavContentDevelopers/component.js +22 -1
- package/core/MeganavContentDevelopers.jsx +68 -30
- package/core/MeganavContentPlatform/component.js +1 -1
- package/core/MeganavContentPlatform.jsx +26 -50
- package/core/MeganavContentProducts/component.js +22 -0
- package/core/MeganavContentProducts.jsx +350 -0
- package/core/MeganavContentUseCases/component.js +22 -1
- package/core/MeganavContentUseCases.jsx +77 -56
- package/core/MeganavControl/component.js +241 -1
- package/core/MeganavControl.jsx +25 -12
- package/core/MeganavControlMobileDropdown/component.js +180 -1
- package/core/MeganavControlMobileDropdown.jsx +26 -13
- package/core/MeganavControlMobilePanelClose/component.js +142 -1
- package/core/MeganavControlMobilePanelClose.jsx +25 -12
- package/core/MeganavControlMobilePanelOpen/component.js +170 -1
- package/core/MeganavControlMobilePanelOpen.jsx +25 -12
- package/core/MeganavItemsDesktop/component.js +22 -1
- package/core/MeganavItemsDesktop.jsx +42 -22
- package/core/MeganavItemsMobile/component.js +22 -1
- package/core/MeganavItemsMobile.jsx +104 -60
- package/core/MeganavItemsSignedIn/component.js +22 -1
- package/core/MeganavItemsSignedIn.jsx +93 -52
- package/core/MeganavSearch/component.js +22 -1
- package/core/MeganavSearch.jsx +64 -35
- package/core/MeganavSearchAutocomplete/component.js +295 -1
- package/core/MeganavSearchAutocomplete.jsx +10 -4
- package/core/MeganavSearchPanel/component.js +22 -1
- package/core/MeganavSearchPanel.jsx +53 -28
- package/core/MeganavSearchSuggestions/component.js +258 -1
- package/core/MeganavSearchSuggestions.jsx +34 -17
- package/core/Notice/component.css +2 -0
- package/core/Notice/component.js +872 -1
- package/core/Notice.jsx +380 -310
- package/core/Showcase/component.css +2 -0
- package/core/Showcase/component.js +343 -1
- package/core/Showcase.jsx +4 -1
- package/core/SignOutLink/component.js +22 -1
- package/core/SignOutLink.jsx +16 -7
- package/core/Slider/component.css +2 -0
- package/core/Slider/component.js +255 -1
- package/core/Slider.jsx +208 -156
- package/core/Uptime/component.css +2 -0
- package/core/Uptime/component.js +82 -1
- package/core/Uptime.jsx +46 -23
- package/core/images/best-support-2023.svg +1 -0
- package/core/images/fastest-implementation-2023.svg +1 -0
- package/core/images/high-performer-2022.png +0 -0
- package/core/images/high-performer-2023.svg +1 -0
- package/core/images/highest-user-adoption-2022.png +0 -0
- package/core/images/highest-user-adoption-2023.svg +1 -0
- package/core/images/users-love-us-2022.png +0 -0
- package/core/scripts.js +1465 -1
- package/core/sprites.svg +99 -0
- package/core/styles.css +3 -7
- package/package.json +5 -3
- package/reset/scripts.js +1 -1
- package/reset/styles.css +1 -11
- package/src/.DS_Store +0 -0
- package/src/core/.DS_Store +0 -0
- package/src/core/Flash/component.jsx +0 -2
- package/src/core/Footer/component.css +21 -1
- package/src/core/Footer/component.html.erb +120 -63
- package/src/core/Footer/component.jsx +128 -61
- package/src/core/Meganav/component.css +1 -1
- package/src/core/Meganav/component.json +2 -2
- package/src/core/Meganav/component.jsx +2 -2
- package/src/core/Meganav/component.rb +6 -6
- package/src/core/MeganavContentCompany/component.html.erb +9 -0
- package/src/core/MeganavContentCompany/component.jsx +9 -0
- package/src/core/MeganavContentDevelopers/component.html.erb +30 -14
- package/src/core/MeganavContentDevelopers/component.jsx +32 -13
- package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.html.erb +15 -33
- package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.jsx +18 -39
- package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.rb +1 -1
- package/src/core/MeganavContentUseCases/component.html.erb +42 -38
- package/src/core/MeganavContentUseCases/component.jsx +41 -38
- package/src/core/MeganavItemsDesktop/component.jsx +1 -1
- package/src/core/MeganavItemsDesktop/component.rb +1 -1
- package/src/core/core.rb +12 -4
- package/src/core/icons/icon-display-asset-tracking-col.svg +18 -0
- package/src/core/icons/icon-display-chat-col.svg +4 -0
- package/src/core/icons/icon-display-data-broadcast-col.svg +26 -0
- package/src/core/icons/icon-display-data-synchronization-col.svg +14 -0
- package/src/core/icons/icon-display-events-col.svg +13 -0
- package/src/core/icons/icon-display-examples-col.svg +11 -0
- package/src/core/icons/icon-display-kafka-at-the-edge-col.svg +8 -0
- package/src/core/icons/icon-display-push-notifications-col.svg +6 -0
- package/src/core/icons/icon-gui-check-circled-fill-black.svg +4 -0
- package/src/core/icons/icon-social-x.svg +3 -0
- package/src/core/icons/icon-tech-apachekafka.svg +3 -0
- package/src/core/images/best-support-2023.svg +1 -0
- package/src/core/images/fastest-implementation-2023.svg +1 -0
- package/src/core/images/high-performer-2022.png +0 -0
- package/src/core/images/high-performer-2023.svg +1 -0
- package/src/core/images/highest-user-adoption-2022.png +0 -0
- package/src/core/images/highest-user-adoption-2023.svg +1 -0
- package/src/core/images/users-love-us-2022.png +0 -0
- package/src/core/styles/text.css +1 -1
- package/src/core/utils/syntax-highlighter-registry.js +2 -0
- package/src/core/utils/syntax-highlighter.js +5 -0
- package/tailwind.config.js +1 -0
- package/core/Meganav/component.js.LICENSE.txt +0 -7
- package/core/MeganavContentWhyAbly/component.js +0 -6
- package/core/MeganavContentWhyAbly.jsx +0 -6
- package/core/MeganavSearchAutocomplete/component.js.LICENSE.txt +0 -7
- package/core/Notice/component.js.LICENSE.txt +0 -9
- package/core/fonts/.DS_Store +0 -0
- package/core/images/.DS_Store +0 -0
- package/core/scripts.js.LICENSE.txt +0 -32
- package/preview/vendor/bundle/ruby/3.0.0/bundler/gems/ably-ui-abffd210ec0f/preview/log/.keep +0 -0
- package/preview/vendor/bundle/ruby/3.0.0/bundler/gems/ably-ui-abffd210ec0f/preview/tmp/.keep +0 -0
- package/preview/vendor/bundle/ruby/3.0.0/bundler/gems/ably-ui-abffd210ec0f/preview/tmp/pids/.keep +0 -0
- package/src/core/fonts/.DS_Store +0 -0
- package/src/core/images/.DS_Store +0 -0
- package/src/reset/.DS_Store +0 -0
- /package/src/core/{MeganavContentPlatform → MeganavContentProducts}/component.js +0 -0
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define([], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["AblyUi"] = factory();
|
|
8
|
+
else
|
|
9
|
+
root["AblyUi"] = root["AblyUi"] || {}, root["AblyUi"]["Core"] = root["AblyUi"]["Core"] || {}, root["AblyUi"]["Core"]["ConnectStateWrapper"] = factory();
|
|
10
|
+
})(this, () => {
|
|
11
|
+
return /******/ (() => { // webpackBootstrap
|
|
12
|
+
var __webpack_exports__ = {};
|
|
13
|
+
/*!***************************************************!*\
|
|
14
|
+
!*** ./src/core/ConnectStateWrapper/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9Db25uZWN0U3RhdGVXcmFwcGVyL2NvbXBvbmVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLHVEQUF1RDtBQUM5RixDQUFDO0FBQ0QsTyIsInNvdXJjZXMiOlsid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJBYmx5VWlcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiQWJseVVpXCJdID0gcm9vdFtcIkFibHlVaVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl0gPSByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSB8fCB7fSwgcm9vdFtcIkFibHlVaVwiXVtcIkNvcmVcIl1bXCJDb25uZWN0U3RhdGVXcmFwcGVyXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgKCkgPT4ge1xucmV0dXJuICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==
|
|
@@ -7,20 +7,25 @@
|
|
|
7
7
|
var a = typeof exports === 'object' ? factory(require("react"), require("redux")) : factory(root[undefined], root[undefined]);
|
|
8
8
|
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
|
9
9
|
}
|
|
10
|
-
})(this,
|
|
10
|
+
})(this, (__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_redux__) => {
|
|
11
11
|
return /******/ (() => { // webpackBootstrap
|
|
12
12
|
/******/ "use strict";
|
|
13
13
|
/******/ var __webpack_modules__ = ({
|
|
14
14
|
|
|
15
|
-
/***/
|
|
15
|
+
/***/ "./src/core/remote-data-store.js":
|
|
16
|
+
/*!***************************************!*\
|
|
17
|
+
!*** ./src/core/remote-data-store.js ***!
|
|
18
|
+
\***************************************/
|
|
16
19
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
17
20
|
|
|
21
|
+
__webpack_require__.r(__webpack_exports__);
|
|
18
22
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
19
|
-
/* harmony export */ "
|
|
20
|
-
/* harmony export */ "
|
|
23
|
+
/* harmony export */ "attachStoreToWindow": () => (/* binding */ attachStoreToWindow),
|
|
24
|
+
/* harmony export */ "connectState": () => (/* binding */ connectState),
|
|
25
|
+
/* harmony export */ "createRemoteDataStore": () => (/* binding */ createRemoteDataStore),
|
|
26
|
+
/* harmony export */ "getRemoteDataStore": () => (/* binding */ getRemoteDataStore)
|
|
21
27
|
/* harmony export */ });
|
|
22
|
-
/*
|
|
23
|
-
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5044);
|
|
28
|
+
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! redux */ "redux");
|
|
24
29
|
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(redux__WEBPACK_IMPORTED_MODULE_0__);
|
|
25
30
|
|
|
26
31
|
var attachStoreToWindow = function attachStoreToWindow(store) {
|
|
@@ -49,22 +54,28 @@ var connectState = function connectState(selector, setState) {
|
|
|
49
54
|
});
|
|
50
55
|
};
|
|
51
56
|
var createRemoteDataStore = function createRemoteDataStore(reducers) {
|
|
52
|
-
return createStore(combineReducers(reducers));
|
|
57
|
+
return (0,redux__WEBPACK_IMPORTED_MODULE_0__.createStore)((0,redux__WEBPACK_IMPORTED_MODULE_0__.combineReducers)(reducers));
|
|
53
58
|
};
|
|
54
59
|
|
|
55
60
|
/***/ }),
|
|
56
61
|
|
|
57
|
-
/***/
|
|
62
|
+
/***/ "react":
|
|
63
|
+
/*!*********************************************************!*\
|
|
64
|
+
!*** external {"commonjs":"react","commonjs2":"react"} ***!
|
|
65
|
+
\*********************************************************/
|
|
58
66
|
/***/ ((module) => {
|
|
59
67
|
|
|
60
|
-
module.exports =
|
|
68
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_react__;
|
|
61
69
|
|
|
62
70
|
/***/ }),
|
|
63
71
|
|
|
64
|
-
/***/
|
|
72
|
+
/***/ "redux":
|
|
73
|
+
/*!*********************************************************!*\
|
|
74
|
+
!*** external {"commonjs":"redux","commonjs2":"redux"} ***!
|
|
75
|
+
\*********************************************************/
|
|
65
76
|
/***/ ((module) => {
|
|
66
77
|
|
|
67
|
-
module.exports =
|
|
78
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_redux__;
|
|
68
79
|
|
|
69
80
|
/***/ })
|
|
70
81
|
|
|
@@ -139,14 +150,17 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__5044__;
|
|
|
139
150
|
var __webpack_exports__ = {};
|
|
140
151
|
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
141
152
|
(() => {
|
|
153
|
+
/*!****************************************************!*\
|
|
154
|
+
!*** ./src/core/ConnectStateWrapper/component.jsx ***!
|
|
155
|
+
\****************************************************/
|
|
142
156
|
__webpack_require__.r(__webpack_exports__);
|
|
143
157
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
144
158
|
/* harmony export */ "ConnectStateWrapper": () => (/* binding */ ConnectStateWrapper),
|
|
145
159
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
146
160
|
/* harmony export */ });
|
|
147
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
161
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
148
162
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
149
|
-
/* harmony import */ var _remote_data_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
163
|
+
/* harmony import */ var _remote_data_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../remote-data-store */ "./src/core/remote-data-store.js");
|
|
150
164
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
151
165
|
|
|
152
166
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -194,7 +208,7 @@ var ConnectStateWrapper = function ConnectStateWrapper(Component, selectors) {
|
|
|
194
208
|
};
|
|
195
209
|
|
|
196
210
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
197
|
-
var store = (0,_remote_data_store__WEBPACK_IMPORTED_MODULE_1__
|
|
211
|
+
var store = (0,_remote_data_store__WEBPACK_IMPORTED_MODULE_1__.getRemoteDataStore)();
|
|
198
212
|
var resolvedState = Object.keys(selectors).reduce(function (acc, key) {
|
|
199
213
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, selectors[key](store)));
|
|
200
214
|
}, {}); // Set initial state
|
|
@@ -203,7 +217,7 @@ var ConnectStateWrapper = function ConnectStateWrapper(Component, selectors) {
|
|
|
203
217
|
// When optimising for renders, look for wins with selectors better for your use and using connectState directly.
|
|
204
218
|
|
|
205
219
|
Object.keys(selectors).forEach(function (key) {
|
|
206
|
-
(0,_remote_data_store__WEBPACK_IMPORTED_MODULE_1__
|
|
220
|
+
(0,_remote_data_store__WEBPACK_IMPORTED_MODULE_1__.connectState)(selectors[key], setStateForKey(key));
|
|
207
221
|
});
|
|
208
222
|
}, []);
|
|
209
223
|
|
|
@@ -10,3 +10,5 @@
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
|
|
14
|
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS9Db250YWN0Rm9vdGVyL2NvbXBvbmVudC5jc3MiLCJtYXBwaW5ncyI6IkFBQUE7RUFDRTtJQUNFLDBCQUEwQjtJQUMxQixpQ0FBaUM7SUFDakMsdUNBQXVDO0VBQ3pDOztFQUVBO0lBQ0UsNkVBQTZFO0VBQy9FO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS8uL3NyYy9jb3JlL0NvbnRhY3RGb290ZXIvY29tcG9uZW50LmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAbGF5ZXIgY29tcG9uZW50cyB7XG4gIC51aS1jb250YWN0LWZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xuICAgIEBhcHBseSB3LWZ1bGwgYmctZ3JhZGllbnQtYWN0aXZlLW9yYW5nZTtcbiAgfVxuXG4gIC51aS1jb250YWN0LWZvb3Rlci1ib3gge1xuICAgIEBhcHBseSBwLTI0IHNtOnAtMzIgeGw6cC00MCBiZy13aGl0ZSBmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiByb3VuZGVkLXNtO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/
|
|
@@ -1 +1,211 @@
|
|
|
1
|
-
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define([], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["AblyUi"] = factory();
|
|
8
|
+
else
|
|
9
|
+
root["AblyUi"] = root["AblyUi"] || {}, root["AblyUi"]["Core"] = root["AblyUi"]["Core"] || {}, root["AblyUi"]["Core"]["ContactFooter"] = 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
|
+
/***/ "./src/core/hubspot-chat-toggle.js":
|
|
38
|
+
/*!*****************************************!*\
|
|
39
|
+
!*** ./src/core/hubspot-chat-toggle.js ***!
|
|
40
|
+
\*****************************************/
|
|
41
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
42
|
+
|
|
43
|
+
__webpack_require__.r(__webpack_exports__);
|
|
44
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
45
|
+
/* harmony export */ "default": () => (/* binding */ toggleChatWidget)
|
|
46
|
+
/* harmony export */ });
|
|
47
|
+
/* harmony import */ var _dom_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-query */ "./src/core/dom-query.js");
|
|
48
|
+
|
|
49
|
+
/*
|
|
50
|
+
A method to enable/disable a CTA that
|
|
51
|
+
is used to open the HubSpot chat widget
|
|
52
|
+
|
|
53
|
+
If the Chat widget is unavailable this script
|
|
54
|
+
will apply a disabled property and change
|
|
55
|
+
the text on the button, to warn the user.
|
|
56
|
+
|
|
57
|
+
Params:
|
|
58
|
+
- dataId the parent container data-id
|
|
59
|
+
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
function enableBtn(el, text) {
|
|
63
|
+
el.disabled = false;
|
|
64
|
+
el.innerText = text;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function disableBtn(el, text) {
|
|
68
|
+
el.disabled = true;
|
|
69
|
+
el.innerText = text;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
var WAIT_BETWEEN_RETRIES_MS = 100;
|
|
73
|
+
var MAX_RETRY_COUNT = 30;
|
|
74
|
+
function toggleChatWidget() {
|
|
75
|
+
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
76
|
+
var dataId = params.dataId;
|
|
77
|
+
var container = (0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryId)(dataId);
|
|
78
|
+
var chatButton = (0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryId)("open-chat-widget", container);
|
|
79
|
+
var textEnabled = chatButton.dataset.enabledLabel;
|
|
80
|
+
var textDisabled = chatButton.dataset.disabledLabel;
|
|
81
|
+
if (!dataId || !container) return;
|
|
82
|
+
var trigger = (0,_dom_query__WEBPACK_IMPORTED_MODULE_0__.queryId)("open-chat-widget", container);
|
|
83
|
+
var clickHandler;
|
|
84
|
+
|
|
85
|
+
var waitForScript = function waitForScript(delay) {
|
|
86
|
+
var _window, _window$HubSpotConver;
|
|
87
|
+
|
|
88
|
+
var widget = (_window = window) === null || _window === void 0 ? void 0 : (_window$HubSpotConver = _window.HubSpotConversations) === null || _window$HubSpotConver === void 0 ? void 0 : _window$HubSpotConver.widget; // If the chat is set to be hidden out of hours this will return null
|
|
89
|
+
|
|
90
|
+
var iframe = document.querySelector("#hubspot-messages-iframe-container");
|
|
91
|
+
|
|
92
|
+
clickHandler = function clickHandler(e) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
widget.open();
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
if (widget && iframe) {
|
|
98
|
+
trigger.addEventListener("click", clickHandler);
|
|
99
|
+
enableBtn(trigger, textEnabled);
|
|
100
|
+
} else if (--MAX_RETRY_COUNT) {
|
|
101
|
+
setTimeout(function () {
|
|
102
|
+
return waitForScript(WAIT_BETWEEN_RETRIES_MS);
|
|
103
|
+
}, delay);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
disableBtn(trigger, textDisabled);
|
|
108
|
+
waitForScript(0);
|
|
109
|
+
return function () {
|
|
110
|
+
disableBtn(trigger, textDisabled);
|
|
111
|
+
trigger.removeEventListener("click", clickHandler);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/***/ }),
|
|
116
|
+
|
|
117
|
+
/***/ "./src/core/ContactFooter/component.css":
|
|
118
|
+
/*!**********************************************!*\
|
|
119
|
+
!*** ./src/core/ContactFooter/component.css ***!
|
|
120
|
+
\**********************************************/
|
|
121
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
122
|
+
|
|
123
|
+
__webpack_require__.r(__webpack_exports__);
|
|
124
|
+
// extracted by mini-css-extract-plugin
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
/***/ })
|
|
128
|
+
|
|
129
|
+
/******/ });
|
|
130
|
+
/************************************************************************/
|
|
131
|
+
/******/ // The module cache
|
|
132
|
+
/******/ var __webpack_module_cache__ = {};
|
|
133
|
+
/******/
|
|
134
|
+
/******/ // The require function
|
|
135
|
+
/******/ function __webpack_require__(moduleId) {
|
|
136
|
+
/******/ // Check if module is in cache
|
|
137
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
138
|
+
/******/ if (cachedModule !== undefined) {
|
|
139
|
+
/******/ return cachedModule.exports;
|
|
140
|
+
/******/ }
|
|
141
|
+
/******/ // Create a new module (and put it into the cache)
|
|
142
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
143
|
+
/******/ // no module.id needed
|
|
144
|
+
/******/ // no module.loaded needed
|
|
145
|
+
/******/ exports: {}
|
|
146
|
+
/******/ };
|
|
147
|
+
/******/
|
|
148
|
+
/******/ // Execute the module function
|
|
149
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
150
|
+
/******/
|
|
151
|
+
/******/ // Return the exports of the module
|
|
152
|
+
/******/ return module.exports;
|
|
153
|
+
/******/ }
|
|
154
|
+
/******/
|
|
155
|
+
/************************************************************************/
|
|
156
|
+
/******/ /* webpack/runtime/define property getters */
|
|
157
|
+
/******/ (() => {
|
|
158
|
+
/******/ // define getter functions for harmony exports
|
|
159
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
160
|
+
/******/ for(var key in definition) {
|
|
161
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
162
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
163
|
+
/******/ }
|
|
164
|
+
/******/ }
|
|
165
|
+
/******/ };
|
|
166
|
+
/******/ })();
|
|
167
|
+
/******/
|
|
168
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
169
|
+
/******/ (() => {
|
|
170
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
171
|
+
/******/ })();
|
|
172
|
+
/******/
|
|
173
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
174
|
+
/******/ (() => {
|
|
175
|
+
/******/ // define __esModule on exports
|
|
176
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
177
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
178
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
179
|
+
/******/ }
|
|
180
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
181
|
+
/******/ };
|
|
182
|
+
/******/ })();
|
|
183
|
+
/******/
|
|
184
|
+
/************************************************************************/
|
|
185
|
+
var __webpack_exports__ = {};
|
|
186
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
187
|
+
(() => {
|
|
188
|
+
/*!*********************************************!*\
|
|
189
|
+
!*** ./src/core/ContactFooter/component.js ***!
|
|
190
|
+
\*********************************************/
|
|
191
|
+
__webpack_require__.r(__webpack_exports__);
|
|
192
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
193
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
194
|
+
/* harmony export */ });
|
|
195
|
+
/* harmony import */ var _component_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component.css */ "./src/core/ContactFooter/component.css");
|
|
196
|
+
/* harmony import */ var _hubspot_chat_toggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../hubspot-chat-toggle */ "./src/core/hubspot-chat-toggle.js");
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
|
|
200
|
+
return (0,_hubspot_chat_toggle__WEBPACK_IMPORTED_MODULE_1__["default"])({
|
|
201
|
+
dataId: "contact-footer"
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
})();
|
|
205
|
+
|
|
206
|
+
__webpack_exports__ = __webpack_exports__["default"];
|
|
207
|
+
/******/ return __webpack_exports__;
|
|
208
|
+
/******/ })()
|
|
209
|
+
;
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0Q7QUFDRixHQWpCRDs7QUFtQkFoQixFQUFBQSxVQUFVLENBQUNhLE9BQUQsRUFBVUYsWUFBVixDQUFWO0FBQ0FJLEVBQUFBLGFBQWEsQ0FBQyxDQUFELENBQWI7QUFFQSxTQUFPLFlBQU07QUFDWGYsSUFBQUEsVUFBVSxDQUFDYSxPQUFELEVBQVVGLFlBQVYsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLENBQUNhLG1CQUFSLENBQTRCLE9BQTVCLEVBQXFDWixZQUFyQztBQUNELEdBSEQ7QUFJRDs7Ozs7Ozs7Ozs7QUNsRUQ7Ozs7Ozs7VUNBQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7OztXQ3RCQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLHlDQUF5Qyx3Q0FBd0M7V0FDakY7V0FDQTtXQUNBOzs7OztXQ1BBOzs7OztXQ0FBO1dBQ0E7V0FDQTtXQUNBLHVEQUF1RCxpQkFBaUI7V0FDeEU7V0FDQSxnREFBZ0QsYUFBYTtXQUM3RDs7Ozs7Ozs7Ozs7Ozs7OztBQ05BO0FBQ0E7QUFDQSxpRUFBZTtBQUFBLFNBQU1YLGdFQUFnQixDQUFDO0FBQUVFLElBQUFBLE1BQU0sRUFBRTtBQUFWLEdBQUQsQ0FBdEI7QUFBQSxDQUFmLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvLi9zcmMvY29yZS9kb20tcXVlcnkuanMiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvLi9zcmMvY29yZS9odWJzcG90LWNoYXQtdG9nZ2xlLmpzIiwid2VicGFjazovL0FibHlVaS5Db3JlLy4vc3JjL2NvcmUvQ29udGFjdEZvb3Rlci9jb21wb25lbnQuY3NzPzU1ODUiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0FibHlVaS5Db3JlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQWJseVVpLkNvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9BYmx5VWkuQ29yZS8uL3NyYy9jb3JlL0NvbnRhY3RGb290ZXIvY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkFibHlVaVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJBYmx5VWlcIl0gPSByb290W1wiQWJseVVpXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXSA9IHJvb3RbXCJBYmx5VWlcIl1bXCJDb3JlXCJdIHx8IHt9LCByb290W1wiQWJseVVpXCJdW1wiQ29yZVwiXVtcIkNvbnRhY3RGb290ZXJcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwiZXhwb3J0IGNvbnN0IHF1ZXJ5SWQgPSAodmFsLCByb290ID0gZG9jdW1lbnQpID0+XG4gIHJvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtaWQ9JHt2YWx9XWApO1xuXG5leHBvcnQgY29uc3QgcXVlcnlJZEFsbCA9ICh2YWwsIHJvb3QgPSBkb2N1bWVudCkgPT5cbiAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKGBbZGF0YS1pZD0ke3ZhbH1dYCk7XG4iLCJpbXBvcnQgeyBxdWVyeUlkIH0gZnJvbSBcIi4vZG9tLXF1ZXJ5XCI7XG5cbi8qXG4gICAgQSBtZXRob2QgdG8gZW5hYmxlL2Rpc2FibGUgYSBDVEEgdGhhdFxuICAgIGlzIHVzZWQgdG8gb3BlbiB0aGUgSHViU3BvdCBjaGF0IHdpZGdldFxuXG4gICAgSWYgdGhlIENoYXQgd2lkZ2V0IGlzIHVuYXZhaWxhYmxlIHRoaXMgc2NyaXB0XG4gICAgd2lsbCBhcHBseSBhIGRpc2FibGVkIHByb3BlcnR5IGFuZCBjaGFuZ2VcbiAgICB0aGUgdGV4dCBvbiB0aGUgYnV0dG9uLCB0byB3YXJuIHRoZSB1c2VyLlxuXG4gICAgUGFyYW1zOlxuICAgIC0gZGF0YUlkICAgICAgICB0aGUgcGFyZW50IGNvbnRhaW5lciBkYXRhLWlkXG5cbiovXG5cbmZ1bmN0aW9uIGVuYWJsZUJ0bihlbCwgdGV4dCkge1xuICBlbC5kaXNhYmxlZCA9IGZhbHNlO1xuICBlbC5pbm5lclRleHQgPSB0ZXh0O1xufVxuXG5mdW5jdGlvbiBkaXNhYmxlQnRuKGVsLCB0ZXh0KSB7XG4gIGVsLmRpc2FibGVkID0gdHJ1ZTtcbiAgZWwuaW5uZXJUZXh0ID0gdGV4dDtcbn1cblxuY29uc3QgV0FJVF9CRVRXRUVOX1JFVFJJRVNfTVMgPSAxMDA7XG5sZXQgTUFYX1JFVFJZX0NPVU5UID0gMzA7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvZ2dsZUNoYXRXaWRnZXQocGFyYW1zID0ge30pIHtcbiAgY29uc3QgeyBkYXRhSWQgfSA9IHBhcmFtcztcbiAgY29uc3QgY29udGFpbmVyID0gcXVlcnlJZChkYXRhSWQpO1xuICBjb25zdCBjaGF0QnV0dG9uID0gcXVlcnlJZChcIm9wZW4tY2hhdC13aWRnZXRcIiwgY29udGFpbmVyKTtcbiAgY29uc3QgdGV4dEVuYWJsZWQgPSBjaGF0QnV0dG9uLmRhdGFzZXQuZW5hYmxlZExhYmVsO1xuICBjb25zdCB0ZXh0RGlzYWJsZWQgPSBjaGF0QnV0dG9uLmRhdGFzZXQuZGlzYWJsZWRMYWJlbDtcblxuICBpZiAoIWRhdGFJZCB8fCAhY29udGFpbmVyKSByZXR1cm47XG4gIGNvbnN0IHRyaWdnZXIgPSBxdWVyeUlkKFwib3Blbi1jaGF0LXdpZGdldFwiLCBjb250YWluZXIpO1xuXG4gIGxldCBjbGlja0hhbmRsZXI7XG5cbiAgY29uc3Qgd2FpdEZvclNjcmlwdCA9IChkZWxheSkgPT4ge1xuICAgIGNvbnN0IHdpZGdldCA9IHdpbmRvdz8uSHViU3BvdENvbnZlcnNhdGlvbnM/LndpZGdldDtcblxuICAgIC8vIElmIHRoZSBjaGF0IGlzIHNldCB0byBiZSBoaWRkZW4gb3V0IG9mIGhvdXJzIHRoaXMgd2lsbCByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjaHVic3BvdC1tZXNzYWdlcy1pZnJhbWUtY29udGFpbmVyXCIpO1xuXG4gICAgY2xpY2tIYW5kbGVyID0gKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHdpZGdldC5vcGVuKCk7XG4gICAgfTtcblxuICAgIGlmICh3aWRnZXQgJiYgaWZyYW1lKSB7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGlja0hhbmRsZXIpO1xuICAgICAgZW5hYmxlQnRuKHRyaWdnZXIsIHRleHRFbmFibGVkKTtcbiAgICB9IGVsc2UgaWYgKC0tTUFYX1JFVFJZX0NPVU5UKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHdhaXRGb3JTY3JpcHQoV0FJVF9CRVRXRUVOX1JFVFJJRVNfTVMpLCBkZWxheSk7XG4gICAgfVxuICB9O1xuXG4gIGRpc2FibGVCdG4odHJpZ2dlciwgdGV4dERpc2FibGVkKTtcbiAgd2FpdEZvclNjcmlwdCgwKTtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGRpc2FibGVCdG4odHJpZ2dlciwgdGV4dERpc2FibGVkKTtcbiAgICB0cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGlja0hhbmRsZXIpO1xuICB9O1xufVxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJpbXBvcnQgXCIuL2NvbXBvbmVudC5jc3NcIjtcbmltcG9ydCB0b2dnbGVDaGF0V2lkZ2V0IGZyb20gXCIuLi9odWJzcG90LWNoYXQtdG9nZ2xlXCI7XG5leHBvcnQgZGVmYXVsdCAoKSA9PiB0b2dnbGVDaGF0V2lkZ2V0KHsgZGF0YUlkOiBcImNvbnRhY3QtZm9vdGVyXCIgfSk7XG4iXSwibmFtZXMiOlsicXVlcnlJZCIsInZhbCIsInJvb3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeUlkQWxsIiwicXVlcnlTZWxlY3RvckFsbCIsImVuYWJsZUJ0biIsImVsIiwidGV4dCIsImRpc2FibGVkIiwiaW5uZXJUZXh0IiwiZGlzYWJsZUJ0biIsIldBSVRfQkVUV0VFTl9SRVRSSUVTX01TIiwiTUFYX1JFVFJZX0NPVU5UIiwidG9nZ2xlQ2hhdFdpZGdldCIsInBhcmFtcyIsImRhdGFJZCIsImNvbnRhaW5lciIsImNoYXRCdXR0b24iLCJ0ZXh0RW5hYmxlZCIsImRhdGFzZXQiLCJlbmFibGVkTGFiZWwiLCJ0ZXh0RGlzYWJsZWQiLCJkaXNhYmxlZExhYmVsIiwidHJpZ2dlciIsImNsaWNrSGFuZGxlciIsIndhaXRGb3JTY3JpcHQiLCJkZWxheSIsIndpZGdldCIsIndpbmRvdyIsIkh1YlNwb3RDb252ZXJzYXRpb25zIiwiaWZyYW1lIiwiZSIsInByZXZlbnREZWZhdWx0Iiwib3BlbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRUaW1lb3V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=
|