From 4807d51d4cc7892ce8c6bc68736338ce1aa20404 Mon Sep 17 00:00:00 2001 From: Zack Rauen Date: Mon, 10 Jun 2019 22:33:45 -0400 Subject: [PATCH] hatching plans for detached editor --- js/main.js | 8 +-- src/builtins/customcss.js | 69 ++++++++++++++++++++++-- src/index.js | 4 +- src/modules/core.js | 7 +-- src/ui/customcss/detached.jsx | 98 +++++++++++++++++++++++++++++++++++ 5 files changed, 172 insertions(+), 14 deletions(-) create mode 100644 src/ui/customcss/detached.jsx diff --git a/js/main.js b/js/main.js index cb5be52a..65b5c6ef 100644 --- a/js/main.js +++ b/js/main.js @@ -143,7 +143,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _str /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_customcss_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/customcss/editor */ \"./src/ui/customcss/editor.jsx\");\n\n\n\n\nconst electron = __webpack_require__(/*! electron */ \"electron\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class CustomCSS extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Custom CSS\";\n }\n\n get category() {\n return \"customcss\";\n }\n\n get id() {\n return \"customcss\";\n }\n\n get startDetached() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"startDetached\");\n }\n\n get nativeOpen() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"nativeOpen\");\n }\n\n constructor() {\n super();\n this.css = \"\";\n }\n\n enabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].registerPanel(this.id, this.name, {\n order: 2,\n element: () => modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_editor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n css: this.css,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this)\n }),\n onClick: thisObject => {\n if (this.nativeOpen) this.openNative();else if (this.startDetached) this.openDetached();else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(this.name);\n }\n });\n this.loadCSS();\n this.insertCSS();\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].removePanel(this.id);\n }\n\n loadCSS() {\n this.css = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n }\n\n insertCSS(newCss) {\n if (typeof newCss === \"undefined\") newCss = this.css;\n\n if ($(\"#customcss\").length == 0) {\n $(\"head\").append(\"\");\n }\n\n $(\"#customcss\").text(newCss).detach().appendTo(document.head);\n }\n\n saveCSS(newCss) {\n if (typeof newCss !== \"undefined\") this.css = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].saveCustomCSS(this.css);\n }\n\n openNative() {\n electron.shell.openExternal(`file://${modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS}`);\n }\n\n openDetached() {\n this.log(\"Should open detached\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcz9jM2YyIl0sIm5hbWVzIjpbImVsZWN0cm9uIiwicmVxdWlyZSIsIkN1c3RvbUNTUyIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsInN0YXJ0RGV0YWNoZWQiLCJTZXR0aW5ncyIsImdldCIsImNvbGxlY3Rpb24iLCJuYXRpdmVPcGVuIiwiY29uc3RydWN0b3IiLCJjc3MiLCJlbmFibGVkIiwicmVnaXN0ZXJQYW5lbCIsIm9yZGVyIiwiZWxlbWVudCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkNTU0VkaXRvciIsInNhdmUiLCJzYXZlQ1NTIiwiYmluZCIsInVwZGF0ZSIsImluc2VydENTUyIsIm9wZW5OYXRpdmUiLCJvbkNsaWNrIiwidGhpc09iamVjdCIsIm9wZW5EZXRhY2hlZCIsIl9yZWFjdEludGVybmFsRmliZXIiLCJjaGlsZCIsIm1lbW9pemVkUHJvcHMiLCJjaGlsZHJlbiIsInByb3BzIiwib25TZXRTZWN0aW9uIiwibG9hZENTUyIsImRpc2FibGVkIiwicmVtb3ZlUGFuZWwiLCJEYXRhU3RvcmUiLCJsb2FkQ3VzdG9tQ1NTIiwibmV3Q3NzIiwiJCIsImxlbmd0aCIsImFwcGVuZCIsInRleHQiLCJkZXRhY2giLCJhcHBlbmRUbyIsImRvY3VtZW50IiwiaGVhZCIsInNhdmVDdXN0b21DU1MiLCJzaGVsbCIsIm9wZW5FeHRlcm5hbCIsImN1c3RvbUNTUyIsImxvZyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHQyxtQkFBTyxDQUFDLDBCQUFELENBQXhCOztBQUVlLG1FQUFJLE1BQU1DLFNBQU4sU0FBd0JDLHdEQUF4QixDQUFnQztBQUMvQyxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLFlBQVA7QUFBcUI7O0FBQ2pDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sV0FBUDtB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IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtTZXR0aW5ncywgRGF0YVN0b3JlLCBSZWFjdCwgRXZlbnRzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ1NTRWRpdG9yIGZyb20gXCIuLi91aS9jdXN0b21jc3MvZWRpdG9yXCI7XHJcblxyXG5jb25zdCBlbGVjdHJvbiA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBDdXN0b21DU1MgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkN1c3RvbSBDU1NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiY3VzdG9tY3NzXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcImN1c3RvbWNzc1wiO31cclxuICAgIGdldCBzdGFydERldGFjaGVkKCkge3JldHVybiBTZXR0aW5ncy5nZXQodGhpcy5jb2xsZWN0aW9uLCB0aGlzLmNhdGVnb3J5LCBcInN0YXJ0RGV0YWNoZWRcIik7fVxyXG4gICAgZ2V0IG5hdGl2ZU9wZW4oKSB7cmV0dXJuIFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIFwibmF0aXZlT3BlblwiKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNzcyA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlclBhbmVsKHRoaXMuaWQsIHRoaXMubmFtZSwge1xyXG4gICAgICAgICAgICBvcmRlcjogMixcclxuICAgICAgICAgICAgZWxlbWVudDogKCkgPT4gUmVhY3QuY3JlYXRlRWxlbWVudChDU1NFZGl0b3IsIHtcclxuICAgICAgICAgICAgICAgIGNzczogdGhpcy5jc3MsXHJcbiAgICAgICAgICAgICAgICBzYXZlOiB0aGlzLnNhdmVDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZTogdGhpcy5pbnNlcnRDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIG9wZW5OYXRpdmU6IHRoaXMub3Blbk5hdGl2ZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlT3BlbikgdGhpcy5vcGVuTmF0aXZlKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnN0YXJ0RGV0YWNoZWQpIHRoaXMub3BlbkRldGFjaGVkKCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXNPYmplY3QuX3JlYWN0SW50ZXJuYWxGaWJlci5jaGlsZC5tZW1vaXplZFByb3BzLmNoaWxkcmVuLnByb3BzLm9uU2V0U2VjdGlvbih0aGlzLm5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5sb2FkQ1NTKCk7XHJcbiAgICAgICAgdGhpcy5pbnNlcnRDU1MoKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBTZXR0aW5ncy5yZW1vdmVQYW5lbCh0aGlzLmlkKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQ1NTKCkge1xyXG4gICAgICAgIHRoaXMuY3NzID0gRGF0YVN0b3JlLmxvYWRDdXN0b21DU1MoKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnNlcnRDU1MobmV3Q3NzKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZihuZXdDc3MpID09PSBcInVuZGVmaW5lZFwiKSBuZXdDc3MgPSB0aGlzLmNzcztcclxuICAgICAgICBpZiAoJChcIiNjdXN0b21jc3NcIikubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgJChcImhlYWRcIikuYXBwZW5kKFwiPHN0eWxlIGlkPVxcXCJjdXN0b21jc3NcXFwiPjwvc3R5bGU+XCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkKFwiI2N1c3RvbWNzc1wiKS50ZXh0KG5ld0NzcykuZGV0YWNoKCkuYXBwZW5kVG8oZG9jdW1lbnQuaGVhZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUNTUyhuZXdDc3MpIHtcclxuICAgICAgICBpZiAodHlwZW9mKG5ld0NzcykgIT09IFwidW5kZWZpbmVkXCIpIHRoaXMuY3NzID0gbmV3Q3NzO1xyXG4gICAgICAgIERhdGFTdG9yZS5zYXZlQ3VzdG9tQ1NTKHRoaXMuY3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmF0aXZlKCkge1xyXG4gICAgICAgIGVsZWN0cm9uLnNoZWxsLm9wZW5FeHRlcm5hbChgZmlsZTovLyR7RGF0YVN0b3JlLmN1c3RvbUNTU31gKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRGV0YWNoZWQoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJTaG91bGQgb3BlbiBkZXRhY2hlZFwiKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/customcss.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_customcss_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/customcss/editor */ \"./src/ui/customcss/editor.jsx\");\n\n\n\n\nconst electron = __webpack_require__(/*! electron */ \"electron\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class CustomCSS extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Custom CSS\";\n }\n\n get category() {\n return \"customcss\";\n }\n\n get id() {\n return \"customcss\";\n }\n\n get startDetached() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"startDetached\");\n }\n\n get nativeOpen() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"nativeOpen\");\n }\n\n constructor() {\n super();\n this.css = \"\";\n }\n\n async enabled() {\n if (!window.ace) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\").then(() => {\n if (window.require.original) window.require = window.require.original;\n });\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].registerPanel(this.id, this.name, {\n order: 2,\n element: () => modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_editor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n css: this.css,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this)\n }),\n onClick: thisObject => {\n if (this.nativeOpen) this.openNative();else if (this.startDetached) this.openDetached();else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(this.name);\n }\n });\n this.loadCSS();\n this.insertCSS();\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].removePanel(this.id);\n }\n\n loadCSS() {\n this.css = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n }\n\n insertCSS(newCss) {\n if (typeof newCss === \"undefined\") newCss = this.css;\n\n if ($(\"#customcss\").length == 0) {\n $(\"head\").append(\"\");\n }\n\n $(\"#customcss\").text(newCss).detach().appendTo(document.head);\n }\n\n saveCSS(newCss) {\n if (typeof newCss !== \"undefined\") this.css = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].saveCustomCSS(this.css);\n }\n\n openNative() {\n electron.shell.openExternal(`file://${modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS}`);\n }\n\n openDetached() {\n this.log(\"Should open detached\");\n const options = {\n width: 500,\n height: 550,\n backgroundColor: \"#282b30\",\n show: true,\n resizable: false,\n maximizable: false,\n minimizable: false,\n alwaysOnTop: true,\n frame: true,\n center: false,\n webPreferences: {\n nodeIntegration: true\n }\n };\n const detached = new electron.remote.Browserdetached(options);\n detached.setMenu(null);\n detached.loadURL(\"about:blank\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcz9jM2YyIl0sIm5hbWVzIjpbImVsZWN0cm9uIiwicmVxdWlyZSIsIkN1c3RvbUNTUyIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsInN0YXJ0RGV0YWNoZWQiLCJTZXR0aW5ncyIsImdldCIsImNvbGxlY3Rpb24iLCJuYXRpdmVPcGVuIiwiY29uc3RydWN0b3IiLCJjc3MiLCJlbmFibGVkIiwid2luZG93IiwiYWNlIiwiVXRpbGl0aWVzIiwiaW5qZWN0SnMiLCJ0aGVuIiwib3JpZ2luYWwiLCJyZWdpc3RlclBhbmVsIiwib3JkZXIiLCJlbGVtZW50IiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiQ1NTRWRpdG9yIiwic2F2ZSIsInNhdmVDU1MiLCJiaW5kIiwidXBkYXRlIiwiaW5zZXJ0Q1NTIiwib3Blbk5hdGl2ZSIsIm9uQ2xpY2siLCJ0aGlzT2JqZWN0Iiwib3BlbkRldGFjaGVkIiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsImNoaWxkIiwibWVtb2l6ZWRQcm9wcyIsImNoaWxkcmVuIiwicHJvcHMiLCJvblNldFNlY3Rpb24iLCJsb2FkQ1NTIiwiZGlzYWJsZWQiLCJyZW1vdmVQYW5lbCIsIkRhdGFTdG9yZSIsImxvYWRDdXN0b21DU1MiLCJuZXdDc3MiLCIkIiwibGVuZ3RoIiwiYXBwZW5kIiwidGV4dCIsImRldGFjaCIsImFwcGVuZFRvIiwiZG9jdW1lbnQiLCJoZWFkIiwic2F2ZUN1c3RvbUNTUyIsInNoZWxsIiwib3BlbkV4dGVybmFsIiwiY3VzdG9tQ1NTIiwibG9nIiwib3B0aW9ucyIsIndpZHRoIiwiaGVpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwic2hvdyIsInJlc2l6YWJsZSIsIm1heGltaXphYmxlIiwibWluaW1pemFibGUiLCJhbHdheXNPblRvcCIsImZyYW1lIiwiY2VudGVyIiwid2ViUHJlZmVyZW5jZXMiLCJub2RlSW50ZWdyYXRpb24iLCJkZXRhY2hlZCIsInJlbW90ZSIsIkJyb3dzZXJkZXRhY2hlZCIsInNldE1lbnUiLCJsb2FkVVJMIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUdDLG1CQUFPLENBQUMsMEJBQUQsQ0FBeEI7O0FBRWUsbUVBQUksTUFBTUMsU0FBTixTQUF3QkMsd0RBQXhCLENBQWdDO0FBQy9DLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sWUFBUDtBQUFxQjs7QUFDakMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxXQUFQO0FBQW9COztBQUNwQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBQzlCLE1BQUlDLGFBQUosR0FBb0I7QUFBQyxXQUFPQyxnREFBUSxDQUFDQyxHQUFULENBQWEsS0FBS0MsVUFBbEIsRUFBOEIsS0FBS0wsUUFBbkMsRUFBNkMsZUFBN0MsQ0FBUDtBQUFzRTs7QUFDM0YsTUFBSU0sVUFBSixHQUFpQjtBQUFDLFdBQU9ILGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxLQUFLQyxVQUFsQixFQUE4QixLQUFLTCxRQUFuQyxFQUE2QyxZQUE3QyxDQUFQO0FBQW1FOztBQUVyRk8sYUFBVyxHQUFHO0FBQ1Y7QUFDQSxTQUFLQyxHQUFMLEdBQVcsRUFBWDtBQUNIOztBQUVELFFBQU1DLE9BQU4sR0FBZ0I7QUFDWixRQUFJLENBQUNDLE1BQU0sQ0FBQ0MsR0FBWixFQUFpQjtBQUNiQyx1REFBUyxDQUFDQyxRQUFWLENBQW1CLHlEQUFuQixFQUE4RUMsSUFBOUUsQ0FBbUYsTUFBTTtBQUNyRixZQUFJSixNQUFNLENBQUNkLE9BQVAsQ0FBZW1CLFFBQW5CLEVBQTZCTCxNQUFNLENBQUNkLE9BQVAsR0FBaUJjLE1BQU0sQ0FBQ2QsT0FBUCxDQUFlbUIsUUFBaEM7QUFDaEMsT0FGRDtBQUdIOztBQUNEWixvREFBUSxDQUFDYSxhQUFULENBQXVCLEtBQUtmLEVBQTVCLEVBQWdDLEtBQUtGLElBQXJDLEVBQTJDO0FBQ3ZDa0IsV0FBSyxFQUFFLENBRGdDO0FBRXZDQyxhQUFPLEVBQUUsTUFBTUMsNkNBQUssQ0FBQ0MsYUFBTixDQUFvQkMsNERBQXBCLEVBQStCO0FBQzFDYixXQUFHLEVBQUUsS0FBS0EsR0FEZ0M7QUFFMUNjLFlBQUksRUFBRSxLQUFLQyxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEIsQ0FGb0M7QUFHMUNDLGNBQU0sRUFBRSxLQUFLQyxTQUFMLENBQWVGLElBQWYsQ0FBb0IsSUFBcEIsQ0FIa0M7QUFJMUNHLGtCQUFVLEVBQUUsS0FBS0EsVUFBTCxDQUFnQkgsSUFBaEIsQ0FBcUIsSUFBckI7QUFKOEIsT0FBL0IsQ0FGd0I7QUFRdkNJLGFBQU8sRUFBR0MsVUFBRCxJQUFnQjtBQUNyQixZQUFJLEtBQUt2QixVQUFULEVBQXFCLEtBQUtxQixVQUFMLEdBQXJCLEtBQ0ssSUFBSSxLQUFLekIsYUFBVCxFQUF3QixLQUFLNEIsWUFBTCxHQUF4QixLQUNBRCxVQUFVLENBQUNFLG1CQUFYLENBQStCQyxLQUEvQixDQUFxQ0MsYUFBckMsQ0FBbURDLFFBQW5ELENBQTREQyxLQUE1RCxDQUFrRUMsWUFBbEUsQ0FBK0UsS0FBS3JDLElBQXBGO0FBQ1I7QUFac0MsS0FBM0M7QUFjQSxTQUFLc0MsT0FBTDtBQUNBLFNBQUtYLFNBQUw7QUFDSDs7QUFFRFksVUFBUSxHQUFHO0FBQ1BuQyxvREFBUSxDQUFDb0MsV0FBVCxDQUFxQixLQUFLdEMsRUFBMUI7QUFDSDs7QUFFRG9DLFNBQU8sR0FBRztBQUNOLFNBQUs3QixHQUFMLEdBQVdnQyxpREFBUyxDQUFDQyxhQUFWLEVBQVg7QUFDSDs7QUFFRGYsV0FBUyxDQUFDZ0IsTUFBRCxFQUFTO0FBQ2QsUUFBSSxPQUFPQSxNQUFQLEtBQW1CLFdBQXZCLEVBQW9DQSxNQUFNLEdBQUcsS0FBS2xDLEdBQWQ7O0FBQ3BDLFFBQUltQyxDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCQyxNQUFoQixJQUEwQixDQUE5QixFQUFpQztBQUM3QkQsT0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVRSxNQUFWLENBQWlCLGtDQUFqQjtBQUNIOztBQUNERixLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCRyxJQUFoQixDQUFxQkosTUFBckIsRUFBNkJLLE1BQTdCLEdBQXNDQyxRQUF0QyxDQUErQ0MsUUFBUSxDQUFDQyxJQUF4RDtBQUNIOztBQUVEM0IsU0FBTyxDQUFDbUIsTUFBRCxFQUFTO0FBQ1osUUFBSSxPQUFPQSxNQUFQLEtBQW1CLFdBQXZCLEVBQW9DLEtBQUtsQyxHQUFMLEdBQVdrQyxNQUFYO0FBQ3BDRixxREFBUyxDQUFDVyxhQUFWLENBQXdCLEtBQUszQyxHQUE3QjtBQUNIOztBQUVEbUIsWUFBVSxHQUFHO0FBQ1RoQyxZQUFRLENBQUN5RCxLQUFULENBQWVDLFlBQWYsQ0FBNkIsVUFBU2IsaURBQVMsQ0FBQ2MsU0FBVSxFQUExRDtBQUNIOztBQUVEeEIsY0FBWSxHQUFHO0FBQ1gsU0FBS3lCLEdBQUwsQ0FBUyxzQkFBVDtBQUNBLFVBQU1DLE9BQU8sR0FBRztBQUNaQyxXQUFLLEVBQUUsR0FESztBQUVaQyxZQUFNLEVBQUUsR0FGSTtBQUdaQyxxQkFBZSxFQUFFLFNBSEw7QUFJWkMsVUFBSSxFQUFFLElBSk07QUFLWkMsZUFBUyxFQUFFLEtBTEM7QUFNWkMsaUJBQVcsRUFBRSxLQU5EO0FBT1pDLGlCQUFXLEVBQUUsS0FQRDtBQVFaQyxpQkFBVyxFQUFFLElBUkQ7QUFTWkMsV0FBSyxFQUFFLElBVEs7QUFVWkMsWUFBTSxFQUFFLEtBVkk7QUFXWkMsb0JBQWMsRUFBRTtBQUNaQyx1QkFBZSxFQUFFO0FBREw7QUFYSixLQUFoQjtBQWdCQSxVQUFNQyxRQUFRLEdBQUcsSUFBSTFFLFFBQVEsQ0FBQzJFLE1BQVQsQ0FBZ0JDLGVBQXBCLENBQW9DZixPQUFwQyxDQUFqQjtBQUNBYSxZQUFRLENBQUNHLE9BQVQsQ0FBaUIsSUFBakI7QUFDQUgsWUFBUSxDQUFDSSxPQUFULENBQWlCLGFBQWpCO0FBQ0g7O0FBbEY4QyxDQUFwQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtTZXR0aW5ncywgRGF0YVN0b3JlLCBSZWFjdCwgVXRpbGl0aWVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ1NTRWRpdG9yIGZyb20gXCIuLi91aS9jdXN0b21jc3MvZWRpdG9yXCI7XHJcblxyXG5jb25zdCBlbGVjdHJvbiA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBDdXN0b21DU1MgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkN1c3RvbSBDU1NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiY3VzdG9tY3NzXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcImN1c3RvbWNzc1wiO31cclxuICAgIGdldCBzdGFydERldGFjaGVkKCkge3JldHVybiBTZXR0aW5ncy5nZXQodGhpcy5jb2xsZWN0aW9uLCB0aGlzLmNhdGVnb3J5LCBcInN0YXJ0RGV0YWNoZWRcIik7fVxyXG4gICAgZ2V0IG5hdGl2ZU9wZW4oKSB7cmV0dXJuIFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIFwibmF0aXZlT3BlblwiKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNzcyA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHtcclxuICAgICAgICBpZiAoIXdpbmRvdy5hY2UpIHtcclxuICAgICAgICAgICAgVXRpbGl0aWVzLmluamVjdEpzKFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMi45L2FjZS5qc1wiKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cucmVxdWlyZS5vcmlnaW5hbCkgd2luZG93LnJlcXVpcmUgPSB3aW5kb3cucmVxdWlyZS5vcmlnaW5hbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFNldHRpbmdzLnJlZ2lzdGVyUGFuZWwodGhpcy5pZCwgdGhpcy5uYW1lLCB7XHJcbiAgICAgICAgICAgIG9yZGVyOiAyLFxyXG4gICAgICAgICAgICBlbGVtZW50OiAoKSA9PiBSZWFjdC5jcmVhdGVFbGVtZW50KENTU0VkaXRvciwge1xyXG4gICAgICAgICAgICAgICAgY3NzOiB0aGlzLmNzcyxcclxuICAgICAgICAgICAgICAgIHNhdmU6IHRoaXMuc2F2ZUNTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlOiB0aGlzLmluc2VydENTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgb3Blbk5hdGl2ZTogdGhpcy5vcGVuTmF0aXZlLmJpbmQodGhpcylcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6ICh0aGlzT2JqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uYXRpdmVPcGVuKSB0aGlzLm9wZW5OYXRpdmUoKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc3RhcnREZXRhY2hlZCkgdGhpcy5vcGVuRGV0YWNoZWQoKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpc09iamVjdC5fcmVhY3RJbnRlcm5hbEZpYmVyLmNoaWxkLm1lbW9pemVkUHJvcHMuY2hpbGRyZW4ucHJvcHMub25TZXRTZWN0aW9uKHRoaXMubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmxvYWRDU1MoKTtcclxuICAgICAgICB0aGlzLmluc2VydENTUygpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIFNldHRpbmdzLnJlbW92ZVBhbmVsKHRoaXMuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRDU1MoKSB7XHJcbiAgICAgICAgdGhpcy5jc3MgPSBEYXRhU3RvcmUubG9hZEN1c3RvbUNTUygpO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VydENTUyhuZXdDc3MpIHtcclxuICAgICAgICBpZiAodHlwZW9mKG5ld0NzcykgPT09IFwidW5kZWZpbmVkXCIpIG5ld0NzcyA9IHRoaXMuY3NzO1xyXG4gICAgICAgIGlmICgkKFwiI2N1c3RvbWNzc1wiKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoXCI8c3R5bGUgaWQ9XFxcImN1c3RvbWNzc1xcXCI+PC9zdHlsZT5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoXCIjY3VzdG9tY3NzXCIpLnRleHQobmV3Q3NzKS5kZXRhY2goKS5hcHBlbmRUbyhkb2N1bWVudC5oZWFkKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlQ1NTKG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YobmV3Q3NzKSAhPT0gXCJ1bmRlZmluZWRcIikgdGhpcy5jc3MgPSBuZXdDc3M7XHJcbiAgICAgICAgRGF0YVN0b3JlLnNhdmVDdXN0b21DU1ModGhpcy5jc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5OYXRpdmUoKSB7XHJcbiAgICAgICAgZWxlY3Ryb24uc2hlbGwub3BlbkV4dGVybmFsKGBmaWxlOi8vJHtEYXRhU3RvcmUuY3VzdG9tQ1NTfWApO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5EZXRhY2hlZCgpIHtcclxuICAgICAgICB0aGlzLmxvZyhcIlNob3VsZCBvcGVuIGRldGFjaGVkXCIpO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MDAsXHJcbiAgICAgICAgICAgIGhlaWdodDogNTUwLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzI4MmIzMFwiLFxyXG4gICAgICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBtYXhpbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIG1pbmltaXphYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgYWx3YXlzT25Ub3A6IHRydWUsXHJcbiAgICAgICAgICAgIGZyYW1lOiB0cnVlLFxyXG4gICAgICAgICAgICBjZW50ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB3ZWJQcmVmZXJlbmNlczoge1xyXG4gICAgICAgICAgICAgICAgbm9kZUludGVncmF0aW9uOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBlbGVjdHJvbi5yZW1vdGUuQnJvd3NlcmRldGFjaGVkKG9wdGlvbnMpO1xyXG4gICAgICAgIGRldGFjaGVkLnNldE1lbnUobnVsbCk7XHJcbiAgICAgICAgZGV0YWNoZWQubG9hZFVSTChcImFib3V0OmJsYW5rXCIpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/customcss.js\n"); /***/ }), @@ -331,11 +331,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /*!**********************!*\ !*** ./src/index.js ***! \**********************/ -/*! exports provided: default, patchModuleLoad */ +/*! 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 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 _modules_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/oldstorage */ \"./src/modules/oldstorage.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _modules_datastore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/datastore */ \"./src/modules/datastore.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// proxyLocalStorage();\n\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_2__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__[\"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_5__[\"bdPluginStorage\"];\nwindow.settingsModule = _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.DataStore = _modules_datastore__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"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_2__[\"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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsibG9hZGluZ0ljb24iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIndpbmRvdyIsIkJkQXBpIiwicGx1Z2luTW9kdWxlIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lTW9kdWxlIiwiVGhlbWVNYW5hZ2VyIiwiYmRFbW90ZXMiLCJFbW90ZU1vZHVsZSIsIkVtb3RlcyIsImJlbW90ZXMiLCJibGFja2xpc3QiLCJiZFBsdWdpblN0b3JhZ2UiLCJzZXR0aW5nc01vZHVsZSIsIlNldHRpbmdzIiwiRGF0YVN0b3JlIiwiQkRFdmVudHMiLCJFdmVudHMiLCJiZENvbmZpZyIsIkNvbmZpZyIsIkNvcmVXcmFwcGVyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJDb3JlIiwic2V0Q29uZmlnIiwiaW5pdCIsInBhdGNoTW9kdWxlTG9hZCIsIm5hbWVzcGFjZSIsInByZWZpeCIsIk1vZHVsZSIsInJlcXVpcmUiLCJsb2FkIiwiX2xvYWQiLCJyZXF1ZXN0Iiwic3RhcnRzV2l0aCIsInJlcXVlc3RlZCIsInN1YnN0ciIsImxlbmd0aCIsImFwcGx5IiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBO0FBQ0E7O0FBQ0EsTUFBTUEsV0FBVyxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBcEI7QUFDQUYsV0FBVyxDQUFDRyxTQUFaLEdBQXdCLGFBQXhCO0FBQ0FILFdBQVcsQ0FBQ0ksS0FBWixHQUFvQiwwQkFBcEI7QUFDQUgsUUFBUSxDQUFDSSxJQUFULENBQWNDLFdBQWQsQ0FBMEJOLFdBQTFCLEUsQ0FFQTs7QUFDQU8sTUFBTSxDQUFDQyxLQUFQLEdBQWVBLDBEQUFmLEMsQ0FDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUQsTUFBTSxDQUFDRSxZQUFQLEdBQXNCQyw4REFBdEI7QUFDQUgsTUFBTSxDQUFDSSxXQUFQLEdBQXFCQyw2REFBckIsQyxDQUNBO0FBQ0E7O0FBQ0FMLE1BQU0sQ0FBQ00sUUFBUCxHQUFrQkMsd0RBQVcsQ0FBQ0MsTUFBOUI7QUFDQVIsTUFBTSxDQUFDUyxPQUFQLEdBQWlCRix3REFBVyxDQUFDRyxTQUE3QjtBQUNBVixNQUFNLENBQUNXLGVBQVAsR0FBeUJBLG1FQUF6QjtBQUNBWCxNQUFNLENBQUNZLGNBQVAsR0FBd0JDLGdFQUF4QjtBQUNBYixNQUFNLENBQUNjLFNBQVAsR0FBbUJBLDBEQUFuQjtBQUdBZCxNQUFNLENBQUNlLFFBQVAsR0FBa0JDLHdEQUFsQjtBQUNBaEIsTUFBTSxDQUFDaUIsUUFBUCxHQUFrQkMsMkNBQWxCO0FBRWUsTUFBTUMsV0FBTixDQUFrQjtBQUM3QkMsYUFBVyxDQUFDQyxNQUFELEVBQVM7QUFDaEJDLHlEQUFJLENBQUNDLFNBQUwsQ0FBZUYsTUFBZjtBQUNIOztBQUVERyxNQUFJLEdBQUc7QUFDSEYseURBQUksQ0FBQ0UsSUFBTDtBQUNIOztBQVA0QjtBQVUxQixTQUFTQyxlQUFULEdBQTJCO0FBQzlCLFFBQU1DLFNBQVMsR0FBRyxlQUFsQjtBQUNBLFFBQU1DLE1BQU0sR0FBSSxHQUFFRCxTQUFVLEdBQTVCOztBQUNBLFFBQU1FLE1BQU0sR0FBR0MsbUJBQU8sQ0FBQyxzQkFBRCxDQUF0Qjs7QUFDQSxRQUFNQyxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0csS0FBcEIsQ0FKOEIsQ0FLOUI7O0FBRUFILFFBQU0sQ0FBQ0csS0FBUCxHQUFlLFVBQVVDLE9BQVYsRUFBbUI7QUFDOUIsUUFBSUEsT0FBTyxLQUFLTixTQUFaLElBQXlCTSxPQUFPLENBQUNDLFVBQVIsQ0FBbUJOLE1BQW5CLENBQTdCLEVBQXlEO0FBQ3JELFlBQU1PLFNBQVMsR0FBR0YsT0FBTyxDQUFDRyxNQUFSLENBQWVSLE1BQU0sQ0FBQ1MsTUFBdEIsQ0FBbEI7QUFDQSxVQUFJRixTQUFTLElBQUksS0FBakIsRUFBd0IsT0FBT2pDLDBEQUFQO0FBQzNCOztBQUVELFdBQU82QixJQUFJLENBQUNPLEtBQUwsQ0FBVyxJQUFYLEVBQWlCQyxTQUFqQixDQUFQO0FBQ0gsR0FQRCxDQVA4QixDQWdCOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7OztBQUVBLFNBQU8sWUFBVztBQUNkVixVQUFNLENBQUNHLEtBQVAsR0FBZUQsSUFBZjtBQUNILEdBRkQ7QUFHSCxDLENBRUQ7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQSIsImZpbGUiOiIuL3NyYy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgQ29yZSBmcm9tIFwiLi9tb2R1bGVzL2NvcmVcIjtcclxuaW1wb3J0IEJkQXBpIGZyb20gXCIuL21vZHVsZXMvcGx1Z2luYXBpXCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL21vZHVsZXMvcGx1Z2lubWFuYWdlclwiO1xyXG5pbXBvcnQgVGhlbWVNYW5hZ2VyIGZyb20gXCIuL21vZHVsZXMvdGhlbWVtYW5hZ2VyXCI7XHJcbmltcG9ydCB7YmRQbHVnaW5TdG9yYWdlfSBmcm9tIFwiLi9tb2R1bGVzL29sZHN0b3JhZ2VcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9tb2R1bGVzL2VtaXR0ZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vbW9kdWxlcy9kYXRhc3RvcmVcIjtcclxuaW1wb3J0IEVtb3RlTW9kdWxlIGZyb20gXCIuL2J1aWx0aW5zL2Vtb3Rlc1wiO1xyXG5cclxuLy8gUGVyZm9ybSBzb21lIHNldHVwXHJcbi8vIHByb3h5TG9jYWxTdG9yYWdlKCk7XHJcbmNvbnN0IGxvYWRpbmdJY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxubG9hZGluZ0ljb24uY2xhc3NOYW1lID0gXCJiZC1sb2FkZXJ2MlwiO1xyXG5sb2FkaW5nSWNvbi50aXRsZSA9IFwiQmFuZGFnZWRCRCBpcyBsb2FkaW5nLi4uXCI7XHJcbmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGluZ0ljb24pO1xyXG5cclxuLy8gd2luZG93LkNvcmUgPSBDb3JlO1xyXG53aW5kb3cuQmRBcGkgPSBCZEFwaTtcclxuLy8gd2luZG93LnNldHRpbmdzID0gU2V0dGluZ3NJbmZvO1xyXG4vLyB3aW5kb3cuc2V0dGluZ3NDb29raWUgPSBTZXR0aW5nc0Nvb2tpZTtcclxuLy8gd2luZG93LnBsdWdpbkNvb2tpZSA9IFBsdWdpbkNvb2tpZTtcclxuLy8gd2luZG93LnRoZW1lQ29va2llID0gVGhlbWVDb29raWU7XHJcbndpbmRvdy5wbHVnaW5Nb2R1bGUgPSBQbHVnaW5NYW5hZ2VyO1xyXG53aW5kb3cudGhlbWVNb2R1bGUgPSBUaGVtZU1hbmFnZXI7XHJcbi8vIHdpbmRvdy5iZHRoZW1lcyA9IFRoZW1lcztcclxuLy8gd2luZG93LmJkcGx1Z2lucyA9IFBsdWdpbnM7XHJcbndpbmRvdy5iZEVtb3RlcyA9IEVtb3RlTW9kdWxlLkVtb3Rlcztcclxud2luZG93LmJlbW90ZXMgPSBFbW90ZU1vZHVsZS5ibGFja2xpc3Q7XHJcbndpbmRvdy5iZFBsdWdpblN0b3JhZ2UgPSBiZFBsdWdpblN0b3JhZ2U7XHJcbndpbmRvdy5zZXR0aW5nc01vZHVsZSA9IFNldHRpbmdzO1xyXG53aW5kb3cuRGF0YVN0b3JlID0gRGF0YVN0b3JlO1xyXG5cclxuXHJcbndpbmRvdy5CREV2ZW50cyA9IEV2ZW50cztcclxud2luZG93LmJkQ29uZmlnID0gQ29uZmlnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29yZVdyYXBwZXIge1xyXG4gICAgY29uc3RydWN0b3IoY29uZmlnKSB7XHJcbiAgICAgICAgQ29yZS5zZXRDb25maWcoY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KCkge1xyXG4gICAgICAgIENvcmUuaW5pdCgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hNb2R1bGVMb2FkKCkge1xyXG4gICAgY29uc3QgbmFtZXNwYWNlID0gXCJiZXR0ZXJkaXNjb3JkXCI7XHJcbiAgICBjb25zdCBwcmVmaXggPSBgJHtuYW1lc3BhY2V9L2A7XHJcbiAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpO1xyXG4gICAgY29uc3QgbG9hZCA9IE1vZHVsZS5fbG9hZDtcclxuICAgIC8vIGNvbnN0IHJlc29sdmVGaWxlbmFtZSA9IE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lO1xyXG5cclxuICAgIE1vZHVsZS5fbG9hZCA9IGZ1bmN0aW9uIChyZXF1ZXN0KSB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QgPT09IG5hbWVzcGFjZSB8fCByZXF1ZXN0LnN0YXJ0c1dpdGgocHJlZml4KSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0ZWQgPSByZXF1ZXN0LnN1YnN0cihwcmVmaXgubGVuZ3RoKTtcclxuICAgICAgICAgICAgaWYgKHJlcXVlc3RlZCA9PSBcImFwaVwiKSByZXR1cm4gQmRBcGk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbG9hZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZSA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBwYXJlbnQsIGlzTWFpbikge1xyXG4gICAgLy8gICAgIGlmIChyZXF1ZXN0ID09PSBcImJldHRlcmRpc2NvcmRcIiB8fCByZXF1ZXN0LnN0YXJ0c1dpdGgoXCJiZXR0ZXJkaXNjb3JkL1wiKSkge1xyXG4gICAgLy8gICAgICAgICBjb25zdCBjb250ZW50UGF0aCA9IFBsdWdpbk1hbmFnZXIuZ2V0UGx1Z2luUGF0aEJ5TW9kdWxlKHBhcmVudCk7XHJcbiAgICAvLyAgICAgICAgIGlmIChjb250ZW50UGF0aCkgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICByZXR1cm4gcmVzb2x2ZUZpbGVuYW1lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAvLyB9O1xyXG5cclxuICAgIHJldHVybiBmdW5jdGlvbigpIHtcclxuICAgICAgICBNb2R1bGUuX2xvYWQgPSBsb2FkO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8gZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpbkJ5TW9kdWxlKG1vZHVsZSkge1xyXG4vLyAgICAgcmV0dXJuIHRoaXMubG9jYWxDb250ZW50LmZpbmQocGx1Z2luID0+IG1vZHVsZS5maWxlbmFtZSA9PT0gcGx1Z2luLmNvbnRlbnRQYXRoIHx8IG1vZHVsZS5maWxlbmFtZS5zdGFydHNXaXRoKHBsdWdpbi5jb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBmdW5jdGlvbiBnZXRQbHVnaW5QYXRoQnlNb2R1bGUobW9kdWxlKSB7XHJcbi8vICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wbHVnaW5BcGlJbnN0YW5jZXMpLmZpbmQoY29udGVudFBhdGggPT4gbW9kdWxlLmZpbGVuYW1lID09PSBjb250ZW50UGF0aCB8fCBtb2R1bGUuZmlsZW5hbWUuc3RhcnRzV2l0aChjb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xyXG4vLyB2YXIgYmRDb25maWcgPSBudWxsOyJdLCJzb3VyY2VSb290IjoiIn0=\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 import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/oldstorage */ \"./src/modules/oldstorage.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _modules_datastore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/datastore */ \"./src/modules/datastore.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// proxyLocalStorage();\n\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_2__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__[\"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_5__[\"bdPluginStorage\"];\nwindow.settingsModule = _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.DataStore = _modules_datastore__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init();\n }\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_2__[\"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}\n\npatchModuleLoad(); // 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsibG9hZGluZ0ljb24iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIndpbmRvdyIsIkJkQXBpIiwicGx1Z2luTW9kdWxlIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lTW9kdWxlIiwiVGhlbWVNYW5hZ2VyIiwiYmRFbW90ZXMiLCJFbW90ZU1vZHVsZSIsIkVtb3RlcyIsImJlbW90ZXMiLCJibGFja2xpc3QiLCJiZFBsdWdpblN0b3JhZ2UiLCJzZXR0aW5nc01vZHVsZSIsIlNldHRpbmdzIiwiRGF0YVN0b3JlIiwiQkRFdmVudHMiLCJFdmVudHMiLCJiZENvbmZpZyIsIkNvbmZpZyIsIkNvcmVXcmFwcGVyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJDb3JlIiwic2V0Q29uZmlnIiwiaW5pdCIsInBhdGNoTW9kdWxlTG9hZCIsIm5hbWVzcGFjZSIsInByZWZpeCIsIk1vZHVsZSIsInJlcXVpcmUiLCJsb2FkIiwiX2xvYWQiLCJyZXF1ZXN0Iiwic3RhcnRzV2l0aCIsInJlcXVlc3RlZCIsInN1YnN0ciIsImxlbmd0aCIsImFwcGx5IiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FHQTtBQUNBOztBQUNBLE1BQU1BLFdBQVcsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQXBCO0FBQ0FGLFdBQVcsQ0FBQ0csU0FBWixHQUF3QixhQUF4QjtBQUNBSCxXQUFXLENBQUNJLEtBQVosR0FBb0IsMEJBQXBCO0FBQ0FILFFBQVEsQ0FBQ0ksSUFBVCxDQUFjQyxXQUFkLENBQTBCTixXQUExQixFLENBRUE7O0FBQ0FPLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlQSwwREFBZixDLENBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0FELE1BQU0sQ0FBQ0UsWUFBUCxHQUFzQkMsOERBQXRCO0FBQ0FILE1BQU0sQ0FBQ0ksV0FBUCxHQUFxQkMsNkRBQXJCLEMsQ0FDQTtBQUNBOztBQUNBTCxNQUFNLENBQUNNLFFBQVAsR0FBa0JDLHdEQUFXLENBQUNDLE1BQTlCO0FBQ0FSLE1BQU0sQ0FBQ1MsT0FBUCxHQUFpQkYsd0RBQVcsQ0FBQ0csU0FBN0I7QUFDQVYsTUFBTSxDQUFDVyxlQUFQLEdBQXlCQSxtRUFBekI7QUFDQVgsTUFBTSxDQUFDWSxjQUFQLEdBQXdCQyxnRUFBeEI7QUFDQWIsTUFBTSxDQUFDYyxTQUFQLEdBQW1CQSwwREFBbkI7QUFHQWQsTUFBTSxDQUFDZSxRQUFQLEdBQWtCQyx3REFBbEI7QUFDQWhCLE1BQU0sQ0FBQ2lCLFFBQVAsR0FBa0JDLDJDQUFsQjtBQUVlLE1BQU1DLFdBQU4sQ0FBa0I7QUFDN0JDLGFBQVcsQ0FBQ0MsTUFBRCxFQUFTO0FBQ2hCQyx5REFBSSxDQUFDQyxTQUFMLENBQWVGLE1BQWY7QUFDSDs7QUFFREcsTUFBSSxHQUFHO0FBQ0hGLHlEQUFJLENBQUNFLElBQUw7QUFDSDs7QUFQNEI7O0FBVWpDLFNBQVNDLGVBQVQsR0FBMkI7QUFDdkIsUUFBTUMsU0FBUyxHQUFHLGVBQWxCO0FBQ0EsUUFBTUMsTUFBTSxHQUFJLEdBQUVELFNBQVUsR0FBNUI7O0FBQ0EsUUFBTUUsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLHNCQUFELENBQXRCOztBQUNBLFFBQU1DLElBQUksR0FBR0YsTUFBTSxDQUFDRyxLQUFwQixDQUp1QixDQUt2Qjs7QUFFQUgsUUFBTSxDQUFDRyxLQUFQLEdBQWUsVUFBVUMsT0FBVixFQUFtQjtBQUM5QixRQUFJQSxPQUFPLEtBQUtOLFNBQVosSUFBeUJNLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQk4sTUFBbkIsQ0FBN0IsRUFBeUQ7QUFDckQsWUFBTU8sU0FBUyxHQUFHRixPQUFPLENBQUNHLE1BQVIsQ0FBZVIsTUFBTSxDQUFDUyxNQUF0QixDQUFsQjtBQUNBLFVBQUlGLFNBQVMsSUFBSSxLQUFqQixFQUF3QixPQUFPakMsMERBQVA7QUFDM0I7O0FBRUQsV0FBTzZCLElBQUksQ0FBQ08sS0FBTCxDQUFXLElBQVgsRUFBaUJDLFNBQWpCLENBQVA7QUFDSCxHQVBELENBUHVCLENBZ0J2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7O0FBRUEsU0FBTyxZQUFXO0FBQ2RWLFVBQU0sQ0FBQ0csS0FBUCxHQUFlRCxJQUFmO0FBQ0gsR0FGRDtBQUdIOztBQUVETCxlQUFlLEcsQ0FFZjtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBDb3JlIGZyb20gXCIuL21vZHVsZXMvY29yZVwiO1xyXG5pbXBvcnQgQmRBcGkgZnJvbSBcIi4vbW9kdWxlcy9wbHVnaW5hcGlcIjtcclxuaW1wb3J0IFBsdWdpbk1hbmFnZXIgZnJvbSBcIi4vbW9kdWxlcy9wbHVnaW5tYW5hZ2VyXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vbW9kdWxlcy90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IHtiZFBsdWdpblN0b3JhZ2V9IGZyb20gXCIuL21vZHVsZXMvb2xkc3RvcmFnZVwiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuL21vZHVsZXMvZW1pdHRlclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vbW9kdWxlcy9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9tb2R1bGVzL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vYnVpbHRpbnMvZW1vdGVzXCI7XHJcblxyXG4vLyBQZXJmb3JtIHNvbWUgc2V0dXBcclxuLy8gcHJveHlMb2NhbFN0b3JhZ2UoKTtcclxuY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5sb2FkaW5nSWNvbi5jbGFzc05hbWUgPSBcImJkLWxvYWRlcnYyXCI7XHJcbmxvYWRpbmdJY29uLnRpdGxlID0gXCJCYW5kYWdlZEJEIGlzIGxvYWRpbmcuLi5cIjtcclxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkaW5nSWNvbik7XHJcblxyXG4vLyB3aW5kb3cuQ29yZSA9IENvcmU7XHJcbndpbmRvdy5CZEFwaSA9IEJkQXBpO1xyXG4vLyB3aW5kb3cuc2V0dGluZ3MgPSBTZXR0aW5nc0luZm87XHJcbi8vIHdpbmRvdy5zZXR0aW5nc0Nvb2tpZSA9IFNldHRpbmdzQ29va2llO1xyXG4vLyB3aW5kb3cucGx1Z2luQ29va2llID0gUGx1Z2luQ29va2llO1xyXG4vLyB3aW5kb3cudGhlbWVDb29raWUgPSBUaGVtZUNvb2tpZTtcclxud2luZG93LnBsdWdpbk1vZHVsZSA9IFBsdWdpbk1hbmFnZXI7XHJcbndpbmRvdy50aGVtZU1vZHVsZSA9IFRoZW1lTWFuYWdlcjtcclxuLy8gd2luZG93LmJkdGhlbWVzID0gVGhlbWVzO1xyXG4vLyB3aW5kb3cuYmRwbHVnaW5zID0gUGx1Z2lucztcclxud2luZG93LmJkRW1vdGVzID0gRW1vdGVNb2R1bGUuRW1vdGVzO1xyXG53aW5kb3cuYmVtb3RlcyA9IEVtb3RlTW9kdWxlLmJsYWNrbGlzdDtcclxud2luZG93LmJkUGx1Z2luU3RvcmFnZSA9IGJkUGx1Z2luU3RvcmFnZTtcclxud2luZG93LnNldHRpbmdzTW9kdWxlID0gU2V0dGluZ3M7XHJcbndpbmRvdy5EYXRhU3RvcmUgPSBEYXRhU3RvcmU7XHJcblxyXG5cclxud2luZG93LkJERXZlbnRzID0gRXZlbnRzO1xyXG53aW5kb3cuYmRDb25maWcgPSBDb25maWc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb3JlV3JhcHBlciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcclxuICAgICAgICBDb3JlLnNldENvbmZpZyhjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgQ29yZS5pbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhdGNoTW9kdWxlTG9hZCgpIHtcclxuICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xyXG4gICAgY29uc3QgcHJlZml4ID0gYCR7bmFtZXNwYWNlfS9gO1xyXG4gICAgY29uc3QgTW9kdWxlID0gcmVxdWlyZShcIm1vZHVsZVwiKTtcclxuICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XHJcbiAgICAvLyBjb25zdCByZXNvbHZlRmlsZW5hbWUgPSBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZTtcclxuXHJcbiAgICBNb2R1bGUuX2xvYWQgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xyXG4gICAgICAgIGlmIChyZXF1ZXN0ID09PSBuYW1lc3BhY2UgfHwgcmVxdWVzdC5zdGFydHNXaXRoKHByZWZpeCkpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdGVkID0gcmVxdWVzdC5zdWJzdHIocHJlZml4Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQgPT0gXCJhcGlcIikgcmV0dXJuIEJkQXBpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxvYWQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWUgPSBmdW5jdGlvbiAocmVxdWVzdCwgcGFyZW50LCBpc01haW4pIHtcclxuICAgIC8vICAgICBpZiAocmVxdWVzdCA9PT0gXCJiZXR0ZXJkaXNjb3JkXCIgfHwgcmVxdWVzdC5zdGFydHNXaXRoKFwiYmV0dGVyZGlzY29yZC9cIikpIHtcclxuICAgIC8vICAgICAgICAgY29uc3QgY29udGVudFBhdGggPSBQbHVnaW5NYW5hZ2VyLmdldFBsdWdpblBhdGhCeU1vZHVsZShwYXJlbnQpO1xyXG4gICAgLy8gICAgICAgICBpZiAoY29udGVudFBhdGgpIHJldHVybiByZXF1ZXN0O1xyXG4gICAgLy8gICAgIH1cclxuXHJcbiAgICAvLyAgICAgcmV0dXJuIHJlc29sdmVGaWxlbmFtZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgLy8gfTtcclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgTW9kdWxlLl9sb2FkID0gbG9hZDtcclxuICAgIH07XHJcbn1cclxuXHJcbnBhdGNoTW9kdWxlTG9hZCgpO1xyXG5cclxuLy8gZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpbkJ5TW9kdWxlKG1vZHVsZSkge1xyXG4vLyAgICAgcmV0dXJuIHRoaXMubG9jYWxDb250ZW50LmZpbmQocGx1Z2luID0+IG1vZHVsZS5maWxlbmFtZSA9PT0gcGx1Z2luLmNvbnRlbnRQYXRoIHx8IG1vZHVsZS5maWxlbmFtZS5zdGFydHNXaXRoKHBsdWdpbi5jb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBmdW5jdGlvbiBnZXRQbHVnaW5QYXRoQnlNb2R1bGUobW9kdWxlKSB7XHJcbi8vICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wbHVnaW5BcGlJbnN0YW5jZXMpLmZpbmQoY29udGVudFBhdGggPT4gbW9kdWxlLmZpbGVuYW1lID09PSBjb250ZW50UGF0aCB8fCBtb2R1bGUuZmlsZW5hbWUuc3RhcnRzV2l0aChjb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xyXG4vLyB2YXIgYmRDb25maWcgPSBudWxsOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.js\n"); /***/ }), @@ -371,7 +371,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 import */ var _bdv2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bdv2 */ \"./src/modules/bdv2.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").

Please download the latest version from GitHub\");\n return;\n }\n\n const latestLocalVersion = data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater ? data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater.LatestVersion : data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].latestVersion;\n\n if (latestLocalVersion > data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version) {\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].alert(\"Update Available\", `\n An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

\n Download Installer\n `);\n }\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing EmoteModule\"); // window.emotePromise = EmoteModule.init().then(() => {\n // EmoteModule.initialized = true;\n // Utilities.log(\"Startup\", \"Initializing QuickEmoteMenu\");\n // Events.dispatch(\"emotes-loaded\");\n // // QuickEmoteMenu.init();\n // });\n\n this.injectExternals();\n await this.checkForGuilds();\n _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Updating Settings\");\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_6__) builtins__WEBPACK_IMPORTED_MODULE_6__[module].initialize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadAllPlugins();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].loadAllThemes();\n $(\"#customcss\").detach().appendTo(document.head); // PublicServers.initialize();\n // EmoteModule.autoCapitalize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Main Observer\");\n this.initObserver(); // Show loading errors\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].showContentErrors({\n plugins: pluginErrors,\n themes: themeErrors\n });\n};\n\nCore.prototype.checkForGuilds = function () {\n return new Promise(resolve => {\n const checkForGuilds = function () {\n const wrapper = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n const guild = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.listItem.split(\" \")[0];\n const blob = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n $(document).ready(function () {\n setTimeout(checkForGuilds, 100);\n });\n });\n};\n\nCore.prototype.injectExternals = async function () {\n await _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\");\n if (window.require.original) window.require = window.require.original;\n};\n\nCore.prototype.initObserver = function () {\n const mainObserver = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n const mutation = mutations[i]; // if there was nothing added, skip\n\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n\n if (node.classList.contains(\"layer-3QrUeG\")) {\n if (node.getElementsByClassName(\"guild-settings-base-section\").length) node.setAttribute(\"layer-id\", \"server-settings\"); // if (node.getElementsByClassName(\"socialLinks-3jqNFy\").length) {\n // node.setAttribute(\"layer-id\", \"user-settings\");\n // node.setAttribute(\"id\", \"user-settings\");\n // if (!document.getElementById(\"bd-settings-sidebar\")) Settings.renderSidebar();\n // }\n }\n }\n });\n mainObserver.observe(document, {\n childList: true,\n subtree: true\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkNvcmUiLCJwcm90b3R5cGUiLCJzZXRDb25maWciLCJjb25maWciLCJPYmplY3QiLCJhc3NpZ24iLCJDb25maWciLCJpbml0IiwidmVyc2lvbiIsIm1pblN1cHBvcnRlZFZlcnNpb24iLCJNb2RhbHMiLCJhbGVydCIsImJiZFZlcnNpb24iLCJsYXRlc3RMb2NhbFZlcnNpb24iLCJ1cGRhdGVyIiwiTGF0ZXN0VmVyc2lvbiIsImxhdGVzdFZlcnNpb24iLCJVdGlsaXRpZXMiLCJsb2ciLCJTZXR0aW5ncyIsImluaXRpYWxpemUiLCJpbmplY3RFeHRlcm5hbHMiLCJjaGVja0Zvckd1aWxkcyIsIkJEVjIiLCJtb2R1bGUiLCJCdWlsdGlucyIsInBsdWdpbkVycm9ycyIsIlBsdWdpbk1hbmFnZXIiLCJsb2FkQWxsUGx1Z2lucyIsInRoZW1lRXJyb3JzIiwiVGhlbWVNYW5hZ2VyIiwibG9hZEFsbFRoZW1lcyIsIiQiLCJkZXRhY2giLCJhcHBlbmRUbyIsImRvY3VtZW50IiwiaGVhZCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmUiLCJpbml0T2JzZXJ2ZXIiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIndyYXBwZXIiLCJndWlsZENsYXNzZXMiLCJzcGxpdCIsImd1aWxkIiwibGlzdEl0ZW0iLCJibG9iIiwiYmxvYkNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJkZWZlckxvYWRlZCIsInNldFRpbWVvdXQiLCJyZWFkeSIsImluamVjdEpzIiwid2luZG93IiwicmVxdWlyZSIsIm9yaWdpbmFsIiwibWFpbk9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm11dGF0aW9ucyIsImkiLCJtbGVuIiwibXV0YXRpb24iLCJhZGRlZE5vZGVzIiwiRWxlbWVudCIsIm5vZGUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInNldEF0dHJpYnV0ZSIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0NBRUE7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLElBQVQsR0FBZ0IsQ0FDZjs7QUFFREEsSUFBSSxDQUFDQyxTQUFMLENBQWVDLFNBQWYsR0FBMkIsVUFBU0MsTUFBVCxFQUFpQjtBQUN4Q0MsUUFBTSxDQUFDQyxNQUFQLENBQWNDLDJDQUFkLEVBQXNCSCxNQUF0QjtBQUNILENBRkQ7O0FBSUFILElBQUksQ0FBQ0MsU0FBTCxDQUFlTSxJQUFmLEdBQXNCLGtCQUFpQjtBQUNuQyxNQUFJRCwyQ0FBTSxDQUFDRSxPQUFQLEdBQWlCRiwyQ0FBTSxDQUFDRyxtQkFBNUIsRUFBaUQ7QUFDN0NDLDZDQUFNLENBQUNDLEtBQVAsQ0FBYSxlQUFiLEVBQThCLG9CQUFvQkwsMkNBQU0sQ0FBQ0UsT0FBM0IsR0FBcUMsaUJBQXJDLEdBQXlELHNDQUF6RCxHQUFrR0YsMkNBQU0sQ0FBQ00sVUFBekcsR0FBc0gscUpBQXBKO0FBQ0E7QUFDSDs7QUFFRCxRQUFNQyxrQkFBa0IsR0FBR1AsMkNBQU0sQ0FBQ1EsT0FBUCxHQUFpQlIsMkNBQU0sQ0FBQ1EsT0FBUCxDQUFlQyxhQUFoQyxHQUFnRFQsMkNBQU0sQ0FBQ1UsYUFBbEY7O0FBQ0EsTUFBSUgsa0JBQWtCLEdBQUdQLDJDQUFNLENBQUNFLE9BQWhDLEVBQXlDO0FBQ3JDRSw2Q0FBTSxDQUFDQyxLQUFQLENBQWEsa0JBQWIsRUFBa0M7cURBQ1dFLGtCQUFtQjs7U0FEaEU7QUFJSDs7QUFFREksb0RBQVMsQ0FBQ0MsR0FBVixDQUFjLFNBQWQsRUFBeUIsdUJBQXpCO0FBQ0FDLDBEQUFRLENBQUNDLFVBQVQ7QUFDQUgsb0RBQVMsQ0FBQ0MsR0FBVixDQUFjLFNBQWQsRUFBeUIsMEJBQXpC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LENBQUNDLFNBQUwsQ0FBZXNDLFlBQWYsR0FBOEIsWUFBWTtBQUN0QyxRQUFNc0IsWUFBWSxHQUFHLElBQUlDLGdCQUFKLENBQXNCQyxTQUFELElBQWU7QUFFckQsU0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBUixFQUFXQyxJQUFJLEdBQUdGLFNBQVMsQ0FBQ1YsTUFBakMsRUFBeUNXLENBQUMsR0FBR0MsSUFBN0MsRUFBbURELENBQUMsRUFBcEQsRUFBd0Q7QUFDcEQsWUFBTUUsUUFBUSxHQUFHSCxTQUFTLENBQUNDLENBQUQsQ0FBMUIsQ0FEb0QsQ0FHcEQ7O0FBQ0EsVUFBSSxDQUFDRSxRQUFRLENBQUNDLFVBQVQsQ0FBb0JkLE1BQXJCLElBQStCLEVBQUVhLFFBQVEsQ0FBQ0MsVUFBVCxDQUFvQixDQUFwQixhQUFrQ0MsT0FBcEMsQ0FBbkMsRUFBaUY7QUFFakYsWUFBTUMsSUFBSSxHQUFHSCxRQUFRLENBQUNDLFVBQVQsQ0FBb0IsQ0FBcEIsQ0FBYjs7QUFFQSxVQUFJRSxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsUUFBZixDQUF3QixjQUF4QixDQUFKLEVBQTZDO0FBQ3pDLFlBQUlGLElBQUksQ0FBQ2hDLHNCQUFMLENBQTRCLDZCQUE1QixFQUEyRGdCLE1BQS9ELEVBQXVFZ0IsSUFBSSxDQUFDRyxZQUFMLENBQWtCLFVBQWxCLEVBQThCLGlCQUE5QixFQUQ5QixDQUd6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7QUFDSjtBQUNKLEdBcEJvQixDQUFyQjtBQXNCQVgsY0FBWSxDQUFDWSxPQUFiLENBQXFCdEMsUUFBckIsRUFBK0I7QUFDM0J1QyxhQUFTLEVBQUUsSUFEZ0I7QUFFM0JDLFdBQU8sRUFBRTtBQUZrQixHQUEvQjtBQUlILENBM0JEOztBQThCZSxtRUFBSTNFLElBQUosRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2NvcmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi9iZHYyXCI7XHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG4vLyBpbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVzXCI7XHJcbi8vIGltcG9ydCBRdWlja0Vtb3RlTWVudSBmcm9tIFwiLi4vYnVpbHRpbnMvZW1vdGVtZW51XCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQgKiBhcyBCdWlsdGlucyBmcm9tIFwiYnVpbHRpbnNcIjtcclxuaW1wb3J0IHtNb2RhbHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuZnVuY3Rpb24gQ29yZSgpIHtcclxufVxyXG5cclxuQ29yZS5wcm90b3R5cGUuc2V0Q29uZmlnID0gZnVuY3Rpb24oY29uZmlnKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKENvbmZpZywgY29uZmlnKTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGlmIChDb25maWcudmVyc2lvbiA8IENvbmZpZy5taW5TdXBwb3J0ZWRWZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiTm90IFN1cHBvcnRlZFwiLCBcIkJldHRlckRpc2NvcmQgdlwiICsgQ29uZmlnLnZlcnNpb24gKyBcIiAoeW91ciB2ZXJzaW9uKVwiICsgXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGF0ZXN0IGpzIChcIiArIENvbmZpZy5iYmRWZXJzaW9uICsgXCIpLjxicj48YnI+IFBsZWFzZSBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3JlbGVhc2VzL2xhdGVzdCcgdGFyZ2V0PSdfYmxhbmsnPkdpdEh1YjwvYT5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhdGVzdExvY2FsVmVyc2lvbiA9IENvbmZpZy51cGRhdGVyID8gQ29uZmlnLnVwZGF0ZXIuTGF0ZXN0VmVyc2lvbiA6IENvbmZpZy5sYXRlc3RWZXJzaW9uO1xyXG4gICAgaWYgKGxhdGVzdExvY2FsVmVyc2lvbiA+IENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiVXBkYXRlIEF2YWlsYWJsZVwiLCBgXHJcbiAgICAgICAgICAgIEFuIHVwZGF0ZSBmb3IgQmFuZGFnZWRCRCBpcyBhdmFpbGFibGUgKCR7bGF0ZXN0TG9jYWxWZXJzaW9ufSkhIFBsZWFzZSBSZWluc3RhbGwhPGJyIC8+PGJyIC8+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvcmVsZWFzZXMvbGF0ZXN0JyB0YXJnZXQ9J19ibGFuayc+RG93bmxvYWQgSW5zdGFsbGVyPC9hPlxyXG4gICAgICAgIGApO1xyXG4gICAgfVxyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgRW1vdGVNb2R1bGVcIik7XHJcbiAgICAvLyB3aW5kb3cuZW1vdGVQcm9taXNlID0gRW1vdGVNb2R1bGUuaW5pdCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICAgIEVtb3RlTW9kdWxlLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIC8vICAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBRdWlja0Vtb3RlTWVudVwiKTtcclxuICAgIC8vICAgICBFdmVudHMuZGlzcGF0Y2goXCJlbW90ZXMtbG9hZGVkXCIpO1xyXG4gICAgLy8gICAgIC8vIFF1aWNrRW1vdGVNZW51LmluaXQoKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIHRoaXMuaW5qZWN0RXh0ZXJuYWxzKCk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5jaGVja0Zvckd1aWxkcygpO1xyXG4gICAgQkRWMi5pbml0aWFsaXplKCk7XHJcbiAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIlVwZGF0aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgZm9yIChjb25zdCBtb2R1bGUgaW4gQnVpbHRpbnMpIEJ1aWx0aW5zW21vZHVsZV0uaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBQbHVnaW5zXCIpO1xyXG4gICAgY29uc3QgcGx1Z2luRXJyb3JzID0gUGx1Z2luTWFuYWdlci5sb2FkQWxsUGx1Z2lucygpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBUaGVtZXNcIik7XHJcbiAgICBjb25zdCB0aGVtZUVycm9ycyA9IFRoZW1lTWFuYWdlci5sb2FkQWxsVGhlbWVzKCk7XHJcblxyXG4gICAgJChcIiNjdXN0b21jc3NcIikuZGV0YWNoKCkuYXBwZW5kVG8oZG9jdW1lbnQuaGVhZCk7XHJcblxyXG4gICAgLy8gUHVibGljU2VydmVycy5pbml0aWFsaXplKCk7XHJcbiAgICAvLyBFbW90ZU1vZHVsZS5hdXRvQ2FwaXRhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiUmVtb3ZpbmcgTG9hZGluZyBJY29uXCIpO1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJkLWxvYWRlcnYyXCIpWzBdLnJlbW92ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgTWFpbiBPYnNlcnZlclwiKTtcclxuICAgIHRoaXMuaW5pdE9ic2VydmVyKCk7XHJcblxyXG4gICAgLy8gU2hvdyBsb2FkaW5nIGVycm9yc1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJDb2xsZWN0aW5nIFN0YXJ0dXAgRXJyb3JzXCIpO1xyXG4gICAgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMsIHRoZW1lczogdGhlbWVFcnJvcnN9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmNoZWNrRm9yR3VpbGRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlciA9IEJEVjIuZ3VpbGRDbGFzc2VzLndyYXBwZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBndWlsZCA9IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgY29uc3QgYmxvYiA9IEJEVjIuZ3VpbGRDbGFzc2VzLmJsb2JDb250YWluZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7d3JhcHBlcn0gLiR7Z3VpbGR9IC4ke2Jsb2J9YCkubGVuZ3RoID4gMCkgcmV0dXJuIHJlc29sdmUoQ29uZmlnLmRlZmVyTG9hZGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluamVjdEV4dGVybmFscyA9IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG4gICAgYXdhaXQgVXRpbGl0aWVzLmluamVjdEpzKFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMi45L2FjZS5qc1wiKTtcclxuICAgIGlmICh3aW5kb3cucmVxdWlyZS5vcmlnaW5hbCkgd2luZG93LnJlcXVpcmUgPSB3aW5kb3cucmVxdWlyZS5vcmlnaW5hbDtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXRPYnNlcnZlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGNvbnN0IG1haW5PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG1sZW4gPSBtdXRhdGlvbnMubGVuZ3RoOyBpIDwgbWxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uID0gbXV0YXRpb25zW2ldO1xyXG5cclxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgd2FzIG5vdGhpbmcgYWRkZWQsIHNraXBcclxuICAgICAgICAgICAgaWYgKCFtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCB8fCAhKG11dGF0aW9uLmFkZGVkTm9kZXNbMF0gaW5zdGFuY2VvZiBFbGVtZW50KSkgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhcImxheWVyLTNRclVlR1wiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImd1aWxkLXNldHRpbmdzLWJhc2Utc2VjdGlvblwiKS5sZW5ndGgpIG5vZGUuc2V0QXR0cmlidXRlKFwibGF5ZXItaWRcIiwgXCJzZXJ2ZXItc2V0dGluZ3NcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInNvY2lhbExpbmtzLTNqcU5GeVwiKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICBub2RlLnNldEF0dHJpYnV0ZShcImxheWVyLWlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBub2RlLnNldEF0dHJpYnV0ZShcImlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYmQtc2V0dGluZ3Mtc2lkZWJhclwiKSkgU2V0dGluZ3MucmVuZGVyU2lkZWJhcigpO1xyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbWFpbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQsIHtcclxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgc3VidHJlZTogdHJ1ZVxyXG4gICAgfSk7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IENvcmUoKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/core.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bdv2 */ \"./src/modules/bdv2.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").

Please download the latest version from GitHub\");\n return;\n }\n\n const latestLocalVersion = data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater ? data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater.LatestVersion : data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].latestVersion;\n\n if (latestLocalVersion > data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version) {\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].alert(\"Update Available\", `\n An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

\n Download Installer\n `);\n }\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing EmoteModule\"); // window.emotePromise = EmoteModule.init().then(() => {\n // EmoteModule.initialized = true;\n // Utilities.log(\"Startup\", \"Initializing QuickEmoteMenu\");\n // Events.dispatch(\"emotes-loaded\");\n // // QuickEmoteMenu.init();\n // });\n // this.injectExternals();\n\n await this.checkForGuilds();\n _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Updating Settings\");\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_6__) builtins__WEBPACK_IMPORTED_MODULE_6__[module].initialize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadAllPlugins();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].loadAllThemes();\n $(\"#customcss\").detach().appendTo(document.head); // PublicServers.initialize();\n // EmoteModule.autoCapitalize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Main Observer\");\n this.initObserver(); // Show loading errors\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].showContentErrors({\n plugins: pluginErrors,\n themes: themeErrors\n });\n};\n\nCore.prototype.checkForGuilds = function () {\n return new Promise(resolve => {\n const checkForGuilds = function () {\n const wrapper = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n const guild = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.listItem.split(\" \")[0];\n const blob = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n $(document).ready(function () {\n setTimeout(checkForGuilds, 100);\n });\n });\n};\n\nCore.prototype.initObserver = function () {\n const mainObserver = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n const mutation = mutations[i]; // if there was nothing added, skip\n\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n\n if (node.classList.contains(\"layer-3QrUeG\")) {\n if (node.getElementsByClassName(\"guild-settings-base-section\").length) node.setAttribute(\"layer-id\", \"server-settings\"); // if (node.getElementsByClassName(\"socialLinks-3jqNFy\").length) {\n // node.setAttribute(\"layer-id\", \"user-settings\");\n // node.setAttribute(\"id\", \"user-settings\");\n // if (!document.getElementById(\"bd-settings-sidebar\")) Settings.renderSidebar();\n // }\n }\n }\n });\n mainObserver.observe(document, {\n childList: true,\n subtree: true\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkNvcmUiLCJwcm90b3R5cGUiLCJzZXRDb25maWciLCJjb25maWciLCJPYmplY3QiLCJhc3NpZ24iLCJDb25maWciLCJpbml0IiwidmVyc2lvbiIsIm1pblN1cHBvcnRlZFZlcnNpb24iLCJNb2RhbHMiLCJhbGVydCIsImJiZFZlcnNpb24iLCJsYXRlc3RMb2NhbFZlcnNpb24iLCJ1cGRhdGVyIiwiTGF0ZXN0VmVyc2lvbiIsImxhdGVzdFZlcnNpb24iLCJVdGlsaXRpZXMiLCJsb2ciLCJTZXR0aW5ncyIsImluaXRpYWxpemUiLCJjaGVja0Zvckd1aWxkcyIsIkJEVjIiLCJtb2R1bGUiLCJCdWlsdGlucyIsInBsdWdpbkVycm9ycyIsIlBsdWdpbk1hbmFnZXIiLCJsb2FkQWxsUGx1Z2lucyIsInRoZW1lRXJyb3JzIiwiVGhlbWVNYW5hZ2VyIiwibG9hZEFsbFRoZW1lcyIsIiQiLCJkZXRhY2giLCJhcHBlbmRUbyIsImRvY3VtZW50IiwiaGVhZCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmUiLCJpbml0T2JzZXJ2ZXIiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIndyYXBwZXIiLCJndWlsZENsYXNzZXMiLCJzcGxpdCIsImd1aWxkIiwibGlzdEl0ZW0iLCJibG9iIiwiYmxvYkNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJkZWZlckxvYWRlZCIsInNldFRpbWVvdXQiLCJyZWFkeSIsIm1haW5PYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJtdXRhdGlvbnMiLCJpIiwibWxlbiIsIm11dGF0aW9uIiwiYWRkZWROb2RlcyIsIkVsZW1lbnQiLCJub2RlIiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJzZXRBdHRyaWJ1dGUiLCJvYnNlcnZlIiwiY2hpbGRMaXN0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UUFBUSxDQUFDQyxVQUFULENBQW9CVixNQUFyQixJQUErQixFQUFFUyxRQUFRLENBQUNDLFVBQVQsQ0FBb0IsQ0FBcEIsYUFBa0NDLE9BQXBDLENBQW5DLEVBQWlGO0FBRWpGLFlBQU1DLElBQUksR0FBR0gsUUFBUSxDQUFDQyxVQUFULENBQW9CLENBQXBCLENBQWI7O0FBRUEsVUFBSUUsSUFBSSxDQUFDQyxTQUFMLENBQWVDLFFBQWYsQ0FBd0IsY0FBeEIsQ0FBSixFQUE2QztBQUN6QyxZQUFJRixJQUFJLENBQUM1QixzQkFBTCxDQUE0Qiw2QkFBNUIsRUFBMkRnQixNQUEvRCxFQUF1RVksSUFBSSxDQUFDRyxZQUFMLENBQWtCLFVBQWxCLEVBQThCLGlCQUE5QixFQUQ5QixDQUd6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7QUFDSjtBQUNKLEdBcEJvQixDQUFyQjtBQXNCQVgsY0FBWSxDQUFDWSxPQUFiLENBQXFCbEMsUUFBckIsRUFBK0I7QUFDM0JtQyxhQUFTLEVBQUUsSUFEZ0I7QUFFM0JDLFdBQU8sRUFBRTtBQUZrQixHQUEvQjtBQUlILENBM0JEOztBQThCZSxtRUFBSXRFLElBQUosRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2NvcmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi9iZHYyXCI7XHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG4vLyBpbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVzXCI7XHJcbi8vIGltcG9ydCBRdWlja0Vtb3RlTWVudSBmcm9tIFwiLi4vYnVpbHRpbnMvZW1vdGVtZW51XCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQgKiBhcyBCdWlsdGlucyBmcm9tIFwiYnVpbHRpbnNcIjtcclxuaW1wb3J0IHtNb2RhbHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuZnVuY3Rpb24gQ29yZSgpIHtcclxufVxyXG5cclxuQ29yZS5wcm90b3R5cGUuc2V0Q29uZmlnID0gZnVuY3Rpb24oY29uZmlnKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKENvbmZpZywgY29uZmlnKTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGlmIChDb25maWcudmVyc2lvbiA8IENvbmZpZy5taW5TdXBwb3J0ZWRWZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiTm90IFN1cHBvcnRlZFwiLCBcIkJldHRlckRpc2NvcmQgdlwiICsgQ29uZmlnLnZlcnNpb24gKyBcIiAoeW91ciB2ZXJzaW9uKVwiICsgXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGF0ZXN0IGpzIChcIiArIENvbmZpZy5iYmRWZXJzaW9uICsgXCIpLjxicj48YnI+IFBsZWFzZSBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3JlbGVhc2VzL2xhdGVzdCcgdGFyZ2V0PSdfYmxhbmsnPkdpdEh1YjwvYT5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhdGVzdExvY2FsVmVyc2lvbiA9IENvbmZpZy51cGRhdGVyID8gQ29uZmlnLnVwZGF0ZXIuTGF0ZXN0VmVyc2lvbiA6IENvbmZpZy5sYXRlc3RWZXJzaW9uO1xyXG4gICAgaWYgKGxhdGVzdExvY2FsVmVyc2lvbiA+IENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiVXBkYXRlIEF2YWlsYWJsZVwiLCBgXHJcbiAgICAgICAgICAgIEFuIHVwZGF0ZSBmb3IgQmFuZGFnZWRCRCBpcyBhdmFpbGFibGUgKCR7bGF0ZXN0TG9jYWxWZXJzaW9ufSkhIFBsZWFzZSBSZWluc3RhbGwhPGJyIC8+PGJyIC8+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvcmVsZWFzZXMvbGF0ZXN0JyB0YXJnZXQ9J19ibGFuayc+RG93bmxvYWQgSW5zdGFsbGVyPC9hPlxyXG4gICAgICAgIGApO1xyXG4gICAgfVxyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgRW1vdGVNb2R1bGVcIik7XHJcbiAgICAvLyB3aW5kb3cuZW1vdGVQcm9taXNlID0gRW1vdGVNb2R1bGUuaW5pdCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICAgIEVtb3RlTW9kdWxlLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIC8vICAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBRdWlja0Vtb3RlTWVudVwiKTtcclxuICAgIC8vICAgICBFdmVudHMuZGlzcGF0Y2goXCJlbW90ZXMtbG9hZGVkXCIpO1xyXG4gICAgLy8gICAgIC8vIFF1aWNrRW1vdGVNZW51LmluaXQoKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIC8vIHRoaXMuaW5qZWN0RXh0ZXJuYWxzKCk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5jaGVja0Zvckd1aWxkcygpO1xyXG4gICAgQkRWMi5pbml0aWFsaXplKCk7XHJcbiAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIlVwZGF0aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgZm9yIChjb25zdCBtb2R1bGUgaW4gQnVpbHRpbnMpIEJ1aWx0aW5zW21vZHVsZV0uaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBQbHVnaW5zXCIpO1xyXG4gICAgY29uc3QgcGx1Z2luRXJyb3JzID0gUGx1Z2luTWFuYWdlci5sb2FkQWxsUGx1Z2lucygpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBUaGVtZXNcIik7XHJcbiAgICBjb25zdCB0aGVtZUVycm9ycyA9IFRoZW1lTWFuYWdlci5sb2FkQWxsVGhlbWVzKCk7XHJcblxyXG4gICAgJChcIiNjdXN0b21jc3NcIikuZGV0YWNoKCkuYXBwZW5kVG8oZG9jdW1lbnQuaGVhZCk7XHJcblxyXG4gICAgLy8gUHVibGljU2VydmVycy5pbml0aWFsaXplKCk7XHJcbiAgICAvLyBFbW90ZU1vZHVsZS5hdXRvQ2FwaXRhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiUmVtb3ZpbmcgTG9hZGluZyBJY29uXCIpO1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJkLWxvYWRlcnYyXCIpWzBdLnJlbW92ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgTWFpbiBPYnNlcnZlclwiKTtcclxuICAgIHRoaXMuaW5pdE9ic2VydmVyKCk7XHJcblxyXG4gICAgLy8gU2hvdyBsb2FkaW5nIGVycm9yc1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJDb2xsZWN0aW5nIFN0YXJ0dXAgRXJyb3JzXCIpO1xyXG4gICAgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMsIHRoZW1lczogdGhlbWVFcnJvcnN9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmNoZWNrRm9yR3VpbGRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlciA9IEJEVjIuZ3VpbGRDbGFzc2VzLndyYXBwZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBndWlsZCA9IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgY29uc3QgYmxvYiA9IEJEVjIuZ3VpbGRDbGFzc2VzLmJsb2JDb250YWluZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7d3JhcHBlcn0gLiR7Z3VpbGR9IC4ke2Jsb2J9YCkubGVuZ3RoID4gMCkgcmV0dXJuIHJlc29sdmUoQ29uZmlnLmRlZmVyTG9hZGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXRPYnNlcnZlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGNvbnN0IG1haW5PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG1sZW4gPSBtdXRhdGlvbnMubGVuZ3RoOyBpIDwgbWxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uID0gbXV0YXRpb25zW2ldO1xyXG5cclxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgd2FzIG5vdGhpbmcgYWRkZWQsIHNraXBcclxuICAgICAgICAgICAgaWYgKCFtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCB8fCAhKG11dGF0aW9uLmFkZGVkTm9kZXNbMF0gaW5zdGFuY2VvZiBFbGVtZW50KSkgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhcImxheWVyLTNRclVlR1wiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImd1aWxkLXNldHRpbmdzLWJhc2Utc2VjdGlvblwiKS5sZW5ndGgpIG5vZGUuc2V0QXR0cmlidXRlKFwibGF5ZXItaWRcIiwgXCJzZXJ2ZXItc2V0dGluZ3NcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInNvY2lhbExpbmtzLTNqcU5GeVwiKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICBub2RlLnNldEF0dHJpYnV0ZShcImxheWVyLWlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBub2RlLnNldEF0dHJpYnV0ZShcImlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYmQtc2V0dGluZ3Mtc2lkZWJhclwiKSkgU2V0dGluZ3MucmVuZGVyU2lkZWJhcigpO1xyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbWFpbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQsIHtcclxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgc3VidHJlZTogdHJ1ZVxyXG4gICAgfSk7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IENvcmUoKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/core.js\n"); /***/ }), diff --git a/src/builtins/customcss.js b/src/builtins/customcss.js index 01aad245..ba6bd9bc 100644 --- a/src/builtins/customcss.js +++ b/src/builtins/customcss.js @@ -1,5 +1,5 @@ import Builtin from "../structs/builtin"; -import {Settings, DataStore, React, Events} from "modules"; +import {Settings, DataStore, React, Utilities} from "modules"; import CSSEditor from "../ui/customcss/editor"; const electron = require("electron"); @@ -16,7 +16,12 @@ export default new class CustomCSS extends Builtin { this.css = ""; } - enabled() { + async enabled() { + if (!window.ace) { + Utilities.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js").then(() => { + if (window.require.original) window.require = window.require.original; + }); + } Settings.registerPanel(this.id, this.name, { order: 2, element: () => React.createElement(CSSEditor, { @@ -62,5 +67,63 @@ export default new class CustomCSS extends Builtin { openDetached() { this.log("Should open detached"); + const options = { + width: 500, + height: 550, + backgroundColor: "#282b30", + show: true, + resizable: false, + maximizable: false, + minimizable: false, + alwaysOnTop: true, + frame: true, + center: false, + webPreferences: { + nodeIntegration: true + } + }; + + const detached = new electron.remote.Browserdetached(options); + detached.setMenu(null); + detached.loadURL("about:blank"); + detached.webContents.executeJavaScript(`var electron = require("electron");`); + detached.webContents.executeJavaScript(`var sender, receiver = electron.ipcRenderer;`); + detached.webContents.executeJavaScript(`receiver.on("bd-handshake", function(emitter, senderID) { + console.log(arguments); + sender = electron.remote.BrowserWindow.fromId(senderID); + receiver.removeAllListeners("bd-handshake"); + });`); + detached.send("bd-handshake", electron.remote.getCurrentWindow().id); + React.createElement(CSSEditor, { + css: this.css, + save: this.saveCSS.bind(this), + update: this.insertCSS.bind(this), + openNative: this.openNative.bind(this) + }); } -}; \ No newline at end of file +}; + +// function addListeners(){ +// document.getElementById('test').addEventListener('mousedown', mouseDown, false); +// window.addEventListener('mouseup', mouseUp, false); + +// } + +// function mouseUp() +// { +// window.removeEventListener('mousemove', divMove, true); +// } + +// function mouseDown(e){ +// var div = document.getElementById('test'); +// offY= e.clientY-parseInt(div.offsetTop); +// offX= e.clientX-parseInt(div.offsetLeft); +// window.addEventListener('mousemove', divMove, true); +// } + +// function divMove(e){ +// var div = document.getElementById('test'); +// div.style.position = 'absolute'; +// div.style.top = (e.clientY-offY) + 'px'; +// div.style.left = (e.clientX-offX) + 'px'; +// } \ No newline at end of file diff --git a/src/index.js b/src/index.js index 85587d38..d48811ad 100644 --- a/src/index.js +++ b/src/index.js @@ -46,7 +46,7 @@ export default class CoreWrapper { } } -export function patchModuleLoad() { +function patchModuleLoad() { const namespace = "betterdiscord"; const prefix = `${namespace}/`; const Module = require("module"); @@ -76,6 +76,8 @@ export function patchModuleLoad() { }; } +patchModuleLoad(); + // export function getPluginByModule(module) { // return this.localContent.find(plugin => module.filename === plugin.contentPath || module.filename.startsWith(plugin.contentPath + path.sep)); // } diff --git a/src/modules/core.js b/src/modules/core.js index ed1e33a5..e09460ee 100644 --- a/src/modules/core.js +++ b/src/modules/core.js @@ -40,7 +40,7 @@ Core.prototype.init = async function() { // // QuickEmoteMenu.init(); // }); - this.injectExternals(); + // this.injectExternals(); await this.checkForGuilds(); BDV2.initialize(); @@ -83,11 +83,6 @@ Core.prototype.checkForGuilds = function() { }); }; -Core.prototype.injectExternals = async function() { - await Utilities.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"); - if (window.require.original) window.require = window.require.original; -}; - Core.prototype.initObserver = function () { const mainObserver = new MutationObserver((mutations) => { diff --git a/src/ui/customcss/detached.jsx b/src/ui/customcss/detached.jsx new file mode 100644 index 00000000..6e19e479 --- /dev/null +++ b/src/ui/customcss/detached.jsx @@ -0,0 +1,98 @@ +import {React, Settings} from "modules"; + +import Checkbox from "./checkbox"; +import SettingsTitle from "../settings/title"; + +export default class CssEditor extends React.Component { + + constructor(props) { + super(props); + + this.toggleLiveUpdate = this.toggleLiveUpdate.bind(this); + this.updateCss = this.updateCss.bind(this); + this.saveCss = this.saveCss.bind(this); + this.detach = this.detach.bind(this); + this.openNative = this.openNative.bind(this); + } + + componentDidMount() { + this.editor = ace.edit("bd-customcss-editor"); + + // Add id to the ace menu container + const originalShow = this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec; + this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec = function() { + originalShow.apply(this, arguments); + const observer = new MutationObserver(mutations => { + for (const mutation of mutations) { + if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue; + const node = mutation.addedNodes[0]; + if (node.parentElement !== document.body || !node.querySelector("#ace_settingsmenu")) continue; + node.id = "ace_settingsmenu_container"; + observer.disconnect(); + } + }); + observer.observe(document.body, {childList: true}); + }; + + this.editor.setTheme("ace/theme/monokai"); + this.editor.session.setMode("ace/mode/css"); + this.editor.setShowPrintMargin(false); + this.editor.setFontSize(14); + this.editor.on("change", () => { + if (!Settings.get("settings", "customcss", "liveUpdate")) return; + this.saveCss(); + this.updateCss(); + }); + } + + componentWillUnmount() { + this.editor.destroy(); + } + + render() { + + return [ + , +
+
{this.props.css}
+
, +
+
+ +
+
+ + + + + Unsaved changes are lost on detach +
+ Press ctrl+, with the editor focused to access the editor's settings. +
+
+
+ ]; + } + + toggleLiveUpdate(checked) { + Settings.set("settings", "customcss", "liveUpdate", checked); + } + + updateCss() { + const newCss = this.editor.session.getValue(); + if (this.props.update) this.props.update(newCss); + } + + saveCss() { + const newCss = this.editor.session.getValue(); + if (this.props.save) this.props.save(newCss); + } + + detach() { + if (this.props.openDetached) this.props.openDetached(); + } + + openNative() { + if (this.props.openNative) this.props.openNative(); + } +} \ No newline at end of file