diff --git a/css/main.css b/css/main.css index 7902795c..61fe29b1 100644 --- a/css/main.css +++ b/css/main.css @@ -101,9 +101,18 @@ +@keyframes open-window { + from { + transform: scale(0.9); + } + to { + transform: none; + } +} .floating-window { + animation: open-window 200ms ease; min-width: 200px; min-height: 300px; box-shadow: 0 2px 10px 0 rgba(0,0,0,.2); @@ -111,6 +120,14 @@ flex-direction: column; -webkit-app-region: no-drag; position: fixed; + z-index: 1001; +} + +.floating-window.resizable { + overflow: auto; + resize: both; + padding-bottom: 10px; + background: #202225; } .floating-window-titlebar { @@ -118,9 +135,8 @@ display: flex; justify-content: space-between; align-items: center; - background: #2F3129;/*#2F3129*/ + background: #202225;/*#2F3129background-color: #202225;*/ color: white; - padding: 2px 0; border-bottom: 1px solid #272822; } @@ -135,21 +151,24 @@ /* font-weight: bold; */ flex: 1; text-align: center; -} - -.floating-window-buttons { - float: right; + padding: 2px 0; } .floating-window-buttons .button { cursor: pointer; + padding: 0 2px; } -.theme-no-transform { - transform: none!important; - left: unset!important; - top: unset!important; - margin: 0!important; +.floating-window-buttons .close-button svg { + margin-top: 1.5px; +} + +.floating-window-buttons .close-button:hover { + background-color: #f04747; +} + +.floating-window-buttons .close-button:hover svg path.fill { + fill: white; } @@ -176,9 +195,9 @@ flex: 1; } -.floating-window #bd-customcss-attach-controls { +.floating-window #bd-editor-controls { height: auto; - background: #272822; + background: #202225; border: none; box-shadow: 0px 1px 0px 0px #2F3129 inset; } @@ -706,197 +725,106 @@ color: #f6f6f7; /* BEGIN CSS EDITOR */ /* ================ */ -.standardSidebarView-3F1I7i #bd-customcss-attach-controls button, -.bd-detached-css-editor #bd-customcss-attach-controls button { - margin: 0; - width: 100px; - background: #2F3129; +#bd-editor-panel { + display: flex; + flex-direction: column; +} + +#bd-editor-controls button { + margin: 0 5px 0 0; + background: none; color: #FFF; height: 26px; font-weight: 600; - margin-top: 5px; border-radius: 3px; + display: flex; + align-items: center; } -.standardSidebarView-3F1I7i #bd-customcss-attach-controls button:hover, -.bd-detached-css-editor #bd-customcss-attach-controls button:hover { - background: rgb(59,61,51); +#bd-editor-controls button:hover { + background: rgba(255,255,255,0.05); } -.contentRegion-3nDuYy #bd-customcss-attach-controls, -#bd-customcss-detach-container #bd-customcss-attach-controls { +#bd-editor-controls button svg { + fill: white; +} + +#bd-editor-controls button:last-of-type { + margin-right: 0; +} + +#bd-editor-controls { + display: flex; + align-items: center; + justify-content: space-between; background: #272822; color: #FFF; border: none; box-shadow: 0px 1px 0px 0px #2F3129 inset; + padding: 5px; } -.contentRegion-3nDuYy #bd-customcss-pane, -.contentRegion-3nDuYy #bd-customcss-innerpane, -#bd-customcss-detach-container #bd-customcss-pane, -#bd-customcss-detach-container #bd-customcss-innerpane { - min-height: calc(80vh - 165px); -} - -.standardSidebarView-3F1I7i #editor-detached h3 { - color: #87909c; - font-weight: 600; - font-size: 22px; -} -.standardSidebarView-3F1I7i #editor-detached button { - margin: auto; - margin-left: calc(50% - 100px); - margin-top: 20px; - background: #7289da; - color: #FFF; - font-weight: 600; - border-radius: 5px; - font-size: 20px; -} - .editor-wrapper { display: flex; } -.line-numbers, .ace_editor { +.ace_editor { line-height: normal; font-family: Consolas, monospace; box-sizing: border-box; height: calc(100vh - 250px); font-size: 14px; -} - -.line-numbers { - white-space: pre; - color: gray; - padding: 10px 5px 0 5px; - background: #24262a; - overflow: hidden; -} - -.ace_editor { width: 100%; +} + +.bd-monokai .editor .ace_gutter { + background: #2F3136; +} + +.bd-monokai .ace_editor { background: #292B2F; - outline: none; - color: white; - padding: 10px; - resize: none; } -#bd-customcss-detach-container .editor-wrapper, -#bd-customcss-detach-container .line-numbers, -#bd-customcss-detach-container .ace_editor { - height: 100%; +.bd-monokai #bd-editor-controls { + background: #202225; } -.bd-detached-editor .app-2rEoOp { - width: 70%; -} - -.bd-detached-editor #bd-customcss-detach-container { - display: block; -} - -#bd-customcss-detach-container { - display: none; - position: absolute; - width: 30%; - top: 0; - right: 0; - bottom: 0; - background-color: #36393e; -} - -#bd-customcss-detach-editor { - height: calc(100% - 87px); -} -#bd-customcss-detach-editor #bd-customcss-innerpane, #bd-customcss-detach-editor .CodeMirror { - height: 100%; -} - -#bd-customcss-detach-controls { - background: #E8E8E8; - border-top: 1px solid #ADADAD; - box-shadow: inset 0px 1px 0px 0px white; - height: 100%; - padding: 5px; -} -#bd-customcss-detach-controls .checkbox-group li { - margin-top: 5px; - display: inline-block; -} -#bd-customcss-detach-controls button { - width: 90px; - height: 30px; - margin-top: 8px; - background-color: #738bd7; - color: #fff; - font-size: 19px; -} - -#bd-customcss-detach-controls-buttons { - bottom: 5px; -} - -#editor-detached { - margin-top: 50px; -} -#editor-detached h3 { - text-align: center; - font-size: 30px; -} -#editor-detached .btn { - left: 50%; - margin-left: -100px; - margin-top: 10px; - width: 200px; - height: 60px; -} - -#bd-customcss-attach-controls { +.theme-light #bd-editor-controls { background: #E8E8E8; border: 1px solid #FFF; border-top: 1px solid #ADADAD; box-shadow: inset 0px 1px 0px 0px white; - height: 100%; - padding: 5px; -} -#bd-customcss-attach-controls .checkbox-group { - margin-bottom: 0; -} -#bd-customcss-attach-controls .checkbox-group li { - margin-top: 5px; - display: inline-block; -} -#bd-customcss-attach-controls button { - margin: 0; - width: 100px; - border-radius: 0px; - border-left: 2px solid rgb(63, 65, 70); } -#bd-customcss-attach-controls button:first-of-type { - border-radius: 3px 0px 0px 3px; - border-left: none; +.controls-section { + display: flex; + align-items: center } -#bd-customcss-attach-controls button:last-of-type { - border-radius: 0px 3px 3px 0px; +.controls-section .checkbox-inner { + width: 14px; + height: 14px; } -#bd-customcss-detach-container #bd-customcss-detach-controls-buttons button { - width: 90px; - height: 30px; - margin-top: 8px; - background-color: #738bd7; - color: #fff; - font-size: 19px; +.controls-section .checkbox-inner .checkbox:checked+span::after { + left: 2px; + top: -2px; } -#bd-customcss-attach-controls .small-notice { - font-size: 10px; - margin-left: 5px; +.controls-section .checkbox-label { + font-size: 14px; +} + + + + + +#floating-editor-window { + min-width: 340px; + min-height: 280px; + max-height: 900px; + max-width: 750px; } /* Ace Editor Settings */ @@ -929,13 +857,13 @@ body .ace_closeButton:active { } /* editor help text */ -#bd-customcss-attach-controls .help-text { +#bd-editor-controls .help-text { margin-top: 8px; margin-bottom: 3px; font-size: 14px; } -#bd-customcss-attach-controls .help-text .inline { +#bd-editor-controls .help-text .inline { background: #2F3129; padding: .2em; margin: -.2em 0; diff --git a/js/main.js b/js/main.js index de26d96e..6d3140a1 100644 --- a/js/main.js +++ b/js/main.js @@ -143,7 +143,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _str /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/customcss/csseditor */ \"./src/ui/customcss/csseditor.jsx\");\n/* harmony import */ var _ui_customcss_detached__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/customcss/detached */ \"./src/ui/customcss/detached.jsx\");\n/* harmony import */ var _ui_settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/settings/title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\n\nconst electron = __webpack_require__(/*! electron */ \"electron\");\n\nconst PopoutStack = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"open\", \"closeAll\");\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class CustomCSS extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Custom CSS\";\n }\n\n get category() {\n return \"customcss\";\n }\n\n get id() {\n return \"customcss\";\n }\n\n get startDetached() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"startDetached\");\n }\n\n get nativeOpen() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"nativeOpen\");\n }\n\n constructor() {\n super();\n this.savedCss = \"\";\n this.insertedCss = \"\";\n }\n\n async enabled() {\n if (!window.ace) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\").then(() => {\n if (window.require.original) window.require = window.require.original;\n });\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].registerPanel(this.id, this.name, {\n order: 2,\n element: () => [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: \"Custom CSS Editor\"\n }), modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n css: this.savedCss,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n openDetached: this.openDetached.bind(this)\n })],\n onClick: thisObject => {\n if (this.nativeOpen) this.openNative();else if (this.startDetached) this.openDetached();else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(this.name);\n }\n });\n this.loadCSS();\n this.insertCSS(this.savedCss);\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].removePanel(this.id);\n }\n\n loadCSS() {\n this.savedCss = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n }\n\n insertCSS(newCss) {\n if (typeof newCss === \"undefined\") newCss = this.insertedCss;else this.insertedCss = newCss;\n\n if ($(\"#customcss\").length == 0) {\n $(\"head\").append(\"\");\n }\n\n $(\"#customcss\").text(newCss).detach().appendTo(document.head);\n }\n\n saveCSS(newCss) {\n if (typeof newCss !== \"undefined\") this.savedCss = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].saveCustomCSS(this.savedCss);\n }\n\n openNative() {\n electron.shell.openExternal(`file://${modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS}`);\n }\n\n openDetached() {\n this.log(\"Should open detached\");\n PopoutStack.open({\n animationType: \"none\",\n arrowAlignment: \"top\",\n backdrop: false,\n closeOnScroll: false,\n key: this.id,\n forceTheme: \"no-transform\",\n position: \"top\",\n preventCloseFromModal: true,\n preventClickPropagation: true,\n preventCloseOnUnmount: true,\n preventInvert: false,\n render: props => {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_detached__WEBPACK_IMPORTED_MODULE_3__[\"default\"], Object.assign({}, props, {\n close: () => {\n PopoutStack.close(this.id);\n },\n isPopout: true,\n title: \"Custom CSS Editor\",\n className: \"testme\",\n id: \"test\",\n height: 400,\n width: 500,\n center: true\n }), modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n id: \"bd-floating-editor\",\n css: this.savedCss,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this)\n }));\n },\n shadow: false,\n showArrow: false,\n zIndexBoost: 0\n });\n }\n\n}()); // const test = {\n// animationType: \"default\",\n// arrowAlignment: \"top\",\n// backdrop: false,\n// clickPos: 74,\n// closeOnScroll: false,\n// containerClass: undefined,\n// dependsOn: undefined,\n// forceTheme: undefined,\n// key: \"floating-window\",\n// offsetX: 15,\n// offsetY: 0,\n// position: \"left\",\n// preventCloseFromModal: false,\n// preventClickPropagation: true,\n// preventInvert: false,\n// render: function() {\n// console.log(arguments);\n// return DiscordModules.React.createElement(\"div\", Object.assign({}, arguments[0], {className: \"testme\", id: \"test\"}));\n// },\n// shadow: false,\n// showArrow: false,\n// target: $(\"div.memberOnline-1CIh-0.member-3W1lQa.da-memberOnline.da-member\")[0],\n// targetHeight: 40,\n// targetWidth: 224,\n// x: 1211,\n// y: 357,\n// zIndexBoost: 0\n// }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcz9jM2YyIl0sIm5hbWVzIjpbImVsZWN0cm9uIiwicmVxdWlyZSIsIlBvcG91dFN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiQ3VzdG9tQ1NTIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic3RhcnREZXRhY2hlZCIsIlNldHRpbmdzIiwiZ2V0IiwiY29sbGVjdGlvbiIsIm5hdGl2ZU9wZW4iLCJjb25zdHJ1Y3RvciIsInNhdmVkQ3NzIiwiaW5zZXJ0ZWRDc3MiLCJlbmFibGVkIiwid2luZG93IiwiYWNlIiwiVXRpbGl0aWVzIiwiaW5qZWN0SnMiLCJ0aGVuIiwib3JpZ2luYWwiLCJyZWdpc3RlclBhbmVsIiwib3JkZXIiLCJlbGVtZW50IiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiQ1NTRWRpdG9yIiwiY3NzIiwic2F2ZSIsInNhdmVDU1MiLCJiaW5kIiwidXBkYXRlIiwiaW5zZXJ0Q1NTIiwib3Blbk5hdGl2ZSIsIm9wZW5EZXRhY2hlZCIsIm9uQ2xpY2siLCJ0aGlzT2JqZWN0IiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsImNoaWxkIiwibWVtb2l6ZWRQcm9wcyIsImNoaWxkcmVuIiwicHJvcHMiLCJvblNldFNlY3Rpb24iLCJsb2FkQ1NTIiwiZGlzYWJsZWQiLCJyZW1vdmVQYW5lbCIsIkRhdGFTdG9yZSIsImxvYWRDdXN0b21DU1MiLCJuZXdDc3MiLCIkIiwibGVuZ3RoIiwiYXBwZW5kIiwidGV4dCIsImRldGFjaCIsImFwcGVuZFRvIiwiZG9jdW1lbnQiLCJoZWFkIiwic2F2ZUN1c3RvbUNTUyIsInNoZWxsIiwib3BlbkV4dGVybmFsIiwiY3VzdG9tQ1NTIiwibG9nIiwib3BlbiIsImFuaW1hdGlvblR5cGUiLCJhcnJvd0FsaWdubWVudCIsImJhY2tkcm9wIiwiY2xvc2VPblNjcm9sbCIsImtleSIsImZvcmNlVGhlbWUiLCJwb3NpdGlvbiIsInByZXZlbnRDbG9zZUZyb21Nb2RhbCIsInByZXZlbnRDbGlja1Byb3BhZ2F0aW9uIiwicHJldmVudENsb3NlT25Vbm1vdW50IiwicHJldmVudEludmVydCIsInJlbmRlciIsIkZsb2F0aW5nV2luZG93IiwiT2JqZWN0IiwiYXNzaWduIiwiY2xvc2UiLCJpc1BvcG91dCIsInRpdGxlIiwiY2xhc3NOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjZW50ZXIiLCJzaGFkb3ciLCJzaG93QXJyb3ciLCJ6SW5kZXhCb29zdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUdDLG1CQUFPLENBQUMsMEJBQUQsQ0FBeEI7O0FBQ0EsTUFBTUMsV0FBVyxHQUFHQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLE1BQTFCLEVBQWtDLFVBQWxDLENBQXBCO0FBRWUsbUVBQUksTUFBTUMsU0FBTixTQUF3QkMsd0RBQXhCLENBQWdDO0FBQy9DLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sWUFBUDtBQUFxQjs7QUFDakMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxXQUFQO0FBQW9COztBQUNwQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBQzlCLE1BQUlDLGFBQUosR0FBb0I7QUFBQyxXQUFPQyxnREFBUSxDQUFDQyxHQUFULENBQWEsS0FBS0MsVUFBbEIsRUFBOEIsS0FBS0wsUUFBbkMsRUFBNkMsZUFBN0MsQ0FBUDtBQUFzRTs7QUFDM0YsTUFBSU0sVUFBSixHQUFpQjtBQUFDLFdBQU9ILGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxLQUFLQyxVQUFsQixFQUE4QixLQUFLTCxRQUFuQyxFQUE2QyxZQUE3QyxDQUFQO0FBQW1FOztBQUVyRk8sYUFBVyxHQUFHO0FBQ1Y7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEVBQWhCO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNIOztB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LFVBQUwsQ0FBZ0JILElBQWhCLENBQXFCLElBQXJCO0FBTG1CLFNBQS9CLENBVEcsQ0FBUDtBQWdCSCxPQTdCWTtBQThCYnVELFlBQU0sRUFBRSxLQTlCSztBQStCYkMsZUFBUyxFQUFFLEtBL0JFO0FBZ0NiQyxpQkFBVyxFQUFFO0FBaENBLEtBQWpCO0FBa0NIOztBQXBHOEMsQ0FBcEMsRUFBZixFLENBdUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvY3VzdG9tY3NzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge1NldHRpbmdzLCBEYXRhU3RvcmUsIFJlYWN0LCBVdGlsaXRpZXMsIFdlYnBhY2tNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ1NTRWRpdG9yIGZyb20gXCIuLi91aS9jdXN0b21jc3MvY3NzZWRpdG9yXCI7XHJcbmltcG9ydCBGbG9hdGluZ1dpbmRvdyBmcm9tIFwiLi4vdWkvY3VzdG9tY3NzL2RldGFjaGVkXCI7XHJcblxyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi4vdWkvc2V0dGluZ3MvdGl0bGVcIjtcclxuXHJcbmNvbnN0IGVsZWN0cm9uID0gcmVxdWlyZShcImVsZWN0cm9uXCIpO1xyXG5jb25zdCBQb3BvdXRTdGFjayA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJvcGVuXCIsIFwiY2xvc2VBbGxcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ3VzdG9tQ1NTIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJDdXN0b20gQ1NTXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImN1c3RvbWNzc1wiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJjdXN0b21jc3NcIjt9XHJcbiAgICBnZXQgc3RhcnREZXRhY2hlZCgpIHtyZXR1cm4gU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgXCJzdGFydERldGFjaGVkXCIpO31cclxuICAgIGdldCBuYXRpdmVPcGVuKCkge3JldHVybiBTZXR0aW5ncy5nZXQodGhpcy5jb2xsZWN0aW9uLCB0aGlzLmNhdGVnb3J5LCBcIm5hdGl2ZU9wZW5cIik7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5zYXZlZENzcyA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5pbnNlcnRlZENzcyA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHtcclxuICAgICAgICBpZiAoIXdpbmRvdy5hY2UpIHtcclxuICAgICAgICAgICAgVXRpbGl0aWVzLmluamVjdEpzKFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMi45L2FjZS5qc1wiKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cucmVxdWlyZS5vcmlnaW5hbCkgd2luZG93LnJlcXVpcmUgPSB3aW5kb3cucmVxdWlyZS5vcmlnaW5hbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFNldHRpbmdzLnJlZ2lzdGVyUGFuZWwodGhpcy5pZCwgdGhpcy5uYW1lLCB7XHJcbiAgICAgICAgICAgIG9yZGVyOiAyLFxyXG4gICAgICAgICAgICBlbGVtZW50OiAoKSA9PiBbPFNldHRpbmdzVGl0bGUgdGV4dD1cIkN1c3RvbSBDU1MgRWRpdG9yXCIgLz4sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTRWRpdG9yLCB7XHJcbiAgICAgICAgICAgICAgICBjc3M6IHRoaXMuc2F2ZWRDc3MsXHJcbiAgICAgICAgICAgICAgICBzYXZlOiB0aGlzLnNhdmVDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZTogdGhpcy5pbnNlcnRDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIG9wZW5OYXRpdmU6IHRoaXMub3Blbk5hdGl2ZS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgb3BlbkRldGFjaGVkOiB0aGlzLm9wZW5EZXRhY2hlZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pXSxcclxuICAgICAgICAgICAgb25DbGljazogKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5hdGl2ZU9wZW4pIHRoaXMub3Blbk5hdGl2ZSgpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zdGFydERldGFjaGVkKSB0aGlzLm9wZW5EZXRhY2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIuY2hpbGQubWVtb2l6ZWRQcm9wcy5jaGlsZHJlbi5wcm9wcy5vblNldFNlY3Rpb24odGhpcy5uYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMubG9hZENTUygpO1xyXG4gICAgICAgIHRoaXMuaW5zZXJ0Q1NTKHRoaXMuc2F2ZWRDc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIFNldHRpbmdzLnJlbW92ZVBhbmVsKHRoaXMuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRDU1MoKSB7XHJcbiAgICAgICAgdGhpcy5zYXZlZENzcyA9IERhdGFTdG9yZS5sb2FkQ3VzdG9tQ1NTKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Q1NTKG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YobmV3Q3NzKSA9PT0gXCJ1bmRlZmluZWRcIikgbmV3Q3NzID0gdGhpcy5pbnNlcnRlZENzcztcclxuICAgICAgICBlbHNlIHRoaXMuaW5zZXJ0ZWRDc3MgPSBuZXdDc3M7XHJcbiAgICAgICAgaWYgKCQoXCIjY3VzdG9tY3NzXCIpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChcIjxzdHlsZSBpZD1cXFwiY3VzdG9tY3NzXFxcIj48L3N0eWxlPlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJChcIiNjdXN0b21jc3NcIikudGV4dChuZXdDc3MpLmRldGFjaCgpLmFwcGVuZFRvKGRvY3VtZW50LmhlYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDU1MobmV3Q3NzKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZihuZXdDc3MpICE9PSBcInVuZGVmaW5lZFwiKSB0aGlzLnNhdmVkQ3NzID0gbmV3Q3NzO1xyXG4gICAgICAgIERhdGFTdG9yZS5zYXZlQ3VzdG9tQ1NTKHRoaXMuc2F2ZWRDc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5OYXRpdmUoKSB7XHJcbiAgICAgICAgZWxlY3Ryb24uc2hlbGwub3BlbkV4dGVybmFsKGBmaWxlOi8vJHtEYXRhU3RvcmUuY3VzdG9tQ1NTfWApO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5EZXRhY2hlZCgpIHtcclxuICAgICAgICB0aGlzLmxvZyhcIlNob3VsZCBvcGVuIGRldGFjaGVkXCIpO1xyXG4gICAgICAgIFBvcG91dFN0YWNrLm9wZW4oe1xyXG4gICAgICAgICAgICBhbmltYXRpb25UeXBlOiBcIm5vbmVcIixcclxuICAgICAgICAgICAgYXJyb3dBbGlnbm1lbnQ6IFwidG9wXCIsXHJcbiAgICAgICAgICAgIGJhY2tkcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgY2xvc2VPblNjcm9sbDogZmFsc2UsXHJcbiAgICAgICAgICAgIGtleTogdGhpcy5pZCxcclxuICAgICAgICAgICAgZm9yY2VUaGVtZTogXCJuby10cmFuc2Zvcm1cIixcclxuICAgICAgICAgICAgcG9zaXRpb246IFwidG9wXCIsXHJcbiAgICAgICAgICAgIHByZXZlbnRDbG9zZUZyb21Nb2RhbDogdHJ1ZSxcclxuICAgICAgICAgICAgcHJldmVudENsaWNrUHJvcGFnYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgIHByZXZlbnRDbG9zZU9uVW5tb3VudDogdHJ1ZSxcclxuICAgICAgICAgICAgcHJldmVudEludmVydDogZmFsc2UsXHJcbiAgICAgICAgICAgIHJlbmRlcjogKHByb3BzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChGbG9hdGluZ1dpbmRvdywgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZTogKCkgPT4ge1BvcG91dFN0YWNrLmNsb3NlKHRoaXMuaWQpO30sXHJcbiAgICAgICAgICAgICAgICAgICAgaXNQb3BvdXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQ3VzdG9tIENTUyBFZGl0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwidGVzdG1lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwidGVzdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MDAsXHJcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChDU1NFZGl0b3IsIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJiZC1mbG9hdGluZy1lZGl0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICBjc3M6IHRoaXMuc2F2ZWRDc3MsXHJcbiAgICAgICAgICAgICAgICAgICAgc2F2ZTogdGhpcy5zYXZlQ1NTLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlOiB0aGlzLmluc2VydENTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wZW5OYXRpdmU6IHRoaXMub3Blbk5hdGl2ZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNoYWRvdzogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dBcnJvdzogZmFsc2UsXHJcbiAgICAgICAgICAgIHpJbmRleEJvb3N0OiAwXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vLyBjb25zdCB0ZXN0ID0ge1xyXG4vLyBhbmltYXRpb25UeXBlOiBcImRlZmF1bHRcIixcclxuLy8gYXJyb3dBbGlnbm1lbnQ6IFwidG9wXCIsXHJcbi8vIGJhY2tkcm9wOiBmYWxzZSxcclxuLy8gY2xpY2tQb3M6IDc0LFxyXG4vLyBjbG9zZU9uU2Nyb2xsOiBmYWxzZSxcclxuLy8gY29udGFpbmVyQ2xhc3M6IHVuZGVmaW5lZCxcclxuLy8gZGVwZW5kc09uOiB1bmRlZmluZWQsXHJcbi8vIGZvcmNlVGhlbWU6IHVuZGVmaW5lZCxcclxuLy8ga2V5OiBcImZsb2F0aW5nLXdpbmRvd1wiLFxyXG4vLyBvZmZzZXRYOiAxNSxcclxuLy8gb2Zmc2V0WTogMCxcclxuLy8gcG9zaXRpb246IFwibGVmdFwiLFxyXG4vLyBwcmV2ZW50Q2xvc2VGcm9tTW9kYWw6IGZhbHNlLFxyXG4vLyBwcmV2ZW50Q2xpY2tQcm9wYWdhdGlvbjogdHJ1ZSxcclxuLy8gcHJldmVudEludmVydDogZmFsc2UsXHJcbi8vIHJlbmRlcjogZnVuY3Rpb24oKSB7XHJcbi8vICAgICBjb25zb2xlLmxvZyhhcmd1bWVudHMpO1xyXG4vLyAgICAgcmV0dXJuIERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgYXJndW1lbnRzWzBdLCB7Y2xhc3NOYW1lOiBcInRlc3RtZVwiLCBpZDogXCJ0ZXN0XCJ9KSk7XHJcbi8vIH0sXHJcbi8vIHNoYWRvdzogZmFsc2UsXHJcbi8vIHNob3dBcnJvdzogZmFsc2UsXHJcbi8vIHRhcmdldDogJChcImRpdi5tZW1iZXJPbmxpbmUtMUNJaC0wLm1lbWJlci0zVzFsUWEuZGEtbWVtYmVyT25saW5lLmRhLW1lbWJlclwiKVswXSxcclxuLy8gdGFyZ2V0SGVpZ2h0OiA0MCxcclxuLy8gdGFyZ2V0V2lkdGg6IDIyNCxcclxuLy8geDogMTIxMSxcclxuLy8geTogMzU3LFxyXG4vLyB6SW5kZXhCb29zdDogMFxyXG4vLyB9Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/customcss.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/customcss/csseditor */ \"./src/ui/customcss/csseditor.jsx\");\n/* harmony import */ var _ui_floating_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/floating/container */ \"./src/ui/floating/container.jsx\");\n/* harmony import */ var _ui_settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/settings/title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst electron = __webpack_require__(/*! electron */ \"electron\");\n\nconst UserSettings = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"updateAccount\");\nconst Dispatcher = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"dirtyDispatch\");\nconst ActionTypes = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"ActionTypes\").ActionTypes;\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class CustomCSS extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Custom CSS\";\n }\n\n get category() {\n return \"customcss\";\n }\n\n get id() {\n return \"customcss\";\n }\n\n get startDetached() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"startDetached\");\n }\n\n get nativeOpen() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"nativeOpen\");\n }\n\n constructor() {\n super();\n this.savedCss = \"\";\n this.insertedCss = \"\";\n this.isDetached = false;\n }\n\n async enabled() {\n if (!window.ace) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\").then(() => {\n if (window.require.original) window.require = window.require.original;\n });\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].registerPanel(this.id, this.name, {\n order: 2,\n element: () => [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: \"Custom CSS Editor\"\n }), modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n css: this.savedCss,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n openDetached: this.openDetached.bind(this),\n onChange: this.onChange.bind(this)\n })],\n onClick: thisObject => {\n if (this.isDetached) return;\n if (this.nativeOpen) this.openNative();else if (this.startDetached) this.openDetached();else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(this.name);\n this.setSection = thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection;\n }\n });\n this.loadCSS();\n this.insertCSS(this.savedCss);\n this.watchContent();\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].removePanel(this.id);\n this.unwatchContent();\n } //* {outline: 1px solid red;}\n //DataStore.customCSS\n\n\n watchContent() {\n if (this.watcher) return this.error(\"Already watching content.\");\n const timeCache = {};\n this.log(\"Starting to watch content.\");\n this.watcher = fs.watch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS);\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete timeCache[filename];\n this.saveCSS(\"\");\n }\n\n const stats = fs.statSync(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS);\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (timeCache[filename] == stats.mtime.getTime()) return;\n timeCache[filename] = stats.mtime.getTime();\n\n if (eventType == \"change\") {\n const newCSS = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n if (newCSS == this.savedCss) return;\n this.savedCss = newCSS;\n this.insertCSS(this.savedCss);\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].emit(\"customcss-updated\", this.savedCss);\n }\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return this.error(\"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n this.log(\"No longer watching content.\");\n }\n\n onChange(value) {\n if (!modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\")) return;\n this.insertCSS(value);\n this.saveCSS(value);\n }\n\n loadCSS() {\n this.savedCss = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n }\n\n insertCSS(newCss) {\n if (typeof newCss === \"undefined\") newCss = this.insertedCss;else this.insertedCss = newCss;\n\n if ($(\"#customcss\").length == 0) {\n $(\"head\").append(\"\");\n }\n\n $(\"#customcss\").text(newCss).detach().appendTo(document.head);\n }\n\n saveCSS(newCss) {\n if (typeof newCss !== \"undefined\") this.savedCss = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].saveCustomCSS(this.savedCss);\n }\n\n openNative() {\n electron.shell.openExternal(`file://${modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS}`);\n }\n\n openDetached(currentCSS) {\n const editorRef = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createRef();\n const editor = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n id: \"bd-floating-editor\",\n editorRef: editorRef,\n css: currentCSS,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n onChange: this.onChange.bind(this)\n });\n _ui_floating_container__WEBPACK_IMPORTED_MODULE_3__[\"default\"].open({\n onClose: () => {\n this.isDetached = false;\n },\n onResize: () => {\n if (!editorRef || !editorRef.current || !editorRef.current.resize) return;\n editorRef.current.resize();\n },\n title: \"Custom CSS Editor\",\n id: \"floating-editor-window\",\n height: 470,\n width: 410,\n center: true,\n resizable: true,\n children: editor\n });\n this.isDetached = true;\n UserSettings.close();\n Dispatcher.dirtyDispatch({\n type: ActionTypes.LAYER_POP\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcz9jM2YyIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsImVsZWN0cm9uIiwiVXNlclNldHRpbmdzIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiRGlzcGF0Y2hlciIsIkFjdGlvblR5cGVzIiwiQ3VzdG9tQ1NTIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic3RhcnREZXRhY2hlZCIsIlNldHRpbmdzIiwiZ2V0IiwiY29sbGVjdGlvbiIsIm5hdGl2ZU9wZW4iLCJjb25zdHJ1Y3RvciIsInNhdmVkQ3NzIiwiaW5zZXJ0ZWRDc3MiLCJpc0RldGFjaGVkIiwiZW5hYmxlZCIsIndpbmRvdyIsImFjZSIsIlV0aWxpdGllcyIsImluamVjdEpzIiwidGhlbiIsIm9yaWdpbmFsIiwicmVnaXN0ZXJQYW5lbCIsIm9yZGVyIiwiZWxlbWVudCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkNTU0VkaXRvciIsImNzcyIsInNhdmUiLCJzYXZlQ1NTIiwiYmluZCIsInVwZGF0ZSIsImluc2VydENTUyIsIm9wZW5OYXRpdmUiLCJvcGVuRGV0YWNoZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJ0aGlzT2JqZWN0IiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsImNoaWxkIiwibWVtb2l6ZWRQcm9wcyIsImNoaWxkcmVuIiwicHJvcHMiLCJvblNldFNlY3Rpb24iLCJzZXRTZWN0aW9uIiwibG9hZENTUyIsIndhdGNoQ29udGVudCIsImRpc2FibGVkIiwicmVtb3ZlUGFuZWwiLCJ1bndhdGNoQ29udGVudCIsIndhdGNoZXIiLCJlcnJvciIsInRpbWVDYWNoZSIsImxvZyIsIndhdGNoIiwiRGF0YVN0b3JlIiwiY3VzdG9tQ1NTIiwicGVyc2lzdGVudCIsImV2ZW50VHlwZSIsImZpbGVuYW1lIiwiUHJvbWlzZSIsInIiLCJzZXRUaW1lb3V0Iiwic3RhdFN5bmMiLCJlcnIiLCJjb2RlIiwic3RhdHMiLCJtdGltZSIsImdldFRpbWUiLCJuZXdDU1MiLCJsb2FkQ3VzdG9tQ1NTIiwiRXZlbnRzIiwiZW1pdCIsImNsb3NlIiwidmFsdWUiLCJuZXdDc3MiLCIkIiwibGVuZ3RoIiwiYXBwZW5kIiwidGV4dCIsImRldGFjaCIsImFwcGVuZFRvIiwiZG9jdW1lbnQiLCJoZWFkIiwic2F2ZUN1c3RvbUNTUyIsInNoZWxsIiwib3BlbkV4dGVybmFsIiwiY3VycmVudENTUyIsImVkaXRvclJlZiIsImNyZWF0ZVJlZiIsImVkaXRvciIsIkZsb2F0aW5nV2luZG93Q29udGFpbmVyIiwib3BlbiIsIm9uQ2xvc2UiLCJvblJlc2l6ZSIsImN1cnJlbnQiLCJyZXNpemUiLCJ0aXRsZSIsImhlaWdodCIsIndpZHRoIiwiY2VudGVyIiwicmVzaXphYmxlIiwiZGlydHlEaXNwYXRjaCIsInR5cGUiLCJMQVlFUl9QT1AiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsRUFBRSxHQUFHQyxtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHRCxtQkFBTyxDQUFDLDBCQUFELENBQXhCOztBQUNBLE1BQU1FLFlBQVksR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixlQUExQixDQUFyQjtBQUNBLE1BQU1DLFVBQVUsR0FBR0Ysc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixlQUExQixDQUFuQjtBQUNBLE1BQU1FLFdBQVcsR0FBR0gsc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixhQUExQixFQUF5Q0UsV0FBN0Q7QUFFZSxtRUFBSSxNQUFNQyxTQUFOLFNBQXdCQyx3REFBeEIsQ0FBZ0M7QUFDL0MsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNqQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBQ3BDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8s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TTtBQUNaLFlBQUksQ0FBQ04sU0FBRCxJQUFjLENBQUNBLFNBQVMsQ0FBQ08sT0FBekIsSUFBb0MsQ0FBQ1AsU0FBUyxDQUFDTyxPQUFWLENBQWtCQyxNQUEzRCxFQUFtRTtBQUNuRVIsaUJBQVMsQ0FBQ08sT0FBVixDQUFrQkMsTUFBbEI7QUFDSCxPQUx3QjtBQU16QkMsV0FBSyxFQUFFLG1CQU5rQjtBQU96QjdGLFFBQUUsRUFBRSx3QkFQcUI7QUFRekI4RixZQUFNLEVBQUUsR0FSaUI7QUFTekJDLFdBQUssRUFBRSxHQVRrQjtBQVV6QkMsWUFBTSxFQUFFLElBVmlCO0FBV3pCQyxlQUFTLEVBQUUsSUFYYztBQVl6QjVELGNBQVEsRUFBRWlEO0FBWmUsS0FBN0I7QUFjQSxTQUFLN0UsVUFBTCxHQUFrQixJQUFsQjtBQUNBbEIsZ0JBQVksQ0FBQzhFLEtBQWI7QUFDQTNFLGNBQVUsQ0FBQ3dHLGFBQVgsQ0FBeUI7QUFBQ0MsVUFBSSxFQUFFeEcsV0FBVyxDQUFDeUc7QUFBbkIsS0FBekI7QUFDSDs7QUE3SThDLENBQXBDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvY3VzdG9tY3NzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge1NldHRpbmdzLCBEYXRhU3RvcmUsIFJlYWN0LCBVdGlsaXRpZXMsIFdlYnBhY2tNb2R1bGVzLCBFdmVudHN9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBDU1NFZGl0b3IgZnJvbSBcIi4uL3VpL2N1c3RvbWNzcy9jc3NlZGl0b3JcIjtcclxuaW1wb3J0IEZsb2F0aW5nV2luZG93Q29udGFpbmVyIGZyb20gXCIuLi91aS9mbG9hdGluZy9jb250YWluZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4uL3VpL3NldHRpbmdzL3RpdGxlXCI7XHJcblxyXG5jb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuY29uc3QgZWxlY3Ryb24gPSByZXF1aXJlKFwiZWxlY3Ryb25cIik7XHJcbmNvbnN0IFVzZXJTZXR0aW5ncyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJ1cGRhdGVBY2NvdW50XCIpO1xyXG5jb25zdCBEaXNwYXRjaGVyID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImRpcnR5RGlzcGF0Y2hcIik7XHJcbmNvbnN0IEFjdGlvblR5cGVzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIkFjdGlvblR5cGVzXCIpLkFjdGlvblR5cGVzO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIEN1c3RvbUNTUyBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiQ3VzdG9tIENTU1wiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJjdXN0b21jc3NcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiY3VzdG9tY3NzXCI7fVxyXG4gICAgZ2V0IHN0YXJ0RGV0YWNoZWQoKSB7cmV0dXJuIFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIFwic3RhcnREZXRhY2hlZFwiKTt9XHJcbiAgICBnZXQgbmF0aXZlT3BlbigpIHtyZXR1cm4gU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgXCJuYXRpdmVPcGVuXCIpO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuc2F2ZWRDc3MgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuaW5zZXJ0ZWRDc3MgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuaXNEZXRhY2hlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKCF3aW5kb3cuYWNlKSB7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5pbmplY3RKcyhcImh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2FjZS8xLjIuOS9hY2UuanNcIikudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LnJlcXVpcmUub3JpZ2luYWwpIHdpbmRvdy5yZXF1aXJlID0gd2luZG93LnJlcXVpcmUub3JpZ2luYWw7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlclBhbmVsKHRoaXMuaWQsIHRoaXMubmFtZSwge1xyXG4gICAgICAgICAgICBvcmRlcjogMixcclxuICAgICAgICAgICAgZWxlbWVudDogKCkgPT4gWzxTZXR0aW5nc1RpdGxlIHRleHQ9XCJDdXN0b20gQ1NTIEVkaXRvclwiIC8+LCBSZWFjdC5jcmVhdGVFbGVtZW50KENTU0VkaXRvciwge1xyXG4gICAgICAgICAgICAgICAgY3NzOiB0aGlzLnNhdmVkQ3NzLFxyXG4gICAgICAgICAgICAgICAgc2F2ZTogdGhpcy5zYXZlQ1NTLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICB1cGRhdGU6IHRoaXMuaW5zZXJ0Q1NTLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBvcGVuTmF0aXZlOiB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIG9wZW5EZXRhY2hlZDogdGhpcy5vcGVuRGV0YWNoZWQuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcylcclxuICAgICAgICAgICAgfSldLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNEZXRhY2hlZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlT3BlbikgdGhpcy5vcGVuTmF0aXZlKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnN0YXJ0RGV0YWNoZWQpIHRoaXMub3BlbkRldGFjaGVkKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXNPYmplY3QuX3JlYWN0SW50ZXJuYWxGaWJlci5jaGlsZC5tZW1vaXplZFByb3BzLmNoaWxkcmVuLnByb3BzLm9uU2V0U2VjdGlvbih0aGlzLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTZWN0aW9uID0gdGhpc09iamVjdC5fcmVhY3RJbnRlcm5hbEZpYmVyLmNoaWxkLm1lbW9pemVkUHJvcHMuY2hpbGRyZW4ucHJvcHMub25TZXRTZWN0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5sb2FkQ1NTKCk7XHJcbiAgICAgICAgdGhpcy5pbnNlcnRDU1ModGhpcy5zYXZlZENzcyk7XHJcbiAgICAgICAgdGhpcy53YXRjaENvbnRlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBTZXR0aW5ncy5yZW1vdmVQYW5lbCh0aGlzLmlkKTtcclxuICAgICAgICB0aGlzLnVud2F0Y2hDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgICAvLyoge291dGxpbmU6IDFweCBzb2xpZCByZWQ7fVxyXG4gICAgLy9EYXRhU3RvcmUuY3VzdG9tQ1NTXHJcbiAgICB3YXRjaENvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2F0Y2hlcikgcmV0dXJuIHRoaXMuZXJyb3IoXCJBbHJlYWR5IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVDYWNoZSA9IHt9O1xyXG4gICAgICAgIHRoaXMubG9nKFwiU3RhcnRpbmcgdG8gd2F0Y2ggY29udGVudC5cIik7XHJcbiAgICAgICAgdGhpcy53YXRjaGVyID0gZnMud2F0Y2goRGF0YVN0b3JlLmN1c3RvbUNTUywge3BlcnNpc3RlbnQ6IGZhbHNlfSwgYXN5bmMgKGV2ZW50VHlwZSwgZmlsZW5hbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFldmVudFR5cGUgfHwgIWZpbGVuYW1lKSByZXR1cm47XHJcbiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCA1MCkpO1xyXG4gICAgICAgICAgICB0cnkge2ZzLnN0YXRTeW5jKERhdGFTdG9yZS5jdXN0b21DU1MpO31cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBcIkVOT0VOVFwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgdGltZUNhY2hlW2ZpbGVuYW1lXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZUNTUyhcIlwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKERhdGFTdG9yZS5jdXN0b21DU1MpO1xyXG4gICAgICAgICAgICBpZiAoIXN0YXRzIHx8ICFzdGF0cy5tdGltZSB8fCAhc3RhdHMubXRpbWUuZ2V0VGltZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Yoc3RhdHMubXRpbWUuZ2V0VGltZSgpKSAhPT0gXCJudW1iZXJcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodGltZUNhY2hlW2ZpbGVuYW1lXSA9PSBzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgdGltZUNhY2hlW2ZpbGVuYW1lXSA9IHN0YXRzLm10aW1lLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBcImNoYW5nZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDU1MgPSBEYXRhU3RvcmUubG9hZEN1c3RvbUNTUygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld0NTUyA9PSB0aGlzLnNhdmVkQ3NzKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVkQ3NzID0gbmV3Q1NTO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRDU1ModGhpcy5zYXZlZENzcyk7XHJcbiAgICAgICAgICAgICAgICBFdmVudHMuZW1pdChcImN1c3RvbWNzcy11cGRhdGVkXCIsIHRoaXMuc2F2ZWRDc3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdW53YXRjaENvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLndhdGNoZXIpIHJldHVybiB0aGlzLmVycm9yKFwiV2FzIG5vdCB3YXRjaGluZyBjb250ZW50LlwiKTtcclxuICAgICAgICB0aGlzLndhdGNoZXIuY2xvc2UoKTtcclxuICAgICAgICBkZWxldGUgdGhpcy53YXRjaGVyO1xyXG4gICAgICAgIHRoaXMubG9nKFwiTm8gbG9uZ2VyIHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKCFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImN1c3RvbWNzc1wiLCBcImxpdmVVcGRhdGVcIikpIHJldHVybjtcclxuICAgICAgICB0aGlzLmluc2VydENTUyh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5zYXZlQ1NTKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQ1NTKCkge1xyXG4gICAgICAgIHRoaXMuc2F2ZWRDc3MgPSBEYXRhU3RvcmUubG9hZEN1c3RvbUNTUygpO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VydENTUyhuZXdDc3MpIHtcclxuICAgICAgICBpZiAodHlwZW9mKG5ld0NzcykgPT09IFwidW5kZWZpbmVkXCIpIG5ld0NzcyA9IHRoaXMuaW5zZXJ0ZWRDc3M7XHJcbiAgICAgICAgZWxzZSB0aGlzLmluc2VydGVkQ3NzID0gbmV3Q3NzO1xyXG4gICAgICAgIGlmICgkKFwiI2N1c3RvbWNzc1wiKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoXCI8c3R5bGUgaWQ9XFxcImN1c3RvbWNzc1xcXCI+PC9zdHlsZT5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoXCIjY3VzdG9tY3NzXCIpLnRleHQobmV3Q3NzKS5kZXRhY2goKS5hcHBlbmRUbyhkb2N1bWVudC5oZWFkKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlQ1NTKG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YobmV3Q3NzKSAhPT0gXCJ1bmRlZmluZWRcIikgdGhpcy5zYXZlZENzcyA9IG5ld0NzcztcclxuICAgICAgICBEYXRhU3RvcmUuc2F2ZUN1c3RvbUNTUyh0aGlzLnNhdmVkQ3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmF0aXZlKCkge1xyXG4gICAgICAgIGVsZWN0cm9uLnNoZWxsLm9wZW5FeHRlcm5hbChgZmlsZTovLyR7RGF0YVN0b3JlLmN1c3RvbUNTU31gKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRGV0YWNoZWQoY3VycmVudENTUykge1xyXG4gICAgICAgIGNvbnN0IGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG4gICAgICAgIGNvbnN0IGVkaXRvciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTRWRpdG9yLCB7XHJcbiAgICAgICAgICAgIGlkOiBcImJkLWZsb2F0aW5nLWVkaXRvclwiLFxyXG4gICAgICAgICAgICBlZGl0b3JSZWY6IGVkaXRvclJlZixcclxuICAgICAgICAgICAgY3NzOiBjdXJyZW50Q1NTLFxyXG4gICAgICAgICAgICBzYXZlOiB0aGlzLnNhdmVDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgdXBkYXRlOiB0aGlzLmluc2VydENTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBvcGVuTmF0aXZlOiB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgXHJcbiAgICAgICAgRmxvYXRpbmdXaW5kb3dDb250YWluZXIub3Blbih7XHJcbiAgICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHt0aGlzLmlzRGV0YWNoZWQgPSBmYWxzZTt9LFxyXG4gICAgICAgICAgICBvblJlc2l6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlZGl0b3JSZWYgfHwgIWVkaXRvclJlZi5jdXJyZW50IHx8ICFlZGl0b3JSZWYuY3VycmVudC5yZXNpemUpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnJlc2l6ZSgpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aXRsZTogXCJDdXN0b20gQ1NTIEVkaXRvclwiLFxyXG4gICAgICAgICAgICBpZDogXCJmbG9hdGluZy1lZGl0b3Itd2luZG93XCIsXHJcbiAgICAgICAgICAgIGhlaWdodDogNDcwLFxyXG4gICAgICAgICAgICB3aWR0aDogNDEwLFxyXG4gICAgICAgICAgICBjZW50ZXI6IHRydWUsXHJcbiAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IGVkaXRvclxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaXNEZXRhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgVXNlclNldHRpbmdzLmNsb3NlKCk7XHJcbiAgICAgICAgRGlzcGF0Y2hlci5kaXJ0eURpc3BhdGNoKHt0eXBlOiBBY3Rpb25UeXBlcy5MQVlFUl9QT1B9KTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/customcss.js\n"); /***/ }), @@ -227,7 +227,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _str /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PublicServers extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"PublicServers\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"publicServers\";\n }\n\n enabled() {\n const wrapper = modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.wrapper.split(\" \")[0];\n const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);\n guilds.after(this.button);\n }\n\n disabled() {\n $(\"#bd-pub-li\").remove();\n }\n\n get component() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__[\"PublicServers\"].Layer, {\n rootId: \"pubslayerroot\",\n id: \"pubslayer\"\n }, modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__[\"PublicServers\"].Menu, {\n rootId: \"pubslayerroot\"\n }));\n }\n\n get root() {\n const _root = document.getElementById(\"pubslayerroot\");\n\n if (!_root) {\n if (!this.injectRoot()) return null;\n return this.root;\n }\n\n return _root;\n }\n\n injectRoot() {\n if (!$(\".layers, .layers-3iHuyZ\").length) return false;\n $(\".layers, .layers-3iHuyZ\").append($(\"
\", {\n id: \"pubslayerroot\"\n }));\n return true;\n }\n\n render() {\n const root = this.root;\n\n if (!root) {\n this.error(\"FAILED TO LOCATE ROOT: .layers\");\n return;\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ReactDOM.render(this.component, root);\n }\n\n get button() {\n const btn = $(\"
\", {\n \"class\": modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.listItem,\n \"id\": \"bd-pub-li\"\n }).append($(\"
\", {\n \"class\": \"wrapper-25eVIn \" + modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.circleButtonMask,\n \"text\": \"public\",\n \"id\": \"bd-pub-button\",\n \"click\": () => {\n this.render();\n }\n }));\n return btn;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanM/MWY2NSJdLCJuYW1lcyI6WyJQdWJsaWNTZXJ2ZXJzIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsIndyYXBwZXIiLCJCRFYyIiwiZ3VpbGRDbGFzc2VzIiwic3BsaXQiLCJndWlsZHMiLCIkIiwiYWZ0ZXIiLCJidXR0b24iLCJkaXNhYmxlZCIsInJlbW92ZSIsImNvbXBvbmVudCIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiUFNDb21wb25lbnRzIiwiTGF5ZXIiLCJyb290SWQiLCJNZW51Iiwicm9vdCIsIl9yb290IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImluamVjdFJvb3QiLCJsZW5ndGgiLCJhcHBlbmQiLCJyZW5kZXIiLCJlcnJvciIsIlJlYWN0RE9NIiwiYnRuIiwibGlzdEl0ZW0iLCJjaXJjbGVCdXR0b25NYXNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGFBQU4sU0FBNEJDLHdEQUE1QixDQUFvQztBQUNuRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGVBQVA7QUFBd0I7O0FBQ3BDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxlQUFQO0FBQXdCOztBQUVsQ0MsU0FBTyxHQUFHO0FBQ04sVUFBTUMsT0FBTyxHQUFHQyw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCRixPQUFsQixDQUEwQkcsS0FBMUIsQ0FBZ0MsR0FBaEMsRUFBcUMsQ0FBckMsQ0FBaEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBRSxJQUFHTCxPQUFRLGlDQUFiLENBQWhCO0FBQ0FJLFVBQU0sQ0FBQ0UsS0FBUCxDQUFhLEtBQUtDLE1BQWxCO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQSCxLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCSSxNQUFoQjtBQUNIOztBQUVELE1BQUlDLFNBQUosR0FBZ0I7QUFDWixXQUFPQyxzREFBYyxDQUFDQyxLQUFmLENBQXFCQyxhQUFyQixDQUFtQ0MsZ0RBQVksQ0FBQ0MsS0FBaEQsRUFBdUQ7QUFDMURDLFlBQU0sRUFBRSxlQURrRDtBQUUxRGxCLFFBQUUsRUFBRTtBQUZzRCxLQUF2RCxFQUdKYSxzREFBYyxDQUFDQyxLQUFmLENBQXFCQyxhQUFyQixDQUFtQ0MsZ0RBQVksQ0FBQ0csSUFBaEQsRUFBc0Q7QUFBQ0QsWUFBTSxFQUFFO0FBQVQsS0FBdEQsQ0FISSxDQUFQO0FBSUg7O0FBRUQsTUFBSUUsSUFBSixHQUFXO0FBQ1AsVUFBTUMsS0FBSyxHQUFHQyxRQUFRLENBQUNDLGNBQVQsQ0FBd0IsZUFBeEIsQ0FBZDs7QUFDQSxRQUFJLENBQUNGLEtBQUwsRUFBWTtBQUNSLFVBQUksQ0FBQyxLQUFLRyxVQUFMLEVBQUwsRUFBd0IsT0FBTyxJQUFQO0FBQ3hCLGFBQU8sS0FBS0osSUFBWjtBQUNIOztBQUNELFdBQU9DLEtBQVA7QUFDSDs7QUFFREcsWUFBVSxHQUFHO0FBQ1QsUUFBSSxDQUFDakIsQ0FBQyxDQUFDLHlCQUFELENBQUQsQ0FBNkJrQixNQUFsQyxFQUEwQyxPQUFPLEtBQVA7QUFDMUNsQixLQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2Qm1CLE1BQTdCLENBQW9DbkIsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUM1Q1AsUUFBRSxFQUFFO0FBRHdDLEtBQVgsQ0FBckM7QUFHQSxXQUFPLElBQVA7QUFDSDs7QUFFRDJCLFFBQU0sR0FBRztBQUNMLFVBQU1QLElBQUksR0FBRyxLQUFLQSxJQUFsQjs7QUFDQSxRQUFJLENBQUNBLElBQUwsRUFBVztBQUNQLFdBQUtRLEtBQUwsQ0FBVyxnQ0FBWDtBQUNBO0FBQ0g7O0FBQ0RmLDBEQUFjLENBQUNnQixRQUFmLENBQXdCRixNQUF4QixDQUErQixLQUFLZixTQUFwQyxFQUErQ1EsSUFBL0M7QUFDSDs7QUFFRCxNQUFJWCxNQUFKLEdBQWE7QUFDVCxVQUFNcUIsR0FBRyxHQUFHdkIsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNwQixlQUFTSiw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCMkIsUUFEUDtBQUVwQixZQUFNO0FBRmMsS0FBWCxDQUFELENBR1RMLE1BSFMsQ0FHRm5CLENBQUMsQ0FBQyxRQUFELEVBQVc7QUFDbEIsZUFBUyxvQkFBb0JKLDRDQUFJLENBQUNDLFlBQUwsQ0FBa0I0QixnQkFEN0I7QUFFbEIsY0FBUSxRQUZVO0FBR2xCLFlBQU0sZUFIWTtBQUlsQixlQUFTLE1BQU07QUFBRSxhQUFLTCxNQUFMO0FBQWdCO0FBSmYsS0FBWCxDQUhDLENBQVo7QUFVQSxXQUFPRyxHQUFQO0FBQ0g7O0FBNURrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7QkRWMiwgRGlzY29yZE1vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCB7UHVibGljU2VydmVycyBhcyBQU0NvbXBvbmVudHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlB1YmxpY1NlcnZlcnNcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJwdWJsaWNTZXJ2ZXJzXCI7fVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IEJEVjIuZ3VpbGRDbGFzc2VzLndyYXBwZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGd1aWxkcyA9ICQoYC4ke3dyYXBwZXJ9IC5zY3JvbGxlci0yRktGUEcgPjpmaXJzdC1jaGlsZGApO1xyXG4gICAgICAgIGd1aWxkcy5hZnRlcih0aGlzLmJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcIiNiZC1wdWItbGlcIikucmVtb3ZlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudCgpIHtcclxuICAgICAgICByZXR1cm4gRGlzY29yZE1vZHVsZXMuUmVhY3QuY3JlYXRlRWxlbWVudChQU0NvbXBvbmVudHMuTGF5ZXIsIHtcclxuICAgICAgICAgICAgcm9vdElkOiBcInB1YnNsYXllcnJvb3RcIixcclxuICAgICAgICAgICAgaWQ6IFwicHVic2xheWVyXCJcclxuICAgICAgICB9LCBEaXNjb3JkTW9kdWxlcy5SZWFjdC5jcmVhdGVFbGVtZW50KFBTQ29tcG9uZW50cy5NZW51LCB7cm9vdElkOiBcInB1YnNsYXllcnJvb3RcIn0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm9vdCgpIHtcclxuICAgICAgICBjb25zdCBfcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicHVic2xheWVycm9vdFwiKTtcclxuICAgICAgICBpZiAoIV9yb290KSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pbmplY3RSb290KCkpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gX3Jvb3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaW5qZWN0Um9vdCgpIHtcclxuICAgICAgICBpZiAoISQoXCIubGF5ZXJzLCAubGF5ZXJzLTNpSHV5WlwiKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAkKFwiLmxheWVycywgLmxheWVycy0zaUh1eVpcIikuYXBwZW5kKCQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBpZDogXCJwdWJzbGF5ZXJyb290XCJcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3IoXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllcnNcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgRGlzY29yZE1vZHVsZXMuUmVhY3RET00ucmVuZGVyKHRoaXMuY29tcG9uZW50LCByb290KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnV0dG9uKCkge1xyXG4gICAgICAgIGNvbnN0IGJ0biA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWxpXCJcclxuICAgICAgICB9KS5hcHBlbmQoJChcIjxkaXYvPlwiLCB7XHJcbiAgICAgICAgICAgIFwiY2xhc3NcIjogXCJ3cmFwcGVyLTI1ZVZJbiBcIiArIEJEVjIuZ3VpbGRDbGFzc2VzLmNpcmNsZUJ1dHRvbk1hc2ssXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcInB1YmxpY1wiLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWJ1dHRvblwiLFxyXG4gICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHsgdGhpcy5yZW5kZXIoKTsgfVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGJ0bjtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/publicservers.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\nconst LayerStack = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"pushLayer\");\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PublicServers extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"PublicServers\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"publicServers\";\n }\n\n enabled() {\n const wrapper = modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.wrapper.split(\" \")[0];\n const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);\n guilds.after(this.button);\n }\n\n disabled() {\n $(\"#bd-pub-li\").remove();\n }\n\n openPublicServers() {\n LayerStack.pushLayer(() => modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__[\"PublicServersMenu\"], {\n close: LayerStack.popLayer\n }));\n }\n\n get button() {\n const btn = $(\"
\", {\n \"class\": modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.listItem,\n \"id\": \"bd-pub-li\"\n }).append($(\"
\", {\n \"class\": \"wrapper-25eVIn \" + modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.circleButtonMask,\n \"text\": \"public\",\n \"id\": \"bd-pub-button\",\n \"click\": () => {\n this.openPublicServers();\n }\n }));\n return btn;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanM/MWY2NSJdLCJuYW1lcyI6WyJMYXllclN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiUHVibGljU2VydmVycyIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCJ3cmFwcGVyIiwiQkRWMiIsImd1aWxkQ2xhc3NlcyIsInNwbGl0IiwiZ3VpbGRzIiwiJCIsImFmdGVyIiwiYnV0dG9uIiwiZGlzYWJsZWQiLCJyZW1vdmUiLCJvcGVuUHVibGljU2VydmVycyIsInB1c2hMYXllciIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiUHVibGljU2VydmVyc01lbnUiLCJjbG9zZSIsInBvcExheWVyIiwiYnRuIiwibGlzdEl0ZW0iLCJhcHBlbmQiLCJjaXJjbGVCdXR0b25NYXNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFVBQVUsR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixXQUExQixDQUFuQjtBQUVlLG1FQUFJLE1BQU1DLGFBQU4sU0FBNEJDLHdEQUE1QixDQUFvQztBQUNuRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGVBQVA7QUFBd0I7O0FBQ3BDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxlQUFQO0FBQXdCOztBQUVsQ0MsU0FBTyxHQUFHO0FBQ04sVUFBTUMsT0FBTyxHQUFHQyw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCRixPQUFsQixDQUEwQkcsS0FBMUIsQ0FBZ0MsR0FBaEMsRUFBcUMsQ0FBckMsQ0FBaEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBRSxJQUFHTCxPQUFRLGlDQUFiLENBQWhCO0FBQ0FJLFVBQU0sQ0FBQ0UsS0FBUCxDQUFhLEtBQUtDLE1BQWxCO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQSCxLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCSSxNQUFoQjtBQUNIOztBQUVEQyxtQkFBaUIsR0FBRztBQUNoQm5CLGNBQVUsQ0FBQ29CLFNBQVgsQ0FBcUIsTUFBTUMsc0RBQWMsQ0FBQ0MsS0FBZixDQUFxQkMsYUFBckIsQ0FBbUNDLG9EQUFuQyxFQUFzRDtBQUFDQyxXQUFLLEVBQUV6QixVQUFVLENBQUMwQjtBQUFuQixLQUF0RCxDQUEzQjtBQUNIOztBQUVELE1BQUlWLE1BQUosR0FBYTtBQUNULFVBQU1XLEdBQUcsR0FBR2IsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNwQixlQUFTSiw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCaUIsUUFEUDtBQUVwQixZQUFNO0FBRmMsS0FBWCxDQUFELENBR1RDLE1BSFMsQ0FHRmYsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNsQixlQUFTLG9CQUFvQkosNENBQUksQ0FBQ0MsWUFBTCxDQUFrQm1CLGdCQUQ3QjtBQUVsQixjQUFRLFFBRlU7QUFHbEIsWUFBTSxlQUhZO0FBSWxCLGVBQVMsTUFBTTtBQUFFLGFBQUtYLGlCQUFMO0FBQTJCO0FBSjFCLEtBQVgsQ0FIQyxDQUFaO0FBVUEsV0FBT1EsR0FBUDtBQUNIOztBQS9Ca0QsQ0FBeEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9wdWJsaWNzZXJ2ZXJzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge0JEVjIsIERpc2NvcmRNb2R1bGVzLCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IHtQdWJsaWNTZXJ2ZXJzTWVudX0gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBMYXllclN0YWNrID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInB1c2hMYXllclwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBQdWJsaWNTZXJ2ZXJzIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJQdWJsaWNTZXJ2ZXJzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwicHVibGljU2VydmVyc1wiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBCRFYyLmd1aWxkQ2xhc3Nlcy53cmFwcGVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICBjb25zdCBndWlsZHMgPSAkKGAuJHt3cmFwcGVyfSAuc2Nyb2xsZXItMkZLRlBHID46Zmlyc3QtY2hpbGRgKTtcclxuICAgICAgICBndWlsZHMuYWZ0ZXIodGhpcy5idXR0b24pO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgICQoXCIjYmQtcHViLWxpXCIpLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5QdWJsaWNTZXJ2ZXJzKCkge1xyXG4gICAgICAgIExheWVyU3RhY2sucHVzaExheWVyKCgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoUHVibGljU2VydmVyc01lbnUsIHtjbG9zZTogTGF5ZXJTdGFjay5wb3BMYXllcn0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnV0dG9uKCkge1xyXG4gICAgICAgIGNvbnN0IGJ0biA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWxpXCJcclxuICAgICAgICB9KS5hcHBlbmQoJChcIjxkaXYvPlwiLCB7XHJcbiAgICAgICAgICAgIFwiY2xhc3NcIjogXCJ3cmFwcGVyLTI1ZVZJbiBcIiArIEJEVjIuZ3VpbGRDbGFzc2VzLmNpcmNsZUJ1dHRvbk1hc2ssXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcInB1YmxpY1wiLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWJ1dHRvblwiLFxyXG4gICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHsgdGhpcy5vcGVuUHVibGljU2VydmVycygpOyB9XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICByZXR1cm4gYnRuO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/publicservers.js\n"); /***/ }), @@ -551,19 +551,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CssEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor */ \"./src/ui/customcss/editor.jsx\");\n\n // import Checkbox from \"./checkbox\";\n\nclass CssEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.toggleLiveUpdate = this.toggleLiveUpdate.bind(this);\n this.updateCss = this.updateCss.bind(this);\n this.saveCss = this.saveCss.bind(this);\n this.openDetached = this.props.openDetached ? this.openDetached.bind(this) : null;\n this.openNative = this.openNative.bind(this);\n this.checkboxes = [{\n label: \"Live Update\",\n onChange: this.toggleLiveUpdate,\n checked: modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\")\n }];\n this.buttons = [{\n label: \"Update\",\n onClick: this.updateCss\n }, {\n label: \"Save\",\n onClick: this.saveCss\n }, {\n label: \"Open Natively\",\n onClick: this.openNative\n }, {\n label: \"Settings\",\n onClick: \"showSettings\"\n }];\n if (this.openDetached) this.buttons.push({\n label: \"Detach\",\n onClick: this.openDetached\n });\n this.notice = this.openDetached ? \"Unsaved changes are lost on detach\" : null;\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_editor__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n id: this.props.id || \"bd-customcss-editor\",\n notice: this.openDetached ? this.notice : null,\n checkboxes: this.checkboxes,\n buttons: this.buttons,\n showHelp: true,\n value: this.props.css\n });\n }\n\n toggleLiveUpdate(checked) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].set(\"settings\", \"customcss\", \"liveUpdate\", checked);\n }\n\n updateCss() {\n const newCss = this.editor.session.getValue();\n if (this.props.update) this.props.update(newCss);\n }\n\n saveCss() {\n const newCss = this.editor.session.getValue();\n if (this.props.save) this.props.save(newCss);\n }\n\n openDetached() {\n if (this.props.openDetached) this.props.openDetached();\n }\n\n openNative() {\n if (this.props.openNative) this.props.openNative();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9jc3NlZGl0b3IuanN4PzQyMzAiXSwibmFtZXMiOlsiQ3NzRWRpdG9yIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwidG9nZ2xlTGl2ZVVwZGF0ZSIsImJpbmQiLCJ1cGRhdGVDc3MiLCJzYXZlQ3NzIiwib3BlbkRldGFjaGVkIiwib3Blbk5hdGl2ZSIsImNoZWNrYm94ZXMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwiY2hlY2tlZCIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9ucyIsIm9uQ2xpY2siLCJwdXNoIiwibm90aWNlIiwicmVuZGVyIiwiaWQiLCJjc3MiLCJzZXQiLCJuZXdDc3MiLCJlZGl0b3IiLCJzZXNzaW9uIiwiZ2V0VmFsdWUiLCJ1cGRhdGUiLCJzYXZlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBR0E7O0FBRWUsTUFBTUEsU0FBTixTQUF3QkMsNkNBQUssQ0FBQ0MsU0FBOUIsQ0FBd0M7QUFFbkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUVBLFNBQUtDLGdCQUFMLEdBQXdCLEtBQUtBLGdCQUFMLENBQXNCQyxJQUF0QixDQUEyQixJQUEzQixDQUF4QjtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsS0FBS0EsU0FBTCxDQUFlRCxJQUFmLENBQW9CLElBQXBCLENBQWpCO0FBQ0EsU0FBS0UsT0FBTCxHQUFlLEtBQUtBLE9BQUwsQ0FBYUYsSUFBYixDQUFrQixJQUFsQixDQUFmO0FBQ0EsU0FBS0csWUFBTCxHQUFvQixLQUFLTCxLQUFMLENBQVdLLFlBQVgsR0FBMEIsS0FBS0EsWUFBTCxDQUFrQkgsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBMUIsR0FBeUQsSUFBN0U7QUFDQSxTQUFLSSxVQUFMLEdBQWtCLEtBQUtBLFVBQUwsQ0FBZ0JKLElBQWhCLENBQXFCLElBQXJCLENBQWxCO0FBRUEsU0FBS0ssVUFBTCxHQUFrQixDQUFDO0FBQUNDLFdBQUssRUFBRSxhQUFSO0FBQXVCQyxjQUFRLEVBQUUsS0FBS1IsZ0JBQXRDO0FBQXdEUyxhQUFPLEVBQUVDLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFdBQXpCLEVBQXNDLFlBQXRDO0FBQWpFLEtBQUQsQ0FBbEI7QUFDQSxTQUFLQyxPQUFMLEdBQWUsQ0FDWDtBQUFDTCxXQUFLLEVBQUUsUUFBUjtBQUFrQk0sYUFBTyxFQUFFLEtBQUtYO0FBQWhDLEtBRFcsRUFFWDtBQUFDSyxXQUFLLEVBQUUsTUFBUjtBQUFnQk0sYUFBTyxFQUFFLEtBQUtWO0FBQTlCLEtBRlcsRUFHWDtBQUFDSSxXQUFLLEVBQUUsZUFBUjtBQUF5Qk0sYUFBTyxFQUFFLEtBQUtSO0FBQXZDLEtBSFcsRUFJWDtBQUFDRSxXQUFLLEVBQUUsVUFBUjtBQUFvQk0sYUFBTyxFQUFFO0FBQTdCLEtBSlcsQ0FBZjtBQU1BLFFBQUksS0FBS1QsWUFBVCxFQUF1QixLQUFLUSxPQUFMLENBQWFFLElBQWIsQ0FBa0I7QUFBQ1AsV0FBSyxFQUFFLFFBQVI7QUFBa0JNLGFBQU8sRUFBRSxLQUFLVDtBQUFoQyxLQUFsQjtBQUN2QixTQUFLVyxNQUFMLEdBQWMsS0FBS1gsWUFBTCxHQUFvQixvQ0FBcEIsR0FBMkQsSUFBekU7QUFDSDs7QUFFRFksUUFBTSxHQUFHO0FBQ0wsV0FBTyw0REFBQywrQ0FBRDtBQUFRLFFBQUUsRUFBRSxLQUFLakIsS0FBTCxDQUFXa0IsRUFBWCxJQUFpQixxQkFBN0I7QUFBb0QsWUFBTSxFQUFFLEtBQUtiLFlBQUwsR0FBb0IsS0FBS1csTUFBekIsR0FBa0MsSUFBOUY7QUFBb0csZ0JBQVUsRUFBRSxLQUFLVCxVQUFySDtBQUFpSSxhQUFPLEVBQUUsS0FBS00sT0FBL0k7QUFBd0osY0FBUSxFQUFFLElBQWxLO0FBQXdLLFdBQUssRUFBRSxLQUFLYixLQUFMLENBQVdtQjtBQUExTCxNQUFQO0FBQ0g7O0FBRURsQixrQkFBZ0IsQ0FBQ1MsT0FBRCxFQUFVO0FBQ3RCQyxvREFBUSxDQUFDUyxHQUFULENBQWEsVUFBYixFQUF5QixXQUF6QixFQUFzQyxZQUF0QyxFQUFvRFYsT0FBcEQ7QUFDSDs7QUFFRFAsV0FBUyxHQUFHO0FBQ1IsVUFBTWtCLE1BQU0sR0FBRyxLQUFLQyxNQUFMLENBQVlDLE9BQVosQ0FBb0JDLFFBQXBCLEVBQWY7QUFDQSxRQUFJLEtBQUt4QixLQUFMLENBQVd5QixNQUFmLEVBQXVCLEtBQUt6QixLQUFMLENBQVd5QixNQUFYLENBQWtCSixNQUFsQjtBQUMxQjs7QUFFRGpCLFNBQU8sR0FBRztBQUNOLFVBQU1pQixNQUFNLEdBQUcsS0FBS0MsTUFBTCxDQUFZQyxPQUFaLENBQW9CQyxRQUFwQixFQUFmO0FBQ0EsUUFBSSxLQUFLeEIsS0FBTCxDQUFXMEIsSUFBZixFQUFxQixLQUFLMUIsS0FBTCxDQUFXMEIsSUFBWCxDQUFnQkwsTUFBaEI7QUFDeEI7O0FBRURoQixjQUFZLEdBQUc7QUFDWCxRQUFJLEtBQUtMLEtBQUwsQ0FBV0ssWUFBZixFQUE2QixLQUFLTCxLQUFMLENBQVdLLFlBQVg7QUFDaEM7O0FBRURDLFlBQVUsR0FBRztBQUNULFFBQUksS0FBS04sS0FBTCxDQUFXTSxVQUFmLEVBQTJCLEtBQUtOLEtBQUwsQ0FBV00sVUFBWDtBQUM5Qjs7QUE5Q2tEIiwiZmlsZSI6Ii4vc3JjL3VpL2N1c3RvbWNzcy9jc3NlZGl0b3IuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRWRpdG9yIGZyb20gXCIuL2VkaXRvclwiO1xyXG4vLyBpbXBvcnQgQ2hlY2tib3ggZnJvbSBcIi4vY2hlY2tib3hcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENzc0VkaXRvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9nZ2xlTGl2ZVVwZGF0ZSA9IHRoaXMudG9nZ2xlTGl2ZVVwZGF0ZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ3NzID0gdGhpcy51cGRhdGVDc3MuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNhdmVDc3MgPSB0aGlzLnNhdmVDc3MuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9wZW5EZXRhY2hlZCA9IHRoaXMucHJvcHMub3BlbkRldGFjaGVkID8gdGhpcy5vcGVuRGV0YWNoZWQuYmluZCh0aGlzKSA6IG51bGw7XHJcbiAgICAgICAgdGhpcy5vcGVuTmF0aXZlID0gdGhpcy5vcGVuTmF0aXZlLmJpbmQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY2hlY2tib3hlcyA9IFt7bGFiZWw6IFwiTGl2ZSBVcGRhdGVcIiwgb25DaGFuZ2U6IHRoaXMudG9nZ2xlTGl2ZVVwZGF0ZSwgY2hlY2tlZDogU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJjdXN0b21jc3NcIiwgXCJsaXZlVXBkYXRlXCIpfV07XHJcbiAgICAgICAgdGhpcy5idXR0b25zID0gW1xyXG4gICAgICAgICAgICB7bGFiZWw6IFwiVXBkYXRlXCIsIG9uQ2xpY2s6IHRoaXMudXBkYXRlQ3NzfSxcclxuICAgICAgICAgICAge2xhYmVsOiBcIlNhdmVcIiwgb25DbGljazogdGhpcy5zYXZlQ3NzfSxcclxuICAgICAgICAgICAge2xhYmVsOiBcIk9wZW4gTmF0aXZlbHlcIiwgb25DbGljazogdGhpcy5vcGVuTmF0aXZlfSxcclxuICAgICAgICAgICAge2xhYmVsOiBcIlNldHRpbmdzXCIsIG9uQ2xpY2s6IFwic2hvd1NldHRpbmdzXCJ9XHJcbiAgICAgICAgXTtcclxuICAgICAgICBpZiAodGhpcy5vcGVuRGV0YWNoZWQpIHRoaXMuYnV0dG9ucy5wdXNoKHtsYWJlbDogXCJEZXRhY2hcIiwgb25DbGljazogdGhpcy5vcGVuRGV0YWNoZWR9KTtcclxuICAgICAgICB0aGlzLm5vdGljZSA9IHRoaXMub3BlbkRldGFjaGVkID8gXCJVbnNhdmVkIGNoYW5nZXMgYXJlIGxvc3Qgb24gZGV0YWNoXCIgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPEVkaXRvciBpZD17dGhpcy5wcm9wcy5pZCB8fCBcImJkLWN1c3RvbWNzcy1lZGl0b3JcIn0gbm90aWNlPXt0aGlzLm9wZW5EZXRhY2hlZCA/IHRoaXMubm90aWNlIDogbnVsbH0gY2hlY2tib3hlcz17dGhpcy5jaGVja2JveGVzfSBidXR0b25zPXt0aGlzLmJ1dHRvbnN9IHNob3dIZWxwPXt0cnVlfSB2YWx1ZT17dGhpcy5wcm9wcy5jc3N9IC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUxpdmVVcGRhdGUoY2hlY2tlZCkge1xyXG4gICAgICAgIFNldHRpbmdzLnNldChcInNldHRpbmdzXCIsIFwiY3VzdG9tY3NzXCIsIFwibGl2ZVVwZGF0ZVwiLCBjaGVja2VkKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDc3MoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3Q3NzID0gdGhpcy5lZGl0b3Iuc2Vzc2lvbi5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnVwZGF0ZSkgdGhpcy5wcm9wcy51cGRhdGUobmV3Q3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlQ3NzKCkge1xyXG4gICAgICAgIGNvbnN0IG5ld0NzcyA9IHRoaXMuZWRpdG9yLnNlc3Npb24uZ2V0VmFsdWUoKTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zYXZlKSB0aGlzLnByb3BzLnNhdmUobmV3Q3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRGV0YWNoZWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub3BlbkRldGFjaGVkKSB0aGlzLnByb3BzLm9wZW5EZXRhY2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5OYXRpdmUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub3Blbk5hdGl2ZSkgdGhpcy5wcm9wcy5vcGVuTmF0aXZlKCk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/customcss/csseditor.jsx\n"); - -/***/ }), - -/***/ "./src/ui/customcss/detached.jsx": -/*!***************************************!*\ - !*** ./src/ui/customcss/detached.jsx ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FloatingWindow; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n\n\n\nclass Screen {\n /** Document/window width */\n static get width() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n /** Document/window height */\n\n\n static get height() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n }\n\n}\n\nclass FloatingWindow extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.props.forceTheme = \"dont-transform\"; // this.state = {x: 0, y: 0};\n\n this.offX = 0;\n this.offY = 0;\n this.titlebar = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.window = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.close = this.close.bind(this);\n this.onDrag = this.onDrag.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragStop = this.onDragStop.bind(this);\n }\n\n componentDidMount() {\n if (this.props.isPopout) {\n console.log(this);\n const popout = this._reactInternalFiber.return.return.return.stateNode;\n setImmediate(() => {\n document.removeEventListener(\"click\", popout.close, true);\n if (!this.props.close) this.props.close = popout.close;\n });\n }\n\n this.titlebar.current.addEventListener(\"mousedown\", this.onDragStart, false);\n document.addEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n onDragStop(e) {\n // e.preventDefault();\n // e.stopPropagation();\n document.removeEventListener(\"mousemove\", this.onDrag, true);\n }\n\n onDragStart(e) {\n // e.preventDefault();\n // e.stopPropagation();\n const div = this.window.current;\n console.log(div.offsetTop, div.offsetLeft);\n this.offY = e.clientY - parseInt(div.offsetTop);\n this.offX = e.clientX - parseInt(div.offsetLeft);\n document.addEventListener(\"mousemove\", this.onDrag, true);\n }\n\n onDrag(e) {\n // e.preventDefault();\n // e.stopPropagation();\n const div = this.window.current;\n div.style.position = \"fixed\";\n div.style.top = e.clientY - this.offY + \"px\";\n div.style.left = e.clientX - this.offX + \"px\";\n }\n\n componentWillUnmount() {\n this.titlebar.current.removeEventListener(\"mousedown\", this.onDragStart, false);\n document.removeEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n render() {\n const top = this.props.center ? Screen.height / 2 - this.props.height / 2 : this.props.top;\n const left = this.props.center ? Screen.width / 2 - this.props.width / 2 : this.props.left;\n console.log(top, left);\n const styles = {\n height: this.props.height,\n width: this.props.width,\n left: left || 0,\n top: top || 0\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: \"floating-window \" + this.props.className,\n ref: this.window,\n style: styles\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-titlebar\",\n ref: this.titlebar\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"title\"\n }, this.props.title), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-buttons\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"button close-button\",\n onClick: this.close\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-content\"\n }, this.props.children));\n }\n\n close() {\n console.log(\"click close\");\n if (this.props.close) this.props.close();\n }\n\n} //target, props (with render), key, event\n// function addListeners(){\n// document.getElementById('test').addEventListener('mousedown', mouseDown, false);\n// window.addEventListener('mouseup', mouseUp, false);\n// }\n// function mouseUp()\n// {\n// window.removeEventListener('mousemove', divMove, true);\n// }\n// function mouseDown(e){\n// var div = document.getElementById('test');\n// offY= e.clientY-parseInt(div.offsetTop);\n// offX= e.clientX-parseInt(div.offsetLeft);\n// window.addEventListener('mousemove', divMove, true);\n// }\n// function divMove(e){\n// var div = document.getElementById('test');\n// div.style.position = 'absolute';\n// div.style.top = (e.clientY-offY) + 'px';\n// div.style.left = (e.clientX-offX) + 'px';\n// }\n// const test = {\n// animationType: \"default\",\n// arrowAlignment: \"top\",\n// backdrop: false,\n// clickPos: 74,\n// closeOnScroll: false,\n// containerClass: undefined,\n// dependsOn: undefined,\n// forceTheme: undefined,\n// key: \"floating-window\",\n// offsetX: 15,\n// offsetY: 0,\n// position: \"left\",\n// preventCloseFromModal: false,\n// preventClickPropagation: true,\n// preventInvert: false,\n// render: function() {\n// console.log(arguments);\n// return DiscordModules.React.createElement(\"div\", Object.assign({}, arguments[0], {className: \"testme\", id: \"test\"}));\n// },\n// shadow: false,\n// showArrow: false,\n// target: $(\"div.memberOnline-1CIh-0.member-3W1lQa.da-memberOnline.da-member\")[0],\n// targetHeight: 40,\n// targetWidth: 224,\n// x: 1211,\n// y: 357,\n// zIndexBoost: 0\n// }\n// modaltest = function() {\n// console.log(arguments);\n// return DiscordModules.React.createElement(\"div\", Object.assign({}, arguments[0], {className: \"testme\", id: \"test\"}));\n// }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9kZXRhY2hlZC5qc3g/OGE5NSJdLCJuYW1lcyI6WyJTY3JlZW4iLCJ3aWR0aCIsIk1hdGgiLCJtYXgiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwid2luZG93IiwiaW5uZXJXaWR0aCIsImhlaWdodCIsImNsaWVudEhlaWdodCIsImlubmVySGVpZ2h0IiwiRmxvYXRpbmdXaW5kb3ciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJmb3JjZVRoZW1lIiwib2ZmWCIsIm9mZlkiLCJ0aXRsZWJhciIsImNyZWF0ZVJlZiIsImNsb3NlIiwiYmluZCIsIm9uRHJhZyIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnU3RvcCIsImNvbXBvbmVudERpZE1vdW50IiwiaXNQb3BvdXQiLCJjb25zb2xlIiwibG9nIiwicG9wb3V0IiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsInJldHVybiIsInN0YXRlTm9kZSIsInNldEltbWVkaWF0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJkaXYiLCJvZmZzZXRUb3AiLCJvZmZzZXRMZWZ0IiwiY2xpZW50WSIsInBhcnNlSW50IiwiY2xpZW50WCIsInN0eWxlIiwicG9zaXRpb24iLCJ0b3AiLCJsZWZ0IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW5kZXIiLCJjZW50ZXIiLCJzdHlsZXMiLCJpZCIsImNsYXNzTmFtZSIsInRpdGxlIiwiY2hpbGRyZW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTs7QUFFQSxNQUFNQSxNQUFOLENBQWE7QUFDVDtBQUNBLGFBQVdDLEtBQVgsR0FBbUI7QUFBRSxXQUFPQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxXQUFsQyxFQUErQ0MsTUFBTSxDQUFD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QUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2RldGFjaGVkLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgQ2xvc2VCdXR0b24gZnJvbSBcIi4uL2ljb25zL2Nsb3NlXCI7XHJcblxyXG5jbGFzcyBTY3JlZW4ge1xyXG4gICAgLyoqIERvY3VtZW50L3dpbmRvdyB3aWR0aCAqL1xyXG4gICAgc3RhdGljIGdldCB3aWR0aCgpIHsgcmV0dXJuIE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCwgd2luZG93LmlubmVyV2lkdGggfHwgMCk7IH1cclxuICAgIC8qKiBEb2N1bWVudC93aW5kb3cgaGVpZ2h0ICovXHJcbiAgICBzdGF0aWMgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsIHdpbmRvdy5pbm5lckhlaWdodCB8fCAwKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGbG9hdGluZ1dpbmRvdyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgICAgIHRoaXMucHJvcHMuZm9yY2VUaGVtZSA9IFwiZG9udC10cmFuc2Zvcm1cIjtcclxuXHJcbiAgICAgICAgLy8gdGhpcy5zdGF0ZSA9IHt4OiAwLCB5OiAwfTtcclxuICAgICAgICB0aGlzLm9mZlggPSAwO1xyXG4gICAgICAgIHRoaXMub2ZmWSA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMudGl0bGViYXIgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgICAgICB0aGlzLndpbmRvdyA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub25EcmFnID0gdGhpcy5vbkRyYWcuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uRHJhZ1N0YXJ0ID0gdGhpcy5vbkRyYWdTdGFydC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub25EcmFnU3RvcCA9IHRoaXMub25EcmFnU3RvcC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmlzUG9wb3V0KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMpO1xyXG4gICAgICAgICAgICBjb25zdCBwb3BvdXQgPSB0aGlzLl9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4uc3RhdGVOb2RlO1xyXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHBvcG91dC5jbG9zZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucHJvcHMuY2xvc2UpIHRoaXMucHJvcHMuY2xvc2UgPSBwb3BvdXQuY2xvc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50aXRsZWJhci5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbkRyYWdTdGFydCwgZmFsc2UpO1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMub25EcmFnU3RvcCwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHJhZ1N0b3AoZSkge1xyXG4gICAgICAgIC8vIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAvLyBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgdGhpcy5vbkRyYWcsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHJhZ1N0YXJ0KGUpIHtcclxuICAgICAgICAvLyBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgLy8gZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBjb25zdCBkaXYgPSB0aGlzLndpbmRvdy5jdXJyZW50O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGRpdi5vZmZzZXRUb3AsIGRpdi5vZmZzZXRMZWZ0KTtcclxuICAgICAgICB0aGlzLm9mZlkgPSBlLmNsaWVudFkgLSBwYXJzZUludChkaXYub2Zmc2V0VG9wKTtcclxuICAgICAgICB0aGlzLm9mZlggPSBlLmNsaWVudFggLSBwYXJzZUludChkaXYub2Zmc2V0TGVmdCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLm9uRHJhZywgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EcmFnKGUpIHtcclxuICAgICAgICAvLyBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgLy8gZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBjb25zdCBkaXYgPSB0aGlzLndpbmRvdy5jdXJyZW50O1xyXG4gICAgICAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcclxuICAgICAgICBkaXYuc3R5bGUudG9wID0gKGUuY2xpZW50WSAtIHRoaXMub2ZmWSkgKyBcInB4XCI7XHJcbiAgICAgICAgZGl2LnN0eWxlLmxlZnQgPSAoZS5jbGllbnRYIC0gdGhpcy5vZmZYKSArIFwicHhcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICB0aGlzLnRpdGxlYmFyLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLm9uRHJhZ1N0YXJ0LCBmYWxzZSk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5vbkRyYWdTdG9wLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMucHJvcHMuY2VudGVyID8gKFNjcmVlbi5oZWlnaHQgLyAyKSAtICh0aGlzLnByb3BzLmhlaWdodCAvIDIpIDogdGhpcy5wcm9wcy50b3A7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IHRoaXMucHJvcHMuY2VudGVyID8gKFNjcmVlbi53aWR0aCAvIDIpIC0gKHRoaXMucHJvcHMud2lkdGggLyAyKSA6IHRoaXMucHJvcHMubGVmdCA7XHJcbiAgICAgICAgY29uc29sZS5sb2codG9wLCBsZWZ0KTtcclxuICAgICAgICBjb25zdCBzdHlsZXMgPSB7aGVpZ2h0OiB0aGlzLnByb3BzLmhlaWdodCwgd2lkdGg6IHRoaXMucHJvcHMud2lkdGgsIGxlZnQ6IGxlZnQgfHwgMCwgdG9wOiB0b3AgfHwgMH07XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17XCJmbG9hdGluZy13aW5kb3cgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZX0gcmVmPXt0aGlzLndpbmRvd30gc3R5bGU9e3N0eWxlc30+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9hdGluZy13aW5kb3ctdGl0bGViYXJcIiByZWY9e3RoaXMudGl0bGViYXJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aXRsZVwiPnt0aGlzLnByb3BzLnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9hdGluZy13aW5kb3ctYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24gY2xvc2UtYnV0dG9uXCIgb25DbGljaz17dGhpcy5jbG9zZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENsb3NlQnV0dG9uIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9hdGluZy13aW5kb3ctY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZSgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrIGNsb3NlXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNsb3NlKSB0aGlzLnByb3BzLmNsb3NlKCk7XHJcbiAgICB9XHJcbn1cclxuLy90YXJnZXQsIHByb3BzICh3aXRoIHJlbmRlciksIGtleSwgZXZlbnRcclxuLy8gZnVuY3Rpb24gYWRkTGlzdGVuZXJzKCl7XHJcbi8vICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG1vdXNlRG93biwgZmFsc2UpO1xyXG4vLyAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBtb3VzZVVwLCBmYWxzZSk7XHJcblxyXG4vLyB9XHJcblxyXG4vLyBmdW5jdGlvbiBtb3VzZVVwKClcclxuLy8ge1xyXG4vLyAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGRpdk1vdmUsIHRydWUpO1xyXG4vLyB9XHJcblxyXG4vLyBmdW5jdGlvbiBtb3VzZURvd24oZSl7XHJcbi8vICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7XHJcbi8vICAgb2ZmWT0gZS5jbGllbnRZLXBhcnNlSW50KGRpdi5vZmZzZXRUb3ApO1xyXG4vLyAgIG9mZlg9IGUuY2xpZW50WC1wYXJzZUludChkaXYub2Zmc2V0TGVmdCk7XHJcbi8vICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZGl2TW92ZSwgdHJ1ZSk7XHJcbi8vIH1cclxuXHJcbi8vIGZ1bmN0aW9uIGRpdk1vdmUoZSl7XHJcbi8vICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTtcclxuLy8gICBkaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4vLyAgIGRpdi5zdHlsZS50b3AgPSAoZS5jbGllbnRZLW9mZlkpICsgJ3B4JztcclxuLy8gICBkaXYuc3R5bGUubGVmdCA9IChlLmNsaWVudFgtb2ZmWCkgKyAncHgnO1xyXG4vLyB9XHJcblxyXG4vLyBjb25zdCB0ZXN0ID0ge1xyXG4vLyBhbmltYXRpb25UeXBlOiBcImRlZmF1bHRcIixcclxuLy8gYXJyb3dBbGlnbm1lbnQ6IFwidG9wXCIsXHJcbi8vIGJhY2tkcm9wOiBmYWxzZSxcclxuLy8gY2xpY2tQb3M6IDc0LFxyXG4vLyBjbG9zZU9uU2Nyb2xsOiBmYWxzZSxcclxuLy8gY29udGFpbmVyQ2xhc3M6IHVuZGVmaW5lZCxcclxuLy8gZGVwZW5kc09uOiB1bmRlZmluZWQsXHJcbi8vIGZvcmNlVGhlbWU6IHVuZGVmaW5lZCxcclxuLy8ga2V5OiBcImZsb2F0aW5nLXdpbmRvd1wiLFxyXG4vLyBvZmZzZXRYOiAxNSxcclxuLy8gb2Zmc2V0WTogMCxcclxuLy8gcG9zaXRpb246IFwibGVmdFwiLFxyXG4vLyBwcmV2ZW50Q2xvc2VGcm9tTW9kYWw6IGZhbHNlLFxyXG4vLyBwcmV2ZW50Q2xpY2tQcm9wYWdhdGlvbjogdHJ1ZSxcclxuLy8gcHJldmVudEludmVydDogZmFsc2UsXHJcbi8vIHJlbmRlcjogZnVuY3Rpb24oKSB7XHJcbi8vICAgICBjb25zb2xlLmxvZyhhcmd1bWVudHMpO1xyXG4vLyAgICAgcmV0dXJuIERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgYXJndW1lbnRzWzBdLCB7Y2xhc3NOYW1lOiBcInRlc3RtZVwiLCBpZDogXCJ0ZXN0XCJ9KSk7XHJcbi8vIH0sXHJcbi8vIHNoYWRvdzogZmFsc2UsXHJcbi8vIHNob3dBcnJvdzogZmFsc2UsXHJcbi8vIHRhcmdldDogJChcImRpdi5tZW1iZXJPbmxpbmUtMUNJaC0wLm1lbWJlci0zVzFsUWEuZGEtbWVtYmVyT25saW5lLmRhLW1lbWJlclwiKVswXSxcclxuLy8gdGFyZ2V0SGVpZ2h0OiA0MCxcclxuLy8gdGFyZ2V0V2lkdGg6IDIyNCxcclxuLy8geDogMTIxMSxcclxuLy8geTogMzU3LFxyXG4vLyB6SW5kZXhCb29zdDogMFxyXG4vLyB9XHJcblxyXG4vLyBtb2RhbHRlc3QgPSBmdW5jdGlvbigpIHtcclxuLy8gICAgIGNvbnNvbGUubG9nKGFyZ3VtZW50cyk7XHJcbi8vICAgICByZXR1cm4gRGlzY29yZE1vZHVsZXMuUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBhcmd1bWVudHNbMF0sIHtjbGFzc05hbWU6IFwidGVzdG1lXCIsIGlkOiBcInRlc3RcIn0pKTtcclxuLy8gfSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/customcss/detached.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CssEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor */ \"./src/ui/customcss/editor.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _icons_save__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/save */ \"./src/ui/icons/save.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_cog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/cog */ \"./src/ui/icons/cog.jsx\");\n/* harmony import */ var _icons_detach__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/detach */ \"./src/ui/icons/detach.jsx\");\n\n // import Checkbox from \"./checkbox\";\n\n\n\n\n\n\nclass CssEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.toggleLiveUpdate = this.toggleLiveUpdate.bind(this);\n this.updateCss = this.updateCss.bind(this);\n this.saveCss = this.saveCss.bind(this);\n this.openDetached = this.props.openDetached ? this.openDetached.bind(this) : null;\n this.openNative = this.openNative.bind(this);\n this.updateEditor = this.updateEditor.bind(this);\n this.controls = [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Update\",\n onClick: this.updateCss\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_save__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Save\",\n onClick: this.saveCss\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Open in System Editor\",\n onClick: this.openNative\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_cog__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Editor Settings\",\n onClick: \"showSettings\"\n }, {\n label: \"Live Update\",\n type: \"checkbox\",\n onChange: this.toggleLiveUpdate,\n checked: modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\"),\n side: \"right\"\n }];\n if (this.openDetached) this.controls.push({\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_detach__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Detach Editor\",\n onClick: this.openDetached,\n side: \"right\"\n });\n }\n\n componentDidMount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(\"customcss-updated\", this.updateEditor);\n }\n\n componentWillUnmount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(\"customcss-updated\", this.updateEditor);\n }\n\n updateEditor(newCSS) {\n if (!this.editor) return;\n this.editor.value = newCSS;\n }\n\n setEditorRef(editor) {\n this.editor = editor;\n if (this.props.editorRef && typeof this.props.editorRef.current !== \"undefined\") this.props.editorRef.current = editor;else if (this.props.editorRef) this.props.editorRef = editor;\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_editor__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref: this.setEditorRef.bind(this),\n readOnly: this.props.readOnly,\n id: this.props.id || \"bd-customcss-editor\",\n onChange: this.props.onChange,\n controls: this.controls,\n value: this.props.css\n });\n }\n\n toggleLiveUpdate(checked) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].set(\"settings\", \"customcss\", \"liveUpdate\", checked);\n }\n\n updateCss(event, newCss) {\n if (this.props.update) this.props.update(newCss);\n }\n\n saveCss(event, newCss) {\n if (this.props.save) this.props.save(newCss);\n }\n\n openDetached(event, currentCSS) {\n if (!this.props.openDetached) return;\n this.props.openDetached(currentCSS);\n }\n\n openNative() {\n if (this.props.openNative) this.props.openNative();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9jc3NlZGl0b3IuanN4PzQyMzAiXSwibmFtZXMiOlsiQ3NzRWRpdG9yIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwidG9nZ2xlTGl2ZVVwZGF0ZSIsImJpbmQiLCJ1cGRhdGVDc3MiLCJzYXZlQ3NzIiwib3BlbkRldGFjaGVkIiwib3Blbk5hdGl2ZSIsInVwZGF0ZUVkaXRvciIsImNvbnRyb2xzIiwibGFiZWwiLCJjcmVhdGVFbGVtZW50IiwiUmVmcmVzaCIsInNpemUiLCJ0b29sdGlwIiwib25DbGljayIsIlNhdmUiLCJFZGl0IiwiQ29nIiwidHlwZSIsIm9uQ2hhbmdlIiwiY2hlY2tlZCIsIlNldHRpbmdzIiwiZ2V0Iiwic2lkZSIsInB1c2giLCJEZXRhY2giLCJjb21wb25lbnREaWRNb3VudCIsIkV2ZW50cyIsIm9uIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJvZmYiLCJuZXdDU1MiLCJlZGl0b3IiLCJ2YWx1ZSIsInNldEVkaXRvclJlZiIsImVkaXRvclJlZiIsImN1cnJlbnQiLCJyZW5kZXIiLCJyZWFkT25seSIsImlkIiwiY3NzIiwic2V0IiwiZXZlbnQiLCJuZXdDc3MiLCJ1cGRhdGUiLCJzYXZlIiwiY3VycmVudENTUyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsU0FBTixTQUF3QkMsNkNBQUssQ0FBQ0MsU0FBOUIsQ0FBd0M7QUFFbkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUVBLFNBQUtDLGdCQUFMLEdBQXdCLEtBQUtBLGdCQUFMLENBQXNCQyxJQUF0QixDQUEyQixJQUEzQixDQUF4QjtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsS0FBS0EsU0FBTCxDQUFlRCxJQUFmLENBQW9CLElBQXBCLENBQWpCO0FBQ0EsU0FBS0UsT0FBTCxHQUFlLEtBQUtBLE9BQUwsQ0FBYUYsSUFBYixDQUFrQixJQUFsQixDQUFmO0FBQ0EsU0FBS0csWUFBTCxHQUFvQixLQUFLTCxLQUFMLENBQVdLLFlBQVgsR0FBMEIsS0FBS0EsWUFBTCxDQUFrQkgsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBMUIsR0FBeUQsSUFBN0U7QUFDQSxTQUFLSSxVQUFMLEdBQWtCLEtBQUtBLFVBQUwsQ0FBZ0JKLElBQWhCLENBQXFCLElBQXJCLENBQWxCO0FBQ0EsU0FBS0ssWUFBTCxHQUFvQixLQUFLQSxZQUFMLENBQWtCTCxJQUFsQixDQUF1QixJQUF2QixDQUFwQjtBQUVBLFNBQUtNLFFBQUwsR0FBZ0IsQ0FDWjtBQUFDQyxXQUFLLEVBQUVaLDZDQUFLLENBQUNhLGFBQU4sQ0FBb0JDLHFEQUFwQixFQUE2QjtBQUFDQyxZQUFJLEVBQUU7QUFBUCxPQUE3QixDQUFSO0FBQXNEQyxhQUFPLEVBQUUsUUFBL0Q7QUFBeUVDLGFBQU8sRUFBRSxLQUFLWDtBQUF2RixLQURZLEVBRVo7QUFBQ00sV0FBSyxFQUFFWiw2Q0FBSyxDQUFDYSxhQUFOLENBQW9CSyxtREFBcEIsRUFBMEI7QUFBQ0gsWUFBSSxFQUFFO0FBQVAsT0FBMUIsQ0FBUjtBQUFtREMsYUFBTyxFQUFFLE1BQTVEO0FBQW9FQyxhQUFPLEVBQUUsS0FBS1Y7QUFBbEYsS0FGWSxFQUdaO0FBQUNLLFdBQUssRUFBRVosNkNBQUssQ0FBQ2EsYUFBTixDQUFvQk0sbURBQXBCLEVBQTBCO0FBQUNKLFlBQUksRUFBRTtBQUFQLE9BQTFCLENBQVI7QUFBbURDLGFBQU8sRUFBRSx1QkFBNUQ7QUFBcUZDLGFBQU8sRUFBRSxLQUFLUjtBQUFuRyxLQUhZLEVBSVo7QUFBQ0csV0FBSyxFQUFFWiw2Q0FBSyxDQUFDYSxhQUFOLENBQW9CTyxrREFBcEIsRUFBeUI7QUFBQ0wsWUFBSSxFQUFFO0FBQVAsT0FBekIsQ0FBUjtBQUFrREMsYUFBTyxFQUFFLGlCQUEzRDtBQUE4RUMsYUFBTyxFQUFFO0FBQXZGLEtBSlksRUFLWjtBQUFDTCxXQUFLLEVBQUUsYUFBUjtBQUF1QlMsVUFBSSxFQUFDLFVBQTVCO0FBQXdDQyxjQUFRLEVBQUUsS0FBS2xCLGdCQUF2RDtBQUF5RW1CLGFBQU8sRUFBRUMsZ0RBQVEsQ0FBQ0MsR0FBVCxDQUFhLFVBQWIsRUFBeUIsV0FBekIsRUFBc0MsWUFBdEMsQ0FBbEY7QUFBdUlDLFVBQUksRUFBRTtBQUE3SSxLQUxZLENBQWhCO0FBT0EsUUFBSSxLQUFLbEIsWUFBVCxFQUF1QixLQUFLRyxRQUFMLENBQWNnQixJQUFkLENBQW1CO0FBQUNmLFdBQUssRUFBRVosNkNBQUssQ0FBQ2EsYUFBTixDQUFvQmUscURBQXBCLEVBQTRCO0FBQUNiLFlBQUksRUFBRTtBQUFQLE9BQTVCLENBQVI7QUFBcURDLGFBQU8sRUFBRSxlQUE5RDtBQUErRUMsYUFBTyxFQUFFLEtBQUtULFlBQTdGO0FBQTJHa0IsVUFBSSxFQUFFO0FBQWpILEtBQW5CO0FBQzFCOztBQUVERyxtQkFBaUIsR0FBRztBQUNoQkMsa0RBQU0sQ0FBQ0MsRUFBUCxDQUFVLG1CQUFWLEVBQStCLEtBQUtyQixZQUFwQztBQUNIOztBQUVEc0Isc0JBQW9CLEdBQUc7QUFDbkJGLGtEQUFNLENBQUNHLEdBQVAsQ0FBVyxtQkFBWCxFQUFnQyxLQUFLdkIsWUFBckM7QUFDSDs7QUFFREEsY0FBWSxDQUFDd0IsTUFBRCxFQUFTO0FBQ2pCLFFBQUksQ0FBQyxLQUFLQyxNQUFWLEVBQWtCO0FBQ2xCLFNBQUtBLE1BQUwsQ0FBWUMsS0FBWixHQUFvQkYsTUFBcEI7QUFDSDs7QUFFREcsY0FBWSxDQUFDRixNQUFELEVBQVM7QUFDakIsU0FBS0EsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsUUFBSSxLQUFLaEMsS0FBTCxDQUFXbUMsU0FBWCxJQUF3QixPQUFPLEtBQUtuQyxLQUFMLENBQVdtQyxTQUFYLENBQXFCQyxPQUE1QixLQUF5QyxXQUFyRSxFQUFrRixLQUFLcEMsS0FBTCxDQUFXbUMsU0FBWCxDQUFxQkMsT0FBckIsR0FBK0JKLE1BQS9CLENBQWxGLEtBQ0ssSUFBSSxLQUFLaEMsS0FBTCxDQUFXbUMsU0FBZixFQUEwQixLQUFLbkMsS0FBTCxDQUFXbUMsU0FBWCxHQUF1QkgsTUFBdkI7QUFDbEM7O0FBRURLLFFBQU0sR0FBRztBQUNMLFdBQU8sNERBQUMsK0NBQUQ7QUFBUSxTQUFHLEVBQUUsS0FBS0gsWUFBTCxDQUFrQmhDLElBQWxCLENBQXVCLElBQXZCLENBQWI7QUFBMkMsY0FBUSxFQUFFLEtBQUtGLEtBQUwsQ0FBV3NDLFFBQWhFO0FBQTBFLFFBQUUsRUFBRSxLQUFLdEMsS0FBTCxDQUFXdUMsRUFBWCxJQUFpQixxQkFBL0Y7QUFBc0gsY0FBUSxFQUFFLEtBQUt2QyxLQUFMLENBQVdtQixRQUEzSTtBQUFxSixjQUFRLEVBQUUsS0FBS1gsUUFBcEs7QUFBOEssV0FBSyxFQUFFLEtBQUtSLEtBQUwsQ0FBV3dDO0FBQWhNLE1BQVA7QUFDSDs7QUFFRHZDLGtCQUFnQixDQUFDbUIsT0FBRCxFQUFVO0FBQ3RCQyxvREFBUSxDQUFDb0IsR0FBVCxDQUFhLFVBQWIsRUFBeUIsV0FBekIsRUFBc0MsWUFBdEMsRUFBb0RyQixPQUFwRDtBQUNIOztBQUVEakIsV0FBUyxDQUFDdUMsS0FBRCxFQUFRQyxNQUFSLEVBQWdCO0FBQ3JCLFFBQUksS0FBSzNDLEtBQUwsQ0FBVzRDLE1BQWYsRUFBdUIsS0FBSzVDLEtBQUwsQ0FBVzRDLE1BQVgsQ0FBa0JELE1BQWxCO0FBQzFCOztBQUVEdkMsU0FBTyxDQUFDc0MsS0FBRCxFQUFRQyxNQUFSLEVBQWdCO0FBQ25CLFFBQUksS0FBSzNDLEtBQUwsQ0FBVzZDLElBQWYsRUFBcUIsS0FBSzdDLEtBQUwsQ0FBVzZDLElBQVgsQ0FBZ0JGLE1BQWhCO0FBQ3hCOztBQUVEdEMsY0FBWSxDQUFDcUMsS0FBRCxFQUFRSSxVQUFSLEVBQW9CO0FBQzVCLFFBQUksQ0FBQyxLQUFLOUMsS0FBTCxDQUFXSyxZQUFoQixFQUE4QjtBQUM5QixTQUFLTCxLQUFMLENBQVdLLFlBQVgsQ0FBd0J5QyxVQUF4QjtBQUNIOztBQUVEeEMsWUFBVSxHQUFHO0FBQ1QsUUFBSSxLQUFLTixLQUFMLENBQVdNLFVBQWYsRUFBMkIsS0FBS04sS0FBTCxDQUFXTSxVQUFYO0FBQzlCOztBQWhFa0QiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2Nzc2VkaXRvci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBTZXR0aW5ncywgRXZlbnRzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IEVkaXRvciBmcm9tIFwiLi9lZGl0b3JcIjtcclxuLy8gaW1wb3J0IENoZWNrYm94IGZyb20gXCIuL2NoZWNrYm94XCI7XHJcbmltcG9ydCBSZWZyZXNoIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuaW1wb3J0IFNhdmUgZnJvbSBcIi4uL2ljb25zL3NhdmVcIjtcclxuaW1wb3J0IEVkaXQgZnJvbSBcIi4uL2ljb25zL2VkaXRcIjtcclxuaW1wb3J0IENvZyBmcm9tIFwiLi4vaWNvbnMvY29nXCI7XHJcbmltcG9ydCBEZXRhY2ggZnJvbSBcIi4uL2ljb25zL2RldGFjaFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3NzRWRpdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcbiAgICAgICAgdGhpcy50b2dnbGVMaXZlVXBkYXRlID0gdGhpcy50b2dnbGVMaXZlVXBkYXRlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDc3MgPSB0aGlzLnVwZGF0ZUNzcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUNzcyA9IHRoaXMuc2F2ZUNzcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub3BlbkRldGFjaGVkID0gdGhpcy5wcm9wcy5vcGVuRGV0YWNoZWQgPyB0aGlzLm9wZW5EZXRhY2hlZC5iaW5kKHRoaXMpIDogbnVsbDtcclxuICAgICAgICB0aGlzLm9wZW5OYXRpdmUgPSB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvciA9IHRoaXMudXBkYXRlRWRpdG9yLmJpbmQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY29udHJvbHMgPSBbXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChSZWZyZXNoLCB7c2l6ZTogXCIxOHB4XCJ9KSwgdG9vbHRpcDogXCJVcGRhdGVcIiwgb25DbGljazogdGhpcy51cGRhdGVDc3N9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2F2ZSwge3NpemU6IFwiMThweFwifSksIHRvb2x0aXA6IFwiU2F2ZVwiLCBvbkNsaWNrOiB0aGlzLnNhdmVDc3N9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRWRpdCwge3NpemU6IFwiMThweFwifSksIHRvb2x0aXA6IFwiT3BlbiBpbiBTeXN0ZW0gRWRpdG9yXCIsIG9uQ2xpY2s6IHRoaXMub3Blbk5hdGl2ZX0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChDb2csIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBcIkVkaXRvciBTZXR0aW5nc1wiLCBvbkNsaWNrOiBcInNob3dTZXR0aW5nc1wifSxcclxuICAgICAgICAgICAge2xhYmVsOiBcIkxpdmUgVXBkYXRlXCIsIHR5cGU6XCJjaGVja2JveFwiLCBvbkNoYW5nZTogdGhpcy50b2dnbGVMaXZlVXBkYXRlLCBjaGVja2VkOiBTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImN1c3RvbWNzc1wiLCBcImxpdmVVcGRhdGVcIiksIHNpZGU6IFwicmlnaHRcIn1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW5EZXRhY2hlZCkgdGhpcy5jb250cm9scy5wdXNoKHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChEZXRhY2gsIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBcIkRldGFjaCBFZGl0b3JcIiwgb25DbGljazogdGhpcy5vcGVuRGV0YWNoZWQsIHNpZGU6IFwicmlnaHRcIn0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIEV2ZW50cy5vbihcImN1c3RvbWNzcy11cGRhdGVkXCIsIHRoaXMudXBkYXRlRWRpdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKFwiY3VzdG9tY3NzLXVwZGF0ZWRcIiwgdGhpcy51cGRhdGVFZGl0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUVkaXRvcihuZXdDU1MpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5lZGl0b3IudmFsdWUgPSBuZXdDU1M7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RWRpdG9yUmVmKGVkaXRvcikge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yID0gZWRpdG9yO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVkaXRvclJlZiAmJiB0eXBlb2YodGhpcy5wcm9wcy5lZGl0b3JSZWYuY3VycmVudCkgIT09IFwidW5kZWZpbmVkXCIpIHRoaXMucHJvcHMuZWRpdG9yUmVmLmN1cnJlbnQgPSBlZGl0b3I7XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5wcm9wcy5lZGl0b3JSZWYpIHRoaXMucHJvcHMuZWRpdG9yUmVmID0gZWRpdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPEVkaXRvciByZWY9e3RoaXMuc2V0RWRpdG9yUmVmLmJpbmQodGhpcyl9IHJlYWRPbmx5PXt0aGlzLnByb3BzLnJlYWRPbmx5fSBpZD17dGhpcy5wcm9wcy5pZCB8fCBcImJkLWN1c3RvbWNzcy1lZGl0b3JcIn0gb25DaGFuZ2U9e3RoaXMucHJvcHMub25DaGFuZ2V9IGNvbnRyb2xzPXt0aGlzLmNvbnRyb2xzfSB2YWx1ZT17dGhpcy5wcm9wcy5jc3N9IC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUxpdmVVcGRhdGUoY2hlY2tlZCkge1xyXG4gICAgICAgIFNldHRpbmdzLnNldChcInNldHRpbmdzXCIsIFwiY3VzdG9tY3NzXCIsIFwibGl2ZVVwZGF0ZVwiLCBjaGVja2VkKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDc3MoZXZlbnQsIG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnVwZGF0ZSkgdGhpcy5wcm9wcy51cGRhdGUobmV3Q3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlQ3NzKGV2ZW50LCBuZXdDc3MpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zYXZlKSB0aGlzLnByb3BzLnNhdmUobmV3Q3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRGV0YWNoZWQoZXZlbnQsIGN1cnJlbnRDU1MpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMub3BlbkRldGFjaGVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vcGVuRGV0YWNoZWQoY3VycmVudENTUyk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk5hdGl2ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuTmF0aXZlKSB0aGlzLnByb3BzLm9wZW5OYXRpdmUoKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/customcss/csseditor.jsx\n"); /***/ }), @@ -575,7 +563,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CodeEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkbox */ \"./src/ui/customcss/checkbox.jsx\");\n\n\nconst languages = [\"abap\", \"abc\", \"actionscript\", \"ada\", \"apache_conf\", \"asciidoc\", \"assembly_x86\", \"autohotkey\", \"batchfile\", \"bro\", \"c_cpp\", \"c9search\", \"cirru\", \"clojure\", \"cobol\", \"coffee\", \"coldfusion\", \"csharp\", \"csound_document\", \"csound_orchestra\", \"csound_score\", \"css\", \"curly\", \"d\", \"dart\", \"diff\", \"dockerfile\", \"dot\", \"drools\", \"dummy\", \"dummysyntax\", \"eiffel\", \"ejs\", \"elixir\", \"elm\", \"erlang\", \"forth\", \"fortran\", \"ftl\", \"gcode\", \"gherkin\", \"gitignore\", \"glsl\", \"gobstones\", \"golang\", \"graphqlschema\", \"groovy\", \"haml\", \"handlebars\", \"haskell\", \"haskell_cabal\", \"haxe\", \"hjson\", \"html\", \"html_elixir\", \"html_ruby\", \"ini\", \"io\", \"jack\", \"jade\", \"java\", \"javascript\", \"json\", \"jsoniq\", \"jsp\", \"jssm\", \"jsx\", \"julia\", \"kotlin\", \"latex\", \"less\", \"liquid\", \"lisp\", \"livescript\", \"logiql\", \"lsl\", \"lua\", \"luapage\", \"lucene\", \"makefile\", \"markdown\", \"mask\", \"matlab\", \"maze\", \"mel\", \"mushcode\", \"mysql\", \"nix\", \"nsis\", \"objectivec\", \"ocaml\", \"pascal\", \"perl\", \"pgsql\", \"php\", \"pig\", \"powershell\", \"praat\", \"prolog\", \"properties\", \"protobuf\", \"python\", \"r\", \"razor\", \"rdoc\", \"red\", \"rhtml\", \"rst\", \"ruby\", \"rust\", \"sass\", \"scad\", \"scala\", \"scheme\", \"scss\", \"sh\", \"sjs\", \"smarty\", \"snippets\", \"soy_template\", \"space\", \"sql\", \"sqlserver\", \"stylus\", \"svg\", \"swift\", \"tcl\", \"tex\", \"text\", \"textile\", \"toml\", \"tsx\", \"twig\", \"typescript\", \"vala\", \"vbscript\", \"velocity\", \"verilog\", \"vhdl\", \"wollok\", \"xml\", \"xquery\", \"yaml\", \"django\"];\nconst themes = [\"chrome\", \"clouds\", \"crimson_editor\", \"dawn\", \"dreamweaver\", \"eclipse\", \"github\", \"iplastic\", \"solarized_light\", \"textmate\", \"tomorrow\", \"xcode\", \"kuroir\", \"katzenmilch\", \"sqlserver\", \"ambiance\", \"chaos\", \"clouds_midnight\", \"cobalt\", \"gruvbox\", \"gob\", \"idle_fingers\", \"kr_theme\", \"merbivore\", \"merbivore_soft\", \"mono_industrial\", \"monokai\", \"pastel_on_dark\", \"solarized_dark\", \"terminal\", \"tomorrow_night\", \"tomorrow_night_blue\", \"tomorrow_night_bright\", \"tomorrow_night_eighties\", \"twilight\", \"vibrant_ink\"];\nclass CodeEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n static get defaultId() {\n return \"bd-editor\";\n }\n\n constructor(props) {\n super(props);\n\n for (const button of this.props.buttons) {\n if (button.onClick == \"showSettings\") button.onClick = this.showSettings.bind(this);\n }\n\n this.props.theme = this.props.theme.toLowerCase().replace(/ /g, \"_\");\n if (!themes.includes(this.props.theme)) this.props.theme = this.defaultProps.theme;\n this.props.language = this.props.language.toLowerCase().replace(/ /g, \"_\");\n if (!languages.includes(this.props.language)) this.props.language = this.defaultProps.language;\n }\n\n static get defaultProps() {\n return {\n buttons: [],\n checkboxes: [],\n theme: \"monokai\",\n language: \"css\",\n id: this.defaultId,\n fontSize: 14\n };\n }\n\n static get themes() {\n return themes;\n }\n\n componentDidMount() {\n this.editor = ace.edit(this.props.id); // Add id to the ace menu container\n\n const originalShow = this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec;\n\n this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec = function () {\n originalShow.apply(this, arguments);\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n if (node.parentElement !== document.body || !node.querySelector(\"#ace_settingsmenu\")) continue;\n node.id = \"ace_settingsmenu_container\";\n observer.disconnect();\n }\n });\n observer.observe(document.body, {\n childList: true\n });\n };\n\n this.editor.setTheme(`ace/theme/${this.props.theme}`);\n this.editor.session.setMode(`ace/mode/${this.props.language}`);\n this.editor.setShowPrintMargin(false);\n this.editor.setFontSize(this.props.fontSize);\n\n if (this.props.onChange) {\n this.editor.on(\"change\", () => {\n this.props.onChange(this.value);\n });\n }\n }\n\n componentWillUnmount() {\n this.editor.destroy();\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n render() {\n const buttons = this.props.buttons.map(button => modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"btn btn-primary\",\n onClick: event => {\n button.onClick(event, this.value);\n }\n }, button.label));\n const checkboxes = this.props.checkboxes.map(checkbox => modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_checkbox__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: checkbox.label,\n onChange: checkbox.onChange,\n checked: checkbox.checked\n }));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-panel\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"editor-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: \"editor\"\n }, this.props.value)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-controls\"\n }, checkboxes.length && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-group\"\n }, checkboxes), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-buttons\"\n }, buttons, this.props.notice && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"small-notice\"\n }, this.props.notice)), this.props.showHelp && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"help-text\"\n }, \"Press \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"code\", {\n className: \"inline\"\n }, \"ctrl\"), \"+\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"code\", {\n className: \"inline\"\n }, \",\"), \" with the editor focused to access the editor's settings.\")));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9lZGl0b3IuanN4P2ZmZTIiXSwibmFtZXMiOlsibGFuZ3VhZ2VzIiwidGhlbWVzIiwiQ29kZUVkaXRvciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiZGVmYXVsdElkIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImJ1dHRvbiIsImJ1dHRvbnMiLCJvbkNsaWNrIiwic2hvd1NldHRpbmdzIiwiYmluZCIsInRoZW1lIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiaW5jbHVkZXMiLCJkZWZhdWx0UHJvcHMiLCJsYW5ndWFnZSIsImNoZWNrYm94ZXMiLCJpZCIsImZvbnRTaXplIiwiY29tcG9uZW50RGlkTW91bnQiLCJlZGl0b3IiLCJhY2UiLCJlZGl0Iiwib3JpZ2luYWxTaG93Iiwia2V5QmluZGluZyIsIiRkZWZhdWx0SGFuZGxlciIsImNvbW1hbmRzIiwic2hvd1NldHRpbmdzTWVudSIsImV4ZWMiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm11dGF0aW9ucyIsIm11dGF0aW9uIiwiYWRkZWROb2RlcyIsImxlbmd0aCIsIkVsZW1lbnQiLCJub2RlIiwicGFyZW50RWxlbWVudCIsImRvY3VtZW50IiwiYm9keSIsInF1ZXJ5U2VsZWN0b3IiLCJkaXNjb25uZWN0Iiwib2JzZXJ2ZSIsImNoaWxkTGlzdCIsInNldFRoZW1lIiwic2Vzc2lvbiIsInNldE1vZGUiLCJzZXRTaG93UHJpbnRNYXJnaW4iLCJzZXRGb250U2l6ZSIsIm9uQ2hhbmdlIiwib24iLCJ2YWx1ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZGVzdHJveSIsImdldFZhbHVlIiwicmVuZGVyIiwibWFwIiwiZXZlbnQiLCJsYWJlbCIsImNoZWNrYm94IiwiY2hlY2tlZCIsIm5vdGljZSIsInNob3dIZWxwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFFQSxN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O0FBQS9FLE1BREQsQ0FBbkI7QUFJQSxXQUFPO0FBQUssUUFBRSxFQUFDO0FBQVIsT0FDSztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxRQUFFLEVBQUUsS0FBSzFELEtBQUwsQ0FBV2EsRUFBcEI7QUFBd0IsZUFBUyxFQUFDO0FBQWxDLE9BQTRDLEtBQUtiLEtBQUwsQ0FBV2lELEtBQXZELENBREosQ0FETCxFQUlLO0FBQUssUUFBRSxFQUFDO0FBQVIsT0FDS3JDLFVBQVUsQ0FBQ29CLE1BQVgsSUFBcUI7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUFpQ3BCLFVBQWpDLENBRDFCLEVBRUk7QUFBSyxRQUFFLEVBQUM7QUFBUixPQUNLVixPQURMLEVBRUssS0FBS0YsS0FBTCxDQUFXMkQsTUFBWCxJQUFxQjtBQUFNLGVBQVMsRUFBQztBQUFoQixPQUFnQyxLQUFLM0QsS0FBTCxDQUFXMkQsTUFBM0MsQ0FGMUIsQ0FGSixFQU1LLEtBQUszRCxLQUFMLENBQVc0RCxRQUFYLElBQXVCO0FBQUssZUFBUyxFQUFDO0FBQWYsaUJBQ1Y7QUFBTSxlQUFTLEVBQUM7QUFBaEIsY0FEVSxPQUMyQjtBQUFNLGVBQVMsRUFBQztBQUFoQixXQUQzQiw4REFONUIsQ0FKTCxDQUFQO0FBZUg7O0FBN0ZtRCIsImZpbGUiOiIuL3NyYy91aS9jdXN0b21jc3MvZWRpdG9yLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgQ2hlY2tib3ggZnJvbSBcIi4vY2hlY2tib3hcIjtcclxuXHJcbmNvbnN0IGxhbmd1YWdlcyA9IFtcImFiYXBcIiwgXCJhYmNcIiwgXCJhY3Rpb25zY3JpcHRcIiwgXCJhZGFcIiwgXCJhcGFjaGVfY29uZlwiLCBcImFzY2lpZG9jXCIsIFwiYXNzZW1ibHlfeDg2XCIsIFwiYXV0b2hvdGtleVwiLCBcImJhdGNoZmlsZVwiLCBcImJyb1wiLCBcImNfY3BwXCIsIFwiYzlzZWFyY2hcIiwgXCJjaXJydVwiLCBcImNsb2p1cmVcIiwgXCJjb2JvbFwiLCBcImNvZmZlZVwiLCBcImNvbGRmdXNpb25cIiwgXCJjc2hhcnBcIiwgXCJjc291bmRfZG9jdW1lbnRcIiwgXCJjc291bmRfb3JjaGVzdHJhXCIsIFwiY3NvdW5kX3Njb3JlXCIsIFwiY3NzXCIsIFwiY3VybHlcIiwgXCJkXCIsIFwiZGFydFwiLCBcImRpZmZcIiwgXCJkb2NrZXJmaWxlXCIsIFwiZG90XCIsIFwiZHJvb2xzXCIsIFwiZHVtbXlcIiwgXCJkdW1teXN5bnRheFwiLCBcImVpZmZlbFwiLCBcImVqc1wiLCBcImVsaXhpclwiLCBcImVsbVwiLCBcImVybGFuZ1wiLCBcImZvcnRoXCIsIFwiZm9ydHJhblwiLCBcImZ0bFwiLCBcImdjb2RlXCIsIFwiZ2hlcmtpblwiLCBcImdpdGlnbm9yZVwiLCBcImdsc2xcIiwgXCJnb2JzdG9uZXNcIiwgXCJnb2xhbmdcIiwgXCJncmFwaHFsc2NoZW1hXCIsIFwiZ3Jvb3Z5XCIsIFwiaGFtbFwiLCBcImhhbmRsZWJhcnNcIiwgXCJoYXNrZWxsXCIsIFwiaGFza2VsbF9jYWJhbFwiLCBcImhheGVcIiwgXCJoanNvblwiLCBcImh0bWxcIiwgXCJodG1sX2VsaXhpclwiLCBcImh0bWxfcnVieVwiLCBcImluaVwiLCBcImlvXCIsIFwiamFja1wiLCBcImphZGVcIiwgXCJqYXZhXCIsIFwiamF2YXNjcmlwdFwiLCBcImpzb25cIiwgXCJqc29uaXFcIiwgXCJqc3BcIiwgXCJqc3NtXCIsIFwianN4XCIsIFwianVsaWFcIiwgXCJrb3RsaW5cIiwgXCJsYXRleFwiLCBcImxlc3NcIiwgXCJsaXF1aWRcIiwgXCJsaXNwXCIsIFwibGl2ZXNjcmlwdFwiLCBcImxvZ2lxbFwiLCBcImxzbFwiLCBcImx1YVwiLCBcImx1YXBhZ2VcIiwgXCJsdWNlbmVcIiwgXCJtYWtlZmlsZVwiLCBcIm1hcmtkb3duXCIsIFwibWFza1wiLCBcIm1hdGxhYlwiLCBcIm1hemVcIiwgXCJtZWxcIiwgXCJtdXNoY29kZVwiLCBcIm15c3FsXCIsIFwibml4XCIsIFwibnNpc1wiLCBcIm9iamVjdGl2ZWNcIiwgXCJvY2FtbFwiLCBcInBhc2NhbFwiLCBcInBlcmxcIiwgXCJwZ3NxbFwiLCBcInBocFwiLCBcInBpZ1wiLCBcInBvd2Vyc2hlbGxcIiwgXCJwcmFhdFwiLCBcInByb2xvZ1wiLCBcInByb3BlcnRpZXNcIiwgXCJwcm90b2J1ZlwiLCBcInB5dGhvblwiLCBcInJcIiwgXCJyYXpvclwiLCBcInJkb2NcIiwgXCJyZWRcIiwgXCJyaHRtbFwiLCBcInJzdFwiLCBcInJ1YnlcIiwgXCJydXN0XCIsIFwic2Fzc1wiLCBcInNjYWRcIiwgXCJzY2FsYVwiLCBcInNjaGVtZVwiLCBcInNjc3NcIiwgXCJzaFwiLCBcInNqc1wiLCBcInNtYXJ0eVwiLCBcInNuaXBwZXRzXCIsIFwic295X3RlbXBsYXRlXCIsIFwic3BhY2VcIiwgXCJzcWxcIiwgXCJzcWxzZXJ2ZXJcIiwgXCJzdHlsdXNcIiwgXCJzdmdcIiwgXCJzd2lmdFwiLCBcInRjbFwiLCBcInRleFwiLCBcInRleHRcIiwgXCJ0ZXh0aWxlXCIsIFwidG9tbFwiLCBcInRzeFwiLCBcInR3aWdcIiwgXCJ0eXBlc2NyaXB0XCIsIFwidmFsYVwiLCBcInZic2NyaXB0XCIsIFwidmVsb2NpdHlcIiwgXCJ2ZXJpbG9nXCIsIFwidmhkbFwiLCBcIndvbGxva1wiLCBcInhtbFwiLCBcInhxdWVyeVwiLCBcInlhbWxcIiwgXCJkamFuZ29cIl07XHJcbmNvbnN0IHRoZW1lcyA9IFtcImNocm9tZVwiLCBcImNsb3Vkc1wiLCBcImNyaW1zb25fZWRpdG9yXCIsIFwiZGF3blwiLCBcImRyZWFtd2VhdmVyXCIsIFwiZWNsaXBzZVwiLCBcImdpdGh1YlwiLCBcImlwbGFzdGljXCIsIFwic29sYXJpemVkX2xpZ2h0XCIsIFwidGV4dG1hdGVcIiwgXCJ0b21vcnJvd1wiLCBcInhjb2RlXCIsIFwia3Vyb2lyXCIsIFwia2F0emVubWlsY2hcIiwgXCJzcWxzZXJ2ZXJcIiwgXCJhbWJpYW5jZVwiLCBcImNoYW9zXCIsIFwiY2xvdWRzX21pZG5pZ2h0XCIsIFwiY29iYWx0XCIsIFwiZ3J1dmJveFwiLCBcImdvYlwiLCBcImlkbGVfZmluZ2Vyc1wiLCBcImtyX3RoZW1lXCIsIFwibWVyYml2b3JlXCIsIFwibWVyYml2b3JlX3NvZnRcIiwgXCJtb25vX2luZHVzdHJpYWxcIiwgXCJtb25va2FpXCIsIFwicGFzdGVsX29uX2RhcmtcIiwgXCJzb2xhcml6ZWRfZGFya1wiLCBcInRlcm1pbmFsXCIsIFwidG9tb3Jyb3dfbmlnaHRcIiwgXCJ0b21vcnJvd19uaWdodF9ibHVlXCIsIFwidG9tb3Jyb3dfbmlnaHRfYnJpZ2h0XCIsIFwidG9tb3Jyb3dfbmlnaHRfZWlnaHRpZXNcIiwgXCJ0d2lsaWdodFwiLCBcInZpYnJhbnRfaW5rXCJdO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29kZUVkaXRvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgZ2V0IGRlZmF1bHRJZCgpIHtyZXR1cm4gXCJiZC1lZGl0b3JcIjt9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgZm9yIChjb25zdCBidXR0b24gb2YgdGhpcy5wcm9wcy5idXR0b25zKSB7XHJcbiAgICAgICAgICAgIGlmIChidXR0b24ub25DbGljayA9PSBcInNob3dTZXR0aW5nc1wiKSBidXR0b24ub25DbGljayA9IHRoaXMuc2hvd1NldHRpbmdzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByb3BzLnRoZW1lID0gdGhpcy5wcm9wcy50aGVtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyAvZywgXCJfXCIpO1xyXG4gICAgICAgIGlmICghdGhlbWVzLmluY2x1ZGVzKHRoaXMucHJvcHMudGhlbWUpKSB0aGlzLnByb3BzLnRoZW1lID0gdGhpcy5kZWZhdWx0UHJvcHMudGhlbWU7XHJcblxyXG4gICAgICAgIHRoaXMucHJvcHMubGFuZ3VhZ2UgPSB0aGlzLnByb3BzLmxhbmd1YWdlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvIC9nLCBcIl9cIik7XHJcbiAgICAgICAgaWYgKCFsYW5ndWFnZXMuaW5jbHVkZXModGhpcy5wcm9wcy5sYW5ndWFnZSkpIHRoaXMucHJvcHMubGFuZ3VhZ2UgPSB0aGlzLmRlZmF1bHRQcm9wcy5sYW5ndWFnZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0IGRlZmF1bHRQcm9wcygpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBidXR0b25zOiBbXSxcclxuICAgICAgICAgICAgY2hlY2tib3hlczogW10sXHJcbiAgICAgICAgICAgIHRoZW1lOiBcIm1vbm9rYWlcIixcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6IFwiY3NzXCIsXHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmRlZmF1bHRJZCxcclxuICAgICAgICAgICAgZm9udFNpemU6IDE0XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0IHRoZW1lcygpIHtyZXR1cm4gdGhlbWVzO31cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICB0aGlzLmVkaXRvciA9IGFjZS5lZGl0KHRoaXMucHJvcHMuaWQpO1xyXG5cclxuICAgICAgICAvLyBBZGQgaWQgdG8gdGhlIGFjZSBtZW51IGNvbnRhaW5lclxyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU2hvdyA9IHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYztcclxuICAgICAgICB0aGlzLmVkaXRvci5rZXlCaW5kaW5nLiRkZWZhdWx0SGFuZGxlci5jb21tYW5kcy5zaG93U2V0dGluZ3NNZW51LmV4ZWMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgb3JpZ2luYWxTaG93LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCB8fCAhKG11dGF0aW9uLmFkZGVkTm9kZXNbMF0gaW5zdGFuY2VvZiBFbGVtZW50KSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUucGFyZW50RWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSB8fCAhbm9kZS5xdWVyeVNlbGVjdG9yKFwiI2FjZV9zZXR0aW5nc21lbnVcIikpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaWQgPSBcImFjZV9zZXR0aW5nc21lbnVfY29udGFpbmVyXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7Y2hpbGRMaXN0OiB0cnVlfSk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VGhlbWUoYGFjZS90aGVtZS8ke3RoaXMucHJvcHMudGhlbWV9YCk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2Vzc2lvbi5zZXRNb2RlKGBhY2UvbW9kZS8ke3RoaXMucHJvcHMubGFuZ3VhZ2V9YCk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0U2hvd1ByaW50TWFyZ2luKGZhbHNlKTtcclxuICAgICAgICB0aGlzLmVkaXRvci5zZXRGb250U2l6ZSh0aGlzLnByb3BzLmZvbnRTaXplKTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRvci5vbihcImNoYW5nZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpIHtyZXR1cm4gdGhpcy5lZGl0b3Iuc2Vzc2lvbi5nZXRWYWx1ZSgpO31cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyh0aGlzLmVkaXRvcik7fVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuXHJcbiAgICAgICAgY29uc3QgYnV0dG9ucyA9IHRoaXMucHJvcHMuYnV0dG9ucy5tYXAoYnV0dG9uID0+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIiBvbkNsaWNrPXsoZXZlbnQpID0+IHtidXR0b24ub25DbGljayhldmVudCwgdGhpcy52YWx1ZSk7fX0+e2J1dHRvbi5sYWJlbH08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgY2hlY2tib3hlcyA9IHRoaXMucHJvcHMuY2hlY2tib3hlcy5tYXAoY2hlY2tib3ggPT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tib3ggdGV4dD17Y2hlY2tib3gubGFiZWx9IG9uQ2hhbmdlPXtjaGVja2JveC5vbkNoYW5nZX0gY2hlY2tlZD17Y2hlY2tib3guY2hlY2tlZH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9XCJiZC1lZGl0b3ItcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVkaXRvci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT1cImVkaXRvclwiPnt0aGlzLnByb3BzLnZhbHVlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJiZC1lZGl0b3ItY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2NoZWNrYm94ZXMubGVuZ3RoICYmIDxkaXYgY2xhc3NOYW1lPVwiY2hlY2tib3gtZ3JvdXBcIj57Y2hlY2tib3hlc308L2Rpdj59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJiZC1lZGl0b3ItYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2J1dHRvbnN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5ub3RpY2UgJiYgPHNwYW4gY2xhc3NOYW1lPVwic21hbGwtbm90aWNlXCI+e3RoaXMucHJvcHMubm90aWNlfTwvc3Bhbj59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93SGVscCAmJiA8ZGl2IGNsYXNzTmFtZT1cImhlbHAtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByZXNzIDxjb2RlIGNsYXNzTmFtZT1cImlubGluZVwiPmN0cmw8L2NvZGU+Kzxjb2RlIGNsYXNzTmFtZT1cImlubGluZVwiPiw8L2NvZGU+IHdpdGggdGhlIGVkaXRvciBmb2N1c2VkIHRvIGFjY2VzcyB0aGUgZWRpdG9yJmFwb3M7cyBzZXR0aW5ncy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/customcss/editor.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CodeEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkbox */ \"./src/ui/customcss/checkbox.jsx\");\nfunction _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); }\n\n\n\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nconst languages = [\"abap\", \"abc\", \"actionscript\", \"ada\", \"apache_conf\", \"asciidoc\", \"assembly_x86\", \"autohotkey\", \"batchfile\", \"bro\", \"c_cpp\", \"c9search\", \"cirru\", \"clojure\", \"cobol\", \"coffee\", \"coldfusion\", \"csharp\", \"csound_document\", \"csound_orchestra\", \"csound_score\", \"css\", \"curly\", \"d\", \"dart\", \"diff\", \"dockerfile\", \"dot\", \"drools\", \"dummy\", \"dummysyntax\", \"eiffel\", \"ejs\", \"elixir\", \"elm\", \"erlang\", \"forth\", \"fortran\", \"ftl\", \"gcode\", \"gherkin\", \"gitignore\", \"glsl\", \"gobstones\", \"golang\", \"graphqlschema\", \"groovy\", \"haml\", \"handlebars\", \"haskell\", \"haskell_cabal\", \"haxe\", \"hjson\", \"html\", \"html_elixir\", \"html_ruby\", \"ini\", \"io\", \"jack\", \"jade\", \"java\", \"javascript\", \"json\", \"jsoniq\", \"jsp\", \"jssm\", \"jsx\", \"julia\", \"kotlin\", \"latex\", \"less\", \"liquid\", \"lisp\", \"livescript\", \"logiql\", \"lsl\", \"lua\", \"luapage\", \"lucene\", \"makefile\", \"markdown\", \"mask\", \"matlab\", \"maze\", \"mel\", \"mushcode\", \"mysql\", \"nix\", \"nsis\", \"objectivec\", \"ocaml\", \"pascal\", \"perl\", \"pgsql\", \"php\", \"pig\", \"powershell\", \"praat\", \"prolog\", \"properties\", \"protobuf\", \"python\", \"r\", \"razor\", \"rdoc\", \"red\", \"rhtml\", \"rst\", \"ruby\", \"rust\", \"sass\", \"scad\", \"scala\", \"scheme\", \"scss\", \"sh\", \"sjs\", \"smarty\", \"snippets\", \"soy_template\", \"space\", \"sql\", \"sqlserver\", \"stylus\", \"svg\", \"swift\", \"tcl\", \"tex\", \"text\", \"textile\", \"toml\", \"tsx\", \"twig\", \"typescript\", \"vala\", \"vbscript\", \"velocity\", \"verilog\", \"vhdl\", \"wollok\", \"xml\", \"xquery\", \"yaml\", \"django\"];\nconst themes = [\"chrome\", \"clouds\", \"crimson_editor\", \"dawn\", \"dreamweaver\", \"eclipse\", \"github\", \"iplastic\", \"solarized_light\", \"textmate\", \"tomorrow\", \"xcode\", \"kuroir\", \"katzenmilch\", \"sqlserver\", \"ambiance\", \"chaos\", \"clouds_midnight\", \"cobalt\", \"gruvbox\", \"gob\", \"idle_fingers\", \"kr_theme\", \"merbivore\", \"merbivore_soft\", \"mono_industrial\", \"monokai\", \"pastel_on_dark\", \"solarized_dark\", \"terminal\", \"tomorrow_night\", \"tomorrow_night_blue\", \"tomorrow_night_bright\", \"tomorrow_night_eighties\", \"twilight\", \"vibrant_ink\"];\nclass CodeEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n static get defaultId() {\n return \"bd-editor\";\n }\n\n constructor(props) {\n super(props);\n\n for (const control of this.props.controls) {\n if (control.type == \"checkbox\") continue;\n if (control.onClick == \"showSettings\") control.onClick = this.showSettings.bind(this);\n }\n\n this.props.theme = this.props.theme.toLowerCase().replace(/ /g, \"_\");\n if (!themes.includes(this.props.theme)) this.props.theme = CodeEditor.defaultProps.theme;\n this.props.language = this.props.language.toLowerCase().replace(/ /g, \"_\");\n if (!languages.includes(this.props.language)) this.props.language = CodeEditor.defaultProps.language;\n this.onChange = this.onChange.bind(this);\n }\n\n static get defaultProps() {\n return {\n controls: [],\n theme: \"bd-monokai\",\n language: \"css\",\n id: this.defaultId,\n fontSize: 14\n };\n }\n\n static get themes() {\n return themes;\n }\n\n componentDidMount() {\n this.editor = ace.edit(this.props.id); // Add id to the ace menu container\n\n const originalShow = this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec;\n\n this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec = function () {\n originalShow.apply(this, arguments);\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n if (node.parentElement !== document.body || !node.querySelector(\"#ace_settingsmenu\")) continue;\n node.id = \"ace_settingsmenu_container\";\n observer.disconnect();\n }\n });\n observer.observe(document.body, {\n childList: true\n });\n };\n\n const theme = this.props.theme == CodeEditor.defaultProps.theme ? this.props.theme.split(\"-\")[1] : this.props.theme;\n this.editor.setTheme(`ace/theme/${theme}`);\n this.editor.session.setMode(`ace/mode/${this.props.language}`);\n this.editor.setShowPrintMargin(false);\n this.editor.setFontSize(this.props.fontSize);\n this.editor.on(\"change\", this.onChange);\n }\n\n componentWillUnmount() {\n this.editor.destroy();\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n set value(newValue) {\n this.editor.setValue(newValue);\n }\n\n onChange() {\n if (this.props.onChange) this.props.onChange(this.value);\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n resize() {\n return this.editor.resize();\n }\n\n buildControl(control) {\n if (control.type == \"checkbox\") return this.makeCheckbox(control);\n return this.makeButton(control);\n }\n\n makeCheckbox(checkbox) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_checkbox__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: checkbox.label,\n onChange: checkbox.onChange,\n checked: checkbox.checked\n });\n }\n\n makeButton(button) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: button.tooltip\n }, props => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", _extends({}, props, {\n className: \"btn btn-primary\",\n onClick: event => {\n button.onClick(event, this.value);\n }\n }), button.label);\n });\n }\n\n render() {\n if (this.editor && this.editor.resize) this.editor.resize();\n const controlsLeft = this.props.controls.filter(c => c.side != \"right\").map(this.buildControl.bind(this));\n const controlsRight = this.props.controls.filter(c => c.side == \"right\").map(this.buildControl.bind(this));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-panel\",\n className: this.props.theme\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-controls\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"controls-section controls-left\"\n }, controlsLeft), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"controls-section controls-right\"\n }, controlsRight)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"editor-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: \"editor \" + this.props.theme\n }, this.props.value)));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9lZGl0b3IuanN4P2ZmZTIiXSwibmFtZXMiOlsiVG9vbHRpcCIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlEaXNwbGF5TmFtZSIsImxhbmd1YWdlcyIsInRoZW1lcyIsIkNvZGVFZGl0b3IiLCJSZWFjdCIsIkNvbXBvbmVudCIsImRlZmF1bHRJZCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJjb250cm9sIiwiY29udHJvbHMiLCJ0eXBlIiwib25DbGljayIsInNob3dTZXR0aW5ncyIsImJpbmQiLCJ0aGVtZSIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsImluY2x1ZGVzIiwiZGVmYXVsdFByb3BzIiwibGFuZ3VhZ2UiLCJvbkNoYW5nZSIsImlkIiwiZm9udFNpemUiLCJjb21wb25lbnREaWRNb3VudCIsImVkaXRvciIsImFjZSIsImVkaXQiLCJvcmlnaW5hbFNob3ciLCJrZXlCaW5kaW5nIiwiJGRlZmF1bHRIYW5kbGVyIiwiY29tbWFuZHMiLCJzaG93U2V0dGluZ3NNZW51IiwiZXhlYyIsImFwcGx5IiwiYXJndW1lbnRzIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJhZGRlZE5vZGVzIiwibGVuZ3RoIiwiRWxlbWVudCIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwiZG9jdW1lbnQiLCJib2R5IiwicXVlcnlTZWxlY3RvciIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3BsaXQiLCJzZXRUaGVtZSIsInNlc3Npb24iLCJzZXRNb2RlIiwic2V0U2hvd1ByaW50TWFyZ2luIiwic2V0Rm9udFNpemUiLCJvbiIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZGVzdHJveSIsInZhbHVlIiwiZ2V0VmFsdWUiLCJuZXdWYWx1ZSIsInNldFZhbHVlIiwicmVzaXplIiwiYnVpbGRDb250cm9sIiwibWFrZUNoZWNrYm94IiwibWFrZUJ1dHRvbiIsImNoZWNrYm94IiwibGFiZWwiLCJjaGVja2VkIiwiYnV0dG9uIiwidG9vbHRpcCIsImV2ZW50IiwicmVuZGVyIiwiY29udHJvbHNMZWZ0IiwiZmlsdGVyIiwiYyIsInNpZGUiLCJtYXAiLCJjb250cm9sc1JpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUVBO0FBRUEsTUFBTUEsT0FBTyxHQUFHQyxzREFBYyxDQUFDQyxnQkFBZixDQUFnQyxTQUFoQyxDQUFoQjtBQUVBLE1BQU1DLFNBQVMsR0FBRyxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCLGNBQWhCLEVBQWdDLEtBQWhDLEVBQXVDLGFBQXZDLEVBQXNELFVBQXRELEVBQWtFLGNBQWxFLEVBQWtGLFlBQWxGLEVBQWdHLFdBQWhHLEVBQTZHLEtBQTdHLEVBQW9ILE9BQXBILEVBQTZILFVBQTdILEVBQXlJLE9BQXpJLEVBQWtKLFNBQWxKLEVBQTZKLE9BQTdKLEVBQXNLLFFBQXRLLEVBQWdMLFlBQWhMLEVBQThMLFFBQTlMLEVBQXdNLGlCQUF4TSxFQUEyTixrQkFBM04sRUFBK08sY0FBL08sRUFBK1AsS0FBL1AsRUFBc1EsT0FBdFEsRUFBK1EsR0FBL1EsRUFBb1IsTUFBcFIsRUFBNFIsTUFBNVIsRUFBb1MsWUFBcFMsRUFBa1QsS0FBbFQsRUFBeVQsUUFBelQsRUFBbVUsT0FBblUsRUFBNFUsYUFBNVUsRUFBMlYsUUFBM1YsRUFBcVcsS0FBclcsRUFBNFcsUUFBNVcsRUFBc1gsS0FBdFgsRUFBNlgsUUFBN1gsRUFBdVksT0FBdlksRUFBZ1osU0FBaFosRUFBMlosS0FBM1osRUFBa2EsT0FBbGEsRUFBMmEsU0FBM2EsRUFBc2IsV0FBdGIsRUFBbWMsTUFBbmMsRUFBMmMsV0FBM2MsRUFBd2QsUUFBeGQsRUFBa2UsZUFBbGUsRUFBbWYsUUFBbmYsRUFBNmYsTUFBN2YsRUFBcWdCLFlBQXJnQixFQUFtaEIsU0FBbmhCLEVBQThoQixlQUE5aEIsRUFBK2lCLE1BQS9pQixFQUF1akIsT0FBdmpCLEVBQWdrQixNQUFoa0IsRUFBd2tCLGFB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TUFBTCxJQUFlLEtBQUtBLE1BQUwsQ0FBWXVDLE1BQS9CLEVBQXVDLEtBQUt2QyxNQUFMLENBQVl1QyxNQUFaO0FBRXZDLFVBQU1XLFlBQVksR0FBRyxLQUFLbkUsS0FBTCxDQUFXRSxRQUFYLENBQW9Ca0UsTUFBcEIsQ0FBMkJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxJQUFGLElBQVUsT0FBMUMsRUFBbURDLEdBQW5ELENBQXVELEtBQUtkLFlBQUwsQ0FBa0JuRCxJQUFsQixDQUF1QixJQUF2QixDQUF2RCxDQUFyQjtBQUNBLFVBQU1rRSxhQUFhLEdBQUcsS0FBS3hFLEtBQUwsQ0FBV0UsUUFBWCxDQUFvQmtFLE1BQXBCLENBQTJCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsSUFBRixJQUFVLE9BQTFDLEVBQW1EQyxHQUFuRCxDQUF1RCxLQUFLZCxZQUFMLENBQWtCbkQsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBdkQsQ0FBdEI7QUFFQSxXQUFPO0FBQUssUUFBRSxFQUFDLGlCQUFSO0FBQTBCLGVBQVMsRUFBRSxLQUFLTixLQUFMLENBQVdPO0FBQWhELE9BQ0s7QUFBSyxRQUFFLEVBQUM7QUFBUixPQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FDSzRELFlBREwsQ0FESixFQUlJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FDS0ssYUFETCxDQUpKLENBREwsRUFTSztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxRQUFFLEVBQUUsS0FBS3hFLEtBQUwsQ0FBV2MsRUFBcEI7QUFBd0IsZUFBUyxFQUFFLFlBQVksS0FBS2QsS0FBTCxDQUFXTztBQUExRCxPQUFrRSxLQUFLUCxLQUFMLENBQVdvRCxLQUE3RSxDQURKLENBVEwsQ0FBUDtBQWFIOztBQS9HbUQiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2VkaXRvci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBDaGVja2JveCBmcm9tIFwiLi9jaGVja2JveFwiO1xyXG5cclxuY29uc3QgVG9vbHRpcCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO1xyXG5cclxuY29uc3QgbGFuZ3VhZ2VzID0gW1wiYWJhcFwiLCBcImFiY1wiLCBcImFjdGlvbnNjcmlwdFwiLCBcImFkYVwiLCBcImFwYWNoZV9jb25mXCIsIFwiYXNjaWlkb2NcIiwgXCJhc3NlbWJseV94ODZcIiwgXCJhdXRvaG90a2V5XCIsIFwiYmF0Y2hmaWxlXCIsIFwiYnJvXCIsIFwiY19jcHBcIiwgXCJjOXNlYXJjaFwiLCBcImNpcnJ1XCIsIFwiY2xvanVyZVwiLCBcImNvYm9sXCIsIFwiY29mZmVlXCIsIFwiY29sZGZ1c2lvblwiLCBcImNzaGFycFwiLCBcImNzb3VuZF9kb2N1bWVudFwiLCBcImNzb3VuZF9vcmNoZXN0cmFcIiwgXCJjc291bmRfc2NvcmVcIiwgXCJjc3NcIiwgXCJjdXJseVwiLCBcImRcIiwgXCJkYXJ0XCIsIFwiZGlmZlwiLCBcImRvY2tlcmZpbGVcIiwgXCJkb3RcIiwgXCJkcm9vbHNcIiwgXCJkdW1teVwiLCBcImR1bW15c3ludGF4XCIsIFwiZWlmZmVsXCIsIFwiZWpzXCIsIFwiZWxpeGlyXCIsIFwiZWxtXCIsIFwiZXJsYW5nXCIsIFwiZm9ydGhcIiwgXCJmb3J0cmFuXCIsIFwiZnRsXCIsIFwiZ2NvZGVcIiwgXCJnaGVya2luXCIsIFwiZ2l0aWdub3JlXCIsIFwiZ2xzbFwiLCBcImdvYnN0b25lc1wiLCBcImdvbGFuZ1wiLCBcImdyYXBocWxzY2hlbWFcIiwgXCJncm9vdnlcIiwgXCJoYW1sXCIsIFwiaGFuZGxlYmFyc1wiLCBcImhhc2tlbGxcIiwgXCJoYXNrZWxsX2NhYmFsXCIsIFwiaGF4ZVwiLCBcImhqc29uXCIsIFwiaHRtbFwiLCBcImh0bWxfZWxpeGlyXCIsIFwiaHRtbF9ydWJ5XCIsIFwiaW5pXCIsIFwiaW9cIiwgXCJqYWNrXCIsIFwiamFkZVwiLCBcImphdmFcIiwgXCJqYXZhc2NyaXB0XCIsIFwianNvblwiLCBcImpzb25pcVwiLCBcImpzcFwiLCBcImpzc21cIiwgXCJqc3hcIiwgXCJqdWxpYVwiLCBcImtvdGxpblwiLCBcImxhdGV4XCIsIFwibGVzc1wiLCBcImxpcXVpZFwiLCBcImxpc3BcIiwgXCJsaXZlc2NyaXB0XCIsIFwibG9naXFsXCIsIFwibHNsXCIsIFwibHVhXCIsIFwibHVhcGFnZVwiLCBcImx1Y2VuZVwiLCBcIm1ha2VmaWxlXCIsIFwibWFya2Rvd25cIiwgXCJtYXNrXCIsIFwibWF0bGFiXCIsIFwibWF6ZVwiLCBcIm1lbFwiLCBcIm11c2hjb2RlXCIsIFwibXlzcWxcIiwgXCJuaXhcIiwgXCJuc2lzXCIsIFwib2JqZWN0aXZlY1wiLCBcIm9jYW1sXCIsIFwicGFzY2FsXCIsIFwicGVybFwiLCBcInBnc3FsXCIsIFwicGhwXCIsIFwicGlnXCIsIFwicG93ZXJzaGVsbFwiLCBcInByYWF0XCIsIFwicHJvbG9nXCIsIFwicHJvcGVydGllc1wiLCBcInByb3RvYnVmXCIsIFwicHl0aG9uXCIsIFwiclwiLCBcInJhem9yXCIsIFwicmRvY1wiLCBcInJlZFwiLCBcInJodG1sXCIsIFwicnN0XCIsIFwicnVieVwiLCBcInJ1c3RcIiwgXCJzYXNzXCIsIFwic2NhZFwiLCBcInNjYWxhXCIsIFwic2NoZW1lXCIsIFwic2Nzc1wiLCBcInNoXCIsIFwic2pzXCIsIFwic21hcnR5XCIsIFwic25pcHBldHNcIiwgXCJzb3lfdGVtcGxhdGVcIiwgXCJzcGFjZVwiLCBcInNxbFwiLCBcInNxbHNlcnZlclwiLCBcInN0eWx1c1wiLCBcInN2Z1wiLCBcInN3aWZ0XCIsIFwidGNsXCIsIFwidGV4XCIsIFwidGV4dFwiLCBcInRleHRpbGVcIiwgXCJ0b21sXCIsIFwidHN4XCIsIFwidHdpZ1wiLCBcInR5cGVzY3JpcHRcIiwgXCJ2YWxhXCIsIFwidmJzY3JpcHRcIiwgXCJ2ZWxvY2l0eVwiLCBcInZlcmlsb2dcIiwgXCJ2aGRsXCIsIFwid29sbG9rXCIsIFwieG1sXCIsIFwieHF1ZXJ5XCIsIFwieWFtbFwiLCBcImRqYW5nb1wiXTtcclxuY29uc3QgdGhlbWVzID0gW1wiY2hyb21lXCIsIFwiY2xvdWRzXCIsIFwiY3JpbXNvbl9lZGl0b3JcIiwgXCJkYXduXCIsIFwiZHJlYW13ZWF2ZXJcIiwgXCJlY2xpcHNlXCIsIFwiZ2l0aHViXCIsIFwiaXBsYXN0aWNcIiwgXCJzb2xhcml6ZWRfbGlnaHRcIiwgXCJ0ZXh0bWF0ZVwiLCBcInRvbW9ycm93XCIsIFwieGNvZGVcIiwgXCJrdXJvaXJcIiwgXCJrYXR6ZW5taWxjaFwiLCBcInNxbHNlcnZlclwiLCBcImFtYmlhbmNlXCIsIFwiY2hhb3NcIiwgXCJjbG91ZHNfbWlkbmlnaHRcIiwgXCJjb2JhbHRcIiwgXCJncnV2Ym94XCIsIFwiZ29iXCIsIFwiaWRsZV9maW5nZXJzXCIsIFwia3JfdGhlbWVcIiwgXCJtZXJiaXZvcmVcIiwgXCJtZXJiaXZvcmVfc29mdFwiLCBcIm1vbm9faW5kdXN0cmlhbFwiLCBcIm1vbm9rYWlcIiwgXCJwYXN0ZWxfb25fZGFya1wiLCBcInNvbGFyaXplZF9kYXJrXCIsIFwidGVybWluYWxcIiwgXCJ0b21vcnJvd19uaWdodFwiLCBcInRvbW9ycm93X25pZ2h0X2JsdWVcIiwgXCJ0b21vcnJvd19uaWdodF9icmlnaHRcIiwgXCJ0b21vcnJvd19uaWdodF9laWdodGllc1wiLCBcInR3aWxpZ2h0XCIsIFwidmlicmFudF9pbmtcIl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2RlRWRpdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBnZXQgZGVmYXVsdElkKCkge3JldHVybiBcImJkLWVkaXRvclwiO31cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICBcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5wcm9wcy5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC50eXBlID09IFwiY2hlY2tib3hcIikgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sLm9uQ2xpY2sgPT0gXCJzaG93U2V0dGluZ3NcIikgY29udHJvbC5vbkNsaWNrID0gdGhpcy5zaG93U2V0dGluZ3MuYmluZCh0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJvcHMudGhlbWUgPSB0aGlzLnByb3BzLnRoZW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvIC9nLCBcIl9cIik7XHJcbiAgICAgICAgaWYgKCF0aGVtZXMuaW5jbHVkZXModGhpcy5wcm9wcy50aGVtZSkpIHRoaXMucHJvcHMudGhlbWUgPSBDb2RlRWRpdG9yLmRlZmF1bHRQcm9wcy50aGVtZTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9wcy5sYW5ndWFnZSA9IHRoaXMucHJvcHMubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8gL2csIFwiX1wiKTtcclxuICAgICAgICBpZiAoIWxhbmd1YWdlcy5pbmNsdWRlcyh0aGlzLnByb3BzLmxhbmd1YWdlKSkgdGhpcy5wcm9wcy5sYW5ndWFnZSA9IENvZGVFZGl0b3IuZGVmYXVsdFByb3BzLmxhbmd1YWdlO1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgZGVmYXVsdFByb3BzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGNvbnRyb2xzOiBbXSxcclxuICAgICAgICAgICAgdGhlbWU6IFwiYmQtbW9ub2thaVwiLFxyXG4gICAgICAgICAgICBsYW5ndWFnZTogXCJjc3NcIixcclxuICAgICAgICAgICAgaWQ6IHRoaXMuZGVmYXVsdElkLFxyXG4gICAgICAgICAgICBmb250U2l6ZTogMTRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgdGhlbWVzKCkge3JldHVybiB0aGVtZXM7fVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yID0gYWNlLmVkaXQodGhpcy5wcm9wcy5pZCk7XHJcblxyXG4gICAgICAgIC8vIEFkZCBpZCB0byB0aGUgYWNlIG1lbnUgY29udGFpbmVyXHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTaG93ID0gdGhpcy5lZGl0b3Iua2V5QmluZGluZy4kZGVmYXVsdEhhbmRsZXIuY29tbWFuZHMuc2hvd1NldHRpbmdzTWVudS5leGVjO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBvcmlnaW5hbFNob3cuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoIHx8ICEobXV0YXRpb24uYWRkZWROb2Rlc1swXSBpbnN0YW5jZW9mIEVsZW1lbnQpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5wYXJlbnRFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5IHx8ICFub2RlLnF1ZXJ5U2VsZWN0b3IoXCIjYWNlX3NldHRpbmdzbWVudVwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5pZCA9IFwiYWNlX3NldHRpbmdzbWVudV9jb250YWluZXJcIjtcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGlsZExpc3Q6IHRydWV9KTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0aGVtZSA9IHRoaXMucHJvcHMudGhlbWUgPT0gQ29kZUVkaXRvci5kZWZhdWx0UHJvcHMudGhlbWUgPyB0aGlzLnByb3BzLnRoZW1lLnNwbGl0KFwiLVwiKVsxXSA6IHRoaXMucHJvcHMudGhlbWU7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VGhlbWUoYGFjZS90aGVtZS8ke3RoZW1lfWApO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNlc3Npb24uc2V0TW9kZShgYWNlL21vZGUvJHt0aGlzLnByb3BzLmxhbmd1YWdlfWApO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFNob3dQcmludE1hcmdpbihmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0Rm9udFNpemUodGhpcy5wcm9wcy5mb250U2l6ZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iub24oXCJjaGFuZ2VcIiwgdGhpcy5vbkNoYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpIHtyZXR1cm4gdGhpcy5lZGl0b3Iuc2Vzc2lvbi5nZXRWYWx1ZSgpO31cclxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyh0aGlzLmVkaXRvcik7fVxyXG4gICAgcmVzaXplKCkge3JldHVybiB0aGlzLmVkaXRvci5yZXNpemUoKTt9XHJcblxyXG4gICAgYnVpbGRDb250cm9sKGNvbnRyb2wpIHtcclxuICAgICAgICBpZiAoY29udHJvbC50eXBlID09IFwiY2hlY2tib3hcIikgcmV0dXJuIHRoaXMubWFrZUNoZWNrYm94KGNvbnRyb2wpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1ha2VCdXR0b24oY29udHJvbCk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUNoZWNrYm94KGNoZWNrYm94KSB7XHJcbiAgICAgICAgcmV0dXJuIDxDaGVja2JveCB0ZXh0PXtjaGVja2JveC5sYWJlbH0gb25DaGFuZ2U9e2NoZWNrYm94Lm9uQ2hhbmdlfSBjaGVja2VkPXtjaGVja2JveC5jaGVja2VkfSAvPjtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlQnV0dG9uKGJ1dHRvbikge1xyXG4gICAgICAgIHJldHVybiA8VG9vbHRpcCBjb2xvcj1cImJsYWNrXCIgcG9zaXRpb249XCJ0b3BcIiB0ZXh0PXtidXR0b24udG9vbHRpcH0+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxidXR0b24gey4uLnByb3BzfSBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIiBvbkNsaWNrPXsoZXZlbnQpID0+IHtidXR0b24ub25DbGljayhldmVudCwgdGhpcy52YWx1ZSk7fX0+e2J1dHRvbi5sYWJlbH08L2J1dHRvbj47XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD47XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLmVkaXRvci5yZXNpemUpIHRoaXMuZWRpdG9yLnJlc2l6ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBjb250cm9sc0xlZnQgPSB0aGlzLnByb3BzLmNvbnRyb2xzLmZpbHRlcihjID0+IGMuc2lkZSAhPSBcInJpZ2h0XCIpLm1hcCh0aGlzLmJ1aWxkQ29udHJvbC5iaW5kKHRoaXMpKTtcclxuICAgICAgICBjb25zdCBjb250cm9sc1JpZ2h0ID0gdGhpcy5wcm9wcy5jb250cm9scy5maWx0ZXIoYyA9PiBjLnNpZGUgPT0gXCJyaWdodFwiKS5tYXAodGhpcy5idWlsZENvbnRyb2wuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHJldHVybiA8ZGl2IGlkPVwiYmQtZWRpdG9yLXBhbmVsXCIgY2xhc3NOYW1lPXt0aGlzLnByb3BzLnRoZW1lfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYmQtZWRpdG9yLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udHJvbHMtc2VjdGlvbiBjb250cm9scy1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udHJvbHNMZWZ0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250cm9scy1zZWN0aW9uIGNvbnRyb2xzLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udHJvbHNSaWdodH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlZGl0b3Itd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXt0aGlzLnByb3BzLmlkfSBjbGFzc05hbWU9e1wiZWRpdG9yIFwiICsgdGhpcy5wcm9wcy50aGVtZX0+e3RoaXMucHJvcHMudmFsdWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/customcss/editor.jsx\n"); /***/ }), @@ -591,6 +579,30 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), +/***/ "./src/ui/floating/container.jsx": +/*!***************************************!*\ + !*** ./src/ui/floating/container.jsx ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./window */ \"./src/ui/floating/window.jsx\");\n\n\n\nclass FloatingWindowContainer extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n windows: []\n };\n }\n\n render() {\n return this.state.windows.map(window => modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_window__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n onResize: window.onResize,\n close: this.close.bind(this, window.id),\n title: window.title,\n id: window.id,\n height: window.height,\n width: window.width,\n center: window.center,\n resizable: window.resizable\n }, window.children));\n }\n\n open(window) {\n this.setState({\n windows: [...this.state.windows, window]\n }); // this.windows.push(window);\n // this.forceUpdate();\n }\n\n close(id) {\n this.setState({\n windows: this.state.windows.filter(w => {\n if (w.id == id && w.onClose) w.onClose();\n return w.id != id;\n })\n }); // const index = this.windows.findIndex(w => w.id == id);\n // if (index < 0) return;\n // this.windows.splice(index, 1);\n // this.forceUpdate();\n }\n\n static get id() {\n return \"floating-windows\";\n }\n\n static get root() {\n if (this._root) return this._root;\n const container = document.createElement(\"div\");\n container.id = this.id;\n document.body.append(container);\n return this._root = container;\n }\n\n}\n\nconst containerRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\nconst container = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(FloatingWindowContainer, {\n ref: containerRef\n}); // ReactDOM.render(container, FloatingWindowContainer.root);\n\nconst App = document.querySelector(\".app-19_DXt\").__reactInternalInstance$.return.return.return.return.return.return.return.return.return;\n\nmodules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].monkeyPatch(App.type.prototype, \"render\", {\n after: data => {\n data.returnValue.props.children.props.children.props.children.props.children[4].props.children[1].props.children.push(container);\n }\n});\nApp.stateNode.forceUpdate();\n/* harmony default export */ __webpack_exports__[\"default\"] = (containerRef.current); // patch App component\n//\n//document.querySelector(\".app-19_DXt\").__reactInternalInstance$.return.return.return.return.return.return.return.return.return.type\n//props.children.props.children.props.children.props.children[4].props.children[1].props.children[\"\"0\"\"].push( SELF )\n// forceupdate app component//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Zsb2F0aW5nL2NvbnRhaW5lci5qc3g/MTU2OSJdLCJuYW1lcyI6WyJGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwid2luZG93cyIsInJlbmRlciIsIm1hcCIsIndpbmRvdyIsIm9uUmVzaXplIiwiY2xvc2UiLCJiaW5kIiwiaWQiLCJ0aXRsZSIsImhlaWdodCIsIndpZHRoIiwiY2VudGVyIiwicmVzaXphYmxlIiwiY2hpbGRyZW4iLCJvcGVuIiwic2V0U3RhdGUiLCJmaWx0ZXIiLCJ3Iiwib25DbG9zZSIsInJvb3QiLCJfcm9vdCIsImNvbnRhaW5lciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJvZHkiLCJhcHBlbmQiLCJjb250YWluZXJSZWYiLCJjcmVhdGVSZWYiLCJBcHAiLCJxdWVyeVNlbGVjdG9yIiwiX19yZWFjdEludGVybmFsSW5zdGFuY2UkIiwicmV0dXJuIiwiVXRpbGl0aWVzIiwibW9ua2V5UGF0Y2giLCJ0eXBlIiwicHJvdG90eXBlIiwiYWZ0ZXIiLCJkYXRhIiwicmV0dXJuVmFsdWUiLCJwdXNoIiwic3RhdGVOb2RlIiwiZm9yY2VVcGRhdGUiLCJjdXJyZW50Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBOztBQUVBLE1BQU1BLHVCQUFOLFNBQXNDQyw2Q0FBSyxDQUFDQyxTQUE1QyxDQUFzRDtBQUVsREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQUNDLGFBQU8sRUFBRTtBQUFWLEtBQWI7QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBTyxLQUFLRixLQUFMLENBQVdDLE9BQVgsQ0FBbUJFLEdBQW5CLENBQXVCQyxNQUFNLElBQ2hDLDREQUFDLCtDQUFEO0FBQWdCLGNBQVEsRUFBRUEsTUFBTSxDQUFD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IiwiZmlsZSI6Ii4vc3JjL3VpL2Zsb2F0aW5nL2NvbnRhaW5lci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBVdGlsaXRpZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRmxvYXRpbmdXaW5kb3cgZnJvbSBcIi4vd2luZG93XCI7XHJcblxyXG5jbGFzcyBGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt3aW5kb3dzOiBbXX07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLndpbmRvd3MubWFwKHdpbmRvdyA9PiBcclxuICAgICAgICAgICAgPEZsb2F0aW5nV2luZG93IG9uUmVzaXplPXt3aW5kb3cub25SZXNpemV9IGNsb3NlPXt0aGlzLmNsb3NlLmJpbmQodGhpcywgd2luZG93LmlkKX0gdGl0bGU9e3dpbmRvdy50aXRsZX0gaWQ9e3dpbmRvdy5pZH0gaGVpZ2h0PXt3aW5kb3cuaGVpZ2h0fSB3aWR0aD17d2luZG93LndpZHRofSBjZW50ZXI9e3dpbmRvdy5jZW50ZXJ9IHJlc2l6YWJsZT17d2luZG93LnJlc2l6YWJsZX0+XHJcbiAgICAgICAgICAgICAgICAgICAge3dpbmRvdy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgPC9GbG9hdGluZ1dpbmRvdz4gICAgXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuKHdpbmRvdykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB3aW5kb3dzOiBbLi4udGhpcy5zdGF0ZS53aW5kb3dzLCB3aW5kb3ddXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gdGhpcy53aW5kb3dzLnB1c2god2luZG93KTtcclxuICAgICAgICAvLyB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoaWQpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgd2luZG93czogdGhpcy5zdGF0ZS53aW5kb3dzLmZpbHRlcih3ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh3LmlkID09IGlkICYmIHcub25DbG9zZSkgdy5vbkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdy5pZCAhPSBpZDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBjb25zdCBpbmRleCA9IHRoaXMud2luZG93cy5maW5kSW5kZXgodyA9PiB3LmlkID09IGlkKTtcclxuICAgICAgICAvLyBpZiAoaW5kZXggPCAwKSByZXR1cm47XHJcbiAgICAgICAgLy8gdGhpcy53aW5kb3dzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgLy8gdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgaWQoKSB7cmV0dXJuIFwiZmxvYXRpbmctd2luZG93c1wiO31cclxuICAgIHN0YXRpYyBnZXQgcm9vdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5fcm9vdCkgcmV0dXJuIHRoaXMuX3Jvb3Q7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICBjb250YWluZXIuaWQgPSB0aGlzLmlkO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGNvbnRhaW5lcik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QgPSBjb250YWluZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGNvbnRhaW5lclJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5jb25zdCBjb250YWluZXIgPSA8RmxvYXRpbmdXaW5kb3dDb250YWluZXIgcmVmPXtjb250YWluZXJSZWZ9IC8+O1xyXG4vLyBSZWFjdERPTS5yZW5kZXIoY29udGFpbmVyLCBGbG9hdGluZ1dpbmRvd0NvbnRhaW5lci5yb290KTtcclxuY29uc3QgQXBwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAtMTlfRFh0XCIpLl9fcmVhY3RJbnRlcm5hbEluc3RhbmNlJC5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybjtcclxuVXRpbGl0aWVzLm1vbmtleVBhdGNoKEFwcC50eXBlLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge2FmdGVyOiAoZGF0YSkgPT4ge1xyXG4gICAgZGF0YS5yZXR1cm5WYWx1ZS5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jaGlsZHJlbls0XS5wcm9wcy5jaGlsZHJlblsxXS5wcm9wcy5jaGlsZHJlbi5wdXNoKGNvbnRhaW5lcik7XHJcbn19KTtcclxuQXBwLnN0YXRlTm9kZS5mb3JjZVVwZGF0ZSgpO1xyXG5leHBvcnQgZGVmYXVsdCBjb250YWluZXJSZWYuY3VycmVudDtcclxuXHJcbi8vIHBhdGNoIEFwcCBjb21wb25lbnRcclxuLy9cclxuLy9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmFwcC0xOV9EWHRcIikuX19yZWFjdEludGVybmFsSW5zdGFuY2UkLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnR5cGVcclxuLy9wcm9wcy5jaGlsZHJlbi5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jaGlsZHJlbls0XS5wcm9wcy5jaGlsZHJlblsxXS5wcm9wcy5jaGlsZHJlbltcIlwiMFwiXCJdLnB1c2goIFNFTEYgKVxyXG4vLyBmb3JjZXVwZGF0ZSBhcHAgY29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/floating/container.jsx\n"); + +/***/ }), + +/***/ "./src/ui/floating/window.jsx": +/*!************************************!*\ + !*** ./src/ui/floating/window.jsx ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FloatingWindow; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n\n\n\nclass Screen {\n /** Document/window width */\n static get width() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n /** Document/window height */\n\n\n static get height() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n }\n\n}\n\nclass FloatingWindow extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.props.forceTheme = \"dont-transform\"; // this.state = {x: 0, y: 0};\n\n this.offX = 0;\n this.offY = 0;\n this.titlebar = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.window = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.close = this.close.bind(this);\n this.onDrag = this.onDrag.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragStop = this.onDragStop.bind(this);\n this.onResizeStart = this.onResizeStart.bind(this);\n }\n\n componentDidMount() {\n if (this.props.isPopout) {\n // console.log(this);\n const popout = this._reactInternalFiber.return.return.return.return.stateNode; //_reactInternalFiber.return.return.return.return.stateNode\n\n setImmediate(() => {\n document.removeEventListener(\"click\", popout.close, true);\n if (!this.props.close) this.props.close = popout.close;\n });\n }\n\n this.window.current.addEventListener(\"mousedown\", this.onResizeStart, false);\n this.titlebar.current.addEventListener(\"mousedown\", this.onDragStart, false);\n document.addEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n onResizeStart() {\n this.currentWidth = this.window.current.style.width;\n this.currentHeight = this.window.current.style.height;\n }\n\n onDragStop() {\n // e.preventDefault();\n // e.stopPropagation();\n document.removeEventListener(\"mousemove\", this.onDrag, true);\n\n if (this.props.onResize) {\n const width = this.window.current.style.width;\n const height = this.window.current.style.height;\n if (width != this.currentWidth || height != this.currentHeight) this.props.onResize();\n this.currentWidth = width;\n this.currentHeight = height;\n }\n }\n\n onDragStart(e) {\n // e.preventDefault();\n // e.stopPropagation();\n const div = this.window.current; // console.log(div.offsetTop, div.offsetLeft);\n\n this.offY = e.clientY - parseInt(div.offsetTop);\n this.offX = e.clientX - parseInt(div.offsetLeft);\n document.addEventListener(\"mousemove\", this.onDrag, true);\n }\n\n onDrag(e) {\n // e.preventDefault();\n // e.stopPropagation();\n const div = this.window.current;\n div.style.position = \"fixed\";\n div.style.top = e.clientY - this.offY + \"px\";\n div.style.left = e.clientX - this.offX + \"px\";\n }\n\n componentWillUnmount() {\n this.titlebar.current.removeEventListener(\"mousedown\", this.onDragStart, false);\n document.removeEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n render() {\n const top = this.props.center ? Screen.height / 2 - this.props.height / 2 : this.props.top;\n const left = this.props.center ? Screen.width / 2 - this.props.width / 2 : this.props.left; // console.log(top, left);\n\n const className = `floating-window ${this.props.className || \"\"} ${this.props.resizable ? \"resizable\" : \"\"}`;\n const styles = {\n height: this.props.height,\n width: this.props.width,\n left: left || 0,\n top: top || 0\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: className,\n ref: this.window,\n style: styles\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-titlebar\",\n ref: this.titlebar\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"title\"\n }, this.props.title), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-buttons\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"button close-button\",\n onClick: this.close\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-content\"\n }, this.props.children));\n }\n\n close() {\n // console.log(\"click close\");\n if (this.props.close) this.props.close();\n }\n\n} //target, props (with render), key, event\n// function addListeners(){\n// document.getElementById('test').addEventListener('mousedown', mouseDown, false);\n// window.addEventListener('mouseup', mouseUp, false);\n// }\n// function mouseUp()\n// {\n// window.removeEventListener('mousemove', divMove, true);\n// }\n// function mouseDown(e){\n// var div = document.getElementById('test');\n// offY= e.clientY-parseInt(div.offsetTop);\n// offX= e.clientX-parseInt(div.offsetLeft);\n// window.addEventListener('mousemove', divMove, true);\n// }\n// function divMove(e){\n// var div = document.getElementById('test');\n// div.style.position = 'absolute';\n// div.style.top = (e.clientY-offY) + 'px';\n// div.style.left = (e.clientX-offX) + 'px';\n// }\n// const test = {\n// animationType: \"default\",\n// arrowAlignment: \"top\",\n// backdrop: false,\n// clickPos: 74,\n// closeOnScroll: false,\n// containerClass: undefined,\n// dependsOn: undefined,\n// forceTheme: undefined,\n// key: \"floating-window\",\n// offsetX: 15,\n// offsetY: 0,\n// position: \"left\",\n// preventCloseFromModal: false,\n// preventClickPropagation: true,\n// preventInvert: false,\n// render: function() {\n// console.log(arguments);\n// return DiscordModules.React.createElement(\"div\", Object.assign({}, arguments[0], {className: \"testme\", id: \"test\"}));\n// },\n// shadow: false,\n// showArrow: false,\n// target: $(\"div.memberOnline-1CIh-0.member-3W1lQa.da-memberOnline.da-member\")[0],\n// targetHeight: 40,\n// targetWidth: 224,\n// x: 1211,\n// y: 357,\n// zIndexBoost: 0\n// }\n// modaltest = function() {\n// console.log(arguments);\n// return DiscordModules.React.createElement(\"div\", Object.assign({}, arguments[0], {className: \"testme\", id: \"test\"}));\n// }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Zsb2F0aW5nL3dpbmRvdy5qc3g/Y2YzZCJdLCJuYW1lcyI6WyJTY3JlZW4iLCJ3aWR0aCIsIk1hdGgiLCJtYXgiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwid2luZG93IiwiaW5uZXJXaWR0aCIsImhlaWdodCIsImNsaWVudEhlaWdodCIsImlubmVySGVpZ2h0IiwiRmxvYXRpbmdXaW5kb3ciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJmb3JjZVRoZW1lIiwib2ZmWCIsIm9mZlkiLCJ0aXRsZWJhciIsImNyZWF0ZVJlZiIsImNsb3NlIiwiYmluZCIsIm9uRHJhZyIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnU3RvcCIsIm9uUmVzaXplU3RhcnQiLCJjb21wb25lbnREaWRNb3VudCIsImlzUG9wb3V0IiwicG9wb3V0IiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsInJldHVybiIsInN0YXRlTm9kZSIsInNldEltbWVkaWF0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImN1cnJlbnRXaWR0aCIsInN0eWxlIiwiY3VycmVudEhlaWdodCIsIm9uUmVzaXplIiwiZSIsImRpdiIsImNsaWVudFkiLCJwYXJzZUludCIsIm9mZnNldFRvcCIsImNsaWVudFgiLCJvZmZzZXRMZWZ0IiwicG9zaXRpb24iLCJ0b3AiLCJsZWZ0IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW5kZXIiLCJjZW50ZXIiLCJjbGFzc05hbWUiLCJyZXNpemFibGUiLCJzdHlsZXMiLCJpZCIsInRpdGxlIiwiY2hpbGRyZW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTs7QUFFQSxNQUFNQSxNQUFOLENBQWE7QUFDVDtBQUNBLGFBQVdDLEtBQVgsR0FBbUI7QUFBRSxXQUFPQyxJQUFJLENBQUNDLEdBQUws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LE1BQXhEO0FBQWdFLFdBQUssRUFBRWtEO0FBQXZFLE9BQ0s7QUFBSyxlQUFTLEVBQUMsMEJBQWY7QUFBMEMsU0FBRyxFQUFFLEtBQUtyQztBQUFwRCxPQUNJO0FBQU0sZUFBUyxFQUFDO0FBQWhCLE9BQXlCLEtBQUtKLEtBQUwsQ0FBVzJDLEtBQXBDLENBREosRUFFSTtBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxlQUFTLEVBQUMscUJBQWY7QUFBcUMsYUFBTyxFQUFFLEtBQUtyQztBQUFuRCxPQUNJLDREQUFDLG9EQUFELE9BREosQ0FESixDQUZKLENBREwsRUFTSztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0ssS0FBS04sS0FBTCxDQUFXNEMsUUFEaEIsQ0FUTCxDQUFQO0FBYUg7O0FBRUR0QyxPQUFLLEdBQUc7QUFDSjtBQUNBLFFBQUksS0FBS04sS0FBTCxDQUFXTSxLQUFmLEVBQXNCLEtBQUtOLEtBQUwsQ0FBV00sS0FBWDtBQUN6Qjs7QUF2R3VELEMsQ0F5RzVEO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL3NyYy91aS9mbG9hdGluZy93aW5kb3cuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBDbG9zZUJ1dHRvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2VcIjtcclxuXHJcbmNsYXNzIFNjcmVlbiB7XHJcbiAgICAvKiogRG9jdW1lbnQvd2luZG93IHdpZHRoICovXHJcbiAgICBzdGF0aWMgZ2V0IHdpZHRoKCkgeyByZXR1cm4gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTsgfVxyXG4gICAgLyoqIERvY3VtZW50L3dpbmRvdyBoZWlnaHQgKi9cclxuICAgIHN0YXRpYyBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCwgd2luZG93LmlubmVySGVpZ2h0IHx8IDApOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsb2F0aW5nV2luZG93IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9wcy5mb3JjZVRoZW1lID0gXCJkb250LXRyYW5zZm9ybVwiO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnN0YXRlID0ge3g6IDAsIHk6IDB9O1xyXG4gICAgICAgIHRoaXMub2ZmWCA9IDA7XHJcbiAgICAgICAgdGhpcy5vZmZZID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy50aXRsZWJhciA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG4gICAgICAgIHRoaXMud2luZG93ID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2UgPSB0aGlzLmNsb3NlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vbkRyYWcgPSB0aGlzLm9uRHJhZy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub25EcmFnU3RhcnQgPSB0aGlzLm9uRHJhZ1N0YXJ0LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vbkRyYWdTdG9wID0gdGhpcy5vbkRyYWdTdG9wLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vblJlc2l6ZVN0YXJ0ID0gdGhpcy5vblJlc2l6ZVN0YXJ0LmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaXNQb3BvdXQpIHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBvcG91dCA9IHRoaXMuX3JlYWN0SW50ZXJuYWxGaWJlci5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4uc3RhdGVOb2RlOy8vX3JlYWN0SW50ZXJuYWxGaWJlci5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4uc3RhdGVOb2RlXHJcbiAgICAgICAgICAgIHNldEltbWVkaWF0ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgcG9wb3V0LmNsb3NlLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wcm9wcy5jbG9zZSkgdGhpcy5wcm9wcy5jbG9zZSA9IHBvcG91dC5jbG9zZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLndpbmRvdy5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vblJlc2l6ZVN0YXJ0LCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy50aXRsZWJhci5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbkRyYWdTdGFydCwgZmFsc2UpO1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMub25EcmFnU3RvcCwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVzaXplU3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50V2lkdGggPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLndpZHRoO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEhlaWdodCA9IHRoaXMud2luZG93LmN1cnJlbnQuc3R5bGUuaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHJhZ1N0b3AoKSB7XHJcbiAgICAgICAgLy8gZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIC8vIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLm9uRHJhZywgdHJ1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZXNpemUpIHtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLndpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLmhlaWdodDtcclxuICAgICAgICAgICAgaWYgKHdpZHRoICE9IHRoaXMuY3VycmVudFdpZHRoIHx8IGhlaWdodCAhPSB0aGlzLmN1cnJlbnRIZWlnaHQpIHRoaXMucHJvcHMub25SZXNpemUoKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRyYWdTdGFydChlKSB7XHJcbiAgICAgICAgLy8gZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIC8vIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRpdiA9IHRoaXMud2luZG93LmN1cnJlbnQ7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coZGl2Lm9mZnNldFRvcCwgZGl2Lm9mZnNldExlZnQpO1xyXG4gICAgICAgIHRoaXMub2ZmWSA9IGUuY2xpZW50WSAtIHBhcnNlSW50KGRpdi5vZmZzZXRUb3ApO1xyXG4gICAgICAgIHRoaXMub2ZmWCA9IGUuY2xpZW50WCAtIHBhcnNlSW50KGRpdi5vZmZzZXRMZWZ0KTtcclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMub25EcmFnLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRyYWcoZSkge1xyXG4gICAgICAgIC8vIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAvLyBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGNvbnN0IGRpdiA9IHRoaXMud2luZG93LmN1cnJlbnQ7XHJcbiAgICAgICAgZGl2LnN0eWxlLnBvc2l0aW9uID0gXCJmaXhlZFwiO1xyXG4gICAgICAgIGRpdi5zdHlsZS50b3AgPSAoZS5jbGllbnRZIC0gdGhpcy5vZmZZKSArIFwicHhcIjtcclxuICAgICAgICBkaXYuc3R5bGUubGVmdCA9IChlLmNsaWVudFggLSB0aGlzLm9mZlgpICsgXCJweFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgICAgIHRoaXMudGl0bGViYXIuY3VycmVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25EcmFnU3RhcnQsIGZhbHNlKTtcclxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCB0aGlzLm9uRHJhZ1N0b3AsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy5wcm9wcy5jZW50ZXIgPyAoU2NyZWVuLmhlaWdodCAvIDIpIC0gKHRoaXMucHJvcHMuaGVpZ2h0IC8gMikgOiB0aGlzLnByb3BzLnRvcDtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gdGhpcy5wcm9wcy5jZW50ZXIgPyAoU2NyZWVuLndpZHRoIC8gMikgLSAodGhpcy5wcm9wcy53aWR0aCAvIDIpIDogdGhpcy5wcm9wcy5sZWZ0IDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0b3AsIGxlZnQpO1xyXG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGBmbG9hdGluZy13aW5kb3cgJHt0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwifSAke3RoaXMucHJvcHMucmVzaXphYmxlID8gXCJyZXNpemFibGVcIiA6IFwiXCJ9YDtcclxuICAgICAgICBjb25zdCBzdHlsZXMgPSB7aGVpZ2h0OiB0aGlzLnByb3BzLmhlaWdodCwgd2lkdGg6IHRoaXMucHJvcHMud2lkdGgsIGxlZnQ6IGxlZnQgfHwgMCwgdG9wOiB0b3AgfHwgMH07XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSByZWY9e3RoaXMud2luZG93fSBzdHlsZT17c3R5bGVzfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy10aXRsZWJhclwiIHJlZj17dGhpcy50aXRsZWJhcn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpdGxlXCI+e3RoaXMucHJvcHMudGl0bGV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbiBjbG9zZS1idXR0b25cIiBvbkNsaWNrPXt0aGlzLmNsb3NlfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2xvc2VCdXR0b24gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlKCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiY2xpY2sgY2xvc2VcIik7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY2xvc2UpIHRoaXMucHJvcHMuY2xvc2UoKTtcclxuICAgIH1cclxufVxyXG4vL3RhcmdldCwgcHJvcHMgKHdpdGggcmVuZGVyKSwga2V5LCBldmVudFxyXG4vLyBmdW5jdGlvbiBhZGRMaXN0ZW5lcnMoKXtcclxuLy8gICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgbW91c2VEb3duLCBmYWxzZSk7XHJcbi8vICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG1vdXNlVXAsIGZhbHNlKTtcclxuXHJcbi8vIH1cclxuXHJcbi8vIGZ1bmN0aW9uIG1vdXNlVXAoKVxyXG4vLyB7XHJcbi8vICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZGl2TW92ZSwgdHJ1ZSk7XHJcbi8vIH1cclxuXHJcbi8vIGZ1bmN0aW9uIG1vdXNlRG93bihlKXtcclxuLy8gICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTtcclxuLy8gICBvZmZZPSBlLmNsaWVudFktcGFyc2VJbnQoZGl2Lm9mZnNldFRvcCk7XHJcbi8vICAgb2ZmWD0gZS5jbGllbnRYLXBhcnNlSW50KGRpdi5vZmZzZXRMZWZ0KTtcclxuLy8gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBkaXZNb3ZlLCB0cnVlKTtcclxuLy8gfVxyXG5cclxuLy8gZnVuY3Rpb24gZGl2TW92ZShlKXtcclxuLy8gICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpO1xyXG4vLyAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbi8vICAgZGl2LnN0eWxlLnRvcCA9IChlLmNsaWVudFktb2ZmWSkgKyAncHgnO1xyXG4vLyAgIGRpdi5zdHlsZS5sZWZ0ID0gKGUuY2xpZW50WC1vZmZYKSArICdweCc7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHRlc3QgPSB7XHJcbi8vIGFuaW1hdGlvblR5cGU6IFwiZGVmYXVsdFwiLFxyXG4vLyBhcnJvd0FsaWdubWVudDogXCJ0b3BcIixcclxuLy8gYmFja2Ryb3A6IGZhbHNlLFxyXG4vLyBjbGlja1BvczogNzQsXHJcbi8vIGNsb3NlT25TY3JvbGw6IGZhbHNlLFxyXG4vLyBjb250YWluZXJDbGFzczogdW5kZWZpbmVkLFxyXG4vLyBkZXBlbmRzT246IHVuZGVmaW5lZCxcclxuLy8gZm9yY2VUaGVtZTogdW5kZWZpbmVkLFxyXG4vLyBrZXk6IFwiZmxvYXRpbmctd2luZG93XCIsXHJcbi8vIG9mZnNldFg6IDE1LFxyXG4vLyBvZmZzZXRZOiAwLFxyXG4vLyBwb3NpdGlvbjogXCJsZWZ0XCIsXHJcbi8vIHByZXZlbnRDbG9zZUZyb21Nb2RhbDogZmFsc2UsXHJcbi8vIHByZXZlbnRDbGlja1Byb3BhZ2F0aW9uOiB0cnVlLFxyXG4vLyBwcmV2ZW50SW52ZXJ0OiBmYWxzZSxcclxuLy8gcmVuZGVyOiBmdW5jdGlvbigpIHtcclxuLy8gICAgIGNvbnNvbGUubG9nKGFyZ3VtZW50cyk7XHJcbi8vICAgICByZXR1cm4gRGlzY29yZE1vZHVsZXMuUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBhcmd1bWVudHNbMF0sIHtjbGFzc05hbWU6IFwidGVzdG1lXCIsIGlkOiBcInRlc3RcIn0pKTtcclxuLy8gfSxcclxuLy8gc2hhZG93OiBmYWxzZSxcclxuLy8gc2hvd0Fycm93OiBmYWxzZSxcclxuLy8gdGFyZ2V0OiAkKFwiZGl2Lm1lbWJlck9ubGluZS0xQ0loLTAubWVtYmVyLTNXMWxRYS5kYS1tZW1iZXJPbmxpbmUuZGEtbWVtYmVyXCIpWzBdLFxyXG4vLyB0YXJnZXRIZWlnaHQ6IDQwLFxyXG4vLyB0YXJnZXRXaWR0aDogMjI0LFxyXG4vLyB4OiAxMjExLFxyXG4vLyB5OiAzNTcsXHJcbi8vIHpJbmRleEJvb3N0OiAwXHJcbi8vIH1cclxuXHJcbi8vIG1vZGFsdGVzdCA9IGZ1bmN0aW9uKCkge1xyXG4vLyAgICAgY29uc29sZS5sb2coYXJndW1lbnRzKTtcclxuLy8gICAgIHJldHVybiBEaXNjb3JkTW9kdWxlcy5SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGFyZ3VtZW50c1swXSwge2NsYXNzTmFtZTogXCJ0ZXN0bWVcIiwgaWQ6IFwidGVzdFwifSkpO1xyXG4vLyB9Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/floating/window.jsx\n"); + +/***/ }), + /***/ "./src/ui/icons/bdlogo.jsx": /*!*********************************!*\ !*** ./src/ui/icons/bdlogo.jsx ***! @@ -615,6 +627,42 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), +/***/ "./src/ui/icons/cog.jsx": +/*!******************************!*\ + !*** ./src/ui/icons/cog.jsx ***! + \******************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Cog; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Cog extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"20px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 20 20\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2NvZy5qc3g/MGFiZCJdLCJuYW1lcyI6WyJDb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLEdBQU4sU0FBa0JDLDZDQUFLLENBQUNDLFNBQXhCLENBQWtDO0FBQzdDQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDRSxhQUFLLEVBQUVGLElBQVI7QUFBY0csY0FBTSxFQUFFSDtBQUF0QjtBQUFoQyxPQUNDO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRkQsQ0FBUDtBQUlIOztBQVA0QyIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9jb2cuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjIwcHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDIwdjIwSDBWMHpcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS45NSAxMC43OGMuMDMtLjI1LjA1LS41MS4wNS0uNzhzLS4wMi0uNTMtLjA2LS43OGwxLjY5LTEuMzJjLjE1LS4xMi4xOS0uMzQuMS0uNTFsLTEuNi0yLjc3Yy0uMS0uMTgtLjMxLS4yNC0uNDktLjE4bC0xLjk5LjhjLS40Mi0uMzItLjg2LS41OC0xLjM1LS43OEwxMiAyLjM0Yy0uMDMtLjItLjItLjM0LS40LS4zNEg4LjRjLS4yIDAtLjM2LjE0LS4zOS4zNGwtLjMgMi4xMmMtLjQ5LjItLjk0LjQ3LTEuMzUuNzhsLTEuOTktLjhjLS4xOC0uMDctLjM5IDAtLjQ5LjE4bC0xLjYgMi43N2MtLjEuMTgtLjA2LjM5LjEuNTFsMS42OSAxLjMyYy0uMDQuMjUtLjA3LjUyLS4wNy43OHMuMDIuNTMuMDYuNzhMMi4zNyAxMi4xYy0uMTUuMTItLjE5LjM0LS4xLjUxbDEuNiAyLjc3Yy4xLjE4LjMxLjI0LjQ5LjE4bDEuOTktLjhjLjQyLjMyLjg2LjU4IDEuMzUuNzhsLjMgMi4xMmMuMDQuMi4yLjM0LjQuMzRoMy4yYy4yIDAgLjM3LS4xNC4zOS0uMzRsLjMtMi4xMmMuNDktLjIuOTQtLjQ3IDEuMzUtLjc4bDEuOTkuOGMuMTguMDcuMzkgMCAuNDktLjE4bDEuNi0yLjc3Yy4xLS4xOC4wNi0uMzktLjEtLjUxbC0xLjY3LTEuMzJ6TTEwIDEzYy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIiAvPlxyXG4gICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/cog.jsx\n"); + +/***/ }), + +/***/ "./src/ui/icons/detach.jsx": +/*!*********************************!*\ + !*** ./src/ui/icons/detach.jsx ***! + \*********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Detach; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Detach extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2RldGFjaC5qc3g/M2NlYSJdLCJuYW1lcyI6WyJEZXRhY2giLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDRSxhQUFLLEVBQUVGLElBQVI7QUFBY0csY0FBTSxFQUFFSDtBQUF0QjtBQUFoQyxPQUNDO0FBQU0sT0FBQyxFQUFDLGVBQVI7QUFBd0IsVUFBSSxFQUFDO0FBQTdCLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRkQsQ0FBUDtBQUlIOztBQVArQyIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9kZXRhY2guanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERldGFjaCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMTlINVY1aDdWM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6XCIgLz5cclxuICAgICAgICAgICAgICAgPC9zdmc+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/icons/detach.jsx\n"); + +/***/ }), + +/***/ "./src/ui/icons/edit.jsx": +/*!*******************************!*\ + !*** ./src/ui/icons/edit.jsx ***! + \*******************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Edit; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Edit extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2VkaXQuanN4PzQ2ZTMiXSwibmFtZXMiOlsiRWRpdCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsSUFBTixTQUFtQkMsNkNBQUssQ0FBQ0MsU0FBekIsQ0FBbUM7QUFDOUNDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssYUFBTyxFQUFDLFdBQWI7QUFBeUIsV0FBSyxFQUFFO0FBQUNFLGFBQUssRUFBRUYsSUFBUjtBQUFjRyxjQUFNLEVBQUVIO0FBQXRCO0FBQWhDLE9BQ0M7QUFBTSxPQUFDLEVBQUM7QUFBUixNQURELEVBRUM7QUFBTSxPQUFDLEVBQUMsZUFBUjtBQUF3QixVQUFJLEVBQUM7QUFBN0IsTUFGRCxDQUFQO0FBSUg7O0FBUDZDIiwiZmlsZSI6Ii4vc3JjL3VpL2ljb25zL2VkaXQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/edit.jsx\n"); + +/***/ }), + /***/ "./src/ui/icons/reload.jsx": /*!*********************************!*\ !*** ./src/ui/icons/reload.jsx ***! @@ -623,7 +671,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ReloadIcon; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ReloadIcon extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: \"bd-reload \" + this.props.className,\n onClick: this.props.onClick,\n fill: \"#dcddde\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3JlbG9hZC5qc3g/MzhiMiJdLCJuYW1lcyI6WyJSZWxvYWRJY29uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJzaXplIiwicHJvcHMiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsVUFBTixTQUF5QkMsNkNBQUssQ0FBQ0MsU0FBL0IsQ0FBeUM7QUFDcERDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssZUFBUyxFQUFFLGVBQWUsS0FBS0MsS0FBTCxDQUFXQyxTQUExQztBQUFxRCxhQUFPLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxPQUF6RTtBQUFrRixVQUFJLEVBQUMsU0FBdkY7QUFBaUcsYUFBTyxFQUFDLFdBQXpHO0FBQXFILFdBQUssRUFBRTtBQUFDQyxhQUFLLEVBQUVKLElBQVI7QUFBY0ssY0FBTSxFQUFFTDtBQUF0QjtBQUE1SCxPQUNIO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFERyxFQUVIO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BRkcsQ0FBUDtBQUlIOztBQVBtRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9yZWxvYWQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbG9hZEljb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgY2xhc3NOYW1lPXtcImJkLXJlbG9hZCBcIiArIHRoaXMucHJvcHMuY2xhc3NOYW1lfSBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2t9IGZpbGw9XCIjZGNkZGRlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiAvPlxyXG4gICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/reload.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ReloadIcon; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ReloadIcon extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n onClick: this.props.onClick,\n fill: \"#dcddde\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3JlbG9hZC5qc3g/MzhiMiJdLCJuYW1lcyI6WyJSZWxvYWRJY29uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJzaXplIiwicHJvcHMiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsVUFBTixTQUF5QkMsNkNBQUssQ0FBQ0MsU0FBL0IsQ0FBeUM7QUFDcERDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssZUFBUyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsU0FBWCxJQUF3QixFQUF4QztBQUE0QyxhQUFPLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxPQUFoRTtBQUF5RSxVQUFJLEVBQUMsU0FBOUU7QUFBd0YsYUFBTyxFQUFDLFdBQWhHO0FBQTRHLFdBQUssRUFBRTtBQUFDQyxhQUFLLEVBQUVKLElBQVI7QUFBY0ssY0FBTSxFQUFFTDtBQUF0QjtBQUFuSCxPQUNIO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFERyxFQUVIO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BRkcsQ0FBUDtBQUlIOztBQVBtRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9yZWxvYWQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbG9hZEljb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwifSBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2t9IGZpbGw9XCIjZGNkZGRlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiAvPlxyXG4gICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/reload.jsx\n"); + +/***/ }), + +/***/ "./src/ui/icons/save.jsx": +/*!*******************************!*\ + !*** ./src/ui/icons/save.jsx ***! + \*******************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Save; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Save extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3NhdmUuanN4PzU4MGYiXSwibmFtZXMiOlsiU2F2ZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsSUFBTixTQUFtQkMsNkNBQUssQ0FBQ0MsU0FBekIsQ0FBbUM7QUFDOUNDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssYUFBTyxFQUFDLFdBQWI7QUFBeUIsV0FBSyxFQUFFO0FBQUNFLGFBQUssRUFBRUYsSUFBUjtBQUFjRyxjQUFNLEVBQUVIO0FBQXRCO0FBQWhDLE9BQ0M7QUFBTSxVQUFJLEVBQUMsTUFBWDtBQUFrQixPQUFDLEVBQUM7QUFBcEIsTUFERCxFQUVDO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFGRCxDQUFQO0FBSUg7O0FBUDZDIiwiZmlsZSI6Ii4vc3JjL3VpL2ljb25zL3NhdmUuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNhdmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwVjB6XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2wtNC00em0yIDE2SDVWNWgxMS4xN0wxOSA3LjgzVjE5em0tNy03Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pNNiA2aDl2NEg2elwiIC8+XHJcbiAgICAgICAgICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/save.jsx\n"); /***/ }), @@ -663,18 +723,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), -/***/ "./src/ui/publicservers/layer.js": -/*!***************************************!*\ - !*** ./src/ui/publicservers/layer.js ***! - \***************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Layer; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Layer extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.rootRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n }\n\n componentDidMount() {\n $(window).on(`keyup.${this.props.id}`, e => {\n if (e.which === 27) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactDOM\"].unmountComponentAtNode(this.rootRef.current.parentNode);\n }\n });\n $(`#${this.props.id}`).animate({\n opacity: 1\n }, {\n step: function (now) {\n $(this).css(\"transform\", `scale(${1.1 - 0.1 * now}) translateZ(0px)`);\n },\n duration: 200,\n done: () => {\n $(`#${this.props.id}`).css(\"opacity\", \"\").css(\"transform\", \"\");\n }\n });\n }\n\n componentWillUnmount() {\n $(window).off(`keyup.${this.props.id}`);\n $(`#${this.props.id}`).animate({\n opacity: 0\n }, {\n step: function (now) {\n $(this).css(\"transform\", `scale(${1.1 - 0.1 * now}) translateZ(0px)`);\n },\n duration: 200,\n done: () => {\n $(`#${this.props.rootId}`).remove();\n }\n });\n $(\"[class*=\\\"layer-\\\"]\").removeClass(\"publicServersOpen\").animate({\n opacity: 1\n }, {\n step: function (now) {\n $(this).css(\"transform\", `scale(${0.07 * now + 0.93}) translateZ(0px)`);\n },\n duration: 200,\n done: () => {\n $(\"[class*=\\\"layer-\\\"]\").css(\"opacity\", \"\").css(\"transform\", \"\");\n }\n });\n }\n\n UNSAFE_componentWillMount() {\n $(\"[class*=\\\"layer-\\\"]\").addClass(\"publicServersOpen\").animate({\n opacity: 0\n }, {\n step: function (now) {\n $(this).css(\"transform\", `scale(${0.07 * now + 0.93}) translateZ(0px)`);\n },\n duration: 200\n });\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"layer bd-layer layer-3QrUeG\",\n id: this.props.id,\n ref: this.rootRef,\n style: {\n opacity: 0,\n transform: \"scale(1.1) translateZ(0px)\"\n }\n }, this.props.children);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbGF5ZXIuanM/MWE5YSJdLCJuYW1lcyI6WyJMYXllciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInJvb3RSZWYiLCJjcmVhdGVSZWYiLCJjb21wb25lbnREaWRNb3VudCIsIiQiLCJ3aW5kb3ciLCJvbiIsImlkIiwiZSIsIndoaWNoIiwiUmVhY3RET00iLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiY3VycmVudCIsInBhcmVudE5vZGUiLCJhbmltYXRlIiwib3BhY2l0eSIsInN0ZXAiLCJub3ciLCJjc3MiLCJkdXJhdGlvbiIsImRvbmUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9mZiIsInJvb3RJZCIsInJlbW92ZSIsInJlbW92ZUNsYXNzIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCIsImFkZENsYXNzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsInN0eWxlIiwidHJhbnNmb3JtIiwiY2hpbGRyZW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsS0FBTixTQUFvQkMsNkNBQUssQ0FBQ0MsU0FBMUIsQ0FBb0M7QUFFL0NDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLE9BQUwsR0FBZUosNkNBQUssQ0FBQ0ssU0FBTixFQUFmO0FBQ0g7O0FBRURDLG1CQUFpQixHQUFHO0FBQ2hCQyxLQUFDLENBQUNDLE1BQUQsQ0FBRCxDQUFVQyxFQUFWLENBQWMsU0FBUSxLQUFLTixLQUFMLENBQVdPLEVBQUcsRUFBcEMsRUFBdUNDLENBQUMsSUFBSTtBQUN4QyxVQUFJQSxDQUFDLENBQUNDLEtBQUYsS0FBWSxFQUFoQixFQUFvQjtBQUNoQkMsd0RBQVEsQ0FBQ0Msc0JBQVQsQ0FBZ0MsS0FBS1YsT0FBTCxDQUFhVyxPQUFiLENBQXFCQyxVQUFyRDtBQUNIO0FBQ0osS0FKRDtBQU1BVCxLQUFDLENBQUUsSUFBRyxLQUFLSixLQUFMLENBQVdPLEVBQUcsRUFBbkIsQ0FBRCxDQUF1Qk8sT0FBdkIsQ0FBK0I7QUFBQ0MsYUFBTyxFQUFFO0FBQVYsS0FBL0IsRUFBNkM7QUFDekNDLFVBQUksRUFBRSxVQUFTQyxHQUFULEVBQWM7QUFDbEJiLFNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUWMsR0FBUixDQUFZLFdBQVosRUFBMEIsU0FBUSxNQUFNLE1BQU1ELEdBQUksbUJBQWxEO0FBQ0QsT0FId0M7QUFJekNFLGNBQVEsRUFBRSxHQUorQjtBQUt6Q0MsVUFBSSxFQUFFLE1BQU07QUFBQ2hCLFNBQUMsQ0FBRSxJQUFHLEtBQUtKLEtBQUwsQ0FBV08sRUFBRyxFQUFuQixDQUFELENBQXVCVyxHQUF2QixDQUEyQixTQUEzQixFQUFzQyxFQUF0QyxFQUEwQ0EsR0FBMUMsQ0FBOEMsV0FBOUMsRUFBMkQsRUFBM0Q7QUFBZ0U7QUFMcEMsS0FBN0M7QUFPSDs7QUFFREcsc0JBQW9CLEdBQUc7QUFDbkJqQixLQUFDLENBQUNDLE1BQUQsQ0FBRCxDQUFVaUIsR0FBVixDQUFlLFNBQVEsS0FBS3RCLEtBQUwsQ0FBV08sRUFBRyxFQUFyQztBQUNBSCxLQUFDLENBQUUsSUFBRyxLQUFLSixLQUFMLENBQVdPLEVBQUcsRUFBbkIsQ0FBRCxDQUF1Qk8sT0FBdkIsQ0FBK0I7QUFBQ0MsYUFBTyxFQUFFO0FBQVYsS0FBL0IsRUFBNkM7QUFDekNDLFVBQUksRUFBRSxVQUFTQyxHQUFULEVBQWM7QUFDbEJiLFNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUWMsR0FBUixDQUFZLFdBQVosRUFBMEIsU0FBUSxNQUFNLE1BQU1ELEdBQUksbUJBQWxEO0FBQ0QsT0FId0M7QUFJekNFLGNBQVEsRUFBRSxHQUorQjtBQUt6Q0MsVUFBSSxFQUFFLE1BQU07QUFBQ2hCLFNBQUMsQ0FBRSxJQUFHLEtBQUtKLEtBQUwsQ0FBV3VCLE1BQU8sRUFBdkIsQ0FBRCxDQUEyQkMsTUFBM0I7QUFBcUM7QUFMVCxLQUE3QztBQVFBcEIsS0FBQyxDQUFDLHFCQUFELENBQUQsQ0FBeUJxQixXQUF6QixDQUFxQyxtQkFBckMsRUFBMERYLE9BQTFELENBQWtFO0FBQUNDLGFBQU8sRUFBRTtBQUFWLEtBQWxFLEVBQWdGO0FBQzVFQyxVQUFJLEVBQUUsVUFBU0MsR0FBVCxFQUFjO0FBQ2xCYixTQUFDLENBQUMsSUFBRCxDQUFELENBQVFjLEdBQVIsQ0FBWSxXQUFaLEVBQTBCLFNBQVEsT0FBT0QsR0FBUCxHQUFhLElBQUssbUJBQXBEO0FBQ0QsT0FIMkU7QUFJNUVFLGNBQVEsRUFBRSxHQUprRTtBQUs1RUMsVUFBSSxFQUFFLE1BQU07QUFBQ2hCLFNBQUMsQ0FBQyxxQkFBRCxDQUFELENBQXlCYyxHQUF6QixDQUE2QixTQUE3QixFQUF3QyxFQUF4QyxFQUE0Q0EsR0FBNUMsQ0FBZ0QsV0FBaEQsRUFBNkQsRUFBN0Q7QUFBa0U7QUFMSCxLQUFoRjtBQVFIOztBQUVEUSwyQkFBeUIsR0FBRztBQUN4QnRCLEtBQUMsQ0FBQyxxQkFBRCxDQUFELENBQXlCdUIsUUFBekIsQ0FBa0MsbUJBQWxDLEVBQXVEYixPQUF2RCxDQUErRDtBQUFDQyxhQUFPLEVBQUU7QUFBVixLQUEvRCxFQUE2RTtBQUN6RUMsVUFBSSxFQUFFLFVBQVNDLEdBQVQsRUFBYztBQUNsQmIsU0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRYyxHQUFSLENBQVksV0FBWixFQUEwQixTQUFRLE9BQU9ELEdBQVAsR0FBYSxJQUFLLG1CQUFwRDtBQUNELE9BSHdFO0FBSXpFRSxjQUFRLEVBQUU7QUFKK0QsS0FBN0U7QUFNSDs7QUFFRFMsUUFBTSxHQUFHO0FBQ0wsV0FBTy9CLDZDQUFLLENBQUNnQyxhQUFOLENBQ0gsS0FERyxFQUVIO0FBQUNDLGVBQVMsRUFBRSw2QkFBWjtBQUEyQ3ZCLFFBQUUsRUFBRSxLQUFLUCxLQUFMLENBQVdPLEVBQTFEO0FBQThEd0IsU0FBRyxFQUFFLEtBQUs5QixPQUF4RTtBQUFpRitCLFdBQUssRUFBRTtBQUFDakIsZUFBTyxFQUFFLENBQVY7QUFBYWtCLGlCQUFTLEVBQUU7QUFBeEI7QUFBeEYsS0FGRyxFQUdILEtBQUtqQyxLQUFMLENBQVdrQyxRQUhSLENBQVA7QUFLSDs7QUExRDhDIiwiZmlsZSI6Ii4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbGF5ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBSZWFjdERPTX0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExheWVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnJvb3RSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICAkKHdpbmRvdykub24oYGtleXVwLiR7dGhpcy5wcm9wcy5pZH1gLCBlID0+IHtcclxuICAgICAgICAgICAgaWYgKGUud2hpY2ggPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMucm9vdFJlZi5jdXJyZW50LnBhcmVudE5vZGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQoYCMke3RoaXMucHJvcHMuaWR9YCkuYW5pbWF0ZSh7b3BhY2l0eTogMX0sIHtcclxuICAgICAgICAgICAgc3RlcDogZnVuY3Rpb24obm93KSB7XHJcbiAgICAgICAgICAgICAgJCh0aGlzKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgYHNjYWxlKCR7MS4xIC0gMC4xICogbm93fSkgdHJhbnNsYXRlWigwcHgpYCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAsXHJcbiAgICAgICAgICAgIGRvbmU6ICgpID0+IHskKGAjJHt0aGlzLnByb3BzLmlkfWApLmNzcyhcIm9wYWNpdHlcIiwgXCJcIikuY3NzKFwidHJhbnNmb3JtXCIsIFwiXCIpO31cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICAkKHdpbmRvdykub2ZmKGBrZXl1cC4ke3RoaXMucHJvcHMuaWR9YCk7XHJcbiAgICAgICAgJChgIyR7dGhpcy5wcm9wcy5pZH1gKS5hbmltYXRlKHtvcGFjaXR5OiAwfSwge1xyXG4gICAgICAgICAgICBzdGVwOiBmdW5jdGlvbihub3cpIHtcclxuICAgICAgICAgICAgICAkKHRoaXMpLmNzcyhcInRyYW5zZm9ybVwiLCBgc2NhbGUoJHsxLjEgLSAwLjEgKiBub3d9KSB0cmFuc2xhdGVaKDBweClgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZHVyYXRpb246IDIwMCxcclxuICAgICAgICAgICAgZG9uZTogKCkgPT4geyQoYCMke3RoaXMucHJvcHMucm9vdElkfWApLnJlbW92ZSgpO31cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJChcIltjbGFzcyo9XFxcImxheWVyLVxcXCJdXCIpLnJlbW92ZUNsYXNzKFwicHVibGljU2VydmVyc09wZW5cIikuYW5pbWF0ZSh7b3BhY2l0eTogMX0sIHtcclxuICAgICAgICAgICAgc3RlcDogZnVuY3Rpb24obm93KSB7XHJcbiAgICAgICAgICAgICAgJCh0aGlzKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgYHNjYWxlKCR7MC4wNyAqIG5vdyArIDAuOTN9KSB0cmFuc2xhdGVaKDBweClgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZHVyYXRpb246IDIwMCxcclxuICAgICAgICAgICAgZG9uZTogKCkgPT4geyQoXCJbY2xhc3MqPVxcXCJsYXllci1cXFwiXVwiKS5jc3MoXCJvcGFjaXR5XCIsIFwiXCIpLmNzcyhcInRyYW5zZm9ybVwiLCBcIlwiKTt9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSB7XHJcbiAgICAgICAgJChcIltjbGFzcyo9XFxcImxheWVyLVxcXCJdXCIpLmFkZENsYXNzKFwicHVibGljU2VydmVyc09wZW5cIikuYW5pbWF0ZSh7b3BhY2l0eTogMH0sIHtcclxuICAgICAgICAgICAgc3RlcDogZnVuY3Rpb24obm93KSB7XHJcbiAgICAgICAgICAgICAgJCh0aGlzKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgYHNjYWxlKCR7MC4wNyAqIG5vdyArIDAuOTN9KSB0cmFuc2xhdGVaKDBweClgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZHVyYXRpb246IDIwMFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJsYXllciBiZC1sYXllciBsYXllci0zUXJVZUdcIiwgaWQ6IHRoaXMucHJvcHMuaWQsIHJlZjogdGhpcy5yb290UmVmLCBzdHlsZToge29wYWNpdHk6IDAsIHRyYW5zZm9ybTogXCJzY2FsZSgxLjEpIHRyYW5zbGF0ZVooMHB4KVwifX0sXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/publicservers/layer.js\n"); - -/***/ }), - /***/ "./src/ui/publicservers/menu.js": /*!**************************************!*\ !*** ./src/ui/publicservers/menu.js ***! @@ -683,19 +731,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServers; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _sidebarview__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidebarview */ \"./src/ui/publicservers/sidebarview.js\");\n/* harmony import */ var _exitbutton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./exitbutton */ \"./src/ui/publicservers/exitbutton.js\");\n/* harmony import */ var _tabbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tabbar */ \"./src/ui/publicservers/tabbar.js\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.js\");\n\n\n\n\n\n\nclass PublicServers extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedCategory: -1,\n title: \"Loading...\",\n loading: true,\n servers: [],\n next: null,\n connection: {\n state: 0,\n user: null\n }\n };\n this.close = this.close.bind(this);\n this.changeCategory = this.changeCategory.bind(this);\n this.search = this.search.bind(this);\n this.searchKeyDown = this.searchKeyDown.bind(this);\n this.checkConnection = this.checkConnection.bind(this);\n this.join = this.join.bind(this);\n this.connect = this.connect.bind(this);\n this.GuildStore = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getGuilds\");\n this.AvatarDefaults = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getUserAvatarURL\", \"DEFAULT_AVATARS\");\n this.InviteActions = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"acceptInvite\");\n this.SortedGuildStore = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getSortedGuilds\");\n }\n\n componentDidMount() {\n this.checkConnection();\n }\n\n close() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactDOM\"].unmountComponentAtNode(document.getElementById(this.props.rootId));\n }\n\n search(query, clear) {\n const self = this;\n $.ajax({\n method: \"GET\",\n url: `${self.endPoint}${query}${query ? \"&schema=new\" : \"?schema=new\"}`,\n success: data => {\n let servers = data.results.reduce((arr, server) => {\n server.joined = false;\n arr.push(server); // arr.push();\n\n return arr;\n }, []);\n\n if (!clear) {\n servers = self.state.servers.concat(servers);\n } else {//servers.unshift(self.bdServer);\n }\n\n let end = data.size + data.from;\n data.next = `?from=${end}`;\n if (self.state.term) data.next += `&term=${self.state.term}`;\n if (self.state.selectedCategory) data.next += `&category=${self.categoryButtons[self.state.selectedCategory]}`;\n\n if (end >= data.total) {\n end = data.total;\n data.next = null;\n }\n\n let title = `Showing 1-${end} of ${data.total} results in ${self.categoryButtons[self.state.selectedCategory]}`;\n if (self.state.term) title += ` for ${self.state.term}`;\n self.setState({\n loading: false,\n title: title,\n servers: servers,\n next: data.next\n });\n\n if (clear) {\n //console.log(self);\n self.refs.sbv.refs.contentScroller.scrollTop = 0;\n }\n },\n error: () => {\n self.setState({\n loading: false,\n title: \"Failed to load servers. Check console for details\"\n });\n }\n });\n }\n\n join(serverCard) {\n if (serverCard.props.pinned) return this.InviteActions.acceptInvite(serverCard.props.invite_code);\n $.ajax({\n method: \"GET\",\n url: `${this.joinEndPoint}/${serverCard.props.server.identifier}`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\",\n \"x-discord-token\": this.state.connection.user.accessToken\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: () => {\n serverCard.setState({\n joined: true\n });\n }\n });\n }\n\n connect() {\n const options = this.windowOptions;\n options.x = Math.round(window.screenX + window.innerWidth / 2 - options.width / 2);\n options.y = Math.round(window.screenY + window.innerHeight / 2 - options.height / 2);\n this.joinWindow = new (window.require(\"electron\").remote.BrowserWindow)(options);\n const url = \"https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=https://auth.discordservers.com/info\";\n this.joinWindow.webContents.on(\"did-navigate\", (event, url) => {\n if (url != \"https://auth.discordservers.com/info\") return;\n this.joinWindow.close();\n this.checkConnection();\n });\n this.joinWindow.loadURL(url);\n }\n\n get windowOptions() {\n return {\n width: 500,\n height: 550,\n backgroundColor: \"#282b30\",\n show: true,\n resizable: false,\n maximizable: false,\n minimizable: false,\n alwaysOnTop: true,\n frame: false,\n center: false,\n webPreferences: {\n nodeIntegration: false\n }\n };\n }\n\n get bdServer() {\n const server = {\n name: \"BetterDiscord\",\n online: \"7500+\",\n members: \"20000+\",\n categories: [\"community\", \"programming\", \"support\"],\n description: \"Official BetterDiscord server for support etc\",\n identifier: \"86004744966914048\",\n iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n nativejoin: true,\n invite_code: \"0Tmfo5ZbORCRqbAd\",\n pinned: true\n };\n const guildList = this.SortedGuildStore.guildPositions;\n const defaultList = this.AvatarDefaults.DEFAULT_AVATARS;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n server: server,\n pinned: true,\n join: this.join,\n guildList: guildList,\n fallback: defaultList[Math.floor(Math.random() * 5)]\n });\n }\n\n get endPoint() {\n return \"https://search.discordservers.com\";\n }\n\n get joinEndPoint() {\n return \"https://j.discordservers.com\";\n }\n\n get connectEndPoint() {\n return \"https://join.discordservers.com/connect\";\n }\n\n checkConnection() {\n const self = this;\n\n try {\n $.ajax({\n method: \"GET\",\n url: `https://auth.discordservers.com/info`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\"\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: data => {\n // Utils.log(\"PublicServer\", \"Got data: \" + JSON.stringify(data));\n self.setState({\n selectedCategory: 0,\n connection: {\n state: 2,\n user: data\n }\n });\n self.search(\"\", true);\n },\n error: () => {\n self.setState({\n title: \"Not connected to discordservers.com!\",\n loading: true,\n selectedCategory: -1,\n connection: {\n state: 1,\n user: null\n }\n });\n }\n });\n } catch (error) {\n self.setState({\n title: \"Not connected to discordservers.com!\",\n loading: true,\n selectedCategory: -1,\n connection: {\n state: 1,\n user: null\n }\n });\n }\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_sidebarview__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref: \"sbv\"\n }, this.component);\n }\n\n get component() {\n return {\n sidebar: {\n component: this.sidebar\n },\n content: {\n component: this.content\n },\n tools: {\n component: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_exitbutton__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: \"pt\",\n ref: \"tools\",\n onClick: this.close\n })\n }\n };\n }\n\n get sidebar() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"sidebar\",\n key: \"ps\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar SIDE\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\",\n style: {\n fontSize: \"16px\"\n }\n }, \"Public Servers\"), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), this.searchInput, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Header, {\n text: \"Categories\"\n }), this.categoryButtons.map((value, index) => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Item, {\n id: index,\n onClick: this.changeCategory,\n key: index,\n text: value,\n selected: this.state.selectedCategory === index\n });\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), this.footer, this.connection));\n }\n\n get searchInput() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-form-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-text-input flex-vertical\",\n style: {\n width: \"172px\",\n marginLeft: \"10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n ref: \"searchinput\",\n onKeyDown: this.searchKeyDown,\n onChange: () => {},\n type: \"text\",\n className: \"input default\",\n placeholder: \"Search...\",\n maxLength: \"50\"\n })));\n }\n\n searchKeyDown(e) {\n const self = this;\n if (self.state.loading || e.which !== 13) return;\n self.setState({\n loading: true,\n title: \"Loading...\",\n term: e.target.value\n });\n let query = `?term=${e.target.value}`;\n\n if (self.state.selectedCategory !== 0) {\n query += `&category=${self.categoryButtons[self.state.selectedCategory]}`;\n }\n\n self.search(query, true);\n }\n\n get categoryButtons() {\n return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n }\n\n changeCategory(id) {\n const self = this;\n if (self.state.loading) return;\n self.refs.searchinput.value = \"\";\n self.setState({\n loading: true,\n selectedCategory: id,\n title: \"Loading...\",\n term: null\n });\n\n if (id === 0) {\n self.search(\"\", true);\n return;\n }\n\n self.search(`?category=${self.categoryButtons[id]}`, true);\n }\n\n get content() {\n const self = this;\n const guildList = this.SortedGuildStore.guildPositions;\n const defaultList = this.AvatarDefaults.DEFAULT_AVATARS;\n if (self.state.connection.state === 1) return self.notConnected;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n ref: \"content\",\n key: \"pc\",\n className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: self.state.title\n }), self.bdServer, self.state.servers.map(server => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n key: server.identifier,\n server: server,\n join: self.join,\n guildList: guildList,\n fallback: defaultList[Math.floor(Math.random() * 5)]\n });\n }), self.state.next && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n onClick: () => {\n if (self.state.loading) return;\n self.setState({\n loading: true\n });\n self.search(self.state.next, false);\n },\n className: \"ui-button filled brand small grow\",\n style: {\n width: \"100%\",\n marginTop: \"10px\",\n marginBottom: \"10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, self.state.loading ? \"Loading\" : \"Load More\")), self.state.servers.length > 0 && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: self.state.title\n }))];\n }\n\n get notConnected() {\n const self = this; //return React.createElement(SettingsTitle, { text: self.state.title });\n\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n key: \"ncc\",\n ref: \"content\",\n className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: \"ui-form-title h2 margin-reset margin-bottom-20\"\n }, \"Not connected to discordservers.com!\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: self.connect,\n type: \"button\",\n className: \"ui-button filled brand small grow\",\n style: {\n display: \"inline-block\",\n minHeight: \"18px\",\n marginLeft: \"10px\",\n lineHeight: \"14px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, \"Connect\"))), self.bdServer)];\n }\n\n get footer() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n href: \"https://discordservers.com\",\n target: \"_blank\"\n }, \"Discordservers.com\"));\n }\n\n get connection() {\n const self = this;\n const {\n connection\n } = self.state;\n if (connection.state !== 2) return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null);\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n style: {\n color: \"#b9bbbe\",\n fontSize: \"10px\",\n marginLeft: \"10px\"\n }\n }, \"Connected as: \", `${connection.user.username}#${connection.user.discriminator}`), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n padding: \"5px 10px 0 10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n style: {\n width: \"100%\",\n minHeight: \"20px\"\n },\n type: \"button\",\n className: \"ui-button filled brand small grow\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\",\n onClick: self.connect\n }, \"Reconnect\"))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbWVudS5qcz85YWNkIl0sIm5hbWVzIjpbIlB1YmxpY1NlcnZlcnMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsInNlbGVjdGVkQ2F0ZWdvcnkiLCJ0aXRsZSIsImxvYWRpbmciLCJzZXJ2ZXJzIiwibmV4dCIsImNvbm5lY3Rpb24iLCJ1c2VyIiwiY2xvc2UiLCJiaW5kIiwiY2hhbmdlQ2F0ZWdvcnkiLCJzZWFyY2giLCJzZWFyY2hLZXlEb3duIiwiY2hlY2tDb25uZWN0aW9uIiwiam9pbiIsImNvbm5lY3QiLCJHdWlsZFN0b3JlIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiQXZhdGFyRGVmYXVsdHMiLCJJbnZpdGVBY3Rpb25zIiwiU29ydGVkR3VpbGRTdG9yZSIsImNvbXBvbmVudERpZE1vdW50IiwiUmVhY3RET00iLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInJvb3RJZCIsInF1ZXJ5IiwiY2xlYXIiLCJzZWxmIiwiJCIsImFqYXgiLCJtZXRob2QiLCJ1cmwiLCJlbmRQb2ludCIsInN1Y2Nlc3MiLCJkYXRhIiwicmVzdWx0cyIsInJlZHVjZSIsImFyciIsInNlcnZlciIsImpvaW5lZCIsInB1c2giLCJjb25jYXQiLCJlbmQiLCJzaXplIiwiZnJvbSIsInRlcm0iLCJjYXRlZ29yeUJ1dHRvbnMiLCJ0b3RhbCIsInNldFN0YXRlIiwicmVmcyIsInNidiIsImNvbnRlbnRTY3JvbGxlciIsInNjcm9sbFRvcCIsImVycm9yIiwic2VydmVyQ2FyZCIsInBpbm5lZCIsImFjY2VwdEludml0ZSIsImludml0ZV9jb2RlIiwiam9pbkVuZFBvaW50IiwiaWRlbnRpZmllciIsImhlYWRlcnMiLCJhY2Nlc3NUb2tlbiIsImNyb3NzRG9tYWluIiwieGhyRmllbGRzIiwid2l0aENyZWRlbnRpYWxzIiwib3B0aW9ucyIsIndpbmRvd09wdGlvbnMiLCJ4IiwiTWF0aCIsInJvdW5kIiwid2luZG93Iiwic2NyZWVuWCIsImlubmVyV2lkdGgiLCJ3aWR0aCIsInkiLCJzY3JlZW5ZIiwiaW5uZXJIZWlnaHQiLCJoZWlnaHQiLCJqb2luV2luZG93IiwicmVxdWlyZSIsInJlbW90ZSIsIkJyb3dzZXJXaW5kb3ciLCJ3ZWJDb250ZW50cyIsIm9uIiwiZXZlbnQiLCJsb2FkVVJMIiwiYmFja2dyb3VuZENvbG9yIiwic2hvdyIsInJlc2l6YWJsZSIsIm1heGltaXphYmxlIiwibWluaW1pemFibGUiLCJhbHdheXNPblRvcCIsImZyYW1lIiwiY2VudGVyIiwid2ViUHJlZmVyZW5jZXMiLCJub2RlSW50ZWdyYXRpb24iLCJiZFNlcnZlciIsIm5hbWUiLCJvbmxpbmUiLCJtZW1iZXJzIiwiY2F0ZWdvcmllcyIsImRlc2NyaXB0aW9uIiwiaWNvblVybCIsIm5hdGl2ZWpvaW4iLCJndWlsZExpc3QiLCJndWlsZFBvc2l0aW9ucyIsImRlZmF1bHRMaXN0IiwiREVGQVVMVF9BVkFUQVJTIiwiY3JlYXRlRWxlbWVudCIsIlNlcnZlckNhcmQiLCJmYWxsYmFjayIsImZsb29yIiwicmFuZG9tIiwiY29ubmVjdEVuZFBvaW50IiwicmVuZGVyIiwiU2lkZWJhclZpZXciLCJyZWYiLCJjb21wb25lbnQiLCJzaWRlYmFyIiwiY29udGVudCIsInRvb2xzIiwiVG9vbHMiLCJrZXkiLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJmb250U2l6ZSIsIlRhYkJhciIsIlNlcGFyYXRvciIsInNlYXJjaElucHV0IiwiSGVhZGVyIiwidGV4dCIsIm1hcCIsInZhbHVlIiwiaW5kZXgiLCJJdGVtIiwiaWQiLCJzZWxlY3RlZCIsImZvb3RlciIsIm1hcmdpbkxlZnQiLCJvbktleURvd24iLCJvbkNoYW5nZSIsInR5cGUiLCJwbGFjZWhvbGRlciIsIm1heExlbmd0aCIsImUiLCJ3aGljaCIsInRhcmdldCIsInNlYXJjaGlucHV0Iiwibm90Q29ubmVjdGVkIiwiU2V0dGluZ3NUaXRsZSIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsImxlbmd0aCIsImRpc3BsYXkiLCJtaW5IZWlnaHQiLCJsaW5lSGVpZ2h0IiwiaHJlZiIsImNvbG9yIiwidXNlcm5hbWUiLCJkaXNjcmltaW5hdG9yIiwicGFkZGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBRXZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsc0JBQWdCLEVBQUUsQ0FBQyxDQURWO0FBRVRDLFdBQUssRUFBRSxZQUZFO0FBR1RDLGFBQU8sRUFBRSxJQUhBO0FBSVRDLGFBQU8sRUFBRSxFQUpBO0FBS1RDLFVBQUksRUFBRSxJQUxHO0FBTVRDLGdCQUFVLEVBQUU7QUFDUk4sYUFBSyxFQUFFLENBREM7QUFFUk8sWUFBSSxFQUFFO0FBRkU7QUFOSCxLQUFiO0FBV0EsU0FBS0MsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV0MsSUFBWCxDQUFnQixJQUFoQixDQUFiO0FBQ0EsU0FBS0MsY0FBTCxHQUFzQixLQUFLQSxjQUFMLENBQW9CRCxJQUFwQixDQUF5QixJQUF6QixDQUF0QjtBQUNBLFNBQUtFLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQVlGLElBQVosQ0FBaUIsSUFBakIsQ0FBZDtBQUNBLFNBQUtHLGFBQUwsR0FBcUIsS0FBS0EsYUFBTCxDQUFtQkgsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBckI7QUFDQSxTQUFLSSxlQUFMLEdBQXVCLEtBQUtBLGVBQUwsQ0FBcUJKLElBQXJCLENBQTBCLElBQTFCLENBQXZCO0FBQ0EsU0FBS0ssSUFBTCxHQUFZLEtBQUtBLElBQUwsQ0FBVUwsSUFBVixDQUFlLElBQWYsQ0FBWjtB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RTtBQUEzQixPQUFSO0FBQTRDYixVQUFJLEVBQUUsUUFBbEQ7QUFBNERsQixlQUFTLEVBQUU7QUFBdkUsS0FGSixFQUdJbkksNkNBQUssQ0FBQ21ILGFBQU4sQ0FDSSxLQURKLEVBRUk7QUFBQ2dCLGVBQVMsRUFBRSxvQkFBWjtBQUFrQ0QsYUFBTyxFQUFFaEcsSUFBSSxDQUFDZjtBQUFoRCxLQUZKLEVBR0ksV0FISixDQUhKLENBSEosQ0FWRyxDQUFQO0FBd0JQOztBQXBhMEQiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9tZW51LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgUmVhY3RET00sIFdlYnBhY2tNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgU2lkZWJhclZpZXcgZnJvbSBcIi4vc2lkZWJhcnZpZXdcIjtcclxuaW1wb3J0IFRvb2xzIGZyb20gXCIuL2V4aXRidXR0b25cIjtcclxuaW1wb3J0IFRhYkJhciBmcm9tIFwiLi90YWJiYXJcIjtcclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4uL3NldHRpbmdzL3RpdGxlXCI7XHJcbmltcG9ydCBTZXJ2ZXJDYXJkIGZyb20gXCIuL2NhcmRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IC0xLFxyXG4gICAgICAgICAgICB0aXRsZTogXCJMb2FkaW5nLi4uXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIHNlcnZlcnM6IFtdLFxyXG4gICAgICAgICAgICBuZXh0OiBudWxsLFxyXG4gICAgICAgICAgICBjb25uZWN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICBzdGF0ZTogMCxcclxuICAgICAgICAgICAgICAgIHVzZXI6IG51bGxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jbG9zZSA9IHRoaXMuY2xvc2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNoYW5nZUNhdGVnb3J5ID0gdGhpcy5jaGFuZ2VDYXRlZ29yeS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoID0gdGhpcy5zZWFyY2guYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNlYXJjaEtleURvd24gPSB0aGlzLnNlYXJjaEtleURvd24uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbiA9IHRoaXMuY2hlY2tDb25uZWN0aW9uLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5qb2luID0gdGhpcy5qb2luLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ID0gdGhpcy5jb25uZWN0LmJpbmQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuR3VpbGRTdG9yZSA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRHdWlsZHNcIik7XHJcbiAgICAgICAgdGhpcy5BdmF0YXJEZWZhdWx0cyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRVc2VyQXZhdGFyVVJMXCIsIFwiREVGQVVMVF9BVkFUQVJTXCIpO1xyXG4gICAgICAgIHRoaXMuSW52aXRlQWN0aW9ucyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJhY2NlcHRJbnZpdGVcIik7XHJcbiAgICAgICAgdGhpcy5Tb3J0ZWRHdWlsZFN0b3JlID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldFNvcnRlZEd1aWxkc1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbigpO1xyXG4gICAgIH1cclxuXHJcbiAgICBjbG9zZSgpIHtcclxuICAgICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMucHJvcHMucm9vdElkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoKHF1ZXJ5LCBjbGVhcikge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG5cclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgIHVybDogYCR7c2VsZi5lbmRQb2ludH0ke3F1ZXJ5fSR7cXVlcnkgPyBcIiZzY2hlbWE9bmV3XCIgOiBcIj9zY2hlbWE9bmV3XCJ9YCxcclxuICAgICAgICAgICAgc3VjY2VzczogZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2VydmVycyA9IGRhdGEucmVzdWx0cy5yZWR1Y2UoKGFyciwgc2VydmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyLmpvaW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKHNlcnZlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYXJyLnB1c2goPFNlcnZlckNhcmQgc2VydmVyPXtzZXJ2ZXJ9IGpvaW49e3NlbGYuam9pbn0vPik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycjtcclxuICAgICAgICAgICAgICAgIH0sIFtdKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIWNsZWFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVycyA9IHNlbGYuc3RhdGUuc2VydmVycy5jb25jYXQoc2VydmVycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvL3NlcnZlcnMudW5zaGlmdChzZWxmLmJkU2VydmVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgZW5kID0gZGF0YS5zaXplICsgZGF0YS5mcm9tO1xyXG4gICAgICAgICAgICAgICAgZGF0YS5uZXh0ID0gYD9mcm9tPSR7ZW5kfWA7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5zdGF0ZS50ZXJtKSBkYXRhLm5leHQgKz0gYCZ0ZXJtPSR7c2VsZi5zdGF0ZS50ZXJtfWA7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5KSBkYXRhLm5leHQgKz0gYCZjYXRlZ29yeT0ke3NlbGYuY2F0ZWdvcnlCdXR0b25zW3NlbGYuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeV19YDtcclxuICAgICAgICAgICAgICAgIGlmIChlbmQgPj0gZGF0YS50b3RhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IGRhdGEudG90YWw7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5uZXh0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBgU2hvd2luZyAxLSR7ZW5kfSBvZiAke2RhdGEudG90YWx9IHJlc3VsdHMgaW4gJHtzZWxmLmNhdGVnb3J5QnV0dG9uc1tzZWxmLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnldfWA7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5zdGF0ZS50ZXJtKSB0aXRsZSArPSBgIGZvciAke3NlbGYuc3RhdGUudGVybX1gO1xyXG5cclxuICAgICAgICAgICAgICAgIHNlbGYuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzOiBzZXJ2ZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IGRhdGEubmV4dFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNsZWFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhzZWxmKTtcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZnMuc2J2LnJlZnMuY29udGVudFNjcm9sbGVyLnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGYWlsZWQgdG8gbG9hZCBzZXJ2ZXJzLiBDaGVjayBjb25zb2xlIGZvciBkZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgam9pbihzZXJ2ZXJDYXJkKSB7XHJcbiAgICAgICAgaWYgKHNlcnZlckNhcmQucHJvcHMucGlubmVkKSByZXR1cm4gdGhpcy5JbnZpdGVBY3Rpb25zLmFjY2VwdEludml0ZShzZXJ2ZXJDYXJkLnByb3BzLmludml0ZV9jb2RlKTtcclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgIHVybDogYCR7dGhpcy5qb2luRW5kUG9pbnR9LyR7c2VydmVyQ2FyZC5wcm9wcy5zZXJ2ZXIuaWRlbnRpZmllcn1gLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb247XCIsXHJcbiAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb247XCIgLFxyXG4gICAgICAgICAgICAgICAgXCJ4LWRpc2NvcmQtdG9rZW5cIjogdGhpcy5zdGF0ZS5jb25uZWN0aW9uLnVzZXIuYWNjZXNzVG9rZW5cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgY3Jvc3NEb21haW46IHRydWUsXHJcbiAgICAgICAgICAgIHhockZpZWxkczoge1xyXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHNlcnZlckNhcmQuc2V0U3RhdGUoe2pvaW5lZDogdHJ1ZX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29ubmVjdCgpIHtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy53aW5kb3dPcHRpb25zO1xyXG4gICAgICAgIG9wdGlvbnMueCA9IE1hdGgucm91bmQod2luZG93LnNjcmVlblggKyB3aW5kb3cuaW5uZXJXaWR0aCAvIDIgLSBvcHRpb25zLndpZHRoIC8gMik7XHJcbiAgICAgICAgb3B0aW9ucy55ID0gTWF0aC5yb3VuZCh3aW5kb3cuc2NyZWVuWSArIHdpbmRvdy5pbm5lckhlaWdodCAvIDIgLSBvcHRpb25zLmhlaWdodCAvIDIpO1xyXG5cclxuICAgICAgICB0aGlzLmpvaW5XaW5kb3cgPSBuZXcgKHdpbmRvdy5yZXF1aXJlKFwiZWxlY3Ryb25cIikucmVtb3RlLkJyb3dzZXJXaW5kb3cpKG9wdGlvbnMpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IFwiaHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9jb25uZWN0P3Njb3Blcz1ndWlsZHMuam9pbiZwcmV2aW91c1VybD1odHRwczovL2F1dGguZGlzY29yZHNlcnZlcnMuY29tL2luZm9cIjtcclxuICAgICAgICB0aGlzLmpvaW5XaW5kb3cud2ViQ29udGVudHMub24oXCJkaWQtbmF2aWdhdGVcIiwgKGV2ZW50LCB1cmwpID0+IHtcclxuICAgICAgICAgICAgaWYgKHVybCAhPSBcImh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vaW5mb1wiKSByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMuam9pbldpbmRvdy5jbG9zZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuam9pbldpbmRvdy5sb2FkVVJMKHVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHdpbmRvd09wdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwMCxcclxuICAgICAgICAgICAgaGVpZ2h0OiA1NTAsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMjgyYjMwXCIsXHJcbiAgICAgICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIG1heGltaXphYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgbWluaW1pemFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBhbHdheXNPblRvcDogdHJ1ZSxcclxuICAgICAgICAgICAgZnJhbWU6IGZhbHNlLFxyXG4gICAgICAgICAgICBjZW50ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB3ZWJQcmVmZXJlbmNlczoge1xyXG4gICAgICAgICAgICAgICAgbm9kZUludGVncmF0aW9uOiBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYmRTZXJ2ZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VydmVyID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBcIkJldHRlckRpc2NvcmRcIixcclxuICAgICAgICAgICAgb25saW5lOiBcIjc1MDArXCIsXHJcbiAgICAgICAgICAgIG1lbWJlcnM6IFwiMjAwMDArXCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFtcImNvbW11bml0eVwiLCBcInByb2dyYW1taW5nXCIsIFwic3VwcG9ydFwiXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiT2ZmaWNpYWwgQmV0dGVyRGlzY29yZCBzZXJ2ZXIgZm9yIHN1cHBvcnQgZXRjXCIsXHJcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IFwiODYwMDQ3NDQ5NjY5MTQwNDhcIixcclxuICAgICAgICAgICAgaWNvblVybDogXCJodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9pY29ucy84NjAwNDc0NDk2NjkxNDA0OC8yOTJlN2Y2YmZmZjJiNzFkZmQxM2U1MDhhODU5YWVkZC53ZWJwXCIsXHJcbiAgICAgICAgICAgIG5hdGl2ZWpvaW46IHRydWUsXHJcbiAgICAgICAgICAgIGludml0ZV9jb2RlOiBcIjBUbWZvNVpiT1JDUnFiQWRcIixcclxuICAgICAgICAgICAgcGlubmVkOiB0cnVlXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBndWlsZExpc3QgPSB0aGlzLlNvcnRlZEd1aWxkU3RvcmUuZ3VpbGRQb3NpdGlvbnM7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExpc3QgPSB0aGlzLkF2YXRhckRlZmF1bHRzLkRFRkFVTFRfQVZBVEFSUztcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTZXJ2ZXJDYXJkLCB7c2VydmVyOiBzZXJ2ZXIsIHBpbm5lZDogdHJ1ZSwgam9pbjogdGhpcy5qb2luLCBndWlsZExpc3Q6IGd1aWxkTGlzdCwgZmFsbGJhY2s6IGRlZmF1bHRMaXN0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmRQb2ludCgpIHtcclxuICAgICAgICByZXR1cm4gXCJodHRwczovL3NlYXJjaC5kaXNjb3Jkc2VydmVycy5jb21cIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgam9pbkVuZFBvaW50KCkge1xyXG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vai5kaXNjb3Jkc2VydmVycy5jb21cIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29ubmVjdEVuZFBvaW50KCkge1xyXG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vam9pbi5kaXNjb3Jkc2VydmVycy5jb20vY29ubmVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQ29ubmVjdGlvbigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9pbmZvYCxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb247XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY3Jvc3NEb21haW46IHRydWUsXHJcbiAgICAgICAgICAgICAgICB4aHJGaWVsZHM6IHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBVdGlscy5sb2coXCJQdWJsaWNTZXJ2ZXJcIiwgXCJHb3QgZGF0YTogXCIgKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZWFyY2goXCJcIiwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAtMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyOiBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IC0xLFxyXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI6IG51bGxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTaWRlYmFyVmlldywge3JlZjogXCJzYnZcIn0sIHRoaXMuY29tcG9uZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHNpZGViYXI6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5zaWRlYmFyXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5jb250ZW50XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRvb2xzOiB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHMsIHtrZXk6IFwicHRcIiwgcmVmOiBcInRvb2xzXCIsIG9uQ2xpY2s6IHRoaXMuY2xvc2V9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2lkZWJhcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJzaWRlYmFyXCIsIGtleTogXCJwc1wifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXRhYi1iYXIgU0lERVwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXRhYi1iYXItaGVhZGVyXCIsIHN0eWxlOiB7Zm9udFNpemU6IFwiMTZweFwifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgXCJQdWJsaWMgU2VydmVyc1wiXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXIuU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXQsXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhci5TZXBhcmF0b3IsIG51bGwpLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXIuSGVhZGVyLCB7dGV4dDogXCJDYXRlZ29yaWVzXCJ9KSxcclxuICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlCdXR0b25zLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyLkl0ZW0sIHtpZDogaW5kZXgsIG9uQ2xpY2s6IHRoaXMuY2hhbmdlQ2F0ZWdvcnksIGtleTogaW5kZXgsIHRleHQ6IHZhbHVlLCBzZWxlY3RlZDogdGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5ID09PSBpbmRleH0pO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhci5TZXBhcmF0b3IsIG51bGwpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb290ZXIsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlYXJjaElucHV0KCkge1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWZvcm0taXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXRleHQtaW5wdXQgZmxleC12ZXJ0aWNhbFwiLCBzdHlsZToge3dpZHRoOiBcIjE3MnB4XCIsIG1hcmdpbkxlZnQ6IFwiMTBweFwifX0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3JlZjogXCJzZWFyY2hpbnB1dFwiLCBvbktleURvd246IHRoaXMuc2VhcmNoS2V5RG93biwgb25DaGFuZ2U6ICgpID0+IHt9LCB0eXBlOiBcInRleHRcIiwgY2xhc3NOYW1lOiBcImlucHV0IGRlZmF1bHRcIiwgcGxhY2Vob2xkZXI6IFwiU2VhcmNoLi4uXCIsIG1heExlbmd0aDogXCI1MFwifSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoS2V5RG93bihlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgaWYgKHNlbGYuc3RhdGUubG9hZGluZyB8fCBlLndoaWNoICE9PSAxMykgcmV0dXJuO1xyXG4gICAgICAgIHNlbGYuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICB0aXRsZTogXCJMb2FkaW5nLi4uXCIsXHJcbiAgICAgICAgICAgIHRlcm06IGUudGFyZ2V0LnZhbHVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGV0IHF1ZXJ5ID0gYD90ZXJtPSR7ZS50YXJnZXQudmFsdWV9YDtcclxuICAgICAgICBpZiAoc2VsZi5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5ICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ICs9IGAmY2F0ZWdvcnk9JHtzZWxmLmNhdGVnb3J5QnV0dG9uc1tzZWxmLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnldfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlbGYuc2VhcmNoKHF1ZXJ5LCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY2F0ZWdvcnlCdXR0b25zKCkge1xyXG4gICAgICAgIHJldHVybiBbXCJBbGxcIiwgXCJGUFMgR2FtZXNcIiwgXCJNTU8gR2FtZXNcIiwgXCJTdHJhdGVneSBHYW1lc1wiLCBcIk1PQkEgR2FtZXNcIiwgXCJSUEcgR2FtZXNcIiwgXCJUYWJsZXRvcCBHYW1lc1wiLCBcIlNhbmRib3ggR2FtZXNcIiwgXCJTaW11bGF0aW9uIEdhbWVzXCIsIFwiTXVzaWNcIiwgXCJDb21tdW5pdHlcIiwgXCJMYW5ndWFnZVwiLCBcIlByb2dyYW1taW5nXCIsIFwiT3RoZXJcIl07XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlQ2F0ZWdvcnkoaWQpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBpZiAoc2VsZi5zdGF0ZS5sb2FkaW5nKSByZXR1cm47XHJcbiAgICAgICAgc2VsZi5yZWZzLnNlYXJjaGlucHV0LnZhbHVlID0gXCJcIjtcclxuICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogaWQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkxvYWRpbmcuLi5cIixcclxuICAgICAgICAgICAgdGVybTogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChpZCA9PT0gMCkge1xyXG4gICAgICAgICAgICBzZWxmLnNlYXJjaChcIlwiLCB0cnVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNlYXJjaChgP2NhdGVnb3J5PSR7c2VsZi5jYXRlZ29yeUJ1dHRvbnNbaWRdfWAsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250ZW50KCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IGd1aWxkTGlzdCA9IHRoaXMuU29ydGVkR3VpbGRTdG9yZS5ndWlsZFBvc2l0aW9ucztcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGlzdCA9IHRoaXMuQXZhdGFyRGVmYXVsdHMuREVGQVVMVF9BVkFUQVJTO1xyXG4gICAgICAgIGlmIChzZWxmLnN0YXRlLmNvbm5lY3Rpb24uc3RhdGUgPT09IDEpIHJldHVybiBzZWxmLm5vdENvbm5lY3RlZDtcclxuICAgICAgICByZXR1cm4gW1JlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtyZWY6IFwiY29udGVudFwiLCBrZXk6IFwicGNcIiwgY2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiBzZWxmLnN0YXRlLnRpdGxlfSksXHJcbiAgICAgICAgICAgIHNlbGYuYmRTZXJ2ZXIsXHJcbiAgICAgICAgICAgIHNlbGYuc3RhdGUuc2VydmVycy5tYXAoKHNlcnZlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge2tleTogc2VydmVyLmlkZW50aWZpZXIsIHNlcnZlcjogc2VydmVyLCBqb2luOiBzZWxmLmpvaW4sIGd1aWxkTGlzdDogZ3VpbGRMaXN0LCBmYWxsYmFjazogZGVmYXVsdExpc3RbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSldfSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBzZWxmLnN0YXRlLm5leHQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICB7dHlwZTogXCJidXR0b25cIiwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5zdGF0ZS5sb2FkaW5nKSByZXR1cm47c2VsZi5zZXRTdGF0ZSh7bG9hZGluZzogdHJ1ZX0pOyBzZWxmLnNlYXJjaChzZWxmLnN0YXRlLm5leHQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCBjbGFzc05hbWU6IFwidWktYnV0dG9uIGZpbGxlZCBicmFuZCBzbWFsbCBncm93XCIsIHN0eWxlOiB7d2lkdGg6IFwiMTAwJVwiLCBtYXJnaW5Ub3A6IFwiMTBweFwiLCBtYXJnaW5Cb3R0b206IFwiMTBweFwifX0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1idXR0b24tY29udGVudHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS5sb2FkaW5nID8gXCJMb2FkaW5nXCIgOiBcIkxvYWQgTW9yZVwiXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHNlbGYuc3RhdGUuc2VydmVycy5sZW5ndGggPiAwICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IHNlbGYuc3RhdGUudGl0bGV9KVxyXG4gICAgICAgICldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBub3RDb25uZWN0ZWQoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgLy9yZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7IHRleHQ6IHNlbGYuc3RhdGUudGl0bGUgfSk7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7a2V5OiBcIm5jY1wiLCByZWY6IFwiY29udGVudFwiLCBjbGFzc05hbWU6IFwiY29udGVudENvbHVtbi0yaHJJWUggY29udGVudENvbHVtbkRlZmF1bHQtMVZRa0dNIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImgyXCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWZvcm0tdGl0bGUgaDIgbWFyZ2luLXJlc2V0IG1hcmdpbi1ib3R0b20tMjBcIn0sXHJcbiAgICAgICAgICAgICAgICBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogc2VsZi5jb25uZWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwidWktYnV0dG9uIGZpbGxlZCBicmFuZCBzbWFsbCBncm93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjE4cHhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IFwiMTBweFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogXCIxNHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1idXR0b24tY29udGVudHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29ubmVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLCBzZWxmLmJkU2VydmVyXHJcbiAgICAgICAgKV07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZvb3RlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLWhlYWRlclwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiYVwiLFxyXG4gICAgICAgICAgICAgICAge2hyZWY6IFwiaHR0cHM6Ly9kaXNjb3Jkc2VydmVycy5jb21cIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgIFwiRGlzY29yZHNlcnZlcnMuY29tXCJcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbm5lY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgY29uc3Qge2Nvbm5lY3Rpb259ID0gc2VsZi5zdGF0ZTtcclxuICAgICAgICBpZiAoY29ubmVjdGlvbi5zdGF0ZSAhPT0gMikgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJzcGFuXCIsXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyLlNlcGFyYXRvciwgbnVsbCksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcInNwYW5cIixcclxuICAgICAgICAgICAgICAgIHtzdHlsZToge2NvbG9yOiBcIiNiOWJiYmVcIiwgZm9udFNpemU6IFwiMTBweFwiLCBtYXJnaW5MZWZ0OiBcIjEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgXCJDb25uZWN0ZWQgYXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgYCR7Y29ubmVjdGlvbi51c2VyLnVzZXJuYW1lfSMke2Nvbm5lY3Rpb24udXNlci5kaXNjcmltaW5hdG9yfWBcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7c3R5bGU6IHtwYWRkaW5nOiBcIjVweCAxMHB4IDAgMTBweFwifX0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAge3N0eWxlOiB7d2lkdGg6IFwiMTAwJVwiLCBtaW5IZWlnaHQ6IFwiMjBweFwifSwgdHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcInVpLWJ1dHRvbiBmaWxsZWQgYnJhbmQgc21hbGwgZ3Jvd1wifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWJ1dHRvbi1jb250ZW50c1wiLCBvbkNsaWNrOiBzZWxmLmNvbm5lY3R9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJlY29ubmVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxufVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/publicservers/menu.js\n"); - -/***/ }), - -/***/ "./src/ui/publicservers/publicservers.js": -/*!***********************************************!*\ - !*** ./src/ui/publicservers/publicservers.js ***! - \***********************************************/ -/*! exports provided: Menu, Card, Layer */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./menu */ \"./src/ui/publicservers/menu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Menu\", function() { return _menu__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Card\", function() { return _card__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _layer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layer */ \"./src/ui/publicservers/layer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Layer\", function() { return _layer__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvcHVibGljc2VydmVycy5qcz9mZDQxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvcHVibGljc2VydmVycy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNZW51IGZyb20gXCIuL21lbnVcIjtcclxuaW1wb3J0IENhcmQgZnJvbSBcIi4vY2FyZFwiO1xyXG5pbXBvcnQgTGF5ZXIgZnJvbSBcIi4vbGF5ZXJcIjtcclxuXHJcbmV4cG9ydCB7TWVudSwgQ2FyZCwgTGF5ZXJ9OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/publicservers/publicservers.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServers; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _sidebarview__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidebarview */ \"./src/ui/publicservers/sidebarview.js\");\n/* harmony import */ var _exitbutton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./exitbutton */ \"./src/ui/publicservers/exitbutton.js\");\n/* harmony import */ var _tabbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tabbar */ \"./src/ui/publicservers/tabbar.js\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.js\");\n\n\n\n\n\n\nclass PublicServers extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedCategory: -1,\n title: \"Loading...\",\n loading: true,\n servers: [],\n next: null,\n connection: {\n state: 0,\n user: null\n }\n };\n this.close = this.close.bind(this);\n this.changeCategory = this.changeCategory.bind(this);\n this.search = this.search.bind(this);\n this.searchKeyDown = this.searchKeyDown.bind(this);\n this.checkConnection = this.checkConnection.bind(this);\n this.join = this.join.bind(this);\n this.connect = this.connect.bind(this);\n this.GuildStore = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getGuilds\");\n this.AvatarDefaults = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getUserAvatarURL\", \"DEFAULT_AVATARS\");\n this.InviteActions = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"acceptInvite\");\n this.SortedGuildStore = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getSortedGuilds\");\n }\n\n componentDidMount() {\n this.checkConnection();\n }\n\n close() {\n this.props.close();\n }\n\n search(query, clear) {\n const self = this;\n $.ajax({\n method: \"GET\",\n url: `${self.endPoint}${query}${query ? \"&schema=new\" : \"?schema=new\"}`,\n success: data => {\n let servers = data.results.reduce((arr, server) => {\n server.joined = false;\n arr.push(server); // arr.push();\n\n return arr;\n }, []);\n\n if (!clear) {\n servers = self.state.servers.concat(servers);\n } else {//servers.unshift(self.bdServer);\n }\n\n let end = data.size + data.from;\n data.next = `?from=${end}`;\n if (self.state.term) data.next += `&term=${self.state.term}`;\n if (self.state.selectedCategory) data.next += `&category=${self.categoryButtons[self.state.selectedCategory]}`;\n\n if (end >= data.total) {\n end = data.total;\n data.next = null;\n }\n\n let title = `Showing 1-${end} of ${data.total} results in ${self.categoryButtons[self.state.selectedCategory]}`;\n if (self.state.term) title += ` for ${self.state.term}`;\n self.setState({\n loading: false,\n title: title,\n servers: servers,\n next: data.next\n });\n\n if (clear) {\n //console.log(self);\n self.refs.sbv.refs.contentScroller.scrollTop = 0;\n }\n },\n error: () => {\n self.setState({\n loading: false,\n title: \"Failed to load servers. Check console for details\"\n });\n }\n });\n }\n\n join(serverCard) {\n if (serverCard.props.pinned) return this.InviteActions.acceptInvite(serverCard.props.invite_code);\n $.ajax({\n method: \"GET\",\n url: `${this.joinEndPoint}/${serverCard.props.server.identifier}`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\",\n \"x-discord-token\": this.state.connection.user.accessToken\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: () => {\n serverCard.setState({\n joined: true\n });\n }\n });\n }\n\n connect() {\n const options = this.windowOptions;\n options.x = Math.round(window.screenX + window.innerWidth / 2 - options.width / 2);\n options.y = Math.round(window.screenY + window.innerHeight / 2 - options.height / 2);\n this.joinWindow = new (window.require(\"electron\").remote.BrowserWindow)(options);\n const url = \"https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=https://auth.discordservers.com/info\";\n this.joinWindow.webContents.on(\"did-navigate\", (event, url) => {\n if (url != \"https://auth.discordservers.com/info\") return;\n this.joinWindow.close();\n this.checkConnection();\n });\n this.joinWindow.loadURL(url);\n }\n\n get windowOptions() {\n return {\n width: 500,\n height: 550,\n backgroundColor: \"#282b30\",\n show: true,\n resizable: false,\n maximizable: false,\n minimizable: false,\n alwaysOnTop: true,\n frame: false,\n center: false,\n webPreferences: {\n nodeIntegration: false\n }\n };\n }\n\n get bdServer() {\n const server = {\n name: \"BetterDiscord\",\n online: \"7500+\",\n members: \"20000+\",\n categories: [\"community\", \"programming\", \"support\"],\n description: \"Official BetterDiscord server for support etc\",\n identifier: \"86004744966914048\",\n iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n nativejoin: true,\n invite_code: \"0Tmfo5ZbORCRqbAd\",\n pinned: true\n };\n const guildList = this.SortedGuildStore.guildPositions;\n const defaultList = this.AvatarDefaults.DEFAULT_AVATARS;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n server: server,\n pinned: true,\n join: this.join,\n guildList: guildList,\n fallback: defaultList[Math.floor(Math.random() * 5)]\n });\n }\n\n get endPoint() {\n return \"https://search.discordservers.com\";\n }\n\n get joinEndPoint() {\n return \"https://j.discordservers.com\";\n }\n\n get connectEndPoint() {\n return \"https://join.discordservers.com/connect\";\n }\n\n checkConnection() {\n const self = this;\n\n try {\n $.ajax({\n method: \"GET\",\n url: `https://auth.discordservers.com/info`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\"\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: data => {\n // Utils.log(\"PublicServer\", \"Got data: \" + JSON.stringify(data));\n self.setState({\n selectedCategory: 0,\n connection: {\n state: 2,\n user: data\n }\n });\n self.search(\"\", true);\n },\n error: () => {\n self.setState({\n title: \"Not connected to discordservers.com!\",\n loading: true,\n selectedCategory: -1,\n connection: {\n state: 1,\n user: null\n }\n });\n }\n });\n } catch (error) {\n self.setState({\n title: \"Not connected to discordservers.com!\",\n loading: true,\n selectedCategory: -1,\n connection: {\n state: 1,\n user: null\n }\n });\n }\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_sidebarview__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n id: \"pubslayer\",\n ref: \"sbv\"\n }, this.component);\n }\n\n get component() {\n return {\n sidebar: {\n component: this.sidebar\n },\n content: {\n component: this.content\n },\n tools: {\n component: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_exitbutton__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: \"pt\",\n ref: \"tools\",\n onClick: this.close\n })\n }\n };\n }\n\n get sidebar() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"sidebar-CFHs9e da-sidebar sidebar\",\n key: \"ps\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar SIDE\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\",\n style: {\n fontSize: \"16px\"\n }\n }, \"Public Servers\"), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), this.searchInput, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Header, {\n text: \"Categories\"\n }), this.categoryButtons.map((value, index) => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Item, {\n id: index,\n onClick: this.changeCategory,\n key: index,\n text: value,\n selected: this.state.selectedCategory === index\n });\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), this.footer, this.connection));\n }\n\n get searchInput() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-form-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-text-input flex-vertical\",\n style: {\n width: \"172px\",\n marginLeft: \"10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n ref: \"searchinput\",\n onKeyDown: this.searchKeyDown,\n onChange: () => {},\n type: \"text\",\n className: \"input default\",\n placeholder: \"Search...\",\n maxLength: \"50\"\n })));\n }\n\n searchKeyDown(e) {\n const self = this;\n if (self.state.loading || e.which !== 13) return;\n self.setState({\n loading: true,\n title: \"Loading...\",\n term: e.target.value\n });\n let query = `?term=${e.target.value}`;\n\n if (self.state.selectedCategory !== 0) {\n query += `&category=${self.categoryButtons[self.state.selectedCategory]}`;\n }\n\n self.search(query, true);\n }\n\n get categoryButtons() {\n return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n }\n\n changeCategory(id) {\n const self = this;\n if (self.state.loading) return;\n self.refs.searchinput.value = \"\";\n self.setState({\n loading: true,\n selectedCategory: id,\n title: \"Loading...\",\n term: null\n });\n\n if (id === 0) {\n self.search(\"\", true);\n return;\n }\n\n self.search(`?category=${self.categoryButtons[id]}`, true);\n }\n\n get content() {\n const self = this;\n const guildList = this.SortedGuildStore.guildPositions;\n const defaultList = this.AvatarDefaults.DEFAULT_AVATARS;\n if (self.state.connection.state === 1) return self.notConnected;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n ref: \"content\",\n key: \"pc\",\n className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: self.state.title\n }), self.bdServer, self.state.servers.map(server => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n key: server.identifier,\n server: server,\n join: self.join,\n guildList: guildList,\n fallback: defaultList[Math.floor(Math.random() * 5)]\n });\n }), self.state.next && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n onClick: () => {\n if (self.state.loading) return;\n self.setState({\n loading: true\n });\n self.search(self.state.next, false);\n },\n className: \"ui-button filled brand small grow\",\n style: {\n width: \"100%\",\n marginTop: \"10px\",\n marginBottom: \"10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, self.state.loading ? \"Loading\" : \"Load More\")), self.state.servers.length > 0 && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: self.state.title\n }))];\n }\n\n get notConnected() {\n const self = this; //return React.createElement(SettingsTitle, { text: self.state.title });\n\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n key: \"ncc\",\n ref: \"content\",\n className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: \"ui-form-title h2 margin-reset margin-bottom-20\"\n }, \"Not connected to discordservers.com!\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: self.connect,\n type: \"button\",\n className: \"ui-button filled brand small grow\",\n style: {\n display: \"inline-block\",\n minHeight: \"18px\",\n marginLeft: \"10px\",\n lineHeight: \"14px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, \"Connect\"))), self.bdServer)];\n }\n\n get footer() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n href: \"https://discordservers.com\",\n target: \"_blank\"\n }, \"Discordservers.com\"));\n }\n\n get connection() {\n const self = this;\n const {\n connection\n } = self.state;\n if (connection.state !== 2) return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null);\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Separator, null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n style: {\n color: \"#b9bbbe\",\n fontSize: \"10px\",\n marginLeft: \"10px\"\n }\n }, \"Connected as: \", `${connection.user.username}#${connection.user.discriminator}`), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n padding: \"5px 10px 0 10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n style: {\n width: \"100%\",\n minHeight: \"20px\"\n },\n type: \"button\",\n className: \"ui-button filled brand small grow\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\",\n onClick: self.connect\n }, \"Reconnect\"))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbWVudS5qcz85YWNkIl0sIm5hbWVzIjpbIlB1YmxpY1NlcnZlcnMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsInNlbGVjdGVkQ2F0ZWdvcnkiLCJ0aXRsZSIsImxvYWRpbmciLCJzZXJ2ZXJzIiwibmV4dCIsImNvbm5lY3Rpb24iLCJ1c2VyIiwiY2xvc2UiLCJiaW5kIiwiY2hhbmdlQ2F0ZWdvcnkiLCJzZWFyY2giLCJzZWFyY2hLZXlEb3duIiwiY2hlY2tDb25uZWN0aW9uIiwiam9pbiIsImNvbm5lY3QiLCJHdWlsZFN0b3JlIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiQXZhdGFyRGVmYXVsdHMiLCJJbnZpdGVBY3Rpb25zIiwiU29ydGVkR3VpbGRTdG9yZSIsImNvbXBvbmVudERpZE1vdW50IiwicXVlcnkiLCJjbGVhciIsInNlbGYiLCIkIiwiYWpheCIsIm1ldGhvZCIsInVybCIsImVuZFBvaW50Iiwic3VjY2VzcyIsImRhdGEiLCJyZXN1bHRzIiwicmVkdWNlIiwiYXJyIiwic2VydmVyIiwiam9pbmVkIiwicHVzaCIsImNvbmNhdCIsImVuZCIsInNpemUiLCJmcm9tIiwidGVybSIsImNhdGVnb3J5QnV0dG9ucyIsInRvdGFsIiwic2V0U3RhdGUiLCJyZWZzIiwic2J2IiwiY29udGVudFNjcm9sbGVyIiwic2Nyb2xsVG9wIiwiZXJyb3IiLCJzZXJ2ZXJDYXJkIiwicGlubmVkIiwiYWNjZXB0SW52aXRlIiwiaW52aXRlX2NvZGUiLCJqb2luRW5kUG9pbnQiLCJpZGVudGlmaWVyIiwiaGVhZGVycyIsImFjY2Vzc1Rva2VuIiwiY3Jvc3NEb21haW4iLCJ4aHJGaWVsZHMiLCJ3aXRoQ3JlZGVudGlhbHMiLCJvcHRpb25zIiwid2luZG93T3B0aW9ucyIsIngiLCJNYXRoIiwicm91bmQiLCJ3aW5kb3ciLCJzY3JlZW5YIiwiaW5uZXJXaWR0aCIsIndpZHRoIiwieSIsInNjcmVlblkiLCJpbm5lckhlaWdodCIsImhlaWdodCIsImpvaW5XaW5kb3ciLCJyZXF1aXJlIiwicmVtb3RlIiwiQnJvd3NlcldpbmRvdyIsIndlYkNvbnRlbnRzIiwib24iLCJldmVudCIsImxvYWRVUkwiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzaG93IiwicmVzaXphYmxlIiwibWF4aW1pemFibGUiLCJtaW5pbWl6YWJsZSIsImFsd2F5c09uVG9wIiwiZnJhbWUiLCJjZW50ZXIiLCJ3ZWJQcmVmZXJlbmNlcyIsIm5vZGVJbnRlZ3JhdGlvbiIsImJkU2VydmVyIiwibmFtZSIsIm9ubGluZSIsIm1lbWJlcnMiLCJjYXRlZ29yaWVzIiwiZGVzY3JpcHRpb24iLCJpY29uVXJsIiwibmF0aXZlam9pbiIsImd1aWxkTGlzdCIsImd1aWxkUG9zaXRpb25zIiwiZGVmYXVsdExpc3QiLCJERUZBVUxUX0FWQVRBUlMiLCJjcmVhdGVFbGVtZW50IiwiU2VydmVyQ2FyZCIsImZhbGxiYWNrIiwiZmxvb3IiLCJyYW5kb20iLCJjb25uZWN0RW5kUG9pbnQiLCJyZW5kZXIiLCJTaWRlYmFyVmlldyIsImlkIiwicmVmIiwiY29tcG9uZW50Iiwic2lkZWJhciIsImNvbnRlbnQiLCJ0b29scyIsIlRvb2xzIiwia2V5Iiwib25DbGljayIsImNsYXNzTmFtZSIsInN0eWxlIiwiZm9udFNpemUiLCJUYWJCYXIiLCJTZXBhcmF0b3IiLCJzZWFyY2hJbnB1dCIsIkhlYWRlciIsInRleHQiLCJtYXAiLCJ2YWx1ZSIsImluZGV4IiwiSXRlbSIsInNlbGVjdGVkIiwiZm9vdGVyIiwibWFyZ2luTGVmdCIsIm9uS2V5RG93biIsIm9uQ2hhbmdlIiwidHlwZSIsInBsYWNlaG9sZGVyIiwibWF4TGVuZ3RoIiwiZSIsIndoaWNoIiwidGFyZ2V0Iiwic2VhcmNoaW5wdXQiLCJub3RDb25uZWN0ZWQiLCJTZXR0aW5nc1RpdGxlIiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwibGVuZ3RoIiwiZGlzcGxheSIsIm1pbkhlaWdodCIsImxpbmVIZWlnaHQiLCJocmVmIiwiY29sb3IiLCJ1c2VybmFtZSIsImRpc2NyaW1pbmF0b3IiLCJwYWRkaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsYUFBTixTQUE0QkMsNkNBQUssQ0FBQ0MsU0FBbEMsQ0FBNEM7QUFFdkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxzQkFBZ0IsRUFBRSxDQUFDLENBRFY7QUFFVEMsV0FBSyxFQUFFLFlBRkU7QUFHVEMsYUFBTyxFQUFFLElBSEE7QUFJVEMsYUFBTyxFQUFFLEVBSkE7QUFLVEMsVUFBSSxFQUFFLElBTEc7QUFNVEMsZ0JBQVUsRUFBRTtBQUNSTixhQUFLLEVBQUUsQ0FEQztBQUVSTyxZQUFJLEVBQUU7QUFGRTtBQU5ILEtBQWI7QUFXQSxTQUFLQyxLQUFMLEdBQWEsS0FBS0EsS0FBTCxDQUFXQyxJQUFYLENBQWdCLElBQWhCLENBQWI7QUFDQSxTQUFLQyxjQUFMLEdBQXNCLEtBQUtBLGNBQUwsQ0FBb0JELElBQXBCLENBQXlCLElBQXpCLENBQXRCO0FBQ0EsU0FBS0UsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUYsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0EsU0FBS0csYUFBTCxHQUFxQixLQUFLQSxhQUFMLENBQW1CSCxJQUFuQixDQUF3QixJQUF4QixDQUFyQjtBQUNBLFNBQUtJLGVBQUwsR0FBdUIsS0FBS0EsZUFBTCxDQUFxQkosSUFBckIsQ0FBMEIsSUFBMUIsQ0FBdkI7QUFDQSxTQUFLSyxJQUFMLEdBQVksS0FBS0EsSUFBTCxDQUFVTCxJQUFWLENBQWUsSUFBZixDQUFaO0FBQ0EsU0FBS00sT0FBTCxHQUFlLEtBQUtBLE9BQUwsQ0FBYU4sSUFBYixDQUFrQixJQUFsQixDQUFmO0FBRUEsU0FBS08sVUFB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QUFFLG9CQUFaO0FBQWtDRCxhQUFPLEVBQUVqRyxJQUFJLENBQUNWO0FBQWhELEtBRkosRUFHSSxXQUhKLENBSEosQ0FISixDQVZHLENBQVA7QUF3QlA7O0FBcGEwRCIsImZpbGUiOiIuL3NyYy91aS9wdWJsaWNzZXJ2ZXJzL21lbnUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IFNpZGViYXJWaWV3IGZyb20gXCIuL3NpZGViYXJ2aWV3XCI7XHJcbmltcG9ydCBUb29scyBmcm9tIFwiLi9leGl0YnV0dG9uXCI7XHJcbmltcG9ydCBUYWJCYXIgZnJvbSBcIi4vdGFiYmFyXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuLi9zZXR0aW5ncy90aXRsZVwiO1xyXG5pbXBvcnQgU2VydmVyQ2FyZCBmcm9tIFwiLi9jYXJkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQdWJsaWNTZXJ2ZXJzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAtMSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiTG9hZGluZy4uLlwiLFxyXG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICBzZXJ2ZXJzOiBbXSxcclxuICAgICAgICAgICAgbmV4dDogbnVsbCxcclxuICAgICAgICAgICAgY29ubmVjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgc3RhdGU6IDAsXHJcbiAgICAgICAgICAgICAgICB1c2VyOiBudWxsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuY2xvc2UgPSB0aGlzLmNsb3NlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VDYXRlZ29yeSA9IHRoaXMuY2hhbmdlQ2F0ZWdvcnkuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNlYXJjaCA9IHRoaXMuc2VhcmNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hLZXlEb3duID0gdGhpcy5zZWFyY2hLZXlEb3duLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jaGVja0Nvbm5lY3Rpb24gPSB0aGlzLmNoZWNrQ29ubmVjdGlvbi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuam9pbiA9IHRoaXMuam9pbi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCA9IHRoaXMuY29ubmVjdC5iaW5kKHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLkd1aWxkU3RvcmUgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0R3VpbGRzXCIpO1xyXG4gICAgICAgIHRoaXMuQXZhdGFyRGVmYXVsdHMgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0VXNlckF2YXRhclVSTFwiLCBcIkRFRkFVTFRfQVZBVEFSU1wiKTtcclxuICAgICAgICB0aGlzLkludml0ZUFjdGlvbnMgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYWNjZXB0SW52aXRlXCIpO1xyXG4gICAgICAgIHRoaXMuU29ydGVkR3VpbGRTdG9yZSA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRTb3J0ZWRHdWlsZHNcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0Nvbm5lY3Rpb24oKTtcclxuICAgICB9XHJcblxyXG4gICAgY2xvc2UoKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaChxdWVyeSwgY2xlYXIpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuXHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICB1cmw6IGAke3NlbGYuZW5kUG9pbnR9JHtxdWVyeX0ke3F1ZXJ5ID8gXCImc2NoZW1hPW5ld1wiIDogXCI/c2NoZW1hPW5ld1wifWAsXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlcnZlcnMgPSBkYXRhLnJlc3VsdHMucmVkdWNlKChhcnIsIHNlcnZlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlci5qb2luZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBhcnIucHVzaChzZXJ2ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGFyci5wdXNoKDxTZXJ2ZXJDYXJkIHNlcnZlcj17c2VydmVyfSBqb2luPXtzZWxmLmpvaW59Lz4pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnI7XHJcbiAgICAgICAgICAgICAgICB9LCBbXSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFjbGVhcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlcnMgPSBzZWxmLnN0YXRlLnNlcnZlcnMuY29uY2F0KHNlcnZlcnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXJ2ZXJzLnVuc2hpZnQoc2VsZi5iZFNlcnZlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IGVuZCA9IGRhdGEuc2l6ZSArIGRhdGEuZnJvbTtcclxuICAgICAgICAgICAgICAgIGRhdGEubmV4dCA9IGA/ZnJvbT0ke2VuZH1gO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc3RhdGUudGVybSkgZGF0YS5uZXh0ICs9IGAmdGVybT0ke3NlbGYuc3RhdGUudGVybX1gO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeSkgZGF0YS5uZXh0ICs9IGAmY2F0ZWdvcnk9JHtzZWxmLmNhdGVnb3J5QnV0dG9uc1tzZWxmLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnldfWA7XHJcbiAgICAgICAgICAgICAgICBpZiAoZW5kID49IGRhdGEudG90YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmQgPSBkYXRhLnRvdGFsO1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEubmV4dCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gYFNob3dpbmcgMS0ke2VuZH0gb2YgJHtkYXRhLnRvdGFsfSByZXN1bHRzIGluICR7c2VsZi5jYXRlZ29yeUJ1dHRvbnNbc2VsZi5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5XX1gO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc3RhdGUudGVybSkgdGl0bGUgKz0gYCBmb3IgJHtzZWxmLnN0YXRlLnRlcm19YDtcclxuXHJcbiAgICAgICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyczogc2VydmVycyxcclxuICAgICAgICAgICAgICAgICAgICBuZXh0OiBkYXRhLm5leHRcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjbGVhcikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coc2VsZik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWZzLnNidi5yZWZzLmNvbnRlbnRTY3JvbGxlci5zY3JvbGxUb3AgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmFpbGVkIHRvIGxvYWQgc2VydmVycy4gQ2hlY2sgY29uc29sZSBmb3IgZGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGpvaW4oc2VydmVyQ2FyZCkge1xyXG4gICAgICAgIGlmIChzZXJ2ZXJDYXJkLnByb3BzLnBpbm5lZCkgcmV0dXJuIHRoaXMuSW52aXRlQWN0aW9ucy5hY2NlcHRJbnZpdGUoc2VydmVyQ2FyZC5wcm9wcy5pbnZpdGVfY29kZSk7XHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuam9pbkVuZFBvaW50fS8ke3NlcnZlckNhcmQucHJvcHMuc2VydmVyLmlkZW50aWZpZXJ9YCxcclxuICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiLFxyXG4gICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiICxcclxuICAgICAgICAgICAgICAgIFwieC1kaXNjb3JkLXRva2VuXCI6IHRoaXMuc3RhdGUuY29ubmVjdGlvbi51c2VyLmFjY2Vzc1Rva2VuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNyb3NzRG9tYWluOiB0cnVlLFxyXG4gICAgICAgICAgICB4aHJGaWVsZHM6IHtcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZXJ2ZXJDYXJkLnNldFN0YXRlKHtqb2luZWQ6IHRydWV9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbm5lY3QoKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMud2luZG93T3B0aW9ucztcclxuICAgICAgICBvcHRpb25zLnggPSBNYXRoLnJvdW5kKHdpbmRvdy5zY3JlZW5YICsgd2luZG93LmlubmVyV2lkdGggLyAyIC0gb3B0aW9ucy53aWR0aCAvIDIpO1xyXG4gICAgICAgIG9wdGlvbnMueSA9IE1hdGgucm91bmQod2luZG93LnNjcmVlblkgKyB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gb3B0aW9ucy5oZWlnaHQgLyAyKTtcclxuXHJcbiAgICAgICAgdGhpcy5qb2luV2luZG93ID0gbmV3ICh3aW5kb3cucmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5Ccm93c2VyV2luZG93KShvcHRpb25zKTtcclxuICAgICAgICBjb25zdCB1cmwgPSBcImh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vY29ubmVjdD9zY29wZXM9Z3VpbGRzLmpvaW4mcHJldmlvdXNVcmw9aHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9pbmZvXCI7XHJcbiAgICAgICAgdGhpcy5qb2luV2luZG93LndlYkNvbnRlbnRzLm9uKFwiZGlkLW5hdmlnYXRlXCIsIChldmVudCwgdXJsKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh1cmwgIT0gXCJodHRwczovL2F1dGguZGlzY29yZHNlcnZlcnMuY29tL2luZm9cIikgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmpvaW5XaW5kb3cuY2xvc2UoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0Nvbm5lY3Rpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmpvaW5XaW5kb3cubG9hZFVSTCh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB3aW5kb3dPcHRpb25zKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MDAsXHJcbiAgICAgICAgICAgIGhlaWdodDogNTUwLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzI4MmIzMFwiLFxyXG4gICAgICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBtYXhpbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIG1pbmltaXphYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgYWx3YXlzT25Ub3A6IHRydWUsXHJcbiAgICAgICAgICAgIGZyYW1lOiBmYWxzZSxcclxuICAgICAgICAgICAgY2VudGVyOiBmYWxzZSxcclxuICAgICAgICAgICAgd2ViUHJlZmVyZW5jZXM6IHtcclxuICAgICAgICAgICAgICAgIG5vZGVJbnRlZ3JhdGlvbjogZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJkU2VydmVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNlcnZlciA9IHtcclxuICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJEaXNjb3JkXCIsXHJcbiAgICAgICAgICAgIG9ubGluZTogXCI3NTAwK1wiLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBcIjIwMDAwK1wiLFxyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBbXCJjb21tdW5pdHlcIiwgXCJwcm9ncmFtbWluZ1wiLCBcInN1cHBvcnRcIl0sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk9mZmljaWFsIEJldHRlckRpc2NvcmQgc2VydmVyIGZvciBzdXBwb3J0IGV0Y1wiLFxyXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIjg2MDA0NzQ0OTY2OTE0MDQ4XCIsXHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vaWNvbnMvODYwMDQ3NDQ5NjY5MTQwNDgvMjkyZTdmNmJmZmYyYjcxZGZkMTNlNTA4YTg1OWFlZGQud2VicFwiLFxyXG4gICAgICAgICAgICBuYXRpdmVqb2luOiB0cnVlLFxyXG4gICAgICAgICAgICBpbnZpdGVfY29kZTogXCIwVG1mbzVaYk9SQ1JxYkFkXCIsXHJcbiAgICAgICAgICAgIHBpbm5lZDogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZ3VpbGRMaXN0ID0gdGhpcy5Tb3J0ZWRHdWlsZFN0b3JlLmd1aWxkUG9zaXRpb25zO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMaXN0ID0gdGhpcy5BdmF0YXJEZWZhdWx0cy5ERUZBVUxUX0FWQVRBUlM7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge3NlcnZlcjogc2VydmVyLCBwaW5uZWQ6IHRydWUsIGpvaW46IHRoaXMuam9pbiwgZ3VpbGRMaXN0OiBndWlsZExpc3QsIGZhbGxiYWNrOiBkZWZhdWx0TGlzdFtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KV19KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZW5kUG9pbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9zZWFyY2guZGlzY29yZHNlcnZlcnMuY29tXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGpvaW5FbmRQb2ludCgpIHtcclxuICAgICAgICByZXR1cm4gXCJodHRwczovL2ouZGlzY29yZHNlcnZlcnMuY29tXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbm5lY3RFbmRQb2ludCgpIHtcclxuICAgICAgICByZXR1cm4gXCJodHRwczovL2pvaW4uZGlzY29yZHNlcnZlcnMuY29tL2Nvbm5lY3RcIjtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0Nvbm5lY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgICAgIHVybDogYGh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vaW5mb2AsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvbjtcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNyb3NzRG9tYWluOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgeGhyRmllbGRzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVXRpbHMubG9nKFwiUHVibGljU2VydmVyXCIsIFwiR290IGRhdGE6IFwiICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogMixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI6IGRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYuc2VhcmNoKFwiXCIsIHRydWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJOb3QgY29ubmVjdGVkIHRvIGRpc2NvcmRzZXJ2ZXJzLmNvbSFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogLTEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJOb3QgY29ubmVjdGVkIHRvIGRpc2NvcmRzZXJ2ZXJzLmNvbSFcIixcclxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAtMSxcclxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogMSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VyOiBudWxsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZWJhclZpZXcsIHtpZDogXCJwdWJzbGF5ZXJcIiwgcmVmOiBcInNidlwifSwgdGhpcy5jb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb21wb25lbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc2lkZWJhcjoge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLnNpZGViYXJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgY29udGVudDoge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmNvbnRlbnRcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdG9vbHM6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge2tleTogXCJwdFwiLCByZWY6IFwidG9vbHNcIiwgb25DbGljazogdGhpcy5jbG9zZX0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzaWRlYmFyKCkge1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInNpZGViYXItQ0ZIczllIGRhLXNpZGViYXIgc2lkZWJhclwiLCBrZXk6IFwicHNcIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyIFNJREVcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLWhlYWRlclwiLCBzdHlsZToge2ZvbnRTaXplOiBcIjE2cHhcIn19LFxyXG4gICAgICAgICAgICAgICAgICAgIFwiUHVibGljIFNlcnZlcnNcIlxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyLlNlcGFyYXRvciwgbnVsbCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXIuU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyLkhlYWRlciwge3RleHQ6IFwiQ2F0ZWdvcmllc1wifSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5QnV0dG9ucy5tYXAoKHZhbHVlLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhci5JdGVtLCB7aWQ6IGluZGV4LCBvbkNsaWNrOiB0aGlzLmNoYW5nZUNhdGVnb3J5LCBrZXk6IGluZGV4LCB0ZXh0OiB2YWx1ZSwgc2VsZWN0ZWQ6IHRoaXMuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeSA9PT0gaW5kZXh9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXIuU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZWFyY2hJbnB1dCgpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1mb3JtLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10ZXh0LWlucHV0IGZsZXgtdmVydGljYWxcIiwgc3R5bGU6IHt3aWR0aDogXCIxNzJweFwiLCBtYXJnaW5MZWZ0OiBcIjEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtyZWY6IFwic2VhcmNoaW5wdXRcIiwgb25LZXlEb3duOiB0aGlzLnNlYXJjaEtleURvd24sIG9uQ2hhbmdlOiAoKSA9PiB7fSwgdHlwZTogXCJ0ZXh0XCIsIGNsYXNzTmFtZTogXCJpbnB1dCBkZWZhdWx0XCIsIHBsYWNlaG9sZGVyOiBcIlNlYXJjaC4uLlwiLCBtYXhMZW5ndGg6IFwiNTBcIn0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaEtleURvd24oZSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGlmIChzZWxmLnN0YXRlLmxvYWRpbmcgfHwgZS53aGljaCAhPT0gMTMpIHJldHVybjtcclxuICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiTG9hZGluZy4uLlwiLFxyXG4gICAgICAgICAgICB0ZXJtOiBlLnRhcmdldC52YWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGxldCBxdWVyeSA9IGA/dGVybT0ke2UudGFyZ2V0LnZhbHVlfWA7XHJcbiAgICAgICAgaWYgKHNlbGYuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeSAhPT0gMCkge1xyXG4gICAgICAgICAgICBxdWVyeSArPSBgJmNhdGVnb3J5PSR7c2VsZi5jYXRlZ29yeUJ1dHRvbnNbc2VsZi5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5XX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNlYXJjaChxdWVyeSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNhdGVnb3J5QnV0dG9ucygpIHtcclxuICAgICAgICByZXR1cm4gW1wiQWxsXCIsIFwiRlBTIEdhbWVzXCIsIFwiTU1PIEdhbWVzXCIsIFwiU3RyYXRlZ3kgR2FtZXNcIiwgXCJNT0JBIEdhbWVzXCIsIFwiUlBHIEdhbWVzXCIsIFwiVGFibGV0b3AgR2FtZXNcIiwgXCJTYW5kYm94IEdhbWVzXCIsIFwiU2ltdWxhdGlvbiBHYW1lc1wiLCBcIk11c2ljXCIsIFwiQ29tbXVuaXR5XCIsIFwiTGFuZ3VhZ2VcIiwgXCJQcm9ncmFtbWluZ1wiLCBcIk90aGVyXCJdO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZUNhdGVnb3J5KGlkKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgaWYgKHNlbGYuc3RhdGUubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHNlbGYucmVmcy5zZWFyY2hpbnB1dC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IGlkLFxyXG4gICAgICAgICAgICB0aXRsZTogXCJMb2FkaW5nLi4uXCIsXHJcbiAgICAgICAgICAgIHRlcm06IG51bGxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaWQgPT09IDApIHtcclxuICAgICAgICAgICAgc2VsZi5zZWFyY2goXCJcIiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2VsZi5zZWFyY2goYD9jYXRlZ29yeT0ke3NlbGYuY2F0ZWdvcnlCdXR0b25zW2lkXX1gLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCBndWlsZExpc3QgPSB0aGlzLlNvcnRlZEd1aWxkU3RvcmUuZ3VpbGRQb3NpdGlvbnM7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExpc3QgPSB0aGlzLkF2YXRhckRlZmF1bHRzLkRFRkFVTFRfQVZBVEFSUztcclxuICAgICAgICBpZiAoc2VsZi5zdGF0ZS5jb25uZWN0aW9uLnN0YXRlID09PSAxKSByZXR1cm4gc2VsZi5ub3RDb25uZWN0ZWQ7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7cmVmOiBcImNvbnRlbnRcIiwga2V5OiBcInBjXCIsIGNsYXNzTmFtZTogXCJjb250ZW50Q29sdW1uLTJocklZSCBjb250ZW50Q29sdW1uRGVmYXVsdC0xVlFrR00gY29udGVudC1jb2x1bW4gZGVmYXVsdFwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogc2VsZi5zdGF0ZS50aXRsZX0pLFxyXG4gICAgICAgICAgICBzZWxmLmJkU2VydmVyLFxyXG4gICAgICAgICAgICBzZWxmLnN0YXRlLnNlcnZlcnMubWFwKChzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNlcnZlckNhcmQsIHtrZXk6IHNlcnZlci5pZGVudGlmaWVyLCBzZXJ2ZXI6IHNlcnZlciwgam9pbjogc2VsZi5qb2luLCBndWlsZExpc3Q6IGd1aWxkTGlzdCwgZmFsbGJhY2s6IGRlZmF1bHRMaXN0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXX0pO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgc2VsZi5zdGF0ZS5uZXh0ICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAge3R5cGU6IFwiYnV0dG9uXCIsIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuc3RhdGUubG9hZGluZykgcmV0dXJuO3NlbGYuc2V0U3RhdGUoe2xvYWRpbmc6IHRydWV9KTsgc2VsZi5zZWFyY2goc2VsZi5zdGF0ZS5uZXh0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgY2xhc3NOYW1lOiBcInVpLWJ1dHRvbiBmaWxsZWQgYnJhbmQgc21hbGwgZ3Jvd1wiLCBzdHlsZToge3dpZHRoOiBcIjEwMCVcIiwgbWFyZ2luVG9wOiBcIjEwcHhcIiwgbWFyZ2luQm90dG9tOiBcIjEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUubG9hZGluZyA/IFwiTG9hZGluZ1wiIDogXCJMb2FkIE1vcmVcIlxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBzZWxmLnN0YXRlLnNlcnZlcnMubGVuZ3RoID4gMCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiBzZWxmLnN0YXRlLnRpdGxlfSlcclxuICAgICAgICApXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbm90Q29ubmVjdGVkKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwgeyB0ZXh0OiBzZWxmLnN0YXRlLnRpdGxlIH0pO1xyXG4gICAgICAgIHJldHVybiBbUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2tleTogXCJuY2NcIiwgcmVmOiBcImNvbnRlbnRcIiwgY2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJoMlwiLFxyXG4gICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1mb3JtLXRpdGxlIGgyIG1hcmdpbi1yZXNldCBtYXJnaW4tYm90dG9tLTIwXCJ9LFxyXG4gICAgICAgICAgICAgICAgXCJOb3QgY29ubmVjdGVkIHRvIGRpc2NvcmRzZXJ2ZXJzLmNvbSFcIixcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHNlbGYuY29ubmVjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInVpLWJ1dHRvbiBmaWxsZWQgYnJhbmQgc21hbGwgZ3Jvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogXCIxOHB4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjEwcHhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IFwiMTRweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvbm5lY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSwgc2VsZi5iZFNlcnZlclxyXG4gICAgICAgICldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb290ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktdGFiLWJhci1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImFcIixcclxuICAgICAgICAgICAgICAgIHtocmVmOiBcImh0dHBzOi8vZGlzY29yZHNlcnZlcnMuY29tXCIsIHRhcmdldDogXCJfYmxhbmtcIn0sXHJcbiAgICAgICAgICAgICAgICBcIkRpc2NvcmRzZXJ2ZXJzLmNvbVwiXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25uZWN0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IHtjb25uZWN0aW9ufSA9IHNlbGYuc3RhdGU7XHJcbiAgICAgICAgaWYgKGNvbm5lY3Rpb24uc3RhdGUgIT09IDIpIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwic3BhblwiLFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhci5TZXBhcmF0b3IsIG51bGwpLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJzcGFuXCIsXHJcbiAgICAgICAgICAgICAgICB7c3R5bGU6IHtjb2xvcjogXCIjYjliYmJlXCIsIGZvbnRTaXplOiBcIjEwcHhcIiwgbWFyZ2luTGVmdDogXCIxMHB4XCJ9fSxcclxuICAgICAgICAgICAgICAgIFwiQ29ubmVjdGVkIGFzOiBcIixcclxuICAgICAgICAgICAgICAgIGAke2Nvbm5lY3Rpb24udXNlci51c2VybmFtZX0jJHtjb25uZWN0aW9uLnVzZXIuZGlzY3JpbWluYXRvcn1gXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAge3N0eWxlOiB7cGFkZGluZzogXCI1cHggMTBweCAwIDEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtzdHlsZToge3dpZHRoOiBcIjEwMCVcIiwgbWluSGVpZ2h0OiBcIjIwcHhcIn0sIHR5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJ1aS1idXR0b24gZmlsbGVkIGJyYW5kIHNtYWxsIGdyb3dcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1idXR0b24tY29udGVudHNcIiwgb25DbGljazogc2VsZi5jb25uZWN0fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWNvbm5lY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbn1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/publicservers/menu.js\n"); /***/ }), @@ -719,7 +755,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SidebarView; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _scroller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scroller */ \"./src/ui/publicservers/scroller.js\");\n\n\nclass SidebarView extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const {\n sidebar,\n content,\n tools\n } = this.props.children;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"standardSidebarView-3F1I7i ui-standard-sidebar-view\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"sidebarRegion-VFTUkN sidebar-region\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_scroller__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"sidebarScroller\",\n sidebar: true,\n fade: sidebar.fade || true,\n dark: sidebar.dark || true\n }, sidebar.component)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"contentRegion-3nDuYy content-region\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"contentTransitionWrap-3hqOEW content-transition-wrap\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_scroller__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"contentScroller\",\n contentColumn: true,\n fade: content.fade || true,\n dark: content.dark || true\n }, content.component, tools.component))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvc2lkZWJhcnZpZXcuanM/OGM1MiJdLCJuYW1lcyI6WyJTaWRlYmFyVmlldyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInJlbmRlciIsInNpZGViYXIiLCJjb250ZW50IiwidG9vbHMiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTY3JvbGxlciIsImtleSIsImZhZGUiLCJkYXJrIiwiY29tcG9uZW50IiwiY29udGVudENvbHVtbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFFckRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxVQUFNO0FBQUNDLGFBQUQ7QUFBVUMsYUFBVjtBQUFtQkM7QUFBbkIsUUFBNEIsS0FBS0osS0FBTCxDQUFXSyxRQUE3QztBQUNBLFdBQU9SLDZDQUFLLENBQUNTLGFBQU4sQ0FDSCxLQURHLEVBRUg7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGRyxFQUdIViw2Q0FBSyxDQUFDUyxhQUFOLENBQ0ksS0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkosRUFHSVYsNkNBQUssQ0FBQ1MsYUFBTixDQUFvQkUsaURBQXBCLEVBQThCO0FBQUNDLFNBQUcsRUFBRSxpQkFBTjtBQUF5QlAsYUFBTyxFQUFFLElBQWxDO0FBQXdDUSxVQUFJLEVBQUVSLE9BQU8sQ0FBQ1EsSUFBUixJQUFnQixJQUE5RDtBQUFvRUMsVUFBSSxFQUFFVCxPQUFPLENBQUNTLElBQVIsSUFBZ0I7QUFBMUYsS0FBOUIsRUFBK0hULE9BQU8sQ0FBQ1UsU0FBdkksQ0FISixDQUhHLEVBUUhmLDZDQUFLLENBQUNTLGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBM0IsRUFDSVYsNkNBQUssQ0FBQ1MsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUNJViw2Q0FBSyxDQUFDUyxhQUFOLENBQW9CRSxpREFBcEIsRUFBOEI7QUFBQ0MsU0FBRyxFQUFFLGlCQUFOO0FBQXlCSSxtQkFBYSxFQUFFLElBQXhDO0FBQThDSCxVQUFJLEVBQUVQLE9BQU8sQ0FBQ08sSUFBUixJQUFnQixJQUFwRTtBQUEwRUMsVUFBSSxFQUFFUixPQUFPLENBQUNRLElBQVIsSUFBZ0I7QUFBaEcsS0FBOUIsRUFBcUlSLE9BQU8sQ0FBQ1MsU0FBN0ksRUFBd0pSLEtBQUssQ0FBQ1EsU0FBOUosQ0FESixDQURKLENBUkcsQ0FBUDtBQWNIOztBQXRCb0QiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9zaWRlYmFydmlldy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBTY3JvbGxlciBmcm9tIFwiLi9zY3JvbGxlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2lkZWJhclZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2lkZWJhciwgY29udGVudCwgdG9vbHN9ID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJzdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aSB1aS1zdGFuZGFyZC1zaWRlYmFyLXZpZXdcIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJzaWRlYmFyUmVnaW9uLVZGVFVrTiBzaWRlYmFyLXJlZ2lvblwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtrZXk6IFwic2lkZWJhclNjcm9sbGVyXCIsIHNpZGViYXI6IHRydWUsIGZhZGU6IHNpZGViYXIuZmFkZSB8fCB0cnVlLCBkYXJrOiBzaWRlYmFyLmRhcmsgfHwgdHJ1ZX0sIHNpZGViYXIuY29tcG9uZW50KVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiY29udGVudFJlZ2lvbi0zbkR1WXkgY29udGVudC1yZWdpb25cIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiY29udGVudFRyYW5zaXRpb25XcmFwLTNocU9FVyBjb250ZW50LXRyYW5zaXRpb24td3JhcFwifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFNjcm9sbGVyLCB7a2V5OiBcImNvbnRlbnRTY3JvbGxlclwiLCBjb250ZW50Q29sdW1uOiB0cnVlLCBmYWRlOiBjb250ZW50LmZhZGUgfHwgdHJ1ZSwgZGFyazogY29udGVudC5kYXJrIHx8IHRydWV9LCBjb250ZW50LmNvbXBvbmVudCwgdG9vbHMuY29tcG9uZW50KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/publicservers/sidebarview.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SidebarView; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _scroller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scroller */ \"./src/ui/publicservers/scroller.js\");\n\n\nclass SidebarView extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const {\n sidebar,\n content,\n tools\n } = this.props.children;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.props.className || \"\",\n id: this.props.id || \"\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"standardSidebarView-3F1I7i ui-standard-sidebar-view\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"sidebarRegion-VFTUkN sidebar-region\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_scroller__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"sidebarScroller\",\n sidebar: true,\n fade: sidebar.fade || true,\n dark: sidebar.dark || true\n }, sidebar.component)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"contentRegion-3nDuYy content-region\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"contentTransitionWrap-3hqOEW content-transition-wrap\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_scroller__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"contentScroller\",\n contentColumn: true,\n fade: content.fade || true,\n dark: content.dark || true\n }, content.component, tools.component)))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvc2lkZWJhcnZpZXcuanM/OGM1MiJdLCJuYW1lcyI6WyJTaWRlYmFyVmlldyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInJlbmRlciIsInNpZGViYXIiLCJjb250ZW50IiwidG9vbHMiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpZCIsIlNjcm9sbGVyIiwia2V5IiwiZmFkZSIsImRhcmsiLCJjb21wb25lbnQiLCJjb250ZW50Q29sdW1uIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQyw2Q0FBSyxDQUFDQyxTQUFoQyxDQUEwQztBQUVyREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0MsYUFBRDtBQUFVQyxhQUFWO0FBQW1CQztBQUFuQixRQUE0QixLQUFLSixLQUFMLENBQVdLLFFBQTdDO0FBQ0EsV0FBT1IsNkNBQUssQ0FBQ1MsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUUsS0FBS1AsS0FBTCxDQUFXTyxTQUFYLElBQXdCLEVBQXBDO0FBQXdDQyxRQUFFLEVBQUUsS0FBS1IsS0FBTCxDQUFXUSxFQUFYLElBQWlCO0FBQTdELEtBQTNCLEVBQ1BYLDZDQUFLLENBQUNTLGFBQU4sQ0FDSSxLQURKLEVBRUk7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGSixFQUdJViw2Q0FBSyxDQUFDUyxhQUFOLENBQ0ksS0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkosRUFHSVYsNkNBQUssQ0FBQ1MsYUFBTixDQUFvQkcsaURBQXBCLEVBQThCO0FBQUNDLFNBQUcsRUFBRSxpQkFBTjtBQUF5QlIsYUFBTyxFQUFFLElBQWxDO0FBQXdDUyxVQUFJLEVBQUVULE9BQU8sQ0FBQ1MsSUFBUixJQUFnQixJQUE5RDtBQUFvRUMsVUFBSSxFQUFFVixPQUFPLENBQUNVLElBQVIsSUFBZ0I7QUFBMUYsS0FBOUIsRUFBK0hWLE9BQU8sQ0FBQ1csU0FBdkksQ0FISixDQUhKLEVBUUloQiw2Q0FBSyxDQUFDUyxhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTNCLEVBQ0lWLDZDQUFLLENBQUNTLGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBM0IsRUFDSVYsNkNBQUssQ0FBQ1MsYUFBTixDQUFvQkcsaURBQXBCLEVBQThCO0FBQUNDLFNBQUcsRUFBRSxpQkFBTjtBQUF5QkksbUJBQWEsRUFBRSxJQUF4QztBQUE4Q0gsVUFBSSxFQUFFUixPQUFPLENBQUNRLElBQVIsSUFBZ0IsSUFBcEU7QUFBMEVDLFVBQUksRUFBRVQsT0FBTyxDQUFDUyxJQUFSLElBQWdCO0FBQWhHLEtBQTlCLEVBQXFJVCxPQUFPLENBQUNVLFNBQTdJLEVBQXdKVCxLQUFLLENBQUNTLFNBQTlKLENBREosQ0FESixDQVJKLENBRE8sQ0FBUDtBQWVIOztBQXZCb0QiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9zaWRlYmFydmlldy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBTY3JvbGxlciBmcm9tIFwiLi9zY3JvbGxlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2lkZWJhclZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2lkZWJhciwgY29udGVudCwgdG9vbHN9ID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiLCBpZDogdGhpcy5wcm9wcy5pZCB8fCBcIlwifSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpIHVpLXN0YW5kYXJkLXNpZGViYXItdmlld1wifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInNpZGViYXJSZWdpb24tVkZUVWtOIHNpZGViYXItcmVnaW9uXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge2tleTogXCJzaWRlYmFyU2Nyb2xsZXJcIiwgc2lkZWJhcjogdHJ1ZSwgZmFkZTogc2lkZWJhci5mYWRlIHx8IHRydWUsIGRhcms6IHNpZGViYXIuZGFyayB8fCB0cnVlfSwgc2lkZWJhci5jb21wb25lbnQpXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJjb250ZW50UmVnaW9uLTNuRHVZeSBjb250ZW50LXJlZ2lvblwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJjb250ZW50VHJhbnNpdGlvbldyYXAtM2hxT0VXIGNvbnRlbnQtdHJhbnNpdGlvbi13cmFwXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtrZXk6IFwiY29udGVudFNjcm9sbGVyXCIsIGNvbnRlbnRDb2x1bW46IHRydWUsIGZhZGU6IGNvbnRlbnQuZmFkZSB8fCB0cnVlLCBkYXJrOiBjb250ZW50LmRhcmsgfHwgdHJ1ZX0sIGNvbnRlbnQuY29tcG9uZW50LCB0b29scy5jb21wb25lbnQpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/publicservers/sidebarview.js\n"); /***/ }), @@ -743,7 +779,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// static getPluginsPanel(plugins, state, options = {}) {\n// const {folder = \"\", onChange, reload} = options;\n// const titleComponent = React.createElement(SettingsTitle, {text: \"Plugins\", button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }}});\n// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin => \n// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload})\n// );\n// return [titleComponent, React.createElement(\"ul\", {className: \"bda-slist\"}, ...cards)];\n// }\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\");\n const button = folder ? {\n title: `Open ${title} Folder`,\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJ0eXBlIiwiUGx1Z2luQ2FyZCIsIlRoZW1lQ2FyZCIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFFckRDLFFBQU0sR0FBRztBQUNMLFFBQUksS0FBS0MsS0FBTCxDQUFXQyxXQUFmLEVBQTRCLEtBQUtELEtBQUwsQ0FBV0MsV0FBWDtBQUM1QixTQUFLQyxXQUFMO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0MsV0FBRDtBQUFRQyxZQUFSO0FBQWdCQyxpQkFBaEI7QUFBNkJDLGtCQUE3QjtBQUEyQ0MsY0FBM0M7QUFBcURUO0FBQXJELFFBQStELEtBQUtDLEtBQTFFO0FBQ0EsVUFBTVMsY0FBYyxHQUFHLENBQUNDLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFNBQXpCLEVBQW9DLFlBQXBDLENBQXhCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHUCxNQUFNLEdBQUc7QUFBQ0QsV0FBSyxFQUFHLFFBQU9BLEtBQU0sU0FBdEI7QUFBZ0NTLGFBQU8sRUFBRSxNQUFNO0FBQUNDLDJCQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsS0FBcEIsQ0FBMEJDLFFBQTFCLENBQW1DWCxNQUFuQztBQUE0QztBQUE1RixLQUFILEdBQW1HLElBQXhIO0FBQ0EsV0FBTyxDQUNILDREQUFDLDhDQUFEO0FBQWUsU0FBRyxFQUFDLE9BQW5CO0FBQTJCLFVBQUksRUFBRUQsS0FBakM7QUFBd0MsWUFBTSxFQUFFUSxNQUFoRDtBQUF3RCxtQkFBYSxFQUFFSCxjQUFjLElBQUksNERBQUMscURBQUQ7QUFBWSxlQUFPLEVBQUUsS0FBS1YsTUFBTCxDQUFZa0IsSUFBWixDQUFpQixJQUFqQjtBQUFyQjtBQUF6RixNQURHLEVBRUg7QUFBSSxTQUFHLEVBQUMsYUFBUjtBQUFzQixlQUFTLEVBQUU7QUFBakMsT0FDQ1gsV0FBVyxDQUFDWSxJQUFaLENBQWlCLENBQUNDLENBQUQsRUFBSUMsQ0FBSixLQUFVRCxDQUFDLENBQUNFLElBQUYsQ0FBT0MsV0FBUCxHQUFxQkMsYUFBckIsQ0FBbUNILENBQUMsQ0FBQ0MsSUFBRixDQUFPQyxXQUFQLEVBQW5DLENBQTNCLEVBQXFGRSxHQUFyRixDQUF5RkMsT0FBTyxJQUFJO0FBQ2pHLFlBQU1DLFFBQVEsR0FBR0QsT0FBTyxDQUFDRSxJQUFSLEdBQWVDLG1EQUFmLEdBQTRCQyxrREFBN0M7QUFDQSxhQUFPLDREQUFDLFFBQUQ7QUFBVSxzQkFBYyxFQUFFcEIsY0FBMUI7QUFBMEMsV0FBRyxFQUFFZ0IsT0FBTyxDQUFDSyxFQUF2RDtBQUEyRCxlQUFPLEVBQUV2QixZQUFZLENBQUNrQixPQUFPLENBQUNLLEVBQVQsQ0FBaEY7QUFBOEYsZUFBTyxFQUFFTCxPQUF2RztBQUFnSCxnQkFBUSxFQUFFakIsUUFBMUg7QUFBb0ksY0FBTSxFQUFFVDtBQUE1SSxRQUFQO0FBQ0gsS0FIQSxDQURELENBRkcsQ0FBUDtBQVNIOztBQXBCb0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvY29udGVudGxpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3RhdGljIGdldFBsdWdpbnNQYW5lbChwbHVnaW5zLCBzdGF0ZSwgb3B0aW9ucyA9IHt9KSB7XHJcbi8vICAgICBjb25zdCB7Zm9sZGVyID0gXCJcIiwgb25DaGFuZ2UsIHJlbG9hZH0gPSBvcHRpb25zO1xyXG4vLyAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiBcIlBsdWdpbnNcIiwgYnV0dG9uOiB7dGl0bGU6IFwiT3BlbiBQbHVnaW4gRm9sZGVyXCIsIG9uQ2xpY2s6ICgpID0+IHsgcmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKGZvbGRlcik7IH19fSk7XHJcbi8vICAgICBjb25zdCBjYXJkcyA9IHBsdWdpbnMuc29ydCgoYSwgYikgPT4gYS5uYW1lLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLm5hbWUudG9Mb3dlckNhc2UoKSkpLm1hcChwbHVnaW4gPT4gXHJcbi8vICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChQbHVnaW5DYXJkLCB7a2V5OiBwbHVnaW4uaWQsIGVuYWJsZWQ6IHN0YXRlW3BsdWdpbi5pZF0sIGNvbnRlbnQ6IHBsdWdpbiwgb25DaGFuZ2UsIHJlbG9hZH0pXHJcbi8vICAgICApO1xyXG4vLyAgICAgcmV0dXJuIFt0aXRsZUNvbXBvbmVudCwgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHtjbGFzc05hbWU6IFwiYmRhLXNsaXN0XCJ9LCAuLi5jYXJkcyldO1xyXG4vLyB9XHJcblxyXG5pbXBvcnQge1JlYWN0LCBTZXR0aW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3RpdGxlXCI7XHJcbmltcG9ydCBQbHVnaW5DYXJkIGZyb20gXCIuL3BsdWdpbmNhcmRcIjtcclxuaW1wb3J0IFRoZW1lQ2FyZCBmcm9tIFwiLi90aGVtZWNhcmRcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGVudExpc3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZWZyZXNoTGlzdCkgdGhpcy5wcm9wcy5yZWZyZXNoTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qge3RpdGxlLCBmb2xkZXIsIGNvbnRlbnRMaXN0LCBjb250ZW50U3RhdGUsIG9uQ2hhbmdlLCByZWxvYWR9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBzaG93UmVsb2FkSWNvbiA9ICFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImNvbnRlbnRcIiwgXCJhdXRvUmVsb2FkXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGZvbGRlciA/IHt0aXRsZTogYE9wZW4gJHt0aXRsZX0gRm9sZGVyYCwgb25DbGljazogKCkgPT4ge3JlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShmb2xkZXIpO319IDogbnVsbDtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICA8U2V0dGluZ3NUaXRsZSBrZXk9XCJ0aXRsZVwiIHRleHQ9e3RpdGxlfSBidXR0b249e2J1dHRvbn0gb3RoZXJDaGlsZHJlbj17c2hvd1JlbG9hZEljb24gJiYgPFJlbG9hZEljb24gb25DbGljaz17dGhpcy5yZWxvYWQuYmluZCh0aGlzKX0gLz59IC8+LFxyXG4gICAgICAgICAgICA8dWwga2V5PVwiQ29udGVudExpc3RcIiBjbGFzc05hbWU9e1wiYmRhLXNsaXN0XCJ9PlxyXG4gICAgICAgICAgICB7Y29udGVudExpc3Quc29ydCgoYSwgYikgPT4gYS5uYW1lLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLm5hbWUudG9Mb3dlckNhc2UoKSkpLm1hcChjb250ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IENhcmRUeXBlID0gY29udGVudC50eXBlID8gUGx1Z2luQ2FyZCA6IFRoZW1lQ2FyZDtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8Q2FyZFR5cGUgc2hvd1JlbG9hZEljb249e3Nob3dSZWxvYWRJY29ufSBrZXk9e2NvbnRlbnQuaWR9IGVuYWJsZWQ9e2NvbnRlbnRTdGF0ZVtjb250ZW50LmlkXX0gY29udGVudD17Y29udGVudH0gb25DaGFuZ2U9e29uQ2hhbmdlfSByZWxvYWQ9e3JlbG9hZH0gLz47XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// static getPluginsPanel(plugins, state, options = {}) {\n// const {folder = \"\", onChange, reload} = options;\n// const titleComponent = React.createElement(SettingsTitle, {text: \"Plugins\", button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }}});\n// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin => \n// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload})\n// );\n// return [titleComponent, React.createElement(\"ul\", {className: \"bda-slist\"}, ...cards)];\n// }\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\");\n const button = folder ? {\n title: `Open ${title} Folder`,\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJ0eXBlIiwiUGx1Z2luQ2FyZCIsIlRoZW1lQ2FyZCIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFFckRDLFFBQU0sR0FBRztBQUNMLFFBQUksS0FBS0MsS0FBTCxDQUFXQyxXQUFmLEVBQTRCLEtBQUtELEtBQUwsQ0FBV0MsV0FBWDtBQUM1QixTQUFLQyxXQUFMO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0MsV0FBRDtBQUFRQyxZQUFSO0FBQWdCQyxpQkFBaEI7QUFBNkJDLGtCQUE3QjtBQUEyQ0MsY0FBM0M7QUFBcURUO0FBQXJELFFBQStELEtBQUtDLEtBQTFFO0FBQ0EsVUFBTVMsY0FBYyxHQUFHLENBQUNDLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFNBQXpCLEVBQW9DLFlBQXBDLENBQXhCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHUCxNQUFNLEdBQUc7QUFBQ0QsV0FBSyxFQUFHLFFBQU9BLEtBQU0sU0FBdEI7QUFBZ0NTLGFBQU8sRUFBRSxNQUFNO0FBQUNDLDJCQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsS0FBcEIsQ0FBMEJDLFFBQTFCLENBQW1DWCxNQUFuQztBQUE0QztBQUE1RixLQUFILEdBQW1HLElBQXhIO0FBQ0EsV0FBTyxDQUNILDREQUFDLDhDQUFEO0FBQWUsU0FBRyxFQUFDLE9BQW5CO0FBQTJCLFVBQUksRUFBRUQsS0FBakM7QUFBd0MsWUFBTSxFQUFFUSxNQUFoRDtBQUF3RCxtQkFBYSxFQUFFSCxjQUFjLElBQUksNERBQUMscURBQUQ7QUFBWSxpQkFBUyxFQUFDLFdBQXRCO0FBQWtDLGVBQU8sRUFBRSxLQUFLVixNQUFMLENBQVlrQixJQUFaLENBQWlCLElBQWpCO0FBQTNDO0FBQXpGLE1BREcsRUFFSDtBQUFJLFNBQUcsRUFBQyxhQUFSO0FBQXNCLGVBQVMsRUFBRTtBQUFqQyxPQUNDWCxXQUFXLENBQUNZLElBQVosQ0FBaUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsQ0FBQ0UsSUFBRixDQUFPQyxXQUFQLEdBQXFCQyxhQUFyQixDQUFtQ0gsQ0FBQyxDQUFDQyxJQUFGLENBQU9DLFdBQVAsRUFBbkMsQ0FBM0IsRUFBcUZFLEdBQXJGLENBQXlGQyxPQUFPLElBQUk7QUFDakcsWUFBTUMsUUFBUSxHQUFHRCxPQUFPLENBQUNFLElBQVIsR0FBZUMsbURBQWYsR0FBNEJDLGtEQUE3QztBQUNBLGFBQU8sNERBQUMsUUFBRDtBQUFVLHNCQUFjLEVBQUVwQixjQUExQjtBQUEwQyxXQUFHLEVBQUVnQixPQUFPLENBQUNLLEVBQXZEO0FBQTJELGVBQU8sRUFBRXZCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQ0ssRUFBVCxDQUFoRjtBQUE4RixlQUFPLEVBQUVMLE9BQXZHO0FBQWdILGdCQUFRLEVBQUVqQixRQUExSDtBQUFvSSxjQUFNLEVBQUVUO0FBQTVJLFFBQVA7QUFDSCxLQUhBLENBREQsQ0FGRyxDQUFQO0FBU0g7O0FBcEJvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb250ZW50bGlzdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdGF0aWMgZ2V0UGx1Z2luc1BhbmVsKHBsdWdpbnMsIHN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuLy8gICAgIGNvbnN0IHtmb2xkZXIgPSBcIlwiLCBvbkNoYW5nZSwgcmVsb2FkfSA9IG9wdGlvbnM7XHJcbi8vICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IFwiUGx1Z2luc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFBsdWdpbiBGb2xkZXJcIiwgb25DbGljazogKCkgPT4geyByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTsgfX19KTtcclxuLy8gICAgIGNvbnN0IGNhcmRzID0gcGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKHBsdWdpbiA9PiBcclxuLy8gICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFBsdWdpbkNhcmQsIHtrZXk6IHBsdWdpbi5pZCwgZW5hYmxlZDogc3RhdGVbcGx1Z2luLmlkXSwgY29udGVudDogcGx1Z2luLCBvbkNoYW5nZSwgcmVsb2FkfSlcclxuLy8gICAgICk7XHJcbi8vICAgICByZXR1cm4gW3RpdGxlQ29tcG9uZW50LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwge2NsYXNzTmFtZTogXCJiZGEtc2xpc3RcIn0sIC4uLmNhcmRzKV07XHJcbi8vIH1cclxuXHJcbmltcG9ydCB7UmVhY3QsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IFBsdWdpbkNhcmQgZnJvbSBcIi4vcGx1Z2luY2FyZFwiO1xyXG5pbXBvcnQgVGhlbWVDYXJkIGZyb20gXCIuL3RoZW1lY2FyZFwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZW50TGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlZnJlc2hMaXN0KSB0aGlzLnByb3BzLnJlZnJlc2hMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7dGl0bGUsIGZvbGRlciwgY29udGVudExpc3QsIGNvbnRlbnRTdGF0ZSwgb25DaGFuZ2UsIHJlbG9hZH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IHNob3dSZWxvYWRJY29uID0gIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIik7XHJcbiAgICAgICAgY29uc3QgYnV0dG9uID0gZm9sZGVyID8ge3RpdGxlOiBgT3BlbiAke3RpdGxlfSBGb2xkZXJgLCBvbkNsaWNrOiAoKSA9PiB7cmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKGZvbGRlcik7fX0gOiBudWxsO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIDxTZXR0aW5nc1RpdGxlIGtleT1cInRpdGxlXCIgdGV4dD17dGl0bGV9IGJ1dHRvbj17YnV0dG9ufSBvdGhlckNoaWxkcmVuPXtzaG93UmVsb2FkSWNvbiAmJiA8UmVsb2FkSWNvbiBjbGFzc05hbWU9XCJiZC1yZWxvYWRcIiBvbkNsaWNrPXt0aGlzLnJlbG9hZC5iaW5kKHRoaXMpfSAvPn0gLz4sXHJcbiAgICAgICAgICAgIDx1bCBrZXk9XCJDb250ZW50TGlzdFwiIGNsYXNzTmFtZT17XCJiZGEtc2xpc3RcIn0+XHJcbiAgICAgICAgICAgIHtjb250ZW50TGlzdC5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKGNvbnRlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgQ2FyZFR5cGUgPSBjb250ZW50LnR5cGUgPyBQbHVnaW5DYXJkIDogVGhlbWVDYXJkO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDYXJkVHlwZSBzaG93UmVsb2FkSWNvbj17c2hvd1JlbG9hZEljb259IGtleT17Y29udGVudC5pZH0gZW5hYmxlZD17Y29udGVudFN0YXRlW2NvbnRlbnQuaWRdfSBjb250ZW50PXtjb250ZW50fSBvbkNoYW5nZT17b25DaGFuZ2V9IHJlbG9hZD17cmVsb2FkfSAvPjtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n"); /***/ }), @@ -779,7 +815,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PluginCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n\n\nclass PluginCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.state = {\n checked: this.props.enabled,\n //PluginManager.isEnabled(this.props.content.id),\n settingsOpen: false\n };\n this.hasSettings = typeof this.props.content.plugin.getSettingsPanel === \"function\";\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.reload = this.reload.bind(this); // this.onReload = this.onReload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (this.state.settingsOpen) {\n if (this.settingsPanel instanceof Node) {\n this.panelRef.current.appendChild(this.settingsPanel);\n } // if (!SettingsCookie[\"fork-ps-3\"]) return;\n\n\n const isHidden = (container, element) => {\n const cTop = container.scrollTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n return eTop < cTop || eBottom > cBottom;\n };\n\n const self = $(this.panelRef.current);\n const container = self.parents(\".scroller-2FKFPG\");\n if (!isHidden(container[0], self[0])) return;\n container.animate({\n scrollTop: self.offset().top - container.offset().top + container.scrollTop() - 30\n }, 300);\n }\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n render() {\n const self = this;\n const {\n content\n } = this.props;\n const name = this.getString(content.name);\n const author = this.getString(content.author);\n const description = this.getString(content.description);\n const version = this.getString(content.version);\n const website = content.website;\n const source = content.source;\n\n if (this.state.settingsOpen) {\n try {\n self.settingsPanel = content.plugin.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].err(\"Plugins\", \"Unable to get settings panel for \" + content.name + \".\", err);\n }\n\n const props = {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef\n };\n if (typeof this.settingsPanel == \"string\") props.dangerouslySetInnerHTML = this.settingsPanel;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n className: \"settings-open ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n \"float\": \"right\",\n \"cursor\": \"pointer\"\n },\n onClick: () => {\n this.panelRef.current.innerHTML = \"\";\n self.setState({\n settingsOpen: false\n });\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, this.settingsPanel instanceof modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component ? this.settingsPanel : null));\n }\n\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source || this.hasSettings) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-website\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-source\",\n href: source,\n target: \"_blank\"\n }, \"Source\")), this.hasSettings && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bda-settings-button\",\n disabled: !this.state.checked\n }, \"Settings\")));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n }); // PluginManager.togglePlugin(this.props.content.id);\n\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanM/NzczZCJdLCJuYW1lcyI6WyJQbHVnaW5DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwib25DaGFuZ2UiLCJiaW5kIiwic2hvd1NldHRpbmdzIiwic3RhdGUiLCJjaGVja2VkIiwiZW5hYmxlZCIsInNldHRpbmdzT3BlbiIsImhhc1NldHRpbmdzIiwiY29udGVudCIsInBsdWdpbiIsImdldFNldHRpbmdzUGFuZWwiLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJyZWxvYWQiLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJzZWxmIiwiJCIsInBhcmVudHMiLCJhbmltYXRlIiwib2Zmc2V0IiwidG9wIiwiZ2V0U3RyaW5nIiwidmFsdWUiLCJ0b1N0cmluZyIsInJlbmRlciIsIm5hbWUiLCJhdXRob3IiLCJkZXNjcmlwdGlvbiIsInZlcnNpb24iLCJ3ZWJzaXRlIiwic291cmNlIiwiZXJyIiwiVXRpbGl0aWVzIiwiY2xhc3NOYW1lIiwicmVmIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJvbkNsaWNrIiwiaW5uZXJIVE1MIiwic2V0U3RhdGUiLCJDbG9zZUJ1dHRvbiIsIlNldHRpbmdzIiwiZ2V0IiwiUmVsb2FkSWNvbiIsImZsZXgiLCJ0eXBlIiwiaHJlZiIsInRhcmdldCIsImRpc2FibGVkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FB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LFFBQUksQ0FBQyxLQUFLSyxXQUFWLEVBQXVCO0FBQ3ZCLFNBQUtpRCxRQUFMLENBQWM7QUFBQ2xELGtCQUFZLEVBQUU7QUFBZixLQUFkO0FBQ0g7O0FBM0htRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9wbHVnaW5jYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHtTZXR0aW5nc0Nvb2tpZSwgUGx1Z2luQ29va2llLCBQbHVnaW5zfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0LCBVdGlsaXRpZXMsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ2xvc2VCdXR0b24gZnJvbSBcIi4uL2ljb25zL2Nsb3NlXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsdWdpbkNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zaG93U2V0dGluZ3MgPSB0aGlzLnNob3dTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwvL1BsdWdpbk1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHNldHRpbmdzT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaGFzU2V0dGluZ3MgPSB0eXBlb2YgdGhpcy5wcm9wcy5jb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc1BhbmVsID0gXCJcIjtcclxuICAgICAgICB0aGlzLnBhbmVsUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVsb2FkID0gdGhpcy5yZWxvYWQuYmluZCh0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm9uUmVsb2FkID0gdGhpcy5vblJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3Blbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NQYW5lbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIGlmICghU2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTNcIl0pIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSAoY29udGFpbmVyLCBlbGVtZW50KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY1RvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjQm90dG9tID0gY1RvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZVRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZUJvdHRvbSA9IGVUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICAoZVRvcCA8IGNUb3AgfHwgZUJvdHRvbSA+IGNCb3R0b20pO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3Qgc2VsZiA9ICQodGhpcy5wYW5lbFJlZi5jdXJyZW50KTtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc2VsZi5wYXJlbnRzKFwiLnNjcm9sbGVyLTJGS0ZQR1wiKTtcclxuICAgICAgICAgICAgaWYgKCFpc0hpZGRlbihjb250YWluZXJbMF0sIHNlbGZbMF0pKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5hbmltYXRlKHtcclxuICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogc2VsZi5vZmZzZXQoKS50b3AgLSBjb250YWluZXIub2Zmc2V0KCkudG9wICsgY29udGFpbmVyLnNjcm9sbFRvcCgpIC0gMzBcclxuICAgICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RyaW5nKHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiID8gdmFsdWUgOiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCB7Y29udGVudH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhjb250ZW50Lm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvciA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQuYXV0aG9yKTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQuZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZyhjb250ZW50LnZlcnNpb24pO1xyXG4gICAgICAgIGNvbnN0IHdlYnNpdGUgPSBjb250ZW50LndlYnNpdGU7XHJcbiAgICAgICAgY29uc3Qgc291cmNlID0gY29udGVudC5zb3VyY2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3Blbikge1xyXG4gICAgICAgICAgICB0cnkgeyBzZWxmLnNldHRpbmdzUGFuZWwgPSBjb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsKCk7IH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBnZXQgc2V0dGluZ3MgcGFuZWwgZm9yIFwiICsgY29udGVudC5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0ge2lkOiBgcGx1Z2luLXNldHRpbmdzLSR7bmFtZX1gLCBjbGFzc05hbWU6IFwicGx1Z2luLXNldHRpbmdzXCIsIHJlZjogdGhpcy5wYW5lbFJlZn07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YodGhpcy5zZXR0aW5nc1BhbmVsKSA9PSBcInN0cmluZ1wiKSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHRoaXMuc2V0dGluZ3NQYW5lbDtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge2NsYXNzTmFtZTogXCJzZXR0aW5ncy1vcGVuIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB7XCJmbG9hdFwiOiBcInJpZ2h0XCIsIFwiY3Vyc29yXCI6IFwicG9pbnRlclwifSwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IGZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xvc2VCdXR0b24sIG51bGwpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBwcm9wcywgdGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgUmVhY3QuQ29tcG9uZW50ID8gdGhpcy5zZXR0aW5nc1BhbmVsIDogbnVsbCksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XCJkYXRhLW5hbWVcIjogbmFtZSwgXCJkYXRhLXZlcnNpb25cIjogdmVyc2lvbiwgXCJjbGFzc05hbWVcIjogXCJzZXR0aW5ncy1jbG9zZWQgdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlci10aXRsZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbmFtZVwifSwgbmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtdmVyc2lvblwifSwgdmVyc2lvbiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGJ5IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1hdXRob3JcIn0sIGF1dGhvcilcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtY29udHJvbHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImNvbnRlbnRcIiwgXCJhdXRvUmVsb2FkXCIpICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVsb2FkSWNvbiwge2NsYXNzTmFtZTogXCJiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge2NsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtd3JhcHBlciB1aS1mbGV4LWNoaWxkXCIsIHN0eWxlOiB7ZmxleDogXCIwIDAgYXV0b1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICh3ZWJzaXRlIHx8IHNvdXJjZSB8fCB0aGlzLmhhc1NldHRpbmdzKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay13ZWJzaXRlXCIsIGhyZWY6IHdlYnNpdGUsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiV2Vic2l0ZVwiKSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIHNvdXJjZSAmJiBcIiB8IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rIGJkYS1saW5rLXNvdXJjZVwiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiU291cmNlXCIpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNTZXR0aW5ncyAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtvbkNsaWNrOiB0aGlzLnNob3dTZXR0aW5ncywgY2xhc3NOYW1lOiBcImJkYS1zZXR0aW5ncy1idXR0b25cIiwgZGlzYWJsZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9LCBcIlNldHRpbmdzXCIpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgICAgICAvLyBQbHVnaW5NYW5hZ2VyLnRvZ2dsZVBsdWdpbih0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UgJiYgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzU2V0dGluZ3MpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IHRydWV9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/plugincard.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PluginCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n\n\nclass PluginCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.state = {\n checked: this.props.enabled,\n //PluginManager.isEnabled(this.props.content.id),\n settingsOpen: false\n };\n this.hasSettings = typeof this.props.content.plugin.getSettingsPanel === \"function\";\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.reload = this.reload.bind(this); // this.onReload = this.onReload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (this.state.settingsOpen) {\n if (this.settingsPanel instanceof Node) {\n this.panelRef.current.appendChild(this.settingsPanel);\n } // if (!SettingsCookie[\"fork-ps-3\"]) return;\n\n\n const isHidden = (container, element) => {\n const cTop = container.scrollTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n return eTop < cTop || eBottom > cBottom;\n };\n\n const self = $(this.panelRef.current);\n const container = self.parents(\".scroller-2FKFPG\");\n if (!isHidden(container[0], self[0])) return;\n container.animate({\n scrollTop: self.offset().top - container.offset().top + container.scrollTop() - 30\n }, 300);\n }\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n render() {\n const self = this;\n const {\n content\n } = this.props;\n const name = this.getString(content.name);\n const author = this.getString(content.author);\n const description = this.getString(content.description);\n const version = this.getString(content.version);\n const website = content.website;\n const source = content.source;\n\n if (this.state.settingsOpen) {\n try {\n self.settingsPanel = content.plugin.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].err(\"Plugins\", \"Unable to get settings panel for \" + content.name + \".\", err);\n }\n\n const props = {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef\n };\n if (typeof this.settingsPanel == \"string\") props.dangerouslySetInnerHTML = this.settingsPanel;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n className: \"settings-open ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n \"float\": \"right\",\n \"cursor\": \"pointer\"\n },\n onClick: () => {\n this.panelRef.current.innerHTML = \"\";\n self.setState({\n settingsOpen: false\n });\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, this.settingsPanel instanceof modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component ? this.settingsPanel : null));\n }\n\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source || this.hasSettings) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-website\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-source\",\n href: source,\n target: \"_blank\"\n }, \"Source\")), this.hasSettings && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bda-settings-button\",\n disabled: !this.state.checked\n }, \"Settings\")));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n }); // PluginManager.togglePlugin(this.props.content.id);\n\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanM/NzczZCJdLCJuYW1lcyI6WyJQbHVnaW5DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwib25DaGFuZ2UiLCJiaW5kIiwic2hvd1NldHRpbmdzIiwic3RhdGUiLCJjaGVja2VkIiwiZW5hYmxlZCIsInNldHRpbmdzT3BlbiIsImhhc1NldHRpbmdzIiwiY29udGVudCIsInBsdWdpbiIsImdldFNldHRpbmdzUGFuZWwiLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJyZWxvYWQiLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJzZWxmIiwiJCIsInBhcmVudHMiLCJhbmltYXRlIiwib2Zmc2V0IiwidG9wIiwiZ2V0U3RyaW5nIiwidmFsdWUiLCJ0b1N0cmluZyIsInJlbmRlciIsIm5hbWUiLCJhdXRob3IiLCJkZXNjcmlwdGlvbiIsInZlcnNpb24iLCJ3ZWJzaXRlIiwic291cmNlIiwiZXJyIiwiVXRpbGl0aWVzIiwiY2xhc3NOYW1lIiwicmVmIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJvbkNsaWNrIiwiaW5uZXJIVE1MIiwic2V0U3RhdGUiLCJDbG9zZUJ1dHRvbiIsIlNldHRpbmdzIiwiZ2V0IiwiUmVsb2FkSWNvbiIsImZsZXgiLCJ0eXBlIiwiaHJlZiIsInRhcmdldCIsImRpc2FibGVkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FB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LFFBQUksQ0FBQyxLQUFLSyxXQUFWLEVBQXVCO0FBQ3ZCLFNBQUtpRCxRQUFMLENBQWM7QUFBQ2xELGtCQUFZLEVBQUU7QUFBZixLQUFkO0FBQ0g7O0FBM0htRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9wbHVnaW5jYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHtTZXR0aW5nc0Nvb2tpZSwgUGx1Z2luQ29va2llLCBQbHVnaW5zfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0LCBVdGlsaXRpZXMsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ2xvc2VCdXR0b24gZnJvbSBcIi4uL2ljb25zL2Nsb3NlXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsdWdpbkNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zaG93U2V0dGluZ3MgPSB0aGlzLnNob3dTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwvL1BsdWdpbk1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHNldHRpbmdzT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaGFzU2V0dGluZ3MgPSB0eXBlb2YgdGhpcy5wcm9wcy5jb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc1BhbmVsID0gXCJcIjtcclxuICAgICAgICB0aGlzLnBhbmVsUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVsb2FkID0gdGhpcy5yZWxvYWQuYmluZCh0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm9uUmVsb2FkID0gdGhpcy5vblJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3Blbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NQYW5lbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIGlmICghU2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTNcIl0pIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSAoY29udGFpbmVyLCBlbGVtZW50KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY1RvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjQm90dG9tID0gY1RvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZVRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZUJvdHRvbSA9IGVUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICAoZVRvcCA8IGNUb3AgfHwgZUJvdHRvbSA+IGNCb3R0b20pO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3Qgc2VsZiA9ICQodGhpcy5wYW5lbFJlZi5jdXJyZW50KTtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc2VsZi5wYXJlbnRzKFwiLnNjcm9sbGVyLTJGS0ZQR1wiKTtcclxuICAgICAgICAgICAgaWYgKCFpc0hpZGRlbihjb250YWluZXJbMF0sIHNlbGZbMF0pKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5hbmltYXRlKHtcclxuICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogc2VsZi5vZmZzZXQoKS50b3AgLSBjb250YWluZXIub2Zmc2V0KCkudG9wICsgY29udGFpbmVyLnNjcm9sbFRvcCgpIC0gMzBcclxuICAgICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RyaW5nKHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiID8gdmFsdWUgOiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCB7Y29udGVudH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhjb250ZW50Lm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvciA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQuYXV0aG9yKTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQuZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZyhjb250ZW50LnZlcnNpb24pO1xyXG4gICAgICAgIGNvbnN0IHdlYnNpdGUgPSBjb250ZW50LndlYnNpdGU7XHJcbiAgICAgICAgY29uc3Qgc291cmNlID0gY29udGVudC5zb3VyY2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3Blbikge1xyXG4gICAgICAgICAgICB0cnkgeyBzZWxmLnNldHRpbmdzUGFuZWwgPSBjb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsKCk7IH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBnZXQgc2V0dGluZ3MgcGFuZWwgZm9yIFwiICsgY29udGVudC5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0ge2lkOiBgcGx1Z2luLXNldHRpbmdzLSR7bmFtZX1gLCBjbGFzc05hbWU6IFwicGx1Z2luLXNldHRpbmdzXCIsIHJlZjogdGhpcy5wYW5lbFJlZn07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YodGhpcy5zZXR0aW5nc1BhbmVsKSA9PSBcInN0cmluZ1wiKSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHRoaXMuc2V0dGluZ3NQYW5lbDtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge2NsYXNzTmFtZTogXCJzZXR0aW5ncy1vcGVuIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB7XCJmbG9hdFwiOiBcInJpZ2h0XCIsIFwiY3Vyc29yXCI6IFwicG9pbnRlclwifSwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IGZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xvc2VCdXR0b24sIG51bGwpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBwcm9wcywgdGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgUmVhY3QuQ29tcG9uZW50ID8gdGhpcy5zZXR0aW5nc1BhbmVsIDogbnVsbCksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XCJkYXRhLW5hbWVcIjogbmFtZSwgXCJkYXRhLXZlcnNpb25cIjogdmVyc2lvbiwgXCJjbGFzc05hbWVcIjogXCJzZXR0aW5ncy1jbG9zZWQgdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlci10aXRsZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbmFtZVwifSwgbmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtdmVyc2lvblwifSwgdmVyc2lvbiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGJ5IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1hdXRob3JcIn0sIGF1dGhvcilcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtY29udHJvbHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImNvbnRlbnRcIiwgXCJhdXRvUmVsb2FkXCIpICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVsb2FkSWNvbiwge2NsYXNzTmFtZTogXCJiZC1yZWxvYWQgYmQtcmVsb2FkLWNhcmRcIiwgb25DbGljazogdGhpcy5yZWxvYWR9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtjbGFzc05hbWU6IFwidWktc3dpdGNoLXdyYXBwZXIgdWktZmxleC1jaGlsZFwiLCBzdHlsZToge2ZsZXg6IFwiMCAwIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtjaGVja2VkOiB0aGlzLnN0YXRlLmNoZWNrZWQsIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLCBjbGFzc05hbWU6IFwidWktc3dpdGNoLWNoZWNrYm94XCIsIHR5cGU6IFwiY2hlY2tib3hcIn0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiB0aGlzLnN0YXRlLmNoZWNrZWQgPyBcInVpLXN3aXRjaCBjaGVja2VkXCIgOiBcInVpLXN3aXRjaFwifSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbi13cmFwIHNjcm9sbGVyLXdyYXAgZmFkZVwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24gc2Nyb2xsZXJcIn0sIGRlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAod2Vic2l0ZSB8fCBzb3VyY2UgfHwgdGhpcy5oYXNTZXR0aW5ncykgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rc1wifSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmsgYmRhLWxpbmstd2Vic2l0ZVwiLCBocmVmOiB3ZWJzaXRlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIldlYnNpdGVcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBzb3VyY2UgJiYgXCIgfCBcIixcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2UgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay1zb3VyY2VcIiwgaHJlZjogc291cmNlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIlNvdXJjZVwiKVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzU2V0dGluZ3MgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7b25DbGljazogdGhpcy5zaG93U2V0dGluZ3MsIGNsYXNzTmFtZTogXCJiZGEtc2V0dGluZ3MtYnV0dG9uXCIsIGRpc2FibGVkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSwgXCJTZXR0aW5nc1wiKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgLy8gUGx1Z2luTWFuYWdlci50b2dnbGVQbHVnaW4odGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlICYmIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc1NldHRpbmdzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2V0dGluZ3NPcGVuOiB0cnVlfSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/plugincard.js\n"); /***/ }), @@ -815,7 +851,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ThemeCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n\n // import Toasts from \"../toasts\";\n\nclass ThemeCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.enabled,\n //ThemeManager.isEnabled(this.props.content.id),\n reloads: 0\n };\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = content.name;\n const description = content.description;\n const version = content.version;\n const author = content.author;\n const website = content.website;\n const source = content.source;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: source,\n target: \"_blank\"\n }, \"Source\"))));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlRoZW1lQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJyZWxvYWRzIiwib25DaGFuZ2UiLCJiaW5kIiwicmVsb2FkIiwiY29udGVudCIsImlkIiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwiYXV0aG9yIiwid2Vic2l0ZSIsInNvdXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTZXR0aW5ncyIsImdldCIsIlJlbG9hZEljb24iLCJvbkNsaWNrIiwic3R5bGUiLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJzZXRTdGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVBOztBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBRW5EQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0csT0FEWDtBQUNvQjtBQUM3QkMsYUFBTyxFQUFFO0FBRkEsS0FBYjtBQUlBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUQsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFFBQUksQ0FBQyxLQUFLUCxLQUFMLENBQVdPLE1BQWhCLEVBQXdCO0FBQ3hCLFNBQUtQLEtBQUwsQ0FBV1EsT0FBWCxHQUFxQixLQUFLUixLQUFMLENBQVdPLE1BQVgsQ0FBa0IsS0FB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O0FBQVosS0FBM0IsRUFDbkJ0Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUNJSCxPQUFPLElBQUluQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixHQUFwQixFQUF5QjtBQUFDQyxlQUFTLEVBQUUsVUFBWjtBQUF3QlEsVUFBSSxFQUFFWCxPQUE5QjtBQUF1Q1ksWUFBTSxFQUFFO0FBQS9DLEtBQXpCLEVBQW1GLFNBQW5GLENBRGYsRUFFSVosT0FBTyxJQUFJQyxNQUFYLElBQXFCLEtBRnpCLEVBR0lBLE1BQU0sSUFBSXBCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNDLGVBQVMsRUFBRSxVQUFaO0FBQXdCUSxVQUFJLEVBQUVWLE1BQTlCO0FBQXNDVyxZQUFNLEVBQUU7QUFBOUMsS0FBekIsRUFBa0YsUUFBbEYsQ0FIZCxDQURtQixDQXBCcEIsQ0FBUDtBQTRCSDs7QUFFRHZCLFVBQVEsR0FBRztBQUNQLFNBQUt3QixRQUFMLENBQWM7QUFBQzNCLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNBLFNBQUtGLEtBQUwsQ0FBV0ssUUFBWCxJQUF1QixLQUFLTCxLQUFMLENBQVdLLFFBQVgsQ0FBb0IsS0FBS0wsS0FBTCxDQUFXUSxPQUFYLENBQW1CQyxFQUF2QyxDQUF2QjtBQUNIOztBQTVEa0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGhlbWVjYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuLy8gaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdG9hc3RzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaGVtZUNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwgLy9UaGVtZU1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHJlbG9hZHM6IDBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbnRlbnQubmFtZTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGNvbnRlbnQuZGVzY3JpcHRpb247XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IGNvbnRlbnQudmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSBjb250ZW50LmF1dGhvcjtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZC1jYXJkXCIsIG9uQ2xpY2s6IHRoaXMucmVsb2FkfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIiwgc3R5bGU6IHtmbGV4OiBcIjAgMCBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7Y2hlY2tlZDogdGhpcy5zdGF0ZS5jaGVja2VkLCBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgY2xhc3NOYW1lOiBcInVpLXN3aXRjaC1jaGVja2JveFwiLCB0eXBlOiBcImNoZWNrYm94XCJ9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogdGhpcy5zdGF0ZS5jaGVja2VkID8gXCJ1aS1zd2l0Y2ggY2hlY2tlZFwiIDogXCJ1aS1zd2l0Y2hcIn0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCJ9LCBkZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKHdlYnNpdGUgfHwgc291cmNlKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua1wiLCBocmVmOiB3ZWJzaXRlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIldlYnNpdGVcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBzb3VyY2UgJiYgXCIgfCBcIixcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2UgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua1wiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiU291cmNlXCIpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlICYmIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/themecard.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ThemeCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n\n // import Toasts from \"../toasts\";\n\nclass ThemeCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.enabled,\n //ThemeManager.isEnabled(this.props.content.id),\n reloads: 0\n };\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = content.name;\n const description = content.description;\n const version = content.version;\n const author = content.author;\n const website = content.website;\n const source = content.source;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: source,\n target: \"_blank\"\n }, \"Source\"))));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlRoZW1lQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJyZWxvYWRzIiwib25DaGFuZ2UiLCJiaW5kIiwicmVsb2FkIiwiY29udGVudCIsImlkIiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwiYXV0aG9yIiwid2Vic2l0ZSIsInNvdXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTZXR0aW5ncyIsImdldCIsIlJlbG9hZEljb24iLCJvbkNsaWNrIiwic3R5bGUiLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJzZXRTdGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVBOztBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBRW5EQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0csT0FEWDtBQUNvQjtBQUM3QkMsYUFBTyxFQUFFO0FBRkEsS0FBYjtBQUlBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUQsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFFBQUksQ0FBQyxLQUFLUCxLQUFMLENBQVdPLE1BQWhCLEVBQXdCO0FBQ3hCLFNBQUtQLEtBQUwsQ0FBV1EsT0FBWCxHQUFxQixLQUFLUixLQUFMLENBQVdPLE1BQVgsQ0FBa0IsS0FB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O0FBQVosS0FBM0IsRUFDbkJ0Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUNJSCxPQUFPLElBQUluQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixHQUFwQixFQUF5QjtBQUFDQyxlQUFTLEVBQUUsVUFBWjtBQUF3QlEsVUFBSSxFQUFFWCxPQUE5QjtBQUF1Q1ksWUFBTSxFQUFFO0FBQS9DLEtBQXpCLEVBQW1GLFNBQW5GLENBRGYsRUFFSVosT0FBTyxJQUFJQyxNQUFYLElBQXFCLEtBRnpCLEVBR0lBLE1BQU0sSUFBSXBCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNDLGVBQVMsRUFBRSxVQUFaO0FBQXdCUSxVQUFJLEVBQUVWLE1BQTlCO0FBQXNDVyxZQUFNLEVBQUU7QUFBOUMsS0FBekIsRUFBa0YsUUFBbEYsQ0FIZCxDQURtQixDQXBCcEIsQ0FBUDtBQTRCSDs7QUFFRHZCLFVBQVEsR0FBRztBQUNQLFNBQUt3QixRQUFMLENBQWM7QUFBQzNCLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNBLFNBQUtGLEtBQUwsQ0FBV0ssUUFBWCxJQUF1QixLQUFLTCxLQUFMLENBQVdLLFFBQVgsQ0FBb0IsS0FBS0wsS0FBTCxDQUFXUSxPQUFYLENBQW1CQyxFQUF2QyxDQUF2QjtBQUNIOztBQTVEa0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGhlbWVjYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuLy8gaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdG9hc3RzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaGVtZUNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwgLy9UaGVtZU1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHJlbG9hZHM6IDBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbnRlbnQubmFtZTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGNvbnRlbnQuZGVzY3JpcHRpb247XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IGNvbnRlbnQudmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSBjb250ZW50LmF1dGhvcjtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZCBiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge2NsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtd3JhcHBlciB1aS1mbGV4LWNoaWxkXCIsIHN0eWxlOiB7ZmxleDogXCIwIDAgYXV0b1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICh3ZWJzaXRlIHx8IHNvdXJjZSkgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rc1wifSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtcIiwgaHJlZjogd2Vic2l0ZSwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJXZWJzaXRlXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgc291cmNlICYmIFwiIHwgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtcIiwgaHJlZjogc291cmNlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIlNvdXJjZVwiKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/themecard.js\n"); /***/ }), @@ -847,11 +883,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /*!**********************!*\ !*** ./src/ui/ui.js ***! \**********************/ -/*! exports provided: Toasts, Modals, SettingsPanel, PublicServers */ +/*! exports provided: SettingsPanel, PublicServersMenu, Toasts, Modals */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings/settings */ \"./src/ui/settings/settings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsPanel\", function() { return _settings_settings__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _publicservers_publicservers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./publicservers/publicservers */ \"./src/ui/publicservers/publicservers.js\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"PublicServers\", function() { return _publicservers_publicservers__WEBPACK_IMPORTED_MODULE_1__; });\n/* harmony import */ var _toasts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toasts */ \"./src/ui/toasts.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Toasts\", function() { return _toasts__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modals */ \"./src/ui/modals.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Modals\", function() { return _modals__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3VpLmpzPzFkOWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvdWkvdWkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU2V0dGluZ3NQYW5lbCBmcm9tIFwiLi9zZXR0aW5ncy9zZXR0aW5nc1wiO1xyXG5pbXBvcnQgKiBhcyBQdWJsaWNTZXJ2ZXJzIGZyb20gXCIuL3B1YmxpY3NlcnZlcnMvcHVibGljc2VydmVyc1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgVG9hc3RzfSBmcm9tIFwiLi90b2FzdHNcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIE1vZGFsc30gZnJvbSBcIi4vbW9kYWxzXCI7XHJcbmV4cG9ydCB7U2V0dGluZ3NQYW5lbCwgUHVibGljU2VydmVyc307Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/ui.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings/settings */ \"./src/ui/settings/settings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsPanel\", function() { return _settings_settings__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _publicservers_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./publicservers/menu */ \"./src/ui/publicservers/menu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PublicServersMenu\", function() { return _publicservers_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _toasts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toasts */ \"./src/ui/toasts.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Toasts\", function() { return _toasts__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modals */ \"./src/ui/modals.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Modals\", function() { return _modals__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3VpLmpzPzFkOWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvdWkvdWkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge2RlZmF1bHQgYXMgU2V0dGluZ3NQYW5lbH0gZnJvbSBcIi4vc2V0dGluZ3Mvc2V0dGluZ3NcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFB1YmxpY1NlcnZlcnNNZW51fSBmcm9tIFwiLi9wdWJsaWNzZXJ2ZXJzL21lbnVcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFRvYXN0c30gZnJvbSBcIi4vdG9hc3RzXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNb2RhbHN9IGZyb20gXCIuL21vZGFsc1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/ui.js\n"); /***/ }), diff --git a/src/builtins/customcss.js b/src/builtins/customcss.js index a63afabe..176adaf8 100644 --- a/src/builtins/customcss.js +++ b/src/builtins/customcss.js @@ -1,12 +1,14 @@ import Builtin from "../structs/builtin"; -import {Settings, DataStore, React, Utilities, WebpackModules} from "modules"; +import {Settings, DataStore, React, Utilities, WebpackModules, Events} from "modules"; import CSSEditor from "../ui/customcss/csseditor"; -import FloatingWindow from "../ui/customcss/detached"; - +import FloatingWindowContainer from "../ui/floating/container"; import SettingsTitle from "../ui/settings/title"; +const fs = require("fs"); const electron = require("electron"); -const PopoutStack = WebpackModules.getByProps("open", "closeAll"); +const UserSettings = WebpackModules.getByProps("updateAccount"); +const Dispatcher = WebpackModules.getByProps("dirtyDispatch"); +const ActionTypes = WebpackModules.getByProps("ActionTypes").ActionTypes; export default new class CustomCSS extends Builtin { get name() {return "Custom CSS";} @@ -19,6 +21,7 @@ export default new class CustomCSS extends Builtin { super(); this.savedCss = ""; this.insertedCss = ""; + this.isDetached = false; } async enabled() { @@ -34,20 +37,67 @@ export default new class CustomCSS extends Builtin { save: this.saveCSS.bind(this), update: this.insertCSS.bind(this), openNative: this.openNative.bind(this), - openDetached: this.openDetached.bind(this) + openDetached: this.openDetached.bind(this), + onChange: this.onChange.bind(this) })], onClick: (thisObject) => { + if (this.isDetached) return; if (this.nativeOpen) this.openNative(); else if (this.startDetached) this.openDetached(); else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(this.name); + this.setSection = thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection; } }); this.loadCSS(); this.insertCSS(this.savedCss); + this.watchContent(); } disabled() { Settings.removePanel(this.id); + this.unwatchContent(); + } + //* {outline: 1px solid red;} + //DataStore.customCSS + watchContent() { + if (this.watcher) return this.error("Already watching content."); + const timeCache = {}; + this.log("Starting to watch content."); + this.watcher = fs.watch(DataStore.customCSS, {persistent: false}, async (eventType, filename) => { + if (!eventType || !filename) return; + await new Promise(r => setTimeout(r, 50)); + try {fs.statSync(DataStore.customCSS);} + catch (err) { + if (err.code !== "ENOENT") return; + delete timeCache[filename]; + this.saveCSS(""); + } + const stats = fs.statSync(DataStore.customCSS); + if (!stats || !stats.mtime || !stats.mtime.getTime()) return; + if (typeof(stats.mtime.getTime()) !== "number") return; + if (timeCache[filename] == stats.mtime.getTime()) return; + timeCache[filename] = stats.mtime.getTime(); + if (eventType == "change") { + const newCSS = DataStore.loadCustomCSS(); + if (newCSS == this.savedCss) return; + this.savedCss = newCSS; + this.insertCSS(this.savedCss); + Events.emit("customcss-updated", this.savedCss); + } + }); + } + + unwatchContent() { + if (!this.watcher) return this.error("Was not watching content."); + this.watcher.close(); + delete this.watcher; + this.log("No longer watching content."); + } + + onChange(value) { + if (!Settings.get("settings", "customcss", "liveUpdate")) return; + this.insertCSS(value); + this.saveCSS(value); } loadCSS() { @@ -72,71 +122,34 @@ export default new class CustomCSS extends Builtin { electron.shell.openExternal(`file://${DataStore.customCSS}`); } - openDetached() { - this.log("Should open detached"); - PopoutStack.open({ - animationType: "none", - arrowAlignment: "top", - backdrop: false, - closeOnScroll: false, - key: this.id, - forceTheme: "no-transform", - position: "top", - preventCloseFromModal: true, - preventClickPropagation: true, - preventCloseOnUnmount: true, - preventInvert: false, - render: (props) => { - return React.createElement(FloatingWindow, Object.assign({}, props, { - close: () => {PopoutStack.close(this.id);}, - isPopout: true, - title: "Custom CSS Editor", - className: "testme", - id: "test", - height: 400, - width: 500, - center: true - }), React.createElement(CSSEditor, { - id: "bd-floating-editor", - css: this.savedCss, - save: this.saveCSS.bind(this), - update: this.insertCSS.bind(this), - openNative: this.openNative.bind(this) - })); - }, - shadow: false, - showArrow: false, - zIndexBoost: 0 + openDetached(currentCSS) { + const editorRef = React.createRef(); + const editor = React.createElement(CSSEditor, { + id: "bd-floating-editor", + editorRef: editorRef, + css: currentCSS, + save: this.saveCSS.bind(this), + update: this.insertCSS.bind(this), + openNative: this.openNative.bind(this), + onChange: this.onChange.bind(this) }); + + FloatingWindowContainer.open({ + onClose: () => {this.isDetached = false;}, + onResize: () => { + if (!editorRef || !editorRef.current || !editorRef.current.resize) return; + editorRef.current.resize(); + }, + title: "Custom CSS Editor", + id: "floating-editor-window", + height: 470, + width: 410, + center: true, + resizable: true, + children: editor + }); + this.isDetached = true; + UserSettings.close(); + Dispatcher.dirtyDispatch({type: ActionTypes.LAYER_POP}); } -}; - -// const test = { -// animationType: "default", -// arrowAlignment: "top", -// backdrop: false, -// clickPos: 74, -// closeOnScroll: false, -// containerClass: undefined, -// dependsOn: undefined, -// forceTheme: undefined, -// key: "floating-window", -// offsetX: 15, -// offsetY: 0, -// position: "left", -// preventCloseFromModal: false, -// preventClickPropagation: true, -// preventInvert: false, -// render: function() { -// console.log(arguments); -// return DiscordModules.React.createElement("div", Object.assign({}, arguments[0], {className: "testme", id: "test"})); -// }, -// shadow: false, -// showArrow: false, -// target: $("div.memberOnline-1CIh-0.member-3W1lQa.da-memberOnline.da-member")[0], -// targetHeight: 40, -// targetWidth: 224, -// x: 1211, -// y: 357, -// zIndexBoost: 0 -// } \ No newline at end of file +}; \ No newline at end of file diff --git a/src/builtins/publicservers.js b/src/builtins/publicservers.js index 50dce9da..67784d15 100644 --- a/src/builtins/publicservers.js +++ b/src/builtins/publicservers.js @@ -1,6 +1,8 @@ import Builtin from "../structs/builtin"; -import {BDV2, DiscordModules} from "modules"; -import {PublicServers as PSComponents} from "ui"; +import {BDV2, DiscordModules, WebpackModules} from "modules"; +import {PublicServersMenu} from "ui"; + +const LayerStack = WebpackModules.getByProps("pushLayer"); export default new class PublicServers extends Builtin { get name() {return "PublicServers";} @@ -17,37 +19,8 @@ export default new class PublicServers extends Builtin { $("#bd-pub-li").remove(); } - get component() { - return DiscordModules.React.createElement(PSComponents.Layer, { - rootId: "pubslayerroot", - id: "pubslayer" - }, DiscordModules.React.createElement(PSComponents.Menu, {rootId: "pubslayerroot"})); - } - - get root() { - const _root = document.getElementById("pubslayerroot"); - if (!_root) { - if (!this.injectRoot()) return null; - return this.root; - } - return _root; - } - - injectRoot() { - if (!$(".layers, .layers-3iHuyZ").length) return false; - $(".layers, .layers-3iHuyZ").append($("
", { - id: "pubslayerroot" - })); - return true; - } - - render() { - const root = this.root; - if (!root) { - this.error("FAILED TO LOCATE ROOT: .layers"); - return; - } - DiscordModules.ReactDOM.render(this.component, root); + openPublicServers() { + LayerStack.pushLayer(() => DiscordModules.React.createElement(PublicServersMenu, {close: LayerStack.popLayer})); } get button() { @@ -58,7 +31,7 @@ export default new class PublicServers extends Builtin { "class": "wrapper-25eVIn " + BDV2.guildClasses.circleButtonMask, "text": "public", "id": "bd-pub-button", - "click": () => { this.render(); } + "click": () => { this.openPublicServers(); } })); return btn; diff --git a/src/ui/customcss/csseditor.jsx b/src/ui/customcss/csseditor.jsx index 05d0e3bf..fc4e38fb 100644 --- a/src/ui/customcss/csseditor.jsx +++ b/src/ui/customcss/csseditor.jsx @@ -1,7 +1,12 @@ -import {React, Settings} from "modules"; +import {React, Settings, Events} from "modules"; import Editor from "./editor"; // import Checkbox from "./checkbox"; +import Refresh from "../icons/reload"; +import Save from "../icons/save"; +import Edit from "../icons/edit"; +import Cog from "../icons/cog"; +import Detach from "../icons/detach"; export default class CssEditor extends React.Component { @@ -13,38 +18,56 @@ export default class CssEditor extends React.Component { this.saveCss = this.saveCss.bind(this); this.openDetached = this.props.openDetached ? this.openDetached.bind(this) : null; this.openNative = this.openNative.bind(this); + this.updateEditor = this.updateEditor.bind(this); - this.checkboxes = [{label: "Live Update", onChange: this.toggleLiveUpdate, checked: Settings.get("settings", "customcss", "liveUpdate")}]; - this.buttons = [ - {label: "Update", onClick: this.updateCss}, - {label: "Save", onClick: this.saveCss}, - {label: "Open Natively", onClick: this.openNative}, - {label: "Settings", onClick: "showSettings"} + this.controls = [ + {label: React.createElement(Refresh, {size: "18px"}), tooltip: "Update", onClick: this.updateCss}, + {label: React.createElement(Save, {size: "18px"}), tooltip: "Save", onClick: this.saveCss}, + {label: React.createElement(Edit, {size: "18px"}), tooltip: "Open in System Editor", onClick: this.openNative}, + {label: React.createElement(Cog, {size: "18px"}), tooltip: "Editor Settings", onClick: "showSettings"}, + {label: "Live Update", type:"checkbox", onChange: this.toggleLiveUpdate, checked: Settings.get("settings", "customcss", "liveUpdate"), side: "right"} ]; - if (this.openDetached) this.buttons.push({label: "Detach", onClick: this.openDetached}); - this.notice = this.openDetached ? "Unsaved changes are lost on detach" : null; + if (this.openDetached) this.controls.push({label: React.createElement(Detach, {size: "18px"}), tooltip: "Detach Editor", onClick: this.openDetached, side: "right"}); + } + + componentDidMount() { + Events.on("customcss-updated", this.updateEditor); + } + + componentWillUnmount() { + Events.off("customcss-updated", this.updateEditor); + } + + updateEditor(newCSS) { + if (!this.editor) return; + this.editor.value = newCSS; + } + + setEditorRef(editor) { + this.editor = editor; + if (this.props.editorRef && typeof(this.props.editorRef.current) !== "undefined") this.props.editorRef.current = editor; + else if (this.props.editorRef) this.props.editorRef = editor; } render() { - return ; + return ; } toggleLiveUpdate(checked) { Settings.set("settings", "customcss", "liveUpdate", checked); } - updateCss() { - const newCss = this.editor.session.getValue(); + updateCss(event, newCss) { if (this.props.update) this.props.update(newCss); } - saveCss() { - const newCss = this.editor.session.getValue(); + saveCss(event, newCss) { if (this.props.save) this.props.save(newCss); } - openDetached() { - if (this.props.openDetached) this.props.openDetached(); + openDetached(event, currentCSS) { + if (!this.props.openDetached) return; + this.props.openDetached(currentCSS); } openNative() { diff --git a/src/ui/customcss/editor.jsx b/src/ui/customcss/editor.jsx index 32f95ee6..8487f099 100644 --- a/src/ui/customcss/editor.jsx +++ b/src/ui/customcss/editor.jsx @@ -1,7 +1,9 @@ -import {React} from "modules"; +import {React, WebpackModules} from "modules"; import Checkbox from "./checkbox"; +const Tooltip = WebpackModules.getByDisplayName("Tooltip"); + const languages = ["abap", "abc", "actionscript", "ada", "apache_conf", "asciidoc", "assembly_x86", "autohotkey", "batchfile", "bro", "c_cpp", "c9search", "cirru", "clojure", "cobol", "coffee", "coldfusion", "csharp", "csound_document", "csound_orchestra", "csound_score", "css", "curly", "d", "dart", "diff", "dockerfile", "dot", "drools", "dummy", "dummysyntax", "eiffel", "ejs", "elixir", "elm", "erlang", "forth", "fortran", "ftl", "gcode", "gherkin", "gitignore", "glsl", "gobstones", "golang", "graphqlschema", "groovy", "haml", "handlebars", "haskell", "haskell_cabal", "haxe", "hjson", "html", "html_elixir", "html_ruby", "ini", "io", "jack", "jade", "java", "javascript", "json", "jsoniq", "jsp", "jssm", "jsx", "julia", "kotlin", "latex", "less", "liquid", "lisp", "livescript", "logiql", "lsl", "lua", "luapage", "lucene", "makefile", "markdown", "mask", "matlab", "maze", "mel", "mushcode", "mysql", "nix", "nsis", "objectivec", "ocaml", "pascal", "perl", "pgsql", "php", "pig", "powershell", "praat", "prolog", "properties", "protobuf", "python", "r", "razor", "rdoc", "red", "rhtml", "rst", "ruby", "rust", "sass", "scad", "scala", "scheme", "scss", "sh", "sjs", "smarty", "snippets", "soy_template", "space", "sql", "sqlserver", "stylus", "svg", "swift", "tcl", "tex", "text", "textile", "toml", "tsx", "twig", "typescript", "vala", "vbscript", "velocity", "verilog", "vhdl", "wollok", "xml", "xquery", "yaml", "django"]; const themes = ["chrome", "clouds", "crimson_editor", "dawn", "dreamweaver", "eclipse", "github", "iplastic", "solarized_light", "textmate", "tomorrow", "xcode", "kuroir", "katzenmilch", "sqlserver", "ambiance", "chaos", "clouds_midnight", "cobalt", "gruvbox", "gob", "idle_fingers", "kr_theme", "merbivore", "merbivore_soft", "mono_industrial", "monokai", "pastel_on_dark", "solarized_dark", "terminal", "tomorrow_night", "tomorrow_night_blue", "tomorrow_night_bright", "tomorrow_night_eighties", "twilight", "vibrant_ink"]; @@ -11,22 +13,24 @@ export default class CodeEditor extends React.Component { constructor(props) { super(props); - for (const button of this.props.buttons) { - if (button.onClick == "showSettings") button.onClick = this.showSettings.bind(this); + for (const control of this.props.controls) { + if (control.type == "checkbox") continue; + if (control.onClick == "showSettings") control.onClick = this.showSettings.bind(this); } this.props.theme = this.props.theme.toLowerCase().replace(/ /g, "_"); - if (!themes.includes(this.props.theme)) this.props.theme = this.defaultProps.theme; + if (!themes.includes(this.props.theme)) this.props.theme = CodeEditor.defaultProps.theme; this.props.language = this.props.language.toLowerCase().replace(/ /g, "_"); - if (!languages.includes(this.props.language)) this.props.language = this.defaultProps.language; + if (!languages.includes(this.props.language)) this.props.language = CodeEditor.defaultProps.language; + + this.onChange = this.onChange.bind(this); } static get defaultProps() { return { - buttons: [], - checkboxes: [], - theme: "monokai", + controls: [], + theme: "bd-monokai", language: "css", id: this.defaultId, fontSize: 14 @@ -54,15 +58,12 @@ export default class CodeEditor extends React.Component { observer.observe(document.body, {childList: true}); }; - this.editor.setTheme(`ace/theme/${this.props.theme}`); + const theme = this.props.theme == CodeEditor.defaultProps.theme ? this.props.theme.split("-")[1] : this.props.theme; + this.editor.setTheme(`ace/theme/${theme}`); this.editor.session.setMode(`ace/mode/${this.props.language}`); this.editor.setShowPrintMargin(false); this.editor.setFontSize(this.props.fontSize); - if (this.props.onChange) { - this.editor.on("change", () => { - this.props.onChange(this.value); - }); - } + this.editor.on("change", this.onChange); } componentWillUnmount() { @@ -70,32 +71,51 @@ export default class CodeEditor extends React.Component { } get value() {return this.editor.session.getValue();} + set value(newValue) { + this.editor.setValue(newValue); + } + + onChange() { + if (this.props.onChange) this.props.onChange(this.value); + } showSettings() {return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);} + resize() {return this.editor.resize();} + + buildControl(control) { + if (control.type == "checkbox") return this.makeCheckbox(control); + return this.makeButton(control); + } + + makeCheckbox(checkbox) { + return ; + } + + makeButton(button) { + return + {props => { + return ; + }} + ; + } render() { + if (this.editor && this.editor.resize) this.editor.resize(); - const buttons = this.props.buttons.map(button => - - ); + const controlsLeft = this.props.controls.filter(c => c.side != "right").map(this.buildControl.bind(this)); + const controlsRight = this.props.controls.filter(c => c.side == "right").map(this.buildControl.bind(this)); - const checkboxes = this.props.checkboxes.map(checkbox => - - ); - - return
-
-
{this.props.value}
-
+ return
- {checkboxes.length &&
{checkboxes}
} -
- {buttons} - {this.props.notice && {this.props.notice}} +
+ {controlsLeft}
- {this.props.showHelp &&
- Press ctrl+, with the editor focused to access the editor's settings. -
} +
+ {controlsRight} +
+
+
+
{this.props.value}
; } diff --git a/src/ui/floating/container.jsx b/src/ui/floating/container.jsx new file mode 100644 index 00000000..00c34f22 --- /dev/null +++ b/src/ui/floating/container.jsx @@ -0,0 +1,65 @@ +import {React, Utilities} from "modules"; + +import FloatingWindow from "./window"; + +class FloatingWindowContainer extends React.Component { + + constructor(props) { + super(props); + this.state = {windows: []}; + } + + render() { + return this.state.windows.map(window => + + {window.children} + + ); + } + + open(window) { + this.setState({ + windows: [...this.state.windows, window] + }); + // this.windows.push(window); + // this.forceUpdate(); + } + + close(id) { + this.setState({ + windows: this.state.windows.filter(w => { + if (w.id == id && w.onClose) w.onClose(); + return w.id != id; + }) + }); + // const index = this.windows.findIndex(w => w.id == id); + // if (index < 0) return; + // this.windows.splice(index, 1); + // this.forceUpdate(); + } + + static get id() {return "floating-windows";} + static get root() { + if (this._root) return this._root; + const container = document.createElement("div"); + container.id = this.id; + document.body.append(container); + return this._root = container; + } +} + +const containerRef = React.createRef(); +const container = ; +// ReactDOM.render(container, FloatingWindowContainer.root); +const App = document.querySelector(".app-19_DXt").__reactInternalInstance$.return.return.return.return.return.return.return.return.return; +Utilities.monkeyPatch(App.type.prototype, "render", {after: (data) => { + data.returnValue.props.children.props.children.props.children.props.children[4].props.children[1].props.children.push(container); +}}); +App.stateNode.forceUpdate(); +export default containerRef.current; + +// patch App component +// +//document.querySelector(".app-19_DXt").__reactInternalInstance$.return.return.return.return.return.return.return.return.return.type +//props.children.props.children.props.children.props.children[4].props.children[1].props.children[""0""].push( SELF ) +// forceupdate app component \ No newline at end of file diff --git a/src/ui/customcss/detached.jsx b/src/ui/floating/window.jsx similarity index 81% rename from src/ui/customcss/detached.jsx rename to src/ui/floating/window.jsx index 97b4e015..66819700 100644 --- a/src/ui/customcss/detached.jsx +++ b/src/ui/floating/window.jsx @@ -27,33 +27,48 @@ export default class FloatingWindow extends React.Component { this.onDrag = this.onDrag.bind(this); this.onDragStart = this.onDragStart.bind(this); this.onDragStop = this.onDragStop.bind(this); + this.onResizeStart = this.onResizeStart.bind(this); } componentDidMount() { if (this.props.isPopout) { - console.log(this); - const popout = this._reactInternalFiber.return.return.return.stateNode; + // console.log(this); + const popout = this._reactInternalFiber.return.return.return.return.stateNode;//_reactInternalFiber.return.return.return.return.stateNode setImmediate(() => { document.removeEventListener("click", popout.close, true); if (!this.props.close) this.props.close = popout.close; }); } + this.window.current.addEventListener("mousedown", this.onResizeStart, false); this.titlebar.current.addEventListener("mousedown", this.onDragStart, false); document.addEventListener("mouseup", this.onDragStop, false); } - onDragStop(e) { + onResizeStart() { + this.currentWidth = this.window.current.style.width; + this.currentHeight = this.window.current.style.height; + } + + onDragStop() { // e.preventDefault(); // e.stopPropagation(); document.removeEventListener("mousemove", this.onDrag, true); + if (this.props.onResize) { + const width = this.window.current.style.width; + const height = this.window.current.style.height; + if (width != this.currentWidth || height != this.currentHeight) this.props.onResize(); + this.currentWidth = width; + this.currentHeight = height; + } } onDragStart(e) { // e.preventDefault(); // e.stopPropagation(); + const div = this.window.current; - console.log(div.offsetTop, div.offsetLeft); + // console.log(div.offsetTop, div.offsetLeft); this.offY = e.clientY - parseInt(div.offsetTop); this.offX = e.clientX - parseInt(div.offsetLeft); document.addEventListener("mousemove", this.onDrag, true); @@ -76,9 +91,10 @@ export default class FloatingWindow extends React.Component { render() { const top = this.props.center ? (Screen.height / 2) - (this.props.height / 2) : this.props.top; const left = this.props.center ? (Screen.width / 2) - (this.props.width / 2) : this.props.left ; - console.log(top, left); + // console.log(top, left); + const className = `floating-window ${this.props.className || ""} ${this.props.resizable ? "resizable" : ""}`; const styles = {height: this.props.height, width: this.props.width, left: left || 0, top: top || 0}; - return
+ return
{this.props.title}
@@ -94,7 +110,7 @@ export default class FloatingWindow extends React.Component { } close() { - console.log("click close"); + // console.log("click close"); if (this.props.close) this.props.close(); } } diff --git a/src/ui/icons/cog.jsx b/src/ui/icons/cog.jsx new file mode 100644 index 00000000..4d76b92a --- /dev/null +++ b/src/ui/icons/cog.jsx @@ -0,0 +1,11 @@ +import {React} from "modules"; + +export default class Cog extends React.Component { + render() { + const size = this.props.size || "20px"; + return + + + ; + } +} \ No newline at end of file diff --git a/src/ui/icons/detach.jsx b/src/ui/icons/detach.jsx new file mode 100644 index 00000000..e12449d9 --- /dev/null +++ b/src/ui/icons/detach.jsx @@ -0,0 +1,11 @@ +import {React} from "modules"; + +export default class Detach extends React.Component { + render() { + const size = this.props.size || "24px"; + return + + + ; + } +} \ No newline at end of file diff --git a/src/ui/icons/edit.jsx b/src/ui/icons/edit.jsx new file mode 100644 index 00000000..4d44dcf3 --- /dev/null +++ b/src/ui/icons/edit.jsx @@ -0,0 +1,11 @@ +import {React} from "modules"; + +export default class Edit extends React.Component { + render() { + const size = this.props.size || "24px"; + return + + + ; + } +} \ No newline at end of file diff --git a/src/ui/icons/reload.jsx b/src/ui/icons/reload.jsx index a9dbdc87..385a6f26 100644 --- a/src/ui/icons/reload.jsx +++ b/src/ui/icons/reload.jsx @@ -3,7 +3,7 @@ import {React} from "modules"; export default class ReloadIcon extends React.Component { render() { const size = this.props.size || "24px"; - return + return ; diff --git a/src/ui/icons/save.jsx b/src/ui/icons/save.jsx new file mode 100644 index 00000000..89b023a9 --- /dev/null +++ b/src/ui/icons/save.jsx @@ -0,0 +1,11 @@ +import {React} from "modules"; + +export default class Save extends React.Component { + render() { + const size = this.props.size || "24px"; + return + + + ; + } +} \ No newline at end of file diff --git a/src/ui/publicservers/layer.js b/src/ui/publicservers/layer.js deleted file mode 100644 index 71be2d0c..00000000 --- a/src/ui/publicservers/layer.js +++ /dev/null @@ -1,62 +0,0 @@ -import {React, ReactDOM} from "modules"; - -export default class Layer extends React.Component { - - constructor(props) { - super(props); - this.rootRef = React.createRef(); - } - - componentDidMount() { - $(window).on(`keyup.${this.props.id}`, e => { - if (e.which === 27) { - ReactDOM.unmountComponentAtNode(this.rootRef.current.parentNode); - } - }); - - $(`#${this.props.id}`).animate({opacity: 1}, { - step: function(now) { - $(this).css("transform", `scale(${1.1 - 0.1 * now}) translateZ(0px)`); - }, - duration: 200, - done: () => {$(`#${this.props.id}`).css("opacity", "").css("transform", "");} - }); - } - - componentWillUnmount() { - $(window).off(`keyup.${this.props.id}`); - $(`#${this.props.id}`).animate({opacity: 0}, { - step: function(now) { - $(this).css("transform", `scale(${1.1 - 0.1 * now}) translateZ(0px)`); - }, - duration: 200, - done: () => {$(`#${this.props.rootId}`).remove();} - }); - - $("[class*=\"layer-\"]").removeClass("publicServersOpen").animate({opacity: 1}, { - step: function(now) { - $(this).css("transform", `scale(${0.07 * now + 0.93}) translateZ(0px)`); - }, - duration: 200, - done: () => {$("[class*=\"layer-\"]").css("opacity", "").css("transform", "");} - }); - - } - - UNSAFE_componentWillMount() { - $("[class*=\"layer-\"]").addClass("publicServersOpen").animate({opacity: 0}, { - step: function(now) { - $(this).css("transform", `scale(${0.07 * now + 0.93}) translateZ(0px)`); - }, - duration: 200 - }); - } - - render() { - return React.createElement( - "div", - {className: "layer bd-layer layer-3QrUeG", id: this.props.id, ref: this.rootRef, style: {opacity: 0, transform: "scale(1.1) translateZ(0px)"}}, - this.props.children - ); - } -} \ No newline at end of file diff --git a/src/ui/publicservers/menu.js b/src/ui/publicservers/menu.js index 6f2c5b47..0c943e9d 100644 --- a/src/ui/publicservers/menu.js +++ b/src/ui/publicservers/menu.js @@ -1,4 +1,4 @@ -import {React, ReactDOM, WebpackModules} from "modules"; +import {React, WebpackModules} from "modules"; import SidebarView from "./sidebarview"; import Tools from "./exitbutton"; import TabBar from "./tabbar"; @@ -39,7 +39,7 @@ export default class PublicServers extends React.Component { } close() { - ReactDOM.unmountComponentAtNode(document.getElementById(this.props.rootId)); + this.props.close(); } search(query, clear) { @@ -232,7 +232,7 @@ export default class PublicServers extends React.Component { } render() { - return React.createElement(SidebarView, {ref: "sbv"}, this.component); + return React.createElement(SidebarView, {id: "pubslayer", ref: "sbv"}, this.component); } get component() { @@ -252,7 +252,7 @@ export default class PublicServers extends React.Component { get sidebar() { return React.createElement( "div", - {className: "sidebar", key: "ps"}, + {className: "sidebar-CFHs9e da-sidebar sidebar", key: "ps"}, React.createElement( "div", {className: "ui-tab-bar SIDE"}, diff --git a/src/ui/publicservers/publicservers.js b/src/ui/publicservers/publicservers.js deleted file mode 100644 index a2d96b45..00000000 --- a/src/ui/publicservers/publicservers.js +++ /dev/null @@ -1,5 +0,0 @@ -import Menu from "./menu"; -import Card from "./card"; -import Layer from "./layer"; - -export {Menu, Card, Layer}; \ No newline at end of file diff --git a/src/ui/publicservers/sidebarview.js b/src/ui/publicservers/sidebarview.js index d9c46f75..229f0a09 100644 --- a/src/ui/publicservers/sidebarview.js +++ b/src/ui/publicservers/sidebarview.js @@ -9,7 +9,8 @@ export default class SidebarView extends React.Component { render() { const {sidebar, content, tools} = this.props.children; - return React.createElement( + return React.createElement("div", {className: this.props.className || "", id: this.props.id || ""}, + React.createElement( "div", {className: "standardSidebarView-3F1I7i ui-standard-sidebar-view"}, React.createElement( @@ -22,6 +23,6 @@ export default class SidebarView extends React.Component { React.createElement(Scroller, {key: "contentScroller", contentColumn: true, fade: content.fade || true, dark: content.dark || true}, content.component, tools.component) ) ) - ); + )); } } \ No newline at end of file diff --git a/src/ui/settings/contentlist.jsx b/src/ui/settings/contentlist.jsx index f51a5c85..c453d771 100644 --- a/src/ui/settings/contentlist.jsx +++ b/src/ui/settings/contentlist.jsx @@ -26,7 +26,7 @@ export default class ContentList extends React.Component { const showReloadIcon = !Settings.get("settings", "content", "autoReload"); const button = folder ? {title: `Open ${title} Folder`, onClick: () => {require("electron").shell.openItem(folder);}} : null; return [ - } />, + } />,
    {contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => { const CardType = content.type ? PluginCard : ThemeCard; diff --git a/src/ui/settings/plugincard.js b/src/ui/settings/plugincard.js index 4c7b548f..cfe92d40 100644 --- a/src/ui/settings/plugincard.js +++ b/src/ui/settings/plugincard.js @@ -96,7 +96,7 @@ export default class PluginCard extends React.Component { React.createElement("span", {className: "bda-author"}, author) ), React.createElement("div", {className: "bda-controls"}, - !Settings.get("settings", "content", "autoReload") && React.createElement(ReloadIcon, {className: "bd-reload-card", onClick: this.reload}), + !Settings.get("settings", "content", "autoReload") && React.createElement(ReloadIcon, {className: "bd-reload bd-reload-card", onClick: this.reload}), React.createElement("label", {className: "ui-switch-wrapper ui-flex-child", style: {flex: "0 0 auto"}}, React.createElement("input", {checked: this.state.checked, onChange: this.onChange, className: "ui-switch-checkbox", type: "checkbox"}), React.createElement("div", {className: this.state.checked ? "ui-switch checked" : "ui-switch"}) diff --git a/src/ui/settings/themecard.js b/src/ui/settings/themecard.js index 1a47553e..27ae5746 100644 --- a/src/ui/settings/themecard.js +++ b/src/ui/settings/themecard.js @@ -39,7 +39,7 @@ export default class ThemeCard extends React.Component { React.createElement("span", {className: "bda-author"}, author) ), React.createElement("div", {className: "bda-controls"}, - !Settings.get("settings", "content", "autoReload") && React.createElement(ReloadIcon, {className: "bd-reload-card", onClick: this.reload}), + !Settings.get("settings", "content", "autoReload") && React.createElement(ReloadIcon, {className: "bd-reload bd-reload-card", onClick: this.reload}), React.createElement("label", {className: "ui-switch-wrapper ui-flex-child", style: {flex: "0 0 auto"}}, React.createElement("input", {checked: this.state.checked, onChange: this.onChange, className: "ui-switch-checkbox", type: "checkbox"}), React.createElement("div", {className: this.state.checked ? "ui-switch checked" : "ui-switch"}) diff --git a/src/ui/ui.js b/src/ui/ui.js index e2d30a21..069a3dfe 100644 --- a/src/ui/ui.js +++ b/src/ui/ui.js @@ -1,5 +1,4 @@ -import SettingsPanel from "./settings/settings"; -import * as PublicServers from "./publicservers/publicservers"; +export {default as SettingsPanel} from "./settings/settings"; +export {default as PublicServersMenu} from "./publicservers/menu"; export {default as Toasts} from "./toasts"; -export {default as Modals} from "./modals"; -export {SettingsPanel, PublicServers}; \ No newline at end of file +export {default as Modals} from "./modals"; \ No newline at end of file