From d365999efea8910cd756bc32e5d57764eb32928c Mon Sep 17 00:00:00 2001 From: Zack Rauen Date: Sun, 9 Jun 2019 18:37:46 -0400 Subject: [PATCH] fix settings stuff, content list panels --- js/main.js | 44 +++++++++++++++++++++++++-------- js/main.min.js | 4 ++- package.json | 2 +- src/index.js | 2 ++ src/modules/contentmanager.js | 13 +++++----- src/modules/pluginmanager.js | 20 +++++++++------ src/modules/settingsmanager.js | 16 +++++------- src/modules/thememanager.js | 11 ++++++--- src/structs/builtin.js | 1 - src/ui/settings/contentlist.jsx | 38 ++++++++++++++++++++++++++++ src/ui/settings/plugincard.js | 39 ++++++++++++++++++----------- src/ui/settings/settings.js | 24 ++++++------------ src/ui/settings/themecard.js | 31 +++++++++-------------- src/ui/settings/title.jsx | 1 + 14 files changed, 155 insertions(+), 91 deletions(-) create mode 100644 src/ui/settings/contentlist.jsx diff --git a/js/main.js b/js/main.js index b7cd083b..5f4c6c68 100644 --- a/js/main.js +++ b/js/main.js @@ -335,7 +335,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (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 CoreWrapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchModuleLoad\", function() { return patchModuleLoad; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./localstorage */ \"./src/localstorage.js\");\n/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/oldstorage */ \"./src/modules/oldstorage.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _builtins_emotes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./builtins/emotes */ \"./src/builtins/emotes.js\");\n\n\n\n\n\n\n\n\n\n // Perform some setup\n\nObject(_localstorage__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\nconst loadingIcon = document.createElement(\"div\");\nloadingIcon.className = \"bd-loaderv2\";\nloadingIcon.title = \"BandagedBD is loading...\";\ndocument.body.appendChild(loadingIcon); // window.Core = Core;\n\nwindow.BdApi = _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; // window.bdthemes = Themes;\n// window.bdplugins = Plugins;\n\nwindow.bdEmotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Emotes;\nwindow.bemotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blacklist;\nwindow.bdPluginStorage = _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__[\"bdPluginStorage\"];\nwindow.settingsModule = _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init();\n }\n\n}\nfunction patchModuleLoad() {\n const namespace = \"betterdiscord\";\n const prefix = `${namespace}/`;\n\n const Module = __webpack_require__(/*! module */ \"module\");\n\n const load = Module._load; // const resolveFilename = Module._resolveFilename;\n\n Module._load = function (request) {\n if (request === namespace || request.startsWith(prefix)) {\n const requested = request.substr(prefix.length);\n if (requested == \"api\") return _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n }\n\n return load.apply(this, arguments);\n }; // Module._resolveFilename = function (request, parent, isMain) {\n // if (request === \"betterdiscord\" || request.startsWith(\"betterdiscord/\")) {\n // const contentPath = PluginManager.getPluginPathByModule(parent);\n // if (contentPath) return request;\n // }\n // return resolveFilename.apply(this, arguments);\n // };\n\n\n return function () {\n Module._load = load;\n };\n} // export function getPluginByModule(module) {\n// return this.localContent.find(plugin => module.filename === plugin.contentPath || module.filename.startsWith(plugin.contentPath + path.sep));\n// }\n// export function getPluginPathByModule(module) {\n// return Object.keys(this.pluginApiInstances).find(contentPath => module.filename === contentPath || module.filename.startsWith(contentPath + path.sep));\n// }\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsicHJveHlMb2NhbFN0b3JhZ2UiLCJsb2FkaW5nSWNvbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlIiwiYm9keSIsImFwcGVuZENoaWxkIiwid2luZG93IiwiQmRBcGkiLCJwbHVnaW5Nb2R1bGUiLCJQbHVnaW5NYW5hZ2VyIiwidGhlbWVNb2R1bGUiLCJUaGVtZU1hbmFnZXIiLCJiZEVtb3RlcyIsIkVtb3RlTW9kdWxlIiwiRW1vdGVzIiwiYmVtb3RlcyIsImJsYWNrbGlzdCIsImJkUGx1Z2luU3RvcmFnZSIsInNldHRpbmdzTW9kdWxlIiwiU2V0dGluZ3MiLCJCREV2ZW50cyIsIkV2ZW50cyIsImJkQ29uZmlnIiwiQ29uZmlnIiwiQ29yZVdyYXBwZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkNvcmUiLCJzZXRDb25maWciLCJpbml0IiwicGF0Y2hNb2R1bGVMb2FkIiwibmFtZXNwYWNlIiwicHJlZml4IiwiTW9kdWxlIiwicmVxdWlyZSIsImxvYWQiLCJfbG9hZCIsInJlcXVlc3QiLCJzdGFydHNXaXRoIiwicmVxdWVzdGVkIiwic3Vic3RyIiwibGVuZ3RoIiwiYXBwbHkiLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0NBR0E7O0FBQ0FBLDZEQUFpQjtBQUNqQixNQUFNQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixLQUF2QixDQUFwQjtBQUNBRixXQUFXLENBQUNHLFNBQVosR0FBd0IsYUFBeEI7QUFDQUgsV0FBVyxDQUFDSSxLQUFaLEdBQW9CLDBCQUFwQjtBQUNBSCxRQUFRLENBQUNJLElBQVQsQ0FBY0MsV0FBZCxDQUEwQk4sV0FBMUIsRSxDQUVBOztBQUNBTyxNQUFNLENBQUNDLEtBQVAsR0FBZUEsMERBQWYsQyxDQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxNQUFNLENBQUNFLFlBQVAsR0FBc0JDLDhEQUF0QjtBQUNBSCxNQUFNLENBQUNJLFdBQVAsR0FBcUJDLDZEQUFyQixDLENBQ0E7QUFDQTs7QUFDQUwsTUFBTSxDQUFDTSxRQUFQLEdBQWtCQyx3REFBVyxDQUFDQyxNQUE5QjtBQUNBUixNQUFNLENBQUNTLE9BQVAsR0FBaUJGLHdEQUFXLENBQUNHLFNBQTdCO0FBQ0FWLE1BQU0sQ0FBQ1csZUFBUCxHQUF5QkEsbUVBQXpCO0FBQ0FYLE1BQU0sQ0FBQ1ksY0FBUCxHQUF3QkMsZ0VBQXhCO0FBR0FiLE1BQU0sQ0FBQ2MsUUFBUCxHQUFrQkMsd0RBQWxCO0FBQ0FmLE1BQU0sQ0FBQ2dCLFFBQVAsR0FBa0JDLDJDQUFsQjtBQUVlLE1BQU1DLFdBQU4sQ0FBa0I7QUFDN0JDLGFBQVcsQ0FBQ0MsTUFBRCxFQUFTO0FBQ2hCQyx5REFBSSxDQUFDQyxTQUFMLENBQWVGLE1BQWY7QUFDSDs7QUFFREcsTUFBSSxHQUFHO0FBQ0hGLHlEQUFJLENBQUNFLElBQUw7QUFDSDs7QUFQNEI7QUFVMUIsU0FBU0MsZUFBVCxHQUEyQjtBQUM5QixRQUFNQyxTQUFTLEdBQUcsZUFBbEI7QUFDQSxRQUFNQyxNQUFNLEdBQUksR0FBRUQsU0FBVSxHQUE1Qjs7QUFDQSxRQUFNRSxNQUFNLEdBQUdDLG1CQUFPLENBQUMsc0JBQUQsQ0FBdEI7O0FBQ0EsUUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLEtBQXBCLENBSjhCLENBSzlCOztBQUVBSCxRQUFNLENBQUNHLEtBQVAsR0FBZSxVQUFVQyxPQUFWLEVBQW1CO0FBQzlCLFFBQUlBLE9BQU8sS0FBS04sU0FBWixJQUF5Qk0sT0FBTyxDQUFDQyxVQUFSLENBQW1CTixNQUFuQixDQUE3QixFQUF5RDtBQUNyRCxZQUFNTyxTQUFTLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixDQUFlUixNQUFNLENBQUNTLE1BQXRCLENBQWxCO0FBQ0EsVUFBSUYsU0FBUyxJQUFJLEtBQWpCLEVBQXdCLE9BQU9oQywwREFBUDtBQUMzQjs7QUFFRCxXQUFPNEIsSUFBSSxDQUFDTyxLQUFMLENBQVcsSUFBWCxFQUFpQkMsU0FBakIsQ0FBUDtBQUNILEdBUEQsQ0FQOEIsQ0FnQjlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7QUFFQSxTQUFPLFlBQVc7QUFDZFYsVUFBTSxDQUFDRyxLQUFQLEdBQWVELElBQWY7QUFDSCxHQUZEO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IHByb3h5TG9jYWxTdG9yYWdlIGZyb20gXCIuL2xvY2Fsc3RvcmFnZVwiO1xyXG5pbXBvcnQgQ29yZSBmcm9tIFwiLi9tb2R1bGVzL2NvcmVcIjtcclxuaW1wb3J0IEJkQXBpIGZyb20gXCIuL21vZHVsZXMvcGx1Z2luYXBpXCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL21vZHVsZXMvcGx1Z2lubWFuYWdlclwiO1xyXG5pbXBvcnQgVGhlbWVNYW5hZ2VyIGZyb20gXCIuL21vZHVsZXMvdGhlbWVtYW5hZ2VyXCI7XHJcbmltcG9ydCB7YmRQbHVnaW5TdG9yYWdlfSBmcm9tIFwiLi9tb2R1bGVzL29sZHN0b3JhZ2VcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9tb2R1bGVzL2VtaXR0ZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyXCI7XHJcbmltcG9ydCBFbW90ZU1vZHVsZSBmcm9tIFwiLi9idWlsdGlucy9lbW90ZXNcIjtcclxuXHJcbi8vIFBlcmZvcm0gc29tZSBzZXR1cFxyXG5wcm94eUxvY2FsU3RvcmFnZSgpO1xyXG5jb25zdCBsb2FkaW5nSWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbmxvYWRpbmdJY29uLmNsYXNzTmFtZSA9IFwiYmQtbG9hZGVydjJcIjtcclxubG9hZGluZ0ljb24udGl0bGUgPSBcIkJhbmRhZ2VkQkQgaXMgbG9hZGluZy4uLlwiO1xyXG5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvYWRpbmdJY29uKTtcclxuXHJcbi8vIHdpbmRvdy5Db3JlID0gQ29yZTtcclxud2luZG93LkJkQXBpID0gQmRBcGk7XHJcbi8vIHdpbmRvdy5zZXR0aW5ncyA9IFNldHRpbmdzSW5mbztcclxuLy8gd2luZG93LnNldHRpbmdzQ29va2llID0gU2V0dGluZ3NDb29raWU7XHJcbi8vIHdpbmRvdy5wbHVnaW5Db29raWUgPSBQbHVnaW5Db29raWU7XHJcbi8vIHdpbmRvdy50aGVtZUNvb2tpZSA9IFRoZW1lQ29va2llO1xyXG53aW5kb3cucGx1Z2luTW9kdWxlID0gUGx1Z2luTWFuYWdlcjtcclxud2luZG93LnRoZW1lTW9kdWxlID0gVGhlbWVNYW5hZ2VyO1xyXG4vLyB3aW5kb3cuYmR0aGVtZXMgPSBUaGVtZXM7XHJcbi8vIHdpbmRvdy5iZHBsdWdpbnMgPSBQbHVnaW5zO1xyXG53aW5kb3cuYmRFbW90ZXMgPSBFbW90ZU1vZHVsZS5FbW90ZXM7XHJcbndpbmRvdy5iZW1vdGVzID0gRW1vdGVNb2R1bGUuYmxhY2tsaXN0O1xyXG53aW5kb3cuYmRQbHVnaW5TdG9yYWdlID0gYmRQbHVnaW5TdG9yYWdlO1xyXG53aW5kb3cuc2V0dGluZ3NNb2R1bGUgPSBTZXR0aW5ncztcclxuXHJcblxyXG53aW5kb3cuQkRFdmVudHMgPSBFdmVudHM7XHJcbndpbmRvdy5iZENvbmZpZyA9IENvbmZpZztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvcmVXcmFwcGVyIHtcclxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZykge1xyXG4gICAgICAgIENvcmUuc2V0Q29uZmlnKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICBDb3JlLmluaXQoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoTW9kdWxlTG9hZCgpIHtcclxuICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xyXG4gICAgY29uc3QgcHJlZml4ID0gYCR7bmFtZXNwYWNlfS9gO1xyXG4gICAgY29uc3QgTW9kdWxlID0gcmVxdWlyZShcIm1vZHVsZVwiKTtcclxuICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XHJcbiAgICAvLyBjb25zdCByZXNvbHZlRmlsZW5hbWUgPSBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZTtcclxuXHJcbiAgICBNb2R1bGUuX2xvYWQgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xyXG4gICAgICAgIGlmIChyZXF1ZXN0ID09PSBuYW1lc3BhY2UgfHwgcmVxdWVzdC5zdGFydHNXaXRoKHByZWZpeCkpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdGVkID0gcmVxdWVzdC5zdWJzdHIocHJlZml4Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQgPT0gXCJhcGlcIikgcmV0dXJuIEJkQXBpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxvYWQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWUgPSBmdW5jdGlvbiAocmVxdWVzdCwgcGFyZW50LCBpc01haW4pIHtcclxuICAgIC8vICAgICBpZiAocmVxdWVzdCA9PT0gXCJiZXR0ZXJkaXNjb3JkXCIgfHwgcmVxdWVzdC5zdGFydHNXaXRoKFwiYmV0dGVyZGlzY29yZC9cIikpIHtcclxuICAgIC8vICAgICAgICAgY29uc3QgY29udGVudFBhdGggPSBQbHVnaW5NYW5hZ2VyLmdldFBsdWdpblBhdGhCeU1vZHVsZShwYXJlbnQpO1xyXG4gICAgLy8gICAgICAgICBpZiAoY29udGVudFBhdGgpIHJldHVybiByZXF1ZXN0O1xyXG4gICAgLy8gICAgIH1cclxuXHJcbiAgICAvLyAgICAgcmV0dXJuIHJlc29sdmVGaWxlbmFtZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgLy8gfTtcclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgTW9kdWxlLl9sb2FkID0gbG9hZDtcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIGV4cG9ydCBmdW5jdGlvbiBnZXRQbHVnaW5CeU1vZHVsZShtb2R1bGUpIHtcclxuLy8gICAgIHJldHVybiB0aGlzLmxvY2FsQ29udGVudC5maW5kKHBsdWdpbiA9PiBtb2R1bGUuZmlsZW5hbWUgPT09IHBsdWdpbi5jb250ZW50UGF0aCB8fCBtb2R1bGUuZmlsZW5hbWUuc3RhcnRzV2l0aChwbHVnaW4uY29udGVudFBhdGggKyBwYXRoLnNlcCkpO1xyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luUGF0aEJ5TW9kdWxlKG1vZHVsZSkge1xyXG4vLyAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucGx1Z2luQXBpSW5zdGFuY2VzKS5maW5kKGNvbnRlbnRQYXRoID0+IG1vZHVsZS5maWxlbmFtZSA9PT0gY29udGVudFBhdGggfHwgbW9kdWxlLmZpbGVuYW1lLnN0YXJ0c1dpdGgoY29udGVudFBhdGggKyBwYXRoLnNlcCkpO1xyXG4vLyB9XHJcblxyXG4vLyB2YXIgc2V0dGluZ3NQYW5lbCwgZW1vdGVNb2R1bGUsIHF1aWNrRW1vdGVNZW51LCB2b2ljZU1vZGUsLCBkTW9kZSwgcHVibGljU2VydmVyc01vZHVsZTtcclxuLy8gdmFyIGJkQ29uZmlnID0gbnVsbDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/index.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CoreWrapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchModuleLoad\", function() { return patchModuleLoad; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./localstorage */ \"./src/localstorage.js\");\n/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/oldstorage */ \"./src/modules/oldstorage.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _modules_datastore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _builtins_emotes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./builtins/emotes */ \"./src/builtins/emotes.js\");\n\n\n\n\n\n\n\n\n\n\n // Perform some setup\n\nObject(_localstorage__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\nconst loadingIcon = document.createElement(\"div\");\nloadingIcon.className = \"bd-loaderv2\";\nloadingIcon.title = \"BandagedBD is loading...\";\ndocument.body.appendChild(loadingIcon); // window.Core = Core;\n\nwindow.BdApi = _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; // window.bdthemes = Themes;\n// window.bdplugins = Plugins;\n\nwindow.bdEmotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Emotes;\nwindow.bemotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_10__[\"default\"].blacklist;\nwindow.bdPluginStorage = _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__[\"bdPluginStorage\"];\nwindow.settingsModule = _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\nwindow.DataStore = _modules_datastore__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init();\n }\n\n}\nfunction patchModuleLoad() {\n const namespace = \"betterdiscord\";\n const prefix = `${namespace}/`;\n\n const Module = __webpack_require__(/*! module */ \"module\");\n\n const load = Module._load; // const resolveFilename = Module._resolveFilename;\n\n Module._load = function (request) {\n if (request === namespace || request.startsWith(prefix)) {\n const requested = request.substr(prefix.length);\n if (requested == \"api\") return _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n }\n\n return load.apply(this, arguments);\n }; // Module._resolveFilename = function (request, parent, isMain) {\n // if (request === \"betterdiscord\" || request.startsWith(\"betterdiscord/\")) {\n // const contentPath = PluginManager.getPluginPathByModule(parent);\n // if (contentPath) return request;\n // }\n // return resolveFilename.apply(this, arguments);\n // };\n\n\n return function () {\n Module._load = load;\n };\n} // export function getPluginByModule(module) {\n// return this.localContent.find(plugin => module.filename === plugin.contentPath || module.filename.startsWith(plugin.contentPath + path.sep));\n// }\n// export function getPluginPathByModule(module) {\n// return Object.keys(this.pluginApiInstances).find(contentPath => module.filename === contentPath || module.filename.startsWith(contentPath + path.sep));\n// }\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsicHJveHlMb2NhbFN0b3JhZ2UiLCJsb2FkaW5nSWNvbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlIiwiYm9keSIsImFwcGVuZENoaWxkIiwid2luZG93IiwiQmRBcGkiLCJwbHVnaW5Nb2R1bGUiLCJQbHVnaW5NYW5hZ2VyIiwidGhlbWVNb2R1bGUiLCJUaGVtZU1hbmFnZXIiLCJiZEVtb3RlcyIsIkVtb3RlTW9kdWxlIiwiRW1vdGVzIiwiYmVtb3RlcyIsImJsYWNrbGlzdCIsImJkUGx1Z2luU3RvcmFnZSIsInNldHRpbmdzTW9kdWxlIiwiU2V0dGluZ3MiLCJEYXRhU3RvcmUiLCJCREV2ZW50cyIsIkV2ZW50cyIsImJkQ29uZmlnIiwiQ29uZmlnIiwiQ29yZVdyYXBwZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkNvcmUiLCJzZXRDb25maWciLCJpbml0IiwicGF0Y2hNb2R1bGVMb2FkIiwibmFtZXNwYWNlIiwicHJlZml4IiwiTW9kdWxlIiwicmVxdWlyZSIsImxvYWQiLCJfbG9hZCIsInJlcXVlc3QiLCJzdGFydHNXaXRoIiwicmVxdWVzdGVkIiwic3Vic3RyIiwibGVuZ3RoIiwiYXBwbHkiLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBQSw2REFBaUI7QUFDakIsTUFBTUMsV0FBVyxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBcEI7QUFDQUYsV0FBVyxDQUFDRyxTQUFaLEdBQXdCLGFBQXhCO0FBQ0FILFdBQVcsQ0FBQ0ksS0FBWixHQUFvQiwwQkFBcEI7QUFDQUgsUUFBUSxDQUFDSSxJQUFULENBQWNDLFdBQWQsQ0FBMEJOLFdBQTFCLEUsQ0FFQTs7QUFDQU8sTUFBTSxDQUFDQyxLQUFQLEdBQWVBLDBEQUFmLEMsQ0FDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUQsTUFBTSxDQUFDRSxZQUFQLEdBQXNCQyw4REFBdEI7QUFDQUgsTUFBTSxDQUFDSSxXQUFQLEdBQXFCQyw2REFBckIsQyxDQUNBO0FBQ0E7O0FBQ0FMLE1BQU0sQ0FBQ00sUUFBUCxHQUFrQkMseURBQVcsQ0FBQ0MsTUFBOUI7QUFDQVIsTUFBTSxDQUFDUyxPQUFQLEdBQWlCRix5REFBVyxDQUFDRyxTQUE3QjtBQUNBVixNQUFNLENBQUNXLGVBQVAsR0FBeUJBLG1FQUF6QjtBQUNBWCxNQUFNLENBQUNZLGNBQVAsR0FBd0JDLGdFQUF4QjtBQUNBYixNQUFNLENBQUNjLFNBQVAsR0FBbUJBLDBEQUFuQjtBQUdBZCxNQUFNLENBQUNlLFFBQVAsR0FBa0JDLHdEQUFsQjtBQUNBaEIsTUFBTSxDQUFDaUIsUUFBUCxHQUFrQkMsMkNBQWxCO0FBRWUsTUFBTUMsV0FBTixDQUFrQjtBQUM3QkMsYUFBVyxDQUFDQyxNQUFELEVBQVM7QUFDaEJDLHlEQUFJLENBQUNDLFNBQUwsQ0FBZUYsTUFBZjtBQUNIOztBQUVERyxNQUFJLEdBQUc7QUFDSEYseURBQUksQ0FBQ0UsSUFBTDtBQUNIOztBQVA0QjtBQVUxQixTQUFTQyxlQUFULEdBQTJCO0FBQzlCLFFBQU1DLFNBQVMsR0FBRyxlQUFsQjtBQUNBLFFBQU1DLE1BQU0sR0FBSSxHQUFFRCxTQUFVLEdBQTVCOztBQUNBLFFBQU1FLE1BQU0sR0FBR0MsbUJBQU8sQ0FBQyxzQkFBRCxDQUF0Qjs7QUFDQSxRQUFNQyxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0csS0FBcEIsQ0FKOEIsQ0FLOUI7O0FBRUFILFFBQU0sQ0FBQ0csS0FBUCxHQUFlLFVBQVVDLE9BQVYsRUFBbUI7QUFDOUIsUUFBSUEsT0FBTyxLQUFLTixTQUFaLElBQXlCTSxPQUFPLENBQUNDLFVBQVIsQ0FBbUJOLE1BQW5CLENBQTdCLEVBQXlEO0FBQ3JELFlBQU1PLFNBQVMsR0FBR0YsT0FBTyxDQUFDRyxNQUFSLENBQWVSLE1BQU0sQ0FBQ1MsTUFBdEIsQ0FBbEI7QUFDQSxVQUFJRixTQUFTLElBQUksS0FBakIsRUFBd0IsT0FBT2pDLDBEQUFQO0FBQzNCOztBQUVELFdBQU82QixJQUFJLENBQUNPLEtBQUwsQ0FBVyxJQUFYLEVBQWlCQyxTQUFqQixDQUFQO0FBQ0gsR0FQRCxDQVA4QixDQWdCOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7OztBQUVBLFNBQU8sWUFBVztBQUNkVixVQUFNLENBQUNHLEtBQVAsR0FBZUQsSUFBZjtBQUNILEdBRkQ7QUFHSCxDLENBRUQ7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQSIsImZpbGUiOiIuL3NyYy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgcHJveHlMb2NhbFN0b3JhZ2UgZnJvbSBcIi4vbG9jYWxzdG9yYWdlXCI7XHJcbmltcG9ydCBDb3JlIGZyb20gXCIuL21vZHVsZXMvY29yZVwiO1xyXG5pbXBvcnQgQmRBcGkgZnJvbSBcIi4vbW9kdWxlcy9wbHVnaW5hcGlcIjtcclxuaW1wb3J0IFBsdWdpbk1hbmFnZXIgZnJvbSBcIi4vbW9kdWxlcy9wbHVnaW5tYW5hZ2VyXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vbW9kdWxlcy90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IHtiZFBsdWdpblN0b3JhZ2V9IGZyb20gXCIuL21vZHVsZXMvb2xkc3RvcmFnZVwiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuL21vZHVsZXMvZW1pdHRlclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vbW9kdWxlcy9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9tb2R1bGVzL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vYnVpbHRpbnMvZW1vdGVzXCI7XHJcblxyXG4vLyBQZXJmb3JtIHNvbWUgc2V0dXBcclxucHJveHlMb2NhbFN0b3JhZ2UoKTtcclxuY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5sb2FkaW5nSWNvbi5jbGFzc05hbWUgPSBcImJkLWxvYWRlcnYyXCI7XHJcbmxvYWRpbmdJY29uLnRpdGxlID0gXCJCYW5kYWdlZEJEIGlzIGxvYWRpbmcuLi5cIjtcclxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkaW5nSWNvbik7XHJcblxyXG4vLyB3aW5kb3cuQ29yZSA9IENvcmU7XHJcbndpbmRvdy5CZEFwaSA9IEJkQXBpO1xyXG4vLyB3aW5kb3cuc2V0dGluZ3MgPSBTZXR0aW5nc0luZm87XHJcbi8vIHdpbmRvdy5zZXR0aW5nc0Nvb2tpZSA9IFNldHRpbmdzQ29va2llO1xyXG4vLyB3aW5kb3cucGx1Z2luQ29va2llID0gUGx1Z2luQ29va2llO1xyXG4vLyB3aW5kb3cudGhlbWVDb29raWUgPSBUaGVtZUNvb2tpZTtcclxud2luZG93LnBsdWdpbk1vZHVsZSA9IFBsdWdpbk1hbmFnZXI7XHJcbndpbmRvdy50aGVtZU1vZHVsZSA9IFRoZW1lTWFuYWdlcjtcclxuLy8gd2luZG93LmJkdGhlbWVzID0gVGhlbWVzO1xyXG4vLyB3aW5kb3cuYmRwbHVnaW5zID0gUGx1Z2lucztcclxud2luZG93LmJkRW1vdGVzID0gRW1vdGVNb2R1bGUuRW1vdGVzO1xyXG53aW5kb3cuYmVtb3RlcyA9IEVtb3RlTW9kdWxlLmJsYWNrbGlzdDtcclxud2luZG93LmJkUGx1Z2luU3RvcmFnZSA9IGJkUGx1Z2luU3RvcmFnZTtcclxud2luZG93LnNldHRpbmdzTW9kdWxlID0gU2V0dGluZ3M7XHJcbndpbmRvdy5EYXRhU3RvcmUgPSBEYXRhU3RvcmU7XHJcblxyXG5cclxud2luZG93LkJERXZlbnRzID0gRXZlbnRzO1xyXG53aW5kb3cuYmRDb25maWcgPSBDb25maWc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb3JlV3JhcHBlciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcclxuICAgICAgICBDb3JlLnNldENvbmZpZyhjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgQ29yZS5pbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXRjaE1vZHVsZUxvYWQoKSB7XHJcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBcImJldHRlcmRpc2NvcmRcIjtcclxuICAgIGNvbnN0IHByZWZpeCA9IGAke25hbWVzcGFjZX0vYDtcclxuICAgIGNvbnN0IE1vZHVsZSA9IHJlcXVpcmUoXCJtb2R1bGVcIik7XHJcbiAgICBjb25zdCBsb2FkID0gTW9kdWxlLl9sb2FkO1xyXG4gICAgLy8gY29uc3QgcmVzb2x2ZUZpbGVuYW1lID0gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWU7XHJcblxyXG4gICAgTW9kdWxlLl9sb2FkID0gZnVuY3Rpb24gKHJlcXVlc3QpIHtcclxuICAgICAgICBpZiAocmVxdWVzdCA9PT0gbmFtZXNwYWNlIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChwcmVmaXgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RlZCA9IHJlcXVlc3Quc3Vic3RyKHByZWZpeC5sZW5ndGgpO1xyXG4gICAgICAgICAgICBpZiAocmVxdWVzdGVkID09IFwiYXBpXCIpIHJldHVybiBCZEFwaTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsb2FkLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lID0gZnVuY3Rpb24gKHJlcXVlc3QsIHBhcmVudCwgaXNNYWluKSB7XHJcbiAgICAvLyAgICAgaWYgKHJlcXVlc3QgPT09IFwiYmV0dGVyZGlzY29yZFwiIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChcImJldHRlcmRpc2NvcmQvXCIpKSB7XHJcbiAgICAvLyAgICAgICAgIGNvbnN0IGNvbnRlbnRQYXRoID0gUGx1Z2luTWFuYWdlci5nZXRQbHVnaW5QYXRoQnlNb2R1bGUocGFyZW50KTtcclxuICAgIC8vICAgICAgICAgaWYgKGNvbnRlbnRQYXRoKSByZXR1cm4gcmVxdWVzdDtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIHJldHVybiByZXNvbHZlRmlsZW5hbWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgIC8vIH07XHJcblxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIE1vZHVsZS5fbG9hZCA9IGxvYWQ7XHJcbiAgICB9O1xyXG59XHJcblxyXG4vLyBleHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luQnlNb2R1bGUobW9kdWxlKSB7XHJcbi8vICAgICByZXR1cm4gdGhpcy5sb2NhbENvbnRlbnQuZmluZChwbHVnaW4gPT4gbW9kdWxlLmZpbGVuYW1lID09PSBwbHVnaW4uY29udGVudFBhdGggfHwgbW9kdWxlLmZpbGVuYW1lLnN0YXJ0c1dpdGgocGx1Z2luLmNvbnRlbnRQYXRoICsgcGF0aC5zZXApKTtcclxuLy8gfVxyXG5cclxuLy8gZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpblBhdGhCeU1vZHVsZShtb2R1bGUpIHtcclxuLy8gICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnBsdWdpbkFwaUluc3RhbmNlcykuZmluZChjb250ZW50UGF0aCA9PiBtb2R1bGUuZmlsZW5hbWUgPT09IGNvbnRlbnRQYXRoIHx8IG1vZHVsZS5maWxlbmFtZS5zdGFydHNXaXRoKGNvbnRlbnRQYXRoICsgcGF0aC5zZXApKTtcclxuLy8gfVxyXG5cclxuLy8gdmFyIHNldHRpbmdzUGFuZWwsIGVtb3RlTW9kdWxlLCBxdWlja0Vtb3RlTWVudSwgdm9pY2VNb2RlLCwgZE1vZGUsIHB1YmxpY1NlcnZlcnNNb2R1bGU7XHJcbi8vIHZhciBiZENvbmZpZyA9IG51bGw7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/index.js\n"); /***/ }), @@ -371,7 +371,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _web /***/ (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 ContentManager; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/metaerror */ \"./src/structs/metaerror.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst Module = __webpack_require__(/*! module */ \"module\").Module;\n\nModule.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ \"electron\").remote.app.getAppPath(), \"node_modules\"));\nconst splitRegex = /[^\\S\\r\\n]*?\\n[^\\S\\r\\n]*?\\*[^\\S\\r\\n]?/;\nconst escapedAtRegex = /^\\\\@/;\nclass ContentManager {\n get name() {\n return \"\";\n }\n\n get moduleExtension() {\n return \"\";\n }\n\n get extension() {\n return \"\";\n }\n\n get contentFolder() {\n return \"\";\n }\n\n get prefix() {\n return \"content\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"content\";\n }\n\n get id() {\n return \"autoReload\";\n }\n\n emit(event, ...args) {\n return _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].emit(`${this.prefix}-${event}`, ...args);\n }\n\n constructor() {\n this.timeCache = {};\n this.contentList = [];\n this.state = {};\n this.originalRequire = Module._extensions[this.moduleExtension];\n Module._extensions[this.moduleExtension] = this.getContentRequire();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(this.collection, this.category, this.id, enabled => {\n if (enabled) this.watchContent();else this.unwatchContent();\n });\n } // Subclasses should overload this and modify the content object as needed to fully load it\n\n\n initializeContent() {\n return;\n } // Subclasses should overload this and modify the content as needed to require() the file\n\n\n getContentModification(module, content) {\n return content;\n }\n\n startContent() {\n return;\n }\n\n stopContent() {\n return;\n }\n\n loadState() {\n const saved = _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getData(`${this.prefix}s`);\n if (!saved) return;\n Object.assign(this.state, saved);\n }\n\n saveState() {\n _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setData(`${this.prefix}s`, this.state);\n }\n\n watchContent() {\n if (this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Already watching content.\");\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"Starting to watch content.\");\n this.watcher = fs.watch(this.contentFolder, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename || !filename.endsWith(this.extension)) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(path.resolve(this.contentFolder, filename));\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete this.timeCache[filename];\n this.unloadContent(filename, true);\n }\n\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile()) return;\n const stats = fs.statSync(path.resolve(this.contentFolder, filename));\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (this.timeCache[filename] == stats.mtime.getTime()) return;\n this.timeCache[filename] = stats.mtime.getTime();\n if (eventType == \"rename\") this.loadContent(filename, true);\n if (eventType == \"change\") this.reloadContent(filename, true);\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"No longer watching content.\");\n }\n\n extractMeta(content) {\n const firstLine = content.split(\"\\n\")[0];\n const hasOldMeta = firstLine.includes(\"//META\");\n if (hasOldMeta) return this.parseOldMeta(content);\n const hasNewMeta = firstLine.includes(\"/**\");\n if (hasNewMeta) return this.parseNewMeta(content);\n throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META was not found.\");\n }\n\n parseOldMeta(content) {\n const meta = content.split(\"\\n\")[0];\n const metaData = meta.substring(meta.lastIndexOf(\"//META\") + 6, meta.lastIndexOf(\"*//\"));\n if (!_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(metaData)) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META could not be parsed.\");\n const parsed = JSON.parse(metaData);\n if (!parsed.name) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META missing name data.\");\n return parsed;\n }\n\n parseNewMeta(content) {\n const block = content.split(\"/**\", 2)[1].split(\"*/\", 1)[0];\n const out = {};\n let field = \"\";\n let accum = \"\";\n\n for (const line of block.split(splitRegex)) {\n if (line.length === 0) continue;\n\n if (line.charAt(0) === \"@\" && line.charAt(1) !== \" \") {\n out[field] = accum;\n const l = line.indexOf(\" \");\n field = line.substr(1, l - 1);\n accum = line.substr(l + 1);\n } else {\n accum += \" \" + line.replace(\"\\\\n\", \"\\n\").replace(escapedAtRegex, \"@\");\n }\n }\n\n out[field] = accum.trim();\n delete out[\"\"];\n return out;\n }\n\n getContentRequire() {\n const self = this; // const baseFolder = this.contentFolder;\n\n const originalRequire = this.originalRequire;\n return function (module, filename) {\n const possiblePath = path.resolve(self.contentFolder, path.basename(filename));\n if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments);\n let content = fs.readFileSync(filename, \"utf8\");\n content = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stripBOM(content);\n const meta = self.extractMeta(content);\n meta.id = meta.name;\n meta.filename = path.basename(filename);\n content = self.getContentModification(module, content, meta);\n\n module._compile(content, filename);\n };\n } // Subclasses should use the return (if not ContentError) and push to this.contentList\n\n\n loadContent(filename, shouldToast = true) {\n if (typeof filename === \"undefined\") return;\n\n try {\n require(path.resolve(this.contentFolder, filename));\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](filename, filename, \"Could not be compiled.\", {\n message: error.message,\n stack: error.stack\n });\n }\n\n const content = require(path.resolve(this.contentFolder, filename));\n\n if (this.contentList.find(c => c.id == content.id)) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, filename, `There is already a plugin with name ${content.name}`);\n const error = this.initializeContent(content);\n if (error) return error;\n this.contentList.push(content);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} v${content.version} was loaded.`);\n this.emit(\"loaded\", content.id);\n if (!this.state[content.id]) return this.state[content.id] = false;\n return this.startContent(content);\n }\n\n unloadContent(idOrFileOrContent, shouldToast = true) {\n const content = typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n if (!content) return false;\n if (this.state[content.id]) this.disableContent(content);\n delete require.cache[require.resolve(path.resolve(this.contentFolder, content.filename))];\n this.contentList.splice(this.contentList.indexOf(content), 1);\n this.emit(\"unloaded\", content.id);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} was unloaded.`);\n return true;\n }\n\n reloadContent(filename) {\n const didUnload = this.unloadContent(filename);\n if (!didUnload) return didUnload;\n return this.loadContent(filename);\n }\n\n isLoaded(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return true;\n }\n\n isEnabled(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return this.state[content.id];\n }\n\n enableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (this.state[content.id]) return;\n this.state[content.id] = true;\n this.startContent(content);\n this.saveState();\n }\n\n disableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (!this.state[content.id]) return;\n this.state[content.id] = false;\n this.stopContent(content);\n this.saveState();\n }\n\n toggleContent(id) {\n if (this.state[id]) this.disableContent(id);else this.enableContent(id);\n }\n\n loadNewContent() {\n const files = fs.readdirSync(this.contentFolder);\n const removed = this.contentList.filter(t => !files.includes(t.filename)).map(c => c.id);\n const added = files.filter(f => !this.contentList.find(t => t.filename == f) && f.endsWith(this.extension) && fs.statSync(path.resolve(this.contentFolder, f)).isFile());\n return {\n added,\n removed\n };\n }\n\n updateList() {\n const results = this.loadNewContent();\n\n for (const filename of results.added) this.loadContent(filename);\n\n for (const name of results.removed) this.unloadContent(name);\n }\n\n loadAllContent() {\n this.loadState();\n const errors = [];\n const files = fs.readdirSync(this.contentFolder);\n\n for (const filename of files) {\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile() || !filename.endsWith(this.extension)) continue;\n const content = this.loadContent(filename, false);\n if (content instanceof _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) errors.push(content);\n }\n\n this.saveState();\n if (_settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(this.collection, this.category, this.id)) this.watchContent();\n return errors;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29udGVudG1hbmFnZXIuanM/OTA0MyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwiTW9kdWxlIiwiZ2xvYmFsUGF0aHMiLCJwdXNoIiwicmVzb2x2ZSIsInJlbW90ZSIsImFwcCIsImdldEFwcFBhdGgiLCJzcGxpdFJlZ2V4IiwiZXNjYXBlZEF0UmVnZXgiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicHJlZml4IiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJlbWl0IiwiZXZlbnQiLCJhcmdzIiwiRXZlbnRzIiwiY29uc3RydWN0b3IiLCJ0aW1lQ2FjaGUiLCJjb250ZW50TGlzdCIsInN0YXRlIiwib3JpZ2luYWxSZXF1aXJlIiwiX2V4dGVuc2lvbnMiLCJnZXRDb250ZW50UmVxdWlyZSIsIlNldHRpbmdzIiwib24iLCJlbmFibGVkIiwid2F0Y2hDb250ZW50IiwidW53YXRjaENvbnRlbnQiLCJpbml0aWFsaXplQ29udGVudCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJjb250ZW50Iiwic3RhcnRDb250ZW50Iiwic3RvcENvbnRlbnQiLCJsb2FkU3RhdGUiLCJzYXZlZCIsIkRhdGFTdG9yZSIsImdldERhdGEiLCJPYmplY3QiLCJhc3NpZ24iLCJzYXZlU3RhdGUiLCJzZXREYXRhIiwid2F0Y2hlciIsIlV0aWxpdGllcyIsImVyciIsImxvZyIsIndhdGNoIiwicGVyc2lzdGVudCIsImV2ZW50VHlwZSIsImZpbGVuYW1lIiwiZW5kc1dpdGgiLCJQcm9taXNlIiwiciIsInNldFRpbWVvdXQiLCJzdGF0U3luYyIsImNvZGUiLCJ1bmxvYWRDb250ZW50IiwiaXNGaWxlIiwic3RhdHMiLCJtdGltZSIsImdldFRpbWUiLCJsb2FkQ29udGVudCIsInJlbG9hZENvbnRlbnQiLCJjbG9zZSIsImV4dHJhY3RNZXRhIiwiZmlyc3RMaW5lIiwic3BsaXQiLCJoYXNPbGRNZXRhIiwiaW5jbHVkZXMiLCJwYXJzZU9sZE1ldGEiLCJoYXNOZXdNZXRhIiwicGFyc2VOZXdNZXRhIiwiTWV0YUVycm9yIiwibWV0YSIsIm1ldGFEYXRhIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJ0ZXN0SlNPTiIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsImJsb2NrIiwib3V0IiwiZmllbGQiLCJhY2N1bSIsImxpbmUiLCJsZW5ndGgiLCJjaGFyQXQiLCJsIiwiaW5kZXhPZiIsInN1YnN0ciIsInJlcGxhY2UiLCJ0cmltIiwic2VsZiIsInBvc3NpYmxlUGF0aCIsImJhc2VuYW1lIiwiZXhpc3RzU3luYyIsInJlYWxwYXRoU3luYyIsIlJlZmxlY3QiLCJhcHBseSIsImFyZ3VtZW50cyIsInJlYWRGaWxlU3luYyIsInN0cmlwQk9NIiwiX2NvbXBpbGUiLCJzaG91bGRUb2FzdCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiZXJyb3IiLCJDb250ZW50RXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJmaW5kIiwiYyIsIlRvYXN0cyIsInN1Y2Nlc3MiLCJ2ZXJzaW9uIiwiaWRPckZpbGVPckNvbnRlbnQiLCJkaXNhYmxlQ29udGVudCIsImNhY2hlIiwic3BsaWNlIiwiZGlkVW5sb2FkIiwiaXNMb2FkZWQiLCJpZE9yRmlsZSIsImlzRW5hYmxlZCIsImVuYWJsZUNvbnRlbnQiLCJpZE9yQ29udGVudCIsInAiLCJ0b2dnbGVDb250ZW50IiwibG9hZE5ld0NvbnRlbnQiLCJmaWxlcyIsInJlYWRkaXJTeW5jIiwicmVtb3ZlZCIsImZpbHRlciIsInQiLCJtYXAiLCJhZGRlZCIsImYiLCJ1cGRhdGVMaXN0IiwicmVzdWx0cyIsImxvYWRBbGxDb250ZW50IiwiZXJyb3JzIiwiZ2V0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFD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QTZDLEtBQUtDLEVBQWxELENBQUosRUFBMkQsS0FBS2UsWUFBTDtBQUMzRCxXQUFPaUgsTUFBUDtBQUNIOztBQW5PK0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9jb250ZW50bWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBDb250ZW50RXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvY29udGVudGVycm9yXCI7XHJcbmltcG9ydCBNZXRhRXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvbWV0YWVycm9yXCI7XHJcbmltcG9ydCB7VG9hc3RzfSBmcm9tIFwidWlcIjtcclxuXHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcclxuY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmNvbnN0IE1vZHVsZSA9IHJlcXVpcmUoXCJtb2R1bGVcIikuTW9kdWxlO1xyXG5Nb2R1bGUuZ2xvYmFsUGF0aHMucHVzaChwYXRoLnJlc29sdmUocmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHAuZ2V0QXBwUGF0aCgpLCBcIm5vZGVfbW9kdWxlc1wiKSk7XHJcblxyXG5jb25zdCBzcGxpdFJlZ2V4ID0gL1teXFxTXFxyXFxuXSo/XFxuW15cXFNcXHJcXG5dKj9cXCpbXlxcU1xcclxcbl0/LztcclxuY29uc3QgZXNjYXBlZEF0UmVnZXggPSAvXlxcXFxALztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRNYW5hZ2VyIHtcclxuXHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJcIjt9XHJcbiAgICBnZXQgbW9kdWxlRXh0ZW5zaW9uKCkge3JldHVybiBcIlwiO31cclxuICAgIGdldCBleHRlbnNpb24oKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IGNvbnRlbnRGb2xkZXIoKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IHByZWZpeCgpIHtyZXR1cm4gXCJjb250ZW50XCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiY29udGVudFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJhdXRvUmVsb2FkXCI7fVxyXG4gICAgZW1pdChldmVudCwgLi4uYXJncykge3JldHVybiBFdmVudHMuZW1pdChgJHt0aGlzLnByZWZpeH0tJHtldmVudH1gLCAuLi5hcmdzKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy50aW1lQ2FjaGUgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxSZXF1aXJlID0gTW9kdWxlLl9leHRlbnNpb25zW3RoaXMubW9kdWxlRXh0ZW5zaW9uXTtcclxuICAgICAgICBNb2R1bGUuX2V4dGVuc2lvbnNbdGhpcy5tb2R1bGVFeHRlbnNpb25dID0gdGhpcy5nZXRDb250ZW50UmVxdWlyZSgpO1xyXG4gICAgICAgIFNldHRpbmdzLm9uKHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgdGhpcy5pZCwgKGVuYWJsZWQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy51bndhdGNoQ29udGVudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJsb2FkIHRoaXMgYW5kIG1vZGlmeSB0aGUgY29udGVudCBvYmplY3QgYXMgbmVlZGVkIHRvIGZ1bGx5IGxvYWQgaXRcclxuICAgIGluaXRpYWxpemVDb250ZW50KCkge3JldHVybjt9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcmxvYWQgdGhpcyBhbmQgbW9kaWZ5IHRoZSBjb250ZW50IGFzIG5lZWRlZCB0byByZXF1aXJlKCkgdGhlIGZpbGVcclxuICAgIGdldENvbnRlbnRNb2RpZmljYXRpb24obW9kdWxlLCBjb250ZW50KSB7cmV0dXJuIGNvbnRlbnQ7fVxyXG5cclxuICAgIHN0YXJ0Q29udGVudCgpIHtyZXR1cm47fVxyXG4gICAgc3RvcENvbnRlbnQoKSB7cmV0dXJuO31cclxuXHJcbiAgICBsb2FkU3RhdGUoKSB7XHJcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBEYXRhU3RvcmUuZ2V0RGF0YShgJHt0aGlzLnByZWZpeH1zYCk7XHJcbiAgICAgICAgaWYgKCFzYXZlZCkgcmV0dXJuO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZSwgc2F2ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTdGF0ZSgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShgJHt0aGlzLnByZWZpeH1zYCwgdGhpcy5zdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2F0Y2hDb250ZW50KCkge1xyXG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIpIHJldHVybiBVdGlsaXRpZXMuZXJyKHRoaXMubmFtZSwgXCJBbHJlYWR5IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIFV0aWxpdGllcy5sb2codGhpcy5uYW1lLCBcIlN0YXJ0aW5nIHRvIHdhdGNoIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlciA9IGZzLndhdGNoKHRoaXMuY29udGVudEZvbGRlciwge3BlcnNpc3RlbnQ6IGZhbHNlfSwgYXN5bmMgKGV2ZW50VHlwZSwgZmlsZW5hbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFldmVudFR5cGUgfHwgIWZpbGVuYW1lIHx8ICFmaWxlbmFtZS5lbmRzV2l0aCh0aGlzLmV4dGVuc2lvbikpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTt9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gXCJFTk9FTlRcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5sb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpLmlzRmlsZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTtcclxuICAgICAgICAgICAgaWYgKCFzdGF0cyB8fCAhc3RhdHMubXRpbWUgfHwgIXN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKHN0YXRzLm10aW1lLmdldFRpbWUoKSkgIT09IFwibnVtYmVyXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXSA9PSBzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy50aW1lQ2FjaGVbZmlsZW5hbWVdID0gc3RhdHMubXRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwicmVuYW1lXCIpIHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIHRydWUpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwiY2hhbmdlXCIpIHRoaXMucmVsb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdW53YXRjaENvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLndhdGNoZXIpIHJldHVybiBVdGlsaXRpZXMuZXJyKHRoaXMubmFtZSwgXCJXYXMgbm90IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLndhdGNoZXI7XHJcbiAgICAgICAgVXRpbGl0aWVzLmxvZyh0aGlzLm5hbWUsIFwiTm8gbG9uZ2VyIHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dHJhY3RNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBmaXJzdExpbmUgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGhhc09sZE1ldGEgPSBmaXJzdExpbmUuaW5jbHVkZXMoXCIvL01FVEFcIik7XHJcbiAgICAgICAgaWYgKGhhc09sZE1ldGEpIHJldHVybiB0aGlzLnBhcnNlT2xkTWV0YShjb250ZW50KTtcclxuICAgICAgICBjb25zdCBoYXNOZXdNZXRhID0gZmlyc3RMaW5lLmluY2x1ZGVzKFwiLyoqXCIpO1xyXG4gICAgICAgIGlmIChoYXNOZXdNZXRhKSByZXR1cm4gdGhpcy5wYXJzZU5ld01ldGEoY29udGVudCk7XHJcbiAgICAgICAgdGhyb3cgbmV3IE1ldGFFcnJvcihcIk1FVEEgd2FzIG5vdCBmb3VuZC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VPbGRNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBtZXRhID0gY29udGVudC5zcGxpdChcIlxcblwiKVswXTtcclxuICAgICAgICBjb25zdCBtZXRhRGF0YSA9IG1ldGEuc3Vic3RyaW5nKG1ldGEubGFzdEluZGV4T2YoXCIvL01FVEFcIikgKyA2LCBtZXRhLmxhc3RJbmRleE9mKFwiKi8vXCIpKTtcclxuICAgICAgICBpZiAoIVV0aWxpdGllcy50ZXN0SlNPTihtZXRhRGF0YSkpIHRocm93IG5ldyBNZXRhRXJyb3IoXCJNRVRBIGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1ldGFEYXRhKTtcclxuICAgICAgICBpZiAoIXBhcnNlZC5uYW1lKSB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSBtaXNzaW5nIG5hbWUgZGF0YS5cIik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZU5ld01ldGEoY29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrID0gY29udGVudC5zcGxpdChcIi8qKlwiLCAyKVsxXS5zcGxpdChcIiovXCIsIDEpWzBdO1xyXG4gICAgICAgIGNvbnN0IG91dCA9IHt9O1xyXG4gICAgICAgIGxldCBmaWVsZCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IGFjY3VtID0gXCJcIjtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgYmxvY2suc3BsaXQoc3BsaXRSZWdleCkpIHtcclxuICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09PSBcIkBcIiAmJiBsaW5lLmNoYXJBdCgxKSAhPT0gXCIgXCIpIHtcclxuICAgICAgICAgICAgICAgIG91dFtmaWVsZF0gPSBhY2N1bTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBsaW5lLmluZGV4T2YoXCIgXCIpO1xyXG4gICAgICAgICAgICAgICAgZmllbGQgPSBsaW5lLnN1YnN0cigxLCBsIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBhY2N1bSA9IGxpbmUuc3Vic3RyKGwgKyAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFjY3VtICs9IFwiIFwiICsgbGluZS5yZXBsYWNlKFwiXFxcXG5cIiwgXCJcXG5cIikucmVwbGFjZShlc2NhcGVkQXRSZWdleCwgXCJAXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dFtmaWVsZF0gPSBhY2N1bS50cmltKCk7XHJcbiAgICAgICAgZGVsZXRlIG91dFtcIlwiXTtcclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvbnRlbnRSZXF1aXJlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vIGNvbnN0IGJhc2VGb2xkZXIgPSB0aGlzLmNvbnRlbnRGb2xkZXI7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxSZXF1aXJlID0gdGhpcy5vcmlnaW5hbFJlcXVpcmU7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZHVsZSwgZmlsZW5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgcG9zc2libGVQYXRoID0gcGF0aC5yZXNvbHZlKHNlbGYuY29udGVudEZvbGRlciwgcGF0aC5iYXNlbmFtZShmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocG9zc2libGVQYXRoKSB8fCBmaWxlbmFtZSAhPT0gZnMucmVhbHBhdGhTeW5jKHBvc3NpYmxlUGF0aCkpIHJldHVybiBSZWZsZWN0LmFwcGx5KG9yaWdpbmFsUmVxdWlyZSwgdGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIFwidXRmOFwiKTtcclxuICAgICAgICAgICAgY29udGVudCA9IFV0aWxpdGllcy5zdHJpcEJPTShjb250ZW50KTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNlbGYuZXh0cmFjdE1ldGEoY29udGVudCk7XHJcbiAgICAgICAgICAgIG1ldGEuaWQgPSBtZXRhLm5hbWU7XHJcbiAgICAgICAgICAgIG1ldGEuZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgY29udGVudCA9IHNlbGYuZ2V0Q29udGVudE1vZGlmaWNhdGlvbihtb2R1bGUsIGNvbnRlbnQsIG1ldGEpO1xyXG4gICAgICAgICAgICBtb2R1bGUuX2NvbXBpbGUoY29udGVudCwgZmlsZW5hbWUpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgdXNlIHRoZSByZXR1cm4gKGlmIG5vdCBDb250ZW50RXJyb3IpIGFuZCBwdXNoIHRvIHRoaXMuY29udGVudExpc3RcclxuICAgIGxvYWRDb250ZW50KGZpbGVuYW1lLCBzaG91bGRUb2FzdCA9IHRydWUpIHtcclxuICAgICAgICBpZiAodHlwZW9mKGZpbGVuYW1lKSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xyXG4gICAgICAgIHRyeSB7X19ub25fd2VicGFja19yZXF1aXJlX18ocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTt9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7cmV0dXJuIG5ldyBDb250ZW50RXJyb3IoZmlsZW5hbWUsIGZpbGVuYW1lLCBcIkNvdWxkIG5vdCBiZSBjb21waWxlZC5cIiwge21lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFja30pO31cclxuICAgICAgICBjb25zdCBjb250ZW50ID0gX19ub25fd2VicGFja19yZXF1aXJlX18ocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTtcclxuICAgICAgICBpZiAodGhpcy5jb250ZW50TGlzdC5maW5kKGMgPT4gYy5pZCA9PSBjb250ZW50LmlkKSkgcmV0dXJuIG5ldyBDb250ZW50RXJyb3IoY29udGVudC5uYW1lLCBmaWxlbmFtZSwgYFRoZXJlIGlzIGFscmVhZHkgYSBwbHVnaW4gd2l0aCBuYW1lICR7Y29udGVudC5uYW1lfWApO1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5pbml0aWFsaXplQ29udGVudChjb250ZW50KTtcclxuICAgICAgICBpZiAoZXJyb3IpIHJldHVybiBlcnJvcjtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMaXN0LnB1c2goY29udGVudCk7XHJcbiAgICAgICAgaWYgKHNob3VsZFRvYXN0KSBUb2FzdHMuc3VjY2VzcyhgJHtjb250ZW50Lm5hbWV9IHYke2NvbnRlbnQudmVyc2lvbn0gd2FzIGxvYWRlZC5gKTtcclxuICAgICAgICB0aGlzLmVtaXQoXCJsb2FkZWRcIiwgY29udGVudC5pZCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZVtjb250ZW50LmlkXSkgcmV0dXJuIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydENvbnRlbnQoY29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgdW5sb2FkQ29udGVudChpZE9yRmlsZU9yQ29udGVudCwgc2hvdWxkVG9hc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yRmlsZU9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChjID0+IGMuaWQgPT0gaWRPckZpbGVPckNvbnRlbnQgfHwgYy5maWxlbmFtZSA9PSBpZE9yRmlsZU9yQ29udGVudCkgOiBpZE9yRmlsZU9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtjb250ZW50LmlkXSkgdGhpcy5kaXNhYmxlQ29udGVudChjb250ZW50KTtcclxuICAgICAgICBkZWxldGUgX19ub25fd2VicGFja19yZXF1aXJlX18uY2FjaGVbX19ub25fd2VicGFja19yZXF1aXJlX18ucmVzb2x2ZShwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBjb250ZW50LmZpbGVuYW1lKSldO1xyXG4gICAgICAgIHRoaXMuY29udGVudExpc3Quc3BsaWNlKHRoaXMuY29udGVudExpc3QuaW5kZXhPZihjb250ZW50KSwgMSk7XHJcbiAgICAgICAgdGhpcy5lbWl0KFwidW5sb2FkZWRcIiwgY29udGVudC5pZCk7XHJcbiAgICAgICAgaWYgKHNob3VsZFRvYXN0KSBUb2FzdHMuc3VjY2VzcyhgJHtjb250ZW50Lm5hbWV9IHdhcyB1bmxvYWRlZC5gKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWRDb250ZW50KGZpbGVuYW1lKSB7XHJcbiAgICAgICAgY29uc3QgZGlkVW5sb2FkID0gdGhpcy51bmxvYWRDb250ZW50KGZpbGVuYW1lKTtcclxuICAgICAgICBpZiAoIWRpZFVubG9hZCkgcmV0dXJuIGRpZFVubG9hZDtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNMb2FkZWQoaWRPckZpbGUpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50TGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZSB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlKTtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpc0VuYWJsZWQoaWRPckZpbGUpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50TGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZSB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlKTtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVtjb250ZW50LmlkXTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVDb250ZW50KGlkT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckNvbnRlbnQpIDogaWRPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVbY29udGVudC5pZF0pIHJldHVybjtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN0YXJ0Q29udGVudChjb250ZW50KTtcclxuICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVDb250ZW50KGlkT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckNvbnRlbnQpIDogaWRPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbnRlbnQuaWRdKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zdGF0ZVtjb250ZW50LmlkXSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RvcENvbnRlbnQoY29udGVudCk7XHJcbiAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVDb250ZW50KGlkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVbaWRdKSB0aGlzLmRpc2FibGVDb250ZW50KGlkKTtcclxuICAgICAgICBlbHNlIHRoaXMuZW5hYmxlQ29udGVudChpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZE5ld0NvbnRlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmNvbnRlbnRGb2xkZXIpO1xyXG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbHRlcih0ID0+ICFmaWxlcy5pbmNsdWRlcyh0LmZpbGVuYW1lKSkubWFwKGMgPT4gYy5pZCk7XHJcbiAgICAgICAgY29uc3QgYWRkZWQgPSBmaWxlcy5maWx0ZXIoZiA9PiAhdGhpcy5jb250ZW50TGlzdC5maW5kKHQgPT4gdC5maWxlbmFtZSA9PSBmKSAmJiBmLmVuZHNXaXRoKHRoaXMuZXh0ZW5zaW9uKSAmJiBmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmKSkuaXNGaWxlKCkpO1xyXG4gICAgICAgIHJldHVybiB7YWRkZWQsIHJlbW92ZWR9O1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUxpc3QoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IHRoaXMubG9hZE5ld0NvbnRlbnQoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIHJlc3VsdHMuYWRkZWQpIHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUpO1xyXG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiByZXN1bHRzLnJlbW92ZWQpIHRoaXMudW5sb2FkQ29udGVudChuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQWxsQ29udGVudCgpIHtcclxuICAgICAgICB0aGlzLmxvYWRTdGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmModGhpcy5jb250ZW50Rm9sZGVyKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgICBpZiAoIWZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGZpbGVuYW1lKSkuaXNGaWxlKCkgfHwgIWZpbGVuYW1lLmVuZHNXaXRoKHRoaXMuZXh0ZW5zaW9uKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmxvYWRDb250ZW50KGZpbGVuYW1lLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgQ29udGVudEVycm9yKSBlcnJvcnMucHVzaChjb250ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XHJcbiAgICAgICAgaWYgKFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQpKSB0aGlzLndhdGNoQ29udGVudCgpO1xyXG4gICAgICAgIHJldHVybiBlcnJvcnM7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/contentmanager.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentManager; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/metaerror */ \"./src/structs/metaerror.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst Module = __webpack_require__(/*! module */ \"module\").Module;\n\nModule.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ \"electron\").remote.app.getAppPath(), \"node_modules\"));\nconst splitRegex = /[^\\S\\r\\n]*?\\n[^\\S\\r\\n]*?\\*[^\\S\\r\\n]?/;\nconst escapedAtRegex = /^\\\\@/;\nclass ContentManager {\n get name() {\n return \"\";\n }\n\n get moduleExtension() {\n return \"\";\n }\n\n get extension() {\n return \"\";\n }\n\n get contentFolder() {\n return \"\";\n }\n\n get prefix() {\n return \"content\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"content\";\n }\n\n get id() {\n return \"autoReload\";\n }\n\n emit(event, ...args) {\n return _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].emit(`${this.prefix}-${event}`, ...args);\n }\n\n constructor() {\n this.timeCache = {};\n this.contentList = [];\n this.state = {};\n this.originalRequire = Module._extensions[this.moduleExtension];\n Module._extensions[this.moduleExtension] = this.getContentRequire();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(this.collection, this.category, this.id, enabled => {\n if (enabled) this.watchContent();else this.unwatchContent();\n });\n } // Subclasses should overload this and modify the content object as needed to fully load it\n\n\n initializeContent() {\n return;\n } // Subclasses should overload this and modify the content as needed to require() the file\n\n\n getContentModification(module, content) {\n return content;\n }\n\n startContent() {\n return;\n }\n\n stopContent() {\n return;\n }\n\n loadState() {\n const saved = _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getData(`${this.prefix}s`);\n if (!saved) return;\n Object.assign(this.state, saved);\n }\n\n saveState() {\n _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setData(`${this.prefix}s`, this.state);\n }\n\n watchContent() {\n if (this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Already watching content.\");\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"Starting to watch content.\");\n this.watcher = fs.watch(this.contentFolder, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename || !filename.endsWith(this.extension)) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(path.resolve(this.contentFolder, filename));\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete this.timeCache[filename];\n this.unloadContent(filename, true);\n }\n\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile()) return;\n const stats = fs.statSync(path.resolve(this.contentFolder, filename));\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (this.timeCache[filename] == stats.mtime.getTime()) return;\n this.timeCache[filename] = stats.mtime.getTime();\n if (eventType == \"rename\") this.loadContent(filename, true);\n if (eventType == \"change\") this.reloadContent(filename, true);\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"No longer watching content.\");\n }\n\n extractMeta(content) {\n const firstLine = content.split(\"\\n\")[0];\n const hasOldMeta = firstLine.includes(\"//META\");\n if (hasOldMeta) return this.parseOldMeta(content);\n const hasNewMeta = firstLine.includes(\"/**\");\n if (hasNewMeta) return this.parseNewMeta(content);\n throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META was not found.\");\n }\n\n parseOldMeta(content) {\n const meta = content.split(\"\\n\")[0];\n const metaData = meta.substring(meta.lastIndexOf(\"//META\") + 6, meta.lastIndexOf(\"*//\"));\n if (!_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(metaData)) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META could not be parsed.\");\n const parsed = JSON.parse(metaData);\n if (!parsed.name) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META missing name data.\");\n return parsed;\n }\n\n parseNewMeta(content) {\n const block = content.split(\"/**\", 2)[1].split(\"*/\", 1)[0];\n const out = {};\n let field = \"\";\n let accum = \"\";\n\n for (const line of block.split(splitRegex)) {\n if (line.length === 0) continue;\n\n if (line.charAt(0) === \"@\" && line.charAt(1) !== \" \") {\n out[field] = accum;\n const l = line.indexOf(\" \");\n field = line.substr(1, l - 1);\n accum = line.substr(l + 1);\n } else {\n accum += \" \" + line.replace(\"\\\\n\", \"\\n\").replace(escapedAtRegex, \"@\");\n }\n }\n\n out[field] = accum.trim();\n delete out[\"\"];\n return out;\n }\n\n getContentRequire() {\n const self = this; // const baseFolder = this.contentFolder;\n\n const originalRequire = this.originalRequire;\n return function (module, filename) {\n const possiblePath = path.resolve(self.contentFolder, path.basename(filename));\n if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments);\n let content = fs.readFileSync(filename, \"utf8\");\n content = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stripBOM(content);\n const meta = self.extractMeta(content);\n meta.id = meta.name;\n meta.filename = path.basename(filename);\n content = self.getContentModification(module, content, meta);\n\n module._compile(content, filename);\n };\n } // Subclasses should use the return (if not ContentError) and push to this.contentList\n\n\n loadContent(filename, shouldToast = false) {\n if (typeof filename === \"undefined\") return;\n\n try {\n require(path.resolve(this.contentFolder, filename));\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](filename, filename, \"Could not be compiled.\", {\n message: error.message,\n stack: error.stack\n });\n }\n\n const content = require(path.resolve(this.contentFolder, filename));\n\n if (this.contentList.find(c => c.id == content.id)) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, filename, `There is already a plugin with name ${content.name}`);\n const error = this.initializeContent(content);\n if (error) return error;\n this.contentList.push(content);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} v${content.version} was loaded.`);\n this.emit(\"loaded\", content.id);\n if (!this.state[content.id]) return this.state[content.id] = false;\n return this.startContent(content);\n }\n\n unloadContent(idOrFileOrContent, shouldToast = true, isReload = false) {\n const content = typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n if (!content) return false;\n if (this.state[content.id]) isReload ? this.stopContent(content) : this.disableContent(content);\n delete require.cache[require.resolve(path.resolve(this.contentFolder, content.filename))];\n this.contentList.splice(this.contentList.indexOf(content), 1);\n this.emit(\"unloaded\", content.id);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} was unloaded.`);\n return true;\n }\n\n reloadContent(idOrFileOrContent, shouldToast = true) {\n const content = typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n const didUnload = this.unloadContent(content, shouldToast, true);\n if (!didUnload) return didUnload;\n return this.loadContent(content.filename, shouldToast);\n }\n\n isLoaded(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return true;\n }\n\n isEnabled(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return this.state[content.id];\n }\n\n enableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (this.state[content.id]) return;\n this.state[content.id] = true;\n this.startContent(content);\n this.saveState();\n }\n\n disableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (!this.state[content.id]) return;\n this.state[content.id] = false;\n this.stopContent(content);\n this.saveState();\n }\n\n toggleContent(id) {\n if (this.state[id]) this.disableContent(id);else this.enableContent(id);\n }\n\n loadNewContent() {\n const files = fs.readdirSync(this.contentFolder);\n const removed = this.contentList.filter(t => !files.includes(t.filename)).map(c => c.id);\n const added = files.filter(f => !this.contentList.find(t => t.filename == f) && f.endsWith(this.extension) && fs.statSync(path.resolve(this.contentFolder, f)).isFile());\n return {\n added,\n removed\n };\n }\n\n updateList() {\n const results = this.loadNewContent();\n\n for (const filename of results.added) this.loadContent(filename);\n\n for (const name of results.removed) this.unloadContent(name);\n }\n\n loadAllContent() {\n this.loadState();\n const errors = [];\n const files = fs.readdirSync(this.contentFolder);\n\n for (const filename of files) {\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile() || !filename.endsWith(this.extension)) continue;\n const content = this.loadContent(filename, false);\n if (content instanceof _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) errors.push(content);\n }\n\n this.saveState();\n if (_settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(this.collection, this.category, this.id)) this.watchContent();\n return errors;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29udGVudG1hbmFnZXIuanM/OTA0MyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwiTW9kdWxlIiwiZ2xvYmFsUGF0aHMiLCJwdXNoIiwicmVzb2x2ZSIsInJlbW90ZSIsImFwcCIsImdldEFwcFBhdGgiLCJzcGxpdFJlZ2V4IiwiZXNjYXBlZEF0UmVnZXgiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicHJlZml4IiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJlbWl0IiwiZXZlbnQiLCJhcmdzIiwiRXZlbnRzIiwiY29uc3RydWN0b3IiLCJ0aW1lQ2FjaGUiLCJjb250ZW50TGlzdCIsInN0YXRlIiwib3JpZ2luYWxSZXF1aXJlIiwiX2V4dGVuc2lvbnMiLCJnZXRDb250ZW50UmVxdWlyZSIsIlNldHRpbmdzIiwib24iLCJlbmFibGVkIiwid2F0Y2hDb250ZW50IiwidW53YXRjaENvbnRlbnQiLCJpbml0aWFsaXplQ29udGVudCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJjb250ZW50Iiwic3RhcnRDb250ZW50Iiwic3RvcENvbnRlbnQiLCJsb2FkU3RhdGUiLCJzYXZlZCIsIkRhdGFTdG9yZSIsImdldERhdGEiLCJPYmplY3QiLCJhc3NpZ24iLCJzYXZlU3RhdGUiLCJzZXREYXRhIiwid2F0Y2hlciIsIlV0aWxpdGllcyIsImVyciIsImxvZyIsIndhdGNoIiwicGVyc2lzdGVudCIsImV2ZW50VHlwZSIsImZpbGVuYW1lIiwiZW5kc1dpdGgiLCJQcm9taXNlIiwiciIsInNldFRpbWVvdXQiLCJzdGF0U3luYyIsImNvZGUiLCJ1bmxvYWRDb250ZW50IiwiaXNGaWxlIiwic3RhdHMiLCJtdGltZSIsImdldFRpbWUiLCJsb2FkQ29udGVudCIsInJlbG9hZENvbnRlbnQiLCJjbG9zZSIsImV4dHJhY3RNZXRhIiwiZmlyc3RMaW5lIiwic3BsaXQiLCJoYXNPbGRNZXRhIiwiaW5jbHVkZXMiLCJwYXJzZU9sZE1ldGEiLCJoYXNOZXdNZXRhIiwicGFyc2VOZXdNZXRhIiwiTWV0YUVycm9yIiwibWV0YSIsIm1ldGFEYXRhIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJ0ZXN0SlNPTiIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsImJsb2NrIiwib3V0IiwiZmllbGQiLCJhY2N1bSIsImxpbmUiLCJsZW5ndGgiLCJjaGFyQXQiLCJsIiwiaW5kZXhPZiIsInN1YnN0ciIsInJlcGxhY2UiLCJ0cmltIiwic2VsZiIsInBvc3NpYmxlUGF0aCIsImJhc2VuYW1lIiwiZXhpc3RzU3luYyIsInJlYWxwYXRoU3luYyIsIlJlZmxlY3QiLCJhcHBseSIsImFyZ3VtZW50cyIsInJlYWRGaWxlU3luYyIsInN0cmlwQk9NIiwiX2NvbXBpbGUiLCJzaG91bGRUb2FzdCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiZXJyb3IiLCJDb250ZW50RXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJmaW5kIiwiYyIsIlRvYXN0cyIsInN1Y2Nlc3MiLCJ2ZXJzaW9uIiwiaWRPckZpbGVPckNvbnRlbnQiLCJpc1JlbG9hZCIsImRpc2FibGVDb250ZW50IiwiY2FjaGUiLCJzcGxpY2UiLCJkaWRVbmxvYWQiLCJpc0xvYWRlZCIsImlkT3JGaWxlIiwiaXNFbmFibGVkIiwiZW5hYmxlQ29udGVudCIsImlkT3JDb250ZW50IiwicCIsInRvZ2dsZUNvbnRlbnQiLCJsb2FkTmV3Q29udGVudCIsImZpbGVzIiwicmVhZGRpclN5bmMiLCJyZW1vdmVkIiwiZmlsdGVyIiwidCIsIm1hcCIsImFkZGVkIiwiZiIsInVwZGF0ZUxpc3QiLCJyZXN1bHRzIiwibG9hZEFsbENvbnRlbnQiLCJlcnJvcnMiLCJnZXQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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SUFBSSxDQUFDTSxPQUFMLENBQWEsS0FBS1UsYUFBbEIsRUFBaUMwQyxRQUFqQyxDQUFaLEVBQXdEUSxNQUF4RCxFQUFELElBQXFFLENBQUNSLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQixLQUFLNUMsU0FBdkIsQ0FBMUUsRUFBNkc7QUFDN0csWUFBTXlCLE9BQU8sR0FBRyxLQUFLOEIsV0FBTCxDQUFpQlosUUFBakIsRUFBMkIsS0FBM0IsQ0FBaEI7QUFDQSxVQUFJbEIsT0FBTyxZQUFZNEUsNkRBQXZCLEVBQXFDaUMsTUFBTSxDQUFDaEosSUFBUCxDQUFZbUMsT0FBWjtBQUN4Qzs7QUFFRCxTQUFLUyxTQUFMO0FBQ0EsUUFBSWpCLHdEQUFRLENBQUNzSCxHQUFULENBQWEsS0FBS3BJLFVBQWxCLEVBQThCLEtBQUtDLFFBQW5DLEVBQTZDLEtBQUtDLEVBQWxELENBQUosRUFBMkQsS0FBS2UsWUFBTDtBQUMzRCxXQUFPa0gsTUFBUDtBQUNIOztBQXBPK0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9jb250ZW50bWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBDb250ZW50RXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvY29udGVudGVycm9yXCI7XHJcbmltcG9ydCBNZXRhRXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvbWV0YWVycm9yXCI7XHJcbmltcG9ydCB7VG9hc3RzfSBmcm9tIFwidWlcIjtcclxuXHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcclxuY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmNvbnN0IE1vZHVsZSA9IHJlcXVpcmUoXCJtb2R1bGVcIikuTW9kdWxlO1xyXG5Nb2R1bGUuZ2xvYmFsUGF0aHMucHVzaChwYXRoLnJlc29sdmUocmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHAuZ2V0QXBwUGF0aCgpLCBcIm5vZGVfbW9kdWxlc1wiKSk7XHJcblxyXG5jb25zdCBzcGxpdFJlZ2V4ID0gL1teXFxTXFxyXFxuXSo/XFxuW15cXFNcXHJcXG5dKj9cXCpbXlxcU1xcclxcbl0/LztcclxuY29uc3QgZXNjYXBlZEF0UmVnZXggPSAvXlxcXFxALztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRNYW5hZ2VyIHtcclxuXHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJcIjt9XHJcbiAgICBnZXQgbW9kdWxlRXh0ZW5zaW9uKCkge3JldHVybiBcIlwiO31cclxuICAgIGdldCBleHRlbnNpb24oKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IGNvbnRlbnRGb2xkZXIoKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IHByZWZpeCgpIHtyZXR1cm4gXCJjb250ZW50XCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiY29udGVudFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJhdXRvUmVsb2FkXCI7fVxyXG4gICAgZW1pdChldmVudCwgLi4uYXJncykge3JldHVybiBFdmVudHMuZW1pdChgJHt0aGlzLnByZWZpeH0tJHtldmVudH1gLCAuLi5hcmdzKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy50aW1lQ2FjaGUgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxSZXF1aXJlID0gTW9kdWxlLl9leHRlbnNpb25zW3RoaXMubW9kdWxlRXh0ZW5zaW9uXTtcclxuICAgICAgICBNb2R1bGUuX2V4dGVuc2lvbnNbdGhpcy5tb2R1bGVFeHRlbnNpb25dID0gdGhpcy5nZXRDb250ZW50UmVxdWlyZSgpO1xyXG4gICAgICAgIFNldHRpbmdzLm9uKHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgdGhpcy5pZCwgKGVuYWJsZWQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy51bndhdGNoQ29udGVudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJsb2FkIHRoaXMgYW5kIG1vZGlmeSB0aGUgY29udGVudCBvYmplY3QgYXMgbmVlZGVkIHRvIGZ1bGx5IGxvYWQgaXRcclxuICAgIGluaXRpYWxpemVDb250ZW50KCkge3JldHVybjt9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcmxvYWQgdGhpcyBhbmQgbW9kaWZ5IHRoZSBjb250ZW50IGFzIG5lZWRlZCB0byByZXF1aXJlKCkgdGhlIGZpbGVcclxuICAgIGdldENvbnRlbnRNb2RpZmljYXRpb24obW9kdWxlLCBjb250ZW50KSB7cmV0dXJuIGNvbnRlbnQ7fVxyXG5cclxuICAgIHN0YXJ0Q29udGVudCgpIHtyZXR1cm47fVxyXG4gICAgc3RvcENvbnRlbnQoKSB7cmV0dXJuO31cclxuXHJcbiAgICBsb2FkU3RhdGUoKSB7XHJcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBEYXRhU3RvcmUuZ2V0RGF0YShgJHt0aGlzLnByZWZpeH1zYCk7XHJcbiAgICAgICAgaWYgKCFzYXZlZCkgcmV0dXJuO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZSwgc2F2ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTdGF0ZSgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShgJHt0aGlzLnByZWZpeH1zYCwgdGhpcy5zdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2F0Y2hDb250ZW50KCkge1xyXG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIpIHJldHVybiBVdGlsaXRpZXMuZXJyKHRoaXMubmFtZSwgXCJBbHJlYWR5IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIFV0aWxpdGllcy5sb2codGhpcy5uYW1lLCBcIlN0YXJ0aW5nIHRvIHdhdGNoIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlciA9IGZzLndhdGNoKHRoaXMuY29udGVudEZvbGRlciwge3BlcnNpc3RlbnQ6IGZhbHNlfSwgYXN5bmMgKGV2ZW50VHlwZSwgZmlsZW5hbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFldmVudFR5cGUgfHwgIWZpbGVuYW1lIHx8ICFmaWxlbmFtZS5lbmRzV2l0aCh0aGlzLmV4dGVuc2lvbikpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTt9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gXCJFTk9FTlRcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5sb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpLmlzRmlsZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTtcclxuICAgICAgICAgICAgaWYgKCFzdGF0cyB8fCAhc3RhdHMubXRpbWUgfHwgIXN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKHN0YXRzLm10aW1lLmdldFRpbWUoKSkgIT09IFwibnVtYmVyXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXSA9PSBzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy50aW1lQ2FjaGVbZmlsZW5hbWVdID0gc3RhdHMubXRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwicmVuYW1lXCIpIHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIHRydWUpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwiY2hhbmdlXCIpIHRoaXMucmVsb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdW53YXRjaENvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLndhdGNoZXIpIHJldHVybiBVdGlsaXRpZXMuZXJyKHRoaXMubmFtZSwgXCJXYXMgbm90IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLndhdGNoZXI7XHJcbiAgICAgICAgVXRpbGl0aWVzLmxvZyh0aGlzLm5hbWUsIFwiTm8gbG9uZ2VyIHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dHJhY3RNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBmaXJzdExpbmUgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGhhc09sZE1ldGEgPSBmaXJzdExpbmUuaW5jbHVkZXMoXCIvL01FVEFcIik7XHJcbiAgICAgICAgaWYgKGhhc09sZE1ldGEpIHJldHVybiB0aGlzLnBhcnNlT2xkTWV0YShjb250ZW50KTtcclxuICAgICAgICBjb25zdCBoYXNOZXdNZXRhID0gZmlyc3RMaW5lLmluY2x1ZGVzKFwiLyoqXCIpO1xyXG4gICAgICAgIGlmIChoYXNOZXdNZXRhKSByZXR1cm4gdGhpcy5wYXJzZU5ld01ldGEoY29udGVudCk7XHJcbiAgICAgICAgdGhyb3cgbmV3IE1ldGFFcnJvcihcIk1FVEEgd2FzIG5vdCBmb3VuZC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VPbGRNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBtZXRhID0gY29udGVudC5zcGxpdChcIlxcblwiKVswXTtcclxuICAgICAgICBjb25zdCBtZXRhRGF0YSA9IG1ldGEuc3Vic3RyaW5nKG1ldGEubGFzdEluZGV4T2YoXCIvL01FVEFcIikgKyA2LCBtZXRhLmxhc3RJbmRleE9mKFwiKi8vXCIpKTtcclxuICAgICAgICBpZiAoIVV0aWxpdGllcy50ZXN0SlNPTihtZXRhRGF0YSkpIHRocm93IG5ldyBNZXRhRXJyb3IoXCJNRVRBIGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1ldGFEYXRhKTtcclxuICAgICAgICBpZiAoIXBhcnNlZC5uYW1lKSB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSBtaXNzaW5nIG5hbWUgZGF0YS5cIik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZU5ld01ldGEoY29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrID0gY29udGVudC5zcGxpdChcIi8qKlwiLCAyKVsxXS5zcGxpdChcIiovXCIsIDEpWzBdO1xyXG4gICAgICAgIGNvbnN0IG91dCA9IHt9O1xyXG4gICAgICAgIGxldCBmaWVsZCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IGFjY3VtID0gXCJcIjtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgYmxvY2suc3BsaXQoc3BsaXRSZWdleCkpIHtcclxuICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09PSBcIkBcIiAmJiBsaW5lLmNoYXJBdCgxKSAhPT0gXCIgXCIpIHtcclxuICAgICAgICAgICAgICAgIG91dFtmaWVsZF0gPSBhY2N1bTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBsaW5lLmluZGV4T2YoXCIgXCIpO1xyXG4gICAgICAgICAgICAgICAgZmllbGQgPSBsaW5lLnN1YnN0cigxLCBsIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBhY2N1bSA9IGxpbmUuc3Vic3RyKGwgKyAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFjY3VtICs9IFwiIFwiICsgbGluZS5yZXBsYWNlKFwiXFxcXG5cIiwgXCJcXG5cIikucmVwbGFjZShlc2NhcGVkQXRSZWdleCwgXCJAXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dFtmaWVsZF0gPSBhY2N1bS50cmltKCk7XHJcbiAgICAgICAgZGVsZXRlIG91dFtcIlwiXTtcclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvbnRlbnRSZXF1aXJlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vIGNvbnN0IGJhc2VGb2xkZXIgPSB0aGlzLmNvbnRlbnRGb2xkZXI7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxSZXF1aXJlID0gdGhpcy5vcmlnaW5hbFJlcXVpcmU7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZHVsZSwgZmlsZW5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgcG9zc2libGVQYXRoID0gcGF0aC5yZXNvbHZlKHNlbGYuY29udGVudEZvbGRlciwgcGF0aC5iYXNlbmFtZShmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocG9zc2libGVQYXRoKSB8fCBmaWxlbmFtZSAhPT0gZnMucmVhbHBhdGhTeW5jKHBvc3NpYmxlUGF0aCkpIHJldHVybiBSZWZsZWN0LmFwcGx5KG9yaWdpbmFsUmVxdWlyZSwgdGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIFwidXRmOFwiKTtcclxuICAgICAgICAgICAgY29udGVudCA9IFV0aWxpdGllcy5zdHJpcEJPTShjb250ZW50KTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNlbGYuZXh0cmFjdE1ldGEoY29udGVudCk7XHJcbiAgICAgICAgICAgIG1ldGEuaWQgPSBtZXRhLm5hbWU7XHJcbiAgICAgICAgICAgIG1ldGEuZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgY29udGVudCA9IHNlbGYuZ2V0Q29udGVudE1vZGlmaWNhdGlvbihtb2R1bGUsIGNvbnRlbnQsIG1ldGEpO1xyXG4gICAgICAgICAgICBtb2R1bGUuX2NvbXBpbGUoY29udGVudCwgZmlsZW5hbWUpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgdXNlIHRoZSByZXR1cm4gKGlmIG5vdCBDb250ZW50RXJyb3IpIGFuZCBwdXNoIHRvIHRoaXMuY29udGVudExpc3RcclxuICAgIGxvYWRDb250ZW50KGZpbGVuYW1lLCBzaG91bGRUb2FzdCA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZihmaWxlbmFtZSkgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcclxuICAgICAgICB0cnkge19fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGZpbGVuYW1lKSk7fVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge3JldHVybiBuZXcgQ29udGVudEVycm9yKGZpbGVuYW1lLCBmaWxlbmFtZSwgXCJDb3VsZCBub3QgYmUgY29tcGlsZWQuXCIsIHttZXNzYWdlOiBlcnJvci5tZXNzYWdlLCBzdGFjazogZXJyb3Iuc3RhY2t9KTt9XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGZpbGVuYW1lKSk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGVudExpc3QuZmluZChjID0+IGMuaWQgPT0gY29udGVudC5pZCkpIHJldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgZmlsZW5hbWUsIGBUaGVyZSBpcyBhbHJlYWR5IGEgcGx1Z2luIHdpdGggbmFtZSAke2NvbnRlbnQubmFtZX1gKTtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuaW5pdGlhbGl6ZUNvbnRlbnQoY29udGVudCk7XHJcbiAgICAgICAgaWYgKGVycm9yKSByZXR1cm4gZXJyb3I7XHJcbiAgICAgICAgdGhpcy5jb250ZW50TGlzdC5wdXNoKGNvbnRlbnQpO1xyXG4gICAgICAgIGlmIChzaG91bGRUb2FzdCkgVG9hc3RzLnN1Y2Nlc3MoYCR7Y29udGVudC5uYW1lfSB2JHtjb250ZW50LnZlcnNpb259IHdhcyBsb2FkZWQuYCk7XHJcbiAgICAgICAgdGhpcy5lbWl0KFwibG9hZGVkXCIsIGNvbnRlbnQuaWQpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29udGVudC5pZF0pIHJldHVybiB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHVubG9hZENvbnRlbnQoaWRPckZpbGVPckNvbnRlbnQsIHNob3VsZFRvYXN0ID0gdHJ1ZSwgaXNSZWxvYWQgPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0eXBlb2YoaWRPckZpbGVPckNvbnRlbnQpID09IFwic3RyaW5nXCIgPyB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JDb250ZW50IHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGVPckNvbnRlbnQpIDogaWRPckZpbGVPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVbY29udGVudC5pZF0pIGlzUmVsb2FkID8gdGhpcy5zdG9wQ29udGVudChjb250ZW50KSA6IHRoaXMuZGlzYWJsZUNvbnRlbnQoY29udGVudCk7XHJcbiAgICAgICAgZGVsZXRlIF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fLmNhY2hlW19fbm9uX3dlYnBhY2tfcmVxdWlyZV9fLnJlc29sdmUocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgY29udGVudC5maWxlbmFtZSkpXTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMaXN0LnNwbGljZSh0aGlzLmNvbnRlbnRMaXN0LmluZGV4T2YoY29udGVudCksIDEpO1xyXG4gICAgICAgIHRoaXMuZW1pdChcInVubG9hZGVkXCIsIGNvbnRlbnQuaWQpO1xyXG4gICAgICAgIGlmIChzaG91bGRUb2FzdCkgVG9hc3RzLnN1Y2Nlc3MoYCR7Y29udGVudC5uYW1lfSB3YXMgdW5sb2FkZWQuYCk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkQ29udGVudChpZE9yRmlsZU9yQ29udGVudCwgc2hvdWxkVG9hc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yRmlsZU9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChjID0+IGMuaWQgPT0gaWRPckZpbGVPckNvbnRlbnQgfHwgYy5maWxlbmFtZSA9PSBpZE9yRmlsZU9yQ29udGVudCkgOiBpZE9yRmlsZU9yQ29udGVudDtcclxuICAgICAgICBjb25zdCBkaWRVbmxvYWQgPSB0aGlzLnVubG9hZENvbnRlbnQoY29udGVudCwgc2hvdWxkVG9hc3QsIHRydWUpO1xyXG4gICAgICAgIGlmICghZGlkVW5sb2FkKSByZXR1cm4gZGlkVW5sb2FkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRDb250ZW50KGNvbnRlbnQuZmlsZW5hbWUsIHNob3VsZFRvYXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBpc0xvYWRlZChpZE9yRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlIHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGUpO1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRW5hYmxlZChpZE9yRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlIHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGUpO1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtjb250ZW50LmlkXSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29udGVudC5pZF0pIHJldHVybjtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdG9wQ29udGVudChjb250ZW50KTtcclxuICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUNvbnRlbnQoaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtpZF0pIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWQpO1xyXG4gICAgICAgIGVsc2UgdGhpcy5lbmFibGVDb250ZW50KGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV3Q29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKHRoaXMuY29udGVudEZvbGRlcik7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29udGVudExpc3QuZmlsdGVyKHQgPT4gIWZpbGVzLmluY2x1ZGVzKHQuZmlsZW5hbWUpKS5tYXAoYyA9PiBjLmlkKTtcclxuICAgICAgICBjb25zdCBhZGRlZCA9IGZpbGVzLmZpbHRlcihmID0+ICF0aGlzLmNvbnRlbnRMaXN0LmZpbmQodCA9PiB0LmZpbGVuYW1lID09IGYpICYmIGYuZW5kc1dpdGgodGhpcy5leHRlbnNpb24pICYmIGZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGYpKS5pc0ZpbGUoKSk7XHJcbiAgICAgICAgcmV0dXJuIHthZGRlZCwgcmVtb3ZlZH07XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGlzdCgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5sb2FkTmV3Q29udGVudCgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgcmVzdWx0cy5hZGRlZCkgdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHJlc3VsdHMucmVtb3ZlZCkgdGhpcy51bmxvYWRDb250ZW50KG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRBbGxDb250ZW50KCkge1xyXG4gICAgICAgIHRoaXMubG9hZFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gW107XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmNvbnRlbnRGb2xkZXIpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgICAgIGlmICghZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKS5pc0ZpbGUoKSB8fCAhZmlsZW5hbWUuZW5kc1dpdGgodGhpcy5leHRlbnNpb24pKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBDb250ZW50RXJyb3IpIGVycm9ycy5wdXNoKGNvbnRlbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTtcclxuICAgICAgICBpZiAoU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgdGhpcy5pZCkpIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/contentmanager.js\n"); /***/ }), @@ -455,7 +455,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uti /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst electronRemote = __webpack_require__(/*! electron */ \"electron\").remote;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PluginManager extends _contentmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"PluginManager\";\n }\n\n get moduleExtension() {\n return \".js\";\n }\n\n get extension() {\n return \".plugin.js\";\n }\n\n get contentFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\");\n }\n\n get prefix() {\n return \"plugin\";\n }\n\n constructor() {\n super();\n this.onSwitch = this.onSwitch.bind(this);\n this.observer = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n this.onMutation(mutations[i]);\n }\n });\n }\n /* Aliases */\n\n\n updatePluginList() {\n return this.updateList();\n }\n\n enablePlugin(idOrContent) {\n return this.enableContent(idOrContent);\n }\n\n disablePlugin(idOrContent) {\n return this.disableContent(idOrContent);\n }\n\n togglePlugin(id) {\n return this.toggleContent(id);\n }\n\n unloadPlugin(idOrFileOrContent) {\n return this.unloadContent(idOrFileOrContent);\n }\n\n loadPlugin(filename) {\n const error = this.loadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n reloadPlugin(filename) {\n const error = this.reloadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n loadAllPlugins() {\n const errors = this.loadAllContent();\n this.setupFunctions();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].registerPanel(\"Plugins\", {\n element: () => ui__WEBPACK_IMPORTED_MODULE_3__[\"SettingsPanel\"].getPluginsPanel(this.contentList, this.contentFolder)\n });\n return errors;\n }\n /* Overrides */\n\n\n initializeContent(content) {\n if (!content.type) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"Plugin had no exports\", {\n message: \"Plugin had no exports or no name property.\",\n stack: \"\"\n });\n\n try {\n const thePlugin = new content.type();\n content.plugin = thePlugin;\n content.name = thePlugin.getName() || content.name;\n content.author = content.author || thePlugin.getAuthor() || \"No author\";\n content.description = content.description || thePlugin.getDescription() || \"No description\";\n content.version = content.version || thePlugin.getVersion() || \"No version\";\n\n try {\n if (typeof content.plugin.load == \"function\") content.plugin.load();\n } catch (error) {\n this.state[content.id] = false;\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"load() could not be fired.\", {\n message: error.message,\n stack: error.stack\n });\n }\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"Could not be constructed.\", {\n message: error.message,\n stack: error.stack\n });\n }\n }\n\n getContentModification(module, content, meta) {\n module._compile(content, module.filename);\n\n const didExport = !_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isEmpty(module.exports);\n\n if (didExport) {\n meta.type = module.exports;\n module.exports = meta;\n return \"\";\n }\n\n content += `\\nmodule.exports = ${JSON.stringify(meta)};\\nmodule.exports.type = ${meta.exports || meta.name};`;\n return content;\n }\n\n startContent(id) {\n return this.startPlugin(id);\n }\n\n stopContent(id) {\n return this.stopPlugin(id);\n }\n\n startPlugin(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const plugin = content.plugin;\n\n try {\n plugin.start();\n this.emit(\"started\", content.id);\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].show(`${content.name} v${content.version} has started.`);\n } catch (err) {\n this.state[content.id] = false;\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].error(`${content.name} v${content.version} could not be started.`);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", content.name + \" could not be started.\", err);\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"start() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n stopPlugin(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const plugin = content.plugin;\n\n try {\n plugin.stop();\n this.emit(\"stopped\", content.id);\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].show(`${content.name} v${content.version} has stopped.`);\n } catch (err) {\n this.state[content.id] = false;\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].error(`${content.name} v${content.version} could not be stopped.`);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", content.name + \" could not be stopped.\", err);\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"stop() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n setupFunctions() {\n electronRemote.getCurrentWebContents().on(\"did-navigate-in-page\", this.onSwitch.bind(this));\n this.observer.observe(document, {\n childList: true,\n subtree: true\n });\n }\n\n onSwitch() {\n this.emit(\"page-switch\");\n\n for (let i = 0; i < this.contentList.length; i++) {\n const plugin = this.contentList[i].plugin;\n if (!this.state[this.contentList[i].id]) continue;\n\n if (typeof plugin.onSwitch === \"function\") {\n try {\n plugin.onSwitch();\n } catch (err) {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to fire onSwitch for \" + this.contentList[i].name + \".\", err);\n }\n }\n }\n }\n\n onMutation(mutation) {\n for (let i = 0; i < this.contentList.length; i++) {\n const plugin = this.contentList[i].plugin;\n if (!this.state[this.contentList[i].id]) continue;\n\n if (typeof plugin.observer === \"function\") {\n try {\n plugin.observer(mutation);\n } catch (err) {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to fire observer for \" + this.contentList[i].name + \".\", err);\n }\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGx1Z2lubWFuYWdlci5qcz9kMTczIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwiZWxlY3Ryb25SZW1vdGUiLCJyZW1vdGUiLCJQbHVnaW5NYW5hZ2VyIiwiQ29udGVudE1hbmFnZXIiLCJuYW1lIiwibW9kdWxlRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uIiwiY29udGVudEZvbGRlciIsInJlc29sdmUiLCJDb25maWciLCJkYXRhUGF0aCIsInByZWZpeCIsImNvbnN0cnVjdG9yIiwib25Td2l0Y2giLCJiaW5kIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwiaSIsIm1sZW4iLCJsZW5ndGgiLCJvbk11dGF0aW9uIiwidXBkYXRlUGx1Z2luTGlzdCIsInVwZGF0ZUxpc3QiLCJlbmFibGVQbHVnaW4iLCJpZE9yQ29udGVudCIsImVuYWJsZUNvbnRlbnQiLCJkaXNhYmxlUGx1Z2luIiwiZGlzYWJsZUNvbnRlbnQiLCJ0b2dnbGVQbHVnaW4iLCJpZCIsInRvZ2dsZUNvbnRlbnQiLCJ1bmxvYWRQbHVnaW4iLCJpZE9yRmlsZU9yQ29udGVudCIsInVubG9hZENvbnRlbnQiLCJsb2FkUGx1Z2luIiwiZmlsZW5hbWUiLCJlcnJvciIsImxvYWRDb250ZW50IiwiTW9kYWxzIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJ0aGVtZXMiLCJyZWxvYWRQbHVnaW4iLCJyZWxvYWRDb250ZW50IiwibG9hZEFsbFBsdWdpbnMiLCJlcnJvcnMiLCJsb2FkQWxsQ29udGVudCIsInNldHVwRnVuY3Rpb25zIiwiU2V0dGluZ3MiLCJyZWdpc3RlclBhbmVsIiwiZWxlbWVudCIsIlNldHRpbmdzUmVuZGVyZXIiLCJnZXRQbHVnaW5zUGFuZWwiLCJjb250ZW50TGlzdCIsImluaXRpYWxpemVDb250ZW50IiwiY29udGVudCIsInR5cGUiLCJDb250ZW50RXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJ0aGVQbHVnaW4iLCJwbHVnaW4iLCJnZXROYW1lIiwiYXV0aG9yIiwiZ2V0QXV0aG9yIiwiZGVzY3JpcHRpb24iLCJnZXREZXNjcmlwdGlvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibG9hZCIsInN0YXRlIiwiZ2V0Q29udGVudE1vZGlmaWNhdGlvbiIsIm1vZHVsZSIsIm1ldGEiLCJfY29tcGlsZSIsImRpZEV4cG9ydCIsIlV0aWxpdGllcyIsImlzRW1wdHkiLCJleHBvcnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0Q29udGVudCIsInN0YXJ0UGx1Z2luIiwic3RvcENvbnRlbnQiLCJzdG9wUGx1Z2luIiwiZmluZCIsInAiLCJzdGFydCIsImVtaXQiLCJUb2FzdHMiLCJzaG93IiwiZXJyIiwic3RvcCIsImdldEN1cnJlbnRXZWJDb250ZW50cyIsIm9uIiwib2JzZXJ2ZSIsImRvY3VtZW50IiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsIm11dGF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1BLElBQUksR0FBR0MsbUJBQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNQyxjQUFjLEdBQUdELG1CQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkUsTUFBM0M7O0FBRWUsbUVBQUksTUFBTUMsYUFBTixTQUE0QkMsdURBQTVCLENBQTJDO0FBQzFELE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sZUFBUDtBQUF3Qjs7QUFDcEMsTUFBSUMsZUFBSixHQUFzQjtBQUFDLFdBQU8sS0FBUDtBQUFjOztBQUNyQyxNQUFJQyxTQUFKLEdBQWdCO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUN0QyxNQUFJQyxhQUFKLEdBQW9CO0FBQUMsV0FBT1QsSUFBSSxDQUFDVSxPQUFMLENBQWFDLDJDQUFNLENBQUNDLFFBQXBCLEVBQThCLFNBQTlCLENBQVA7QUFBaUQ7O0FBQ3RFLE1BQUlDLE1BQUos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LENBQUNoRCxRQUFQO0FBQW9CLFNBQTFCLENBQ0EsT0FBTzhFLEdBQVAsRUFBWTtBQUFFZiw0REFBUyxDQUFDZSxHQUFWLENBQWMsU0FBZCxFQUF5QixpQ0FBaUMsS0FBS3RDLFdBQUwsQ0FBaUJuQyxDQUFqQixFQUFvQmQsSUFBckQsR0FBNEQsR0FBckYsRUFBMEZ1RixHQUExRjtBQUFpRztBQUNsSDtBQUNKO0FBQ0o7O0FBRUR0RSxZQUFVLENBQUM4RSxRQUFELEVBQVc7QUFDakIsU0FBSyxJQUFJakYsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBRyxLQUFLbUMsV0FBTCxDQUFpQmpDLE1BQXJDLEVBQTZDRixDQUFDLEVBQTlDLEVBQWtEO0FBQzlDLFlBQU0yQyxNQUFNLEdBQUcsS0FBS1IsV0FBTCxDQUFpQm5DLENBQWpCLEVBQW9CMkMsTUFBbkM7QUFDQSxVQUFJLENBQUMsS0FBS1MsS0FBTCxDQUFXLEtBQUtqQixXQUFMLENBQWlCbkMsQ0FBakIsRUFBb0JZLEVBQS9CLENBQUwsRUFBeUM7O0FBQ3pDLFVBQUksT0FBTytCLE1BQU0sQ0FBQzlDLFFBQWQsS0FBMkIsVUFBL0IsRUFBMkM7QUFDdkMsWUFBSTtBQUFFOEMsZ0JBQU0sQ0FBQzlDLFFBQVAsQ0FBZ0JvRixRQUFoQjtBQUE0QixTQUFsQyxDQUNBLE9BQU9SLEdBQVAsRUFBWTtBQUFFZiw0REFBUyxDQUFDZSxHQUFWLENBQWMsU0FBZCxFQUF5QixpQ0FBaUMsS0FBS3RDLFdBQUwsQ0FBaUJuQyxDQUFqQixFQUFvQmQsSUFBckQsR0FBNEQsR0FBckYsRUFBMEZ1RixHQUExRjtBQUFpRztBQUNsSDtBQUNKO0FBQ0o7O0FBOUl5RCxDQUEvQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvcGx1Z2lubWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgQ29udGVudE1hbmFnZXIgZnJvbSBcIi4vY29udGVudG1hbmFnZXJcIjtcclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IHtUb2FzdHMsIE1vZGFsc30gZnJvbSBcInVpXCI7XHJcbmltcG9ydCBDb250ZW50RXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvY29udGVudGVycm9yXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IHtTZXR0aW5nc1BhbmVsIGFzIFNldHRpbmdzUmVuZGVyZXJ9IGZyb20gXCJ1aVwiO1xyXG5cclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG5jb25zdCBlbGVjdHJvblJlbW90ZSA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKS5yZW1vdGU7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgUGx1Z2luTWFuYWdlciBleHRlbmRzIENvbnRlbnRNYW5hZ2VyIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlBsdWdpbk1hbmFnZXJcIjt9XHJcbiAgICBnZXQgbW9kdWxlRXh0ZW5zaW9uKCkge3JldHVybiBcIi5qc1wiO31cclxuICAgIGdldCBleHRlbnNpb24oKSB7cmV0dXJuIFwiLnBsdWdpbi5qc1wiO31cclxuICAgIGdldCBjb250ZW50Rm9sZGVyKCkge3JldHVybiBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcInBsdWdpbnNcIik7fVxyXG4gICAgZ2V0IHByZWZpeCgpIHtyZXR1cm4gXCJwbHVnaW5cIjt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLm9uU3dpdGNoID0gdGhpcy5vblN3aXRjaC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBtbGVuID0gbXV0YXRpb25zLmxlbmd0aDsgaSA8IG1sZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbk11dGF0aW9uKG11dGF0aW9uc1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBbGlhc2VzICovXHJcbiAgICB1cGRhdGVQbHVnaW5MaXN0KCkge3JldHVybiB0aGlzLnVwZGF0ZUxpc3QoKTt9XHJcblxyXG4gICAgZW5hYmxlUGx1Z2luKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZW5hYmxlQ29udGVudChpZE9yQ29udGVudCk7fVxyXG4gICAgZGlzYWJsZVBsdWdpbihpZE9yQ29udGVudCkge3JldHVybiB0aGlzLmRpc2FibGVDb250ZW50KGlkT3JDb250ZW50KTt9XHJcbiAgICB0b2dnbGVQbHVnaW4oaWQpIHtyZXR1cm4gdGhpcy50b2dnbGVDb250ZW50KGlkKTt9XHJcblxyXG4gICAgdW5sb2FkUGx1Z2luKGlkT3JGaWxlT3JDb250ZW50KSB7cmV0dXJuIHRoaXMudW5sb2FkQ29udGVudChpZE9yRmlsZU9yQ29udGVudCk7fVxyXG5cclxuICAgIGxvYWRQbHVnaW4oZmlsZW5hbWUpIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUpO1xyXG4gICAgICAgIGlmIChlcnJvcikgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHt0aGVtZXM6IFtlcnJvcl19KTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWRQbHVnaW4oZmlsZW5hbWUpIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMucmVsb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBNb2RhbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRBbGxQbHVnaW5zKCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMubG9hZEFsbENvbnRlbnQoKTtcclxuICAgICAgICB0aGlzLnNldHVwRnVuY3Rpb25zKCk7XHJcbiAgICAgICAgU2V0dGluZ3MucmVnaXN0ZXJQYW5lbChcIlBsdWdpbnNcIiwge2VsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuZ2V0UGx1Z2luc1BhbmVsKHRoaXMuY29udGVudExpc3QsIHRoaXMuY29udGVudEZvbGRlcil9KTtcclxuICAgICAgICByZXR1cm4gZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIE92ZXJyaWRlcyAqL1xyXG4gICAgaW5pdGlhbGl6ZUNvbnRlbnQoY29udGVudCkge1xyXG4gICAgICAgIGlmICghY29udGVudC50eXBlKSByZXR1cm4gbmV3IENvbnRlbnRFcnJvcihjb250ZW50Lm5hbWUsIGNvbnRlbnQuZmlsZW5hbWUsIFwiUGx1Z2luIGhhZCBubyBleHBvcnRzXCIsIHttZXNzYWdlOiBcIlBsdWdpbiBoYWQgbm8gZXhwb3J0cyBvciBubyBuYW1lIHByb3BlcnR5LlwiLCBzdGFjazogXCJcIn0pO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRoZVBsdWdpbiA9IG5ldyBjb250ZW50LnR5cGUoKTtcclxuICAgICAgICAgICAgY29udGVudC5wbHVnaW4gPSB0aGVQbHVnaW47XHJcbiAgICAgICAgICAgIGNvbnRlbnQubmFtZSA9IHRoZVBsdWdpbi5nZXROYW1lKCkgfHwgY29udGVudC5uYW1lO1xyXG4gICAgICAgICAgICBjb250ZW50LmF1dGhvciA9IGNvbnRlbnQuYXV0aG9yIHx8IHRoZVBsdWdpbi5nZXRBdXRob3IoKSB8fCBcIk5vIGF1dGhvclwiO1xyXG4gICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uID0gY29udGVudC5kZXNjcmlwdGlvbiB8fCB0aGVQbHVnaW4uZ2V0RGVzY3JpcHRpb24oKSB8fCBcIk5vIGRlc2NyaXB0aW9uXCI7XHJcbiAgICAgICAgICAgIGNvbnRlbnQudmVyc2lvbiA9IGNvbnRlbnQudmVyc2lvbiB8fCB0aGVQbHVnaW4uZ2V0VmVyc2lvbigpIHx8IFwiTm8gdmVyc2lvblwiO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihjb250ZW50LnBsdWdpbi5sb2FkKSA9PSBcImZ1bmN0aW9uXCIpIGNvbnRlbnQucGx1Z2luLmxvYWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgY29udGVudC5maWxlbmFtZSwgXCJsb2FkKCkgY291bGQgbm90IGJlIGZpcmVkLlwiLCB7bWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7cmV0dXJuIG5ldyBDb250ZW50RXJyb3IoY29udGVudC5uYW1lLCBjb250ZW50LmZpbGVuYW1lLCBcIkNvdWxkIG5vdCBiZSBjb25zdHJ1Y3RlZC5cIiwge21lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFja30pO31cclxuICAgIH1cclxuXHJcbiAgICBnZXRDb250ZW50TW9kaWZpY2F0aW9uKG1vZHVsZSwgY29udGVudCwgbWV0YSkge1xyXG4gICAgICAgIG1vZHVsZS5fY29tcGlsZShjb250ZW50LCBtb2R1bGUuZmlsZW5hbWUpO1xyXG4gICAgICAgIGNvbnN0IGRpZEV4cG9ydCA9ICFVdGlsaXRpZXMuaXNFbXB0eShtb2R1bGUuZXhwb3J0cyk7XHJcbiAgICAgICAgaWYgKGRpZEV4cG9ydCkge1xyXG4gICAgICAgICAgICBtZXRhLnR5cGUgPSBtb2R1bGUuZXhwb3J0cztcclxuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBtZXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGVudCArPSBgXFxubW9kdWxlLmV4cG9ydHMgPSAke0pTT04uc3RyaW5naWZ5KG1ldGEpfTtcXG5tb2R1bGUuZXhwb3J0cy50eXBlID0gJHttZXRhLmV4cG9ydHMgfHwgbWV0YS5uYW1lfTtgO1xyXG4gICAgICAgIHJldHVybiBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0Q29udGVudChpZCkge3JldHVybiB0aGlzLnN0YXJ0UGx1Z2luKGlkKTt9XHJcbiAgICBzdG9wQ29udGVudChpZCkge3JldHVybiB0aGlzLnN0b3BQbHVnaW4oaWQpO31cclxuXHJcbiAgICBzdGFydFBsdWdpbihpZE9yQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0eXBlb2YoaWRPckNvbnRlbnQpID09IFwic3RyaW5nXCIgPyB0aGlzLmNvbnRlbnRMaXN0LmZpbmQocCA9PiBwLmlkID09IGlkT3JDb250ZW50KSA6IGlkT3JDb250ZW50O1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IGNvbnRlbnQucGx1Z2luO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHBsdWdpbi5zdGFydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXQoXCJzdGFydGVkXCIsIGNvbnRlbnQuaWQpO1xyXG4gICAgICAgICAgICBUb2FzdHMuc2hvdyhgJHtjb250ZW50Lm5hbWV9IHYke2NvbnRlbnQudmVyc2lvbn0gaGFzIHN0YXJ0ZWQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZVtjb250ZW50LmlkXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBUb2FzdHMuZXJyb3IoYCR7Y29udGVudC5uYW1lfSB2JHtjb250ZW50LnZlcnNpb259IGNvdWxkIG5vdCBiZSBzdGFydGVkLmApO1xyXG4gICAgICAgICAgICBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBjb250ZW50Lm5hbWUgKyBcIiBjb3VsZCBub3QgYmUgc3RhcnRlZC5cIiwgZXJyKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb250ZW50RXJyb3IoY29udGVudC5uYW1lLCBjb250ZW50LmZpbGVuYW1lLCBcInN0YXJ0KCkgY291bGQgbm90IGJlIGZpcmVkLlwiLCB7bWVzc2FnZTogZXJyLm1lc3NhZ2UsIHN0YWNrOiBlcnIuc3RhY2t9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFBsdWdpbihpZE9yQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0eXBlb2YoaWRPckNvbnRlbnQpID09IFwic3RyaW5nXCIgPyB0aGlzLmNvbnRlbnRMaXN0LmZpbmQocCA9PiBwLmlkID09IGlkT3JDb250ZW50KSA6IGlkT3JDb250ZW50O1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IGNvbnRlbnQucGx1Z2luO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHBsdWdpbi5zdG9wKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdChcInN0b3BwZWRcIiwgY29udGVudC5pZCk7XHJcbiAgICAgICAgICAgIFRvYXN0cy5zaG93KGAke2NvbnRlbnQubmFtZX0gdiR7Y29udGVudC52ZXJzaW9ufSBoYXMgc3RvcHBlZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgICAgIFRvYXN0cy5lcnJvcihgJHtjb250ZW50Lm5hbWV9IHYke2NvbnRlbnQudmVyc2lvbn0gY291bGQgbm90IGJlIHN0b3BwZWQuYCk7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5lcnIoXCJQbHVnaW5zXCIsIGNvbnRlbnQubmFtZSArIFwiIGNvdWxkIG5vdCBiZSBzdG9wcGVkLlwiLCBlcnIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbnRlbnRFcnJvcihjb250ZW50Lm5hbWUsIGNvbnRlbnQuZmlsZW5hbWUsIFwic3RvcCgpIGNvdWxkIG5vdCBiZSBmaXJlZC5cIiwge21lc3NhZ2U6IGVyci5tZXNzYWdlLCBzdGFjazogZXJyLnN0YWNrfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRnVuY3Rpb25zKCkge1xyXG4gICAgICAgIGVsZWN0cm9uUmVtb3RlLmdldEN1cnJlbnRXZWJDb250ZW50cygpLm9uKFwiZGlkLW5hdmlnYXRlLWluLXBhZ2VcIiwgdGhpcy5vblN3aXRjaC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQsIHtcclxuICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICBzdWJ0cmVlOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Td2l0Y2goKSB7XHJcbiAgICAgICAgdGhpcy5lbWl0KFwicGFnZS1zd2l0Y2hcIik7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbnRlbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMuY29udGVudExpc3RbaV0ucGx1Z2luO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbdGhpcy5jb250ZW50TGlzdFtpXS5pZF0pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKHBsdWdpbi5vblN3aXRjaCkgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgcGx1Z2luLm9uU3dpdGNoKCk7IH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHsgVXRpbGl0aWVzLmVycihcIlBsdWdpbnNcIiwgXCJVbmFibGUgdG8gZmlyZSBvblN3aXRjaCBmb3IgXCIgKyB0aGlzLmNvbnRlbnRMaXN0W2ldLm5hbWUgKyBcIi5cIiwgZXJyKTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTXV0YXRpb24obXV0YXRpb24pIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29udGVudExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcy5jb250ZW50TGlzdFtpXS5wbHVnaW47XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZVt0aGlzLmNvbnRlbnRMaXN0W2ldLmlkXSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGx1Z2luLm9ic2VydmVyID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7IHBsdWdpbi5vYnNlcnZlcihtdXRhdGlvbik7IH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHsgVXRpbGl0aWVzLmVycihcIlBsdWdpbnNcIiwgXCJVbmFibGUgdG8gZmlyZSBvYnNlcnZlciBmb3IgXCIgKyB0aGlzLmNvbnRlbnRMaXN0W2ldLm5hbWUgKyBcIi5cIiwgZXJyKTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/pluginmanager.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst electronRemote = __webpack_require__(/*! electron */ \"electron\").remote;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PluginManager extends _contentmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"PluginManager\";\n }\n\n get moduleExtension() {\n return \".js\";\n }\n\n get extension() {\n return \".plugin.js\";\n }\n\n get contentFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\");\n }\n\n get prefix() {\n return \"plugin\";\n }\n\n constructor() {\n super();\n this.onSwitch = this.onSwitch.bind(this);\n this.observer = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n this.onMutation(mutations[i]);\n }\n });\n }\n /* Aliases */\n\n\n updatePluginList() {\n return this.updateList();\n }\n\n enablePlugin(idOrContent) {\n return this.enableContent(idOrContent);\n }\n\n disablePlugin(idOrContent) {\n return this.disableContent(idOrContent);\n }\n\n togglePlugin(id) {\n return this.toggleContent(id);\n }\n\n unloadPlugin(idOrFileOrContent) {\n return this.unloadContent(idOrFileOrContent);\n }\n\n loadPlugin(filename) {\n const error = this.loadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n reloadPlugin(idOrFileOrContent) {\n const error = this.reloadContent(idOrFileOrContent);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n plugins: [error]\n });\n return typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n }\n\n loadAllPlugins() {\n const errors = this.loadAllContent();\n this.setupFunctions();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].registerPanel(\"Plugins\", {\n element: () => ui__WEBPACK_IMPORTED_MODULE_3__[\"SettingsPanel\"].getContentPanel(\"Plugins\", this.contentList, this.state, {\n folder: this.contentFolder,\n onChange: this.togglePlugin.bind(this),\n reload: this.reloadPlugin.bind(this),\n refreshList: this.updatePluginList.bind(this)\n })\n });\n return errors;\n }\n /* Overrides */\n\n\n initializeContent(content) {\n if (!content.type) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"Plugin had no exports\", {\n message: \"Plugin had no exports or no name property.\",\n stack: \"\"\n });\n\n try {\n const thePlugin = new content.type();\n content.plugin = thePlugin;\n content.name = thePlugin.getName() || content.name;\n content.author = thePlugin.getAuthor() || content.author || \"No author\";\n content.description = thePlugin.getDescription() || content.description || \"No description\";\n content.version = thePlugin.getVersion() || content.version || \"No version\";\n\n try {\n if (typeof content.plugin.load == \"function\") content.plugin.load();\n } catch (error) {\n this.state[content.id] = false;\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"load() could not be fired.\", {\n message: error.message,\n stack: error.stack\n });\n }\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"Could not be constructed.\", {\n message: error.message,\n stack: error.stack\n });\n }\n }\n\n getContentModification(module, content, meta) {\n module._compile(content, module.filename);\n\n const didExport = !_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isEmpty(module.exports);\n\n if (didExport) {\n meta.type = module.exports;\n module.exports = meta;\n return \"\";\n }\n\n content += `\\nmodule.exports = ${JSON.stringify(meta)};\\nmodule.exports.type = ${meta.exports || meta.name};`;\n return content;\n }\n\n startContent(id) {\n return this.startPlugin(id);\n }\n\n stopContent(id) {\n return this.stopPlugin(id);\n }\n\n startPlugin(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const plugin = content.plugin;\n\n try {\n plugin.start();\n this.emit(\"started\", content.id);\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].show(`${content.name} v${content.version} has started.`);\n } catch (err) {\n this.state[content.id] = false;\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].error(`${content.name} v${content.version} could not be started.`);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", content.name + \" could not be started.\", err);\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"start() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n stopPlugin(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const plugin = content.plugin;\n\n try {\n plugin.stop();\n this.emit(\"stopped\", content.id);\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].show(`${content.name} v${content.version} has stopped.`);\n } catch (err) {\n this.state[content.id] = false;\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].error(`${content.name} v${content.version} could not be stopped.`);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", content.name + \" could not be stopped.\", err);\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"stop() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n setupFunctions() {\n electronRemote.getCurrentWebContents().on(\"did-navigate-in-page\", this.onSwitch.bind(this));\n this.observer.observe(document, {\n childList: true,\n subtree: true\n });\n }\n\n onSwitch() {\n this.emit(\"page-switch\");\n\n for (let i = 0; i < this.contentList.length; i++) {\n const plugin = this.contentList[i].plugin;\n if (!this.state[this.contentList[i].id]) continue;\n\n if (typeof plugin.onSwitch === \"function\") {\n try {\n plugin.onSwitch();\n } catch (err) {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to fire onSwitch for \" + this.contentList[i].name + \".\", err);\n }\n }\n }\n }\n\n onMutation(mutation) {\n for (let i = 0; i < this.contentList.length; i++) {\n const plugin = this.contentList[i].plugin;\n if (!this.state[this.contentList[i].id]) continue;\n\n if (typeof plugin.observer === \"function\") {\n try {\n plugin.observer(mutation);\n } catch (err) {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to fire observer for \" + this.contentList[i].name + \".\", err);\n }\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGx1Z2lubWFuYWdlci5qcz9kMTczIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwiZWxlY3Ryb25SZW1vdGUiLCJyZW1vdGUiLCJQbHVnaW5NYW5hZ2VyIiwiQ29udGVudE1hbmFnZXIiLCJuYW1lIiwibW9kdWxlRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uIiwiY29udGVudEZvbGRlciIsInJlc29sdmUiLCJDb25maWciLCJkYXRhUGF0aCIsInByZWZpeCIsImNvbnN0cnVjdG9yIiwib25Td2l0Y2giLCJiaW5kIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwiaSIsIm1sZW4iLCJsZW5ndGgiLCJvbk11dGF0aW9uIiwidXBkYXRlUGx1Z2luTGlzdCIsInVwZGF0ZUxpc3QiLCJlbmFibGVQbHVnaW4iLCJpZE9yQ29udGVudCIsImVuYWJsZUNvbnRlbnQiLCJkaXNhYmxlUGx1Z2luIiwiZGlzYWJsZUNvbnRlbnQiLCJ0b2dnbGVQbHVnaW4iLCJpZCIsInRvZ2dsZUNvbnRlbnQiLCJ1bmxvYWRQbHVnaW4iLCJpZE9yRmlsZU9yQ29udGVudCIsInVubG9hZENvbnRlbnQiLCJsb2FkUGx1Z2luIiwiZmlsZW5hbWUiLCJlcnJvciIsImxvYWRDb250ZW50IiwiTW9kYWxzIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJ0aGVtZXMiLCJyZWxvYWRQbHVnaW4iLCJyZWxvYWRDb250ZW50IiwicGx1Z2lucyIsImNvbnRlbnRMaXN0IiwiZmluZCIsImMiLCJsb2FkQWxsUGx1Z2lucyIsImVycm9ycyIsImxvYWRBbGxDb250ZW50Iiwic2V0dXBGdW5jdGlvbnMiLCJTZXR0aW5ncyIsInJlZ2lzdGVyUGFuZWwiLCJlbGVtZW50IiwiU2V0dGluZ3NSZW5kZXJlciIsImdldENvbnRlbnRQYW5lbCIsInN0YXRlIiwiZm9sZGVyIiwib25DaGFuZ2UiLCJyZWxvYWQiLCJyZWZyZXNoTGlzdCIsImluaXRpYWxpemVDb250ZW50IiwiY29udGVudCIsInR5cGUiLCJDb250ZW50RXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJ0aGVQbHVnaW4iLCJwbHVnaW4iLCJnZXROYW1lIiwiYXV0aG9yIiwiZ2V0QXV0aG9yIiwiZGVzY3JpcHRpb24iLCJnZXREZXNjcmlwdGlvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibG9hZCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJtZXRhIiwiX2NvbXBpbGUiLCJkaWRFeHBvcnQiLCJVdGlsaXRpZXMiLCJpc0VtcHR5IiwiZXhwb3J0cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydENvbnRlbnQiLCJzdGFydFBsdWdpbiIsInN0b3BDb250ZW50Iiwic3RvcFBsdWdpbiIsInAiLCJzdGFydCIsImVtaXQiLCJUb2FzdHMiLCJzaG93IiwiZXJyIiwic3RvcCIsImdldEN1cnJlbnRXZWJDb250ZW50cyIsIm9uIiwib2JzZXJ2ZSIsImRvY3VtZW50IiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsIm11dGF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1BLElBQUksR0FBR0MsbUJBQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNQyxjQUFjLEdBQUdELG1CQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkUsTUFBM0M7O0FBRWUsbUVBQUksTUFBTUMsYUFBTixTQUE0QkMsdURBQTVCLENBQTJDO0FBQzFELE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sZUFBUDtBQUF3Qjs7QUFDcEMsTUFBSUMsZUFBSixHQUFzQjtBQUFDLFdBQU8sS0FBUDtBQUFjOztBQUNyQyxNQUFJQyxTQUFKLEdBQWdCO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUN0QyxNQUFJQyxhQUFKLEdBQW9CO0FBQUMsV0FBT1QsSUFBSSxDQUFDVSxPQUFMLENBQWFDLDJD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QUF5Qzs7QUFDekMsVUFBSSxPQUFPdUMsTUFBTSxDQUFDdEQsUUFBZCxLQUEyQixVQUEvQixFQUEyQztBQUN2QyxZQUFJO0FBQUVzRCxnQkFBTSxDQUFDdEQsUUFBUCxDQUFnQjBGLFFBQWhCO0FBQTRCLFNBQWxDLENBQ0EsT0FBT1IsR0FBUCxFQUFZO0FBQUVkLDREQUFTLENBQUNjLEdBQVYsQ0FBYyxTQUFkLEVBQXlCLGlDQUFpQyxLQUFLcEQsV0FBTCxDQUFpQjNCLENBQWpCLEVBQW9CZCxJQUFyRCxHQUE0RCxHQUFyRixFQUEwRjZGLEdBQTFGO0FBQWlHO0FBQ2xIO0FBQ0o7QUFDSjs7QUFwSnlELENBQS9DLEVBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9wbHVnaW5tYW5hZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50bWFuYWdlclwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge1RvYXN0cywgTW9kYWxzfSBmcm9tIFwidWlcIjtcclxuaW1wb3J0IENvbnRlbnRFcnJvciBmcm9tIFwiLi4vc3RydWN0cy9jb250ZW50ZXJyb3JcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQge1NldHRpbmdzUGFuZWwgYXMgU2V0dGluZ3NSZW5kZXJlcn0gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IGVsZWN0cm9uUmVtb3RlID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBQbHVnaW5NYW5hZ2VyIGV4dGVuZHMgQ29udGVudE1hbmFnZXIge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiUGx1Z2luTWFuYWdlclwiO31cclxuICAgIGdldCBtb2R1bGVFeHRlbnNpb24oKSB7cmV0dXJuIFwiLmpzXCI7fVxyXG4gICAgZ2V0IGV4dGVuc2lvbigpIHtyZXR1cm4gXCIucGx1Z2luLmpzXCI7fVxyXG4gICAgZ2V0IGNvbnRlbnRGb2xkZXIoKSB7cmV0dXJuIHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwicGx1Z2luc1wiKTt9XHJcbiAgICBnZXQgcHJlZml4KCkge3JldHVybiBcInBsdWdpblwiO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMub25Td2l0Y2ggPSB0aGlzLm9uU3dpdGNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIG1sZW4gPSBtdXRhdGlvbnMubGVuZ3RoOyBpIDwgbWxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uTXV0YXRpb24obXV0YXRpb25zW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEFsaWFzZXMgKi9cclxuICAgIHVwZGF0ZVBsdWdpbkxpc3QoKSB7cmV0dXJuIHRoaXMudXBkYXRlTGlzdCgpO31cclxuXHJcbiAgICBlbmFibGVQbHVnaW4oaWRPckNvbnRlbnQpIHtyZXR1cm4gdGhpcy5lbmFibGVDb250ZW50KGlkT3JDb250ZW50KTt9XHJcbiAgICBkaXNhYmxlUGx1Z2luKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpO31cclxuICAgIHRvZ2dsZVBsdWdpbihpZCkge3JldHVybiB0aGlzLnRvZ2dsZUNvbnRlbnQoaWQpO31cclxuXHJcbiAgICB1bmxvYWRQbHVnaW4oaWRPckZpbGVPckNvbnRlbnQpIHtyZXR1cm4gdGhpcy51bmxvYWRDb250ZW50KGlkT3JGaWxlT3JDb250ZW50KTt9XHJcblxyXG4gICAgbG9hZFBsdWdpbihmaWxlbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBNb2RhbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZFBsdWdpbihpZE9yRmlsZU9yQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5yZWxvYWRDb250ZW50KGlkT3JGaWxlT3JDb250ZW50KTtcclxuICAgICAgICBpZiAoZXJyb3IpIE1vZGFscy5zaG93Q29udGVudEVycm9ycyh7cGx1Z2luczogW2Vycm9yXX0pO1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YoaWRPckZpbGVPckNvbnRlbnQpID09IFwic3RyaW5nXCIgPyB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JDb250ZW50IHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGVPckNvbnRlbnQpIDogaWRPckZpbGVPckNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEFsbFBsdWdpbnMoKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5sb2FkQWxsQ29udGVudCgpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBGdW5jdGlvbnMoKTtcclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlclBhbmVsKFwiUGx1Z2luc1wiLCB7ZWxlbWVudDogKCkgPT4gU2V0dGluZ3NSZW5kZXJlci5nZXRDb250ZW50UGFuZWwoXCJQbHVnaW5zXCIsIHRoaXMuY29udGVudExpc3QsIHRoaXMuc3RhdGUsIHtcclxuICAgICAgICAgICAgZm9sZGVyOiB0aGlzLmNvbnRlbnRGb2xkZXIsXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLnRvZ2dsZVBsdWdpbi5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICByZWxvYWQ6IHRoaXMucmVsb2FkUGx1Z2luLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0OiB0aGlzLnVwZGF0ZVBsdWdpbkxpc3QuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pfSk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKiBPdmVycmlkZXMgKi9cclxuICAgIGluaXRpYWxpemVDb250ZW50KGNvbnRlbnQpIHtcclxuICAgICAgICBpZiAoIWNvbnRlbnQudHlwZSkgcmV0dXJuIG5ldyBDb250ZW50RXJyb3IoY29udGVudC5uYW1lLCBjb250ZW50LmZpbGVuYW1lLCBcIlBsdWdpbiBoYWQgbm8gZXhwb3J0c1wiLCB7bWVzc2FnZTogXCJQbHVnaW4gaGFkIG5vIGV4cG9ydHMgb3Igbm8gbmFtZSBwcm9wZXJ0eS5cIiwgc3RhY2s6IFwiXCJ9KTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB0aGVQbHVnaW4gPSBuZXcgY29udGVudC50eXBlKCk7XHJcbiAgICAgICAgICAgIGNvbnRlbnQucGx1Z2luID0gdGhlUGx1Z2luO1xyXG4gICAgICAgICAgICBjb250ZW50Lm5hbWUgPSB0aGVQbHVnaW4uZ2V0TmFtZSgpIHx8IGNvbnRlbnQubmFtZTtcclxuICAgICAgICAgICAgY29udGVudC5hdXRob3IgPSB0aGVQbHVnaW4uZ2V0QXV0aG9yKCkgfHwgY29udGVudC5hdXRob3IgfHwgXCJObyBhdXRob3JcIjtcclxuICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbiA9IHRoZVBsdWdpbi5nZXREZXNjcmlwdGlvbigpIHx8IGNvbnRlbnQuZGVzY3JpcHRpb24gfHwgXCJObyBkZXNjcmlwdGlvblwiO1xyXG4gICAgICAgICAgICBjb250ZW50LnZlcnNpb24gPSB0aGVQbHVnaW4uZ2V0VmVyc2lvbigpIHx8IGNvbnRlbnQudmVyc2lvbiB8fCBcIk5vIHZlcnNpb25cIjtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YoY29udGVudC5wbHVnaW4ubG9hZCkgPT0gXCJmdW5jdGlvblwiKSBjb250ZW50LnBsdWdpbi5sb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENvbnRlbnRFcnJvcihjb250ZW50Lm5hbWUsIGNvbnRlbnQuZmlsZW5hbWUsIFwibG9hZCgpIGNvdWxkIG5vdCBiZSBmaXJlZC5cIiwge21lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFja30pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge3JldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgY29udGVudC5maWxlbmFtZSwgXCJDb3VsZCBub3QgYmUgY29uc3RydWN0ZWQuXCIsIHttZXNzYWdlOiBlcnJvci5tZXNzYWdlLCBzdGFjazogZXJyb3Iuc3RhY2t9KTt9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29udGVudE1vZGlmaWNhdGlvbihtb2R1bGUsIGNvbnRlbnQsIG1ldGEpIHtcclxuICAgICAgICBtb2R1bGUuX2NvbXBpbGUoY29udGVudCwgbW9kdWxlLmZpbGVuYW1lKTtcclxuICAgICAgICBjb25zdCBkaWRFeHBvcnQgPSAhVXRpbGl0aWVzLmlzRW1wdHkobW9kdWxlLmV4cG9ydHMpO1xyXG4gICAgICAgIGlmIChkaWRFeHBvcnQpIHtcclxuICAgICAgICAgICAgbWV0YS50eXBlID0gbW9kdWxlLmV4cG9ydHM7XHJcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gbWV0YTtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRlbnQgKz0gYFxcbm1vZHVsZS5leHBvcnRzID0gJHtKU09OLnN0cmluZ2lmeShtZXRhKX07XFxubW9kdWxlLmV4cG9ydHMudHlwZSA9ICR7bWV0YS5leHBvcnRzIHx8IG1ldGEubmFtZX07YDtcclxuICAgICAgICByZXR1cm4gY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydENvbnRlbnQoaWQpIHtyZXR1cm4gdGhpcy5zdGFydFBsdWdpbihpZCk7fVxyXG4gICAgc3RvcENvbnRlbnQoaWQpIHtyZXR1cm4gdGhpcy5zdG9wUGx1Z2luKGlkKTt9XHJcblxyXG4gICAgc3RhcnRQbHVnaW4oaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBwbHVnaW4gPSBjb250ZW50LnBsdWdpbjtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwbHVnaW4uc3RhcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5lbWl0KFwic3RhcnRlZFwiLCBjb250ZW50LmlkKTtcclxuICAgICAgICAgICAgVG9hc3RzLnNob3coYCR7Y29udGVudC5uYW1lfSB2JHtjb250ZW50LnZlcnNpb259IGhhcyBzdGFydGVkLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSBmYWxzZTtcclxuICAgICAgICAgICAgVG9hc3RzLmVycm9yKGAke2NvbnRlbnQubmFtZX0gdiR7Y29udGVudC52ZXJzaW9ufSBjb3VsZCBub3QgYmUgc3RhcnRlZC5gKTtcclxuICAgICAgICAgICAgVXRpbGl0aWVzLmVycihcIlBsdWdpbnNcIiwgY29udGVudC5uYW1lICsgXCIgY291bGQgbm90IGJlIHN0YXJ0ZWQuXCIsIGVycik7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgY29udGVudC5maWxlbmFtZSwgXCJzdGFydCgpIGNvdWxkIG5vdCBiZSBmaXJlZC5cIiwge21lc3NhZ2U6IGVyci5tZXNzYWdlLCBzdGFjazogZXJyLnN0YWNrfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0b3BQbHVnaW4oaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBwbHVnaW4gPSBjb250ZW50LnBsdWdpbjtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwbHVnaW4uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXQoXCJzdG9wcGVkXCIsIGNvbnRlbnQuaWQpO1xyXG4gICAgICAgICAgICBUb2FzdHMuc2hvdyhgJHtjb250ZW50Lm5hbWV9IHYke2NvbnRlbnQudmVyc2lvbn0gaGFzIHN0b3BwZWQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZVtjb250ZW50LmlkXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBUb2FzdHMuZXJyb3IoYCR7Y29udGVudC5uYW1lfSB2JHtjb250ZW50LnZlcnNpb259IGNvdWxkIG5vdCBiZSBzdG9wcGVkLmApO1xyXG4gICAgICAgICAgICBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBjb250ZW50Lm5hbWUgKyBcIiBjb3VsZCBub3QgYmUgc3RvcHBlZC5cIiwgZXJyKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb250ZW50RXJyb3IoY29udGVudC5uYW1lLCBjb250ZW50LmZpbGVuYW1lLCBcInN0b3AoKSBjb3VsZCBub3QgYmUgZmlyZWQuXCIsIHttZXNzYWdlOiBlcnIubWVzc2FnZSwgc3RhY2s6IGVyci5zdGFja30pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXR1cEZ1bmN0aW9ucygpIHtcclxuICAgICAgICBlbGVjdHJvblJlbW90ZS5nZXRDdXJyZW50V2ViQ29udGVudHMoKS5vbihcImRpZC1uYXZpZ2F0ZS1pbi1wYWdlXCIsIHRoaXMub25Td2l0Y2guYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICAgICAgc3VidHJlZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3dpdGNoKCkge1xyXG4gICAgICAgIHRoaXMuZW1pdChcInBhZ2Utc3dpdGNoXCIpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb250ZW50TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwbHVnaW4gPSB0aGlzLmNvbnRlbnRMaXN0W2ldLnBsdWdpbjtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW3RoaXMuY29udGVudExpc3RbaV0uaWRdKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihwbHVnaW4ub25Td2l0Y2gpID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7IHBsdWdpbi5vblN3aXRjaCgpOyB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxpdGllcy5lcnIoXCJQbHVnaW5zXCIsIFwiVW5hYmxlIHRvIGZpcmUgb25Td2l0Y2ggZm9yIFwiICsgdGhpcy5jb250ZW50TGlzdFtpXS5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbk11dGF0aW9uKG11dGF0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbnRlbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMuY29udGVudExpc3RbaV0ucGx1Z2luO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbdGhpcy5jb250ZW50TGlzdFtpXS5pZF0pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBsdWdpbi5vYnNlcnZlciA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkgeyBwbHVnaW4ub2JzZXJ2ZXIobXV0YXRpb24pOyB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxpdGllcy5lcnIoXCJQbHVnaW5zXCIsIFwiVW5hYmxlIHRvIGZpcmUgb2JzZXJ2ZXIgZm9yIFwiICsgdGhpcy5jb250ZW50TGlzdFtpXS5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/pluginmanager.js\n"); /***/ }), @@ -467,7 +467,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsManager {\n constructor() {\n this.config = data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"];\n this.state = data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsState\"];\n this.collections = [];\n this.panels = [];\n this.registerCollection(\"settings\", \"Settings\", data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"]);\n }\n\n initialize() {\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].initialize();\n this.loadSettings();\n this.patchSections();\n }\n\n registerCollection(id, name, settings, button = null) {\n if (this.collections.find(c => c.id == id)) _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].err(\"Settings\", \"Already have a collection with id \" + id);\n this.collections.push({\n type: \"collection\",\n id: id,\n name: name,\n settings: settings,\n button: button\n });\n this.setup();\n }\n\n removeCollection(id) {\n const location = this.collections.findIndex(c => c.id == id);\n if (!location < 0) _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].err(\"Settings\", \"No collection with id \" + id);\n this.collections.splice(location, 1);\n }\n\n registerPanel(name, options) {\n const {\n element,\n onClick\n } = options;\n const section = {\n label: name,\n section: name\n };\n if (onClick) section.onClick = onClick;else section.element = element instanceof _webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"DiscordModules\"].React.Component ? () => _webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"DiscordModules\"].React.createElement(element, {}) : typeof element == \"function\" ? element : () => element;\n this.panels.push(section);\n }\n\n getPath(path, collectionId = \"\", categoryId = \"\") {\n const collection = path.length == 3 ? path[0] : collectionId;\n const category = path.length == 3 ? path[1] : path.length == 2 ? path[0] : categoryId;\n const setting = path[path.length - 1];\n return {\n collection,\n category,\n setting\n };\n }\n\n setup() {\n console.log(\"before state\");\n console.log(this.state);\n\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const categories = this.collections[c].settings;\n if (!this.state[collection.id]) this.state[collection.id] = {};\n\n for (let s = 0; s < categories.length; s++) {\n const category = categories[s];\n\n if (category.type != \"category\") {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = category.value;\n } else {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = {};\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n if (!this.state[collection.id][category.id].hasOwnProperty(setting.id)) this.state[collection.id][category.id][setting.id] = setting.value;\n\n if (setting.enableWith) {\n const path = this.getPath(setting.enableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n }\n }\n\n if (collection.enableWith) {\n const path = this.getPath(collection.enableWith.split(\".\"));\n Object.defineProperty(collection, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n\n console.log(\"after state\");\n console.log(this.state);\n }\n\n async patchSections() {\n const UserSettings = await this.getUserSettings();\n _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].monkeyPatch(UserSettings.prototype, \"generateSections\", {\n after: data => {\n let location = data.returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n data.returnValue.splice(location, 0, section);\n location++;\n };\n\n console.log(data);\n /* eslint-disable-line no-console */\n\n insert({\n section: \"DIVIDER\"\n });\n insert({\n section: \"HEADER\",\n label: \"BandagedBD\"\n });\n\n for (const collection of this.collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => ui__WEBPACK_IMPORTED_MODULE_5__[\"SettingsPanel\"].buildSettingsPanel(collection.name, collection.settings, data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsState\"][collection.id], this.onSettingChange.bind(this, collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of this.panels) insert(panel);\n\n insert({\n section: \"BBD Test\",\n label: \"Test Tab\",\n onClick: function () {\n ui__WEBPACK_IMPORTED_MODULE_5__[\"Toasts\"].success(\"This can just be a click listener!\", {\n forceShow: true\n });\n }\n });\n insert({\n section: \"CUSTOM\",\n element: () => ui__WEBPACK_IMPORTED_MODULE_5__[\"SettingsPanel\"].attribution\n });\n }\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = _webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].getInternalInstance(node).return.return.return.return.return.return.stateNode.forceUpdate();\n }\n\n getUserSettings() {\n return new Promise(resolve => {\n const cancel = _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].monkeyPatch(_webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByProps(\"getUserSettingsSections\").default.prototype, \"render\", {\n after: data => {\n resolve(data.returnValue.type);\n data.thisObject.forceUpdate();\n cancel();\n }\n });\n });\n }\n\n saveSettings() {\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setData(\"settings\", this.state);\n }\n\n loadSettings() {\n const previousState = _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getData(\"settings\");\n if (!previousState) return this.saveSettings();\n\n for (const collection in this.defaultState) {\n if (!previousState[collection]) Object.assign(previousState, {\n [collection]: this.defaultState[collection]\n });\n\n for (const category in this.defaultState[collection]) {\n if (!previousState[collection][category]) Object.assign(previousState[collection][category], {\n [category]: this.defaultState[collection][category]\n });\n\n for (const setting in this.defaultState[collection][category]) {\n if (previousState[collection][category][setting] == undefined) continue;\n this.state[collection][category][setting] = previousState[collection][category][setting];\n }\n }\n }\n\n this.saveSettings(); // in case new things were added\n }\n\n onSettingChange(collection, category, id, value) {\n const before = this.collections.length;\n this.state[collection][category][id] = value;\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"setting-updated\", collection, category, id, value);\n const after = this.collections.length;\n this.saveSettings();\n if (before != after) this.forceUpdate();\n }\n\n getSetting(collection, category, id) {\n if (arguments.length == 2) return this.collections[0].find(c => c.id == arguments[0]).settings.find(s => s.id == arguments[1]);\n return this.collections.find(c => c.id == collection).find(c => c.id == category).settings.find(s => s.id == id);\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n if (!this.state[collection] || !this.state[collection][category]) return false;\n return this.state[collection][category][id];\n }\n\n on(collection, category, identifier, callback) {\n const handler = (col, cat, id, value) => {\n if (col !== collection || cat !== category || id !== identifier) return;\n callback(value);\n };\n\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"setting-updated\", handler);\n return () => {\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].off(\"setting-updated\", handler);\n };\n }\n\n updateSettings(collection, category, id, enabled) {\n if (id == \"fork-wp-1\") {\n _pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setWindowPreference(\"transparent\", enabled);\n if (enabled) _pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setWindowPreference(\"backgroundColor\", null);else _pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setWindowPreference(\"backgroundColor\", \"#2f3136\");\n } // this.saveSettings();\n\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzP2IyZjkiXSwibmFtZXMiOlsiU2V0dGluZ3NNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJTZXR0aW5nc0NvbmZpZyIsInN0YXRlIiwiU2V0dGluZ3NTdGF0ZSIsImNvbGxlY3Rpb25zIiwicGFuZWxzIiwicmVnaXN0ZXJDb2xsZWN0aW9uIiwiaW5pdGlhbGl6ZSIsIkRhdGFTdG9yZSIsImxvYWRTZXR0aW5ncyIsInBhdGNoU2VjdGlvbnMiLCJpZCIsIm5hbWUiLCJzZXR0aW5ncyIsImJ1dHRvbiIsImZpbmQiLCJjIiwiVXRpbGl0aWVzIiwiZXJyIiwicHVzaCIsInR5cGUiLCJzZXR1cCIsInJlbW92ZUNvbGxlY3Rpb24iLCJsb2NhdGlvbiIsImZpbmRJbmRleCIsInNwbGljZSIsInJlZ2lzdGVyUGFuZWwiLCJvcHRpb25zIiwiZWxlbWVudCIsIm9uQ2xpY2siLCJzZWN0aW9uIiwibGFiZWwiLCJEaXNjb3JkTW9kdWxlcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY3JlYXRlRWxlbWVudCIsImdldFBhdGgiLCJwYXRoIiwiY29sbGVjdGlvbklkIiwiY2F0ZWdvcnlJZCIsImNvbGxlY3Rpb24iLCJsZW5ndGgiLCJjYXRlZ29yeSIsInNldHRpbmciLCJjb25zb2xlIiwibG9nIiwiY2F0ZWdvcmllcyIsInMiLCJoYXNPd25Qcm9wZXJ0eSIsInZhbHVlIiwiZW5hYmxlV2l0aCIsInNwbGl0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJVc2VyU2V0dGluZ3MiLCJnZXRVc2VyU2V0dGluZ3MiLCJtb25rZXlQYXRjaCIsInByb3RvdHlwZSIsImFmdGVyIiwiZGF0YSIsInJldHVyblZhbHVlIiwidG9Mb3dlckNhc2UiLCJpbnNlcnQiLCJkaXNhYmxlZCIsIlNldHRpbmdzUmVuZGVyZXIiLCJidWlsZFNldHRpbmdzUGFuZWwiLCJvblNldHRpbmdDaGFuZ2UiLCJiaW5kIiwicGFuZWwiLCJUb2FzdHMiLCJzdWNjZXNzIiwiZm9yY2VTaG93IiwiYXR0cmlidXRpb24iLCJmb3JjZVVwZGF0ZSIsInZpZXdDbGFzcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsInN0YW5kYXJkU2lkZWJhclZpZXciLCJub2RlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0SW50ZXJuYWxJbnN0YW5jZSIsInJldHVybiIsInN0YXRlTm9kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2FuY2VsIiwiZGVmYXVsdCIsInRoaXNPYmplY3QiLCJzYXZlU2V0dGluZ3MiLCJzZXREYXRhIiwicHJldmlvdXNTdGF0ZSIsImdldERhdGEiLCJkZWZhdWx0U3RhdGUiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJiZWZvcmUiLCJFdmVudHMiLCJkaXNwYXRjaCIsImdldFNldHRpbmciLCJhcmd1bWVudHMiLCJvbiIsImlkZW50aWZpZXIiLCJjYWxsYmFjayIsImhhbmRsZXIiLCJjb2wiLCJjYXQiLCJvZmYiLCJ1cGRhdGVTZXR0aW5ncyIsImVuYWJsZWQiLCJCZEFwaSIsInNldFdpbmRvd1ByZWZlcmVuY2UiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsZUFBTixDQUFzQjtBQUVyQ0MsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsTUFBTCxHQUFjQyxtREFBZDtBQUNBLFNBQUtDLEtBQUwsR0FBYUMsa0RBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEVBQWQ7QUFDQSxTQUFLQyxrQkFBTCxDQUF3QixVQUF4QixFQUFvQyxVQUFwQyxFQUFnREwsbURBQWhEO0FBQ0g7O0FBRURNLFlBQVUsR0FBRztBQUNUQyxzREFBUyxDQUFDRCxVQUFWO0FBQ0EsU0FBS0UsWUFBTDtBQUNBLFNBQUtDLGFB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bWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2V0dGluZ3NDb25maWcsIFNldHRpbmdzU3RhdGV9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBCZEFwaSBmcm9tIFwiLi9wbHVnaW5hcGlcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBXZWJwYWNrTW9kdWxlcywge0Rpc2NvcmRNb2R1bGVzfSBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IHtTZXR0aW5nc1BhbmVsIGFzIFNldHRpbmdzUmVuZGVyZXJ9IGZyb20gXCJ1aVwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge1RvYXN0c30gZnJvbSBcInVpXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgU2V0dGluZ3NNYW5hZ2VyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZyA9IFNldHRpbmdzQ29uZmlnO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTZXR0aW5nc1N0YXRlO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhbmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJDb2xsZWN0aW9uKFwic2V0dGluZ3NcIiwgXCJTZXR0aW5nc1wiLCBTZXR0aW5nc0NvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIHRoaXMubG9hZFNldHRpbmdzKCk7XHJcbiAgICAgICAgdGhpcy5wYXRjaFNlY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJDb2xsZWN0aW9uKGlkLCBuYW1lLCBzZXR0aW5ncywgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb25zLmZpbmQoYyA9PiBjLmlkID09IGlkKSkgVXRpbGl0aWVzLmVycihcIlNldHRpbmdzXCIsIFwiQWxyZWFkeSBoYXZlIGEgY29sbGVjdGlvbiB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiLFxyXG4gICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBzZXR0aW5ncyxcclxuICAgICAgICAgICAgYnV0dG9uOiBidXR0b25cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNldHVwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ29sbGVjdGlvbihpZCkge1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5jb2xsZWN0aW9ucy5maW5kSW5kZXgoYyA9PiBjLmlkID09IGlkKTtcclxuICAgICAgICBpZiAoIWxvY2F0aW9uIDwgMCkgVXRpbGl0aWVzLmVycihcIlNldHRpbmdzXCIsIFwiTm8gY29sbGVjdGlvbiB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMuc3BsaWNlKGxvY2F0aW9uLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclBhbmVsKG5hbWUsIG9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCB7ZWxlbWVudCwgb25DbGlja30gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSB7bGFiZWw6IG5hbWUsIHNlY3Rpb246IG5hbWV9O1xyXG4gICAgICAgIGlmIChvbkNsaWNrKSBzZWN0aW9uLm9uQ2xpY2sgPSBvbkNsaWNrO1xyXG4gICAgICAgIGVsc2Ugc2VjdGlvbi5lbGVtZW50ID0gZWxlbWVudCBpbnN0YW5jZW9mIERpc2NvcmRNb2R1bGVzLlJlYWN0LkNvbXBvbmVudCA/ICgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoZWxlbWVudCwge30pIDogdHlwZW9mKGVsZW1lbnQpID09IFwiZnVuY3Rpb25cIiA/IGVsZW1lbnQgOiAoKSA9PiBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnB1c2goc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGF0aChwYXRoLCBjb2xsZWN0aW9uSWQgPSBcIlwiLCBjYXRlZ29yeUlkID0gXCJcIikge1xyXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBwYXRoLmxlbmd0aCA9PSAzID8gcGF0aFswXSA6IGNvbGxlY3Rpb25JZDtcclxuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHBhdGgubGVuZ3RoID09IDMgPyBwYXRoWzFdIDogcGF0aC5sZW5ndGggPT0gMiA/IHBhdGhbMF0gOiBjYXRlZ29yeUlkO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmcgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgcmV0dXJuIHtjb2xsZWN0aW9uLCBjYXRlZ29yeSwgc2V0dGluZ307XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXAoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJiZWZvcmUgc3RhdGVcIik7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5zdGF0ZSk7XHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25zW2NdO1xyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gdGhpcy5jb2xsZWN0aW9uc1tjXS5zZXR0aW5ncztcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdID0ge307XHJcbiAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcmllcy5sZW5ndGg7IHMrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW3NdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5LnR5cGUgIT0gXCJjYXRlZ29yeVwiKSB7aWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLmhhc093blByb3BlcnR5KGNhdGVnb3J5LmlkKSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXVtjYXRlZ29yeS5pZF0gPSBjYXRlZ29yeS52YWx1ZTt9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0uaGFzT3duUHJvcGVydHkoY2F0ZWdvcnkuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcnkuc2V0dGluZ3MubGVuZ3RoOyBzKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IGNhdGVnb3J5LnNldHRpbmdzW3NdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF1bY2F0ZWdvcnkuaWRdLmhhc093blByb3BlcnR5KHNldHRpbmcuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXVtzZXR0aW5nLmlkXSA9IHNldHRpbmcudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmVuYWJsZVdpdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgoc2V0dGluZy5lbmFibGVXaXRoLnNwbGl0KFwiLlwiKSwgY29sbGVjdGlvbi5pZCwgY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlZFwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2V0dGluZywgXCJkaXNhYmxlZFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdGF0ZVtwYXRoLmNvbGxlY3Rpb25dW3BhdGguY2F0ZWdvcnldW3BhdGguc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24uZW5hYmxlV2l0aCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChjb2xsZWN0aW9uLmVuYWJsZVdpdGguc3BsaXQoXCIuXCIpKTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb2xsZWN0aW9uLCBcImRpc2FibGVkXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLnN0YXRlW3BhdGguY29sbGVjdGlvbl1bcGF0aC5jYXRlZ29yeV1bcGF0aC5zZXR0aW5nXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcImFmdGVyIHN0YXRlXCIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHBhdGNoU2VjdGlvbnMoKSB7XHJcbiAgICAgICAgY29uc3QgVXNlclNldHRpbmdzID0gYXdhaXQgdGhpcy5nZXRVc2VyU2V0dGluZ3MoKTtcclxuICAgICAgICBVdGlsaXRpZXMubW9ua2V5UGF0Y2goVXNlclNldHRpbmdzLnByb3RvdHlwZSwgXCJnZW5lcmF0ZVNlY3Rpb25zXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gZGF0YS5yZXR1cm5WYWx1ZS5maW5kSW5kZXgocyA9PiBzLnNlY3Rpb24udG9Mb3dlckNhc2UoKSA9PSBcImxpbnV4XCIpICsgMTtcclxuICAgICAgICAgICAgY29uc3QgaW5zZXJ0ID0gKHNlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGRhdGEucmV0dXJuVmFsdWUuc3BsaWNlKGxvY2F0aW9uLCAwLCBzZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uKys7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOyAvKiBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGUgKi9cclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkRJVklERVJcIn0pO1xyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiSEVBREVSXCIsIGxhYmVsOiBcIkJhbmRhZ2VkQkRcIn0pO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgdGhpcy5jb2xsZWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24uZGlzYWJsZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgaW5zZXJ0KHtcclxuICAgICAgICAgICAgICAgICAgICBzZWN0aW9uOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbGxlY3Rpb24ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAoKSA9PiBTZXR0aW5nc1JlbmRlcmVyLmJ1aWxkU2V0dGluZ3NQYW5lbChjb2xsZWN0aW9uLm5hbWUsIGNvbGxlY3Rpb24uc2V0dGluZ3MsIFNldHRpbmdzU3RhdGVbY29sbGVjdGlvbi5pZF0sIHRoaXMub25TZXR0aW5nQ2hhbmdlLmJpbmQodGhpcywgY29sbGVjdGlvbi5pZCksIGNvbGxlY3Rpb24uYnV0dG9uID8gY29sbGVjdGlvbi5idXR0b24gOiBudWxsKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yIChjb25zdCBwYW5lbCBvZiB0aGlzLnBhbmVscykgaW5zZXJ0KHBhbmVsKTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkJCRCBUZXN0XCIsIGxhYmVsOiBcIlRlc3QgVGFiXCIsIG9uQ2xpY2s6IGZ1bmN0aW9uKCkge1RvYXN0cy5zdWNjZXNzKFwiVGhpcyBjYW4ganVzdCBiZSBhIGNsaWNrIGxpc3RlbmVyIVwiLCB7Zm9yY2VTaG93OiB0cnVlfSk7fX0pO1xyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiQ1VTVE9NXCIsIGVsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuYXR0cmlidXRpb259KTtcclxuICAgICAgICB9fSk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmNlVXBkYXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHZpZXdDbGFzcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzdGFuZGFyZFNpZGViYXJWaWV3XCIpLnN0YW5kYXJkU2lkZWJhclZpZXcuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt2aWV3Q2xhc3N9YCk7XHJcbiAgICAgICAgVXRpbGl0aWVzLmdldEludGVybmFsSW5zdGFuY2Uobm9kZSkucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4uc3RhdGVOb2RlLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXNlclNldHRpbmdzKCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2FuY2VsID0gVXRpbGl0aWVzLm1vbmtleVBhdGNoKFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRVc2VyU2V0dGluZ3NTZWN0aW9uc1wiKS5kZWZhdWx0LnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge2FmdGVyOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhLnJldHVyblZhbHVlLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgZGF0YS50aGlzT2JqZWN0LmZvcmNlVXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICBjYW5jZWwoKTtcclxuICAgICAgICAgICAgfX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTZXR0aW5ncygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShcInNldHRpbmdzXCIsIHRoaXMuc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRTZXR0aW5ncygpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gRGF0YVN0b3JlLmdldERhdGEoXCJzZXR0aW5nc1wiKTtcclxuICAgICAgICBpZiAoIXByZXZpb3VzU3RhdGUpICByZXR1cm4gdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gdGhpcy5kZWZhdWx0U3RhdGUpIHtcclxuICAgICAgICAgICAgaWYgKCFwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dKSBPYmplY3QuYXNzaWduKHByZXZpb3VzU3RhdGUsIHtbY29sbGVjdGlvbl06IHRoaXMuZGVmYXVsdFN0YXRlW2NvbGxlY3Rpb25dfSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgaW4gdGhpcy5kZWZhdWx0U3RhdGVbY29sbGVjdGlvbl0pIHtcclxuICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0pIE9iamVjdC5hc3NpZ24ocHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0sIHtbY2F0ZWdvcnldOiB0aGlzLmRlZmF1bHRTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV19KTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2V0dGluZyBpbiB0aGlzLmRlZmF1bHRTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1bc2V0dGluZ10gPT0gdW5kZWZpbmVkKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtzZXR0aW5nXSA9IHByZXZpb3VzU3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW3NldHRpbmddO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNhdmVTZXR0aW5ncygpOyAvLyBpbiBjYXNlIG5ldyB0aGluZ3Mgd2VyZSBhZGRlZFxyXG4gICAgfVxyXG5cclxuICAgIG9uU2V0dGluZ0NoYW5nZShjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgYmVmb3JlID0gdGhpcy5jb2xsZWN0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1baWRdID0gdmFsdWU7XHJcbiAgICAgICAgRXZlbnRzLmRpc3BhdGNoKFwic2V0dGluZy11cGRhdGVkXCIsIGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgdmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IGFmdGVyID0gdGhpcy5jb2xsZWN0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBpZiAoYmVmb3JlICE9IGFmdGVyKSB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZyhjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSByZXR1cm4gdGhpcy5jb2xsZWN0aW9uc1swXS5maW5kKGMgPT4gYy5pZCA9PSBhcmd1bWVudHNbMF0pLnNldHRpbmdzLmZpbmQocyA9PiBzLmlkID09IGFyZ3VtZW50c1sxXSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbnMuZmluZChjID0+IGMuaWQgPT0gY29sbGVjdGlvbikuZmluZChjID0+IGMuaWQgPT0gY2F0ZWdvcnkpLnNldHRpbmdzLmZpbmQocyA9PiBzLmlkID09IGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICBpZCA9IGNhdGVnb3J5O1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBcInNldHRpbmdzXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXSB8fCAhdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0pIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1baWRdO1xyXG4gICAgfVxyXG5cclxuICAgIG9uKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZGVudGlmaWVyLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoY29sLCBjYXQsIGlkLCB2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29sICE9PSBjb2xsZWN0aW9uIHx8IGNhdCAhPT0gY2F0ZWdvcnkgfHwgaWQgIT09IGlkZW50aWZpZXIpIHJldHVybjtcclxuICAgICAgICAgICAgY2FsbGJhY2sodmFsdWUpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgRXZlbnRzLm9uKFwic2V0dGluZy11cGRhdGVkXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7RXZlbnRzLm9mZihcInNldHRpbmctdXBkYXRlZFwiLCBoYW5kbGVyKTt9O1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVNldHRpbmdzKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgZW5hYmxlZCkge1xyXG5cclxuICAgICAgICBpZiAoaWQgPT0gXCJmb3JrLXdwLTFcIikge1xyXG4gICAgICAgICAgICBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwidHJhbnNwYXJlbnRcIiwgZW5hYmxlZCk7XHJcbiAgICAgICAgICAgIGlmIChlbmFibGVkKSBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIG51bGwpO1xyXG4gICAgICAgICAgICBlbHNlIEJkQXBpLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJiYWNrZ3JvdW5kQ29sb3JcIiwgXCIjMmYzMTM2XCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/settingsmanager.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsManager {\n constructor() {\n this.config = data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"];\n this.state = data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsState\"];\n this.collections = [];\n this.panels = [];\n this.registerCollection(\"settings\", \"Settings\", data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"]);\n }\n\n initialize() {\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].initialize();\n this.loadSettings();\n this.patchSections();\n }\n\n registerCollection(id, name, settings, button = null) {\n if (this.collections.find(c => c.id == id)) _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].err(\"Settings\", \"Already have a collection with id \" + id);\n this.collections.push({\n type: \"collection\",\n id: id,\n name: name,\n settings: settings,\n button: button\n });\n this.setup();\n }\n\n removeCollection(id) {\n const location = this.collections.findIndex(c => c.id == id);\n if (!location < 0) _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].err(\"Settings\", \"No collection with id \" + id);\n this.collections.splice(location, 1);\n }\n\n registerPanel(name, options) {\n const {\n element,\n onClick\n } = options;\n const section = {\n label: name,\n section: name\n };\n if (onClick) section.onClick = onClick;else section.element = element instanceof _webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"DiscordModules\"].React.Component ? () => _webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"DiscordModules\"].React.createElement(element, {}) : typeof element == \"function\" ? element : () => element;\n this.panels.push(section);\n }\n\n getPath(path, collectionId = \"\", categoryId = \"\") {\n const collection = path.length == 3 ? path[0] : collectionId;\n const category = path.length == 3 ? path[1] : path.length == 2 ? path[0] : categoryId;\n const setting = path[path.length - 1];\n return {\n collection,\n category,\n setting\n };\n }\n\n setup() {\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const categories = this.collections[c].settings;\n if (!this.state[collection.id]) this.state[collection.id] = {};\n\n for (let s = 0; s < categories.length; s++) {\n const category = categories[s];\n\n if (category.type != \"category\") {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = category.value;\n } else {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = {};\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n if (!this.state[collection.id][category.id].hasOwnProperty(setting.id)) this.state[collection.id][category.id][setting.id] = setting.value;\n\n if (setting.enableWith) {\n const path = this.getPath(setting.enableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n }\n }\n\n if (collection.enableWith) {\n const path = this.getPath(collection.enableWith.split(\".\"));\n Object.defineProperty(collection, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n }\n\n async patchSections() {\n const UserSettings = await this.getUserSettings();\n _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].monkeyPatch(UserSettings.prototype, \"generateSections\", {\n after: data => {\n let location = data.returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n data.returnValue.splice(location, 0, section);\n location++;\n };\n\n console.log(data);\n /* eslint-disable-line no-console */\n\n insert({\n section: \"DIVIDER\"\n });\n insert({\n section: \"HEADER\",\n label: \"BandagedBD\"\n });\n\n for (const collection of this.collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => ui__WEBPACK_IMPORTED_MODULE_5__[\"SettingsPanel\"].buildSettingsPanel(collection.name, collection.settings, data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsState\"][collection.id], this.onSettingChange.bind(this, collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of this.panels) insert(panel);\n\n insert({\n section: \"BBD Test\",\n label: \"Test Tab\",\n onClick: function () {\n ui__WEBPACK_IMPORTED_MODULE_5__[\"Toasts\"].success(\"This can just be a click listener!\", {\n forceShow: true\n });\n }\n });\n insert({\n section: \"CUSTOM\",\n element: () => ui__WEBPACK_IMPORTED_MODULE_5__[\"SettingsPanel\"].attribution\n });\n }\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = _webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].getInternalInstance(node).return.return.return.return.return.return.stateNode.forceUpdate();\n }\n\n getUserSettings() {\n return new Promise(resolve => {\n const cancel = _utilities__WEBPACK_IMPORTED_MODULE_6__[\"default\"].monkeyPatch(_webpackmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getByProps(\"getUserSettingsSections\").default.prototype, \"render\", {\n after: data => {\n resolve(data.returnValue.type);\n data.thisObject.forceUpdate();\n cancel();\n }\n });\n });\n }\n\n saveSettings() {\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setData(\"settings\", this.state);\n }\n\n loadSettings() {\n const previousState = _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getData(\"settings\");\n if (!previousState) return this.saveSettings();\n\n for (const collection in this.state) {\n if (!previousState[collection]) Object.assign(previousState, {\n [collection]: this.state[collection]\n });\n\n for (const category in this.state[collection]) {\n if (!previousState[collection][category]) Object.assign(previousState[collection][category], {\n [category]: this.state[collection][category]\n });\n\n for (const setting in this.state[collection][category]) {\n if (previousState[collection][category][setting] == undefined) continue;\n this.state[collection][category][setting] = previousState[collection][category][setting];\n }\n }\n }\n\n this.saveSettings(); // in case new things were added\n }\n\n onSettingChange(collection, category, id, value) {\n const before = this.collections.length;\n this.state[collection][category][id] = value;\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"setting-updated\", collection, category, id, value);\n const after = this.collections.length;\n this.saveSettings();\n if (before != after) this.forceUpdate();\n }\n\n getSetting(collection, category, id) {\n if (arguments.length == 2) return this.collections[0].find(c => c.id == arguments[0]).settings.find(s => s.id == arguments[1]);\n return this.collections.find(c => c.id == collection).find(c => c.id == category).settings.find(s => s.id == id);\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n if (!this.state[collection] || !this.state[collection][category]) return false;\n return this.state[collection][category][id];\n }\n\n on(collection, category, identifier, callback) {\n const handler = (col, cat, id, value) => {\n if (col !== collection || cat !== category || id !== identifier) return;\n callback(value);\n };\n\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"setting-updated\", handler);\n return () => {\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].off(\"setting-updated\", handler);\n };\n }\n\n updateSettings(collection, category, id, enabled) {\n if (id == \"fork-wp-1\") {\n _pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setWindowPreference(\"transparent\", enabled);\n if (enabled) _pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setWindowPreference(\"backgroundColor\", null);else _pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setWindowPreference(\"backgroundColor\", \"#2f3136\");\n } // this.saveSettings();\n\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzP2IyZjkiXSwibmFtZXMiOlsiU2V0dGluZ3NNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJTZXR0aW5nc0NvbmZpZyIsInN0YXRlIiwiU2V0dGluZ3NTdGF0ZSIsImNvbGxlY3Rpb25zIiwicGFuZWxzIiwicmVnaXN0ZXJDb2xsZWN0aW9uIiwiaW5pdGlhbGl6ZSIsIkRhdGFTdG9yZSIsImxvYWRTZXR0aW5ncyIsInBhdGNoU2VjdGlvbnMiLCJpZCIsIm5hbWUiLCJzZXR0aW5ncyIsImJ1dHRvbiIsImZpbmQiLCJjIiwiVXRpbGl0aWVzIiwiZXJyIiwicHVzaCIsInR5cGUiLCJzZXR1cCIsInJlbW92ZUNvbGxlY3Rpb24iLCJsb2NhdGlvbiIsImZpbmRJbmRleCIsInNwbGljZSIsInJlZ2lzdGVyUGFuZWwiLCJvcHRpb25zIiwiZWxlbWVudCIsIm9uQ2xpY2siLCJzZWN0aW9uIiwibGFiZWwiLCJEaXNjb3JkTW9kdWxlcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY3JlYXRlRWxlbWVudCIsImdldFBhdGgiLCJwYXRoIiwiY29sbGVjdGlvbklkIiwiY2F0ZWdvcnlJZCIsImNvbGxlY3Rpb24iLCJsZW5ndGgiLCJjYXRlZ29yeSIsInNldHRpbmciLCJjYXRlZ29yaWVzIiwicyIsImhhc093blByb3BlcnR5IiwidmFsdWUiLCJlbmFibGVXaXRoIiwic3BsaXQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsIlVzZXJTZXR0aW5ncyIsImdldFVzZXJTZXR0aW5ncyIsIm1vbmtleVBhdGNoIiwicHJvdG90eXBlIiwiYWZ0ZXIiLCJkYXRhIiwicmV0dXJuVmFsdWUiLCJ0b0xvd2VyQ2FzZSIsImluc2VydCIsImNvbnNvbGUiLCJsb2ciLCJkaXNhYmxlZCIsIlNldHRpbmdzUmVuZGVyZXIiLCJidWlsZFNldHRpbmdzUGFuZWwiLCJvblNldHRpbmdDaGFuZ2UiLCJiaW5kIiwicGFuZWwiLCJUb2FzdHMiLCJzdWNjZXNzIiwiZm9yY2VTaG93IiwiYXR0cmlidXRpb24iLCJmb3JjZVVwZGF0ZSIsInZpZXdDbGFzcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsInN0YW5kYXJkU2lkZWJhclZpZXciLCJub2RlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0SW50ZXJuYWxJbnN0YW5jZSIsInJldHVybiIsInN0YXRlTm9kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2FuY2VsIiwiZGVmYXVsdCIsInRoaXNPYmplY3QiLCJzYXZlU2V0dGluZ3MiLCJzZXREYXRhIiwicHJldmlvdXNTdGF0ZSIsImdldERhdGEiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJiZWZvcmUiLCJFdmVudHMiLCJkaXNwYXRjaCIsImdldFNldHRpbmciLCJhcmd1bWVudHMiLCJvbiIsImlkZW50aWZpZXIiLCJjYWxsYmFjayIsImhhbmRsZXIiLCJjb2wiLCJjYXQiLCJvZmYiLCJ1cGRhdGVTZXR0aW5ncyIsImVuYWJsZWQiLCJCZEFwaSIsInNldFdpbmRvd1ByZWZlcmVuY2UiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsZUFBTixDQUFzQjtBQUVyQ0MsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsTUFBTCxHQUFjQyxtREFBZDtBQUNBLFNBQUtDLEtBQUwsR0FBYUMsa0RBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEVBQWQ7QUFDQSxTQUFLQyxrQkFBTCxDQUF3QixVQUF4QixFQUFvQyxVQUFwQyxFQUFnREwsbURBQWhEO0FBQ0g7O0FBRURNLFlBQVUsR0FBRztBQUNUQyxzREFBUyxDQUFDRCxVQUFWO0FBQ0EsU0FBS0UsWUFBTDtBQUNBLFNBQUtDLGFBQUw7QUFDSDs7QUFFREos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Q0FBQzdELFVBQUQsRUFBYUUsUUFBYixFQUF1QjRELFVBQXZCLEVBQW1DQyxRQUFuQyxFQUE2QztBQUMzQyxVQUFNQyxPQUFPLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVcvRixFQUFYLEVBQWVvQyxLQUFmLEtBQXlCO0FBQ3JDLFVBQUkwRCxHQUFHLEtBQUtqRSxVQUFSLElBQXNCa0UsR0FBRyxLQUFLaEUsUUFBOUIsSUFBMEMvQixFQUFFLEtBQUsyRixVQUFyRCxFQUFpRTtBQUNqRUMsY0FBUSxDQUFDeEQsS0FBRCxDQUFSO0FBQ0gsS0FIRDs7QUFJQWtELG9EQUFNLENBQUNJLEVBQVAsQ0FBVSxpQkFBVixFQUE2QkcsT0FBN0I7QUFDQSxXQUFPLE1BQU07QUFBQ1Asc0RBQU0sQ0FBQ1UsR0FBUCxDQUFXLGlCQUFYLEVBQThCSCxPQUE5QjtBQUF3QyxLQUF0RDtBQUNIOztBQUVESSxnQkFBYyxDQUFDcEUsVUFBRCxFQUFhRSxRQUFiLEVBQXVCL0IsRUFBdkIsRUFBMkJrRyxPQUEzQixFQUFvQztBQUU5QyxRQUFJbEcsRUFBRSxJQUFJLFdBQVYsRUFBdUI7QUFDbkJtRyx3REFBSyxDQUFDQyxtQkFBTixDQUEwQixhQUExQixFQUF5Q0YsT0FBekM7QUFDQSxVQUFJQSxPQUFKLEVBQWFDLGtEQUFLLENBQUNDLG1CQUFOLENBQTBCLGlCQUExQixFQUE2QyxJQUE3QyxFQUFiLEtBQ0tELGtEQUFLLENBQUNDLG1CQUFOLENBQTBCLGlCQUExQixFQUE2QyxTQUE3QztBQUNSLEtBTjZDLENBUTlDOztBQUNIOztBQTlMb0MsQ0FBMUIsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3NldHRpbmdzbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2V0dGluZ3NDb25maWcsIFNldHRpbmdzU3RhdGV9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBCZEFwaSBmcm9tIFwiLi9wbHVnaW5hcGlcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBXZWJwYWNrTW9kdWxlcywge0Rpc2NvcmRNb2R1bGVzfSBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IHtTZXR0aW5nc1BhbmVsIGFzIFNldHRpbmdzUmVuZGVyZXJ9IGZyb20gXCJ1aVwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge1RvYXN0c30gZnJvbSBcInVpXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgU2V0dGluZ3NNYW5hZ2VyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZyA9IFNldHRpbmdzQ29uZmlnO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTZXR0aW5nc1N0YXRlO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhbmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJDb2xsZWN0aW9uKFwic2V0dGluZ3NcIiwgXCJTZXR0aW5nc1wiLCBTZXR0aW5nc0NvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIHRoaXMubG9hZFNldHRpbmdzKCk7XHJcbiAgICAgICAgdGhpcy5wYXRjaFNlY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJDb2xsZWN0aW9uKGlkLCBuYW1lLCBzZXR0aW5ncywgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb25zLmZpbmQoYyA9PiBjLmlkID09IGlkKSkgVXRpbGl0aWVzLmVycihcIlNldHRpbmdzXCIsIFwiQWxyZWFkeSBoYXZlIGEgY29sbGVjdGlvbiB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiY29sbGVjdGlvblwiLFxyXG4gICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBzZXR0aW5ncyxcclxuICAgICAgICAgICAgYnV0dG9uOiBidXR0b25cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNldHVwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ29sbGVjdGlvbihpZCkge1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5jb2xsZWN0aW9ucy5maW5kSW5kZXgoYyA9PiBjLmlkID09IGlkKTtcclxuICAgICAgICBpZiAoIWxvY2F0aW9uIDwgMCkgVXRpbGl0aWVzLmVycihcIlNldHRpbmdzXCIsIFwiTm8gY29sbGVjdGlvbiB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMuc3BsaWNlKGxvY2F0aW9uLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclBhbmVsKG5hbWUsIG9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCB7ZWxlbWVudCwgb25DbGlja30gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSB7bGFiZWw6IG5hbWUsIHNlY3Rpb246IG5hbWV9O1xyXG4gICAgICAgIGlmIChvbkNsaWNrKSBzZWN0aW9uLm9uQ2xpY2sgPSBvbkNsaWNrO1xyXG4gICAgICAgIGVsc2Ugc2VjdGlvbi5lbGVtZW50ID0gZWxlbWVudCBpbnN0YW5jZW9mIERpc2NvcmRNb2R1bGVzLlJlYWN0LkNvbXBvbmVudCA/ICgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoZWxlbWVudCwge30pIDogdHlwZW9mKGVsZW1lbnQpID09IFwiZnVuY3Rpb25cIiA/IGVsZW1lbnQgOiAoKSA9PiBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnB1c2goc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGF0aChwYXRoLCBjb2xsZWN0aW9uSWQgPSBcIlwiLCBjYXRlZ29yeUlkID0gXCJcIikge1xyXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBwYXRoLmxlbmd0aCA9PSAzID8gcGF0aFswXSA6IGNvbGxlY3Rpb25JZDtcclxuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHBhdGgubGVuZ3RoID09IDMgPyBwYXRoWzFdIDogcGF0aC5sZW5ndGggPT0gMiA/IHBhdGhbMF0gOiBjYXRlZ29yeUlkO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmcgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgcmV0dXJuIHtjb2xsZWN0aW9uLCBjYXRlZ29yeSwgc2V0dGluZ307XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXAoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25zW2NdO1xyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gdGhpcy5jb2xsZWN0aW9uc1tjXS5zZXR0aW5ncztcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdID0ge307XHJcbiAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcmllcy5sZW5ndGg7IHMrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW3NdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5LnR5cGUgIT0gXCJjYXRlZ29yeVwiKSB7aWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLmhhc093blByb3BlcnR5KGNhdGVnb3J5LmlkKSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXVtjYXRlZ29yeS5pZF0gPSBjYXRlZ29yeS52YWx1ZTt9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0uaGFzT3duUHJvcGVydHkoY2F0ZWdvcnkuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcnkuc2V0dGluZ3MubGVuZ3RoOyBzKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IGNhdGVnb3J5LnNldHRpbmdzW3NdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF1bY2F0ZWdvcnkuaWRdLmhhc093blByb3BlcnR5KHNldHRpbmcuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXVtzZXR0aW5nLmlkXSA9IHNldHRpbmcudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmVuYWJsZVdpdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgoc2V0dGluZy5lbmFibGVXaXRoLnNwbGl0KFwiLlwiKSwgY29sbGVjdGlvbi5pZCwgY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlZFwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2V0dGluZywgXCJkaXNhYmxlZFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdGF0ZVtwYXRoLmNvbGxlY3Rpb25dW3BhdGguY2F0ZWdvcnldW3BhdGguc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24uZW5hYmxlV2l0aCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChjb2xsZWN0aW9uLmVuYWJsZVdpdGguc3BsaXQoXCIuXCIpKTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb2xsZWN0aW9uLCBcImRpc2FibGVkXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLnN0YXRlW3BhdGguY29sbGVjdGlvbl1bcGF0aC5jYXRlZ29yeV1bcGF0aC5zZXR0aW5nXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwYXRjaFNlY3Rpb25zKCkge1xyXG4gICAgICAgIGNvbnN0IFVzZXJTZXR0aW5ncyA9IGF3YWl0IHRoaXMuZ2V0VXNlclNldHRpbmdzKCk7XHJcbiAgICAgICAgVXRpbGl0aWVzLm1vbmtleVBhdGNoKFVzZXJTZXR0aW5ncy5wcm90b3R5cGUsIFwiZ2VuZXJhdGVTZWN0aW9uc1wiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhdGlvbiA9IGRhdGEucmV0dXJuVmFsdWUuZmluZEluZGV4KHMgPT4gcy5zZWN0aW9uLnRvTG93ZXJDYXNlKCkgPT0gXCJsaW51eFwiKSArIDE7XHJcbiAgICAgICAgICAgIGNvbnN0IGluc2VydCA9IChzZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnJldHVyblZhbHVlLnNwbGljZShsb2NhdGlvbiwgMCwgc2VjdGlvbik7XHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbisrO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsgLyogZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlICovXHJcbiAgICAgICAgICAgIGluc2VydCh7c2VjdGlvbjogXCJESVZJREVSXCJ9KTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogXCJCYW5kYWdlZEJEXCJ9KTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIHRoaXMuY29sbGVjdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmRpc2FibGVkKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGluc2VydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbjogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogKCkgPT4gU2V0dGluZ3NSZW5kZXJlci5idWlsZFNldHRpbmdzUGFuZWwoY29sbGVjdGlvbi5uYW1lLCBjb2xsZWN0aW9uLnNldHRpbmdzLCBTZXR0aW5nc1N0YXRlW2NvbGxlY3Rpb24uaWRdLCB0aGlzLm9uU2V0dGluZ0NoYW5nZS5iaW5kKHRoaXMsIGNvbGxlY3Rpb24uaWQpLCBjb2xsZWN0aW9uLmJ1dHRvbiA/IGNvbGxlY3Rpb24uYnV0dG9uIDogbnVsbClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFuZWwgb2YgdGhpcy5wYW5lbHMpIGluc2VydChwYW5lbCk7XHJcbiAgICAgICAgICAgIGluc2VydCh7c2VjdGlvbjogXCJCQkQgVGVzdFwiLCBsYWJlbDogXCJUZXN0IFRhYlwiLCBvbkNsaWNrOiBmdW5jdGlvbigpIHtUb2FzdHMuc3VjY2VzcyhcIlRoaXMgY2FuIGp1c3QgYmUgYSBjbGljayBsaXN0ZW5lciFcIiwge2ZvcmNlU2hvdzogdHJ1ZX0pO319KTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkNVU1RPTVwiLCBlbGVtZW50OiAoKSA9PiBTZXR0aW5nc1JlbmRlcmVyLmF0dHJpYnV0aW9ufSk7XHJcbiAgICAgICAgfX0pO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JjZVVwZGF0ZSgpIHtcclxuICAgICAgICBjb25zdCB2aWV3Q2xhc3MgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic3RhbmRhcmRTaWRlYmFyVmlld1wiKS5zdGFuZGFyZFNpZGViYXJWaWV3LnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICBjb25zdCBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7dmlld0NsYXNzfWApO1xyXG4gICAgICAgIFV0aWxpdGllcy5nZXRJbnRlcm5hbEluc3RhbmNlKG5vZGUpLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnN0YXRlTm9kZS5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJTZXR0aW5ncygpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbmNlbCA9IFV0aWxpdGllcy5tb25rZXlQYXRjaChXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0VXNlclNldHRpbmdzU2VjdGlvbnNcIikuZGVmYXVsdC5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YS5yZXR1cm5WYWx1ZS50eXBlKTtcclxuICAgICAgICAgICAgICAgIGRhdGEudGhpc09iamVjdC5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgY2FuY2VsKCk7XHJcbiAgICAgICAgICAgIH19KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgRGF0YVN0b3JlLnNldERhdGEoXCJzZXR0aW5nc1wiLCB0aGlzLnN0YXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNTdGF0ZSA9IERhdGFTdG9yZS5nZXREYXRhKFwic2V0dGluZ3NcIik7XHJcbiAgICAgICAgaWYgKCFwcmV2aW91c1N0YXRlKSByZXR1cm4gdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gdGhpcy5zdGF0ZSkge1xyXG4gICAgICAgICAgICBpZiAoIXByZXZpb3VzU3RhdGVbY29sbGVjdGlvbl0pIE9iamVjdC5hc3NpZ24ocHJldmlvdXNTdGF0ZSwge1tjb2xsZWN0aW9uXTogdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXX0pO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IGluIHRoaXMuc3RhdGVbY29sbGVjdGlvbl0pIHtcclxuICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0pIE9iamVjdC5hc3NpZ24ocHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0sIHtbY2F0ZWdvcnldOiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XX0pO1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzZXR0aW5nIGluIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW3NldHRpbmddID09IHVuZGVmaW5lZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1bc2V0dGluZ10gPSBwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtzZXR0aW5nXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zYXZlU2V0dGluZ3MoKTsgLy8gaW4gY2FzZSBuZXcgdGhpbmdzIHdlcmUgYWRkZWRcclxuICAgIH1cclxuXHJcbiAgICBvblNldHRpbmdDaGFuZ2UoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMuY29sbGVjdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW2lkXSA9IHZhbHVlO1xyXG4gICAgICAgIEV2ZW50cy5kaXNwYXRjaChcInNldHRpbmctdXBkYXRlZFwiLCBjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKTtcclxuICAgICAgICBjb25zdCBhZnRlciA9IHRoaXMuY29sbGVjdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgaWYgKGJlZm9yZSAhPSBhZnRlcikgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNldHRpbmcoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgcmV0dXJuIHRoaXMuY29sbGVjdGlvbnNbMF0uZmluZChjID0+IGMuaWQgPT0gYXJndW1lbnRzWzBdKS5zZXR0aW5ncy5maW5kKHMgPT4gcy5pZCA9PSBhcmd1bWVudHNbMV0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25zLmZpbmQoYyA9PiBjLmlkID09IGNvbGxlY3Rpb24pLmZpbmQoYyA9PiBjLmlkID09IGNhdGVnb3J5KS5zZXR0aW5ncy5maW5kKHMgPT4gcy5pZCA9PSBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCkge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgaWQgPSBjYXRlZ29yeTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkgPSBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gXCJzZXR0aW5nc1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbl0gfHwgIXRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW2lkXTtcclxuICAgIH1cclxuXHJcbiAgICBvbihjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWRlbnRpZmllciwgY2FsbGJhY2spIHtcclxuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGNvbCwgY2F0LCBpZCwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbCAhPT0gY29sbGVjdGlvbiB8fCBjYXQgIT09IGNhdGVnb3J5IHx8IGlkICE9PSBpZGVudGlmaWVyKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKHZhbHVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCBoYW5kbGVyKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge0V2ZW50cy5vZmYoXCJzZXR0aW5nLXVwZGF0ZWRcIiwgaGFuZGxlcik7fTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVTZXR0aW5ncyhjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIGVuYWJsZWQpIHtcclxuXHJcbiAgICAgICAgaWYgKGlkID09IFwiZm9yay13cC0xXCIpIHtcclxuICAgICAgICAgICAgQmRBcGkuc2V0V2luZG93UHJlZmVyZW5jZShcInRyYW5zcGFyZW50XCIsIGVuYWJsZWQpO1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgQmRBcGkuc2V0V2luZG93UHJlZmVyZW5jZShcImJhY2tncm91bmRDb2xvclwiLCBudWxsKTtcclxuICAgICAgICAgICAgZWxzZSBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIFwiIzJmMzEzNlwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRoaXMuc2F2ZVNldHRpbmdzKCk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/settingsmanager.js\n"); /***/ }), @@ -479,7 +479,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ThemeManager extends _contentmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"ThemeManager\";\n }\n\n get moduleExtension() {\n return \".css\";\n }\n\n get extension() {\n return \".theme.css\";\n }\n\n get contentFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"themes\");\n }\n\n get prefix() {\n return \"theme\";\n }\n /* Aliases */\n\n\n updateThemeList() {\n return this.updateList();\n }\n\n loadAllThemes() {\n _settingsmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].registerPanel(\"Themes\", {\n element: () => ui__WEBPACK_IMPORTED_MODULE_3__[\"SettingsPanel\"].getThemesPanel(this.contentList, this.contentFolder)\n });\n return this.loadAllContent();\n }\n\n enableTheme(idOrContent) {\n return this.enableContent(idOrContent);\n }\n\n disableTheme(idOrContent) {\n return this.disableContent(idOrContent);\n }\n\n toggleTheme(id) {\n return this.toggleContent(id);\n }\n\n unloadTheme(idOrFileOrContent) {\n return this.unloadContent(idOrFileOrContent);\n }\n\n loadTheme(filename) {\n const error = this.loadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n reloadTheme(filename) {\n const error = this.reloadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n /* Overrides */\n\n\n getContentModification(module, content, meta) {\n meta.css = content.split(\"\\n\").slice(1).join(\"\\n\");\n return `module.exports = ${JSON.stringify(meta)};`;\n }\n\n startContent(id) {\n return this.addTheme(id);\n }\n\n stopContent(id) {\n return this.removeTheme(id);\n }\n\n addTheme(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const style = document.createElement(\"style\");\n style.id = _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(content.id);\n style.textContent = unescape(content.css);\n document.head.append(style);\n content.element = style;\n }\n\n removeTheme(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const element = content.element || document.getElementById(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(content.id));\n if (element) element.remove();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvdGhlbWVtYW5hZ2VyLmpzPzQwNzgiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJUaGVtZU1hbmFnZXIiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicmVzb2x2ZSIsIkNvbmZpZyIsImRhdGFQYXRoIiwicHJlZml4IiwidXBkYXRlVGhlbWVMaXN0IiwidXBkYXRlTGlzdCIsImxvYWRBbGxUaGVtZXMiLCJTZXR0aW5ncyIsInJlZ2lzdGVyUGFuZWwiLCJlbGVtZW50IiwiU2V0dGluZ3NSZW5kZXJlciIsImdldFRoZW1lc1BhbmVsIiwiY29udGVudExpc3QiLCJsb2FkQWxsQ29udGVudCIsImVuYWJsZVRoZW1lIiwiaWRPckNvbnRlbnQiLCJlbmFibGVDb250ZW50IiwiZGlzYWJsZVRoZW1lIiwiZGlzYWJsZUNvbnRlbnQiLCJ0b2dnbGVUaGVtZSIsImlkIiwidG9nZ2xlQ29udGVudCIsInVubG9hZFRoZW1lIiwiaWRPckZpbGVPckNvbnRlbnQiLCJ1bmxvYWRDb250ZW50IiwibG9hZFRoZW1lIiwiZmlsZW5hbWUiLCJlcnJvciIsImxvYWRDb250ZW50IiwiTW9kYWxzIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJ0aGVtZXMiLCJyZWxvYWRUaGVtZSIsInJlbG9hZENvbnRlbnQiLCJnZXRDb250ZW50TW9kaWZpY2F0aW9uIiwibW9kdWxlIiwiY29udGVudCIsIm1ldGEiLCJjc3MiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydENvbnRlbnQiLCJhZGRUaGVtZSIsInN0b3BDb250ZW50IiwicmVtb3ZlVGhlbWUiLCJmaW5kIiwicCIsInN0eWxlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiVXRpbGl0aWVzIiwiZXNjYXBlSUQiLCJ0ZXh0Q29udGVudCIsInVuZXNjYXBlIiwiaGVhZCIsImFwcGVuZCIsImdldEVsZW1lbnRCeUlkIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsSUFBSSxHQUFHQyxtQkFBTyxDQUFDLGtCQUFELENBQXBCOztBQUVlLG1FQUFJLE1BQU1DLFlBQU4sU0FBMkJDLHVEQUEzQixDQUEwQztBQUN6RCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGNBQVA7QUFBdUI7O0FBQ25DLE1BQUlDLGVBQUosR0FBc0I7QUFBQyxXQUFPLE1BQVA7QUFBZTs7QUFDdEMsTUFBSUMsU0FBSixHQUFnQjtBQUFDLFdBQU8sWUFBUDtBQUFxQjs7QUFDdEMsTUFBSUMsYUFBSixHQUFvQjtBQUFDLFdBQU9QLElBQUksQ0FBQ1EsT0FBTCxDQUFhQywyQ0FBTSxDQUFDQyxRQUFwQixFQUE4QixRQUE5QixDQUFQO0FBQWdEOztBQUNyRSxNQUFJQyxNQUFKLEdBQWE7QUFBQyxXQUFPLE9BQVA7QUFBZ0I7QUFFOUI7OztBQUNBQyxpQkFBZSxHQUFHO0FBQUMsV0FBTyxLQUFLQyxVQUFMLEVBQVA7QUFBMEI7O0FBQzdDQyxlQUFhLEdBQUc7QUFDWkMsNERBQVEsQ0FBQ0MsYUFBVCxDQUF1QixRQUF2QixFQUFpQztBQUFDQyxhQUFPLEVBQUUsTUFBTUMsZ0RBQWdCLENBQUNDLGNBQWpCLENBQWdDLEtBQUtDLFdBQXJDLEVBQWtELEtBQUtiLGFBQXZEO0FBQWhCLEtBQWpDO0FBQ0EsV0FBTyxLQUFLYyxjQUFMLEVBQVA7QUFDSDs7QUFFREMsYUFBVyxDQUFDQyxXQUFELEVBQWM7QUFBQyxXQUFPLEtBQUtDLGFBQUwsQ0FBbUJELFdBQW5CLENBQVA7QUFBd0M7O0FBQ2xFRSxjQUFZLENBQUNGLFdBQUQsRUFBYztBQUFDLFdBQU8sS0FBS0csY0FBTCxDQUFvQkgsV0FBcEIsQ0FBUDtBQUF5Qzs7QUFDcEVJLGFBQVcsQ0FBQ0MsRUFBRCxFQUFLO0FBQUMsV0FBTyxLQUFLQyxhQUFMLENBQW1CRCxFQUFuQixDQUFQO0FBQStCOztBQUVoREUsYUFBVyxDQUFDQyxpQkFBRCxFQUFvQjtBQUFDLFdBQU8sS0FBS0MsYUFBTCxDQUFtQkQsaUJBQW5CLENBQVA7QUFBOEM7O0FBRTlFRSxXQUFTLENBQUNDLFFBQUQsRUFBVztBQUNoQixVQUFNQyxLQUFLLEdBQUcsS0FBS0MsV0FBTCxDQUFpQkYsUUFBakIsQ0FBZDtBQUNBLFFBQUlDLEtBQUosRUFBV0UseUNBQU0sQ0FBQ0MsaUJBQVAsQ0FBeUI7QUFBQ0MsWUFBTSxFQUFFLENBQUNKLEtBQUQ7QUFBVCxLQUF6QjtBQUNkOztBQUVESyxhQUFXLENBQUNOLFFBQUQsRUFBVztBQUNsQixVQUFNQyxLQUFLLEdBQUcsS0FBS00sYUFBTCxDQUFtQlAsUUFBbkIsQ0FBZDtBQUNBLFFBQUlDLEtBQUosRUFBV0UseUNBQU0sQ0FBQ0MsaUJBQVAsQ0FBeUI7QUFBQ0MsWUFBTSxFQUFFLENBQUNKLEtBQUQ7QUFBVCxLQUF6QjtBQUNkO0FBRUQ7OztBQUNBTyx3QkFBc0IsQ0FBQ0MsTUFBRCxFQUFTQyxPQUFULEVBQWtCQyxJQUFsQixFQUF3QjtBQUMxQ0EsUUFBSSxDQUFDQyxHQUFMLEdBQVdGLE9BQU8sQ0FBQ0csS0FBUixDQUFjLElBQWQsRUFBb0JDLEtBQXBCLENBQTBCLENBQTFCLEVBQTZCQyxJQUE3QixDQUFrQyxJQUFsQyxDQUFYO0FBQ0EsV0FBUSxvQkFBbUJDLElBQUksQ0FBQ0MsU0FBTCxDQUFlTixJQUFmLENBQXFCLEdBQWhEO0FBQ0g7O0FBRURPLGNBQVksQ0FBQ3hCLEVBQUQsRUFBSztBQUFDLFdBQU8sS0FBS3lCLFFBQUwsQ0FBY3pCLEVBQWQsQ0FBUDtBQUEwQjs7QUFDNUMwQixhQUFXLENBQUMxQixFQUFELEVBQUs7QUFBQyxXQUFPLEtBQUsyQixXQUFMLENBQWlCM0IsRUFBakIsQ0FBUDtBQUE2Qjs7QUFFOUN5QixVQUFRLENBQUM5QixXQUFELEVBQWM7QUFDbEIsVUFBTXFCLE9BQU8sR0FBRyxPQUFPckIsV0FBUCxJQUF1QixRQUF2QixHQUFrQyxLQUFLSCxXQUFMLENBQWlCb0MsSUFBakIsQ0FBc0JDLENBQUMsSUFBSUEsQ0FBQyxDQUFDN0IsRUFBRixJQUFRTCxXQUFuQyxDQUFsQyxHQUFvRkEsV0FBcEc7QUFDQSxRQUFJLENBQUNxQixPQUFMLEVBQWM7QUFDZCxVQUFNYyxLQUFLLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixPQUF2QixDQUFkO0FBQ0FGLFNBQUssQ0FBQzlCLEVBQU4sR0FBV2lDLGtEQUFTLENBQUNDLFFBQVYsQ0FBbUJsQixPQUFPLENBQUNoQixFQUEzQixDQUFYO0FBQ0E4QixTQUFLLENBQUNLLFdBQU4sR0FBb0JDLFFBQVEsQ0FBQ3BCLE9BQU8sQ0FBQ0UsR0FBVCxDQUE1QjtBQUNBYSxZQUFRLENBQUNNLElBQVQsQ0FBY0MsTUFBZCxDQUFxQlIsS0FBckI7QUFDQWQsV0FBTyxDQUFDM0IsT0FBUixHQUFrQnlDLEtBQWxCO0FBQ0g7O0FBRURILGFBQVcsQ0FBQ2hDLFdBQUQsRUFBYztBQUNyQixVQUFNcUIsT0FBTyxHQUFHLE9BQU9yQixXQUFQLElBQXVCLFFBQXZCLEdBQWtDLEtBQUtILFdBQUwsQ0FBaUJvQyxJQUFqQixDQUFzQkMsQ0FBQyxJQUFJQSxDQUFDLENBQUM3QixFQUFGLElBQVFMLFdBQW5DLENBQWxDLEdBQW9GQSxXQUFwRztBQUNBLFFBQUksQ0FBQ3FCLE9BQUwsRUFBYztBQUNkLFVBQU0zQixPQUFPLEdBQUcyQixPQUFPLENBQUMzQixPQUFSLElBQW1CMEMsUUFBUSxDQUFDUSxjQUFULENBQXdCTixrREFBUyxDQUFDQyxRQUFWLENBQW1CbEIsT0FBTyxDQUFDaEIsRUFBM0IsQ0FBeEIsQ0FBbkM7QUFDQSxRQUFJWCxPQUFKLEVBQWFBLE9BQU8sQ0FBQ21ELE1BQVI7QUFDaEI7O0FBdER3RCxDQUE5QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvdGhlbWVtYW5hZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50bWFuYWdlclwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge01vZGFsc30gZnJvbSBcInVpXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IHtTZXR0aW5nc1BhbmVsIGFzIFNldHRpbmdzUmVuZGVyZXJ9IGZyb20gXCJ1aVwiO1xyXG5cclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFRoZW1lTWFuYWdlciBleHRlbmRzIENvbnRlbnRNYW5hZ2VyIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlRoZW1lTWFuYWdlclwiO31cclxuICAgIGdldCBtb2R1bGVFeHRlbnNpb24oKSB7cmV0dXJuIFwiLmNzc1wiO31cclxuICAgIGdldCBleHRlbnNpb24oKSB7cmV0dXJuIFwiLnRoZW1lLmNzc1wiO31cclxuICAgIGdldCBjb250ZW50Rm9sZGVyKCkge3JldHVybiBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcInRoZW1lc1wiKTt9XHJcbiAgICBnZXQgcHJlZml4KCkge3JldHVybiBcInRoZW1lXCI7fVxyXG5cclxuICAgIC8qIEFsaWFzZXMgKi9cclxuICAgIHVwZGF0ZVRoZW1lTGlzdCgpIHtyZXR1cm4gdGhpcy51cGRhdGVMaXN0KCk7fVxyXG4gICAgbG9hZEFsbFRoZW1lcygpIHtcclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlclBhbmVsKFwiVGhlbWVzXCIsIHtlbGVtZW50OiAoKSA9PiBTZXR0aW5nc1JlbmRlcmVyLmdldFRoZW1lc1BhbmVsKHRoaXMuY29udGVudExpc3QsIHRoaXMuY29udGVudEZvbGRlcil9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQWxsQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZVRoZW1lKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZW5hYmxlQ29udGVudChpZE9yQ29udGVudCk7fVxyXG4gICAgZGlzYWJsZVRoZW1lKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpO31cclxuICAgIHRvZ2dsZVRoZW1lKGlkKSB7cmV0dXJuIHRoaXMudG9nZ2xlQ29udGVudChpZCk7fVxyXG5cclxuICAgIHVubG9hZFRoZW1lKGlkT3JGaWxlT3JDb250ZW50KSB7cmV0dXJuIHRoaXMudW5sb2FkQ29udGVudChpZE9yRmlsZU9yQ29udGVudCk7fVxyXG5cclxuICAgIGxvYWRUaGVtZShmaWxlbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBNb2RhbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZFRoZW1lKGZpbGVuYW1lKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnJlbG9hZENvbnRlbnQoZmlsZW5hbWUpO1xyXG4gICAgICAgIGlmIChlcnJvcikgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHt0aGVtZXM6IFtlcnJvcl19KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBPdmVycmlkZXMgKi9cclxuICAgIGdldENvbnRlbnRNb2RpZmljYXRpb24obW9kdWxlLCBjb250ZW50LCBtZXRhKSB7XHJcbiAgICAgICAgbWV0YS5jc3MgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpLnNsaWNlKDEpLmpvaW4oXCJcXG5cIik7XHJcbiAgICAgICAgcmV0dXJuIGBtb2R1bGUuZXhwb3J0cyA9ICR7SlNPTi5zdHJpbmdpZnkobWV0YSl9O2A7XHJcbiAgICB9ICAgIFxyXG5cclxuICAgIHN0YXJ0Q29udGVudChpZCkge3JldHVybiB0aGlzLmFkZFRoZW1lKGlkKTt9XHJcbiAgICBzdG9wQ29udGVudChpZCkge3JldHVybiB0aGlzLnJlbW92ZVRoZW1lKGlkKTt9XHJcblxyXG4gICAgYWRkVGhlbWUoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcclxuICAgICAgICBzdHlsZS5pZCA9IFV0aWxpdGllcy5lc2NhcGVJRChjb250ZW50LmlkKTtcclxuICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IHVuZXNjYXBlKGNvbnRlbnQuY3NzKTtcclxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZChzdHlsZSk7XHJcbiAgICAgICAgY29udGVudC5lbGVtZW50ID0gc3R5bGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlVGhlbWUoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gY29udGVudC5lbGVtZW50IHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFV0aWxpdGllcy5lc2NhcGVJRChjb250ZW50LmlkKSk7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/thememanager.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ThemeManager extends _contentmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"ThemeManager\";\n }\n\n get moduleExtension() {\n return \".css\";\n }\n\n get extension() {\n return \".theme.css\";\n }\n\n get contentFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"themes\");\n }\n\n get prefix() {\n return \"theme\";\n }\n /* Aliases */\n\n\n updateThemeList() {\n return this.updateList();\n }\n\n loadAllThemes() {\n _settingsmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].registerPanel(\"Themes\", {\n element: () => ui__WEBPACK_IMPORTED_MODULE_3__[\"SettingsPanel\"].getContentPanel(\"Themes\", this.contentList, this.state, {\n folder: this.contentFolder,\n onChange: this.toggleTheme.bind(this),\n reload: this.reloadTheme.bind(this),\n refreshList: this.updateThemeList.bind(this)\n })\n });\n return this.loadAllContent();\n }\n\n enableTheme(idOrContent) {\n return this.enableContent(idOrContent);\n }\n\n disableTheme(idOrContent) {\n return this.disableContent(idOrContent);\n }\n\n toggleTheme(id) {\n return this.toggleContent(id);\n }\n\n unloadTheme(idOrFileOrContent) {\n return this.unloadContent(idOrFileOrContent);\n }\n\n loadTheme(filename) {\n const error = this.loadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n reloadTheme(idOrFileOrContent) {\n const error = this.reloadContent(idOrFileOrContent);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n /* Overrides */\n\n\n getContentModification(module, content, meta) {\n meta.css = content.split(\"\\n\").slice(1).join(\"\\n\");\n return `module.exports = ${JSON.stringify(meta)};`;\n }\n\n startContent(id) {\n return this.addTheme(id);\n }\n\n stopContent(id) {\n return this.removeTheme(id);\n }\n\n addTheme(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const style = document.createElement(\"style\");\n style.id = _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(content.id);\n style.textContent = unescape(content.css);\n document.head.append(style);\n content.element = style;\n }\n\n removeTheme(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const element = content.element || document.getElementById(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(content.id));\n if (element) element.remove();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvdGhlbWVtYW5hZ2VyLmpzPzQwNzgiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJUaGVtZU1hbmFnZXIiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicmVzb2x2ZSIsIkNvbmZpZyIsImRhdGFQYXRoIiwicHJlZml4IiwidXBkYXRlVGhlbWVMaXN0IiwidXBkYXRlTGlzdCIsImxvYWRBbGxUaGVtZXMiLCJTZXR0aW5ncyIsInJlZ2lzdGVyUGFuZWwiLCJlbGVtZW50IiwiU2V0dGluZ3NSZW5kZXJlciIsImdldENvbnRlbnRQYW5lbCIsImNvbnRlbnRMaXN0Iiwic3RhdGUiLCJmb2xkZXIiLCJvbkNoYW5nZSIsInRvZ2dsZVRoZW1lIiwiYmluZCIsInJlbG9hZCIsInJlbG9hZFRoZW1lIiwicmVmcmVzaExpc3QiLCJsb2FkQWxsQ29udGVudCIsImVuYWJsZVRoZW1lIiwiaWRPckNvbnRlbnQiLCJlbmFibGVDb250ZW50IiwiZGlzYWJsZVRoZW1lIiwiZGlzYWJsZUNvbnRlbnQiLCJpZCIsInRvZ2dsZUNvbnRlbnQiLCJ1bmxvYWRUaGVtZSIsImlkT3JGaWxlT3JDb250ZW50IiwidW5sb2FkQ29udGVudCIsImxvYWRUaGVtZSIsImZpbGVuYW1lIiwiZXJyb3IiLCJsb2FkQ29udGVudCIsIk1vZGFscyIsInNob3dDb250ZW50RXJyb3JzIiwidGhlbWVzIiwicmVsb2FkQ29udGVudCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJjb250ZW50IiwibWV0YSIsImNzcyIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0Q29udGVudCIsImFkZFRoZW1lIiwic3RvcENvbnRlbnQiLCJyZW1vdmVUaGVtZSIsImZpbmQiLCJwIiwic3R5bGUiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJVdGlsaXRpZXMiLCJlc2NhcGVJRCIsInRleHRDb250ZW50IiwidW5lc2NhcGUiLCJoZWFkIiwiYXBwZW5kIiwiZ2V0RWxlbWVudEJ5SWQiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxJQUFJLEdBQUdDLG1CQUFPLENBQUMsa0JBQUQsQ0FBcEI7O0FBRWUsbUVBQUksTUFBTUMsWUFBTixTQUEyQkMsdURBQTNCLENBQTBDO0FBQ3pELE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sY0FBUDtBQUF1Qjs7QUFDbkMsTUFBSUMsZUFBSixHQUFzQjtBQUFDLFdBQU8sTUFBUDtBQUFlOztBQUN0QyxNQUFJQyxTQUFKLEdBQWdCO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUN0QyxNQUFJQyxhQUFKLEdBQW9CO0FBQUMsV0FBT1AsSUFBSSxDQUFDUSxPQUFMLENBQWFDLDJDQUFNLENBQUNDLFFBQXBCLEVBQThCLFFBQTlCLENBQVA7QUFBZ0Q7O0FBQ3JFLE1BQUlDLE1BQUosR0FBYTtBQUFDLFdBQU8sT0FBUDtBQUFnQjtBQUU5Qjs7O0FBQ0FDLGlCQUFlLEdBQUc7QUFBQyxXQUFPLEtBQUtDLFVBQUwsRUFBUDtBQUEwQjs7QUFDN0NDLGVBQWEsR0FBRztBQUNaQyw0REFBUSxDQUFDQyxhQUFULENBQXVCLFFBQXZCLEVBQWlDO0FBQUNDLGFBQU8sRUFBRSxNQUFNQyxnREFBZ0IsQ0FBQ0MsZUFBakIsQ0FBaUMsUUFBakMsRUFBMkMsS0FBS0MsV0FBaEQsRUFBNkQsS0FBS0MsS0FBbEUsRUFBeUU7QUFDdEhDLGNBQU0sRUFBRSxLQUFLZixhQUR5RztBQUV0SGdCLGdCQUFRLEVBQUUsS0FBS0MsV0FBTCxDQUFpQkMsSUFBakIsQ0FBc0IsSUFBdEIsQ0FGNEc7QUFHdEhDLGNBQU0sRUFBRSxLQUFLQyxXQUFMLENBQWlCRixJQUFqQixDQUFzQixJQUF0QixDQUg4RztBQUl0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QUNtQixPQUFMLEVBQWM7QUFDZCxVQUFNakMsT0FBTyxHQUFHaUMsT0FBTyxDQUFDakMsT0FBUixJQUFtQmdELFFBQVEsQ0FBQ1EsY0FBVCxDQUF3Qk4sa0RBQVMsQ0FBQ0MsUUFBVixDQUFtQmxCLE9BQU8sQ0FBQ2YsRUFBM0IsQ0FBeEIsQ0FBbkM7QUFDQSxRQUFJbEIsT0FBSixFQUFhQSxPQUFPLENBQUN5RCxNQUFSO0FBQ2hCOztBQTNEd0QsQ0FBOUMsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3RoZW1lbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgQ29udGVudE1hbmFnZXIgZnJvbSBcIi4vY29udGVudG1hbmFnZXJcIjtcclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IHtNb2RhbHN9IGZyb20gXCJ1aVwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3NtYW5hZ2VyXCI7XHJcbmltcG9ydCB7U2V0dGluZ3NQYW5lbCBhcyBTZXR0aW5nc1JlbmRlcmVyfSBmcm9tIFwidWlcIjtcclxuXHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBUaGVtZU1hbmFnZXIgZXh0ZW5kcyBDb250ZW50TWFuYWdlciB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJUaGVtZU1hbmFnZXJcIjt9XHJcbiAgICBnZXQgbW9kdWxlRXh0ZW5zaW9uKCkge3JldHVybiBcIi5jc3NcIjt9XHJcbiAgICBnZXQgZXh0ZW5zaW9uKCkge3JldHVybiBcIi50aGVtZS5jc3NcIjt9XHJcbiAgICBnZXQgY29udGVudEZvbGRlcigpIHtyZXR1cm4gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJ0aGVtZXNcIik7fVxyXG4gICAgZ2V0IHByZWZpeCgpIHtyZXR1cm4gXCJ0aGVtZVwiO31cclxuXHJcbiAgICAvKiBBbGlhc2VzICovXHJcbiAgICB1cGRhdGVUaGVtZUxpc3QoKSB7cmV0dXJuIHRoaXMudXBkYXRlTGlzdCgpO31cclxuICAgIGxvYWRBbGxUaGVtZXMoKSB7XHJcbiAgICAgICAgU2V0dGluZ3MucmVnaXN0ZXJQYW5lbChcIlRoZW1lc1wiLCB7ZWxlbWVudDogKCkgPT4gU2V0dGluZ3NSZW5kZXJlci5nZXRDb250ZW50UGFuZWwoXCJUaGVtZXNcIiwgdGhpcy5jb250ZW50TGlzdCwgdGhpcy5zdGF0ZSwge1xyXG4gICAgICAgICAgICBmb2xkZXI6IHRoaXMuY29udGVudEZvbGRlcixcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudG9nZ2xlVGhlbWUuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgcmVsb2FkOiB0aGlzLnJlbG9hZFRoZW1lLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0OiB0aGlzLnVwZGF0ZVRoZW1lTGlzdC5iaW5kKHRoaXMpXHJcbiAgICAgICAgfSl9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQWxsQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZVRoZW1lKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZW5hYmxlQ29udGVudChpZE9yQ29udGVudCk7fVxyXG4gICAgZGlzYWJsZVRoZW1lKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpO31cclxuICAgIHRvZ2dsZVRoZW1lKGlkKSB7cmV0dXJuIHRoaXMudG9nZ2xlQ29udGVudChpZCk7fVxyXG5cclxuICAgIHVubG9hZFRoZW1lKGlkT3JGaWxlT3JDb250ZW50KSB7cmV0dXJuIHRoaXMudW5sb2FkQ29udGVudChpZE9yRmlsZU9yQ29udGVudCk7fVxyXG5cclxuICAgIGxvYWRUaGVtZShmaWxlbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBNb2RhbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZFRoZW1lKGlkT3JGaWxlT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnJlbG9hZENvbnRlbnQoaWRPckZpbGVPckNvbnRlbnQpO1xyXG4gICAgICAgIGlmIChlcnJvcikgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHt0aGVtZXM6IFtlcnJvcl19KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBPdmVycmlkZXMgKi9cclxuICAgIGdldENvbnRlbnRNb2RpZmljYXRpb24obW9kdWxlLCBjb250ZW50LCBtZXRhKSB7XHJcbiAgICAgICAgbWV0YS5jc3MgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpLnNsaWNlKDEpLmpvaW4oXCJcXG5cIik7XHJcbiAgICAgICAgcmV0dXJuIGBtb2R1bGUuZXhwb3J0cyA9ICR7SlNPTi5zdHJpbmdpZnkobWV0YSl9O2A7XHJcbiAgICB9ICAgIFxyXG5cclxuICAgIHN0YXJ0Q29udGVudChpZCkge3JldHVybiB0aGlzLmFkZFRoZW1lKGlkKTt9XHJcbiAgICBzdG9wQ29udGVudChpZCkge3JldHVybiB0aGlzLnJlbW92ZVRoZW1lKGlkKTt9XHJcblxyXG4gICAgYWRkVGhlbWUoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcclxuICAgICAgICBzdHlsZS5pZCA9IFV0aWxpdGllcy5lc2NhcGVJRChjb250ZW50LmlkKTtcclxuICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IHVuZXNjYXBlKGNvbnRlbnQuY3NzKTtcclxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZChzdHlsZSk7XHJcbiAgICAgICAgY29udGVudC5lbGVtZW50ID0gc3R5bGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlVGhlbWUoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gY29udGVudC5lbGVtZW50IHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFV0aWxpdGllcy5lc2NhcGVJRChjb250ZW50LmlkKSk7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/thememanager.js\n"); /***/ }), @@ -515,7 +515,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 BuiltinModule; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _modules_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modules/utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\n\nclass BuiltinModule {\n get name() {\n return \"Unnamed Builtin\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"None\";\n }\n\n async initialize() {\n if (_modules_settingsmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get(this.collection, this.category, this.id)) await this.enable();\n _modules_emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].on(\"setting-updated\", (collection, category, id, enabled) => {\n if (collection != this.collection || category !== this.category || id !== this.id) return;\n if (enabled) this.enable();else this.disable();\n });\n }\n\n registerSetting(collection, category, id, onEnable, onDisable) {\n if (arguments.length == 4) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n onEnable = arguments[2];\n onDisable = arguments[3];\n } else if (arguments.length == 3) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n onEnable = arguments[1];\n onDisable = arguments[2];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(collection, category, id, value => {\n if (value) onEnable();else onDisable();\n });\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n } else if (arguments.length == 1) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].get(collection, category, id);\n }\n\n async enable() {\n this.log(\"Enabled\");\n await this.enabled();\n }\n\n async disable() {\n this.log(\"Disabled\");\n await this.disabled();\n }\n\n async enabled() {}\n\n async disabled() {}\n\n log(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(this.name, ...message);\n }\n\n warn(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].warn(this.name, ...message);\n }\n\n error(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].err(this.name, ...message);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvYnVpbHRpbi5qcz85NTYyIl0sIm5hbWVzIjpbIkJ1aWx0aW5Nb2R1bGUiLCJuYW1lIiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJpbml0aWFsaXplIiwiU2V0dGluZ3MiLCJnZXQiLCJlbmFibGUiLCJFdmVudHMiLCJvbiIsImVuYWJsZWQiLCJkaXNhYmxlIiwicmVnaXN0ZXJTZXR0aW5nIiwib25FbmFibGUiLCJvbkRpc2FibGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSIsImxvZyIsImRpc2FibGVkIiwibWVzc2FnZSIsIlV0aWxpdGllcyIsIndhcm4iLCJlcnJvciIsImVyciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFZSxNQUFNQSxhQUFOLENBQW9CO0FBRS9CLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8saUJBQVA7QUFBMEI7O0FBQ3RDLE1BQUlDLFVBQUosR0FBaUI7QUFBQyxXQUFPLFVBQVA7QUFBbUI7O0FBQ3JDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxNQUFQO0FBQWU7O0FBRXpCLFFBQU1DLFVBQU4sR0FBbUI7QUFDZixRQUFJQyxnRUFBUSxDQUFDQyxHQUFULENBQWEsS0FBS0wsVUFBbEIsRUFBOEIsS0FBS0MsUUFBbkMsRUFBNkMsS0FBS0MsRUFBbEQsQ0FBSixFQUEyRCxNQUFNLEtBQUtJLE1BQUwsRUFBTjtBQUMzREMsNERBQU0sQ0FBQ0MsRUFBUCxDQUFVLGlCQUFWLEVBQTZCLENBQUNSLFVBQUQsRUFBYUMsUUFBYixFQUF1QkMsRUFBdkIsRUFBMkJPLE9BQTNCLEtBQXVDO0FBQ2hFLFVBQUlULFVBQVUsSUFBSSxLQUFLQSxVQUFuQixJQUFpQ0MsUUFBUSxLQUFLLEtBQUtBLFFBQW5ELElBQStEQyxF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IHtTZXR0aW5nc1N0YXRlfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuLi9tb2R1bGVzL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuLi9tb2R1bGVzL2VtaXR0ZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9tb2R1bGVzL3NldHRpbmdzbWFuYWdlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbHRpbk1vZHVsZSB7XHJcblxyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVW5uYW1lZCBCdWlsdGluXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJOb25lXCI7fVxyXG5cclxuICAgIGFzeW5jIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgaWYgKFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQpKSBhd2FpdCB0aGlzLmVuYWJsZSgpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCAoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uICE9IHRoaXMuY29sbGVjdGlvbiB8fCBjYXRlZ29yeSAhPT0gdGhpcy5jYXRlZ29yeSB8fCBpZCAhPT0gdGhpcy5pZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgdGhpcy5lbmFibGUoKTtcclxuICAgICAgICAgICAgZWxzZSB0aGlzLmRpc2FibGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclNldHRpbmcoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBvbkVuYWJsZSwgb25EaXNhYmxlKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGFyZ3VtZW50c1swXTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMV07XHJcbiAgICAgICAgICAgIG9uRW5hYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgICAgICBvbkRpc2FibGUgPSBhcmd1bWVudHNbM107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnk7XHJcbiAgICAgICAgICAgIGlkID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBvbkVuYWJsZSA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICAgICAgb25EaXNhYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU2V0dGluZ3Mub24oY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlKSBvbkVuYWJsZSgpO1xyXG4gICAgICAgICAgICBlbHNlIG9uRGlzYWJsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBpZCA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTZXR0aW5ncy5nZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBlbmFibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJFbmFibGVkXCIpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZW5hYmxlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRpc2FibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJEaXNhYmxlZFwiKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmRpc2FibGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHt9XHJcbiAgICBhc3luYyBkaXNhYmxlZCgpIHt9XHJcblxyXG4gICAgbG9nKC4uLm1lc3NhZ2UpIHtcclxuICAgICAgICBVdGlsaXRpZXMubG9nKHRoaXMubmFtZSwgLi4ubWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2FybiguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLndhcm4odGhpcy5uYW1lLCAuLi5tZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBlcnJvciguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLmVycih0aGlzLm5hbWUsIC4uLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/structs/builtin.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BuiltinModule; });\n/* harmony import */ var _modules_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\nclass BuiltinModule {\n get name() {\n return \"Unnamed Builtin\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"None\";\n }\n\n async initialize() {\n if (_modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(this.collection, this.category, this.id)) await this.enable();\n _modules_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(\"setting-updated\", (collection, category, id, enabled) => {\n if (collection != this.collection || category !== this.category || id !== this.id) return;\n if (enabled) this.enable();else this.disable();\n });\n }\n\n registerSetting(collection, category, id, onEnable, onDisable) {\n if (arguments.length == 4) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n onEnable = arguments[2];\n onDisable = arguments[3];\n } else if (arguments.length == 3) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n onEnable = arguments[1];\n onDisable = arguments[2];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].on(collection, category, id, value => {\n if (value) onEnable();else onDisable();\n });\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n } else if (arguments.length == 1) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(collection, category, id);\n }\n\n async enable() {\n this.log(\"Enabled\");\n await this.enabled();\n }\n\n async disable() {\n this.log(\"Disabled\");\n await this.disabled();\n }\n\n async enabled() {}\n\n async disabled() {}\n\n log(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, ...message);\n }\n\n warn(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(this.name, ...message);\n }\n\n error(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, ...message);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvYnVpbHRpbi5qcz85NTYyIl0sIm5hbWVzIjpbIkJ1aWx0aW5Nb2R1bGUiLCJuYW1lIiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJpbml0aWFsaXplIiwiU2V0dGluZ3MiLCJnZXQiLCJlbmFibGUiLCJFdmVudHMiLCJvbiIsImVuYWJsZWQiLCJkaXNhYmxlIiwicmVnaXN0ZXJTZXR0aW5nIiwib25FbmFibGUiLCJvbkRpc2FibGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSIsImxvZyIsImRpc2FibGVkIiwibWVzc2FnZSIsIlV0aWxpdGllcyIsIndhcm4iLCJlcnJvciIsImVyciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLGFBQU4sQ0FBb0I7QUFFL0IsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxpQkFBUDtBQUEwQjs7QUFDdEMsTUFBSUMsVUFBSixHQUFpQjtBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFDckMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxTQUFQO0FBQWtCOztBQUNsQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLE1BQVA7QUFBZTs7QUFFekIsUUFBTUMsVUFBTixHQUFtQjtBQUNmLFFBQUlDLGdFQUFRLENBQUNDLEdBQVQsQ0FBYSxLQUFLTCxVQUFsQixFQUE4QixLQUFLQyxRQUFuQyxFQUE2QyxLQUFLQyxFQUFsRCxDQUFKLEVBQTJELE1BQU0sS0FBS0ksTUFBTCxFQUFOO0FBQzNEQyw0REFBTSxDQUFDQyxFQUFQLENBQVUsaUJBQVYsRUFBNkIsQ0FBQ1IsVUFBRCxFQUFhQyxRQUFiLEVBQXVCQyxFQUF2QixFQUEyQk8sT0FBM0IsS0FBdUM7QUFDaEUsVUFBSVQsVUFBVSxJQUFJLEtBQUtBLFVBQW5CLElBQWlDQyxRQUFRLEtBQUssS0FBS0EsUUFBbkQsSUFBK0RDLEVBQUUsS0FBSyxLQUFLQSxFQUEvRSxFQUFtRjtBQUNuRixVQUFJTyxPQUFKLEVBQWEsS0FBS0gsTUFBTCxHQUFiLEtBQ0ssS0FBS0ksT0FBTDtBQUNSLEtBSkQ7QUFLSDs7QUFFREMsaUJBQWUsQ0FBQ1gsVUFBRCxFQUFhQyxRQUFiLEVBQXVCQyxFQUF2QixFQUEyQlUsUUFBM0IsRUFBcUNDLFNBQXJDLEVBQWdEO0FBQzNELFFBQUlDLFNBQVMsQ0FBQ0MsTUFBVixJQUFvQixDQUF4QixFQUEyQjtBQUN2QmYsZ0JBQVUsR0FBRyxLQUFLQSxVQUFsQjtBQUNBQyxjQUFRLEdBQUdhLFNBQVMsQ0FBQyxDQUFELENBQXBCO0FBQ0FaLFFBQUUsR0FBR1ksU0FBUyxDQUFDLENBQUQsQ0FBZDtBQUNBRixjQUFRLEdBQUdFLFNBQVMsQ0FBQyxDQUFELENBQXBCO0FBQ0FELGVBQVMsR0FBR0MsU0FBUyxDQUFDLENBQUQsQ0FBckI7QUFDSCxLQU5ELE1BT0ssSUFBSUEsU0FBUyxDQUFDQyxNQUFWLElBQW9CLENBQXhCLEVBQTJCO0FBQzVCZixnQkFBVSxHQUFHLEtBQUtBLFVBQWxCO0FBQ0FDLGNBQVEsR0FBRyxLQUFLQSxRQUFoQjtBQUNBQyxRQUFFLEdBQUdZLFNBQVMsQ0FBQyxDQUFELENBQWQ7QUFDQUYsY0FBUSxHQUFHRSxTQUFTLENBQUMsQ0FBRCxDQUFwQjtBQUNBRCxlQUFTLEdBQUdDLFNBQVMsQ0FBQyxDQUFELENBQXJCO0FBQ0g7O0FBQ0QsV0FBT1YsZ0VBQVEsQ0FBQ0ksRUFBVCxDQUFZUixVQUFaLEVBQXdCQyxRQUF4QixFQUFrQ0MsRUFBbEMsRUFBdUNjLEtBQUQsSUFBVztBQUNwRCxVQUFJQSxLQUFKLEVBQVdKLFFBQVEsR0FBbkIsS0FDS0MsU0FBUztBQUNqQixLQUhNLENBQVA7QUFJSDs7QUFFRFIsS0FBRyxDQUFDTCxVQUFELEVBQWFDLFFBQWIsRUFBdUJDLEVBQXZCLEVBQTJCO0FBQzFCLFFBQUlZLFNBQVMsQ0FBQ0MsTUFBVixJQUFvQixDQUF4QixFQUEyQjtBQUN2QmYsZ0JBQVUsR0FBRyxLQUFLQSxVQUFsQjtBQUNBQyxjQUFRLEdBQUdhLFNBQVMsQ0FBQyxDQUFELENBQXBCO0FBQ0FaLFFBQUUsR0FBR1ksU0FBUyxDQUFDLENBQUQsQ0FBZDtBQUNILEtBSkQsTUFLSyxJQUFJQSxTQUFTLENBQUNDLE1BQVYsSUFBb0IsQ0FBeEIsRUFBMkI7QUFDNUJmLGdCQUFVLEdBQUcsS0FBS0EsVUFBbEI7QUFDQUMsY0FBUSxHQUFHLEtBQUtBLFFBQWhCO0FBQ0FDLFFBQUUsR0FBR1ksU0FBUyxDQUFDLENBQUQsQ0FBZDtBQUNIOztBQUNELFdBQU9WLGdFQUFRLENBQUNDLEdBQVQsQ0FBYUwsVUFBYixFQUF5QkMsUUFBekIsRUFBbUNDLEVBQW5DLENBQVA7QUFDSDs7QUFFRCxRQUFNSSxNQUFOLEdBQWU7QUFDWCxTQUFLVyxHQUFMLENBQVMsU0FBVDtBQUNBLFVBQU0sS0FBS1IsT0FBTCxFQUFOO0FBQ0g7O0FBRUQsUUFBTUMsT0FBTixHQUFnQjtBQUNaLFNBQUtPLEdBQUwsQ0FBUyxVQUFUO0FBQ0EsVUFBTSxLQUFLQyxRQUFMLEVBQU47QUFDSDs7QUFFRCxRQUFNVCxPQUFOLEdBQWdCLENBQUU7O0FBQ2xCLFFBQU1TLFFBQU4sR0FBaUIsQ0FBRTs7QUFFbkJELEtBQUcsQ0FBQyxHQUFHRSxPQUFKLEVBQWE7QUFDWkMsOERBQVMsQ0FBQ0gsR0FBVixDQUFjLEtBQUtsQixJQUFuQixFQUF5QixHQUFHb0IsT0FBNUI7QUFDSDs7QUFFREUsTUFBSSxDQUFDLEdBQUdGLE9BQUosRUFBYTtBQUNiQyw4REFBUyxDQUFDQyxJQUFWLENBQWUsS0FBS3RCLElBQXBCLEVBQTBCLEdBQUdvQixPQUE3QjtBQUNIOztBQUVERyxPQUFLLENBQUMsR0FBR0gsT0FBSixFQUFhO0FBQ2RDLDhEQUFTLENBQUNHLEdBQVYsQ0FBYyxLQUFLeEIsSUFBbkIsRUFBeUIsR0FBR29CLE9BQTVCO0FBQ0g7O0FBMUU4QiIsImZpbGUiOiIuL3NyYy9zdHJ1Y3RzL2J1aWx0aW4uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuLi9tb2R1bGVzL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuLi9tb2R1bGVzL2VtaXR0ZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9tb2R1bGVzL3NldHRpbmdzbWFuYWdlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbHRpbk1vZHVsZSB7XHJcblxyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVW5uYW1lZCBCdWlsdGluXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJOb25lXCI7fVxyXG5cclxuICAgIGFzeW5jIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgaWYgKFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQpKSBhd2FpdCB0aGlzLmVuYWJsZSgpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCAoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uICE9IHRoaXMuY29sbGVjdGlvbiB8fCBjYXRlZ29yeSAhPT0gdGhpcy5jYXRlZ29yeSB8fCBpZCAhPT0gdGhpcy5pZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgdGhpcy5lbmFibGUoKTtcclxuICAgICAgICAgICAgZWxzZSB0aGlzLmRpc2FibGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclNldHRpbmcoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBvbkVuYWJsZSwgb25EaXNhYmxlKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGFyZ3VtZW50c1swXTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMV07XHJcbiAgICAgICAgICAgIG9uRW5hYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgICAgICBvbkRpc2FibGUgPSBhcmd1bWVudHNbM107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnk7XHJcbiAgICAgICAgICAgIGlkID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBvbkVuYWJsZSA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICAgICAgb25EaXNhYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU2V0dGluZ3Mub24oY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlKSBvbkVuYWJsZSgpO1xyXG4gICAgICAgICAgICBlbHNlIG9uRGlzYWJsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBpZCA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTZXR0aW5ncy5nZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBlbmFibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJFbmFibGVkXCIpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZW5hYmxlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRpc2FibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJEaXNhYmxlZFwiKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmRpc2FibGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHt9XHJcbiAgICBhc3luYyBkaXNhYmxlZCgpIHt9XHJcblxyXG4gICAgbG9nKC4uLm1lc3NhZ2UpIHtcclxuICAgICAgICBVdGlsaXRpZXMubG9nKHRoaXMubmFtZSwgLi4ubWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2FybiguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLndhcm4odGhpcy5uYW1lLCAuLi5tZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBlcnJvciguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLmVycih0aGlzLm5hbWUsIC4uLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/structs/builtin.js\n"); /***/ }), @@ -579,6 +579,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), +/***/ "./src/ui/icons/reload.js": +/*!********************************!*\ + !*** ./src/ui/icons/reload.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 V2C_ReloadIcon; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass V2C_ReloadIcon extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"#dcddde\",\n className: \"bd-reload \" + this.props.className,\n onClick: this.props.onClick,\n style: {\n width: this.props.size || \"24px\",\n height: this.props.size || \"24px\"\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3JlbG9hZC5qcz8yM2U3Il0sIm5hbWVzIjpbIlYyQ19SZWxvYWRJY29uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsInhtbG5zIiwidmlld0JveCIsImZpbGwiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwic3R5bGUiLCJ3aWR0aCIsInNpemUiLCJoZWlnaHQiLCJkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLGNBQU4sU0FBNkJDLDZDQUFLLENBQUNDLFNBQW5DLENBQTZDO0FBQ3hEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBT0osNkNBQUssQ0FBQ0ssYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUMxQkMsV0FBSyxFQUFFLDRCQURtQjtBQUUxQkMsYUFBTyxFQUFFLFdBRmlCO0FBRzFCQyxVQUFJLEVBQUUsU0FIb0I7QUFJMUJDLGVBQVMsRUFBRSxlQUFlLEtBQUtOLEtBQUwsQ0FBV00sU0FKWDtBQUsxQkMsYUFBTyxFQUFFLEtBQUtQLEtBQUwsQ0FBV08sT0FMTTtBQU0xQkMsV0FBSyxFQUFFO0FBQUNDLGFBQUssRUFBRSxLQUFLVCxLQUFMLENBQVdVLElBQVgsSUFBbUIsTUFBM0I7QUFBbUNDLGNBQU0sRUFBRSxLQUFLWCxLQUFMLENBQVdVLElBQVgsSUFBbUI7QUFBOUQ7QUFObUIsS0FBM0IsRUFRSGIsNkNBQUssQ0FBQ0ssYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDVSxPQUFDLEVBQUU7QUFBSixLQUE1QixDQVJHLEVBU0hmLDZDQUFLLENBQUNLLGFBQU4sQ0FBb0IsTUFBcEIsRUFBNEI7QUFBQ0csVUFBSSxFQUFFLE1BQVA7QUFBZU8sT0FBQyxFQUFFO0FBQWxCLEtBQTVCLENBVEcsQ0FBUDtBQVdIOztBQWpCdUQiLCJmaWxlIjoiLi9zcmMvdWkvaWNvbnMvcmVsb2FkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19SZWxvYWRJY29uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7XHJcbiAgICAgICAgICAgICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxyXG4gICAgICAgICAgICAgICAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcclxuICAgICAgICAgICAgICAgIGZpbGw6IFwiI2RjZGRkZVwiLFxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImJkLXJlbG9hZCBcIiArIHRoaXMucHJvcHMuY2xhc3NOYW1lLFxyXG4gICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5wcm9wcy5vbkNsaWNrLFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6IHt3aWR0aDogdGhpcy5wcm9wcy5zaXplIHx8IFwiMjRweFwiLCBoZWlnaHQ6IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIn1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge2Q6IFwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwifSksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtmaWxsOiBcIm5vbmVcIiwgZDogXCJNMCAwaDI0djI0SDB6XCJ9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/reload.js\n"); + +/***/ }), + /***/ "./src/ui/modals.js": /*!**************************!*\ !*** ./src/ui/modals.js ***! @@ -687,6 +699,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), +/***/ "./src/ui/settings/contentlist.jsx": +/*!*****************************************!*\ + !*** ./src/ui/settings/contentlist.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 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.js\");\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"); + +/***/ }), + /***/ "./src/ui/settings/divider.jsx": /*!*************************************!*\ !*** ./src/ui/settings/divider.jsx ***! @@ -719,7 +743,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 V2C_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.js\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n // import ReloadIcon from \"../icons/reload\";\n\nclass V2C_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: modules__WEBPACK_IMPORTED_MODULE_0__[\"PluginManager\"].isEnabled(this.props.content.id),\n settings: 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(); // this.reload = this.reload.bind(this);\n // this.onReload = this.onReload.bind(this);\n }\n\n componentDidUpdate() {\n if (this.state.settings) {\n if (typeof this.settingsPanel === \"object\") {\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.settings) {\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 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 settings: false\n });\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), typeof self.settingsPanel === \"object\" && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef\n }), typeof self.settingsPanel !== \"object\" && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef,\n dangerouslySetInnerHTML: {\n __html: self.settingsPanel\n }\n }));\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 }, //!SettingsCookie[\"fork-ps-5\"] && React.createElement(ReloadIcon, {className: \"bd-reload-card\", 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 });\n modules__WEBPACK_IMPORTED_MODULE_0__[\"PluginManager\"].togglePlugin(this.props.content.id);\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settings: true\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanM/NzczZCJdLCJuYW1lcyI6WyJWMkNfUGx1Z2luQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uQ2hhbmdlIiwiYmluZCIsInNob3dTZXR0aW5ncyIsInN0YXRlIiwiY2hlY2tlZCIsIlBsdWdpbk1hbmFnZXIiLCJpc0VuYWJsZWQiLCJjb250ZW50IiwiaWQiLCJzZXR0aW5ncyIsImhhc1NldHRpbmdzIiwicGx1Z2luIiwiZ2V0U2V0dGluZ3NQYW5lbCIsInNldHRpbmdzUGFuZWwiLCJwYW5lbFJlZiIsImNyZWF0ZVJlZiIsImNvbXBvbmVudERpZFVwZGF0ZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJzZWxmIiwiJCIsInBhcmVudHMiLCJhbmltYXRlIiwib2Zmc2V0IiwidG9wIiwiZ2V0U3RyaW5nIiwidmFsdWUiLCJ0b1N0cmluZyIsInJlbmRlciIsIm5hbWUiLCJhdXRob3IiLCJkZXNjcmlwdGlvbiIsInZlcnNpb24iLCJ3ZWJzaXRlIiwic291cmNlIiwiZXJyIiwiVXRpbGl0aWVzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwib25DbGljayIsImlubmVySFRNTCIsInNldFN0YXRlIiwiQ2xvc2VCdXR0b24iLCJyZWYiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImZsZXgiLCJ0eXBlIiwiaHJlZiIsInRhcmdldCIsImRpc2FibGVkIiwidG9nZ2xlUGx1Z2luIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7Q0FFQTs7QUFFZSxNQUFNQSxjQUFOLFNBQTZCQyw2Q0FBSyxDQUFDQyxTQUFuQyxDQUE2QztBQUV4REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEI7QUFDQSxTQUFLQyxZQUFMLEdBQW9CLEtBQUtBLFlBQUwsQ0FBa0JELElBQWxCLENBQXVCLElBQXZCLENBQXBCO0FBQ0EsU0FBS0UsS0FBTCxHQUFhO0FBQ1RDLGFBQU8sRUFBRUMscURBQWEsQ0FBQ0MsU0FBZCxDQUF3QixLQUFLUCxLQUFMLENBQVdRLE9BQVgsQ0FBbUJDLEVBQTNDLENBREE7QUFFVEMsY0FBUSxFQUFFO0FBRkQsS0FBYjtBQUlBLFNBQUtDLFdBQUwsR0FBbUIsT0FBTyxLQUFLWCxLQUFMLENBQVdRLE9BQVgsQ0FBbUJJLE1BQW5CLENBQTBCQyxnQkFBakMsS0FBc0QsVUFBekU7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLEVBQXJCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQmxCLDZDQUFLLENBQUNtQixTQUFOLEVBQWhCLENBVmUsQ0FZZjtBQUNBO0FBQ0g7O0FBRURDLG9CQUFrQixHQUFHO0FBQ2pCLFFBQUksS0FBS2IsS0FBTCxDQUFXTSxRQUFmLEVBQXlCO0FBQ3JCLFVBQUksT0FBTyxLQUFLSSxhQUFaLEtBQThCLFFBQWxDLEVBQTRDO0FBQ3hDLGFBQUtDLFFBQUwsQ0FBY0csT0FBZCxDQUFzQkMsV0FBdEIsQ0FBa0MsS0FBS0wsYUFBdkM7QUFDSCxPQUhvQixDQUtyQjs7O0FBQ0EsWUFBTU0sUUFBUSxHQUFHLENBQUNDLFNBQUQsRUFBWUMsT0FBWixLQUF3QjtBQUVyQyxjQUFNQyxJQUFJLEdBQUdGLFNBQVMsQ0FBQ0csU0FBdkI7QUFDQSxjQUFNQyxPQUFPLEdBQUdGLElBQUksR0FBR0YsU0FBUyxDQUFDSyxZQUFqQztBQUVBLGNBQU1DLElBQUksR0FBR0wsT0FBTyxDQUFDTSxTQUFyQjtBQUNBLGNBQU1DLE9BQU8sR0FBR0YsSUFBSSxHQUFHTCxPQUFPLENBQUNJLFlBQS9CO0FBRUEsZUFBU0MsSUFBSSxHQUFHSixJQUFQLElBQWVNLE9BQU8sR0FBR0osT0FBbEM7QUFDSCxPQVREOztBQVdBLFlBQU1LLElBQUksR0FBR0MsQ0FBQyxDQUFDLEtBQUtoQixRQUFMLENBQWNHLE9BQWYsQ0FBZDtBQUNBLFlBQU1HLFNBQVMsR0FBR1MsSUFBSSxDQUFDRSxPQUFMLENBQWEsa0JBQWIsQ0FBbEI7QUFDQSxVQUFJLENBQUNaLFFBQVEsQ0FBQ0MsU0FBUyxDQUFDLENBQUQsQ0FBVixFQUFlUyxJQUFJLENBQUMsQ0FBRCxDQUFuQixDQUFiLEVBQXNDO0FBQ3RDVCxlQUFTLENBQUNZLE9BQVYsQ0FBa0I7QUFDZFQsaUJBQVMsRUFBRU0sSUFBSSxDQUFDSSxNQUFMLEdBQWNDLEdBQWQsR0FBb0JkLFNBQVMsQ0FBQ2EsTUFBVixHQUFtQkMsR0FBdkMsR0FBNkNkLFNBQVMsQ0FBQ0csU0FBVixFQUE3QyxHQUFxRTtBQURsRSxPQUFsQixFQUVHLEdBRkg7QUFHSDtBQUNKOztBQUVEWSxXQUFTLENBQUNDLEtBQUQsRUFBUTtBQUNiLFdBQU8sT0FBT0EsS0FBUCxJQUFnQixRQUFoQixHQUEyQkEsS0FBM0IsR0FBbUNBLEtBQUssQ0FBQ0MsUUFBTixFQUExQztBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxVQUFNVCxJQUFJLEdBQUcsSUFBYjtBQUNBLFVBQU07QUFBQ3RCO0FBQUQsUUFBWSxLQUFLUixLQUF2QjtBQUNBLFVBQU13QyxJQUFJLEdBQUcsS0FBS0osU0FBTCxDQUFlNUIsT0FBTyxDQUFDZ0MsSUFBdkIsQ0FBYjtBQUNBLFVBQU1DLE1BQU0sR0FBRyxLQUFLTCxTQUFMLENBQWU1QixPQUFPLENBQUNpQyxNQUF2QixDQUFmO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLEtBQUtOLFNBQUwsQ0FBZTVCLE9BQU8sQ0FBQ2tDLFdBQXZCLENBQXBCO0FBQ0EsVUFBTUMsT0FBTyxHQUFHLEtBQUtQLFNBQUwsQ0FBZTVCLE9BQU8sQ0FBQ21DLE9BQXZCLENBQWhCO0FBQ0EsVUFBTUMsT0FBTyxHQUFHcEMsT0FBTyxDQUFDb0MsT0FBeEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdyQyxPQUFPLENBQUNxQyxNQUF2Qjs7QUFFQSxRQUFJLEtBQUt6QyxLQUFMLENBQVdNLFFBQWYsRUFBeUI7QUFDckIsVUFBSTtBQUFFb0IsWUFBSSxDQUFDaEIsYUFBTCxHQUFxQk4sT0FBTyxDQUFDSSxNQUFSLENBQWVDLGdCQUFmLEVBQXJCO0FBQXlELE9BQS9ELENBQ0EsT0FBT2lDLEdBQVAsRUFBWTtBQUFFQyx5REFBUyxDQUFDRCxHQUFWLENBQWMsU0FBZCxFQUF5QixzQ0FBc0N0QyxPQUFPLENBQUNnQyxJQUE5QyxHQUFxRCxHQUE5RSxFQUFtRk0sR0FBbkY7QUFBMEY7O0FBRXhHLGFBQU9qRCw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixJQUFwQixFQUEwQjtBQUFDQyxpQkFBUyxFQUFFO0FBQVosT0FBMUIsRUFDQ3BELDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUNFLGFBQUssRUFBRTtBQUFDLG1CQUFTLE9BQVY7QUFBbUIsb0JBQVU7QUFBN0IsU0FBUjtBQUFpREMsZUFBTyxFQUFFLE1BQU07QUFDbkYsZUFBS3BDLFFBQUwsQ0FBY0csT0FBZCxDQUFzQmtDLFNBQXRCLEdBQWtDLEVBQWxDO0FBQ0F0QixjQUFJLENBQUN1QixRQUFMLENBQWM7QUFBQzNDLG9CQUFRLEVBQUU7QUFBWCxXQUFkO0FBQ0g7QUFIc0IsT0FBM0IsRUFJQWIsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0JNLG9EQUFwQixFQUFpQyxJQUFqQyxDQUpBLENBREQsRUFPSCxPQUFPeEIsSUFBSSxDQUFDaEIsYUFBWixLQUE4QixRQUE5QixJQUEwQ2pCLDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUN2QyxVQUFFLEVBQUcsbUJBQWtCK0IsSUFBSyxFQUE3QjtBQUFnQ1MsaUJBQVMsRUFBRSxpQkFBM0M7QUFBOERNLFdBQUcsRUFBRSxLQUFLeEM7QUFBeEUsT0FBM0IsQ0FQdkMsRUFRSCxPQUFPZSxJQUFJLENBQUNoQixhQUFaLEtBQThCLFFBQTlCLElBQTBDakIsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ3ZDLFVBQUUsRUFBRyxtQkFBa0IrQixJQUFLLEVBQTdCO0FBQWdDUyxpQkFBUyxFQUFFLGlCQUEzQztBQUE4RE0sV0FBRyxFQUFFLEtBQUt4QyxRQUF4RTtBQUFrRnlDLCtCQUF1QixFQUFFO0FBQUNDLGdCQUFNLEVBQUUzQixJQUFJLENBQUNoQjtBQUFkO0FBQTNHLE9BQTNCLENBUnZDLENBQVA7QUFVSDs7QUFFRCxXQUFPakIsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0IsSUFBcEIsRUFBMEI7QUFBQyxtQkFBYVIsSUFBZDtBQUFvQixzQkFBZ0JHLE9BQXBDO0FBQTZDLG1CQUFhO0FBQTFELEtBQTFCLEVBQ0g5Qyw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUNRcEQsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0IsTUFBcEIsRUFBNEI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBNUIsRUFDSXBELDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLE1BQXBCLEVBQTRCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTVCLEVBQXFEVCxJQUFyRCxDQURKLEVBRUksSUFGSixFQUdJM0MsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0IsTUFBcEIsRUFBNEI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBNUIsRUFBd0ROLE9BQXhELENBSEosRUFJSSxNQUpKLEVBS0k5Qyw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUF1RFIsTUFBdkQsQ0FMSixDQURSLEVBUVE1Qyw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUNJO0FBQ0FwRCxpREFBSyxDQUFDbUQsYUFBTixDQUFvQixPQUFwQixFQUE2QjtBQUFDQyxlQUFTLEVBQUUsaUNBQVo7QUFBK0NDLFdBQUssRUFBRTtBQUFDUSxZQUFJLEVBQUU7QUFBUDtBQUF0RCxLQUE3QixFQUNJN0QsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0IsT0FBcEIsRUFBNkI7QUFBQzNDLGFBQU8sRUFBRSxLQUFLRCxLQUFMLENBQVdDLE9BQXJCO0FBQThCSixjQUFRLEVBQUUsS0FBS0EsUUFBN0M7QUFBdURnRCxlQUFTLEVBQUUsb0JBQWxFO0FBQXdGVSxVQUFJLEVBQUU7QUFBOUYsS0FBN0IsQ0FESixFQUVJOUQsNkNBQUssQ0FBQ21ELGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFLEtBQUs3QyxLQUFMLENBQVdDLE9BQVgsR0FBcUIsbUJBQXJCLEdBQTJDO0FBQXZELEtBQTNCLENBRkosQ0FGSixDQVJSLENBREcsRUFpQkhSLDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTNCLEVBQ0lwRCw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUFvRVAsV0FBcEUsQ0FESixDQWpCRyxFQW9CSCxDQUFDRSxPQUFPLElBQUlDLE1BQVgsSUFBcUIsS0FBS2xDLFdBQTNCLEtBQTJDZCw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUN2Q3BELDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLE1BQXBCLEVBQTRCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTVCLEVBQ0lMLE9BQU8sSUFBSS9DLDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNDLGVBQVMsRUFBRSwyQkFBWjtBQUF5Q1csVUFBSSxFQUFFaEIsT0FBL0M7QUFBd0RpQixZQUFNLEVBQUU7QUFBaEUsS0FBekIsRUFBb0csU0FBcEcsQ0FEZixFQUVJakIsT0FBTyxJQUFJQyxNQUFYLElBQXFCLEtBRnpCLEVBR0lBLE1BQU0sSUFBSWhELDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNDLGVBQVMsRUFBRSwwQkFBWjtBQUF3Q1csVUFBSSxFQUFFZixNQUE5QztBQUFzRGdCLFlBQU0sRUFBRTtBQUE5RCxLQUF6QixFQUFrRyxRQUFsRyxDQUhkLENBRHVDLEVBTXZDLEtBQUtsRCxXQUFMLElBQW9CZCw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixRQUFwQixFQUE4QjtBQUFDRyxhQUFPLEVBQUUsS0FBS2hELFlBQWY7QUFBNkI4QyxlQUFTLEVBQUUscUJBQXhDO0FBQStEYSxjQUFRLEVBQUUsQ0FBQyxLQUFLMUQsS0FBTCxDQUFXQztBQUFyRixLQUE5QixFQUE2SCxVQUE3SCxDQU5tQixDQXBCeEMsQ0FBUDtBQTZCSDs7QUFFREosVUFBUSxHQUFHO0FBQ1AsU0FBS29ELFFBQUwsQ0FBYztBQUFDaEQsYUFBTyxFQUFFLENBQUMsS0FBS0QsS0FBTCxDQUFXQztBQUF0QixLQUFkO0FBQ0FDLHlEQUFhLENBQUN5RCxZQUFkLENBQTJCLEtBQUsvRCxLQUFMLENBQVdRLE9BQVgsQ0FBbUJDLEVBQTlDO0FBQ0g7O0FBRUROLGNBQVksR0FBRztBQUNYLFFBQUksQ0FBQyxLQUFLUSxXQUFWLEVBQXVCO0FBQ3ZCLFNBQUswQyxRQUFMLENBQWM7QUFBQzNDLGNBQVEsRUFBRTtBQUFYLEtBQWQ7QUFDSDs7QUFsSHVEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQge1NldHRpbmdzQ29va2llLCBQbHVnaW5Db29raWUsIFBsdWdpbnN9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7UmVhY3QsIFV0aWxpdGllcywgUGx1Z2luTWFuYWdlcn0gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gXCIuLi9pY29ucy9jbG9zZVwiO1xyXG4vLyBpbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfUGx1Z2luQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNob3dTZXR0aW5ncyA9IHRoaXMuc2hvd1NldHRpbmdzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogUGx1Z2luTWFuYWdlci5pc0VuYWJsZWQodGhpcy5wcm9wcy5jb250ZW50LmlkKSxcclxuICAgICAgICAgICAgc2V0dGluZ3M6IGZhbHNlXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmhhc1NldHRpbmdzID0gdHlwZW9mIHRoaXMucHJvcHMuY29udGVudC5wbHVnaW4uZ2V0U2V0dGluZ3NQYW5lbCA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NQYW5lbCA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5wYW5lbFJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgLy8gdGhpcy5vblJlbG9hZCA9IHRoaXMub25SZWxvYWQuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3MpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzUGFuZWwgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxSZWYuY3VycmVudC5hcHBlbmRDaGlsZCh0aGlzLnNldHRpbmdzUGFuZWwpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBpZiAoIVNldHRpbmdzQ29va2llW1wiZm9yay1wcy0zXCJdKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gKGNvbnRhaW5lciwgZWxlbWVudCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY0JvdHRvbSA9IGNUb3AgKyBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGVUb3AgPSBlbGVtZW50Lm9mZnNldFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVCb3R0b20gPSBlVG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHJldHVybiAgKGVUb3AgPCBjVG9wIHx8IGVCb3R0b20gPiBjQm90dG9tKTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGYgPSAkKHRoaXMucGFuZWxSZWYuY3VycmVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHNlbGYucGFyZW50cyhcIi5zY3JvbGxlci0yRktGUEdcIik7XHJcbiAgICAgICAgICAgIGlmICghaXNIaWRkZW4oY29udGFpbmVyWzBdLCBzZWxmWzBdKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb250YWluZXIuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHNlbGYub2Zmc2V0KCkudG9wIC0gY29udGFpbmVyLm9mZnNldCgpLnRvcCArIGNvbnRhaW5lci5zY3JvbGxUb3AoKSAtIDMwXHJcbiAgICAgICAgICAgIH0sIDMwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFN0cmluZyh2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgY29uc3Qge2NvbnRlbnR9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC5uYW1lKTtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSB0aGlzLmdldFN0cmluZyhjb250ZW50LmF1dGhvcik7XHJcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLmdldFN0cmluZyhjb250ZW50LmRlc2NyaXB0aW9uKTtcclxuICAgICAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC52ZXJzaW9uKTtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zZXR0aW5ncykge1xyXG4gICAgICAgICAgICB0cnkgeyBzZWxmLnNldHRpbmdzUGFuZWwgPSBjb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsKCk7IH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBnZXQgc2V0dGluZ3MgcGFuZWwgZm9yIFwiICsgY29udGVudC5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge2NsYXNzTmFtZTogXCJzZXR0aW5ncy1vcGVuIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB7XCJmbG9hdFwiOiBcInJpZ2h0XCIsIFwiY3Vyc29yXCI6IFwicG9pbnRlclwifSwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtzZXR0aW5nczogZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChDbG9zZUJ1dHRvbiwgbnVsbClcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB0eXBlb2Ygc2VsZi5zZXR0aW5nc1BhbmVsID09PSBcIm9iamVjdFwiICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2lkOiBgcGx1Z2luLXNldHRpbmdzLSR7bmFtZX1gLCBjbGFzc05hbWU6IFwicGx1Z2luLXNldHRpbmdzXCIsIHJlZjogdGhpcy5wYW5lbFJlZn0pLFxyXG4gICAgICAgICAgICAgICAgdHlwZW9mIHNlbGYuc2V0dGluZ3NQYW5lbCAhPT0gXCJvYmplY3RcIiAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtpZDogYHBsdWdpbi1zZXR0aW5ncy0ke25hbWV9YCwgY2xhc3NOYW1lOiBcInBsdWdpbi1zZXR0aW5nc1wiLCByZWY6IHRoaXMucGFuZWxSZWYsIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7X19odG1sOiBzZWxmLnNldHRpbmdzUGFuZWx9fSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge1wiZGF0YS1uYW1lXCI6IG5hbWUsIFwiZGF0YS12ZXJzaW9uXCI6IHZlcnNpb24sIFwiY2xhc3NOYW1lXCI6IFwic2V0dGluZ3MtY2xvc2VkIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlclwifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXItdGl0bGVcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLW5hbWVcIn0sIG5hbWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiB2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLXZlcnNpb25cIn0sIHZlcnNpb24pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBieSBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtYXV0aG9yXCJ9LCBhdXRob3IpXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWNvbnRyb2xzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyFTZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtNVwiXSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFJlbG9hZEljb24sIHtjbGFzc05hbWU6IFwiYmQtcmVsb2FkLWNhcmRcIiwgb25DbGljazogdGhpcy5yZWxvYWR9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtjbGFzc05hbWU6IFwidWktc3dpdGNoLXdyYXBwZXIgdWktZmxleC1jaGlsZFwiLCBzdHlsZToge2ZsZXg6IFwiMCAwIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtjaGVja2VkOiB0aGlzLnN0YXRlLmNoZWNrZWQsIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLCBjbGFzc05hbWU6IFwidWktc3dpdGNoLWNoZWNrYm94XCIsIHR5cGU6IFwiY2hlY2tib3hcIn0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiB0aGlzLnN0YXRlLmNoZWNrZWQgPyBcInVpLXN3aXRjaCBjaGVja2VkXCIgOiBcInVpLXN3aXRjaFwifSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbi13cmFwIHNjcm9sbGVyLXdyYXAgZmFkZVwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24gc2Nyb2xsZXJcIn0sIGRlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAod2Vic2l0ZSB8fCBzb3VyY2UgfHwgdGhpcy5oYXNTZXR0aW5ncykgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rc1wifSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmsgYmRhLWxpbmstd2Vic2l0ZVwiLCBocmVmOiB3ZWJzaXRlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIldlYnNpdGVcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBzb3VyY2UgJiYgXCIgfCBcIixcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2UgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay1zb3VyY2VcIiwgaHJlZjogc291cmNlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIlNvdXJjZVwiKVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzU2V0dGluZ3MgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7b25DbGljazogdGhpcy5zaG93U2V0dGluZ3MsIGNsYXNzTmFtZTogXCJiZGEtc2V0dGluZ3MtYnV0dG9uXCIsIGRpc2FibGVkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSwgXCJTZXR0aW5nc1wiKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgUGx1Z2luTWFuYWdlci50b2dnbGVQbHVnaW4odGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc1NldHRpbmdzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2V0dGluZ3M6IHRydWV9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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 V2C_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.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.js\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n\n\nclass V2C_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/NzczZCJdLCJuYW1lcyI6WyJWMkNfUGx1Z2luQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uQ2hhbmdlIiwiYmluZCIsInNob3dTZXR0aW5ncyIsInN0YXRlIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJzZXR0aW5nc09wZW4iLCJoYXNTZXR0aW5ncyIsImNvbnRlbnQiLCJwbHVnaW4iLCJnZXRTZXR0aW5nc1BhbmVsIiwic2V0dGluZ3NQYW5lbCIsInBhbmVsUmVmIiwiY3JlYXRlUmVmIiwicmVsb2FkIiwiaWQiLCJmb3JjZVVwZGF0ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsIk5vZGUiLCJjdXJyZW50IiwiYXBwZW5kQ2hpbGQiLCJpc0hpZGRlbiIsImNvbnRhaW5lciIsImVsZW1lbnQiLCJjVG9wIiwic2Nyb2xsVG9wIiwiY0JvdHRvbSIsImNsaWVudEhlaWdodCIsImVUb3AiLCJvZmZzZXRUb3AiLCJlQm90dG9tIiwic2VsZiIsIiQiLCJwYXJlbnRzIiwiYW5pbWF0ZSIsIm9mZnNldCIsInRvcCIsImdldFN0cmluZyIsInZhbHVlIiwidG9TdHJpbmciLCJyZW5kZXIiLCJuYW1lIiwiYXV0aG9yIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwid2Vic2l0ZSIsInNvdXJjZSIsImVyciIsIlV0aWxpdGllcyIsImNsYXNzTmFtZSIsInJlZiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwib25DbGljayIsImlubmVySFRNTCIsInNldFN0YXRlIiwiQ2xvc2VCdXR0b24iLCJTZXR0aW5ncyIsImdldCIsIlJlbG9hZEljb24iLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJkaXNhYmxlZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFD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QUFDWCxRQUFJLENBQUMsS0FBS0ssV0FBVixFQUF1QjtBQUN2QixTQUFLaUQsUUFBTCxDQUFjO0FBQUNsRCxrQkFBWSxFQUFFO0FBQWYsS0FBZDtBQUNIOztBQTNIdUQiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvcGx1Z2luY2FyZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7U2V0dGluZ3NDb29raWUsIFBsdWdpbkNvb2tpZSwgUGx1Z2luc30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IHtSZWFjdCwgVXRpbGl0aWVzLCBTZXR0aW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gXCIuLi9pY29ucy9jbG9zZVwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfUGx1Z2luQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNob3dTZXR0aW5ncyA9IHRoaXMuc2hvd1NldHRpbmdzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5lbmFibGVkLC8vUGx1Z2luTWFuYWdlci5pc0VuYWJsZWQodGhpcy5wcm9wcy5jb250ZW50LmlkKSxcclxuICAgICAgICAgICAgc2V0dGluZ3NPcGVuOiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oYXNTZXR0aW5ncyA9IHR5cGVvZiB0aGlzLnByb3BzLmNvbnRlbnQucGx1Z2luLmdldFNldHRpbmdzUGFuZWwgPT09IFwiZnVuY3Rpb25cIjtcclxuICAgICAgICB0aGlzLnNldHRpbmdzUGFuZWwgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMucGFuZWxSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIC8vIHRoaXMub25SZWxvYWQgPSB0aGlzLm9uUmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5yZWxvYWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnQgPSB0aGlzLnByb3BzLnJlbG9hZCh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3NPcGVuKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuYXBwZW5kQ2hpbGQodGhpcy5zZXR0aW5nc1BhbmVsKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gaWYgKCFTZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtM1wiXSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IChjb250YWluZXIsIGVsZW1lbnQpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNCb3R0b20gPSBjVG9wICsgY29udGFpbmVyLmNsaWVudEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlVG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlQm90dG9tID0gZVRvcCArIGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIChlVG9wIDwgY1RvcCB8fCBlQm90dG9tID4gY0JvdHRvbSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzZWxmID0gJCh0aGlzLnBhbmVsUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBzZWxmLnBhcmVudHMoXCIuc2Nyb2xsZXItMkZLRlBHXCIpO1xyXG4gICAgICAgICAgICBpZiAoIWlzSGlkZGVuKGNvbnRhaW5lclswXSwgc2VsZlswXSkpIHJldHVybjtcclxuICAgICAgICAgICAgY29udGFpbmVyLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiBzZWxmLm9mZnNldCgpLnRvcCAtIGNvbnRhaW5lci5vZmZzZXQoKS50b3AgKyBjb250YWluZXIuc2Nyb2xsVG9wKCkgLSAzMFxyXG4gICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQubmFtZSk7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC5hdXRob3IpO1xyXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQudmVyc2lvbik7XHJcbiAgICAgICAgY29uc3Qgd2Vic2l0ZSA9IGNvbnRlbnQud2Vic2l0ZTtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZW50LnNvdXJjZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3NPcGVuKSB7XHJcbiAgICAgICAgICAgIHRyeSB7IHNlbGYuc2V0dGluZ3NQYW5lbCA9IGNvbnRlbnQucGx1Z2luLmdldFNldHRpbmdzUGFuZWwoKTsgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxpdGllcy5lcnIoXCJQbHVnaW5zXCIsIFwiVW5hYmxlIHRvIGdldCBzZXR0aW5ncyBwYW5lbCBmb3IgXCIgKyBjb250ZW50Lm5hbWUgKyBcIi5cIiwgZXJyKTsgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSB7aWQ6IGBwbHVnaW4tc2V0dGluZ3MtJHtuYW1lfWAsIGNsYXNzTmFtZTogXCJwbHVnaW4tc2V0dGluZ3NcIiwgcmVmOiB0aGlzLnBhbmVsUmVmfTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZih0aGlzLnNldHRpbmdzUGFuZWwpID09IFwic3RyaW5nXCIpIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID0gdGhpcy5zZXR0aW5nc1BhbmVsO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7Y2xhc3NOYW1lOiBcInNldHRpbmdzLW9wZW4gdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7c3R5bGU6IHtcImZsb2F0XCI6IFwicmlnaHRcIiwgXCJjdXJzb3JcIjogXCJwb2ludGVyXCJ9LCBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0U3RhdGUoe3NldHRpbmdzT3BlbjogZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChDbG9zZUJ1dHRvbiwgbnVsbClcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHByb3BzLCB0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBSZWFjdC5Db21wb25lbnQgPyB0aGlzLnNldHRpbmdzUGFuZWwgOiBudWxsKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZC1jYXJkXCIsIG9uQ2xpY2s6IHRoaXMucmVsb2FkfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIiwgc3R5bGU6IHtmbGV4OiBcIjAgMCBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7Y2hlY2tlZDogdGhpcy5zdGF0ZS5jaGVja2VkLCBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgY2xhc3NOYW1lOiBcInVpLXN3aXRjaC1jaGVja2JveFwiLCB0eXBlOiBcImNoZWNrYm94XCJ9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogdGhpcy5zdGF0ZS5jaGVja2VkID8gXCJ1aS1zd2l0Y2ggY2hlY2tlZFwiIDogXCJ1aS1zd2l0Y2hcIn0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCJ9LCBkZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKHdlYnNpdGUgfHwgc291cmNlIHx8IHRoaXMuaGFzU2V0dGluZ3MpICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZm9vdGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua3NcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rIGJkYS1saW5rLXdlYnNpdGVcIiwgaHJlZjogd2Vic2l0ZSwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJXZWJzaXRlXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgc291cmNlICYmIFwiIHwgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmsgYmRhLWxpbmstc291cmNlXCIsIGhyZWY6IHNvdXJjZSwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJTb3VyY2VcIilcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1NldHRpbmdzICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge29uQ2xpY2s6IHRoaXMuc2hvd1NldHRpbmdzLCBjbGFzc05hbWU6IFwiYmRhLXNldHRpbmdzLWJ1dHRvblwiLCBkaXNhYmxlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0sIFwiU2V0dGluZ3NcIilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0pO1xyXG4gICAgICAgIC8vIFBsdWdpbk1hbmFnZXIudG9nZ2xlUGx1Z2luKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1NldHRpbmdzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNTZXR0aW5ncykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3NldHRpbmdzT3BlbjogdHJ1ZX0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/plugincard.js\n"); /***/ }), @@ -731,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 V2_SettingsPanel; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\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 _settings_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\n\nclass V2_SettingsPanel {\n static buildSettingsPanel(title, config, state, onChange, button = null) {\n config.forEach(section => {\n section.settings.forEach(item => item.value = state[section.id][item.id]);\n });\n return this.getSettingsPanel(title, config, onChange, button);\n }\n\n static getSettingsPanel(title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_4__[\"default\"], Object.assign({}, section, {\n onChange\n }));\n })];\n }\n\n static getPluginsPanel(plugins, folder) {\n const titleComponent = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: \"Plugins\",\n button: {\n title: \"Open Plugin Folder\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n }\n });\n const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin => modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: plugin.id,\n content: plugin\n }));\n return [titleComponent, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"ul\", {\n className: \"bda-slist\"\n }, ...cards)];\n }\n\n static getThemesPanel(themes, folder) {\n const titleComponent = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: \"Themes\",\n button: {\n title: \"Open Theme Folder\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n }\n });\n const cards = themes.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(theme => modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: theme.id,\n content: theme\n }));\n return [titleComponent, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"ul\", {\n className: \"bda-slist\"\n }, ...cards)];\n }\n\n static get attribution() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n style: {\n fontSize: \"12px\",\n fontWeight: \"600\",\n color: \"#72767d\",\n padding: \"2px 10px\"\n }\n }, `BBD v${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion} by `, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"a\", {\n href: \"https://github.com/rauenzi/\",\n target: \"_blank\"\n }, \"Zerebos\"));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3NldHRpbmdzLmpzPzgwYWIiXSwibmFtZXMiOlsiVjJfU2V0dGluZ3NQYW5lbCIsImJ1aWxkU2V0dGluZ3NQYW5lbCIsInRpdGxlIiwiY29uZmlnIiwic3RhdGUiLCJvbkNoYW5nZSIsImJ1dHRvbiIsImZvckVhY2giLCJzZWN0aW9uIiwic2V0dGluZ3MiLCJpdGVtIiwidmFsdWUiLCJpZCIsImdldFNldHRpbmdzUGFuZWwiLCJncm91cHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJTZXR0aW5nc1RpdGxlIiwidGV4dCIsIm1hcCIsIlNldHRpbmdzR3JvdXAiLCJPYmplY3QiLCJhc3NpZ24iLCJnZXRQbHVnaW5zUGFuZWwiLCJwbHVnaW5zIiwiZm9sZGVyIiwidGl0bGVDb21wb25lbnQiLCJvbkNsaWNrIiwicmVxdWlyZSIsInNoZWxsIiwib3Blbkl0ZW0iLCJjYXJkcyIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJwbHVnaW4iLCJQbHVnaW5DYXJkIiwia2V5IiwiY29udGVudCIsImNsYXNzTmFtZSIsImdldFRoZW1lc1BhbmVsIiwidGhlbWVzIiwidGhlbWUiLCJUaGVtZUNhcmQiLCJhdHRyaWJ1dGlvbiIsInN0eWxlIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwiY29sb3IiLCJwYWRkaW5nIiwiQ29uZmlnIiwiYmJkVmVyc2lvbiIsImhyZWYiLCJ0YXJnZXQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFZSxNQUFNQSxnQkFBTixDQUF1QjtBQUVsQyxTQUFPQyxrQkFBUCxDQUEwQkMsS0FBMUIsRUFBaUNDLE1BQWpDLEVBQXlDQyxLQUF6QyxFQUFnREMsUUFBaEQsRUFBMERDLE1BQU0sR0FBRyxJQUFuRSxFQUF5RTtBQUNyRUgs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V0FBUCxFQUFuQyxDQUF0QixFQUFnRmpCLEdBQWhGLENBQW9GMEIsS0FBSyxJQUNuRzlCLDZDQUFLLENBQUNDLGFBQU4sQ0FBb0I4QixrREFBcEIsRUFBK0I7QUFBQ04sU0FBRyxFQUFFSyxLQUFLLENBQUNqQyxFQUFaO0FBQWdCNkIsYUFBTyxFQUFFSTtBQUF6QixLQUEvQixDQURVLENBQWQ7QUFHQSxXQUFPLENBQUNuQixjQUFELEVBQWlCWCw2Q0FBSyxDQUFDQyxhQUFOLENBQW9CLElBQXBCLEVBQTBCO0FBQUMwQixlQUFTLEVBQUU7QUFBWixLQUExQixFQUFvRCxHQUFHWCxLQUF2RCxDQUFqQixDQUFQO0FBQ0g7O0FBRUQsYUFBV2dCLFdBQVgsR0FBeUI7QUFDckIsV0FBT2hDLDZDQUFLLENBQUNDLGFBQU4sQ0FDSCxLQURHLEVBRUg7QUFBQ2dDLFdBQUssRUFBRTtBQUFDQyxnQkFBUSxFQUFFLE1BQVg7QUFBbUJDLGtCQUFVLEVBQUUsS0FBL0I7QUFBc0NDLGFBQUssRUFBRSxTQUE3QztBQUF3REMsZUFBTyxFQUFFO0FBQWpFO0FBQVIsS0FGRyxFQUdGLFFBQU9DLDJDQUFNLENBQUNDLFVBQVcsTUFIdkIsRUFJSHZDLDZDQUFLLENBQUNDLGFBQU4sQ0FDSSxHQURKLEVBRUk7QUFBQ3VDLFVBQUksRUFBRSw2QkFBUDtBQUFzQ0MsWUFBTSxFQUFFO0FBQTlDLEtBRkosRUFHSSxTQUhKLENBSkcsQ0FBUDtBQVVIOztBQTFDaUMiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3Mvc2V0dGluZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBQbHVnaW5DYXJkIGZyb20gXCIuL3BsdWdpbmNhcmRcIjtcclxuaW1wb3J0IFRoZW1lQ2FyZCBmcm9tIFwiLi90aGVtZWNhcmRcIjtcclxuXHJcbmltcG9ydCBTZXR0aW5nc0dyb3VwIGZyb20gXCIuLi9zZXR0aW5ncy9ncm91cFwiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi90aXRsZVwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJfU2V0dGluZ3NQYW5lbCB7XHJcblxyXG4gICAgc3RhdGljIGJ1aWxkU2V0dGluZ3NQYW5lbCh0aXRsZSwgY29uZmlnLCBzdGF0ZSwgb25DaGFuZ2UsIGJ1dHRvbiA9IG51bGwpIHtcclxuICAgICAgICBjb25maWcuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgc2VjdGlvbi5zZXR0aW5ncy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS52YWx1ZSA9IHN0YXRlW3NlY3Rpb24uaWRdW2l0ZW0uaWRdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZXR0aW5nc1BhbmVsKHRpdGxlLCBjb25maWcsIG9uQ2hhbmdlLCBidXR0b24pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRTZXR0aW5nc1BhbmVsKHRpdGxlLCBncm91cHMsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aXRsZSwgYnV0dG9uOiBidXR0b259KSwgZ3JvdXBzLm1hcChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NHcm91cCwgT2JqZWN0LmFzc2lnbih7fSwgc2VjdGlvbiwge29uQ2hhbmdlfSkpO1xyXG4gICAgICAgIH0pXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0UGx1Z2luc1BhbmVsKHBsdWdpbnMsIGZvbGRlcikge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlQ29tcG9uZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogXCJQbHVnaW5zXCIsIGJ1dHRvbjoge3RpdGxlOiBcIk9wZW4gUGx1Z2luIEZvbGRlclwiLCBvbkNsaWNrOiAoKSA9PiB7IHJlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShmb2xkZXIpOyB9fX0pO1xyXG4gICAgICAgIGNvbnN0IGNhcmRzID0gcGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKHBsdWdpbiA9PiBcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChQbHVnaW5DYXJkLCB7a2V5OiBwbHVnaW4uaWQsIGNvbnRlbnQ6IHBsdWdpbn0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gW3RpdGxlQ29tcG9uZW50LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwge2NsYXNzTmFtZTogXCJiZGEtc2xpc3RcIn0sIC4uLmNhcmRzKV07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFRoZW1lc1BhbmVsKHRoZW1lcywgZm9sZGVyKSB7XHJcbiAgICAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiBcIlRoZW1lc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFRoZW1lIEZvbGRlclwiLCBvbkNsaWNrOiAoKSA9PiB7IHJlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShmb2xkZXIpOyB9fX0pO1xyXG4gICAgICAgIGNvbnN0IGNhcmRzID0gdGhlbWVzLnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKS5tYXAodGhlbWUgPT4gXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGhlbWVDYXJkLCB7a2V5OiB0aGVtZS5pZCwgY29udGVudDogdGhlbWV9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIFt0aXRsZUNvbXBvbmVudCwgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHtjbGFzc05hbWU6IFwiYmRhLXNsaXN0XCJ9LCAuLi5jYXJkcyldO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgYXR0cmlidXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtzdHlsZToge2ZvbnRTaXplOiBcIjEycHhcIiwgZm9udFdlaWdodDogXCI2MDBcIiwgY29sb3I6IFwiIzcyNzY3ZFwiLCBwYWRkaW5nOiBcIjJweCAxMHB4XCJ9fSxcclxuICAgICAgICAgICAgYEJCRCB2JHtDb25maWcuYmJkVmVyc2lvbn0gYnkgYCxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiYVwiLFxyXG4gICAgICAgICAgICAgICAge2hyZWY6IFwiaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvXCIsIHRhcmdldDogXCJfYmxhbmtcIn0sXHJcbiAgICAgICAgICAgICAgICBcIlplcmVib3NcIlxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/settings.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2_SettingsPanel; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _contentlist__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contentlist */ \"./src/ui/settings/contentlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\n\nclass V2_SettingsPanel {\n static buildSettingsPanel(title, config, state, onChange, button = null) {\n config.forEach(section => {\n section.settings.forEach(item => item.value = state[section.id][item.id]);\n });\n return this.getSettingsPanel(title, config, onChange, button);\n }\n\n static getSettingsPanel(title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_4__[\"default\"], Object.assign({}, section, {\n onChange\n }));\n })];\n } // static getPluginsPanel(plugins, state, options = {}) {\n // const {folder = \"\", onChange, reload} = options;\n // const titleComponent = React.createElement(SettingsTitle, {\n // text: \"Plugins\",\n // button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }},\n // otherChildren: [React.createElement(ReloadIcon, {className: \"bd-reload-card\", onClick: this.reload})]\n // });\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 static getContentPanel(title, contentList, contentState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_contentlist__WEBPACK_IMPORTED_MODULE_3__[\"default\"], Object.assign({}, {\n title: title,\n contentList: contentList,\n contentState: contentState\n }, options));\n }\n\n static getThemesPanel(themes, state, options = {}) {\n const {\n folder = \"\",\n onChange,\n reload\n } = options;\n const titleComponent = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: \"Themes\",\n button: {\n title: \"Open Theme Folder\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n }\n });\n const cards = themes.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(theme => modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_themecard__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: theme.id,\n enabled: state[theme.id],\n content: theme,\n onChange,\n reload\n }));\n return [titleComponent, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"ul\", {\n className: \"bda-slist\"\n }, ...cards)];\n }\n\n static get attribution() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n style: {\n fontSize: \"12px\",\n fontWeight: \"600\",\n color: \"#72767d\",\n padding: \"2px 10px\"\n }\n }, `BBD v${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion} by `, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"a\", {\n href: \"https://github.com/rauenzi/\",\n target: \"_blank\"\n }, \"Zerebos\"));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3NldHRpbmdzLmpzPzgwYWIiXSwibmFtZXMiOlsiVjJfU2V0dGluZ3NQYW5lbCIsImJ1aWxkU2V0dGluZ3NQYW5lbCIsInRpdGxlIiwiY29uZmlnIiwic3RhdGUiLCJvbkNoYW5nZSIsImJ1dHRvbiIsImZvckVhY2giLCJzZWN0aW9uIiwic2V0dGluZ3MiLCJpdGVtIiwidmFsdWUiLCJpZCIsImdldFNldHRpbmdzUGFuZWwiLCJncm91cHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJTZXR0aW5nc1RpdGxlIiwidGV4dCIsIm1hcCIsIlNldHRpbmdzR3JvdXAiLCJPYmplY3QiLCJhc3NpZ24iLCJnZXRDb250ZW50UGFuZWwiLCJjb250ZW50TGlzdCIsImNvbnRlbnRTdGF0ZSIsIm9wdGlvbnMiLCJDb250ZW50TGlzdCIsImdldFRoZW1lc1BhbmVsIiwidGhlbWVzIiwiZm9sZGVyIiwicmVsb2FkIiwidGl0bGVDb21wb25lbnQiLCJvbkNsaWNrIiwicmVxdWlyZSIsInNoZWxsIiwib3Blbkl0ZW0iLCJjYXJkcyIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJ0aGVtZSIsIlRoZW1lQ2FyZCIsImtleSIsImVuYWJsZWQiLCJjb250ZW50IiwiY2xhc3NOYW1lIiwiYXR0cmlidXRpb24iLCJzdHlsZSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImNvbG9yIiwicGFkZGluZyIsIkNvbmZpZyIsImJiZFZlcnNpb24iLCJocmVmIiwidGFyZ2V0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRWUsTUFBTUEsZ0JBQU4sQ0FBdUI7QUFFbEMsU0FBT0Msa0JBQVAsQ0FBMEJDLEtBQTFCLEVBQWlDQyxNQUFqQyxFQUF5Q0MsS0FBekMsRUFBZ0RDLFFB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QixDQURVLENBQWQ7QUFHQSxXQUFPLENBQUNDLGNBQUQsRUFBaUJqQiw2Q0FBSyxDQUFDQyxhQUFOLENBQW9CLElBQXBCLEVBQTBCO0FBQUNpQyxlQUFTLEVBQUU7QUFBWixLQUExQixFQUFvRCxHQUFHWixLQUF2RCxDQUFqQixDQUFQO0FBQ0g7O0FBRUQsYUFBV2EsV0FBWCxHQUF5QjtBQUNyQixXQUFPbkMsNkNBQUssQ0FBQ0MsYUFBTixDQUNILEtBREcsRUFFSDtBQUFDbUMsV0FBSyxFQUFFO0FBQUNDLGdCQUFRLEVBQUUsTUFBWDtBQUFtQkMsa0JBQVUsRUFBRSxLQUEvQjtBQUFzQ0MsYUFBSyxFQUFFLFNBQTdDO0FBQXdEQyxlQUFPLEVBQUU7QUFBakU7QUFBUixLQUZHLEVBR0YsUUFBT0MsMkNBQU0sQ0FBQ0MsVUFBVyxNQUh2QixFQUlIMUMsNkNBQUssQ0FBQ0MsYUFBTixDQUNJLEdBREosRUFFSTtBQUFDMEMsVUFBSSxFQUFFLDZCQUFQO0FBQXNDQyxZQUFNLEVBQUU7QUFBOUMsS0FGSixFQUdJLFNBSEosQ0FKRyxDQUFQO0FBVUg7O0FBeERpQyIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9zZXR0aW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IFRoZW1lQ2FyZCBmcm9tIFwiLi90aGVtZWNhcmRcIjtcclxuXHJcbmltcG9ydCBDb250ZW50TGlzdCBmcm9tIFwiLi9jb250ZW50bGlzdFwiO1xyXG5pbXBvcnQgU2V0dGluZ3NHcm91cCBmcm9tIFwiLi4vc2V0dGluZ3MvZ3JvdXBcIjtcclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyX1NldHRpbmdzUGFuZWwge1xyXG5cclxuICAgIHN0YXRpYyBidWlsZFNldHRpbmdzUGFuZWwodGl0bGUsIGNvbmZpZywgc3RhdGUsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgY29uZmlnLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHNlY3Rpb24uc2V0dGluZ3MuZm9yRWFjaChpdGVtID0+IGl0ZW0udmFsdWUgPSBzdGF0ZVtzZWN0aW9uLmlkXVtpdGVtLmlkXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2V0dGluZ3NQYW5lbCh0aXRsZSwgY29uZmlnLCBvbkNoYW5nZSwgYnV0dG9uKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0U2V0dGluZ3NQYW5lbCh0aXRsZSwgZ3JvdXBzLCBvbkNoYW5nZSwgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBbUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogdGl0bGUsIGJ1dHRvbjogYnV0dG9ufSksIGdyb3Vwcy5tYXAoc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzR3JvdXAsIE9iamVjdC5hc3NpZ24oe30sIHNlY3Rpb24sIHtvbkNoYW5nZX0pKTtcclxuICAgICAgICB9KV07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3RhdGljIGdldFBsdWdpbnNQYW5lbChwbHVnaW5zLCBzdGF0ZSwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAvLyAgICAgY29uc3Qge2ZvbGRlciA9IFwiXCIsIG9uQ2hhbmdlLCByZWxvYWR9ID0gb3B0aW9ucztcclxuICAgIC8vICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge1xyXG4gICAgLy8gICAgICAgICB0ZXh0OiBcIlBsdWdpbnNcIixcclxuICAgIC8vICAgICAgICAgYnV0dG9uOiB7dGl0bGU6IFwiT3BlbiBQbHVnaW4gRm9sZGVyXCIsIG9uQ2xpY2s6ICgpID0+IHsgcmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKGZvbGRlcik7IH19LFxyXG4gICAgLy8gICAgICAgICBvdGhlckNoaWxkcmVuOiBbUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZC1jYXJkXCIsIG9uQ2xpY2s6IHRoaXMucmVsb2FkfSldXHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyAgICAgY29uc3QgY2FyZHMgPSBwbHVnaW5zLnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKS5tYXAocGx1Z2luID0+IFxyXG4gICAgLy8gICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFBsdWdpbkNhcmQsIHtrZXk6IHBsdWdpbi5pZCwgZW5hYmxlZDogc3RhdGVbcGx1Z2luLmlkXSwgY29udGVudDogcGx1Z2luLCBvbkNoYW5nZSwgcmVsb2FkfSlcclxuICAgIC8vICAgICApO1xyXG4gICAgLy8gICAgIHJldHVybiBbdGl0bGVDb21wb25lbnQsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7Y2xhc3NOYW1lOiBcImJkYS1zbGlzdFwifSwgLi4uY2FyZHMpXTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0Q29udGVudFBhbmVsKHRpdGxlLCBjb250ZW50TGlzdCwgY29udGVudFN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50TGlzdCwgT2JqZWN0LmFzc2lnbih7fSwge1xyXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgIGNvbnRlbnRMaXN0OiBjb250ZW50TGlzdCxcclxuICAgICAgICAgICAgY29udGVudFN0YXRlOiBjb250ZW50U3RhdGVcclxuICAgICAgICB9LCBvcHRpb25zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFRoZW1lc1BhbmVsKHRoZW1lcywgc3RhdGUsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IHtmb2xkZXIgPSBcIlwiLCBvbkNoYW5nZSwgcmVsb2FkfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiBcIlRoZW1lc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFRoZW1lIEZvbGRlclwiLCBvbkNsaWNrOiAoKSA9PiB7IHJlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShmb2xkZXIpOyB9fX0pO1xyXG4gICAgICAgIGNvbnN0IGNhcmRzID0gdGhlbWVzLnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKS5tYXAodGhlbWUgPT4gXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGhlbWVDYXJkLCB7a2V5OiB0aGVtZS5pZCwgZW5hYmxlZDogc3RhdGVbdGhlbWUuaWRdLCBjb250ZW50OiB0aGVtZSwgb25DaGFuZ2UsIHJlbG9hZH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gW3RpdGxlQ29tcG9uZW50LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwge2NsYXNzTmFtZTogXCJiZGEtc2xpc3RcIn0sIC4uLmNhcmRzKV07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldCBhdHRyaWJ1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge3N0eWxlOiB7Zm9udFNpemU6IFwiMTJweFwiLCBmb250V2VpZ2h0OiBcIjYwMFwiLCBjb2xvcjogXCIjNzI3NjdkXCIsIHBhZGRpbmc6IFwiMnB4IDEwcHhcIn19LFxyXG4gICAgICAgICAgICBgQkJEIHYke0NvbmZpZy5iYmRWZXJzaW9ufSBieSBgLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJhXCIsXHJcbiAgICAgICAgICAgICAgICB7aHJlZjogXCJodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9cIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgIFwiWmVyZWJvc1wiXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/settings.js\n"); /***/ }), @@ -755,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 V2C_ThemeCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n // import ReloadIcon from \"../icons/reload\";\n// import Toasts from \"../toasts\";\n\nclass V2C_ThemeCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: modules__WEBPACK_IMPORTED_MODULE_0__[\"ThemeManager\"].isEnabled(this.props.content.id),\n reloads: 0\n };\n this.onChange = this.onChange.bind(this); // this.reload = this.reload.bind(this);\n } // onReload(themeName) {\n // if (themeName !== this.props.theme.name) return;\n // this.setState({reloads: this.state.reloads + 1});\n // }\n // reload() {\n // const theme = this.props.theme.name;\n // const error = ThemeManager.reloadTheme(theme);\n // if (error) Toasts.show(`Could not reload ${Themes[theme].name}. Check console for details.`, {type: \"error\"});\n // else Toasts.show(`${Themes[theme].name} v${Themes[theme].version} has been reloaded.`, {type: \"success\"});\n // // this.setState(this.state);\n // this.props.theme = Themes[theme];\n // this.onReload(this.props.theme.name);\n // }\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 }, //!SettingsCookie[\"fork-ps-5\"] && React.createElement(ReloadIcon, {className: \"bd-reload-card\", 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 modules__WEBPACK_IMPORTED_MODULE_0__[\"ThemeManager\"].toggleTheme(this.props.content.id);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlYyQ19UaGVtZUNhcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImNoZWNrZWQiLCJUaGVtZU1hbmFnZXIiLCJpc0VuYWJsZWQiLCJjb250ZW50IiwiaWQiLCJyZWxvYWRzIiwib25DaGFuZ2UiLCJiaW5kIiwicmVuZGVyIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidmVyc2lvbiIsImF1dGhvciIsIndlYnNpdGUiLCJzb3VyY2UiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJzZXRTdGF0ZSIsInRvZ2dsZVRoZW1lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7Q0FDQTtBQUNBOztBQUVlLE1BQU1BLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBRXZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFQyxvREFBWSxDQUFDQyxTQUFiLENBQXVCLEtBQUtKLEtBQUwsQ0FBV0ssT0FBWCxDQUFtQkMsRUFBMUMsQ0FEQTtBQUVUQyxhQUFPLEVBQUU7QUFGQSxLQUFiO0FBSUEsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEIsQ0FOZSxDQU9mO0FBQ0gsR0FWc0QsQ0FZdkQ7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBQyxRQUFNLEdBQUc7QUFDTCxVQUFNO0FBQUNMO0FBQUQsUUFBWSxLQUFLTCxLQUF2QjtBQUNBLFVBQU1XLElBQUksR0FBR04sT0FBTyxDQUFDTSxJQUFyQjtBQUNBLFVB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VUFBWjtBQUF3QkksVUFBSSxFQUFFTixNQUE5QjtBQUFzQ08sWUFBTSxFQUFFO0FBQTlDLEtBQXpCLEVBQWtGLFFBQWxGLENBSGQsQ0FEbUIsQ0FwQnBCLENBQVA7QUE0Qkg7O0FBRURmLFVBQVEsR0FBRztBQUNQLFNBQUtnQixRQUFMLENBQWM7QUFBQ3RCLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNBQyx3REFBWSxDQUFDc0IsV0FBYixDQUF5QixLQUFLekIsS0FBTCxDQUFXSyxPQUFYLENBQW1CQyxFQUE1QztBQUNIOztBQXJFc0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGhlbWVjYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgVGhlbWVNYW5hZ2VyfSBmcm9tIFwibW9kdWxlc1wiO1xyXG4vLyBpbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcbi8vIGltcG9ydCBUb2FzdHMgZnJvbSBcIi4uL3RvYXN0c1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1RoZW1lQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogVGhlbWVNYW5hZ2VyLmlzRW5hYmxlZCh0aGlzLnByb3BzLmNvbnRlbnQuaWQpLFxyXG4gICAgICAgICAgICByZWxvYWRzOiAwXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIC8vIHRoaXMucmVsb2FkID0gdGhpcy5yZWxvYWQuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBvblJlbG9hZCh0aGVtZU5hbWUpIHtcclxuICAgIC8vICAgICBpZiAodGhlbWVOYW1lICE9PSB0aGlzLnByb3BzLnRoZW1lLm5hbWUpIHJldHVybjtcclxuICAgIC8vICAgICB0aGlzLnNldFN0YXRlKHtyZWxvYWRzOiB0aGlzLnN0YXRlLnJlbG9hZHMgKyAxfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gcmVsb2FkKCkge1xyXG4gICAgLy8gICAgIGNvbnN0IHRoZW1lID0gdGhpcy5wcm9wcy50aGVtZS5uYW1lO1xyXG4gICAgLy8gICAgIGNvbnN0IGVycm9yID0gVGhlbWVNYW5hZ2VyLnJlbG9hZFRoZW1lKHRoZW1lKTtcclxuICAgIC8vICAgICBpZiAoZXJyb3IpIFRvYXN0cy5zaG93KGBDb3VsZCBub3QgcmVsb2FkICR7VGhlbWVzW3RoZW1lXS5uYW1lfS4gQ2hlY2sgY29uc29sZSBmb3IgZGV0YWlscy5gLCB7dHlwZTogXCJlcnJvclwifSk7XHJcbiAgICAvLyAgICAgZWxzZSBUb2FzdHMuc2hvdyhgJHtUaGVtZXNbdGhlbWVdLm5hbWV9IHYke1RoZW1lc1t0aGVtZV0udmVyc2lvbn0gaGFzIGJlZW4gcmVsb2FkZWQuYCwge3R5cGU6IFwic3VjY2Vzc1wifSk7XHJcbiAgICAvLyAgICAgLy8gdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTtcclxuICAgIC8vICAgICB0aGlzLnByb3BzLnRoZW1lID0gVGhlbWVzW3RoZW1lXTtcclxuICAgIC8vICAgICB0aGlzLm9uUmVsb2FkKHRoaXMucHJvcHMudGhlbWUubmFtZSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbnRlbnQubmFtZTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGNvbnRlbnQuZGVzY3JpcHRpb247XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IGNvbnRlbnQudmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSBjb250ZW50LmF1dGhvcjtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8hU2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTVcIl0gJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZC1jYXJkXCIsIG9uQ2xpY2s6IHRoaXMucmVsb2FkfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIiwgc3R5bGU6IHtmbGV4OiBcIjAgMCBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7Y2hlY2tlZDogdGhpcy5zdGF0ZS5jaGVja2VkLCBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgY2xhc3NOYW1lOiBcInVpLXN3aXRjaC1jaGVja2JveFwiLCB0eXBlOiBcImNoZWNrYm94XCJ9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogdGhpcy5zdGF0ZS5jaGVja2VkID8gXCJ1aS1zd2l0Y2ggY2hlY2tlZFwiIDogXCJ1aS1zd2l0Y2hcIn0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCJ9LCBkZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKHdlYnNpdGUgfHwgc291cmNlKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua1wiLCBocmVmOiB3ZWJzaXRlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIldlYnNpdGVcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBzb3VyY2UgJiYgXCIgfCBcIixcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2UgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua1wiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiU291cmNlXCIpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgICAgICBUaGVtZU1hbmFnZXIudG9nZ2xlVGhlbWUodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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 V2C_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.js\");\n\n // import Toasts from \"../toasts\";\n\nclass V2C_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlYyQ19UaGVtZUNhcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImNoZWNrZWQiLCJlbmFibGVkIiwicmVsb2FkcyIsIm9uQ2hhbmdlIiwiYmluZCIsInJlbG9hZCIsImNvbnRlbnQiLCJpZCIsImZvcmNlVXBkYXRlIiwicmVuZGVyIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidmVyc2lvbiIsImF1dGhvciIsIndlYnNpdGUiLCJzb3VyY2UiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiU2V0dGluZ3MiLCJnZXQiLCJSZWxvYWRJY29uIiwib25DbGljayIsInN0eWxlIiwiZmxleCIsInR5cGUiLCJocmVmIiwidGFyZ2V0Iiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFQTs7QUFFZSxNQUFNQSxhQUFOLFNBQTRCQyw2Q0FBSyxDQUFDQyxTQUFsQyxDQUE0QztBQUV2REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGFBQU8sRUFBRSxLQUFLRixLQUFMLENBQVdHLE9BRFg7QUFDb0I7QUFDN0JDLGFBQU8sRUFBRTtBQUZBLEtBQWI7QUFJQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQVlELElBQVosQ0FBaUIsSUFBakIsQ0FBZDtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxRQUFJLENBQUMsS0FBS1AsS0FBTCxDQUFXTyxNQUFoQixFQUF3QjtBQUN4QixTQUFLUCxLQUFMLENBQVdRLE9BQVgsR0FBcUIsS0FBS1IsS0FBTCxDQUFXTyxNQUFYLENBQWtCLEtBQUtQLEtBQUwsQ0FBV1EsT0FBWCxDQUFtQkMsRUFBckMsQ0FBckI7QUFDQSxTQUFLQyxXQUFMO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0g7QUFBRCxRQUFZLEtBQUtSLEtBQXZCO0FBQ0EsVUFBTVksSUFBSSxHQUFHSixPQUFPLENBQUNJLElBQXJCO0FBQ0EsVUFBTUMsV0FBVyxHQUFHTCxPQUFPLENBQUNLLFdBQTVCO0FBQ0EsVUFBTUMsT0FBTyxHQUFHTixPQUFPLENBQUNNLE9BQXhCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHUCxPQUFPLENBQUNPLE1BQXZCO0FBQ0EsVUFBTUMsT0FBTyxHQUFHUixPQUFPLENBQUNRLE9BQXhCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHVCxPQUFPLENBQUNTLE1BQXZCO0FBRUEsV0FBT3BCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLElBQXBCLEVBQTBCO0FBQUMsbUJBQWFOLElBQWQ7QUFBb0Isc0JBQWdCRSxPQUFwQztBQUE2QyxtQkFBYTtBQUExRCxLQUExQixFQUNIakIsNkNBQUssQ0FBQ3FCLGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBM0IsRUFDUXRCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLE1BQXBCLEVBQTRCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTVCLEVBQ0l0Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUFxRFAsSUFBckQsQ0FESixFQUVJLElBRkosRUFHSWYsNkNBQUssQ0FBQ3FCLGFBQU4sQ0FBb0IsTUFBcEIsRUFBNEI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBNUIsRUFBd0RMLE9BQXhELENBSEosRUFJSSxNQUpKLEVBS0lqQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUF1REosTUFBdkQsQ0FMSixDQURSLEVBUVFsQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUNJLENBQUNDLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFNBQXpCLEVBQW9DLFlBQXBDLENBQUQsSUFBc0R4Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQkkscURBQXBCLEVBQWdDO0FBQUNILGVBQVMsRUFBRSxnQkFBWjtBQUE4QkksYUFBTyxFQUFFLEtBQUtoQjtBQUE1QyxLQUFoQyxDQUQxRCxFQUVJViw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixPQUFwQixFQUE2QjtBQUFDQyxlQUFTLEVBQUUsaUNBQVo7QUFBK0NLLFdBQUssRUFBRTtBQUFDQyxZQUFJLEVBQUU7QUFBUDtBQUF0RCxLQUE3QixFQUNJNUIsNkNBQUssQ0FBQ3FCLGFBQU4sQ0FBb0IsT0FBcEIsRUFBNkI7QUFBQ2hCLGFBQU8sRUFBRSxLQUFLRCxLQUFMLENBQVdDLE9BQXJCO0FBQThCRyxjQUFRLEVBQUUsS0FBS0EsUUFBN0M7QUFBdURjLGVBQVMsRUFBRSxvQkFBbEU7QUFBd0ZPLFVBQUksRUFBRTtBQUE5RixLQUE3QixDQURKLEVBRUk3Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUUsS0FBS2xCLEtBQUwsQ0FBV0MsT0FBWCxHQUFxQixtQkFBckIsR0FBMkM7QUFBdkQsS0FBM0IsQ0FGSixDQUZKLENBUlIsQ0FERyxFQWlCSEwsNkNBQUssQ0FBQ3FCLGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBM0IsRUFDSXRCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTNCLEVBQW9FTixXQUFwRSxDQURKLENBakJHLEVBb0JILENBQUNHLE9BQU8sSUFBSUMsTUFBWixLQUF1QnBCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTNCLEVBQ25CdEIsNkNBQUssQ0FBQ3FCLGFBQU4sQ0FBb0IsTUFBcEIsRUFBNEI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBNUIsRUFDSUgsT0FBTyxJQUFJbkIsNkNBQUssQ0FBQ3FCLGFBQU4sQ0FBb0IsR0FBcEIsRUFBeUI7QUFBQ0MsZUFBUyxFQUFFLFVBQVo7QUFBd0JRLFVBQUksRUFBRVgsT0FBOUI7QUFBdUNZLFlBQU0sRUFBRTtBQUEvQyxLQUF6QixFQUFtRixTQUFuRixDQURmLEVBRUlaLE9BQU8sSUFBSUMsTUFBWCxJQUFxQixLQUZ6QixFQUdJQSxNQUFNLElBQUlwQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixHQUFwQixFQUF5QjtBQUFDQyxlQUFTLEVBQUUsVUFBWjtBQUF3QlEsVUFBSSxFQUFFVixNQUE5QjtBQUFzQ1csWUFBTSxFQUFFO0FBQTlDLEtBQXpCLEVBQWtGLFFBQWxGLENBSGQsQ0FEbUIsQ0FwQnBCLENBQVA7QUE0Qkg7O0FBRUR2QixVQUFRLEdBQUc7QUFDUCxTQUFLd0IsUUFBTCxDQUFjO0FBQUMzQixhQUFPLEVBQUUsQ0FBQyxLQUFLRCxLQUFMLENBQVdDO0FBQXRCLEtBQWQ7QUFDQSxTQUFLRixLQUFMLENBQVdLLFFBQVgsSUFBdUIsS0FBS0wsS0FBTCxDQUFXSyxRQUFYLENBQW9CLEtBQUtMLEtBQUwsQ0FBV1EsT0FBWCxDQUFtQkMsRUFBdkMsQ0FBdkI7QUFDSDs7QUE1RHNEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcbi8vIGltcG9ydCBUb2FzdHMgZnJvbSBcIi4uL3RvYXN0c1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1RoZW1lQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5lbmFibGVkLCAvL1RoZW1lTWFuYWdlci5pc0VuYWJsZWQodGhpcy5wcm9wcy5jb250ZW50LmlkKSxcclxuICAgICAgICAgICAgcmVsb2FkczogMFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5yZWxvYWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnQgPSB0aGlzLnByb3BzLnJlbG9hZCh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qge2NvbnRlbnR9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBuYW1lID0gY29udGVudC5uYW1lO1xyXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gY29udGVudC5kZXNjcmlwdGlvbjtcclxuICAgICAgICBjb25zdCB2ZXJzaW9uID0gY29udGVudC52ZXJzaW9uO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvciA9IGNvbnRlbnQuYXV0aG9yO1xyXG4gICAgICAgIGNvbnN0IHdlYnNpdGUgPSBjb250ZW50LndlYnNpdGU7XHJcbiAgICAgICAgY29uc3Qgc291cmNlID0gY29udGVudC5zb3VyY2U7XHJcblxyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge1wiZGF0YS1uYW1lXCI6IG5hbWUsIFwiZGF0YS12ZXJzaW9uXCI6IHZlcnNpb24sIFwiY2xhc3NOYW1lXCI6IFwic2V0dGluZ3MtY2xvc2VkIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlclwifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXItdGl0bGVcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLW5hbWVcIn0sIG5hbWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiB2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLXZlcnNpb25cIn0sIHZlcnNpb24pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBieSBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtYXV0aG9yXCJ9LCBhdXRob3IpXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWNvbnRyb2xzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJjb250ZW50XCIsIFwiYXV0b1JlbG9hZFwiKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFJlbG9hZEljb24sIHtjbGFzc05hbWU6IFwiYmQtcmVsb2FkLWNhcmRcIiwgb25DbGljazogdGhpcy5yZWxvYWR9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtjbGFzc05hbWU6IFwidWktc3dpdGNoLXdyYXBwZXIgdWktZmxleC1jaGlsZFwiLCBzdHlsZToge2ZsZXg6IFwiMCAwIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtjaGVja2VkOiB0aGlzLnN0YXRlLmNoZWNrZWQsIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLCBjbGFzc05hbWU6IFwidWktc3dpdGNoLWNoZWNrYm94XCIsIHR5cGU6IFwiY2hlY2tib3hcIn0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiB0aGlzLnN0YXRlLmNoZWNrZWQgPyBcInVpLXN3aXRjaCBjaGVja2VkXCIgOiBcInVpLXN3aXRjaFwifSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbi13cmFwIHNjcm9sbGVyLXdyYXAgZmFkZVwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24gc2Nyb2xsZXJcIn0sIGRlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAod2Vic2l0ZSB8fCBzb3VyY2UpICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZm9vdGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua3NcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rXCIsIGhyZWY6IHdlYnNpdGUsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiV2Vic2l0ZVwiKSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIHNvdXJjZSAmJiBcIiB8IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rXCIsIGhyZWY6IHNvdXJjZSwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJTb3VyY2VcIilcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0pO1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UgJiYgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/themecard.js\n"); /***/ }), @@ -767,7 +791,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 SettingsTitle; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst className = \"bd-settings-title h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi defaultColor-1_ajX0 defaultMarginh2-2LTaUL marginBottom20-32qID7\";\nconst className2 = \"bd-settings-title bd-settings-group-title h5-18_1nd title-3sZWYQ size12-3R0845 height16-2Lv3qA weightSemiBold-NJexzi da-h5 da-title da-size12 da-height16 da-weightSemiBold marginBottom4-2qk4Hy da-marginBottom4 marginTop8-1DLZ1n da-marginTop8\";\nclass SettingsTitle extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n } //h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi da-h2 da-title da-size16 da-height20 da-weightSemiBold defaultColor-1_ajX0 da-defaultColor marginTop60-3PGbtK da-marginTop60 marginBottom20-32qID7 da-marginBottom20\n\n\n render() {\n const baseClass = this.props.isGroup ? className2 : className;\n const titleClass = this.props.className ? `${baseClass} ${this.props.className}` : baseClass;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: titleClass,\n onClick: () => {\n this.props.onClick && this.props.onClick();\n }\n }, this.props.text, this.props.button && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"bd-title-button\",\n onClick: this.props.button.onClick\n }, this.props.button.title));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeD9iNTliIl0sIm5hbWVzIjpbImNsYXNzTmFtZSIsImNsYXNzTmFtZTIiLCJTZXR0aW5nc1RpdGxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiYmFzZUNsYXNzIiwiaXNHcm91cCIsInRpdGxlQ2xhc3MiLCJvbkNsaWNrIiwidGV4dCIsImJ1dHRvbiIsInRpdGxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLE1BQU1BLFNBQVMsR0FBRywrSkFBbEI7QUFDQSxNQUFNQyxVQUFVLEdBQUcsbVBBQW5CO0FBRWUsTUFBTUMsYUFBTixTQUE0QkMsNkNBQUssQ0FBQ0MsU0FBbEMsQ0FBNEM7QUFDdkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNILEdBSHNELENBSTNEOzs7QUFDSUMsUUFBTSxHQUFHO0FBQ0wsVUFBTUMsU0FBUyxHQUFHLEtBQUtGLEtBQUwsQ0FBV0csT0FBWCxHQUFxQlIsVUFBckIsR0FBa0NELFNBQXBEO0FBQ0EsVUFBTVUsVUFBVSxHQUFHLEtBQUtKLEtBQUwsQ0FBV04sU0FBWCxHQUF3QixHQUFFUSxTQUFVLElBQUcsS0FBS0YsS0FBTCxDQUFXTixTQUFVLEVBQTVELEdBQWdFUSxTQUFuRjtBQUNBLFdBQU87QUFBSSxlQUFTLEVBQUVFLFVBQWY7QUFBMkIsYUFBTyxFQUFFLE1BQU07QUFBQyxhQUFLSixLQUFMLENBQVdLLE9BQVgsSUFBc0IsS0FBS0wsS0FBTCxDQUFXSyxPQUFYLEVBQXRCO0FBQTRDO0FBQXZGLE9BQ0UsS0FBS0wsS0FBTCxDQUFXTSxJQURiLEVBRUUsS0FBS04sS0FBTCxDQUFXTyxNQUFYLElBQXFCO0FBQVEsZUFBUyxFQUFDLGlCQUFsQjtBQUFvQyxhQUFPLEVBQUUsS0FBS1AsS0FBTCxDQUFXTyxNQUFYLENBQWtCRjtBQUEvRCxPQUF5RSxLQUFLTCxLQUFMLENBQVdPLE1BQVgsQ0FBa0JDLEtBQTNGLENBRnZCLENBQVA7QUFJSDs7QUFac0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGl0bGUuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IGNsYXNzTmFtZSA9IFwiYmQtc2V0dGluZ3MtdGl0bGUgaDItMmdXRS1vIHRpdGxlLTNzWldZUSBzaXplMTYtMTRjR3o1IGhlaWdodDIwLW1PMmVJTiB3ZWlnaHRTZW1pQm9sZC1OSmV4emkgZGVmYXVsdENvbG9yLTFfYWpYMCBkZWZhdWx0TWFyZ2luaDItMkxUYVVMIG1hcmdpbkJvdHRvbTIwLTMycUlEN1wiO1xyXG5jb25zdCBjbGFzc05hbWUyID0gXCJiZC1zZXR0aW5ncy10aXRsZSBiZC1zZXR0aW5ncy1ncm91cC10aXRsZSBoNS0xOF8xbmQgdGl0bGUtM3NaV1lRIHNpemUxMi0zUjA4NDUgaGVpZ2h0MTYtMkx2M3FBIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oNSBkYS10aXRsZSBkYS1zaXplMTIgZGEtaGVpZ2h0MTYgZGEtd2VpZ2h0U2VtaUJvbGQgbWFyZ2luQm90dG9tNC0ycWs0SHkgZGEtbWFyZ2luQm90dG9tNCBtYXJnaW5Ub3A4LTFETFoxbiBkYS1tYXJnaW5Ub3A4XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5nc1RpdGxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG4vL2gyLTJnV0UtbyB0aXRsZS0zc1pXWVEgc2l6ZTE2LTE0Y0d6NSBoZWlnaHQyMC1tTzJlSU4gd2VpZ2h0U2VtaUJvbGQtTkpleHppIGRhLWgyIGRhLXRpdGxlIGRhLXNpemUxNiBkYS1oZWlnaHQyMCBkYS13ZWlnaHRTZW1pQm9sZCBkZWZhdWx0Q29sb3ItMV9halgwIGRhLWRlZmF1bHRDb2xvciBtYXJnaW5Ub3A2MC0zUEdidEsgZGEtbWFyZ2luVG9wNjAgbWFyZ2luQm90dG9tMjAtMzJxSUQ3IGRhLW1hcmdpbkJvdHRvbTIwXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgYmFzZUNsYXNzID0gdGhpcy5wcm9wcy5pc0dyb3VwID8gY2xhc3NOYW1lMiA6IGNsYXNzTmFtZTtcclxuICAgICAgICBjb25zdCB0aXRsZUNsYXNzID0gdGhpcy5wcm9wcy5jbGFzc05hbWUgPyBgJHtiYXNlQ2xhc3N9ICR7dGhpcy5wcm9wcy5jbGFzc05hbWV9YCA6IGJhc2VDbGFzcztcclxuICAgICAgICByZXR1cm4gPGgyIGNsYXNzTmFtZT17dGl0bGVDbGFzc30gb25DbGljaz17KCkgPT4ge3RoaXMucHJvcHMub25DbGljayAmJiB0aGlzLnByb3BzLm9uQ2xpY2soKTt9fT5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRleHR9XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5idXR0b24gJiYgPGJ1dHRvbiBjbGFzc05hbWU9XCJiZC10aXRsZS1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnByb3BzLmJ1dHRvbi5vbkNsaWNrfT57dGhpcy5wcm9wcy5idXR0b24udGl0bGV9PC9idXR0b24+fVxyXG4gICAgICAgICAgICAgICAgPC9oMj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/title.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SettingsTitle; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst className = \"bd-settings-title h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi defaultColor-1_ajX0 defaultMarginh2-2LTaUL marginBottom20-32qID7\";\nconst className2 = \"bd-settings-title bd-settings-group-title h5-18_1nd title-3sZWYQ size12-3R0845 height16-2Lv3qA weightSemiBold-NJexzi da-h5 da-title da-size12 da-height16 da-weightSemiBold marginBottom4-2qk4Hy da-marginBottom4 marginTop8-1DLZ1n da-marginTop8\";\nclass SettingsTitle extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n } //h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi da-h2 da-title da-size16 da-height20 da-weightSemiBold defaultColor-1_ajX0 da-defaultColor marginTop60-3PGbtK da-marginTop60 marginBottom20-32qID7 da-marginBottom20\n\n\n render() {\n const baseClass = this.props.isGroup ? className2 : className;\n const titleClass = this.props.className ? `${baseClass} ${this.props.className}` : baseClass;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: titleClass,\n onClick: () => {\n this.props.onClick && this.props.onClick();\n }\n }, this.props.text, this.props.button && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"bd-title-button\",\n onClick: this.props.button.onClick\n }, this.props.button.title), this.props.otherChildren);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeD9iNTliIl0sIm5hbWVzIjpbImNsYXNzTmFtZSIsImNsYXNzTmFtZTIiLCJTZXR0aW5nc1RpdGxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiYmFzZUNsYXNzIiwiaXNHcm91cCIsInRpdGxlQ2xhc3MiLCJvbkNsaWNrIiwidGV4dCIsImJ1dHRvbiIsInRpdGxlIiwib3RoZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxNQUFNQSxTQUFTLEdBQUcsK0pBQWxCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLG1QQUFuQjtBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBQ3ZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSCxHQUhzRCxDQUkzRDs7O0FBQ0lDLFFBQU0sR0FBRztBQUNMLFVBQU1DLFNBQVMsR0FBRyxLQUFLRixLQUFMLENBQVdHLE9BQVgsR0FBcUJSLFVBQXJCLEdBQWtDRCxTQUFwRDtBQUNBLFVBQU1VLFVBQVUsR0FBRyxLQUFLSixLQUFMLENBQVdOLFNBQVgsR0FBd0IsR0FBRVEsU0FBVSxJQUFHLEtBQUtGLEtBQUwsQ0FBV04sU0FBVSxFQUE1RCxHQUFnRVEsU0FBbkY7QUFDQSxXQUFPO0FBQUksZUFBUyxFQUFFRSxVQUFmO0FBQTJCLGFBQU8sRUFBRSxNQUFNO0FBQUMsYUFBS0osS0FBTCxDQUFXSyxPQUFYLElBQXNCLEtBQUtMLEtBQUwsQ0FBV0ssT0FBWCxFQUF0QjtBQUE0QztBQUF2RixPQUNFLEtBQUtMLEtBQUwsQ0FBV00sSUFEYixFQUVFLEtBQUtOLEtBQUwsQ0FBV08sTUFBWCxJQUFxQjtBQUFRLGVBQVMsRUFBQyxpQkFBbEI7QUFBb0MsYUFBTyxFQUFFLEtBQUtQLEtBQUwsQ0FBV08sTUFBWCxDQUFrQkY7QUFBL0QsT0FBeUUsS0FBS0wsS0FBTCxDQUFXTyxNQUFYLENBQWtCQyxLQUEzRixDQUZ2QixFQUdFLEtBQUtSLEtBQUwsQ0FBV1MsYUFIYixDQUFQO0FBS0g7O0FBYnNEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5jb25zdCBjbGFzc05hbWUgPSBcImJkLXNldHRpbmdzLXRpdGxlIGgyLTJnV0UtbyB0aXRsZS0zc1pXWVEgc2l6ZTE2LTE0Y0d6NSBoZWlnaHQyMC1tTzJlSU4gd2VpZ2h0U2VtaUJvbGQtTkpleHppIGRlZmF1bHRDb2xvci0xX2FqWDAgZGVmYXVsdE1hcmdpbmgyLTJMVGFVTCBtYXJnaW5Cb3R0b20yMC0zMnFJRDdcIjtcclxuY29uc3QgY2xhc3NOYW1lMiA9IFwiYmQtc2V0dGluZ3MtdGl0bGUgYmQtc2V0dGluZ3MtZ3JvdXAtdGl0bGUgaDUtMThfMW5kIHRpdGxlLTNzWldZUSBzaXplMTItM1IwODQ1IGhlaWdodDE2LTJMdjNxQSB3ZWlnaHRTZW1pQm9sZC1OSmV4emkgZGEtaDUgZGEtdGl0bGUgZGEtc2l6ZTEyIGRhLWhlaWdodDE2IGRhLXdlaWdodFNlbWlCb2xkIG1hcmdpbkJvdHRvbTQtMnFrNEh5IGRhLW1hcmdpbkJvdHRvbTQgbWFyZ2luVG9wOC0xRExaMW4gZGEtbWFyZ2luVG9wOFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2V0dGluZ3NUaXRsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuLy9oMi0yZ1dFLW8gdGl0bGUtM3NaV1lRIHNpemUxNi0xNGNHejUgaGVpZ2h0MjAtbU8yZUlOIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oMiBkYS10aXRsZSBkYS1zaXplMTYgZGEtaGVpZ2h0MjAgZGEtd2VpZ2h0U2VtaUJvbGQgZGVmYXVsdENvbG9yLTFfYWpYMCBkYS1kZWZhdWx0Q29sb3IgbWFyZ2luVG9wNjAtM1BHYnRLIGRhLW1hcmdpblRvcDYwIG1hcmdpbkJvdHRvbTIwLTMycUlENyBkYS1tYXJnaW5Cb3R0b20yMFxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGJhc2VDbGFzcyA9IHRoaXMucHJvcHMuaXNHcm91cCA/IGNsYXNzTmFtZTIgOiBjbGFzc05hbWU7XHJcbiAgICAgICAgY29uc3QgdGl0bGVDbGFzcyA9IHRoaXMucHJvcHMuY2xhc3NOYW1lID8gYCR7YmFzZUNsYXNzfSAke3RoaXMucHJvcHMuY2xhc3NOYW1lfWAgOiBiYXNlQ2xhc3M7XHJcbiAgICAgICAgcmV0dXJuIDxoMiBjbGFzc05hbWU9e3RpdGxlQ2xhc3N9IG9uQ2xpY2s9eygpID0+IHt0aGlzLnByb3BzLm9uQ2xpY2sgJiYgdGhpcy5wcm9wcy5vbkNsaWNrKCk7fX0+XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy50ZXh0fVxyXG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuYnV0dG9uICYmIDxidXR0b24gY2xhc3NOYW1lPVwiYmQtdGl0bGUtYnV0dG9uXCIgb25DbGljaz17dGhpcy5wcm9wcy5idXR0b24ub25DbGlja30+e3RoaXMucHJvcHMuYnV0dG9uLnRpdGxlfTwvYnV0dG9uPn1cclxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLm90aGVyQ2hpbGRyZW59XHJcbiAgICAgICAgICAgICAgICA8L2gyPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/title.jsx\n"); /***/ }), diff --git a/js/main.min.js b/js/main.min.js index fe04bd0e..32a8d827 100644 --- a/js/main.min.js +++ b/js/main.min.js @@ -1 +1,3 @@ -var Core=function(e){var t={};function n(s){if(t[s])return t[s].exports;var o=t[s]={i:s,l:!1,exports:{}};return e[s].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(s,o,function(t){return e[t]}.bind(null,o));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("electron")},function(e,t){e.exports=require("module")},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("request")},function(e,t,n){"use strict";n.r(t);var s={};n.r(s),n.d(s,"Menu",function(){return ye}),n.d(s,"Card",function(){return be}),n.d(s,"Layer",function(){return ve});var o={};n.r(o),n.d(o,"VoiceMode",function(){return $e}),n.d(o,"ClassNormalizer",function(){return Ne}),n.d(o,"DeveloperMode",function(){return je}),n.d(o,"PublicServers",function(){return Fe}),n.d(o,"DarkMode",function(){return Oe}),n.d(o,"MinimalMode",function(){return Ae}),n.d(o,"TwentyFourHour",function(){return Ie}),n.d(o,"ColoredText",function(){return Re}),n.d(o,"VoiceDisconnect",function(){return Ge}),n.d(o,"EmoteMenu",function(){return He}),n.d(o,"EmoteAutocaps",function(){return We}),n.d(o,"EmoteModule",function(){return Ue});var r={emotesLoaded:!1},i={"Custom css live update":{id:"bda-css-0",info:"",implemented:!0,hidden:!0,cat:"core"},"Custom css auto udpate":{id:"bda-css-1",info:"",implemented:!0,hidden:!0,cat:"core"},"BetterDiscord Blue":{id:"bda-gs-b",info:"Replace Discord blue with BD Blue",implemented:!1,hidden:!1,cat:"core"},"Public Servers":{id:"bda-gs-1",info:"Display public servers button",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Dark Mode":{id:"bda-gs-5",info:"Make certain elements dark by default(wip)",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Voice Disconnect":{id:"bda-dc-0",info:"Disconnect from voice server when closing Discord",implemented:!0,hidden:!1,cat:"core",category:"modules"},"24 Hour Timestamps":{id:"bda-gs-6",info:"Replace 12hr timestamps with proper ones",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Coloured Text":{id:"bda-gs-7",info:"Make text colour the same as role colour",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Normalize Classes":{id:"fork-ps-4",info:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Content Error Modal":{id:"fork-ps-1",info:"Shows a modal with plugin/theme errors",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Show Toasts":{id:"fork-ps-2",info:"Shows a small notification for important information",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Scroll To Settings":{id:"fork-ps-3",info:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Automatic Loading":{id:"fork-ps-5",info:"Automatically loads, reloads, and unloads plugins and themes",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Developer Mode":{id:"bda-gs-8",info:"Developer Mode",implemented:!0,hidden:!1,cat:"core",category:"developer settings"},"Copy Selector":{id:"fork-dm-1",info:'Adds a "Copy Selector" option to context menus when developer mode is active',implemented:!0,hidden:!1,cat:"core",category:"developer settings"},"Enable Transparency":{id:"fork-wp-1",info:"Enables the main window to be see-through (requires restart)",implemented:!0,hidden:!1,cat:"core",category:"window preferences"},"Window Frame":{id:"fork-wp-2",info:"Adds the native os window frame to the main window",implemented:!1,hidden:!0,cat:"core",category:"window preferences"},"Download Emotes":{id:"fork-es-3",info:"Download emotes when the cache is expired",implemented:!0,hidden:!1,cat:"emote"},"Twitch Emotes":{id:"bda-es-7",info:"Show Twitch emotes",implemented:!0,hidden:!1,cat:"emote"},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0,hidden:!1,cat:"emote"},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!0,hidden:!1,cat:"emote"},"Emote Menu":{id:"bda-es-0",info:"Show Twitch/Favourite emotes in emote menu",implemented:!0,hidden:!1,cat:"emote"},"Emoji Menu":{id:"bda-es-9",info:"Show Discord emoji menu",implemented:!0,hidden:!1,cat:"emote"},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0,hidden:!1,cat:"emote"},"Show Names":{id:"bda-es-6",info:"Show emote names on hover",implemented:!0,hidden:!1,cat:"emote"},"Show emote modifiers":{id:"bda-es-8",info:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)",implemented:!0,hidden:!1,cat:"emote"},"Animate On Hover":{id:"fork-es-2",info:"Only animate the emote modifiers on hover",implemented:!0,hidden:!1,cat:"emote"}},a={"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-gs-5":!0,"bda-gs-6":!1,"bda-gs-7":!1,"bda-gs-8":!1,"bda-es-0":!0,"bda-es-1":!0,"bda-es-2":!0,"bda-es-4":!1,"bda-es-6":!0,"bda-es-7":!0,"bda-gs-b":!1,"bda-es-8":!0,"bda-dc-0":!1,"bda-css-0":!1,"bda-css-1":!1,"bda-es-9":!0,"fork-dm-1":!1,"fork-ps-1":!0,"fork-ps-2":!0,"fork-ps-3":!0,"fork-ps-4":!0,"fork-ps-5":!0,"fork-es-2":!1,"fork-es-3":!0,"fork-wp-1":!1,"fork-wp-2":!1},l={local:!1,localServer:"//localhost:8080",minified:!0,version:"0.3.0",branch:"master",repo:"rauenzi",minSupportedVersion:"0.3.0",bbdVersion:"0.2.17"},c={},d={},u={},h={},p={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{},BTTV2:{}},m=[],g=["flip","spin","pulse","spin2","spin3","1spin","2spin","3spin","tr","bl","br","shake","shake2","shake3","flap"],f=["twitch","bttv","ffz"],b=[{type:"collection",id:"settings",name:"Settings",settings:[{type:"category",id:"general",name:"General",collapsible:!0,settings:[{type:"switch",id:"emotes",name:"Emote System",note:"Enables BD's emote system",value:!0},{type:"switch",id:"publicServers",name:"Public Servers",note:"Display public servers button",value:!0},{type:"switch",id:"voiceDisconnect",name:"Voice Disconnect",note:"Disconnect from voice server when closing Discord",value:!1},{type:"switch",id:"twentyFourHour",name:"24 Hour Timestamps",note:"Hides channels when in minimal mode",value:!1},{type:"switch",id:"classNormalizer",name:"Normalize Classes",note:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)",value:!0},{type:"switch",id:"showToasts",name:"Show Toasts",note:"Shows a small notification for important information",value:!0}]},{type:"category",id:"appearance",name:"Appearance",collapsible:!0,settings:[{type:"switch",id:"voiceMode",name:"Voice Mode",note:"Hides everything that isn't voice chat",value:!1},{type:"switch",id:"minimalMode",name:"Minimal Mode",note:"Hide elements and reduce the size of elements",value:!1},{type:"switch",id:"hideChannels",name:"Hide Channels",note:"Hides channels when in minimal mode",value:!1,enableWith:"minimalMode"},{type:"switch",id:"darkMode",name:"Dark Mode",note:"Make certain elements dark by default",value:!0},{type:"switch",id:"coloredText",name:"Colored Text",note:"Make text colour the same as role color",value:!1}]},{type:"category",id:"content",name:"Content Manager",collapsible:!0,settings:[{type:"switch",id:"contentErrors",name:"Show Content Errors",note:"Shows a modal with plugin/theme errors",value:!0},{type:"switch",id:"autoScroll",name:"Scroll To Settings",note:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)",value:!0},{type:"switch",id:"autoReload",name:"Automatic Loading",note:"Automatically loads, reloads, and unloads plugins and themes",value:!0}]},{type:"category",id:"developer",name:"Developer Settings",collapsible:!0,shown:!1,settings:[{type:"switch",id:"developerMode",name:"Developer Mode",note:"Allows activating debugger when pressing F8",value:!1},{type:"switch",id:"copySelector",name:"Copy Selector",note:'Adds a "Copy Selector" option to context menus when developer mode is active',value:!1,enableWith:"developerMode"}]},{type:"category",id:"window",name:"Window Preferences",collapsible:!0,shown:!1,settings:[{type:"switch",id:"transparency",name:"Enable Transparency",note:"Enables the main window to be see-through (requires restart)",value:!1},{type:"switch",id:"frame",name:"Window Frame",note:"Adds the native os window frame to the main window",value:!1,hidden:!0}]}]},{type:"collection",id:"emotes",name:"Emotes",enableWith:"settings.general.emotes",settings:[{type:"category",id:"general",name:"General",collapsible:!0,settings:[{type:"switch",id:"download",name:"Download Emotes",note:"Download emotes once a week to stay up to date",value:!0},{type:"switch",id:"emoteMenu",name:"Emote Menu",note:"Show Twitch/Favourite emotes in emote menu",value:!0},{type:"switch",id:"hideEmojiMenu",name:"Hide Emoji Menu",note:"Hides Discord's emoji menu when using emote menu",value:!1,enableWith:"emoteMenu"},{type:"switch",id:"autoCaps",name:"Emote Autocapitalization",note:"Autocapitalize emote commands",value:!1},{type:"switch",id:"showNames",name:"Show Names",note:"Show emote names on hover",value:!0},{type:"switch",id:"modifiers",name:"Show Emote Modifiers",note:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)",value:!0},{type:"switch",id:"animateOnHover",name:"Animate On Hover",note:"Only animate the emote modifiers on hover",value:!1}]},{type:"category",id:"categories",name:"Categories",collapsible:!0,settings:[{type:"switch",id:"twitch",name:"Twitch",note:"Show Twitch global & subscriber emotes",value:!0},{type:"switch",id:"ffz",name:"FrankerFaceZ",note:"Show emotes from FFZ",value:!0},{type:"switch",id:"bttv",name:"BetterTTV",note:"Show emotes from BTTV",value:!0}]}]}],y={};class v{static get screenWidth(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)}static get screenHeight(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}static stripBOM(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}static getTextArea(){return $(".channelTextArea-1LDbYG textarea")}static getInternalInstance(e){return e[Object.keys(e).find(e=>e.startsWith("__reactInternalInstance"))]||null}static insertText(e,t){e.focus(),e.selectionStart=0,e.selectionEnd=e.value.length,document.execCommand("insertText",!1,t)}static injectCss(e){$("",{type:"text/css",rel:"stylesheet",href:e}).appendTo($("head"))}static injectJs(e){return new Promise(t=>{$("