`);\n\n for (const err of errors) {\n const error = modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].createElement(`
\n
${err.name ? err.name : err.file}
\n
${err.message}
\n
\n
`);\n container.append(error);\n\n if (err.error) {\n error.querySelectorAll(\"a\").forEach(el => el.addEventListener(\"click\", e => {\n e.preventDefault();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Logger\"].stacktrace(\"AddonError\", `Error details for ${err.name ? err.name : err.file}.`, err.error);\n }));\n }\n }\n\n return container;\n };\n\n const tabs = [generateTab(pluginErrors), generateTab(themeErrors)];\n modal.querySelectorAll(\".tab-bar-item\").forEach(el => el.addEventListener(\"click\", e => {\n e.preventDefault();\n const selected = modal.querySelector(\".tab-bar-item.selected\");\n if (selected) modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].removeClass(selected, \"selected\");\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].addClass(e.target, \"selected\");\n const scroller = modal.querySelector(\".scroller\");\n scroller.innerHTML = \"\";\n scroller.append(tabs[modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].index(e.target)]);\n }));\n modal.querySelector(\".footer button\").addEventListener(\"click\", () => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].addClass(modal, \"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.querySelector(\".bd-backdrop\").addEventListener(\"click\", () => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].addClass(modal, \"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOM\"].query(\"#app-mount\").append(modal);\n if (pluginErrors.length) modal.querySelector(\".tab-bar-item\").click();else modal.querySelectorAll(\".tab-bar-item\")[1].click();\n }\n\n static showChangelogModal(options = {}) {\n const ModalStack = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n const ChangelogClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"fixed\", \"improved\");\n const TextElement = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].findByDisplayName(\"Text\");\n const FlexChild = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"Child\");\n const Titles = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"Tags\", \"default\");\n const Changelog = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.selectable == false);\n const MarkdownParser = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"defaultRules\", \"parse\");\n if (!Changelog || !ModalStack || !ChangelogClasses || !TextElement || !FlexChild || !Titles || !MarkdownParser) return modules__WEBPACK_IMPORTED_MODULE_1__[\"Logger\"].warn(\"Modals\", \"showChangelogModal missing modules\");\n const {\n image = \"https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5\",\n description = \"\",\n changes = [],\n title = \"BandagedBD\",\n subtitle = `v${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion}`,\n footer\n } = options;\n const ce = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement;\n const changelogItems = [ce(\"img\", {\n src: image\n })];\n if (description) changelogItems.push(ce(\"p\", null, MarkdownParser.parse(description)));\n\n for (let c = 0; c < changes.length; c++) {\n const entry = changes[c];\n const type = ChangelogClasses[entry.type] ? ChangelogClasses[entry.type] : ChangelogClasses.added;\n const margin = c == 0 ? ChangelogClasses.marginTop : \"\";\n changelogItems.push(ce(\"h1\", {\n className: `${type} ${margin}`\n }, entry.title));\n const list = ce(\"ul\", null, entry.items.map(i => ce(\"li\", null, MarkdownParser.parse(i))));\n changelogItems.push(list);\n }\n\n const renderHeader = function () {\n return ce(FlexChild.Child, {\n grow: 1,\n shrink: 1\n }, ce(Titles.default, {\n tag: Titles.Tags.H4\n }, title), ce(TextElement, {\n size: TextElement.Sizes.SMALL,\n color: TextElement.Colors.STANDARD,\n className: ChangelogClasses.date\n }, subtitle));\n };\n\n const renderFooter = () => {\n const Anchor = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.displayName == \"Anchor\");\n const AnchorClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"anchorUnderlineOnHover\") || {\n anchor: \"anchor-3Z-8Bb\",\n anchorUnderlineOnHover: \"anchorUnderlineOnHover-2ESHQB\"\n };\n\n const joinSupportServer = click => {\n click.preventDefault();\n click.stopPropagation();\n ModalStack.pop();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].InviteActions.acceptInviteAndTransitionToInviteChannel(\"2HScm8j\");\n };\n\n const supportLink = Anchor ? ce(Anchor, {\n onClick: joinSupportServer\n }, \"Join our Discord Server.\") : ce(\"a\", {\n className: `${AnchorClasses.anchor} ${AnchorClasses.anchorUnderlineOnHover}`,\n onClick: joinSupportServer\n }, \"Join our Discord Server.\");\n const defaultFooter = ce(TextElement, {\n size: TextElement.Sizes.SMALL,\n color: TextElement.Colors.STANDARD\n }, \"Need support? \", supportLink);\n return ce(FlexChild.Child, {\n grow: 1,\n shrink: 1\n }, footer ? footer : defaultFooter);\n };\n\n return ModalStack.push(Changelog, {\n className: ChangelogClasses.container,\n selectable: true,\n onScroll: _ => _,\n onClose: _ => _,\n renderHeader: renderHeader,\n renderFooter: renderFooter,\n children: changelogItems\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvbW9kYWxzLmpzPzNhYjIiXSwibmFtZXMiOlsiTW9kYWxzIiwic2hvdWxkU2hvd0FkZG9uRXJyb3JzIiwiU2V0dGluZ3MiLCJnZXQiLCJNb2RhbEFjdGlvbnMiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5UHJvcHMiLCJNb2RhbFN0YWNrIiwiQWxlcnRNb2RhbCIsImdldEJ5UHJvdG90eXBlcyIsIlRleHRFbGVtZW50IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJmaW5kQnlEaXNwbGF5TmFtZSIsIk1hcmtkb3duIiwiZGVmYXVsdCIsInRpdGxlIiwiY29udGVudCIsIm1vZGFsIiwiRE9NIiwiY3JlYXRlRWxlbWVudCIsIlN0cmluZ3MiLCJva2F5IiwicXVlcnlTZWxlY3RvciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbGFzc0xpc3QiLCJhZGQiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwiZG9jdW1lbnQiLCJhcHBlbmQiLCJhbGVydCIsInNob3dDb25maXJtYXRpb25Nb2RhbCIsImNhbmNlbFRleHQiLCJvcHRpb25zIiwiRm9ybWF0dGFibGVTdHJpbmciLCJ0b1N0cmluZyIsImVtcHR5RnVuY3Rpb24iLCJvbkNvbmZpcm0iLCJvbkNhbmNlbCIsImNvbmZpcm1UZXh0IiwiY2FuY2VsIiwiZGFuZ2VyIiwia2V5IiwidW5kZWZpbmVkIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiYyIsIlJlYWN0Iiwib3Blbk1vZGFsIiwicHJvcHMiLCJPYmplY3QiLCJhc3NpZ24iLCJoZWFkZXIiLCJyZWQiLCJtb2RhbEtleSIsInNob3dBZGRvbkVycm9ycyIsInBsdWdpbnMiLCJwbHVnaW5FcnJvcnMiLCJ0aGVtZXMiLCJ0aGVtZUVycm9ycyIsImxlbmd0aCIsImFkZG9uRXJyb3JzIiwiUGFuZWxzIiwibmFtZSIsIm1lc3NhZ2UiLCJlcnJvciIsImdlbmVyYXRlVGFiIiwiZXJyb3JzIiwiY29udGFpbmVyIiwiZXJyIiwiZmlsZSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiZWwiLCJlIiwicHJldmVudERlZmF1bHQiLCJMb2dnZXIiLCJzdGFja3RyYWNlIiwidGFicyIsInNlbGVjdGVkIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInRhcmdldCIsInNjcm9sbGVyIiwiaW5uZXJIVE1MIiwiaW5kZXgiLCJxdWVyeSIsImNsaWNrIiwic2hvd0NoYW5nZWxvZ01vZGFsIiwiQ2hhbmdlbG9nQ2xhc3NlcyIsIkZsZXhDaGlsZCIsIlRpdGxlcyIsIkNoYW5nZWxvZyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJzZWxlY3RhYmxlIiwiTWFya2Rvd25QYXJzZXIiLCJ3YXJuIiwiaW1hZ2UiLCJkZXNjcmlwdGlvbiIsImNoYW5nZXMiLCJzdWJ0aXRsZSIsIkNvbmZpZyIsImJiZFZlcnNpb24iLCJmb290ZXIiLCJjZSIsImNoYW5nZWxvZ0l0ZW1zIiwic3JjIiwicHVzaCIsInBhcnNlIiwiZW50cnkiLCJ0eXBlIiwiYWRkZWQiLCJtYXJnaW4iLCJtYXJnaW5Ub3AiLCJjbGFzc05hbWUiLCJsaXN0IiwiaXRlbXMiLCJpIiwicmVuZGVySGVhZGVyIiwiQ2hpbGQiLCJncm93Iiwic2hyaW5rIiwidGFnIiwiVGFncyIsIkg0Iiwic2l6ZSIsIlNpemVzIiwiU01BTEwiLCJjb2xvciIsIkNvbG9ycyIsIlNUQU5EQVJEIiwiZGF0ZSIsInJlbmRlckZvb3RlciIsIkFuY2hvciIsImRpc3BsYXlOYW1lIiwiQW5jaG9yQ2xhc3NlcyIsImFuY2hvciIsImFuY2hvclVuZGVybGluZU9uSG92ZXIiLCJqb2luU3VwcG9ydFNlcnZlciIsInN0b3BQcm9wYWdhdGlvbiIsInBvcCIsIkRpc2NvcmRNb2R1bGVzIiwiSW52aXRlQWN0aW9ucyIsImFjY2VwdEludml0ZUFuZFRyYW5zaXRpb25Ub0ludml0ZUNoYW5uZWwiLCJzdXBwb3J0TGluayIsIm9uQ2xpY2siLCJkZWZhdWx0Rm9vdGVyIiwib25TY3JvbGwiLCJfIiwib25DbG9zZSIsImNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRWUsTUFBTUEsTUFBTixDQUFhO0FBRXhCLGFBQVdDLHFCQUFYLEdBQW1DO0FBQUMsV0FBT0MsZ0RBQVEsQ0FBQ0MsR0FBVCxDQUFhLFVBQWIsRUFBeUIsUUFBekIsRUFBbUMsYUFBbkMsQ0FBUDtBQUEwRDs7QUFFOUYsYUFBV0MsWUFBWCxHQUEwQjtBQUFDLFdBQU9DLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsV0FBMUIsRUFBdUMsYUFBdkMsQ0FBUDtBQUE4RDs7QUFDekYsYUFBV0MsVUFBWCxHQUF3QjtBQUFDLFdBQU9GLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsTUFBMUIsRUFBa0MsUUFBbEMsRUFBNEMsS0FBNUMsRUFBbUQsWUFBbkQsQ0FBUDtBQUF5RTs7QUFDbEcsYUFBV0UsVUFBWCxHQUF3QjtBQUFDLFdBQU9ILHNEQUFjLENBQUNJLGVBQWYsQ0FBK0IsY0FBL0IsRUFBK0MsY0FBL0MsRUFBK0Qsb0JBQS9ELENBQVA7QUFBNkY7O0FBQ3RILGFBQVdDLFdBQVgsR0FBeUI7QUFBQyxXQUFPTCxzREFBYyxDQUFDQyxVQUFmLENBQTBCLE9BQTFCLEVBQW1DLFNBQW5DLENBQVA7QUFBc0Q7O0FBQ2hGLGFBQVdLLGlCQUFYLEdBQStCO0FBQUMsV0FBT04sc0RBQWMsQ0FBQ08saUJBQWYsQ0FBaUMsY0FBakMsQ0FBUDtBQUF5RDs7QUFDekYsYUFBV0MsUUFBWCxHQUFzQjtBQUFDLFdBQU9SLHNEQUFjLENBQUNPLGlCQUFmLENBQWlDLFVBQWpDLENBQVA7QUFBcUQ7O0FBRTVFLFNBQU9FLE9BQVAsQ0FBZUMsS0FBZixFQUFzQkMsT0FBdEIsRUFBK0I7QUFDM0IsVUFBTUMsS0FBSyxHQUFHQywyQ0FBRyxDQUFDQyxhQUFKLENBQW1COzs7OztpREFLUUosS0FBTTs7Ozs7c0NBS2pCQyxPQUFROzs7OztzRUFLd0JJLCtDQUFPLENBQUNwQixNQUFSLENBQWVxQixJQUFLOzs7O21CQWZwRSxDQUFkO0FBb0JBSixTQUFLLENBQUNLLGFBQU4sQ0FBb0IsZ0JBQXBCLEVBQXNDQyxnQkFBdEMsQ0FBdUQsT0FBdkQsRUFBZ0UsTUFBTTtBQUNsRU4sV0FBSyxDQUFDTyxTQUFOLENBQWdCQyxHQUFoQixDQUFvQixTQUFwQjtBQUNBQyxnQkFBVSxDQUFDLE1BQU07QUFBRVQsYUFBSyxDQUFDVSxNQUFOO0FBQWlCLE9BQTFCLEVBQTRCLEdBQTVCLENBQVY7QUFDSCxLQUhEO0FBSUFWLFNBQUssQ0FBQ0ssYUFBTixDQUFvQixjQUFwQixFQUFvQ0MsZ0JBQXBDLENBQXFELE9BQXJELEVBQThELE1BQU07QUFDaEVOLFdBQUssQ0FBQ08sU0FBTixDQUFnQkMsR0FBaEIsQ0FBb0IsU0FBcEI7QUFDQUMsZ0JBQVUsQ0FBQyxNQUFNO0FBQUVULGFBQUssQ0FBQ1UsTUFBTjtBQUFpQixPQUExQixFQUE0QixHQUE1QixDQUFWO0FBQ0gsS0FIRDtBQUlBQyxZQUFRLENBQUNOLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNPLE1BQXJDLENBQTRDWixLQUE1QztBQUNIOztBQUVELFNBQU9hLEtBQVAsQ0FBYWYsS0FBYixFQUFvQkMsT0FBcEIsRUFBNkI7QUFDekIsU0FBS2UscUJBQUwsQ0FBMkJoQixLQUEzQixFQUFrQ0MsT0FBbEMsRUFBMkM7QUFBQ2dCLGdCQUFVLEVBQUU7QUFBYixLQUEzQztBQUNIO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztBQWFBLFNBQU9ELHFCQUFQLENBQTZCaEIsS0FBN0IsRUFBb0NDLE9BQXBDLEVBQTZDaUIsT0FBTyxHQUFHLEVBQXZELEVBQTJEO0FBQ3ZELFVBQU1wQixRQUFRLEdBQUcsS0FBS0EsUUFBdEI7QUFDQSxVQUFNRixpQkFBaUIsR0FBRyxLQUFLQSxpQkFBL0I7QUFDQSxVQUFNUCxZQUFZLEdBQUcsS0FBS0EsWUFBMUI7QUFDQSxRQUFJWSxPQUFPLFlBQVlrQix1REFBdkIsRUFBMENsQixPQUFPLEdBQUdBLE9BQU8sQ0FBQ21CLFFBQVIsRUFBVjtBQUMxQyxRQUFJLENBQUMsS0FBSy9CLFlBQU4sSUFBc0IsQ0FBQyxLQUFLTyxpQkFBNUIsSUFBaUQsQ0FBQyxLQUFLRSxRQUEzRCxFQUFxRSxPQUFPLEtBQUtDLE9BQUwsQ0FBYUMsS0FBYixFQUFvQkMsT0FBcEIsQ0FBUDs7QUFFckUsVUFBTW9CLGFBQWEsR0FBRyxNQUFNLENBQUUsQ0FBOUI7O0FBQ0EsVUFBTTtBQUFDQyxlQUFTLEdBQUdELGFBQWI7QUFBNEJFLGNBQVEsR0FBR0YsYUFBdkM7QUFBc0RHLGlCQUFXLEdBQUduQiwrQ0FBTyxDQUFDcEIsTUFBUixDQUFlcUIsSUFBbkY7QUFBeUZXLGdCQUFVLEdBQUdaLCtDQUFPLENBQUNwQixNQUFSLENBQWV3QyxNQUFySDtBQUE2SEMsWUFBTSxHQUFHLEtBQXRJO0FBQTZJQyxTQUFHLEdBQUdDO0FBQW5KLFFBQWdLVixPQUF0SztBQUVBLFFBQUksQ0FBQ1csS0FBSyxDQUFDQyxPQUFOLENBQWM3QixPQUFkLENBQUwsRUFBNkJBLE9BQU8sR0FBRyxDQUFDQSxPQUFELENBQVY7QUFDN0JBLFdBQU8sR0FBR0EsT0FBTyxDQUFDOEIsR0FBUixDQUFZQyxDQUFDLElBQUksT0FBT0EsQ0FBUCxLQUFjLFFBQWQsR0FBeUJDLDZDQUFLLENBQUM3QixhQUFOLENBQW9CTixRQUFwQixFQUE4QixJQUE5QixFQUFvQ2tDLENBQXBDLENBQXpCLEdBQWtFQSxDQUFuRixDQUFWO0FBRUEsV0FBTzNDLFlBQVksQ0FBQzZDLFNBQWIsQ0FBdUJDLEtBQUssSUFBSTtBQUNuQyxhQUFPRiw2Q0FBSyxDQUFDN0IsYUFBTixDQUFvQlIsaUJBQXBCLEVBQXVDd0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDeERDLGNBQU0sRUFBRXRDLEtBRGdEO0FBRXhEdUMsV0FBRyxFQUFFYixNQUZtRDtBQUd4REYsbUJBQVcsRUFBRUEsV0FIMkM7QUFJeERQLGtCQUFVLEVBQUVBLFVBSjRDO0FBS3hESyxpQkFBUyxFQUFFQSxTQUw2QztBQU14REMsZ0JBQVEsRUFBRUE7QUFOOEMsT0FBZCxFQU8zQ1ksS0FQMkMsQ0FBdkMsRUFPSWxDLE9BUEosQ0FBUDtBQVFILEtBVE0sRUFTSjtBQUFDdUMsY0FBUSxFQUFFYjtBQUFYLEtBVEksQ0FBUDtBQVVIOztBQUVELFNBQU9jLGVBQVAsQ0FBdUI7QUFBQ0MsV0FBTyxFQUFFQyxZQUFZLEdBQUcsRUFBekI7QUFBNkJDLFVBQU0sRUFBRUMsV0FBVyxHQUFHO0FBQW5ELEdBQXZCLEVBQStFO0FBQzNFLFFBQUksQ0FBQ0YsWUFBRCxJQUFpQixDQUFDRSxXQUFsQixJQUFpQyxDQUFDLEtBQUszRCxxQkFBM0MsRUFBa0U7QUFDbEUsUUFBSSxDQUFDeUQsWUFBWSxDQUFDRyxNQUFkLElBQXdCLENBQUNELFdBQVcsQ0FBQ0MsTUFBekMsRUFBaUQ7QUFDakQsVUFBTTVDLEtBQUssR0FBR0MsMkNBQUcsQ0FBQ0MsYUFBSixDQUFtQjs7Ozt1RkFJOENDLCtDQUFPLENBQUNwQixNQUFSLENBQWU4RCxXQUFZOzs7O3dFQUkxQzFDLCtDQUFPLENBQUMyQyxNQUFSLENBQWVOLE9BQVE7d0VBQ3ZCckMsK0NBQU8sQ0FBQzJDLE1BQVIsQ0FBZUosTUFBTzs7OztnRkFJZHZDLCtDQUFPLENBQUNwQixNQUFSLENBQWVnRSxJQUFLO21GQUNqQjVDLCtDQUFPLENBQUNwQixNQUFSLENBQWVpRSxPQUFRO2lGQUN6QjdDLCtDQUFPLENBQUNwQixNQUFSLENBQWVrRSxLQUFNOzs7Ozs7Ozs7OEVBU3hCOUMsK0NBQU8sQ0FBQ3BCLE1BQVIsQ0FBZXFCLElBQUs7Ozs7MkJBeEI1RSxDQUFkOztBQThCQSxVQUFNOEMsV0FBVyxHQUFHLFVBQVNDLE1BQVQsRUFBaUI7QUFDakMsWUFBTUMsU0FBUyxHQUFHbkQsMkNBQUcsQ0FBQ0MsYUFBSixDQUFtQixzQkFBbkIsQ0FBbEI7O0FBQ0EsV0FBSyxNQUFNbUQsR0FBWCxJQUFrQkYsTUFBbEIsRUFBMEI7QUFDdEIsY0FBTUYsS0FBSyxHQUFHaEQsMkNBQUcsQ0FBQ0MsYUFBSixDQUFtQjs0RUFDMkJtRCxHQUFHLENBQUNOLElBQUosR0FBV00sR0FBRyxDQUFDTixJQUFmLEdBQXNCTSxHQUFHLENBQUNDLElBQUs7K0VBQzVCRCxHQUFHLENBQUNMLE9BQVE7MkdBQ2dCSyxHQUFHLENBQUNKLEtBQUosR0FBWUksR0FBRyxDQUFDSixLQUFKLENBQVVELE9BQXRCLEdBQWdDLEVBQUc7dUNBSGhILENBQWQ7QUFLQUksaUJBQVMsQ0FBQ3hDLE1BQVYsQ0FBaUJxQyxLQUFqQjs7QUFDQSxZQUFJSSxHQUFHLENBQUNKLEtBQVIsRUFBZTtBQUNYQSxlQUFLLENBQUNNLGdCQUFOLENBQXVCLEdBQXZCLEVBQTRCQyxPQUE1QixDQUFvQ0MsRUFBRSxJQUFJQSxFQUFFLENBQUNuRCxnQkFBSCxDQUFvQixPQUFwQixFQUE4Qm9ELENBQUQsSUFBTztBQUMxRUEsYUFBQyxDQUFDQyxjQUFGO0FBQ0FDLDBEQUFNLENBQUNDLFVBQVAsQ0FBa0IsWUFBbEIsRUFBaUMscUJBQW9CUixHQUFHLENBQUNOLElBQUosR0FBV00sR0FBRyxDQUFDTixJQUFmLEdBQXNCTSxHQUFHLENBQUNDLElBQUssR0FBcEYsRUFBd0ZELEdBQUcsQ0FBQ0osS0FBNUY7QUFDSCxXQUh5QyxDQUExQztBQUlIO0FBQ0o7O0FBQ0QsYUFBT0csU0FBUDtBQUNILEtBakJEOztBQW1CQSxVQUFNVSxJQUFJLEdBQUcsQ0FBQ1osV0FBVyxDQUFDVCxZQUFELENBQVosRUFBNEJTLFdBQVcsQ0FBQ1AsV0FBRCxDQUF2QyxDQUFiO0FBRUEzQyxTQUFLLENBQUN1RCxnQkFBTixDQUF1QixlQUF2QixFQUF3Q0MsT0FBeEMsQ0FBZ0RDLEVBQUUsSUFBSUEsRUFBRSxDQUFDbkQsZ0JBQUgsQ0FBb0IsT0FBcEIsRUFBOEJvRCxDQUFELElBQU87QUFDdEZBLE9BQUMsQ0FBQ0MsY0FBRjtBQUNBLFlBQU1JLFFBQVEsR0FBRy9ELEtBQUssQ0FBQ0ssYUFBTixDQUFvQix3QkFBcEIsQ0FBakI7QUFDQSxVQUFJMEQsUUFBSixFQUFjOUQsMkNBQUcsQ0FBQytELFdBQUosQ0FBZ0JELFFBQWhCLEVBQTBCLFVBQTFCO0FBQ2Q5RCxpREFBRyxDQUFDZ0UsUUFBSixDQUFhUCxDQUFDLENBQUNRLE1BQWYsRUFBdUIsVUFBdkI7QUFDQSxZQUFNQyxRQUFRLEdBQUduRSxLQUFLLENBQUNLLGFBQU4sQ0FBb0IsV0FBcEIsQ0FBakI7QUFDQThELGNBQVEsQ0FBQ0MsU0FBVCxHQUFxQixFQUFyQjtBQUNBRCxjQUFRLENBQUN2RCxNQUFULENBQWdCa0QsSUFBSSxDQUFDN0QsMkNBQUcsQ0FBQ29FLEtBQUosQ0FBVVgsQ0FBQyxDQUFDUSxNQUFaLENBQUQsQ0FBcEI7QUFDSCxLQVJxRCxDQUF0RDtBQVVBbEUsU0FBSyxDQUFDSyxhQUFOLENBQW9CLGdCQUFwQixFQUFzQ0MsZ0JBQXRDLENBQXVELE9BQXZELEVBQWdFLE1BQU07QUFDbEVMLGlEQUFHLENBQUNnRSxRQUFKLENBQWFqRSxLQUFiLEVBQW9CLFNBQXBCO0FBQ0FTLGdCQUFVLENBQUMsTUFBTTtBQUFFVCxhQUFLLENBQUNVLE1BQU47QUFBaUIsT0FBMUIsRUFBNEIsR0FBNUIsQ0FBVjtBQUNILEtBSEQ7QUFJQVYsU0FBSyxDQUFDSyxhQUFOLENBQW9CLGNBQXBCLEVBQW9DQyxnQkFBcEMsQ0FBcUQsT0FBckQsRUFBOEQsTUFBTTtBQUNoRUwsaURBQUcsQ0FBQ2dFLFFBQUosQ0FBYWpFLEtBQWIsRUFBb0IsU0FBcEI7QUFDQVMsZ0JBQVUsQ0FBQyxNQUFNO0FBQUVULGFBQUssQ0FBQ1UsTUFBTjtBQUFpQixPQUExQixFQUE0QixHQUE1QixDQUFWO0FBQ0gsS0FIRDtBQUlBVCwrQ0FBRyxDQUFDcUUsS0FBSixDQUFVLFlBQVYsRUFBd0IxRCxNQUF4QixDQUErQlosS0FBL0I7QUFDQSxRQUFJeUMsWUFBWSxDQUFDRyxNQUFqQixFQUF5QjVDLEtBQUssQ0FBQ0ssYUFBTixDQUFvQixlQUFwQixFQUFxQ2tFLEtBQXJDLEdBQXpCLEtBQ0t2RSxLQUFLLENBQUN1RCxnQkFBTixDQUF1QixlQUF2QixFQUF3QyxDQUF4QyxFQUEyQ2dCLEtBQTNDO0FBQ1I7O0FBRUQsU0FBT0Msa0JBQVAsQ0FBMEJ4RCxPQUFPLEdBQUcsRUFBcEMsRUFBd0M7QUFDcEMsVUFBTTFCLFVBQVUsR0FBR0Ysc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixNQUExQixFQUFrQyxRQUFsQyxFQUE0QyxLQUE1QyxFQUFtRCxZQUFuRCxDQUFuQjtBQUNBLFVBQU1vRixnQkFBZ0IsR0FBR3JGLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsT0FBMUIsRUFBbUMsVUFBbkMsQ0FBekI7QUFDQSxVQUFNSSxXQUFXLEdBQUdMLHNEQUFjLENBQUNPLGlCQUFmLENBQWlDLE1BQWpDLENBQXBCO0FBQ0EsVUFBTStFLFNBQVMsR0FBR3RGLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsT0FBMUIsQ0FBbEI7QUFDQSxVQUFNc0YsTUFBTSxHQUFHdkYsc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixNQUExQixFQUFrQyxTQUFsQyxDQUFmO0FBQ0EsVUFBTXVGLFNBQVMsR0FBR3hGLHNEQUFjLENBQUN5RixTQUFmLENBQXlCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsWUFBRixJQUFrQkQsQ0FBQyxDQUFDQyxZQUFGLENBQWVDLFVBQWYsSUFBNkIsS0FBN0UsQ0FBbEI7QUFDQSxVQUFNQyxjQUFjLEdBQUc3RixzREFBYyxDQUFDQyxVQUFmLENBQTBCLGNBQTFCLEVBQTBDLE9BQTFDLENBQXZCO0FBQ0EsUUFBSSxDQUFDdUYsU0FBRCxJQUFjLENBQUN0RixVQUFmLElBQTZCLENBQUNtRixnQkFBOUIsSUFBa0QsQ0FBQ2hGLFdBQW5ELElBQWtFLENBQUNpRixTQUFuRSxJQUFnRixDQUFDQyxNQUFqRixJQUEyRixDQUFDTSxjQUFoRyxFQUFnSCxPQUFPckIsOENBQU0sQ0FBQ3NCLElBQVAsQ0FBWSxRQUFaLEVBQXNCLG9DQUF0QixDQUFQO0FBRWhILFVBQU07QUFBQ0MsV0FBSyxHQUFHLGdHQUFUO0FBQTJHQyxpQkFBVyxHQUFHLEVBQXpIO0FBQTZIQyxhQUFPLEdBQUcsRUFBdkk7QUFBMkl2RixXQUFLLEdBQUcsWUFBbko7QUFBaUt3RixjQUFRLEdBQUksSUFBR0MsMkNBQU0sQ0FBQ0MsVUFBVyxFQUFsTTtBQUFxTUM7QUFBck0sUUFBK016RSxPQUFyTjtBQUNBLFVBQU0wRSxFQUFFLEdBQUczRCw2Q0FBSyxDQUFDN0IsYUFBakI7QUFDQSxVQUFNeUYsY0FBYyxHQUFHLENBQUNELEVBQUUsQ0FBQyxLQUFELEVBQVE7QUFBQ0UsU0FBRyxFQUFFVDtBQUFOLEtBQVIsQ0FBSCxDQUF2QjtBQUNBLFFBQUlDLFdBQUosRUFBaUJPLGNBQWMsQ0FBQ0UsSUFBZixDQUFvQkgsRUFBRSxDQUFDLEdBQUQsRUFBTSxJQUFOLEVBQVlULGNBQWMsQ0FBQ2EsS0FBZixDQUFxQlYsV0FBckIsQ0FBWixDQUF0Qjs7QUFDakIsU0FBSyxJQUFJdEQsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3VELE9BQU8sQ0FBQ3pDLE1BQTVCLEVBQW9DZCxDQUFDLEVBQXJDLEVBQXlDO0FBQ3JDLFlBQU1pRSxLQUFLLEdBQUdWLE9BQU8sQ0FBQ3ZELENBQUQsQ0FBckI7QUFDQSxZQUFNa0UsSUFBSSxHQUFHdkIsZ0JBQWdCLENBQUNzQixLQUFLLENBQUNDLElBQVAsQ0FBaEIsR0FBK0J2QixnQkFBZ0IsQ0FBQ3NCLEtBQUssQ0FBQ0MsSUFBUCxDQUEvQyxHQUE4RHZCLGdCQUFnQixDQUFDd0IsS0FBNUY7QUFDQSxZQUFNQyxNQUFNLEdBQUdwRSxDQUFDLElBQUksQ0FBTCxHQUFTMkMsZ0JBQWdCLENBQUMwQixTQUExQixHQUFzQyxFQUFyRDtBQUNBUixvQkFBYyxDQUFDRSxJQUFmLENBQW9CSCxFQUFFLENBQUMsSUFBRCxFQUFPO0FBQUNVLGlCQUFTLEVBQUcsR0FBRUosSUFBSyxJQUFHRSxNQUFPO0FBQTlCLE9BQVAsRUFBMENILEtBQUssQ0FBQ2pHLEtBQWhELENBQXRCO0FBQ0EsWUFBTXVHLElBQUksR0FBR1gsRUFBRSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWFLLEtBQUssQ0FBQ08sS0FBTixDQUFZekUsR0FBWixDQUFnQjBFLENBQUMsSUFBSWIsRUFBRSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWFULGNBQWMsQ0FBQ2EsS0FBZixDQUFxQlMsQ0FBckIsQ0FBYixDQUF2QixDQUFiLENBQWY7QUFDQVosb0JBQWMsQ0FBQ0UsSUFBZixDQUFvQlEsSUFBcEI7QUFDSDs7QUFDRCxVQUFNRyxZQUFZLEdBQUcsWUFBVztBQUM1QixhQUFPZCxFQUFFLENBQUNoQixTQUFTLENBQUMrQixLQUFYLEVBQWtCO0FBQUNDLFlBQUksRUFBRSxDQUFQO0FBQVVDLGNBQU0sRUFBRTtBQUFsQixPQUFsQixFQUNMakIsRUFBRSxDQUFDZixNQUFNLENBQUM5RSxPQUFSLEVBQWlCO0FBQUMrRyxXQUFHLEVBQUVqQyxNQUFNLENBQUNrQyxJQUFQLENBQVlDO0FBQWxCLE9BQWpCLEVBQXdDaEgsS0FBeEMsQ0FERyxFQUVMNEYsRUFBRSxDQUFDakcsV0FBRCxFQUFjO0FBQUNzSCxZQUFJLEVBQUV0SCxXQUFXLENBQUN1SCxLQUFaLENBQWtCQyxLQUF6QjtBQUFnQ0MsYUFBSyxFQUFFekgsV0FBVyxDQUFDMEgsTUFBWixDQUFtQkMsUUFBMUQ7QUFBb0VoQixpQkFBUyxFQUFFM0IsZ0JBQWdCLENBQUM0QztBQUFoRyxPQUFkLEVBQXFIL0IsUUFBckgsQ0FGRyxDQUFUO0FBSUgsS0FMRDs7QUFPQSxVQUFNZ0MsWUFBWSxHQUFHLE1BQU07QUFDdkIsWUFBTUMsTUFBTSxHQUFHbkksc0RBQWMsQ0FBQ3lGLFNBQWYsQ0FBeUJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDMEMsV0FBRixJQUFpQixRQUEvQyxDQUFmO0FBQ0EsWUFBTUMsYUFBYSxHQUFHckksc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQix3QkFBMUIsS0FBdUQ7QUFBQ3FJLGNBQU0sRUFBRSxlQUFUO0FBQTBCQyw4QkFBc0IsRUFBRTtBQUFsRCxPQUE3RTs7QUFDQSxZQUFNQyxpQkFBaUIsR0FBSXJELEtBQUQsSUFBVztBQUNqQ0EsYUFBSyxDQUFDWixjQUFOO0FBQ0FZLGFBQUssQ0FBQ3NELGVBQU47QUFDQXZJLGtCQUFVLENBQUN3SSxHQUFYO0FBQ0FDLDhEQUFjLENBQUNDLGFBQWYsQ0FBNkJDLHdDQUE3QixDQUFzRSxTQUF0RTtBQUNILE9BTEQ7O0FBTUEsWUFBTUMsV0FBVyxHQUFHWCxNQUFNLEdBQUc3QixFQUFFLENBQUM2QixNQUFELEVBQVM7QUFBQ1ksZUFBTyxFQUFFUDtBQUFWLE9BQVQsRUFBdUMsMEJBQXZDLENBQUwsR0FBMEVsQyxFQUFFLENBQUMsR0FBRCxFQUFNO0FBQUNVLGlCQUFTLEVBQUcsR0FBRXFCLGFBQWEsQ0FBQ0MsTUFBTyxJQUFHRCxhQUFhLENBQUNFLHNCQUF1QixFQUE1RTtBQUErRVEsZUFBTyxFQUFFUDtBQUF4RixPQUFOLEVBQWtILDBCQUFsSCxDQUF0RztBQUNBLFlBQU1RLGFBQWEsR0FBRzFDLEVBQUUsQ0FBQ2pHLFdBQUQsRUFBYztBQUFDc0gsWUFBSSxFQUFFdEgsV0FBVyxDQUFDdUgsS0FBWixDQUFrQkMsS0FBekI7QUFBZ0NDLGFBQUssRUFBRXpILFdBQVcsQ0FBQzBILE1BQVosQ0FBbUJDO0FBQTFELE9BQWQsRUFBbUYsZ0JBQW5GLEVBQXFHYyxXQUFyRyxDQUF4QjtBQUNBLGFBQU94QyxFQUFFLENBQUNoQixTQUFTLENBQUMrQixLQUFYLEVBQWtCO0FBQUNDLFlBQUksRUFBRSxDQUFQO0FBQVVDLGNBQU0sRUFBRTtBQUFsQixPQUFsQixFQUF3Q2xCLE1BQU0sR0FBR0EsTUFBSCxHQUFZMkMsYUFBMUQsQ0FBVDtBQUNILEtBWkQ7O0FBY0EsV0FBTzlJLFVBQVUsQ0FBQ3VHLElBQVgsQ0FBZ0JqQixTQUFoQixFQUEyQjtBQUM5QndCLGVBQVMsRUFBRTNCLGdCQUFnQixDQUFDckIsU0FERTtBQUU5QjRCLGdCQUFVLEVBQUUsSUFGa0I7QUFHOUJxRCxjQUFRLEVBQUVDLENBQUMsSUFBSUEsQ0FIZTtBQUk5QkMsYUFBTyxFQUFFRCxDQUFDLElBQUlBLENBSmdCO0FBSzlCOUIsa0JBQVksRUFBRUEsWUFMZ0I7QUFNOUJjLGtCQUFZLEVBQUVBLFlBTmdCO0FBTzlCa0IsY0FBUSxFQUFFN0M7QUFQb0IsS0FBM0IsQ0FBUDtBQVNIOztBQXROdUIiLCJmaWxlIjoiLi9zcmMvdWkvbW9kYWxzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBXZWJwYWNrTW9kdWxlcywgUmVhY3QsIFNldHRpbmdzLCBTdHJpbmdzLCBET00sIERpc2NvcmRNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgRm9ybWF0dGFibGVTdHJpbmcgZnJvbSBcIi4uL3N0cnVjdHMvc3RyaW5nXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RhbHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgc2hvdWxkU2hvd0FkZG9uRXJyb3JzKCkge3JldHVybiBTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImFkZG9uc1wiLCBcImFkZG9uRXJyb3JzXCIpO31cclxuXHJcbiAgICBzdGF0aWMgZ2V0IE1vZGFsQWN0aW9ucygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIm9wZW5Nb2RhbFwiLCBcInVwZGF0ZU1vZGFsXCIpO31cclxuICAgIHN0YXRpYyBnZXQgTW9kYWxTdGFjaygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInB1c2hcIiwgXCJ1cGRhdGVcIiwgXCJwb3BcIiwgXCJwb3BXaXRoS2V5XCIpO31cclxuICAgIHN0YXRpYyBnZXQgQWxlcnRNb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKFwiaGFuZGxlQ2FuY2VsXCIsIFwiaGFuZGxlU3VibWl0XCIsIFwiaGFuZGxlTWlub3JDb25maXJtXCIpO31cclxuICAgIHN0YXRpYyBnZXQgVGV4dEVsZW1lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJTaXplc1wiLCBcIldlaWdodHNcIik7fVxyXG4gICAgc3RhdGljIGdldCBDb25maXJtYXRpb25Nb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZmluZEJ5RGlzcGxheU5hbWUoXCJDb25maXJtTW9kYWxcIik7fVxyXG4gICAgc3RhdGljIGdldCBNYXJrZG93bigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZmluZEJ5RGlzcGxheU5hbWUoXCJNYXJrZG93blwiKTt9XHJcblxyXG4gICAgc3RhdGljIGRlZmF1bHQodGl0bGUsIGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBtb2RhbCA9IERPTS5jcmVhdGVFbGVtZW50KGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtYmFja2Ryb3AgYmFja2Ryb3AtMXdybUtCXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwgbW9kYWwtMVVHZG5SXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWlubmVyIGlubmVyLTFKZUdWY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGhlYWRlci0xUl9BakZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7dGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyLXdyYXAgZmFkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXIgZm9vdGVyLTJ5ZkNnWCBmb290ZXItM3JEV2RDIGZvb3Rlci0yZ0wxcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmQtYnV0dG9uXCI+JHtTdHJpbmdzLk1vZGFscy5va2F5fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5gKTtcclxuICAgICAgICBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLmZvb3RlciBidXR0b25cIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuY2xhc3NMaXN0LmFkZChcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLmJkLWJhY2tkcm9wXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmNsYXNzTGlzdC5hZGQoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikuYXBwZW5kKG1vZGFsKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWxlcnQodGl0bGUsIGNvbnRlbnQpIHtcclxuICAgICAgICB0aGlzLnNob3dDb25maXJtYXRpb25Nb2RhbCh0aXRsZSwgY29udGVudCwge2NhbmNlbFRleHQ6IFwiXCJ9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIGEgZ2VuZXJpYyBidXQgdmVyeSBjdXN0b21pemFibGUgY29uZmlybWF0aW9uIG1vZGFsIHdpdGggb3B0aW9uYWwgY29uZmlybSBhbmQgY2FuY2VsIGNhbGxiYWNrcy5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSAtIHRpdGxlIG9mIHRoZSBtb2RhbFxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFJlYWN0RWxlbWVudHxBcnJheTxzdHJpbmd8UmVhY3RFbGVtZW50Pil9IGNoaWxkcmVuIC0gYSBzaW5nbGUgb3IgbWl4ZWQgYXJyYXkgb2YgcmVhY3QgZWxlbWVudHMgYW5kIHN0cmluZ3MuIEV2ZXJ5dGhpbmcgaXMgd3JhcHBlZCBpbiBEaXNjb3JkJ3MgYE1hcmtkb3duYCBjb21wb25lbnQgc28gc3RyaW5ncyB3aWxsIHNob3cgYW5kIHJlbmRlciBwcm9wZXJseS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBvcHRpb25zIHRvIG1vZGlmeSB0aGUgbW9kYWxcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGFuZ2VyPWZhbHNlXSAtIHdoZXRoZXIgdGhlIG1haW4gYnV0dG9uIHNob3VsZCBiZSByZWQgb3Igbm90XHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY29uZmlybVRleHQ9T2theV0gLSB0ZXh0IGZvciB0aGUgY29uZmlybWF0aW9uL3N1Ym1pdCBidXR0b25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5jYW5jZWxUZXh0PUNhbmNlbF0gLSB0ZXh0IGZvciB0aGUgY2FuY2VsIGJ1dHRvblxyXG4gICAgICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25Db25maXJtPU5PT1BdIC0gY2FsbGJhY2sgdG8gb2NjdXIgd2hlbiBjbGlja2luZyB0aGUgc3VibWl0IGJ1dHRvblxyXG4gICAgICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25DYW5jZWw9Tk9PUF0gLSBjYWxsYmFjayB0byBvY2N1ciB3aGVuIGNsaWNraW5nIHRoZSBjYW5jZWwgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMua2V5XSAtIGtleSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBtb2RhbC4gSWYgbm90IHByb3ZpZGVkLCBvbmUgaXMgZ2VuZXJhdGVkIGFuZCByZXR1cm5lZFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gLSB0aGUga2V5IHVzZWQgZm9yIHRoaXMgbW9kYWxcclxuICAgICAqL1xyXG4gICAgc3RhdGljIHNob3dDb25maXJtYXRpb25Nb2RhbCh0aXRsZSwgY29udGVudCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgTWFya2Rvd24gPSB0aGlzLk1hcmtkb3duO1xyXG4gICAgICAgIGNvbnN0IENvbmZpcm1hdGlvbk1vZGFsID0gdGhpcy5Db25maXJtYXRpb25Nb2RhbDtcclxuICAgICAgICBjb25zdCBNb2RhbEFjdGlvbnMgPSB0aGlzLk1vZGFsQWN0aW9ucztcclxuICAgICAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIEZvcm1hdHRhYmxlU3RyaW5nKSBjb250ZW50ID0gY29udGVudC50b1N0cmluZygpO1xyXG4gICAgICAgIGlmICghdGhpcy5Nb2RhbEFjdGlvbnMgfHwgIXRoaXMuQ29uZmlybWF0aW9uTW9kYWwgfHwgIXRoaXMuTWFya2Rvd24pIHJldHVybiB0aGlzLmRlZmF1bHQodGl0bGUsIGNvbnRlbnQpO1xyXG5cclxuICAgICAgICBjb25zdCBlbXB0eUZ1bmN0aW9uID0gKCkgPT4ge307XHJcbiAgICAgICAgY29uc3Qge29uQ29uZmlybSA9IGVtcHR5RnVuY3Rpb24sIG9uQ2FuY2VsID0gZW1wdHlGdW5jdGlvbiwgY29uZmlybVRleHQgPSBTdHJpbmdzLk1vZGFscy5va2F5LCBjYW5jZWxUZXh0ID0gU3RyaW5ncy5Nb2RhbHMuY2FuY2VsLCBkYW5nZXIgPSBmYWxzZSwga2V5ID0gdW5kZWZpbmVkfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRlbnQpKSBjb250ZW50ID0gW2NvbnRlbnRdO1xyXG4gICAgICAgIGNvbnRlbnQgPSBjb250ZW50Lm1hcChjID0+IHR5cGVvZihjKSA9PT0gXCJzdHJpbmdcIiA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWFya2Rvd24sIG51bGwsIGMpIDogYyk7XHJcblxyXG4gICAgICAgIHJldHVybiBNb2RhbEFjdGlvbnMub3Blbk1vZGFsKHByb3BzID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29uZmlybWF0aW9uTW9kYWwsIE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIHJlZDogZGFuZ2VyLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybVRleHQ6IGNvbmZpcm1UZXh0LFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsVGV4dDogY2FuY2VsVGV4dCxcclxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogb25Db25maXJtLFxyXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6IG9uQ2FuY2VsXHJcbiAgICAgICAgICAgIH0sIHByb3BzKSwgY29udGVudCk7XHJcbiAgICAgICAgfSwge21vZGFsS2V5OiBrZXl9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc2hvd0FkZG9uRXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMgPSBbXSwgdGhlbWVzOiB0aGVtZUVycm9ycyA9IFtdfSkge1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzIHx8ICF0aGVtZUVycm9ycyB8fCAhdGhpcy5zaG91bGRTaG93QWRkb25FcnJvcnMpIHJldHVybjtcclxuICAgICAgICBpZiAoIXBsdWdpbkVycm9ycy5sZW5ndGggJiYgIXRoZW1lRXJyb3JzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IG1vZGFsID0gRE9NLmNyZWF0ZUVsZW1lbnQoYDxkaXYgY2xhc3M9XCJiZC1tb2RhbC13cmFwcGVyIHRoZW1lLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLWJhY2tkcm9wIGJhY2tkcm9wLTF3cm1LQlwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwgYmQtY29udGVudC1tb2RhbCBtb2RhbC0xVUdkblJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1tb2RhbC1pbm5lciBpbm5lci0xSmVHVmNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGhlYWRlci0xUl9BakZcIj48ZGl2IGNsYXNzPVwidGl0bGVcIj4ke1N0cmluZ3MuTW9kYWxzLmFkZG9uRXJyb3JzfTwvZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1tb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXIgVE9QXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXItaXRlbVwiPiR7U3RyaW5ncy5QYW5lbHMucGx1Z2luc308L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1pdGVtXCI+JHtTdHJpbmdzLlBhbmVscy50aGVtZXN9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW5hbWVcIj4ke1N0cmluZ3MuTW9kYWxzLm5hbWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1tZXNzYWdlXCI+JHtTdHJpbmdzLk1vZGFscy5tZXNzYWdlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tZXJyb3JcIj4ke1N0cmluZ3MuTW9kYWxzLmVycm9yfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyLXdyYXAgZmFkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXIgZm9vdGVyLTJ5ZkNnWCBmb290ZXItM3JEV2RDIGZvb3Rlci0yZ0wxcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJiZC1idXR0b25cIj4ke1N0cmluZ3MuTW9kYWxzLm9rYXl9PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGdlbmVyYXRlVGFiID0gZnVuY3Rpb24oZXJyb3JzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IERPTS5jcmVhdGVFbGVtZW50KGA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+YCk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ycykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBET00uY3JlYXRlRWxlbWVudChgPGRpdiBjbGFzcz1cImVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW5hbWVcIj4ke2Vyci5uYW1lID8gZXJyLm5hbWUgOiBlcnIuZmlsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbWVzc2FnZVwiPiR7ZXJyLm1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLWVycm9yXCI+PGEgY2xhc3M9XCJlcnJvci1saW5rXCIgaHJlZj1cIlwiPiR7ZXJyLmVycm9yID8gZXJyLmVycm9yLm1lc3NhZ2UgOiBcIlwifTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yLnF1ZXJ5U2VsZWN0b3JBbGwoXCJhXCIpLmZvckVhY2goZWwgPT4gZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgTG9nZ2VyLnN0YWNrdHJhY2UoXCJBZGRvbkVycm9yXCIsIGBFcnJvciBkZXRhaWxzIGZvciAke2Vyci5uYW1lID8gZXJyLm5hbWUgOiBlcnIuZmlsZX0uYCwgZXJyLmVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0YWJzID0gW2dlbmVyYXRlVGFiKHBsdWdpbkVycm9ycyksIGdlbmVyYXRlVGFiKHRoZW1lRXJyb3JzKV07XHJcblxyXG4gICAgICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFiLWJhci1pdGVtXCIpLmZvckVhY2goZWwgPT4gZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLnRhYi1iYXItaXRlbS5zZWxlY3RlZFwiKTtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSBET00ucmVtb3ZlQ2xhc3Moc2VsZWN0ZWQsIFwic2VsZWN0ZWRcIik7XHJcbiAgICAgICAgICAgIERPTS5hZGRDbGFzcyhlLnRhcmdldCwgXCJzZWxlY3RlZFwiKTtcclxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsZXIgPSBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLnNjcm9sbGVyXCIpO1xyXG4gICAgICAgICAgICBzY3JvbGxlci5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgICAgICBzY3JvbGxlci5hcHBlbmQodGFic1tET00uaW5kZXgoZS50YXJnZXQpXSk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLmZvb3RlciBidXR0b25cIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgRE9NLmFkZENsYXNzKG1vZGFsLCBcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLmJkLWJhY2tkcm9wXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIERPTS5hZGRDbGFzcyhtb2RhbCwgXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgRE9NLnF1ZXJ5KFwiI2FwcC1tb3VudFwiKS5hcHBlbmQobW9kYWwpO1xyXG4gICAgICAgIGlmIChwbHVnaW5FcnJvcnMubGVuZ3RoKSBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLnRhYi1iYXItaXRlbVwiKS5jbGljaygpO1xyXG4gICAgICAgIGVsc2UgbW9kYWwucXVlcnlTZWxlY3RvckFsbChcIi50YWItYmFyLWl0ZW1cIilbMV0uY2xpY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc2hvd0NoYW5nZWxvZ01vZGFsKG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IE1vZGFsU3RhY2sgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicHVzaFwiLCBcInVwZGF0ZVwiLCBcInBvcFwiLCBcInBvcFdpdGhLZXlcIik7XHJcbiAgICAgICAgY29uc3QgQ2hhbmdlbG9nQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJmaXhlZFwiLCBcImltcHJvdmVkXCIpO1xyXG4gICAgICAgIGNvbnN0IFRleHRFbGVtZW50ID0gV2VicGFja01vZHVsZXMuZmluZEJ5RGlzcGxheU5hbWUoXCJUZXh0XCIpO1xyXG4gICAgICAgIGNvbnN0IEZsZXhDaGlsZCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJDaGlsZFwiKTtcclxuICAgICAgICBjb25zdCBUaXRsZXMgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiVGFnc1wiLCBcImRlZmF1bHRcIik7XHJcbiAgICAgICAgY29uc3QgQ2hhbmdlbG9nID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5kZWZhdWx0UHJvcHMuc2VsZWN0YWJsZSA9PSBmYWxzZSk7XHJcbiAgICAgICAgY29uc3QgTWFya2Rvd25QYXJzZXIgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZGVmYXVsdFJ1bGVzXCIsIFwicGFyc2VcIik7XHJcbiAgICAgICAgaWYgKCFDaGFuZ2Vsb2cgfHwgIU1vZGFsU3RhY2sgfHwgIUNoYW5nZWxvZ0NsYXNzZXMgfHwgIVRleHRFbGVtZW50IHx8ICFGbGV4Q2hpbGQgfHwgIVRpdGxlcyB8fCAhTWFya2Rvd25QYXJzZXIpIHJldHVybiBMb2dnZXIud2FybihcIk1vZGFsc1wiLCBcInNob3dDaGFuZ2Vsb2dNb2RhbCBtaXNzaW5nIG1vZHVsZXNcIik7XHJcbiAgICBcclxuICAgICAgICBjb25zdCB7aW1hZ2UgPSBcImh0dHBzOi8vcmVwb3NpdG9yeS1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzEwNTQ3MzUzNy85NTdiNTQ4MC03YzI2LTExZTktODQwMS01MGZhODIwY2JhZTVcIiwgZGVzY3JpcHRpb24gPSBcIlwiLCBjaGFuZ2VzID0gW10sIHRpdGxlID0gXCJCYW5kYWdlZEJEXCIsIHN1YnRpdGxlID0gYHYke0NvbmZpZy5iYmRWZXJzaW9ufWAsIGZvb3Rlcn0gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IGNlID0gUmVhY3QuY3JlYXRlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBjaGFuZ2Vsb2dJdGVtcyA9IFtjZShcImltZ1wiLCB7c3JjOiBpbWFnZX0pXTtcclxuICAgICAgICBpZiAoZGVzY3JpcHRpb24pIGNoYW5nZWxvZ0l0ZW1zLnB1c2goY2UoXCJwXCIsIG51bGwsIE1hcmtkb3duUGFyc2VyLnBhcnNlKGRlc2NyaXB0aW9uKSkpO1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgY2hhbmdlcy5sZW5ndGg7IGMrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IGNoYW5nZXNbY107XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBDaGFuZ2Vsb2dDbGFzc2VzW2VudHJ5LnR5cGVdID8gQ2hhbmdlbG9nQ2xhc3Nlc1tlbnRyeS50eXBlXSA6IENoYW5nZWxvZ0NsYXNzZXMuYWRkZWQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IGMgPT0gMCA/IENoYW5nZWxvZ0NsYXNzZXMubWFyZ2luVG9wIDogXCJcIjtcclxuICAgICAgICAgICAgY2hhbmdlbG9nSXRlbXMucHVzaChjZShcImgxXCIsIHtjbGFzc05hbWU6IGAke3R5cGV9ICR7bWFyZ2lufWAsfSwgZW50cnkudGl0bGUpKTtcclxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IGNlKFwidWxcIiwgbnVsbCwgZW50cnkuaXRlbXMubWFwKGkgPT4gY2UoXCJsaVwiLCBudWxsLCBNYXJrZG93blBhcnNlci5wYXJzZShpKSkpKTtcclxuICAgICAgICAgICAgY2hhbmdlbG9nSXRlbXMucHVzaChsaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVuZGVySGVhZGVyID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjZShGbGV4Q2hpbGQuQ2hpbGQsIHtncm93OiAxLCBzaHJpbms6IDF9LFxyXG4gICAgICAgICAgICAgICAgY2UoVGl0bGVzLmRlZmF1bHQsIHt0YWc6IFRpdGxlcy5UYWdzLkg0fSwgdGl0bGUpLFxyXG4gICAgICAgICAgICAgICAgY2UoVGV4dEVsZW1lbnQsIHtzaXplOiBUZXh0RWxlbWVudC5TaXplcy5TTUFMTCwgY29sb3I6IFRleHRFbGVtZW50LkNvbG9ycy5TVEFOREFSRCwgY2xhc3NOYW1lOiBDaGFuZ2Vsb2dDbGFzc2VzLmRhdGV9LCBzdWJ0aXRsZSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9O1xyXG4gICAgXHJcbiAgICAgICAgY29uc3QgcmVuZGVyRm9vdGVyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBBbmNob3IgPSBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUobSA9PiBtLmRpc3BsYXlOYW1lID09IFwiQW5jaG9yXCIpO1xyXG4gICAgICAgICAgICBjb25zdCBBbmNob3JDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFuY2hvclVuZGVybGluZU9uSG92ZXJcIikgfHwge2FuY2hvcjogXCJhbmNob3ItM1otOEJiXCIsIGFuY2hvclVuZGVybGluZU9uSG92ZXI6IFwiYW5jaG9yVW5kZXJsaW5lT25Ib3Zlci0yRVNIUUJcIn07XHJcbiAgICAgICAgICAgIGNvbnN0IGpvaW5TdXBwb3J0U2VydmVyID0gKGNsaWNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjbGljay5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgY2xpY2suc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBNb2RhbFN0YWNrLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgRGlzY29yZE1vZHVsZXMuSW52aXRlQWN0aW9ucy5hY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsKFwiMkhTY204alwiKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY29uc3Qgc3VwcG9ydExpbmsgPSBBbmNob3IgPyBjZShBbmNob3IsIHtvbkNsaWNrOiBqb2luU3VwcG9ydFNlcnZlcn0sIFwiSm9pbiBvdXIgRGlzY29yZCBTZXJ2ZXIuXCIpIDogY2UoXCJhXCIsIHtjbGFzc05hbWU6IGAke0FuY2hvckNsYXNzZXMuYW5jaG9yfSAke0FuY2hvckNsYXNzZXMuYW5jaG9yVW5kZXJsaW5lT25Ib3Zlcn1gLCBvbkNsaWNrOiBqb2luU3VwcG9ydFNlcnZlcn0sIFwiSm9pbiBvdXIgRGlzY29yZCBTZXJ2ZXIuXCIpO1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Rm9vdGVyID0gY2UoVGV4dEVsZW1lbnQsIHtzaXplOiBUZXh0RWxlbWVudC5TaXplcy5TTUFMTCwgY29sb3I6IFRleHRFbGVtZW50LkNvbG9ycy5TVEFOREFSRH0sIFwiTmVlZCBzdXBwb3J0PyBcIiwgc3VwcG9ydExpbmspO1xyXG4gICAgICAgICAgICByZXR1cm4gY2UoRmxleENoaWxkLkNoaWxkLCB7Z3JvdzogMSwgc2hyaW5rOiAxfSwgZm9vdGVyID8gZm9vdGVyIDogZGVmYXVsdEZvb3Rlcik7XHJcbiAgICAgICAgfTtcclxuICAgIFxyXG4gICAgICAgIHJldHVybiBNb2RhbFN0YWNrLnB1c2goQ2hhbmdlbG9nLCB7XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZTogQ2hhbmdlbG9nQ2xhc3Nlcy5jb250YWluZXIsXHJcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIG9uU2Nyb2xsOiBfID0+IF8sXHJcbiAgICAgICAgICAgIG9uQ2xvc2U6IF8gPT4gXyxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyOiByZW5kZXJIZWFkZXIsXHJcbiAgICAgICAgICAgIHJlbmRlckZvb3RlcjogcmVuZGVyRm9vdGVyLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hhbmdlbG9nSXRlbXNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/modals.js\n");
/***/ }),
@@ -983,7 +982,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 ServerCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ServerCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n if (!this.props.server.iconUrl) this.props.server.iconUrl = this.props.defaultAvatar();\n this.state = {\n imageError: false,\n joined: this.props.joined\n };\n this.join = this.join.bind(this);\n this.handleError = this.handleError.bind(this);\n }\n\n render() {\n const {\n server\n } = this.props;\n const buttonText = typeof this.state.joined == \"string\" ? `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.joining}...` : this.state.joined ? modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.joined : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.join;\n const buttonClass = `bd-button${this.state.joined == true ? \" bd-button-success\" : \"\"}`;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-server-card${server.pinned ? \" bd-server-card-pinned\" : \"\"}`\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"img\", {\n className: \"bd-server-image\",\n src: server.iconUrl,\n onError: this.handleError\n }), \",\", /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-content\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"bd-server-name\"\n }, server.name), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"bd-server-member-count\"\n }, server.members, \" Members\")), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-scroller-wrap bd-server-description-container\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-scroller bd-server-description\"\n }, server.description)), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-footer\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-tags\"\n }, server.categories.join(\", \")), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: buttonClass,\n onClick: this.join\n }, buttonText))));\n }\n\n handleError() {\n this.props.server.iconUrl = this.props.defaultAvatar();\n this.setState({\n imageError: true\n });\n }\n\n async join() {\n if (this.state.joined) return;\n this.setState({\n joined: \"joining\"\n });\n const didJoin = await this.props.join(this.props.server.identifier, this.props.server.nativejoin);\n this.setState({\n joined: didJoin\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvY2FyZC5qc3g/NzYwMiJdLCJuYW1lcyI6WyJTZXJ2ZXJDYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2VydmVyIiwiaWNvblVybCIsImRlZmF1bHRBdmF0YXIiLCJzdGF0ZSIsImltYWdlRXJyb3IiLCJqb2luZWQiLCJqb2luIiwiYmluZCIsImhhbmRsZUVycm9yIiwicmVuZGVyIiwiYnV0dG9uVGV4dCIsIlN0cmluZ3MiLCJQdWJsaWNTZXJ2ZXJzIiwiam9pbmluZyIsImJ1dHRvbkNsYXNzIiwicGlubmVkIiwibmFtZSIsIm1lbWJlcnMiLCJkZXNjcmlwdGlvbiIsImNhdGVnb3JpZXMiLCJzZXRTdGF0ZSIsImRpZEpvaW4iLCJpZGVudGlmaWVyIiwibmF0aXZlam9pbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxVQUFOLFNBQXlCQyw2Q0FBSyxDQUFDQyxTQUEvQixDQUF5QztBQUNwREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsUUFBSSxDQUFDLEtBQUtBLEtBQUwsQ0FBV0MsTUFBWCxDQUFrQkMsT0FBdkIsRUFBZ0MsS0FBS0YsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUFsQixHQUE0QixLQUFLRixLQUFMLENBQVdHLGFBQVgsRUFBNUI7QUFDaEMsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGdCQUFVLEVBQUUsS0FESDtBQUVUQyxZQUFNLEVBQUUsS0FBS04sS0FBTCxDQUFXTTtBQUZWLEtBQWI7QUFJQSxTQUFLQyxJQUFMLEdBQVksS0FBS0EsSUFBTCxDQUFVQyxJQUFWLENBQWUsSUFBZixDQUFaO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixLQUFLQSxXQUFMLENBQWlCRCxJQUFqQixDQUFzQixJQUF0QixDQUFuQjtBQUNIOztBQUVERSxRQUFNLEdBQUc7QUFDTCxVQUFNO0FBQUNUO0FBQUQsUUFBVyxLQUFLRCxLQUF0QjtBQUNBLFVBQU1XLFVBQVUsR0FBRyxPQUFPLEtBQUtQLEtBQUwsQ0FBV0UsTUFBbEIsSUFBNkIsUUFBN0IsR0FBeUMsR0FBRU0sK0NBQU8sQ0FBQ0MsYUFBUixDQUFzQkMsT0FBUSxLQUF6RSxHQUFnRixLQUFLVixLQUFMLENBQVdFLE1BQVgsR0FBb0JNLCtDQUFPLENBQUNDLGFBQVIsQ0FBc0JQLE1BQTFDLEdBQW1ETSwrQ0FBTyxDQUFDQyxhQUFSLENBQXNCTixJQUE1SztBQUNBLFVBQU1RLFdBQVcsR0FBSSxZQUFXLEtBQUtYLEtBQUwsQ0FBV0UsTUFBWCxJQUFxQixJQUFyQixHQUE0QixvQkFBNUIsR0FBbUQsRUFBRyxFQUF0RjtBQUNBLHdCQUFPO0FBQUssZUFBUyxFQUFHLGlCQUFnQkwsTUFBTSxDQUFDZSxNQUFQLEdBQWdCLHdCQUFoQixHQUEyQyxFQUFHO0FBQS9FLG9CQUNDO0FBQUssZUFBUyxFQUFDLGlCQUFmO0FBQWlDLFNBQUcsRUFBRWYsTUFBTSxDQUFDQyxPQUE3QztBQUFzRCxhQUFPLEVBQUUsS0FBS087QUFBcEUsTUFERCxvQkFFQztBQUFLLGVBQVMsRUFBQztBQUFmLG9CQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsb0JBQ0k7QUFBSSxlQUFTLEVBQUM7QUFBZCxPQUFnQ1IsTUFBTSxDQUFDZ0IsSUFBdkMsQ0FESixlQUVJO0FBQUksZUFBUyxFQUFDO0FBQWQsT0FBd0NoQixNQUFNLENBQUNpQixPQUEvQyxhQUZKLENBREosZUFLSTtBQUFLLGVBQVMsRUFBQztBQUFmLG9CQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FBb0RqQixNQUFNLENBQUNrQixXQUEzRCxDQURKLENBTEosZUFRSTtBQUFLLGVBQVMsRUFBQztBQUFmLG9CQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FBaUNsQixNQUFNLENBQUNtQixVQUFQLENBQWtCYixJQUFsQixDQUF1QixJQUF2QixDQUFqQyxDQURKLGVBRUk7QUFBUSxVQUFJLEVBQUMsUUFBYjtBQUFzQixlQUFTLEVBQUVRLFdBQWpDO0FBQThDLGFBQU8sRUFBRSxLQUFLUjtBQUE1RCxPQUFtRUksVUFBbkUsQ0FGSixDQVJKLENBRkQsQ0FBUDtBQWdCSDs7QUFFREYsYUFBVyxHQUFHO0FBQ1YsU0FBS1QsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUFsQixHQUE0QixLQUFLRixLQUFMLENBQVdHLGFBQVgsRUFBNUI7QUFDQSxTQUFLa0IsUUFBTCxDQUFjO0FBQUNoQixnQkFBVSxFQUFFO0FBQWIsS0FBZDtBQUNIOztBQUVELFFBQU1FLElBQU4sR0FBYTtBQUNULFFBQUksS0FBS0gsS0FBTCxDQUFXRSxNQUFmLEVBQXVCO0FBQ3ZCLFNBQUtlLFFBQUwsQ0FBYztBQUFDZixZQUFNLEVBQUU7QUFBVCxLQUFkO0FBQ0EsVUFBTWdCLE9BQU8sR0FBRyxNQUFNLEtBQUt0QixLQUFMLENBQVdPLElBQVgsQ0FBZ0IsS0FBS1AsS0FBTCxDQUFXQyxNQUFYLENBQWtCc0IsVUFBbEMsRUFBOEMsS0FBS3ZCLEtBQUwsQ0FBV0MsTUFBWCxDQUFrQnVCLFVBQWhFLENBQXRCO0FBQ0EsU0FBS0gsUUFBTCxDQUFjO0FBQUNmLFlBQU0sRUFBRWdCO0FBQVQsS0FBZDtBQUNIOztBQTVDbUQiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9jYXJkLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXJ2ZXJDYXJkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5zZXJ2ZXIuaWNvblVybCkgdGhpcy5wcm9wcy5zZXJ2ZXIuaWNvblVybCA9IHRoaXMucHJvcHMuZGVmYXVsdEF2YXRhcigpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGltYWdlRXJyb3I6IGZhbHNlLFxyXG4gICAgICAgICAgICBqb2luZWQ6IHRoaXMucHJvcHMuam9pbmVkXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmpvaW4gPSB0aGlzLmpvaW4uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmhhbmRsZUVycm9yID0gdGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2VydmVyfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgYnV0dG9uVGV4dCA9IHR5cGVvZih0aGlzLnN0YXRlLmpvaW5lZCkgPT0gXCJzdHJpbmdcIiA/IGAke1N0cmluZ3MuUHVibGljU2VydmVycy5qb2luaW5nfS4uLmAgOiB0aGlzLnN0YXRlLmpvaW5lZCA/IFN0cmluZ3MuUHVibGljU2VydmVycy5qb2luZWQgOiBTdHJpbmdzLlB1YmxpY1NlcnZlcnMuam9pbjtcclxuICAgICAgICBjb25zdCBidXR0b25DbGFzcyA9IGBiZC1idXR0b24ke3RoaXMuc3RhdGUuam9pbmVkID09IHRydWUgPyBcIiBiZC1idXR0b24tc3VjY2Vzc1wiIDogXCJcIn1gO1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlcnZlci1jYXJkJHtzZXJ2ZXIucGlubmVkID8gXCIgYmQtc2VydmVyLWNhcmQtcGlubmVkXCIgOiBcIlwifWB9PlxyXG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJiZC1zZXJ2ZXItaW1hZ2VcIiBzcmM9e3NlcnZlci5pY29uVXJsfSBvbkVycm9yPXt0aGlzLmhhbmRsZUVycm9yfSAvPixcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VydmVyLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlcnZlci1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzTmFtZT1cImJkLXNlcnZlci1uYW1lXCI+e3NlcnZlci5uYW1lfTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzc05hbWU9XCJiZC1zZXJ2ZXItbWVtYmVyLWNvdW50XCI+e3NlcnZlci5tZW1iZXJzfSBNZW1iZXJzPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zY3JvbGxlci13cmFwIGJkLXNlcnZlci1kZXNjcmlwdGlvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zY3JvbGxlciBiZC1zZXJ2ZXItZGVzY3JpcHRpb25cIj57c2VydmVyLmRlc2NyaXB0aW9ufTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VydmVyLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlcnZlci10YWdzXCI+e3NlcnZlci5jYXRlZ29yaWVzLmpvaW4oXCIsIFwiKX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPXtidXR0b25DbGFzc30gb25DbGljaz17dGhpcy5qb2lufT57YnV0dG9uVGV4dH08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXJyb3IoKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5zZXJ2ZXIuaWNvblVybCA9IHRoaXMucHJvcHMuZGVmYXVsdEF2YXRhcigpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlRXJyb3I6IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBqb2luKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmpvaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2pvaW5lZDogXCJqb2luaW5nXCJ9KTtcclxuICAgICAgICBjb25zdCBkaWRKb2luID0gYXdhaXQgdGhpcy5wcm9wcy5qb2luKHRoaXMucHJvcHMuc2VydmVyLmlkZW50aWZpZXIsIHRoaXMucHJvcHMuc2VydmVyLm5hdGl2ZWpvaW4pO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2pvaW5lZDogZGlkSm9pbn0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/publicservers/card.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ServerCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ServerCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n if (!this.props.server.iconUrl) this.props.server.iconUrl = this.props.defaultAvatar();\n this.state = {\n imageError: false,\n joined: this.props.joined\n };\n this.join = this.join.bind(this);\n this.handleError = this.handleError.bind(this);\n }\n\n render() {\n const {\n server\n } = this.props;\n const buttonText = typeof this.state.joined == \"string\" ? `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.joining}...` : this.state.joined ? modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.joined : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.join;\n const buttonClass = `bd-button${this.state.joined == true ? \" bd-button-success\" : \"\"}`;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-server-card${server.pinned ? \" bd-server-card-pinned\" : \"\"}`\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"img\", {\n className: \"bd-server-image\",\n src: server.iconUrl,\n onError: this.handleError\n }), \",\", /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-content\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"bd-server-name\"\n }, server.name), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"bd-server-member-count\"\n }, server.members, \" Members\")), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-scroller-wrap bd-server-description-container\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-scroller bd-server-description\"\n }, server.description)), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-footer\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-tags\"\n }, server.categories.join(\", \")), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: buttonClass,\n onClick: this.join\n }, buttonText))));\n }\n\n handleError() {\n this.props.server.iconUrl = this.props.defaultAvatar();\n this.setState({\n imageError: true\n });\n }\n\n async join() {\n if (this.state.joined) return;\n this.setState({\n joined: \"joining\"\n });\n const didJoin = await this.props.join(this.props.server.identifier, this.props.server.nativejoin);\n this.setState({\n joined: didJoin\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvcHVibGljc2VydmVycy9jYXJkLmpzeD83NjAyIl0sIm5hbWVzIjpbIlNlcnZlckNhcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZXJ2ZXIiLCJpY29uVXJsIiwiZGVmYXVsdEF2YXRhciIsInN0YXRlIiwiaW1hZ2VFcnJvciIsImpvaW5lZCIsImpvaW4iLCJiaW5kIiwiaGFuZGxlRXJyb3IiLCJyZW5kZXIiLCJidXR0b25UZXh0IiwiU3RyaW5ncyIsIlB1YmxpY1NlcnZlcnMiLCJqb2luaW5nIiwiYnV0dG9uQ2xhc3MiLCJwaW5uZWQiLCJuYW1lIiwibWVtYmVycyIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcmllcyIsInNldFN0YXRlIiwiZGlkSm9pbiIsImlkZW50aWZpZXIiLCJuYXRpdmVqb2luIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLFVBQU4sU0FBeUJDLDZDQUFLLENBQUNDLFNBQS9CLENBQXlDO0FBQ3BEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxRQUFJLENBQUMsS0FBS0EsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUF2QixFQUFnQyxLQUFLRixLQUFMLENBQVdDLE1BQVgsQ0FBa0JDLE9BQWxCLEdBQTRCLEtBQUtGLEtBQUwsQ0FBV0csYUFBWCxFQUE1QjtBQUNoQyxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsZ0JBQVUsRUFBRSxLQURIO0FBRVRDLFlBQU0sRUFBRSxLQUFLTixLQUFMLENBQVdNO0FBRlYsS0FBYjtBQUlBLFNBQUtDLElBQUwsR0FBWSxLQUFLQSxJQUFMLENBQVVDLElBQVYsQ0FBZSxJQUFmLENBQVo7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLEtBQUtBLFdBQUwsQ0FBaUJELElBQWpCLENBQXNCLElBQXRCLENBQW5CO0FBQ0g7O0FBRURFLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ1Q7QUFBRCxRQUFXLEtBQUtELEtBQXRCO0FBQ0EsVUFBTVcsVUFBVSxHQUFHLE9BQU8sS0FBS1AsS0FBTCxDQUFXRSxNQUFsQixJQUE2QixRQUE3QixHQUF5QyxHQUFFTSwrQ0FBTyxDQUFDQyxhQUFSLENBQXNCQyxPQUFRLEtBQXpFLEdBQWdGLEtBQUtWLEtBQUwsQ0FBV0UsTUFBWCxHQUFvQk0sK0NBQU8sQ0FBQ0MsYUFBUixDQUFzQlAsTUFBMUMsR0FBbURNLCtDQUFPLENBQUNDLGFBQVIsQ0FBc0JOLElBQTVLO0FBQ0EsVUFBTVEsV0FBVyxHQUFJLFlBQVcsS0FBS1gsS0FBTCxDQUFXRSxNQUFYLElBQXFCLElBQXJCLEdBQTRCLG9CQUE1QixHQUFtRCxFQUFHLEVBQXRGO0FBQ0Esd0JBQU87QUFBSyxlQUFTLEVBQUcsaUJBQWdCTCxNQUFNLENBQUNlLE1BQVAsR0FBZ0Isd0JBQWhCLEdBQTJDLEVBQUc7QUFBL0Usb0JBQ0M7QUFBSyxlQUFTLEVBQUMsaUJBQWY7QUFBaUMsU0FBRyxFQUFFZixNQUFNLENBQUNDLE9BQTdDO0FBQXNELGFBQU8sRUFBRSxLQUFLTztBQUFwRSxNQURELG9CQUVDO0FBQUssZUFBUyxFQUFDO0FBQWYsb0JBQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixvQkFDSTtBQUFJLGVBQVMsRUFBQztBQUFkLE9BQWdDUixNQUFNLENBQUNnQixJQUF2QyxDQURKLGVBRUk7QUFBSSxlQUFTLEVBQUM7QUFBZCxPQUF3Q2hCLE1BQU0sQ0FBQ2lCLE9BQS9DLGFBRkosQ0FESixlQUtJO0FBQUssZUFBUyxFQUFDO0FBQWYsb0JBQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUFvRGpCLE1BQU0sQ0FBQ2tCLFdBQTNELENBREosQ0FMSixlQVFJO0FBQUssZUFBUyxFQUFDO0FBQWYsb0JBQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUFpQ2xCLE1BQU0sQ0FBQ21CLFVBQVAsQ0FBa0JiLElBQWxCLENBQXVCLElBQXZCLENBQWpDLENBREosZUFFSTtBQUFRLFVBQUksRUFBQyxRQUFiO0FBQXNCLGVBQVMsRUFBRVEsV0FBakM7QUFBOEMsYUFBTyxFQUFFLEtBQUtSO0FBQTVELE9BQW1FSSxVQUFuRSxDQUZKLENBUkosQ0FGRCxDQUFQO0FBZ0JIOztBQUVERixhQUFXLEdBQUc7QUFDVixTQUFLVCxLQUFMLENBQVdDLE1BQVgsQ0FBa0JDLE9BQWxCLEdBQTRCLEtBQUtGLEtBQUwsQ0FBV0csYUFBWCxFQUE1QjtBQUNBLFNBQUtrQixRQUFMLENBQWM7QUFBQ2hCLGdCQUFVLEVBQUU7QUFBYixLQUFkO0FBQ0g7O0FBRUQsUUFBTUUsSUFBTixHQUFhO0FBQ1QsUUFBSSxLQUFLSCxLQUFMLENBQVdFLE1BQWYsRUFBdUI7QUFDdkIsU0FBS2UsUUFBTCxDQUFjO0FBQUNmLFlBQU0sRUFBRTtBQUFULEtBQWQ7QUFDQSxVQUFNZ0IsT0FBTyxHQUFHLE1BQU0sS0FBS3RCLEtBQUwsQ0FBV08sSUFBWCxDQUFnQixLQUFLUCxLQUFMLENBQVdDLE1BQVgsQ0FBa0JzQixVQUFsQyxFQUE4QyxLQUFLdkIsS0FBTCxDQUFXQyxNQUFYLENBQWtCdUIsVUFBaEUsQ0FBdEI7QUFDQSxTQUFLSCxRQUFMLENBQWM7QUFBQ2YsWUFBTSxFQUFFZ0I7QUFBVCxLQUFkO0FBQ0g7O0FBNUNtRCIsImZpbGUiOiIuL3NyYy91aS9wdWJsaWNzZXJ2ZXJzL2NhcmQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlckNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsKSB0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsID0gdGhpcy5wcm9wcy5kZWZhdWx0QXZhdGFyKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgaW1hZ2VFcnJvcjogZmFsc2UsXHJcbiAgICAgICAgICAgIGpvaW5lZDogdGhpcy5wcm9wcy5qb2luZWRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuam9pbiA9IHRoaXMuam9pbi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtzZXJ2ZXJ9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBidXR0b25UZXh0ID0gdHlwZW9mKHRoaXMuc3RhdGUuam9pbmVkKSA9PSBcInN0cmluZ1wiID8gYCR7U3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmpvaW5pbmd9Li4uYCA6IHRoaXMuc3RhdGUuam9pbmVkID8gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmpvaW5lZCA6IFN0cmluZ3MuUHVibGljU2VydmVycy5qb2luO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbkNsYXNzID0gYGJkLWJ1dHRvbiR7dGhpcy5zdGF0ZS5qb2luZWQgPT0gdHJ1ZSA/IFwiIGJkLWJ1dHRvbi1zdWNjZXNzXCIgOiBcIlwifWA7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtgYmQtc2VydmVyLWNhcmQke3NlcnZlci5waW5uZWQgPyBcIiBiZC1zZXJ2ZXItY2FyZC1waW5uZWRcIiA6IFwiXCJ9YH0+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImJkLXNlcnZlci1pbWFnZVwiIHNyYz17c2VydmVyLmljb25Vcmx9IG9uRXJyb3I9e3RoaXMuaGFuZGxlRXJyb3J9IC8+LFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZXJ2ZXItY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VydmVyLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3NOYW1lPVwiYmQtc2VydmVyLW5hbWVcIj57c2VydmVyLm5hbWV9PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzTmFtZT1cImJkLXNlcnZlci1tZW1iZXItY291bnRcIj57c2VydmVyLm1lbWJlcnN9IE1lbWJlcnM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNjcm9sbGVyLXdyYXAgYmQtc2VydmVyLWRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNjcm9sbGVyIGJkLXNlcnZlci1kZXNjcmlwdGlvblwiPntzZXJ2ZXIuZGVzY3JpcHRpb259PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZXJ2ZXItZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VydmVyLXRhZ3NcIj57c2VydmVyLmNhdGVnb3JpZXMuam9pbihcIiwgXCIpfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9e2J1dHRvbkNsYXNzfSBvbkNsaWNrPXt0aGlzLmpvaW59PntidXR0b25UZXh0fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFcnJvcigpIHtcclxuICAgICAgICB0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsID0gdGhpcy5wcm9wcy5kZWZhdWx0QXZhdGFyKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aW1hZ2VFcnJvcjogdHJ1ZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGpvaW4oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuam9pbmVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7am9pbmVkOiBcImpvaW5pbmdcIn0pO1xyXG4gICAgICAgIGNvbnN0IGRpZEpvaW4gPSBhd2FpdCB0aGlzLnByb3BzLmpvaW4odGhpcy5wcm9wcy5zZXJ2ZXIuaWRlbnRpZmllciwgdGhpcy5wcm9wcy5zZXJ2ZXIubmF0aXZlam9pbik7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7am9pbmVkOiBkaWRKb2lufSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/publicservers/card.jsx\n");
/***/ }),
@@ -995,7 +994,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServers; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.jsx\");\n/* harmony import */ var _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../structs/psconnection */ \"./src/structs/psconnection.js\");\n/* harmony import */ var _settings_components_search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/components/search */ \"./src/ui/settings/components/search.jsx\");\n\n\n\n\n\nconst SettingsView = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"SettingsView\");\nclass PublicServers extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n get categoryButtons() {\n return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n }\n\n constructor(props) {\n super(props);\n this.state = {\n category: \"All\",\n query: \"\",\n loading: true,\n user: null,\n results: {\n servers: [],\n size: 0,\n from: 0,\n total: 0,\n next: null\n }\n };\n this.changeCategory = this.changeCategory.bind(this);\n this.searchKeyDown = this.searchKeyDown.bind(this);\n this.connect = this.connect.bind(this);\n this.loadNextPage = this.loadNextPage.bind(this);\n this.join = this.join.bind(this);\n }\n\n componentDidMount() {\n this.checkConnection();\n }\n\n async checkConnection() {\n const userData = await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].checkConnection();\n\n if (!userData) {\n return this.setState({\n loading: true,\n user: null\n });\n }\n\n this.setState({\n user: userData\n });\n this.search();\n }\n\n async connect() {\n await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].connect();\n this.checkConnection();\n }\n\n searchKeyDown(e) {\n if (this.state.loading || e.which !== 13) return;\n this.search(e.target.value);\n }\n\n async search(term = \"\", from = 0) {\n this.setState({\n query: term,\n loading: true\n });\n const results = await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].search({\n term,\n category: this.state.category == \"All\" ? \"\" : this.state.category,\n from\n });\n\n if (!results) {\n return this.setState({\n results: {\n servers: [],\n size: 0,\n from: 0,\n total: 0,\n next: null\n }\n });\n }\n\n this.setState({\n loading: false,\n results\n });\n }\n\n async changeCategory(id) {\n if (this.state.loading) return;\n await new Promise(resolve => this.setState({\n category: id\n }, resolve));\n this.search();\n }\n\n loadNextPage() {\n if (this.state.loading) return;\n this.search(this.state.query, this.state.results.next);\n }\n\n async join(id, native = false) {\n return await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].join(id, native);\n }\n\n get searchBox() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_components_search__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onKeyDown: this.searchKeyDown,\n placeholder: `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.search}...`\n });\n }\n\n get title() {\n if (!this.state.user) return modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.notConnected;\n if (this.state.loading) return `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loading}...`;\n const start = this.state.results.from + 1;\n const total = this.state.results.total;\n const end = this.state.results.next ? this.state.results.next : total;\n let title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.results.format({\n start,\n end,\n total,\n category: this.state.category\n });\n if (this.state.query) title += \" \" + modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.query.format({\n query: this.state.query\n });\n return title;\n }\n\n get content() {\n const connectButton = this.state.user ? null : {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.connect,\n onClick: this.connect\n };\n const pinned = this.state.category == \"All\" || !this.state.user ? this.bdServer : null;\n const servers = this.state.results.servers.map(server => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: server.identifier,\n server: server,\n joined: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasJoined(server.identifier),\n join: this.join,\n defaultAvatar: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getDefaultAvatar\n });\n });\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.title,\n button: connectButton\n }), pinned, servers, this.state.results.next ? this.nextButton : null, this.state.results.servers.length > 0 && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.title\n })];\n }\n\n get nextButton() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"bd-button bd-button-next\",\n onClick: this.loadNextPage\n }, this.state.loading ? modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loading : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loadMore);\n }\n\n get connection() {\n const {\n user\n } = this.state;\n if (!user) return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-connection\"\n });\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-connection\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-footnote\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.connection.format(user)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"bd-button bd-button-reconnect\",\n onClick: this.connect\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.reconnect));\n }\n\n get bdServer() {\n const server = {\n name: \"BetterDiscord\",\n online: \"7500+\",\n members: \"20000+\",\n categories: [\"community\", \"programming\", \"support\"],\n description: \"Official BetterDiscord server for plugins, themes, support, etc\",\n identifier: \"86004744966914048\",\n iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n nativejoin: true,\n invite_code: \"0Tmfo5ZbORCRqbAd\",\n pinned: true\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n server: server,\n pinned: true,\n joined: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasJoined(server.identifier),\n defaultAvatar: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getDefaultAvatar\n });\n }\n\n render() {\n const categories = this.categoryButtons.map(name => ({\n section: name,\n label: name,\n element: () => this.content\n }));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(SettingsView, {\n onClose: this.props.close,\n onSetSection: this.changeCategory,\n section: this.state.category,\n sections: [{\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.search\n }, {\n section: \"CUSTOM\",\n element: () => this.searchBox\n }, {\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.categories\n }, ...categories, {\n section: \"DIVIDER\"\n }, {\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n href: \"https://discordservers.com\",\n target: \"_blank\"\n }, \"DiscordServers.com\")\n }, {\n section: \"DIVIDER\"\n }, {\n section: \"CUSTOM\",\n element: () => this.connection\n }],\n theme: \"dark\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbWVudS5qcz85YWNkIl0sIm5hbWVzIjpbIlNldHRpbmdzVmlldyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlEaXNwbGF5TmFtZSIsIlB1YmxpY1NlcnZlcnMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNhdGVnb3J5QnV0dG9ucyIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImNhdGVnb3J5IiwicXVlcnkiLCJsb2FkaW5nIiwidXNlciIsInJlc3VsdHMiLCJzZXJ2ZXJzIiwic2l6ZSIsImZyb20iLCJ0b3RhbCIsIm5leHQiLCJjaGFuZ2VDYXRlZ29yeSIsImJpbmQiLCJzZWFyY2hLZXlEb3duIiwiY29ubmVjdCIsImxvYWROZXh0UGFnZSIsImpvaW4iLCJjb21wb25lbnREaWRNb3VudCIsImNoZWNrQ29ubmVjdGlvbiIsInVzZXJEYXRhIiwiQ29ubmVjdGlvbiIsInNldFN0YXRlIiwic2VhcmNoIiwiZSIsIndoaWNoIiwidGFyZ2V0IiwidmFsdWUiLCJ0ZXJtIiwiaWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsIm5hdGl2ZSIsInNlYXJjaEJveCIsIlN0cmluZ3MiLCJ0aXRsZSIsIm5vdENvbm5lY3RlZCIsInN0YXJ0IiwiZW5kIiwiZm9ybWF0IiwiY29udGVudCIsImNvbm5lY3RCdXR0b24iLCJvbkNsaWNrIiwicGlubmVkIiwiYmRTZXJ2ZXIiLCJtYXAiLCJzZXJ2ZXIiLCJjcmVhdGVFbGVtZW50IiwiU2VydmVyQ2FyZCIsImtleSIsImlkZW50aWZpZXIiLCJqb2luZWQiLCJoYXNKb2luZWQiLCJkZWZhdWx0QXZhdGFyIiwiZ2V0RGVmYXVsdEF2YXRhciIsIlNldHRpbmdzVGl0bGUiLCJ0ZXh0IiwiYnV0dG9uIiwibmV4dEJ1dHRvbiIsImxlbmd0aCIsInR5cGUiLCJjbGFzc05hbWUiLCJsb2FkTW9yZSIsImNvbm5lY3Rpb24iLCJyZWNvbm5lY3QiLCJuYW1lIiwib25saW5lIiwibWVtYmVycyIsImNhdGVnb3JpZXMiLCJkZXNjcmlwdGlvbiIsImljb25VcmwiLCJuYXRpdmVqb2luIiwiaW52aXRlX2NvZGUiLCJyZW5kZXIiLCJzZWN0aW9uIiwibGFiZWwiLCJlbGVtZW50Iiwib25DbG9zZSIsImNsb3NlIiwib25TZXRTZWN0aW9uIiwic2VjdGlvbnMiLCJocmVmIiwidGhlbWUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFlBQVksR0FBR0Msc0RBQWMsQ0FBQ0MsZ0JBQWYsQ0FBZ0MsY0FBaEMsQ0FBckI7QUFFZSxNQUFNQyxhQUFOLFNBQTRCQyw2Q0FBSyxDQUFDQyxTQUFsQyxDQUE0QztBQUV2RCxNQUFJQyxlQUFKLEdBQXNCO0FBQ2xCLFdBQU8sQ0FBQyxLQUFELEVBQVEsV0FBUixFQUFxQixXQUFyQixFQUFrQyxnQkFBbEMsRUFBb0QsWUFBcEQsRUFBa0UsV0FBbEUsRUFBK0UsZ0JBQS9FLEVBQWlHLGVBQWpHLEVBQWtILGtCQUFsSCxFQUFzSSxPQUF0SSxFQUErSSxXQUEvSSxFQUE0SixVQUE1SixFQUF3SyxhQUF4SyxFQUF1TCxPQUF2TCxDQUFQO0FBQ0g7O0FBRURDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxjQUFRLEVBQUUsS0FERDtBQUVUQyxXQUFLLEVBQUUsRUFGRTtBQUdUQyxhQUFPLEVBQUUsSUFIQTtBQUlUQyxVQUFJLEVBQUUsSUFKRztBQUtUQyxhQUFPLEVBQUU7QUFDTEMsZUFBTyxFQUFFLEVBREo7QUFFTEMsWUFBSSxFQUFFLENBRkQ7QUFHTEMsWUFBSSxFQUFFLENBSEQ7QUFJTEMsYUFBSyxFQUFFLENBSkY7QUFLTEMsWUFBSSxFQUFFO0FBTEQ7QUFMQSxLQUFiO0FBY0EsU0FBS0MsY0FBTCxHQUFzQixLQUFLQSxjQUFMLENBQW9CQyxJQUFwQixDQUF5QixJQUF6QixDQUF0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a0M7QUFDckNxRixhQUFPLEVBQUUsS0FBSzdFLEtBQUwsQ0FBVzhFLEtBRGlCO0FBRXJDQyxrQkFBWSxFQUFFLEtBQUtuRSxjQUZrQjtBQUdyQzhELGFBQU8sRUFBRSxLQUFLekUsS0FBTCxDQUFXQyxRQUhpQjtBQUlyQzhFLGNBQVEsRUFBRSxDQUNOO0FBQUNOLGVBQU8sRUFBRSxRQUFWO0FBQW9CQyxhQUFLLEVBQUV6QywrQ0FBTyxDQUFDdkMsYUFBUixDQUFzQjRCO0FBQWpELE9BRE0sRUFFTjtBQUFDbUQsZUFBTyxFQUFFLFFBQVY7QUFBb0JFLGVBQU8sRUFBRSxNQUFNLEtBQUszQztBQUF4QyxPQUZNLEVBR047QUFBQ3lDLGVBQU8sRUFBRSxRQUFWO0FBQW9CQyxhQUFLLEVBQUV6QywrQ0FBTyxDQUFDdkMsYUFBUixDQUFzQnlFO0FBQWpELE9BSE0sRUFJTixHQUFHQSxVQUpHLEVBS047QUFBQ00sZUFBTyxFQUFFO0FBQVYsT0FMTSxFQU1OO0FBQUNBLGVBQU8sRUFBRSxRQUFWO0FBQW9CQyxhQUFLLEVBQUUvRSw2Q0FBSyxDQUFDbUQsYUFBTixDQUFvQixHQUFwQixFQUF5QjtBQUFDa0MsY0FBSSxFQUFFLDRCQUFQO0FBQXFDdkQsZ0JBQU0sRUFBRTtBQUE3QyxTQUF6QixFQUFpRixvQkFBakY7QUFBM0IsT0FOTSxFQU9OO0FBQUNnRCxlQUFPLEVBQUU7QUFBVixPQVBNLEVBUU47QUFBQ0EsZUFBTyxFQUFFLFFBQVY7QUFBb0JFLGVBQU8sRUFBRSxNQUFNLEtBQUtiO0FBQXhDLE9BUk0sQ0FKMkI7QUFjckNtQixXQUFLLEVBQUU7QUFkOEIsS0FBbEMsQ0FBUDtBQWdCSDs7QUFsS3NEIiwiZmlsZSI6Ii4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbWVudS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFdlYnBhY2tNb2R1bGVzLCBTdHJpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi4vc2V0dGluZ3MvdGl0bGVcIjtcclxuaW1wb3J0IFNlcnZlckNhcmQgZnJvbSBcIi4vY2FyZFwiO1xyXG5pbXBvcnQgQ29ubmVjdGlvbiBmcm9tIFwiLi4vLi4vc3RydWN0cy9wc2Nvbm5lY3Rpb25cIjtcclxuaW1wb3J0IFNlYXJjaCBmcm9tIFwiLi4vc2V0dGluZ3MvY29tcG9uZW50cy9zZWFyY2hcIjtcclxuXHJcbmNvbnN0IFNldHRpbmdzVmlldyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJTZXR0aW5nc1ZpZXdcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQdWJsaWNTZXJ2ZXJzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBnZXQgY2F0ZWdvcnlCdXR0b25zKCkge1xyXG4gICAgICAgIHJldHVybiBbXCJBbGxcIiwgXCJGUFMgR2FtZXNcIiwgXCJNTU8gR2FtZXNcIiwgXCJTdHJhdGVneSBHYW1lc1wiLCBcIk1PQkEgR2FtZXNcIiwgXCJSUEcgR2FtZXNcIiwgXCJUYWJsZXRvcCBHYW1lc1wiLCBcIlNhbmRib3ggR2FtZXNcIiwgXCJTaW11bGF0aW9uIEdhbWVzXCIsIFwiTXVzaWNcIiwgXCJDb21tdW5pdHlcIiwgXCJMYW5ndWFnZVwiLCBcIlByb2dyYW1taW5nXCIsIFwiT3RoZXJcIl07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFwiQWxsXCIsXHJcbiAgICAgICAgICAgIHF1ZXJ5OiBcIlwiLFxyXG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICB1c2VyOiBudWxsLFxyXG4gICAgICAgICAgICByZXN1bHRzOiB7XHJcbiAgICAgICAgICAgICAgICBzZXJ2ZXJzOiBbXSxcclxuICAgICAgICAgICAgICAgIHNpemU6IDAsXHJcbiAgICAgICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICAgICAgdG90YWw6IDAsXHJcbiAgICAgICAgICAgICAgICBuZXh0OiBudWxsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmNoYW5nZUNhdGVnb3J5ID0gdGhpcy5jaGFuZ2VDYXRlZ29yeS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoS2V5RG93biA9IHRoaXMuc2VhcmNoS2V5RG93bi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCA9IHRoaXMuY29ubmVjdC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMubG9hZE5leHRQYWdlID0gdGhpcy5sb2FkTmV4dFBhZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmpvaW4gPSB0aGlzLmpvaW4uYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNoZWNrQ29ubmVjdGlvbigpIHtcclxuICAgICAgICBjb25zdCB1c2VyRGF0YSA9IGF3YWl0IENvbm5lY3Rpb24uY2hlY2tDb25uZWN0aW9uKCk7XHJcbiAgICAgICAgaWYgKCF1c2VyRGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRTdGF0ZSh7bG9hZGluZzogdHJ1ZSwgdXNlcjogbnVsbH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFN0YXRlKHt1c2VyOiB1c2VyRGF0YX0pO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY29ubmVjdCgpIHtcclxuICAgICAgICBhd2FpdCBDb25uZWN0aW9uLmNvbm5lY3QoKTtcclxuICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaEtleURvd24oZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxvYWRpbmcgfHwgZS53aGljaCAhPT0gMTMpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNlYXJjaChlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2VhcmNoKHRlcm0gPSBcIlwiLCBmcm9tID0gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3F1ZXJ5OiB0ZXJtLCBsb2FkaW5nOiB0cnVlfSk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IENvbm5lY3Rpb24uc2VhcmNoKHt0ZXJtLCBjYXRlZ29yeTogdGhpcy5zdGF0ZS5jYXRlZ29yeSA9PSBcIkFsbFwiID8gXCJcIiA6IHRoaXMuc3RhdGUuY2F0ZWdvcnksIGZyb219KTtcclxuICAgICAgICBpZiAoIXJlc3VsdHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0U3RhdGUoe3Jlc3VsdHM6IHtcclxuICAgICAgICAgICAgICAgIHNlcnZlcnM6IFtdLFxyXG4gICAgICAgICAgICAgICAgc2l6ZTogMCxcclxuICAgICAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgICAgICB0b3RhbDogMCxcclxuICAgICAgICAgICAgICAgIG5leHQ6IG51bGxcclxuICAgICAgICAgICAgfX0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtsb2FkaW5nOiBmYWxzZSwgcmVzdWx0c30pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNoYW5nZUNhdGVnb3J5KGlkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGhpcy5zZXRTdGF0ZSh7Y2F0ZWdvcnk6IGlkfSwgcmVzb2x2ZSkpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZE5leHRQYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxvYWRpbmcpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNlYXJjaCh0aGlzLnN0YXRlLnF1ZXJ5LCB0aGlzLnN0YXRlLnJlc3VsdHMubmV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgam9pbihpZCwgbmF0aXZlID0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgQ29ubmVjdGlvbi5qb2luKGlkLCBuYXRpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZWFyY2hCb3goKSB7XHJcbiAgICAgICAgcmV0dXJuIDxTZWFyY2ggb25LZXlEb3duPXt0aGlzLnNlYXJjaEtleURvd259IHBsYWNlaG9sZGVyPXtgJHtTdHJpbmdzLlB1YmxpY1NlcnZlcnMuc2VhcmNofS4uLmB9IC8+O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0aXRsZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGUudXNlcikgcmV0dXJuIFN0cmluZ3MuUHVibGljU2VydmVycy5ub3RDb25uZWN0ZWQ7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZykgcmV0dXJuIGAke1N0cmluZ3MuUHVibGljU2VydmVycy5sb2FkaW5nfS4uLmA7XHJcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXRlLnJlc3VsdHMuZnJvbSArIDE7XHJcbiAgICAgICAgY29uc3QgdG90YWwgPSB0aGlzLnN0YXRlLnJlc3VsdHMudG90YWw7XHJcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy5zdGF0ZS5yZXN1bHRzLm5leHQgPyB0aGlzLnN0YXRlLnJlc3VsdHMubmV4dCA6IHRvdGFsO1xyXG4gICAgICAgIGxldCB0aXRsZSA9IFN0cmluZ3MuUHVibGljU2VydmVycy5yZXN1bHRzLmZvcm1hdCh7c3RhcnQsIGVuZCwgdG90YWwsIGNhdGVnb3J5OiB0aGlzLnN0YXRlLmNhdGVnb3J5fSk7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUucXVlcnkpIHRpdGxlICs9IFwiIFwiICsgU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLnF1ZXJ5LmZvcm1hdCh7cXVlcnk6IHRoaXMuc3RhdGUucXVlcnl9KTtcclxuICAgICAgICByZXR1cm4gdGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgY29ubmVjdEJ1dHRvbiA9IHRoaXMuc3RhdGUudXNlciA/IG51bGwgOiB7dGl0bGU6IFN0cmluZ3MuUHVibGljU2VydmVycy5jb25uZWN0LCBvbkNsaWNrOiB0aGlzLmNvbm5lY3R9O1xyXG4gICAgICAgIGNvbnN0IHBpbm5lZCA9IHRoaXMuc3RhdGUuY2F0ZWdvcnkgPT0gXCJBbGxcIiB8fCAhdGhpcy5zdGF0ZS51c2VyID8gdGhpcy5iZFNlcnZlciA6IG51bGw7XHJcbiAgICAgICAgY29uc3Qgc2VydmVycyA9IHRoaXMuc3RhdGUucmVzdWx0cy5zZXJ2ZXJzLm1hcCgoc2VydmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNlcnZlckNhcmQsIHtrZXk6IHNlcnZlci5pZGVudGlmaWVyLCBzZXJ2ZXI6IHNlcnZlciwgam9pbmVkOiBDb25uZWN0aW9uLmhhc0pvaW5lZChzZXJ2ZXIuaWRlbnRpZmllciksIGpvaW46IHRoaXMuam9pbiwgZGVmYXVsdEF2YXRhcjogQ29ubmVjdGlvbi5nZXREZWZhdWx0QXZhdGFyfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aGlzLnRpdGxlLCBidXR0b246IGNvbm5lY3RCdXR0b259KSxcclxuICAgICAgICAgICAgcGlubmVkLFxyXG4gICAgICAgICAgICBzZXJ2ZXJzLFxyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdHMubmV4dCA/IHRoaXMubmV4dEJ1dHRvbiA6IG51bGwsXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0cy5zZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogdGhpcy50aXRsZX0pXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbmV4dEJ1dHRvbigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7dHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcImJkLWJ1dHRvbiBiZC1idXR0b24tbmV4dFwiLCBvbkNsaWNrOiB0aGlzLmxvYWROZXh0UGFnZX0sIHRoaXMuc3RhdGUubG9hZGluZyA/IFN0cmluZ3MuUHVibGljU2VydmVycy5sb2FkaW5nIDogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmxvYWRNb3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29ubmVjdGlvbigpIHtcclxuICAgICAgICBjb25zdCB7dXNlcn0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGlmICghdXNlcikgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2lkOiBcImJkLWNvbm5lY3Rpb25cIn0pO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtpZDogXCJiZC1jb25uZWN0aW9uXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmQtZm9vdG5vdGVcIn0sIFN0cmluZ3MuUHVibGljU2VydmVycy5jb25uZWN0aW9uLmZvcm1hdCh1c2VyKSksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge3R5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJiZC1idXR0b24gYmQtYnV0dG9uLXJlY29ubmVjdFwiLCBvbkNsaWNrOiB0aGlzLmNvbm5lY3R9LCBTdHJpbmdzLlB1YmxpY1NlcnZlcnMucmVjb25uZWN0KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJkU2VydmVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNlcnZlciA9IHtcclxuICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJEaXNjb3JkXCIsXHJcbiAgICAgICAgICAgIG9ubGluZTogXCI3NTAwK1wiLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBcIjIwMDAwK1wiLFxyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBbXCJjb21tdW5pdHlcIiwgXCJwcm9ncmFtbWluZ1wiLCBcInN1cHBvcnRcIl0sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk9mZmljaWFsIEJldHRlckRpc2NvcmQgc2VydmVyIGZvciBwbHVnaW5zLCB0aGVtZXMsIHN1cHBvcnQsIGV0Y1wiLFxyXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIjg2MDA0NzQ0OTY2OTE0MDQ4XCIsXHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vaWNvbnMvODYwMDQ3NDQ5NjY5MTQwNDgvMjkyZTdmNmJmZmYyYjcxZGZkMTNlNTA4YTg1OWFlZGQud2VicFwiLFxyXG4gICAgICAgICAgICBuYXRpdmVqb2luOiB0cnVlLFxyXG4gICAgICAgICAgICBpbnZpdGVfY29kZTogXCIwVG1mbzVaYk9SQ1JxYkFkXCIsXHJcbiAgICAgICAgICAgIHBpbm5lZDogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge3NlcnZlcjogc2VydmVyLCBwaW5uZWQ6IHRydWUsIGpvaW5lZDogQ29ubmVjdGlvbi5oYXNKb2luZWQoc2VydmVyLmlkZW50aWZpZXIpLCBkZWZhdWx0QXZhdGFyOiBDb25uZWN0aW9uLmdldERlZmF1bHRBdmF0YXJ9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcnlCdXR0b25zLm1hcChuYW1lID0+ICh7XHJcbiAgICAgICAgICAgICAgICBzZWN0aW9uOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50OiAoKSA9PiB0aGlzLmNvbnRlbnRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVmlldywge1xyXG4gICAgICAgICAgICBvbkNsb3NlOiB0aGlzLnByb3BzLmNsb3NlLFxyXG4gICAgICAgICAgICBvblNldFNlY3Rpb246IHRoaXMuY2hhbmdlQ2F0ZWdvcnksXHJcbiAgICAgICAgICAgIHNlY3Rpb246IHRoaXMuc3RhdGUuY2F0ZWdvcnksXHJcbiAgICAgICAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJIRUFERVJcIiwgbGFiZWw6IFN0cmluZ3MuUHVibGljU2VydmVycy5zZWFyY2h9LFxyXG4gICAgICAgICAgICAgICAge3NlY3Rpb246IFwiQ1VTVE9NXCIsIGVsZW1lbnQ6ICgpID0+IHRoaXMuc2VhcmNoQm94fSxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmNhdGVnb3JpZXN9LFxyXG4gICAgICAgICAgICAgICAgLi4uY2F0ZWdvcmllcyxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkRJVklERVJcIn0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJIRUFERVJcIiwgbGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtocmVmOiBcImh0dHBzOi8vZGlzY29yZHNlcnZlcnMuY29tXCIsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiRGlzY29yZFNlcnZlcnMuY29tXCIpfSxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkRJVklERVJcIn0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJDVVNUT01cIiwgZWxlbWVudDogKCkgPT4gdGhpcy5jb25uZWN0aW9ufVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB0aGVtZTogXCJkYXJrXCJcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/publicservers/menu.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServers; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.jsx\");\n/* harmony import */ var _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../structs/psconnection */ \"./src/structs/psconnection.js\");\n/* harmony import */ var _settings_components_search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/components/search */ \"./src/ui/settings/components/search.jsx\");\n\n\n\n\n\nconst SettingsView = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"SettingsView\");\nclass PublicServers extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n get categoryButtons() {\n return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n }\n\n constructor(props) {\n super(props);\n this.state = {\n category: \"All\",\n query: \"\",\n loading: true,\n user: null,\n results: {\n servers: [],\n size: 0,\n from: 0,\n total: 0,\n next: null\n }\n };\n this.changeCategory = this.changeCategory.bind(this);\n this.searchKeyDown = this.searchKeyDown.bind(this);\n this.connect = this.connect.bind(this);\n this.loadNextPage = this.loadNextPage.bind(this);\n this.join = this.join.bind(this);\n }\n\n componentDidMount() {\n this.checkConnection();\n }\n\n async checkConnection() {\n const userData = await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].checkConnection();\n\n if (!userData) {\n return this.setState({\n loading: true,\n user: null\n });\n }\n\n this.setState({\n user: userData\n });\n this.search();\n }\n\n async connect() {\n await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].connect();\n this.checkConnection();\n }\n\n searchKeyDown(e) {\n if (this.state.loading || e.which !== 13) return;\n this.search(e.target.value);\n }\n\n async search(term = \"\", from = 0) {\n this.setState({\n query: term,\n loading: true\n });\n const results = await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].search({\n term,\n category: this.state.category == \"All\" ? \"\" : this.state.category,\n from\n });\n\n if (!results) {\n return this.setState({\n results: {\n servers: [],\n size: 0,\n from: 0,\n total: 0,\n next: null\n }\n });\n }\n\n this.setState({\n loading: false,\n results\n });\n }\n\n async changeCategory(id) {\n if (this.state.loading) return;\n await new Promise(resolve => this.setState({\n category: id\n }, resolve));\n this.search();\n }\n\n loadNextPage() {\n if (this.state.loading) return;\n this.search(this.state.query, this.state.results.next);\n }\n\n async join(id, native = false) {\n return await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].join(id, native);\n }\n\n get searchBox() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_components_search__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onKeyDown: this.searchKeyDown,\n placeholder: `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.search}...`\n });\n }\n\n get title() {\n if (!this.state.user) return modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.notConnected;\n if (this.state.loading) return `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loading}...`;\n const start = this.state.results.from + 1;\n const total = this.state.results.total;\n const end = this.state.results.next ? this.state.results.next : total;\n let title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.results.format({\n start,\n end,\n total,\n category: this.state.category\n });\n if (this.state.query) title += \" \" + modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.query.format({\n query: this.state.query\n });\n return title;\n }\n\n get content() {\n const connectButton = this.state.user ? null : {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.connect,\n onClick: this.connect\n };\n const pinned = this.state.category == \"All\" || !this.state.user ? this.bdServer : null;\n const servers = this.state.results.servers.map(server => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: server.identifier,\n server: server,\n joined: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasJoined(server.identifier),\n join: this.join,\n defaultAvatar: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getDefaultAvatar\n });\n });\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.title,\n button: connectButton\n }), pinned, servers, this.state.results.next ? this.nextButton : null, this.state.results.servers.length > 0 && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.title\n })];\n }\n\n get nextButton() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"bd-button bd-button-next\",\n onClick: this.loadNextPage\n }, this.state.loading ? modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loading : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loadMore);\n }\n\n get connection() {\n const {\n user\n } = this.state;\n if (!user) return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-connection\"\n });\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-connection\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-footnote\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.connection.format(user)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"bd-button bd-button-reconnect\",\n onClick: this.connect\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.reconnect));\n }\n\n get bdServer() {\n const server = {\n name: \"BetterDiscord\",\n online: \"7500+\",\n members: \"20000+\",\n categories: [\"community\", \"programming\", \"support\"],\n description: \"Official BetterDiscord server for plugins, themes, support, etc\",\n identifier: \"86004744966914048\",\n iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n nativejoin: true,\n invite_code: \"0Tmfo5ZbORCRqbAd\",\n pinned: true\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n server: server,\n pinned: true,\n joined: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasJoined(server.identifier),\n defaultAvatar: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getDefaultAvatar\n });\n }\n\n render() {\n const categories = this.categoryButtons.map(name => ({\n section: name,\n label: name,\n element: () => this.content\n }));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(SettingsView, {\n onClose: this.props.close,\n onSetSection: this.changeCategory,\n section: this.state.category,\n sections: [{\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.search\n }, {\n section: \"CUSTOM\",\n element: () => this.searchBox\n }, {\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.categories\n }, ...categories, {\n section: \"DIVIDER\"\n }, {\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n href: \"https://discordservers.com\",\n target: \"_blank\"\n }, \"DiscordServers.com\")\n }, {\n section: \"DIVIDER\"\n }, {\n section: \"CUSTOM\",\n element: () => this.connection\n }],\n theme: \"dark\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvcHVibGljc2VydmVycy9tZW51LmpzPzlhY2QiXSwibmFtZXMiOlsiU2V0dGluZ3NWaWV3IiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwiUHVibGljU2VydmVycyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY2F0ZWdvcnlCdXR0b25zIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2F0ZWdvcnkiLCJxdWVyeSIsImxvYWRpbmciLCJ1c2VyIiwicmVzdWx0cyIsInNlcnZlcnMiLCJzaXplIiwiZnJvbSIsInRvdGFsIiwibmV4dCIsImNoYW5nZUNhdGVnb3J5IiwiYmluZCIsInNlYXJjaEtleURvd24iLCJjb25uZWN0IiwibG9hZE5leHRQYWdlIiwiam9pbiIsImNvbXBvbmVudERpZE1vdW50IiwiY2hlY2tDb25uZWN0aW9uIiwidXNlckRhdGEiLCJDb25uZWN0aW9uIiwic2V0U3RhdGUiLCJzZWFyY2giLCJlIiwid2hpY2giLCJ0YXJnZXQiLCJ2YWx1ZSIsInRlcm0iLCJpZCIsIlByb21pc2UiLCJyZXNvbHZlIiwibmF0aXZlIiwic2VhcmNoQm94IiwiU3RyaW5ncyIsInRpdGxlIiwibm90Q29ubmVjdGVkIiwic3RhcnQiLCJlbmQiLCJmb3JtYXQiLCJjb250ZW50IiwiY29ubmVjdEJ1dHRvbiIsIm9uQ2xpY2siLCJwaW5uZWQiLCJiZFNlcnZlciIsIm1hcCIsInNlcnZlciIsImNyZWF0ZUVsZW1lbnQiLCJTZXJ2ZXJDYXJkIiwia2V5IiwiaWRlbnRpZmllciIsImpvaW5lZCIsImhhc0pvaW5lZCIsImRlZmF1bHRBdmF0YXIiLCJnZXREZWZhdWx0QXZhdGFyIiwiU2V0dGluZ3NUaXRsZSIsInRleHQiLCJidXR0b24iLCJuZXh0QnV0dG9uIiwibGVuZ3RoIiwidHlwZSIsImNsYXNzTmFtZSIsImxvYWRNb3JlIiwiY29ubmVjdGlvbiIsInJlY29ubmVjdCIsIm5hbWUiLCJvbmxpbmUiLCJtZW1iZXJzIiwiY2F0ZWdvcmllcyIsImRlc2NyaXB0aW9uIiwiaWNvblVybCIsIm5hdGl2ZWpvaW4iLCJpbnZpdGVfY29kZSIsInJlbmRlciIsInNlY3Rpb24iLCJsYWJlbCIsImVsZW1lbnQiLCJvbkNsb3NlIiwiY2xvc2UiLCJvblNldFNlY3Rpb24iLCJzZWN0aW9ucyIsImhyZWYiLCJ0aGVtZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsWUFBWSxHQUFHQyxzREFBYyxDQUFDQyxnQkFBZixDQUFnQyxjQUFoQyxDQUFyQjtBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBRXZELE1BQUlDLGVBQUosR0FBc0I7QUFDbEIsV0FBTyxDQUFDLEtBQUQsRUFBUSxXQUFSLEVBQXFCLFdBQXJCLEVBQWtDLGdCQUFsQyxFQUFvRCxZQUFwRCxFQUFrRSxXQUFsRSxFQUErRSxnQkFBL0UsRUFBaUcsZUFBakcsRUFBa0gsa0JBQWxILEVBQXNJLE9BQXRJLEVBQStJLFdBQS9JLEVBQTRKLFVBQTVKLEVBQXdLLGFBQXhLLEVBQXVMLE9BQXZMLENBQVA7QUFDSDs7QUFFREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGNBQVEsRUFBRSxLQUREO0FBRVRDLFdBQUssRUFBRSxFQUZFO0FBR1RDLGFBQU8sRUFBRSxJQUhBO0FBSVRDLFVBQUksRUFBRSxJQUpHO0FBS1RDLGFBQU8sRUFBRTtBQUNMQyxlQUFPLEVBQUUsRUFESjtBQUVMQyxZQUFJLEVBQUUsQ0FGRDtBQUdMQyxZQUFJLEVBQUUsQ0FIRDtBQUlMQyxhQUFLLEVBQUUsQ0FKRjtBQUtMQyxZQUFJLEVBQUU7QUFMRDtBQUxBLEtBQWI7QUFjQSxTQUFLQyxjQUFMLEdBQXNCLEtBQUtBLGNBQUwsQ0FBb0JDLElBQXBCLENBQXlCLElBQXpCLENBQXRCO0FB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QUNyQ3FGLGFBQU8sRUFBRSxLQUFLN0UsS0FBTCxDQUFXOEUsS0FEaUI7QUFFckNDLGtCQUFZLEVBQUUsS0FBS25FLGNBRmtCO0FBR3JDOEQsYUFBTyxFQUFFLEtBQUt6RSxLQUFMLENBQVdDLFFBSGlCO0FBSXJDOEUsY0FBUSxFQUFFLENBQ047QUFBQ04sZUFBTyxFQUFFLFFBQVY7QUFBb0JDLGFBQUssRUFBRXpDLCtDQUFPLENBQUN2QyxhQUFSLENBQXNCNEI7QUFBakQsT0FETSxFQUVOO0FBQUNtRCxlQUFPLEVBQUUsUUFBVjtBQUFvQkUsZUFBTyxFQUFFLE1BQU0sS0FBSzNDO0FBQXhDLE9BRk0sRUFHTjtBQUFDeUMsZUFBTyxFQUFFLFFBQVY7QUFBb0JDLGFBQUssRUFBRXpDLCtDQUFPLENBQUN2QyxhQUFSLENBQXNCeUU7QUFBakQsT0FITSxFQUlOLEdBQUdBLFVBSkcsRUFLTjtBQUFDTSxlQUFPLEVBQUU7QUFBVixPQUxNLEVBTU47QUFBQ0EsZUFBTyxFQUFFLFFBQVY7QUFBb0JDLGFBQUssRUFBRS9FLDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNrQyxjQUFJLEVBQUUsNEJBQVA7QUFBcUN2RCxnQkFBTSxFQUFFO0FBQTdDLFNBQXpCLEVBQWlGLG9CQUFqRjtBQUEzQixPQU5NLEVBT047QUFBQ2dELGVBQU8sRUFBRTtBQUFWLE9BUE0sRUFRTjtBQUFDQSxlQUFPLEVBQUUsUUFBVjtBQUFvQkUsZUFBTyxFQUFFLE1BQU0sS0FBS2I7QUFBeEMsT0FSTSxDQUoyQjtBQWNyQ21CLFdBQUssRUFBRTtBQWQ4QixLQUFsQyxDQUFQO0FBZ0JIOztBQWxLc0QiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9tZW51LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgV2VicGFja01vZHVsZXMsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuLi9zZXR0aW5ncy90aXRsZVwiO1xyXG5pbXBvcnQgU2VydmVyQ2FyZCBmcm9tIFwiLi9jYXJkXCI7XHJcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gXCIuLi8uLi9zdHJ1Y3RzL3BzY29ubmVjdGlvblwiO1xyXG5pbXBvcnQgU2VhcmNoIGZyb20gXCIuLi9zZXR0aW5ncy9jb21wb25lbnRzL3NlYXJjaFwiO1xyXG5cclxuY29uc3QgU2V0dGluZ3NWaWV3ID0gV2VicGFja01vZHVsZXMuZ2V0QnlEaXNwbGF5TmFtZShcIlNldHRpbmdzVmlld1wiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGdldCBjYXRlZ29yeUJ1dHRvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcIkFsbFwiLCBcIkZQUyBHYW1lc1wiLCBcIk1NTyBHYW1lc1wiLCBcIlN0cmF0ZWd5IEdhbWVzXCIsIFwiTU9CQSBHYW1lc1wiLCBcIlJQRyBHYW1lc1wiLCBcIlRhYmxldG9wIEdhbWVzXCIsIFwiU2FuZGJveCBHYW1lc1wiLCBcIlNpbXVsYXRpb24gR2FtZXNcIiwgXCJNdXNpY1wiLCBcIkNvbW11bml0eVwiLCBcIkxhbmd1YWdlXCIsIFwiUHJvZ3JhbW1pbmdcIiwgXCJPdGhlclwiXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjYXRlZ29yeTogXCJBbGxcIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIHVzZXI6IG51bGwsXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IHtcclxuICAgICAgICAgICAgICAgIHNlcnZlcnM6IFtdLFxyXG4gICAgICAgICAgICAgICAgc2l6ZTogMCxcclxuICAgICAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgICAgICB0b3RhbDogMCxcclxuICAgICAgICAgICAgICAgIG5leHQ6IG51bGxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuY2hhbmdlQ2F0ZWdvcnkgPSB0aGlzLmNoYW5nZUNhdGVnb3J5LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hLZXlEb3duID0gdGhpcy5zZWFyY2hLZXlEb3duLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ID0gdGhpcy5jb25uZWN0LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5sb2FkTmV4dFBhZ2UgPSB0aGlzLmxvYWROZXh0UGFnZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuam9pbiA9IHRoaXMuam9pbi5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hlY2tDb25uZWN0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHVzZXJEYXRhID0gYXdhaXQgQ29ubmVjdGlvbi5jaGVja0Nvbm5lY3Rpb24oKTtcclxuICAgICAgICBpZiAoIXVzZXJEYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldFN0YXRlKHtsb2FkaW5nOiB0cnVlLCB1c2VyOiBudWxsfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3VzZXI6IHVzZXJEYXRhfSk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjb25uZWN0KCkge1xyXG4gICAgICAgIGF3YWl0IENvbm5lY3Rpb24uY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoS2V5RG93bihlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZyB8fCBlLndoaWNoICE9PSAxMykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKGUudGFyZ2V0LnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzZWFyY2godGVybSA9IFwiXCIsIGZyb20gPSAwKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cXVlcnk6IHRlcm0sIGxvYWRpbmc6IHRydWV9KTtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgQ29ubmVjdGlvbi5zZWFyY2goe3Rlcm0sIGNhdGVnb3J5OiB0aGlzLnN0YXRlLmNhdGVnb3J5ID09IFwiQWxsXCIgPyBcIlwiIDogdGhpcy5zdGF0ZS5jYXRlZ29yeSwgZnJvbX0pO1xyXG4gICAgICAgIGlmICghcmVzdWx0cykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRTdGF0ZSh7cmVzdWx0czoge1xyXG4gICAgICAgICAgICAgICAgc2VydmVyczogW10sXHJcbiAgICAgICAgICAgICAgICBzaXplOiAwLFxyXG4gICAgICAgICAgICAgICAgZnJvbTogMCxcclxuICAgICAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICAgICAgbmV4dDogbnVsbFxyXG4gICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2xvYWRpbmc6IGZhbHNlLCByZXN1bHRzfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hhbmdlQ2F0ZWdvcnkoaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSByZXR1cm47XHJcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0aGlzLnNldFN0YXRlKHtjYXRlZ29yeTogaWR9LCByZXNvbHZlKSk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV4dFBhZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKHRoaXMuc3RhdGUucXVlcnksIHRoaXMuc3RhdGUucmVzdWx0cy5uZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBqb2luKGlkLCBuYXRpdmUgPSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBDb25uZWN0aW9uLmpvaW4oaWQsIG5hdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlYXJjaEJveCgpIHtcclxuICAgICAgICByZXR1cm4gPFNlYXJjaCBvbktleURvd249e3RoaXMuc2VhcmNoS2V5RG93bn0gcGxhY2Vob2xkZXI9e2Ake1N0cmluZ3MuUHVibGljU2VydmVycy5zZWFyY2h9Li4uYH0gLz47XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRpdGxlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS51c2VyKSByZXR1cm4gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLm5vdENvbm5lY3RlZDtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSByZXR1cm4gYCR7U3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmxvYWRpbmd9Li4uYDtcclxuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuc3RhdGUucmVzdWx0cy5mcm9tICsgMTtcclxuICAgICAgICBjb25zdCB0b3RhbCA9IHRoaXMuc3RhdGUucmVzdWx0cy50b3RhbDtcclxuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnN0YXRlLnJlc3VsdHMubmV4dCA/IHRoaXMuc3RhdGUucmVzdWx0cy5uZXh0IDogdG90YWw7XHJcbiAgICAgICAgbGV0IHRpdGxlID0gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLnJlc3VsdHMuZm9ybWF0KHtzdGFydCwgZW5kLCB0b3RhbCwgY2F0ZWdvcnk6IHRoaXMuc3RhdGUuY2F0ZWdvcnl9KTtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5xdWVyeSkgdGl0bGUgKz0gXCIgXCIgKyBTdHJpbmdzLlB1YmxpY1NlcnZlcnMucXVlcnkuZm9ybWF0KHtxdWVyeTogdGhpcy5zdGF0ZS5xdWVyeX0pO1xyXG4gICAgICAgIHJldHVybiB0aXRsZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBjb25uZWN0QnV0dG9uID0gdGhpcy5zdGF0ZS51c2VyID8gbnVsbCA6IHt0aXRsZTogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmNvbm5lY3QsIG9uQ2xpY2s6IHRoaXMuY29ubmVjdH07XHJcbiAgICAgICAgY29uc3QgcGlubmVkID0gdGhpcy5zdGF0ZS5jYXRlZ29yeSA9PSBcIkFsbFwiIHx8ICF0aGlzLnN0YXRlLnVzZXIgPyB0aGlzLmJkU2VydmVyIDogbnVsbDtcclxuICAgICAgICBjb25zdCBzZXJ2ZXJzID0gdGhpcy5zdGF0ZS5yZXN1bHRzLnNlcnZlcnMubWFwKChzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge2tleTogc2VydmVyLmlkZW50aWZpZXIsIHNlcnZlcjogc2VydmVyLCBqb2luZWQ6IENvbm5lY3Rpb24uaGFzSm9pbmVkKHNlcnZlci5pZGVudGlmaWVyKSwgam9pbjogdGhpcy5qb2luLCBkZWZhdWx0QXZhdGFyOiBDb25uZWN0aW9uLmdldERlZmF1bHRBdmF0YXJ9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gW1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IHRoaXMudGl0bGUsIGJ1dHRvbjogY29ubmVjdEJ1dHRvbn0pLFxyXG4gICAgICAgICAgICBwaW5uZWQsXHJcbiAgICAgICAgICAgIHNlcnZlcnMsXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0cy5uZXh0ID8gdGhpcy5uZXh0QnV0dG9uIDogbnVsbCxcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5yZXN1bHRzLnNlcnZlcnMubGVuZ3RoID4gMCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aGlzLnRpdGxlfSldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBuZXh0QnV0dG9uKCkge1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHt0eXBlOiBcImJ1dHRvblwiLCBjbGFzc05hbWU6IFwiYmQtYnV0dG9uIGJkLWJ1dHRvbi1uZXh0XCIsIG9uQ2xpY2s6IHRoaXMubG9hZE5leHRQYWdlfSwgdGhpcy5zdGF0ZS5sb2FkaW5nID8gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmxvYWRpbmcgOiBTdHJpbmdzLlB1YmxpY1NlcnZlcnMubG9hZE1vcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25uZWN0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHt1c2VyfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7aWQ6IFwiYmQtY29ubmVjdGlvblwifSk7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2lkOiBcImJkLWNvbm5lY3Rpb25cIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZC1mb290bm90ZVwifSwgU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmNvbm5lY3Rpb24uZm9ybWF0KHVzZXIpKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7dHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcImJkLWJ1dHRvbiBiZC1idXR0b24tcmVjb25uZWN0XCIsIG9uQ2xpY2s6IHRoaXMuY29ubmVjdH0sIFN0cmluZ3MuUHVibGljU2VydmVycy5yZWNvbm5lY3QpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYmRTZXJ2ZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VydmVyID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBcIkJldHRlckRpc2NvcmRcIixcclxuICAgICAgICAgICAgb25saW5lOiBcIjc1MDArXCIsXHJcbiAgICAgICAgICAgIG1lbWJlcnM6IFwiMjAwMDArXCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFtcImNvbW11bml0eVwiLCBcInByb2dyYW1taW5nXCIsIFwic3VwcG9ydFwiXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiT2ZmaWNpYWwgQmV0dGVyRGlzY29yZCBzZXJ2ZXIgZm9yIHBsdWdpbnMsIHRoZW1lcywgc3VwcG9ydCwgZXRjXCIsXHJcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IFwiODYwMDQ3NDQ5NjY5MTQwNDhcIixcclxuICAgICAgICAgICAgaWNvblVybDogXCJodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9pY29ucy84NjAwNDc0NDk2NjkxNDA0OC8yOTJlN2Y2YmZmZjJiNzFkZmQxM2U1MDhhODU5YWVkZC53ZWJwXCIsXHJcbiAgICAgICAgICAgIG5hdGl2ZWpvaW46IHRydWUsXHJcbiAgICAgICAgICAgIGludml0ZV9jb2RlOiBcIjBUbWZvNVpiT1JDUnFiQWRcIixcclxuICAgICAgICAgICAgcGlubmVkOiB0cnVlXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTZXJ2ZXJDYXJkLCB7c2VydmVyOiBzZXJ2ZXIsIHBpbm5lZDogdHJ1ZSwgam9pbmVkOiBDb25uZWN0aW9uLmhhc0pvaW5lZChzZXJ2ZXIuaWRlbnRpZmllciksIGRlZmF1bHRBdmF0YXI6IENvbm5lY3Rpb24uZ2V0RGVmYXVsdEF2YXRhcn0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gdGhpcy5jYXRlZ29yeUJ1dHRvbnMubWFwKG5hbWUgPT4gKHtcclxuICAgICAgICAgICAgICAgIHNlY3Rpb246IG5hbWUsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogbmFtZSxcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICgpID0+IHRoaXMuY29udGVudFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NWaWV3LCB7XHJcbiAgICAgICAgICAgIG9uQ2xvc2U6IHRoaXMucHJvcHMuY2xvc2UsXHJcbiAgICAgICAgICAgIG9uU2V0U2VjdGlvbjogdGhpcy5jaGFuZ2VDYXRlZ29yeSxcclxuICAgICAgICAgICAgc2VjdGlvbjogdGhpcy5zdGF0ZS5jYXRlZ29yeSxcclxuICAgICAgICAgICAgc2VjdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLnNlYXJjaH0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJDVVNUT01cIiwgZWxlbWVudDogKCkgPT4gdGhpcy5zZWFyY2hCb3h9LFxyXG4gICAgICAgICAgICAgICAge3NlY3Rpb246IFwiSEVBREVSXCIsIGxhYmVsOiBTdHJpbmdzLlB1YmxpY1NlcnZlcnMuY2F0ZWdvcmllc30sXHJcbiAgICAgICAgICAgICAgICAuLi5jYXRlZ29yaWVzLFxyXG4gICAgICAgICAgICAgICAge3NlY3Rpb246IFwiRElWSURFUlwifSxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2hyZWY6IFwiaHR0cHM6Ly9kaXNjb3Jkc2VydmVycy5jb21cIiwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJEaXNjb3JkU2VydmVycy5jb21cIil9LFxyXG4gICAgICAgICAgICAgICAge3NlY3Rpb246IFwiRElWSURFUlwifSxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkNVU1RPTVwiLCBlbGVtZW50OiAoKSA9PiB0aGlzLmNvbm5lY3Rpb259XHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHRoZW1lOiBcImRhcmtcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/publicservers/menu.js\n");
/***/ }),
@@ -1007,7 +1006,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 modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_addonlist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings/addonlist */ \"./src/ui/settings/addonlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _settings_sidebarheader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings/sidebarheader */ \"./src/ui/settings/sidebarheader.jsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsRenderer {\n constructor() {\n this.patchSections();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(\"strings-updated\", this.forceUpdate);\n }\n\n onDrawerToggle(collection, group, state) {\n const drawerStates = modules__WEBPACK_IMPORTED_MODULE_0__[\"DataStore\"].getBDData(\"drawerStates\") || {};\n if (!drawerStates[collection]) drawerStates[collection] = {};\n drawerStates[collection][group] = state;\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DataStore\"].setBDData(\"drawerStates\", drawerStates);\n }\n\n getDrawerState(collection, group, defaultValue) {\n const drawerStates = modules__WEBPACK_IMPORTED_MODULE_0__[\"DataStore\"].getBDData(\"drawerStates\") || {};\n if (!drawerStates[collection]) return defaultValue;\n if (!drawerStates[collection].hasOwnProperty(group)) return defaultValue;\n return drawerStates[collection][group];\n }\n\n onChange(onChange) {\n return (collection, category, id) => {\n const before = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n onChange(collection, category, id);\n const after = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n };\n }\n\n buildSettingsPanel(id, 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(id, title, config, this.onChange(onChange), button);\n }\n\n getSettingsPanel(id, title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object.assign({}, section, {\n onChange: onChange,\n onDrawerToggle: state => this.onDrawerToggle(id, section.id, state),\n shown: this.getDrawerState(id, section.id, section.hasOwnProperty(\"shown\") ? section.shown : true)\n }));\n })];\n }\n\n getAddonPanel(title, addonList, addonState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_addonlist__WEBPACK_IMPORTED_MODULE_1__[\"default\"], Object.assign({}, {\n title: title,\n addonList: addonList,\n addonState: addonState\n }, options));\n }\n\n async patchSections() {\n const UserSettings = await modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactComponents\"].get(\"UserSettings\", m => m.prototype && m.prototype.generateSections);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = \"user-settings\";\n });\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"generateSections\", (thisObject, args, returnValue) => {\n let location = returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n returnValue.splice(location, 0, section);\n location++;\n };\n\n insert({\n section: \"DIVIDER\"\n }); // Header\n\n insert({\n section: \"CUSTOM\",\n element: _settings_sidebarheader__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n });\n\n for (const collection of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => this.buildSettingsPanel(collection.id, collection.name, collection.settings, modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].state[collection.id], modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].onSettingChange.bind(modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"], collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.sort((a, b) => a.order > b.order)) {\n if (panel.clickListener) panel.onClick = event => panel.clickListener(thisObject, event, returnValue);\n insert(panel);\n }\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n if (!node) return;\n const stateNode = modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].findInReactTree(modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].getReactInstance(node), m => m && m.generateSections, {\n walkable: [\"return\", \"stateNode\"]\n });\n if (stateNode) stateNode.forceUpdate();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzLmpzPzc2YmUiXSwibmFtZXMiOlsiU2V0dGluZ3NSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwicGF0Y2hTZWN0aW9ucyIsIkV2ZW50cyIsIm9uIiwiZm9yY2VVcGRhdGUiLCJvbkRyYXdlclRvZ2dsZSIsImNvbGxlY3Rpb24iLCJncm91cCIsInN0YXRlIiwiZHJhd2VyU3RhdGVzIiwiRGF0YVN0b3JlIiwiZ2V0QkREYXRhIiwic2V0QkREYXRhIiwiZ2V0RHJhd2VyU3RhdGUiLCJkZWZhdWx0VmFsdWUiLCJoYXNPd25Qcm9wZXJ0eSIsIm9uQ2hhbmdlIiwiY2F0ZWdvcnkiLCJpZCIsImJlZm9yZSIsIlNldHRpbmdzIiwiY29sbGVjdGlvbnMiLCJsZW5ndGgiLCJwYW5lbHMiLCJhZnRlciIsInNldFRpbWVvdXQiLCJiaW5kIiwiYnVpbGRTZXR0aW5nc1BhbmVsIiwidGl0bGUiLCJjb25maWciLCJidXR0b24iLCJmb3JFYWNoIiwic2VjdGlvbiIsInNldHRpbmdzIiwiaXRlbSIsInZhbHVlIiwiZ2V0U2V0dGluZ3NQYW5lbCIsImdyb3VwcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIlNldHRpbmdzVGl0bGUiLCJ0ZXh0IiwibWFwIiwiU2V0dGluZ3NHcm91cCIsIk9iamVjdCIsImFzc2lnbiIsInNob3duIiwiZ2V0QWRkb25QYW5lbCIsImFkZG9uTGlzdCIsImFkZG9uU3RhdGUiLCJvcHRpb25zIiwiQWRkb25MaXN0IiwiVXNlclNldHRpbmdzIiwiUmVhY3RDb21wb25lbnRzIiwiZ2V0IiwibSIsInByb3RvdHlwZSIsImdlbmVyYXRlU2VjdGlvbnMiLCJQYXRjaGVyIiwidGhpc09iamVjdCIsIl9yZWFjdEludGVybmFsRmliZXIiLCJyZXR1cm4iLCJtZW1vaXplZFByb3BzIiwiYXJncyIsInJldHVyblZhbHVlIiwibG9jYXRpb24iLCJmaW5kSW5kZXgiLCJzIiwidG9Mb3dlckNhc2UiLCJpbnNlcnQiLCJzcGxpY2UiLCJlbGVtZW50IiwiSGVhZGVyIiwiZGlzYWJsZWQiLCJuYW1lIiwibGFiZWwiLCJvblNldHRpbmdDaGFuZ2UiLCJwYW5lbCIsInNvcnQiLCJhIiwiYiIsIm9yZGVyIiwiY2xpY2tMaXN0ZW5lciIsIm9uQ2xpY2siLCJldmVudCIsInZpZXdDbGFzcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsInN0YW5kYXJkU2lkZWJhclZpZXciLCJzcGxpdCIsIm5vZGUiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzdGF0ZU5vZGUiLCJVdGlsaXRpZXMiLCJmaW5kSW5SZWFjdFRyZWUiLCJnZXRSZWFjdEluc3RhbmNlIiwid2Fsa2FibGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFZSxtRUFBSSxNQUFNQSxnQkFBTixDQUF1QjtBQUV0Q0MsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsYUFBTDtBQUNBQyxrREFBTSxDQUFDQyxFQUFQLENBQVUsaUJBQVYsRUFBNkIsS0FBS0MsV0FBbEM7QUFDSDs7QUFFREMsZ0JBQWMsQ0FBQ0MsVUFBRCxFQUFhQyxLQUFiLEVBQW9CQyxLQUFwQixFQUEyQjtBQUNyQyxVQUFNQyxZQUFZLEdBQUdDLGlEQUFTLENBQUNDLFNBQVYsQ0FBb0IsY0FBcEIsS0FBdUMsRUFBNUQ7QUFDQSxRQUFJLENBQUNGLFlBQVksQ0FBQ0gsVUFBRCxDQUFqQixFQUErQkcsWUFBWSxDQUFDSCxVQUFELENBQVosR0FBMkIsRUFBM0I7QUFDL0JHLGdCQUFZLENBQUNILFVBQUQsQ0FBWixDQUF5QkMsS0FBekIsSUFBa0NDLEtBQWxDO0FBQ0FFLHFEQUFTLENBQUNFLFNBQVYsQ0FBb0IsY0FBcEIsRUFBb0NILFlBQXBDO0FBQ0g7O0FBRURJLGdCQUFjLENBQUNQLFVBQUQsRUFBYUMsS0FBYixFQUFvQk8sWUFBcEIsRUFBa0M7QUFDNUMsVUFBTUwsWUFBWSxHQUFHQyxpREFBUyxDQUFDQyxTQUFW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QkMsS0FBRCxJQUFXUCxLQUFLLENBQUNLLGFBQU4sQ0FBb0J2QixVQUFwQixFQUFnQ3lCLEtBQWhDLEVBQXVDcEIsV0FBdkMsQ0FBM0I7QUFDekJLLGNBQU0sQ0FBQ1EsS0FBRCxDQUFOO0FBQ0g7QUFDSixLQXJCRDtBQXNCQSxTQUFLekUsV0FBTDtBQUNIOztBQUVEQSxhQUFXLEdBQUc7QUFDVixVQUFNaUYsU0FBUyxHQUFHQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLHFCQUExQixFQUFpREMsbUJBQWpELENBQXFFQyxLQUFyRSxDQUEyRSxHQUEzRSxFQUFnRixDQUFoRixDQUFsQjtBQUNBLFVBQU1DLElBQUksR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXdCLElBQUdQLFNBQVUsRUFBckMsQ0FBYjtBQUNBLFFBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1gsVUFBTUcsU0FBUyxHQUFHQyxpREFBUyxDQUFDQyxlQUFWLENBQTBCRCxpREFBUyxDQUFDRSxnQkFBVixDQUEyQk4sSUFBM0IsQ0FBMUIsRUFBNERuQyxDQUFDLElBQUlBLENBQUMsSUFBSUEsQ0FBQyxDQUFDRSxnQkFBeEUsRUFBMEY7QUFBQ3dDLGNBQVEsRUFBRSxDQUFDLFFBQUQsRUFBVyxXQUFYO0FBQVgsS0FBMUYsQ0FBbEI7QUFDQSxRQUFJSixTQUFKLEVBQWVBLFNBQVMsQ0FBQ3pGLFdBQVY7QUFDbEI7O0FBM0ZxQyxDQUEzQixFQUFmIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgV2VicGFja01vZHVsZXMsIFBhdGNoZXIsIFJlYWN0Q29tcG9uZW50cywgVXRpbGl0aWVzLCBTZXR0aW5ncywgRXZlbnRzLCBEYXRhU3RvcmV9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgQWRkb25MaXN0IGZyb20gXCIuL3NldHRpbmdzL2FkZG9ubGlzdFwiO1xyXG5pbXBvcnQgU2V0dGluZ3NHcm91cCBmcm9tIFwiLi9zZXR0aW5ncy9ncm91cFwiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi9zZXR0aW5ncy90aXRsZVwiO1xyXG5pbXBvcnQgSGVhZGVyIGZyb20gXCIuL3NldHRpbmdzL3NpZGViYXJoZWFkZXJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBTZXR0aW5nc1JlbmRlcmVyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnBhdGNoU2VjdGlvbnMoKTtcclxuICAgICAgICBFdmVudHMub24oXCJzdHJpbmdzLXVwZGF0ZWRcIiwgdGhpcy5mb3JjZVVwZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EcmF3ZXJUb2dnbGUoY29sbGVjdGlvbiwgZ3JvdXAsIHN0YXRlKSB7XHJcbiAgICAgICAgY29uc3QgZHJhd2VyU3RhdGVzID0gRGF0YVN0b3JlLmdldEJERGF0YShcImRyYXdlclN0YXRlc1wiKSB8fCB7fTtcclxuICAgICAgICBpZiAoIWRyYXdlclN0YXRlc1tjb2xsZWN0aW9uXSkgZHJhd2VyU3RhdGVzW2NvbGxlY3Rpb25dID0ge307XHJcbiAgICAgICAgZHJhd2VyU3RhdGVzW2NvbGxlY3Rpb25dW2dyb3VwXSA9IHN0YXRlO1xyXG4gICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJkcmF3ZXJTdGF0ZXNcIiwgZHJhd2VyU3RhdGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREcmF3ZXJTdGF0ZShjb2xsZWN0aW9uLCBncm91cCwgZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgZHJhd2VyU3RhdGVzID0gRGF0YVN0b3JlLmdldEJERGF0YShcImRyYXdlclN0YXRlc1wiKSB8fCB7fTtcclxuICAgICAgICBpZiAoIWRyYXdlclN0YXRlc1tjb2xsZWN0aW9uXSkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICBpZiAoIWRyYXdlclN0YXRlc1tjb2xsZWN0aW9uXS5oYXNPd25Qcm9wZXJ0eShncm91cCkpIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgcmV0dXJuIGRyYXdlclN0YXRlc1tjb2xsZWN0aW9uXVtncm91cF07XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2Uob25DaGFuZ2UpIHtcclxuICAgICAgICByZXR1cm4gKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBiZWZvcmUgPSBTZXR0aW5ncy5jb2xsZWN0aW9ucy5sZW5ndGggKyBTZXR0aW5ncy5wYW5lbHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBvbkNoYW5nZShjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpO1xyXG4gICAgICAgICAgICBjb25zdCBhZnRlciA9IFNldHRpbmdzLmNvbGxlY3Rpb25zLmxlbmd0aCArIFNldHRpbmdzLnBhbmVscy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGlmIChiZWZvcmUgIT0gYWZ0ZXIpIHNldFRpbWVvdXQodGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpLCA1MCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZFNldHRpbmdzUGFuZWwoaWQsIHRpdGxlLCBjb25maWcsIHN0YXRlLCBvbkNoYW5nZSwgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIGNvbmZpZy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBzZWN0aW9uLnNldHRpbmdzLmZvckVhY2goaXRlbSA9PiBpdGVtLnZhbHVlID0gc3RhdGVbc2VjdGlvbi5pZF1baXRlbS5pZF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNldHRpbmdzUGFuZWwoaWQsIHRpdGxlLCBjb25maWcsIHRoaXMub25DaGFuZ2Uob25DaGFuZ2UpLCBidXR0b24pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNldHRpbmdzUGFuZWwoaWQsIHRpdGxlLCBncm91cHMsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aXRsZSwgYnV0dG9uOiBidXR0b259KSwgZ3JvdXBzLm1hcChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NHcm91cCwgT2JqZWN0LmFzc2lnbih7fSwgc2VjdGlvbiwge1xyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uQ2hhbmdlLFxyXG4gICAgICAgICAgICAgICAgb25EcmF3ZXJUb2dnbGU6IHN0YXRlID0+IHRoaXMub25EcmF3ZXJUb2dnbGUoaWQsIHNlY3Rpb24uaWQsIHN0YXRlKSxcclxuICAgICAgICAgICAgICAgIHNob3duOiB0aGlzLmdldERyYXdlclN0YXRlKGlkLCBzZWN0aW9uLmlkLCBzZWN0aW9uLmhhc093blByb3BlcnR5KFwic2hvd25cIikgPyBzZWN0aW9uLnNob3duIDogdHJ1ZSlcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBZGRvblBhbmVsKHRpdGxlLCBhZGRvbkxpc3QsIGFkZG9uU3RhdGUsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KEFkZG9uTGlzdCwgT2JqZWN0LmFzc2lnbih7fSwge1xyXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgIGFkZG9uTGlzdDogYWRkb25MaXN0LFxyXG4gICAgICAgICAgICBhZGRvblN0YXRlOiBhZGRvblN0YXRlXHJcbiAgICAgICAgfSwgb3B0aW9ucykpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHBhdGNoU2VjdGlvbnMoKSB7XHJcbiAgICAgICAgY29uc3QgVXNlclNldHRpbmdzID0gYXdhaXQgUmVhY3RDb21wb25lbnRzLmdldChcIlVzZXJTZXR0aW5nc1wiLCBtID0+IG0ucHJvdG90eXBlICYmIG0ucHJvdG90eXBlLmdlbmVyYXRlU2VjdGlvbnMpO1xyXG4gICAgICAgIFBhdGNoZXIuYWZ0ZXIoXCJTZXR0aW5nc01hbmFnZXJcIiwgVXNlclNldHRpbmdzLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwgKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpc09iamVjdC5fcmVhY3RJbnRlcm5hbEZpYmVyLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5tZW1vaXplZFByb3BzLmlkID0gXCJ1c2VyLXNldHRpbmdzXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgUGF0Y2hlci5hZnRlcihcIlNldHRpbmdzTWFuYWdlclwiLCBVc2VyU2V0dGluZ3MucHJvdG90eXBlLCBcImdlbmVyYXRlU2VjdGlvbnNcIiwgKHRoaXNPYmplY3QsIGFyZ3MsIHJldHVyblZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhdGlvbiA9IHJldHVyblZhbHVlLmZpbmRJbmRleChzID0+IHMuc2VjdGlvbi50b0xvd2VyQ2FzZSgpID09IFwibGludXhcIikgKyAxO1xyXG4gICAgICAgICAgICBjb25zdCBpbnNlcnQgPSAoc2VjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUuc3BsaWNlKGxvY2F0aW9uLCAwLCBzZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uKys7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGluc2VydCh7c2VjdGlvbjogXCJESVZJREVSXCJ9KTtcclxuICAgICAgICAgICAgLy8gSGVhZGVyXHJcbiAgICAgICAgICAgIGluc2VydCh7c2VjdGlvbjogXCJDVVNUT01cIiwgZWxlbWVudDogSGVhZGVyfSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBTZXR0aW5ncy5jb2xsZWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24uZGlzYWJsZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgaW5zZXJ0KHtcclxuICAgICAgICAgICAgICAgICAgICBzZWN0aW9uOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbGxlY3Rpb24ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAoKSA9PiB0aGlzLmJ1aWxkU2V0dGluZ3NQYW5lbChjb2xsZWN0aW9uLmlkLCBjb2xsZWN0aW9uLm5hbWUsIGNvbGxlY3Rpb24uc2V0dGluZ3MsIFNldHRpbmdzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLCBTZXR0aW5ncy5vblNldHRpbmdDaGFuZ2UuYmluZChTZXR0aW5ncywgY29sbGVjdGlvbi5pZCksIGNvbGxlY3Rpb24uYnV0dG9uID8gY29sbGVjdGlvbi5idXR0b24gOiBudWxsKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yIChjb25zdCBwYW5lbCBvZiBTZXR0aW5ncy5wYW5lbHMuc29ydCgoYSxiKSA9PiBhLm9yZGVyID4gYi5vcmRlcikpIHtcclxuICAgICAgICAgICAgICAgIGlmIChwYW5lbC5jbGlja0xpc3RlbmVyKSBwYW5lbC5vbkNsaWNrID0gKGV2ZW50KSA9PiBwYW5lbC5jbGlja0xpc3RlbmVyKHRoaXNPYmplY3QsIGV2ZW50LCByZXR1cm5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBpbnNlcnQocGFuZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmNlVXBkYXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHZpZXdDbGFzcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzdGFuZGFyZFNpZGViYXJWaWV3XCIpLnN0YW5kYXJkU2lkZWJhclZpZXcuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt2aWV3Q2xhc3N9YCk7XHJcbiAgICAgICAgaWYgKCFub2RlKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgc3RhdGVOb2RlID0gVXRpbGl0aWVzLmZpbmRJblJlYWN0VHJlZShVdGlsaXRpZXMuZ2V0UmVhY3RJbnN0YW5jZShub2RlKSwgbSA9PiBtICYmIG0uZ2VuZXJhdGVTZWN0aW9ucywge3dhbGthYmxlOiBbXCJyZXR1cm5cIiwgXCJzdGF0ZU5vZGVcIl19KTtcclxuICAgICAgICBpZiAoc3RhdGVOb2RlKSBzdGF0ZU5vZGUuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_addonlist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings/addonlist */ \"./src/ui/settings/addonlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _settings_sidebarheader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings/sidebarheader */ \"./src/ui/settings/sidebarheader.jsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsRenderer {\n constructor() {\n this.patchSections();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(\"strings-updated\", this.forceUpdate);\n }\n\n onDrawerToggle(collection, group, state) {\n const drawerStates = modules__WEBPACK_IMPORTED_MODULE_0__[\"DataStore\"].getBDData(\"drawerStates\") || {};\n if (!drawerStates[collection]) drawerStates[collection] = {};\n drawerStates[collection][group] = state;\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DataStore\"].setBDData(\"drawerStates\", drawerStates);\n }\n\n getDrawerState(collection, group, defaultValue) {\n const drawerStates = modules__WEBPACK_IMPORTED_MODULE_0__[\"DataStore\"].getBDData(\"drawerStates\") || {};\n if (!drawerStates[collection]) return defaultValue;\n if (!drawerStates[collection].hasOwnProperty(group)) return defaultValue;\n return drawerStates[collection][group];\n }\n\n onChange(onChange) {\n return (collection, category, id) => {\n const before = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n onChange(collection, category, id);\n const after = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n };\n }\n\n buildSettingsPanel(id, 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(id, title, config, this.onChange(onChange), button);\n }\n\n getSettingsPanel(id, title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object.assign({}, section, {\n onChange: onChange,\n onDrawerToggle: state => this.onDrawerToggle(id, section.id, state),\n shown: this.getDrawerState(id, section.id, section.hasOwnProperty(\"shown\") ? section.shown : true)\n }));\n })];\n }\n\n getAddonPanel(title, addonList, addonState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_addonlist__WEBPACK_IMPORTED_MODULE_1__[\"default\"], Object.assign({}, {\n title: title,\n addonList: addonList,\n addonState: addonState\n }, options));\n }\n\n async patchSections() {\n const UserSettings = await modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactComponents\"].get(\"UserSettings\", m => m.prototype && m.prototype.generateSections);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = \"user-settings\";\n });\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"generateSections\", (thisObject, args, returnValue) => {\n let location = returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n returnValue.splice(location, 0, section);\n location++;\n };\n\n insert({\n section: \"DIVIDER\"\n }); // Header\n\n insert({\n section: \"CUSTOM\",\n element: _settings_sidebarheader__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n });\n\n for (const collection of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => this.buildSettingsPanel(collection.id, collection.name, collection.settings, modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].state[collection.id], modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].onSettingChange.bind(modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"], collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.sort((a, b) => a.order > b.order)) {\n if (panel.clickListener) panel.onClick = event => panel.clickListener(thisObject, event, returnValue);\n insert(panel);\n }\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n if (!node) return;\n const stateNode = modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].findInReactTree(modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].getReactInstance(node), m => m && m.generateSections, {\n walkable: [\"return\", \"stateNode\"]\n });\n if (stateNode) stateNode.forceUpdate();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MuanM/NzZiZSJdLCJuYW1lcyI6WyJTZXR0aW5nc1JlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJwYXRjaFNlY3Rpb25zIiwiRXZlbnRzIiwib24iLCJmb3JjZVVwZGF0ZSIsIm9uRHJhd2VyVG9nZ2xlIiwiY29sbGVjdGlvbiIsImdyb3VwIiwic3RhdGUiLCJkcmF3ZXJTdGF0ZXMiLCJEYXRhU3RvcmUiLCJnZXRCRERhdGEiLCJzZXRCRERhdGEiLCJnZXREcmF3ZXJTdGF0ZSIsImRlZmF1bHRWYWx1ZSIsImhhc093blByb3BlcnR5Iiwib25DaGFuZ2UiLCJjYXRlZ29yeSIsImlkIiwiYmVmb3JlIiwiU2V0dGluZ3MiLCJjb2xsZWN0aW9ucyIsImxlbmd0aCIsInBhbmVscyIsImFmdGVyIiwic2V0VGltZW91dCIsImJpbmQiLCJidWlsZFNldHRpbmdzUGFuZWwiLCJ0aXRsZSIsImNvbmZpZyIsImJ1dHRvbiIsImZvckVhY2giLCJzZWN0aW9uIiwic2V0dGluZ3MiLCJpdGVtIiwidmFsdWUiLCJnZXRTZXR0aW5nc1BhbmVsIiwiZ3JvdXBzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiU2V0dGluZ3NUaXRsZSIsInRleHQiLCJtYXAiLCJTZXR0aW5nc0dyb3VwIiwiT2JqZWN0IiwiYXNzaWduIiwic2hvd24iLCJnZXRBZGRvblBhbmVsIiwiYWRkb25MaXN0IiwiYWRkb25TdGF0ZSIsIm9wdGlvbnMiLCJBZGRvbkxpc3QiLCJVc2VyU2V0dGluZ3MiLCJSZWFjdENvbXBvbmVudHMiLCJnZXQiLCJtIiwicHJvdG90eXBlIiwiZ2VuZXJhdGVTZWN0aW9ucyIsIlBhdGNoZXIiLCJ0aGlzT2JqZWN0IiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsInJldHVybiIsIm1lbW9pemVkUHJvcHMiLCJhcmdzIiwicmV0dXJuVmFsdWUiLCJsb2NhdGlvbiIsImZpbmRJbmRleCIsInMiLCJ0b0xvd2VyQ2FzZSIsImluc2VydCIsInNwbGljZSIsImVsZW1lbnQiLCJIZWFkZXIiLCJkaXNhYmxlZCIsIm5hbWUiLCJsYWJlbCIsIm9uU2V0dGluZ0NoYW5nZSIsInBhbmVsIiwic29ydCIsImEiLCJiIiwib3JkZXIiLCJjbGlja0xpc3RlbmVyIiwib25DbGljayIsImV2ZW50Iiwidmlld0NsYXNzIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwic3RhbmRhcmRTaWRlYmFyVmlldyIsInNwbGl0Iiwibm9kZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInN0YXRlTm9kZSIsIlV0aWxpdGllcyIsImZpbmRJblJlYWN0VHJlZSIsImdldFJlYWN0SW5zdGFuY2UiLCJ3YWxrYWJsZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGdCQUFOLENBQXVCO0FBRXRDQyxhQUFXLEdBQUc7QUFDVixTQUFLQyxhQUFMO0FBQ0FDLGtEQUFNLENBQUNDLEVBQVAsQ0FBVSxpQkFBVixFQUE2QixLQUFLQyxXQUFsQztBQUNIOztBQUVEQyxnQkFBYyxDQUFDQyxVQUFELEVBQWFDLEtBQWIsRUFBb0JDLEtBQXBCLEVBQTJCO0FBQ3JDLFVBQU1DLFlBQVksR0FBR0MsaURBQVMsQ0FBQ0MsU0FBVixDQUFvQixjQUFwQixLQUF1QyxFQUE1RDtBQUNBLFFBQUksQ0FBQ0YsWUFBWSxDQUFDSCxVQUFELENBQWpCLEVBQStCRyxZQUFZLENBQUNILFVBQUQsQ0FBWixHQUEyQixFQUEzQjtBQUMvQkcsZ0JBQVksQ0FBQ0gsVUFBRCxDQUFaLENBQXlCQyxLQUF6QixJQUFrQ0MsS0FBbEM7QUFDQUUscURBQVMsQ0FBQ0UsU0FBVixDQUFvQixjQUFwQixFQUFvQ0gsWUFBcEM7QUFDSDs7QUFFREksZ0JBQWMsQ0FBQ1AsVUFBRCxFQUFhQyxLQUFiLEVBQW9CTyxZQUFwQixFQUFrQztBQUM1QyxVQUFNTCxZQUFZLEdBQUdDLGlEQUFTLENBQUNDLFNBQVYsQ0FBb0IsY0FBcEIsS0FBdUMsRUFBNUQ7QUFDQSxRQUFJLENBQUNGLFlBQVksQ0FBQ0gsVUFBRCxDQUFqQixFQUErQixPQUFPUSxZQUFQO0FBQy9CLFFBQUksQ0FBQ0wsWUFBWSxDQUFDSCxVQUFELENBQVosQ0FBeUJTLGNBQXpCLENBQXdDUixLQUF4QyxDQUFMLEVBQXFELE9BQU9PLFlBQVA7QUFDckQsV0FBT0wsWUFBWSxDQUFDSCxVQUFELENBQVosQ0FBeUJDLEtBQXpCLENBQVA7QUFDSDs7QUFFRFMsVUFBUSxDQUFDQSxRQUFELEVBQVc7QUFDZixXQUFPLENBQUNWLFVBQUQsRUFBYVcsUUFBYixFQUF1QkMsRUFBdkIsS0FBOEI7QUFDakMsWUFBTUMsTUFBTSxHQUFHQyxnREFBUSxDQUFDQyxXQUFULENBQXFCQyxNQUFyQixHQUE4QkYsZ0RBQVEsQ0FBQ0csTUFBVCxDQUFnQkQsTUFBN0Q7QUFDQU4sY0FBUSxDQUFDVixVQUFELEVBQWFXLFFBQWIsRUFBdUJDLEVBQXZCLENBQVI7QUFDQSxZQUFNTSxLQUFLLEdBQUdKLGdEQUFRLENBQUNDLFdBQVQsQ0FBcUJDLE1BQXJCLEdBQThCRixnREFBUSxDQUFDRyxNQUFULENBQWdCRCxNQUE1RDtBQUNBLFVBQUlILE1BQU0sSUFBSUssS0FBZCxFQUFxQkMsVUFBVSxDQUFDLEtBQUtyQixXQUFMLENBQWlCc0IsSUFBakIsQ0FBc0IsSUFBdEIsQ0FBRCxFQUE4QixFQUE5QixDQUFWO0FBQ3hCLEtBTEQ7QUFNSDs7QUFFREMsb0JBQWtCLENBQUNULEVBQUQsRUFBS1UsS0FBTCxFQUFZQyxNQUFaLEVBQW9CckIsS0FBcEIsRUFBMkJRLFFBQTNCLEVBQXFDYyxNQUFNLEdBQUcsSUFBOUMsRUFBb0Q7QUFDbEVELFVBQU0sQ0FBQ0UsT0FBUCxDQUFlQyxPQUFPLElBQUk7QUFDdEJBLGFBQU8sQ0FBQ0MsUUFBUixDQUFpQkYsT0FBakIsQ0FBeUJHLElBQUksSUFBSUEsSUFBSSxDQUFDQyxLQUFMLEdBQWEzQixLQUFLLENBQUN3QixPQUFPLENBQUNkLEVBQVQsQ0FBTCxDQUFrQmdCLElBQUksQ0FBQ2hCLEVBQXZCLENBQTlDO0FBQ0gsS0FGRDtBQUdBLFdBQU8sS0FBS2tCLGdCQUFMLENBQXNCbEIsRUFBdEIsRUFBMEJVLEtBQTFCLEVBQWlDQyxNQUFqQyxFQUF5QyxLQUFLYixRQUFMLENBQWNBLFFBQWQsQ0FBekMsRUFBa0VjLE1BQWxFLENBQVA7QUFDSDs7QUFFRE0sa0JBQWdCLENBQUNsQixFQUFELEVBQUtVLEtBQUwsRUFBWVMsTUFBWixFQUFvQnJCLFFBQXBCLEVBQThCYyxNQUFNLEdBQUcsSUFBdkMsRUFBNkM7QUFDekQsV0FBTyxDQUFDUSw2Q0FBSyxDQUFDQyxhQUFOLENBQW9CQyx1REFBcEIsRUFBbUM7QUFBQ0MsVUFBSSxFQUFFYixLQUFQO0FBQWNFLFlBQU0sRUFBRUE7QUFBdEIsS0FBbkMsQ0FBRCxFQUFvRU8sTUFBTSxDQUFDSyxHQUFQLENBQVdWLE9BQU8sSUFBSTtBQUM3RixhQUFPTSw2Q0FBSyxDQUFDQyxhQUFOLENBQW9CSSx1REFBcEIsRUFBbUNDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JiLE9BQWxCLEVBQTJCO0FBQ2pFaEIsZ0JBQVEsRUFBRUEsUUFEdUQ7QUFFakVYLHNCQUFjLEVBQUVHLEtBQUssSUFBSSxLQUFLSCxjQUFMLENBQW9CYSxFQUFwQixFQUF3QmMsT0FBTyxDQUFDZCxFQUFoQyxFQUFvQ1YsS0FBcEMsQ0FGd0M7QUFHakVzQyxhQUFLLEVBQUUsS0FBS2pDLGNBQUwsQ0FBb0JLLEVBQXBCLEVBQXdCYyxPQUFPLENBQUNkLEVBQWhDLEVBQW9DYyxPQUFPLENBQUNqQixjQUFSLENBQXVCLE9BQXZCLElBQWtDaUIsT0FBTyxDQUFDYyxLQUExQyxHQUFrRCxJQUF0RjtBQUgwRCxPQUEzQixDQUFuQyxDQUFQO0FBS0gsS0FOMEUsQ0FBcEUsQ0FBUDtBQU9IOztBQUVEQyxlQUFhLENBQUNuQixLQUFELEVBQVFvQixTQUFSLEVBQW1CQyxVQUFuQixFQUErQkMsT0FBTyxHQUFHLEVBQXpDLEVBQTZDO0FBQ3RELFdBQU9aLDZDQUFLLENBQUNDLGFBQU4sQ0FBb0JZLDJEQUFwQixFQUErQlAsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQjtBQUNwRGpCLFdBQUssRUFBRUEsS0FENkM7QUFFcERvQixlQUFTLEVBQUVBLFNBRnlDO0FBR3BEQyxnQkFBVSxFQUFFQTtBQUh3QyxLQUFsQixFQUluQ0MsT0FKbUMsQ0FBL0IsQ0FBUDtBQUtIOztBQUVELFFBQU1qRCxhQUFOLEdBQXNCO0FBQ2xCLFVBQU1tRCxZQUFZLEdBQUcsTUFBTUMsdURBQWUsQ0FBQ0MsR0FBaEIsQ0FBb0IsY0FBcEIsRUFBb0NDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxTQUFGLElBQWVELENBQUMsQ0FBQ0MsU0FBRixDQUFZQyxnQkFBcEUsQ0FBM0I7QUFDQUMsbURBQU8sQ0FBQ2xDLEtBQVIsQ0FBYyxpQkFBZCxFQUFpQzRCLFlBQVksQ0FBQ0ksU0FBOUMsRUFBeUQsUUFBekQsRUFBb0VHLFVBQUQsSUFBZ0I7QUFDL0VBLGdCQUFVLENBQUNDLG1CQUFYLENBQStCQyxNQUEvQixDQUFzQ0EsTUFBdEMsQ0FBNkNBLE1BQTdDLENBQW9EQSxNQUFwRCxDQUEyREEsTUFBM0QsQ0FBa0VBLE1BQWxFLENBQXlFQSxNQUF6RSxDQUFnRkMsYUFBaEYsQ0FBOEY1QyxFQUE5RixHQUFtRyxlQUFuRztBQUNILEtBRkQ7QUFHQXdDLG1EQUFPLENBQUNsQyxLQUFSLENBQWMsaUJBQWQsRUFBaUM0QixZQUFZLENBQUNJLFNBQTlDLEVBQXlELGtCQUF6RCxFQUE2RSxDQUFDRyxVQUFELEVBQWFJLElBQWIsRUFBbUJDLFdBQW5CLEtBQW1DO0FBQzVHLFVBQUlDLFFBQVEsR0FBR0QsV0FBVyxDQUFDRSxTQUFaLENBQXNCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ25DLE9BQUYsQ0FBVW9DLFdBQVYsTUFBMkIsT0FBdEQsSUFBaUUsQ0FBaEY7O0FBQ0EsWUFBTUMsTUFBTSxHQUFJckMsT0FBRCxJQUFhO0FBQ3hCZ0MsbUJBQVcsQ0FBQ00sTUFBWixDQUFtQkwsUUFBbkIsRUFBNkIsQ0FBN0IsRUFBZ0NqQyxPQUFoQztBQUNBaUMsZ0JBQVE7QUFDWCxPQUhEOztBQUlBSSxZQUFNLENBQUM7QUFBQ3JDLGVBQU8sRUFBRTtBQUFWLE9BQUQsQ0FBTixDQU40RyxDQU81Rzs7QUFDQXFDLFlBQU0sQ0FBQztBQUFDckMsZUFBTyxFQUFFLFFBQVY7QUFBb0J1QyxlQUFPLEVBQUVDLCtEQUFNQTtBQUFuQyxPQUFELENBQU47O0FBQ0EsV0FBSyxNQUFNbEUsVUFBWCxJQUF5QmMsZ0RBQVEsQ0FBQ0MsV0FBbEMsRUFBK0M7QUFDM0MsWUFBSWYsVUFBVSxDQUFDbUUsUUFBZixFQUF5QjtBQUN6QkosY0FBTSxDQUFDO0FBQ0hyQyxpQkFBTyxFQUFFMUIsVUFBVSxDQUFDb0UsSUFEakI7QUFFSEMsZUFBSyxFQUFFckUsVUFBVSxDQUFDb0UsSUFGZjtBQUdISCxpQkFBTyxFQUFFLE1BQU0sS0FBSzVDLGtCQUFMLENBQXdCckIsVUFBVSxDQUFDWSxFQUFuQyxFQUF1Q1osVUFBVSxDQUFDb0UsSUFBbEQsRUFBd0RwRSxVQUFVLENBQUMyQixRQUFuRSxFQUE2RWIsZ0RBQVEsQ0FBQ1osS0FBVCxDQUFlRixVQUFVLENBQUNZLEVBQTFCLENBQTdFLEVBQTRHRSxnREFBUSxDQUFDd0QsZUFBVCxDQUF5QmxELElBQXpCLENBQThCTixnREFBOUIsRUFBd0NkLFVBQVUsQ0FBQ1ksRUFBbkQsQ0FBNUcsRUFBb0taLFVBQVUsQ0FBQ3dCLE1BQVgsR0FBb0J4QixVQUFVLENBQUN3QixNQUEvQixHQUF3QyxJQUE1TTtBQUhaLFNBQUQsQ0FBTjtBQUtIOztBQUNELFdBQUssTUFBTStDLEtBQVgsSUFBb0J6RCxnREFBUSxDQUFDRyxNQUFULENBQWdCdUQsSUFBaEIsQ0FBcUIsQ0FBQ0MsQ0FBRCxFQUFHQyxDQUFILEtBQVNELENBQUMsQ0FBQ0UsS0FBRixHQUFVRCxDQUFDLENBQUNDLEtBQTFDLENBQXBCLEVBQXNFO0FBQ2xFLFlBQUlKLEtBQUssQ0FBQ0ssYUFBVixFQUF5QkwsS0FBSyxDQUFDTSxPQUFOLEdBQWlCQyxLQUFELElBQVdQLEtBQUssQ0FBQ0ssYUFBTixDQUFvQnZCLFVBQXBCLEVBQWdDeUIsS0FBaEMsRUFBdUNwQixXQUF2QyxDQUEzQjtBQUN6QkssY0FBTSxDQUFDUSxLQUFELENBQU47QUFDSDtBQUNKLEtBckJEO0FBc0JBLFNBQUt6RSxXQUFMO0FBQ0g7O0FBRURBLGFBQVcsR0FBRztBQUNWLFVBQU1pRixTQUFTLEdBQUdDLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIscUJBQTFCLEVBQWlEQyxtQkFBakQsQ0FBcUVDLEtBQXJFLENBQTJFLEdBQTNFLEVBQWdGLENBQWhGLENBQWxCO0FBQ0EsVUFBTUMsSUFBSSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBd0IsSUFBR1AsU0FBVSxFQUFyQyxDQUFiO0FBQ0EsUUFBSSxDQUFDSyxJQUFMLEVBQVc7QUFDWCxVQUFNRyxTQUFTLEdBQUdDLGlEQUFTLENBQUNDLGVBQVYsQ0FBMEJELGlEQUFTLENBQUNFLGdCQUFWLENBQTJCTixJQUEzQixDQUExQixFQUE0RG5DLENBQUMsSUFBSUEsQ0FBQyxJQUFJQSxDQUFDLENBQUNFLGdCQUF4RSxFQUEwRjtBQUFDd0MsY0FBUSxFQUFFLENBQUMsUUFBRCxFQUFXLFdBQVg7QUFBWCxLQUExRixDQUFsQjtBQUNBLFFBQUlKLFNBQUosRUFBZUEsU0FBUyxDQUFDekYsV0FBVjtBQUNsQjs7QUEzRnFDLENBQTNCLEVBQWYiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlcywgUGF0Y2hlciwgUmVhY3RDb21wb25lbnRzLCBVdGlsaXRpZXMsIFNldHRpbmdzLCBFdmVudHMsIERhdGFTdG9yZX0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBBZGRvbkxpc3QgZnJvbSBcIi4vc2V0dGluZ3MvYWRkb25saXN0XCI7XHJcbmltcG9ydCBTZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzL2dyb3VwXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3NldHRpbmdzL3RpdGxlXCI7XHJcbmltcG9ydCBIZWFkZXIgZnJvbSBcIi4vc2V0dGluZ3Mvc2lkZWJhcmhlYWRlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFNldHRpbmdzUmVuZGVyZXIge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMucGF0Y2hTZWN0aW9ucygpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInN0cmluZ3MtdXBkYXRlZFwiLCB0aGlzLmZvcmNlVXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRyYXdlclRvZ2dsZShjb2xsZWN0aW9uLCBncm91cCwgc3RhdGUpIHtcclxuICAgICAgICBjb25zdCBkcmF3ZXJTdGF0ZXMgPSBEYXRhU3RvcmUuZ2V0QkREYXRhKFwiZHJhd2VyU3RhdGVzXCIpIHx8IHt9O1xyXG4gICAgICAgIGlmICghZHJhd2VyU3RhdGVzW2NvbGxlY3Rpb25dKSBkcmF3ZXJTdGF0ZXNbY29sbGVjdGlvbl0gPSB7fTtcclxuICAgICAgICBkcmF3ZXJTdGF0ZXNbY29sbGVjdGlvbl1bZ3JvdXBdID0gc3RhdGU7XHJcbiAgICAgICAgRGF0YVN0b3JlLnNldEJERGF0YShcImRyYXdlclN0YXRlc1wiLCBkcmF3ZXJTdGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERyYXdlclN0YXRlKGNvbGxlY3Rpb24sIGdyb3VwLCBkZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICBjb25zdCBkcmF3ZXJTdGF0ZXMgPSBEYXRhU3RvcmUuZ2V0QkREYXRhKFwiZHJhd2VyU3RhdGVzXCIpIHx8IHt9O1xyXG4gICAgICAgIGlmICghZHJhd2VyU3RhdGVzW2NvbGxlY3Rpb25dKSByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIGlmICghZHJhd2VyU3RhdGVzW2NvbGxlY3Rpb25dLmhhc093blByb3BlcnR5KGdyb3VwKSkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICByZXR1cm4gZHJhd2VyU3RhdGVzW2NvbGxlY3Rpb25dW2dyb3VwXTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZShvbkNoYW5nZSkge1xyXG4gICAgICAgIHJldHVybiAoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IFNldHRpbmdzLmNvbGxlY3Rpb25zLmxlbmd0aCArIFNldHRpbmdzLnBhbmVscy5sZW5ndGg7XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gU2V0dGluZ3MuY29sbGVjdGlvbnMubGVuZ3RoICsgU2V0dGluZ3MucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICAgICAgaWYgKGJlZm9yZSAhPSBhZnRlcikgc2V0VGltZW91dCh0aGlzLmZvcmNlVXBkYXRlLmJpbmQodGhpcyksIDUwKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkU2V0dGluZ3NQYW5lbChpZCwgdGl0bGUsIGNvbmZpZywgc3RhdGUsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgY29uZmlnLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHNlY3Rpb24uc2V0dGluZ3MuZm9yRWFjaChpdGVtID0+IGl0ZW0udmFsdWUgPSBzdGF0ZVtzZWN0aW9uLmlkXVtpdGVtLmlkXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2V0dGluZ3NQYW5lbChpZCwgdGl0bGUsIGNvbmZpZywgdGhpcy5vbkNoYW5nZShvbkNoYW5nZSksIGJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZ3NQYW5lbChpZCwgdGl0bGUsIGdyb3Vwcywgb25DaGFuZ2UsIGJ1dHRvbiA9IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gW1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IHRpdGxlLCBidXR0b246IGJ1dHRvbn0pLCBncm91cHMubWFwKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc0dyb3VwLCBPYmplY3QuYXNzaWduKHt9LCBzZWN0aW9uLCB7XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogb25DaGFuZ2UsXHJcbiAgICAgICAgICAgICAgICBvbkRyYXdlclRvZ2dsZTogc3RhdGUgPT4gdGhpcy5vbkRyYXdlclRvZ2dsZShpZCwgc2VjdGlvbi5pZCwgc3RhdGUpLFxyXG4gICAgICAgICAgICAgICAgc2hvd246IHRoaXMuZ2V0RHJhd2VyU3RhdGUoaWQsIHNlY3Rpb24uaWQsIHNlY3Rpb24uaGFzT3duUHJvcGVydHkoXCJzaG93blwiKSA/IHNlY3Rpb24uc2hvd24gOiB0cnVlKVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFkZG9uUGFuZWwodGl0bGUsIGFkZG9uTGlzdCwgYWRkb25TdGF0ZSwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQWRkb25MaXN0LCBPYmplY3QuYXNzaWduKHt9LCB7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgYWRkb25MaXN0OiBhZGRvbkxpc3QsXHJcbiAgICAgICAgICAgIGFkZG9uU3RhdGU6IGFkZG9uU3RhdGVcclxuICAgICAgICB9LCBvcHRpb25zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcGF0Y2hTZWN0aW9ucygpIHtcclxuICAgICAgICBjb25zdCBVc2VyU2V0dGluZ3MgPSBhd2FpdCBSZWFjdENvbXBvbmVudHMuZ2V0KFwiVXNlclNldHRpbmdzXCIsIG0gPT4gbS5wcm90b3R5cGUgJiYgbS5wcm90b3R5cGUuZ2VuZXJhdGVTZWN0aW9ucyk7XHJcbiAgICAgICAgUGF0Y2hlci5hZnRlcihcIlNldHRpbmdzTWFuYWdlclwiLCBVc2VyU2V0dGluZ3MucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLm1lbW9pemVkUHJvcHMuaWQgPSBcInVzZXItc2V0dGluZ3NcIjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmFmdGVyKFwiU2V0dGluZ3NNYW5hZ2VyXCIsIFVzZXJTZXR0aW5ncy5wcm90b3R5cGUsIFwiZ2VuZXJhdGVTZWN0aW9uc1wiLCAodGhpc09iamVjdCwgYXJncywgcmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gcmV0dXJuVmFsdWUuZmluZEluZGV4KHMgPT4gcy5zZWN0aW9uLnRvTG93ZXJDYXNlKCkgPT0gXCJsaW51eFwiKSArIDE7XHJcbiAgICAgICAgICAgIGNvbnN0IGluc2VydCA9IChzZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZS5zcGxpY2UobG9jYXRpb24sIDAsIHNlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgbG9jYXRpb24rKztcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkRJVklERVJcIn0pO1xyXG4gICAgICAgICAgICAvLyBIZWFkZXJcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkNVU1RPTVwiLCBlbGVtZW50OiBIZWFkZXJ9KTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIFNldHRpbmdzLmNvbGxlY3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sbGVjdGlvbi5kaXNhYmxlZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBpbnNlcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb246IGNvbGxlY3Rpb24ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICgpID0+IHRoaXMuYnVpbGRTZXR0aW5nc1BhbmVsKGNvbGxlY3Rpb24uaWQsIGNvbGxlY3Rpb24ubmFtZSwgY29sbGVjdGlvbi5zZXR0aW5ncywgU2V0dGluZ3Muc3RhdGVbY29sbGVjdGlvbi5pZF0sIFNldHRpbmdzLm9uU2V0dGluZ0NoYW5nZS5iaW5kKFNldHRpbmdzLCBjb2xsZWN0aW9uLmlkKSwgY29sbGVjdGlvbi5idXR0b24gPyBjb2xsZWN0aW9uLmJ1dHRvbiA6IG51bGwpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhbmVsIG9mIFNldHRpbmdzLnBhbmVscy5zb3J0KChhLGIpID0+IGEub3JkZXIgPiBiLm9yZGVyKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhbmVsLmNsaWNrTGlzdGVuZXIpIHBhbmVsLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHBhbmVsLmNsaWNrTGlzdGVuZXIodGhpc09iamVjdCwgZXZlbnQsIHJldHVyblZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGluc2VydChwYW5lbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yY2VVcGRhdGUoKSB7XHJcbiAgICAgICAgY29uc3Qgdmlld0NsYXNzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInN0YW5kYXJkU2lkZWJhclZpZXdcIikuc3RhbmRhcmRTaWRlYmFyVmlldy5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3ZpZXdDbGFzc31gKTtcclxuICAgICAgICBpZiAoIW5vZGUpIHJldHVybjtcclxuICAgICAgICBjb25zdCBzdGF0ZU5vZGUgPSBVdGlsaXRpZXMuZmluZEluUmVhY3RUcmVlKFV0aWxpdGllcy5nZXRSZWFjdEluc3RhbmNlKG5vZGUpLCBtID0+IG0gJiYgbS5nZW5lcmF0ZVNlY3Rpb25zLCB7d2Fsa2FibGU6IFtcInJldHVyblwiLCBcInN0YXRlTm9kZVwiXX0pO1xyXG4gICAgICAgIGlmIChzdGF0ZU5vZGUpIHN0YXRlTm9kZS5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings.js\n");
/***/ }),
@@ -1019,7 +1018,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modu
/***/ (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 AddonCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_delete__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/delete */ \"./src/ui/icons/delete.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/settings/components/switch.jsx\");\n/* harmony import */ var _errorboundary__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../errorboundary */ \"./src/ui/errorboundary.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nclass AddonCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n settingsOpen: false\n };\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.closeSettings = this.closeSettings.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.addon = this.props.reload(this.props.addon.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (!this.state.settingsOpen) return;\n if (this.settingsPanel instanceof Node) this.panelRef.current.appendChild(this.settingsPanel);\n setImmediate(() => {\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 thisNode = this.panelRef.current;\n const container = thisNode.closest(\".scrollerBase-289Jih\");\n if (!container || !isHidden(container, thisNode)) return;\n const thisNodeOffset = modules__WEBPACK_IMPORTED_MODULE_0__[\"DOM\"].offset(thisNode);\n const containerOffset = modules__WEBPACK_IMPORTED_MODULE_0__[\"DOM\"].offset(container);\n const original = container.scrollTop;\n const endPoint = thisNodeOffset.top - containerOffset.top + container.scrollTop - 30;\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DOM\"].animate({\n duration: 300,\n update: function (progress) {\n if (endPoint > original) container.scrollTop = original + progress * (endPoint - original);else container.scrollTop = original - progress * (original - endPoint);\n }\n });\n });\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n onChange() {\n this.props.onChange && this.props.onChange(this.props.addon.id);\n this.props.enabled = !this.props.enabled;\n this.forceUpdate();\n }\n\n showSettings() {\n if (!this.props.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n closeSettings() {\n if (this.settingsPanel instanceof Node) this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-name\"\n }, name);\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-version\"\n }, version);\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-author\"\n }, author);\n return title.flat();\n }\n\n get settingsComponent() {\n const addon = this.props.addon;\n const name = this.getString(addon.name);\n\n try {\n this.settingsPanel = this.props.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"Addon Settings\", \"Unable to get settings panel for \" + name + \".\", err);\n }\n\n const props = {\n id: `${name}-settings`,\n className: \"addon-settings\",\n ref: this.panelRef\n };\n\n if (typeof this.settingsPanel == \"string\") {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"Addon Settings\", \"Using a DOMString is officially deprecated.\");\n props.dangerouslySetInnerHTML = this.settingsPanel;\n }\n\n let child = null;\n if (typeof this.settingsPanel === \"function\") child = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(this.settingsPanel, null);\n if (this.settingsPanel.$$typeof && this.settingsPanel.$$typeof === Symbol.for(\"react.element\")) child = this.settingsPanel;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-card settings-open bd-switch-item\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-close\",\n onClick: this.closeSettings\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_errorboundary__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, child)));\n }\n\n buildLink(which) {\n const url = this.props.addon[which];\n if (!url) return null;\n const link = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bd-link bd-link-website\",\n href: url,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons[which]);\n\n if (which == \"invite\") {\n link.props.onClick = function (event) {\n event.preventDefault();\n event.stopPropagation();\n let code = url;\n const tester = /\\.gg\\/(.*)$/;\n if (tester.test(code)) code = code.match(tester)[1];\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DiscordModules\"].LayerStack.popLayer();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DiscordModules\"].InviteActions.acceptInviteAndTransitionToInviteChannel(code);\n };\n }\n\n return link;\n }\n\n get footer() {\n const links = [\"website\", \"source\", \"invite\", \"donate\", \"patreon\"];\n if (!links.some(l => this.props.addon[l]) && !this.props.hasSettings) return null;\n const linkComponents = links.map(this.buildLink.bind(this)).filter(c => c);\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-footer\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-links\"\n }, linkComponents.map((comp, i) => i < linkComponents.length - 1 ? [comp, \" | \"] : comp).flat()), this.props.hasSettings && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bd-button bd-button-addon-settings\",\n disabled: !this.props.enabled\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.addonSettings));\n }\n\n makeButton(title, children, action) {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: title\n }, props => {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", _extends({}, props, {\n className: \"bd-addon-button\",\n onClick: action\n }), children);\n });\n }\n\n render() {\n if (this.state.settingsOpen) return this.settingsComponent;\n const addon = this.props.addon;\n const name = this.getString(addon.name);\n const author = this.getString(addon.author);\n const description = this.getString(addon.description);\n const version = this.getString(addon.version);\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: `${addon.id}-card`,\n className: \"bd-addon-card settings-closed\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-title\"\n }, this.buildTitle(name, version, author)), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-controls\"\n }, this.props.editAddon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.editAddon, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null), this.props.editAddon), this.props.deleteAddon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.deleteAddon, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_delete__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null), this.props.deleteAddon), this.props.showReloadIcon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.reload, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\"\n }), this.reload), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_switch__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n checked: this.props.enabled,\n onChange: this.onChange\n }))), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-description-wrap scroller-wrap fade\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-description scroller\"\n }, description)), this.footer);\n }\n\n}\nconst originalRender = AddonCard.prototype.render;\nObject.defineProperty(AddonCard.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"AddonCard\", \"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2FkZG9uY2FyZC5qc3g/NjM3MyJdLCJuYW1lcyI6WyJUb29sdGlwIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwiQWRkb25DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic3RhdGUiLCJzZXR0aW5nc09wZW4iLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJvbkNoYW5nZSIsImJpbmQiLCJyZWxvYWQiLCJzaG93U2V0dGluZ3MiLCJjbG9zZVNldHRpbmdzIiwiYWRkb24iLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsInNldEltbWVkaWF0ZSIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJ0aGlzTm9kZSIsImNsb3Nlc3QiLCJ0aGlzTm9kZU9mZnNldCIsIkRPTSIsIm9mZnNldCIsImNvbnRhaW5lck9mZnNldCIsIm9yaWdpbmFsIiwiZW5kUG9pbnQiLCJ0b3AiLCJhbmltYXRlIiwiZHVyYXRpb24iLCJ1cGRhdGUiLCJwcm9ncmVzcyIsImdldFN0cmluZyIsInZhbHVlIiwidG9TdHJpbmciLCJlbmFibGVkIiwiaGFzU2V0dGluZ3MiLCJzZXRTdGF0ZSIsImlubmVySFRNTCIsImJ1aWxkVGl0bGUiLCJuYW1lIiwidmVyc2lvbiIsImF1dGhvciIsInRpdGxlIiwiU3RyaW5ncyIsIkFkZG9ucyIsInNwbGl0IiwibmFtZUluZGV4IiwiZmluZEluZGV4IiwicyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ2ZXJzaW9uSW5kZXgiLCJhdXRob3JJbmRleCIsImZsYXQiLCJzZXR0aW5nc0NvbXBvbmVudCIsImdldFNldHRpbmdzUGFuZWwiLCJlcnIiLCJMb2dnZXIiLCJzdGFja3RyYWNlIiwicmVmIiwid2FybiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiY2hpbGQiLCIkJHR5cGVvZiIsIlN5bWJvbCIsImZvciIsImJ1aWxkTGluayIsIndoaWNoIiwidXJsIiwibGluayIsIm9uQ2xpY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY29kZSIsInRlc3RlciIsInRlc3QiLCJtYXRjaCIsIkRpc2NvcmRNb2R1bGVzIiwiTGF5ZXJTdGFjayIsInBvcExheWVyIiwiSW52aXRlQWN0aW9ucyIsImFjY2VwdEludml0ZUFuZFRyYW5zaXRpb25Ub0ludml0ZUNoYW5uZWwiLCJmb290ZXIiLCJsaW5rcyIsInNvbWUiLCJsIiwibGlua0NvbXBvbmVudHMiLCJtYXAiLCJmaWx0ZXIiLCJjIiwiY29tcCIsImkiLCJsZW5ndGgiLCJhZGRvblNldHRpbmdzIiwibWFrZUJ1dHRvbiIsImNoaWxkcmVuIiwiYWN0aW9uIiwicmVuZGVyIiwiZGVzY3JpcHRpb24iLCJlZGl0QWRkb24iLCJkZWxldGVBZGRvbiIsInNob3dSZWxvYWRJY29uIiwib3JpZ2luYWxSZW5kZXIiLCJwcm90b3R5cGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJzZXQiLCJnZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFNQSxPQUFPLEdBQUdDLHNEQUFjLENBQUNDLGdCQUFmLENBQWdDLFNBQWhDLENBQWhCO0FBRWUsTUFBTUMsU0FBTixTQUF3QkMsNkNBQUssQ0FBQ0MsU0FBOUIsQ0FBd0M7QUFFbkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxrQkFBWSxFQUFFO0FBREwsS0FBYjtB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LGNBQVAsQ0FBc0J6SCxTQUFTLENBQUN1SCxTQUFoQyxFQUEyQyxRQUEzQyxFQUFxRDtBQUNqREcsWUFBVSxFQUFFLEtBRHFDO0FBRWpEQyxjQUFZLEVBQUUsS0FGbUM7QUFHakRDLEtBQUcsRUFBRSxZQUFXO0FBQUNwRCxrREFBTSxDQUFDRyxJQUFQLENBQVksV0FBWixFQUF5QixxR0FBekI7QUFBaUksR0FIakc7QUFJakRrRCxLQUFHLEVBQUUsTUFBTVA7QUFKc0MsQ0FBckQiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvYWRkb25jYXJkLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIExvZ2dlciwgU3RyaW5ncywgV2VicGFja01vZHVsZXMsIERPTSwgRGlzY29yZE1vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBDbG9zZUJ1dHRvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2VcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5pbXBvcnQgRWRpdEljb24gZnJvbSBcIi4uL2ljb25zL2VkaXRcIjtcclxuaW1wb3J0IERlbGV0ZUljb24gZnJvbSBcIi4uL2ljb25zL2RlbGV0ZVwiO1xyXG5pbXBvcnQgU3dpdGNoIGZyb20gXCIuL2NvbXBvbmVudHMvc3dpdGNoXCI7XHJcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gIFwiLi4vZXJyb3Jib3VuZGFyeVwiO1xyXG5cclxuY29uc3QgVG9vbHRpcCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRkb25DYXJkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBzZXR0aW5nc09wZW46IGZhbHNlXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc1BhbmVsID0gXCJcIjtcclxuICAgICAgICB0aGlzLnBhbmVsUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2hvd1NldHRpbmdzID0gdGhpcy5zaG93U2V0dGluZ3MuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNsb3NlU2V0dGluZ3MgPSB0aGlzLmNsb3NlU2V0dGluZ3MuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnJlbG9hZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucHJvcHMuYWRkb24gPSB0aGlzLnByb3BzLnJlbG9hZCh0aGlzLnByb3BzLmFkZG9uLmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5zZXR0aW5nc09wZW4pIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgTm9kZSkgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NQYW5lbCk7XHJcblxyXG4gICAgICAgIHNldEltbWVkaWF0ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gKGNvbnRhaW5lciwgZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY1RvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjQm90dG9tID0gY1RvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlVG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlQm90dG9tID0gZVRvcCArIGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICAoZVRvcCA8IGNUb3AgfHwgZUJvdHRvbSA+IGNCb3R0b20pO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgdGhpc05vZGUgPSB0aGlzLnBhbmVsUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXNOb2RlLmNsb3Nlc3QoXCIuc2Nyb2xsZXJCYXNlLTI4OUppaFwiKTtcclxuICAgICAgICAgICAgaWYgKCFjb250YWluZXIgfHwgIWlzSGlkZGVuKGNvbnRhaW5lciwgdGhpc05vZGUpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHRoaXNOb2RlT2Zmc2V0ID0gRE9NLm9mZnNldCh0aGlzTm9kZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lck9mZnNldCA9IERPTS5vZmZzZXQoY29udGFpbmVyKTtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBjb250YWluZXIuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IHRoaXNOb2RlT2Zmc2V0LnRvcCAtIGNvbnRhaW5lck9mZnNldC50b3AgKyBjb250YWluZXIuc2Nyb2xsVG9wIC0gMzA7XHJcbiAgICAgICAgICAgIERPTS5hbmltYXRlKHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAsXHJcbiAgICAgICAgICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uKHByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVuZFBvaW50ID4gb3JpZ2luYWwpIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBvcmlnaW5hbCArIChwcm9ncmVzcyAqIChlbmRQb2ludCAtIG9yaWdpbmFsKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBjb250YWluZXIuc2Nyb2xsVG9wID0gb3JpZ2luYWwgLSAocHJvZ3Jlc3MgKiAob3JpZ2luYWwgLSBlbmRQb2ludCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodmFsdWUpIHtyZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7fVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UgJiYgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmFkZG9uLmlkKTtcclxuICAgICAgICB0aGlzLnByb3BzLmVuYWJsZWQgPSAhdGhpcy5wcm9wcy5lbmFibGVkO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmhhc1NldHRpbmdzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2V0dGluZ3NPcGVuOiB0cnVlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VTZXR0aW5ncygpIHtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgTm9kZSkgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2V0dGluZ3NPcGVuOiBmYWxzZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkVGl0bGUobmFtZSwgdmVyc2lvbiwgYXV0aG9yKSB7XHJcbiAgICAgICAgY29uc3QgdGl0bGUgPSBTdHJpbmdzLkFkZG9ucy50aXRsZS5zcGxpdCgvKHt7W0EtWmEtel0rfX0pLyk7XHJcbiAgICAgICAgY29uc3QgbmFtZUluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7bmFtZX19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW25hbWVJbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkLW5hbWVcIn0sIG5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb25JbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e3ZlcnNpb259fVwiKTtcclxuICAgICAgICBpZiAobmFtZUluZGV4KSB0aXRsZVt2ZXJzaW9uSW5kZXhdID0gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZC12ZXJzaW9uXCJ9LCB2ZXJzaW9uKTtcclxuICAgICAgICBjb25zdCBhdXRob3JJbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e2F1dGhvcn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW2F1dGhvckluZGV4XSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmQtYXV0aG9yXCJ9LCBhdXRob3IpO1xyXG4gICAgICAgIHJldHVybiB0aXRsZS5mbGF0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNldHRpbmdzQ29tcG9uZW50KCkge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdGhpcy5wcm9wcy5hZGRvbjtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRTdHJpbmcoYWRkb24ubmFtZSk7XHJcbiAgICAgICAgdHJ5IHsgdGhpcy5zZXR0aW5nc1BhbmVsID0gdGhpcy5wcm9wcy5nZXRTZXR0aW5nc1BhbmVsKCk7IH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7IExvZ2dlci5zdGFja3RyYWNlKFwiQWRkb24gU2V0dGluZ3NcIiwgXCJVbmFibGUgdG8gZ2V0IHNldHRpbmdzIHBhbmVsIGZvciBcIiArIG5hbWUgKyBcIi5cIiwgZXJyKTsgfVxyXG5cclxuICAgICAgICBjb25zdCBwcm9wcyA9IHtpZDogYCR7bmFtZX0tc2V0dGluZ3NgLCBjbGFzc05hbWU6IFwiYWRkb24tc2V0dGluZ3NcIiwgcmVmOiB0aGlzLnBhbmVsUmVmfTtcclxuICAgICAgICBpZiAodHlwZW9mKHRoaXMuc2V0dGluZ3NQYW5lbCkgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICBMb2dnZXIud2FybihcIkFkZG9uIFNldHRpbmdzXCIsIFwiVXNpbmcgYSBET01TdHJpbmcgaXMgb2ZmaWNpYWxseSBkZXByZWNhdGVkLlwiKTtcclxuICAgICAgICAgICAgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB0aGlzLnNldHRpbmdzUGFuZWw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgY2hpbGQgPSBudWxsO1xyXG4gICAgICAgIGlmICh0eXBlb2YodGhpcy5zZXR0aW5nc1BhbmVsKSA9PT0gXCJmdW5jdGlvblwiKSBjaGlsZCA9IDx0aGlzLnNldHRpbmdzUGFuZWwgLz47XHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3NQYW5lbC4kJHR5cGVvZiAmJiB0aGlzLnNldHRpbmdzUGFuZWwuJCR0eXBlb2YgPT09IFN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpKSBjaGlsZCA9IHRoaXMuc2V0dGluZ3NQYW5lbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtYWRkb24tY2FyZCBzZXR0aW5ncy1vcGVuIGJkLXN3aXRjaC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jbG9zZVwiIG9uQ2xpY2s9e3RoaXMuY2xvc2VTZXR0aW5nc30+PENsb3NlQnV0dG9uIC8+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiB7Li4ucHJvcHN9PjxFcnJvckJvdW5kYXJ5PntjaGlsZH08L0Vycm9yQm91bmRhcnk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRMaW5rKHdoaWNoKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5wcm9wcy5hZGRvblt3aGljaF07XHJcbiAgICAgICAgaWYgKCF1cmwpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGNvbnN0IGxpbmsgPSA8YSBjbGFzc05hbWU9XCJiZC1saW5rIGJkLWxpbmstd2Vic2l0ZVwiIGhyZWY9e3VybH0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPntTdHJpbmdzLkFkZG9uc1t3aGljaF19PC9hPjtcclxuICAgICAgICBpZiAod2hpY2ggPT0gXCJpbnZpdGVcIikge1xyXG4gICAgICAgICAgICBsaW5rLnByb3BzLm9uQ2xpY2sgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNvZGUgPSB1cmw7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ZXIgPSAvXFwuZ2dcXC8oLiopJC87XHJcbiAgICAgICAgICAgICAgICBpZiAodGVzdGVyLnRlc3QoY29kZSkpIGNvZGUgPSBjb2RlLm1hdGNoKHRlc3RlcilbMV07XHJcbiAgICAgICAgICAgICAgICBEaXNjb3JkTW9kdWxlcy5MYXllclN0YWNrLnBvcExheWVyKCk7XHJcbiAgICAgICAgICAgICAgICBEaXNjb3JkTW9kdWxlcy5JbnZpdGVBY3Rpb25zLmFjY2VwdEludml0ZUFuZFRyYW5zaXRpb25Ub0ludml0ZUNoYW5uZWwoY29kZSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsaW5rO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb290ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgbGlua3MgPSBbXCJ3ZWJzaXRlXCIsIFwic291cmNlXCIsIFwiaW52aXRlXCIsIFwiZG9uYXRlXCIsIFwicGF0cmVvblwiXTtcclxuICAgICAgICBpZiAoIWxpbmtzLnNvbWUobCA9PiB0aGlzLnByb3BzLmFkZG9uW2xdKSAmJiAhdGhpcy5wcm9wcy5oYXNTZXR0aW5ncykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY29uc3QgbGlua0NvbXBvbmVudHMgPSBsaW5rcy5tYXAodGhpcy5idWlsZExpbmsuYmluZCh0aGlzKSkuZmlsdGVyKGMgPT4gYyk7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmQtbGlua3NcIj57bGlua0NvbXBvbmVudHMubWFwKChjb21wLCBpKSA9PiBpIDwgbGlua0NvbXBvbmVudHMubGVuZ3RoIC0gMSA/IFtjb21wLCBcIiB8IFwiXSA6IGNvbXApLmZsYXQoKX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuaGFzU2V0dGluZ3MgJiYgPGJ1dHRvbiBvbkNsaWNrPXt0aGlzLnNob3dTZXR0aW5nc30gY2xhc3NOYW1lPVwiYmQtYnV0dG9uIGJkLWJ1dHRvbi1hZGRvbi1zZXR0aW5nc1wiIGRpc2FibGVkPXshdGhpcy5wcm9wcy5lbmFibGVkfT57U3RyaW5ncy5BZGRvbnMuYWRkb25TZXR0aW5nc308L2J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUJ1dHRvbih0aXRsZSwgY2hpbGRyZW4sIGFjdGlvbikge1xyXG4gICAgICAgIHJldHVybiAgPFRvb2x0aXAgY29sb3I9XCJibGFja1wiIHBvc2l0aW9uPVwidG9wXCIgdGV4dD17dGl0bGV9PlxyXG4gICAgICAgICAgICAgICAgICAgIHsocHJvcHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYgey4uLnByb3BzfSBjbGFzc05hbWU9XCJiZC1hZGRvbi1idXR0b25cIiBvbkNsaWNrPXthY3Rpb259PntjaGlsZHJlbn08L2Rpdj47XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD47XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3BlbikgcmV0dXJuIHRoaXMuc2V0dGluZ3NDb21wb25lbnQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdGhpcy5wcm9wcy5hZGRvbjtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRTdHJpbmcoYWRkb24ubmFtZSk7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gdGhpcy5nZXRTdHJpbmcoYWRkb24uYXV0aG9yKTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuZ2V0U3RyaW5nKGFkZG9uLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5nZXRTdHJpbmcoYWRkb24udmVyc2lvbik7XHJcblxyXG4gICAgICAgIHJldHVybiA8ZGl2IGlkPXtgJHthZGRvbi5pZH0tY2FyZGB9IGNsYXNzTmFtZT1cImJkLWFkZG9uLWNhcmQgc2V0dGluZ3MtY2xvc2VkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1hZGRvbi1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJkLXRpdGxlXCI+e3RoaXMuYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5lZGl0QWRkb24gJiYgdGhpcy5tYWtlQnV0dG9uKFN0cmluZ3MuQWRkb25zLmVkaXRBZGRvbiwgPEVkaXRJY29uIC8+LCB0aGlzLnByb3BzLmVkaXRBZGRvbil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuZGVsZXRlQWRkb24gJiYgdGhpcy5tYWtlQnV0dG9uKFN0cmluZ3MuQWRkb25zLmRlbGV0ZUFkZG9uLCA8RGVsZXRlSWNvbiAvPiwgdGhpcy5wcm9wcy5kZWxldGVBZGRvbil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd1JlbG9hZEljb24gJiYgdGhpcy5tYWtlQnV0dG9uKFN0cmluZ3MuQWRkb25zLnJlbG9hZCwgPFJlbG9hZEljb24gY2xhc3NOYW1lPVwiYmQtcmVsb2FkIGJkLXJlbG9hZC1jYXJkXCIgLz4sIHRoaXMucmVsb2FkKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3dpdGNoIGNoZWNrZWQ9e3RoaXMucHJvcHMuZW5hYmxlZH0gb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCI+PGRpdiBjbGFzc05hbWU9XCJiZC1kZXNjcmlwdGlvbiBzY3JvbGxlclwiPntkZXNjcmlwdGlvbn08L2Rpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5mb290ZXJ9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IG9yaWdpbmFsUmVuZGVyID0gQWRkb25DYXJkLnByb3RvdHlwZS5yZW5kZXI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZGRvbkNhcmQucHJvdG90eXBlLCBcInJlbmRlclwiLCB7XHJcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICBzZXQ6IGZ1bmN0aW9uKCkge0xvZ2dlci53YXJuKFwiQWRkb25DYXJkXCIsIFwiQWRkb24gcG9saWN5IGZvciBwbHVnaW5zICM1IGh0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvd2lraS9BZGRvbi1Qb2xpY2llcyNwbHVnaW5zXCIpO30sXHJcbiAgICBnZXQ6ICgpID0+IG9yaWdpbmFsUmVuZGVyXHJcbn0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/addoncard.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_delete__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/delete */ \"./src/ui/icons/delete.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/settings/components/switch.jsx\");\n/* harmony import */ var _errorboundary__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../errorboundary */ \"./src/ui/errorboundary.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nclass AddonCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n settingsOpen: false\n };\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.closeSettings = this.closeSettings.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.addon = this.props.reload(this.props.addon.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (!this.state.settingsOpen) return;\n if (this.settingsPanel instanceof Node) this.panelRef.current.appendChild(this.settingsPanel);\n setImmediate(() => {\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 thisNode = this.panelRef.current;\n const container = thisNode.closest(\".scrollerBase-289Jih\");\n if (!container || !isHidden(container, thisNode)) return;\n const thisNodeOffset = modules__WEBPACK_IMPORTED_MODULE_0__[\"DOM\"].offset(thisNode);\n const containerOffset = modules__WEBPACK_IMPORTED_MODULE_0__[\"DOM\"].offset(container);\n const original = container.scrollTop;\n const endPoint = thisNodeOffset.top - containerOffset.top + container.scrollTop - 30;\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DOM\"].animate({\n duration: 300,\n update: function (progress) {\n if (endPoint > original) container.scrollTop = original + progress * (endPoint - original);else container.scrollTop = original - progress * (original - endPoint);\n }\n });\n });\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n onChange() {\n this.props.onChange && this.props.onChange(this.props.addon.id);\n this.props.enabled = !this.props.enabled;\n this.forceUpdate();\n }\n\n showSettings() {\n if (!this.props.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n closeSettings() {\n if (this.settingsPanel instanceof Node) this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-name\"\n }, name);\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-version\"\n }, version);\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-author\"\n }, author);\n return title.flat();\n }\n\n get settingsComponent() {\n const addon = this.props.addon;\n const name = this.getString(addon.name);\n\n try {\n this.settingsPanel = this.props.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"Addon Settings\", \"Unable to get settings panel for \" + name + \".\", err);\n }\n\n const props = {\n id: `${name}-settings`,\n className: \"addon-settings\",\n ref: this.panelRef\n };\n\n if (typeof this.settingsPanel == \"string\") {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"Addon Settings\", \"Using a DOMString is officially deprecated.\");\n props.dangerouslySetInnerHTML = this.settingsPanel;\n }\n\n let child = null;\n if (typeof this.settingsPanel === \"function\") child = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(this.settingsPanel, null);\n if (this.settingsPanel.$$typeof && this.settingsPanel.$$typeof === Symbol.for(\"react.element\")) child = this.settingsPanel;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-card settings-open bd-switch-item\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-close\",\n onClick: this.closeSettings\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_errorboundary__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, child)));\n }\n\n buildLink(which) {\n const url = this.props.addon[which];\n if (!url) return null;\n const link = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bd-link bd-link-website\",\n href: url,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons[which]);\n\n if (which == \"invite\") {\n link.props.onClick = function (event) {\n event.preventDefault();\n event.stopPropagation();\n let code = url;\n const tester = /\\.gg\\/(.*)$/;\n if (tester.test(code)) code = code.match(tester)[1];\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DiscordModules\"].LayerStack.popLayer();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DiscordModules\"].InviteActions.acceptInviteAndTransitionToInviteChannel(code);\n };\n }\n\n return link;\n }\n\n get footer() {\n const links = [\"website\", \"source\", \"invite\", \"donate\", \"patreon\"];\n if (!links.some(l => this.props.addon[l]) && !this.props.hasSettings) return null;\n const linkComponents = links.map(this.buildLink.bind(this)).filter(c => c);\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-footer\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-links\"\n }, linkComponents.map((comp, i) => i < linkComponents.length - 1 ? [comp, \" | \"] : comp).flat()), this.props.hasSettings && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bd-button bd-button-addon-settings\",\n disabled: !this.props.enabled\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.addonSettings));\n }\n\n makeButton(title, children, action) {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: title\n }, props => {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", _extends({}, props, {\n className: \"bd-addon-button\",\n onClick: action\n }), children);\n });\n }\n\n render() {\n if (this.state.settingsOpen) return this.settingsComponent;\n const addon = this.props.addon;\n const name = this.getString(addon.name);\n const author = this.getString(addon.author);\n const description = this.getString(addon.description);\n const version = this.getString(addon.version);\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: `${addon.id}-card`,\n className: \"bd-addon-card settings-closed\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-title\"\n }, this.buildTitle(name, version, author)), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-controls\"\n }, this.props.editAddon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.editAddon, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null), this.props.editAddon), this.props.deleteAddon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.deleteAddon, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_delete__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null), this.props.deleteAddon), this.props.showReloadIcon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.reload, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\"\n }), this.reload), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_switch__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n checked: this.props.enabled,\n onChange: this.onChange\n }))), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-description-wrap scroller-wrap fade\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-description scroller\"\n }, description)), this.footer);\n }\n\n}\nconst originalRender = AddonCard.prototype.render;\nObject.defineProperty(AddonCard.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"AddonCard\", \"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvYWRkb25jYXJkLmpzeD82MzczIl0sIm5hbWVzIjpbIlRvb2x0aXAiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5RGlzcGxheU5hbWUiLCJBZGRvbkNhcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsInNldHRpbmdzT3BlbiIsInNldHRpbmdzUGFuZWwiLCJwYW5lbFJlZiIsImNyZWF0ZVJlZiIsIm9uQ2hhbmdlIiwiYmluZCIsInJlbG9hZCIsInNob3dTZXR0aW5ncyIsImNsb3NlU2V0dGluZ3MiLCJhZGRvbiIsImlkIiwiZm9yY2VVcGRhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJOb2RlIiwiY3VycmVudCIsImFwcGVuZENoaWxkIiwic2V0SW1tZWRpYXRlIiwiaXNIaWRkZW4iLCJjb250YWluZXIiLCJlbGVtZW50IiwiY1RvcCIsInNjcm9sbFRvcCIsImNCb3R0b20iLCJjbGllbnRIZWlnaHQiLCJlVG9wIiwib2Zmc2V0VG9wIiwiZUJvdHRvbSIsInRoaXNOb2RlIiwiY2xvc2VzdCIsInRoaXNOb2RlT2Zmc2V0IiwiRE9NIiwib2Zmc2V0IiwiY29udGFpbmVyT2Zmc2V0Iiwib3JpZ2luYWwiLCJlbmRQb2ludCIsInRvcCIsImFuaW1hdGUiLCJkdXJhdGlvbiIsInVwZGF0ZSIsInByb2dyZXNzIiwiZ2V0U3RyaW5nIiwidmFsdWUiLCJ0b1N0cmluZyIsImVuYWJsZWQiLCJoYXNTZXR0aW5ncyIsInNldFN0YXRlIiwiaW5uZXJIVE1MIiwiYnVpbGRUaXRsZSIsIm5hbWUiLCJ2ZXJzaW9uIiwiYXV0aG9yIiwidGl0bGUiLCJTdHJpbmdzIiwiQWRkb25zIiwic3BsaXQiLCJuYW1lSW5kZXgiLCJmaW5kSW5kZXgiLCJzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInZlcnNpb25JbmRleCIsImF1dGhvckluZGV4IiwiZmxhdCIsInNldHRpbmdzQ29tcG9uZW50IiwiZ2V0U2V0dGluZ3NQYW5lbCIsImVyciIsIkxvZ2dlciIsInN0YWNrdHJhY2UiLCJyZWYiLCJ3YXJuIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjaGlsZCIsIiQkdHlwZW9mIiwiU3ltYm9sIiwiZm9yIiwiYnVpbGRMaW5rIiwid2hpY2giLCJ1cmwiLCJsaW5rIiwib25DbGljayIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJjb2RlIiwidGVzdGVyIiwidGVzdCIsIm1hdGNoIiwiRGlzY29yZE1vZHVsZXMiLCJMYXllclN0YWNrIiwicG9wTGF5ZXIiLCJJbnZpdGVBY3Rpb25zIiwiYWNjZXB0SW52aXRlQW5kVHJhbnNpdGlvblRvSW52aXRlQ2hhbm5lbCIsImZvb3RlciIsImxpbmtzIiwic29tZSIsImwiLCJsaW5rQ29tcG9uZW50cyIsIm1hcCIsImZpbHRlciIsImMiLCJjb21wIiwiaSIsImxlbmd0aCIsImFkZG9uU2V0dGluZ3MiLCJtYWtlQnV0dG9uIiwiY2hpbGRyZW4iLCJhY3Rpb24iLCJyZW5kZXIiLCJkZXNjcmlwdGlvbiIsImVkaXRBZGRvbiIsImRlbGV0ZUFkZG9uIiwic2hvd1JlbG9hZEljb24iLCJvcmlnaW5hbFJlbmRlciIsInByb3RvdHlwZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInNldCIsImdldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLE9BQU8sR0FBR0Msc0RBQWMsQ0FBQ0MsZ0JBQWYsQ0FBZ0MsU0FBaEMsQ0FBaEI7QUFFZSxNQUFNQyxTQUFOLFNBQXdCQyw2Q0FBSyxDQUFDQyxTQUE5QixDQUF3QztBQUVuREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGtCQUFZLEVBQUU7QUFETCxLQUFiO0FBSUEs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UCxDQUFzQnpILFNBQVMsQ0FBQ3VILFNBQWhDLEVBQTJDLFFBQTNDLEVBQXFEO0FBQ2pERyxZQUFVLEVBQUUsS0FEcUM7QUFFakRDLGNBQVksRUFBRSxLQUZtQztBQUdqREMsS0FBRyxFQUFFLFlBQVc7QUFBQ3BELGtEQUFNLENBQUNHLElBQVAsQ0FBWSxXQUFaLEVBQXlCLHFHQUF6QjtBQUFpSSxHQUhqRztBQUlqRGtELEtBQUcsRUFBRSxNQUFNUDtBQUpzQyxDQUFyRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9hZGRvbmNhcmQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgTG9nZ2VyLCBTdHJpbmdzLCBXZWJwYWNrTW9kdWxlcywgRE9NLCBEaXNjb3JkTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gXCIuLi9pY29ucy9jbG9zZVwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcbmltcG9ydCBFZGl0SWNvbiBmcm9tIFwiLi4vaWNvbnMvZWRpdFwiO1xyXG5pbXBvcnQgRGVsZXRlSWNvbiBmcm9tIFwiLi4vaWNvbnMvZGVsZXRlXCI7XHJcbmltcG9ydCBTd2l0Y2ggZnJvbSBcIi4vY29tcG9uZW50cy9zd2l0Y2hcIjtcclxuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAgXCIuLi9lcnJvcmJvdW5kYXJ5XCI7XHJcblxyXG5jb25zdCBUb29sdGlwID0gV2VicGFja01vZHVsZXMuZ2V0QnlEaXNwbGF5TmFtZShcIlRvb2x0aXBcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZGRvbkNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnNldHRpbmdzUGFuZWwgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMucGFuZWxSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zaG93U2V0dGluZ3MgPSB0aGlzLnNob3dTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTZXR0aW5ncyA9IHRoaXMuY2xvc2VTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5hZGRvbiA9IHRoaXMucHJvcHMucmVsb2FkKHRoaXMucHJvcHMuYWRkb24uaWQpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnNldHRpbmdzT3BlbikgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBOb2RlKSB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuYXBwZW5kQ2hpbGQodGhpcy5zZXR0aW5nc1BhbmVsKTtcclxuXHJcbiAgICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSAoY29udGFpbmVyLCBlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNCb3R0b20gPSBjVG9wICsgY29udGFpbmVyLmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVUb3AgPSBlbGVtZW50Lm9mZnNldFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVCb3R0b20gPSBlVG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIChlVG9wIDwgY1RvcCB8fCBlQm90dG9tID4gY0JvdHRvbSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBjb25zdCB0aGlzTm9kZSA9IHRoaXMucGFuZWxSZWYuY3VycmVudDtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpc05vZGUuY2xvc2VzdChcIi5zY3JvbGxlckJhc2UtMjg5SmloXCIpO1xyXG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lciB8fCAhaXNIaWRkZW4oY29udGFpbmVyLCB0aGlzTm9kZSkpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgdGhpc05vZGVPZmZzZXQgPSBET00ub2Zmc2V0KHRoaXNOb2RlKTtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyT2Zmc2V0ID0gRE9NLm9mZnNldChjb250YWluZXIpO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdGhpc05vZGVPZmZzZXQudG9wIC0gY29udGFpbmVyT2Zmc2V0LnRvcCArIGNvbnRhaW5lci5zY3JvbGxUb3AgLSAzMDtcclxuICAgICAgICAgICAgRE9NLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMCxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZTogZnVuY3Rpb24ocHJvZ3Jlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW5kUG9pbnQgPiBvcmlnaW5hbCkgY29udGFpbmVyLnNjcm9sbFRvcCA9IG9yaWdpbmFsICsgKHByb2dyZXNzICogKGVuZFBvaW50IC0gb3JpZ2luYWwpKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBvcmlnaW5hbCAtIChwcm9ncmVzcyAqIChvcmlnaW5hbCAtIGVuZFBvaW50KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0cmluZyh2YWx1ZSkge3JldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTt9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuYWRkb24uaWQpO1xyXG4gICAgICAgIHRoaXMucHJvcHMuZW5hYmxlZCA9ICF0aGlzLnByb3BzLmVuYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMuaGFzU2V0dGluZ3MpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZVNldHRpbmdzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBOb2RlKSB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IFN0cmluZ3MuQWRkb25zLnRpdGxlLnNwbGl0KC8oe3tbQS1aYS16XSt9fSkvKTtcclxuICAgICAgICBjb25zdCBuYW1lSW5kZXggPSB0aXRsZS5maW5kSW5kZXgocyA9PiBzID09IFwie3tuYW1lfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbbmFtZUluZGV4XSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmQtbmFtZVwifSwgbmFtZSk7XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbkluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7dmVyc2lvbn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW3ZlcnNpb25JbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkLXZlcnNpb25cIn0sIHZlcnNpb24pO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvckluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7YXV0aG9yfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbYXV0aG9ySW5kZXhdID0gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZC1hdXRob3JcIn0sIGF1dGhvcik7XHJcbiAgICAgICAgcmV0dXJuIHRpdGxlLmZsYXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2V0dGluZ3NDb21wb25lbnQoKSB7XHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0aGlzLnByb3BzLmFkZG9uO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhhZGRvbi5uYW1lKTtcclxuICAgICAgICB0cnkgeyB0aGlzLnNldHRpbmdzUGFuZWwgPSB0aGlzLnByb3BzLmdldFNldHRpbmdzUGFuZWwoKTsgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHsgTG9nZ2VyLnN0YWNrdHJhY2UoXCJBZGRvbiBTZXR0aW5nc1wiLCBcIlVuYWJsZSB0byBnZXQgc2V0dGluZ3MgcGFuZWwgZm9yIFwiICsgbmFtZSArIFwiLlwiLCBlcnIpOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IHByb3BzID0ge2lkOiBgJHtuYW1lfS1zZXR0aW5nc2AsIGNsYXNzTmFtZTogXCJhZGRvbi1zZXR0aW5nc1wiLCByZWY6IHRoaXMucGFuZWxSZWZ9O1xyXG4gICAgICAgIGlmICh0eXBlb2YodGhpcy5zZXR0aW5nc1BhbmVsKSA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIExvZ2dlci53YXJuKFwiQWRkb24gU2V0dGluZ3NcIiwgXCJVc2luZyBhIERPTVN0cmluZyBpcyBvZmZpY2lhbGx5IGRlcHJlY2F0ZWQuXCIpO1xyXG4gICAgICAgICAgICBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHRoaXMuc2V0dGluZ3NQYW5lbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZCA9IG51bGw7XHJcbiAgICAgICAgaWYgKHR5cGVvZih0aGlzLnNldHRpbmdzUGFuZWwpID09PSBcImZ1bmN0aW9uXCIpIGNoaWxkID0gPHRoaXMuc2V0dGluZ3NQYW5lbCAvPjtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1BhbmVsLiQkdHlwZW9mICYmIHRoaXMuc2V0dGluZ3NQYW5lbC4kJHR5cGVvZiA9PT0gU3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIikpIGNoaWxkID0gdGhpcy5zZXR0aW5nc1BhbmVsO1xyXG5cclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1hZGRvbi1jYXJkIHNldHRpbmdzLW9wZW4gYmQtc3dpdGNoLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNsb3NlXCIgb25DbGljaz17dGhpcy5jbG9zZVNldHRpbmdzfT48Q2xvc2VCdXR0b24gLz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHsuLi5wcm9wc30+PEVycm9yQm91bmRhcnk+e2NoaWxkfTwvRXJyb3JCb3VuZGFyeT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZExpbmsod2hpY2gpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnByb3BzLmFkZG9uW3doaWNoXTtcclxuICAgICAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY29uc3QgbGluayA9IDxhIGNsYXNzTmFtZT1cImJkLWxpbmsgYmQtbGluay13ZWJzaXRlXCIgaHJlZj17dXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+e1N0cmluZ3MuQWRkb25zW3doaWNoXX08L2E+O1xyXG4gICAgICAgIGlmICh3aGljaCA9PSBcImludml0ZVwiKSB7XHJcbiAgICAgICAgICAgIGxpbmsucHJvcHMub25DbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29kZSA9IHVybDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RlciA9IC9cXC5nZ1xcLyguKikkLztcclxuICAgICAgICAgICAgICAgIGlmICh0ZXN0ZXIudGVzdChjb2RlKSkgY29kZSA9IGNvZGUubWF0Y2godGVzdGVyKVsxXTtcclxuICAgICAgICAgICAgICAgIERpc2NvcmRNb2R1bGVzLkxheWVyU3RhY2sucG9wTGF5ZXIoKTtcclxuICAgICAgICAgICAgICAgIERpc2NvcmRNb2R1bGVzLkludml0ZUFjdGlvbnMuYWNjZXB0SW52aXRlQW5kVHJhbnNpdGlvblRvSW52aXRlQ2hhbm5lbChjb2RlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxpbms7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZvb3RlcigpIHtcclxuICAgICAgICBjb25zdCBsaW5rcyA9IFtcIndlYnNpdGVcIiwgXCJzb3VyY2VcIiwgXCJpbnZpdGVcIiwgXCJkb25hdGVcIiwgXCJwYXRyZW9uXCJdO1xyXG4gICAgICAgIGlmICghbGlua3Muc29tZShsID0+IHRoaXMucHJvcHMuYWRkb25bbF0pICYmICF0aGlzLnByb3BzLmhhc1NldHRpbmdzKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBjb25zdCBsaW5rQ29tcG9uZW50cyA9IGxpbmtzLm1hcCh0aGlzLmJ1aWxkTGluay5iaW5kKHRoaXMpKS5maWx0ZXIoYyA9PiBjKTtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJiZC1saW5rc1wiPntsaW5rQ29tcG9uZW50cy5tYXAoKGNvbXAsIGkpID0+IGkgPCBsaW5rQ29tcG9uZW50cy5sZW5ndGggLSAxID8gW2NvbXAsIFwiIHwgXCJdIDogY29tcCkuZmxhdCgpfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5oYXNTZXR0aW5ncyAmJiA8YnV0dG9uIG9uQ2xpY2s9e3RoaXMuc2hvd1NldHRpbmdzfSBjbGFzc05hbWU9XCJiZC1idXR0b24gYmQtYnV0dG9uLWFkZG9uLXNldHRpbmdzXCIgZGlzYWJsZWQ9eyF0aGlzLnByb3BzLmVuYWJsZWR9PntTdHJpbmdzLkFkZG9ucy5hZGRvblNldHRpbmdzfTwvYnV0dG9uPn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlQnV0dG9uKHRpdGxlLCBjaGlsZHJlbiwgYWN0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuICA8VG9vbHRpcCBjb2xvcj1cImJsYWNrXCIgcG9zaXRpb249XCJ0b3BcIiB0ZXh0PXt0aXRsZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgeyhwcm9wcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT1cImJkLWFkZG9uLWJ1dHRvblwiIG9uQ2xpY2s9e2FjdGlvbn0+e2NoaWxkcmVufTwvZGl2PjtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPjtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3NPcGVuKSByZXR1cm4gdGhpcy5zZXR0aW5nc0NvbXBvbmVudDtcclxuXHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0aGlzLnByb3BzLmFkZG9uO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhhZGRvbi5uYW1lKTtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSB0aGlzLmdldFN0cmluZyhhZGRvbi5hdXRob3IpO1xyXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5nZXRTdHJpbmcoYWRkb24uZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZyhhZGRvbi52ZXJzaW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9e2Ake2FkZG9uLmlkfS1jYXJkYH0gY2xhc3NOYW1lPVwiYmQtYWRkb24tY2FyZCBzZXR0aW5ncy1jbG9zZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWFkZG9uLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmQtdGl0bGVcIj57dGhpcy5idWlsZFRpdGxlKG5hbWUsIHZlcnNpb24sIGF1dGhvcil9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmVkaXRBZGRvbiAmJiB0aGlzLm1ha2VCdXR0b24oU3RyaW5ncy5BZGRvbnMuZWRpdEFkZG9uLCA8RWRpdEljb24gLz4sIHRoaXMucHJvcHMuZWRpdEFkZG9uKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5kZWxldGVBZGRvbiAmJiB0aGlzLm1ha2VCdXR0b24oU3RyaW5ncy5BZGRvbnMuZGVsZXRlQWRkb24sIDxEZWxldGVJY29uIC8+LCB0aGlzLnByb3BzLmRlbGV0ZUFkZG9uKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93UmVsb2FkSWNvbiAmJiB0aGlzLm1ha2VCdXR0b24oU3RyaW5ncy5BZGRvbnMucmVsb2FkLCA8UmVsb2FkSWNvbiBjbGFzc05hbWU9XCJiZC1yZWxvYWQgYmQtcmVsb2FkLWNhcmRcIiAvPiwgdGhpcy5yZWxvYWQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2ggY2hlY2tlZD17dGhpcy5wcm9wcy5lbmFibGVkfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIj48ZGl2IGNsYXNzTmFtZT1cImJkLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCI+e2Rlc2NyaXB0aW9ufTwvZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLmZvb3Rlcn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3Qgb3JpZ2luYWxSZW5kZXIgPSBBZGRvbkNhcmQucHJvdG90eXBlLnJlbmRlcjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEFkZG9uQ2FyZC5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHtcclxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcclxuICAgIHNldDogZnVuY3Rpb24oKSB7TG9nZ2VyLndhcm4oXCJBZGRvbkNhcmRcIiwgXCJBZGRvbiBwb2xpY3kgZm9yIHBsdWdpbnMgIzUgaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcC93aWtpL0FkZG9uLVBvbGljaWVzI3BsdWdpbnNcIik7fSxcclxuICAgIGdldDogKCkgPT4gb3JpZ2luYWxSZW5kZXJcclxufSk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/addoncard.jsx\n");
/***/ }),
@@ -1031,7 +1030,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 AddonList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _addoncard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addoncard */ \"./src/ui/settings/addoncard.jsx\");\n/* harmony import */ var _components_dropdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/dropdown */ \"./src/ui/settings/components/dropdown.jsx\");\n/* harmony import */ var _components_search__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/search */ \"./src/ui/settings/components/search.jsx\");\n/* harmony import */ var _errorboundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../errorboundary */ \"./src/ui/errorboundary.jsx\");\n\n\n\n\n\n\n\n\nclass AddonList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n sort: \"name\",\n ascending: true,\n query: \"\"\n };\n this.sort = this.sort.bind(this);\n this.reverse = this.reverse.bind(this);\n this.search = this.search.bind(this);\n this.update = this.update.bind(this);\n }\n\n componentDidMount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(`${this.props.prefix}-loaded`, this.update);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(`${this.props.prefix}-unloaded`, this.update);\n }\n\n componentWillUnmount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(`${this.props.prefix}-loaded`, this.update);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(`${this.props.prefix}-unloaded`, this.update);\n }\n\n update() {\n this.forceUpdate();\n }\n\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n reverse(value) {\n this.setState({\n ascending: value\n });\n }\n\n sort(value) {\n this.setState({\n sort: value\n });\n }\n\n search(event) {\n this.setState({\n query: event.target.value.toLocaleLowerCase()\n });\n }\n\n get sortOptions() {\n return [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.name,\n value: \"name\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.author,\n value: \"author\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.version,\n value: \"version\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.added,\n value: \"added\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.modified,\n value: \"modified\"\n }];\n }\n\n get directions() {\n return [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.ascending,\n value: true\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.descending,\n value: false\n }];\n }\n\n render() {\n const {\n title,\n folder,\n addonList,\n addonState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.openFolder.format({\n type: title\n }),\n onClick: () => {\n const shell = __webpack_require__(/*! electron */ \"electron\").shell;\n\n const open = shell.openItem || shell.openPath;\n open(folder);\n }\n } : null;\n const sortedAddons = addonList.sort((a, b) => {\n const first = a[this.state.sort];\n const second = b[this.state.sort];\n if (typeof first == \"string\") return first.toLocaleLowerCase().localeCompare(second.toLocaleLowerCase());\n if (first > second) return 1;\n if (second > first) return -1;\n return 0;\n });\n if (!this.state.ascending) sortedAddons.reverse();\n return [/*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-controls bd-addon-controls\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_search__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onChange: this.search,\n placeholder: `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.search.format({\n type: this.props.title\n })}...`\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-dropdowns\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-wrapper\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"bd-label\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.sortBy, \":\"), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n options: this.sortOptions,\n onChange: this.sort,\n style: \"transparent\"\n })), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-wrapper\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"bd-label\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.order, \":\"), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n options: this.directions,\n onChange: this.reverse,\n style: \"transparent\"\n })))), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n key: \"addonList\",\n className: \"bd-addon-list\"\n }, sortedAddons.map(addon => {\n if (this.state.query) {\n let matches = addon.name.toLocaleLowerCase().includes(this.state.query);\n matches = matches || addon.author.toLocaleLowerCase().includes(this.state.query);\n matches = matches || addon.description.toLocaleLowerCase().includes(this.state.query);\n if (!matches) return null;\n }\n\n const hasSettings = addon.type && typeof addon.plugin.getSettingsPanel === \"function\";\n const getSettings = hasSettings && addon.plugin.getSettingsPanel.bind(addon.plugin);\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_errorboundary__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_addoncard__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n editAddon: this.editAddon.bind(this, addon.id),\n deleteAddon: this.deleteAddon.bind(this, addon.id),\n showReloadIcon: showReloadIcon,\n key: addon.id,\n enabled: addonState[addon.id],\n addon: addon,\n onChange: onChange,\n reload: reload,\n hasSettings: hasSettings,\n getSettingsPanel: getSettings\n }));\n }))];\n }\n\n editAddon(id) {\n if (this.props.editAddon) this.props.editAddon(id);\n }\n\n async deleteAddon(id) {\n const addon = this.props.addonList.find(a => a.id == id);\n const shouldDelete = await this.confirmDelete(addon);\n if (!shouldDelete) return;\n if (this.props.deleteAddon) this.props.deleteAddon(addon);\n }\n\n confirmDelete(addon) {\n return new Promise(resolve => {\n _modals__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showConfirmationModal(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.confirmAction, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.confirmDelete.format({\n name: addon.name\n }), {\n danger: true,\n confirmText: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.deleteAddon,\n onConfirm: () => {\n resolve(true);\n },\n onCancel: () => {\n resolve(false);\n }\n });\n });\n }\n\n}\nconst originalRender = AddonList.prototype.render;\nObject.defineProperty(AddonList.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"AddonList\", \"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2FkZG9ubGlzdC5qc3g/NjRkMiJdLCJuYW1lcyI6WyJBZGRvbkxpc3QiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsInNvcnQiLCJhc2NlbmRpbmciLCJxdWVyeSIsImJpbmQiLCJyZXZlcnNlIiwic2VhcmNoIiwidXBkYXRlIiwiY29tcG9uZW50RGlkTW91bnQiLCJFdmVudHMiLCJvbiIsInByZWZpeCIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwib2ZmIiwiZm9yY2VVcGRhdGUiLCJyZWxvYWQiLCJyZWZyZXNoTGlzdCIsInZhbHVlIiwic2V0U3RhdGUiLCJldmVudCIsInRhcmdldCIsInRvTG9jYWxlTG93ZXJDYXNlIiwic29ydE9wdGlvbnMiLCJsYWJlbCIsIlN0cmluZ3MiLCJBZGRvbnMiLCJuYW1lIiwiYXV0aG9yIiwidmVyc2lvbiIsImFkZGVkIiwibW9kaWZpZWQiLCJkaXJlY3Rpb25zIiwiU29ydGluZyIsImRlc2NlbmRpbmciLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImFkZG9uTGlzdCIsImFkZG9uU3RhdGUiLCJvbkNoYW5nZSIsInNob3dSZWxvYWRJY29uIiwiU2V0dGluZ3MiLCJnZXQiLCJidXR0b24iLCJvcGVuRm9sZGVyIiwiZm9ybWF0IiwidHlwZSIsIm9uQ2xpY2siLCJzaGVsbCIsInJlcXVpcmUiLCJvcGVuIiwib3Blbkl0ZW0iLCJvcGVuUGF0aCIsInNvcnRlZEFkZG9ucyIsImEiLCJiIiwiZmlyc3QiLCJzZWNvbmQiLCJsb2NhbGVDb21wYXJlIiwic29ydEJ5Iiwib3JkZXIiLCJtYXAiLCJhZGRvbiIsIm1hdGNoZXMiLCJpbmNsdWRlcyIsImRlc2NyaXB0aW9uIiwiaGFzU2V0dGluZ3MiLCJwbHVnaW4iLCJnZXRTZXR0aW5nc1BhbmVsIiwiZ2V0U2V0dGluZ3MiLCJlZGl0QWRkb24iLCJpZCIsImRlbGV0ZUFkZG9uIiwiZmluZCIsInNob3VsZERlbGV0ZSIsImNvbmZpcm1EZWxldGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsIk1vZGFscyIsInNob3dDb25maXJtYXRpb25Nb2RhbCIsImNvbmZpcm1BY3Rpb24iLCJkYW5nZXIiLCJjb25maXJtVGV4dCIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIiwib3JpZ2luYWxSZW5kZXIiLCJwcm90b3R5cGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJzZXQiLCJMb2dnZXIiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFZSxNQUFNQSxTQUFOLFNBQXdCQyw2Q0FBSyxDQUFDQyxTQUE5QixDQUF3QztBQUVuREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQUNDLFVBQUksRUFBRSxNQUFQO0FBQWVDLGVBQVMsRUFBRSxJQUExQjtBQUFnQ0MsV0FBSyxFQUFFO0FBQXZDLEtBQWI7QUFDQSxTQUFLRixJQUFMLEdBQVksS0FBS0EsSUFBTCxDQUFVRyxJQUFWLENBQWUsSUFBZixDQUFaO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLEtBQUtBLE9BQUwsQ0FBYUQsSUFBYixDQUFrQixJQUFsQixDQUFmO0FBQ0EsU0FBS0UsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUYsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0EsU0FBS0csTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUgsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0g7O0FBRURJLG1CQUFpQixHQUFHO0FBQ2hCQyxrREFBTSxDQUFDQyxFQUFQLENBQVcsR0FBRSxLQUFLWCxLQUFMLENBQVdZLE1BQU8sU0FBL0IsRUFBeUMsS0FBS0osTUFBOUM7QUFDQUUsa0RBQU0sQ0FB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Q0FBQzJGLFNBQWhDLEVBQTJDLFFBQTNDLEVBQXFEO0FBQ2pERyxZQUFVLEVBQUUsS0FEcUM7QUFFakRDLGNBQVksRUFBRSxLQUZtQztBQUdqREMsS0FBRyxFQUFFLFlBQVc7QUFBQ0Msa0RBQU0sQ0FBQ0MsSUFBUCxDQUFZLFdBQVosRUFBeUIscUdBQXpCO0FBQWlJLEdBSGpHO0FBSWpEbkQsS0FBRyxFQUFFLE1BQU0yQztBQUpzQyxDQUFyRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9hZGRvbmxpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3MsIFN0cmluZ3MsIEV2ZW50cywgTG9nZ2VyfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IE1vZGFscyBmcm9tIFwiLi4vbW9kYWxzXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3RpdGxlXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuaW1wb3J0IEFkZG9uQ2FyZCBmcm9tIFwiLi9hZGRvbmNhcmRcIjtcclxuaW1wb3J0IERyb3Bkb3duIGZyb20gXCIuL2NvbXBvbmVudHMvZHJvcGRvd25cIjtcclxuaW1wb3J0IFNlYXJjaCBmcm9tIFwiLi9jb21wb25lbnRzL3NlYXJjaFwiO1xyXG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICBcIi4uL2Vycm9yYm91bmRhcnlcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkZG9uTGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtzb3J0OiBcIm5hbWVcIiwgYXNjZW5kaW5nOiB0cnVlLCBxdWVyeTogXCJcIn07XHJcbiAgICAgICAgdGhpcy5zb3J0ID0gdGhpcy5zb3J0LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZXZlcnNlID0gdGhpcy5yZXZlcnNlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2ggPSB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAgICAgRXZlbnRzLm9uKGAke3RoaXMucHJvcHMucHJlZml4fS1sb2FkZWRgLCB0aGlzLnVwZGF0ZSk7XHJcbiAgICAgICAgRXZlbnRzLm9uKGAke3RoaXMucHJvcHMucHJlZml4fS11bmxvYWRlZGAsIHRoaXMudXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKGAke3RoaXMucHJvcHMucHJlZml4fS1sb2FkZWRgLCB0aGlzLnVwZGF0ZSk7XHJcbiAgICAgICAgRXZlbnRzLm9mZihgJHt0aGlzLnByb3BzLnByZWZpeH0tdW5sb2FkZWRgLCB0aGlzLnVwZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKCkge1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVmcmVzaExpc3QpIHRoaXMucHJvcHMucmVmcmVzaExpc3QoKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2ZXJzZSh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2FzY2VuZGluZzogdmFsdWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBzb3J0KHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c29ydDogdmFsdWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZWFyY2goZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtxdWVyeTogZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCl9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc29ydE9wdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge2xhYmVsOiBTdHJpbmdzLkFkZG9ucy5uYW1lLCB2YWx1ZTogXCJuYW1lXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLmF1dGhvciwgdmFsdWU6IFwiYXV0aG9yXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLnZlcnNpb24sIHZhbHVlOiBcInZlcnNpb25cIn0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5BZGRvbnMuYWRkZWQsIHZhbHVlOiBcImFkZGVkXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLm1vZGlmaWVkLCB2YWx1ZTogXCJtb2RpZmllZFwifVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpcmVjdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge2xhYmVsOiBTdHJpbmdzLlNvcnRpbmcuYXNjZW5kaW5nLCB2YWx1ZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5Tb3J0aW5nLmRlc2NlbmRpbmcsIHZhbHVlOiBmYWxzZX1cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7dGl0bGUsIGZvbGRlciwgYWRkb25MaXN0LCBhZGRvblN0YXRlLCBvbkNoYW5nZSwgcmVsb2FkfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3Qgc2hvd1JlbG9hZEljb24gPSAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhdXRvUmVsb2FkXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGZvbGRlciA/IHt0aXRsZTogU3RyaW5ncy5BZGRvbnMub3BlbkZvbGRlci5mb3JtYXQoe3R5cGU6IHRpdGxlfSksIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2hlbGwgPSByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGw7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wZW4gPSBzaGVsbC5vcGVuSXRlbSB8fCBzaGVsbC5vcGVuUGF0aDtcclxuICAgICAgICAgICAgb3Blbihmb2xkZXIpO1xyXG4gICAgICAgIH19IDogbnVsbDtcclxuICAgICAgICBjb25zdCBzb3J0ZWRBZGRvbnMgPSBhZGRvbkxpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaXJzdCA9IGFbdGhpcy5zdGF0ZS5zb3J0XTtcclxuICAgICAgICAgICAgY29uc3Qgc2Vjb25kID0gYlt0aGlzLnN0YXRlLnNvcnRdO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKGZpcnN0KSA9PSBcInN0cmluZ1wiKSByZXR1cm4gZmlyc3QudG9Mb2NhbGVMb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKHNlY29uZC50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0ID4gc2Vjb25kKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKHNlY29uZCA+IGZpcnN0KSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5hc2NlbmRpbmcpIHNvcnRlZEFkZG9ucy5yZXZlcnNlKCk7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgPFNldHRpbmdzVGl0bGUga2V5PVwidGl0bGVcIiB0ZXh0PXt0aXRsZX0gYnV0dG9uPXtidXR0b259IG90aGVyQ2hpbGRyZW49e3Nob3dSZWxvYWRJY29uICYmIDxSZWxvYWRJY29uIGNsYXNzTmFtZT1cImJkLXJlbG9hZFwiIG9uQ2xpY2s9e3RoaXMucmVsb2FkLmJpbmQodGhpcyl9IC8+fSAvPixcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jb250cm9scyBiZC1hZGRvbi1jb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgPFNlYXJjaCBvbkNoYW5nZT17dGhpcy5zZWFyY2h9IHBsYWNlaG9sZGVyPXtgJHtTdHJpbmdzLkFkZG9ucy5zZWFyY2guZm9ybWF0KHt0eXBlOiB0aGlzLnByb3BzLnRpdGxlfSl9Li4uYH0gLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtYWRkb24tZHJvcGRvd25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3Qtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmQtbGFiZWxcIj57U3RyaW5ncy5Tb3J0aW5nLnNvcnRCeX06PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duIG9wdGlvbnM9e3RoaXMuc29ydE9wdGlvbnN9IG9uQ2hhbmdlPXt0aGlzLnNvcnR9IHN0eWxlPVwidHJhbnNwYXJlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJkLWxhYmVsXCI+e1N0cmluZ3MuU29ydGluZy5vcmRlcn06PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duIG9wdGlvbnM9e3RoaXMuZGlyZWN0aW9uc30gb25DaGFuZ2U9e3RoaXMucmV2ZXJzZX0gc3R5bGU9XCJ0cmFuc3BhcmVudFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+LFxyXG4gICAgICAgICAgICA8ZGl2IGtleT1cImFkZG9uTGlzdFwiIGNsYXNzTmFtZT17XCJiZC1hZGRvbi1saXN0XCJ9PlxyXG4gICAgICAgICAgICB7c29ydGVkQWRkb25zLm1hcChhZGRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5xdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBtYXRjaGVzID0gYWRkb24ubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc3RhdGUucXVlcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBtYXRjaGVzIHx8IGFkZG9uLmF1dGhvci50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc3RhdGUucXVlcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBtYXRjaGVzIHx8IGFkZG9uLmRlc2NyaXB0aW9uLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zdGF0ZS5xdWVyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKSByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1NldHRpbmdzID0gYWRkb24udHlwZSAmJiB0eXBlb2YoYWRkb24ucGx1Z2luLmdldFNldHRpbmdzUGFuZWwpID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBnZXRTZXR0aW5ncyA9IGhhc1NldHRpbmdzICYmIGFkZG9uLnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsLmJpbmQoYWRkb24ucGx1Z2luKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8RXJyb3JCb3VuZGFyeT48QWRkb25DYXJkIGVkaXRBZGRvbj17dGhpcy5lZGl0QWRkb24uYmluZCh0aGlzLCBhZGRvbi5pZCl9IGRlbGV0ZUFkZG9uPXt0aGlzLmRlbGV0ZUFkZG9uLmJpbmQodGhpcywgYWRkb24uaWQpfSBzaG93UmVsb2FkSWNvbj17c2hvd1JlbG9hZEljb259IGtleT17YWRkb24uaWR9IGVuYWJsZWQ9e2FkZG9uU3RhdGVbYWRkb24uaWRdfSBhZGRvbj17YWRkb259IG9uQ2hhbmdlPXtvbkNoYW5nZX0gcmVsb2FkPXtyZWxvYWR9IGhhc1NldHRpbmdzPXtoYXNTZXR0aW5nc30gZ2V0U2V0dGluZ3NQYW5lbD17Z2V0U2V0dGluZ3N9IC8+PC9FcnJvckJvdW5kYXJ5PjtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdEFkZG9uKGlkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZWRpdEFkZG9uKSB0aGlzLnByb3BzLmVkaXRBZGRvbihpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlQWRkb24oaWQpIHtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IHRoaXMucHJvcHMuYWRkb25MaXN0LmZpbmQoYSA9PiBhLmlkID09IGlkKTtcclxuICAgICAgICBjb25zdCBzaG91bGREZWxldGUgPSBhd2FpdCB0aGlzLmNvbmZpcm1EZWxldGUoYWRkb24pO1xyXG4gICAgICAgIGlmICghc2hvdWxkRGVsZXRlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVsZXRlQWRkb24pIHRoaXMucHJvcHMuZGVsZXRlQWRkb24oYWRkb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpcm1EZWxldGUoYWRkb24pIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIE1vZGFscy5zaG93Q29uZmlybWF0aW9uTW9kYWwoU3RyaW5ncy5Nb2RhbHMuY29uZmlybUFjdGlvbiwgU3RyaW5ncy5BZGRvbnMuY29uZmlybURlbGV0ZS5mb3JtYXQoe25hbWU6IGFkZG9uLm5hbWV9KSwge1xyXG4gICAgICAgICAgICAgICAgZGFuZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybVRleHQ6IFN0cmluZ3MuQWRkb25zLmRlbGV0ZUFkZG9uLFxyXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiAoKSA9PiB7cmVzb2x2ZSh0cnVlKTt9LFxyXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6ICgpID0+IHtyZXNvbHZlKGZhbHNlKTt9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBvcmlnaW5hbFJlbmRlciA9IEFkZG9uTGlzdC5wcm90b3R5cGUucmVuZGVyO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoQWRkb25MaXN0LnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge1xyXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgc2V0OiBmdW5jdGlvbigpIHtMb2dnZXIud2FybihcIkFkZG9uTGlzdFwiLCBcIkFkZG9uIHBvbGljeSBmb3IgcGx1Z2lucyAjNSBodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3dpa2kvQWRkb24tUG9saWNpZXMjcGx1Z2luc1wiKTt9LFxyXG4gICAgZ2V0OiAoKSA9PiBvcmlnaW5hbFJlbmRlclxyXG59KTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/addonlist.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _addoncard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addoncard */ \"./src/ui/settings/addoncard.jsx\");\n/* harmony import */ var _components_dropdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/dropdown */ \"./src/ui/settings/components/dropdown.jsx\");\n/* harmony import */ var _components_search__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/search */ \"./src/ui/settings/components/search.jsx\");\n/* harmony import */ var _errorboundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../errorboundary */ \"./src/ui/errorboundary.jsx\");\n\n\n\n\n\n\n\n\nclass AddonList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n sort: \"name\",\n ascending: true,\n query: \"\"\n };\n this.sort = this.sort.bind(this);\n this.reverse = this.reverse.bind(this);\n this.search = this.search.bind(this);\n this.update = this.update.bind(this);\n }\n\n componentDidMount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(`${this.props.prefix}-loaded`, this.update);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(`${this.props.prefix}-unloaded`, this.update);\n }\n\n componentWillUnmount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(`${this.props.prefix}-loaded`, this.update);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(`${this.props.prefix}-unloaded`, this.update);\n }\n\n update() {\n this.forceUpdate();\n }\n\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n reverse(value) {\n this.setState({\n ascending: value\n });\n }\n\n sort(value) {\n this.setState({\n sort: value\n });\n }\n\n search(event) {\n this.setState({\n query: event.target.value.toLocaleLowerCase()\n });\n }\n\n get sortOptions() {\n return [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.name,\n value: \"name\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.author,\n value: \"author\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.version,\n value: \"version\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.added,\n value: \"added\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.modified,\n value: \"modified\"\n }];\n }\n\n get directions() {\n return [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.ascending,\n value: true\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.descending,\n value: false\n }];\n }\n\n render() {\n const {\n title,\n folder,\n addonList,\n addonState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.openFolder.format({\n type: title\n }),\n onClick: () => {\n const shell = __webpack_require__(/*! electron */ \"electron\").shell;\n\n const open = shell.openItem || shell.openPath;\n open(folder);\n }\n } : null;\n const sortedAddons = addonList.sort((a, b) => {\n const first = a[this.state.sort];\n const second = b[this.state.sort];\n if (typeof first == \"string\") return first.toLocaleLowerCase().localeCompare(second.toLocaleLowerCase());\n if (first > second) return 1;\n if (second > first) return -1;\n return 0;\n });\n if (!this.state.ascending) sortedAddons.reverse();\n return [/*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-controls bd-addon-controls\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_search__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onChange: this.search,\n placeholder: `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.search.format({\n type: this.props.title\n })}...`\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-dropdowns\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-wrapper\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"bd-label\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.sortBy, \":\"), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n options: this.sortOptions,\n onChange: this.sort,\n style: \"transparent\"\n })), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-wrapper\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"bd-label\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.order, \":\"), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n options: this.directions,\n onChange: this.reverse,\n style: \"transparent\"\n })))), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n key: \"addonList\",\n className: \"bd-addon-list\"\n }, sortedAddons.map(addon => {\n if (this.state.query) {\n let matches = addon.name.toLocaleLowerCase().includes(this.state.query);\n matches = matches || addon.author.toLocaleLowerCase().includes(this.state.query);\n matches = matches || addon.description.toLocaleLowerCase().includes(this.state.query);\n if (!matches) return null;\n }\n\n const hasSettings = addon.type && typeof addon.plugin.getSettingsPanel === \"function\";\n const getSettings = hasSettings && addon.plugin.getSettingsPanel.bind(addon.plugin);\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_errorboundary__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_addoncard__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n editAddon: this.editAddon.bind(this, addon.id),\n deleteAddon: this.deleteAddon.bind(this, addon.id),\n showReloadIcon: showReloadIcon,\n key: addon.id,\n enabled: addonState[addon.id],\n addon: addon,\n onChange: onChange,\n reload: reload,\n hasSettings: hasSettings,\n getSettingsPanel: getSettings\n }));\n }))];\n }\n\n editAddon(id) {\n if (this.props.editAddon) this.props.editAddon(id);\n }\n\n async deleteAddon(id) {\n const addon = this.props.addonList.find(a => a.id == id);\n const shouldDelete = await this.confirmDelete(addon);\n if (!shouldDelete) return;\n if (this.props.deleteAddon) this.props.deleteAddon(addon);\n }\n\n confirmDelete(addon) {\n return new Promise(resolve => {\n _modals__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showConfirmationModal(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.confirmAction, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.confirmDelete.format({\n name: addon.name\n }), {\n danger: true,\n confirmText: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.deleteAddon,\n onConfirm: () => {\n resolve(true);\n },\n onCancel: () => {\n resolve(false);\n }\n });\n });\n }\n\n}\nconst originalRender = AddonList.prototype.render;\nObject.defineProperty(AddonList.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"AddonList\", \"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvYWRkb25saXN0LmpzeD82NGQyIl0sIm5hbWVzIjpbIkFkZG9uTGlzdCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwic29ydCIsImFzY2VuZGluZyIsInF1ZXJ5IiwiYmluZCIsInJldmVyc2UiLCJzZWFyY2giLCJ1cGRhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIkV2ZW50cyIsIm9uIiwicHJlZml4IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJvZmYiLCJmb3JjZVVwZGF0ZSIsInJlbG9hZCIsInJlZnJlc2hMaXN0IiwidmFsdWUiLCJzZXRTdGF0ZSIsImV2ZW50IiwidGFyZ2V0IiwidG9Mb2NhbGVMb3dlckNhc2UiLCJzb3J0T3B0aW9ucyIsImxhYmVsIiwiU3RyaW5ncyIsIkFkZG9ucyIsIm5hbWUiLCJhdXRob3IiLCJ2ZXJzaW9uIiwiYWRkZWQiLCJtb2RpZmllZCIsImRpcmVjdGlvbnMiLCJTb3J0aW5nIiwiZGVzY2VuZGluZyIsInJlbmRlciIsInRpdGxlIiwiZm9sZGVyIiwiYWRkb25MaXN0IiwiYWRkb25TdGF0ZSIsIm9uQ2hhbmdlIiwic2hvd1JlbG9hZEljb24iLCJTZXR0aW5ncyIsImdldCIsImJ1dHRvbiIsIm9wZW5Gb2xkZXIiLCJmb3JtYXQiLCJ0eXBlIiwib25DbGljayIsInNoZWxsIiwicmVxdWlyZSIsIm9wZW4iLCJvcGVuSXRlbSIsIm9wZW5QYXRoIiwic29ydGVkQWRkb25zIiwiYSIsImIiLCJmaXJzdCIsInNlY29uZCIsImxvY2FsZUNvbXBhcmUiLCJzb3J0QnkiLCJvcmRlciIsIm1hcCIsImFkZG9uIiwibWF0Y2hlcyIsImluY2x1ZGVzIiwiZGVzY3JpcHRpb24iLCJoYXNTZXR0aW5ncyIsInBsdWdpbiIsImdldFNldHRpbmdzUGFuZWwiLCJnZXRTZXR0aW5ncyIsImVkaXRBZGRvbiIsImlkIiwiZGVsZXRlQWRkb24iLCJmaW5kIiwic2hvdWxkRGVsZXRlIiwiY29uZmlybURlbGV0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiTW9kYWxzIiwic2hvd0NvbmZpcm1hdGlvbk1vZGFsIiwiY29uZmlybUFjdGlvbiIsImRhbmdlciIsImNvbmZpcm1UZXh0Iiwib25Db25maXJtIiwib25DYW5jZWwiLCJvcmlnaW5hbFJlbmRlciIsInByb3RvdHlwZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInNldCIsIkxvZ2dlciIsIndhcm4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBRW5EQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFBQ0MsVUFBSSxFQUFFLE1BQVA7QUFBZUMsZUFBUyxFQUFFLElBQTFCO0FBQWdDQyxXQUFLLEVBQUU7QUFBdkMsS0FBYjtBQUNBLFNBQUtGLElBQUwsR0FBWSxLQUFLQSxJQUFMLENBQVVHLElBQVYsQ0FBZSxJQUFmLENBQVo7QUFDQSxTQUFLQyxPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhRCxJQUFiLENBQWtCLElBQWxCLENBQWY7QUFDQSxTQUFLRSxNQUFMLEdBQWMsS0FBS0EsTUFBTCxDQUFZRixJQUFaLENBQWlCLElBQWpCLENBQWQ7QUFDQSxTQUFLRyxNQUFMLEdBQWMsS0FBS0EsTUFBTCxDQUFZSCxJQUFaLENBQWlCLElBQWpCLENBQWQ7QUFDSDs7QUFFREksbUJBQWlCLEdBQUc7QUFDaEJDLGtEQUFNLENBQUNDLEVBQVAsQ0FBVyxHQUFFLEtBQUtYLEtBQUwsQ0FBV1ksTUFBTyxTQUEvQixFQUF5QyxLQUFLSixNQUE5QztBQUNBRSxrREFBTSxDQUFDQyxF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MkYsU0FBaEMsRUFBMkMsUUFBM0MsRUFBcUQ7QUFDakRHLFlBQVUsRUFBRSxLQURxQztBQUVqREMsY0FBWSxFQUFFLEtBRm1DO0FBR2pEQyxLQUFHLEVBQUUsWUFBVztBQUFDQyxrREFBTSxDQUFDQyxJQUFQLENBQVksV0FBWixFQUF5QixxR0FBekI7QUFBaUksR0FIakc7QUFJakRuRCxLQUFHLEVBQUUsTUFBTTJDO0FBSnNDLENBQXJEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2FkZG9ubGlzdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBTZXR0aW5ncywgU3RyaW5ncywgRXZlbnRzLCBMb2dnZXJ9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgTW9kYWxzIGZyb20gXCIuLi9tb2RhbHNcIjtcclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5pbXBvcnQgQWRkb25DYXJkIGZyb20gXCIuL2FkZG9uY2FyZFwiO1xyXG5pbXBvcnQgRHJvcGRvd24gZnJvbSBcIi4vY29tcG9uZW50cy9kcm9wZG93blwiO1xyXG5pbXBvcnQgU2VhcmNoIGZyb20gXCIuL2NvbXBvbmVudHMvc2VhcmNoXCI7XHJcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gIFwiLi4vZXJyb3Jib3VuZGFyeVwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRkb25MaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge3NvcnQ6IFwibmFtZVwiLCBhc2NlbmRpbmc6IHRydWUsIHF1ZXJ5OiBcIlwifTtcclxuICAgICAgICB0aGlzLnNvcnQgPSB0aGlzLnNvcnQuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJldmVyc2UgPSB0aGlzLnJldmVyc2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNlYXJjaCA9IHRoaXMuc2VhcmNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGUgPSB0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICBFdmVudHMub24oYCR7dGhpcy5wcm9wcy5wcmVmaXh9LWxvYWRlZGAsIHRoaXMudXBkYXRlKTtcclxuICAgICAgICBFdmVudHMub24oYCR7dGhpcy5wcm9wcy5wcmVmaXh9LXVubG9hZGVkYCwgdGhpcy51cGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgICAgIEV2ZW50cy5vZmYoYCR7dGhpcy5wcm9wcy5wcmVmaXh9LWxvYWRlZGAsIHRoaXMudXBkYXRlKTtcclxuICAgICAgICBFdmVudHMub2ZmKGAke3RoaXMucHJvcHMucHJlZml4fS11bmxvYWRlZGAsIHRoaXMudXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZWZyZXNoTGlzdCkgdGhpcy5wcm9wcy5yZWZyZXNoTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZlcnNlKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7YXNjZW5kaW5nOiB2YWx1ZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNvcnQodmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzb3J0OiB2YWx1ZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3F1ZXJ5OiBldmVudC50YXJnZXQudmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzb3J0T3B0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLm5hbWUsIHZhbHVlOiBcIm5hbWVcIn0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5BZGRvbnMuYXV0aG9yLCB2YWx1ZTogXCJhdXRob3JcIn0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5BZGRvbnMudmVyc2lvbiwgdmFsdWU6IFwidmVyc2lvblwifSxcclxuICAgICAgICAgICAge2xhYmVsOiBTdHJpbmdzLkFkZG9ucy5hZGRlZCwgdmFsdWU6IFwiYWRkZWRcIn0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5BZGRvbnMubW9kaWZpZWQsIHZhbHVlOiBcIm1vZGlmaWVkXCJ9XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGlyZWN0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuU29ydGluZy5hc2NlbmRpbmcsIHZhbHVlOiB0cnVlfSxcclxuICAgICAgICAgICAge2xhYmVsOiBTdHJpbmdzLlNvcnRpbmcuZGVzY2VuZGluZywgdmFsdWU6IGZhbHNlfVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHt0aXRsZSwgZm9sZGVyLCBhZGRvbkxpc3QsIGFkZG9uU3RhdGUsIG9uQ2hhbmdlLCByZWxvYWR9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBzaG93UmVsb2FkSWNvbiA9ICFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImFkZG9uc1wiLCBcImF1dG9SZWxvYWRcIik7XHJcbiAgICAgICAgY29uc3QgYnV0dG9uID0gZm9sZGVyID8ge3RpdGxlOiBTdHJpbmdzLkFkZG9ucy5vcGVuRm9sZGVyLmZvcm1hdCh7dHlwZTogdGl0bGV9KSwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzaGVsbCA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbDtcclxuICAgICAgICAgICAgY29uc3Qgb3BlbiA9IHNoZWxsLm9wZW5JdGVtIHx8IHNoZWxsLm9wZW5QYXRoO1xyXG4gICAgICAgICAgICBvcGVuKGZvbGRlcik7XHJcbiAgICAgICAgfX0gOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IHNvcnRlZEFkZG9ucyA9IGFkZG9uTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gYVt0aGlzLnN0YXRlLnNvcnRdO1xyXG4gICAgICAgICAgICBjb25zdCBzZWNvbmQgPSBiW3RoaXMuc3RhdGUuc29ydF07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YoZmlyc3QpID09IFwic3RyaW5nXCIpIHJldHVybiBmaXJzdC50b0xvY2FsZUxvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoc2Vjb25kLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QgPiBzZWNvbmQpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoc2Vjb25kID4gZmlyc3QpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmFzY2VuZGluZykgc29ydGVkQWRkb25zLnJldmVyc2UoKTtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICA8U2V0dGluZ3NUaXRsZSBrZXk9XCJ0aXRsZVwiIHRleHQ9e3RpdGxlfSBidXR0b249e2J1dHRvbn0gb3RoZXJDaGlsZHJlbj17c2hvd1JlbG9hZEljb24gJiYgPFJlbG9hZEljb24gY2xhc3NOYW1lPVwiYmQtcmVsb2FkXCIgb25DbGljaz17dGhpcy5yZWxvYWQuYmluZCh0aGlzKX0gLz59IC8+LFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWNvbnRyb2xzIGJkLWFkZG9uLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICA8U2VhcmNoIG9uQ2hhbmdlPXt0aGlzLnNlYXJjaH0gcGxhY2Vob2xkZXI9e2Ake1N0cmluZ3MuQWRkb25zLnNlYXJjaC5mb3JtYXQoe3R5cGU6IHRoaXMucHJvcHMudGl0bGV9KX0uLi5gfSAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1hZGRvbi1kcm9wZG93bnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlbGVjdC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJiZC1sYWJlbFwiPntTdHJpbmdzLlNvcnRpbmcuc29ydEJ5fTo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24gb3B0aW9ucz17dGhpcy5zb3J0T3B0aW9uc30gb25DaGFuZ2U9e3RoaXMuc29ydH0gc3R5bGU9XCJ0cmFuc3BhcmVudFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3Qtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmQtbGFiZWxcIj57U3RyaW5ncy5Tb3J0aW5nLm9yZGVyfTo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24gb3B0aW9ucz17dGhpcy5kaXJlY3Rpb25zfSBvbkNoYW5nZT17dGhpcy5yZXZlcnNlfSBzdHlsZT1cInRyYW5zcGFyZW50XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4sXHJcbiAgICAgICAgICAgIDxkaXYga2V5PVwiYWRkb25MaXN0XCIgY2xhc3NOYW1lPXtcImJkLWFkZG9uLWxpc3RcIn0+XHJcbiAgICAgICAgICAgIHtzb3J0ZWRBZGRvbnMubWFwKGFkZG9uID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnF1ZXJ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBhZGRvbi5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zdGF0ZS5xdWVyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyA9IG1hdGNoZXMgfHwgYWRkb24uYXV0aG9yLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zdGF0ZS5xdWVyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyA9IG1hdGNoZXMgfHwgYWRkb24uZGVzY3JpcHRpb24udG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnN0YXRlLnF1ZXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzU2V0dGluZ3MgPSBhZGRvbi50eXBlICYmIHR5cGVvZihhZGRvbi5wbHVnaW4uZ2V0U2V0dGluZ3NQYW5lbCkgPT09IFwiZnVuY3Rpb25cIjtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGdldFNldHRpbmdzID0gaGFzU2V0dGluZ3MgJiYgYWRkb24ucGx1Z2luLmdldFNldHRpbmdzUGFuZWwuYmluZChhZGRvbi5wbHVnaW4pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxFcnJvckJvdW5kYXJ5PjxBZGRvbkNhcmQgZWRpdEFkZG9uPXt0aGlzLmVkaXRBZGRvbi5iaW5kKHRoaXMsIGFkZG9uLmlkKX0gZGVsZXRlQWRkb249e3RoaXMuZGVsZXRlQWRkb24uYmluZCh0aGlzLCBhZGRvbi5pZCl9IHNob3dSZWxvYWRJY29uPXtzaG93UmVsb2FkSWNvbn0ga2V5PXthZGRvbi5pZH0gZW5hYmxlZD17YWRkb25TdGF0ZVthZGRvbi5pZF19IGFkZG9uPXthZGRvbn0gb25DaGFuZ2U9e29uQ2hhbmdlfSByZWxvYWQ9e3JlbG9hZH0gaGFzU2V0dGluZ3M9e2hhc1NldHRpbmdzfSBnZXRTZXR0aW5nc1BhbmVsPXtnZXRTZXR0aW5nc30gLz48L0Vycm9yQm91bmRhcnk+O1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBlZGl0QWRkb24oaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5lZGl0QWRkb24pIHRoaXMucHJvcHMuZWRpdEFkZG9uKGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkZWxldGVBZGRvbihpZCkge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdGhpcy5wcm9wcy5hZGRvbkxpc3QuZmluZChhID0+IGEuaWQgPT0gaWQpO1xyXG4gICAgICAgIGNvbnN0IHNob3VsZERlbGV0ZSA9IGF3YWl0IHRoaXMuY29uZmlybURlbGV0ZShhZGRvbik7XHJcbiAgICAgICAgaWYgKCFzaG91bGREZWxldGUpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5kZWxldGVBZGRvbikgdGhpcy5wcm9wcy5kZWxldGVBZGRvbihhZGRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybURlbGV0ZShhZGRvbikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgTW9kYWxzLnNob3dDb25maXJtYXRpb25Nb2RhbChTdHJpbmdzLk1vZGFscy5jb25maXJtQWN0aW9uLCBTdHJpbmdzLkFkZG9ucy5jb25maXJtRGVsZXRlLmZvcm1hdCh7bmFtZTogYWRkb24ubmFtZX0pLCB7XHJcbiAgICAgICAgICAgICAgICBkYW5nZXI6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtVGV4dDogU3RyaW5ncy5BZGRvbnMuZGVsZXRlQWRkb24sXHJcbiAgICAgICAgICAgICAgICBvbkNvbmZpcm06ICgpID0+IHtyZXNvbHZlKHRydWUpO30sXHJcbiAgICAgICAgICAgICAgICBvbkNhbmNlbDogKCkgPT4ge3Jlc29sdmUoZmFsc2UpO31cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IG9yaWdpbmFsUmVuZGVyID0gQWRkb25MaXN0LnByb3RvdHlwZS5yZW5kZXI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZGRvbkxpc3QucHJvdG90eXBlLCBcInJlbmRlclwiLCB7XHJcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICBzZXQ6IGZ1bmN0aW9uKCkge0xvZ2dlci53YXJuKFwiQWRkb25MaXN0XCIsIFwiQWRkb24gcG9saWN5IGZvciBwbHVnaW5zICM1IGh0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvd2lraS9BZGRvbi1Qb2xpY2llcyNwbHVnaW5zXCIpO30sXHJcbiAgICBnZXQ6ICgpID0+IG9yaWdpbmFsUmVuZGVyXHJcbn0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/addonlist.jsx\n");
/***/ }),
@@ -1043,7 +1042,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 Select; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_downarrow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icons/downarrow */ \"./src/ui/icons/downarrow.jsx\");\n\n\nclass Select extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n open: false,\n value: this.props.value || this.props.options[0].value\n };\n this.dropdown = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.onChange = this.onChange.bind(this);\n this.showMenu = this.showMenu.bind(this);\n this.hideMenu = this.hideMenu.bind(this);\n }\n\n showMenu(event) {\n event.preventDefault();\n this.setState({\n open: true\n }, () => {\n document.addEventListener(\"click\", this.hideMenu);\n });\n }\n\n hideMenu() {\n this.setState({\n open: false\n }, () => {\n document.removeEventListener(\"click\", this.hideMenu);\n });\n }\n\n onChange(value) {\n this.setState({\n value\n });\n if (this.props.onChange) this.props.onChange(value);\n }\n\n get selected() {\n return this.props.options.find(o => o.value == this.state.value);\n }\n\n get options() {\n const selected = this.selected;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-options\"\n }, this.props.options.map(opt => /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-select-option${selected.value == opt.value ? \" selected\" : \"\"}`,\n onClick: this.onChange.bind(this, opt.value)\n }, opt.label)));\n }\n\n render() {\n const style = this.props.style == \"transparent\" ? \" bd-select-transparent\" : \"\";\n const isOpen = this.state.open ? \" menu-open\" : \"\";\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-select${style}${isOpen}`,\n onClick: this.showMenu,\n ref: this.dropdown\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-value\"\n }, this.selected.label), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_downarrow__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-select-arrow\"\n }), this.state.open && this.options);\n }\n\n} // return
\n//
{this.props.label} \n//
\n//
\n//
{this.selected.label}
\n//
\n//
\n//
\n// {this.state.open && this.options}\n//
;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvZHJvcGRvd24uanN4PzRhOWMiXSwibmFtZXMiOlsiU2VsZWN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic3RhdGUiLCJvcGVuIiwidmFsdWUiLCJvcHRpb25zIiwiZHJvcGRvd24iLCJjcmVhdGVSZWYiLCJvbkNoYW5nZSIsImJpbmQiLCJzaG93TWVudSIsImhpZGVNZW51IiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInNldFN0YXRlIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNlbGVjdGVkIiwiZmluZCIsIm8iLCJtYXAiLCJvcHQiLCJsYWJlbCIsInJlbmRlciIsInN0eWxlIiwiaXNPcGVuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQUNDLFVBQUksRUFBRSxLQUFQO0FBQWNDLFdBQUssRUFBRSxLQUFLSCxLQUFMLENBQVdHLEtBQVgsSUFBb0IsS0FBS0gsS0FBTCxDQUFXSSxPQUFYLENBQW1CLENBQW5CLEVBQXNCRDtBQUEvRCxLQUFiO0FBQ0EsU0FBS0UsUUFBTCxHQUFnQlIsNkNBQUssQ0FBQ1MsU0FBTixFQUFoQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNELElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEI7QUFDQSxTQUFLRSxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0YsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNIOztBQUVEQyxVQUFRLENBQUNFLEtBQUQsRUFBUTtBQUNaQSxTQUFLLENBQUNDLGNBQU47QUFDQSxTQUFLQyxRQUFMLENBQWM7QUFBQ1gsVUFBSSxFQUFFO0FBQVAsS0FBZCxFQUE0QixNQUFNO0FBQzlCWSxjQUFRLENBQUNDLGdCQUFULENBQTBCLE9BQTFCLEVBQW1DLEtBQUtMLFFBQXhDO0FBQ0gsS0FGRDtBQUdIOztBQUVEQSxVQUFRLEdBQUc7QUFDUCxTQUFLRyxRQUFMLENBQWM7QUFBQ1gsVUFBSSxFQUFFO0FBQVAsS0FBZCxFQUE2QixNQUFNO0FBQy9CWSxjQUFRLENBQUNFLG1CQUFULENBQTZCLE9BQTdCLEVBQXNDLEtBQUtOLFFBQTNDO0FBQ0gsS0FGRDtBQUdIOztBQUVESCxVQUFRLENBQUNKLEtBQUQsRUFBUTtBQUNaLFNBQUtVLFFBQUwsQ0FBYztBQUFDVjtBQUFELEtBQWQ7QUFDQSxRQUFJLEtBQUtILEtBQUwsQ0FBV08sUUFBZixFQUF5QixLQUFLUCxLQUFMLENBQVdPLFFBQVgsQ0FBb0JKLEtBQXBCO0FBQzVCOztBQUVELE1BQUljLFFBQUosR0FBZTtBQUFDLFdBQU8sS0FBS2pCLEtBQUwsQ0FBV0ksT0FBWCxDQUFtQmMsSUFBbkIsQ0FBd0JDLENBQUMsSUFBSUEsQ0FBQyxDQUFDaEIsS0FBRixJQUFXLEtBQUtGLEtBQUwsQ0FBV0UsS0FBbkQsQ0FBUDtBQUFrRTs7QUFFbEYsTUFBSUMsT0FBSixHQUFjO0FBQ1YsVUFBTWEsUUFBUSxHQUFHLEtBQUtBLFFBQXRCO0FBQ0Esd0JBQU87QUFBSyxlQUFTLEVBQUM7QUFBZixPQUNGLEtBQUtqQixLQUFMLENBQVdJLE9BQVgsQ0FBbUJnQixHQUFuQixDQUF1QkMsR0FBRyxpQkFDdkI7QUFBSyxlQUFTLEVBQUcsbUJBQWtCSixRQUFRLENBQUNkLEtBQVQsSUFBa0JrQixHQUFHLENBQUNsQixLQUF0QixHQUE4QixXQUE5QixHQUE0QyxFQUFHLEVBQWxGO0FBQXFGLGFBQU8sRUFBRSxLQUFLSSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsSUFBbkIsRUFBeUJhLEdBQUcsQ0FBQ2xCLEtBQTdCO0FBQTlGLE9BQW9Ja0IsR0FBRyxDQUFDQyxLQUF4SSxDQURILENBREUsQ0FBUDtBQUtIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxLQUFLLEdBQUcsS0FBS3hCLEtBQUwsQ0FBV3dCLEtBQVgsSUFBb0IsYUFBcEIsR0FBb0Msd0JBQXBDLEdBQStELEVBQTdFO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLEtBQUt4QixLQUFMLENBQVdDLElBQVgsR0FBa0IsWUFBbEIsR0FBaUMsRUFBaEQ7QUFDQSx3QkFBUTtBQUFLLGVBQVMsRUFBRyxZQUFXc0IsS0FBTSxHQUFFQyxNQUFPLEVBQTNDO0FBQThDLGFBQU8sRUFBRSxLQUFLaEIsUUFBNUQ7QUFBc0UsU0FBRyxFQUFFLEtBQUtKO0FBQWhGLG9CQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FBa0MsS0FBS1ksUUFBTCxDQUFjSyxLQUFoRCxDQURKLGVBRUksNERBQUMsd0RBQUQ7QUFBTyxlQUFTLEVBQUM7QUFBakIsTUFGSixFQUdLLEtBQUtyQixLQUFMLENBQVdDLElBQVgsSUFBbUIsS0FBS0UsT0FIN0IsQ0FBUjtBQUtIOztBQS9DK0MsQyxDQWtEcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9kcm9wZG93bi5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQXJyb3cgZnJvbSBcIi4uLy4uL2ljb25zL2Rvd25hcnJvd1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7b3BlbjogZmFsc2UsIHZhbHVlOiB0aGlzLnByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMub3B0aW9uc1swXS52YWx1ZX07XHJcbiAgICAgICAgdGhpcy5kcm9wZG93biA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zaG93TWVudSA9IHRoaXMuc2hvd01lbnUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmhpZGVNZW51ID0gdGhpcy5oaWRlTWVudS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dNZW51KGV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtvcGVuOiB0cnVlfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5oaWRlTWVudSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGlkZU1lbnUoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7b3BlbjogZmFsc2V9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmhpZGVNZW51KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3ZhbHVlfSk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpIHRoaXMucHJvcHMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZWxlY3RlZCgpIHtyZXR1cm4gdGhpcy5wcm9wcy5vcHRpb25zLmZpbmQobyA9PiBvLnZhbHVlID09IHRoaXMuc3RhdGUudmFsdWUpO31cclxuXHJcbiAgICBnZXQgb3B0aW9ucygpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LW9wdGlvbnNcIj5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMub3B0aW9ucy5tYXAob3B0ID0+IFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BiZC1zZWxlY3Qtb3B0aW9uJHtzZWxlY3RlZC52YWx1ZSA9PSBvcHQudmFsdWUgPyBcIiBzZWxlY3RlZFwiIDogXCJcIn1gfSBvbkNsaWNrPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcywgb3B0LnZhbHVlKX0+e29wdC5sYWJlbH08L2Rpdj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZSA9PSBcInRyYW5zcGFyZW50XCIgPyBcIiBiZC1zZWxlY3QtdHJhbnNwYXJlbnRcIiA6IFwiXCI7XHJcbiAgICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5zdGF0ZS5vcGVuID8gXCIgbWVudS1vcGVuXCIgOiBcIlwiO1xyXG4gICAgICAgIHJldHVybiAgPGRpdiBjbGFzc05hbWU9e2BiZC1zZWxlY3Qke3N0eWxlfSR7aXNPcGVufWB9IG9uQ2xpY2s9e3RoaXMuc2hvd01lbnV9IHJlZj17dGhpcy5kcm9wZG93bn0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3QtdmFsdWVcIj57dGhpcy5zZWxlY3RlZC5sYWJlbH08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8QXJyb3cgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LWFycm93XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5vcGVuICYmIHRoaXMub3B0aW9uc31cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufVxyXG5cclxuLy8gcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LXdyYXBcIj5cclxuLy8gPGxhYmVsIGNsYXNzTmFtZT1cImJkLWxhYmVsXCI+e3RoaXMucHJvcHMubGFiZWx9PC9sYWJlbD5cclxuLy8gPGRpdiBjbGFzc05hbWU9e2BiZC1zZWxlY3Qke3N0eWxlfSR7aXNPcGVufWB9IG9uQ2xpY2s9e3RoaXMuc2hvd01lbnV9IHJlZj17dGhpcy5kcm9wZG93bn0+XHJcbi8vICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlbGVjdC1jb250cm9sc1wiPlxyXG4vLyAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LXZhbHVlXCI+e3RoaXMuc2VsZWN0ZWQubGFiZWx9PC9kaXY+XHJcbi8vICAgICAgICAgPEFycm93IGNsYXNzTmFtZT1cImJkLXNlbGVjdC1hcnJvd1wiIC8+XHJcbi8vICAgICA8L2Rpdj5cclxuLy8gPC9kaXY+XHJcbi8vIHt0aGlzLnN0YXRlLm9wZW4gJiYgdGhpcy5vcHRpb25zfVxyXG4vLyA8L2Rpdj47Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/components/dropdown.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Select; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_downarrow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icons/downarrow */ \"./src/ui/icons/downarrow.jsx\");\n\n\nclass Select extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n open: false,\n value: this.props.value || this.props.options[0].value\n };\n this.dropdown = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.onChange = this.onChange.bind(this);\n this.showMenu = this.showMenu.bind(this);\n this.hideMenu = this.hideMenu.bind(this);\n }\n\n showMenu(event) {\n event.preventDefault();\n this.setState({\n open: true\n }, () => {\n document.addEventListener(\"click\", this.hideMenu);\n });\n }\n\n hideMenu() {\n this.setState({\n open: false\n }, () => {\n document.removeEventListener(\"click\", this.hideMenu);\n });\n }\n\n onChange(value) {\n this.setState({\n value\n });\n if (this.props.onChange) this.props.onChange(value);\n }\n\n get selected() {\n return this.props.options.find(o => o.value == this.state.value);\n }\n\n get options() {\n const selected = this.selected;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-options\"\n }, this.props.options.map(opt => /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-select-option${selected.value == opt.value ? \" selected\" : \"\"}`,\n onClick: this.onChange.bind(this, opt.value)\n }, opt.label)));\n }\n\n render() {\n const style = this.props.style == \"transparent\" ? \" bd-select-transparent\" : \"\";\n const isOpen = this.state.open ? \" menu-open\" : \"\";\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-select${style}${isOpen}`,\n onClick: this.showMenu,\n ref: this.dropdown\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-value\"\n }, this.selected.label), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_downarrow__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-select-arrow\"\n }), this.state.open && this.options);\n }\n\n} // return
\n//
{this.props.label} \n//
\n//
\n//
{this.selected.label}
\n//
\n//
\n//
\n// {this.state.open && this.options}\n//
;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9kcm9wZG93bi5qc3g/NGE5YyJdLCJuYW1lcyI6WyJTZWxlY3QiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsIm9wZW4iLCJ2YWx1ZSIsIm9wdGlvbnMiLCJkcm9wZG93biIsImNyZWF0ZVJlZiIsIm9uQ2hhbmdlIiwiYmluZCIsInNob3dNZW51IiwiaGlkZU1lbnUiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic2V0U3RhdGUiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2VsZWN0ZWQiLCJmaW5kIiwibyIsIm1hcCIsIm9wdCIsImxhYmVsIiwicmVuZGVyIiwic3R5bGUiLCJpc09wZW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFBQ0MsVUFBSSxFQUFFLEtBQVA7QUFBY0MsV0FBSyxFQUFFLEtBQUtILEtBQUwsQ0FBV0csS0FBWCxJQUFvQixLQUFLSCxLQUFMLENBQVdJLE9BQVgsQ0FBbUIsQ0FBbkIsRUFBc0JEO0FBQS9ELEtBQWI7QUFDQSxTQUFLRSxRQUFMLEdBQWdCUiw2Q0FBSyxDQUFDUyxTQUFOLEVBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0QsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNBLFNBQUtFLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjRixJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0g7O0FBRURDLFVBQVEsQ0FBQ0UsS0FBRCxFQUFRO0FBQ1pBLFNBQUssQ0FBQ0MsY0FBTjtBQUNBLFNBQUtDLFFBQUwsQ0FBYztBQUFDWCxVQUFJLEVBQUU7QUFBUCxLQUFkLEVBQTRCLE1BQU07QUFDOUJZLGNBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsT0FBMUIsRUFBbUMsS0FBS0wsUUFBeEM7QUFDSCxLQUZEO0FBR0g7O0FBRURBLFVBQVEsR0FBRztBQUNQLFNBQUtHLFFBQUwsQ0FBYztBQUFDWCxVQUFJLEVBQUU7QUFBUCxLQUFkLEVBQTZCLE1BQU07QUFDL0JZLGNBQVEsQ0FBQ0UsbUJBQVQsQ0FBNkIsT0FBN0IsRUFBc0MsS0FBS04sUUFBM0M7QUFDSCxLQUZEO0FBR0g7O0FBRURILFVBQVEsQ0FBQ0osS0FBRCxFQUFRO0FBQ1osU0FBS1UsUUFBTCxDQUFjO0FBQUNWO0FBQUQsS0FBZDtBQUNBLFFBQUksS0FBS0gsS0FBTCxDQUFXTyxRQUFmLEVBQXlCLEtBQUtQLEtBQUwsQ0FBV08sUUFBWCxDQUFvQkosS0FBcEI7QUFDNUI7O0FBRUQsTUFBSWMsUUFBSixHQUFlO0FBQUMsV0FBTyxLQUFLakIsS0FBTCxDQUFXSSxPQUFYLENBQW1CYyxJQUFuQixDQUF3QkMsQ0FBQyxJQUFJQSxDQUFDLENBQUNoQixLQUFGLElBQVcsS0FBS0YsS0FBTCxDQUFXRSxLQUFuRCxDQUFQO0FBQWtFOztBQUVsRixNQUFJQyxPQUFKLEdBQWM7QUFDVixVQUFNYSxRQUFRLEdBQUcsS0FBS0EsUUFBdEI7QUFDQSx3QkFBTztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0YsS0FBS2pCLEtBQUwsQ0FBV0ksT0FBWCxDQUFtQmdCLEdBQW5CLENBQXVCQyxHQUFHLGlCQUN2QjtBQUFLLGVBQVMsRUFBRyxtQkFBa0JKLFFBQVEsQ0FBQ2QsS0FBVCxJQUFrQmtCLEdBQUcsQ0FBQ2xCLEtBQXRCLEdBQThCLFdBQTlCLEdBQTRDLEVBQUcsRUFBbEY7QUFBcUYsYUFBTyxFQUFFLEtBQUtJLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixFQUF5QmEsR0FBRyxDQUFDbEIsS0FBN0I7QUFBOUYsT0FBb0lrQixHQUFHLENBQUNDLEtBQXhJLENBREgsQ0FERSxDQUFQO0FBS0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU1DLEtBQUssR0FBRyxLQUFLeEIsS0FBTCxDQUFXd0IsS0FBWCxJQUFvQixhQUFwQixHQUFvQyx3QkFBcEMsR0FBK0QsRUFBN0U7QUFDQSxVQUFNQyxNQUFNLEdBQUcsS0FBS3hCLEtBQUwsQ0FBV0MsSUFBWCxHQUFrQixZQUFsQixHQUFpQyxFQUFoRDtBQUNBLHdCQUFRO0FBQUssZUFBUyxFQUFHLFlBQVdzQixLQUFNLEdBQUVDLE1BQU8sRUFBM0M7QUFBOEMsYUFBTyxFQUFFLEtBQUtoQixRQUE1RDtBQUFzRSxTQUFHLEVBQUUsS0FBS0o7QUFBaEYsb0JBQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUFrQyxLQUFLWSxRQUFMLENBQWNLLEtBQWhELENBREosZUFFSSw0REFBQyx3REFBRDtBQUFPLGVBQVMsRUFBQztBQUFqQixNQUZKLEVBR0ssS0FBS3JCLEtBQUwsQ0FBV0MsSUFBWCxJQUFtQixLQUFLRSxPQUg3QixDQUFSO0FBS0g7O0FBL0MrQyxDLENBa0RwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb21wb25lbnRzL2Ryb3Bkb3duLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBBcnJvdyBmcm9tIFwiLi4vLi4vaWNvbnMvZG93bmFycm93XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtvcGVuOiBmYWxzZSwgdmFsdWU6IHRoaXMucHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5vcHRpb25zWzBdLnZhbHVlfTtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNob3dNZW51ID0gdGhpcy5zaG93TWVudS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuaGlkZU1lbnUgPSB0aGlzLmhpZGVNZW51LmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd01lbnUoZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe29wZW46IHRydWV9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmhpZGVNZW51KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlTWVudSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtvcGVuOiBmYWxzZX0sICgpID0+IHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuaGlkZU1lbnUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7dmFsdWV9KTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlbGVjdGVkKCkge3JldHVybiB0aGlzLnByb3BzLm9wdGlvbnMuZmluZChvID0+IG8udmFsdWUgPT0gdGhpcy5zdGF0ZS52YWx1ZSk7fVxyXG5cclxuICAgIGdldCBvcHRpb25zKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZDtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3Qtb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5vcHRpb25zLm1hcChvcHQgPT4gXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlbGVjdC1vcHRpb24ke3NlbGVjdGVkLnZhbHVlID09IG9wdC52YWx1ZSA/IFwiIHNlbGVjdGVkXCIgOiBcIlwifWB9IG9uQ2xpY2s9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzLCBvcHQudmFsdWUpfT57b3B0LmxhYmVsfTwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlID09IFwidHJhbnNwYXJlbnRcIiA/IFwiIGJkLXNlbGVjdC10cmFuc3BhcmVudFwiIDogXCJcIjtcclxuICAgICAgICBjb25zdCBpc09wZW4gPSB0aGlzLnN0YXRlLm9wZW4gPyBcIiBtZW51LW9wZW5cIiA6IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuICA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlbGVjdCR7c3R5bGV9JHtpc09wZW59YH0gb25DbGljaz17dGhpcy5zaG93TWVudX0gcmVmPXt0aGlzLmRyb3Bkb3dufT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlbGVjdC12YWx1ZVwiPnt0aGlzLnNlbGVjdGVkLmxhYmVsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvdyBjbGFzc05hbWU9XCJiZC1zZWxlY3QtYXJyb3dcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLm9wZW4gJiYgdGhpcy5vcHRpb25zfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3Qtd3JhcFwiPlxyXG4vLyA8bGFiZWwgY2xhc3NOYW1lPVwiYmQtbGFiZWxcIj57dGhpcy5wcm9wcy5sYWJlbH08L2xhYmVsPlxyXG4vLyA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlbGVjdCR7c3R5bGV9JHtpc09wZW59YH0gb25DbGljaz17dGhpcy5zaG93TWVudX0gcmVmPXt0aGlzLmRyb3Bkb3dufT5cclxuLy8gICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LWNvbnRyb2xzXCI+XHJcbi8vICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3QtdmFsdWVcIj57dGhpcy5zZWxlY3RlZC5sYWJlbH08L2Rpdj5cclxuLy8gICAgICAgICA8QXJyb3cgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LWFycm93XCIgLz5cclxuLy8gICAgIDwvZGl2PlxyXG4vLyA8L2Rpdj5cclxuLy8ge3RoaXMuc3RhdGUub3BlbiAmJiB0aGlzLm9wdGlvbnN9XHJcbi8vIDwvZGl2PjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/components/dropdown.jsx\n");
/***/ }),
@@ -1055,7 +1054,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 SettingItem; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass SettingItem extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-item\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n htmlFor: this.props.id,\n className: \"bd-setting-title\"\n }, this.props.name), this.props.children), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-note\"\n }, this.props.note), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-divider\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvaXRlbS5qc3g/NzY1NyJdLCJuYW1lcyI6WyJTZXR0aW5nSXRlbSIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwicHJvcHMiLCJpZCIsIm5hbWUiLCJjaGlsZHJlbiIsIm5vdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFDckRDLFFBQU0sR0FBRztBQUNMLHdCQUFPO0FBQUssZUFBUyxFQUFFO0FBQWhCLG9CQUNLO0FBQUssZUFBUyxFQUFFO0FBQWhCLG9CQUNJO0FBQU8sYUFBTyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsRUFBM0I7QUFBK0IsZUFBUyxFQUFFO0FBQTFDLE9BQStELEtBQUtELEtBQUwsQ0FBV0UsSUFBMUUsQ0FESixFQUVLLEtBQUtGLEtBQUwsQ0FBV0csUUFGaEIsQ0FETCxlQUtLO0FBQUssZUFBUyxFQUFFO0FBQWhCLE9BQW9DLEtBQUtILEtBQUwsQ0FBV0ksSUFBL0MsQ0FMTCxlQU1LO0FBQUssZUFBUyxFQUFFO0FBQWhCLE1BTkwsQ0FBUDtBQVFIOztBQVZvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb21wb25lbnRzL2l0ZW0uanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdJdGVtIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e1wiYmQtc2V0dGluZy1pdGVtXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImJkLXNldHRpbmctaGVhZGVyXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17dGhpcy5wcm9wcy5pZH0gY2xhc3NOYW1lPXtcImJkLXNldHRpbmctdGl0bGVcIn0+e3RoaXMucHJvcHMubmFtZX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJiZC1zZXR0aW5nLW5vdGVcIn0+e3RoaXMucHJvcHMubm90ZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJiZC1zZXR0aW5nLWRpdmlkZXJcIn0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/components/item.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SettingItem; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass SettingItem extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-item\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n htmlFor: this.props.id,\n className: \"bd-setting-title\"\n }, this.props.name), this.props.children), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-note\"\n }, this.props.note), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-divider\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9pdGVtLmpzeD83NjU3Il0sIm5hbWVzIjpbIlNldHRpbmdJdGVtIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJwcm9wcyIsImlkIiwibmFtZSIsImNoaWxkcmVuIiwibm90ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQyw2Q0FBSyxDQUFDQyxTQUFoQyxDQUEwQztBQUNyREMsUUFBTSxHQUFHO0FBQ0wsd0JBQU87QUFBSyxlQUFTLEVBQUU7QUFBaEIsb0JBQ0s7QUFBSyxlQUFTLEVBQUU7QUFBaEIsb0JBQ0k7QUFBTyxhQUFPLEVBQUUsS0FBS0MsS0FBTCxDQUFXQyxFQUEzQjtBQUErQixlQUFTLEVBQUU7QUFBMUMsT0FBK0QsS0FBS0QsS0FBTCxDQUFXRSxJQUExRSxDQURKLEVBRUssS0FBS0YsS0FBTCxDQUFXRyxRQUZoQixDQURMLGVBS0s7QUFBSyxlQUFTLEVBQUU7QUFBaEIsT0FBb0MsS0FBS0gsS0FBTCxDQUFXSSxJQUEvQyxDQUxMLGVBTUs7QUFBSyxlQUFTLEVBQUU7QUFBaEIsTUFOTCxDQUFQO0FBUUg7O0FBVm9EIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvaXRlbS5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2V0dGluZ0l0ZW0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17XCJiZC1zZXR0aW5nLWl0ZW1cIn0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiYmQtc2V0dGluZy1oZWFkZXJcIn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXt0aGlzLnByb3BzLmlkfSBjbGFzc05hbWU9e1wiYmQtc2V0dGluZy10aXRsZVwifT57dGhpcy5wcm9wcy5uYW1lfTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImJkLXNldHRpbmctbm90ZVwifT57dGhpcy5wcm9wcy5ub3RlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImJkLXNldHRpbmctZGl2aWRlclwifSAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/components/item.jsx\n");
/***/ }),
@@ -1067,7 +1066,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 Search; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icons/search */ \"./src/ui/icons/search.jsx\");\n\n\nclass Search extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-search-wrapper\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n onChange: this.props.onChange,\n onKeyDown: this.props.onKeyDown,\n type: \"text\",\n className: \"bd-search\",\n placeholder: this.props.placeholder,\n maxLength: \"50\"\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_search__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvc2VhcmNoLmpzeD82NzI0Il0sIm5hbWVzIjpbIlNlYXJjaCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwicHJvcHMiLCJvbkNoYW5nZSIsIm9uS2V5RG93biIsInBsYWNlaG9sZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsUUFBTSxHQUFHO0FBQ0wsd0JBQU87QUFBSyxlQUFTLEVBQUM7QUFBZixvQkFDSztBQUFPLGNBQVEsRUFBRSxLQUFLQyxLQUFMLENBQVdDLFFBQTVCO0FBQXNDLGVBQVMsRUFBRSxLQUFLRCxLQUFMLENBQVdFLFNBQTVEO0FBQXVFLFVBQUksRUFBQyxNQUE1RTtBQUFtRixlQUFTLEVBQUMsV0FBN0Y7QUFBeUcsaUJBQVcsRUFBRSxLQUFLRixLQUFMLENBQVdHLFdBQWpJO0FBQThJLGVBQVMsRUFBQztBQUF4SixNQURMLGVBRUssNERBQUMscURBQUQsT0FGTCxDQUFQO0FBSUg7O0FBTitDIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvc2VhcmNoLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBTZWFyY2hJY29uIGZyb20gXCIuLi8uLi9pY29ucy9zZWFyY2hcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlYXJjaCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VhcmNoLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgb25DaGFuZ2U9e3RoaXMucHJvcHMub25DaGFuZ2V9IG9uS2V5RG93bj17dGhpcy5wcm9wcy5vbktleURvd259IHR5cGU9XCJ0ZXh0XCIgY2xhc3NOYW1lPVwiYmQtc2VhcmNoXCIgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9IG1heExlbmd0aD1cIjUwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/components/search.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Search; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icons/search */ \"./src/ui/icons/search.jsx\");\n\n\nclass Search extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-search-wrapper\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n onChange: this.props.onChange,\n onKeyDown: this.props.onKeyDown,\n type: \"text\",\n className: \"bd-search\",\n placeholder: this.props.placeholder,\n maxLength: \"50\"\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_search__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9zZWFyY2guanN4PzY3MjQiXSwibmFtZXMiOlsiU2VhcmNoIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJwcm9wcyIsIm9uQ2hhbmdlIiwib25LZXlEb3duIiwicGxhY2Vob2xkZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxRQUFNLEdBQUc7QUFDTCx3QkFBTztBQUFLLGVBQVMsRUFBQztBQUFmLG9CQUNLO0FBQU8sY0FBUSxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsUUFBNUI7QUFBc0MsZUFBUyxFQUFFLEtBQUtELEtBQUwsQ0FBV0UsU0FBNUQ7QUFBdUUsVUFBSSxFQUFDLE1BQTVFO0FBQW1GLGVBQVMsRUFBQyxXQUE3RjtBQUF5RyxpQkFBVyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0csV0FBakk7QUFBOEksZUFBUyxFQUFDO0FBQXhKLE1BREwsZUFFSyw0REFBQyxxREFBRCxPQUZMLENBQVA7QUFJSDs7QUFOK0MiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9zZWFyY2guanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IFNlYXJjaEljb24gZnJvbSBcIi4uLy4uL2ljb25zL3NlYXJjaFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VhcmNoIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1zZWFyY2gtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBvbkNoYW5nZT17dGhpcy5wcm9wcy5vbkNoYW5nZX0gb25LZXlEb3duPXt0aGlzLnByb3BzLm9uS2V5RG93bn0gdHlwZT1cInRleHRcIiBjbGFzc05hbWU9XCJiZC1zZWFyY2hcIiBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5wbGFjZWhvbGRlcn0gbWF4TGVuZ3RoPVwiNTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/components/search.jsx\n");
/***/ }),
@@ -1079,7 +1078,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 Switch; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Switch extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.checked\n };\n this.onChange = this.onChange.bind(this);\n }\n\n onChange() {\n if (this.props.disabled) return;\n this.props.onChange(!this.state.checked);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n render() {\n const enabledClass = this.props.disabled ? \" bd-switch-disabled\" : \"\";\n const checkedClass = this.state.checked ? \" bd-switch-checked\" : \"\";\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-switch` + enabledClass + checkedClass\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n type: \"checkbox\",\n id: this.props.id,\n className: `bd-checkbox`,\n disabled: this.props.disabled,\n checked: this.state.checked,\n onChange: this.onChange\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvc3dpdGNoLmpzeD82MWQyIl0sIm5hbWVzIjpbIlN3aXRjaCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwiYmluZCIsImRpc2FibGVkIiwic2V0U3RhdGUiLCJyZW5kZXIiLCJlbmFibGVkQ2xhc3MiLCJjaGVja2VkQ2xhc3MiLCJpZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQUNDLGFBQU8sRUFBRSxLQUFLRixLQUFMLENBQVdFO0FBQXJCLEtBQWI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNIOztBQUVERCxVQUFRLEdBQUc7QUFDUCxRQUFJLEtBQUtILEtBQUwsQ0FBV0ssUUFBZixFQUF5QjtBQUN6QixTQUFLTCxLQUFMLENBQVdHLFFBQVgsQ0FBb0IsQ0FBQyxLQUFLRixLQUFMLENBQVdDLE9BQWhDO0FBQ0EsU0FBS0ksUUFBTCxDQUFjO0FBQUNKLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNIOztBQUVESyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxZQUFZLEdBQUcsS0FBS1IsS0FBTCxDQUFXSyxRQUFYLEdBQXNCLHFCQUF0QixHQUE4QyxFQUFuRTtBQUNBLFVBQU1JLFlBQVksR0FBRyxLQUFLUixLQUFMLENBQVdDLE9BQVgsR0FBcUIsb0JBQXJCLEdBQTRDLEVBQWpFO0FBQ0Esd0JBQVE7QUFBSyxlQUFTLEVBQUcsV0FBRCxHQUFjTSxZQUFkLEdBQTZCQztBQUE3QyxvQkFDSTtBQUFPLFVBQUksRUFBQyxVQUFaO0FBQXVCLFFBQUUsRUFBRSxLQUFLVCxLQUFMLENBQVdVLEVBQXRDO0FBQTBDLGVBQVMsRUFBRyxhQUF0RDtBQUFvRSxjQUFRLEVBQUUsS0FBS1YsS0FBTCxDQUFXSyxRQUF6RjtBQUFtRyxhQUFPLEVBQUUsS0FBS0osS0FBTCxDQUFXQyxPQUF2SDtBQUFnSSxjQUFRLEVBQUUsS0FBS0M7QUFBL0ksTUFESixDQUFSO0FBR0g7O0FBbkIrQyIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb21wb25lbnRzL3N3aXRjaC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3dpdGNoIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7Y2hlY2tlZDogdGhpcy5wcm9wcy5jaGVja2VkfTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSghdGhpcy5zdGF0ZS5jaGVja2VkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGVuYWJsZWRDbGFzcyA9IHRoaXMucHJvcHMuZGlzYWJsZWQgPyBcIiBiZC1zd2l0Y2gtZGlzYWJsZWRcIiA6IFwiXCI7XHJcbiAgICAgICAgY29uc3QgY2hlY2tlZENsYXNzID0gdGhpcy5zdGF0ZS5jaGVja2VkID8gXCIgYmQtc3dpdGNoLWNoZWNrZWRcIiA6IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuICA8ZGl2IGNsYXNzTmFtZT17YGJkLXN3aXRjaGAgKyBlbmFibGVkQ2xhc3MgKyBjaGVja2VkQ2xhc3N9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD17dGhpcy5wcm9wcy5pZH0gY2xhc3NOYW1lPXtgYmQtY2hlY2tib3hgfSBkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH0gY2hlY2tlZD17dGhpcy5zdGF0ZS5jaGVja2VkfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/components/switch.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Switch; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Switch extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.checked\n };\n this.onChange = this.onChange.bind(this);\n }\n\n onChange() {\n if (this.props.disabled) return;\n this.props.onChange(!this.state.checked);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n render() {\n const enabledClass = this.props.disabled ? \" bd-switch-disabled\" : \"\";\n const checkedClass = this.state.checked ? \" bd-switch-checked\" : \"\";\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-switch` + enabledClass + checkedClass\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n type: \"checkbox\",\n id: this.props.id,\n className: `bd-checkbox`,\n disabled: this.props.disabled,\n checked: this.state.checked,\n onChange: this.onChange\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9zd2l0Y2guanN4PzYxZDIiXSwibmFtZXMiOlsiU3dpdGNoIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic3RhdGUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJiaW5kIiwiZGlzYWJsZWQiLCJzZXRTdGF0ZSIsInJlbmRlciIsImVuYWJsZWRDbGFzcyIsImNoZWNrZWRDbGFzcyIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFBQ0MsYUFBTyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0U7QUFBckIsS0FBYjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0g7O0FBRURELFVBQVEsR0FBRztBQUNQLFFBQUksS0FBS0gsS0FBTCxDQUFXSyxRQUFmLEVBQXlCO0FBQ3pCLFNBQUtMLEtBQUwsQ0FBV0csUUFBWCxDQUFvQixDQUFDLEtBQUtGLEtBQUwsQ0FBV0MsT0FBaEM7QUFDQSxTQUFLSSxRQUFMLENBQWM7QUFBQ0osYUFBTyxFQUFFLENBQUMsS0FBS0QsS0FBTCxDQUFXQztBQUF0QixLQUFkO0FBQ0g7O0FBRURLLFFBQU0sR0FBRztBQUNMLFVBQU1DLFlBQVksR0FBRyxLQUFLUixLQUFMLENBQVdLLFFBQVgsR0FBc0IscUJBQXRCLEdBQThDLEVBQW5FO0FBQ0EsVUFBTUksWUFBWSxHQUFHLEtBQUtSLEtBQUwsQ0FBV0MsT0FBWCxHQUFxQixvQkFBckIsR0FBNEMsRUFBakU7QUFDQSx3QkFBUTtBQUFLLGVBQVMsRUFBRyxXQUFELEdBQWNNLFlBQWQsR0FBNkJDO0FBQTdDLG9CQUNJO0FBQU8sVUFBSSxFQUFDLFVBQVo7QUFBdUIsUUFBRSxFQUFFLEtBQUtULEtBQUwsQ0FBV1UsRUFBdEM7QUFBMEMsZUFBUyxFQUFHLGFBQXREO0FBQW9FLGNBQVEsRUFBRSxLQUFLVixLQUFMLENBQVdLLFFBQXpGO0FBQW1HLGFBQU8sRUFBRSxLQUFLSixLQUFMLENBQVdDLE9BQXZIO0FBQWdJLGNBQVEsRUFBRSxLQUFLQztBQUEvSSxNQURKLENBQVI7QUFHSDs7QUFuQitDIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvc3dpdGNoLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTd2l0Y2ggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtjaGVja2VkOiB0aGlzLnByb3BzLmNoZWNrZWR9O1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKCF0aGlzLnN0YXRlLmNoZWNrZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgZW5hYmxlZENsYXNzID0gdGhpcy5wcm9wcy5kaXNhYmxlZCA/IFwiIGJkLXN3aXRjaC1kaXNhYmxlZFwiIDogXCJcIjtcclxuICAgICAgICBjb25zdCBjaGVja2VkQ2xhc3MgPSB0aGlzLnN0YXRlLmNoZWNrZWQgPyBcIiBiZC1zd2l0Y2gtY2hlY2tlZFwiIDogXCJcIjtcclxuICAgICAgICByZXR1cm4gIDxkaXYgY2xhc3NOYW1lPXtgYmQtc3dpdGNoYCArIGVuYWJsZWRDbGFzcyArIGNoZWNrZWRDbGFzc30+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPXt0aGlzLnByb3BzLmlkfSBjbGFzc05hbWU9e2BiZC1jaGVja2JveGB9IGRpc2FibGVkPXt0aGlzLnByb3BzLmRpc2FibGVkfSBjaGVja2VkPXt0aGlzLnN0YXRlLmNoZWNrZWR9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfSAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/components/switch.jsx\n");
/***/ }),
@@ -1091,7 +1090,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 Divider; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Divider extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-divider divider-3573oO marginTop8-1DLZ1n marginBottom40-2vIwTv\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2RpdmlkZXIuanN4P2M4Y2MiXSwibmFtZXMiOlsiRGl2aWRlciIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE9BQU4sU0FBc0JDLDZDQUFLLENBQUNDLFNBQTVCLENBQXNDO0FBQ2pEQyxRQUFNLEdBQUc7QUFDTCx3QkFBTztBQUFLLGVBQVMsRUFBQztBQUFmLE1BQVA7QUFDSDs7QUFIZ0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvZGl2aWRlci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGl2aWRlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtZGl2aWRlciBkaXZpZGVyLTM1NzNvTyBtYXJnaW5Ub3A4LTFETFoxbiBtYXJnaW5Cb3R0b200MC0ydkl3VHZcIiAvPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/divider.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Divider; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Divider extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-divider divider-3573oO marginTop8-1DLZ1n marginBottom40-2vIwTv\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvZGl2aWRlci5qc3g/YzhjYyJdLCJuYW1lcyI6WyJEaXZpZGVyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsT0FBTixTQUFzQkMsNkNBQUssQ0FBQ0MsU0FBNUIsQ0FBc0M7QUFDakRDLFFBQU0sR0FBRztBQUNMLHdCQUFPO0FBQUssZUFBUyxFQUFDO0FBQWYsTUFBUDtBQUNIOztBQUhnRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9kaXZpZGVyLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXZpZGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1kaXZpZGVyIGRpdmlkZXItMzU3M29PIG1hcmdpblRvcDgtMURMWjFuIG1hcmdpbkJvdHRvbTQwLTJ2SXdUdlwiIC8+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/divider.jsx\n");
/***/ }),
@@ -1103,7 +1102,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 Group; });\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 _divider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./divider */ \"./src/ui/settings/divider.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/settings/components/switch.jsx\");\n/* harmony import */ var _components_dropdown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/dropdown */ \"./src/ui/settings/components/dropdown.jsx\");\n/* harmony import */ var _components_item__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/item */ \"./src/ui/settings/components/item.jsx\");\n\n\n\n\n\n\nconst baseClassName = \"bd-settings-group\";\nclass Group extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n\n if (this.props.button && this.props.collapsible) {\n const original = this.props.button.onClick;\n\n this.props.button.onClick = event => {\n event.stopPropagation();\n original(...arguments);\n };\n }\n\n if (!this.props.hasOwnProperty(\"shown\")) this.props.shown = true;\n this.container = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.state = {\n collapsed: this.props.collapsible && !this.props.shown\n };\n this.onChange = this.onChange.bind(this);\n this.toggleCollapse = this.toggleCollapse.bind(this);\n }\n\n toggleCollapse() {\n const container = this.container.current;\n const timeout = this.state.collapsed ? 300 : 1;\n container.style.setProperty(\"height\", container.scrollHeight + \"px\");\n container.classList.add(\"animating\");\n this.setState({\n collapsed: !this.state.collapsed\n }, () => setTimeout(() => {\n container.style.setProperty(\"height\", \"\");\n container.classList.remove(\"animating\");\n }, timeout));\n if (this.props.onDrawerToggle) this.props.onDrawerToggle(this.state.collapsed);\n }\n\n onChange(id, value) {\n if (!this.props.onChange) return;\n if (this.props.id) this.props.onChange(this.props.id, id, value);else this.props.onChange(id, value);\n this.forceUpdate();\n }\n\n render() {\n const {\n settings\n } = this.props;\n const collapseClass = this.props.collapsible ? `collapsible ${this.state.collapsed ? \"collapsed\" : \"expanded\"}` : \"\";\n const groupClass = `${baseClassName} ${collapseClass}`;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: groupClass\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.props.name,\n collapsible: this.props.collapsible,\n onClick: this.toggleCollapse,\n button: this.props.button,\n isGroup: true\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-settings-container\",\n ref: this.container\n }, settings.filter(s => !s.hidden).map(setting => {\n let component = null;\n if (setting.type == \"dropdown\") component = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n options: setting.options,\n value: setting.value,\n onChange: this.onChange.bind(this, setting.id)\n });\n if (setting.type == \"switch\") component = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_switch__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n checked: setting.value,\n onChange: this.onChange.bind(this, setting.id)\n });\n if (!component) return null;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_item__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n id: setting.id,\n key: setting.id,\n name: setting.name,\n note: setting.note\n }, component);\n })), this.props.showDivider && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_divider__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null));\n }\n\n}\nconst originalRender = Group.prototype.render;\nObject.defineProperty(Group.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"Group\", \"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2dyb3VwLmpzeD8xYjcyIl0sIm5hbWVzIjpbImJhc2VDbGFzc05hbWUiLCJHcm91cCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImJ1dHRvbiIsImNvbGxhcHNpYmxlIiwib3JpZ2luYWwiLCJvbkNsaWNrIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJhcmd1bWVudHMiLCJoYXNPd25Qcm9wZXJ0eSIsInNob3duIiwiY29udGFpbmVyIiwiY3JlYXRlUmVmIiwic3RhdGUiLCJjb2xsYXBzZWQiLCJvbkNoYW5nZSIsImJpbmQiLCJ0b2dnbGVDb2xsYXBzZSIsImN1cnJlbnQiLCJ0aW1lb3V0Iiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsInNjcm9sbEhlaWdodCIsImNsYXNzTGlzdCIsImFkZCIsInNldFN0YXRlIiwic2V0VGltZW91dCIsInJlbW92ZSIsIm9uRHJhd2VyVG9nZ2xlIiwiaWQiLCJ2YWx1ZSIsImZvcmNlVXBkYXRlIiwicmVuZGVyIiwic2V0dGluZ3MiLCJjb2xsYXBzZUNsYXNzIiwiZ3JvdXBDbGFzcyIsIm5hbWUiLCJmaWx0ZXIiLCJzIiwiaGlkZGVuIiwibWFwIiwic2V0dGluZyIsImNvbXBvbmVudCIsInR5cGUiLCJkaXNhYmxlZCIsIm9wdGlvbnMiLCJub3RlIiwic2hvd0RpdmlkZXIiLCJvcmlnaW5hbFJlbmRlciIsInByb3RvdHlwZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInNldCIsIkxvZ2dlciIsIndhcm4iLCJnZXQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFNQSxhQUFhLEdBQUcsbUJBQXRCO0FBRWUsTUFBTUMsS0FBTixTQUFvQkMsNkNBQUssQ0FBQ0Ms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LEVBQXlCeUIsT0FBTyxDQUFDWixFQUFqQztBQUF0RixRQUFaO0FBQzlCLFVBQUksQ0FBQ2EsU0FBTCxFQUFnQixPQUFPLElBQVA7QUFDaEIsMEJBQU8sNERBQUMsd0RBQUQ7QUFBTSxVQUFFLEVBQUVELE9BQU8sQ0FBQ1osRUFBbEI7QUFBc0IsV0FBRyxFQUFFWSxPQUFPLENBQUNaLEVBQW5DO0FBQXVDLFlBQUksRUFBRVksT0FBTyxDQUFDTCxJQUFyRDtBQUEyRCxZQUFJLEVBQUVLLE9BQU8sQ0FBQ0s7QUFBekUsU0FBZ0ZKLFNBQWhGLENBQVA7QUFDSCxLQU5BLENBREwsQ0FGTCxFQVdNLEtBQUt6QyxLQUFMLENBQVc4QyxXQUFYLGlCQUEwQiw0REFBQyxnREFBRCxPQVhoQyxDQUFQO0FBYUg7O0FBNUQ4QztBQStEbkQsTUFBTUMsY0FBYyxHQUFHbkQsS0FBSyxDQUFDb0QsU0FBTixDQUFnQmpCLE1BQXZDO0FBQ0FrQixNQUFNLENBQUNDLGNBQVAsQ0FBc0J0RCxLQUFLLENBQUNvRCxTQUE1QixFQUF1QyxRQUF2QyxFQUFpRDtBQUM3Q0csWUFBVSxFQUFFLEtBRGlDO0FBRTdDQyxjQUFZLEVBQUUsS0FGK0I7QUFHN0NDLEtBQUcsRUFBRSxZQUFXO0FBQUNDLGtEQUFNLENBQUNDLElBQVAsQ0FBWSxPQUFaLEVBQXFCLHFHQUFyQjtBQUE2SCxHQUhqRztBQUk3Q0MsS0FBRyxFQUFFLE1BQU1UO0FBSmtDLENBQWpEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2dyb3VwLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIExvZ2dlcn0gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IFRpdGxlIGZyb20gXCIuL3RpdGxlXCI7XHJcbmltcG9ydCBEaXZpZGVyIGZyb20gXCIuL2RpdmlkZXJcIjtcclxuaW1wb3J0IFN3aXRjaCBmcm9tIFwiLi9jb21wb25lbnRzL3N3aXRjaFwiO1xyXG5pbXBvcnQgRHJvcGRvd24gZnJvbSBcIi4vY29tcG9uZW50cy9kcm9wZG93blwiO1xyXG5pbXBvcnQgSXRlbSBmcm9tIFwiLi9jb21wb25lbnRzL2l0ZW1cIjtcclxuXHJcbmNvbnN0IGJhc2VDbGFzc05hbWUgPSBcImJkLXNldHRpbmdzLWdyb3VwXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHcm91cCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYnV0dG9uICYmIHRoaXMucHJvcHMuY29sbGFwc2libGUpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLnByb3BzLmJ1dHRvbi5vbkNsaWNrO1xyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmJ1dHRvbi5vbkNsaWNrID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsKC4uLmFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMuaGFzT3duUHJvcGVydHkoXCJzaG93blwiKSkgdGhpcy5wcm9wcy5zaG93biA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY29sbGFwc2VkOiB0aGlzLnByb3BzLmNvbGxhcHNpYmxlICYmICF0aGlzLnByb3BzLnNob3duXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlID0gdGhpcy50b2dnbGVDb2xsYXBzZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUNvbGxhcHNlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XHJcbiAgICAgICAgY29uc3QgdGltZW91dCA9IHRoaXMuc3RhdGUuY29sbGFwc2VkID8gMzAwIDogMTtcclxuICAgICAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJoZWlnaHRcIiwgY29udGFpbmVyLnNjcm9sbEhlaWdodCArIFwicHhcIik7XHJcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJhbmltYXRpbmdcIik7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29sbGFwc2VkOiAhdGhpcy5zdGF0ZS5jb2xsYXBzZWR9LCAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KFwiaGVpZ2h0XCIsIFwiXCIpO1xyXG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShcImFuaW1hdGluZ1wiKTtcclxuICAgICAgICB9LCB0aW1lb3V0KSk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25EcmF3ZXJUb2dnbGUpIHRoaXMucHJvcHMub25EcmF3ZXJUb2dnbGUodGhpcy5zdGF0ZS5jb2xsYXBzZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKGlkLCB2YWx1ZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5vbkNoYW5nZSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmlkKSB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuaWQsIGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgZWxzZSB0aGlzLnByb3BzLm9uQ2hhbmdlKGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2V0dGluZ3N9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBjb2xsYXBzZUNsYXNzID0gdGhpcy5wcm9wcy5jb2xsYXBzaWJsZSA/IGBjb2xsYXBzaWJsZSAke3RoaXMuc3RhdGUuY29sbGFwc2VkID8gXCJjb2xsYXBzZWRcIiA6IFwiZXhwYW5kZWRcIn1gIDogXCJcIjtcclxuICAgICAgICBjb25zdCBncm91cENsYXNzID0gYCR7YmFzZUNsYXNzTmFtZX0gJHtjb2xsYXBzZUNsYXNzfWA7XHJcblxyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Z3JvdXBDbGFzc30+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRpdGxlIHRleHQ9e3RoaXMucHJvcHMubmFtZX0gY29sbGFwc2libGU9e3RoaXMucHJvcHMuY29sbGFwc2libGV9IG9uQ2xpY2s9e3RoaXMudG9nZ2xlQ29sbGFwc2V9IGJ1dHRvbj17dGhpcy5wcm9wcy5idXR0b259IGlzR3JvdXA9e3RydWV9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZXR0aW5ncy1jb250YWluZXJcIiByZWY9e3RoaXMuY29udGFpbmVyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3NldHRpbmdzLmZpbHRlcihzID0+ICFzLmhpZGRlbikubWFwKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLnR5cGUgPT0gXCJkcm9wZG93blwiKSBjb21wb25lbnQgPSA8RHJvcGRvd24gZGlzYWJsZWQ9e3NldHRpbmcuZGlzYWJsZWR9IGlkPXtzZXR0aW5nLmlkfSBvcHRpb25zPXtzZXR0aW5nLm9wdGlvbnN9IHZhbHVlPXtzZXR0aW5nLnZhbHVlfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMsIHNldHRpbmcuaWQpfSAvPjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLnR5cGUgPT0gXCJzd2l0Y2hcIikgY29tcG9uZW50ID0gPFN3aXRjaCBkaXNhYmxlZD17c2V0dGluZy5kaXNhYmxlZH0gaWQ9e3NldHRpbmcuaWR9IGNoZWNrZWQ9e3NldHRpbmcudmFsdWV9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcywgc2V0dGluZy5pZCl9IC8+O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wb25lbnQpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxJdGVtIGlkPXtzZXR0aW5nLmlkfSBrZXk9e3NldHRpbmcuaWR9IG5hbWU9e3NldHRpbmcubmFtZX0gbm90ZT17c2V0dGluZy5ub3RlfT57Y29tcG9uZW50fTwvSXRlbT47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dEaXZpZGVyICYmIDxEaXZpZGVyIC8+fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBvcmlnaW5hbFJlbmRlciA9IEdyb3VwLnByb3RvdHlwZS5yZW5kZXI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShHcm91cC5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHtcclxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcclxuICAgIHNldDogZnVuY3Rpb24oKSB7TG9nZ2VyLndhcm4oXCJHcm91cFwiLCBcIkFkZG9uIHBvbGljeSBmb3IgcGx1Z2lucyAjNSBodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3dpa2kvQWRkb24tUG9saWNpZXMjcGx1Z2luc1wiKTt9LFxyXG4gICAgZ2V0OiAoKSA9PiBvcmlnaW5hbFJlbmRlclxyXG59KTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/group.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Group; });\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 _divider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./divider */ \"./src/ui/settings/divider.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/settings/components/switch.jsx\");\n/* harmony import */ var _components_dropdown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/dropdown */ \"./src/ui/settings/components/dropdown.jsx\");\n/* harmony import */ var _components_item__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/item */ \"./src/ui/settings/components/item.jsx\");\n\n\n\n\n\n\nconst baseClassName = \"bd-settings-group\";\nclass Group extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n\n if (this.props.button && this.props.collapsible) {\n const original = this.props.button.onClick;\n\n this.props.button.onClick = event => {\n event.stopPropagation();\n original(...arguments);\n };\n }\n\n if (!this.props.hasOwnProperty(\"shown\")) this.props.shown = true;\n this.container = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.state = {\n collapsed: this.props.collapsible && !this.props.shown\n };\n this.onChange = this.onChange.bind(this);\n this.toggleCollapse = this.toggleCollapse.bind(this);\n }\n\n toggleCollapse() {\n const container = this.container.current;\n const timeout = this.state.collapsed ? 300 : 1;\n container.style.setProperty(\"height\", container.scrollHeight + \"px\");\n container.classList.add(\"animating\");\n this.setState({\n collapsed: !this.state.collapsed\n }, () => setTimeout(() => {\n container.style.setProperty(\"height\", \"\");\n container.classList.remove(\"animating\");\n }, timeout));\n if (this.props.onDrawerToggle) this.props.onDrawerToggle(this.state.collapsed);\n }\n\n onChange(id, value) {\n if (!this.props.onChange) return;\n if (this.props.id) this.props.onChange(this.props.id, id, value);else this.props.onChange(id, value);\n this.forceUpdate();\n }\n\n render() {\n const {\n settings\n } = this.props;\n const collapseClass = this.props.collapsible ? `collapsible ${this.state.collapsed ? \"collapsed\" : \"expanded\"}` : \"\";\n const groupClass = `${baseClassName} ${collapseClass}`;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: groupClass\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.props.name,\n collapsible: this.props.collapsible,\n onClick: this.toggleCollapse,\n button: this.props.button,\n isGroup: true\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-settings-container\",\n ref: this.container\n }, settings.filter(s => !s.hidden).map(setting => {\n let component = null;\n if (setting.type == \"dropdown\") component = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n options: setting.options,\n value: setting.value,\n onChange: this.onChange.bind(this, setting.id)\n });\n if (setting.type == \"switch\") component = /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_switch__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n checked: setting.value,\n onChange: this.onChange.bind(this, setting.id)\n });\n if (!component) return null;\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_item__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n id: setting.id,\n key: setting.id,\n name: setting.name,\n note: setting.note\n }, component);\n })), this.props.showDivider && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_divider__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null));\n }\n\n}\nconst originalRender = Group.prototype.render;\nObject.defineProperty(Group.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].warn(\"Group\", \"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvZ3JvdXAuanN4PzFiNzIiXSwibmFtZXMiOlsiYmFzZUNsYXNzTmFtZSIsIkdyb3VwIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiYnV0dG9uIiwiY29sbGFwc2libGUiLCJvcmlnaW5hbCIsIm9uQ2xpY2siLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsImFyZ3VtZW50cyIsImhhc093blByb3BlcnR5Iiwic2hvd24iLCJjb250YWluZXIiLCJjcmVhdGVSZWYiLCJzdGF0ZSIsImNvbGxhcHNlZCIsIm9uQ2hhbmdlIiwiYmluZCIsInRvZ2dsZUNvbGxhcHNlIiwiY3VycmVudCIsInRpbWVvdXQiLCJzdHlsZSIsInNldFByb3BlcnR5Iiwic2Nyb2xsSGVpZ2h0IiwiY2xhc3NMaXN0IiwiYWRkIiwic2V0U3RhdGUiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwib25EcmF3ZXJUb2dnbGUiLCJpZCIsInZhbHVlIiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJzZXR0aW5ncyIsImNvbGxhcHNlQ2xhc3MiLCJncm91cENsYXNzIiwibmFtZSIsImZpbHRlciIsInMiLCJoaWRkZW4iLCJtYXAiLCJzZXR0aW5nIiwiY29tcG9uZW50IiwidHlwZSIsImRpc2FibGVkIiwib3B0aW9ucyIsIm5vdGUiLCJzaG93RGl2aWRlciIsIm9yaWdpbmFsUmVuZGVyIiwicHJvdG90eXBlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwic2V0IiwiTG9nZ2VyIiwid2FybiIsImdldCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLGFBQWEsR0FBRyxtQkFBdEI7QUFFZSxNQUFNQyxLQUFOLFNBQW9CQyw2Q0FBSyxDQUFDQyxTQUEx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eUJ5QixPQUFPLENBQUNaLEVBQWpDO0FBQXRGLFFBQVo7QUFDOUIsVUFBSSxDQUFDYSxTQUFMLEVBQWdCLE9BQU8sSUFBUDtBQUNoQiwwQkFBTyw0REFBQyx3REFBRDtBQUFNLFVBQUUsRUFBRUQsT0FBTyxDQUFDWixFQUFsQjtBQUFzQixXQUFHLEVBQUVZLE9BQU8sQ0FBQ1osRUFBbkM7QUFBdUMsWUFBSSxFQUFFWSxPQUFPLENBQUNMLElBQXJEO0FBQTJELFlBQUksRUFBRUssT0FBTyxDQUFDSztBQUF6RSxTQUFnRkosU0FBaEYsQ0FBUDtBQUNILEtBTkEsQ0FETCxDQUZMLEVBV00sS0FBS3pDLEtBQUwsQ0FBVzhDLFdBQVgsaUJBQTBCLDREQUFDLGdEQUFELE9BWGhDLENBQVA7QUFhSDs7QUE1RDhDO0FBK0RuRCxNQUFNQyxjQUFjLEdBQUduRCxLQUFLLENBQUNvRCxTQUFOLENBQWdCakIsTUFBdkM7QUFDQWtCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQnRELEtBQUssQ0FBQ29ELFNBQTVCLEVBQXVDLFFBQXZDLEVBQWlEO0FBQzdDRyxZQUFVLEVBQUUsS0FEaUM7QUFFN0NDLGNBQVksRUFBRSxLQUYrQjtBQUc3Q0MsS0FBRyxFQUFFLFlBQVc7QUFBQ0Msa0RBQU0sQ0FBQ0MsSUFBUCxDQUFZLE9BQVosRUFBcUIscUdBQXJCO0FBQTZILEdBSGpHO0FBSTdDQyxLQUFHLEVBQUUsTUFBTVQ7QUFKa0MsQ0FBakQiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvZ3JvdXAuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgTG9nZ2VyfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IERpdmlkZXIgZnJvbSBcIi4vZGl2aWRlclwiO1xyXG5pbXBvcnQgU3dpdGNoIGZyb20gXCIuL2NvbXBvbmVudHMvc3dpdGNoXCI7XHJcbmltcG9ydCBEcm9wZG93biBmcm9tIFwiLi9jb21wb25lbnRzL2Ryb3Bkb3duXCI7XHJcbmltcG9ydCBJdGVtIGZyb20gXCIuL2NvbXBvbmVudHMvaXRlbVwiO1xyXG5cclxuY29uc3QgYmFzZUNsYXNzTmFtZSA9IFwiYmQtc2V0dGluZ3MtZ3JvdXBcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdyb3VwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5idXR0b24gJiYgdGhpcy5wcm9wcy5jb2xsYXBzaWJsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHRoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2s7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWwoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5oYXNPd25Qcm9wZXJ0eShcInNob3duXCIpKSB0aGlzLnByb3BzLnNob3duID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjb2xsYXBzZWQ6IHRoaXMucHJvcHMuY29sbGFwc2libGUgJiYgIXRoaXMucHJvcHMuc2hvd25cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UgPSB0aGlzLnRvZ2dsZUNvbGxhcHNlLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlQ29sbGFwc2UoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY3VycmVudDtcclxuICAgICAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5zdGF0ZS5jb2xsYXBzZWQgPyAzMDAgOiAxO1xyXG4gICAgICAgIGNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eShcImhlaWdodFwiLCBjb250YWluZXIuc2Nyb2xsSGVpZ2h0ICsgXCJweFwiKTtcclxuICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChcImFuaW1hdGluZ1wiKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjb2xsYXBzZWQ6ICF0aGlzLnN0YXRlLmNvbGxhcHNlZH0sICgpID0+IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJoZWlnaHRcIiwgXCJcIik7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKFwiYW5pbWF0aW5nXCIpO1xyXG4gICAgICAgIH0sIHRpbWVvdXQpKTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRyYXdlclRvZ2dsZSkgdGhpcy5wcm9wcy5vbkRyYXdlclRvZ2dsZSh0aGlzLnN0YXRlLmNvbGxhcHNlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoaWQsIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLm9uQ2hhbmdlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaWQpIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5pZCwgaWQsIHZhbHVlKTtcclxuICAgICAgICBlbHNlIHRoaXMucHJvcHMub25DaGFuZ2UoaWQsIHZhbHVlKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtzZXR0aW5nc30gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IGNvbGxhcHNlQ2xhc3MgPSB0aGlzLnByb3BzLmNvbGxhcHNpYmxlID8gYGNvbGxhcHNpYmxlICR7dGhpcy5zdGF0ZS5jb2xsYXBzZWQgPyBcImNvbGxhcHNlZFwiIDogXCJleHBhbmRlZFwifWAgOiBcIlwiO1xyXG4gICAgICAgIGNvbnN0IGdyb3VwQ2xhc3MgPSBgJHtiYXNlQ2xhc3NOYW1lfSAke2NvbGxhcHNlQ2xhc3N9YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtncm91cENsYXNzfT5cclxuICAgICAgICAgICAgICAgICAgICA8VGl0bGUgdGV4dD17dGhpcy5wcm9wcy5uYW1lfSBjb2xsYXBzaWJsZT17dGhpcy5wcm9wcy5jb2xsYXBzaWJsZX0gb25DbGljaz17dGhpcy50b2dnbGVDb2xsYXBzZX0gYnV0dG9uPXt0aGlzLnByb3BzLmJ1dHRvbn0gaXNHcm91cD17dHJ1ZX0gLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNldHRpbmdzLWNvbnRhaW5lclwiIHJlZj17dGhpcy5jb250YWluZXJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7c2V0dGluZ3MuZmlsdGVyKHMgPT4gIXMuaGlkZGVuKS5tYXAoKHNldHRpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcudHlwZSA9PSBcImRyb3Bkb3duXCIpIGNvbXBvbmVudCA9IDxEcm9wZG93biBkaXNhYmxlZD17c2V0dGluZy5kaXNhYmxlZH0gaWQ9e3NldHRpbmcuaWR9IG9wdGlvbnM9e3NldHRpbmcub3B0aW9uc30gdmFsdWU9e3NldHRpbmcudmFsdWV9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcywgc2V0dGluZy5pZCl9IC8+O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcudHlwZSA9PSBcInN3aXRjaFwiKSBjb21wb25lbnQgPSA8U3dpdGNoIGRpc2FibGVkPXtzZXR0aW5nLmRpc2FibGVkfSBpZD17c2V0dGluZy5pZH0gY2hlY2tlZD17c2V0dGluZy52YWx1ZX0gb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzLCBzZXR0aW5nLmlkKX0gLz47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbXBvbmVudCkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEl0ZW0gaWQ9e3NldHRpbmcuaWR9IGtleT17c2V0dGluZy5pZH0gbmFtZT17c2V0dGluZy5uYW1lfSBub3RlPXtzZXR0aW5nLm5vdGV9Pntjb21wb25lbnR9PC9JdGVtPjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd0RpdmlkZXIgJiYgPERpdmlkZXIgLz59XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IG9yaWdpbmFsUmVuZGVyID0gR3JvdXAucHJvdG90eXBlLnJlbmRlcjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEdyb3VwLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge1xyXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgc2V0OiBmdW5jdGlvbigpIHtMb2dnZXIud2FybihcIkdyb3VwXCIsIFwiQWRkb24gcG9saWN5IGZvciBwbHVnaW5zICM1IGh0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvd2lraS9BZGRvbi1Qb2xpY2llcyNwbHVnaW5zXCIpO30sXHJcbiAgICBnZXQ6ICgpID0+IG9yaWdpbmFsUmVuZGVyXHJcbn0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/group.jsx\n");
/***/ }),
@@ -1115,7 +1114,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 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 _icons_history__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/history */ \"./src/ui/icons/history.jsx\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\nconst SidebarComponents = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.Header && m.Separator && m.Item);\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nclass SettingsTitle extends modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n className: \"bd-sidebar-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(SidebarComponents.Header, null, \"BandagedBD\"), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: \"Changelog\"\n }, props => /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", _extends({}, props, {\n className: \"bd-changelog-button\",\n onClick: () => _modals__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showChangelogModal(data__WEBPACK_IMPORTED_MODULE_0__[\"Changelog\"])\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_icons_history__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-icon\",\n size: \"16px\"\n }))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3NpZGViYXJoZWFkZXIuanN4P2E5NWEiXSwibmFtZXMiOlsiU2lkZWJhckNvbXBvbmVudHMiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJIZWFkZXIiLCJTZXBhcmF0b3IiLCJJdGVtIiwiVG9vbHRpcCIsImdldEJ5RGlzcGxheU5hbWUiLCJTZXR0aW5nc1RpdGxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiTW9kYWxzIiwic2hvd0NoYW5nZWxvZ01vZGFsIiwiQ2hhbmdlbG9nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsaUJBQWlCLEdBQUdDLHNEQUFjLENBQUNDLFNBQWYsQ0FBeUJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxNQUFGLElBQVlELENBQUMsQ0FBQ0UsU0FBZCxJQUEyQkYsQ0FBQyxDQUFDRyxJQUEzRCxDQUExQjtBQUNBLE1BQU1DLE9BQU8sR0FBR04sc0RBQWMsQ0FBQ08sZ0JBQWYsQ0FBZ0MsU0FBaEMsQ0FBaEI7QUFFZSxNQUFNQyxhQUFOLFNBQTRCQyw2Q0FBSyxDQUFDQyxTQUFsQyxDQUE0QztBQUN2REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLHdCQUFPO0FBQUssZUFBUyxFQUFDO0FBQWYsb0JBQ0ssNERBQUMsaUJBQUQsQ0FBbUIsTUFBbkIscUJBREwsZUFFSyw0REFBQyxPQUFEO0FBQVMsV0FBSyxFQUFDLE9BQWY7QUFBdUIsY0FBUSxFQUFDLEtBQWhDO0FBQXNDLFVBQUksRUFBQztBQUEzQyxPQUNLRCxLQUFLLGlCQUNGLGdGQUFTQSxLQUFUO0FBQWdCLGVBQVMsRUFBQyxxQkFBMUI7QUFBZ0QsYUFBTyxFQUFFLE1BQU1FLCtDQUFNLENBQUNDLGtCQUFQLENBQTBCQyw4Q0FBMUI7QUFBL0QscUJBQ0ksNERBQUMsc0RBQUQ7QUFBYSxlQUFTLEVBQUMsU0FBdkI7QUFBaUMsVUFBSSxFQUFDO0FBQXRDLE1BREosQ0FGUixDQUZMLENBQVA7QUFVSDs7QUFoQnNEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3NpZGViYXJoZWFkZXIuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2Vsb2d9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7UmVhY3QsIFdlYnBhY2tNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgSGlzdG9yeUljb24gZnJvbSBcIi4uL2ljb25zL2hpc3RvcnlcIjtcclxuaW1wb3J0IE1vZGFscyBmcm9tIFwiLi4vbW9kYWxzXCI7XHJcblxyXG5jb25zdCBTaWRlYmFyQ29tcG9uZW50cyA9IFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShtID0+IG0uSGVhZGVyICYmIG0uU2VwYXJhdG9yICYmIG0uSXRlbSk7XHJcbmNvbnN0IFRvb2x0aXAgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeURpc3BsYXlOYW1lKFwiVG9vbHRpcFwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdzVGl0bGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImJkLXNpZGViYXItaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPFNpZGViYXJDb21wb25lbnRzLkhlYWRlcj5CYW5kYWdlZEJEPC9TaWRlYmFyQ29tcG9uZW50cy5IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgY29sb3I9XCJibGFja1wiIHBvc2l0aW9uPVwidG9wXCIgdGV4dD1cIkNoYW5nZWxvZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMgPT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHsuLi5wcm9wc30gY2xhc3NOYW1lPVwiYmQtY2hhbmdlbG9nLWJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IE1vZGFscy5zaG93Q2hhbmdlbG9nTW9kYWwoQ2hhbmdlbG9nKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpc3RvcnlJY29uIGNsYXNzTmFtZT1cImJkLWljb25cIiBzaXplPVwiMTZweFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/sidebarheader.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 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 _icons_history__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/history */ \"./src/ui/icons/history.jsx\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\nconst SidebarComponents = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.Header && m.Separator && m.Item);\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nclass SettingsTitle extends modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n className: \"bd-sidebar-header\"\n }, /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(SidebarComponents.Header, null, \"BandagedBD\"), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: \"Changelog\"\n }, props => /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", _extends({}, props, {\n className: \"bd-changelog-button\",\n onClick: () => _modals__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showChangelogModal(data__WEBPACK_IMPORTED_MODULE_0__[\"Changelog\"])\n }), /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_icons_history__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-icon\",\n size: \"16px\"\n }))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3Mvc2lkZWJhcmhlYWRlci5qc3g/YTk1YSJdLCJuYW1lcyI6WyJTaWRlYmFyQ29tcG9uZW50cyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0TW9kdWxlIiwibSIsIkhlYWRlciIsIlNlcGFyYXRvciIsIkl0ZW0iLCJUb29sdGlwIiwiZ2V0QnlEaXNwbGF5TmFtZSIsIlNldHRpbmdzVGl0bGUiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJNb2RhbHMiLCJzaG93Q2hhbmdlbG9nTW9kYWwiLCJDaGFuZ2Vsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFNQSxpQkFBaUIsR0FBR0Msc0RBQWMsQ0FBQ0MsU0FBZixDQUF5QkMsQ0FBQyxJQUFJQSxDQUFDLENBQUNDLE1BQUYsSUFBWUQsQ0FBQyxDQUFDRSxTQUFkLElBQTJCRixDQUFDLENBQUNHLElBQTNELENBQTFCO0FBQ0EsTUFBTUMsT0FBTyxHQUFHTixzREFBYyxDQUFDTyxnQkFBZixDQUFnQyxTQUFoQyxDQUFoQjtBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBQ3ZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsd0JBQU87QUFBSyxlQUFTLEVBQUM7QUFBZixvQkFDSyw0REFBQyxpQkFBRCxDQUFtQixNQUFuQixxQkFETCxlQUVLLDREQUFDLE9BQUQ7QUFBUyxXQUFLLEVBQUMsT0FBZjtBQUF1QixjQUFRLEVBQUMsS0FBaEM7QUFBc0MsVUFBSSxFQUFDO0FBQTNDLE9BQ0tELEtBQUssaUJBQ0YsZ0ZBQVNBLEtBQVQ7QUFBZ0IsZUFBUyxFQUFDLHFCQUExQjtBQUFnRCxhQUFPLEVBQUUsTUFBTUUsK0NBQU0sQ0FBQ0Msa0JBQVAsQ0FBMEJDLDhDQUExQjtBQUEvRCxxQkFDSSw0REFBQyxzREFBRDtBQUFhLGVBQVMsRUFBQyxTQUF2QjtBQUFpQyxVQUFJLEVBQUM7QUFBdEMsTUFESixDQUZSLENBRkwsQ0FBUDtBQVVIOztBQWhCc0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3Mvc2lkZWJhcmhlYWRlci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZWxvZ30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IHtSZWFjdCwgV2VicGFja01vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBIaXN0b3J5SWNvbiBmcm9tIFwiLi4vaWNvbnMvaGlzdG9yeVwiO1xyXG5pbXBvcnQgTW9kYWxzIGZyb20gXCIuLi9tb2RhbHNcIjtcclxuXHJcbmNvbnN0IFNpZGViYXJDb21wb25lbnRzID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5IZWFkZXIgJiYgbS5TZXBhcmF0b3IgJiYgbS5JdGVtKTtcclxuY29uc3QgVG9vbHRpcCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2V0dGluZ3NUaXRsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2lkZWJhci1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8U2lkZWJhckNvbXBvbmVudHMuSGVhZGVyPkJhbmRhZ2VkQkQ8L1NpZGViYXJDb21wb25lbnRzLkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCBjb2xvcj1cImJsYWNrXCIgcG9zaXRpb249XCJ0b3BcIiB0ZXh0PVwiQ2hhbmdlbG9nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcyA9PiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgey4uLnByb3BzfSBjbGFzc05hbWU9XCJiZC1jaGFuZ2Vsb2ctYnV0dG9uXCIgb25DbGljaz17KCkgPT4gTW9kYWxzLnNob3dDaGFuZ2Vsb2dNb2RhbChDaGFuZ2Vsb2cpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlzdG9yeUljb24gY2xhc3NOYW1lPVwiYmQtaWNvblwiIHNpemU9XCIxNnB4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/sidebarheader.jsx\n");
/***/ }),
@@ -1127,7 +1126,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 /*#__PURE__*/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 && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"bd-button bd-button-title\",\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeD9iNTliIl0sIm5hbWVzIjpbImNsYXNzTmFtZSIsImNsYXNzTmFtZTIiLCJTZXR0aW5nc1RpdGxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiYmFzZUNsYXNzIiwiaXNHcm91cCIsInRpdGxlQ2xhc3MiLCJvbkNsaWNrIiwidGV4dCIsImJ1dHRvbiIsInRpdGxlIiwib3RoZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxNQUFNQSxTQUFTLEdBQUcsK0pBQWxCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLG1QQUFuQjtBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBQ3ZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSCxHQUhzRCxDQUkzRDs7O0FBQ0lDLFFBQU0sR0FBRztBQUNMLFVBQU1DLFNBQVMsR0FBRyxLQUFLRixLQUFMLENBQVdHLE9BQVgsR0FBcUJSLFVBQXJCLEdBQWtDRCxTQUFwRDtBQUNBLFVBQU1VLFVBQVUsR0FBRyxLQUFLSixLQUFMLENBQVdOLFNBQVgsR0FBd0IsR0FBRVEsU0FBVSxJQUFHLEtBQUtGLEtBQUwsQ0FBV04sU0FBVSxFQUE1RCxHQUFnRVEsU0FBbkY7QUFDQSx3QkFBTztBQUFJLGVBQVMsRUFBRUUsVUFBZjtBQUEyQixhQUFPLEVBQUUsTUFBTTtBQUFDLGFBQUtKLEtBQUwsQ0FBV0ssT0FBWCxJQUFzQixLQUFLTCxLQUFMLENBQVdLLE9BQVgsRUFBdEI7QUFBNEM7QUFBdkYsT0FDRSxLQUFLTCxLQUFMLENBQVdNLElBRGIsRUFFRSxLQUFLTixLQUFMLENBQVdPLE1BQVgsaUJBQXFCO0FBQVEsZUFBUyxFQUFDLDJCQUFsQjtBQUE4QyxhQUFPLEVBQUUsS0FBS1AsS0FBTCxDQUFXTyxNQUFYLENBQWtCRjtBQUF6RSxPQUFtRixLQUFLTCxLQUFMLENBQVdPLE1BQVgsQ0FBa0JDLEtBQXJHLENBRnZCLEVBR0UsS0FBS1IsS0FBTCxDQUFXUyxhQUhiLENBQVA7QUFLSDs7QUFic0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGl0bGUuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IGNsYXNzTmFtZSA9IFwiYmQtc2V0dGluZ3MtdGl0bGUgaDItMmdXRS1vIHRpdGxlLTNzWldZUSBzaXplMTYtMTRjR3o1IGhlaWdodDIwLW1PMmVJTiB3ZWlnaHRTZW1pQm9sZC1OSmV4emkgZGVmYXVsdENvbG9yLTFfYWpYMCBkZWZhdWx0TWFyZ2luaDItMkxUYVVMIG1hcmdpbkJvdHRvbTIwLTMycUlEN1wiO1xyXG5jb25zdCBjbGFzc05hbWUyID0gXCJiZC1zZXR0aW5ncy10aXRsZSBiZC1zZXR0aW5ncy1ncm91cC10aXRsZSBoNS0xOF8xbmQgdGl0bGUtM3NaV1lRIHNpemUxMi0zUjA4NDUgaGVpZ2h0MTYtMkx2M3FBIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oNSBkYS10aXRsZSBkYS1zaXplMTIgZGEtaGVpZ2h0MTYgZGEtd2VpZ2h0U2VtaUJvbGQgbWFyZ2luQm90dG9tNC0ycWs0SHkgZGEtbWFyZ2luQm90dG9tNCBtYXJnaW5Ub3A4LTFETFoxbiBkYS1tYXJnaW5Ub3A4XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5nc1RpdGxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG4vL2gyLTJnV0UtbyB0aXRsZS0zc1pXWVEgc2l6ZTE2LTE0Y0d6NSBoZWlnaHQyMC1tTzJlSU4gd2VpZ2h0U2VtaUJvbGQtTkpleHppIGRhLWgyIGRhLXRpdGxlIGRhLXNpemUxNiBkYS1oZWlnaHQyMCBkYS13ZWlnaHRTZW1pQm9sZCBkZWZhdWx0Q29sb3ItMV9halgwIGRhLWRlZmF1bHRDb2xvciBtYXJnaW5Ub3A2MC0zUEdidEsgZGEtbWFyZ2luVG9wNjAgbWFyZ2luQm90dG9tMjAtMzJxSUQ3IGRhLW1hcmdpbkJvdHRvbTIwXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgYmFzZUNsYXNzID0gdGhpcy5wcm9wcy5pc0dyb3VwID8gY2xhc3NOYW1lMiA6IGNsYXNzTmFtZTtcclxuICAgICAgICBjb25zdCB0aXRsZUNsYXNzID0gdGhpcy5wcm9wcy5jbGFzc05hbWUgPyBgJHtiYXNlQ2xhc3N9ICR7dGhpcy5wcm9wcy5jbGFzc05hbWV9YCA6IGJhc2VDbGFzcztcclxuICAgICAgICByZXR1cm4gPGgyIGNsYXNzTmFtZT17dGl0bGVDbGFzc30gb25DbGljaz17KCkgPT4ge3RoaXMucHJvcHMub25DbGljayAmJiB0aGlzLnByb3BzLm9uQ2xpY2soKTt9fT5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRleHR9XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5idXR0b24gJiYgPGJ1dHRvbiBjbGFzc05hbWU9XCJiZC1idXR0b24gYmQtYnV0dG9uLXRpdGxlXCIgb25DbGljaz17dGhpcy5wcm9wcy5idXR0b24ub25DbGlja30+e3RoaXMucHJvcHMuYnV0dG9uLnRpdGxlfTwvYnV0dG9uPn1cclxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLm90aGVyQ2hpbGRyZW59XHJcbiAgICAgICAgICAgICAgICA8L2gyPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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 /*#__PURE__*/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 && /*#__PURE__*/modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"bd-button bd-button-title\",\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvc2V0dGluZ3MvdGl0bGUuanN4P2I1OWIiXSwibmFtZXMiOlsiY2xhc3NOYW1lIiwiY2xhc3NOYW1lMiIsIlNldHRpbmdzVGl0bGUiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJiYXNlQ2xhc3MiLCJpc0dyb3VwIiwidGl0bGVDbGFzcyIsIm9uQ2xpY2siLCJ0ZXh0IiwiYnV0dG9uIiwidGl0bGUiLCJvdGhlckNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLE1BQU1BLFNBQVMsR0FBRywrSkFBbEI7QUFDQSxNQUFNQyxVQUFVLEdBQUcsbVBBQW5CO0FBRWUsTUFBTUMsYUFBTixTQUE0QkMsNkNBQUssQ0FBQ0MsU0FBbEMsQ0FBNEM7QUFDdkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNILEdBSHNELENBSTNEOzs7QUFDSUMsUUFBTSxHQUFHO0FBQ0wsVUFBTUMsU0FBUyxHQUFHLEtBQUtGLEtBQUwsQ0FBV0csT0FBWCxHQUFxQlIsVUFBckIsR0FBa0NELFNBQXBEO0FBQ0EsVUFBTVUsVUFBVSxHQUFHLEtBQUtKLEtBQUwsQ0FBV04sU0FBWCxHQUF3QixHQUFFUSxTQUFVLElBQUcsS0FBS0YsS0FBTCxDQUFXTixTQUFVLEVBQTVELEdBQWdFUSxTQUFuRjtBQUNBLHdCQUFPO0FBQUksZUFBUyxFQUFFRSxVQUFmO0FBQTJCLGFBQU8sRUFBRSxNQUFNO0FBQUMsYUFBS0osS0FBTCxDQUFXSyxPQUFYLElBQXNCLEtBQUtMLEtBQUwsQ0FBV0ssT0FBWCxFQUF0QjtBQUE0QztBQUF2RixPQUNFLEtBQUtMLEtBQUwsQ0FBV00sSUFEYixFQUVFLEtBQUtOLEtBQUwsQ0FBV08sTUFBWCxpQkFBcUI7QUFBUSxlQUFTLEVBQUMsMkJBQWxCO0FBQThDLGFBQU8sRUFBRSxLQUFLUCxLQUFMLENBQVdPLE1BQVgsQ0FBa0JGO0FBQXpFLE9BQW1GLEtBQUtMLEtBQUwsQ0FBV08sTUFBWCxDQUFrQkMsS0FBckcsQ0FGdkIsRUFHRSxLQUFLUixLQUFMLENBQVdTLGFBSGIsQ0FBUDtBQUtIOztBQWJzRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy90aXRsZS5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuY29uc3QgY2xhc3NOYW1lID0gXCJiZC1zZXR0aW5ncy10aXRsZSBoMi0yZ1dFLW8gdGl0bGUtM3NaV1lRIHNpemUxNi0xNGNHejUgaGVpZ2h0MjAtbU8yZUlOIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkZWZhdWx0Q29sb3ItMV9halgwIGRlZmF1bHRNYXJnaW5oMi0yTFRhVUwgbWFyZ2luQm90dG9tMjAtMzJxSUQ3XCI7XHJcbmNvbnN0IGNsYXNzTmFtZTIgPSBcImJkLXNldHRpbmdzLXRpdGxlIGJkLXNldHRpbmdzLWdyb3VwLXRpdGxlIGg1LTE4XzFuZCB0aXRsZS0zc1pXWVEgc2l6ZTEyLTNSMDg0NSBoZWlnaHQxNi0yTHYzcUEgd2VpZ2h0U2VtaUJvbGQtTkpleHppIGRhLWg1IGRhLXRpdGxlIGRhLXNpemUxMiBkYS1oZWlnaHQxNiBkYS13ZWlnaHRTZW1pQm9sZCBtYXJnaW5Cb3R0b200LTJxazRIeSBkYS1tYXJnaW5Cb3R0b200IG1hcmdpblRvcDgtMURMWjFuIGRhLW1hcmdpblRvcDhcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdzVGl0bGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB9XHJcbi8vaDItMmdXRS1vIHRpdGxlLTNzWldZUSBzaXplMTYtMTRjR3o1IGhlaWdodDIwLW1PMmVJTiB3ZWlnaHRTZW1pQm9sZC1OSmV4emkgZGEtaDIgZGEtdGl0bGUgZGEtc2l6ZTE2IGRhLWhlaWdodDIwIGRhLXdlaWdodFNlbWlCb2xkIGRlZmF1bHRDb2xvci0xX2FqWDAgZGEtZGVmYXVsdENvbG9yIG1hcmdpblRvcDYwLTNQR2J0SyBkYS1tYXJnaW5Ub3A2MCBtYXJnaW5Cb3R0b20yMC0zMnFJRDcgZGEtbWFyZ2luQm90dG9tMjBcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBiYXNlQ2xhc3MgPSB0aGlzLnByb3BzLmlzR3JvdXAgPyBjbGFzc05hbWUyIDogY2xhc3NOYW1lO1xyXG4gICAgICAgIGNvbnN0IHRpdGxlQ2xhc3MgPSB0aGlzLnByb3BzLmNsYXNzTmFtZSA/IGAke2Jhc2VDbGFzc30gJHt0aGlzLnByb3BzLmNsYXNzTmFtZX1gIDogYmFzZUNsYXNzO1xyXG4gICAgICAgIHJldHVybiA8aDIgY2xhc3NOYW1lPXt0aXRsZUNsYXNzfSBvbkNsaWNrPXsoKSA9PiB7dGhpcy5wcm9wcy5vbkNsaWNrICYmIHRoaXMucHJvcHMub25DbGljaygpO319PlxyXG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMudGV4dH1cclxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmJ1dHRvbiAmJiA8YnV0dG9uIGNsYXNzTmFtZT1cImJkLWJ1dHRvbiBiZC1idXR0b24tdGl0bGVcIiBvbkNsaWNrPXt0aGlzLnByb3BzLmJ1dHRvbi5vbkNsaWNrfT57dGhpcy5wcm9wcy5idXR0b24udGl0bGV9PC9idXR0b24+fVxyXG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMub3RoZXJDaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgIDwvaDI+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/title.jsx\n");
/***/ }),
@@ -1139,7 +1138,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 Toasts; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst channelsClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sidebar\", \"hasNotice\").sidebar.split(\" \")[0];\nconst membersWrapClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"membersWrap\").membersWrap.split(\" \")[0];\nclass Toasts {\n static get shouldShowToasts() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"general\", \"showToasts\");\n }\n /** Shorthand for `type = \"success\"` for {@link module:Toasts.show} */\n\n\n static async success(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"success\"\n }));\n }\n /** Shorthand for `type = \"info\"` for {@link module:Toasts.show} */\n\n\n static async info(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"info\"\n }));\n }\n /** Shorthand for `type = \"warning\"` for {@link module:Toasts.show} */\n\n\n static async warning(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"warning\"\n }));\n }\n /** Shorthand for `type = \"error\"` for {@link module:Toasts.show} */\n\n\n static async error(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"error\"\n }));\n }\n /** Shorthand for `type = \"default\"` for {@link module:Toasts.show} */\n\n\n static async default(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"\"\n }));\n }\n /**\r\n * This shows a toast similar to android towards the bottom of the screen.\r\n *\r\n * @param {string} content The string to show in the toast.\r\n * @param {object} options Options object. Optional parameter.\r\n * @param {string} [options.type=\"\"] Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n * @param {boolean} [options.icon=true] Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n * @param {number} [options.timeout=3000] Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n * @param {boolean} [options.forceShow=false] Whether to force showing the toast and ignore the bd setting\r\n */\n\n\n static show(content, options = {}) {\n const {\n type = \"\",\n icon = true,\n timeout = 3000,\n forceShow = false\n } = options;\n if (!this.shouldShowToasts && !forceShow) return;\n this.ensureContainer();\n const toastElem = document.createElement(\"div\");\n toastElem.classList.add(\"bd-toast\");\n if (type) toastElem.classList.add(\"toast-\" + type);\n if (type && icon) toastElem.classList.add(\"icon\");\n toastElem.innerText = content;\n document.querySelector(\".bd-toasts\").appendChild(toastElem);\n setTimeout(() => {\n toastElem.classList.add(\"closing\");\n setTimeout(() => {\n toastElem.remove();\n if (!document.querySelectorAll(\".bd-toasts .bd-toast\").length) document.querySelector(\".bd-toasts\").remove();\n }, 300);\n }, timeout);\n }\n\n static ensureContainer() {\n if (document.querySelector(\".bd-toasts\")) return;\n const container = document.querySelector(`.${channelsClass} + div`);\n const memberlist = container.querySelector(`.${membersWrapClass}`);\n const form = container ? container.querySelector(\"form\") : null;\n const left = container ? container.getBoundingClientRect().left : 310;\n const right = memberlist ? memberlist.getBoundingClientRect().left : 0;\n const width = right ? right - container.getBoundingClientRect().left : container.offsetWidth;\n const bottom = form ? form.offsetHeight : 80;\n const toastWrapper = document.createElement(\"div\");\n toastWrapper.classList.add(\"bd-toasts\");\n toastWrapper.style.setProperty(\"left\", left + \"px\");\n toastWrapper.style.setProperty(\"width\", width + \"px\");\n toastWrapper.style.setProperty(\"bottom\", bottom + \"px\");\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DOMManager\"].bdBody.appendChild(toastWrapper);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3RvYXN0cy5qcz9jZmU1Il0sIm5hbWVzIjpbImNoYW5uZWxzQ2xhc3MiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5UHJvcHMiLCJzaWRlYmFyIiwic3BsaXQiLCJtZW1iZXJzV3JhcENsYXNzIiwibWVtYmVyc1dyYXAiLCJUb2FzdHMiLCJzaG91bGRTaG93VG9hc3RzIiwiU2V0dGluZ3MiLCJnZXQiLCJzdWNjZXNzIiwiY29udGVudCIsIm9wdGlvbnMiLCJzaG93IiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiLCJkZWZhdWx0IiwiaWNvbiIsInRpbWVvdXQiLCJmb3JjZVNob3ciLCJlbnN1cmVDb250YWluZXIiLCJ0b2FzdEVsZW0iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJpbm5lclRleHQiLCJxdWVyeVNlbGVjdG9yIiwiYXBwZW5kQ2hpbGQiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImNvbnRhaW5lciIsIm1lbWJlcmxpc3QiLCJmb3JtIiwibGVmdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0Iiwid2lkdGgiLCJvZmZzZXRXaWR0aCIsImJvdHRvbSIsIm9mZnNldEhlaWdodCIsInRvYXN0V3JhcHBlciIsInN0eWxlIiwic2V0UHJvcGVydHkiLCJET01NYW5hZ2VyIiwiYmRCb2R5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLE1BQU1BLGFBQWEsR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixTQUExQixFQUFxQyxXQUFyQyxFQUFrREMsT0FBbEQsQ0FBMERDLEtBQTFELENBQWdFLEdBQWhFLEVBQXFFLENBQXJFLENBQXRCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdKLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsYUFBMUIsRUFBeUNJLFdB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K0IsTUFBL0IsRUFBdUNULElBQUksR0FBRyxJQUE5QztBQUNBTyxnQkFBWSxDQUFDQyxLQUFiLENBQW1CQyxXQUFuQixDQUErQixPQUEvQixFQUF3Q04sS0FBSyxHQUFHLElBQWhEO0FBQ0FJLGdCQUFZLENBQUNDLEtBQWIsQ0FBbUJDLFdBQW5CLENBQStCLFFBQS9CLEVBQXlDSixNQUFNLEdBQUcsSUFBbEQ7QUFDQUssc0RBQVUsQ0FBQ0MsTUFBWCxDQUFrQm5CLFdBQWxCLENBQThCZSxZQUE5QjtBQUNIOztBQS9EdUIiLCJmaWxlIjoiLi9zcmMvdWkvdG9hc3RzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXZWJwYWNrTW9kdWxlcywgU2V0dGluZ3MsIERPTU1hbmFnZXJ9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5jb25zdCBjaGFubmVsc0NsYXNzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInNpZGViYXJcIiwgXCJoYXNOb3RpY2VcIikuc2lkZWJhci5zcGxpdChcIiBcIilbMF07XHJcbmNvbnN0IG1lbWJlcnNXcmFwQ2xhc3MgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwibWVtYmVyc1dyYXBcIikubWVtYmVyc1dyYXAuc3BsaXQoXCIgXCIpWzBdO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9hc3RzIHtcclxuXHJcbiAgICBzdGF0aWMgZ2V0IHNob3VsZFNob3dUb2FzdHMoKSB7cmV0dXJuIFNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiZ2VuZXJhbFwiLCBcInNob3dUb2FzdHNcIik7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJzdWNjZXNzXCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIHN1Y2Nlc3MoY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcInN1Y2Nlc3NcIn0pKTt9XHJcblxyXG4gICAgLyoqIFNob3J0aGFuZCBmb3IgYHR5cGUgPSBcImluZm9cImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgaW5mbyhjb250ZW50LCBvcHRpb25zID0ge30pIHtyZXR1cm4gdGhpcy5zaG93KGNvbnRlbnQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwiaW5mb1wifSkpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwid2FybmluZ1wiYCBmb3Ige0BsaW5rIG1vZHVsZTpUb2FzdHMuc2hvd30gKi9cclxuICAgIHN0YXRpYyBhc3luYyB3YXJuaW5nKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge3JldHVybiB0aGlzLnNob3coY29udGVudCwgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7dHlwZTogXCJ3YXJuaW5nXCJ9KSk7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJlcnJvclwiYCBmb3Ige0BsaW5rIG1vZHVsZTpUb2FzdHMuc2hvd30gKi9cclxuICAgIHN0YXRpYyBhc3luYyBlcnJvcihjb250ZW50LCBvcHRpb25zID0ge30pIHtyZXR1cm4gdGhpcy5zaG93KGNvbnRlbnQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwiZXJyb3JcIn0pKTt9XHJcblxyXG4gICAgLyoqIFNob3J0aGFuZCBmb3IgYHR5cGUgPSBcImRlZmF1bHRcImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgZGVmYXVsdChjb250ZW50LCBvcHRpb25zID0ge30pIHtyZXR1cm4gdGhpcy5zaG93KGNvbnRlbnQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwiXCJ9KSk7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBzaG93cyBhIHRvYXN0IHNpbWlsYXIgdG8gYW5kcm9pZCB0b3dhcmRzIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGVudCBUaGUgc3RyaW5nIHRvIHNob3cgaW4gdGhlIHRvYXN0LlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgT3B0aW9ucyBvYmplY3QuIE9wdGlvbmFsIHBhcmFtZXRlci5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy50eXBlPVwiXCJdIENoYW5nZXMgdGhlIHR5cGUgb2YgdGhlIHRvYXN0IHN0eWxpc3RpY2FsbHkgYW5kIHNlbWFudGljYWxseS4gQ2hvaWNlczogXCJcIiwgXCJpbmZvXCIsIFwic3VjY2Vzc1wiLCBcImRhbmdlclwiL1wiZXJyb3JcIiwgXCJ3YXJuaW5nXCIvXCJ3YXJuXCIuIERlZmF1bHQ6IFwiXCJcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuaWNvbj10cnVlXSBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGljb24gc2hvdWxkIHNob3cgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZS4gQSB0b2FzdCB3aXRob3V0IHR5cGUgd2lsbCBhbHdheXMgaGF2ZSBubyBpY29uLiBEZWZhdWx0OiB0cnVlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMudGltZW91dD0zMDAwXSBBZGp1c3RzIHRoZSB0aW1lIChpbiBtcykgdGhlIHRvYXN0IHNob3VsZCBiZSBzaG93biBmb3IgYmVmb3JlIGRpc2FwcGVhcmluZyBhdXRvbWF0aWNhbGx5LiBEZWZhdWx0OiAzMDAwXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZvcmNlU2hvdz1mYWxzZV0gV2hldGhlciB0byBmb3JjZSBzaG93aW5nIHRoZSB0b2FzdCBhbmQgaWdub3JlIHRoZSBiZCBzZXR0aW5nXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBzaG93KGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IHt0eXBlID0gXCJcIiwgaWNvbiA9IHRydWUsIHRpbWVvdXQgPSAzMDAwLCBmb3JjZVNob3cgPSBmYWxzZX0gPSBvcHRpb25zO1xyXG4gICAgICAgIGlmICghdGhpcy5zaG91bGRTaG93VG9hc3RzICYmICFmb3JjZVNob3cpIHJldHVybjtcclxuICAgICAgICB0aGlzLmVuc3VyZUNvbnRhaW5lcigpO1xyXG4gICAgICAgIGNvbnN0IHRvYXN0RWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgdG9hc3RFbGVtLmNsYXNzTGlzdC5hZGQoXCJiZC10b2FzdFwiKTtcclxuICAgICAgICBpZiAodHlwZSkgdG9hc3RFbGVtLmNsYXNzTGlzdC5hZGQoXCJ0b2FzdC1cIiArIHR5cGUpO1xyXG4gICAgICAgIGlmICh0eXBlICYmIGljb24pIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwiaWNvblwiKTtcclxuICAgICAgICB0b2FzdEVsZW0uaW5uZXJUZXh0ID0gY29udGVudDtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmJkLXRvYXN0c1wiKS5hcHBlbmRDaGlsZCh0b2FzdEVsZW0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdG9hc3RFbGVtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmJkLXRvYXN0cyAuYmQtdG9hc3RcIikubGVuZ3RoKSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmJkLXRvYXN0c1wiKS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICB9LCB0aW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZW5zdXJlQ29udGFpbmVyKCkge1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmJkLXRvYXN0c1wiKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NoYW5uZWxzQ2xhc3N9ICsgZGl2YCk7XHJcbiAgICAgICAgY29uc3QgbWVtYmVybGlzdCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAuJHttZW1iZXJzV3JhcENsYXNzfWApO1xyXG4gICAgICAgIGNvbnN0IGZvcm0gPSBjb250YWluZXIgPyBjb250YWluZXIucXVlcnlTZWxlY3RvcihcImZvcm1cIikgOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPSBjb250YWluZXIgPyBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA6IDMxMDtcclxuICAgICAgICBjb25zdCByaWdodCA9IG1lbWJlcmxpc3QgPyBtZW1iZXJsaXN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgOiAwO1xyXG4gICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgPyByaWdodCAtIGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IDogY29udGFpbmVyLm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IGZvcm0gPyBmb3JtLm9mZnNldEhlaWdodCA6IDgwO1xyXG4gICAgICAgIGNvbnN0IHRvYXN0V3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgdG9hc3RXcmFwcGVyLmNsYXNzTGlzdC5hZGQoXCJiZC10b2FzdHNcIik7XHJcbiAgICAgICAgdG9hc3RXcmFwcGVyLnN0eWxlLnNldFByb3BlcnR5KFwibGVmdFwiLCBsZWZ0ICsgXCJweFwiKTtcclxuICAgICAgICB0b2FzdFdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJ3aWR0aFwiLCB3aWR0aCArIFwicHhcIik7XHJcbiAgICAgICAgdG9hc3RXcmFwcGVyLnN0eWxlLnNldFByb3BlcnR5KFwiYm90dG9tXCIsIGJvdHRvbSArIFwicHhcIik7XHJcbiAgICAgICAgRE9NTWFuYWdlci5iZEJvZHkuYXBwZW5kQ2hpbGQodG9hc3RXcmFwcGVyKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/toasts.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Toasts; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst channelsClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sidebar\", \"hasNotice\").sidebar.split(\" \")[0];\nconst membersWrapClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"membersWrap\").membersWrap.split(\" \")[0];\nclass Toasts {\n static get shouldShowToasts() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"general\", \"showToasts\");\n }\n /** Shorthand for `type = \"success\"` for {@link module:Toasts.show} */\n\n\n static async success(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"success\"\n }));\n }\n /** Shorthand for `type = \"info\"` for {@link module:Toasts.show} */\n\n\n static async info(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"info\"\n }));\n }\n /** Shorthand for `type = \"warning\"` for {@link module:Toasts.show} */\n\n\n static async warning(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"warning\"\n }));\n }\n /** Shorthand for `type = \"error\"` for {@link module:Toasts.show} */\n\n\n static async error(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"error\"\n }));\n }\n /** Shorthand for `type = \"default\"` for {@link module:Toasts.show} */\n\n\n static async default(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"\"\n }));\n }\n /**\r\n * This shows a toast similar to android towards the bottom of the screen.\r\n *\r\n * @param {string} content The string to show in the toast.\r\n * @param {object} options Options object. Optional parameter.\r\n * @param {string} [options.type=\"\"] Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n * @param {boolean} [options.icon=true] Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n * @param {number} [options.timeout=3000] Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n * @param {boolean} [options.forceShow=false] Whether to force showing the toast and ignore the bd setting\r\n */\n\n\n static show(content, options = {}) {\n const {\n type = \"\",\n icon = true,\n timeout = 3000,\n forceShow = false\n } = options;\n if (!this.shouldShowToasts && !forceShow) return;\n this.ensureContainer();\n const toastElem = document.createElement(\"div\");\n toastElem.classList.add(\"bd-toast\");\n if (type) toastElem.classList.add(\"toast-\" + type);\n if (type && icon) toastElem.classList.add(\"icon\");\n toastElem.innerText = content;\n document.querySelector(\".bd-toasts\").appendChild(toastElem);\n setTimeout(() => {\n toastElem.classList.add(\"closing\");\n setTimeout(() => {\n toastElem.remove();\n if (!document.querySelectorAll(\".bd-toasts .bd-toast\").length) document.querySelector(\".bd-toasts\").remove();\n }, 300);\n }, timeout);\n }\n\n static ensureContainer() {\n if (document.querySelector(\".bd-toasts\")) return;\n const container = document.querySelector(`.${channelsClass} + div`);\n const memberlist = container.querySelector(`.${membersWrapClass}`);\n const form = container ? container.querySelector(\"form\") : null;\n const left = container ? container.getBoundingClientRect().left : 310;\n const right = memberlist ? memberlist.getBoundingClientRect().left : 0;\n const width = right ? right - container.getBoundingClientRect().left : container.offsetWidth;\n const bottom = form ? form.offsetHeight : 80;\n const toastWrapper = document.createElement(\"div\");\n toastWrapper.classList.add(\"bd-toasts\");\n toastWrapper.style.setProperty(\"left\", left + \"px\");\n toastWrapper.style.setProperty(\"width\", width + \"px\");\n toastWrapper.style.setProperty(\"bottom\", bottom + \"px\");\n modules__WEBPACK_IMPORTED_MODULE_0__[\"DOMManager\"].bdBody.appendChild(toastWrapper);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdWkvdG9hc3RzLmpzP2NmZTUiXSwibmFtZXMiOlsiY2hhbm5lbHNDbGFzcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsInNpZGViYXIiLCJzcGxpdCIsIm1lbWJlcnNXcmFwQ2xhc3MiLCJtZW1iZXJzV3JhcCIsIlRvYXN0cyIsInNob3VsZFNob3dUb2FzdHMiLCJTZXR0aW5ncyIsImdldCIsInN1Y2Nlc3MiLCJjb250ZW50Iiwib3B0aW9ucyIsInNob3ciLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImRlZmF1bHQiLCJpY29uIiwidGltZW91dCIsImZvcmNlU2hvdyIsImVuc3VyZUNvbnRhaW5lciIsInRvYXN0RWxlbSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImlubmVyVGV4dCIsInF1ZXJ5U2VsZWN0b3IiLCJhcHBlbmRDaGlsZCIsInNldFRpbWVvdXQiLCJyZW1vdmUiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwiY29udGFpbmVyIiwibWVtYmVybGlzdCIsImZvcm0iLCJsZWZ0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicmlnaHQiLCJ3aWR0aCIsIm9mZnNldFdpZHRoIiwiYm90dG9tIiwib2Zmc2V0SGVpZ2h0IiwidG9hc3RXcmFwcGVyIiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsIkRPTU1hbmFnZXIiLCJiZEJvZHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsTUFBTUEsYUFBYSxHQUFHQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLFNBQTFCLEVBQXFDLFdBQXJDLEVBQWtEQyxPQUFsRCxDQUEwREMsS0FBMUQsQ0FBZ0UsR0FBaEUsRUFBcUUsQ0FBckUsQ0FBdEI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBR0osc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixhQUExQixFQUF5Q0ksV0FBekMs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QUEvQixFQUF1Q1QsSUFBSSxHQUFHLElBQTlDO0FBQ0FPLGdCQUFZLENBQUNDLEtBQWIsQ0FBbUJDLFdBQW5CLENBQStCLE9BQS9CLEVBQXdDTixLQUFLLEdBQUcsSUFBaEQ7QUFDQUksZ0JBQVksQ0FBQ0MsS0FBYixDQUFtQkMsV0FBbkIsQ0FBK0IsUUFBL0IsRUFBeUNKLE1BQU0sR0FBRyxJQUFsRDtBQUNBSyxzREFBVSxDQUFDQyxNQUFYLENBQWtCbkIsV0FBbEIsQ0FBOEJlLFlBQTlCO0FBQ0g7O0FBL0R1QiIsImZpbGUiOiIuL3NyYy91aS90b2FzdHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1dlYnBhY2tNb2R1bGVzLCBTZXR0aW5ncywgRE9NTWFuYWdlcn0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IGNoYW5uZWxzQ2xhc3MgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic2lkZWJhclwiLCBcImhhc05vdGljZVwiKS5zaWRlYmFyLnNwbGl0KFwiIFwiKVswXTtcclxuY29uc3QgbWVtYmVyc1dyYXBDbGFzcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJtZW1iZXJzV3JhcFwiKS5tZW1iZXJzV3JhcC5zcGxpdChcIiBcIilbMF07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUb2FzdHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgc2hvdWxkU2hvd1RvYXN0cygpIHtyZXR1cm4gU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJnZW5lcmFsXCIsIFwic2hvd1RvYXN0c1wiKTt9XHJcblxyXG4gICAgLyoqIFNob3J0aGFuZCBmb3IgYHR5cGUgPSBcInN1Y2Nlc3NcImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgc3VjY2Vzcyhjb250ZW50LCBvcHRpb25zID0ge30pIHtyZXR1cm4gdGhpcy5zaG93KGNvbnRlbnQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwic3VjY2Vzc1wifSkpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwiaW5mb1wiYCBmb3Ige0BsaW5rIG1vZHVsZTpUb2FzdHMuc2hvd30gKi9cclxuICAgIHN0YXRpYyBhc3luYyBpbmZvKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge3JldHVybiB0aGlzLnNob3coY29udGVudCwgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7dHlwZTogXCJpbmZvXCJ9KSk7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJ3YXJuaW5nXCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIHdhcm5pbmcoY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcIndhcm5pbmdcIn0pKTt9XHJcblxyXG4gICAgLyoqIFNob3J0aGFuZCBmb3IgYHR5cGUgPSBcImVycm9yXCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGVycm9yKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge3JldHVybiB0aGlzLnNob3coY29udGVudCwgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7dHlwZTogXCJlcnJvclwifSkpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwiZGVmYXVsdFwiYCBmb3Ige0BsaW5rIG1vZHVsZTpUb2FzdHMuc2hvd30gKi9cclxuICAgIHN0YXRpYyBhc3luYyBkZWZhdWx0KGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge3JldHVybiB0aGlzLnNob3coY29udGVudCwgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7dHlwZTogXCJcIn0pKTt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNob3dzIGEgdG9hc3Qgc2ltaWxhciB0byBhbmRyb2lkIHRvd2FyZHMgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IFRoZSBzdHJpbmcgdG8gc2hvdyBpbiB0aGUgdG9hc3QuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBPcHRpb25zIG9iamVjdC4gT3B0aW9uYWwgcGFyYW1ldGVyLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnR5cGU9XCJcIl0gQ2hhbmdlcyB0aGUgdHlwZSBvZiB0aGUgdG9hc3Qgc3R5bGlzdGljYWxseSBhbmQgc2VtYW50aWNhbGx5LiBDaG9pY2VzOiBcIlwiLCBcImluZm9cIiwgXCJzdWNjZXNzXCIsIFwiZGFuZ2VyXCIvXCJlcnJvclwiLCBcIndhcm5pbmdcIi9cIndhcm5cIi4gRGVmYXVsdDogXCJcIlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5pY29uPXRydWVdIERldGVybWluZXMgd2hldGhlciB0aGUgaWNvbiBzaG91bGQgc2hvdyBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlLiBBIHRvYXN0IHdpdGhvdXQgdHlwZSB3aWxsIGFsd2F5cyBoYXZlIG5vIGljb24uIERlZmF1bHQ6IHRydWVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy50aW1lb3V0PTMwMDBdIEFkanVzdHMgdGhlIHRpbWUgKGluIG1zKSB0aGUgdG9hc3Qgc2hvdWxkIGJlIHNob3duIGZvciBiZWZvcmUgZGlzYXBwZWFyaW5nIGF1dG9tYXRpY2FsbHkuIERlZmF1bHQ6IDMwMDBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZm9yY2VTaG93PWZhbHNlXSBXaGV0aGVyIHRvIGZvcmNlIHNob3dpbmcgdGhlIHRvYXN0IGFuZCBpZ25vcmUgdGhlIGJkIHNldHRpbmdcclxuICAgICAqL1xyXG4gICAgc3RhdGljIHNob3coY29udGVudCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3Qge3R5cGUgPSBcIlwiLCBpY29uID0gdHJ1ZSwgdGltZW91dCA9IDMwMDAsIGZvcmNlU2hvdyA9IGZhbHNlfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZFNob3dUb2FzdHMgJiYgIWZvcmNlU2hvdykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ29udGFpbmVyKCk7XHJcbiAgICAgICAgY29uc3QgdG9hc3RFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcImJkLXRvYXN0XCIpO1xyXG4gICAgICAgIGlmICh0eXBlKSB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcInRvYXN0LVwiICsgdHlwZSk7XHJcbiAgICAgICAgaWYgKHR5cGUgJiYgaWNvbikgdG9hc3RFbGVtLmNsYXNzTGlzdC5hZGQoXCJpY29uXCIpO1xyXG4gICAgICAgIHRvYXN0RWxlbS5pbm5lclRleHQgPSBjb250ZW50O1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYmQtdG9hc3RzXCIpLmFwcGVuZENoaWxkKHRvYXN0RWxlbSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0b2FzdEVsZW0ucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYmQtdG9hc3RzIC5iZC10b2FzdFwiKS5sZW5ndGgpIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYmQtdG9hc3RzXCIpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH0sIHRpbWVvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlbnN1cmVDb250YWluZXIoKSB7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYmQtdG9hc3RzXCIpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y2hhbm5lbHNDbGFzc30gKyBkaXZgKTtcclxuICAgICAgICBjb25zdCBtZW1iZXJsaXN0ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYC4ke21lbWJlcnNXcmFwQ2xhc3N9YCk7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9IGNvbnRhaW5lciA/IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiZm9ybVwiKSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IGNvbnRhaW5lciA/IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IDogMzEwO1xyXG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gbWVtYmVybGlzdCA/IG1lbWJlcmxpc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA6IDA7XHJcbiAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCA/IHJpZ2h0IC0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgOiBjb250YWluZXIub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgY29uc3QgYm90dG9tID0gZm9ybSA/IGZvcm0ub2Zmc2V0SGVpZ2h0IDogODA7XHJcbiAgICAgICAgY29uc3QgdG9hc3RXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICB0b2FzdFdyYXBwZXIuY2xhc3NMaXN0LmFkZChcImJkLXRvYXN0c1wiKTtcclxuICAgICAgICB0b2FzdFdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJsZWZ0XCIsIGxlZnQgKyBcInB4XCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIHdpZHRoICsgXCJweFwiKTtcclxuICAgICAgICB0b2FzdFdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJib3R0b21cIiwgYm90dG9tICsgXCJweFwiKTtcclxuICAgICAgICBET01NYW5hZ2VyLmJkQm9keS5hcHBlbmRDaGlsZCh0b2FzdFdyYXBwZXIpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/toasts.js\n");
/***/ }),
@@ -1150,7 +1149,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"electron\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZWxlY3Ryb25cXFwiKVwiP2ZhMWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZWxlY3Ryb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///electron\n");
+eval("module.exports = require(\"electron\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJlbGVjdHJvblxcXCIpXCI/ZmExZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlbGVjdHJvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImVsZWN0cm9uXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///electron\n");
/***/ }),
@@ -1161,7 +1160,7 @@ eval("module.exports = require(\"electron\");//# sourceURL=[module]\n//# sourceM
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"events\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZXZlbnRzXFxcIilcIj85NjE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImV2ZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImV2ZW50c1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///events\n");
+eval("module.exports = require(\"events\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJldmVudHNcXFwiKVwiPzk2MTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiZXZlbnRzXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///events\n");
/***/ }),
@@ -1172,7 +1171,7 @@ eval("module.exports = require(\"events\");//# sourceURL=[module]\n//# sourceMap
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"fs\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZnNcXFwiKVwiP2QzMGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJmc1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fs\n");
+eval("module.exports = require(\"fs\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJmc1xcXCIpXCI/ZDMwYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJmcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImZzXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///fs\n");
/***/ }),
@@ -1183,7 +1182,7 @@ eval("module.exports = require(\"fs\");//# sourceURL=[module]\n//# sourceMapping
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"mkdirp\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwibWtkaXJwXFxcIilcIj9hNTkyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Im1rZGlycC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm1rZGlycFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///mkdirp\n");
+eval("module.exports = require(\"mkdirp\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJta2RpcnBcXFwiKVwiP2E1OTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoibWtkaXJwLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibWtkaXJwXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///mkdirp\n");
/***/ }),
@@ -1194,7 +1193,7 @@ eval("module.exports = require(\"mkdirp\");//# sourceURL=[module]\n//# sourceMap
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"module\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwibW9kdWxlXCI/N2M0OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJtb2R1bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJtb2R1bGVcIik7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///module\n");
+eval("module.exports = require(\"module\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJtb2R1bGVcIj83YzQ4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Im1vZHVsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm1vZHVsZVwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///module\n");
/***/ }),
@@ -1205,7 +1204,7 @@ eval("module.exports = require(\"module\");//# sourceURL=[module]\n//# sourceMap
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"path\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicGF0aFxcXCIpXCI/MmYzNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJwYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicGF0aFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///path\n");
+eval("module.exports = require(\"path\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJwYXRoXFxcIilcIj8yZjM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InBhdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJwYXRoXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///path\n");
/***/ }),
@@ -1216,7 +1215,7 @@ eval("module.exports = require(\"path\");//# sourceURL=[module]\n//# sourceMappi
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"request\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicmVxdWVzdFxcXCIpXCI/MmM1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJyZXF1ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVxdWVzdFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///request\n");
+eval("module.exports = require(\"request\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJyZXF1ZXN0XFxcIilcIj8yYzVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InJlcXVlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///request\n");
/***/ }),
@@ -1227,7 +1226,7 @@ eval("module.exports = require(\"request\");//# sourceURL=[module]\n//# sourceMa
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"rimraf\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicmltcmFmXFxcIilcIj80N2FkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InJpbXJhZi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJpbXJhZlwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///rimraf\n");
+eval("module.exports = require(\"rimraf\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJyaW1yYWZcXFwiKVwiPzQ3YWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoicmltcmFmLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmltcmFmXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///rimraf\n");
/***/ }),
@@ -1238,8 +1237,8 @@ eval("module.exports = require(\"rimraf\");//# sourceURL=[module]\n//# sourceMap
/*! no static exports found */
/***/ (function(module, exports) {
-eval("module.exports = require(\"yauzl\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwieWF1emxcXFwiKVwiPzU5MjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoieWF1emwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJ5YXV6bFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///yauzl\n");
+eval("module.exports = require(\"yauzl\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZXF1aXJlKFxcXCJ5YXV6bFxcXCIpXCI/NTkyOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJ5YXV6bC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInlhdXpsXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///yauzl\n");
/***/ })
-/******/ })["default"];
\ No newline at end of file
+/******/ });
\ No newline at end of file
diff --git a/dist/index.min.js b/dist/index.min.js
index ae4c547c..d42cf968 100644
--- a/dist/index.min.js
+++ b/dist/index.min.js
@@ -1 +1 @@
-var Core=function(e){var t={};function s(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,s),i.l=!0,i.exports}return s.m=e,s.c=t,s.d=function(e,t,n){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(s.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)s.d(n,i,function(t){return e[t]}.bind(null,i));return n},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s(s.s=9)}([function(e,t){e.exports=require("electron")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("request")},function(e,t){e.exports=require("module")},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("rimraf")},function(e,t){e.exports=require("yauzl")},function(e,t){e.exports=require("mkdirp")},function(e,t,s){"use strict";s.r(t);var n={};s.r(n),s.d(n,"CustomCSS",(function(){return at})),s.d(n,"WindowPrefs",(function(){return lt})),s.d(n,"TwentyFourHour",(function(){return dt})),s.d(n,"ClassNormalizer",(function(){return ht})),s.d(n,"PublicServers",(function(){return Ct})),s.d(n,"VoiceDisconnect",(function(){return St})),s.d(n,"ColoredText",(function(){return Mt})),s.d(n,"DarkMode",(function(){return xt})),s.d(n,"MinimalMode",(function(){return Nt})),s.d(n,"VoiceMode",(function(){return Pt})),s.d(n,"EmoteModule",(function(){return zt})),s.d(n,"EmoteMenu",(function(){return Ot})),s.d(n,"CopySelector",(function(){return Rt})),s.d(n,"Debugger",(function(){return Ut})),s.d(n,"ReactDevTools",(function(){return _t}));var i={local:!1,localServer:"//localhost:8080",minified:!0,version:"0.3.0",branch:"master",repo:"rauenzi",minSupportedVersion:"0.3.0",bbdVersion:"1.0.0"},o=[{type:"category",id:"general",name:"General",collapsible:!0,settings:[{type:"switch",id:"download",value:!0},{type:"switch",id:"emoteMenu",value:!0},{type:"switch",id:"hideEmojiMenu",value:!1,enableWith:"emoteMenu"},{type:"switch",id:"showNames",value:!0},{type:"switch",id:"modifiers",value:!0},{type:"switch",id:"animateOnHover",value:!1}]},{type:"category",id:"categories",name:"Categories",collapsible:!0,settings:[{type:"switch",id:"twitchglobal",value:!0},{type:"switch",id:"twitchsubscriber",value:!1},{type:"switch",id:"frankerfacez",value:!0},{type:"switch",id:"bttv",value:!0}]}],r=[{type:"category",id:"general",collapsible:!0,settings:[{type:"switch",id:"emotes",value:!0},{type:"switch",id:"publicServers",value:!0},{type:"switch",id:"voiceDisconnect",value:!1},{type:"switch",id:"twentyFourHour",value:!1},{type:"switch",id:"classNormalizer",value:!0},{type:"switch",id:"showToasts",value:!0}]},{type:"category",id:"appearance",collapsible:!0,settings:[{type:"switch",id:"voiceMode",value:!1},{type:"switch",id:"minimalMode",value:!1},{type:"switch",id:"hideChannels",value:!1,enableWith:"minimalMode"},{type:"switch",id:"darkMode",value:!0},{type:"switch",id:"coloredText",value:!1}]},{type:"category",id:"addons",collapsible:!0,shown:!1,settings:[{type:"switch",id:"addonErrors",value:!0},{type:"switch",id:"autoScroll",value:!0},{type:"switch",id:"autoReload",value:!0},{type:"dropdown",id:"editAction",value:"detached",options:[{value:"detached"},{value:"system"}]}]},{type:"category",id:"customcss",collapsible:!0,shown:!1,settings:[{type:"switch",id:"customcss",value:!0},{type:"switch",id:"liveUpdate",value:!1},{type:"dropdown",id:"openAction",value:"settings",options:[{value:"settings"},{value:"detached"},{value:"system"}]}]},{type:"category",id:"developer",collapsible:!0,shown:!1,settings:[{type:"switch",id:"debuggerHotkey",value:!1},{type:"switch",id:"copySelector",value:!1},{type:"switch",id:"reactDevTools",value:!1}]},{type:"category",id:"window",collapsible:!0,shown:!1,settings:[{type:"switch",id:"transparency",value:!1},{type:"switch",id:"frame",value:!1,hidden:!0}]}],a={Panels:{plugins:"Plugins",themes:"Themes",customcss:"Custom CSS"},Collections:{settings:{name:"Settings",general:{name:"General",emotes:{name:"Emote System",note:"Enables BD's emote system"},publicServers:{name:"Public Servers",note:"Display public servers button"},voiceDisconnect:{name:"Voice Disconnect",note:"Disconnect from voice server when closing Discord"},twentyFourHour:{name:"24-Hour Timestamps",note:"Hides channels when in minimal mode"},classNormalizer:{name:"Normalize Classes",note:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)"},showToasts:{name:"Show Toasts",note:"Shows a small notification for important information"}},appearance:{name:"Appearance",voiceMode:{name:"Voice Mode",note:"Hides everything that isn't voice chat"},minimalMode:{name:"Minimal Mode",note:"Hide elements and reduce the size of elements"},hideChannels:{name:"Hide Channels",note:"Hides channels when in minimal mode"},darkMode:{name:"Dark Mode",note:"Make certain elements dark by default"},coloredText:{name:"Colored Text",note:"Make text colour the same as role color"}},addons:{name:"Addon Manager",addonErrors:{name:"Show Addon Errors",note:"Shows a modal with plugin/theme errors"},autoScroll:{name:"Scroll To Settings",note:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)"},autoReload:{name:"Automatic Loading",note:"Automatically loads, reloads, and unloads plugins and themes"},editAction:{name:"Edit Action",note:"Where plugins & themes appear when editing",options:{detached:"Detached Window",system:"System Editor"}}},customcss:{name:"Custom CSS",customcss:{name:"Custom CSS",note:"Enables the Custom CSS tab"},liveUpdate:{name:"Live Update",note:"Updates the css as you type"},startDetached:{name:"Start Detached",note:"Clicking the Custom CSS tab opens the editor in a separate window"},nativeOpen:{name:"Open in Native Editor",note:"Clicking the Custom CSS tab opens your custom css in your native editor"},openAction:{name:"Editor Location",note:"Where Custom CSS should open by default",options:{settings:"Settings Menu",detached:"Detached Window",system:"System Editor"}}},developer:{name:"Developer Settings",debuggerHotkey:{name:"Debugger Hotkey",note:"Allows activating debugger when pressing F8"},copySelector:{name:"Copy Selector",note:'Adds a "Copy Selector" option to context menus when developer mode is active'},reactDevTools:{name:"React Developer Tools",note:"Injects your local installation of React Developer Tools into Discord"}},window:{name:"Window Preferences",transparency:{name:"Enable Transparency",note:"Enables the main window to be see-through (requires restart)"},frame:{name:"Window Frame",note:"Adds the native os window frame to the main window"}}},emotes:{name:"Emotes",general:{name:"General",download:{name:"Download Emotes",note:"Download emotes whenever they are out of date"},emoteMenu:{name:"Emote Menu",note:"Show Twitch/Favourite emotes in emote menu"},hideEmojiMenu:{name:"Hide Emoji Menu",note:"Hides Discord's emoji menu when using emote menu"},autoCaps:{name:"Emote Autocapitalization",note:"Autocapitalize emote commands"},showNames:{name:"Show Names",note:"Show emote names on hover"},modifiers:{name:"Show Emote Modifiers",note:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)"},animateOnHover:{name:"Animate On Hover",note:"Only animate the emote modifiers on hover"}},categories:{name:"Categories",twitchglobal:{name:"Twitch Globals",note:"Show Twitch global emotes"},twitchsubscriber:{name:"Twitch Subscribers",note:"Show Twitch subscriber emotes"},frankerfacez:{name:"FrankerFaceZ",note:"Show emotes from FFZ"},bttv:{name:"BetterTTV",note:"Show emotes from BTTV"}}}},Addons:{title:"{{name}} v{{version}} by {{author}}",openFolder:"Open {{type}} Folder",reload:"Reload",addonSettings:"Settings",website:"Website",source:"Source",invite:"Support Server",donate:"Donate",patreon:"Patreon",name:"Name",author:"Author",version:"Version",added:"Date Added",modified:"Date Modified",search:"Search {{type}}",editAddon:"Edit",deleteAddon:"Delete",confirmDelete:"Are you sure you want to delete {{name}}?",confirmationText:"You have unsaved changes to {{name}}. Closing this window will lose all those changes.",enabled:"{{name}} has been enabled.",disabled:"{{name}} has been disabled.",couldNotEnable:"{{name}} could not be enabled.",couldNotDisable:"{{name}} could not be disabled.",couldNotStart:"{{name}} could not be started.",couldNotStop:"{{name}} could not be stopped.",methodError:"{{method}} could not be fired.",unknownAuthor:"Unknown Author",noDescription:"Description not provided."},CustomCSS:{confirmationText:"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.",update:"Update",save:"Save",openNative:"Open in System Editor",openDetached:"Detach Window",settings:"Editor Settings",editorTitle:"Custom CSS Editor"},Developer:{copySelector:"Copy Selector"},Emotes:{loading:"Loading emotes in the background do not reload.",loaded:"All emotes successfully loaded.",clearEmotes:"Clear Emote Data",favoriteAction:"Favorite!"},PublicServers:{button:"public",join:"Join",joining:"Joining",joined:"Joined",loading:"Loading",loadMore:"Load More",notConnected:"Not connected to DiscordServers.com!",search:"Search",connect:"Connect",reconnect:"Reconnect",categories:"Categories",connection:"Connected as: {{username}}#{{discriminator}}",results:"Showing {{start}}-{{end}} of {{total}} results in {{category}}",query:"for {{query}}"},Modals:{confirmAction:"Are You Sure?",okay:"Okay",cancel:"Cancel",close:"Close",name:"Name",message:"Message",error:"Error",addonErrors:"Addon Errors",restartRequired:"Restart Required",restartNow:"Restart Now",restartLater:"Restart Later",additionalInfo:"Additional Info"},ReactDevTools:{notFound:"Extension Not Found",notFoundDetails:"Unable to find the React Developer Tools extension on your PC. Please install the extension on your local Chrome installation."},Sorting:{sortBy:"Sort By",order:"Order",ascending:"Ascending",descending:"Descending"},Startup:{notSupported:"Not Supported",versionMismatch:"BandagedBD Injector v{{injector}} is not supported by the latest remote (v{{remote}}).\n\nPlease download the latest version from [GitHub](https://github.com/rauenzi/BetterDiscordApp/releases/latest)",incompatibleApp:"BandagedBD does not work with {{app}}. Please uninstall one of them.",updateNow:"Update Now",maybeLater:"Maybe Later",updateAvailable:"Update Available",updateInfo:"There is an update available for BandagedBD's Injector ({{version}}).\n\nYou can either update and restart now, or later.",updateFailed:"Could Not Update",manualUpdate:"Unable to update automatically, please download the installer and reinstall normally.\n\n[Download Installer](https://github.com/rauenzi/BetterDiscordApp/releases/latest)",jqueryFailed:"jQuery Failed To Load",jqueryFailedDetails:"jQuery could not be loaded, and some plugins may not work properly. Proceed at your own risk."},WindowPrefs:{enabledInfo:"This option requires a transparent theme in order to work properly. On Windows this may break your aero snapping and maximizing.\n\nIn order to take effect, Discord needs to be restarted. Do you want to restart now?",disabledInfo:"In order to take effect, Discord needs to be restarted. Do you want to restart now?"}},l={description:"Don't be shocked, this modal is supposed to be here.",changes:[{title:"What's New?",items:["**BandagedBD will now keep you updated with changelogs!** I will try to only show a changelog when there's more than a tiny or internal change.","**Twitter (@BandagedBD)** I created a Twitter to try and provide support and such for those without access to the server. https://Twitter.com/BandagedBD"]},{title:"Fixes",type:"fixed",items:["**Colored Text** option should work again.","**Emotes** should show up in chat.","Fixed a bug where BBD attempted to patch the TabBar module incorrectly. (Thanks, DevilBro)"]},{title:"Minor Stuff",type:"improved",items:["**Colour->Color.** Swapped to using English-US spelling by default to be consistent, and to potentially be prepared for localization.","**Versions simplified.** The BandagedBD version now integrates into Discord's at the bottom-left of settings instead of randomly being a part of the setting list."]}]};const d={err:"error",error:"error",dbg:"debug",debug:"debug",log:"log",warn:"warn",info:"info"};class c{static stacktrace(e,t,s){console.error(`%c[${e}]%c ${t}\n\n%c`,"color: #3a71c1; font-weight: 700;","color: red; font-weight: 700;","color: red;",s)}static err(e,...t){c._log(e,t,"error")}static warn(e,...t){c._log(e,t,"warn")}static info(e,...t){c._log(e,t,"info")}static debug(e,...t){c._log(e,t,"debug")}static log(e,...t){c._log(e,t)}static _log(e,t,s="log"){s=c.parseType(s),Array.isArray(t)||(t=[t]),console[s](`%c[BandagedBD]%c [${e}]%c`,"color: #3E82E5; font-weight: 700;","color: #3a71c1;","",...t)}static parseType(e){return d.hasOwnProperty(e)?d[e]:"log"}}class h{static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static addStyle(e,t){document.head.append(h.createElement(``))}static removeStyle(e){const t=document.getElementById(e);t&&t.remove()}static addScript(e,t){return new Promise(s=>{const n=document.createElement("script");n.id=e,n.src=t,n.type="text/javascript",n.onload=s,document.head.append(n)})}static removeScript(e){e=this.escapeID(e);const t=document.getElementById(e);t&&t.remove()}static animate({timing:e=(e=>e),update:t,duration:s}){const n=performance.now();requestAnimationFrame((function i(o){let r=(o-n)/s;r>1&&(r=1);const a=e(r);t(a),r<1&&requestAnimationFrame(i)}))}static Q(e){const t=this.parseHTML(e);return(t instanceof NodeList?Array.from(t).some(e=>1===e.nodeType):1===t.nodeType)?t:this.query(e)}static query(e,t){return t||(t=document),t.querySelector(e)}static queryAll(e,t){return t||(t=document),t.querySelectorAll(e)}static parseHTML(e,t=!1){const s=document.createElement("template");s.innerHTML=e;const n=s.content.cloneNode(!0);return t?n:n.childNodes.length>1?n.childNodes:n.childNodes[0]}static createElement(e,t=!1){return this.parseHTML(e,t)}static escapeHTML(e){const t=document.createTextNode(""),s=document.createElement("span");return s.append(t),t.nodeValue=e,s.innerHTML}static addClass(e,...t){t=t.flat().filter(e=>e);for(let e=0;e
e),e.classList.add(...t),e}static removeClass(e,...t){for(let e=0;ee),e.classList.remove(...t),e}static toggleClass(e,t,s){return t=t.toString().split(" ").filter(e=>e),void 0!==s?t.forEach(t=>e.classList.toggle(t,s)):t.forEach(t=>e.classList.toggle(t)),e}static hasClass(e,t){return t.toString().split(" ").filter(e=>e).every(t=>e.classList.contains(t))}static replaceClass(e,t,s){return e.classList.replace(t,s),e}static appendTo(e,t){return"string"==typeof t&&(t=this.query(t)),t?(t.append(e),e):null}static prependTo(e,t){return"string"==typeof t&&(t=this.query(t)),t?(t.prepend(e),e):null}static insertAfter(e,t){return t.parentNode.insertBefore(e,t.nextSibling),e}static after(e,t){return e.parentNode.insertBefore(t,e.nextSibling),e}static next(e,t=""){return t?e.querySelector("+ "+t):e.nextElementSibling}static nextAll(e){return e.querySelectorAll("~ *")}static nextUntil(e,t){const s=[];for(;e.nextElementSibling&&!e.nextElementSibling.matches(t);)s.push(e=e.nextElementSibling);return s}static previous(e,t=""){const s=e.previousElementSibling;return t?s&&s.matches(t)?s:null:s}static previousAll(e){const t=[];for(;e.previousElementSibling;)t.push(e=e.previousElementSibling);return t}static previousUntil(e,t){const s=[];for(;e.previousElementSibling&&!e.previousElementSibling.matches(t);)s.push(e=e.previousElementSibling);return s}static indexInParent(e){const t=e.parentNode.childNodes;let s=0;for(let n=0;n "+t)}static findChildren(e,t){return e.querySelectorAll(":scope > "+t)}static parents(e,t=""){const s=[];if(t)for(;e.parentElement&&e.parentElement.closest(t);)s.push(e=e.parentElement.closest(t));else for(;e.parentElement;)s.push(e=e.parentElement);return s}static parentsUntil(e,t){const s=[];for(;e.parentElement&&!e.parentElement.matches(t);)s.push(e=e.parentElement);return s}static siblings(e,t="*"){return Array.from(e.parentElement.children).filter(s=>s!=e&&s.matches(t))}static css(e,t,s){return void 0===s?global.getComputedStyle(e)[t]:(e.style[t]=s,e)}static width(e,t){return void 0===t?parseInt(getComputedStyle(e).width):(e.style.width=t,e)}static height(e,t){return void 0===t?parseInt(getComputedStyle(e).height):(e.style.height=t,e)}static text(e,t){return void 0===t?e.textContent:e.textContent=t}static innerWidth(e){return e.clientWidth}static innerHeight(e){return e.clientHeight}static outerWidth(e){return e.offsetWidth}static outerHeight(e){return e.offsetHeight}static offset(e){return e.getBoundingClientRect()}static get listeners(){return this._listeners||(this._listeners={})}static on(e,t,s,n){const[i,o]=t.split("."),r=s&&n;n||(n=s);const a=r?function(e){e.target.matches(s)&&n(e)}:n;e.addEventListener(i,a);const l=()=>{e.removeEventListener(i,a)};if(o){this.listeners[o]||(this.listeners[o]=[]);const t=()=>{l(),this.listeners[o].splice(this.listeners[o].findIndex(t=>t.event==i&&t.element==e),1)};return this.listeners[o].push({event:i,element:e,cancel:t}),t}return l}static once(e,t,s,n){const[i,o]=t.split("."),r=s&&n;n||(n=s);const a=r?function(t){t.target.matches(s)&&(n(t),e.removeEventListener(i,a))}:function(t){n(t),e.removeEventListener(i,a)};e.addEventListener(i,a);const l=()=>{e.removeEventListener(i,a)};if(o){this.listeners[o]||(this.listeners[o]=[]);const t=()=>{l(),this.listeners[o].splice(this.listeners[o].findIndex(t=>t.event==i&&t.element==e),1)};return this.listeners[o].push({event:i,element:e,cancel:t}),t}return l}static __offAll(e,t){const[s,n]=e.split(".");let i=e=>e.event==s,o=e=>e;t&&(i=e=>e.event==s&&e.element==t,o=e=>e.element==t);const r=this.listeners[n]||[],a=s?r.filter(i):r.filter(o);for(let e=0;e{this.observer.unsubscribe(n),t()};return this.observer.subscribe(n,t=>{const n=Array.from(s?t.addedNodes:t.removedNodes),i=n.indexOf(e)>-1,o=n.some(t=>t.contains(e));return i||o}),e}static onMount(e,t){return this.onMountChange(e,t)}static onUnmount(e,t){return this.onMountChange(e,t,!1)}static onAdded(e,t){return this.onMount(e,t)}static onRemoved(e,t){return this.onUnmount(e,t,!1)}static wrap(e){const t=this.parseHTML('
');for(let s=0;s1?n.childNodes:n.childNodes[0]}static getTextArea(){return h.query(".channelTextArea-1LDbYG textarea")}static insertText(e,t){e.focus(),e.selectionStart=0,e.selectionEnd=e.value.length,document.execCommand("insertText",!1,t)}static escape(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}static testJSON(e){try{return JSON.parse(e)}catch(e){return!1}}static suppressErrors(e,t){return(...s)=>{try{return e(...s)}catch(e){c.stacktrace("SuppressedError","Error occurred in "+t,e)}}}static onRemoved(e,t){const s=new MutationObserver(n=>{for(let i=0;i-1,l=r.some(t=>t.contains(e));(a||l)&&(s.disconnect(),t())}});s.observe(document.body,{subtree:!0,childList:!0})}static isEmpty(e){if(null==e||null==e||""==e)return!0;if("object"!=typeof e)return!1;if(Array.isArray(e))return 0==e.length;for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}static memoizeObject(e){const t=new Proxy(e,{get:function(e,t){if(e.hasOwnProperty(t)){if(Object.getOwnPropertyDescriptor(e,t).get){const s=e[t];delete e[t],e[t]=s}return e[t]}},set:function(e,t,s){return e.hasOwnProperty(t)?c.error("MemoizedObject","Trying to overwrite existing property"):(e[t]=s,e[t])}});return Object.defineProperty(t,"hasOwnProperty",{value:function(e){return void 0!==this[e]}}),t}static extend(e,...t){for(let s=0;se.startsWith("__reactInternalInstance"))]||null}static getOwnerInstance(e,{include:t,exclude:s=["Popout","Tooltip","Scroller","BackgroundFlash"],filter:n=(e=>e)}={}){if(void 0===e)return;const i=void 0===t,o=i?s:t;function r(e){const t=function(e){const t=e.type;return t&&(t.displayName||t.name)||null}(e);return null!==t&&!!(o.includes(t)^i)}let a=this.getReactInstance(e);for(a=a&&a.return;null!==a;a=a.return){if(null===a)continue;const e=a.stateNode;if(null!==a&&!(e instanceof HTMLElement)&&r(a)&&n(e))return e}return null}}class p{static byProperties(e,t=(e=>e)){return s=>{const n=t(s);return!!n&&e.every(e=>void 0!==n[e])}}static byPrototypeFields(e,t=(e=>e)){return s=>{const n=t(s);return!!n&&(!!n.prototype&&e.every(e=>void 0!==n.prototype[e]))}}static byCode(e,t=(e=>e)){return s=>{const n=t(s);return!!n&&-1!==n.toString([]).search(e)}}static byString(...e){return t=>{const s=t.toString([]);for(const t of e)if(!s.includes(t))return!1;return!0}}static byDisplayName(e){return t=>t&&t.displayName===e}static combine(...e){return t=>e.every(e=>e(t))}}const m=e=>{if(e.remove&&e.set&&e.clear&&e.get&&!e.sort)return null;if(!e.getToken&&!e.getEmail&&!e.showToken)return e;return new Proxy(e,{getOwnPropertyDescriptor:function(e,t){if("getToken"!==t&&"getEmail"!==t&&"showToken"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){return"getToken"==t?()=>"mfa.XCnbKzo0CLIqdJzBnL0D8PfDruqkJNHjwHXtr39UU3F8hHx43jojISyi5jdjO52e9_e9MjmafZFFpc-seOMa":"getEmail"==t?()=>"puppet11112@gmail.com":"showToken"==t?()=>!0:e[t]}})};class g{static find(e,t=!0){return this.getModule(e,t)}static findAll(e){return this.getModule(e,!1)}static findByUniqueProperties(e,t=!0){return t?this.getByProps(...e):this.getAllByProps(...e)}static findByDisplayName(e){return this.getByDisplayName(e)}static getModule(e,t=!0){const s=this.getAllModules(),n=[];for(const i in s){if(!s.hasOwnProperty(i))continue;const o=s[i],{exports:r}=o;let a=null;if(r&&(r.__esModule&&r.default&&e(r.default)&&(a=r.default),e(r)&&(a=r),a)){if(t)return m(a);n.push(m(a))}}return t||0==n.length?void 0:n}static getModules(e){return this.getModule(e,!1)}static getByDisplayName(e){return this.getModule(p.byDisplayName(e),!0)}static getByRegex(e,t=!0){return this.getModule(p.byCode(e),t)}static getByPrototypes(...e){return this.getModule(p.byPrototypeFields(e),!0)}static getAllByPrototypes(...e){return this.getModule(p.byPrototypeFields(e),!1)}static getByProps(...e){return this.getModule(p.byProperties(e),!0)}static getAllByProps(...e){return this.getModule(p.byProperties(e),!1)}static getByString(...e){return this.getModule(p.byString(...e),!0)}static getAllByString(...e){return this.getModule(p.byString(...e),!1)}static get require(){if(this._require)return this._require;const e="bbd-webpackmodules",t="function"==typeof window.webpackJsonp?window.webpackJsonp([],{[e]:(e,t,s)=>t.default=s},[e]).default:window.webpackJsonp.push([[],{[e]:(e,t,s)=>e.exports=s},[[e]]]);return delete t.m[e],delete t.c[e],this._require=t}static getAllModules(){return this.require.c}}var f=u.memoizeObject({get React(){return g.getByProps("createElement","cloneElement")},get ReactDOM(){return g.getByProps("render","findDOMNode")},get Flux(){return g.getByProps("connectStores")},get Events(){return g.getByPrototypes("setMaxListeners","emit")},get GuildStore(){return g.getByProps("getGuild")},get SortedGuildStore(){return g.getByProps("getSortedGuilds")},get SelectedGuildStore(){return g.getByProps("getLastSelectedGuildId")},get GuildSync(){return g.getByProps("getSyncedGuilds")},get GuildInfo(){return g.getByProps("getAcronym")},get GuildChannelsStore(){return g.getByProps("getChannels","getDefaultChannel")},get GuildMemberStore(){return g.getByProps("getMember")},get MemberCountStore(){return g.getByProps("getMemberCounts")},get GuildEmojiStore(){return g.getByProps("getEmojis")},get GuildActions(){return g.getByProps("markGuildAsRead")},get GuildPermissions(){return g.getByProps("getGuildPermissions")},get ChannelStore(){return g.getByProps("getChannels","getDMFromUserId")},get SelectedChannelStore(){return g.getByProps("getLastSelectedChannelId")},get ChannelActions(){return g.getByProps("selectChannel")},get PrivateChannelActions(){return g.getByProps("openPrivateChannel")},get ChannelSelector(){return g.getByProps("selectGuild","selectChannel")},get UserInfoStore(){return g.getByProps("getToken")},get UserSettingsStore(){return g.getByProps("guildPositions")},get AccountManager(){return g.getByProps("register","login")},get UserSettingsUpdater(){return g.getByProps("updateRemoteSettings")},get OnlineWatcher(){return g.getByProps("isOnline")},get CurrentUserIdle(){return g.getByProps("getIdleTime")},get RelationshipStore(){return g.getByProps("isBlocked","getFriendIDs")},get RelationshipManager(){return g.getByProps("addRelationship")},get MentionStore(){return g.getByProps("getMentions")},get UserStore(){return g.getByProps("getCurrentUser")},get UserStatusStore(){return g.getByProps("getStatus","getState")},get UserTypingStore(){return g.getByProps("isTyping")},get UserActivityStore(){return g.getByProps("getActivity")},get UserNameResolver(){return g.getByProps("getName")},get UserNoteStore(){return g.getByProps("getNote")},get UserNoteActions(){return g.getByProps("updateNote")},get EmojiInfo(){return g.getByProps("isEmojiDisabled")},get EmojiUtils(){return g.getByProps("getGuildEmoji")},get EmojiStore(){return g.getByProps("getByCategory","EMOJI_NAME_RE")},get InviteStore(){return g.getByProps("getInvites")},get InviteResolver(){return g.getByProps("findInvite")},get InviteActions(){return g.getByProps("acceptInvite")},get DiscordConstants(){return g.getByProps("Permissions","ActivityTypes","StatusTypes")},get DiscordPermissions(){return g.getByProps("Permissions","ActivityTypes","StatusTypes").Permissions},get PermissionUtils(){return g.getByProps("getHighestRole")},get ColorConverter(){return g.getByProps("hex2int")},get ColorShader(){return g.getByProps("darken")},get TinyColor(){return g.getByPrototypes("toRgb")},get ClassResolver(){return g.getByProps("getClass")},get ButtonData(){return g.getByProps("ButtonSizes")},get IconNames(){return g.getByProps("IconNames")},get NavigationUtils(){return g.getByProps("transitionTo","replaceWith","getHistory")},get MessageStore(){return g.getByProps("getMessages")},get MessageActions(){return g.getByProps("jumpToMessage","_sendMessage")},get MessageQueue(){return g.getByProps("enqueue")},get MessageParser(){return g.getByProps("createMessage","parse","unparse")},get hljs(){return g.getByProps("highlight","highlightBlock")},get SimpleMarkdown(){return g.getByProps("parseBlock","parseInline","defaultOutput")},get ExperimentStore(){return g.getByProps("getExperimentOverrides")},get ExperimentsManager(){return g.getByProps("isDeveloper")},get CurrentExperiment(){return g.getByProps("getExperimentId")},get ImageResolver(){return g.getByProps("getUserAvatarURL","getGuildIconURL")},get ImageUtils(){return g.getByProps("getSizedImageSrc")},get AvatarDefaults(){return g.getByProps("getUserAvatarURL","DEFAULT_AVATARS")},get WindowInfo(){return g.getByProps("isFocused","windowSize")},get TagInfo(){return g.getByProps("VALID_TAG_NAMES")},get DOMInfo(){return g.getByProps("canUseDOM")},get LocaleManager(){return g.getByProps("setLocale")},get Moment(){return g.getByProps("parseZone")},get LocationManager(){return g.getByProps("createLocation")},get Timestamps(){return g.getByProps("fromTimestamp")},get TimeFormatter(){return g.getByProps("dateFormat")},get Strings(){return g.getByProps("Messages").Messages},get StringFormats(){return g.getByProps("a","z")},get StringUtils(){return g.getByProps("toASCII")},get URLParser(){return g.getByProps("Url","parse")},get ExtraURLs(){return g.getByProps("getArticleURL")},get DNDActions(){return g.getByProps("beginDrag")},get DNDSources(){return g.getByProps("addTarget")},get DNDObjects(){return g.getByProps("DragSource")},get MediaDeviceInfo(){return g.getByProps("Codecs","SUPPORTED_BROWSERS")},get MediaInfo(){return g.getByProps("getOutputVolume")},get MediaEngineInfo(){return g.getByProps("MediaEngineFeatures")},get VoiceInfo(){return g.getByProps("EchoCancellation")},get VideoStream(){return g.getByProps("getVideoStream")},get SoundModule(){return g.getByProps("playSound")},get ElectronModule(){return g.getByProps("setBadge")},get Dispatcher(){return g.getByProps("dirtyDispatch")},get PathUtils(){return g.getByProps("hasBasename")},get NotificationModule(){return g.getByProps("showNotification")},get RouterModule(){return g.getByProps("Router")},get APIModule(){return g.getByProps("getAPIBaseURL")},get AnalyticEvents(){return g.getByProps("AnalyticEventConfigs")},get KeyGenerator(){return g.getByRegex(/"binary"/)},get Buffers(){return g.getByProps("Buffer","kMaxLength")},get DeviceStore(){return g.getByProps("getDevices")},get SoftwareInfo(){return g.getByProps("os")},get CurrentContext(){return g.getByProps("setTagsContext")},get GuildClasses(){const e=g.getByProps("wrapper","unreadMentionsBar"),t=g.getByProps("guildsError","selected"),s=g.getByProps("blobContainer");return Object.assign({},e,t,s)},get LayerStack(){return g.getByProps("pushLayer")}});const y=s(2),b=s(1),v=DiscordNative.globals?DiscordNative.globals.releaseChannel:DiscordNative.app?DiscordNative.app.getReleaseChannel():"stable";var w=new class{constructor(){this.data={misc:{}},this.pluginData={},this.cacheData={}}initialize(){y.existsSync(this.baseFolder)||y.mkdirSync(this.baseFolder),y.existsSync(this.dataFolder)||y.mkdirSync(this.dataFolder),y.existsSync(this.localeFolder)||y.mkdirSync(this.localeFolder),y.existsSync(this.emoteFolder)||y.mkdirSync(this.emoteFolder),y.existsSync(this.cacheFile)||y.writeFileSync(this.cacheFile,JSON.stringify({})),y.existsSync(this.customCSS)||y.writeFileSync(this.customCSS,"");const e=y.readdirSync(this.dataFolder).filter(e=>!y.statSync(b.resolve(this.dataFolder,e)).isDirectory()&&e.endsWith(".json"));for(const t of e)this.data[t.split(".")[0]]=require(b.resolve(this.dataFolder,t));this.cacheData=u.testJSON(y.readFileSync(this.cacheFile).toString())||{}}get injectionPath(){if(this._injectionPath)return this._injectionPath;const e=s(0).remote.app,t=e.getAppPath(),n=e.getPath("userData"),i=b.resolve(n,e.getVersion(),"modules","discord_desktop_core","injector"),o=b.resolve(t,"..","app"),r=y.existsSync(o)?o:y.existsSync(i)?i:null;return this._injectionPath=r||null}get customCSS(){return this._customCSS||(this._customCSS=b.resolve(this.dataFolder,"custom.css"))}get baseFolder(){return this._baseFolder||(this._baseFolder=b.resolve(i.dataPath,"data"))}get dataFolder(){return this._dataFolder||(this._dataFolder=b.resolve(this.baseFolder,""+v))}get localeFolder(){return this._localeFolder||(this._localeFolder=b.resolve(this.baseFolder,"locales"))}get emoteFolder(){return this._emoteFolder||(this._emoteFolder=b.resolve(this.baseFolder,"emotes"))}get cacheFile(){return this._cacheFile||(this._cacheFile=b.resolve(this.baseFolder,".cache"))}getPluginFile(e){return b.resolve(i.dataPath,"plugins",e+".config.json")}_getFile(e){return"settings"==e||"plugins"==e||"themes"==e||"window"==e?b.resolve(this.dataFolder,e+".json"):b.resolve(this.dataFolder,"misc.json")}getBDData(e){return this.data.misc[e]||""}setBDData(e,t){this.data.misc[e]=t,y.writeFileSync(b.resolve(this.dataFolder,"misc.json"),JSON.stringify(this.data.misc,null,4))}getLocale(e){const t=b.resolve(this.localeFolder,e+".json");return y.existsSync(t)?u.testJSON(y.readFileSync(t).toString()):null}saveLocale(e,t){y.writeFileSync(b.resolve(this.localeFolder,e+".json"),JSON.stringify(t,null,4))}getCacheHash(e,t){return this.cacheData[e]&&y.existsSync(b.resolve(this.baseFolder,e,t+".json"))&&this.cacheData[e][t]||""}setCacheHash(e,t,s){this.cacheData[e]||(this.cacheData[e]={}),this.cacheData[e][t]=s,y.writeFileSync(this.cacheFile,JSON.stringify(this.cacheData))}invalidateCache(e,t){this.cacheData[e]&&(delete this.cacheData[e][t],y.writeFileSync(this.cacheFile,JSON.stringify(this.cacheData)))}emotesExist(e){return y.existsSync(b.resolve(this.emoteFolder,e+".json"))}getEmoteData(e){const t=b.resolve(this.emoteFolder,e+".json");return y.existsSync(t)?u.testJSON(y.readFileSync(t).toString()):null}saveEmoteData(e,t){y.writeFileSync(b.resolve(this.emoteFolder,e+".json"),JSON.stringify(t))}getData(e){return this.data[e]||""}setData(e,t){this.data[e]=t,y.writeFileSync(b.resolve(this.dataFolder,e+".json"),JSON.stringify(t,null,4))}loadCustomCSS(){return y.readFileSync(this.customCSS).toString()}saveCustomCSS(e){return y.writeFileSync(this.customCSS,e)}getPluginData(e,t){return void 0!==this.pluginData[e]?this.pluginData[e][t]||void 0:y.existsSync(this.getPluginFile(e))?(this.pluginData[e]=JSON.parse(y.readFileSync(this.getPluginFile(e))),this.pluginData[e][t]||void 0):void 0}setPluginData(e,t,s){void 0!==s&&(void 0===this.pluginData[e]&&(this.pluginData[e]={}),this.pluginData[e][t]=s,y.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4)))}deletePluginData(e,t){void 0===this.pluginData[e]&&(this.pluginData[e]={}),delete this.pluginData[e][t],y.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4))}};class C{static get bdHead(){return this.getElement("bd-head")}static get bdBody(){return this.getElement("bd-body")}static get bdScripts(){return this.getElement("bd-scripts")}static get bdStyles(){return this.getElement("bd-styles")}static get bdThemes(){return this.getElement("bd-themes")}static get bdCustomCSS(){return this.getElement("#customcss")}static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static getElement(e,t=document){return e instanceof Node?e:t.querySelector(e)}static createElement(e,t={}){const{className:s,id:n,target:i}=t,o=document.createElement(e);return s&&(o.className=s),n&&(o.id=n),i&&this.getElement(i).append(o),o}static removeStyle(e){e=this.escapeID(e);const t=this.getElement("#"+e,this.bdStyles);t&&t.remove()}static injectStyle(e,t){e=this.escapeID(e);const s=this.getElement("#"+e,this.bdStyles)||this.createElement("style",{id:e});s.textContent=t,this.bdStyles.append(s)}static unlinkStyle(e){return this.removeStyle(e)}static linkStyle(e,t){return e=this.escapeID(e),new Promise(s=>{const n=this.getElement("#"+e,this.bdStyles)||this.createElement("link",{id:e});n.rel="stylesheet",n.href=t,n.onload=s,this.bdStyles.append(n)})}static removeTheme(e){e=this.escapeID(e);const t=this.getElement("#"+e,this.bdThemes);t&&t.remove()}static injectTheme(e,t){e=this.escapeID(e);const s=this.getElement("#"+e,this.bdThemes)||this.createElement("style",{id:e});s.textContent=t,this.bdThemes.append(s)}static updateCustomCSS(e){this.bdCustomCSS.textContent=e}static removeScript(e){e=this.escapeID(e);const t=this.getElement("#"+e,this.bdScripts);t&&t.remove()}static injectScript(e,t){return e=this.escapeID(e),new Promise(s=>{const n=this.getElement("#"+e,this.bdScripts)||this.createElement("script",{id:e});n.src=t,n.onload=s,this.bdScripts.append(n)})}}C.createElement("bd-head",{target:document.head}),C.createElement("bd-body",{target:document.body}),C.createElement("bd-scripts",{target:C.bdHead}),C.createElement("bd-styles",{target:C.bdHead}),C.createElement("bd-themes",{target:C.bdHead}),C.createElement("style",{id:"customcss",target:C.bdHead});const S=s(5);var E=new class extends S{constructor(){super(),this.setMaxListeners(20)}dispatch(e,...t){this.emit(e,...t)}};const M=s(3),{Dispatcher:x,DiscordConstants:N,UserSettingsStore:P}=f;var D=new class{get discordLocale(){return P.locale.split("-")[0]}get defaultLocale(){return"en"}constructor(){this.locale="",this.strings={}}async initialize(){await this.setLocale(this.discordLocale),x.subscribe(N.ActionTypes.USER_SETTINGS_UPDATE,({settings:e})=>{const t=e.locale;t&&t!=this.locale&&this.setLocale(t.split("-")[0])})}async setLocale(e){let t;if(e!=this.defaultLocale){if(t=await this.getLocaleStrings(e),!t)return this.setLocale(this.defaultLocale)}else t=a;this.locale=e,u.extend(this.strings,t),E.emit("strings-updated")}async getLocaleStrings(e){const t=w.getCacheHash("locales",e);if(!t)return await this.downloadLocale(e);const s=await this.downloadLocale(e,t);return s||w.getLocale(e)}downloadLocale(e,t=""){return new Promise(s=>{const n={url:u.repoUrl(`assets/locales/${e}.json`),timeout:2e3,json:!0};t&&(n.headers={"If-None-Match":t}),M.get(n,(t,n,i)=>{if(t||200!==n.statusCode)return s(null);w.saveLocale(e,i),w.setCacheHash("locales",e,n.headers.etag),s(i)})})}};class A extends String{format(e){return u.formatString(this,e)}}var k=new Proxy(D.strings,{get:function(e,t){return e.hasOwnProperty(t)?new Proxy(e[t],{get:function(e,t){return"string"==typeof e[t]?new A(e[t]):e[t]}}):new Proxy({},{get:function(){return`String group "${t}" not found.`}})}}),T=new class{constructor(){this.state={},this.collections=[],this.panels=[],this.updateStrings=this.updateStrings.bind(this)}initialize(){this.registerCollection("settings","Settings",r),E.on("strings-updated",this.updateStrings)}registerCollection(e,t,s,n=null){if(this.collections.find(t=>t.id==e))return c.error("Settings","Already have a collection with id "+e);this.collections.push({type:"collection",id:e,name:t,settings:s,button:n}),this.setupCollection(e),this.loadCollection(e),this.updateStrings()}removeCollection(e){const t=this.collections.findIndex(t=>t.id==e);if(!t<0)return c.error("Settings","No collection with id "+e);this.collections.splice(t,1)}registerPanel(e,t,s){if(this.panels.find(t=>t.id==e))return c.error("Settings","Already have a panel with id "+e);const{element:n,onClick:i,order:o=1}=s,r={id:e,order:o,label:t,section:e};i&&(r.clickListener=i),n&&(r.element=n instanceof f.React.Component?()=>f.React.createElement(n,{}):"function"==typeof n?n:()=>n),this.panels.push(r)}removePanel(e){const t=this.panels.findIndex(t=>t.id==e);if(!t<0)return c.error("Settings","No collection with id "+e);this.panels.splice(t,1)}getPath(e,t="",s=""){return{collection:3==e.length?e[0]:t,category:3==e.length?e[1]:2==e.length?e[0]:s,setting:e[e.length-1]}}setupCollection(e){const t=this.collections.find(t=>t.id==e);if(!t)return;const s=t.settings;this.state[t.id]||(this.state[t.id]={});for(let e=0;e{const e=this.state[o.collection][o.category][o.setting];return s.enableWith?!e:e}})}}}}saveSettings(){for(const e in this.state)this.saveCollection(e)}loadSettings(){for(const e in this.state)this.loadCollection(e)}saveCollection(e){w.setData(e,this.state[e])}loadCollection(e){const t=w.getData(e);if(!t)return this.saveCollection(e);for(const s in this.state[e]){t[s]||Object.assign(t,{[s]:this.state[e][s]});for(const n in this.state[e][s]){if(null==t[s][n])continue;const i=this.getSetting(e,s,n);if("switch"==i.type&&(this.state[e][s][n]=t[s][n]),"dropdown"==i.type){i.options.some(e=>e.value==t[s][n])&&(this.state[e][s][n]=t[s][n])}}}this.saveCollection(e)}onSettingChange(e,t,s,n){this.state[e][t][s]=n,E.dispatch("setting-updated",e,t,s,n),this.saveCollection(e)}getSetting(e,t,s){return 2==arguments.length?this.collections[0].find(e=>e.id==arguments[0]).settings.find(e=>e.id==arguments[1]):this.collections.find(t=>t.id==e).settings.find(e=>e.id==t).settings.find(e=>e.id==s)}get(e,t,s){return 2==arguments.length&&(s=t,t=e,e="settings"),!(!this.state[e]||!this.state[e][t])&&this.state[e][t][s]}set(e,t,s,n){return 3==arguments.length&&(n=s,s=t,t=e,e="settings"),this.onSettingChange(e,t,s,n)}on(e,t,s,n){const i=(i,o,r,a)=>{i===e&&o===t&&r===s&&n(a)};return E.on("setting-updated",i),()=>{E.off("setting-updated",i)}}updateStrings(){for(let e=0;e"before"===e.type))try{t.callback(this,arguments)}catch(s){c.err("Patcher",`Could not fire before callback of ${e.functionName} for ${t.caller}`,s)}const s=e.children.filter(e=>"instead"===e.type);if(s.length)for(const n of s)try{const s=n.callback(this,arguments,e.originalFunction.bind(this));void 0!==s&&(t=s)}catch(t){c.err("Patcher",`Could not fire instead callback of ${e.functionName} for ${n.caller}`,t)}else t=e.originalFunction.apply(this,arguments);for(const s of e.children.filter(e=>"after"===e.type))try{const e=s.callback(this,arguments,t);void 0!==e&&(t=e)}catch(t){c.err("Patcher",`Could not fire after callback of ${e.functionName} for ${s.caller}`,t)}return t}}static rePatch(e){e.proxyFunction=e.module[e.functionName]=this.makeOverride(e)}static makePatch(e,t,s){const n={name:s,module:e,functionName:t,originalFunction:e[t],proxyFunction:null,revert:()=>{n.module[n.functionName]=n.originalFunction,n.proxyFunction=null,n.children=[]},counter:0,children:[]};return n.proxyFunction=e[t]=this.makeOverride(n),this.patches.push(n),n}static before(e,t,s,n,i={}){return this.pushChildPatch(e,t,s,n,Object.assign(i,{type:"before"}))}static after(e,t,s,n,i={}){return this.pushChildPatch(e,t,s,n,Object.assign(i,{type:"after"}))}static instead(e,t,s,n,i={}){return this.pushChildPatch(e,t,s,n,Object.assign(i,{type:"instead"}))}static pushChildPatch(e,t,s,n,i={}){const{type:o="after",forcePatch:r=!0}=i,a=this.resolveModule(t);if(!a)return null;if(!a[s]&&r&&(a[s]=function(){}),!(a[s]instanceof Function))return null;"string"==typeof t&&(i.displayName=t);const l=`${i.displayName||a.displayName||a.name||a.constructor.displayName||a.constructor.name}.${s}`,d=this.patches.find(e=>e.module==a&&e.functionName==s)||this.makePatch(a,s,l);d.proxyFunction||this.rePatch(d);const c={caller:e,type:o,id:d.counter,callback:n,unpatch:()=>{if(d.children.splice(d.children.findIndex(e=>e.id===c.id&&e.type===o),1),d.children.length<=0){const e=this.patches.findIndex(e=>e.module==a&&e.functionName==s);this.patches[e].revert(),this.patches.splice(e,1)}}};return d.children.push(c),d.counter++,c.unpatch}}const j=f.React,B={},I=new Set,z=new Set;var F=new class{get named(){return B}get unknown(){return I}get listeners(){return z}constructor(){L.after("ReactComponents",j,"createElement",(e,t,s)=>{this.walkRenderTree(s)}),L.instead("ReactComponents",j.Component.prototype,"componentWillMount",e=>{this.addComponent(e.constructor)}),L.instead("ReactComponents",j.Component.prototype,"UNSAFE_componentWillMount",e=>{this.addComponent(e.constructor)}),L.instead("ReactComponents",j.PureComponent.prototype,"componentWillMount",e=>{this.addComponent(e.constructor)}),L.instead("ReactComponents",j.PureComponent.prototype,"UNSAFE_componentWillMount",e=>{this.addComponent(e.constructor)})}initialize(){this.walkReactTree(document.querySelector("#app-mount")._reactRootContainer._internalRoot.current)}get(e,t){return new Promise(s=>{if(B[e])return s(B[e]);if(z.add({name:e,filter:t,resolve:s}),t)for(const s of I)t(s)&&(s.displayName=e,I.delete(s),this.addNamedComponent(s))})}addNamedComponent(e){const t=e.displayName;if(!B[t]){B[t]=e;for(const s of z)s.name===t&&(s.resolve(e),z.delete(s))}}addUnknownComponent(e){if(!I.has(e)){for(const t of z)t.filter&&t.filter(e)&&(e.displayName=t.name,this.addNamedComponent(e));e.displayName||I.add(e)}}addComponent(e){return e.displayName?this.addNamedComponent(e):this.addUnknownComponent(e)}walkRenderTree(e){if(e){if("function"==typeof e.type&&this.addComponent(e.type),Array.isArray(e))for(const t of e)this.walkRenderTree(t);e.props&&e.props.children&&this.walkRenderTree(e.props.children)}}walkReactTree(e){e&&("function"==typeof e.type&&this.addComponent(e.type),e.child&&this.walkReactTree(e.child),e.sibling&&this.walkReactTree(e.sibling))}};const O=f.React,R=f.ReactDOM,U=g.getByProps("sidebar","hasNotice").sidebar.split(" ")[0],H=g.getByProps("membersWrap").membersWrap.split(" ")[0];class q{static get shouldShowToasts(){return T.get("settings","general","showToasts")}static async success(e,t={}){return this.show(e,Object.assign(t,{type:"success"}))}static async info(e,t={}){return this.show(e,Object.assign(t,{type:"info"}))}static async warning(e,t={}){return this.show(e,Object.assign(t,{type:"warning"}))}static async error(e,t={}){return this.show(e,Object.assign(t,{type:"error"}))}static async default(e,t={}){return this.show(e,Object.assign(t,{type:""}))}static show(e,t={}){const{type:s="",icon:n=!0,timeout:i=3e3,forceShow:o=!1}=t;if(!this.shouldShowToasts&&!o)return;this.ensureContainer();const r=document.createElement("div");r.classList.add("bd-toast"),s&&r.classList.add("toast-"+s),s&&n&&r.classList.add("icon"),r.innerText=e,document.querySelector(".bd-toasts").appendChild(r),setTimeout(()=>{r.classList.add("closing"),setTimeout(()=>{r.remove(),document.querySelectorAll(".bd-toasts .bd-toast").length||document.querySelector(".bd-toasts").remove()},300)},i)}static ensureContainer(){if(document.querySelector(".bd-toasts"))return;const e=document.querySelector(`.${U} + div`),t=e.querySelector("."+H),s=e?e.querySelector("form"):null,n=e?e.getBoundingClientRect().left:310,i=t?t.getBoundingClientRect().left:0,o=i?i-e.getBoundingClientRect().left:e.offsetWidth,r=s?s.offsetHeight:80,a=document.createElement("div");a.classList.add("bd-toasts"),a.style.setProperty("left",n+"px"),a.style.setProperty("width",o+"px"),a.style.setProperty("bottom",r+"px"),C.bdBody.appendChild(a)}}class W{static get shouldShowAddonErrors(){return T.get("settings","addons","addonErrors")}static get ModalActions(){return g.getByProps("openModal","updateModal")}static get ModalStack(){return g.getByProps("push","update","pop","popWithKey")}static get AlertModal(){return g.getByPrototypes("handleCancel","handleSubmit","handleMinorConfirm")}static get TextElement(){return g.getByProps("Sizes","Weights")}static get ConfirmationModal(){return g.findByDisplayName("ConfirmModal")}static get Markdown(){return g.findByDisplayName("Markdown")}static default(e,t){const s=h.createElement(``);s.querySelector(".footer button").addEventListener("click",()=>{s.classList.add("closing"),setTimeout(()=>{s.remove()},300)}),s.querySelector(".bd-backdrop").addEventListener("click",()=>{s.classList.add("closing"),setTimeout(()=>{s.remove()},300)}),document.querySelector("#app-mount").append(s)}static alert(e,t){this.showConfirmationModal(e,t,{cancelText:""})}static showConfirmationModal(e,t,s={}){const n=this.Markdown,i=this.ConfirmationModal,o=this.ModalActions;if(t instanceof A&&(t=t.toString()),!this.ModalActions||!this.ConfirmationModal||!this.Markdown)return this.default(e,t);const r=()=>{},{onConfirm:a=r,onCancel:l=r,confirmText:d=k.Modals.okay,cancelText:c=k.Modals.cancel,danger:h=!1,key:u}=s;return Array.isArray(t)||(t=[t]),t=t.map(e=>"string"==typeof e?O.createElement(n,null,e):e),o.openModal(s=>O.createElement(i,Object.assign({header:e,red:h,confirmText:d,cancelText:c,onConfirm:a,onCancel:l},s),t),{modalKey:u})}static showAddonErrors({plugins:e=[],themes:t=[]}){if(!e||!t||!this.shouldShowAddonErrors)return;if(!e.length&&!t.length)return;const s=h.createElement(`\n
\n
\n
\n \n
\n
\n
\n
${k.Panels.plugins}
\n
${k.Panels.themes}
\n
\n
\n \n
\n
\n \n
\n
\n
`),n=function(e){const t=h.createElement('');for(const s of e){const e=h.createElement(`
\n
${s.name?s.name:s.file}
\n
${s.message}
\n
\n
`);t.append(e),s.error&&e.querySelectorAll("a").forEach(e=>e.addEventListener("click",e=>{e.preventDefault(),c.stacktrace("AddonError",`Error details for ${s.name?s.name:s.file}.`,s.error)}))}return t},i=[n(e),n(t)];s.querySelectorAll(".tab-bar-item").forEach(e=>e.addEventListener("click",e=>{e.preventDefault();const t=s.querySelector(".tab-bar-item.selected");t&&h.removeClass(t,"selected"),h.addClass(e.target,"selected");const n=s.querySelector(".scroller");n.innerHTML="",n.append(i[h.index(e.target)])})),s.querySelector(".footer button").addEventListener("click",()=>{h.addClass(s,"closing"),setTimeout(()=>{s.remove()},300)}),s.querySelector(".bd-backdrop").addEventListener("click",()=>{h.addClass(s,"closing"),setTimeout(()=>{s.remove()},300)}),h.query("#app-mount").append(s),e.length?s.querySelector(".tab-bar-item").click():s.querySelectorAll(".tab-bar-item")[1].click()}static showChangelogModal(e={}){const t=g.getByProps("push","update","pop","popWithKey"),s=g.getByProps("fixed","improved"),n=g.findByDisplayName("Text"),o=g.getByProps("Child"),r=g.getByProps("Tags","default"),a=g.getModule(e=>e.defaultProps&&0==e.defaultProps.selectable),l=g.getByProps("defaultRules","parse");if(!(a&&t&&s&&n&&o&&r&&l))return c.warn("Modals","showChangelogModal missing modules");const{image:d="https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5",description:h="",changes:u=[],title:p="BandagedBD",subtitle:m="v"+i.bbdVersion,footer:y}=e,b=O.createElement,v=[b("img",{src:d})];h&&v.push(b("p",null,l.parse(h)));for(let e=0;e
b("li",null,l.parse(e))));v.push(o)}return t.push(a,{className:s.container,selectable:!0,onScroll:e=>e,onClose:e=>e,renderHeader:function(){return b(o.Child,{grow:1,shrink:1},b(r.default,{tag:r.Tags.H4},p),b(n,{size:n.Sizes.SMALL,color:n.Colors.STANDARD,className:s.date},m))},renderFooter:()=>{const e=g.getModule(e=>"Anchor"==e.displayName),s=g.getByProps("anchorUnderlineOnHover")||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"},i=e=>{e.preventDefault(),e.stopPropagation(),t.pop(),f.InviteActions.acceptInviteAndTransitionToInviteChannel("2HScm8j")},r=e?b(e,{onClick:i},"Join our Discord Server."):b("a",{className:`${s.anchor} ${s.anchorUnderlineOnHover}`,onClick:i},"Join our Discord Server."),a=b(n,{size:n.Sizes.SMALL,color:n.Colors.STANDARD},"Need support? ",r);return b(o.Child,{grow:1,shrink:1},y||a)},children:v})}}class _ extends Error{constructor(e,t,s,n){super(s),this.name=e,this.file=t,this.error=n}}class G extends Error{constructor(e){super(e),this.name="MetaError"}}class Q extends O.Component{constructor(e){super(e),this.onClick=this.onClick.bind(this),this.state={checked:this.props.checked||!1}}render(){return O.createElement("div",{className:"checkbox-item"},O.createElement("div",{className:"checkbox-label label-JWQiNe da-label"},this.props.text),O.createElement("div",{className:"checkbox-wrapper checkbox-3kaeSU da-checkbox checkbox-3EVISJ da-checkbox",onClick:this.onClick},O.createElement("div",{className:"checkbox-inner checkboxInner-3yjcPe da-checkboxInner"},O.createElement("input",{className:"checkbox checkboxElement-1qV33p da-checkboxElement",checked:this.state.checked,type:"checkbox"}),O.createElement("span",null)),O.createElement("span",null)))}onClick(){this.props.onChange(!this.state.checked),this.setState({checked:!this.state.checked})}}function V(){return(V=Object.assign||function(e){for(var t=1;t{for(const s of e){if(!(s.addedNodes.length&&s.addedNodes[0]instanceof Element))continue;const e=s.addedNodes[0];e.parentElement===document.body&&e.querySelector("#ace_settingsmenu")&&(e.id="ace_settingsmenu_container",t.disconnect())}});t.observe(document.body,{childList:!0})};const t=this.props.theme==K.defaultProps.theme?this.props.theme.split("-")[1]:this.props.theme;this.editor.setTheme("ace/theme/"+t),this.editor.session.setMode("ace/mode/"+this.props.language),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(this.props.fontSize),this.editor.on("change",this.onChange)}componentWillUnmount(){this.editor.destroy()}get value(){return this.editor.session.getValue()}set value(e){this.editor.setValue(e)}onChange(){this.props.onChange&&this.props.onChange(this.value)}showSettings(){return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor)}resize(){return this.editor.resize()}buildControl(e){return"checkbox"==e.type?this.makeCheckbox(e):this.makeButton(e)}makeCheckbox(e){return O.createElement(Q,{text:e.label,onChange:e.onChange,checked:e.checked})}makeButton(e){return O.createElement(Z,{color:"black",position:"top",text:e.tooltip},t=>O.createElement("button",V({},t,{className:"btn btn-primary",onClick:t=>{e.onClick(t,this.value)}}),e.label))}render(){this.editor&&this.editor.resize&&this.editor.resize();const e=this.props.controls.filter(e=>"right"!=e.side).map(this.buildControl.bind(this)),t=this.props.controls.filter(e=>"right"==e.side).map(this.buildControl.bind(this));return O.createElement("div",{id:"bd-editor-panel",className:this.props.theme},O.createElement("div",{id:"bd-editor-controls"},O.createElement("div",{className:"controls-section controls-left"},e),O.createElement("div",{className:"controls-section controls-right"},t)),O.createElement("div",{className:"editor-wrapper"},O.createElement("div",{id:this.props.id,className:"editor "+this.props.theme},this.props.value)))}}class X extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z"}))}}class ee extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{viewBox:"0 0 24 24",fill:"#FFFFFF",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),O.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}}class te extends O.Component{render(){const e=this.props.size||"20px";return O.createElement("svg",{viewBox:"0 0 20 20",style:{width:e,height:e}},O.createElement("path",{fill:"none",d:"M0 0h20v20H0V0z"}),O.createElement("path",{d:"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"}))}}class se extends O.Component{constructor(e){super(e),this.hasUnsavedChanges=!1,this.onChange=this.onChange.bind(this),this.save=this.save.bind(this),this.openNative=this.openNative.bind(this),this.update=this.update.bind(this),this.controls=[{label:O.createElement(X,{size:"18px"}),tooltip:k.CustomCSS.save,onClick:this.save},{label:O.createElement(ee,{size:"18px"}),tooltip:k.CustomCSS.openNative,onClick:this.openNative},{label:O.createElement(te,{size:"18px"}),tooltip:k.CustomCSS.settings,onClick:"showSettings"}]}update(){this.forceUpdate()}updateEditor(e){this.editor&&(this.editor.value=e)}get value(){return this.editor.session.getValue()}set value(e){this.editor.setValue(e)}showSettings(){return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor)}resize(){return this.editor.resize()}setEditorRef(e){this.editor=e,this.props.editorRef&&void 0!==this.props.editorRef.current?this.props.editorRef.current=e:this.props.editorRef&&(this.props.editorRef=e)}render(){return O.createElement(K,{ref:this.setEditorRef.bind(this),language:this.props.language,id:this.props.id||"bd-addon-editor",controls:this.controls,value:this.props.content,onChange:this.onChange})}onChange(){this.hasUnsavedChanges=!0}save(e,t){this.hasUnsavedChanges=!1,this.props.save&&this.props.save(t)}openNative(){this.props.openNative&&this.props.openNative()}}class ne{static get width(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)}static get height(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}}class ie extends O.Component{render(){return O.createElement("svg",{viewBox:"0 0 12 12",style:{width:"18px",height:"18px"}},O.createElement("g",{className:"background",fill:"none",fillRule:"evenodd"},O.createElement("path",{d:"M0 0h12v12H0"}),O.createElement("path",{className:"fill",fill:"#dcddde",d:"M9.5 3.205L8.795 2.5 6 5.295 3.205 2.5l-.705.705L5.295 6 2.5 8.795l.705.705L6 6.705 8.795 9.5l.705-.705L6.705 6"})))}}class oe extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"}))}}class re extends O.Component{constructor(e){super(e),this.state={modalOpen:!1},this.offX=0,this.offY=0,this.maxX=this.props.maxX||ne.width,this.maxY=this.props.maxY||ne.height,this.minX=this.props.minX||0,this.minY=this.props.minY||0,this.titlebar=O.createRef(),this.window=O.createRef(),this.close=this.close.bind(this),this.maximize=this.maximize.bind(this),this.onDrag=this.onDrag.bind(this),this.onDragStart=this.onDragStart.bind(this),this.onDragStop=this.onDragStop.bind(this),this.onResizeStart=this.onResizeStart.bind(this)}componentDidMount(){this.window.current.addEventListener("mousedown",this.onResizeStart,!1),this.titlebar.current.addEventListener("mousedown",this.onDragStart,!1),document.addEventListener("mouseup",this.onDragStop,!1)}onResizeStart(){this.currentWidth=this.window.current.offsetWidth,this.currentHeight=this.window.current.offsetHeight}onDragStop(){document.removeEventListener("mousemove",this.onDrag,!0);const e=this.window.current.offsetWidth,t=this.window.current.offsetHeight;if(e!=this.currentWidth||t!=this.currentHeight){this.props.onResize&&this.props.onResize();const s=parseInt(this.window.current.style.left),n=parseInt(this.window.current.style.top);s+e>=this.maxX&&(this.window.current.style.width=this.maxX-s+"px"),n+t>=this.maxY&&(this.window.current.style.height=this.maxY-n+"px")}this.currentWidth=e,this.currentHeight=t}onDragStart(e){const t=this.window.current;this.offY=e.clientY-parseInt(t.offsetTop),this.offX=e.clientX-parseInt(t.offsetLeft),document.addEventListener("mousemove",this.onDrag,!0)}onDrag(e){const t=this.window.current;let s=e.clientY-this.offY;s<=this.minY&&(s=this.minY),s+this.currentHeight>=this.maxY&&(s=this.maxY-this.currentHeight);let n=e.clientX-this.offX;n<=this.minX&&(n=this.minX),n+this.currentWidth>=this.maxX&&(n=this.maxX-this.currentWidth),t.style.top=s+"px",t.style.left=n+"px"}componentWillUnmount(){this.titlebar.current.removeEventListener("mousedown",this.onDragStart,!1),document.removeEventListener("mouseup",this.onDragStop,!1)}render(){const e=this.props.center?ne.height/2-this.props.height/2:this.props.top,t=this.props.center?ne.width/2-this.props.width/2:this.props.left,s=`floating-window${" "+this.props.className||""}${this.props.resizable?" resizable":""}${this.state.modalOpen?" modal-open":""}`,n={height:this.props.height,width:this.props.width,left:t||0,top:e||0};return O.createElement("div",{id:this.props.id,className:s,ref:this.window,style:n},O.createElement("div",{className:"floating-window-titlebar",ref:this.titlebar},O.createElement("span",{className:"title"},this.props.title),O.createElement("div",{className:"floating-window-buttons"},O.createElement("div",{className:"button maximize-button",onClick:this.maximize},O.createElement(oe,{size:"18px"})),O.createElement("div",{className:"button close-button",onClick:this.close},O.createElement(ie,null)))),O.createElement("div",{className:"floating-window-content"},this.props.children))}maximize(){this.window.current.style.width="100%",this.window.current.style.height="100%",this.props.onResize&&this.props.onResize();const e=this.window.current.offsetWidth,t=this.window.current.offsetHeight,s=parseInt(this.window.current.style.left)+e;parseInt(this.window.current.style.top)+t>this.maxY&&(this.window.current.style.top=this.maxY-t+"px"),s>this.maxX&&(this.window.current.style.left=this.maxX-e+"px");const n=parseInt(this.window.current.style.left),i=parseInt(this.window.current.style.top);if(i{W.showConfirmationModal(k.Modals.confirmAction,this.props.confirmationText,{danger:!0,confirmText:k.Modals.close,onConfirm:()=>{e(!0)},onCancel:()=>{e(!1)}})})}}function ae(){return(ae=Object.assign||function(e){for(var t=1;t div[class*="app-"]');return e?e.offsetTop:0}render(){return this.state.windows.map(e=>O.createElement(re,ae({},e,{close:this.close.bind(this,e.id),minY:this.minY}),e.children))}open(e){this.setState({windows:[...this.state.windows,e]})}close(e){this.setState({windows:this.state.windows.filter(t=>(t.id==e&&t.onClose&&t.onClose(),t.id!=e))})}static get id(){return"floating-windows"}static get root(){if(this._root)return this._root;const e=document.createElement("div");return e.id=this.id,document.body.append(e),this._root=e}}var de=le;class ce{static initialize(){const e=O.createRef(),t=O.createElement(de,{ref:e}),s=O.createElement(g.getByProps("AppReferencePositionLayer").AppLayerProvider().props.layerContext.Provider,{value:[document.querySelector("#app-mount > .layerContainer-yqaFcK")]},t),n=h.createElement('');C.bdBody.append(n),R.render(s,n),this.ref=e}static open(e){return this.ref||this.initialize(),this.ref.current.open(e)}}const he=f.React,ue=s(1),pe=s(2),me=s(4).Module;me.globalPaths.push(ue.resolve(s(0).remote.app.getAppPath(),"node_modules"));const ge=/[^\S\r\n]*?\r?(?:\r\n|\n)[^\S\r\n]*?\*[^\S\r\n]?/,fe=/^\\@/,ye=function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e};class be{get name(){return""}get moduleExtension(){return""}get extension(){return""}get addonFolder(){return""}get language(){return""}get prefix(){return"addon"}get collection(){return"settings"}get category(){return"addons"}get id(){return"autoReload"}emit(e,...t){return E.emit(`${this.prefix}-${e}`,...t)}constructor(){this.timeCache={},this.addonList=[],this.state={}}initialize(){return this.originalRequire=me._extensions[this.moduleExtension],me._extensions[this.moduleExtension]=this.getAddonRequire(),T.on(this.collection,this.category,this.id,e=>{e?this.watchAddons():this.unwatchAddons()}),this.loadAllAddons()}initializeAddon(){}getFileModification(e,t){return t}startAddon(){}stopAddon(){}loadState(){const e=w.getData(this.prefix+"s");e&&Object.assign(this.state,e)}saveState(){w.setData(this.prefix+"s",this.state)}watchAddons(){if(this.watcher)return c.error(this.name,`Already watching ${this.prefix} addons.`);c.log(this.name,`Starting to watch ${this.prefix} addons.`),this.watcher=pe.watch(this.addonFolder,{persistent:!1},async(e,t)=>{if(e&&t&&t.endsWith(this.extension)){await new Promise(e=>setTimeout(e,100));try{const s=pe.statSync(ue.resolve(this.addonFolder,t));if(!s.isFile())return;if(!s||!s.mtime||!s.mtime.getTime())return;if("number"!=typeof s.mtime.getTime())return;if(this.timeCache[t]==s.mtime.getTime())return;this.timeCache[t]=s.mtime.getTime(),"rename"==e&&this.loadAddon(t,!0),"change"==e&&this.reloadAddon(t,!0)}catch(e){if("ENOENT"!==e.code)return;delete this.timeCache[t],this.unloadAddon(t,!0)}}})}unwatchAddons(){if(!this.watcher)return c.error(this.name,`Was not watching ${this.prefix} addons.`);this.watcher.close(),delete this.watcher,c.log(this.name,`No longer watching ${this.prefix} addons.`)}extractMeta(e){const t=e.split("\n")[0];if(t.includes("//META"))return this.parseOldMeta(e);if(t.includes("/**"))return this.parseNewMeta(e);throw new G("META was not found.")}parseOldMeta(e){const t=e.split("\n")[0],s=t.substring(t.lastIndexOf("//META")+6,t.lastIndexOf("*//")),n=u.testJSON(s);if(!n)throw new G("META could not be parsed.");if(!n.name)throw new G("META missing name data.");return n.format="json",n}parseNewMeta(e){const t=e.split("/**",2)[1].split("*/",1)[0],s={};let n="",i="";for(const e of t.split(ge))if(0!==e.length)if("@"===e.charAt(0)&&" "!==e.charAt(1)){s[n]=i;const t=e.indexOf(" ");n=e.substr(1,t-1),i=e.substr(t+1)}else i+=" "+e.replace("\\n","\n").replace(fe,"@");return s[n]=i.trim(),delete s[""],s.format="jsdoc",s}getAddonRequire(){const e=this,t=this.originalRequire;return function(s,n){const i=ue.resolve(e.addonFolder,ue.basename(n));if(!pe.existsSync(i)||n!==pe.realpathSync(i))return Reflect.apply(t,this,arguments);let o=pe.readFileSync(n,"utf8");o=ye(o);const r=pe.statSync(n),a=e.extractMeta(o);a.author||(a.author=k.Addons.unknownAuthor),a.version||(a.version="???"),a.description||(a.description=k.Addons.noDescription),a.id=a.name,a.filename=ue.basename(n),a.added=r.atimeMs,a.modified=r.mtimeMs,a.size=r.size,o=e.getFileModification(s,o,a),s._compile(o,n)}}loadAddon(e,t=!1){if(void 0===e)return;try{require(ue.resolve(this.addonFolder,e))}catch(n){return new _(e,e,"Could not be compiled.",{message:n.message,stack:n.stack})}const s=require(ue.resolve(this.addonFolder,e));if(this.addonList.find(e=>e.id==s.id))return new _(s.name,e,"There is already a plugin with name "+s.name);const n=this.initializeAddon(s);return n||(this.addonList.push(s),t&&q.success(`${s.name} v${s.version} was loaded.`),this.emit("loaded",s.id),this.state[s.id]?this.startAddon(s):this.state[s.id]=!1)}unloadAddon(e,t=!0,s=!1){const n="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e;return!!n&&(this.state[n.id]&&(s?this.stopAddon(n):this.disableAddon(n)),delete require.cache[require.resolve(ue.resolve(this.addonFolder,n.filename))],this.addonList.splice(this.addonList.indexOf(n),1),this.emit("unloaded",n.id),t&&q.success(n.name+" was unloaded."),!0)}reloadAddon(e,t=!0){const s="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e,n=this.unloadAddon(s,t,!0);return n?this.loadAddon(s.filename,t):n}isLoaded(e){return!!this.addonList.find(t=>t.id==e||t.filename==e)}isEnabled(e){const t=this.addonList.find(t=>t.id==e||t.filename==e);return!!t&&this.state[t.id]}getAddon(e){return this.addonList.find(t=>t.id==e||t.filename==e)}enableAddon(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&(this.state[t.id]||(this.state[t.id]=!0,this.startAddon(t),this.saveState()))}disableAddon(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&this.state[t.id]&&(this.state[t.id]=!1,this.stopAddon(t),this.saveState())}toggleAddon(e){this.state[e]?this.disableAddon(e):this.enableAddon(e)}loadNewAddons(){const e=pe.readdirSync(this.addonFolder),t=this.addonList.filter(t=>!e.includes(t.filename)).map(e=>e.id);return{added:e.filter(e=>!this.addonList.find(t=>t.filename==e)&&e.endsWith(this.extension)&&pe.statSync(ue.resolve(this.addonFolder,e)).isFile()),removed:t}}updateList(){const e=this.loadNewAddons();for(const t of e.added)this.loadAddon(t);for(const t of e.removed)this.unloadAddon(t)}loadAllAddons(){this.loadState();const e=[],t=pe.readdirSync(this.addonFolder);for(const s of t){if(!pe.statSync(ue.resolve(this.addonFolder,s)).isFile()||!s.endsWith(this.extension))continue;const t=this.loadAddon(s,!1);t instanceof _&&e.push(t)}return this.saveState(),T.get(this.collection,this.category,this.id)&&this.watchAddons(),e}deleteAddon(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e;return pe.unlinkSync(ue.resolve(this.addonFolder,t.filename))}saveAddon(e,t){const s="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e;return pe.writeFileSync(ue.resolve(this.addonFolder,s.filename),t)}editAddon(e,t){const n="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e,i=ue.resolve(this.addonFolder,n.filename);return void 0===t&&(t="system"==T.get("settings","addons","editAction")),t?s(0).shell.openItem(""+i):this.openDetached(n)}openDetached(e){const t=ue.resolve(this.addonFolder,e.filename),s=pe.readFileSync(t).toString(),n=he.createRef(),i=he.createElement(se,{id:"bd-floating-editor-"+e.name,ref:n,content:s,save:this.saveAddon.bind(this,e),openNative:this.editAddon.bind(this,e,!0),language:this.language});ce.open({onClose:()=>{this.isDetached=!1},onResize:()=>{n&&n.current&&n.current.resize&&n.current.resize()},title:e.name,id:s.id,className:"floating-addon-window",height:470,width:410,center:!0,resizable:!0,children:i,confirmClose:()=>!(!n||!n.current)&&n.current.hasUnsavedChanges,confirmationText:k.Addons.confirmationText.format({name:e.name})})}}class ve extends O.Component{constructor(e){super(e)}render(){const e=this.props.isGroup?"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":"bd-settings-title h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi defaultColor-1_ajX0 defaultMarginh2-2LTaUL marginBottom20-32qID7",t=this.props.className?`${e} ${this.props.className}`:e;return O.createElement("h2",{className:t,onClick:()=>{this.props.onClick&&this.props.onClick()}},this.props.text,this.props.button&&O.createElement("button",{className:"bd-button bd-button-title",onClick:this.props.button.onClick},this.props.button.title),this.props.otherChildren)}}class we extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{className:this.props.className||"",onClick:this.props.onClick,fill:"#dcddde",viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{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"}),O.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}class Ce extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"}),O.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}class Se extends O.Component{constructor(e){super(e),this.state={checked:this.props.checked},this.onChange=this.onChange.bind(this)}onChange(){this.props.disabled||(this.props.onChange(!this.state.checked),this.setState({checked:!this.state.checked}))}render(){const e=this.props.disabled?" bd-switch-disabled":"",t=this.state.checked?" bd-switch-checked":"";return O.createElement("div",{className:"bd-switch"+e+t},O.createElement("input",{type:"checkbox",id:this.props.id,className:"bd-checkbox",disabled:this.props.disabled,checked:this.state.checked,onChange:this.onChange}))}}class Ee extends O.Component{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?O.createElement("div",{className:"react-error"},"Component Error"):this.props.children}}const Me=Ee.prototype.render;function xe(){return(xe=Object.assign||function(e){for(var t=1;t
Me});const Ne=g.getByDisplayName("Tooltip");class Pe extends O.Component{constructor(e){super(e),this.state={settingsOpen:!1},this.settingsPanel="",this.panelRef=O.createRef(),this.onChange=this.onChange.bind(this),this.reload=this.reload.bind(this),this.showSettings=this.showSettings.bind(this),this.closeSettings=this.closeSettings.bind(this)}reload(){this.props.reload&&(this.props.addon=this.props.reload(this.props.addon.id),this.forceUpdate())}componentDidUpdate(){this.state.settingsOpen&&(this.settingsPanel instanceof Node&&this.panelRef.current.appendChild(this.settingsPanel),setImmediate(()=>{const e=this.panelRef.current,t=e.closest(".scrollerBase-289Jih");if(!t||!((e,t)=>{const s=e.scrollTop,n=s+e.clientHeight,i=t.offsetTop,o=i+t.clientHeight;return in})(t,e))return;const s=h.offset(e),n=h.offset(t),i=t.scrollTop,o=s.top-n.top+t.scrollTop-30;h.animate({duration:300,update:function(e){t.scrollTop=o>i?i+e*(o-i):i-e*(i-o)}})}))}getString(e){return"string"==typeof e?e:e.toString()}onChange(){this.props.onChange&&this.props.onChange(this.props.addon.id),this.props.enabled=!this.props.enabled,this.forceUpdate()}showSettings(){this.props.hasSettings&&this.setState({settingsOpen:!0})}closeSettings(){this.settingsPanel instanceof Node&&(this.panelRef.current.innerHTML=""),this.setState({settingsOpen:!1})}buildTitle(e,t,s){const n=k.Addons.title.split(/({{[A-Za-z]+}})/),i=n.findIndex(e=>"{{name}}"==e);i&&(n[i]=O.createElement("span",{className:"bd-name"},e));const o=n.findIndex(e=>"{{version}}"==e);i&&(n[o]=O.createElement("span",{className:"bd-version"},t));const r=n.findIndex(e=>"{{author}}"==e);return i&&(n[r]=O.createElement("span",{className:"bd-author"},s)),n.flat()}get settingsComponent(){const e=this.props.addon,t=this.getString(e.name);try{this.settingsPanel=this.props.getSettingsPanel()}catch(e){c.stacktrace("Addon Settings","Unable to get settings panel for "+t+".",e)}const s={id:t+"-settings",className:"addon-settings",ref:this.panelRef};"string"==typeof settingsPanel&&(c.warn("Addon Settings","Using a DOMString is officially deprecated."),s.dangerouslySetInnerHTML=this.settingsPanel);let n=null;return"function"==typeof this.settingsPanel&&(n=O.createElement(this.settingsPanel,null)),this.settingsPanel.$$typeof&&this.settingsPanel.$$typeof===Symbol.for("react.element")&&(n=this.settingsPanel),O.createElement("div",{className:"bd-addon-card settings-open bd-switch-item"},O.createElement("div",{className:"bd-close",onClick:this.closeSettings},O.createElement(ie,null)),O.createElement("div",s,O.createElement(Ee,null,n)))}buildLink(e){const t=this.props.addon[e];if(!t)return null;const s=O.createElement("a",{className:"bd-link bd-link-website",href:t,target:"_blank",rel:"noopener noreferrer"},k.Addons[e]);return"invite"==e&&(s.props.onClick=function(e){e.preventDefault(),e.stopPropagation();let s=t;const n=/\.gg\/(.*)$/;n.test(s)&&(s=s.match(n)[1]),f.LayerStack.popLayer(),f.InviteActions.acceptInviteAndTransitionToInviteChannel(s)}),s}get footer(){const e=["website","source","invite","donate","patreon"];if(!e.some(e=>this.props.addon[e])&&!this.props.hasSettings)return null;const t=e.map(this.buildLink.bind(this)).filter(e=>e);return O.createElement("div",{className:"bd-footer"},O.createElement("span",{className:"bd-links"},t.map((e,s)=>sO.createElement("div",xe({},e,{className:"bd-addon-button",onClick:s}),t))}render(){if(this.state.settingsOpen)return this.settingsComponent;const e=this.props.addon,t=this.getString(e.name),s=this.getString(e.author),n=this.getString(e.description),i=this.getString(e.version);return O.createElement("div",{id:e.id+"-card",className:"bd-addon-card settings-closed"},O.createElement("div",{className:"bd-addon-header"},O.createElement("span",{className:"bd-title"},this.buildTitle(t,i,s)),O.createElement("div",{className:"bd-controls"},this.props.editAddon&&this.makeButton(k.Addons.editAddon,O.createElement(ee,null),this.props.editAddon),this.props.deleteAddon&&this.makeButton(k.Addons.deleteAddon,O.createElement(Ce,null),this.props.deleteAddon),this.props.showReloadIcon&&this.makeButton(k.Addons.reload,O.createElement(we,{className:"bd-reload bd-reload-card"}),this.reload),O.createElement(Se,{checked:this.props.enabled,onChange:this.onChange}))),O.createElement("div",{className:"bd-description-wrap scroller-wrap fade"},O.createElement("div",{className:"bd-description scroller"},n)),this.footer)}}const De=Pe.prototype.render;Object.defineProperty(Pe.prototype,"render",{enumerable:!1,configurable:!1,set:function(){c.warn("AddonCard","Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>De});class Ae extends O.Component{render(){const e=this.props.size||"16px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{d:"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z"}))}}class ke extends O.Component{constructor(e){super(e),this.state={open:!1,value:this.props.value||this.props.options[0].value},this.dropdown=O.createRef(),this.onChange=this.onChange.bind(this),this.showMenu=this.showMenu.bind(this),this.hideMenu=this.hideMenu.bind(this)}showMenu(e){e.preventDefault(),this.setState({open:!0},()=>{document.addEventListener("click",this.hideMenu)})}hideMenu(){this.setState({open:!1},()=>{document.removeEventListener("click",this.hideMenu)})}onChange(e){this.setState({value:e}),this.props.onChange&&this.props.onChange(e)}get selected(){return this.props.options.find(e=>e.value==this.state.value)}get options(){const e=this.selected;return O.createElement("div",{className:"bd-select-options"},this.props.options.map(t=>O.createElement("div",{className:"bd-select-option"+(e.value==t.value?" selected":""),onClick:this.onChange.bind(this,t.value)},t.label)))}render(){const e="transparent"==this.props.style?" bd-select-transparent":"",t=this.state.open?" menu-open":"";return O.createElement("div",{className:`bd-select${e}${t}`,onClick:this.showMenu,ref:this.dropdown},O.createElement("div",{className:"bd-select-value"},this.selected.label),O.createElement(Ae,{className:"bd-select-arrow"}),this.state.open&&this.options)}}class Te extends O.Component{render(){const e=this.props.size||"16px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}))}}class Le extends O.Component{render(){return O.createElement("div",{className:"bd-search-wrapper"},O.createElement("input",{onChange:this.props.onChange,onKeyDown:this.props.onKeyDown,type:"text",className:"bd-search",placeholder:this.props.placeholder,maxLength:"50"}),O.createElement(Te,null))}}class je extends O.Component{constructor(e){super(e),this.state={sort:"name",ascending:!0,query:""},this.sort=this.sort.bind(this),this.reverse=this.reverse.bind(this),this.search=this.search.bind(this),this.update=this.update.bind(this)}componentDidMount(){E.on(this.props.prefix+"-loaded",this.update),E.on(this.props.prefix+"-unloaded",this.update)}componentWillUnmount(){E.off(this.props.prefix+"-loaded",this.update),E.off(this.props.prefix+"-unloaded",this.update)}update(){this.forceUpdate()}reload(){this.props.refreshList&&this.props.refreshList(),this.forceUpdate()}reverse(e){this.setState({ascending:e})}sort(e){this.setState({sort:e})}search(e){this.setState({query:e.target.value.toLocaleLowerCase()})}get sortOptions(){return[{label:k.Addons.name,value:"name"},{label:k.Addons.author,value:"author"},{label:k.Addons.version,value:"version"},{label:k.Addons.added,value:"added"},{label:k.Addons.modified,value:"modified"}]}get directions(){return[{label:k.Sorting.ascending,value:!0},{label:k.Sorting.descending,value:!1}]}render(){const{title:e,folder:t,addonList:n,addonState:i,onChange:o,reload:r}=this.props,a=!T.get("settings","addons","autoReload"),l=t?{title:k.Addons.openFolder.format({type:e}),onClick:()=>{const e=s(0).shell;(e.openItem||e.openPath)(t)}}:null,d=n.sort((e,t)=>{const s=e[this.state.sort],n=t[this.state.sort];return"string"==typeof s?s.toLocaleLowerCase().localeCompare(n.toLocaleLowerCase()):s>n?1:n>s?-1:0});return this.state.ascending||d.reverse(),[O.createElement(ve,{key:"title",text:e,button:l,otherChildren:a&&O.createElement(we,{className:"bd-reload",onClick:this.reload.bind(this)})}),O.createElement("div",{className:"bd-controls bd-addon-controls"},O.createElement(Le,{onChange:this.search,placeholder:k.Addons.search.format({type:this.props.title})+"..."}),O.createElement("div",{className:"bd-addon-dropdowns"},O.createElement("div",{className:"bd-select-wrapper"},O.createElement("label",{className:"bd-label"},k.Sorting.sortBy,":"),O.createElement(ke,{options:this.sortOptions,onChange:this.sort,style:"transparent"})),O.createElement("div",{className:"bd-select-wrapper"},O.createElement("label",{className:"bd-label"},k.Sorting.order,":"),O.createElement(ke,{options:this.directions,onChange:this.reverse,style:"transparent"})))),O.createElement("div",{key:"addonList",className:"bd-addon-list"},d.map(e=>{if(this.state.query){let t=e.name.toLocaleLowerCase().includes(this.state.query);if(t=t||e.author.toLocaleLowerCase().includes(this.state.query),t=t||e.description.toLocaleLowerCase().includes(this.state.query),!t)return null}const t=e.type&&"function"==typeof e.plugin.getSettingsPanel,s=t&&e.plugin.getSettingsPanel.bind(e.plugin);return O.createElement(Ee,null,O.createElement(Pe,{editAddon:this.editAddon.bind(this,e.id),deleteAddon:this.deleteAddon.bind(this,e.id),showReloadIcon:a,key:e.id,enabled:i[e.id],addon:e,onChange:o,reload:r,hasSettings:t,getSettingsPanel:s}))}))]}editAddon(e){this.props.editAddon&&this.props.editAddon(e)}async deleteAddon(e){const t=this.props.addonList.find(t=>t.id==e);await this.confirmDelete(t)&&this.props.deleteAddon&&this.props.deleteAddon(t)}confirmDelete(e){return new Promise(t=>{W.showConfirmationModal(k.Modals.confirmAction,k.Addons.confirmDelete.format({name:e.name}),{danger:!0,confirmText:k.Addons.deleteAddon,onConfirm:()=>{t(!0)},onCancel:()=>{t(!1)}})})}}const Be=je.prototype.render;Object.defineProperty(je.prototype,"render",{enumerable:!1,configurable:!1,set:function(){c.warn("AddonList","Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>Be});class Ie extends O.Component{render(){return O.createElement("div",{className:"bd-divider divider-3573oO marginTop8-1DLZ1n marginBottom40-2vIwTv"})}}class ze extends O.Component{render(){return O.createElement("div",{className:"bd-setting-item"},O.createElement("div",{className:"bd-setting-header"},O.createElement("label",{htmlFor:this.props.id,className:"bd-setting-title"},this.props.name),this.props.children),O.createElement("div",{className:"bd-setting-note"},this.props.note),O.createElement("div",{className:"bd-setting-divider"}))}}class Fe extends O.Component{constructor(e){if(super(e),this.props.button&&this.props.collapsible){const e=this.props.button.onClick;this.props.button.onClick=t=>{t.stopPropagation(),e(...arguments)}}this.props.hasOwnProperty("shown")||(this.props.shown=!0),this.container=O.createRef(),this.state={collapsed:this.props.collapsible&&!this.props.shown},this.onChange=this.onChange.bind(this),this.toggleCollapse=this.toggleCollapse.bind(this)}toggleCollapse(){const e=this.container.current,t=this.state.collapsed?300:1;e.style.setProperty("height",e.scrollHeight+"px"),e.classList.add("animating"),this.setState({collapsed:!this.state.collapsed},()=>setTimeout(()=>{e.style.setProperty("height",""),e.classList.remove("animating")},t)),this.props.onDrawerToggle&&this.props.onDrawerToggle(this.state.collapsed)}onChange(e,t){this.props.onChange&&(this.props.id?this.props.onChange(this.props.id,e,t):this.props.onChange(e,t),this.forceUpdate())}render(){const{settings:e}=this.props,t="bd-settings-group "+(this.props.collapsible?"collapsible "+(this.state.collapsed?"collapsed":"expanded"):"");return O.createElement("div",{className:t},O.createElement(ve,{text:this.props.name,collapsible:this.props.collapsible,onClick:this.toggleCollapse,button:this.props.button,isGroup:!0}),O.createElement("div",{className:"bd-settings-container",ref:this.container},e.filter(e=>!e.hidden).map(e=>{let t=null;return"dropdown"==e.type&&(t=O.createElement(ke,{disabled:e.disabled,id:e.id,options:e.options,value:e.value,onChange:this.onChange.bind(this,e.id)})),"switch"==e.type&&(t=O.createElement(Se,{disabled:e.disabled,id:e.id,checked:e.value,onChange:this.onChange.bind(this,e.id)})),t?O.createElement(ze,{id:e.id,key:e.id,name:e.name,note:e.note},t):null})),this.props.showDivider&&O.createElement(Ie,null))}}const Oe=Fe.prototype.render;Object.defineProperty(Fe.prototype,"render",{enumerable:!1,configurable:!1,set:function(){c.warn("Group","Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>Oe});class Re extends O.Component{render(){const e=this.props.size||"18px";return O.createElement("svg",{viewBox:"0 0 24 24",fill:"#FFFFFF",className:this.props.className||"",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),O.createElement("path",{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"}))}}function Ue(){return(Ue=Object.assign||function(e){for(var t=1;te.Header&&e.Separator&&e.Item),qe=g.getByDisplayName("Tooltip");class $e extends O.Component{constructor(e){super(e)}render(){return O.createElement("div",{className:"bd-sidebar-header"},O.createElement(He.Header,null,"BandagedBD"),O.createElement(qe,{color:"black",position:"top",text:"Changelog"},e=>O.createElement("div",Ue({},e,{className:"bd-changelog-button",onClick:()=>W.showChangelogModal(l)}),O.createElement(Re,{className:"bd-icon",size:"16px"}))))}}var We=new class{constructor(){this.patchSections(),E.on("strings-updated",this.forceUpdate)}onDrawerToggle(e,t,s){const n=w.getBDData("drawerStates")||{};n[e]||(n[e]={}),n[e][t]=s,w.setBDData("drawerStates",n)}getDrawerState(e,t,s){const n=w.getBDData("drawerStates")||{};return n[e]&&n[e].hasOwnProperty(t)?n[e][t]:s}onChange(e){return(t,s,n)=>{const i=T.collections.length+T.panels.length;e(t,s,n);i!=T.collections.length+T.panels.length&&setTimeout(this.forceUpdate.bind(this),50)}}buildSettingsPanel(e,t,s,n,i,o=null){return s.forEach(e=>{e.settings.forEach(t=>t.value=n[e.id][t.id])}),this.getSettingsPanel(e,t,s,this.onChange(i),o)}getSettingsPanel(e,t,s,n,i=null){return[O.createElement(ve,{text:t,button:i}),s.map(t=>O.createElement(Fe,Object.assign({},t,{onChange:n,onDrawerToggle:s=>this.onDrawerToggle(e,t.id,s),shown:this.getDrawerState(e,t.id,!t.hasOwnProperty("shown")||t.shown)})))]}getAddonPanel(e,t,s,n={}){return O.createElement(je,Object.assign({},{title:e,addonList:t,addonState:s},n))}async patchSections(){const e=await F.get("UserSettings",e=>e.prototype&&e.prototype.generateSections);L.after("SettingsManager",e.prototype,"render",e=>{e._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id="user-settings"}),L.after("SettingsManager",e.prototype,"generateSections",(e,t,s)=>{let n=s.findIndex(e=>"linux"==e.section.toLowerCase())+1;const i=e=>{s.splice(n,0,e),n++};i({section:"DIVIDER"}),i({section:"CUSTOM",element:$e});for(const e of T.collections)e.disabled||i({section:e.name,label:e.name,element:()=>this.buildSettingsPanel(e.id,e.name,e.settings,T.state[e.id],T.onSettingChange.bind(T,e.id),e.button?e.button:null)});for(const t of T.panels.sort((e,t)=>e.order>t.order))t.clickListener&&(t.onClick=n=>t.clickListener(e,n,s)),i(t)}),this.forceUpdate()}forceUpdate(){const e=g.getByProps("standardSidebarView").standardSidebarView.split(" ")[0],t=document.querySelector("."+e);if(!t)return;const s=u.findInReactTree(u.getReactInstance(t),e=>e&&e.generateSections,{walkable:["return","stateNode"]});s&&s.forceUpdate()}};const _e=s(1),Ge=s(0).remote;var Qe=new class extends be{get name(){return"PluginManager"}get moduleExtension(){return".js"}get extension(){return".plugin.js"}get addonFolder(){return _e.resolve(i.dataPath,"plugins")}get prefix(){return"plugin"}get language(){return"javascript"}constructor(){super(),this.onSwitch=this.onSwitch.bind(this),this.observer=new MutationObserver(e=>{for(let t=0,s=e.length;tWe.getAddonPanel(k.Panels.plugins,this.addonList,this.state,{folder:this.addonFolder,onChange:this.togglePlugin.bind(this),reload:this.reloadPlugin.bind(this),refreshList:this.updatePluginList.bind(this),saveAddon:this.saveAddon.bind(this),editAddon:this.editAddon.bind(this),deleteAddon:this.deleteAddon.bind(this),prefix:this.prefix})}),e}updatePluginList(){return this.updateList()}loadAllPlugins(){return this.loadAllAddons()}enablePlugin(e){return this.enableAddon(e)}disablePlugin(e){return this.disableAddon(e)}togglePlugin(e){return this.toggleAddon(e)}unloadPlugin(e){return this.unloadAddon(e)}loadPlugin(e){const t=this.loadAddon(e);t&&W.showAddonErrors({themes:[t]})}reloadPlugin(e){const t=this.reloadAddon(e);return t&&W.showAddonErrors({plugins:[t]}),"string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e}initializeAddon(e){if(!e.type)return new _(e.name,e.filename,"Plugin had no exports",{message:"Plugin had no exports or no name property.",stack:""});try{const t=new e.type;e.plugin=t,e.name=t.getName()||e.name,e.author=t.getAuthor()||e.author||"No author",e.description=t.getDescription()||e.description||"No description",e.version=t.getVersion()||e.version||"No version";try{"function"==typeof e.plugin.load&&e.plugin.load()}catch(t){return this.state[e.id]=!1,new _(e.name,e.filename,"load() could not be fired.",{message:t.message,stack:t.stack})}}catch(t){return new _(e.name,e.filename,"Could not be constructed.",{message:t.message,stack:t.stack})}}getFileModification(e,t,s){e._compile(t,e.filename);return u.isEmpty(e.exports)?(c.warn(this.name,s.name+", please start assigning module.exports"),t+=`\nmodule.exports = ${JSON.stringify(s)};\nmodule.exports.type = ${s.exports||s.name};`):(s.type=e.exports,e.exports=s,"")}startAddon(e){return this.startPlugin(e)}stopAddon(e){return this.stopPlugin(e)}getAddon(e){return this.getPlugin(e)}startPlugin(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;if(!t)return;const s=t.plugin;try{s.start()}catch(e){return this.state[t.id]=!1,q.error(k.Addons.couldNotStart.format({name:t.name,version:t.version})),c.stacktrace(this.name,t.name+" could not be started.",e),new _(t.name,t.filename,k.Addons.enabled.format({method:"start()"}),{message:e.message,stack:e.stack})}this.emit("started",t.id),q.show(k.Addons.enabled.format({name:t.name,version:t.version}))}stopPlugin(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;if(!t)return;const s=t.plugin;try{s.stop()}catch(e){return this.state[t.id]=!1,q.error(k.Addons.couldNotStop.format({name:t.name,version:t.version})),c.stacktrace(this.name,t.name+" could not be stopped.",e),new _(t.name,t.filename,k.Addons.enabled.format({method:"stop()"}),{message:e.message,stack:e.stack})}this.emit("stopped",t.id),q.show(k.Addons.disabled.format({name:t.name,version:t.version}))}getPlugin(e){const t=this.addonList.find(t=>t.id==e||t.filename==e);if(t)return t.plugin}setupFunctions(){Ge.getCurrentWebContents().on("did-navigate-in-page",this.onSwitch.bind(this)),this.observer.observe(document,{childList:!0,subtree:!0})}onSwitch(){this.emit("page-switch");for(let e=0;eWe.getAddonPanel(k.Panels.themes,this.addonList,this.state,{folder:this.addonFolder,onChange:this.toggleTheme.bind(this),reload:this.reloadTheme.bind(this),refreshList:this.updateThemeList.bind(this),saveAddon:this.saveAddon.bind(this),editAddon:this.editAddon.bind(this),deleteAddon:this.deleteAddon.bind(this),prefix:this.prefix})}),e}updateThemeList(){return this.updateList()}loadAllThemes(){return this.loadAllAddons()}enableTheme(e){return this.enableAddon(e)}disableTheme(e){return this.disableAddon(e)}toggleTheme(e){return this.toggleAddon(e)}unloadTheme(e){return this.unloadAddon(e)}loadTheme(e){const t=this.loadAddon(e);t&&W.showAddonErrors({themes:[t]})}reloadTheme(e){const t=this.reloadAddon(e);t&&W.showAddonErrors({themes:[t]})}getFileModification(e,t,s){return s.css=t,`module.exports = ${JSON.stringify(s)};`}startAddon(e){return this.addTheme(e)}stopAddon(e){return this.removeTheme(e)}addTheme(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&(C.injectTheme(t.id,t.css),q.show(k.Addons.enabled.format({name:t.name,version:t.version})))}removeTheme(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&(C.removeTheme(t.id),q.show(k.Addons.disabled.format({name:t.name,version:t.version})))}};const Ye={get React(){return f.React},get ReactDOM(){return f.ReactDOM},get WindowConfigFile(){return""},get settings(){return T.collections},get emotes(){return{}},get version(){return i.version},getAllWindowPreferences:function(){return w.getData("windowprefs")||{}},getWindowPreference:function(e){return this.getAllWindowPreferences()[e]},setWindowPreference:function(e,t){const s=this.getAllWindowPreferences();return s[e]=t,w.setData("windowprefs",s)},injectCSS:function(e,t){C.injectStyle(e,t)},clearCSS:function(e){C.removeStyle(e)},linkJS:function(e,t){return C.injectScript(e,t)},unlinkJS:function(e){C.removeScript(e)},alert:function(e,t){W.alert(e,t)},showConfirmationModal:function(e,t,s={}){return W.showConfirmationModal(e,t,s)},showToast:function(e,t={}){q.show(e,t)},findModule:function(e){return g.getModule(e)},findAllModules:function(e){return g.getModule(e,!1)},findModuleByProps:function(...e){return g.getByProps(...e)},findModuleByPrototypes:function(...e){return g.getByPrototypes(...e)},findModuleByDisplayName:function(e){return g.getByDisplayName(e)},getInternalInstance:function(e){if(e instanceof window.jQuery||e instanceof Element)return e instanceof jQuery&&(e=e[0]),u.getReactInstance(e)},loadData:function(e,t){return w.getPluginData(e,t)}};Ye.getData=Ye.loadData,Ye.saveData=function(e,t,s){return w.setPluginData(e,t,s)},Ye.setData=Ye.saveData,Ye.deleteData=function(e,t){return w.deletePluginData(e,t)},Ye.monkeyPatch=function(e,t,s){const{before:n,after:i,instead:o,once:r=!1}=s,a=n?"before":i?"after":o?"instead":"";if(!a)return c.err("BdApi","Must provide one of: after, before, instead");const l={originalMethod:e[t],callOriginalMethod:()=>l.originalMethod.apply(l.thisObject,l.methodArguments)};l.cancelPatch=L[a]("BdApi",e,t,(e,t,n)=>{l.thisObject=e,l.methodArguments=t,l.returnValue=n;try{Reflect.apply(s[a],null,[l]),r&&l.cancelPatch()}catch(e){}})},Ye.onRemoved=function(e,t){return u.onRemoved(e,t)},Ye.suppressErrors=function(e,t){return u.suppressErrors(e,t)},Ye.testJSON=function(e){return u.testJSON(e)},Ye.getPlugin=function(e){return c.warn("BdApi","getPlugin is deprecated. Please make use of the addon api (BdApi.Plugins)"),Qe.addonList.find(t=>t.name==e)},Ye.isPluginEnabled=function(e){c.warn("BdApi","isPluginEnabled is deprecated. Please make use of the addon api (BdApi.Plugins)");const t=this.getPlugin(e);return!!t&&Qe.isEnabled(t.id)},Ye.isThemeEnabled=function(e){c.warn("BdApi","isThemeEnabled is deprecated. Please make use of the addon api (BdApi.Themes)");const t=Ze.addonList.find(t=>t.name==e);return!!t&&Ze.isEnabled(t.id)},Ye.isSettingEnabled=function(e,t,s){return T.get(e,t,s)},Ye.enableSetting=function(e,t,s){return T.set(e,t,s,!0)},Ye.disableSetting=function(e,t,s){return T.set(e,t,s,!1)},Ye.toggleSetting=function(e,t,s){return T.set(e,t,s,!T.get(e,t,s))},Ye.getBDData=function(e){return w.getBDData(e)},Ye.setBDData=function(e,t){return w.setBDData(e,t)};const Je=e=>new class{get folder(){return e.addonFolder}isEnabled(t){return e.isEnabled(t)}enable(t){return e.enableAddon(t)}disable(t){return e.disableAddon(t)}toggle(t){return e.toggleAddon(t)}reload(t){return e.reloadAddon(t)}get(t){return e.getAddon(t)}getAll(){return e.addonList.map(t=>e.getAddon(t.id))}};Ye.Plugins=Je(Qe),Ye.Themes=Je(Ze),Ye.Patcher={patch:(e,t,s,n,i={})=>"string"!=typeof e?c.err("BdApi.Patcher","Parameter 0 of patch must be a string representing the caller"):"before"!==i.type&&"instead"!==i.type&&"after"!==i.type?c.err("BdApi.Patcher","options.type must be one of: before, instead, after"):L.pushChildPatch(e,t,s,n,i),before:(e,t,s,n,i={})=>Ye.Patcher.patch(e,t,s,n,Object.assign(i,{type:"before"})),instead:(e,t,s,n,i={})=>Ye.Patcher.patch(e,t,s,n,Object.assign(i,{type:"instead"})),after:(e,t,s,n,i={})=>Ye.Patcher.patch(e,t,s,n,Object.assign(i,{type:"after"})),unpatchAll:e=>"string"!=typeof e?c.err("BdApi.Patcher","Parameter 0 of unpatchAll must be a string representing the caller"):L.unpatchAll(e)},Object.freeze(Ye),Object.freeze(Ye.Plugins),Object.freeze(Ye.Themes),Object.freeze(Ye.Patcher);var Ke=Ye;class Xe{get name(){return"Unnamed Builtin"}get collection(){return"settings"}get category(){return"general"}get id(){return"None"}async initialize(){T.get(this.collection,this.category,this.id)&&await this.enable(),E.on("setting-updated",(e,t,s,n)=>{e==this.collection&&t===this.category&&s===this.id&&(n?this.enable():this.disable())}),this.initialized=!0}registerSetting(e,t,s,n,i){return 4==arguments.length?(e=this.collection,t=arguments[0],s=arguments[1],n=arguments[2],i=arguments[3]):3==arguments.length&&(e=this.collection,t=this.category,s=arguments[0],n=arguments[1],i=arguments[2]),T.on(e,t,s,e=>{e?n():i()})}get(e,t,s){return 2==arguments.length?(e=this.collection,t=arguments[0],s=arguments[1]):1==arguments.length&&(e=this.collection,t=this.category,s=arguments[0]),T.get(e,t,s)}async enable(){this.log("Enabled");try{await this.enabled()}catch(e){this.stacktrace("Could not be enabled",e)}}async disable(){this.log("Disabled");try{await this.disabled()}catch(e){this.stacktrace("Could not be disabled",e)}}async enabled(){}async disabled(){}log(...e){c.log(this.name,...e)}warn(...e){c.warn(this.name,...e)}error(...e){c.err(this.name,...e)}stacktrace(e,t){c.stacktrace(this.name,e,t)}before(e,t,s){return L.before(this.name,e,t,s)}after(e,t,s){return L.after(this.name,e,t,s)}unpatchAll(){return L.unpatchAll(this.name)}}class et extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),O.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}))}}class tt extends O.Component{constructor(e){super(e),this.hasUnsavedChanges=!1,this.onChange=this.onChange.bind(this),this.toggleLiveUpdate=this.toggleLiveUpdate.bind(this),this.updateCss=this.updateCss.bind(this),this.saveCss=this.saveCss.bind(this),this.openDetached=this.props.openDetached?this.openDetached.bind(this):null,this.openNative=this.openNative.bind(this),this.updateEditor=this.updateEditor.bind(this),this.controls=[{label:O.createElement(we,{size:"18px"}),tooltip:k.CustomCSS.update,onClick:this.updateCss},{label:O.createElement(X,{size:"18px"}),tooltip:k.CustomCSS.save,onClick:this.saveCss},{label:O.createElement(ee,{size:"18px"}),tooltip:k.CustomCSS.openNative,onClick:this.openNative},{label:O.createElement(te,{size:"18px"}),tooltip:k.CustomCSS.settings,onClick:"showSettings"},{label:k.Collections.settings.customcss.liveUpdate.name,type:"checkbox",onChange:this.toggleLiveUpdate,checked:T.get("settings","customcss","liveUpdate"),side:"right"}],this.openDetached&&this.controls.push({label:O.createElement(et,{size:"18px"}),tooltip:k.CustomCSS.openDetached,onClick:this.openDetached,side:"right"})}componentDidMount(){E.on("customcss-updated",this.updateEditor)}componentWillUnmount(){E.off("customcss-updated",this.updateEditor)}updateEditor(e){this.editor&&(this.editor.value=e)}get value(){return this.editor.session.getValue()}set value(e){this.editor.setValue(e)}showSettings(){return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor)}resize(){return this.editor.resize()}setEditorRef(e){this.editor=e,this.props.editorRef&&void 0!==this.props.editorRef.current?this.props.editorRef.current=e:this.props.editorRef&&(this.props.editorRef=e)}onChange(){this.hasUnsavedChanges=!0,this.props.onChange&&this.props.onChange(...arguments)}render(){return O.createElement(K,{ref:this.setEditorRef.bind(this),readOnly:this.props.readOnly,id:this.props.id||"bd-customcss-editor",onChange:this.onChange,controls:this.controls,value:this.props.css})}toggleLiveUpdate(e){T.set("settings","customcss","liveUpdate",e)}updateCss(e,t){this.props.update&&this.props.update(t)}saveCss(e,t){this.hasUnsavedChanges=!1,this.props.save&&this.props.save(t)}openDetached(e,t){this.props.openDetached&&this.props.openDetached(t)}openNative(){this.props.openNative&&this.props.openNative()}}const st=s(2),nt=s(0),it=g.getByProps("updateAccount"),ot=g.getByProps("dirtyDispatch"),rt=g.getByProps("ActionTypes").ActionTypes;var at=new class extends Xe{get name(){return"Custom CSS"}get category(){return"customcss"}get id(){return"customcss"}get startDetached(){return"detached"==T.get(this.collection,this.category,"openAction")}get nativeOpen(){return"system"==T.get(this.collection,this.category,"openAction")}constructor(){super(),this.savedCss="",this.insertedCss="",this.isDetached=!1}async enabled(){window.ace||C.injectScript("ace-script","https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js").then(()=>{window.require.original&&(window.require=window.require.original)}),T.registerPanel(this.id,k.Panels.customcss,{order:2,element:()=>[O.createElement(ve,{text:k.CustomCSS.editorTitle}),O.createElement(tt,{css:this.savedCss,save:this.saveCSS.bind(this),update:this.insertCSS.bind(this),openNative:this.openNative.bind(this),openDetached:this.openDetached.bind(this),onChange:this.onChange.bind(this)})],onClick:e=>{if(this.isDetached)return;if(this.nativeOpen)return this.openNative();if(this.startDetached)return this.openDetached();const t=u.findInRenderTree(e._reactInternalFiber,e=>e&&e.onSetSection,{walkable:["child","memoizedProps","props","children"]});t&&t.onSetSection&&t.onSetSection(this.id)}}),this.loadCSS(),this.insertCSS(this.savedCss),this.watchContent()}disabled(){T.removePanel(this.id),this.unwatchContent()}watchContent(){if(this.watcher)return this.error("Already watching content.");const e={};this.log("Starting to watch content."),this.watcher=st.watch(w.customCSS,{persistent:!1},async(t,s)=>{if(!t||!s)return;await new Promise(e=>setTimeout(e,50));try{st.statSync(w.customCSS)}catch(t){if("ENOENT"!==t.code)return;delete e[s],this.saveCSS("")}const n=st.statSync(w.customCSS);if(n&&n.mtime&&n.mtime.getTime()&&"number"==typeof n.mtime.getTime()&&e[s]!=n.mtime.getTime()&&(e[s]=n.mtime.getTime(),"change"==t)){const e=w.loadCustomCSS();if(e==this.savedCss)return;this.savedCss=e,this.insertCSS(this.savedCss),E.emit("customcss-updated",this.savedCss)}})}unwatchContent(){if(!this.watcher)return this.error("Was not watching content.");this.watcher.close(),delete this.watcher,this.log("No longer watching content.")}onChange(e){T.get("settings","customcss","liveUpdate")&&(this.insertCSS(e),this.saveCSS(e))}loadCSS(){this.savedCss=w.loadCustomCSS()}insertCSS(e){void 0===e?e=this.insertedCss:this.insertedCss=e,C.updateCustomCSS(e)}saveCSS(e){void 0!==e&&(this.savedCss=e),w.saveCustomCSS(this.savedCss)}openNative(){nt.shell.openExternal("file://"+w.customCSS)}openDetached(e){const t=O.createRef(),s=O.createElement(tt,{id:"bd-floating-editor",ref:t,css:e,save:this.saveCSS.bind(this),update:this.insertCSS.bind(this),openNative:this.openNative.bind(this),onChange:this.onChange.bind(this)});ce.open({onClose:()=>{this.isDetached=!1},onResize:()=>{t&&t.current&&t.current.resize&&t.current.resize()},title:k.CustomCSS.editorTitle,id:"floating-editor-window",height:470,width:410,center:!0,resizable:!0,children:s,confirmClose:()=>!(!t||!t.current)&&t.current.hasUnsavedChanges,confirmationText:k.CustomCSS.confirmationText}),this.isDetached=!0,it.close(),ot.dirtyDispatch({type:rt.LAYER_POP})}},lt=new class extends Xe{get name(){return"WindowPrefs"}get category(){return"window"}get id(){return"transparency"}enabled(){this.setWindowPreference("transparent",!0),this.setWindowPreference("backgroundColor","#00000000"),this.showModal(k.WindowPrefs.enabledInfo)}disabled(){this.deleteWindowPreference("transparent"),this.deleteWindowPreference("backgroundColor"),this.showModal(k.WindowPrefs.disabledInfo)}showModal(e){this.initialized&&W.showConfirmationModal(k.Modals.additionalInfo,e,{confirmText:k.Modals.restartNow,cancelText:k.Modals.restartLater,onConfirm:()=>{const e=s(0).remote.app;e.relaunch(),e.exit()}})}getWindowPreference(e){return(w.getData("windowprefs")||{})[e]}setWindowPreference(e,t){const s=w.getData("windowprefs")||{};s[e]=t,w.setData("windowprefs",s)}deleteWindowPreference(e){const t=w.getData("windowprefs")||{};delete t[e],w.setData("windowprefs",t)}},dt=new class extends Xe{get name(){return"24Hour"}get category(){return"general"}get id(){return"twentyFourHour"}enabled(){this.inject24Hour()}disabled(){this.unpatchAll()}inject24Hour(){const e=new RegExp("([0-9]{1,2}):([0-9]{1,2})\\s(AM|PM)"),t=(t,s,n)=>{const i=n.match(e);if(i&&4===i.length)return"AM"===i[3]?n.replace(i[0],`${"12"===i[1]?"00":i[1].padStart(2,"0")}:${i[2]}`):n.replace(i[0],`${"12"===i[1]?"12":parseInt(i[1])+12}:${i[2]}`)};this.after(f.TimeFormatter,"calendarFormat",t),this.after(f.TimeFormatter,"dateFormat",t)}};const ct=new RegExp("^(?!da-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$");var ht=new class extends Xe{get id(){return"classNormalizer"}get category(){return"general"}get name(){return"ClassNormalizer"}enabled(){this.hasPatched||(this.patchClassModules(g.getModules(this.moduleFilter.bind(this))),this.normalizeElement(document.querySelector("#app-mount")),this.hasPatched=!0,this.patchDOMMethods())}disabled(){this.hasPatched&&(this.unpatchClassModules(g.getModules(this.moduleFilter.bind(this))),this.revertElement(document.querySelector("#app-mount")),this.hasPatched=!1)}patchClassModules(e){for(const t of e)this.patchClassModule("da",t)}unpatchClassModules(e){for(const t of e)this.unpatchClassModule("da",t)}shouldIgnore(e){return!isNaN(e)||(!!(e.endsWith("px")||e.endsWith("ch")||e.endsWith("em")||e.endsWith("ms"))||(!!e.startsWith("layerContainer-")||(!(!e.startsWith("#")||7!=e.length&&4!=e.length)||!(!e.includes("calc(")&&!e.includes("rgba")))))}moduleFilter(e){if("object"!=typeof e||Array.isArray(e))return!1;if(e.__esModule)return!1;if(!Object.keys(e).length)return!1;for(const t in e){const s=e[t];if("string"!=typeof s)return!1;if(!this.shouldIgnore(s)){if(1===s.split("-").length)return!1;if(!ct.test(s.split(" ")[0]))return!1}}return!0}patchClassModule(e,t){for(const s in t){const n=t[s];if(this.shouldIgnore(n))continue;const i=n.split(" ");for(const n of i){const i=n.match(ct);if(!i||!i.length||i.length<2)continue;const o=i[1].split("-").map((e,t)=>t?e[0].toUpperCase()+e.slice(1):e).join("");t[s]+=` ${e}-${o}`}}}unpatchClassModule(e,t){for(const s in t){const n=t[s];if(this.shouldIgnore(n))continue;let i="";const o=n.split(" ");for(const t of o)t.startsWith(e+"-")||(i+=" "+t);t[s]=i.trim()}}normalizeElement(e){if(!(e instanceof Element))return;const t=e.classList;for(let s=0,n=t.length;st?e[0].toUpperCase()+e.slice(1):e).join("");e.classList.add("da-"+n)}for(const t of e.children)this.normalizeElement(t)}revertElement(e){if(!(e instanceof Element))return;e.children&&e.children.length&&this.revertElement(e.children[0]),e.nextElementSibling&&this.revertElement(e.nextElementSibling);const t=e.classList,s=[];for(let e=0;e{const o=[];t&&o.push("category="+t.replace(/ /g,"%20")),e&&o.push("term="+e.replace(/ /g,"%20")),n&&o.push("from="+n);const r="?"+o.join("&");i.get({url:`${this.endPoint}${r}${r?"&schema=new":"?schema=new"}`,json:!0},(e,t,n)=>{if(e)return s(null);const i=n.size+n.from;s({servers:n.results,size:n.size,from:n.from,total:n.total,next:i>=n.total?null:i})})})}static async join(e,t=!1){if(t)return gt.acceptInvite(e);try{return await fetch(`${this.joinEndPoint}/${e}`,{method:"GET",credentials:"include",mode:"cors",headers:{Accept:"application/json","Content-Type":"application/json"}}),!0}catch(e){return!1}}static async checkConnection(){try{const e=await fetch("https://auth.discordservers.com/info",{method:"GET",credentials:"include",mode:"cors",headers:{Accept:"application/json","Content-Type":"application/json"}}),t=await e.json();return this._accessToken=t.access_token,t}catch(e){return!1}}static connect(){return new Promise(e=>{const t=new ft(this.windowOptions),s="https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl="+this.connectEndPoint;t.webContents.on("did-navigate",(s,n)=>{n==this.connectEndPoint&&(t.close(),e())}),t.loadURL(s)})}static get windowOptions(){return{width:380,height:450,backgroundColor:"#282b30",show:!0,resizable:!0,maximizable:!1,minimizable:!1,alwaysOnTop:!0,frame:!1,center:!0,webPreferences:{nodeIntegration:!1}}}}const bt=g.getByDisplayName("SettingsView");class vt extends O.Component{get categoryButtons(){return["All","FPS Games","MMO Games","Strategy Games","MOBA Games","RPG Games","Tabletop Games","Sandbox Games","Simulation Games","Music","Community","Language","Programming","Other"]}constructor(e){super(e),this.state={category:"All",query:"",loading:!0,user:null,results:{servers:[],size:0,from:0,total:0,next:null}},this.changeCategory=this.changeCategory.bind(this),this.searchKeyDown=this.searchKeyDown.bind(this),this.connect=this.connect.bind(this),this.loadNextPage=this.loadNextPage.bind(this),this.join=this.join.bind(this)}componentDidMount(){this.checkConnection()}async checkConnection(){const e=await yt.checkConnection();if(!e)return this.setState({loading:!0,user:null});this.setState({user:e}),this.search()}async connect(){await yt.connect(),this.checkConnection()}searchKeyDown(e){this.state.loading||13!==e.which||this.search(e.target.value)}async search(e="",t=0){this.setState({query:e,loading:!0});const s=await yt.search({term:e,category:"All"==this.state.category?"":this.state.category,from:t});if(!s)return this.setState({results:{servers:[],size:0,from:0,total:0,next:null}});this.setState({loading:!1,results:s})}async changeCategory(e){this.state.loading||(await new Promise(t=>this.setState({category:e},t)),this.search())}loadNextPage(){this.state.loading||this.search(this.state.query,this.state.results.next)}async join(e,t=!1){return await yt.join(e,t)}get searchBox(){return O.createElement(Le,{onKeyDown:this.searchKeyDown,placeholder:k.PublicServers.search+"..."})}get title(){if(!this.state.user)return k.PublicServers.notConnected;if(this.state.loading)return k.PublicServers.loading+"...";const e=this.state.results.from+1,t=this.state.results.total,s=this.state.results.next?this.state.results.next:t;let n=k.PublicServers.results.format({start:e,end:s,total:t,category:this.state.category});return this.state.query&&(n+=" "+k.PublicServers.query.format({query:this.state.query})),n}get content(){const e=this.state.user?null:{title:k.PublicServers.connect,onClick:this.connect},t="All"!=this.state.category&&this.state.user?null:this.bdServer,s=this.state.results.servers.map(e=>O.createElement(ut,{key:e.identifier,server:e,joined:yt.hasJoined(e.identifier),join:this.join,defaultAvatar:yt.getDefaultAvatar}));return[O.createElement(ve,{text:this.title,button:e}),t,s,this.state.results.next?this.nextButton:null,this.state.results.servers.length>0&&O.createElement(ve,{text:this.title})]}get nextButton(){return O.createElement("button",{type:"button",className:"bd-button bd-button-next",onClick:this.loadNextPage},this.state.loading?k.PublicServers.loading:k.PublicServers.loadMore)}get connection(){const{user:e}=this.state;return e?O.createElement("div",{id:"bd-connection"},O.createElement("div",{className:"bd-footnote"},k.PublicServers.connection.format(e)),O.createElement("button",{type:"button",className:"bd-button bd-button-reconnect",onClick:this.connect},k.PublicServers.reconnect)):O.createElement("div",{id:"bd-connection"})}get bdServer(){const e={name:"BetterDiscord",online:"7500+",members:"20000+",categories:["community","programming","support"],description:"Official BetterDiscord server for plugins, themes, support, etc",identifier:"86004744966914048",iconUrl:"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp",nativejoin:!0,invite_code:"0Tmfo5ZbORCRqbAd",pinned:!0};return O.createElement(ut,{server:e,pinned:!0,joined:yt.hasJoined(e.identifier),defaultAvatar:yt.getDefaultAvatar})}render(){const e=this.categoryButtons.map(e=>({section:e,label:e,element:()=>this.content}));return O.createElement(bt,{onClose:this.props.close,onSetSection:this.changeCategory,section:this.state.category,sections:[{section:"HEADER",label:k.PublicServers.search},{section:"CUSTOM",element:()=>this.searchBox},{section:"HEADER",label:k.PublicServers.categories},...e,{section:"DIVIDER"},{section:"HEADER",label:O.createElement("a",{href:"https://discordservers.com",target:"_blank"},"DiscordServers.com")},{section:"DIVIDER"},{section:"CUSTOM",element:()=>this.connection}],theme:"dark"})}}const wt=g.getByProps("pushLayer");var Ct=new class extends Xe{get name(){return"PublicServers"}get category(){return"general"}get id(){return"publicServers"}enabled(){const e=g.find(e=>e.default&&"NavigableGuilds"==e.default.displayName),t=g.findByDisplayName("Guilds");e||t||this.warn("Can't find GuildList component"),this.guildPatch=this.after(e||t.prototype,e?"default":"render",this._appendButton),this._appendButton()}disabled(){this.unpatchAll(),h.query("#bd-pub-li").remove()}_appendButton(){const e=f.GuildClasses.wrapper.split(" ")[0],t=h.query(`.${e} .scroller-2TZvBN >:first-child`);h.after(t,this.button)}openPublicServers(){wt.pushLayer(()=>f.React.createElement(vt,{close:wt.popLayer}))}get button(){const e=h.createElement(``),t=h.createElement(`
${k.PublicServers.button}
`);return t.addEventListener("click",()=>{this.openPublicServers()}),e.append(t),e}},St=new class extends Xe{get name(){return"VoiceDisconnect"}get category(){return"general"}get id(){return"voiceDisconnect"}constructor(){super(),this.beforeUnload=this.beforeUnload.bind(this)}enabled(){window.addEventListener("beforeunload",this.beforeUnload)}disabled(){window.removeEventListener("beforeunload",this.beforeUnload)}beforeUnload(){f.ChannelActions.selectVoiceChannel(null,null)}};const Et=g.getModule(e=>e.default&&e.default.displayName&&"Message"==e.default.displayName);var Mt=new class extends Xe{get name(){return"ColoredText"}get category(){return"appearance"}get id(){return"coloredText"}enabled(){this.injectColoredText()}disabled(){this.unpatchAll()}injectColoredText(){this.after(Et.prototype,"render",(e,t,s)=>{this.after(s.props,"children",{silent:!0,after:({returnValue:t})=>{const s=t.props.children[1],n=e.props.message.colorString;s&&n&&(s.props.style={color:n})}})})}removeColoredText(){document.querySelectorAll(".markup-2BOw-j").forEach(e=>{e.style.setProperty("color","")})}},xt=new class extends Xe{get name(){return"DarkMode"}get category(){return"appearance"}get id(){return"darkMode"}enabled(){document.getElementById("app-mount").classList.add("bda-dark","bd-dark")}disabled(){document.getElementById("app-mount").classList.remove("bda-dark","bd-dark")}},Nt=new class extends Xe{get name(){return"MinimalMode"}get category(){return"appearance"}get id(){return"minimalMode"}get hideChannelsID(){return"hideChannels"}get hideChannels(){return this.get(this.hideChannelsID)}constructor(){super(),this.enableHideChannels=this.enableHideChannels.bind(this),this.disableHideChannels=this.disableHideChannels.bind(this)}enabled(){document.body.classList.add("bd-minimal"),this.hideChannels&&this.enableHideChannels(),this.hideChannelCancel=this.registerSetting(this.hideChannelsID,this.enableHideChannels,this.disableHideChannels)}disabled(){document.body.classList.remove("bd-minimal"),this.hideChannels&&this.disableHideChannels(),this.hideChannelCancel&&this.hideChannelCancel()}enableHideChannels(){document.body.classList.add("bd-minimal-chan")}disableHideChannels(){document.body.classList.remove("bd-minimal-chan")}},Pt=new class extends Xe{get name(){return"VoiceMode"}get category(){return"appearance"}get id(){return"voiceMode"}enabled(){document.querySelector(".chat-3bRxxu").style.setProperty("visibility","hidden"),document.querySelector(".chat-3bRxxu").style.setProperty("min-width","0px"),document.querySelector(".channels-Ie2l6A").style.setProperty("flex-grow","100000")}disabled(){document.querySelector(".chat-3bRxxu").style.setProperty("visibility",""),document.querySelector(".chat-3bRxxu").style.setProperty("min-width",""),document.querySelector(".channels-Ie2l6A").style.setProperty("flex-grow","")}};const Dt=g.getByDisplayName("Tooltip");class At extends O.Component{constructor(e){super(e),this.state={shouldAnimate:!this.animateOnHover,isFavorite:this.props.isFavorite},this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.onClick=this.onClick.bind(this),this.toggleFavorite=this.toggleFavorite.bind(this)}get animateOnHover(){return T.get("emotes","general","animateOnHover")}get label(){return this.props.modifier?`${this.props.name}:${this.props.modifier}`:this.props.name}get modifierClass(){return this.props.modifier?" emote"+this.props.modifier:""}onMouseEnter(){!this.state.shouldAnimate&&this.animateOnHover&&this.setState({shouldAnimate:!0})}onMouseLeave(){this.state.shouldAnimate&&this.animateOnHover&&this.setState({shouldAnimate:!1})}onClick(e){this.props.onClick&&this.props.onClick(e)}toggleFavorite(e){e.preventDefault(),e.stopPropagation(),this.state.isFavorite?E.emit("emotes-favorite-removed",this.label):E.emit("emotes-favorite-added",this.label,this.props.url),this.setState({isFavorite:!this.state.isFavorite})}render(){return O.createElement(Dt,{color:"black",position:"top",text:this.label,delay:750},e=>O.createElement("div",Object.assign({className:"emotewrapper"+(this.props.jumboable?" jumboable":""),onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,onClick:this.onClick},e),O.createElement("img",{draggable:!1,className:"emote"+this.modifierClass+(this.props.jumboable?" jumboable":"")+(this.state.shouldAnimate?"":" stop-animation"),dataModifier:this.props.modifier,alt:this.label,src:this.props.url}),O.createElement("input",{className:"fav"+(this.state.isFavorite?" active":""),title:k.Emotes.favoriteAction,type:"button",onClick:this.toggleFavorite})))}}const kt=s(3),Tt={TwitchGlobal:new A("https://static-cdn.jtvnw.net/emoticons/v1/{{id}}/1.0"),TwitchSubscriber:new A("https://static-cdn.jtvnw.net/emoticons/v1/{{id}}/1.0"),FrankerFaceZ:new A("https://cdn.frankerfacez.com/emoticon/{{id}}/1"),BTTV:new A("https://cdn.betterttv.net/emote/{{id}}/1x")},Lt={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{}},jt=[],Bt=["twitch","subscriber","bttv","ffz"],It=["flip","spin","pulse","spin2","spin3","1spin","2spin","3spin","tr","bl","br","shake","shake2","shake3","flap"];var zt=new class extends Xe{get name(){return"Emotes"}get collection(){return"settings"}get category(){return"general"}get id(){return"emotes"}get categories(){return Object.keys(Lt).filter(e=>this.isCategoryEnabled(e))}get shouldDownload(){return T.get("emotes",this.category,"download")}isCategoryEnabled(e){return super.get("emotes","categories",e.toLowerCase())}get(e){return super.get("emotes","general",e)}get MessageComponent(){return g.find(e=>e.default&&e.default.displayName&&"Message"==e.default.displayName)}get Emotes(){return Lt}get TwitchGlobal(){return Lt.TwitchGlobal}get TwitchSubscriber(){return Lt.TwitchSubscriber}get BTTV(){return Lt.BTTV}get FrankerFaceZ(){return Lt.FrankerFaceZ}get blacklist(){return jt}get favorites(){return this.favoriteEmotes}getUrl(e,t){return Tt[e].format({id:Lt[e][t]})}getCategory(e){return Lt[e]}getRemoteFile(e){return u.repoUrl(`assets/emotes/${e.toLowerCase()}.json`)}initialize(){super.initialize();const e=w.getBDData("favoriteEmotes");this.favoriteEmotes=e||{},this.addFavorite=this.addFavorite.bind(this),this.removeFavorite=this.removeFavorite.bind(this),this.onCategoryToggle=this.onCategoryToggle.bind(this),this.resetEmotes=this.resetEmotes.bind(this)}async enabled(){T.registerCollection("emotes","Emotes",o,{title:k.Emotes.clearEmotes,onClick:this.resetEmotes}),await this.getBlacklist(),await this.loadEmoteData(),E.on("emotes-favorite-added",this.addFavorite),E.on("emotes-favorite-removed",this.removeFavorite),E.on("setting-updated",this.onCategoryToggle),this.patchMessageContent()}disabled(){E.off("setting-updated",this.onCategoryToggle),E.off("emotes-favorite-added",this.addFavorite),E.off("emotes-favorite-removed",this.removeFavorite),T.removeCollection("emotes"),this.emptyEmotes(),this.cancelEmoteRender&&(this.cancelEmoteRender(),delete this.cancelEmoteRender)}onCategoryToggle(e,t,s,n){if("emotes"==e&&"categories"==t)return n?this.loadEmoteData(s):this.unloadEmoteData(s)}addFavorite(e,t){this.favoriteEmotes.hasOwnProperty(e)||(this.favoriteEmotes[e]=t),this.saveFavorites()}removeFavorite(e){this.favoriteEmotes.hasOwnProperty(e)&&(delete this.favoriteEmotes[e],this.saveFavorites())}isFavorite(e){return this.favoriteEmotes.hasOwnProperty(e)}saveFavorites(){w.setBDData("favoriteEmotes",this.favoriteEmotes)}emptyEmotes(){for(const e in Lt)Object.assign(Lt,{[e]:{}})}patchMessageContent(){this.cancelEmoteRender||(this.cancelEmoteRender=this.before(this.MessageComponent,"default",(e,t)=>{const s=t[0].childrenMessageContent.props.content;if(!s||!s.length)return;for(let e=0;e
"string"==typeof e&&""==e.replace(/\s*/,"")||(!(!e.type||"BDEmote"!=e.type.name)||!!(e.props&&e.props.children&&e.props.children.props&&e.props.children.props.emojiName))))for(const e of s)"object"==typeof e&&("BDEmote"==e.type.name?e.props.jumboable=!0:e.props&&e.props.children&&e.props.children.props&&e.props.children.props.emojiName&&(e.props.children.props.jumboable=!0))}))}async getBlacklist(){try{const e="Blacklist",t=w.emotesExist(e),s=await this.isCacheValid(e),n=s||!s&&t&&!this.shouldDownload?w.getEmoteData(e):await this.downloadEmotes(e);jt.push(...n)}catch(e){}}isCacheValid(e){return new Promise(t=>{const s=w.getCacheHash("emotes",e);if(!s)return t(!1);kt.head({url:this.getRemoteFile(e),headers:{"If-None-Match":s}},(e,s)=>{t(304==s.statusCode)})})}async loadEmoteData(e){e||(e=this.categories),Array.isArray(e)||(e=[e]);const t=Object.keys(Lt);e=e.map(e=>t.find(t=>t.toLowerCase()==e.toLowerCase())),q.show(k.Emotes.loading,{type:"info"}),this.emotesLoaded=!1;for(const t of e){const e=w.emotesExist(t),s=await this.isCacheValid(t);let n=null;if(s||!s&&e&&!this.shouldDownload){this.log(`Loading ${t} emotes from local cache.`);const e=w.getEmoteData(t);Object.keys(e).length>0&&(n=e)}n||(n=await this.downloadEmotes(t)),Object.assign(Lt[t],n),await new Promise(e=>setTimeout(e,1e3))}this.emotesLoaded=!0,E.dispatch("emotes-loaded"),q.show(k.Emotes.loaded,{type:"success"})}unloadEmoteData(e){e||(e=this.categories),Array.isArray(e)||(e=[e]);const t=Object.keys(Lt);e=e.map(e=>t.find(t=>t.toLowerCase()==e.toLowerCase()));for(const t of e)delete Lt[t],Lt[t]={}}downloadEmotes(e){const t=this.getRemoteFile(e);this.log(`Downloading ${e} from ${t}`);const s={url:t,timeout:1e4,json:!0};return new Promise(t=>{kt.get(s,(s,n,i)=>{if(s||200!=n.statusCode)return this.stacktrace(`Could not download ${e} emotes.`,s),t({});for(const e in i)(e.length<4||jt.includes(e)||!i[e])&&delete i[e];w.saveEmoteData(e,i),w.setCacheHash("emotes",e,n.headers.etag),t(i),this.log("Downloaded "+e)})})}resetEmotes(){const e=Object.keys(Lt);this.unloadEmoteData(e);for(const t of e)w.invalidateCache("emotes",t);this.loadEmoteData()}};const Ft=(e,t,s={})=>{const{onContextMenu:n,onClick:i}=s,o=h.createElement(`\n
\n
`);return n&&o.addEventListener("contextmenu",n),o.addEventListener("click",i),o};var Ot=new class extends Xe{get name(){return"EmoteMenu"}get collection(){return"emotes"}get category(){return"general"}get id(){return"emoteMenu"}get hideEmojisID(){return"hideEmojiMenu"}get hideEmojis(){return this.get(this.hideEmojisID)}constructor(){super(),this.lastTab="bd-qem-emojis",this.qmeHeader=h.createElement('\n Twitch \n Favourite \n Emojis\n
');for(const e of this.qmeHeader.getElementsByTagName("button"))e.addEventListener("click",this.switchMenu.bind(this));this.teContainer=h.createElement(''),this.teContainerInner=this.teContainer.querySelector(".emote-menu-inner"),this.faContainer=h.createElement(''),this.faContainerInner=this.faContainer.querySelector(".emote-menu-inner"),this.observer=new MutationObserver(e=>{for(const t of e)this.observe(t)}),this.enableHideEmojis=this.enableHideEmojis.bind(this),this.disableHideEmojis=this.disableHideEmojis.bind(this),this.updateTwitchEmotes=this.updateTwitchEmotes.bind(this)}async enabled(){return W.alert("Emote Menu Broken","Emote Menu is currently broken, it is recommended to disable this until it is fixed.")}disabled(){E.off("emotes-loaded",this.updateTwitchEmotes),this.observer.disconnect(),this.disableHideEmojis(),this.hideEmojiCancel&&this.hideEmojiCancel()}enableHideEmojis(){const e=document.querySelector(".emojiPicker-3m1S-j");e&&e.classList.add("bd-qme-hidden")}disableHideEmojis(){const e=document.querySelector(".emojiPicker-3m1S-j");e&&e.classList.remove("bd-qme-hidden")}insertEmote(e){const t=u.getTextArea();u.insertText(t[0]," "==t.val().slice(-1)?t.val()+e:t.val()+" "+e)}favContext(e){e.stopPropagation();const t=e.target.closest(".emote-container").children[0],s=$('');s.css({top:e.pageY-$("#bd-qem-favourite-container").offset().top,left:e.pageX-$("#bd-qem-favourite-container").offset().left}),$(t).parent().append(s),s.on("click",e=>{e.preventDefault(),e.stopPropagation(),$(t).remove(),zt.removeFavorite($(t).attr("title")),this.updateFavorites(),$(document).off("mousedown.emotemenu")}),$(document).on("mousedown.emotemenu",(function(e){"removemenu"!=e.target.id&&($("#removemenu").remove(),$(document).off("mousedown.emotemenu"))}))}switchMenu(e){let t="string"==typeof e?e:e.target.id;"bd-qem-emojis"==t&&this.hideEmojis&&(t="bd-qem-favourite");const s=$("#bd-qem-twitch"),n=$("#bd-qem-favourite"),i=$("#bd-qem-emojis");switch(s.removeClass("active"),n.removeClass("active"),i.removeClass("active"),$(".emojiPicker-3m1S-j").hide(),$("#bd-qem-favourite-container").hide(),$("#bd-qem-twitch-container").hide(),t){case"bd-qem-twitch":s.addClass("active"),$("#bd-qem-twitch-container").show();break;case"bd-qem-favourite":n.addClass("active"),$("#bd-qem-favourite-container").show();break;case"bd-qem-emojis":i.addClass("active"),$(".emojiPicker-3m1S-j").show(),$(".emojiPicker-3m1S-j input").focus()}t&&(this.lastTab=t)}observe(e){if(!(e.addedNodes.length&&e.addedNodes[0]instanceof Element))return;const t=e.addedNodes[0];if(!t.classList.contains("layer-v9HyYc")||!t.getElementsByClassName("emojiPicker-3m1S-j").length||t.querySelector(".emojiPicker-3m1S-j").parentElement.classList.contains("animatorLeft-1EQxU0"))return;const s=$(t);this.hideEmojis?s.addClass("bd-qme-hidden"):s.removeClass("bd-qme-hidden"),s.prepend(this.qmeHeader),s.append(this.teContainer),s.append(this.faContainer),this.switchMenu(this.lastTab)}updateTwitchEmotes(){for(;this.teContainerInner.firstChild;)this.teContainerInner.firstChild.remove();for(const e in zt.getCategory("TwitchGlobal")){if(!zt.getCategory("TwitchGlobal").hasOwnProperty(e))continue;const t=zt.getUrl("TwitchGlobal",e),s=Ft(e,t,{onClick:this.insertEmote.bind(this,e)});this.teContainerInner.append(s)}}updateFavorites(){for(;this.faContainerInner.firstChild;)this.faContainerInner.firstChild.remove();for(const e in zt.favorites){const t=zt.favorites[e],s=Ft(e,t,{onClick:this.insertEmote.bind(this,e),onContextMenu:this.favContext.bind(this)});this.faContainerInner.append(s)}zt.saveFavorites()}},Rt=new class extends Xe{get name(){return"DeveloperMode"}get category(){return"developer"}get id(){return"developerMode"}get selectorModeID(){return"copySelector"}get selectorMode(){return this.get(this.selectorModeID)}constructor(){super(),this.copySelectorListener=this.copySelectorListener.bind(this)}enabled(){document.addEventListener("contextmenu",this.copySelectorListener)}disabled(){document.removeEventListener("contextmenu",this.copySelectorListener)}copySelectorListener(e){e.stopPropagation();const t=this.getSelector(e.target);setImmediate((function(){let s=h.query(".contextMenu-HLZMGh");if(!s){const t=h.query("#app-mount"),n=h.createElement('');s=h.createElement(''),n.append(s),t.append(n),n.style.top=e.clientY+"px",n.style.left=e.clientX+"px",n.style.zIndex="1002";const i=function(e){e.keyCode&&27!==e.keyCode||(n.remove(),document.removeEventListener("click",i),document.removeEventListener("contextmenu",i),document.removeEventListener("keyup",i))};document.addEventListener("click",i),document.addEventListener("contextmenu",i),document.addEventListener("keyup",i)}const n=h.createElement('
'),i=h.createElement('
');i.append(h.createElement(`
${k.Developer.copySelector}
`)),i.addEventListener("click",()=>{f.ElectronModule.copy(t),s.style.display="none"}),n.append(i),s.append(n)}))}getSelector(e){if(e.id)return"#"+e.id;const t=this.getRules(e),s=t[t.length-1];return s?s.selectorText:e.classList.length?"."+Array.from(e.classList).join("."):"."+Array.from(e.parentElement.classList).join(".")}getRules(e,t=e.ownerDocument.styleSheets){return[...t].filter(e=>!e.href||!e.href.includes("BetterDiscordApp")).map(e=>[...e.cssRules||[]]).flat().filter(t=>t&&t.selectorText&&e.matches(t.selectorText)&&t.style.length&&t.selectorText.split(", ").length<8&&!t.selectorText.split(", ").includes("*"))}},Ut=new class extends Xe{get name(){return"Debugger"}get category(){return"developer"}get id(){return"debuggerHotkey"}enabled(){document.addEventListener("keydown",this.debugListener)}disabled(){document.removeEventListener("keydown",this.debugListener)}debugListener(e){119!==e.which&&118!=e.which||(e.preventDefault(),e.stopImmediatePropagation())}};const Ht=s(0),qt=s(2),$t=s(1),Wt=Ht.remote.BrowserWindow;var _t=new class extends Xe{get name(){return"ReactDevTools"}get category(){return"developer"}get id(){return"reactDevTools"}initialize(){super.initialize(),this.findExtension()}findExtension(){let e="";if(e="win32"===process.platform?$t.resolve(process.env.LOCALAPPDATA,"Google/Chrome/User Data"):"linux"===process.platform?$t.resolve(process.env.HOME,".config/google-chrome"):"darwin"===process.platform?$t.resolve(process.env.HOME,"Library/Application Support/Google/Chrome"):$t.resolve(process.env.HOME,".config/chromium"),e+="/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/",qt.existsSync(e)){const t=qt.readdirSync(e);e=$t.resolve(e,t[t.length-1])}this.extensionPath=e,this.isExtensionInstalled=qt.existsSync(e)}enabled(){if(this.isExtensionInstalled||this.findExtension(),!this.isExtensionInstalled)return W.alert(k.ReactDevTools.notFound,k.ReactDevTools.notFoundDetails);Wt.addDevToolsExtension(this.extensionPath)?this.log("Successfully installed react devtools."):this.error("Couldn't find react devtools in chrome extensions!")}disabled(){this.isExtensionInstalled&&Wt.removeDevToolsExtension("React Developer Tools")}};class Gt extends O.Component{render(){return O.createElement("svg",{className:"bd-logo "+this.props.className,height:"100%",width:this.props.size||"16px",viewBox:"0 0 2000 2000",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}},O.createElement("metadata",null),O.createElement("defs",null,O.createElement("filter",{id:"shadow1"},O.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20",floodColor:"rgba(0,0,0,0.35)"})),O.createElement("filter",{id:"shadow2"},O.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20",floodColor:"rgba(255,255,255,0.15)"})),O.createElement("filter",{id:"shadow3"},O.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20",floodColor:"rgba(0,0,0,0.35)"}))),O.createElement("g",null,O.createElement("path",{style:{filter:"url(#shadow3)"},fill:"#171717",opacity:"1",d:"M1195.44+135.442L1195.44+135.442L997.6+136.442C1024.2+149.742+1170.34+163.542+1193.64+179.742C1264.34+228.842+1319.74+291.242+1358.24+365.042C1398.14+441.642+1419.74+530.642+1422.54+629.642L1422.54+630.842L1422.54+632.042C1422.54+773.142+1422.54+1228.14+1422.54+1369.14L1422.54+1370.34L1422.54+1371.54C1419.84+1470.54+1398.24+1559.54+1358.24+1636.14C1319.74+1709.94+1264.44+1772.34+1193.64+1821.44C1171.04+1837.14+1025.7+1850.54+1000+1863.54L1193.54+1864.54C1539.74+1866.44+1864.54+1693.34+1864.54+1296.64L1864.54+716.942C1866.44+312.442+1541.64+135.442+1195.44+135.442Z"}),O.createElement("path",{style:{filter:"url(#shadow2)"},fill:"#3E82E5",opacity:"1",d:"M1695.54+631.442C1685.84+278.042+1409.34+135.442+1052.94+135.442L361.74+136.442L803.74+490.442L1060.74+490.442C1335.24+490.442+1335.24+835.342+1060.74+835.342L1060.74+1164.84C1150.22+1164.84+1210.53+1201.48+1241.68+1250.87C1306.07+1353+1245.76+1509.64+1060.74+1509.64L361.74+1863.54L1052.94+1864.54C1409.24+1864.54+1685.74+1721.94+1695.54+1368.54C1695.54+1205.94+1651.04+1084.44+1572.64+999.942C1651.04+915.542+1695.54+794.042+1695.54+631.442Z"}),O.createElement("path",{style:{filter:"url(#shadow1)"},fill:"#FFFFFF",opacity:"1",d:"M1469.25+631.442C1459.55+278.042+1183.05+135.442+826.65+135.442L135.45+135.442L135.45+1004C135.45+1004+135.427+1255.21+355.626+1255.21C575.825+1255.21+575.848+1004+575.848+1004L577.45+490.442L834.45+490.442C1108.95+490.442+1108.95+835.342+834.45+835.342L664.65+835.342L664.65+1164.84L834.45+1164.84C923.932+1164.84+984.244+1201.48+1015.39+1250.87C1079.78+1353+1019.47+1509.64+834.45+1509.64L135.45+1509.64L135.45+1864.54L826.65+1864.54C1182.95+1864.54+1459.45+1721.94+1469.25+1368.54C1469.25+1205.94+1424.75+1084.44+1346.35+999.942C1424.75+915.542+1469.25+794.042+1469.25+631.442Z"})))}}const Qt=f.React,Vt=g.getByDisplayName("Tooltip");var Zt=new class{initialize(){u.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),u.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),u.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),u.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")(),u.suppressErrors(this.patchMessageHeader.bind(this),"BD Message Header Patch")(),u.suppressErrors(this.patchMemberList.bind(this),"BD Member List Patch")()}patchSocial(){if(this.socialPatch)return;const e=g.getByDisplayName("TabBar"),t=g.getByDisplayName("Anchor");e&&(this.socialPatch=L.after("ComponentPatcher",e.prototype,"render",(e,s,n)=>{const o=n.props.children;if(!o||!o.length||o.length<3)return;if("Separator"!==o[o.length-3].type.displayName)return;if(!o[o.length-2].type.toString().includes("socialLinks"))return;if(t){const e=o[o.length-2].type,s=function(){const s=e(...arguments);return s.props.children.push(f.React.createElement(t,{className:"bd-social-link",href:"https://twitter.com/BandagedBD",title:"BandagedBD",target:"_blank"},f.React.createElement(Gt,{size:"16px",className:"bd-social-logo"}))),s};o[o.length-2].type=s}const r=f.React.createElement("div",{className:"colorMuted-HdFt4q size12-3cLvbJ"},"Injector "+i.version),a=`(${i.hash?i.hash.substring(0,7):i.branch})`,l=f.React.createElement("div",{className:"colorMuted-HdFt4q size12-3cLvbJ"},`BBD ${i.bbdVersion} `,f.React.createElement("span",{className:"versionHash-2gXjIB da-versionHash"},a)),d=o[o.length-1].type;o[o.length-1].type=function(){const e=d(...arguments);return e.props.children.splice(e.props.children.length-1,0,r),e.props.children.splice(1,0,l),e}}))}patchGuildListItems(){if(this.guildListItemsPatch)return;const e=f.GuildClasses.listItem.split(" ")[0],t=f.GuildClasses.blobContainer.split(" ")[0],s=u.getReactInstance(document.querySelector(`.${e} .${t}`).parentElement).return.type;s&&(this.guildListItemsPatch=L.after("ComponentPatcher",s.prototype,"render",(e,t,s)=>{if(!s||!e)return;const n=e.props;return s.props.className+=" bd-guild",n.unread&&(s.props.className+=" bd-unread"),n.selected&&(s.props.className+=" bd-selected"),n.audio&&(s.props.className+=" bd-audio"),n.video&&(s.props.className+=" bd-video"),n.badge&&(s.props.className+=" bd-badge"),n.animatable&&(s.props.className+=" bd-animatable"),s}))}patchGuildPills(){if(this.guildPillPatch)return;const e=g.getModule(e=>e.default&&!e.default.displayName&&e.default.toString&&e.default.toString().includes("translate3d"));e&&(this.guildPillPatch=L.after("ComponentPatcher",e,"default",(e,t,s)=>{const n=t[0];return n.unread&&(s.props.className+=" bd-unread"),n.selected&&(s.props.className+=" bd-selected"),n.hovered&&(s.props.className+=" bd-hovered"),s}))}patchGuildSeparator(){if(this.guildSeparatorPatch)return;const e=g.getByDisplayName("Guilds"),t=g.getByProps("renderListItem");if(!t||!e)return;const s=function(){const e=t.Separator(...arguments);return e.props.className+=" bd-guild-separator",e};this.guildSeparatorPatch=L.after("ComponentPatcher",e.prototype,"render",(e,t,n)=>{const i=u.findInReactTree(n,e=>e.type&&!e.type.displayName&&"function"==typeof e.type&&u.isEmpty(e.props));i&&(i.type=s)})}patchMessageHeader(){if(this.messageHeaderPatch)return;const e=g.getByProps("MessageTimestamp"),t=g.find(e=>"Anchor"==e.displayName);t&&e&&e.default&&(this.messageHeaderPatch=L.after("ComponentPatcher",e,"default",(e,s,n)=>{const i=u.getNestedProp(s[0],"message.author"),o=u.getNestedProp(n,"props.children.1.props.children.1.props.children");o&&i&&i.id&&"249746236008169473"===i.id&&Array.isArray(o)&&o.push(Qt.createElement(Vt,{color:"black",position:"top",text:"BandagedBD Developer"},e=>Qt.createElement(t,Object.assign({className:"bd-chat-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},e),Qt.createElement(Gt,{size:"16px",className:"bd-logo"}))))}))}patchMemberList(){if(this.memberListPatch)return;const e=g.findByDisplayName("MemberListItem"),t=g.find(e=>"Anchor"==e.displayName);t&&e&&e.prototype&&e.prototype.renderDecorators&&(this.memberListPatch=L.after("ComponentPatcher",e.prototype,"renderDecorators",(e,s,n)=>{const i=u.getNestedProp(e,"props.user"),o=u.getNestedProp(n,"props.children");o&&i&&i.id&&"249746236008169473"===i.id&&Array.isArray(o)&&o.push(Qt.createElement(Vt,{color:"black",position:"top",text:"BandagedBD Developer"},e=>Qt.createElement(t,Object.assign({className:"bd-member-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},e),Qt.createElement(Gt,{size:"16px",className:"bd-logo"}))))}))}};const Yt=document.createElement("style");Yt.textContent="/* BEGIN V2 LOADER */\n/* =============== */\n\n#bd-loading-icon {\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+IDwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTAwJSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjAwMCAyMDAwIj4gICAgPG1ldGFkYXRhIC8+ICAgIDxkZWZzPiAgICAgICAgPGZpbHRlciBpZD0ic2hhZG93MSI+ICAgICAgICA8ZmVEcm9wU2hhZG93IGR4PSIyMCIgZHk9IjAiIHN0ZERldmlhdGlvbj0iMjAiIGZsb29kLWNvbG9yPSJyZ2JhKDAsMCwwLDAuMzUpIi8+ICAgICAgICA8L2ZpbHRlcj4gICAgICAgIDxmaWx0ZXIgaWQ9InNoYWRvdzIiPiAgICAgICAgPGZlRHJvcFNoYWRvdyBkeD0iMTUiIGR5PSIwIiBzdGREZXZpYXRpb249IjIwIiBmbG9vZC1jb2xvcj0icmdiYSgyNTUsMjU1LDI1NSwwLjE1KSIvPiAgICAgICAgPC9maWx0ZXI+ICAgICAgICA8ZmlsdGVyIGlkPSJzaGFkb3czIj4gICAgICAgIDxmZURyb3BTaGFkb3cgZHg9IjEwIiBkeT0iMCIgc3RkRGV2aWF0aW9uPSIyMCIgZmxvb2QtY29sb3I9InJnYmEoMCwwLDAsMC4zNSkiLz4gICAgICAgIDwvZmlsdGVyPiAgICA8L2RlZnM+ICAgIDxnPiAgICAgICAgPHBhdGggc3R5bGU9ImZpbHRlcjogdXJsKCNzaGFkb3czKSIgZD0iTTExOTUuNDQrMTM1LjQ0MkwxMTk1LjQ0KzEzNS40NDJMOTk3LjYrMTM2LjQ0MkMxMDI0LjIrMTQ5Ljc0MisxMTcwLjM0KzE2My41NDIrMTE5My42NCsxNzkuNzQyQzEyNjQuMzQrMjI4Ljg0MisxMzE5Ljc0KzI5MS4yNDIrMTM1OC4yNCszNjUuMDQyQzEzOTguMTQrNDQxLjY0MisxNDE5Ljc0KzUzMC42NDIrMTQyMi41NCs2MjkuNjQyTDE0MjIuNTQrNjMwLjg0MkwxNDIyLjU0KzYzMi4wNDJDMTQyMi41NCs3NzMuMTQyKzE0MjIuNTQrMTIyOC4xNCsxNDIyLjU0KzEzNjkuMTRMMTQyMi41NCsxMzcwLjM0TDE0MjIuNTQrMTM3MS41NEMxNDE5Ljg0KzE0NzAuNTQrMTM5OC4yNCsxNTU5LjU0KzEzNTguMjQrMTYzNi4xNEMxMzE5Ljc0KzE3MDkuOTQrMTI2NC40NCsxNzcyLjM0KzExOTMuNjQrMTgyMS40NEMxMTcxLjA0KzE4MzcuMTQrMTAyNS43KzE4NTAuNTQrMTAwMCsxODYzLjU0TDExOTMuNTQrMTg2NC41NEMxNTM5Ljc0KzE4NjYuNDQrMTg2NC41NCsxNjkzLjM0KzE4NjQuNTQrMTI5Ni42NEwxODY0LjU0KzcxNi45NDJDMTg2Ni40NCszMTIuNDQyKzE1NDEuNjQrMTM1LjQ0MisxMTk1LjQ0KzEzNS40NDJaIiBmaWxsPSIjMTcxNzE3IiBvcGFjaXR5PSIxIi8+ICAgICAgICA8cGF0aCBzdHlsZT0iZmlsdGVyOiB1cmwoI3NoYWRvdzIpIiBkPSJNMTY5NS41NCs2MzEuNDQyQzE2ODUuODQrMjc4LjA0MisxNDA5LjM0KzEzNS40NDIrMTA1Mi45NCsxMzUuNDQyTDM2MS43NCsxMzYuNDQyTDgwMy43NCs0OTAuNDQyTDEwNjAuNzQrNDkwLjQ0MkMxMzM1LjI0KzQ5MC40NDIrMTMzNS4yNCs4MzUuMzQyKzEwNjAuNzQrODM1LjM0MkwxMDYwLjc0KzExNjQuODRDMTE1MC4yMisxMTY0Ljg0KzEyMTAuNTMrMTIwMS40OCsxMjQxLjY4KzEyNTAuODdDMTMwNi4wNysxMzUzKzEyNDUuNzYrMTUwOS42NCsxMDYwLjc0KzE1MDkuNjRMMzYxLjc0KzE4NjMuNTRMMTA1Mi45NCsxODY0LjU0QzE0MDkuMjQrMTg2NC41NCsxNjg1Ljc0KzE3MjEuOTQrMTY5NS41NCsxMzY4LjU0QzE2OTUuNTQrMTIwNS45NCsxNjUxLjA0KzEwODQuNDQrMTU3Mi42NCs5OTkuOTQyQzE2NTEuMDQrOTE1LjU0MisxNjk1LjU0Kzc5NC4wNDIrMTY5NS41NCs2MzEuNDQyWiIgZmlsbD0iIzNFODJFNSIgb3BhY2l0eT0iMSIvPiAgICAgICAgPHBhdGggc3R5bGU9ImZpbHRlcjogdXJsKCNzaGFkb3cxKSIgZD0iTTE0NjkuMjUrNjMxLjQ0MkMxNDU5LjU1KzI3OC4wNDIrMTE4My4wNSsxMzUuNDQyKzgyNi42NSsxMzUuNDQyTDEzNS40NSsxMzUuNDQyTDEzNS40NSsxMDA0QzEzNS40NSsxMDA0KzEzNS40MjcrMTI1NS4yMSszNTUuNjI2KzEyNTUuMjFDNTc1LjgyNSsxMjU1LjIxKzU3NS44NDgrMTAwNCs1NzUuODQ4KzEwMDRMNTc3LjQ1KzQ5MC40NDJMODM0LjQ1KzQ5MC40NDJDMTEwOC45NSs0OTAuNDQyKzExMDguOTUrODM1LjM0Mis4MzQuNDUrODM1LjM0Mkw2NjQuNjUrODM1LjM0Mkw2NjQuNjUrMTE2NC44NEw4MzQuNDUrMTE2NC44NEM5MjMuOTMyKzExNjQuODQrOTg0LjI0NCsxMjAxLjQ4KzEwMTUuMzkrMTI1MC44N0MxMDc5Ljc4KzEzNTMrMTAxOS40NysxNTA5LjY0KzgzNC40NSsxNTA5LjY0TDEzNS40NSsxNTA5LjY0TDEzNS40NSsxODY0LjU0TDgyNi42NSsxODY0LjU0QzExODIuOTUrMTg2NC41NCsxNDU5LjQ1KzE3MjEuOTQrMTQ2OS4yNSsxMzY4LjU0QzE0NjkuMjUrMTIwNS45NCsxNDI0Ljc1KzEwODQuNDQrMTM0Ni4zNSs5OTkuOTQyQzE0MjQuNzUrOTE1LjU0MisxNDY5LjI1Kzc5NC4wNDIrMTQ2OS4yNSs2MzEuNDQyWiIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMSIvPiAgICA8L2c+PC9zdmc+);\n}\n#bd-loading-icon {\n position: fixed;\n bottom:5px;\n right:5px;\n z-index: 2147483647;\n display: block;\n width: 20px;\n height: 20px;\n background-size: 100% 100%;\n animation: bd-loading-animation 1.5s ease-in-out infinite;\n}\n\n@keyframes bd-loading-animation {\n 0% { opacity: 0.05; }\n 50% { opacity: 0.6; }\n 100% { opacity: 0.05; }\n}\n/* =============== */\n/* END V2 LOADER */";const Jt=document.createElement("div");Jt.id="bd-loading-icon",Jt.className="bd-loaderv2",Jt.title="BandagedBD is loading...";var Kt=class{static show(){document.body.appendChild(Yt),document.body.appendChild(Jt)}static hide(){Yt&&Yt.remove(),Jt&&Jt.remove()}};const{ipcRenderer:Xt}=s(0),es=f.GuildClasses;new class{constructor(){Xt.invoke("bd-config","get").then(e=>{this.hasStarted||(Object.assign(i,e),this.init())})}get dependencies(){return[{name:"jquery",type:"script",url:"//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js",backup:"//cdn.jsdelivr.net/gh/jquery/jquery@2.0.0/jquery.min.js",local:null},{name:"bd-stylesheet",type:"style",url:"//cdn.staticaly.com/gh/{{repo}}/BetterDiscordApp/{{hash}}/dist/style.css",backup:"//rauenzi.github.io/BetterDiscordApp/dist/style.css",local:"{{localServer}}/BetterDiscordApp/dist/style.css"}]}setConfig(e){this.hasStarted||Object.assign(i,e)}async init(){if(this.hasStarted)return;this.hasStarted=!0;let e=new Promise(e=>e());if(window.$&&window.jQuery||(e=this.loadDependencies()),w.initialize(),await D.initialize(),i.version
i.version&&W.showConfirmationModal(k.Startup.updateAvailable,k.Startup.updateInfo.format({version:t}),{confirmText:k.Startup.updateNow,cancelText:k.Startup.maybeLater,onConfirm:async()=>{const e=()=>{W.alert(k.Startup.updateFailed,k.Startup.manualUpdate)};try{if(!await this.updateInjector())return e();const t=s(0).remote.app;t.relaunch(),t.exit()}catch(t){e()}}}),c.log("Startup","Initializing Settings"),T.initialize(),await this.waitForGuilds(),F.initialize(),Zt.initialize();for(const e in n)n[e].initialize();await e,c.log("Startup","Loading Plugins");const o=Qe.initialize();c.log("Startup","Loading Themes");const r=Ze.initialize();c.log("Startup","Removing Loading Icon"),Kt.hide(),c.log("Startup","Collecting Startup Errors"),W.showAddonErrors({plugins:o,themes:r});const a=w.getBDData("version");i.bbdVersion>a&&(W.showChangelogModal(l),w.setBDData("version",i.bbdVersion))}waitForGuilds(){let e=0;return new Promise(t=>{const s=function(){e++,"complete"!=document.readyState&&setTimeout(s,100);const n=es.wrapper.split(" ")[0],o=es.listItem.split(" ")[0],r=es.blobContainer.split(" ")[0];return document.querySelectorAll(`.${n} .${o} .${r}`).length>0||e>=50?t(i.deferLoaded=!0):void setTimeout(s,100)};s()})}async loadDependencies(){for(const e of this.dependencies){const t=u.formatString(i.local&&null!=e.local?e.local:e.url,{repo:i.repo,hash:i.hash,localServer:i.localServer});c.log("Startup",`Loading Resource (${t})`);const s=("script"==e.type?C.injectScript:C.linkStyle).bind(C);try{await s(e.name,t)}catch(n){const o=u.formatString(e.backup,{minified:i.minified?".min":""});c.stacktrace("Startup",`Could not load ${t}. Using backup ${o}`,n);try{await s(e.name,o)}catch(s){c.stacktrace("Startup",`Could not load ${t}. Using backup ${o}`,n),"jquery"===e.name&&W.alert(k.Startup.jqueryFailed,k.Startup.jqueryFailedDetails)}}}}async updateInjector(){const e=w.injectionPath;if(!e)return!1;const t=s(2),n=s(1),i=s(6),o=s(7),r=s(8),a=s(3),l=n.resolve(e,".."),d=n.basename(e),h="https://github.com/rauenzi/BetterDiscordApp/archive/injector.zip",u=n.resolve(l,"injector.zip"),p=n.resolve(l,"BetterDiscordApp-injector");c.log("InjectorUpdate","Downloading "+h);let m=await new Promise(e=>{a.get({url:h,encoding:null},async(s,n,i)=>{if(s||200!==n.statusCode)return e(!1);await new Promise(e=>t.exists(u,e))&&await new Promise(e=>t.rename(u,`${u}.bak${Math.round(performance.now())}`,e)),c.log("InjectorUpdate","Writing "+u),t.writeFile(u,i,t=>e(!t))})});if(!m)return m;await new Promise(e=>t.exists(p,e))&&await new Promise(e=>t.rename(p,`${p}.bak${Math.round(performance.now())}`,e));const g=await new Promise(e=>o.open(u,{lazyEntries:!0},(t,s)=>e(s)));g.on("entry",(function(e){if(e.fileName.endsWith("/"))return g.readEntry();c.log("InjectorUpdate","Extracting "+e.fileName);const s=n.resolve(l,e.fileName);r.sync(n.dirname(s)),g.openReadStream(e,(function(e,n){if(e)return m=!1;n.on("end",(function(){g.readEntry()})),n.pipe(t.createWriteStream(s))}))})),g.readEntry(),await new Promise(e=>g.once("end",e));const f=n.resolve(l,`${d}.bak${Math.round(performance.now())}`);return await new Promise(s=>t.rename(e,f,s)),c.log("InjectorUpdate",`Renaming ${n.basename(p)} to ${d}`),m=await new Promise(s=>t.rename(p,e,e=>s(!e))),m?m?(await new Promise(e=>i(f,e)),await new Promise(e=>t.unlink(u,e)),c.log("InjectorUpdate","Injector Updated!"),m):(c.err("InjectorUpdate","Something went wrong... restoring backups."),await new Promise(e=>i(p,e)),await new Promise(s=>t.rename(f,e,s)),m):(c.err("InjectorUpdate","Failed to rename the final directory"),m)}};!function(){const e=Object.getOwnPropertyDescriptor(HTMLIFrameElement.prototype,"contentWindow").get;Object.defineProperty(HTMLIFrameElement.prototype,"contentWindow",{get:function(){const t=Reflect.apply(e,this,arguments);return new Proxy(t,{getOwnPropertyDescriptor:function(e,t){if("localStorage"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){if("localStorage"===t)return null;const s=e[t];return"function"==typeof s?s.bind(e):s}})}}),Object.defineProperty(Reflect,"apply",{value:Reflect.apply,writable:!1,configurable:!1}),Object.defineProperty(Function.prototype,"bind",{value:Function.prototype.bind,writable:!1,configurable:!1});const t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){const e=arguments[1];return e.toLowerCase().includes("api/webhooks")?null:Reflect.apply(t,this,arguments)}}(),function(){const e="betterdiscord/",t=s(4),n=t._load;t._load=function(t){if("betterdiscord"===t||t.startsWith(e)){if("bdapi"==t.substr(e.length))return Ke}return n.apply(this,arguments)}}(),window.BdApi=Ke,Kt.show()}]).default;
\ No newline at end of file
+!function(e){var t={};function s(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,s),i.l=!0,i.exports}s.m=e,s.c=t,s.d=function(e,t,n){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(s.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)s.d(n,i,function(t){return e[t]}.bind(null,i));return n},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s(s.s=9)}([function(e,t){e.exports=require("electron")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("request")},function(e,t){e.exports=require("module")},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("rimraf")},function(e,t){e.exports=require("yauzl")},function(e,t){e.exports=require("mkdirp")},function(e,t,s){"use strict";s.r(t);var n={};s.r(n),s.d(n,"CustomCSS",(function(){return ht})),s.d(n,"WindowPrefs",(function(){return ut})),s.d(n,"TwentyFourHour",(function(){return pt})),s.d(n,"ClassNormalizer",(function(){return gt})),s.d(n,"PublicServers",(function(){return xt})),s.d(n,"VoiceDisconnect",(function(){return Nt})),s.d(n,"ColoredText",(function(){return Dt})),s.d(n,"DarkMode",(function(){return At})),s.d(n,"MinimalMode",(function(){return kt})),s.d(n,"VoiceMode",(function(){return Tt})),s.d(n,"EmoteModule",(function(){return Ut})),s.d(n,"EmoteMenu",(function(){return qt})),s.d(n,"CopySelector",(function(){return $t})),s.d(n,"Debugger",(function(){return Wt})),s.d(n,"ReactDevTools",(function(){return Zt}));var i={local:!1,localServer:"//localhost:8080",minified:!0,version:"0.3.0",branch:"master",repo:"rauenzi",minSupportedVersion:"0.3.0",bbdVersion:"1.0.0"},o=[{type:"category",id:"general",name:"General",collapsible:!0,settings:[{type:"switch",id:"download",value:!0},{type:"switch",id:"emoteMenu",value:!0},{type:"switch",id:"hideEmojiMenu",value:!1,enableWith:"emoteMenu"},{type:"switch",id:"showNames",value:!0},{type:"switch",id:"modifiers",value:!0},{type:"switch",id:"animateOnHover",value:!1}]},{type:"category",id:"categories",name:"Categories",collapsible:!0,settings:[{type:"switch",id:"twitchglobal",value:!0},{type:"switch",id:"twitchsubscriber",value:!1},{type:"switch",id:"frankerfacez",value:!0},{type:"switch",id:"bttv",value:!0}]}],r=[{type:"category",id:"general",collapsible:!0,settings:[{type:"switch",id:"emotes",value:!0},{type:"switch",id:"publicServers",value:!0},{type:"switch",id:"voiceDisconnect",value:!1},{type:"switch",id:"twentyFourHour",value:!1},{type:"switch",id:"classNormalizer",value:!0},{type:"switch",id:"showToasts",value:!0}]},{type:"category",id:"appearance",collapsible:!0,settings:[{type:"switch",id:"voiceMode",value:!1},{type:"switch",id:"minimalMode",value:!1},{type:"switch",id:"hideChannels",value:!1,enableWith:"minimalMode"},{type:"switch",id:"darkMode",value:!0},{type:"switch",id:"coloredText",value:!1}]},{type:"category",id:"addons",collapsible:!0,shown:!1,settings:[{type:"switch",id:"addonErrors",value:!0},{type:"switch",id:"autoScroll",value:!0},{type:"switch",id:"autoReload",value:!0},{type:"dropdown",id:"editAction",value:"detached",options:[{value:"detached"},{value:"system"}]}]},{type:"category",id:"customcss",collapsible:!0,shown:!1,settings:[{type:"switch",id:"customcss",value:!0},{type:"switch",id:"liveUpdate",value:!1},{type:"dropdown",id:"openAction",value:"settings",options:[{value:"settings"},{value:"detached"},{value:"system"}]}]},{type:"category",id:"developer",collapsible:!0,shown:!1,settings:[{type:"switch",id:"debuggerHotkey",value:!1},{type:"switch",id:"copySelector",value:!1},{type:"switch",id:"reactDevTools",value:!1}]},{type:"category",id:"window",collapsible:!0,shown:!1,settings:[{type:"switch",id:"transparency",value:!1},{type:"switch",id:"frame",value:!1,hidden:!0}]}],a={Panels:{plugins:"Plugins",themes:"Themes",customcss:"Custom CSS"},Collections:{settings:{name:"Settings",general:{name:"General",emotes:{name:"Emote System",note:"Enables BD's emote system"},publicServers:{name:"Public Servers",note:"Display public servers button"},voiceDisconnect:{name:"Voice Disconnect",note:"Disconnect from voice server when closing Discord"},twentyFourHour:{name:"24-Hour Timestamps",note:"Hides channels when in minimal mode"},classNormalizer:{name:"Normalize Classes",note:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)"},showToasts:{name:"Show Toasts",note:"Shows a small notification for important information"}},appearance:{name:"Appearance",voiceMode:{name:"Voice Mode",note:"Hides everything that isn't voice chat"},minimalMode:{name:"Minimal Mode",note:"Hide elements and reduce the size of elements"},hideChannels:{name:"Hide Channels",note:"Hides channels when in minimal mode"},darkMode:{name:"Dark Mode",note:"Make certain elements dark by default"},coloredText:{name:"Colored Text",note:"Make text colour the same as role color"}},addons:{name:"Addon Manager",addonErrors:{name:"Show Addon Errors",note:"Shows a modal with plugin/theme errors"},autoScroll:{name:"Scroll To Settings",note:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)"},autoReload:{name:"Automatic Loading",note:"Automatically loads, reloads, and unloads plugins and themes"},editAction:{name:"Edit Action",note:"Where plugins & themes appear when editing",options:{detached:"Detached Window",system:"System Editor"}}},customcss:{name:"Custom CSS",customcss:{name:"Custom CSS",note:"Enables the Custom CSS tab"},liveUpdate:{name:"Live Update",note:"Updates the css as you type"},startDetached:{name:"Start Detached",note:"Clicking the Custom CSS tab opens the editor in a separate window"},nativeOpen:{name:"Open in Native Editor",note:"Clicking the Custom CSS tab opens your custom css in your native editor"},openAction:{name:"Editor Location",note:"Where Custom CSS should open by default",options:{settings:"Settings Menu",detached:"Detached Window",system:"System Editor"}}},developer:{name:"Developer Settings",debuggerHotkey:{name:"Debugger Hotkey",note:"Allows activating debugger when pressing F8"},copySelector:{name:"Copy Selector",note:'Adds a "Copy Selector" option to context menus when developer mode is active'},reactDevTools:{name:"React Developer Tools",note:"Injects your local installation of React Developer Tools into Discord"}},window:{name:"Window Preferences",transparency:{name:"Enable Transparency",note:"Enables the main window to be see-through (requires restart)"},frame:{name:"Window Frame",note:"Adds the native os window frame to the main window"}}},emotes:{name:"Emotes",general:{name:"General",download:{name:"Download Emotes",note:"Download emotes whenever they are out of date"},emoteMenu:{name:"Emote Menu",note:"Show Twitch/Favourite emotes in emote menu"},hideEmojiMenu:{name:"Hide Emoji Menu",note:"Hides Discord's emoji menu when using emote menu"},autoCaps:{name:"Emote Autocapitalization",note:"Autocapitalize emote commands"},showNames:{name:"Show Names",note:"Show emote names on hover"},modifiers:{name:"Show Emote Modifiers",note:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)"},animateOnHover:{name:"Animate On Hover",note:"Only animate the emote modifiers on hover"}},categories:{name:"Categories",twitchglobal:{name:"Twitch Globals",note:"Show Twitch global emotes"},twitchsubscriber:{name:"Twitch Subscribers",note:"Show Twitch subscriber emotes"},frankerfacez:{name:"FrankerFaceZ",note:"Show emotes from FFZ"},bttv:{name:"BetterTTV",note:"Show emotes from BTTV"}}}},Addons:{title:"{{name}} v{{version}} by {{author}}",openFolder:"Open {{type}} Folder",reload:"Reload",addonSettings:"Settings",website:"Website",source:"Source",invite:"Support Server",donate:"Donate",patreon:"Patreon",name:"Name",author:"Author",version:"Version",added:"Date Added",modified:"Date Modified",search:"Search {{type}}",editAddon:"Edit",deleteAddon:"Delete",confirmDelete:"Are you sure you want to delete {{name}}?",confirmationText:"You have unsaved changes to {{name}}. Closing this window will lose all those changes.",enabled:"{{name}} has been enabled.",disabled:"{{name}} has been disabled.",couldNotEnable:"{{name}} could not be enabled.",couldNotDisable:"{{name}} could not be disabled.",couldNotStart:"{{name}} could not be started.",couldNotStop:"{{name}} could not be stopped.",methodError:"{{method}} could not be fired.",unknownAuthor:"Unknown Author",noDescription:"Description not provided."},CustomCSS:{confirmationText:"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.",update:"Update",save:"Save",openNative:"Open in System Editor",openDetached:"Detach Window",settings:"Editor Settings",editorTitle:"Custom CSS Editor"},Developer:{copySelector:"Copy Selector"},Emotes:{loading:"Loading emotes in the background do not reload.",loaded:"All emotes successfully loaded.",clearEmotes:"Clear Emote Data",favoriteAction:"Favorite!"},PublicServers:{button:"public",join:"Join",joining:"Joining",joined:"Joined",loading:"Loading",loadMore:"Load More",notConnected:"Not connected to DiscordServers.com!",search:"Search",connect:"Connect",reconnect:"Reconnect",categories:"Categories",connection:"Connected as: {{username}}#{{discriminator}}",results:"Showing {{start}}-{{end}} of {{total}} results in {{category}}",query:"for {{query}}"},Modals:{confirmAction:"Are You Sure?",okay:"Okay",cancel:"Cancel",close:"Close",name:"Name",message:"Message",error:"Error",addonErrors:"Addon Errors",restartRequired:"Restart Required",restartNow:"Restart Now",restartLater:"Restart Later",additionalInfo:"Additional Info"},ReactDevTools:{notFound:"Extension Not Found",notFoundDetails:"Unable to find the React Developer Tools extension on your PC. Please install the extension on your local Chrome installation."},Sorting:{sortBy:"Sort By",order:"Order",ascending:"Ascending",descending:"Descending"},Startup:{notSupported:"Not Supported",versionMismatch:"BandagedBD Injector v{{injector}} is not supported by the latest remote (v{{remote}}).\n\nPlease download the latest version from [GitHub](https://github.com/rauenzi/BetterDiscordApp/releases/latest)",incompatibleApp:"BandagedBD does not work with {{app}}. Please uninstall one of them.",updateNow:"Update Now",maybeLater:"Maybe Later",updateAvailable:"Update Available",updateInfo:"There is an update available for BandagedBD's Injector ({{version}}).\n\nYou can either update and restart now, or later.",updateFailed:"Could Not Update",manualUpdate:"Unable to update automatically, please download the installer and reinstall normally.\n\n[Download Installer](https://github.com/rauenzi/BetterDiscordApp/releases/latest)",jqueryFailed:"jQuery Failed To Load",jqueryFailedDetails:"jQuery could not be loaded, and some plugins may not work properly. Proceed at your own risk."},WindowPrefs:{enabledInfo:"This option requires a transparent theme in order to work properly. On Windows this may break your aero snapping and maximizing.\n\nIn order to take effect, Discord needs to be restarted. Do you want to restart now?",disabledInfo:"In order to take effect, Discord needs to be restarted. Do you want to restart now?"}},l={description:"Don't be shocked, this modal is supposed to be here.",changes:[{title:"What's New?",items:["**BandagedBD will now keep you updated with changelogs!** I will try to only show a changelog when there's more than a tiny or internal change.","**Twitter (@BandagedBD)** I created a Twitter to try and provide support and such for those without access to the server. https://Twitter.com/BandagedBD"]},{title:"Fixes",type:"fixed",items:["**Colored Text** option should work again.","**Emotes** should show up in chat.","Fixed a bug where BBD attempted to patch the TabBar module incorrectly. (Thanks, DevilBro)"]},{title:"Minor Stuff",type:"improved",items:["**Colour->Color.** Swapped to using English-US spelling by default to be consistent, and to potentially be prepared for localization.","**Versions simplified.** The BandagedBD version now integrates into Discord's at the bottom-left of settings instead of randomly being a part of the setting list."]}]};const d={err:"error",error:"error",dbg:"debug",debug:"debug",log:"log",warn:"warn",info:"info"};class c{static stacktrace(e,t,s){console.error(`%c[${e}]%c ${t}\n\n%c`,"color: #3a71c1; font-weight: 700;","color: red; font-weight: 700;","color: red;",s)}static err(e,...t){c._log(e,t,"error")}static warn(e,...t){c._log(e,t,"warn")}static info(e,...t){c._log(e,t,"info")}static debug(e,...t){c._log(e,t,"debug")}static log(e,...t){c._log(e,t)}static _log(e,t,s="log"){s=c.parseType(s),Array.isArray(t)||(t=[t]),console[s](`%c[BandagedBD]%c [${e}]%c`,"color: #3E82E5; font-weight: 700;","color: #3a71c1;","",...t)}static parseType(e){return d[e]||"log"}}class h{static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static addStyle(e,t){document.head.append(h.createElement(``))}static removeStyle(e){const t=document.getElementById(e);t&&t.remove()}static addScript(e,t){return new Promise(s=>{const n=document.createElement("script");n.id=e,n.src=t,n.type="text/javascript",n.onload=s,document.head.append(n)})}static removeScript(e){e=this.escapeID(e);const t=document.getElementById(e);t&&t.remove()}static animate({timing:e=(e=>e),update:t,duration:s}){const n=performance.now();requestAnimationFrame((function i(o){let r=(o-n)/s;r>1&&(r=1);const a=e(r);t(a),r<1&&requestAnimationFrame(i)}))}static Q(e){const t=this.parseHTML(e);return(t instanceof NodeList?Array.from(t).some(e=>1===e.nodeType):1===t.nodeType)?t:this.query(e)}static query(e,t){return t||(t=document),t.querySelector(e)}static queryAll(e,t){return t||(t=document),t.querySelectorAll(e)}static parseHTML(e,t=!1){const s=document.createElement("template");s.innerHTML=e;const n=s.content.cloneNode(!0);return t?n:n.childNodes.length>1?n.childNodes:n.childNodes[0]}static createElement(e,t=!1){return this.parseHTML(e,t)}static escapeHTML(e){const t=document.createTextNode(""),s=document.createElement("span");return s.append(t),t.nodeValue=e,s.innerHTML}static addClass(e,...t){t=t.flat().filter(e=>e);for(let e=0;ee),e.classList.add(...t),e}static removeClass(e,...t){for(let e=0;ee),e.classList.remove(...t),e}static toggleClass(e,t,s){return t=t.toString().split(" ").filter(e=>e),void 0!==s?t.forEach(t=>e.classList.toggle(t,s)):t.forEach(t=>e.classList.toggle(t)),e}static hasClass(e,t){return t.toString().split(" ").filter(e=>e).every(t=>e.classList.contains(t))}static replaceClass(e,t,s){return e.classList.replace(t,s),e}static appendTo(e,t){return"string"==typeof t&&(t=this.query(t)),t?(t.append(e),e):null}static prependTo(e,t){return"string"==typeof t&&(t=this.query(t)),t?(t.prepend(e),e):null}static insertAfter(e,t){return t.parentNode.insertBefore(e,t.nextSibling),e}static after(e,t){return e.parentNode.insertBefore(t,e.nextSibling),e}static next(e,t=""){return t?e.querySelector("+ "+t):e.nextElementSibling}static nextAll(e){return e.querySelectorAll("~ *")}static nextUntil(e,t){const s=[];for(;e.nextElementSibling&&!e.nextElementSibling.matches(t);)s.push(e=e.nextElementSibling);return s}static previous(e,t=""){const s=e.previousElementSibling;return t?s&&s.matches(t)?s:null:s}static previousAll(e){const t=[];for(;e.previousElementSibling;)t.push(e=e.previousElementSibling);return t}static previousUntil(e,t){const s=[];for(;e.previousElementSibling&&!e.previousElementSibling.matches(t);)s.push(e=e.previousElementSibling);return s}static indexInParent(e){const t=e.parentNode.childNodes;let s=0;for(let n=0;n "+t)}static findChildren(e,t){return e.querySelectorAll(":scope > "+t)}static parents(e,t=""){const s=[];if(t)for(;e.parentElement&&e.parentElement.closest(t);)s.push(e=e.parentElement.closest(t));else for(;e.parentElement;)s.push(e=e.parentElement);return s}static parentsUntil(e,t){const s=[];for(;e.parentElement&&!e.parentElement.matches(t);)s.push(e=e.parentElement);return s}static siblings(e,t="*"){return Array.from(e.parentElement.children).filter(s=>s!=e&&s.matches(t))}static css(e,t,s){return void 0===s?global.getComputedStyle(e)[t]:(e.style[t]=s,e)}static width(e,t){return void 0===t?parseInt(getComputedStyle(e).width):(e.style.width=t,e)}static height(e,t){return void 0===t?parseInt(getComputedStyle(e).height):(e.style.height=t,e)}static text(e,t){return void 0===t?e.textContent:e.textContent=t}static innerWidth(e){return e.clientWidth}static innerHeight(e){return e.clientHeight}static outerWidth(e){return e.offsetWidth}static outerHeight(e){return e.offsetHeight}static offset(e){return e.getBoundingClientRect()}static get listeners(){return this._listeners||(this._listeners={})}static on(e,t,s,n){const[i,o]=t.split("."),r=s&&n;n||(n=s);const a=r?function(e){e.target.matches(s)&&n(e)}:n;e.addEventListener(i,a);const l=()=>{e.removeEventListener(i,a)};if(o){this.listeners[o]||(this.listeners[o]=[]);const t=()=>{l(),this.listeners[o].splice(this.listeners[o].findIndex(t=>t.event==i&&t.element==e),1)};return this.listeners[o].push({event:i,element:e,cancel:t}),t}return l}static once(e,t,s,n){const[i,o]=t.split("."),r=s&&n;n||(n=s);const a=r?function(t){t.target.matches(s)&&(n(t),e.removeEventListener(i,a))}:function(t){n(t),e.removeEventListener(i,a)};e.addEventListener(i,a);const l=()=>{e.removeEventListener(i,a)};if(o){this.listeners[o]||(this.listeners[o]=[]);const t=()=>{l(),this.listeners[o].splice(this.listeners[o].findIndex(t=>t.event==i&&t.element==e),1)};return this.listeners[o].push({event:i,element:e,cancel:t}),t}return l}static __offAll(e,t){const[s,n]=e.split(".");let i=e=>e.event==s,o=e=>e;t&&(i=e=>e.event==s&&e.element==t,o=e=>e.element==t);const r=this.listeners[n]||[],a=s?r.filter(i):r.filter(o);for(let e=0;e{this.observer.unsubscribe(n),t()};return this.observer.subscribe(n,t=>{const n=Array.from(s?t.addedNodes:t.removedNodes),i=n.indexOf(e)>-1,o=n.some(t=>t.contains(e));return i||o}),e}static onMount(e,t){return this.onMountChange(e,t)}static onUnmount(e,t){return this.onMountChange(e,t,!1)}static onAdded(e,t){return this.onMount(e,t)}static onRemoved(e,t){return this.onUnmount(e,t,!1)}static wrap(e){const t=this.parseHTML('
');for(let s=0;s1?n.childNodes:n.childNodes[0]}static getTextArea(){return h.query(".channelTextArea-1LDbYG textarea")}static insertText(e,t){e.focus(),e.selectionStart=0,e.selectionEnd=e.value.length,document.execCommand("insertText",!1,t)}static escape(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}static testJSON(e){try{return JSON.parse(e)}catch(e){return!1}}static suppressErrors(e,t){return(...s)=>{try{return e(...s)}catch(e){c.stacktrace("SuppressedError","Error occurred in "+t,e)}}}static onRemoved(e,t){const s=new MutationObserver(n=>{for(let i=0;i-1,l=r.some(t=>t.contains(e));(a||l)&&(s.disconnect(),t())}});s.observe(document.body,{subtree:!0,childList:!0})}static isEmpty(e){if(null==e||null==e||""==e)return!0;if("object"!=typeof e)return!1;if(Array.isArray(e))return 0==e.length;for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}static memoizeObject(e){const t=new Proxy(e,{get:function(e,t){if(e.hasOwnProperty(t)){if(Object.getOwnPropertyDescriptor(e,t).get){const s=e[t];delete e[t],e[t]=s}return e[t]}},set:function(e,t,s){return e.hasOwnProperty(t)?c.error("MemoizedObject","Trying to overwrite existing property"):(e[t]=s,e[t])}});return Object.defineProperty(t,"hasOwnProperty",{value:function(e){return void 0!==this[e]}}),t}static extend(e,...t){for(let s=0;se.startsWith("__reactInternalInstance"))]||null}static getOwnerInstance(e,{include:t,exclude:s=["Popout","Tooltip","Scroller","BackgroundFlash"],filter:n=(e=>e)}={}){if(void 0===e)return;const i=void 0===t,o=i?s:t;function r(e){const t=function(e){const t=e.type;return t&&(t.displayName||t.name)||null}(e);return null!==t&&!!(o.includes(t)^i)}let a=this.getReactInstance(e);for(a=a&&a.return;null!==a;a=a.return){if(null===a)continue;const e=a.stateNode;if(null!==a&&!(e instanceof HTMLElement)&&r(a)&&n(e))return e}return null}}class p{static byProperties(e,t=(e=>e)){return s=>{const n=t(s);return!!n&&e.every(e=>void 0!==n[e])}}static byPrototypeFields(e,t=(e=>e)){return s=>{const n=t(s);return!!n&&(!!n.prototype&&e.every(e=>void 0!==n.prototype[e]))}}static byCode(e,t=(e=>e)){return s=>{const n=t(s);return!!n&&-1!==n.toString([]).search(e)}}static byString(...e){return t=>{const s=t.toString([]);for(const t of e)if(!s.includes(t))return!1;return!0}}static byDisplayName(e){return t=>t&&t.displayName===e}static combine(...e){return t=>e.every(e=>e(t))}}const m=e=>{if(e.remove&&e.set&&e.clear&&e.get&&!e.sort)return null;if(!e.getToken&&!e.getEmail&&!e.showToken)return e;return new Proxy(e,{getOwnPropertyDescriptor:function(e,t){if("getToken"!==t&&"getEmail"!==t&&"showToken"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){return"getToken"==t?()=>"mfa.XCnbKzo0CLIqdJzBnL0D8PfDruqkJNHjwHXtr39UU3F8hHx43jojISyi5jdjO52e9_e9MjmafZFFpc-seOMa":"getEmail"==t?()=>"puppet11112@gmail.com":"showToken"==t?()=>!0:e[t]}})};class g{static find(e,t=!0){return this.getModule(e,t)}static findAll(e){return this.getModule(e,!1)}static findByUniqueProperties(e,t=!0){return t?this.getByProps(...e):this.getAllByProps(...e)}static findByDisplayName(e){return this.getByDisplayName(e)}static getModule(e,t=!0){const s=this.getAllModules(),n=[];for(const i in s){if(!s.hasOwnProperty(i))continue;const o=s[i],{exports:r}=o;let a=null;if(r&&(r.__esModule&&r.default&&e(r.default)&&(a=r.default),e(r)&&(a=r),a)){if(t)return m(a);n.push(m(a))}}return t||0==n.length?void 0:n}static getModules(e){return this.getModule(e,!1)}static getByDisplayName(e){return this.getModule(p.byDisplayName(e),!0)}static getByRegex(e,t=!0){return this.getModule(p.byCode(e),t)}static getByPrototypes(...e){return this.getModule(p.byPrototypeFields(e),!0)}static getAllByPrototypes(...e){return this.getModule(p.byPrototypeFields(e),!1)}static getByProps(...e){return this.getModule(p.byProperties(e),!0)}static getAllByProps(...e){return this.getModule(p.byProperties(e),!1)}static getByString(...e){return this.getModule(p.byString(...e),!0)}static getAllByString(...e){return this.getModule(p.byString(...e),!1)}static get require(){if(this._require)return this._require;const e="bbd-webpackmodules",t="function"==typeof window.webpackJsonp?window.webpackJsonp([],{[e]:(e,t,s)=>t.default=s},[e]).default:window.webpackJsonp.push([[],{[e]:(e,t,s)=>e.exports=s},[[e]]]);return delete t.m[e],delete t.c[e],this._require=t}static getAllModules(){return this.require.c}}var f=u.memoizeObject({get React(){return g.getByProps("createElement","cloneElement")},get ReactDOM(){return g.getByProps("render","findDOMNode")},get Flux(){return g.getByProps("connectStores")},get Events(){return g.getByPrototypes("setMaxListeners","emit")},get GuildStore(){return g.getByProps("getGuild")},get SortedGuildStore(){return g.getByProps("getSortedGuilds")},get SelectedGuildStore(){return g.getByProps("getLastSelectedGuildId")},get GuildSync(){return g.getByProps("getSyncedGuilds")},get GuildInfo(){return g.getByProps("getAcronym")},get GuildChannelsStore(){return g.getByProps("getChannels","getDefaultChannel")},get GuildMemberStore(){return g.getByProps("getMember")},get MemberCountStore(){return g.getByProps("getMemberCounts")},get GuildEmojiStore(){return g.getByProps("getEmojis")},get GuildActions(){return g.getByProps("markGuildAsRead")},get GuildPermissions(){return g.getByProps("getGuildPermissions")},get ChannelStore(){return g.getByProps("getChannels","getDMFromUserId")},get SelectedChannelStore(){return g.getByProps("getLastSelectedChannelId")},get ChannelActions(){return g.getByProps("selectChannel")},get PrivateChannelActions(){return g.getByProps("openPrivateChannel")},get ChannelSelector(){return g.getByProps("selectGuild","selectChannel")},get UserInfoStore(){return g.getByProps("getToken")},get UserSettingsStore(){return g.getByProps("guildPositions")},get AccountManager(){return g.getByProps("register","login")},get UserSettingsUpdater(){return g.getByProps("updateRemoteSettings")},get OnlineWatcher(){return g.getByProps("isOnline")},get CurrentUserIdle(){return g.getByProps("getIdleTime")},get RelationshipStore(){return g.getByProps("isBlocked","getFriendIDs")},get RelationshipManager(){return g.getByProps("addRelationship")},get MentionStore(){return g.getByProps("getMentions")},get UserStore(){return g.getByProps("getCurrentUser")},get UserStatusStore(){return g.getByProps("getStatus","getState")},get UserTypingStore(){return g.getByProps("isTyping")},get UserActivityStore(){return g.getByProps("getActivity")},get UserNameResolver(){return g.getByProps("getName")},get UserNoteStore(){return g.getByProps("getNote")},get UserNoteActions(){return g.getByProps("updateNote")},get EmojiInfo(){return g.getByProps("isEmojiDisabled")},get EmojiUtils(){return g.getByProps("getGuildEmoji")},get EmojiStore(){return g.getByProps("getByCategory","EMOJI_NAME_RE")},get InviteStore(){return g.getByProps("getInvites")},get InviteResolver(){return g.getByProps("findInvite")},get InviteActions(){return g.getByProps("acceptInvite")},get DiscordConstants(){return g.getByProps("Permissions","ActivityTypes","StatusTypes")},get DiscordPermissions(){return g.getByProps("Permissions","ActivityTypes","StatusTypes").Permissions},get PermissionUtils(){return g.getByProps("getHighestRole")},get ColorConverter(){return g.getByProps("hex2int")},get ColorShader(){return g.getByProps("darken")},get TinyColor(){return g.getByPrototypes("toRgb")},get ClassResolver(){return g.getByProps("getClass")},get ButtonData(){return g.getByProps("ButtonSizes")},get IconNames(){return g.getByProps("IconNames")},get NavigationUtils(){return g.getByProps("transitionTo","replaceWith","getHistory")},get MessageStore(){return g.getByProps("getMessages")},get MessageActions(){return g.getByProps("jumpToMessage","_sendMessage")},get MessageQueue(){return g.getByProps("enqueue")},get MessageParser(){return g.getByProps("createMessage","parse","unparse")},get hljs(){return g.getByProps("highlight","highlightBlock")},get SimpleMarkdown(){return g.getByProps("parseBlock","parseInline","defaultOutput")},get ExperimentStore(){return g.getByProps("getExperimentOverrides")},get ExperimentsManager(){return g.getByProps("isDeveloper")},get CurrentExperiment(){return g.getByProps("getExperimentId")},get ImageResolver(){return g.getByProps("getUserAvatarURL","getGuildIconURL")},get ImageUtils(){return g.getByProps("getSizedImageSrc")},get AvatarDefaults(){return g.getByProps("getUserAvatarURL","DEFAULT_AVATARS")},get WindowInfo(){return g.getByProps("isFocused","windowSize")},get TagInfo(){return g.getByProps("VALID_TAG_NAMES")},get DOMInfo(){return g.getByProps("canUseDOM")},get LocaleManager(){return g.getByProps("setLocale")},get Moment(){return g.getByProps("parseZone")},get LocationManager(){return g.getByProps("createLocation")},get Timestamps(){return g.getByProps("fromTimestamp")},get TimeFormatter(){return g.getByProps("dateFormat")},get Strings(){return g.getByProps("Messages").Messages},get StringFormats(){return g.getByProps("a","z")},get StringUtils(){return g.getByProps("toASCII")},get URLParser(){return g.getByProps("Url","parse")},get ExtraURLs(){return g.getByProps("getArticleURL")},get DNDActions(){return g.getByProps("beginDrag")},get DNDSources(){return g.getByProps("addTarget")},get DNDObjects(){return g.getByProps("DragSource")},get MediaDeviceInfo(){return g.getByProps("Codecs","SUPPORTED_BROWSERS")},get MediaInfo(){return g.getByProps("getOutputVolume")},get MediaEngineInfo(){return g.getByProps("MediaEngineFeatures")},get VoiceInfo(){return g.getByProps("EchoCancellation")},get VideoStream(){return g.getByProps("getVideoStream")},get SoundModule(){return g.getByProps("playSound")},get ElectronModule(){return g.getByProps("setBadge")},get Dispatcher(){return g.getByProps("dirtyDispatch")},get PathUtils(){return g.getByProps("hasBasename")},get NotificationModule(){return g.getByProps("showNotification")},get RouterModule(){return g.getByProps("Router")},get APIModule(){return g.getByProps("getAPIBaseURL")},get AnalyticEvents(){return g.getByProps("AnalyticEventConfigs")},get KeyGenerator(){return g.getByRegex(/"binary"/)},get Buffers(){return g.getByProps("Buffer","kMaxLength")},get DeviceStore(){return g.getByProps("getDevices")},get SoftwareInfo(){return g.getByProps("os")},get CurrentContext(){return g.getByProps("setTagsContext")},get GuildClasses(){const e=g.getByProps("wrapper","unreadMentionsBar"),t=g.getByProps("guildsError","selected"),s=g.getByProps("blobContainer");return Object.assign({},e,t,s)},get LayerStack(){return g.getByProps("pushLayer")}});const y=s(2),b=s(1),v=DiscordNative.globals?DiscordNative.globals.releaseChannel:DiscordNative.app?DiscordNative.app.getReleaseChannel():"stable";var w=new class{constructor(){this.data={misc:{}},this.pluginData={},this.cacheData={}}initialize(){y.existsSync(this.baseFolder)||y.mkdirSync(this.baseFolder),y.existsSync(this.dataFolder)||y.mkdirSync(this.dataFolder),y.existsSync(this.localeFolder)||y.mkdirSync(this.localeFolder),y.existsSync(this.emoteFolder)||y.mkdirSync(this.emoteFolder),y.existsSync(this.cacheFile)||y.writeFileSync(this.cacheFile,JSON.stringify({})),y.existsSync(this.customCSS)||y.writeFileSync(this.customCSS,"");const e=y.readdirSync(this.dataFolder).filter(e=>!y.statSync(b.resolve(this.dataFolder,e)).isDirectory()&&e.endsWith(".json"));for(const t of e)this.data[t.split(".")[0]]=require(b.resolve(this.dataFolder,t));this.cacheData=u.testJSON(y.readFileSync(this.cacheFile).toString())||{}}get injectionPath(){if(this._injectionPath)return this._injectionPath;const e=s(0).remote.app,t=e.getAppPath(),n=e.getPath("userData"),i=b.resolve(n,e.getVersion(),"modules","discord_desktop_core","injector"),o=b.resolve(t,"..","app"),r=y.existsSync(o)?o:y.existsSync(i)?i:null;return this._injectionPath=r||null}get customCSS(){return this._customCSS||(this._customCSS=b.resolve(this.dataFolder,"custom.css"))}get baseFolder(){return this._baseFolder||(this._baseFolder=b.resolve(i.dataPath,"data"))}get dataFolder(){return this._dataFolder||(this._dataFolder=b.resolve(this.baseFolder,""+v))}get localeFolder(){return this._localeFolder||(this._localeFolder=b.resolve(this.baseFolder,"locales"))}get emoteFolder(){return this._emoteFolder||(this._emoteFolder=b.resolve(this.baseFolder,"emotes"))}get cacheFile(){return this._cacheFile||(this._cacheFile=b.resolve(this.baseFolder,".cache"))}getPluginFile(e){return b.resolve(i.dataPath,"plugins",e+".config.json")}_getFile(e){return"settings"==e||"plugins"==e||"themes"==e||"window"==e?b.resolve(this.dataFolder,e+".json"):b.resolve(this.dataFolder,"misc.json")}getBDData(e){return this.data.misc[e]||""}setBDData(e,t){this.data.misc[e]=t,y.writeFileSync(b.resolve(this.dataFolder,"misc.json"),JSON.stringify(this.data.misc,null,4))}getLocale(e){const t=b.resolve(this.localeFolder,e+".json");return y.existsSync(t)?u.testJSON(y.readFileSync(t).toString()):null}saveLocale(e,t){y.writeFileSync(b.resolve(this.localeFolder,e+".json"),JSON.stringify(t,null,4))}getCacheHash(e,t){return this.cacheData[e]&&y.existsSync(b.resolve(this.baseFolder,e,t+".json"))&&this.cacheData[e][t]||""}setCacheHash(e,t,s){this.cacheData[e]||(this.cacheData[e]={}),this.cacheData[e][t]=s,y.writeFileSync(this.cacheFile,JSON.stringify(this.cacheData))}invalidateCache(e,t){this.cacheData[e]&&(delete this.cacheData[e][t],y.writeFileSync(this.cacheFile,JSON.stringify(this.cacheData)))}emotesExist(e){return y.existsSync(b.resolve(this.emoteFolder,e+".json"))}getEmoteData(e){const t=b.resolve(this.emoteFolder,e+".json");return y.existsSync(t)?u.testJSON(y.readFileSync(t).toString()):null}saveEmoteData(e,t){y.writeFileSync(b.resolve(this.emoteFolder,e+".json"),JSON.stringify(t))}getData(e){return this.data[e]||""}setData(e,t){this.data[e]=t,y.writeFileSync(b.resolve(this.dataFolder,e+".json"),JSON.stringify(t,null,4))}loadCustomCSS(){return y.readFileSync(this.customCSS).toString()}saveCustomCSS(e){return y.writeFileSync(this.customCSS,e)}getPluginData(e,t){return void 0!==this.pluginData[e]?this.pluginData[e][t]||void 0:y.existsSync(this.getPluginFile(e))?(this.pluginData[e]=JSON.parse(y.readFileSync(this.getPluginFile(e))),this.pluginData[e][t]||void 0):void 0}setPluginData(e,t,s){void 0!==s&&(void 0===this.pluginData[e]&&(this.pluginData[e]={}),this.pluginData[e][t]=s,y.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4)))}deletePluginData(e,t){void 0===this.pluginData[e]&&(this.pluginData[e]={}),delete this.pluginData[e][t],y.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4))}};class C{static get bdHead(){return this.getElement("bd-head")}static get bdBody(){return this.getElement("bd-body")}static get bdScripts(){return this.getElement("bd-scripts")}static get bdStyles(){return this.getElement("bd-styles")}static get bdThemes(){return this.getElement("bd-themes")}static get bdCustomCSS(){return this.getElement("#customcss")}static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static getElement(e,t=document){return e instanceof Node?e:t.querySelector(e)}static createElement(e,t={}){const{className:s,id:n,target:i}=t,o=document.createElement(e);return s&&(o.className=s),n&&(o.id=n),i&&this.getElement(i).append(o),o}static removeStyle(e){e=this.escapeID(e);const t=this.getElement("#"+e,this.bdStyles);t&&t.remove()}static injectStyle(e,t){e=this.escapeID(e);const s=this.getElement("#"+e,this.bdStyles)||this.createElement("style",{id:e});s.textContent=t,this.bdStyles.append(s)}static unlinkStyle(e){return this.removeStyle(e)}static linkStyle(e,t){return e=this.escapeID(e),new Promise(s=>{const n=this.getElement("#"+e,this.bdStyles)||this.createElement("link",{id:e});n.rel="stylesheet",n.href=t,n.onload=s,this.bdStyles.append(n)})}static removeTheme(e){e=this.escapeID(e);const t=this.getElement("#"+e,this.bdThemes);t&&t.remove()}static injectTheme(e,t){e=this.escapeID(e);const s=this.getElement("#"+e,this.bdThemes)||this.createElement("style",{id:e});s.textContent=t,this.bdThemes.append(s)}static updateCustomCSS(e){this.bdCustomCSS.textContent=e}static removeScript(e){e=this.escapeID(e);const t=this.getElement("#"+e,this.bdScripts);t&&t.remove()}static injectScript(e,t){return e=this.escapeID(e),new Promise(s=>{const n=this.getElement("#"+e,this.bdScripts)||this.createElement("script",{id:e});n.src=t,n.onload=s,this.bdScripts.append(n)})}}C.createElement("bd-head",{target:document.head}),C.createElement("bd-body",{target:document.body}),C.createElement("bd-scripts",{target:C.bdHead}),C.createElement("bd-styles",{target:C.bdHead}),C.createElement("bd-themes",{target:C.bdHead}),C.createElement("style",{id:"customcss",target:C.bdHead});const S=s(5);var E=new class extends S{constructor(){super(),this.setMaxListeners(20)}dispatch(e,...t){this.emit(e,...t)}};const M=s(3),{Dispatcher:x,DiscordConstants:N,UserSettingsStore:P}=f;var D=new class{get discordLocale(){return P.locale.split("-")[0]}get defaultLocale(){return"en"}constructor(){this.locale="",this.strings={}}async initialize(){await this.setLocale(this.discordLocale),x.subscribe(N.ActionTypes.USER_SETTINGS_UPDATE,({settings:e})=>{const t=e.locale;t&&t!=this.locale&&this.setLocale(t.split("-")[0])})}async setLocale(e){let t;if(e!=this.defaultLocale){if(t=await this.getLocaleStrings(e),!t)return this.setLocale(this.defaultLocale)}else t=a;this.locale=e,u.extend(this.strings,t),E.emit("strings-updated")}async getLocaleStrings(e){const t=w.getCacheHash("locales",e);if(!t)return await this.downloadLocale(e);const s=await this.downloadLocale(e,t);return s||w.getLocale(e)}downloadLocale(e,t=""){return new Promise(s=>{const n={url:u.repoUrl(`assets/locales/${e}.json`),timeout:2e3,json:!0};t&&(n.headers={"If-None-Match":t}),M.get(n,(t,n,i)=>{if(t||200!==n.statusCode)return s(null);w.saveLocale(e,i),w.setCacheHash("locales",e,n.headers.etag),s(i)})})}};class A extends String{format(e){return u.formatString(this,e)}}var k=new Proxy(D.strings,{get:function(e,t){return e.hasOwnProperty(t)?new Proxy(e[t],{get:function(e,t){return"string"==typeof e[t]?new A(e[t]):e[t]}}):new Proxy({},{get:function(){return`String group "${t}" not found.`}})}}),T=new class{constructor(){this.state={},this.collections=[],this.panels=[],this.updateStrings=this.updateStrings.bind(this)}initialize(){this.registerCollection("settings","Settings",r),E.on("strings-updated",this.updateStrings)}registerCollection(e,t,s,n=null){if(this.collections.find(t=>t.id==e))return c.error("Settings","Already have a collection with id "+e);this.collections.push({type:"collection",id:e,name:t,settings:s,button:n}),this.setupCollection(e),this.loadCollection(e),this.updateStrings()}removeCollection(e){const t=this.collections.findIndex(t=>t.id==e);if(!t<0)return c.error("Settings","No collection with id "+e);this.collections.splice(t,1)}registerPanel(e,t,s){if(this.panels.find(t=>t.id==e))return c.error("Settings","Already have a panel with id "+e);const{element:n,onClick:i,order:o=1}=s,r={id:e,order:o,label:t,section:e};i&&(r.clickListener=i),n&&(r.element=n instanceof f.React.Component?()=>f.React.createElement(n,{}):"function"==typeof n?n:()=>n),this.panels.push(r)}removePanel(e){const t=this.panels.findIndex(t=>t.id==e);if(!t<0)return c.error("Settings","No collection with id "+e);this.panels.splice(t,1)}getPath(e,t="",s=""){return{collection:3==e.length?e[0]:t,category:3==e.length?e[1]:2==e.length?e[0]:s,setting:e[e.length-1]}}setupCollection(e){const t=this.collections.find(t=>t.id==e);if(!t)return;const s=t.settings;this.state[t.id]||(this.state[t.id]={});for(let e=0;e{const e=this.state[o.collection][o.category][o.setting];return s.enableWith?!e:e}})}}}}saveSettings(){for(const e in this.state)this.saveCollection(e)}loadSettings(){for(const e in this.state)this.loadCollection(e)}saveCollection(e){w.setData(e,this.state[e])}loadCollection(e){const t=w.getData(e);if(!t)return this.saveCollection(e);for(const s in this.state[e]){t[s]||Object.assign(t,{[s]:this.state[e][s]});for(const n in this.state[e][s]){if(null==t[s][n])continue;const i=this.getSetting(e,s,n);if("switch"==i.type&&(this.state[e][s][n]=t[s][n]),"dropdown"==i.type){i.options.some(e=>e.value==t[s][n])&&(this.state[e][s][n]=t[s][n])}}}this.saveCollection(e)}onSettingChange(e,t,s,n){this.state[e][t][s]=n,E.dispatch("setting-updated",e,t,s,n),this.saveCollection(e)}getSetting(e,t,s){return 2==arguments.length?this.collections[0].find(e=>e.id==arguments[0]).settings.find(e=>e.id==arguments[1]):this.collections.find(t=>t.id==e).settings.find(e=>e.id==t).settings.find(e=>e.id==s)}get(e,t,s){return 2==arguments.length&&(s=t,t=e,e="settings"),!(!this.state[e]||!this.state[e][t])&&this.state[e][t][s]}set(e,t,s,n){return 3==arguments.length&&(n=s,s=t,t=e,e="settings"),this.onSettingChange(e,t,s,n)}on(e,t,s,n){const i=(i,o,r,a)=>{i===e&&o===t&&r===s&&n(a)};return E.on("setting-updated",i),()=>{E.off("setting-updated",i)}}updateStrings(){for(let e=0;e"before"===e.type))try{t.callback(this,arguments)}catch(s){c.err("Patcher",`Could not fire before callback of ${e.functionName} for ${t.caller}`,s)}const s=e.children.filter(e=>"instead"===e.type);if(s.length)for(const n of s)try{const s=n.callback(this,arguments,e.originalFunction.bind(this));void 0!==s&&(t=s)}catch(t){c.err("Patcher",`Could not fire instead callback of ${e.functionName} for ${n.caller}`,t)}else t=e.originalFunction.apply(this,arguments);for(const s of e.children.filter(e=>"after"===e.type))try{const e=s.callback(this,arguments,t);void 0!==e&&(t=e)}catch(t){c.err("Patcher",`Could not fire after callback of ${e.functionName} for ${s.caller}`,t)}return t}}static rePatch(e){e.proxyFunction=e.module[e.functionName]=this.makeOverride(e)}static makePatch(e,t,s){const n={name:s,module:e,functionName:t,originalFunction:e[t],proxyFunction:null,revert:()=>{n.module[n.functionName]=n.originalFunction,n.proxyFunction=null,n.children=[]},counter:0,children:[]};return n.proxyFunction=e[t]=this.makeOverride(n),this.patches.push(n),n}static before(e,t,s,n,i={}){return this.pushChildPatch(e,t,s,n,Object.assign(i,{type:"before"}))}static after(e,t,s,n,i={}){return this.pushChildPatch(e,t,s,n,Object.assign(i,{type:"after"}))}static instead(e,t,s,n,i={}){return this.pushChildPatch(e,t,s,n,Object.assign(i,{type:"instead"}))}static pushChildPatch(e,t,s,n,i={}){const{type:o="after",forcePatch:r=!0}=i,a=this.resolveModule(t);if(!a)return null;if(!a[s]&&r&&(a[s]=function(){}),!(a[s]instanceof Function))return null;"string"==typeof t&&(i.displayName=t);const l=`${i.displayName||a.displayName||a.name||a.constructor.displayName||a.constructor.name}.${s}`,d=this.patches.find(e=>e.module==a&&e.functionName==s)||this.makePatch(a,s,l);d.proxyFunction||this.rePatch(d);const c={caller:e,type:o,id:d.counter,callback:n,unpatch:()=>{if(d.children.splice(d.children.findIndex(e=>e.id===c.id&&e.type===o),1),d.children.length<=0){const e=this.patches.findIndex(e=>e.module==a&&e.functionName==s);this.patches[e].revert(),this.patches.splice(e,1)}}};return d.children.push(c),d.counter++,c.unpatch}}const j=f.React,B={},I=new Set,z=new Set;var F=new class{get named(){return B}get unknown(){return I}get listeners(){return z}constructor(){L.after("ReactComponents",j,"createElement",(e,t,s)=>{this.walkRenderTree(s)}),L.instead("ReactComponents",j.Component.prototype,"componentWillMount",e=>{this.addComponent(e.constructor)}),L.instead("ReactComponents",j.Component.prototype,"UNSAFE_componentWillMount",e=>{this.addComponent(e.constructor)}),L.instead("ReactComponents",j.PureComponent.prototype,"componentWillMount",e=>{this.addComponent(e.constructor)}),L.instead("ReactComponents",j.PureComponent.prototype,"UNSAFE_componentWillMount",e=>{this.addComponent(e.constructor)})}initialize(){this.walkReactTree(document.querySelector("#app-mount")._reactRootContainer._internalRoot.current)}get(e,t){return new Promise(s=>{if(B[e])return s(B[e]);if(z.add({name:e,filter:t,resolve:s}),t)for(const s of I)t(s)&&(s.displayName=e,I.delete(s),this.addNamedComponent(s))})}addNamedComponent(e){const t=e.displayName;if(!B[t]){B[t]=e;for(const s of z)s.name===t&&(s.resolve(e),z.delete(s))}}addUnknownComponent(e){if(!I.has(e)){for(const t of z)t.filter&&t.filter(e)&&(e.displayName=t.name,this.addNamedComponent(e));e.displayName||I.add(e)}}addComponent(e){return e.displayName?this.addNamedComponent(e):this.addUnknownComponent(e)}walkRenderTree(e){if(e){if("function"==typeof e.type&&this.addComponent(e.type),Array.isArray(e))for(const t of e)this.walkRenderTree(t);e.props&&e.props.children&&this.walkRenderTree(e.props.children)}}walkReactTree(e){e&&("function"==typeof e.type&&this.addComponent(e.type),e.child&&this.walkReactTree(e.child),e.sibling&&this.walkReactTree(e.sibling))}};const O=f.React,R=f.ReactDOM,U=g.getByProps("sidebar","hasNotice").sidebar.split(" ")[0],H=g.getByProps("membersWrap").membersWrap.split(" ")[0];class q{static get shouldShowToasts(){return T.get("settings","general","showToasts")}static async success(e,t={}){return this.show(e,Object.assign(t,{type:"success"}))}static async info(e,t={}){return this.show(e,Object.assign(t,{type:"info"}))}static async warning(e,t={}){return this.show(e,Object.assign(t,{type:"warning"}))}static async error(e,t={}){return this.show(e,Object.assign(t,{type:"error"}))}static async default(e,t={}){return this.show(e,Object.assign(t,{type:""}))}static show(e,t={}){const{type:s="",icon:n=!0,timeout:i=3e3,forceShow:o=!1}=t;if(!this.shouldShowToasts&&!o)return;this.ensureContainer();const r=document.createElement("div");r.classList.add("bd-toast"),s&&r.classList.add("toast-"+s),s&&n&&r.classList.add("icon"),r.innerText=e,document.querySelector(".bd-toasts").appendChild(r),setTimeout(()=>{r.classList.add("closing"),setTimeout(()=>{r.remove(),document.querySelectorAll(".bd-toasts .bd-toast").length||document.querySelector(".bd-toasts").remove()},300)},i)}static ensureContainer(){if(document.querySelector(".bd-toasts"))return;const e=document.querySelector(`.${U} + div`),t=e.querySelector("."+H),s=e?e.querySelector("form"):null,n=e?e.getBoundingClientRect().left:310,i=t?t.getBoundingClientRect().left:0,o=i?i-e.getBoundingClientRect().left:e.offsetWidth,r=s?s.offsetHeight:80,a=document.createElement("div");a.classList.add("bd-toasts"),a.style.setProperty("left",n+"px"),a.style.setProperty("width",o+"px"),a.style.setProperty("bottom",r+"px"),C.bdBody.appendChild(a)}}class W{static get shouldShowAddonErrors(){return T.get("settings","addons","addonErrors")}static get ModalActions(){return g.getByProps("openModal","updateModal")}static get ModalStack(){return g.getByProps("push","update","pop","popWithKey")}static get AlertModal(){return g.getByPrototypes("handleCancel","handleSubmit","handleMinorConfirm")}static get TextElement(){return g.getByProps("Sizes","Weights")}static get ConfirmationModal(){return g.findByDisplayName("ConfirmModal")}static get Markdown(){return g.findByDisplayName("Markdown")}static default(e,t){const s=h.createElement(``);s.querySelector(".footer button").addEventListener("click",()=>{s.classList.add("closing"),setTimeout(()=>{s.remove()},300)}),s.querySelector(".bd-backdrop").addEventListener("click",()=>{s.classList.add("closing"),setTimeout(()=>{s.remove()},300)}),document.querySelector("#app-mount").append(s)}static alert(e,t){this.showConfirmationModal(e,t,{cancelText:""})}static showConfirmationModal(e,t,s={}){const n=this.Markdown,i=this.ConfirmationModal,o=this.ModalActions;if(t instanceof A&&(t=t.toString()),!this.ModalActions||!this.ConfirmationModal||!this.Markdown)return this.default(e,t);const r=()=>{},{onConfirm:a=r,onCancel:l=r,confirmText:d=k.Modals.okay,cancelText:c=k.Modals.cancel,danger:h=!1,key:u}=s;return Array.isArray(t)||(t=[t]),t=t.map(e=>"string"==typeof e?O.createElement(n,null,e):e),o.openModal(s=>O.createElement(i,Object.assign({header:e,red:h,confirmText:d,cancelText:c,onConfirm:a,onCancel:l},s),t),{modalKey:u})}static showAddonErrors({plugins:e=[],themes:t=[]}){if(!e||!t||!this.shouldShowAddonErrors)return;if(!e.length&&!t.length)return;const s=h.createElement(`\n
\n
\n
\n \n
\n
\n
\n
${k.Panels.plugins}
\n
${k.Panels.themes}
\n
\n
\n \n
\n
\n \n
\n
\n
`),n=function(e){const t=h.createElement('');for(const s of e){const e=h.createElement(`
\n
${s.name?s.name:s.file}
\n
${s.message}
\n
\n
`);t.append(e),s.error&&e.querySelectorAll("a").forEach(e=>e.addEventListener("click",e=>{e.preventDefault(),c.stacktrace("AddonError",`Error details for ${s.name?s.name:s.file}.`,s.error)}))}return t},i=[n(e),n(t)];s.querySelectorAll(".tab-bar-item").forEach(e=>e.addEventListener("click",e=>{e.preventDefault();const t=s.querySelector(".tab-bar-item.selected");t&&h.removeClass(t,"selected"),h.addClass(e.target,"selected");const n=s.querySelector(".scroller");n.innerHTML="",n.append(i[h.index(e.target)])})),s.querySelector(".footer button").addEventListener("click",()=>{h.addClass(s,"closing"),setTimeout(()=>{s.remove()},300)}),s.querySelector(".bd-backdrop").addEventListener("click",()=>{h.addClass(s,"closing"),setTimeout(()=>{s.remove()},300)}),h.query("#app-mount").append(s),e.length?s.querySelector(".tab-bar-item").click():s.querySelectorAll(".tab-bar-item")[1].click()}static showChangelogModal(e={}){const t=g.getByProps("push","update","pop","popWithKey"),s=g.getByProps("fixed","improved"),n=g.findByDisplayName("Text"),o=g.getByProps("Child"),r=g.getByProps("Tags","default"),a=g.getModule(e=>e.defaultProps&&0==e.defaultProps.selectable),l=g.getByProps("defaultRules","parse");if(!(a&&t&&s&&n&&o&&r&&l))return c.warn("Modals","showChangelogModal missing modules");const{image:d="https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5",description:h="",changes:u=[],title:p="BandagedBD",subtitle:m="v"+i.bbdVersion,footer:y}=e,b=O.createElement,v=[b("img",{src:d})];h&&v.push(b("p",null,l.parse(h)));for(let e=0;e
b("li",null,l.parse(e))));v.push(o)}return t.push(a,{className:s.container,selectable:!0,onScroll:e=>e,onClose:e=>e,renderHeader:function(){return b(o.Child,{grow:1,shrink:1},b(r.default,{tag:r.Tags.H4},p),b(n,{size:n.Sizes.SMALL,color:n.Colors.STANDARD,className:s.date},m))},renderFooter:()=>{const e=g.getModule(e=>"Anchor"==e.displayName),s=g.getByProps("anchorUnderlineOnHover")||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"},i=e=>{e.preventDefault(),e.stopPropagation(),t.pop(),f.InviteActions.acceptInviteAndTransitionToInviteChannel("2HScm8j")},r=e?b(e,{onClick:i},"Join our Discord Server."):b("a",{className:`${s.anchor} ${s.anchorUnderlineOnHover}`,onClick:i},"Join our Discord Server."),a=b(n,{size:n.Sizes.SMALL,color:n.Colors.STANDARD},"Need support? ",r);return b(o.Child,{grow:1,shrink:1},y||a)},children:v})}}class _ extends Error{constructor(e,t,s,n){super(s),this.name=e,this.file=t,this.error=n}}class G extends Error{constructor(e){super(e),this.name="MetaError"}}class Q extends O.Component{constructor(e){super(e),this.onClick=this.onClick.bind(this),this.state={checked:this.props.checked||!1}}render(){return O.createElement("div",{className:"checkbox-item"},O.createElement("div",{className:"checkbox-label label-JWQiNe da-label"},this.props.text),O.createElement("div",{className:"checkbox-wrapper checkbox-3kaeSU da-checkbox checkbox-3EVISJ da-checkbox",onClick:this.onClick},O.createElement("div",{className:"checkbox-inner checkboxInner-3yjcPe da-checkboxInner"},O.createElement("input",{className:"checkbox checkboxElement-1qV33p da-checkboxElement",checked:this.state.checked,type:"checkbox"}),O.createElement("span",null)),O.createElement("span",null)))}onClick(){this.props.onChange(!this.state.checked),this.setState({checked:!this.state.checked})}}function V(){return(V=Object.assign||function(e){for(var t=1;t{for(const s of e){if(!(s.addedNodes.length&&s.addedNodes[0]instanceof Element))continue;const e=s.addedNodes[0];e.parentElement===document.body&&e.querySelector("#ace_settingsmenu")&&(e.id="ace_settingsmenu_container",t.disconnect())}});t.observe(document.body,{childList:!0})};const t=this.props.theme==K.defaultProps.theme?this.props.theme.split("-")[1]:this.props.theme;this.editor.setTheme("ace/theme/"+t),this.editor.session.setMode("ace/mode/"+this.props.language),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(this.props.fontSize),this.editor.on("change",this.onChange)}componentWillUnmount(){this.editor.destroy()}get value(){return this.editor.session.getValue()}set value(e){this.editor.setValue(e)}onChange(){this.props.onChange&&this.props.onChange(this.value)}showSettings(){return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor)}resize(){return this.editor.resize()}buildControl(e){return"checkbox"==e.type?this.makeCheckbox(e):this.makeButton(e)}makeCheckbox(e){return O.createElement(Q,{text:e.label,onChange:e.onChange,checked:e.checked})}makeButton(e){return O.createElement(Z,{color:"black",position:"top",text:e.tooltip},t=>O.createElement("button",V({},t,{className:"btn btn-primary",onClick:t=>{e.onClick(t,this.value)}}),e.label))}render(){this.editor&&this.editor.resize&&this.editor.resize();const e=this.props.controls.filter(e=>"right"!=e.side).map(this.buildControl.bind(this)),t=this.props.controls.filter(e=>"right"==e.side).map(this.buildControl.bind(this));return O.createElement("div",{id:"bd-editor-panel",className:this.props.theme},O.createElement("div",{id:"bd-editor-controls"},O.createElement("div",{className:"controls-section controls-left"},e),O.createElement("div",{className:"controls-section controls-right"},t)),O.createElement("div",{className:"editor-wrapper"},O.createElement("div",{id:this.props.id,className:"editor "+this.props.theme},this.props.value)))}}class X extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z"}))}}class ee extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{viewBox:"0 0 24 24",fill:"#FFFFFF",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),O.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}}class te extends O.Component{render(){const e=this.props.size||"20px";return O.createElement("svg",{viewBox:"0 0 20 20",style:{width:e,height:e}},O.createElement("path",{fill:"none",d:"M0 0h20v20H0V0z"}),O.createElement("path",{d:"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"}))}}class se extends O.Component{constructor(e){super(e),this.hasUnsavedChanges=!1,this.onChange=this.onChange.bind(this),this.save=this.save.bind(this),this.openNative=this.openNative.bind(this),this.update=this.update.bind(this),this.controls=[{label:O.createElement(X,{size:"18px"}),tooltip:k.CustomCSS.save,onClick:this.save},{label:O.createElement(ee,{size:"18px"}),tooltip:k.CustomCSS.openNative,onClick:this.openNative},{label:O.createElement(te,{size:"18px"}),tooltip:k.CustomCSS.settings,onClick:"showSettings"}]}update(){this.forceUpdate()}updateEditor(e){this.editor&&(this.editor.value=e)}get value(){return this.editor.session.getValue()}set value(e){this.editor.setValue(e)}showSettings(){return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor)}resize(){return this.editor.resize()}setEditorRef(e){this.editor=e,this.props.editorRef&&void 0!==this.props.editorRef.current?this.props.editorRef.current=e:this.props.editorRef&&(this.props.editorRef=e)}render(){return O.createElement(K,{ref:this.setEditorRef.bind(this),language:this.props.language,id:this.props.id||"bd-addon-editor",controls:this.controls,value:this.props.content,onChange:this.onChange})}onChange(){this.hasUnsavedChanges=!0}save(e,t){this.hasUnsavedChanges=!1,this.props.save&&this.props.save(t)}openNative(){this.props.openNative&&this.props.openNative()}}class ne{static get width(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)}static get height(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}}class ie extends O.Component{render(){return O.createElement("svg",{viewBox:"0 0 12 12",style:{width:"18px",height:"18px"}},O.createElement("g",{className:"background",fill:"none",fillRule:"evenodd"},O.createElement("path",{d:"M0 0h12v12H0"}),O.createElement("path",{className:"fill",fill:"#dcddde",d:"M9.5 3.205L8.795 2.5 6 5.295 3.205 2.5l-.705.705L5.295 6 2.5 8.795l.705.705L6 6.705 8.795 9.5l.705-.705L6.705 6"})))}}class oe extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"}))}}class re extends O.Component{constructor(e){super(e),this.state={modalOpen:!1},this.offX=0,this.offY=0,this.maxX=this.props.maxX||ne.width,this.maxY=this.props.maxY||ne.height,this.minX=this.props.minX||0,this.minY=this.props.minY||0,this.titlebar=O.createRef(),this.window=O.createRef(),this.close=this.close.bind(this),this.maximize=this.maximize.bind(this),this.onDrag=this.onDrag.bind(this),this.onDragStart=this.onDragStart.bind(this),this.onDragStop=this.onDragStop.bind(this),this.onResizeStart=this.onResizeStart.bind(this)}componentDidMount(){this.window.current.addEventListener("mousedown",this.onResizeStart,!1),this.titlebar.current.addEventListener("mousedown",this.onDragStart,!1),document.addEventListener("mouseup",this.onDragStop,!1)}onResizeStart(){this.currentWidth=this.window.current.offsetWidth,this.currentHeight=this.window.current.offsetHeight}onDragStop(){document.removeEventListener("mousemove",this.onDrag,!0);const e=this.window.current.offsetWidth,t=this.window.current.offsetHeight;if(e!=this.currentWidth||t!=this.currentHeight){this.props.onResize&&this.props.onResize();const s=parseInt(this.window.current.style.left),n=parseInt(this.window.current.style.top);s+e>=this.maxX&&(this.window.current.style.width=this.maxX-s+"px"),n+t>=this.maxY&&(this.window.current.style.height=this.maxY-n+"px")}this.currentWidth=e,this.currentHeight=t}onDragStart(e){const t=this.window.current;this.offY=e.clientY-parseInt(t.offsetTop),this.offX=e.clientX-parseInt(t.offsetLeft),document.addEventListener("mousemove",this.onDrag,!0)}onDrag(e){const t=this.window.current;let s=e.clientY-this.offY;s<=this.minY&&(s=this.minY),s+this.currentHeight>=this.maxY&&(s=this.maxY-this.currentHeight);let n=e.clientX-this.offX;n<=this.minX&&(n=this.minX),n+this.currentWidth>=this.maxX&&(n=this.maxX-this.currentWidth),t.style.top=s+"px",t.style.left=n+"px"}componentWillUnmount(){this.titlebar.current.removeEventListener("mousedown",this.onDragStart,!1),document.removeEventListener("mouseup",this.onDragStop,!1)}render(){const e=this.props.center?ne.height/2-this.props.height/2:this.props.top,t=this.props.center?ne.width/2-this.props.width/2:this.props.left,s=`floating-window${" "+this.props.className||""}${this.props.resizable?" resizable":""}${this.state.modalOpen?" modal-open":""}`,n={height:this.props.height,width:this.props.width,left:t||0,top:e||0};return O.createElement("div",{id:this.props.id,className:s,ref:this.window,style:n},O.createElement("div",{className:"floating-window-titlebar",ref:this.titlebar},O.createElement("span",{className:"title"},this.props.title),O.createElement("div",{className:"floating-window-buttons"},O.createElement("div",{className:"button maximize-button",onClick:this.maximize},O.createElement(oe,{size:"18px"})),O.createElement("div",{className:"button close-button",onClick:this.close},O.createElement(ie,null)))),O.createElement("div",{className:"floating-window-content"},this.props.children))}maximize(){this.window.current.style.width="100%",this.window.current.style.height="100%",this.props.onResize&&this.props.onResize();const e=this.window.current.offsetWidth,t=this.window.current.offsetHeight,s=parseInt(this.window.current.style.left)+e;parseInt(this.window.current.style.top)+t>this.maxY&&(this.window.current.style.top=this.maxY-t+"px"),s>this.maxX&&(this.window.current.style.left=this.maxX-e+"px");const n=parseInt(this.window.current.style.left),i=parseInt(this.window.current.style.top);if(i{W.showConfirmationModal(k.Modals.confirmAction,this.props.confirmationText,{danger:!0,confirmText:k.Modals.close,onConfirm:()=>{e(!0)},onCancel:()=>{e(!1)}})})}}function ae(){return(ae=Object.assign||function(e){for(var t=1;t div[class*="app-"]');return e?e.offsetTop:0}render(){return this.state.windows.map(e=>O.createElement(re,ae({},e,{close:this.close.bind(this,e.id),minY:this.minY}),e.children))}open(e){this.setState({windows:[...this.state.windows,e]})}close(e){this.setState({windows:this.state.windows.filter(t=>(t.id==e&&t.onClose&&t.onClose(),t.id!=e))})}static get id(){return"floating-windows"}static get root(){if(this._root)return this._root;const e=document.createElement("div");return e.id=this.id,document.body.append(e),this._root=e}}var de=le;class ce{static initialize(){const e=O.createRef(),t=O.createElement(de,{ref:e}),s=O.createElement(g.getByProps("AppReferencePositionLayer").AppLayerProvider().props.layerContext.Provider,{value:[document.querySelector("#app-mount > .layerContainer-yqaFcK")]},t),n=h.createElement('');C.bdBody.append(n),R.render(s,n),this.ref=e}static open(e){return this.ref||this.initialize(),this.ref.current.open(e)}}const he=f.React,ue=s(1),pe=s(2),me=s(4).Module;me.globalPaths.push(ue.resolve(s(0).remote.app.getAppPath(),"node_modules"));const ge=/[^\S\r\n]*?\r?(?:\r\n|\n)[^\S\r\n]*?\*[^\S\r\n]?/,fe=/^\\@/,ye=function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e};class be{get name(){return""}get moduleExtension(){return""}get extension(){return""}get addonFolder(){return""}get language(){return""}get prefix(){return"addon"}get collection(){return"settings"}get category(){return"addons"}get id(){return"autoReload"}emit(e,...t){return E.emit(`${this.prefix}-${e}`,...t)}constructor(){this.timeCache={},this.addonList=[],this.state={}}initialize(){return this.originalRequire=me._extensions[this.moduleExtension],me._extensions[this.moduleExtension]=this.getAddonRequire(),T.on(this.collection,this.category,this.id,e=>{e?this.watchAddons():this.unwatchAddons()}),this.loadAllAddons()}initializeAddon(){}getFileModification(e,t){return t}startAddon(){}stopAddon(){}loadState(){const e=w.getData(this.prefix+"s");e&&Object.assign(this.state,e)}saveState(){w.setData(this.prefix+"s",this.state)}watchAddons(){if(this.watcher)return c.error(this.name,`Already watching ${this.prefix} addons.`);c.log(this.name,`Starting to watch ${this.prefix} addons.`),this.watcher=pe.watch(this.addonFolder,{persistent:!1},async(e,t)=>{if(e&&t&&t.endsWith(this.extension)){await new Promise(e=>setTimeout(e,100));try{const s=pe.statSync(ue.resolve(this.addonFolder,t));if(!s.isFile())return;if(!s||!s.mtime||!s.mtime.getTime())return;if("number"!=typeof s.mtime.getTime())return;if(this.timeCache[t]==s.mtime.getTime())return;this.timeCache[t]=s.mtime.getTime(),"rename"==e&&this.loadAddon(t,!0),"change"==e&&this.reloadAddon(t,!0)}catch(e){if("ENOENT"!==e.code)return;delete this.timeCache[t],this.unloadAddon(t,!0)}}})}unwatchAddons(){if(!this.watcher)return c.error(this.name,`Was not watching ${this.prefix} addons.`);this.watcher.close(),delete this.watcher,c.log(this.name,`No longer watching ${this.prefix} addons.`)}extractMeta(e){const t=e.split("\n")[0];if(t.includes("//META"))return this.parseOldMeta(e);if(t.includes("/**"))return this.parseNewMeta(e);throw new G("META was not found.")}parseOldMeta(e){const t=e.split("\n")[0],s=t.substring(t.lastIndexOf("//META")+6,t.lastIndexOf("*//")),n=u.testJSON(s);if(!n)throw new G("META could not be parsed.");if(!n.name)throw new G("META missing name data.");return n.format="json",n}parseNewMeta(e){const t=e.split("/**",2)[1].split("*/",1)[0],s={};let n="",i="";for(const e of t.split(ge))if(0!==e.length)if("@"===e.charAt(0)&&" "!==e.charAt(1)){s[n]=i;const t=e.indexOf(" ");n=e.substr(1,t-1),i=e.substr(t+1)}else i+=" "+e.replace("\\n","\n").replace(fe,"@");return s[n]=i.trim(),delete s[""],s.format="jsdoc",s}getAddonRequire(){const e=this,t=this.originalRequire;return function(s,n){const i=ue.resolve(e.addonFolder,ue.basename(n));if(!pe.existsSync(i)||n!==pe.realpathSync(i))return Reflect.apply(t,this,arguments);let o=pe.readFileSync(n,"utf8");o=ye(o);const r=pe.statSync(n),a=e.extractMeta(o);a.author||(a.author=k.Addons.unknownAuthor),a.version||(a.version="???"),a.description||(a.description=k.Addons.noDescription),a.id=a.name,a.filename=ue.basename(n),a.added=r.atimeMs,a.modified=r.mtimeMs,a.size=r.size,o=e.getFileModification(s,o,a),s._compile(o,n)}}loadAddon(e,t=!1){if(void 0===e)return;try{require(ue.resolve(this.addonFolder,e))}catch(n){return new _(e,e,"Could not be compiled.",{message:n.message,stack:n.stack})}const s=require(ue.resolve(this.addonFolder,e));if(this.addonList.find(e=>e.id==s.id))return new _(s.name,e,"There is already a plugin with name "+s.name);const n=this.initializeAddon(s);return n||(this.addonList.push(s),t&&q.success(`${s.name} v${s.version} was loaded.`),this.emit("loaded",s.id),this.state[s.id]?this.startAddon(s):this.state[s.id]=!1)}unloadAddon(e,t=!0,s=!1){const n="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e;return!!n&&(this.state[n.id]&&(s?this.stopAddon(n):this.disableAddon(n)),delete require.cache[require.resolve(ue.resolve(this.addonFolder,n.filename))],this.addonList.splice(this.addonList.indexOf(n),1),this.emit("unloaded",n.id),t&&q.success(n.name+" was unloaded."),!0)}reloadAddon(e,t=!0){const s="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e,n=this.unloadAddon(s,t,!0);return n?this.loadAddon(s.filename,t):n}isLoaded(e){return!!this.addonList.find(t=>t.id==e||t.filename==e)}isEnabled(e){const t=this.addonList.find(t=>t.id==e||t.filename==e);return!!t&&this.state[t.id]}getAddon(e){return this.addonList.find(t=>t.id==e||t.filename==e)}enableAddon(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&(this.state[t.id]||(this.state[t.id]=!0,this.startAddon(t),this.saveState()))}disableAddon(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&this.state[t.id]&&(this.state[t.id]=!1,this.stopAddon(t),this.saveState())}toggleAddon(e){this.state[e]?this.disableAddon(e):this.enableAddon(e)}loadNewAddons(){const e=pe.readdirSync(this.addonFolder),t=this.addonList.filter(t=>!e.includes(t.filename)).map(e=>e.id);return{added:e.filter(e=>!this.addonList.find(t=>t.filename==e)&&e.endsWith(this.extension)&&pe.statSync(ue.resolve(this.addonFolder,e)).isFile()),removed:t}}updateList(){const e=this.loadNewAddons();for(const t of e.added)this.loadAddon(t);for(const t of e.removed)this.unloadAddon(t)}loadAllAddons(){this.loadState();const e=[],t=pe.readdirSync(this.addonFolder);for(const s of t){if(!pe.statSync(ue.resolve(this.addonFolder,s)).isFile()||!s.endsWith(this.extension))continue;const t=this.loadAddon(s,!1);t instanceof _&&e.push(t)}return this.saveState(),T.get(this.collection,this.category,this.id)&&this.watchAddons(),e}deleteAddon(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e;return pe.unlinkSync(ue.resolve(this.addonFolder,t.filename))}saveAddon(e,t){const s="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e;return pe.writeFileSync(ue.resolve(this.addonFolder,s.filename),t)}editAddon(e,t){const n="string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e,i=ue.resolve(this.addonFolder,n.filename);return void 0===t&&(t="system"==T.get("settings","addons","editAction")),t?s(0).shell.openItem(""+i):this.openDetached(n)}openDetached(e){const t=ue.resolve(this.addonFolder,e.filename),s=pe.readFileSync(t).toString(),n=he.createRef(),i=he.createElement(se,{id:"bd-floating-editor-"+e.name,ref:n,content:s,save:this.saveAddon.bind(this,e),openNative:this.editAddon.bind(this,e,!0),language:this.language});ce.open({onClose:()=>{this.isDetached=!1},onResize:()=>{n&&n.current&&n.current.resize&&n.current.resize()},title:e.name,id:s.id,className:"floating-addon-window",height:470,width:410,center:!0,resizable:!0,children:i,confirmClose:()=>!(!n||!n.current)&&n.current.hasUnsavedChanges,confirmationText:k.Addons.confirmationText.format({name:e.name})})}}class ve extends O.Component{constructor(e){super(e)}render(){const e=this.props.isGroup?"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":"bd-settings-title h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi defaultColor-1_ajX0 defaultMarginh2-2LTaUL marginBottom20-32qID7",t=this.props.className?`${e} ${this.props.className}`:e;return O.createElement("h2",{className:t,onClick:()=>{this.props.onClick&&this.props.onClick()}},this.props.text,this.props.button&&O.createElement("button",{className:"bd-button bd-button-title",onClick:this.props.button.onClick},this.props.button.title),this.props.otherChildren)}}class we extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{className:this.props.className||"",onClick:this.props.onClick,fill:"#dcddde",viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{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"}),O.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}class Ce extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"}),O.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}class Se extends O.Component{constructor(e){super(e),this.state={checked:this.props.checked},this.onChange=this.onChange.bind(this)}onChange(){this.props.disabled||(this.props.onChange(!this.state.checked),this.setState({checked:!this.state.checked}))}render(){const e=this.props.disabled?" bd-switch-disabled":"",t=this.state.checked?" bd-switch-checked":"";return O.createElement("div",{className:"bd-switch"+e+t},O.createElement("input",{type:"checkbox",id:this.props.id,className:"bd-checkbox",disabled:this.props.disabled,checked:this.state.checked,onChange:this.onChange}))}}var Ee=s(0);class Me extends O.Component{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?O.createElement("div",{onClick:()=>Ee.remote.getCurrentWindow().openDevTools(),className:"react-error"},"There was an unexpected Error. Click to open console for more details."):this.props.children}}const xe=Me.prototype.render;function Ne(){return(Ne=Object.assign||function(e){for(var t=1;t
xe});const Pe=g.getByDisplayName("Tooltip");class De extends O.Component{constructor(e){super(e),this.state={settingsOpen:!1},this.settingsPanel="",this.panelRef=O.createRef(),this.onChange=this.onChange.bind(this),this.reload=this.reload.bind(this),this.showSettings=this.showSettings.bind(this),this.closeSettings=this.closeSettings.bind(this)}reload(){this.props.reload&&(this.props.addon=this.props.reload(this.props.addon.id),this.forceUpdate())}componentDidUpdate(){this.state.settingsOpen&&(this.settingsPanel instanceof Node&&this.panelRef.current.appendChild(this.settingsPanel),setImmediate(()=>{const e=this.panelRef.current,t=e.closest(".scrollerBase-289Jih");if(!t||!((e,t)=>{const s=e.scrollTop,n=s+e.clientHeight,i=t.offsetTop,o=i+t.clientHeight;return in})(t,e))return;const s=h.offset(e),n=h.offset(t),i=t.scrollTop,o=s.top-n.top+t.scrollTop-30;h.animate({duration:300,update:function(e){t.scrollTop=o>i?i+e*(o-i):i-e*(i-o)}})}))}getString(e){return"string"==typeof e?e:e.toString()}onChange(){this.props.onChange&&this.props.onChange(this.props.addon.id),this.props.enabled=!this.props.enabled,this.forceUpdate()}showSettings(){this.props.hasSettings&&this.setState({settingsOpen:!0})}closeSettings(){this.settingsPanel instanceof Node&&(this.panelRef.current.innerHTML=""),this.setState({settingsOpen:!1})}buildTitle(e,t,s){const n=k.Addons.title.split(/({{[A-Za-z]+}})/),i=n.findIndex(e=>"{{name}}"==e);i&&(n[i]=O.createElement("span",{className:"bd-name"},e));const o=n.findIndex(e=>"{{version}}"==e);i&&(n[o]=O.createElement("span",{className:"bd-version"},t));const r=n.findIndex(e=>"{{author}}"==e);return i&&(n[r]=O.createElement("span",{className:"bd-author"},s)),n.flat()}get settingsComponent(){const e=this.props.addon,t=this.getString(e.name);try{this.settingsPanel=this.props.getSettingsPanel()}catch(e){c.stacktrace("Addon Settings","Unable to get settings panel for "+t+".",e)}const s={id:t+"-settings",className:"addon-settings",ref:this.panelRef};"string"==typeof this.settingsPanel&&(c.warn("Addon Settings","Using a DOMString is officially deprecated."),s.dangerouslySetInnerHTML=this.settingsPanel);let n=null;return"function"==typeof this.settingsPanel&&(n=O.createElement(this.settingsPanel,null)),this.settingsPanel.$$typeof&&this.settingsPanel.$$typeof===Symbol.for("react.element")&&(n=this.settingsPanel),O.createElement("div",{className:"bd-addon-card settings-open bd-switch-item"},O.createElement("div",{className:"bd-close",onClick:this.closeSettings},O.createElement(ie,null)),O.createElement("div",s,O.createElement(Me,null,n)))}buildLink(e){const t=this.props.addon[e];if(!t)return null;const s=O.createElement("a",{className:"bd-link bd-link-website",href:t,target:"_blank",rel:"noopener noreferrer"},k.Addons[e]);return"invite"==e&&(s.props.onClick=function(e){e.preventDefault(),e.stopPropagation();let s=t;const n=/\.gg\/(.*)$/;n.test(s)&&(s=s.match(n)[1]),f.LayerStack.popLayer(),f.InviteActions.acceptInviteAndTransitionToInviteChannel(s)}),s}get footer(){const e=["website","source","invite","donate","patreon"];if(!e.some(e=>this.props.addon[e])&&!this.props.hasSettings)return null;const t=e.map(this.buildLink.bind(this)).filter(e=>e);return O.createElement("div",{className:"bd-footer"},O.createElement("span",{className:"bd-links"},t.map((e,s)=>sO.createElement("div",Ne({},e,{className:"bd-addon-button",onClick:s}),t))}render(){if(this.state.settingsOpen)return this.settingsComponent;const e=this.props.addon,t=this.getString(e.name),s=this.getString(e.author),n=this.getString(e.description),i=this.getString(e.version);return O.createElement("div",{id:e.id+"-card",className:"bd-addon-card settings-closed"},O.createElement("div",{className:"bd-addon-header"},O.createElement("span",{className:"bd-title"},this.buildTitle(t,i,s)),O.createElement("div",{className:"bd-controls"},this.props.editAddon&&this.makeButton(k.Addons.editAddon,O.createElement(ee,null),this.props.editAddon),this.props.deleteAddon&&this.makeButton(k.Addons.deleteAddon,O.createElement(Ce,null),this.props.deleteAddon),this.props.showReloadIcon&&this.makeButton(k.Addons.reload,O.createElement(we,{className:"bd-reload bd-reload-card"}),this.reload),O.createElement(Se,{checked:this.props.enabled,onChange:this.onChange}))),O.createElement("div",{className:"bd-description-wrap scroller-wrap fade"},O.createElement("div",{className:"bd-description scroller"},n)),this.footer)}}const Ae=De.prototype.render;Object.defineProperty(De.prototype,"render",{enumerable:!1,configurable:!1,set:function(){c.warn("AddonCard","Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>Ae});class ke extends O.Component{render(){const e=this.props.size||"16px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{d:"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z"}))}}class Te extends O.Component{constructor(e){super(e),this.state={open:!1,value:this.props.value||this.props.options[0].value},this.dropdown=O.createRef(),this.onChange=this.onChange.bind(this),this.showMenu=this.showMenu.bind(this),this.hideMenu=this.hideMenu.bind(this)}showMenu(e){e.preventDefault(),this.setState({open:!0},()=>{document.addEventListener("click",this.hideMenu)})}hideMenu(){this.setState({open:!1},()=>{document.removeEventListener("click",this.hideMenu)})}onChange(e){this.setState({value:e}),this.props.onChange&&this.props.onChange(e)}get selected(){return this.props.options.find(e=>e.value==this.state.value)}get options(){const e=this.selected;return O.createElement("div",{className:"bd-select-options"},this.props.options.map(t=>O.createElement("div",{className:"bd-select-option"+(e.value==t.value?" selected":""),onClick:this.onChange.bind(this,t.value)},t.label)))}render(){const e="transparent"==this.props.style?" bd-select-transparent":"",t=this.state.open?" menu-open":"";return O.createElement("div",{className:`bd-select${e}${t}`,onClick:this.showMenu,ref:this.dropdown},O.createElement("div",{className:"bd-select-value"},this.selected.label),O.createElement(ke,{className:"bd-select-arrow"}),this.state.open&&this.options)}}class Le extends O.Component{render(){const e=this.props.size||"16px";return O.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),O.createElement("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}))}}class je extends O.Component{render(){return O.createElement("div",{className:"bd-search-wrapper"},O.createElement("input",{onChange:this.props.onChange,onKeyDown:this.props.onKeyDown,type:"text",className:"bd-search",placeholder:this.props.placeholder,maxLength:"50"}),O.createElement(Le,null))}}class Be extends O.Component{constructor(e){super(e),this.state={sort:"name",ascending:!0,query:""},this.sort=this.sort.bind(this),this.reverse=this.reverse.bind(this),this.search=this.search.bind(this),this.update=this.update.bind(this)}componentDidMount(){E.on(this.props.prefix+"-loaded",this.update),E.on(this.props.prefix+"-unloaded",this.update)}componentWillUnmount(){E.off(this.props.prefix+"-loaded",this.update),E.off(this.props.prefix+"-unloaded",this.update)}update(){this.forceUpdate()}reload(){this.props.refreshList&&this.props.refreshList(),this.forceUpdate()}reverse(e){this.setState({ascending:e})}sort(e){this.setState({sort:e})}search(e){this.setState({query:e.target.value.toLocaleLowerCase()})}get sortOptions(){return[{label:k.Addons.name,value:"name"},{label:k.Addons.author,value:"author"},{label:k.Addons.version,value:"version"},{label:k.Addons.added,value:"added"},{label:k.Addons.modified,value:"modified"}]}get directions(){return[{label:k.Sorting.ascending,value:!0},{label:k.Sorting.descending,value:!1}]}render(){const{title:e,folder:t,addonList:n,addonState:i,onChange:o,reload:r}=this.props,a=!T.get("settings","addons","autoReload"),l=t?{title:k.Addons.openFolder.format({type:e}),onClick:()=>{const e=s(0).shell;(e.openItem||e.openPath)(t)}}:null,d=n.sort((e,t)=>{const s=e[this.state.sort],n=t[this.state.sort];return"string"==typeof s?s.toLocaleLowerCase().localeCompare(n.toLocaleLowerCase()):s>n?1:n>s?-1:0});return this.state.ascending||d.reverse(),[O.createElement(ve,{key:"title",text:e,button:l,otherChildren:a&&O.createElement(we,{className:"bd-reload",onClick:this.reload.bind(this)})}),O.createElement("div",{className:"bd-controls bd-addon-controls"},O.createElement(je,{onChange:this.search,placeholder:k.Addons.search.format({type:this.props.title})+"..."}),O.createElement("div",{className:"bd-addon-dropdowns"},O.createElement("div",{className:"bd-select-wrapper"},O.createElement("label",{className:"bd-label"},k.Sorting.sortBy,":"),O.createElement(Te,{options:this.sortOptions,onChange:this.sort,style:"transparent"})),O.createElement("div",{className:"bd-select-wrapper"},O.createElement("label",{className:"bd-label"},k.Sorting.order,":"),O.createElement(Te,{options:this.directions,onChange:this.reverse,style:"transparent"})))),O.createElement("div",{key:"addonList",className:"bd-addon-list"},d.map(e=>{if(this.state.query){let t=e.name.toLocaleLowerCase().includes(this.state.query);if(t=t||e.author.toLocaleLowerCase().includes(this.state.query),t=t||e.description.toLocaleLowerCase().includes(this.state.query),!t)return null}const t=e.type&&"function"==typeof e.plugin.getSettingsPanel,s=t&&e.plugin.getSettingsPanel.bind(e.plugin);return O.createElement(Me,null,O.createElement(De,{editAddon:this.editAddon.bind(this,e.id),deleteAddon:this.deleteAddon.bind(this,e.id),showReloadIcon:a,key:e.id,enabled:i[e.id],addon:e,onChange:o,reload:r,hasSettings:t,getSettingsPanel:s}))}))]}editAddon(e){this.props.editAddon&&this.props.editAddon(e)}async deleteAddon(e){const t=this.props.addonList.find(t=>t.id==e);await this.confirmDelete(t)&&this.props.deleteAddon&&this.props.deleteAddon(t)}confirmDelete(e){return new Promise(t=>{W.showConfirmationModal(k.Modals.confirmAction,k.Addons.confirmDelete.format({name:e.name}),{danger:!0,confirmText:k.Addons.deleteAddon,onConfirm:()=>{t(!0)},onCancel:()=>{t(!1)}})})}}const Ie=Be.prototype.render;Object.defineProperty(Be.prototype,"render",{enumerable:!1,configurable:!1,set:function(){c.warn("AddonList","Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>Ie});class ze extends O.Component{render(){return O.createElement("div",{className:"bd-divider divider-3573oO marginTop8-1DLZ1n marginBottom40-2vIwTv"})}}class Fe extends O.Component{render(){return O.createElement("div",{className:"bd-setting-item"},O.createElement("div",{className:"bd-setting-header"},O.createElement("label",{htmlFor:this.props.id,className:"bd-setting-title"},this.props.name),this.props.children),O.createElement("div",{className:"bd-setting-note"},this.props.note),O.createElement("div",{className:"bd-setting-divider"}))}}class Oe extends O.Component{constructor(e){if(super(e),this.props.button&&this.props.collapsible){const e=this.props.button.onClick;this.props.button.onClick=t=>{t.stopPropagation(),e(...arguments)}}this.props.hasOwnProperty("shown")||(this.props.shown=!0),this.container=O.createRef(),this.state={collapsed:this.props.collapsible&&!this.props.shown},this.onChange=this.onChange.bind(this),this.toggleCollapse=this.toggleCollapse.bind(this)}toggleCollapse(){const e=this.container.current,t=this.state.collapsed?300:1;e.style.setProperty("height",e.scrollHeight+"px"),e.classList.add("animating"),this.setState({collapsed:!this.state.collapsed},()=>setTimeout(()=>{e.style.setProperty("height",""),e.classList.remove("animating")},t)),this.props.onDrawerToggle&&this.props.onDrawerToggle(this.state.collapsed)}onChange(e,t){this.props.onChange&&(this.props.id?this.props.onChange(this.props.id,e,t):this.props.onChange(e,t),this.forceUpdate())}render(){const{settings:e}=this.props,t="bd-settings-group "+(this.props.collapsible?"collapsible "+(this.state.collapsed?"collapsed":"expanded"):"");return O.createElement("div",{className:t},O.createElement(ve,{text:this.props.name,collapsible:this.props.collapsible,onClick:this.toggleCollapse,button:this.props.button,isGroup:!0}),O.createElement("div",{className:"bd-settings-container",ref:this.container},e.filter(e=>!e.hidden).map(e=>{let t=null;return"dropdown"==e.type&&(t=O.createElement(Te,{disabled:e.disabled,id:e.id,options:e.options,value:e.value,onChange:this.onChange.bind(this,e.id)})),"switch"==e.type&&(t=O.createElement(Se,{disabled:e.disabled,id:e.id,checked:e.value,onChange:this.onChange.bind(this,e.id)})),t?O.createElement(Fe,{id:e.id,key:e.id,name:e.name,note:e.note},t):null})),this.props.showDivider&&O.createElement(ze,null))}}const Re=Oe.prototype.render;Object.defineProperty(Oe.prototype,"render",{enumerable:!1,configurable:!1,set:function(){c.warn("Group","Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>Re});class Ue extends O.Component{render(){const e=this.props.size||"18px";return O.createElement("svg",{viewBox:"0 0 24 24",fill:"#FFFFFF",className:this.props.className||"",style:{width:e,height:e},onClick:this.props.onClick},O.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),O.createElement("path",{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"}))}}function He(){return(He=Object.assign||function(e){for(var t=1;te.Header&&e.Separator&&e.Item),$e=g.getByDisplayName("Tooltip");class We extends O.Component{constructor(e){super(e)}render(){return O.createElement("div",{className:"bd-sidebar-header"},O.createElement(qe.Header,null,"BandagedBD"),O.createElement($e,{color:"black",position:"top",text:"Changelog"},e=>O.createElement("div",He({},e,{className:"bd-changelog-button",onClick:()=>W.showChangelogModal(l)}),O.createElement(Ue,{className:"bd-icon",size:"16px"}))))}}var _e=new class{constructor(){this.patchSections(),E.on("strings-updated",this.forceUpdate)}onDrawerToggle(e,t,s){const n=w.getBDData("drawerStates")||{};n[e]||(n[e]={}),n[e][t]=s,w.setBDData("drawerStates",n)}getDrawerState(e,t,s){const n=w.getBDData("drawerStates")||{};return n[e]&&n[e].hasOwnProperty(t)?n[e][t]:s}onChange(e){return(t,s,n)=>{const i=T.collections.length+T.panels.length;e(t,s,n);i!=T.collections.length+T.panels.length&&setTimeout(this.forceUpdate.bind(this),50)}}buildSettingsPanel(e,t,s,n,i,o=null){return s.forEach(e=>{e.settings.forEach(t=>t.value=n[e.id][t.id])}),this.getSettingsPanel(e,t,s,this.onChange(i),o)}getSettingsPanel(e,t,s,n,i=null){return[O.createElement(ve,{text:t,button:i}),s.map(t=>O.createElement(Oe,Object.assign({},t,{onChange:n,onDrawerToggle:s=>this.onDrawerToggle(e,t.id,s),shown:this.getDrawerState(e,t.id,!t.hasOwnProperty("shown")||t.shown)})))]}getAddonPanel(e,t,s,n={}){return O.createElement(Be,Object.assign({},{title:e,addonList:t,addonState:s},n))}async patchSections(){const e=await F.get("UserSettings",e=>e.prototype&&e.prototype.generateSections);L.after("SettingsManager",e.prototype,"render",e=>{e._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id="user-settings"}),L.after("SettingsManager",e.prototype,"generateSections",(e,t,s)=>{let n=s.findIndex(e=>"linux"==e.section.toLowerCase())+1;const i=e=>{s.splice(n,0,e),n++};i({section:"DIVIDER"}),i({section:"CUSTOM",element:We});for(const e of T.collections)e.disabled||i({section:e.name,label:e.name,element:()=>this.buildSettingsPanel(e.id,e.name,e.settings,T.state[e.id],T.onSettingChange.bind(T,e.id),e.button?e.button:null)});for(const t of T.panels.sort((e,t)=>e.order>t.order))t.clickListener&&(t.onClick=n=>t.clickListener(e,n,s)),i(t)}),this.forceUpdate()}forceUpdate(){const e=g.getByProps("standardSidebarView").standardSidebarView.split(" ")[0],t=document.querySelector("."+e);if(!t)return;const s=u.findInReactTree(u.getReactInstance(t),e=>e&&e.generateSections,{walkable:["return","stateNode"]});s&&s.forceUpdate()}};const Ge=s(1),Qe=s(0).remote;var Ve=new class extends be{get name(){return"PluginManager"}get moduleExtension(){return".js"}get extension(){return".plugin.js"}get addonFolder(){return Ge.resolve(i.dataPath,"plugins")}get prefix(){return"plugin"}get language(){return"javascript"}constructor(){super(),this.onSwitch=this.onSwitch.bind(this),this.observer=new MutationObserver(e=>{for(let t=0,s=e.length;t_e.getAddonPanel(k.Panels.plugins,this.addonList,this.state,{folder:this.addonFolder,onChange:this.togglePlugin.bind(this),reload:this.reloadPlugin.bind(this),refreshList:this.updatePluginList.bind(this),saveAddon:this.saveAddon.bind(this),editAddon:this.editAddon.bind(this),deleteAddon:this.deleteAddon.bind(this),prefix:this.prefix})}),e}updatePluginList(){return this.updateList()}loadAllPlugins(){return this.loadAllAddons()}enablePlugin(e){return this.enableAddon(e)}disablePlugin(e){return this.disableAddon(e)}togglePlugin(e){return this.toggleAddon(e)}unloadPlugin(e){return this.unloadAddon(e)}loadPlugin(e){const t=this.loadAddon(e);t&&W.showAddonErrors({themes:[t]})}reloadPlugin(e){const t=this.reloadAddon(e);return t&&W.showAddonErrors({plugins:[t]}),"string"==typeof e?this.addonList.find(t=>t.id==e||t.filename==e):e}initializeAddon(e){if(!e.type)return new _(e.name,e.filename,"Plugin had no exports",{message:"Plugin had no exports or no name property.",stack:""});try{const t=new e.type;e.plugin=t,e.name=t.getName()||e.name,e.author=t.getAuthor()||e.author||"No author",e.description=t.getDescription()||e.description||"No description",e.version=t.getVersion()||e.version||"No version";try{"function"==typeof e.plugin.load&&e.plugin.load()}catch(t){return this.state[e.id]=!1,new _(e.name,e.filename,"load() could not be fired.",{message:t.message,stack:t.stack})}}catch(t){return new _(e.name,e.filename,"Could not be constructed.",{message:t.message,stack:t.stack})}}getFileModification(e,t,s){e._compile(t,e.filename);return u.isEmpty(e.exports)?(c.warn(this.name,s.name+", please start assigning module.exports"),t+=`\nmodule.exports = ${JSON.stringify(s)};\nmodule.exports.type = ${s.exports||s.name};`):(s.type=e.exports,e.exports=s,"")}startAddon(e){return this.startPlugin(e)}stopAddon(e){return this.stopPlugin(e)}getAddon(e){return this.getPlugin(e)}startPlugin(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;if(!t)return;const s=t.plugin;try{s.start()}catch(e){return this.state[t.id]=!1,q.error(k.Addons.couldNotStart.format({name:t.name,version:t.version})),c.stacktrace(this.name,t.name+" could not be started.",e),new _(t.name,t.filename,k.Addons.enabled.format({method:"start()"}),{message:e.message,stack:e.stack})}this.emit("started",t.id),q.show(k.Addons.enabled.format({name:t.name,version:t.version}))}stopPlugin(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;if(!t)return;const s=t.plugin;try{s.stop()}catch(e){return this.state[t.id]=!1,q.error(k.Addons.couldNotStop.format({name:t.name,version:t.version})),c.stacktrace(this.name,t.name+" could not be stopped.",e),new _(t.name,t.filename,k.Addons.enabled.format({method:"stop()"}),{message:e.message,stack:e.stack})}this.emit("stopped",t.id),q.show(k.Addons.disabled.format({name:t.name,version:t.version}))}getPlugin(e){const t=this.addonList.find(t=>t.id==e||t.filename==e);if(t)return t.plugin}setupFunctions(){Qe.getCurrentWebContents().on("did-navigate-in-page",this.onSwitch.bind(this)),this.observer.observe(document,{childList:!0,subtree:!0})}onSwitch(){this.emit("page-switch");for(let e=0;e_e.getAddonPanel(k.Panels.themes,this.addonList,this.state,{folder:this.addonFolder,onChange:this.toggleTheme.bind(this),reload:this.reloadTheme.bind(this),refreshList:this.updateThemeList.bind(this),saveAddon:this.saveAddon.bind(this),editAddon:this.editAddon.bind(this),deleteAddon:this.deleteAddon.bind(this),prefix:this.prefix})}),e}updateThemeList(){return this.updateList()}loadAllThemes(){return this.loadAllAddons()}enableTheme(e){return this.enableAddon(e)}disableTheme(e){return this.disableAddon(e)}toggleTheme(e){return this.toggleAddon(e)}unloadTheme(e){return this.unloadAddon(e)}loadTheme(e){const t=this.loadAddon(e);t&&W.showAddonErrors({themes:[t]})}reloadTheme(e){const t=this.reloadAddon(e);t&&W.showAddonErrors({themes:[t]})}getFileModification(e,t,s){return s.css=t,`module.exports = ${JSON.stringify(s)};`}startAddon(e){return this.addTheme(e)}stopAddon(e){return this.removeTheme(e)}addTheme(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&(C.injectTheme(t.id,t.css),q.show(k.Addons.enabled.format({name:t.name,version:t.version})))}removeTheme(e){const t="string"==typeof e?this.addonList.find(t=>t.id==e):e;t&&(C.removeTheme(t.id),q.show(k.Addons.disabled.format({name:t.name,version:t.version})))}};const Je={get React(){return f.React},get ReactDOM(){return f.ReactDOM},get WindowConfigFile(){return""},get settings(){return T.collections},get emotes(){return{}},get version(){return i.version},getAllWindowPreferences:function(){return w.getData("windowprefs")||{}},getWindowPreference:function(e){return this.getAllWindowPreferences()[e]},setWindowPreference:function(e,t){const s=this.getAllWindowPreferences();return s[e]=t,w.setData("windowprefs",s)},injectCSS:function(e,t){C.injectStyle(e,t)},clearCSS:function(e){C.removeStyle(e)},linkJS:function(e,t){return C.injectScript(e,t)},unlinkJS:function(e){C.removeScript(e)},alert:function(e,t){W.alert(e,t)},showConfirmationModal:function(e,t,s={}){return W.showConfirmationModal(e,t,s)},showToast:function(e,t={}){q.show(e,t)},findModule:function(e){return g.getModule(e)},findAllModules:function(e){return g.getModule(e,!1)},findModuleByProps:function(...e){return g.getByProps(...e)},findModuleByPrototypes:function(...e){return g.getByPrototypes(...e)},findModuleByDisplayName:function(e){return g.getByDisplayName(e)},getInternalInstance:function(e){if(e instanceof window.jQuery||e instanceof Element)return e instanceof jQuery&&(e=e[0]),u.getReactInstance(e)},loadData:function(e,t){return w.getPluginData(e,t)}};Je.getData=Je.loadData,Je.saveData=function(e,t,s){return w.setPluginData(e,t,s)},Je.setData=Je.saveData,Je.deleteData=function(e,t){return w.deletePluginData(e,t)},Je.monkeyPatch=function(e,t,s){const{before:n,after:i,instead:o,once:r=!1}=s,a=n?"before":i?"after":o?"instead":"";if(!a)return c.err("BdApi","Must provide one of: after, before, instead");const l={originalMethod:e[t],callOriginalMethod:()=>l.originalMethod.apply(l.thisObject,l.methodArguments)};l.cancelPatch=L[a]("BdApi",e,t,(e,t,n)=>{l.thisObject=e,l.methodArguments=t,l.returnValue=n;try{Reflect.apply(s[a],null,[l]),r&&l.cancelPatch()}catch(e){}})},Je.onRemoved=function(e,t){return u.onRemoved(e,t)},Je.suppressErrors=function(e,t){return u.suppressErrors(e,t)},Je.testJSON=function(e){return u.testJSON(e)},Je.getPlugin=function(e){return c.warn("BdApi","getPlugin is deprecated. Please make use of the addon api (BdApi.Plugins)"),Ve.addonList.find(t=>t.name==e)},Je.isPluginEnabled=function(e){c.warn("BdApi","isPluginEnabled is deprecated. Please make use of the addon api (BdApi.Plugins)");const t=this.getPlugin(e);return!!t&&Ve.isEnabled(t.id)},Je.isThemeEnabled=function(e){c.warn("BdApi","isThemeEnabled is deprecated. Please make use of the addon api (BdApi.Themes)");const t=Ye.addonList.find(t=>t.name==e);return!!t&&Ye.isEnabled(t.id)},Je.isSettingEnabled=function(e,t,s){return T.get(e,t,s)},Je.enableSetting=function(e,t,s){return T.set(e,t,s,!0)},Je.disableSetting=function(e,t,s){return T.set(e,t,s,!1)},Je.toggleSetting=function(e,t,s){return T.set(e,t,s,!T.get(e,t,s))},Je.getBDData=function(e){return w.getBDData(e)},Je.setBDData=function(e,t){return w.setBDData(e,t)};const Ke=e=>new class{get folder(){return e.addonFolder}isEnabled(t){return e.isEnabled(t)}enable(t){return e.enableAddon(t)}disable(t){return e.disableAddon(t)}toggle(t){return e.toggleAddon(t)}reload(t){return e.reloadAddon(t)}get(t){return e.getAddon(t)}getAll(){return e.addonList.map(t=>e.getAddon(t.id))}};Je.Plugins=Ke(Ve),Je.Themes=Ke(Ye),Je.Patcher={patch:(e,t,s,n,i={})=>"string"!=typeof e?c.err("BdApi.Patcher","Parameter 0 of patch must be a string representing the caller"):"before"!==i.type&&"instead"!==i.type&&"after"!==i.type?c.err("BdApi.Patcher","options.type must be one of: before, instead, after"):L.pushChildPatch(e,t,s,n,i),before:(e,t,s,n,i={})=>Je.Patcher.patch(e,t,s,n,Object.assign(i,{type:"before"})),instead:(e,t,s,n,i={})=>Je.Patcher.patch(e,t,s,n,Object.assign(i,{type:"instead"})),after:(e,t,s,n,i={})=>Je.Patcher.patch(e,t,s,n,Object.assign(i,{type:"after"})),unpatchAll:e=>"string"!=typeof e?c.err("BdApi.Patcher","Parameter 0 of unpatchAll must be a string representing the caller"):L.unpatchAll(e)},Object.freeze(Je),Object.freeze(Je.Plugins),Object.freeze(Je.Themes),Object.freeze(Je.Patcher);var Xe=Je;const et=document.createElement("style");et.textContent="/* BEGIN V2 LOADER */\n/* =============== */\n\n#bd-loading-icon {\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+IDwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTAwJSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjAwMCAyMDAwIj4gICAgPG1ldGFkYXRhIC8+ICAgIDxkZWZzPiAgICAgICAgPGZpbHRlciBpZD0ic2hhZG93MSI+ICAgICAgICA8ZmVEcm9wU2hhZG93IGR4PSIyMCIgZHk9IjAiIHN0ZERldmlhdGlvbj0iMjAiIGZsb29kLWNvbG9yPSJyZ2JhKDAsMCwwLDAuMzUpIi8+ICAgICAgICA8L2ZpbHRlcj4gICAgICAgIDxmaWx0ZXIgaWQ9InNoYWRvdzIiPiAgICAgICAgPGZlRHJvcFNoYWRvdyBkeD0iMTUiIGR5PSIwIiBzdGREZXZpYXRpb249IjIwIiBmbG9vZC1jb2xvcj0icmdiYSgyNTUsMjU1LDI1NSwwLjE1KSIvPiAgICAgICAgPC9maWx0ZXI+ICAgICAgICA8ZmlsdGVyIGlkPSJzaGFkb3czIj4gICAgICAgIDxmZURyb3BTaGFkb3cgZHg9IjEwIiBkeT0iMCIgc3RkRGV2aWF0aW9uPSIyMCIgZmxvb2QtY29sb3I9InJnYmEoMCwwLDAsMC4zNSkiLz4gICAgICAgIDwvZmlsdGVyPiAgICA8L2RlZnM+ICAgIDxnPiAgICAgICAgPHBhdGggc3R5bGU9ImZpbHRlcjogdXJsKCNzaGFkb3czKSIgZD0iTTExOTUuNDQrMTM1LjQ0MkwxMTk1LjQ0KzEzNS40NDJMOTk3LjYrMTM2LjQ0MkMxMDI0LjIrMTQ5Ljc0MisxMTcwLjM0KzE2My41NDIrMTE5My42NCsxNzkuNzQyQzEyNjQuMzQrMjI4Ljg0MisxMzE5Ljc0KzI5MS4yNDIrMTM1OC4yNCszNjUuMDQyQzEzOTguMTQrNDQxLjY0MisxNDE5Ljc0KzUzMC42NDIrMTQyMi41NCs2MjkuNjQyTDE0MjIuNTQrNjMwLjg0MkwxNDIyLjU0KzYzMi4wNDJDMTQyMi41NCs3NzMuMTQyKzE0MjIuNTQrMTIyOC4xNCsxNDIyLjU0KzEzNjkuMTRMMTQyMi41NCsxMzcwLjM0TDE0MjIuNTQrMTM3MS41NEMxNDE5Ljg0KzE0NzAuNTQrMTM5OC4yNCsxNTU5LjU0KzEzNTguMjQrMTYzNi4xNEMxMzE5Ljc0KzE3MDkuOTQrMTI2NC40NCsxNzcyLjM0KzExOTMuNjQrMTgyMS40NEMxMTcxLjA0KzE4MzcuMTQrMTAyNS43KzE4NTAuNTQrMTAwMCsxODYzLjU0TDExOTMuNTQrMTg2NC41NEMxNTM5Ljc0KzE4NjYuNDQrMTg2NC41NCsxNjkzLjM0KzE4NjQuNTQrMTI5Ni42NEwxODY0LjU0KzcxNi45NDJDMTg2Ni40NCszMTIuNDQyKzE1NDEuNjQrMTM1LjQ0MisxMTk1LjQ0KzEzNS40NDJaIiBmaWxsPSIjMTcxNzE3IiBvcGFjaXR5PSIxIi8+ICAgICAgICA8cGF0aCBzdHlsZT0iZmlsdGVyOiB1cmwoI3NoYWRvdzIpIiBkPSJNMTY5NS41NCs2MzEuNDQyQzE2ODUuODQrMjc4LjA0MisxNDA5LjM0KzEzNS40NDIrMTA1Mi45NCsxMzUuNDQyTDM2MS43NCsxMzYuNDQyTDgwMy43NCs0OTAuNDQyTDEwNjAuNzQrNDkwLjQ0MkMxMzM1LjI0KzQ5MC40NDIrMTMzNS4yNCs4MzUuMzQyKzEwNjAuNzQrODM1LjM0MkwxMDYwLjc0KzExNjQuODRDMTE1MC4yMisxMTY0Ljg0KzEyMTAuNTMrMTIwMS40OCsxMjQxLjY4KzEyNTAuODdDMTMwNi4wNysxMzUzKzEyNDUuNzYrMTUwOS42NCsxMDYwLjc0KzE1MDkuNjRMMzYxLjc0KzE4NjMuNTRMMTA1Mi45NCsxODY0LjU0QzE0MDkuMjQrMTg2NC41NCsxNjg1Ljc0KzE3MjEuOTQrMTY5NS41NCsxMzY4LjU0QzE2OTUuNTQrMTIwNS45NCsxNjUxLjA0KzEwODQuNDQrMTU3Mi42NCs5OTkuOTQyQzE2NTEuMDQrOTE1LjU0MisxNjk1LjU0Kzc5NC4wNDIrMTY5NS41NCs2MzEuNDQyWiIgZmlsbD0iIzNFODJFNSIgb3BhY2l0eT0iMSIvPiAgICAgICAgPHBhdGggc3R5bGU9ImZpbHRlcjogdXJsKCNzaGFkb3cxKSIgZD0iTTE0NjkuMjUrNjMxLjQ0MkMxNDU5LjU1KzI3OC4wNDIrMTE4My4wNSsxMzUuNDQyKzgyNi42NSsxMzUuNDQyTDEzNS40NSsxMzUuNDQyTDEzNS40NSsxMDA0QzEzNS40NSsxMDA0KzEzNS40MjcrMTI1NS4yMSszNTUuNjI2KzEyNTUuMjFDNTc1LjgyNSsxMjU1LjIxKzU3NS44NDgrMTAwNCs1NzUuODQ4KzEwMDRMNTc3LjQ1KzQ5MC40NDJMODM0LjQ1KzQ5MC40NDJDMTEwOC45NSs0OTAuNDQyKzExMDguOTUrODM1LjM0Mis4MzQuNDUrODM1LjM0Mkw2NjQuNjUrODM1LjM0Mkw2NjQuNjUrMTE2NC44NEw4MzQuNDUrMTE2NC44NEM5MjMuOTMyKzExNjQuODQrOTg0LjI0NCsxMjAxLjQ4KzEwMTUuMzkrMTI1MC44N0MxMDc5Ljc4KzEzNTMrMTAxOS40NysxNTA5LjY0KzgzNC40NSsxNTA5LjY0TDEzNS40NSsxNTA5LjY0TDEzNS40NSsxODY0LjU0TDgyNi42NSsxODY0LjU0QzExODIuOTUrMTg2NC41NCsxNDU5LjQ1KzE3MjEuOTQrMTQ2OS4yNSsxMzY4LjU0QzE0NjkuMjUrMTIwNS45NCsxNDI0Ljc1KzEwODQuNDQrMTM0Ni4zNSs5OTkuOTQyQzE0MjQuNzUrOTE1LjU0MisxNDY5LjI1Kzc5NC4wNDIrMTQ2OS4yNSs2MzEuNDQyWiIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMSIvPiAgICA8L2c+PC9zdmc+);\n}\n#bd-loading-icon {\n position: fixed;\n bottom:5px;\n right:5px;\n z-index: 2147483647;\n display: block;\n width: 20px;\n height: 20px;\n background-size: 100% 100%;\n animation: bd-loading-animation 1.5s ease-in-out infinite;\n}\n\n@keyframes bd-loading-animation {\n 0% { opacity: 0.05; }\n 50% { opacity: 0.6; }\n 100% { opacity: 0.05; }\n}\n/* =============== */\n/* END V2 LOADER */";const tt=document.createElement("div");tt.id="bd-loading-icon",tt.className="bd-loaderv2",tt.title="BandagedBD is loading...";var st=class{static show(){document.body.appendChild(et),document.body.appendChild(tt)}static hide(){et&&et.remove(),tt&&tt.remove()}};class nt{get name(){return"Unnamed Builtin"}get collection(){return"settings"}get category(){return"general"}get id(){return"None"}async initialize(){T.get(this.collection,this.category,this.id)&&await this.enable(),E.on("setting-updated",(e,t,s,n)=>{e==this.collection&&t===this.category&&s===this.id&&(n?this.enable():this.disable())}),this.initialized=!0}registerSetting(e,t,s,n,i){return 4==arguments.length?(e=this.collection,t=arguments[0],s=arguments[1],n=arguments[2],i=arguments[3]):3==arguments.length&&(e=this.collection,t=this.category,s=arguments[0],n=arguments[1],i=arguments[2]),T.on(e,t,s,e=>{e?n():i()})}get(e,t,s){return 2==arguments.length?(e=this.collection,t=arguments[0],s=arguments[1]):1==arguments.length&&(e=this.collection,t=this.category,s=arguments[0]),T.get(e,t,s)}async enable(){this.log("Enabled");try{await this.enabled()}catch(e){this.stacktrace("Could not be enabled",e)}}async disable(){this.log("Disabled");try{await this.disabled()}catch(e){this.stacktrace("Could not be disabled",e)}}async enabled(){}async disabled(){}log(...e){c.log(this.name,...e)}warn(...e){c.warn(this.name,...e)}error(...e){c.err(this.name,...e)}stacktrace(e,t){c.stacktrace(this.name,e,t)}before(e,t,s){return L.before(this.name,e,t,s)}after(e,t,s){return L.after(this.name,e,t,s)}unpatchAll(){return L.unpatchAll(this.name)}}class it extends O.Component{render(){const e=this.props.size||"24px";return O.createElement("svg",{viewBox:"0 0 24 24",style:{width:e,height:e}},O.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),O.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}))}}class ot extends O.Component{constructor(e){super(e),this.hasUnsavedChanges=!1,this.onChange=this.onChange.bind(this),this.toggleLiveUpdate=this.toggleLiveUpdate.bind(this),this.updateCss=this.updateCss.bind(this),this.saveCss=this.saveCss.bind(this),this.openDetached=this.props.openDetached?this.openDetached.bind(this):null,this.openNative=this.openNative.bind(this),this.updateEditor=this.updateEditor.bind(this),this.controls=[{label:O.createElement(we,{size:"18px"}),tooltip:k.CustomCSS.update,onClick:this.updateCss},{label:O.createElement(X,{size:"18px"}),tooltip:k.CustomCSS.save,onClick:this.saveCss},{label:O.createElement(ee,{size:"18px"}),tooltip:k.CustomCSS.openNative,onClick:this.openNative},{label:O.createElement(te,{size:"18px"}),tooltip:k.CustomCSS.settings,onClick:"showSettings"},{label:k.Collections.settings.customcss.liveUpdate.name,type:"checkbox",onChange:this.toggleLiveUpdate,checked:T.get("settings","customcss","liveUpdate"),side:"right"}],this.openDetached&&this.controls.push({label:O.createElement(it,{size:"18px"}),tooltip:k.CustomCSS.openDetached,onClick:this.openDetached,side:"right"})}componentDidMount(){E.on("customcss-updated",this.updateEditor)}componentWillUnmount(){E.off("customcss-updated",this.updateEditor)}updateEditor(e){this.editor&&(this.editor.value=e)}get value(){return this.editor.session.getValue()}set value(e){this.editor.setValue(e)}showSettings(){return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor)}resize(){return this.editor.resize()}setEditorRef(e){this.editor=e,this.props.editorRef&&void 0!==this.props.editorRef.current?this.props.editorRef.current=e:this.props.editorRef&&(this.props.editorRef=e)}onChange(){this.hasUnsavedChanges=!0,this.props.onChange&&this.props.onChange(...arguments)}render(){return O.createElement(K,{ref:this.setEditorRef.bind(this),readOnly:this.props.readOnly,id:this.props.id||"bd-customcss-editor",onChange:this.onChange,controls:this.controls,value:this.props.css})}toggleLiveUpdate(e){T.set("settings","customcss","liveUpdate",e)}updateCss(e,t){this.props.update&&this.props.update(t)}saveCss(e,t){this.hasUnsavedChanges=!1,this.props.save&&this.props.save(t)}openDetached(e,t){this.props.openDetached&&this.props.openDetached(t)}openNative(){this.props.openNative&&this.props.openNative()}}const rt=s(2),at=s(0),lt=g.getByProps("updateAccount"),dt=g.getByProps("dirtyDispatch"),ct=g.getByProps("ActionTypes").ActionTypes;var ht=new class extends nt{get name(){return"Custom CSS"}get category(){return"customcss"}get id(){return"customcss"}get startDetached(){return"detached"==T.get(this.collection,this.category,"openAction")}get nativeOpen(){return"system"==T.get(this.collection,this.category,"openAction")}constructor(){super(),this.savedCss="",this.insertedCss="",this.isDetached=!1}async enabled(){window.ace||C.injectScript("ace-script","https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js").then(()=>{window.require.original&&(window.require=window.require.original)}),T.registerPanel(this.id,k.Panels.customcss,{order:2,element:()=>[O.createElement(ve,{text:k.CustomCSS.editorTitle}),O.createElement(ot,{css:this.savedCss,save:this.saveCSS.bind(this),update:this.insertCSS.bind(this),openNative:this.openNative.bind(this),openDetached:this.openDetached.bind(this),onChange:this.onChange.bind(this)})],onClick:e=>{if(this.isDetached)return;if(this.nativeOpen)return this.openNative();if(this.startDetached)return this.openDetached();const t=u.findInRenderTree(e._reactInternalFiber,e=>e&&e.onSetSection,{walkable:["child","memoizedProps","props","children"]});t&&t.onSetSection&&t.onSetSection(this.id)}}),this.loadCSS(),this.insertCSS(this.savedCss),this.watchContent()}disabled(){T.removePanel(this.id),this.unwatchContent()}watchContent(){if(this.watcher)return this.error("Already watching content.");const e={};this.log("Starting to watch content."),this.watcher=rt.watch(w.customCSS,{persistent:!1},async(t,s)=>{if(!t||!s)return;await new Promise(e=>setTimeout(e,50));try{rt.statSync(w.customCSS)}catch(t){if("ENOENT"!==t.code)return;delete e[s],this.saveCSS("")}const n=rt.statSync(w.customCSS);if(n&&n.mtime&&n.mtime.getTime()&&"number"==typeof n.mtime.getTime()&&e[s]!=n.mtime.getTime()&&(e[s]=n.mtime.getTime(),"change"==t)){const e=w.loadCustomCSS();if(e==this.savedCss)return;this.savedCss=e,this.insertCSS(this.savedCss),E.emit("customcss-updated",this.savedCss)}})}unwatchContent(){if(!this.watcher)return this.error("Was not watching content.");this.watcher.close(),delete this.watcher,this.log("No longer watching content.")}onChange(e){T.get("settings","customcss","liveUpdate")&&(this.insertCSS(e),this.saveCSS(e))}loadCSS(){this.savedCss=w.loadCustomCSS()}insertCSS(e){void 0===e?e=this.insertedCss:this.insertedCss=e,C.updateCustomCSS(e)}saveCSS(e){void 0!==e&&(this.savedCss=e),w.saveCustomCSS(this.savedCss)}openNative(){at.shell.openExternal("file://"+w.customCSS)}openDetached(e){const t=O.createRef(),s=O.createElement(ot,{id:"bd-floating-editor",ref:t,css:e,save:this.saveCSS.bind(this),update:this.insertCSS.bind(this),openNative:this.openNative.bind(this),onChange:this.onChange.bind(this)});ce.open({onClose:()=>{this.isDetached=!1},onResize:()=>{t&&t.current&&t.current.resize&&t.current.resize()},title:k.CustomCSS.editorTitle,id:"floating-editor-window",height:470,width:410,center:!0,resizable:!0,children:s,confirmClose:()=>!(!t||!t.current)&&t.current.hasUnsavedChanges,confirmationText:k.CustomCSS.confirmationText}),this.isDetached=!0,lt.close(),dt.dirtyDispatch({type:ct.LAYER_POP})}},ut=new class extends nt{get name(){return"WindowPrefs"}get category(){return"window"}get id(){return"transparency"}enabled(){this.setWindowPreference("transparent",!0),this.setWindowPreference("backgroundColor","#00000000"),this.showModal(k.WindowPrefs.enabledInfo)}disabled(){this.deleteWindowPreference("transparent"),this.deleteWindowPreference("backgroundColor"),this.showModal(k.WindowPrefs.disabledInfo)}showModal(e){this.initialized&&W.showConfirmationModal(k.Modals.additionalInfo,e,{confirmText:k.Modals.restartNow,cancelText:k.Modals.restartLater,onConfirm:()=>{const e=s(0).remote.app;e.relaunch(),e.exit()}})}getWindowPreference(e){return(w.getData("windowprefs")||{})[e]}setWindowPreference(e,t){const s=w.getData("windowprefs")||{};s[e]=t,w.setData("windowprefs",s)}deleteWindowPreference(e){const t=w.getData("windowprefs")||{};delete t[e],w.setData("windowprefs",t)}},pt=new class extends nt{get name(){return"24Hour"}get category(){return"general"}get id(){return"twentyFourHour"}enabled(){this.inject24Hour()}disabled(){this.unpatchAll()}inject24Hour(){const e=new RegExp("([0-9]{1,2}):([0-9]{1,2})\\s(AM|PM)"),t=(t,s,n)=>{const i=n.match(e);if(i&&4===i.length)return"AM"===i[3]?n.replace(i[0],`${"12"===i[1]?"00":i[1].padStart(2,"0")}:${i[2]}`):n.replace(i[0],`${"12"===i[1]?"12":parseInt(i[1])+12}:${i[2]}`)};this.after(f.TimeFormatter,"calendarFormat",t),this.after(f.TimeFormatter,"dateFormat",t)}};const mt=new RegExp("^(?!da-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$");var gt=new class extends nt{get id(){return"classNormalizer"}get category(){return"general"}get name(){return"ClassNormalizer"}enabled(){this.hasPatched||(this.patchClassModules(g.getModules(this.moduleFilter.bind(this))),this.normalizeElement(document.querySelector("#app-mount")),this.hasPatched=!0,this.patchDOMMethods())}disabled(){this.hasPatched&&(this.unpatchClassModules(g.getModules(this.moduleFilter.bind(this))),this.revertElement(document.querySelector("#app-mount")),this.hasPatched=!1)}patchClassModules(e){for(const t of e)this.patchClassModule("da",t)}unpatchClassModules(e){for(const t of e)this.unpatchClassModule("da",t)}shouldIgnore(e){return!isNaN(e)||(!!(e.endsWith("px")||e.endsWith("ch")||e.endsWith("em")||e.endsWith("ms"))||(!!e.startsWith("layerContainer-")||(!(!e.startsWith("#")||7!=e.length&&4!=e.length)||!(!e.includes("calc(")&&!e.includes("rgba")))))}moduleFilter(e){if("object"!=typeof e||Array.isArray(e))return!1;if(e.__esModule)return!1;if(!Object.keys(e).length)return!1;for(const t in e){const s=e[t];if("string"!=typeof s)return!1;if(!this.shouldIgnore(s)){if(1===s.split("-").length)return!1;if(!mt.test(s.split(" ")[0]))return!1}}return!0}patchClassModule(e,t){for(const s in t){const n=t[s];if(this.shouldIgnore(n))continue;const i=n.split(" ");for(const n of i){const i=n.match(mt);if(!i||!i.length||i.length<2)continue;const o=i[1].split("-").map((e,t)=>t?e[0].toUpperCase()+e.slice(1):e).join("");t[s]+=` ${e}-${o}`}}}unpatchClassModule(e,t){for(const s in t){const n=t[s];if(this.shouldIgnore(n))continue;let i="";const o=n.split(" ");for(const t of o)t.startsWith(e+"-")||(i+=" "+t);t[s]=i.trim()}}normalizeElement(e){if(!(e instanceof Element))return;const t=e.classList;for(let s=0,n=t.length;st?e[0].toUpperCase()+e.slice(1):e).join("");e.classList.add("da-"+n)}for(const t of e.children)this.normalizeElement(t)}revertElement(e){if(!(e instanceof Element))return;e.children&&e.children.length&&this.revertElement(e.children[0]),e.nextElementSibling&&this.revertElement(e.nextElementSibling);const t=e.classList,s=[];for(let e=0;e{const o=[];t&&o.push("category="+t.replace(/ /g,"%20")),e&&o.push("term="+e.replace(/ /g,"%20")),n&&o.push("from="+n);const r="?"+o.join("&");i.get({url:`${this.endPoint}${r}${r?"&schema=new":"?schema=new"}`,json:!0},(e,t,n)=>{if(e)return s(null);const i=n.size+n.from;s({servers:n.results,size:n.size,from:n.from,total:n.total,next:i>=n.total?null:i})})})}static async join(e,t=!1){if(t)return vt.acceptInvite(e);try{return await fetch(`${this.joinEndPoint}/${e}`,{method:"GET",credentials:"include",mode:"cors",headers:{Accept:"application/json","Content-Type":"application/json"}}),!0}catch(e){return!1}}static async checkConnection(){try{const e=await fetch("https://auth.discordservers.com/info",{method:"GET",credentials:"include",mode:"cors",headers:{Accept:"application/json","Content-Type":"application/json"}}),t=await e.json();return this._accessToken=t.access_token,t}catch(e){return!1}}static connect(){return new Promise(e=>{const t=new wt(this.windowOptions),s="https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl="+this.connectEndPoint;t.webContents.on("did-navigate",(s,n)=>{n==this.connectEndPoint&&(t.close(),e())}),t.loadURL(s)})}static get windowOptions(){return{width:380,height:450,backgroundColor:"#282b30",show:!0,resizable:!0,maximizable:!1,minimizable:!1,alwaysOnTop:!0,frame:!1,center:!0,webPreferences:{nodeIntegration:!1}}}}const St=g.getByDisplayName("SettingsView");class Et extends O.Component{get categoryButtons(){return["All","FPS Games","MMO Games","Strategy Games","MOBA Games","RPG Games","Tabletop Games","Sandbox Games","Simulation Games","Music","Community","Language","Programming","Other"]}constructor(e){super(e),this.state={category:"All",query:"",loading:!0,user:null,results:{servers:[],size:0,from:0,total:0,next:null}},this.changeCategory=this.changeCategory.bind(this),this.searchKeyDown=this.searchKeyDown.bind(this),this.connect=this.connect.bind(this),this.loadNextPage=this.loadNextPage.bind(this),this.join=this.join.bind(this)}componentDidMount(){this.checkConnection()}async checkConnection(){const e=await Ct.checkConnection();if(!e)return this.setState({loading:!0,user:null});this.setState({user:e}),this.search()}async connect(){await Ct.connect(),this.checkConnection()}searchKeyDown(e){this.state.loading||13!==e.which||this.search(e.target.value)}async search(e="",t=0){this.setState({query:e,loading:!0});const s=await Ct.search({term:e,category:"All"==this.state.category?"":this.state.category,from:t});if(!s)return this.setState({results:{servers:[],size:0,from:0,total:0,next:null}});this.setState({loading:!1,results:s})}async changeCategory(e){this.state.loading||(await new Promise(t=>this.setState({category:e},t)),this.search())}loadNextPage(){this.state.loading||this.search(this.state.query,this.state.results.next)}async join(e,t=!1){return await Ct.join(e,t)}get searchBox(){return O.createElement(je,{onKeyDown:this.searchKeyDown,placeholder:k.PublicServers.search+"..."})}get title(){if(!this.state.user)return k.PublicServers.notConnected;if(this.state.loading)return k.PublicServers.loading+"...";const e=this.state.results.from+1,t=this.state.results.total,s=this.state.results.next?this.state.results.next:t;let n=k.PublicServers.results.format({start:e,end:s,total:t,category:this.state.category});return this.state.query&&(n+=" "+k.PublicServers.query.format({query:this.state.query})),n}get content(){const e=this.state.user?null:{title:k.PublicServers.connect,onClick:this.connect},t="All"!=this.state.category&&this.state.user?null:this.bdServer,s=this.state.results.servers.map(e=>O.createElement(ft,{key:e.identifier,server:e,joined:Ct.hasJoined(e.identifier),join:this.join,defaultAvatar:Ct.getDefaultAvatar}));return[O.createElement(ve,{text:this.title,button:e}),t,s,this.state.results.next?this.nextButton:null,this.state.results.servers.length>0&&O.createElement(ve,{text:this.title})]}get nextButton(){return O.createElement("button",{type:"button",className:"bd-button bd-button-next",onClick:this.loadNextPage},this.state.loading?k.PublicServers.loading:k.PublicServers.loadMore)}get connection(){const{user:e}=this.state;return e?O.createElement("div",{id:"bd-connection"},O.createElement("div",{className:"bd-footnote"},k.PublicServers.connection.format(e)),O.createElement("button",{type:"button",className:"bd-button bd-button-reconnect",onClick:this.connect},k.PublicServers.reconnect)):O.createElement("div",{id:"bd-connection"})}get bdServer(){const e={name:"BetterDiscord",online:"7500+",members:"20000+",categories:["community","programming","support"],description:"Official BetterDiscord server for plugins, themes, support, etc",identifier:"86004744966914048",iconUrl:"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp",nativejoin:!0,invite_code:"0Tmfo5ZbORCRqbAd",pinned:!0};return O.createElement(ft,{server:e,pinned:!0,joined:Ct.hasJoined(e.identifier),defaultAvatar:Ct.getDefaultAvatar})}render(){const e=this.categoryButtons.map(e=>({section:e,label:e,element:()=>this.content}));return O.createElement(St,{onClose:this.props.close,onSetSection:this.changeCategory,section:this.state.category,sections:[{section:"HEADER",label:k.PublicServers.search},{section:"CUSTOM",element:()=>this.searchBox},{section:"HEADER",label:k.PublicServers.categories},...e,{section:"DIVIDER"},{section:"HEADER",label:O.createElement("a",{href:"https://discordservers.com",target:"_blank"},"DiscordServers.com")},{section:"DIVIDER"},{section:"CUSTOM",element:()=>this.connection}],theme:"dark"})}}const Mt=g.getByProps("pushLayer");var xt=new class extends nt{get name(){return"PublicServers"}get category(){return"general"}get id(){return"publicServers"}enabled(){const e=g.find(e=>e.default&&"NavigableGuilds"==e.default.displayName),t=g.findByDisplayName("Guilds");e||t||this.warn("Can't find GuildList component"),this.guildPatch=this.after(e||t.prototype,e?"default":"render",this._appendButton),this._appendButton()}disabled(){this.unpatchAll(),h.query("#bd-pub-li").remove()}_appendButton(){const e=f.GuildClasses.wrapper.split(" ")[0],t=h.query(`.${e} .scroller-2TZvBN >:first-child`);h.after(t,this.button)}openPublicServers(){Mt.pushLayer(()=>f.React.createElement(Et,{close:Mt.popLayer}))}get button(){const e=h.createElement(``),t=h.createElement(`
${k.PublicServers.button}
`);return t.addEventListener("click",()=>{this.openPublicServers()}),e.append(t),e}},Nt=new class extends nt{get name(){return"VoiceDisconnect"}get category(){return"general"}get id(){return"voiceDisconnect"}constructor(){super(),this.beforeUnload=this.beforeUnload.bind(this)}enabled(){window.addEventListener("beforeunload",this.beforeUnload)}disabled(){window.removeEventListener("beforeunload",this.beforeUnload)}beforeUnload(){f.ChannelActions.selectVoiceChannel(null,null)}};const Pt=g.getModule(e=>e.default&&e.default.displayName&&"Message"==e.default.displayName);var Dt=new class extends nt{get name(){return"ColoredText"}get category(){return"appearance"}get id(){return"coloredText"}enabled(){this.injectColoredText()}disabled(){this.unpatchAll()}injectColoredText(){this.after(Pt.prototype,"render",(e,t,s)=>{this.after(s.props,"children",{silent:!0,after:({returnValue:t})=>{const s=t.props.children[1],n=e.props.message.colorString;s&&n&&(s.props.style={color:n})}})})}removeColoredText(){document.querySelectorAll(".markup-2BOw-j").forEach(e=>{e.style.setProperty("color","")})}},At=new class extends nt{get name(){return"DarkMode"}get category(){return"appearance"}get id(){return"darkMode"}enabled(){document.getElementById("app-mount").classList.add("bda-dark","bd-dark")}disabled(){document.getElementById("app-mount").classList.remove("bda-dark","bd-dark")}},kt=new class extends nt{get name(){return"MinimalMode"}get category(){return"appearance"}get id(){return"minimalMode"}get hideChannelsID(){return"hideChannels"}get hideChannels(){return this.get(this.hideChannelsID)}constructor(){super(),this.enableHideChannels=this.enableHideChannels.bind(this),this.disableHideChannels=this.disableHideChannels.bind(this)}enabled(){document.body.classList.add("bd-minimal"),this.hideChannels&&this.enableHideChannels(),this.hideChannelCancel=this.registerSetting(this.hideChannelsID,this.enableHideChannels,this.disableHideChannels)}disabled(){document.body.classList.remove("bd-minimal"),this.hideChannels&&this.disableHideChannels(),this.hideChannelCancel&&this.hideChannelCancel()}enableHideChannels(){document.body.classList.add("bd-minimal-chan")}disableHideChannels(){document.body.classList.remove("bd-minimal-chan")}},Tt=new class extends nt{get name(){return"VoiceMode"}get category(){return"appearance"}get id(){return"voiceMode"}enabled(){document.querySelector(".chat-3bRxxu").style.setProperty("visibility","hidden"),document.querySelector(".chat-3bRxxu").style.setProperty("min-width","0px"),document.querySelector(".channels-Ie2l6A").style.setProperty("flex-grow","100000")}disabled(){document.querySelector(".chat-3bRxxu").style.setProperty("visibility",""),document.querySelector(".chat-3bRxxu").style.setProperty("min-width",""),document.querySelector(".channels-Ie2l6A").style.setProperty("flex-grow","")}};const Lt=g.getByDisplayName("Tooltip");class jt extends O.Component{constructor(e){super(e),this.state={shouldAnimate:!this.animateOnHover,isFavorite:this.props.isFavorite},this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.onClick=this.onClick.bind(this),this.toggleFavorite=this.toggleFavorite.bind(this)}get animateOnHover(){return T.get("emotes","general","animateOnHover")}get label(){return this.props.modifier?`${this.props.name}:${this.props.modifier}`:this.props.name}get modifierClass(){return this.props.modifier?" emote"+this.props.modifier:""}onMouseEnter(){!this.state.shouldAnimate&&this.animateOnHover&&this.setState({shouldAnimate:!0})}onMouseLeave(){this.state.shouldAnimate&&this.animateOnHover&&this.setState({shouldAnimate:!1})}onClick(e){this.props.onClick&&this.props.onClick(e)}toggleFavorite(e){e.preventDefault(),e.stopPropagation(),this.state.isFavorite?E.emit("emotes-favorite-removed",this.label):E.emit("emotes-favorite-added",this.label,this.props.url),this.setState({isFavorite:!this.state.isFavorite})}render(){return O.createElement(Lt,{color:"black",position:"top",text:this.label,delay:750},e=>O.createElement("div",Object.assign({className:"emotewrapper"+(this.props.jumboable?" jumboable":""),onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,onClick:this.onClick},e),O.createElement("img",{draggable:!1,className:"emote"+this.modifierClass+(this.props.jumboable?" jumboable":"")+(this.state.shouldAnimate?"":" stop-animation"),dataModifier:this.props.modifier,alt:this.label,src:this.props.url}),O.createElement("input",{className:"fav"+(this.state.isFavorite?" active":""),title:k.Emotes.favoriteAction,type:"button",onClick:this.toggleFavorite})))}}const Bt=s(3),It={TwitchGlobal:new A("https://static-cdn.jtvnw.net/emoticons/v1/{{id}}/1.0"),TwitchSubscriber:new A("https://static-cdn.jtvnw.net/emoticons/v1/{{id}}/1.0"),FrankerFaceZ:new A("https://cdn.frankerfacez.com/emoticon/{{id}}/1"),BTTV:new A("https://cdn.betterttv.net/emote/{{id}}/1x")},zt={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{}},Ft=[],Ot=["twitch","subscriber","bttv","ffz"],Rt=["flip","spin","pulse","spin2","spin3","1spin","2spin","3spin","tr","bl","br","shake","shake2","shake3","flap"];var Ut=new class extends nt{get name(){return"Emotes"}get collection(){return"settings"}get category(){return"general"}get id(){return"emotes"}get categories(){return Object.keys(zt).filter(e=>this.isCategoryEnabled(e))}get shouldDownload(){return T.get("emotes",this.category,"download")}isCategoryEnabled(e){return super.get("emotes","categories",e.toLowerCase())}get(e){return super.get("emotes","general",e)}get MessageComponent(){return g.find(e=>e.default&&e.default.displayName&&"Message"==e.default.displayName)}get Emotes(){return zt}get TwitchGlobal(){return zt.TwitchGlobal}get TwitchSubscriber(){return zt.TwitchSubscriber}get BTTV(){return zt.BTTV}get FrankerFaceZ(){return zt.FrankerFaceZ}get blacklist(){return Ft}get favorites(){return this.favoriteEmotes}getUrl(e,t){return It[e].format({id:zt[e][t]})}getCategory(e){return zt[e]}getRemoteFile(e){return u.repoUrl(`assets/emotes/${e.toLowerCase()}.json`)}initialize(){super.initialize();const e=w.getBDData("favoriteEmotes");this.favoriteEmotes=e||{},this.addFavorite=this.addFavorite.bind(this),this.removeFavorite=this.removeFavorite.bind(this),this.onCategoryToggle=this.onCategoryToggle.bind(this),this.resetEmotes=this.resetEmotes.bind(this)}async enabled(){T.registerCollection("emotes","Emotes",o,{title:k.Emotes.clearEmotes,onClick:this.resetEmotes}),await this.getBlacklist(),await this.loadEmoteData(),E.on("emotes-favorite-added",this.addFavorite),E.on("emotes-favorite-removed",this.removeFavorite),E.on("setting-updated",this.onCategoryToggle),this.patchMessageContent()}disabled(){E.off("setting-updated",this.onCategoryToggle),E.off("emotes-favorite-added",this.addFavorite),E.off("emotes-favorite-removed",this.removeFavorite),T.removeCollection("emotes"),this.emptyEmotes(),this.cancelEmoteRender&&(this.cancelEmoteRender(),delete this.cancelEmoteRender)}onCategoryToggle(e,t,s,n){if("emotes"==e&&"categories"==t)return n?this.loadEmoteData(s):this.unloadEmoteData(s)}addFavorite(e,t){this.favoriteEmotes.hasOwnProperty(e)||(this.favoriteEmotes[e]=t),this.saveFavorites()}removeFavorite(e){this.favoriteEmotes.hasOwnProperty(e)&&(delete this.favoriteEmotes[e],this.saveFavorites())}isFavorite(e){return this.favoriteEmotes.hasOwnProperty(e)}saveFavorites(){w.setBDData("favoriteEmotes",this.favoriteEmotes)}emptyEmotes(){for(const e in zt)Object.assign(zt,{[e]:{}})}patchMessageContent(){this.cancelEmoteRender||(this.cancelEmoteRender=this.before(this.MessageComponent,"default",(e,t)=>{const s=t[0].childrenMessageContent.props.content;if(!s||!s.length)return;for(let e=0;e
"string"==typeof e&&""==e.replace(/\s*/,"")||(!(!e.type||"BDEmote"!=e.type.name)||!!(e.props&&e.props.children&&e.props.children.props&&e.props.children.props.emojiName))))for(const e of s)"object"==typeof e&&("BDEmote"==e.type.name?e.props.jumboable=!0:e.props&&e.props.children&&e.props.children.props&&e.props.children.props.emojiName&&(e.props.children.props.jumboable=!0))}))}async getBlacklist(){try{const e="Blacklist",t=w.emotesExist(e),s=await this.isCacheValid(e),n=s||!s&&t&&!this.shouldDownload?w.getEmoteData(e):await this.downloadEmotes(e);Ft.push(...n)}catch(e){}}isCacheValid(e){return new Promise(t=>{const s=w.getCacheHash("emotes",e);if(!s)return t(!1);Bt.head({url:this.getRemoteFile(e),headers:{"If-None-Match":s}},(e,s)=>{t(304==s.statusCode)})})}async loadEmoteData(e){e||(e=this.categories),Array.isArray(e)||(e=[e]);const t=Object.keys(zt);e=e.map(e=>t.find(t=>t.toLowerCase()==e.toLowerCase())),q.show(k.Emotes.loading,{type:"info"}),this.emotesLoaded=!1;for(const t of e){const e=w.emotesExist(t),s=await this.isCacheValid(t);let n=null;if(s||!s&&e&&!this.shouldDownload){this.log(`Loading ${t} emotes from local cache.`);const e=w.getEmoteData(t);Object.keys(e).length>0&&(n=e)}n||(n=await this.downloadEmotes(t)),Object.assign(zt[t],n),await new Promise(e=>setTimeout(e,1e3))}this.emotesLoaded=!0,E.dispatch("emotes-loaded"),q.show(k.Emotes.loaded,{type:"success"})}unloadEmoteData(e){e||(e=this.categories),Array.isArray(e)||(e=[e]);const t=Object.keys(zt);e=e.map(e=>t.find(t=>t.toLowerCase()==e.toLowerCase()));for(const t of e)delete zt[t],zt[t]={}}downloadEmotes(e){const t=this.getRemoteFile(e);this.log(`Downloading ${e} from ${t}`);const s={url:t,timeout:1e4,json:!0};return new Promise(t=>{Bt.get(s,(s,n,i)=>{if(s||200!=n.statusCode)return this.stacktrace(`Could not download ${e} emotes.`,s),t({});for(const e in i)(e.length<4||Ft.includes(e)||!i[e])&&delete i[e];w.saveEmoteData(e,i),w.setCacheHash("emotes",e,n.headers.etag),t(i),this.log("Downloaded "+e)})})}resetEmotes(){const e=Object.keys(zt);this.unloadEmoteData(e);for(const t of e)w.invalidateCache("emotes",t);this.loadEmoteData()}};const Ht=(e,t,s={})=>{const{onContextMenu:n,onClick:i}=s,o=h.createElement(`\n
\n
`);return n&&o.addEventListener("contextmenu",n),o.addEventListener("click",i),o};var qt=new class extends nt{get name(){return"EmoteMenu"}get collection(){return"emotes"}get category(){return"general"}get id(){return"emoteMenu"}get hideEmojisID(){return"hideEmojiMenu"}get hideEmojis(){return this.get(this.hideEmojisID)}constructor(){super(),this.lastTab="bd-qem-emojis",this.qmeHeader=h.createElement('\n Twitch \n Favourite \n Emojis\n
');for(const e of this.qmeHeader.getElementsByTagName("button"))e.addEventListener("click",this.switchMenu.bind(this));this.teContainer=h.createElement(''),this.teContainerInner=this.teContainer.querySelector(".emote-menu-inner"),this.faContainer=h.createElement(''),this.faContainerInner=this.faContainer.querySelector(".emote-menu-inner"),this.observer=new MutationObserver(e=>{for(const t of e)this.observe(t)}),this.enableHideEmojis=this.enableHideEmojis.bind(this),this.disableHideEmojis=this.disableHideEmojis.bind(this),this.updateTwitchEmotes=this.updateTwitchEmotes.bind(this)}async enabled(){return W.alert("Emote Menu Broken","Emote Menu is currently broken, it is recommended to disable this until it is fixed.")}disabled(){E.off("emotes-loaded",this.updateTwitchEmotes),this.observer.disconnect(),this.disableHideEmojis(),this.hideEmojiCancel&&this.hideEmojiCancel()}enableHideEmojis(){const e=document.querySelector(".emojiPicker-3m1S-j");e&&e.classList.add("bd-qme-hidden")}disableHideEmojis(){const e=document.querySelector(".emojiPicker-3m1S-j");e&&e.classList.remove("bd-qme-hidden")}insertEmote(e){const t=u.getTextArea();u.insertText(t[0]," "==t.val().slice(-1)?t.val()+e:t.val()+" "+e)}favContext(e){e.stopPropagation();const t=e.target.closest(".emote-container").children[0],s=$('');s.css({top:e.pageY-$("#bd-qem-favourite-container").offset().top,left:e.pageX-$("#bd-qem-favourite-container").offset().left}),$(t).parent().append(s),s.on("click",e=>{e.preventDefault(),e.stopPropagation(),$(t).remove(),Ut.removeFavorite($(t).attr("title")),this.updateFavorites(),$(document).off("mousedown.emotemenu")}),$(document).on("mousedown.emotemenu",(function(e){"removemenu"!=e.target.id&&($("#removemenu").remove(),$(document).off("mousedown.emotemenu"))}))}switchMenu(e){let t="string"==typeof e?e:e.target.id;"bd-qem-emojis"==t&&this.hideEmojis&&(t="bd-qem-favourite");const s=$("#bd-qem-twitch"),n=$("#bd-qem-favourite"),i=$("#bd-qem-emojis");switch(s.removeClass("active"),n.removeClass("active"),i.removeClass("active"),$(".emojiPicker-3m1S-j").hide(),$("#bd-qem-favourite-container").hide(),$("#bd-qem-twitch-container").hide(),t){case"bd-qem-twitch":s.addClass("active"),$("#bd-qem-twitch-container").show();break;case"bd-qem-favourite":n.addClass("active"),$("#bd-qem-favourite-container").show();break;case"bd-qem-emojis":i.addClass("active"),$(".emojiPicker-3m1S-j").show(),$(".emojiPicker-3m1S-j input").focus()}t&&(this.lastTab=t)}observe(e){if(!(e.addedNodes.length&&e.addedNodes[0]instanceof Element))return;const t=e.addedNodes[0];if(!t.classList.contains("layer-v9HyYc")||!t.getElementsByClassName("emojiPicker-3m1S-j").length||t.querySelector(".emojiPicker-3m1S-j").parentElement.classList.contains("animatorLeft-1EQxU0"))return;const s=$(t);this.hideEmojis?s.addClass("bd-qme-hidden"):s.removeClass("bd-qme-hidden"),s.prepend(this.qmeHeader),s.append(this.teContainer),s.append(this.faContainer),this.switchMenu(this.lastTab)}updateTwitchEmotes(){for(;this.teContainerInner.firstChild;)this.teContainerInner.firstChild.remove();for(const e in Ut.getCategory("TwitchGlobal")){if(!Ut.getCategory("TwitchGlobal").hasOwnProperty(e))continue;const t=Ut.getUrl("TwitchGlobal",e),s=Ht(e,t,{onClick:this.insertEmote.bind(this,e)});this.teContainerInner.append(s)}}updateFavorites(){for(;this.faContainerInner.firstChild;)this.faContainerInner.firstChild.remove();for(const e in Ut.favorites){const t=Ut.favorites[e],s=Ht(e,t,{onClick:this.insertEmote.bind(this,e),onContextMenu:this.favContext.bind(this)});this.faContainerInner.append(s)}Ut.saveFavorites()}},$t=new class extends nt{get name(){return"DeveloperMode"}get category(){return"developer"}get id(){return"developerMode"}get selectorModeID(){return"copySelector"}get selectorMode(){return this.get(this.selectorModeID)}constructor(){super(),this.copySelectorListener=this.copySelectorListener.bind(this)}enabled(){document.addEventListener("contextmenu",this.copySelectorListener)}disabled(){document.removeEventListener("contextmenu",this.copySelectorListener)}copySelectorListener(e){e.stopPropagation();const t=this.getSelector(e.target);setImmediate((function(){let s=h.query(".contextMenu-HLZMGh");if(!s){const t=h.query("#app-mount"),n=h.createElement('');s=h.createElement(''),n.append(s),t.append(n),n.style.top=e.clientY+"px",n.style.left=e.clientX+"px",n.style.zIndex="1002";const i=function(e){e.keyCode&&27!==e.keyCode||(n.remove(),document.removeEventListener("click",i),document.removeEventListener("contextmenu",i),document.removeEventListener("keyup",i))};document.addEventListener("click",i),document.addEventListener("contextmenu",i),document.addEventListener("keyup",i)}const n=h.createElement('
'),i=h.createElement('
');i.append(h.createElement(`
${k.Developer.copySelector}
`)),i.addEventListener("click",()=>{f.ElectronModule.copy(t),s.style.display="none"}),n.append(i),s.append(n)}))}getSelector(e){if(e.id)return"#"+e.id;const t=this.getRules(e),s=t[t.length-1];return s?s.selectorText:e.classList.length?"."+Array.from(e.classList).join("."):"."+Array.from(e.parentElement.classList).join(".")}getRules(e,t=e.ownerDocument.styleSheets){return[...t].filter(e=>!e.href||!e.href.includes("BetterDiscordApp")).map(e=>[...e.cssRules||[]]).flat().filter(t=>t&&t.selectorText&&e.matches(t.selectorText)&&t.style.length&&t.selectorText.split(", ").length<8&&!t.selectorText.split(", ").includes("*"))}},Wt=new class extends nt{get name(){return"Debugger"}get category(){return"developer"}get id(){return"debuggerHotkey"}enabled(){document.addEventListener("keydown",this.debugListener)}disabled(){document.removeEventListener("keydown",this.debugListener)}debugListener(e){119!==e.which&&118!=e.which||(e.preventDefault(),e.stopImmediatePropagation())}};const _t=s(0),Gt=s(2),Qt=s(1),Vt=_t.remote.BrowserWindow;var Zt=new class extends nt{get name(){return"ReactDevTools"}get category(){return"developer"}get id(){return"reactDevTools"}initialize(){super.initialize(),this.findExtension()}findExtension(){let e="";if(e="win32"===process.platform?Qt.resolve(process.env.LOCALAPPDATA,"Google/Chrome/User Data"):"linux"===process.platform?Qt.resolve(process.env.HOME,".config/google-chrome"):"darwin"===process.platform?Qt.resolve(process.env.HOME,"Library/Application Support/Google/Chrome"):Qt.resolve(process.env.HOME,".config/chromium"),e+="/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/",Gt.existsSync(e)){const t=Gt.readdirSync(e);e=Qt.resolve(e,t[t.length-1])}this.extensionPath=e,this.isExtensionInstalled=Gt.existsSync(e)}enabled(){if(this.isExtensionInstalled||this.findExtension(),!this.isExtensionInstalled)return W.alert(k.ReactDevTools.notFound,k.ReactDevTools.notFoundDetails);Vt.addDevToolsExtension(this.extensionPath)?this.log("Successfully installed react devtools."):this.error("Couldn't find react devtools in chrome extensions!")}disabled(){this.isExtensionInstalled&&Vt.removeDevToolsExtension("React Developer Tools")}};class Yt extends O.Component{render(){return O.createElement("svg",{className:"bd-logo "+this.props.className,height:"100%",width:this.props.size||"16px",viewBox:"0 0 2000 2000",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}},O.createElement("metadata",null),O.createElement("defs",null,O.createElement("filter",{id:"shadow1"},O.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20",floodColor:"rgba(0,0,0,0.35)"})),O.createElement("filter",{id:"shadow2"},O.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20",floodColor:"rgba(255,255,255,0.15)"})),O.createElement("filter",{id:"shadow3"},O.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20",floodColor:"rgba(0,0,0,0.35)"}))),O.createElement("g",null,O.createElement("path",{style:{filter:"url(#shadow3)"},fill:"#171717",opacity:"1",d:"M1195.44+135.442L1195.44+135.442L997.6+136.442C1024.2+149.742+1170.34+163.542+1193.64+179.742C1264.34+228.842+1319.74+291.242+1358.24+365.042C1398.14+441.642+1419.74+530.642+1422.54+629.642L1422.54+630.842L1422.54+632.042C1422.54+773.142+1422.54+1228.14+1422.54+1369.14L1422.54+1370.34L1422.54+1371.54C1419.84+1470.54+1398.24+1559.54+1358.24+1636.14C1319.74+1709.94+1264.44+1772.34+1193.64+1821.44C1171.04+1837.14+1025.7+1850.54+1000+1863.54L1193.54+1864.54C1539.74+1866.44+1864.54+1693.34+1864.54+1296.64L1864.54+716.942C1866.44+312.442+1541.64+135.442+1195.44+135.442Z"}),O.createElement("path",{style:{filter:"url(#shadow2)"},fill:"#3E82E5",opacity:"1",d:"M1695.54+631.442C1685.84+278.042+1409.34+135.442+1052.94+135.442L361.74+136.442L803.74+490.442L1060.74+490.442C1335.24+490.442+1335.24+835.342+1060.74+835.342L1060.74+1164.84C1150.22+1164.84+1210.53+1201.48+1241.68+1250.87C1306.07+1353+1245.76+1509.64+1060.74+1509.64L361.74+1863.54L1052.94+1864.54C1409.24+1864.54+1685.74+1721.94+1695.54+1368.54C1695.54+1205.94+1651.04+1084.44+1572.64+999.942C1651.04+915.542+1695.54+794.042+1695.54+631.442Z"}),O.createElement("path",{style:{filter:"url(#shadow1)"},fill:"#FFFFFF",opacity:"1",d:"M1469.25+631.442C1459.55+278.042+1183.05+135.442+826.65+135.442L135.45+135.442L135.45+1004C135.45+1004+135.427+1255.21+355.626+1255.21C575.825+1255.21+575.848+1004+575.848+1004L577.45+490.442L834.45+490.442C1108.95+490.442+1108.95+835.342+834.45+835.342L664.65+835.342L664.65+1164.84L834.45+1164.84C923.932+1164.84+984.244+1201.48+1015.39+1250.87C1079.78+1353+1019.47+1509.64+834.45+1509.64L135.45+1509.64L135.45+1864.54L826.65+1864.54C1182.95+1864.54+1459.45+1721.94+1469.25+1368.54C1469.25+1205.94+1424.75+1084.44+1346.35+999.942C1424.75+915.542+1469.25+794.042+1469.25+631.442Z"})))}}const Jt=f.React,Kt=g.getByDisplayName("Tooltip");var Xt=new class{initialize(){u.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),u.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),u.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),u.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")(),u.suppressErrors(this.patchMessageHeader.bind(this),"BD Message Header Patch")(),u.suppressErrors(this.patchMemberList.bind(this),"BD Member List Patch")()}patchSocial(){if(this.socialPatch)return;const e=g.getByDisplayName("TabBar"),t=g.getByDisplayName("Anchor");e&&(this.socialPatch=L.after("ComponentPatcher",e.prototype,"render",(e,s,n)=>{const o=n.props.children;if(!o||!o.length||o.length<3)return;if("Separator"!==o[o.length-3].type.displayName)return;if(!o[o.length-2].type.toString().includes("socialLinks"))return;if(t){const e=o[o.length-2].type,s=function(){const s=e(...arguments);return s.props.children.push(f.React.createElement(t,{className:"bd-social-link",href:"https://twitter.com/BandagedBD",title:"BandagedBD",target:"_blank"},f.React.createElement(Yt,{size:"16px",className:"bd-social-logo"}))),s};o[o.length-2].type=s}const r=f.React.createElement("div",{className:"colorMuted-HdFt4q size12-3cLvbJ"},"Injector "+i.version),a=`(${i.hash?i.hash.substring(0,7):i.branch})`,l=f.React.createElement("div",{className:"colorMuted-HdFt4q size12-3cLvbJ"},`BBD ${i.bbdVersion} `,f.React.createElement("span",{className:"versionHash-2gXjIB da-versionHash"},a)),d=o[o.length-1].type;o[o.length-1].type=function(){const e=d(...arguments);return e.props.children.splice(e.props.children.length-1,0,r),e.props.children.splice(1,0,l),e}}))}patchGuildListItems(){if(this.guildListItemsPatch)return;const e=f.GuildClasses.listItem.split(" ")[0],t=f.GuildClasses.blobContainer.split(" ")[0],s=u.getReactInstance(document.querySelector(`.${e} .${t}`).parentElement).return.type;s&&(this.guildListItemsPatch=L.after("ComponentPatcher",s.prototype,"render",(e,t,s)=>{if(!s||!e)return;const n=e.props;return s.props.className+=" bd-guild",n.unread&&(s.props.className+=" bd-unread"),n.selected&&(s.props.className+=" bd-selected"),n.audio&&(s.props.className+=" bd-audio"),n.video&&(s.props.className+=" bd-video"),n.badge&&(s.props.className+=" bd-badge"),n.animatable&&(s.props.className+=" bd-animatable"),s}))}patchGuildPills(){if(this.guildPillPatch)return;const e=g.getModule(e=>e.default&&!e.default.displayName&&e.default.toString&&e.default.toString().includes("translate3d"));e&&(this.guildPillPatch=L.after("ComponentPatcher",e,"default",(e,t,s)=>{const n=t[0];return n.unread&&(s.props.className+=" bd-unread"),n.selected&&(s.props.className+=" bd-selected"),n.hovered&&(s.props.className+=" bd-hovered"),s}))}patchGuildSeparator(){if(this.guildSeparatorPatch)return;const e=g.getByDisplayName("Guilds"),t=g.getByProps("renderListItem");if(!t||!e)return;const s=function(){const e=t.Separator(...arguments);return e.props.className+=" bd-guild-separator",e};this.guildSeparatorPatch=L.after("ComponentPatcher",e.prototype,"render",(e,t,n)=>{const i=u.findInReactTree(n,e=>e.type&&!e.type.displayName&&"function"==typeof e.type&&u.isEmpty(e.props));i&&(i.type=s)})}patchMessageHeader(){if(this.messageHeaderPatch)return;const e=g.getByProps("MessageTimestamp"),t=g.find(e=>"Anchor"==e.displayName);t&&e&&e.default&&(this.messageHeaderPatch=L.after("ComponentPatcher",e,"default",(e,s,n)=>{const i=u.getNestedProp(s[0],"message.author"),o=u.getNestedProp(n,"props.children.1.props.children.1.props.children");o&&i&&i.id&&"249746236008169473"===i.id&&Array.isArray(o)&&o.push(Jt.createElement(Kt,{color:"black",position:"top",text:"BandagedBD Developer"},e=>Jt.createElement(t,Object.assign({className:"bd-chat-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},e),Jt.createElement(Yt,{size:"16px",className:"bd-logo"}))))}))}patchMemberList(){if(this.memberListPatch)return;const e=g.findByDisplayName("MemberListItem"),t=g.find(e=>"Anchor"==e.displayName);t&&e&&e.prototype&&e.prototype.renderDecorators&&(this.memberListPatch=L.after("ComponentPatcher",e.prototype,"renderDecorators",(e,s,n)=>{const i=u.getNestedProp(e,"props.user"),o=u.getNestedProp(n,"props.children");o&&i&&i.id&&"249746236008169473"===i.id&&Array.isArray(o)&&o.push(Jt.createElement(Kt,{color:"black",position:"top",text:"BandagedBD Developer"},e=>Jt.createElement(t,Object.assign({className:"bd-member-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},e),Jt.createElement(Yt,{size:"16px",className:"bd-logo"}))))}))}};const{ipcRenderer:es}=s(0),ts=f.GuildClasses;!function(){const e=Object.getOwnPropertyDescriptor(HTMLIFrameElement.prototype,"contentWindow").get;Object.defineProperty(HTMLIFrameElement.prototype,"contentWindow",{get:function(){const t=Reflect.apply(e,this,arguments);return new Proxy(t,{getOwnPropertyDescriptor:function(e,t){if("localStorage"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){if("localStorage"===t)return null;const s=e[t];return"function"==typeof s?s.bind(e):s}})}}),Object.defineProperty(Reflect,"apply",{value:Reflect.apply,writable:!1,configurable:!1}),Object.defineProperty(Function.prototype,"bind",{value:Function.prototype.bind,writable:!1,configurable:!1});const t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){const e=arguments[1];return e.toLowerCase().includes("api/webhooks")?null:Reflect.apply(t,this,arguments)}}(),function(){const e="betterdiscord/",t=s(4),n=t._load;t._load=function(t){if("betterdiscord"===t||t.startsWith(e)){if("bdapi"==t.substr(e.length))return Xe}return n.apply(this,arguments)}}(),window.BdApi=Xe,st.show(),new class{constructor(){es.invoke("bd-config","get").then(e=>{this.hasStarted||(Object.assign(i,e),this.init())})}get dependencies(){return[{name:"jquery",type:"script",url:"//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js",backup:"//cdn.jsdelivr.net/gh/jquery/jquery@2.0.0/jquery.min.js",local:null},{name:"bd-stylesheet",type:"style",url:"//cdn.staticaly.com/gh/{{repo}}/BetterDiscordApp/{{hash}}/dist/style.min.css",backup:"//rauenzi.github.io/BetterDiscordApp/dist/style.min.css",local:"{{localServer}}/BetterDiscordApp/dist/style.min.css"}]}setConfig(e){this.hasStarted||Object.assign(i,e)}async init(){if(this.hasStarted)return;this.hasStarted=!0;let e=new Promise(e=>e());if(window.$&&window.jQuery||(e=this.loadDependencies()),w.initialize(),await D.initialize(),i.version
i.version&&W.showConfirmationModal(k.Startup.updateAvailable,k.Startup.updateInfo.format({version:t}),{confirmText:k.Startup.updateNow,cancelText:k.Startup.maybeLater,onConfirm:async()=>{const e=()=>{W.alert(k.Startup.updateFailed,k.Startup.manualUpdate)};try{if(!await this.updateInjector())return e();const t=s(0).remote.app;t.relaunch(),t.exit()}catch(t){e()}}}),c.log("Startup","Initializing Settings"),T.initialize(),await this.waitForGuilds(),F.initialize(),Xt.initialize();for(const e in n)n[e].initialize();await e,c.log("Startup","Loading Plugins");const o=Ve.initialize();c.log("Startup","Loading Themes");const r=Ye.initialize();c.log("Startup","Removing Loading Icon"),st.hide(),c.log("Startup","Collecting Startup Errors"),W.showAddonErrors({plugins:o,themes:r});const a=w.getBDData("version");i.bbdVersion>a&&(W.showChangelogModal(l),w.setBDData("version",i.bbdVersion))}waitForGuilds(){let e=0;return new Promise(t=>{const s=function(){e++,"complete"!=document.readyState&&setTimeout(s,100);const n=ts.wrapper.split(" ")[0],o=ts.listItem.split(" ")[0],r=ts.blobContainer.split(" ")[0];return document.querySelectorAll(`.${n} .${o} .${r}`).length>0||e>=50?t(i.deferLoaded=!0):void setTimeout(s,100)};s()})}async loadDependencies(){for(const e of this.dependencies){const t=u.formatString(i.local&&null!=e.local?e.local:e.url,{repo:i.repo,hash:i.hash,localServer:i.localServer});c.log("Startup",`Loading Resource (${t})`);const s=("script"==e.type?C.injectScript:C.linkStyle).bind(C);try{await s(e.name,t)}catch(n){const o=u.formatString(e.backup,{minified:i.minified?".min":""});c.stacktrace("Startup",`Could not load ${t}. Using backup ${o}`,n);try{await s(e.name,o)}catch(s){c.stacktrace("Startup",`Could not load ${t}. Using backup ${o}`,n),"jquery"===e.name&&W.alert(k.Startup.jqueryFailed,k.Startup.jqueryFailedDetails)}}}}async updateInjector(){const e=w.injectionPath;if(!e)return!1;const t=s(2),n=s(1),i=s(6),o=s(7),r=s(8),a=s(3),l=n.resolve(e,".."),d=n.basename(e),h="https://github.com/rauenzi/BetterDiscordApp/archive/injector.zip",u=n.resolve(l,"injector.zip"),p=n.resolve(l,"BetterDiscordApp-injector");c.log("InjectorUpdate","Downloading "+h);let m=await new Promise(e=>{a.get({url:h,encoding:null},async(s,n,i)=>{if(s||200!==n.statusCode)return e(!1);await new Promise(e=>t.exists(u,e))&&await new Promise(e=>t.rename(u,`${u}.bak${Math.round(performance.now())}`,e)),c.log("InjectorUpdate","Writing "+u),t.writeFile(u,i,t=>e(!t))})});if(!m)return m;await new Promise(e=>t.exists(p,e))&&await new Promise(e=>t.rename(p,`${p}.bak${Math.round(performance.now())}`,e));const g=await new Promise(e=>o.open(u,{lazyEntries:!0},(t,s)=>e(s)));g.on("entry",(function(e){if(e.fileName.endsWith("/"))return g.readEntry();c.log("InjectorUpdate","Extracting "+e.fileName);const s=n.resolve(l,e.fileName);r.sync(n.dirname(s)),g.openReadStream(e,(function(e,n){if(e)return m=!1;n.on("end",(function(){g.readEntry()})),n.pipe(t.createWriteStream(s))}))})),g.readEntry(),await new Promise(e=>g.once("end",e));const f=n.resolve(l,`${d}.bak${Math.round(performance.now())}`);return await new Promise(s=>t.rename(e,f,s)),c.log("InjectorUpdate",`Renaming ${n.basename(p)} to ${d}`),m=await new Promise(s=>t.rename(p,e,e=>s(!e))),m?m?(await new Promise(e=>i(f,e)),await new Promise(e=>t.unlink(u,e)),c.log("InjectorUpdate","Injector Updated!"),m):(c.err("InjectorUpdate","Something went wrong... restoring backups."),await new Promise(e=>i(p,e)),await new Promise(s=>t.rename(f,e,s)),m):(c.err("InjectorUpdate","Failed to rename the final directory"),m)}}}]);
\ No newline at end of file
diff --git a/dist/style.css b/dist/style.css
index 48b2765d..26cb76ec 100644
--- a/dist/style.css
+++ b/dist/style.css
@@ -1 +1,2277 @@
-.react-error{color:red;font-weight:700;font-family:Arial,Helvetica,sans-serif;cursor:pointer}.bd-settings-group.collapsible .bd-settings-title{display:flex;justify-content:space-between}.bd-settings-group.collapsible .bd-settings-title::after{content:"";background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSItOTUwIDUzMiAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAtOTUwIDUzMiAxOCAxODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6bm9uZTt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjEuNTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS05MzIsNTMydjE4aC0xOHYtMThILTkzMnoiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ii05MzYuNiw1MzguOCAtOTQxLDU0My4yIC05NDUuNCw1MzguOCAiLz4NCjwvc3ZnPg0K);height:20px;width:20px;display:inline-block;vertical-align:bottom;transition:transform .3s ease;transform:rotate(0)}.bd-settings-group.collapsed .bd-settings-title::after{transition:transform .3s ease;transform:rotate(90deg)}.bd-settings-container{height:auto;overflow:hidden;transition:height 300ms cubic-bezier(.47,0,.745,.715)}.bd-settings-group.collapsed .bd-settings-container{height:0}.bd-settings-group~.bd-settings-group .bd-settings-title{margin-top:30px;transition:margin-top 300ms ease}.bd-settings-group.collapsed+.bd-settings-group .bd-settings-title{margin-top:0}.bd-settings-group.collapsible .bd-settings-title{order:1;align-items:center}.bd-settings-group.collapsible .bd-settings-title::before{content:"";background-color:rgba(114,118,125,.3);height:2px;order:2;flex:1;margin:0 10px 0 15px}.bd-settings-group.collapsible .bd-settings-title::after{order:3}.bd-settings-title.bd-settings-group-title{margin-bottom:10px}.checkbox-item{display:flex}.checkbox-item .checkbox-label{margin-right:8px}#bd-connection{margin-left:10px}.bd-button{background-color:#3e82e5;color:#fff;border-radius:3px;padding:2px 6px}.bd-button:hover{background-color:#3875ce}.bd-button:active{background-color:#3268b7}.bd-footnote{color:#b9bbbe;font-size:11px}.bd-button-next,.bd-button-reconnect{margin:5px 10px 10px 0;width:100%;min-height:20px}.bd-server-card{position:relative;border-width:1px;border-style:solid;border-radius:5px;background:rgba(32,34,37,.6);border-color:#202225;margin-bottom:8px}.bd-server-header,.bd-server-footer{display:flex;color:#b9bbbe}.bd-server-header{text-transform:uppercase;letter-spacing:.5px}.bd-server-card .bd-button{margin-top:4px}.bd-button.bd-button-success{background-color:#3ac15c}.bd-button.bd-button-success:hover{background-color:#34ae53}.bd-button.bd-button-success:active{background-color:#2e9a4a}#bbd-version{font-size:12px;font-weight:600;color:#72767d;padding:2px 10px}.settings-open .bd-close{cursor:pointer;float:right}@keyframes open-window{0%{transform:scale(.9)}to{transform:none}}.floating-window{animation:open-window 200ms ease;min-width:200px;min-height:300px;box-shadow:0 2px 10px 0 rgba(0,0,0,.2);display:flex;flex-direction:column;-webkit-app-region:no-drag;position:fixed;z-index:1001;box-sizing:border-box}.floating-window.modal-open{z-index:999}.floating-window.resizable{overflow:auto;resize:both;padding-bottom:10px;background:#202225}.floating-window-titlebar{width:100%;display:flex;justify-content:space-between;align-items:center;background:#202225;color:#fff;border-bottom:1px solid #272822}.floating-window-content{background:#2f3129;color:#fff;flex:1}.floating-window-titlebar .title{flex:1;text-align:center;padding:2px 0}.floating-window-buttons{display:flex}.floating-window-buttons .button{cursor:pointer;padding:0 2px}.floating-window-buttons .button svg{fill:#dcddde;margin-top:1.5px}.floating-window-buttons .button:hover svg{fill:#fff}.floating-window-buttons .button:hover{background-color:#36393f}.floating-window-buttons .close-button:hover{background-color:#f04747}.floating-window-buttons .close-button:hover svg path.fill{fill:#fff}.floating-window-content #bd-editor-panel{display:flex;flex-direction:column;flex:1}.floating-window-content{display:flex;flex-direction:column}.floating-window .editor-wrapper{flex:1}.floating-window .ace_editor{height:auto;flex:1}.floating-window #bd-editor-controls{height:auto;background:#202225;border:0;box-shadow:0 1px 0 0 #2f3129 inset}.bd-addon-controls{display:flex;align-items:center;justify-content:space-between}.bd-addon-controls .bd-search{font-size:13px;margin:0;width:200px}.bd-addon-dropdowns{display:flex}.bd-select-wrapper+.bd-select-wrapper{margin-left:10px}.bd-select-wrapper{color:#f6f6f7;font-size:13px;display:flex;align-items:center}.bd-select-wrapper label{opacity:.3;margin-right:5px}.bd-select{position:relative;cursor:pointer;color:#f6f6f7;font-size:13px;display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.3);border-radius:3px;padding:5px 5px 5px 0}.bd-select.bd-select-transparent{background:0 0;border:0;padding:0}.bd-select-value{padding-left:12px}.bd-select-arrow{margin-left:10px}.bd-select .bd-select-options{position:absolute;background:#2f3136;border-radius:0 0 3px 3px;max-height:300px;min-width:calc(100% + 2px);overflow-y:auto;box-shadow:rgba(0,0,0,.3) 0 1px 5px 0;border:1px solid rgba(0,0,0,.3);border-top:0;margin-top:-1px;margin-left:-1px;z-index:2;top:100%}.bd-select-transparent .bd-select-options{border:1px solid rgba(0,0,0,.3);margin-top:3px;border-radius:3px}.bd-select .bd-select-option{padding:8px 12px;cursor:pointer;white-space:pre}.bd-select .bd-select-option:hover,.bd-select .bd-select-option.selected{background:#26272b}.bd-search-wrapper{padding:3px;border-radius:3px;outline:0;border:0;background-color:#202225;color:#fff;display:flex;align-items:center}.bd-search{padding:2px 3px;background:0 0;border:0;color:#fff;flex:1}.bd-search-wrapper>svg{margin-right:2px}.bd-setting-item .bd-select{min-width:200px}.bd-settings-group.expanded .bd-settings-container:not(.animating){overflow:visible}.bd-switch{background-color:#72767d;border-radius:14px;width:42px;height:24px;opacity:1;overflow:hidden;user-select:none;position:relative;display:block;flex:0 0 auto;transition:background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out,opacity .15s ease-in-out;margin-left:10px;box-shadow:inset 0 1px 1px rgba(0,0,0,.15)}.bd-switch::before{content:"";display:block;position:absolute;top:0;left:0;bottom:0;right:0;z-index:0;opacity:0;background-color:#000}.bd-switch::after{content:"";display:block;position:absolute;background-color:#fff;z-index:1;width:18px;margin:3px;border-radius:9px;height:18px;left:0;transition:transform .15s ease-in-out,width .1s ease-in-out,left .1s ease-in-out;box-shadow:0 2px 4px rgba(0,0,0,.3)}.bd-switch .bd-checkbox{position:absolute;width:100%;height:100%;opacity:0;padding:0;margin:0;z-index:2;cursor:pointer}.bd-switch-checked{background-color:#3e82e5}.bd-switch-checked::after{transform:translate3d(18px,0,0)}.bd-switch-disabled{opacity:.3;cursor:not-allowed}.bd-setting-item{display:flex;flex-direction:column;margin-bottom:20px}.bd-setting-header{display:flex;justify-content:space-between;align-items:center}.bd-setting-header label{font-weight:500;cursor:pointer;overflow:hidden;word-wrap:break-word;font-size:16px;line-height:24px;color:#f6f6f7}.bd-setting-note{color:#72767d;margin-top:4px;font-size:14px;line-height:20px;font-weight:500}.bd-setting-divider{width:100%;height:1px;margin-top:20px;background-color:rgba(114,118,125,.3)}.bd-controls+.bd-addon-list{margin-top:10px}.bd-addon-button{cursor:pointer}.bd-addon-button+.bd-addon-button{margin-left:5px}#emote-container{padding:10px}.emote-container{display:inline-block;padding:2px;border-radius:5px;width:30px;height:30px;position:relative}.emote-icon{max-width:100%;max-height:100%;position:absolute;margin:auto;top:0;right:0;bottom:0;left:0;cursor:pointer}.emote.stop-animation{animation:none!important}.emote-container:hover{background:rgba(123,123,123,.37)}.emoteflip,.emotespinflip{transform:scaleX(-1)}.emotespin{animation:1s emote-spin infinite linear}.emote1spin{animation:1s emote-spin-reverse infinite linear}.emotespin2{animation:.5s emote-spin infinite linear}.emote2spin{animation:.5s emote-spin-reverse infinite linear}.emotespin3{animation:.2s emote-spin infinite linear}.emote3spin{animation:.2s emote-spin-reverse infinite linear}.emotepulse{animation:1s emote-pulse infinite linear}.emotetr{transform:translateX(-3px)}.emotebl{transform:translateY(-3px)}.emotebr{transform:translate(-3px,-3px)}.emoteshake{animation:1s emote-shake infinite linear}.emoteflap{transform:scaleY(-1)!important}.emoteshake2{animation:emote-shake2 .3s linear infinite}.emoteshake3{animation:emote-shake3 .1s linear infinite}@keyframes emote-shake2{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-shake3{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes emote-spin-reverse{0%{transform:rotate(0deg)}to{transform:rotate(-360deg)}}@keyframes emote-pulse{0%{-webkit-transform:scale(1,1)}50%{-webkit-transform:scale(1.2,1.2)}to{-webkit-transform:scale(1,1)}}@keyframes emote-shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}#removemenu{width:auto;background:#505050;position:absolute;z-index:999999;display:none;box-shadow:0 0 2px #000;padding:2px;left:25px;display:block!important;cursor:pointer;color:#fff;position:fixed}#removemenu ul a{text-decoration:none;color:#fff;padding:3px}.emotewrapper{position:relative;display:inline-flex;object-fit:contain;margin:-.1em .05em -.2em .1em;vertical-align:top}.emotewrapper.jumboable{margin-bottom:0;margin-top:.2em;vertical-align:-.3em}.emote{height:1.45em}.emote.jumboable{height:2rem}.emotewrapper:hover .fav{display:block}.fav{display:none;position:absolute;width:15px;height:15px;right:-7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=);border:0;background-size:100% 100%;background-repeat:no-repeat;background-color:#303030;border-radius:5px;top:-7px;cursor:pointer}.fav.active{background-color:#ff0}.emojiPicker-3m1S-j{box-shadow:none;border-top:none;border-radius:0 0 5px 5px}#bd-qem{border-radius:5px 5px 0 0;background:#fff;border-bottom:1px solid rgba(0,0,0,.1)!important;height:30px;display:flex;flex-direction:row;padding-right:1px!important}#bd-qem button{border-left:1px solid #efefef;background:0 0;box-shadow:#cecece 1px 0 0 0;flex-grow:1}#bd-qem button:hover{background:#ececec}#bd-qem-twitch{border-radius:5px 0 0 0;order:2}#bd-qem-emojis{border-radius:0 5px 0 0;order:3}#bd-qem-favourite{order:3}#bd-qem button.active{background-color:#e2e2e2}#bd-qem-twitch-container,#bd-qem-favourite-container{width:346px;height:329px;background-color:#fff;border-radius:0 0 5px 5px}#bd-qem-twitch-container .scroller-wrap,#bd-qem-favourite-container .scroller-wrap{height:100%}.emote-menu-inner{padding:5px 0 0 15px}.bd-qme-hidden #bd-qem-emojis{display:none}#bd-pub-li{height:20px;margin-bottom:10px;overflow:hidden}#bd-pub-button{border-radius:4px;background-color:#2f3136;color:#b9bbbe;text-align:center;font-size:12px;line-height:20px;height:20px}.bd-server-card .bd-server-tags{flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:0;line-height:24px;font-size:12px;color:#b9bbbe;font-weight:700;margin-right:10px}.bd-server-card.bd-server-card-pinned{margin-bottom:15px}.bd-server-card.bd-server-card-pinned:after{background:#3a71c1;content:"";height:3px;width:100%;display:block;margin-top:7px;position:absolute;top:100%}.bd-server-description-container{color:#b9bbbe;min-height:65px;max-height:65px;border-top:1px solid #3f4146;border-bottom:1px solid #3f4146;padding-top:5px;font-size:13px}.bd-server-header{justify-content:space-between;font-weight:600}.bd-server-card{display:flex}.bd-server-content{padding:5px 10px;flex:1}.bd-server-image{min-width:115px;min-height:115px;max-width:115px;max-height:115px}.bd-server-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:15px;max-width:330px;flex:1 1 50%}.bd-layer{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;left:0;position:absolute;right:0;top:0}#pubslayer button{background:#7289da;color:#fff;font-size:14px;font-weight:500;line-height:16px;padding:2px 16px;border:0;border-radius:3px;transition:background-color .17s ease}#pubslayer button:hover{background-color:#677bc4}#pubslayer input{color:#f6f6f7;background-color:rgba(0,0,0,.1);border-color:rgba(0,0,0,.3);padding:10px;height:30px;border-width:1px;border-style:solid;border-radius:3px;outline:0;transition:background-color .15s ease,border .15s ease}#bd-editor-panel{display:flex;flex-direction:column}#bd-editor-controls button{margin:0 5px 0 0;background:0 0;color:#fff;height:26px;font-weight:600;border-radius:3px;display:flex;align-items:center}#bd-editor-controls button:hover{background:rgba(255,255,255,.05)}#bd-editor-controls button svg{fill:#fff}#bd-editor-controls button:last-of-type{margin-right:0}#bd-editor-controls{display:flex;align-items:center;justify-content:space-between;background:#272822;color:#fff;border:0;box-shadow:0 1px 0 0 #2f3129 inset;padding:5px}.editor-wrapper{display:flex}.ace_editor{line-height:normal;font-family:Consolas,monospace;box-sizing:border-box;height:calc(100vh - 250px);font-size:14px;width:100%}.bd-monokai .editor .ace_gutter{background:#2f3136}.bd-monokai .ace_editor{background:#292b2f}.bd-monokai #bd-editor-controls{background:#202225}.theme-light #bd-editor-controls{background:#e8e8e8;border:1px solid #fff;border-top:1px solid #adadad;box-shadow:inset 0 1px 0 0 #fff}.controls-section{display:flex;align-items:center}.controls-section .checkbox-inner{width:14px;height:14px}.controls-section .checkbox-inner .checkbox:checked+span::after{left:2px;top:-2px}.controls-section .checkbox-label{font-size:14px}#floating-editor-window{min-width:340px;min-height:280px;max-height:900px;max-width:750px}.floating-addon-window{min-width:535px;min-height:605px;max-height:90%;max-width:90%}#ace_settingsmenu_container{background:rgba(0,0,0,.7)!important}body #ace_settingsmenu{padding-top:35px}body .ace_closeButton{position:absolute;top:8px;right:12px;z-index:10000;padding:0;cursor:pointer;background:0 0;border:0}body .ace_closeButton::before{content:"✖";color:#36393f}body .ace_closeButton:active{transform:translateY(2px)}#bd-editor-controls .help-text{margin-top:8px;margin-bottom:3px;font-size:14px}#bd-editor-controls .help-text .inline{background:#2f3129;padding:.2em;margin:-.2em 0;border-radius:3px}.bd-social-logo{opacity:.6}.bd-social-link:hover .bd-social-logo{opacity:1}.standardSidebarView-3F1I7i .bd-versioninfo-wrapper{bottom:0;left:0;position:fixed;background:inherit;right:0;padding:5px}.standardSidebarView-3F1I7i .bd-versioninfo-wrapper span{color:#b9bbbe;font-weight:600;font-size:11px}.standardSidebarView-3F1I7i .bd-versioninfo-wrapper a{font-size:11px}.bd-button-title{margin-left:10px}.bd-switch-item{flex-direction:column;margin-top:8px}.bd-switch-item h3{font-size:16px;font-weight:500;line-height:24px;flex:1}.theme-dark .bd-switch-item h3{color:#f6f6f7}.theme-light .bd-switch-item h3{color:#4f545c}.bd-switch-item .bd-switch-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;width:44px;height:24px;display:block;flex:0 0 auto}.bd-switch-item .bd-switch-wrapper input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;z-index:1}.bd-switch-item .bd-switch-wrapper .bd-switch{background:#7289da;position:absolute;top:0;right:0;bottom:0;left:0;background:#72767d;border-radius:14px;transition:background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out}.bd-switch-item .bd-switch-wrapper .bd-switch:before{content:"";display:block;width:18px;height:18px;position:absolute;top:3px;left:3px;bottom:3px;background:#f6f6f7;border-radius:10px;transition:all .15s ease;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05)}.bd-switch-item .bd-switch-wrapper .bd-switch.checked{background:#7289da}.bd-switch-item .bd-switch-wrapper .bd-switch.checked:before{transform:translateX(20px)}#bd-settingspane-container .scroller-wrap{height:100%}#bd-settingspane-container .scroller-wrap .scroller{display:flex}.bd-reload{cursor:pointer;vertical-align:top;fill:#dcddde}.bd-reload:hover{fill:#fff}.bd-reload-header{margin-left:5px}.bd-reload-card{margin-right:5px}.bd-controls{display:flex}.bd-addon-list{user-select:text}.bd-addon-list .bd-addon-card{max-height:175px;margin-bottom:20px;padding:5px 8px;border:1px solid transparent;border-radius:5px;overflow:hidden}.theme-dark .bd-addon-list .bd-addon-card{background-color:rgba(32,34,37,.6);color:#f6f6f7;border-color:#202225}.theme-light .bd-addon-list .bd-addon-card{background-color:#f8f9f9;color:#4f545c;border-color:#dcddde}.bd-addon-list .bd-addon-card.settings-open{max-height:800px;overflow-y:auto}.bd-addon-list .bd-addon-header{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-bottom:5px;border-bottom:1px solid transparent;overflow:hidden}.theme-dark .bd-addon-list .bd-addon-header{color:#f6f6f7;border-bottom-color:rgba(114,118,125,.3)}.theme-light .bd-addon-list .bd-addon-header{color:#4f545c;border-bottom-color:rgba(185,187,190,.3)}.bd-addon-list .bd-description{word-break:break-word;max-height:100px;margin:5px 0;padding:5px 0;overflow-y:auto}.theme-dark .bd-addon-list .bd-description{color:#b9bbbe}.theme-light .bd-addon-list .bd-description{color:#72767d}.bd-addon-list .scroller::-webkit-scrollbar-track-piece,.bd-addon-list .scroller::-webkit-scrollbar-thumb{border-radius:0!important;border-color:transparent}.bd-addon-list .bd-footer{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-top:5px;border-top:1px solid transparent;overflow:hidden}.theme-dark .bd-addon-list .bd-footer{border-top-color:rgba(114,118,125,.3)}.theme-light .bd-addon-list .bd-footer{border-top-color:rgba(185,187,190,.3)}.bd-addon-list .bd-footer button{padding:3px 16px;transition:opacity 250ms ease}.bd-addon-list .bd-footer button:disabled{opacity:.4}.bd-addon-list .bd-footer a{color:#3e82e5}.bd-addon-list .bd-footer a:hover{text-decoration:underline}@keyframes bd-backdrop{to{opacity:.85}}@keyframes bd-modal-wrapper{to{transform:scale(1);opacity:1}}@keyframes bd-backdrop-closing{to{opacity:0}}@keyframes bd-modal-wrapper-closing{to{transform:scale(.7);opacity:0}}.bd-backdrop{animation:bd-backdrop 250ms ease;animation-fill-mode:forwards;opacity:0;background-color:#000;transform:translateZ(0)}.bd-modal-wrapper.closing .bd-backdrop{animation:bd-backdrop-closing 200ms linear;animation-fill-mode:forwards;animation-delay:50ms;opacity:.85}.bd-modal-wrapper.closing .bd-modal{animation:bd-modal-wrapper-closing 250ms cubic-bezier(.19,1,.22,1);animation-fill-mode:forwards;opacity:1;transform:scale(1)}.bd-modal-wrapper .bd-modal{animation:bd-modal-wrapper 250ms cubic-bezier(.175,.885,.32,1.275);animation-fill-mode:forwards;transform:scale(.7);transform-origin:50% 50%;display:flex;align-items:center;box-sizing:border-box;contain:content;justify-content:center;top:0;left:0;bottom:0;right:0;opacity:0;pointer-events:none;position:absolute;z-index:1000}.bd-modal-wrapper .bd-modal-inner{display:flex;contain:layout;flex-direction:column;pointer-events:auto;border:1px solid rgba(28,36,43,.6);border-radius:5px;box-shadow:0 2px 10px 0 rgba(0,0,0,.2);overflow:hidden;max-height:660px;min-height:200px;width:440px;user-select:text}.bd-modal-wrapper .bd-content-modal .bd-modal-inner{height:500px;width:700px}.bd-modal-wrapper .header{background-color:#35393e;box-shadow:0 2px 3px 0 rgba(0,0,0,.2);padding:12px 20px;z-index:1;color:#fff;font-size:16px;font-weight:700;line-height:19px}.bd-modal-wrapper .bd-modal-body{background-color:#36393f;color:#fff;flex-direction:row;overflow:hidden;display:flex;flex-direction:column;flex:1;contain:layout;position:relative}.bd-modal-wrapper .scroller{padding:10px}.bd-modal-wrapper .bd-content-modal .bd-modal-body{padding:0}.bd-modal-wrapper .scroller{overflow-y:auto}.bd-modal-wrapper .footer{display:flex;justify-content:flex-end;padding:10px 20px}.bd-modal-wrapper .footer button{min-height:32px;min-width:60px;align-items:center;display:flex;font-size:14px;font-weight:500;justify-content:center;line-height:16px;padding:2px 16px;user-select:none}.bd-modal-wrapper .tab-bar-container{align-items:center;border-bottom:0;background:rgba(0,0,0,.2);box-shadow:0 2px 3px 0 rgba(0,0,0,.1);display:flex;flex-direction:row;justify-content:space-between;margin-bottom:15px}.bd-modal-wrapper .tab-bar.TOP{margin:0;border:0;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.bd-modal-wrapper .tab-bar-container .tab-bar-item{margin:0 15px;padding:15px 0;color:#fff!important;opacity:.5;transition:opacity 200ms ease;border-bottom:2px solid transparent}.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover{border-color:#fff;cursor:pointer}.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected{opacity:1;border-color:#fff}.bd-modal-wrapper .tab-bar.TOP .tab-bar-item+.tab-bar-item{margin:0}.bd-modal-wrapper .table-header{display:flex;justify-content:space-between;color:#fff;font-weight:700;padding-bottom:10px;margin:3px 15px 0 15px;border-bottom:1px solid #fff;font-size:14px}.bd-modal-wrapper .table-column{width:25%}.bd-modal-wrapper .table-column.column-error{width:50%}.bd-modal-wrapper .table-column{word-wrap:break-word}.bd-modal-wrapper .errors{display:flex;flex-direction:column;padding:0;font-size:14px;padding:0 5px}.bd-modal-wrapper .error{display:flex;color:#fff;border-bottom:1px solid rgba(255,255,255,.25);padding:15px 0;align-items:center}.bd-modal-wrapper .error-link{color:#3e82e5;font-weight:500}.bd-modal-wrapper .bd-content-modal .scroller{padding-top:0}.bd-toasts{position:fixed;display:flex;top:0;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none;z-index:4000}@keyframes bd-toast-up{0%{transform:translateY(0);opacity:0}}.bd-toast{animation:bd-toast-up 300ms ease;transform:translateY(-10px);background:#36393f;padding:10px;border-radius:5px;box-shadow:0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2);font-weight:500;color:#fff;user-select:text;font-size:14px;opacity:1;margin-top:10px;pointer-events:none;user-select:none}@keyframes bd-toast-down{to{transform:translateY(0);opacity:0}}.bd-toast.closing{animation:bd-toast-down 200ms ease;animation-fill-mode:forwards;opacity:1;transform:translateY(-10px)}.bd-toast.icon{padding-left:30px;background-size:20px 20px;background-repeat:no-repeat;background-position:6px 50%}.bd-toast.toast-info{background-color:#4a90e2}.bd-toast.toast-info.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=)}.bd-toast.toast-success{background-color:#43b581}.bd-toast.toast-success.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=)}.bd-toast.toast-danger,.bd-toast.toast-error{background-color:#f04747}.bd-toast.toast-danger.icon,.bd-toast.toast-error.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+)}.bd-toast.toast-warning,.bd-toast.toast-warn{background-color:#ffa600;color:#fff}.bd-toast.toast-warning.icon,.bd-toast.toast-warn.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==)}.bd-minimal .divider-32i8lo{opacity:0}.bd-minimal .large-3ChYtB{max-width:20px;max-height:20px;background-size:100%;margin-right:2px;margin-top:0;border-radius:0}.bd-minimal .content-3dzVd8{border-left:2px solid #ebebeb;padding-left:2px}.bd-minimal .theme-dark .content-3dzVd8{border-left:2px solid #303030}.bd-minimal .username-_4ZSMR{font-size:small}.bd-minimal .container-1YxwTf{padding:5px}.bd-minimal .embed-IeVjo6{padding:2px}.bd-minimal .membersWrap-2h-GB4{min-width:0}.bd-minimal .members-1998pB .small-5Os1Bb{max-width:15px;max-height:15px;background-size:15px 15px}.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE{height:5px;width:5px}.bd-minimal .members-1998pB .member-3W1lQa{padding:5px}.bd-minimal .members-1998pB .memberInner-2CPc3V{transform:scale(.9)}.bd-minimal .members-1998pB .membersGroup-v9BXpm{margin-top:3px;transform:scale(.9)}.bd-minimal.bd-minimal-chan .channels-Ie2l6A{display:none}.bd-minimal .channels-Ie2l6A header span{font-size:12px}.bd-minimal .channels-Ie2l6A{width:160px}.bd-minimal .containerDefault-3GGEv_{transform:scale(.9)}.bd-minimal .content-3at_AU{transform:scale(.9)}.bd-minimal .icon-1_QxNX{width:14px;height:14px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px;margin:0 12.5px 8px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .wrapper-25eVIn a,.bd-minimal .listItem-2P_4kh .wrapper-25eVIn .icon-27yU2q{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .listItem-2P_4kh .wrapper-25eVIn{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .listItem-2P_4kh svg,.bd-minimal .listItem-2P_4kh foreignObject[mask]{mask:none}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .homeIcon-tEMBK1{width:10px;height:10px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .circleIconButton-jET_ig{height:20px;width:20px}.bd-minimal .circleIconButton-jET_ig svg{height:14px;width:14px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .friendsOnline-_wi_fM{margin-left:-15px;font-size:7px}.bd-minimal #bd-pub-li{height:16px}.bd-minimal #bd-pub-button{font-size:8px;line-height:16px;height:16px}.bd-minimal .wrapper-1Rf91z,.bd-minimal .wrapper-1Rf91z .scrollerWrap-1IAIlv,.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG{width:45px}.bd-minimal .wrapper-1Rf91z .guildSeparator-3s64Iy{margin-left:-15px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh .wrapper-sa6paO{height:20px;margin-top:0;margin-left:-12.5px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .iconBadge-2wi9r4{width:12px;height:12px;background-size:12px}.bd-minimal .container-2Thooq .avatarSmall-3ACRaI{width:15px;height:15px;background-size:15px 15px}.bd-minimal .container-2Thooq .avatarSmall-3ACRaI .status-oxiHuE{height:5px;width:5px}.bd-minimal .container-2Thooq .accountDetails-3k9g4n{transform:scale(.8)}.bd-minimal .container-2Thooq .button-2b6hmh{height:14px;width:14px;background-size:14px 14px;margin-left:3px}.bd-minimal .container-2Thooq .button-2b6hmh svg{height:14px;width:14px}.bd-dark #bd-qem-favourite-container,.bd-dark #bd-qem-twitch-container{background-color:#353535}.bd-dark #bd-qem{border-bottom:1px solid #464646!important;background:#353535}.bd-dark #bd-qem button{background:#353535;border-left:1px solid #242424;box-shadow:#424242 1px 0 0 0;color:#fff}.bd-dark #bd-qem button.active{background-color:#292929}.bd-dark #bd-qem button:hover{background-color:#303030}.bd-dark #bd-qem-favourite-container,.bd-dark #bd-qem-twitch-container{background-color:#353535}.bd-dark .emojiPicker-3m1S-j{background-color:#353535}.bd-dark .emojiPicker-3m1S-j .category-2U57w6{background-color:#353535}.bd-dark .emojiPicker-3m1S-j .header-1nkwgG .searchBar-2pWH0_{background-color:#2b2b2b}.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input{color:#fff}.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input::-webkit-input-placeholder{color:#fff}.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S{background-color:rgba(123,123,123,.37)}.bd-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ{background-color:rgba(62,62,62,.65)}.bd-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc{background:#353535;border-color:#202020}.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar,.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track,.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track-piece,.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar,.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track,.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece{background-color:#303030!important;border-color:#303030!important}.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-thumb,.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-thumb,.bd-dark .emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb{border-color:#202020!important;background-color:#202020!important}.bd-dark .theme-light .slide-2pHaq5{background:#36393f}.bd-dark .theme-dark .action-1lSjCi,.bd-dark .theme-light .action-1lSjCi{background:#2f3136}.bd-dark .theme-dark .or-3THJsp,.bd-dark .theme-light .or-3THJsp{background:#2f3136;order:2;height:56px;width:56px;top:103px;line-height:56px;left:calc(50% - 29px);border-radius:50%;border:2px solid #484b52}.bd-dark .create-3jownz{order:1}.bd-dark .join-33Tr-7{order:3}.bd-dark .theme-dark .actionIcon-2IISM_,.bd-dark .theme-light .actionIcon-2IISM_{filter:grayscale(100%) brightness(60%)}.bd-dark .theme-light .footer-2yfCgX{background:#2f3136}.bd-dark .regionSelectModal-12e-57{background:#36393f}.bd-dark .regionSelectModal-12e-57 .regionSelectModalOption-2DSIZ3{background:#2f3136;border:2px solid #484b52}.bd-dark~div #ace_settingsmenu{color:#f6f6f7;background:#36393f;box-shadow:0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2)}.bd-dark~div #ace_settingsmenu select,.bd-dark~div #ace_settingsmenu input[type=text]{color:#f6f6f7;background:#2f3136;border:1px solid #484b52}.bd-dark~div .ace_closeButton::before{color:#f6f6f7}.bd-chat-badge{vertical-align:bottom;line-height:1.375rem;display:inline-block;height:1.25rem}.bd-member-badge{height:15px;margin-left:4px}.bd-sidebar-header{display:flex;justify-content:space-between}.bd-sidebar-header .bd-changelog-button{height:16px}.bd-sidebar-header .bd-icon{cursor:pointer;fill:#72767d}.bd-sidebar-header .bd-icon:hover{fill:#fff}
\ No newline at end of file
+/* stylelint-disable no-descending-specificity */
+
+#bd-editor-panel {
+ display: flex;
+ flex-direction: column;
+}
+
+#bd-editor-controls button {
+ margin: 0 5px 0 0;
+ background: none;
+ color: #fff;
+ height: 26px;
+ font-weight: 600;
+ border-radius: 3px;
+ display: flex;
+ align-items: center;
+}
+
+#bd-editor-controls button:hover {
+ background: rgba(255, 255, 255, 0.05);
+}
+
+#bd-editor-controls button svg {
+ fill: white;
+}
+
+#bd-editor-controls button:last-of-type {
+ margin-right: 0;
+}
+
+#bd-editor-controls {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: #272822;
+ color: #fff;
+ border: none;
+ box-shadow: 0 1px 0 0 #2f3129 inset;
+ padding: 5px;
+}
+
+.editor-wrapper {
+ display: flex;
+}
+
+.ace_editor {
+ line-height: normal;
+ font-family: Consolas, monospace;
+ box-sizing: border-box;
+ height: calc(100vh - 250px);
+ font-size: 14px;
+ width: 100%;
+}
+
+.bd-monokai .editor .ace_gutter {
+ background: #2f3136;
+}
+
+.bd-monokai .ace_editor {
+ background: #292b2f;
+}
+
+.bd-monokai #bd-editor-controls {
+ background: #202225;
+}
+
+.theme-light #bd-editor-controls {
+ background: #e8e8e8;
+ border: 1px solid #fff;
+ border-top: 1px solid #adadad;
+ box-shadow: inset 0 1px 0 0 white;
+}
+
+.controls-section {
+ display: flex;
+ align-items: center;
+}
+
+.controls-section .checkbox-inner {
+ width: 14px;
+ height: 14px;
+}
+
+.controls-section .checkbox-inner .checkbox:checked + span::after {
+ left: 2px;
+ top: -2px;
+}
+
+.controls-section .checkbox-label {
+ font-size: 14px;
+}
+
+/* Ace Editor Settings */
+
+#ace_settingsmenu_container {
+ background: rgba(0, 0, 0, 0.7) !important; /* stylelint-disable-line important */
+}
+
+body #ace_settingsmenu {
+ padding-top: 35px;
+}
+
+body .ace_closeButton {
+ position: absolute;
+ top: 8px;
+ right: 12px;
+ z-index: 10000;
+ padding: 0;
+ cursor: pointer;
+ background: none;
+ border: none;
+}
+
+body .ace_closeButton::before {
+ content: "✖";
+ color: #36393f;
+}
+
+body .ace_closeButton:active {
+ transform: translateY(2px);
+}
+
+/* editor help text */
+
+#bd-editor-controls .help-text {
+ margin-top: 8px;
+ margin-bottom: 3px;
+ font-size: 14px;
+}
+
+#bd-editor-controls .help-text .inline {
+ background: #2f3129;
+ padding: 0.2em;
+ margin: -0.2em 0;
+ border-radius: 3px;
+}
+
+/* Emoji Picker */
+
+.bd-dark #bd-qem-favourite-container,
+.bd-dark #bd-qem-twitch-container {
+ background-color: #353535;
+}
+
+.bd-dark #bd-qem {
+ border-bottom: 1px solid #464646;
+ background: #353535;
+}
+
+.bd-dark #bd-qem button {
+ background: #353535;
+ border-left: 1px solid #242424;
+ box-shadow: #424242 1px 0 0 0;
+ color: #fff;
+}
+
+.bd-dark #bd-qem button.active {
+ background-color: #292929;
+}
+
+.bd-dark #bd-qem button:hover {
+ background-color: #303030;
+}
+
+.bd-dark .emojiPicker-3m1S-j {
+ background-color: #353535;
+}
+
+.bd-dark .emojiPicker-3m1S-j .category-2U57w6 {
+ background-color: #353535;
+}
+
+.bd-dark .emojiPicker-3m1S-j .header-1nkwgG .searchBar-2pWH0_ {
+ background-color: #2b2b2b;
+}
+
+.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input {
+ color: #fff;
+}
+
+.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input::-webkit-input-placeholder {
+ color: #fff;
+}
+
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S {
+ background-color: rgba(123, 123, 123, 0.37);
+}
+
+.bd-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ {
+ background-color: rgba(62, 62, 62, 0.65);
+}
+
+.bd-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc {
+ background: #353535;
+ border-color: #202020;
+}
+
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar,
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track,
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track-piece,
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar,
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track,
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece {
+ background-color: #303030 !important;
+ border-color: #303030 !important;
+}
+
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-thumb,
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-thumb,
+.bd-dark .emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb {
+ border-color: #202020 !important;
+ background-color: #202020 !important;
+}
+
+/* add/create server */
+
+.bd-dark .theme-light .slide-2pHaq5 {
+ background: #36393f;
+}
+
+.bd-dark .theme-dark .action-1lSjCi,
+.bd-dark .theme-light .action-1lSjCi {
+ background: #2f3136;
+}
+
+/* centered or */
+
+.bd-dark .theme-dark .or-3THJsp,
+.bd-dark .theme-light .or-3THJsp {
+ background: #2f3136;
+ order: 2;
+ height: 56px;
+ width: 56px;
+ top: 103px;
+ line-height: 56px;
+ left: calc(50% - 29px);
+ border-radius: 50%;
+ border: 2px solid #484b52;
+}
+
+.bd-dark .create-3jownz {
+ order: 1;
+}
+
+.bd-dark .join-33Tr-7 {
+ order: 3;
+}
+
+.bd-dark .theme-dark .actionIcon-2IISM_,
+.bd-dark .theme-light .actionIcon-2IISM_ {
+ filter: grayscale(100%) brightness(60%);
+}
+
+.bd-dark .theme-light .footer-2yfCgX {
+ background: #2f3136;
+}
+
+/* Region Select */
+
+.bd-dark .regionSelectModal-12e-57 {
+ background: #36393f;
+}
+
+.bd-dark .regionSelectModal-12e-57 .regionSelectModalOption-2DSIZ3 {
+ background: #2f3136;
+ border: 2px solid #484b52;
+}
+
+/* Ace Editor Settings */
+
+.bd-dark ~ div #ace_settingsmenu {
+ color: #f6f6f7;
+ background: #36393f;
+ box-shadow: 0 0 0 1px rgba(32, 34, 37, 0.6), 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+}
+
+.bd-dark ~ div #ace_settingsmenu select,
+.bd-dark ~ div #ace_settingsmenu input[type="text"] {
+ color: #f6f6f7;
+ background: #2f3136;
+ border: 1px solid #484b52;
+}
+
+.bd-dark ~ div .ace_closeButton::before {
+ color: #f6f6f7;
+}
+
+#removemenu {
+ width: auto;
+ background: #505050;
+ z-index: 999999;
+ box-shadow: 0 0 2px #000;
+ padding: 2px;
+ left: 25px;
+ display: block;
+ cursor: pointer;
+ color: #fff;
+ position: fixed;
+}
+
+#removemenu ul a {
+ text-decoration: none;
+ color: #fff;
+ padding: 3px;
+}
+
+.emotewrapper {
+ position: relative;
+ display: inline-flex;
+ object-fit: contain;
+ margin: -0.1em 0.05em -0.2em 0.1em;
+ vertical-align: top;
+}
+
+.emotewrapper.jumboable {
+ margin-bottom: 0;
+ margin-top: 0.2em;
+ vertical-align: -0.3em;
+}
+
+.emote {
+ height: 1.45em;
+}
+
+.emote.jumboable {
+ height: 2rem;
+}
+
+.fav {
+ display: none;
+ position: absolute;
+ width: 15px;
+ height: 15px;
+ right: -7px;
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=");
+ border: none;
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+ background-color: #303030;
+ border-radius: 5px;
+ top: -7px;
+ cursor: pointer;
+}
+
+.fav.active {
+ background-color: yellow;
+}
+
+.emotewrapper:hover .fav {
+ display: block;
+}
+
+.emojiPicker-3m1S-j {
+ box-shadow: none;
+ border-top: none;
+ border-radius: 0 0 5px 5px;
+}
+
+#bd-qem {
+ border-radius: 5px 5px 0 0;
+ background: #fff;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ height: 30px;
+ display: flex;
+ flex-direction: row;
+ padding-right: 1px;
+}
+
+#bd-qem button {
+ border-left: 1px solid #efefef;
+ background: transparent;
+ box-shadow: #cecece 1px 0 0 0;
+ flex-grow: 1;
+}
+
+#bd-qem button:hover {
+ background: #ececec;
+}
+
+#bd-qem-twitch {
+ border-radius: 5px 0 0 0;
+ order: 2;
+}
+
+#bd-qem-emojis {
+ border-radius: 0 5px 0 0;
+ order: 3;
+}
+
+#bd-qem-favourite {
+ order: 3;
+}
+
+#bd-qem button.active {
+ background-color: #e2e2e2;
+}
+
+#bd-qem-twitch-container,
+#bd-qem-favourite-container {
+ width: 346px;
+ height: 329px;
+ background-color: #fff;
+ border-radius: 0 0 5px 5px;
+}
+
+#bd-qem-twitch-container .scroller-wrap,
+#bd-qem-favourite-container .scroller-wrap {
+ height: 100%;
+}
+
+.emote-menu-inner {
+ padding: 5px 0 0 15px;
+}
+
+.bd-qme-hidden #bd-qem-emojis {
+ display: none;
+}
+
+#emote-container {
+ padding: 10px;
+}
+
+.emote-container {
+ display: inline-block;
+ padding: 2px;
+ border-radius: 5px;
+ width: 30px;
+ height: 30px;
+ position: relative;
+}
+
+.emote-icon {
+ max-width: 100%;
+ max-height: 100%;
+ position: absolute;
+ margin: auto;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ cursor: pointer;
+}
+
+.emote.stop-animation {
+ animation: none;
+}
+
+.emote-container:hover {
+ background: rgba(123, 123, 123, 0.37);
+}
+
+.emoteflip,
+.emotespinflip {
+ transform: scaleX(-1);
+}
+
+.emotespin {
+ animation: 1s emote-spin infinite linear;
+}
+
+.emote1spin {
+ animation: 1s emote-spin-reverse infinite linear;
+}
+
+.emotespin2 {
+ animation: 0.5s emote-spin infinite linear;
+}
+
+.emote2spin {
+ animation: 0.5s emote-spin-reverse infinite linear;
+}
+
+.emotespin3 {
+ animation: 0.2s emote-spin infinite linear;
+}
+
+.emote3spin {
+ animation: 0.2s emote-spin-reverse infinite linear;
+}
+
+.emotepulse {
+ animation: 1s emote-pulse infinite linear;
+}
+
+.emotetr {
+ transform: translateX(-3px);
+}
+
+.emotebl {
+ transform: translateY(-3px);
+}
+
+.emotebr {
+ transform: translate(-3px, -3px);
+}
+
+.emoteshake {
+ animation: 1s emote-shake infinite linear;
+}
+
+.emoteflap {
+ transform: scaleY(-1);
+}
+
+.emoteshake2 {
+ animation: emote-shake2 0.3s linear infinite;
+}
+
+.emoteshake3 {
+ animation: emote-shake3 0.1s linear infinite;
+}
+
+@keyframes emote-shake2 {
+ 25% {
+ transform: translate(-1px, -1px);
+ }
+
+ 50% {
+ transform: translate(-1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, -1px);
+ }
+}
+
+@keyframes emote-shake3 {
+ 25% {
+ transform: translate(-1px, -1px);
+ }
+
+ 50% {
+ transform: translate(-1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, -1px);
+ }
+}
+
+@keyframes emote-spin {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes emote-spin-reverse {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(-360deg);
+ }
+}
+
+@keyframes emote-pulse {
+ 0% {
+ -webkit-transform: scale(1, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale(1.2, 1.2);
+ }
+
+ 100% {
+ -webkit-transform: scale(1, 1);
+ }
+}
+
+@keyframes emote-shake {
+ 10%,
+ 90% {
+ transform: translate3d(-1px, 0, 0);
+ }
+
+ 20%,
+ 80% {
+ transform: translate3d(2px, 0, 0);
+ }
+
+ 30%,
+ 50%,
+ 70% {
+ transform: translate3d(-4px, 0, 0);
+ }
+
+ 40%,
+ 60% {
+ transform: translate3d(4px, 0, 0);
+ }
+}
+
+/* Messages */
+
+.bd-minimal .divider-32i8lo {
+ opacity: 0;
+}
+
+/* message avatars */
+
+.bd-minimal .large-3ChYtB {
+ max-width: 20px;
+ max-height: 20px;
+ background-size: 100%;
+ margin-right: 2px;
+ margin-top: 0;
+ border-radius: 0;
+}
+
+/* message content */
+
+.bd-minimal .content-3dzVd8 {
+ border-left: 2px solid #ebebeb;
+ padding-left: 2px;
+}
+
+.bd-minimal .theme-dark .content-3dzVd8 {
+ border-left: 2px solid #303030;
+}
+
+/* message username */
+
+.bd-minimal .username-_4ZSMR {
+ font-size: small;
+}
+
+/* message group */
+
+.bd-minimal .container-1YxwTf {
+ padding: 5px;
+}
+
+/* message embed */
+
+.bd-minimal .embed-IeVjo6 {
+ padding: 2px;
+}
+
+/* Member List */
+
+.bd-minimal .membersWrap-2h-GB4 {
+ min-width: 0;
+}
+
+/* member list avatars */
+
+.bd-minimal .members-1998pB .small-5Os1Bb {
+ max-width: 15px;
+ max-height: 15px;
+ background-size: 15px 15px;
+}
+
+/* member list avatars */
+
+.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE {
+ height: 5px;
+ width: 5px;
+}
+
+/* member list list item */
+
+.bd-minimal .members-1998pB .member-3W1lQa {
+ padding: 5px;
+}
+
+/* member list item inner */
+
+.bd-minimal .members-1998pB .memberInner-2CPc3V {
+ transform: scale(0.9);
+}
+
+/* member list role label */
+
+.bd-minimal .members-1998pB .membersGroup-v9BXpm {
+ margin-top: 3px;
+ transform: scale(0.9);
+}
+
+/* channel list */
+
+.bd-minimal .channels-Ie2l6A {
+ width: 160px;
+}
+
+/* Channel List */
+
+.bd-minimal.bd-minimal-chan .channels-Ie2l6A {
+ display: none;
+}
+
+/* channel list guild name */
+
+.bd-minimal .channels-Ie2l6A header span {
+ font-size: 12px;
+}
+
+/* channel item */
+
+.bd-minimal .containerDefault-3GGEv_ {
+ transform: scale(0.9);
+}
+
+/* channel name */
+
+.bd-minimal .content-3at_AU {
+ transform: scale(0.9);
+}
+
+/* channel icon */
+
+.bd-minimal .icon-1_QxNX {
+ width: 14px;
+ height: 14px;
+}
+
+/* Guild List */
+
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh {
+ width: 20px;
+ height: 20px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+ margin: 0 12.5px 8px;
+}
+
+/* guild link and icon */
+
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .wrapper-25eVIn a,
+.bd-minimal .listItem-2P_4kh .wrapper-25eVIn .icon-27yU2q {
+ width: 20px;
+ height: 20px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+}
+
+/* guild inner */
+
+.bd-minimal .listItem-2P_4kh .wrapper-25eVIn {
+ width: 20px;
+ height: 20px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+}
+
+.bd-minimal .listItem-2P_4kh svg,
+.bd-minimal .listItem-2P_4kh foreignObject[mask] {
+ mask: none;
+}
+
+/* home icon */
+
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .homeIcon-tEMBK1 {
+ width: 10px;
+ height: 10px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+}
+
+/* add and search */
+
+.bd-minimal .circleIconButton-jET_ig {
+ height: 20px;
+ width: 20px;
+}
+
+.bd-minimal .circleIconButton-jET_ig svg {
+ height: 14px;
+ width: 14px;
+}
+
+/* friends online */
+
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .friendsOnline-_wi_fM {
+ margin-left: -15px;
+ font-size: 7px;
+}
+
+/* public servers button */
+
+.bd-minimal #bd-pub-li {
+ height: 16px;
+}
+
+.bd-minimal #bd-pub-button {
+ font-size: 8px;
+ line-height: 16px;
+ height: 16px;
+}
+
+/* guild list */
+
+.bd-minimal .wrapper-1Rf91z,
+.bd-minimal .wrapper-1Rf91z .scrollerWrap-1IAIlv,
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG {
+ width: 45px;
+}
+
+/* separator */
+
+.bd-minimal .wrapper-1Rf91z .guildSeparator-3s64Iy {
+ margin-left: -15px;
+}
+
+/* unread icon */
+
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh .wrapper-sa6paO {
+ height: 20px;
+ margin-top: 0;
+ margin-left: -12.5px;
+}
+
+/* audio/video */
+
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .iconBadge-2wi9r4 {
+ width: 12px;
+ height: 12px;
+ background-size: 12px;
+}
+
+/* Account Container */
+
+.bd-minimal .container-2Thooq .avatarSmall-3ACRaI {
+ width: 15px;
+ height: 15px;
+ background-size: 15px 15px;
+}
+
+/* status */
+
+.bd-minimal .container-2Thooq .avatarSmall-3ACRaI .status-oxiHuE {
+ height: 5px;
+ width: 5px;
+}
+
+/* username and discrim */
+
+.bd-minimal .container-2Thooq .accountDetails-3k9g4n {
+ transform: scale(0.8);
+}
+
+/* 3 buttons */
+
+.bd-minimal .container-2Thooq .button-2b6hmh {
+ height: 14px;
+ width: 14px;
+ background-size: 14px 14px;
+ margin-left: 3px;
+}
+
+/* 3 buttons icons */
+
+.bd-minimal .container-2Thooq .button-2b6hmh svg {
+ height: 14px;
+ width: 14px;
+}
+
+#bd-pub-li {
+ height: 20px;
+ margin-bottom: 10px;
+ overflow: hidden;
+}
+
+#bd-pub-button {
+ border-radius: 4px;
+ background-color: rgb(47, 49, 54);
+ color: #b9bbbe;
+ text-align: center;
+ font-size: 12px;
+ line-height: 20px;
+ height: 20px;
+}
+
+.bd-server-card .bd-server-tags {
+ flex: 1 1 auto;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ width: 0;
+ line-height: 24px;
+ font-size: 12px;
+ color: #b9bbbe;
+ font-weight: 700;
+ margin-right: 10px;
+}
+
+/* .ui-card.ui-card-primary.bd-server-card:first-child {
+ margin-bottom: 13px;
+}
+
+.ui-card.ui-card-primary.bd-server-card:first-child:after {
+ border: 3px solid #7289da;
+ content: "";
+ display: block;
+ position: absolute;
+ left: 0;
+ right: 0;
+ margin-top: 4px;
+} */
+
+.bd-server-card.bd-server-card-pinned {
+ margin-bottom: 15px;
+}
+
+.bd-server-card.bd-server-card-pinned::after {
+ background: #3a71c1;
+ content: "";
+ height: 3px;
+ width: 100%;
+ display: block;
+ margin-top: 7px;
+ position: absolute;
+ top: 100%;
+}
+
+.bd-server-description-container {
+ color: #b9bbbe;
+ min-height: 65px;
+ max-height: 65px;
+ border-top: 1px solid #3f4146;
+ border-bottom: 1px solid #3f4146;
+ padding-top: 5px;
+ font-size: 13px;
+}
+
+.bd-server-header {
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+ justify-content: space-between;
+ font-weight: 600;
+}
+
+.bd-server-card {
+ display: flex;
+ position: relative;
+ border-width: 1px;
+ border-style: solid;
+ border-radius: 5px;
+ background: rgba(32, 34, 37, 0.6);
+ border-color: #202225;
+ margin-bottom: 8px;
+}
+
+.bd-server-header,
+.bd-server-footer {
+ display: flex;
+ color: #b9bbbe;
+}
+
+.bd-server-card .bd-button {
+ margin-top: 4px;
+}
+
+.bd-server-content {
+ padding: 5px 10px;
+ flex: 1;
+}
+
+.bd-server-image {
+ min-width: 115px;
+ min-height: 115px;
+ max-width: 115px;
+ max-height: 115px;
+}
+
+.bd-server-name {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ padding-right: 15px;
+ max-width: 330px;
+ flex: 1 1 50%;
+}
+
+.bd-layer {
+ -ms-flex-direction: column;
+ -webkit-box-direction: normal;
+ -webkit-box-orient: vertical;
+ bottom: 0;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ flex-direction: column;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+
+/* #pubslayer .ui-tab-bar-item {
+ color: #b9bbbe;
+ padding-top: 6px;
+ padding-bottom: 6px;
+ margin-bottom: 2px;
+ padding: 6px 10px;
+ position: relative;
+ font-size: 16px;
+ line-height: 20px;
+ border-radius: 3px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex-shrink: 0;
+ font-weight: 500;
+ cursor: pointer;
+}
+
+#pubslayer .ui-tab-bar-item:hover {
+ color: #f6f6f7;
+ background-color: hsla(216,4%,74%,.1);
+}
+
+#pubslayer .ui-tab-bar-item.selected {
+ color: #fff;
+ background-color: #7289da;
+}
+
+#pubslayer .ui-tab-bar-header {
+ color: #72767d;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 16px;
+ text-transform: uppercase;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex-shrink: 0;
+ font-weight: 500;
+}
+
+#pubslayer #bd-settings-sidebar .ui-tab-bar-separator {
+ background-color: hsla(218,5%,47%,.3);
+ margin-left: 10px;
+ margin-right: 10px;
+ height: 1px;
+ margin-bottom: 8px;
+ margin-top: 8px;
+}
+
+#pubslayer h2.ui-form-title {
+ color: #f6f6f7;
+ text-transform: uppercase;
+ font-weight: 600;
+}
+
+#pubslayer h5.ui-form-title {
+ color: #f6f6f7;
+} */
+
+#pubslayer button {
+ background: #7289da;
+ color: #fff;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 16px;
+ padding: 2px 16px;
+ border: none;
+ border-radius: 3px;
+ transition: background-color 0.17s ease;
+}
+
+#pubslayer button:hover {
+ background-color: #677bc4;
+}
+
+#pubslayer input {
+ color: #f6f6f7;
+ background-color: rgba(0, 0, 0, 0.1);
+ border-color: rgba(0, 0, 0, 0.3);
+ padding: 10px;
+ height: 30px;
+ border-width: 1px;
+ border-style: solid;
+ border-radius: 3px;
+ outline: none;
+ transition: background-color 0.15s ease, border 0.15s ease;
+}
+
+#bd-connection {
+ margin-left: 10px;
+}
+
+.bd-footnote {
+ color: #b9bbbe;
+ font-size: 11px;
+}
+
+.bd-button-next,
+.bd-button-reconnect {
+ margin: 5px 10px 10px 0;
+ width: 100%;
+ min-height: 20px;
+}
+
+.bd-reload {
+ cursor: pointer;
+ vertical-align: top;
+ fill: #dcddde;
+}
+
+.bd-reload:hover {
+ fill: #fff;
+}
+
+.bd-reload-header {
+ margin-left: 5px;
+}
+
+.bd-reload-card {
+ margin-right: 5px;
+}
+
+.bd-controls {
+ display: flex;
+}
+
+.bd-addon-list {
+ user-select: text;
+}
+
+.bd-addon-list .bd-addon-card {
+ max-height: 175px;
+ margin-bottom: 20px;
+ padding: 5px 8px;
+ border: 1px solid transparent;
+ border-radius: 5px;
+ overflow: hidden;
+}
+
+.theme-dark .bd-addon-list .bd-addon-card {
+ background-color: rgba(32, 34, 37, 0.6);
+ color: #f6f6f7;
+ border-color: #202225;
+}
+
+.theme-light .bd-addon-list .bd-addon-card {
+ background-color: #f8f9f9;
+ color: #4f545c;
+ border-color: #dcddde;
+}
+
+.bd-addon-list .bd-addon-card.settings-open {
+ max-height: 800px;
+ overflow-y: auto;
+}
+
+.bd-addon-list .bd-addon-header {
+ font-size: 12px;
+ font-weight: 700;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-bottom: 5px;
+ border-bottom: 1px solid transparent;
+ overflow: hidden;
+}
+
+.theme-dark .bd-addon-list .bd-addon-header {
+ color: #f6f6f7;
+ border-bottom-color: rgba(114, 118, 125, 0.3);
+}
+
+.theme-light .bd-addon-list .bd-addon-header {
+ color: #4f545c;
+ border-bottom-color: rgba(185, 187, 190, 0.3);
+}
+
+.bd-addon-list .bd-description {
+ word-break: break-word;
+ max-height: 100px;
+ margin: 5px 0;
+ padding: 5px 0;
+ overflow-y: auto;
+}
+
+.theme-dark .bd-addon-list .bd-description {
+ color: #b9bbbe;
+}
+
+.theme-light .bd-addon-list .bd-description {
+ color: #72767d;
+}
+
+.bd-addon-list .scroller::-webkit-scrollbar-track-piece,
+.bd-addon-list .scroller::-webkit-scrollbar-thumb {
+ border-radius: 0 !important;
+ border-color: transparent;
+}
+
+.bd-addon-list .bd-footer {
+ font-size: 12px;
+ font-weight: 700;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 5px;
+ border-top: 1px solid transparent;
+ overflow: hidden;
+}
+
+.theme-dark .bd-addon-list .bd-footer {
+ border-top-color: rgba(114, 118, 125, 0.3);
+}
+
+.theme-light .bd-addon-list .bd-footer {
+ border-top-color: rgba(185, 187, 190, 0.3);
+}
+
+.bd-addon-list .bd-footer button {
+ padding: 3px 16px;
+ transition: opacity 250ms ease;
+}
+
+.bd-addon-list .bd-footer button:disabled {
+ opacity: 0.4;
+}
+
+.bd-addon-list .bd-footer a {
+ color: #3e82e5;
+}
+
+.bd-addon-list .bd-footer a:hover {
+ text-decoration: underline;
+}
+
+.bd-controls + .bd-addon-list {
+ margin-top: 10px;
+}
+
+.bd-addon-button {
+ cursor: pointer;
+}
+
+.bd-addon-button + .bd-addon-button {
+ margin-left: 5px;
+}
+
+.bd-search-wrapper {
+ padding: 3px;
+ border-radius: 3px;
+ outline: none;
+ border: 0;
+ background-color: #202225;
+ color: #fff;
+ display: flex;
+ align-items: center;
+}
+
+.bd-search {
+ padding: 2px 3px;
+ background: none;
+ border: 0;
+ color: #fff;
+ flex: 1;
+}
+
+.bd-search-wrapper > svg {
+ margin-right: 2px;
+}
+
+.bd-addon-controls {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.bd-addon-controls .bd-search {
+ font-size: 13px;
+ margin: 0;
+ width: 200px;
+}
+
+.bd-addon-dropdowns {
+ display: flex;
+}
+
+/* Error Boundary stuff */
+
+.react-error {
+ color: red;
+ font-weight: bold;
+ font-family: Arial, Helvetica, sans-serif;
+ cursor: pointer;
+}
+
+.settings-open .bd-close {
+ cursor: pointer;
+ float: right;
+}
+
+.bd-social-logo {
+ opacity: 0.6;
+}
+
+.bd-social-link:hover .bd-social-logo {
+ opacity: 1;
+}
+
+.standardSidebarView-3F1I7i .bd-versioninfo-wrapper {
+ bottom: 0;
+ left: 0;
+ position: fixed;
+ background: inherit;
+ right: 0;
+ padding: 5px;
+}
+
+.standardSidebarView-3F1I7i .bd-versioninfo-wrapper span {
+ color: #b9bbbe;
+ font-weight: 600;
+ font-size: 11px;
+}
+
+.standardSidebarView-3F1I7i .bd-versioninfo-wrapper a {
+ font-size: 11px;
+}
+
+.bd-button-title {
+ margin-left: 10px;
+}
+
+/* #bd-settings-sidebar .ui-tab-bar-item {
+ font-size: 16px;
+ font-weight: 500;
+ line-height: 20px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ cursor: pointer;
+ flex-shrink: 0;
+ padding: 6px 10px;
+ border-radius: 3px;
+ position: relative;
+ overflow: hidden;
+}
+#bd-settings-sidebar .ui-tab-bar-item.selected {
+ cursor: default;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-item {
+ color: #b9bbbe;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-item:hover {
+ background-color: rgba(185,187,190,.1);
+ color: #f6f6f7;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-item.selected {
+ background-color: #7289da;
+ color: #fff;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-item {
+ color: #72767d;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-item:hover {
+ background-color: rgba(79,84,92,.1);
+ color: #4f545c;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-item.selected {
+ background-color: #7289da;
+ color: #fff;
+}
+
+#bd-settings-sidebar .ui-tab-bar-header {
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 16px;
+ text-transform: uppercase;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex-shrink: 0;
+ padding: 6px 10px;
+ overflow: hidden;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-header {
+ color: #72767d;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-header {
+ color: #b9bbbe;
+}
+
+#bd-settings-sidebar .ui-tab-bar-separator {
+ height: 1px;
+ margin: 8px 10px;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-separator {
+ background-color: rgba(114,118,125,.3);
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-separator {
+ background-color: rgba(185,187,190,.3);
+}
+
+.ui-flex {
+ display: flex;
+}
+
+#bd-settingspane-container h2.ui-form-title {
+ font-size: 16px;
+ font-weight: 600;
+ line-height: 20px;
+ text-transform: uppercase;
+ display: inline-block;
+ margin-bottom: 20px;
+}
+.theme-dark #bd-settingspane-container h2.ui-form-title {
+ color: #f6f6f7;
+}
+.theme-light #bd-settingspane-container h2.ui-form-title {
+ color: #4f545c;
+} */
+
+.bd-switch {
+ background-color: #72767d;
+ border-radius: 14px;
+ width: 42px;
+ height: 24px;
+ opacity: 1;
+ overflow: hidden;
+ user-select: none;
+ position: relative;
+ display: block;
+ flex: 0 0 auto;
+ transition: background 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border 0.15s ease-in-out, opacity 0.15s ease-in-out;
+ margin-left: 10px;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.bd-switch::before {
+ content: "";
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 0;
+ opacity: 0;
+ background-color: #000;
+}
+
+.bd-switch::after {
+ content: "";
+ display: block;
+ position: absolute;
+ background-color: #fff;
+ z-index: 1;
+ width: 18px;
+ margin: 3px;
+ border-radius: 9px;
+ height: 18px;
+ left: 0;
+ transition: transform 0.15s ease-in-out, width 0.1s ease-in-out, left 0.1s ease-in-out;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
+}
+
+.bd-switch .bd-checkbox {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ padding: 0;
+ margin: 0;
+ z-index: 2;
+ cursor: pointer;
+}
+
+.bd-switch-checked {
+ background-color: #3e82e5;
+}
+
+.bd-switch-checked::after {
+ transform: translate3d(18px, 0, 0);
+}
+
+.bd-switch-disabled {
+ opacity: 0.3;
+ cursor: not-allowed;
+}
+
+.bd-switch-item {
+ flex-direction: column;
+ margin-top: 8px;
+}
+
+.bd-switch-item h3 {
+ font-size: 16px;
+ font-weight: 500;
+ line-height: 24px;
+ flex: 1;
+}
+
+.theme-dark .bd-switch-item h3 {
+ color: #f6f6f7;
+}
+
+.theme-light .bd-switch-item h3 {
+ color: #4f545c;
+}
+
+/* .ui-switch-item .style-description {
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ margin-bottom: 10px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid hsla(218,5%,47%,.3);
+}
+.theme-dark .ui-switch-item .style-description {
+ color: #72767d;
+}
+.theme-light .ui-switch-item .style-description {
+ color: rgba(114,118,125,.6);
+} */
+
+.bd-switch-item .bd-switch-wrapper {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ position: relative;
+ width: 44px;
+ height: 24px;
+ display: block;
+ flex: 0 0 auto;
+}
+
+.bd-switch-item .bd-switch-wrapper input {
+ position: absolute;
+ opacity: 0;
+ cursor: pointer;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: #72767d;
+ border-radius: 14px;
+ transition: background 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch::before {
+ content: "";
+ display: block;
+ width: 18px;
+ height: 18px;
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ bottom: 3px;
+ background: #f6f6f7;
+ border-radius: 10px;
+ transition: all 0.15s ease;
+ box-shadow: 0 3px 1px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch.checked {
+ background: #7289da;
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch.checked::before {
+ transform: translateX(20px);
+}
+
+#bd-settingspane-container .scroller-wrap {
+ height: 100%;
+}
+
+#bd-settingspane-container .scroller-wrap .scroller {
+ display: flex;
+}
+
+.bd-select-wrapper {
+ color: #f6f6f7;
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+}
+
+.bd-select-wrapper + .bd-select-wrapper {
+ margin-left: 10px;
+}
+
+.bd-select-wrapper label {
+ opacity: 0.3;
+ margin-right: 5px;
+}
+
+.bd-select {
+ position: relative;
+ cursor: pointer;
+ color: #f6f6f7;
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background-color: rgba(0, 0, 0, 0.1);
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ border-radius: 3px;
+ padding: 5px 5px 5px 0;
+}
+
+.bd-select.bd-select-transparent {
+ background: none;
+ border: none;
+ padding: 0;
+}
+
+.bd-select-value {
+ padding-left: 12px;
+}
+
+.bd-select-arrow {
+ margin-left: 10px;
+}
+
+.bd-select .bd-select-options {
+ position: absolute;
+ background: #2f3136;
+ border-radius: 0 0 3px 3px;
+ max-height: 300px;
+ min-width: calc(100% + 2px);
+ overflow-y: auto;
+ box-shadow: rgba(0, 0, 0, 0.3) 0 1px 5px 0;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ border-top: 0;
+ margin-top: -1px;
+ margin-left: -1px;
+ z-index: 2;
+ top: 100%;
+}
+
+.bd-select-transparent .bd-select-options {
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ margin-top: 3px;
+ border-radius: 3px;
+}
+
+.bd-select .bd-select-option {
+ padding: 8px 12px;
+ cursor: pointer;
+ white-space: pre;
+}
+
+.bd-select .bd-select-option:hover,
+.bd-select .bd-select-option.selected {
+ background: #26272b;
+}
+
+.bd-setting-item .bd-select {
+ min-width: 200px;
+}
+
+.bd-setting-item {
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 20px;
+}
+
+.bd-setting-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.bd-setting-header label {
+ font-weight: 500;
+ cursor: pointer;
+ overflow: hidden;
+ word-wrap: break-word;
+ font-size: 16px;
+ line-height: 24px;
+ color: #f6f6f7;
+}
+
+.bd-setting-note {
+ color: #72767d;
+ margin-top: 4px;
+ font-size: 14px;
+ line-height: 20px;
+ font-weight: 500;
+}
+
+.bd-setting-divider {
+ width: 100%;
+ height: 1px;
+ margin-top: 20px;
+ background-color: rgba(114, 118, 125, 0.3);
+}
+
+.bd-settings-container {
+ height: auto;
+ overflow: hidden;
+ transition: height 300ms cubic-bezier(0.47, 0, 0.745, 0.715);
+}
+
+.bd-settings-group.collapsed .bd-settings-container {
+ height: 0;
+}
+
+.bd-settings-group.expanded .bd-settings-container:not(.animating) {
+ overflow: visible;
+}
+
+.bd-settings-group.collapsible .bd-settings-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ order: 1;
+}
+
+.bd-settings-group.collapsible .bd-settings-title::before {
+ content: "";
+ background-color: rgba(114, 118, 125, 0.3);
+ height: 2px;
+ order: 2;
+ flex: 1;
+ margin: 0 10px 0 15px;
+}
+
+.bd-settings-group.collapsible .bd-settings-title::after {
+ content: "";
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSItOTUwIDUzMiAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAtOTUwIDUzMiAxOCAxODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6bm9uZTt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjEuNTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS05MzIsNTMydjE4aC0xOHYtMThILTkzMnoiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ii05MzYuNiw1MzguOCAtOTQxLDU0My4yIC05NDUuNCw1MzguOCAiLz4NCjwvc3ZnPg0K");
+ height: 20px;
+ width: 20px;
+ display: inline-block;
+ vertical-align: bottom;
+ transition: transform 0.3s ease;
+ transform: rotate(0);
+ order: 3;
+}
+
+.bd-settings-group.collapsed .bd-settings-title::after {
+ transition: transform 0.3s ease;
+ transform: rotate(90deg);
+}
+
+.bd-settings-group ~ .bd-settings-group .bd-settings-title {
+ margin-top: 30px;
+ transition: margin-top 300ms ease;
+}
+
+.bd-settings-group.collapsed + .bd-settings-group .bd-settings-title {
+ margin-top: 0;
+}
+
+.bd-settings-title.bd-settings-group-title {
+ margin-bottom: 10px;
+}
+
+.checkbox-item {
+ display: flex;
+}
+
+.checkbox-item .checkbox-label {
+ margin-right: 8px;
+}
+
+@keyframes open-window {
+ from {
+ transform: scale(0.9);
+ }
+
+ to {
+ transform: none;
+ }
+}
+
+.floating-window {
+ animation: open-window 200ms ease;
+ min-width: 200px;
+ min-height: 300px;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+ display: flex;
+ flex-direction: column;
+ -webkit-app-region: no-drag;
+ position: fixed;
+ z-index: 1001;
+ box-sizing: border-box;
+}
+
+.floating-window.modal-open {
+ z-index: 999;
+}
+
+.floating-window.resizable {
+ overflow: auto;
+ resize: both;
+ padding-bottom: 10px;
+ background: #202225;
+}
+
+.floating-window-titlebar {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background: #202225; /* #2F3129background-color: #202225; */
+ color: white;
+ border-bottom: 1px solid #272822;
+}
+
+.floating-window-content {
+ display: flex;
+ flex-direction: column;
+ background: #2f3129;
+ color: white;
+ flex: 1;
+}
+
+.floating-window-titlebar .title {
+ /* font-weight: bold; */
+ flex: 1;
+ text-align: center;
+ padding: 2px 0;
+}
+
+.floating-window-buttons {
+ display: flex;
+}
+
+.floating-window-buttons .button {
+ cursor: pointer;
+ padding: 0 2px;
+}
+
+.floating-window-buttons .button svg {
+ fill: #dcddde;
+ margin-top: 1.5px;
+}
+
+.floating-window-buttons .button:hover svg {
+ fill: white;
+}
+
+.floating-window-buttons .button:hover {
+ background-color: #36393f;
+}
+
+.floating-window-buttons .close-button:hover {
+ background-color: #f04747;
+}
+
+.floating-window-buttons .close-button:hover svg path.fill {
+ fill: white;
+}
+
+.floating-window-content #bd-editor-panel {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+}
+
+.floating-window .editor-wrapper {
+ flex: 1;
+}
+
+.floating-window .ace_editor {
+ height: auto;
+ flex: 1;
+}
+
+.floating-window #bd-editor-controls {
+ height: auto;
+ background: #202225;
+ border: none;
+ box-shadow: 0 1px 0 0 #2f3129 inset;
+}
+
+#floating-editor-window {
+ min-width: 340px;
+ min-height: 280px;
+ max-height: 900px;
+ max-width: 750px;
+}
+
+.floating-addon-window {
+ min-width: 535px;
+ min-height: 605px;
+ max-height: 90%;
+ max-width: 90%;
+}
+
+@keyframes bd-backdrop {
+ to {
+ opacity: 0.85;
+ }
+}
+
+@keyframes bd-modal-wrapper {
+ to {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes bd-backdrop-closing {
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes bd-modal-wrapper-closing {
+ to {
+ transform: scale(0.7);
+ opacity: 0;
+ }
+}
+
+.bd-backdrop {
+ animation: bd-backdrop 250ms ease;
+ animation-fill-mode: forwards;
+ opacity: 0;
+ background-color: rgb(0, 0, 0);
+ transform: translateZ(0);
+}
+
+.bd-modal-wrapper.closing .bd-backdrop {
+ animation: bd-backdrop-closing 200ms linear;
+ animation-fill-mode: forwards;
+ animation-delay: 50ms;
+ opacity: 0.85;
+}
+
+.bd-modal-wrapper .bd-modal {
+ animation: bd-modal-wrapper 250ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ animation-fill-mode: forwards;
+ transform: scale(0.7);
+ transform-origin: 50% 50%;
+ display: flex;
+ align-items: center;
+ box-sizing: border-box;
+ contain: content;
+ justify-content: center;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ opacity: 0;
+ pointer-events: none;
+ position: absolute;
+ z-index: 1000;
+}
+
+.bd-modal-wrapper.closing .bd-modal {
+ animation: bd-modal-wrapper-closing 250ms cubic-bezier(0.19, 1, 0.22, 1);
+ animation-fill-mode: forwards;
+ opacity: 1;
+ transform: scale(1);
+}
+
+.bd-modal-wrapper .bd-modal-inner {
+ display: flex;
+ contain: layout;
+ flex-direction: column;
+ pointer-events: auto;
+ border: 1px solid rgba(28, 36, 43, 0.6);
+ border-radius: 5px;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+ overflow: hidden;
+ max-height: 660px;
+ min-height: 200px;
+ width: 440px;
+ user-select: text;
+}
+
+.bd-modal-wrapper .bd-content-modal .bd-modal-inner {
+ height: 500px;
+ width: 700px;
+}
+
+.bd-modal-wrapper .header {
+ background-color: #35393e;
+ box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.2);
+ padding: 12px 20px;
+ z-index: 1;
+ color: #fff;
+ font-size: 16px;
+ font-weight: 700;
+ line-height: 19px;
+}
+
+.bd-modal-wrapper .bd-modal-body {
+ background-color: #36393f;
+ color: #fff;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ contain: layout;
+ position: relative;
+}
+
+.bd-modal-wrapper .scroller {
+ padding: 10px;
+ overflow-y: auto;
+}
+
+.bd-modal-wrapper .bd-content-modal .bd-modal-body {
+ padding: 0;
+}
+
+.bd-modal-wrapper .footer {
+ display: flex;
+ justify-content: flex-end;
+ padding: 10px 20px;
+}
+
+.bd-modal-wrapper .footer button {
+ min-height: 32px;
+ min-width: 60px;
+ align-items: center;
+ display: flex;
+ font-size: 14px;
+ font-weight: 500;
+ justify-content: center;
+ line-height: 16px;
+ padding: 2px 16px;
+ user-select: none;
+}
+
+.bd-modal-wrapper .tab-bar-container {
+ align-items: center;
+ border-bottom: 0;
+ background: rgba(0, 0, 0, 0.2);
+ box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.1);
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ margin-bottom: 15px;
+}
+
+.bd-modal-wrapper .tab-bar.TOP {
+ margin: 0;
+ border: 0;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.bd-modal-wrapper .tab-bar-container .tab-bar-item {
+ margin: 0 15px;
+ padding: 15px 0;
+ color: #fff;
+ opacity: 0.5;
+ transition: opacity 200ms ease;
+ border-bottom: 2px solid transparent;
+}
+
+.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover {
+ border-color: #fff;
+ cursor: pointer;
+}
+
+.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected {
+ opacity: 1;
+ border-color: #fff;
+}
+
+.bd-modal-wrapper .tab-bar.TOP .tab-bar-item + .tab-bar-item {
+ margin: 0;
+}
+
+.bd-modal-wrapper .table-header {
+ display: flex;
+ justify-content: space-between;
+ color: #fff;
+ font-weight: 700;
+ padding-bottom: 10px;
+ margin: 3px 15px 0 15px;
+ border-bottom: 1px solid #fff;
+ font-size: 14px;
+}
+
+.bd-modal-wrapper .table-column {
+ width: 25%;
+ word-wrap: break-word;
+}
+
+.bd-modal-wrapper .table-column.column-error {
+ width: 50%;
+}
+
+.bd-modal-wrapper .errors {
+ display: flex;
+ flex-direction: column;
+ font-size: 14px;
+ padding: 0 5px;
+}
+
+.bd-modal-wrapper .error {
+ display: flex;
+ color: #fff;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.25);
+ padding: 15px 0;
+ align-items: center;
+}
+
+.bd-modal-wrapper .error-link {
+ color: #3e82e5;
+ font-weight: 500;
+}
+
+.bd-modal-wrapper .bd-content-modal .scroller {
+ padding-top: 0;
+}
+
+.bd-sidebar-header {
+ display: flex;
+ justify-content: space-between;
+}
+
+.bd-sidebar-header .bd-changelog-button {
+ height: 16px;
+}
+
+.bd-sidebar-header .bd-icon {
+ cursor: pointer;
+ fill: #72767d;
+}
+
+.bd-sidebar-header .bd-icon:hover {
+ fill: #fff;
+}
+
+.bd-toasts {
+ position: fixed;
+ display: flex;
+ top: 0;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-end;
+ pointer-events: none;
+ z-index: 4000;
+}
+
+@keyframes bd-toast-up {
+ from {
+ transform: translateY(0);
+ opacity: 0;
+ }
+}
+
+.bd-toast {
+ animation: bd-toast-up 300ms ease;
+ transform: translateY(-10px);
+ background: #36393f;
+ padding: 10px;
+ border-radius: 5px;
+ box-shadow: 0 0 0 1px rgba(32, 34, 37, 0.6), 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+ font-weight: 500;
+ color: #fff;
+ font-size: 14px;
+ opacity: 1;
+ margin-top: 10px;
+ pointer-events: none;
+ user-select: none;
+}
+
+@keyframes bd-toast-down {
+ to {
+ transform: translateY(0);
+ opacity: 0;
+ }
+}
+
+.bd-toast.closing {
+ animation: bd-toast-down 200ms ease;
+ animation-fill-mode: forwards;
+ opacity: 1;
+ transform: translateY(-10px);
+}
+
+.bd-toast.icon {
+ padding-left: 30px;
+ background-size: 20px 20px;
+ background-repeat: no-repeat;
+ background-position: 6px 50%;
+}
+
+.bd-toast.toast-info {
+ background-color: #4a90e2;
+}
+
+.bd-toast.toast-info.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=");
+}
+
+.bd-toast.toast-success {
+ background-color: #43b581;
+}
+
+.bd-toast.toast-success.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=");
+}
+
+.bd-toast.toast-danger,
+.bd-toast.toast-error {
+ background-color: #f04747;
+}
+
+.bd-toast.toast-danger.icon,
+.bd-toast.toast-error.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+");
+}
+
+.bd-toast.toast-warning,
+.bd-toast.toast-warn {
+ background-color: #ffa600;
+ color: white;
+}
+
+.bd-toast.toast-warning.icon,
+.bd-toast.toast-warn.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==");
+}
+
+.bd-button {
+ background-color: #3e82e5;
+ color: white;
+ border-radius: 3px;
+ padding: 2px 6px;
+}
+
+.bd-button:hover {
+ background-color: rgb(56, 117, 206);
+}
+
+.bd-button:active {
+ background-color: rgb(50, 104, 183);
+}
+
+.bd-button.bd-button-success {
+ background-color: #3ac15c;
+}
+
+.bd-button.bd-button-success:hover {
+ background-color: rgb(52, 174, 83);
+}
+
+.bd-button.bd-button-success:active {
+ background-color: rgb(46, 154, 74);
+}
+
+.bd-chat-badge {
+ vertical-align: bottom;
+ line-height: 1.375rem;
+ display: inline-block;
+ height: 1.25rem;
+}
+
+.bd-member-badge {
+ height: 15px;
+ margin-left: 4px;
+}
diff --git a/dist/style.min.css b/dist/style.min.css
new file mode 100644
index 00000000..fed7239b
--- /dev/null
+++ b/dist/style.min.css
@@ -0,0 +1 @@
+#bd-editor-panel{display:flex;flex-direction:column}#bd-editor-controls button{margin:0 5px 0 0;background:0 0;color:#fff;height:26px;font-weight:600;border-radius:3px;display:flex;align-items:center}#bd-editor-controls button:hover{background:rgba(255,255,255,.05)}#bd-editor-controls button svg{fill:#fff}#bd-editor-controls button:last-of-type{margin-right:0}#bd-editor-controls{display:flex;align-items:center;justify-content:space-between;background:#272822;color:#fff;border:0;box-shadow:0 1px 0 0 #2f3129 inset;padding:5px}.editor-wrapper{display:flex}.ace_editor{line-height:normal;font-family:Consolas,monospace;box-sizing:border-box;height:calc(100vh - 250px);font-size:14px;width:100%}.bd-monokai .editor .ace_gutter{background:#2f3136}.bd-monokai .ace_editor{background:#292b2f}.bd-monokai #bd-editor-controls{background:#202225}.theme-light #bd-editor-controls{background:#e8e8e8;border:1px solid #fff;border-top:1px solid #adadad;box-shadow:inset 0 1px 0 0 #fff}.controls-section{display:flex;align-items:center}.controls-section .checkbox-inner{width:14px;height:14px}.controls-section .checkbox-inner .checkbox:checked+span::after{left:2px;top:-2px}.controls-section .checkbox-label{font-size:14px}#ace_settingsmenu_container{background:rgba(0,0,0,.7)!important}body #ace_settingsmenu{padding-top:35px}body .ace_closeButton{position:absolute;top:8px;right:12px;z-index:10000;padding:0;cursor:pointer;background:0 0;border:0}body .ace_closeButton::before{content:"✖";color:#36393f}body .ace_closeButton:active{transform:translateY(2px)}#bd-editor-controls .help-text{margin-top:8px;margin-bottom:3px;font-size:14px}#bd-editor-controls .help-text .inline{background:#2f3129;padding:.2em;margin:-.2em 0;border-radius:3px}.bd-dark #bd-qem-favourite-container,.bd-dark #bd-qem-twitch-container{background-color:#353535}.bd-dark #bd-qem{border-bottom:1px solid #464646;background:#353535}.bd-dark #bd-qem button{background:#353535;border-left:1px solid #242424;box-shadow:#424242 1px 0 0 0;color:#fff}.bd-dark #bd-qem button.active{background-color:#292929}.bd-dark #bd-qem button:hover{background-color:#303030}.bd-dark .emojiPicker-3m1S-j{background-color:#353535}.bd-dark .emojiPicker-3m1S-j .category-2U57w6{background-color:#353535}.bd-dark .emojiPicker-3m1S-j .header-1nkwgG .searchBar-2pWH0_{background-color:#2b2b2b}.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input{color:#fff}.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input::-webkit-input-placeholder{color:#fff}.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S{background-color:rgba(123,123,123,.37)}.bd-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ{background-color:rgba(62,62,62,.65)}.bd-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc{background:#353535;border-color:#202020}.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar,.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track,.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track-piece,.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar,.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track,.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece{background-color:#303030!important;border-color:#303030!important}.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-thumb,.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-thumb,.bd-dark .emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb{border-color:#202020!important;background-color:#202020!important}.bd-dark .theme-light .slide-2pHaq5{background:#36393f}.bd-dark .theme-dark .action-1lSjCi,.bd-dark .theme-light .action-1lSjCi{background:#2f3136}.bd-dark .theme-dark .or-3THJsp,.bd-dark .theme-light .or-3THJsp{background:#2f3136;order:2;height:56px;width:56px;top:103px;line-height:56px;left:calc(50% - 29px);border-radius:50%;border:2px solid #484b52}.bd-dark .create-3jownz{order:1}.bd-dark .join-33Tr-7{order:3}.bd-dark .theme-dark .actionIcon-2IISM_,.bd-dark .theme-light .actionIcon-2IISM_{filter:grayscale(100%) brightness(60%)}.bd-dark .theme-light .footer-2yfCgX{background:#2f3136}.bd-dark .regionSelectModal-12e-57{background:#36393f}.bd-dark .regionSelectModal-12e-57 .regionSelectModalOption-2DSIZ3{background:#2f3136;border:2px solid #484b52}.bd-dark~div #ace_settingsmenu{color:#f6f6f7;background:#36393f;box-shadow:0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2)}.bd-dark~div #ace_settingsmenu select,.bd-dark~div #ace_settingsmenu input[type=text]{color:#f6f6f7;background:#2f3136;border:1px solid #484b52}.bd-dark~div .ace_closeButton::before{color:#f6f6f7}#removemenu{width:auto;background:#505050;z-index:999999;box-shadow:0 0 2px #000;padding:2px;left:25px;display:block;cursor:pointer;color:#fff;position:fixed}#removemenu ul a{text-decoration:none;color:#fff;padding:3px}.emotewrapper{position:relative;display:inline-flex;object-fit:contain;margin:-.1em .05em -.2em .1em;vertical-align:top}.emotewrapper.jumboable{margin-bottom:0;margin-top:.2em;vertical-align:-.3em}.emote{height:1.45em}.emote.jumboable{height:2rem}.fav{display:none;position:absolute;width:15px;height:15px;right:-7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=);border:0;background-size:100% 100%;background-repeat:no-repeat;background-color:#303030;border-radius:5px;top:-7px;cursor:pointer}.fav.active{background-color:#ff0}.emotewrapper:hover .fav{display:block}.emojiPicker-3m1S-j{box-shadow:none;border-top:none;border-radius:0 0 5px 5px}#bd-qem{border-radius:5px 5px 0 0;background:#fff;border-bottom:1px solid rgba(0,0,0,.1);height:30px;display:flex;flex-direction:row;padding-right:1px}#bd-qem button{border-left:1px solid #efefef;background:0 0;box-shadow:#cecece 1px 0 0 0;flex-grow:1}#bd-qem button:hover{background:#ececec}#bd-qem-twitch{border-radius:5px 0 0 0;order:2}#bd-qem-emojis{border-radius:0 5px 0 0;order:3}#bd-qem-favourite{order:3}#bd-qem button.active{background-color:#e2e2e2}#bd-qem-twitch-container,#bd-qem-favourite-container{width:346px;height:329px;background-color:#fff;border-radius:0 0 5px 5px}#bd-qem-twitch-container .scroller-wrap,#bd-qem-favourite-container .scroller-wrap{height:100%}.emote-menu-inner{padding:5px 0 0 15px}.bd-qme-hidden #bd-qem-emojis{display:none}#emote-container{padding:10px}.emote-container{display:inline-block;padding:2px;border-radius:5px;width:30px;height:30px;position:relative}.emote-icon{max-width:100%;max-height:100%;position:absolute;margin:auto;top:0;right:0;bottom:0;left:0;cursor:pointer}.emote.stop-animation{animation:none}.emote-container:hover{background:rgba(123,123,123,.37)}.emoteflip,.emotespinflip{transform:scaleX(-1)}.emotespin{animation:1s emote-spin infinite linear}.emote1spin{animation:1s emote-spin-reverse infinite linear}.emotespin2{animation:.5s emote-spin infinite linear}.emote2spin{animation:.5s emote-spin-reverse infinite linear}.emotespin3{animation:.2s emote-spin infinite linear}.emote3spin{animation:.2s emote-spin-reverse infinite linear}.emotepulse{animation:1s emote-pulse infinite linear}.emotetr{transform:translateX(-3px)}.emotebl{transform:translateY(-3px)}.emotebr{transform:translate(-3px,-3px)}.emoteshake{animation:1s emote-shake infinite linear}.emoteflap{transform:scaleY(-1)}.emoteshake2{animation:emote-shake2 .3s linear infinite}.emoteshake3{animation:emote-shake3 .1s linear infinite}@keyframes emote-shake2{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-shake3{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes emote-spin-reverse{0%{transform:rotate(0deg)}to{transform:rotate(-360deg)}}@keyframes emote-pulse{0%{-webkit-transform:scale(1,1)}50%{-webkit-transform:scale(1.2,1.2)}to{-webkit-transform:scale(1,1)}}@keyframes emote-shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.bd-minimal .divider-32i8lo{opacity:0}.bd-minimal .large-3ChYtB{max-width:20px;max-height:20px;background-size:100%;margin-right:2px;margin-top:0;border-radius:0}.bd-minimal .content-3dzVd8{border-left:2px solid #ebebeb;padding-left:2px}.bd-minimal .theme-dark .content-3dzVd8{border-left:2px solid #303030}.bd-minimal .username-_4ZSMR{font-size:small}.bd-minimal .container-1YxwTf{padding:5px}.bd-minimal .embed-IeVjo6{padding:2px}.bd-minimal .membersWrap-2h-GB4{min-width:0}.bd-minimal .members-1998pB .small-5Os1Bb{max-width:15px;max-height:15px;background-size:15px 15px}.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE{height:5px;width:5px}.bd-minimal .members-1998pB .member-3W1lQa{padding:5px}.bd-minimal .members-1998pB .memberInner-2CPc3V{transform:scale(.9)}.bd-minimal .members-1998pB .membersGroup-v9BXpm{margin-top:3px;transform:scale(.9)}.bd-minimal .channels-Ie2l6A{width:160px}.bd-minimal.bd-minimal-chan .channels-Ie2l6A{display:none}.bd-minimal .channels-Ie2l6A header span{font-size:12px}.bd-minimal .containerDefault-3GGEv_{transform:scale(.9)}.bd-minimal .content-3at_AU{transform:scale(.9)}.bd-minimal .icon-1_QxNX{width:14px;height:14px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px;margin:0 12.5px 8px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .wrapper-25eVIn a,.bd-minimal .listItem-2P_4kh .wrapper-25eVIn .icon-27yU2q{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .listItem-2P_4kh .wrapper-25eVIn{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .listItem-2P_4kh svg,.bd-minimal .listItem-2P_4kh foreignObject[mask]{mask:none}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .homeIcon-tEMBK1{width:10px;height:10px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .circleIconButton-jET_ig{height:20px;width:20px}.bd-minimal .circleIconButton-jET_ig svg{height:14px;width:14px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .friendsOnline-_wi_fM{margin-left:-15px;font-size:7px}.bd-minimal #bd-pub-li{height:16px}.bd-minimal #bd-pub-button{font-size:8px;line-height:16px;height:16px}.bd-minimal .wrapper-1Rf91z,.bd-minimal .wrapper-1Rf91z .scrollerWrap-1IAIlv,.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG{width:45px}.bd-minimal .wrapper-1Rf91z .guildSeparator-3s64Iy{margin-left:-15px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh .wrapper-sa6paO{height:20px;margin-top:0;margin-left:-12.5px}.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .iconBadge-2wi9r4{width:12px;height:12px;background-size:12px}.bd-minimal .container-2Thooq .avatarSmall-3ACRaI{width:15px;height:15px;background-size:15px 15px}.bd-minimal .container-2Thooq .avatarSmall-3ACRaI .status-oxiHuE{height:5px;width:5px}.bd-minimal .container-2Thooq .accountDetails-3k9g4n{transform:scale(.8)}.bd-minimal .container-2Thooq .button-2b6hmh{height:14px;width:14px;background-size:14px 14px;margin-left:3px}.bd-minimal .container-2Thooq .button-2b6hmh svg{height:14px;width:14px}#bd-pub-li{height:20px;margin-bottom:10px;overflow:hidden}#bd-pub-button{border-radius:4px;background-color:#2f3136;color:#b9bbbe;text-align:center;font-size:12px;line-height:20px;height:20px}.bd-server-card .bd-server-tags{flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:0;line-height:24px;font-size:12px;color:#b9bbbe;font-weight:700;margin-right:10px}.bd-server-card.bd-server-card-pinned{margin-bottom:15px}.bd-server-card.bd-server-card-pinned::after{background:#3a71c1;content:"";height:3px;width:100%;display:block;margin-top:7px;position:absolute;top:100%}.bd-server-description-container{color:#b9bbbe;min-height:65px;max-height:65px;border-top:1px solid #3f4146;border-bottom:1px solid #3f4146;padding-top:5px;font-size:13px}.bd-server-header{text-transform:uppercase;letter-spacing:.5px;justify-content:space-between;font-weight:600}.bd-server-card{display:flex;position:relative;border-width:1px;border-style:solid;border-radius:5px;background:rgba(32,34,37,.6);border-color:#202225;margin-bottom:8px}.bd-server-header,.bd-server-footer{display:flex;color:#b9bbbe}.bd-server-card .bd-button{margin-top:4px}.bd-server-content{padding:5px 10px;flex:1}.bd-server-image{min-width:115px;min-height:115px;max-width:115px;max-height:115px}.bd-server-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:15px;max-width:330px;flex:1 1 50%}.bd-layer{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;left:0;position:absolute;right:0;top:0}#pubslayer button{background:#7289da;color:#fff;font-size:14px;font-weight:500;line-height:16px;padding:2px 16px;border:0;border-radius:3px;transition:background-color .17s ease}#pubslayer button:hover{background-color:#677bc4}#pubslayer input{color:#f6f6f7;background-color:rgba(0,0,0,.1);border-color:rgba(0,0,0,.3);padding:10px;height:30px;border-width:1px;border-style:solid;border-radius:3px;outline:0;transition:background-color .15s ease,border .15s ease}#bd-connection{margin-left:10px}.bd-footnote{color:#b9bbbe;font-size:11px}.bd-button-next,.bd-button-reconnect{margin:5px 10px 10px 0;width:100%;min-height:20px}.bd-reload{cursor:pointer;vertical-align:top;fill:#dcddde}.bd-reload:hover{fill:#fff}.bd-reload-header{margin-left:5px}.bd-reload-card{margin-right:5px}.bd-controls{display:flex}.bd-addon-list{user-select:text}.bd-addon-list .bd-addon-card{max-height:175px;margin-bottom:20px;padding:5px 8px;border:1px solid transparent;border-radius:5px;overflow:hidden}.theme-dark .bd-addon-list .bd-addon-card{background-color:rgba(32,34,37,.6);color:#f6f6f7;border-color:#202225}.theme-light .bd-addon-list .bd-addon-card{background-color:#f8f9f9;color:#4f545c;border-color:#dcddde}.bd-addon-list .bd-addon-card.settings-open{max-height:800px;overflow-y:auto}.bd-addon-list .bd-addon-header{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-bottom:5px;border-bottom:1px solid transparent;overflow:hidden}.theme-dark .bd-addon-list .bd-addon-header{color:#f6f6f7;border-bottom-color:rgba(114,118,125,.3)}.theme-light .bd-addon-list .bd-addon-header{color:#4f545c;border-bottom-color:rgba(185,187,190,.3)}.bd-addon-list .bd-description{word-break:break-word;max-height:100px;margin:5px 0;padding:5px 0;overflow-y:auto}.theme-dark .bd-addon-list .bd-description{color:#b9bbbe}.theme-light .bd-addon-list .bd-description{color:#72767d}.bd-addon-list .scroller::-webkit-scrollbar-track-piece,.bd-addon-list .scroller::-webkit-scrollbar-thumb{border-radius:0!important;border-color:transparent}.bd-addon-list .bd-footer{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-top:5px;border-top:1px solid transparent;overflow:hidden}.theme-dark .bd-addon-list .bd-footer{border-top-color:rgba(114,118,125,.3)}.theme-light .bd-addon-list .bd-footer{border-top-color:rgba(185,187,190,.3)}.bd-addon-list .bd-footer button{padding:3px 16px;transition:opacity 250ms ease}.bd-addon-list .bd-footer button:disabled{opacity:.4}.bd-addon-list .bd-footer a{color:#3e82e5}.bd-addon-list .bd-footer a:hover{text-decoration:underline}.bd-controls+.bd-addon-list{margin-top:10px}.bd-addon-button{cursor:pointer}.bd-addon-button+.bd-addon-button{margin-left:5px}.bd-search-wrapper{padding:3px;border-radius:3px;outline:0;border:0;background-color:#202225;color:#fff;display:flex;align-items:center}.bd-search{padding:2px 3px;background:0 0;border:0;color:#fff;flex:1}.bd-search-wrapper>svg{margin-right:2px}.bd-addon-controls{display:flex;align-items:center;justify-content:space-between}.bd-addon-controls .bd-search{font-size:13px;margin:0;width:200px}.bd-addon-dropdowns{display:flex}.react-error{color:red;font-weight:700;font-family:Arial,Helvetica,sans-serif;cursor:pointer}.settings-open .bd-close{cursor:pointer;float:right}.bd-social-logo{opacity:.6}.bd-social-link:hover .bd-social-logo{opacity:1}.standardSidebarView-3F1I7i .bd-versioninfo-wrapper{bottom:0;left:0;position:fixed;background:inherit;right:0;padding:5px}.standardSidebarView-3F1I7i .bd-versioninfo-wrapper span{color:#b9bbbe;font-weight:600;font-size:11px}.standardSidebarView-3F1I7i .bd-versioninfo-wrapper a{font-size:11px}.bd-button-title{margin-left:10px}.bd-switch{background-color:#72767d;border-radius:14px;width:42px;height:24px;opacity:1;overflow:hidden;user-select:none;position:relative;display:block;flex:0 0 auto;transition:background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out,opacity .15s ease-in-out;margin-left:10px;box-shadow:inset 0 1px 1px rgba(0,0,0,.15)}.bd-switch::before{content:"";display:block;position:absolute;top:0;left:0;bottom:0;right:0;z-index:0;opacity:0;background-color:#000}.bd-switch::after{content:"";display:block;position:absolute;background-color:#fff;z-index:1;width:18px;margin:3px;border-radius:9px;height:18px;left:0;transition:transform .15s ease-in-out,width .1s ease-in-out,left .1s ease-in-out;box-shadow:0 2px 4px rgba(0,0,0,.3)}.bd-switch .bd-checkbox{position:absolute;width:100%;height:100%;opacity:0;padding:0;margin:0;z-index:2;cursor:pointer}.bd-switch-checked{background-color:#3e82e5}.bd-switch-checked::after{transform:translate3d(18px,0,0)}.bd-switch-disabled{opacity:.3;cursor:not-allowed}.bd-switch-item{flex-direction:column;margin-top:8px}.bd-switch-item h3{font-size:16px;font-weight:500;line-height:24px;flex:1}.theme-dark .bd-switch-item h3{color:#f6f6f7}.theme-light .bd-switch-item h3{color:#4f545c}.bd-switch-item .bd-switch-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;width:44px;height:24px;display:block;flex:0 0 auto}.bd-switch-item .bd-switch-wrapper input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;z-index:1}.bd-switch-item .bd-switch-wrapper .bd-switch{position:absolute;top:0;right:0;bottom:0;left:0;background:#72767d;border-radius:14px;transition:background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out}.bd-switch-item .bd-switch-wrapper .bd-switch::before{content:"";display:block;width:18px;height:18px;position:absolute;top:3px;left:3px;bottom:3px;background:#f6f6f7;border-radius:10px;transition:all .15s ease;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05)}.bd-switch-item .bd-switch-wrapper .bd-switch.checked{background:#7289da}.bd-switch-item .bd-switch-wrapper .bd-switch.checked::before{transform:translateX(20px)}#bd-settingspane-container .scroller-wrap{height:100%}#bd-settingspane-container .scroller-wrap .scroller{display:flex}.bd-select-wrapper{color:#f6f6f7;font-size:13px;display:flex;align-items:center}.bd-select-wrapper+.bd-select-wrapper{margin-left:10px}.bd-select-wrapper label{opacity:.3;margin-right:5px}.bd-select{position:relative;cursor:pointer;color:#f6f6f7;font-size:13px;display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.3);border-radius:3px;padding:5px 5px 5px 0}.bd-select.bd-select-transparent{background:0 0;border:0;padding:0}.bd-select-value{padding-left:12px}.bd-select-arrow{margin-left:10px}.bd-select .bd-select-options{position:absolute;background:#2f3136;border-radius:0 0 3px 3px;max-height:300px;min-width:calc(100% + 2px);overflow-y:auto;box-shadow:rgba(0,0,0,.3) 0 1px 5px 0;border:1px solid rgba(0,0,0,.3);border-top:0;margin-top:-1px;margin-left:-1px;z-index:2;top:100%}.bd-select-transparent .bd-select-options{border:1px solid rgba(0,0,0,.3);margin-top:3px;border-radius:3px}.bd-select .bd-select-option{padding:8px 12px;cursor:pointer;white-space:pre}.bd-select .bd-select-option:hover,.bd-select .bd-select-option.selected{background:#26272b}.bd-setting-item .bd-select{min-width:200px}.bd-setting-item{display:flex;flex-direction:column;margin-bottom:20px}.bd-setting-header{display:flex;justify-content:space-between;align-items:center}.bd-setting-header label{font-weight:500;cursor:pointer;overflow:hidden;word-wrap:break-word;font-size:16px;line-height:24px;color:#f6f6f7}.bd-setting-note{color:#72767d;margin-top:4px;font-size:14px;line-height:20px;font-weight:500}.bd-setting-divider{width:100%;height:1px;margin-top:20px;background-color:rgba(114,118,125,.3)}.bd-settings-container{height:auto;overflow:hidden;transition:height 300ms cubic-bezier(.47,0,.745,.715)}.bd-settings-group.collapsed .bd-settings-container{height:0}.bd-settings-group.expanded .bd-settings-container:not(.animating){overflow:visible}.bd-settings-group.collapsible .bd-settings-title{display:flex;justify-content:space-between;align-items:center;order:1}.bd-settings-group.collapsible .bd-settings-title::before{content:"";background-color:rgba(114,118,125,.3);height:2px;order:2;flex:1;margin:0 10px 0 15px}.bd-settings-group.collapsible .bd-settings-title::after{content:"";background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSItOTUwIDUzMiAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAtOTUwIDUzMiAxOCAxODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6bm9uZTt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjEuNTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS05MzIsNTMydjE4aC0xOHYtMThILTkzMnoiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ii05MzYuNiw1MzguOCAtOTQxLDU0My4yIC05NDUuNCw1MzguOCAiLz4NCjwvc3ZnPg0K);height:20px;width:20px;display:inline-block;vertical-align:bottom;transition:transform .3s ease;transform:rotate(0);order:3}.bd-settings-group.collapsed .bd-settings-title::after{transition:transform .3s ease;transform:rotate(90deg)}.bd-settings-group~.bd-settings-group .bd-settings-title{margin-top:30px;transition:margin-top 300ms ease}.bd-settings-group.collapsed+.bd-settings-group .bd-settings-title{margin-top:0}.bd-settings-title.bd-settings-group-title{margin-bottom:10px}.checkbox-item{display:flex}.checkbox-item .checkbox-label{margin-right:8px}@keyframes open-window{0%{transform:scale(.9)}to{transform:none}}.floating-window{animation:open-window 200ms ease;min-width:200px;min-height:300px;box-shadow:0 2px 10px 0 rgba(0,0,0,.2);display:flex;flex-direction:column;-webkit-app-region:no-drag;position:fixed;z-index:1001;box-sizing:border-box}.floating-window.modal-open{z-index:999}.floating-window.resizable{overflow:auto;resize:both;padding-bottom:10px;background:#202225}.floating-window-titlebar{width:100%;display:flex;justify-content:space-between;align-items:center;background:#202225;color:#fff;border-bottom:1px solid #272822}.floating-window-content{display:flex;flex-direction:column;background:#2f3129;color:#fff;flex:1}.floating-window-titlebar .title{flex:1;text-align:center;padding:2px 0}.floating-window-buttons{display:flex}.floating-window-buttons .button{cursor:pointer;padding:0 2px}.floating-window-buttons .button svg{fill:#dcddde;margin-top:1.5px}.floating-window-buttons .button:hover svg{fill:#fff}.floating-window-buttons .button:hover{background-color:#36393f}.floating-window-buttons .close-button:hover{background-color:#f04747}.floating-window-buttons .close-button:hover svg path.fill{fill:#fff}.floating-window-content #bd-editor-panel{display:flex;flex-direction:column;flex:1}.floating-window .editor-wrapper{flex:1}.floating-window .ace_editor{height:auto;flex:1}.floating-window #bd-editor-controls{height:auto;background:#202225;border:0;box-shadow:0 1px 0 0 #2f3129 inset}#floating-editor-window{min-width:340px;min-height:280px;max-height:900px;max-width:750px}.floating-addon-window{min-width:535px;min-height:605px;max-height:90%;max-width:90%}@keyframes bd-backdrop{to{opacity:.85}}@keyframes bd-modal-wrapper{to{transform:scale(1);opacity:1}}@keyframes bd-backdrop-closing{to{opacity:0}}@keyframes bd-modal-wrapper-closing{to{transform:scale(.7);opacity:0}}.bd-backdrop{animation:bd-backdrop 250ms ease;animation-fill-mode:forwards;opacity:0;background-color:#000;transform:translateZ(0)}.bd-modal-wrapper.closing .bd-backdrop{animation:bd-backdrop-closing 200ms linear;animation-fill-mode:forwards;animation-delay:50ms;opacity:.85}.bd-modal-wrapper .bd-modal{animation:bd-modal-wrapper 250ms cubic-bezier(.175,.885,.32,1.275);animation-fill-mode:forwards;transform:scale(.7);transform-origin:50% 50%;display:flex;align-items:center;box-sizing:border-box;contain:content;justify-content:center;top:0;left:0;bottom:0;right:0;opacity:0;pointer-events:none;position:absolute;z-index:1000}.bd-modal-wrapper.closing .bd-modal{animation:bd-modal-wrapper-closing 250ms cubic-bezier(.19,1,.22,1);animation-fill-mode:forwards;opacity:1;transform:scale(1)}.bd-modal-wrapper .bd-modal-inner{display:flex;contain:layout;flex-direction:column;pointer-events:auto;border:1px solid rgba(28,36,43,.6);border-radius:5px;box-shadow:0 2px 10px 0 rgba(0,0,0,.2);overflow:hidden;max-height:660px;min-height:200px;width:440px;user-select:text}.bd-modal-wrapper .bd-content-modal .bd-modal-inner{height:500px;width:700px}.bd-modal-wrapper .header{background-color:#35393e;box-shadow:0 2px 3px 0 rgba(0,0,0,.2);padding:12px 20px;z-index:1;color:#fff;font-size:16px;font-weight:700;line-height:19px}.bd-modal-wrapper .bd-modal-body{background-color:#36393f;color:#fff;overflow:hidden;display:flex;flex-direction:column;flex:1;contain:layout;position:relative}.bd-modal-wrapper .scroller{padding:10px;overflow-y:auto}.bd-modal-wrapper .bd-content-modal .bd-modal-body{padding:0}.bd-modal-wrapper .footer{display:flex;justify-content:flex-end;padding:10px 20px}.bd-modal-wrapper .footer button{min-height:32px;min-width:60px;align-items:center;display:flex;font-size:14px;font-weight:500;justify-content:center;line-height:16px;padding:2px 16px;user-select:none}.bd-modal-wrapper .tab-bar-container{align-items:center;border-bottom:0;background:rgba(0,0,0,.2);box-shadow:0 2px 3px 0 rgba(0,0,0,.1);display:flex;flex-direction:row;justify-content:space-between;margin-bottom:15px}.bd-modal-wrapper .tab-bar.TOP{margin:0;border:0;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.bd-modal-wrapper .tab-bar-container .tab-bar-item{margin:0 15px;padding:15px 0;color:#fff;opacity:.5;transition:opacity 200ms ease;border-bottom:2px solid transparent}.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover{border-color:#fff;cursor:pointer}.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected{opacity:1;border-color:#fff}.bd-modal-wrapper .tab-bar.TOP .tab-bar-item+.tab-bar-item{margin:0}.bd-modal-wrapper .table-header{display:flex;justify-content:space-between;color:#fff;font-weight:700;padding-bottom:10px;margin:3px 15px 0 15px;border-bottom:1px solid #fff;font-size:14px}.bd-modal-wrapper .table-column{width:25%;word-wrap:break-word}.bd-modal-wrapper .table-column.column-error{width:50%}.bd-modal-wrapper .errors{display:flex;flex-direction:column;font-size:14px;padding:0 5px}.bd-modal-wrapper .error{display:flex;color:#fff;border-bottom:1px solid rgba(255,255,255,.25);padding:15px 0;align-items:center}.bd-modal-wrapper .error-link{color:#3e82e5;font-weight:500}.bd-modal-wrapper .bd-content-modal .scroller{padding-top:0}.bd-sidebar-header{display:flex;justify-content:space-between}.bd-sidebar-header .bd-changelog-button{height:16px}.bd-sidebar-header .bd-icon{cursor:pointer;fill:#72767d}.bd-sidebar-header .bd-icon:hover{fill:#fff}.bd-toasts{position:fixed;display:flex;top:0;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none;z-index:4000}@keyframes bd-toast-up{0%{transform:translateY(0);opacity:0}}.bd-toast{animation:bd-toast-up 300ms ease;transform:translateY(-10px);background:#36393f;padding:10px;border-radius:5px;box-shadow:0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2);font-weight:500;color:#fff;font-size:14px;opacity:1;margin-top:10px;pointer-events:none;user-select:none}@keyframes bd-toast-down{to{transform:translateY(0);opacity:0}}.bd-toast.closing{animation:bd-toast-down 200ms ease;animation-fill-mode:forwards;opacity:1;transform:translateY(-10px)}.bd-toast.icon{padding-left:30px;background-size:20px 20px;background-repeat:no-repeat;background-position:6px 50%}.bd-toast.toast-info{background-color:#4a90e2}.bd-toast.toast-info.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=)}.bd-toast.toast-success{background-color:#43b581}.bd-toast.toast-success.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=)}.bd-toast.toast-danger,.bd-toast.toast-error{background-color:#f04747}.bd-toast.toast-danger.icon,.bd-toast.toast-error.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+)}.bd-toast.toast-warning,.bd-toast.toast-warn{background-color:#ffa600;color:#fff}.bd-toast.toast-warning.icon,.bd-toast.toast-warn.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==)}.bd-button{background-color:#3e82e5;color:#fff;border-radius:3px;padding:2px 6px}.bd-button:hover{background-color:#3875ce}.bd-button:active{background-color:#3268b7}.bd-button.bd-button-success{background-color:#3ac15c}.bd-button.bd-button-success:hover{background-color:#34ae53}.bd-button.bd-button-success:active{background-color:#2e9a4a}.bd-chat-badge{vertical-align:bottom;line-height:1.375rem;display:inline-block;height:1.25rem}.bd-member-badge{height:15px;margin-left:4px}
\ No newline at end of file
diff --git a/gulpfile.js b/gulpfile.js
index 7fa04d6b..39378098 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,16 +1,30 @@
const gulp = require("gulp");
+const postcss = require("gulp-postcss");
const rename = require("gulp-rename");
-const csso = require("gulp-csso");
+const postcssImport = require("postcss-easy-import");
+const postcssCSSO = require("postcss-csso");
+
+gulp.task("build-css", buildCSS);
gulp.task("minify-css", minifyCSS);
gulp.task("watch-css", function() {
return gulp.watch(["./src/styles/index.css"], minifyCSS);
});
-function minifyCSS() {
+function runBuild(minified) {
+ const plugins = [postcssImport];
+ if (minified) plugins.push(postcssCSSO({restructure: false}));
return gulp.src("./src/styles/index.css")
- .pipe(csso({restructure: false}))
- .pipe(rename("style.css"))
+ .pipe(postcss(plugins))
+ .pipe(rename(minified ? "style.min.css" : "style.css"))
.pipe(gulp.dest("./dist"));
+}
+
+function buildCSS() {
+ return runBuild(false);
+}
+
+function minifyCSS() {
+ return runBuild(true);
}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 4393c27d..bbc793eb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "bandagedbd",
- "version": "0.2.3",
+ "version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -1116,12 +1116,87 @@
"to-fast-properties": "^2.0.0"
}
},
+ "@nodelib/fs.scandir": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
+ "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.3",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+ "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
+ "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.3",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@stylelint/postcss-css-in-js": {
+ "version": "0.37.2",
+ "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz",
+ "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": ">=7.9.0"
+ }
+ },
+ "@stylelint/postcss-markdown": {
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.1.tgz",
+ "integrity": "sha512-iDxMBWk9nB2BPi1VFQ+Dc5+XpvODBHw2n3tYpaBZuEAFQlbtF9If0Qh5LTTwSi/XwdbJ2jt+0dis3i8omyggpw==",
+ "dev": true,
+ "requires": {
+ "remark": "^12.0.0",
+ "unist-util-find-all-after": "^3.0.1"
+ }
+ },
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+ "dev": true
+ },
"@types/json-schema": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
"integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
"dev": true
},
+ "@types/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "@types/unist": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz",
+ "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==",
+ "dev": true
+ },
"@webassemblyjs/ast": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
@@ -1315,6 +1390,12 @@
"integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
"dev": true
},
+ "acorn-jsx": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+ "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+ "dev": true
+ },
"ajv": {
"version": "6.12.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
@@ -1409,6 +1490,15 @@
"integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
"dev": true
},
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
@@ -1451,6 +1541,17 @@
"integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
"dev": true
},
+ "array-includes": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
+ "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0",
+ "is-string": "^1.0.5"
+ }
+ },
"array-initial": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
@@ -1511,12 +1612,41 @@
}
}
},
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
"array-unique": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true
},
+ "array.prototype.flatmap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
+ "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "dev": true
+ },
"asn1.js": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
@@ -1569,6 +1699,12 @@
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
"dev": true
},
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
"async-done": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz",
@@ -1602,6 +1738,21 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true
},
+ "autoprefixer": {
+ "version": "9.8.5",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.5.tgz",
+ "integrity": "sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001097",
+ "colorette": "^1.2.0",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
"babel-loader": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
@@ -1641,6 +1792,12 @@
"now-and-later": "^2.0.0"
}
},
+ "bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
+ "dev": true
+ },
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -1980,18 +2137,67 @@
"unset-value": "^1.0.0"
}
},
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ }
+ }
+ },
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
+ "camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ }
+ },
"caniuse-lite": {
"version": "1.0.30001102",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001102.tgz",
"integrity": "sha512-fOjqRmHjRXv1H1YD6QVLb96iKqnu17TjcLSaX64TwhGYed0P1E1CCWZ9OujbbK4Z/7zax7zAzvQidzdtjx8RcA==",
"dev": true
},
+ "ccount": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz",
+ "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==",
+ "dev": true
+ },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -2003,6 +2209,30 @@
"supports-color": "^5.3.0"
}
},
+ "character-entities": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
+ "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
+ "dev": true
+ },
+ "character-entities-html4": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz",
+ "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==",
+ "dev": true
+ },
+ "character-entities-legacy": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+ "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
+ "dev": true
+ },
+ "character-reference-invalid": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
+ "dev": true
+ },
"chokidar": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
@@ -2136,6 +2366,15 @@
"integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
"dev": true
},
+ "clone-regexp": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz",
+ "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==",
+ "dev": true,
+ "requires": {
+ "is-regexp": "^2.0.0"
+ }
+ },
"clone-stats": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
@@ -2159,6 +2398,12 @@
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true
},
+ "collapse-white-space": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
+ "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==",
+ "dev": true
+ },
"collection-map": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
@@ -2201,6 +2446,12 @@
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true
},
+ "colorette": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
+ "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
+ "dev": true
+ },
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -2312,6 +2563,39 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
"create-ecdh": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
@@ -2407,6 +2691,12 @@
}
}
},
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
"csso": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz",
@@ -2447,12 +2737,36 @@
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ }
+ }
+ },
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
},
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
"default-compare": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
@@ -2561,12 +2875,87 @@
}
}
},
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+ "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
+ "dev": true
+ },
+ "entities": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
+ "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==",
+ "dev": true
+ }
+ }
+ },
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
"integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
"dev": true
},
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
"duplexify": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
@@ -2662,6 +3051,29 @@
}
}
},
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ }
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
"errno": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
@@ -2680,6 +3092,36 @@
"is-arrayish": "^0.2.1"
}
},
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
"es5-ext": {
"version": "0.10.53",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
@@ -2736,6 +3178,249 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
+ "eslint": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz",
+ "integrity": "sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "eslint-scope": "^5.1.0",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^1.3.0",
+ "espree": "^7.2.0",
+ "esquery": "^1.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash": "^4.17.19",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
+ "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.20.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz",
+ "integrity": "sha512-txbo090buDeyV0ugF3YMWrzLIUqpYTsWSDZV9xLSmExE1P/Kmgg9++PD931r+KEWS66O1c9R4srLVVHmeHpoAg==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.1",
+ "array.prototype.flatmap": "^1.2.3",
+ "doctrine": "^2.1.0",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.4.1",
+ "object.entries": "^1.1.2",
+ "object.fromentries": "^2.0.2",
+ "object.values": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "resolve": "^1.17.0",
+ "string.prototype.matchall": "^4.0.2"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ }
+ }
+ },
"eslint-scope": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
@@ -2746,6 +3431,63 @@
"estraverse": "^4.1.1"
}
},
+ "eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz",
+ "integrity": "sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.3.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
+ "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
+ "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
+ "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==",
+ "dev": true
+ }
+ }
+ },
"esrecurse": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
@@ -2783,6 +3525,15 @@
"safe-buffer": "^5.1.1"
}
},
+ "execall": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz",
+ "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==",
+ "dev": true,
+ "requires": {
+ "clone-regexp": "^2.1.0"
+ }
+ },
"expand-brackets": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -2954,18 +3705,110 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
+ "fast-glob": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+ "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2",
+ "picomatch": "^2.2.1"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true
},
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
+ "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
"figgy-pudding": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
"integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
"dev": true
},
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
@@ -3047,6 +3890,34 @@
"integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
"dev": true
},
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
"flush-write-stream": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
@@ -3136,6 +4007,12 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
"gensync": {
"version": "1.0.0-beta.1",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
@@ -3148,6 +4025,12 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
+ "get-stdin": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
+ "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
+ "dev": true
+ },
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
@@ -3251,6 +4134,26 @@
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
+ "globby": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
+ "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "dev": true
+ },
"glogg": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
@@ -3260,6 +4163,15 @@
"sparkles": "^1.0.0"
}
},
+ "gonzales-pe": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz",
+ "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
"graceful-fs": {
"version": "4.1.15",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
@@ -3398,14 +4310,16 @@
}
}
},
- "gulp-csso": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/gulp-csso/-/gulp-csso-4.0.1.tgz",
- "integrity": "sha512-Kg8gqmd6XcUlMTdBbqdCEcpHumc8ytc4khgm9AXeCjl8eHx7b6tC11y8haizFI+Zw/cSHL6HCj7GwGLwxxBUFQ==",
+ "gulp-postcss": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-8.0.0.tgz",
+ "integrity": "sha512-Wtl6vH7a+8IS/fU5W9IbOpcaLqKxd5L1DUOzaPmlnCbX1CrG0aWdwVnC3Spn8th0m8D59YbysV5zPUe1n/GJYg==",
"dev": true,
"requires": {
- "csso": "^4.0.0",
- "plugin-error": "^1.0.0",
+ "fancy-log": "^1.3.2",
+ "plugin-error": "^1.0.1",
+ "postcss": "^7.0.2",
+ "postcss-load-config": "^2.0.0",
"vinyl-sourcemaps-apply": "^0.2.1"
}
},
@@ -3424,6 +4338,21 @@
"glogg": "^1.0.0"
}
},
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -3540,6 +4469,39 @@
"integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
"dev": true
},
+ "html-tags": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
+ "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
"https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -3558,6 +4520,54 @@
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
"dev": true
},
+ "ignore": {
+ "version": "5.1.8",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+ "dev": true
+ },
+ "import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "dev": true,
+ "requires": {
+ "import-from": "^2.1.0"
+ }
+ },
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ }
+ }
+ },
+ "import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true
+ },
"import-local": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
@@ -3574,6 +4584,18 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
"infer-owner": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
@@ -3602,6 +4624,17 @@
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
},
+ "internal-slot": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz",
+ "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==",
+ "dev": true,
+ "requires": {
+ "es-abstract": "^1.17.0-next.1",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.2"
+ }
+ },
"interpret": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
@@ -3653,6 +4686,28 @@
}
}
},
+ "is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+ "dev": true
+ },
+ "is-alphanumeric": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz",
+ "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ }
+ },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -3674,6 +4729,12 @@
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "dev": true
+ },
"is-data-descriptor": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
@@ -3694,6 +4755,18 @@
}
}
},
+ "is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "dev": true
+ },
+ "is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+ "dev": true
+ },
"is-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
@@ -3713,6 +4786,12 @@
}
}
},
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -3740,6 +4819,12 @@
"is-extglob": "^2.1.1"
}
},
+ "is-hexadecimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
+ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==",
+ "dev": true
+ },
"is-negated-glob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
@@ -3766,6 +4851,12 @@
}
}
},
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
+ },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -3775,6 +4866,21 @@
"isobject": "^3.0.1"
}
},
+ "is-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-regexp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz",
+ "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==",
+ "dev": true
+ },
"is-relative": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
@@ -3784,6 +4890,27 @@
"is-unc-path": "^1.0.0"
}
},
+ "is-string": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
+ "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
"is-unc-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
@@ -3805,12 +4932,24 @@
"integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
"dev": true
},
+ "is-whitespace-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
+ "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
+ "dev": true
+ },
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true
},
+ "is-word-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
+ "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
+ "dev": true
+ },
"is-wsl": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
@@ -3841,6 +4980,16 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
+ "js-yaml": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+ "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -3874,6 +5023,16 @@
"minimist": "^1.2.5"
}
},
+ "jsx-ast-utils": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
+ "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.1",
+ "object.assign": "^4.1.0"
+ }
+ },
"just-debounce": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
@@ -3886,6 +5045,12 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
+ "known-css-properties": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.19.0.tgz",
+ "integrity": "sha512-eYboRV94Vco725nKMlpkn3nV2+96p9c3gKXRsYqAJSswSENvBhN7n5L+uDhY58xQa0UukWsDMTGELzmD8Q+wTA==",
+ "dev": true
+ },
"last-run": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
@@ -3938,6 +5103,16 @@
"leven": "^3.1.0"
}
},
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
"liftoff": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
@@ -3954,6 +5129,12 @@
"resolve": "^1.1.7"
}
},
+ "lines-and-columns": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+ "dev": true
+ },
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -4019,6 +5200,73 @@
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
},
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "longest-streak": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz",
+ "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==",
+ "dev": true
+ },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -4062,6 +5310,12 @@
"integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
"dev": true
},
+ "map-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz",
+ "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==",
+ "dev": true
+ },
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
@@ -4071,6 +5325,21 @@
"object-visit": "^1.0.0"
}
},
+ "markdown-escapes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
+ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==",
+ "dev": true
+ },
+ "markdown-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
+ "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
+ "dev": true,
+ "requires": {
+ "repeat-string": "^1.0.0"
+ }
+ },
"matchdep": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
@@ -4106,6 +5375,12 @@
}
}
},
+ "mathml-tag-names": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
+ "dev": true
+ },
"md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
@@ -4117,6 +5392,15 @@
"safe-buffer": "^5.1.2"
}
},
+ "mdast-util-compact": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz",
+ "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
"mdn-data": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz",
@@ -4133,6 +5417,144 @@
"readable-stream": "^2.0.1"
}
},
+ "meow": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz",
+ "integrity": "sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==",
+ "dev": true,
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "arrify": "^2.0.1",
+ "camelcase": "^6.0.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "^4.0.2",
+ "normalize-package-data": "^2.5.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.13.1",
+ "yargs-parser": "^18.1.3"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz",
+ "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -4172,6 +5594,12 @@
}
}
},
+ "min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true
+ },
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -4199,6 +5627,31 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "dependencies": {
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ }
+ }
+ },
"mississippi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
@@ -4311,6 +5764,12 @@
"to-regex": "^3.0.1"
}
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
"neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
@@ -4401,6 +5860,18 @@
"remove-trailing-separator": "^1.0.1"
}
},
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-selector": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz",
+ "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=",
+ "dev": true
+ },
"now-and-later": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz",
@@ -4410,6 +5881,12 @@
"once": "^1.3.2"
}
},
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -4453,6 +5930,12 @@
}
}
},
+ "object-inspect": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
+ "dev": true
+ },
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -4492,6 +5975,29 @@
"isobject": "^3.0.0"
}
},
+ "object.entries": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+ "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "has": "^1.0.3"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
+ "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
"object.map": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
@@ -4521,6 +6027,18 @@
"make-iterator": "^1.0.0"
}
},
+ "object.values": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4530,6 +6048,20 @@
"wrappy": "1"
}
},
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
"ordered-read-streams": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
@@ -4595,6 +6127,15 @@
"readable-stream": "^2.1.5"
}
},
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
"parse-asn1": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
@@ -4609,6 +6150,20 @@
"safe-buffer": "^5.1.1"
}
},
+ "parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "dev": true,
+ "requires": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
"parse-filepath": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
@@ -4734,8 +6289,7 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true,
- "optional": true
+ "dev": true
},
"pify": {
"version": "4.0.1",
@@ -4794,6 +6348,306 @@
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
"dev": true
},
+ "postcss": {
+ "version": "7.0.32",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+ "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-csso": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-csso/-/postcss-csso-4.0.0.tgz",
+ "integrity": "sha512-Yh9Ug0w3+T/LZIh1vGJQY8+hE13yFRHpINoAmgOhvu9lBmG1jyHkAprGHEHlGjWODJzB4DCNBVBb6Cs0QEoglQ==",
+ "dev": true,
+ "requires": {
+ "csso": "^4.0.2"
+ }
+ },
+ "postcss-easy-import": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-easy-import/-/postcss-easy-import-3.0.0.tgz",
+ "integrity": "sha512-cfNsear/v8xlkl9v5Wm8y4Do/puiDQTFF+WX2Fo++h7oKt1fKWVVW/5Ca8hslYDQWnjndrg813cA23Pt1jsYdg==",
+ "dev": true,
+ "requires": {
+ "globby": "^6.1.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.4",
+ "object-assign": "^4.0.1",
+ "pify": "^3.0.0",
+ "postcss": "^6.0.11",
+ "postcss-import": "^10.0.0",
+ "resolve": "^1.1.7"
+ },
+ "dependencies": {
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-html": {
+ "version": "0.36.0",
+ "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz",
+ "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^3.10.0"
+ }
+ },
+ "postcss-import": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-10.0.0.tgz",
+ "integrity": "sha1-TIXJewmRNsxeoCQNwd/b/eTi674=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "postcss": "^6.0.1",
+ "postcss-value-parser": "^3.2.3",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-less": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz",
+ "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14"
+ }
+ },
+ "postcss-load-config": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
+ "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "import-cwd": "^2.0.0"
+ },
+ "dependencies": {
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-media-query-parser": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
+ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
+ "dev": true
+ },
+ "postcss-reporter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz",
+ "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "lodash": "^4.17.11",
+ "log-symbols": "^2.2.0",
+ "postcss": "^7.0.7"
+ },
+ "dependencies": {
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ }
+ }
+ },
+ "postcss-resolve-nested-selector": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
+ "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
+ "dev": true
+ },
+ "postcss-safe-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz",
+ "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.26"
+ }
+ },
+ "postcss-sass": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz",
+ "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==",
+ "dev": true,
+ "requires": {
+ "gonzales-pe": "^4.3.0",
+ "postcss": "^7.0.21"
+ }
+ },
+ "postcss-scss": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz",
+ "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
+ "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "postcss-syntax": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz",
+ "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==",
+ "dev": true
+ },
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
"pretty-hrtime": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
@@ -4812,12 +6666,29 @@
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true
},
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
"promise-inflight": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
"dev": true
},
+ "prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
"prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -4885,6 +6756,12 @@
"integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
"dev": true
},
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true
+ },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -4904,6 +6781,29 @@
"safe-buffer": "^5.1.0"
}
},
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "dev": true,
+ "requires": {
+ "pify": "^2.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -4981,6 +6881,16 @@
"resolve": "^1.1.6"
}
},
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ }
+ },
"regenerate": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
@@ -5021,6 +6931,22 @@
"safe-regex": "^1.1.0"
}
},
+ "regexp.prototype.flags": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
+ "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ }
+ },
+ "regexpp": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
+ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
+ "dev": true
+ },
"regexpu-core": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
@@ -5058,6 +6984,63 @@
}
}
},
+ "remark": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz",
+ "integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==",
+ "dev": true,
+ "requires": {
+ "remark-parse": "^8.0.0",
+ "remark-stringify": "^8.0.0",
+ "unified": "^9.0.0"
+ }
+ },
+ "remark-parse": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
+ "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.0",
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^2.0.0",
+ "vfile-location": "^3.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-stringify": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz",
+ "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.0",
+ "is-alphanumeric": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "longest-streak": "^2.0.1",
+ "markdown-escapes": "^1.0.0",
+ "markdown-table": "^2.0.0",
+ "mdast-util-compact": "^2.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "stringify-entities": "^3.0.0",
+ "unherit": "^1.0.4",
+ "xtend": "^4.0.1"
+ }
+ },
"remove-bom-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
@@ -5181,6 +7164,12 @@
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"dev": true
},
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -5200,6 +7189,12 @@
"inherits": "^2.0.1"
}
},
+ "run-parallel": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
+ "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
+ "dev": true
+ },
"run-queue": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
@@ -5319,6 +7314,39 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
+ "side-channel": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz",
+ "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==",
+ "dev": true,
+ "requires": {
+ "es-abstract": "^1.17.0-next.1",
+ "object-inspect": "^1.7.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -5513,6 +7541,12 @@
"integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
"dev": true
},
+ "specificity": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz",
+ "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==",
+ "dev": true
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -5522,6 +7556,12 @@
"extend-shallow": "^3.0.0"
}
},
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
"ssri": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
@@ -5537,6 +7577,12 @@
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
"dev": true
},
+ "state-toggle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
+ "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==",
+ "dev": true
+ },
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -5631,6 +7677,40 @@
}
}
},
+ "string.prototype.matchall": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz",
+ "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0",
+ "has-symbols": "^1.0.1",
+ "internal-slot": "^1.0.2",
+ "regexp.prototype.flags": "^1.3.0",
+ "side-channel": "^1.0.2"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+ "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+ "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -5640,6 +7720,19 @@
"safe-buffer": "~5.1.0"
}
},
+ "stringify-entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz",
+ "integrity": "sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==",
+ "dev": true,
+ "requires": {
+ "character-entities-html4": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.2",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -5658,6 +7751,281 @@
"is-utf8": "^0.2.0"
}
},
+ "strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
+ "dev": true
+ },
+ "stylelint": {
+ "version": "13.6.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.6.1.tgz",
+ "integrity": "sha512-XyvKyNE7eyrqkuZ85Citd/Uv3ljGiuYHC6UiztTR6sWS9rza8j3UeQv/eGcQS9NZz/imiC4GKdk1EVL3wst5vw==",
+ "dev": true,
+ "requires": {
+ "@stylelint/postcss-css-in-js": "^0.37.1",
+ "@stylelint/postcss-markdown": "^0.36.1",
+ "autoprefixer": "^9.8.0",
+ "balanced-match": "^1.0.0",
+ "chalk": "^4.1.0",
+ "cosmiconfig": "^6.0.0",
+ "debug": "^4.1.1",
+ "execall": "^2.0.0",
+ "file-entry-cache": "^5.0.1",
+ "get-stdin": "^8.0.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.1",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.1.0",
+ "ignore": "^5.1.8",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "known-css-properties": "^0.19.0",
+ "leven": "^3.1.0",
+ "lodash": "^4.17.15",
+ "log-symbols": "^4.0.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^7.0.1",
+ "micromatch": "^4.0.2",
+ "normalize-selector": "^0.2.0",
+ "postcss": "^7.0.32",
+ "postcss-html": "^0.36.0",
+ "postcss-less": "^3.1.4",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-reporter": "^6.0.1",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^4.0.2",
+ "postcss-sass": "^0.4.4",
+ "postcss-scss": "^2.1.1",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-syntax": "^0.36.2",
+ "postcss-value-parser": "^4.1.0",
+ "resolve-from": "^5.0.0",
+ "slash": "^3.0.0",
+ "specificity": "^0.4.1",
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "style-search": "^0.1.0",
+ "sugarss": "^2.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^5.4.6",
+ "v8-compile-cache": "^2.1.1",
+ "write-file-atomic": "^3.0.3"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "stylelint-config-recommended": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz",
+ "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==",
+ "dev": true
+ },
+ "stylelint-config-standard": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz",
+ "integrity": "sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA==",
+ "dev": true,
+ "requires": {
+ "stylelint-config-recommended": "^3.0.0"
+ }
+ },
+ "sugarss": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz",
+ "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ }
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -5677,6 +8045,24 @@
"es6-symbol": "^3.1.1"
}
},
+ "svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
"tapable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
@@ -5738,6 +8124,12 @@
}
}
},
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
"through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
@@ -5846,6 +8238,30 @@
"through2": "^2.0.3"
}
},
+ "trim": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
+ "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz",
+ "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==",
+ "dev": true
+ },
+ "trim-trailing-lines": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz",
+ "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==",
+ "dev": true
+ },
+ "trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
+ "dev": true
+ },
"tslib": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
@@ -5864,12 +8280,36 @@
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
"dev": true
},
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "dev": true
+ },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -5899,6 +8339,16 @@
"integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
"dev": true
},
+ "unherit": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
+ "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@@ -5927,6 +8377,28 @@
"integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
"dev": true
},
+ "unified": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.0.0.tgz",
+ "integrity": "sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ==",
+ "dev": true,
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "dev": true
+ }
+ }
+ },
"union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@@ -5939,6 +8411,12 @@
"set-value": "^2.0.1"
}
},
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
"unique-filename": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
@@ -5967,6 +8445,60 @@
"through2-filter": "^3.0.0"
}
},
+ "unist-util-find-all-after": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.1.tgz",
+ "integrity": "sha512-0GICgc++sRJesLwEYDjFVJPJttBpVQaTNgc6Jw0Jhzvfs+jtKePEMu+uD+PqkRUrAvGQqwhpDwLGWo1PK8PDEw==",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^4.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz",
+ "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==",
+ "dev": true
+ },
+ "unist-util-remove-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ },
+ "unist-util-visit": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
+ "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz",
+ "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
+ }
+ },
"unset-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
@@ -6098,6 +8630,49 @@
"integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
"dev": true
},
+ "vfile": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz",
+ "integrity": "sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "dev": true
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
+ }
+ }
+ },
+ "vfile-location": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz",
+ "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==",
+ "dev": true
+ },
+ "vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ },
"vinyl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
@@ -6487,6 +9062,12 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
"worker-farm": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
@@ -6534,6 +9115,27 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -6552,6 +9154,12 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
},
+ "yaml": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
+ "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
+ "dev": true
+ },
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
diff --git a/package.json b/package.json
index e0918166..01424fd1 100644
--- a/package.json
+++ b/package.json
@@ -7,10 +7,17 @@
"build": "webpack --progress --colors",
"watch": "webpack --progress --colors --watch",
"build-prod": "webpack --progress --colors --mode production -o dist/index.min.js --devtool none",
- "test": "echo \"Error: no test specified\" && exit 1",
- "minify": "npm run build-prod && npm run minify-css",
+ "lint-js": "eslint --ext .jsx,.js src/",
+
+ "build-css": "gulp build-css",
+ "watch-css": "gulp watch-css",
"minify-css": "gulp minify-css",
- "watch-css": "gulp watch-css"
+ "lint-css": "stylelint src/styles/*.css && stylelint src/styles/**/*.css && stylelint dist/style.css",
+
+ "minify": "npm run build-prod && npm run minify-css",
+ "build-all": "npm run build-prod && npm run build-css && npm run minify-css",
+ "lint": "npm run lint-js && npm run lint-css",
+ "test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
@@ -29,9 +36,15 @@
"@babel/register": "^7.10.5",
"babel-loader": "^8.1.0",
"circular-dependency-plugin": "^5.2.0",
+ "eslint": "^7.5.0",
+ "eslint-plugin-react": "^7.20.3",
"gulp": "^4.0.2",
- "gulp-csso": "^4.0.1",
+ "gulp-postcss": "^8.0.0",
"gulp-rename": "^2.0.0",
+ "postcss-csso": "^4.0.0",
+ "postcss-easy-import": "^3.0.0",
+ "stylelint": "^13.6.1",
+ "stylelint-config-standard": "^20.0.0",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.12"
}
diff --git a/src/index.js b/src/index.js
index ef47d49d..f0cb105d 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,8 +1,8 @@
import secure from "./secure";
import patchModuleLoad from "./moduleloader";
-import Core from "./modules/core";
-import BdApi from "./modules/pluginapi";
import LoadingIcon from "./loadingicon";
+import BetterDiscord from "./modules/core";
+import BdApi from "./modules/pluginapi";
// Perform some setup
secure();
@@ -10,4 +10,5 @@ patchModuleLoad();
window.BdApi = BdApi;
// Add loading icon at the bottom right
-LoadingIcon.show();
\ No newline at end of file
+LoadingIcon.show();
+new BetterDiscord();
\ No newline at end of file
diff --git a/src/modules/core.js b/src/modules/core.js
index c53f4515..25c2acad 100644
--- a/src/modules/core.js
+++ b/src/modules/core.js
@@ -21,7 +21,7 @@ import Utilities from "./utilities";
const {ipcRenderer} = require("electron");
const GuildClasses = DiscordModules.GuildClasses;
-export default new class Core {
+export default class Core {
constructor() {
ipcRenderer.invoke("bd-config", "get").then(injectorConfig => {
if (this.hasStarted) return;
@@ -42,9 +42,9 @@ export default new class Core {
{
name: "bd-stylesheet",
type: "style",
- url: "//cdn.staticaly.com/gh/{{repo}}/BetterDiscordApp/{{hash}}/dist/style.css",
- backup: "//rauenzi.github.io/BetterDiscordApp/dist/style.css",
- local: "{{localServer}}/BetterDiscordApp/dist/style.css"
+ url: "//cdn.staticaly.com/gh/{{repo}}/BetterDiscordApp/{{hash}}/dist/style.min.css",
+ backup: "//rauenzi.github.io/BetterDiscordApp/dist/style.min.css",
+ local: "{{localServer}}/BetterDiscordApp/dist/style.min.css"
}
];
}
@@ -247,4 +247,4 @@ export default new class Core {
Logger.log("InjectorUpdate", "Injector Updated!");
return success;
}
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/src/modules/logger.js b/src/modules/logger.js
index f2c99a9f..43942909 100644
--- a/src/modules/logger.js
+++ b/src/modules/logger.js
@@ -90,7 +90,7 @@ export default class Logger {
}
static parseType(type) {
- return LogTypes.hasOwnProperty(type) ? LogTypes[type] : "log";
+ return LogTypes[type] || "log";
}
}
\ No newline at end of file
diff --git a/src/styles/builtins/customcss.css b/src/styles/builtins/customcss.css
new file mode 100644
index 00000000..6d464ae8
--- /dev/null
+++ b/src/styles/builtins/customcss.css
@@ -0,0 +1,132 @@
+#bd-editor-panel {
+ display: flex;
+ flex-direction: column;
+}
+
+#bd-editor-controls button {
+ margin: 0 5px 0 0;
+ background: none;
+ color: #fff;
+ height: 26px;
+ font-weight: 600;
+ border-radius: 3px;
+ display: flex;
+ align-items: center;
+}
+
+#bd-editor-controls button:hover {
+ background: rgba(255, 255, 255, 0.05);
+}
+
+#bd-editor-controls button svg {
+ fill: white;
+}
+
+#bd-editor-controls button:last-of-type {
+ margin-right: 0;
+}
+
+#bd-editor-controls {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: #272822;
+ color: #fff;
+ border: none;
+ box-shadow: 0 1px 0 0 #2f3129 inset;
+ padding: 5px;
+}
+
+.editor-wrapper {
+ display: flex;
+}
+
+.ace_editor {
+ line-height: normal;
+ font-family: Consolas, monospace;
+ box-sizing: border-box;
+ height: calc(100vh - 250px);
+ font-size: 14px;
+ width: 100%;
+}
+
+.bd-monokai .editor .ace_gutter {
+ background: #2f3136;
+}
+
+.bd-monokai .ace_editor {
+ background: #292b2f;
+}
+
+.bd-monokai #bd-editor-controls {
+ background: #202225;
+}
+
+.theme-light #bd-editor-controls {
+ background: #e8e8e8;
+ border: 1px solid #fff;
+ border-top: 1px solid #adadad;
+ box-shadow: inset 0 1px 0 0 white;
+}
+
+.controls-section {
+ display: flex;
+ align-items: center;
+}
+
+.controls-section .checkbox-inner {
+ width: 14px;
+ height: 14px;
+}
+
+.controls-section .checkbox-inner .checkbox:checked + span::after {
+ left: 2px;
+ top: -2px;
+}
+
+.controls-section .checkbox-label {
+ font-size: 14px;
+}
+
+/* Ace Editor Settings */
+#ace_settingsmenu_container {
+ background: rgba(0, 0, 0, 0.7) !important; /* stylelint-disable-line important */
+}
+
+body #ace_settingsmenu {
+ padding-top: 35px;
+}
+
+body .ace_closeButton {
+ position: absolute;
+ top: 8px;
+ right: 12px;
+ z-index: 10000;
+ padding: 0;
+ cursor: pointer;
+ background: none;
+ border: none;
+}
+
+body .ace_closeButton::before {
+ content: "✖";
+ color: #36393f;
+}
+
+body .ace_closeButton:active {
+ transform: translateY(2px);
+}
+
+/* editor help text */
+#bd-editor-controls .help-text {
+ margin-top: 8px;
+ margin-bottom: 3px;
+ font-size: 14px;
+}
+
+#bd-editor-controls .help-text .inline {
+ background: #2f3129;
+ padding: 0.2em;
+ margin: -0.2em 0;
+ border-radius: 3px;
+}
\ No newline at end of file
diff --git a/src/styles/builtins/darkmode.css b/src/styles/builtins/darkmode.css
new file mode 100644
index 00000000..853451da
--- /dev/null
+++ b/src/styles/builtins/darkmode.css
@@ -0,0 +1,147 @@
+/* Emoji Picker */
+.bd-dark #bd-qem-favourite-container,
+.bd-dark #bd-qem-twitch-container {
+ background-color: #353535;
+}
+
+.bd-dark #bd-qem {
+ border-bottom: 1px solid #464646;
+ background: #353535;
+}
+
+.bd-dark #bd-qem button {
+ background: #353535;
+ border-left: 1px solid #242424;
+ box-shadow: #424242 1px 0 0 0;
+ color: #fff;
+}
+
+.bd-dark #bd-qem button.active {
+ background-color: #292929;
+}
+
+.bd-dark #bd-qem button:hover {
+ background-color: #303030;
+}
+
+.bd-dark .emojiPicker-3m1S-j {
+ background-color: #353535;
+}
+
+.bd-dark .emojiPicker-3m1S-j .category-2U57w6 {
+ background-color: #353535;
+}
+
+.bd-dark .emojiPicker-3m1S-j .header-1nkwgG .searchBar-2pWH0_ {
+ background-color: #2b2b2b;
+}
+
+.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input {
+ color: #fff;
+}
+
+.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input::-webkit-input-placeholder {
+ color: #fff;
+}
+
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S {
+ background-color: rgba(123, 123, 123, 0.37);
+}
+
+.bd-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ {
+ background-color: rgba(62, 62, 62, 0.65);
+}
+
+.bd-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc {
+ background: #353535;
+ border-color: #202020;
+}
+
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar,
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track,
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track-piece,
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar,
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track,
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,
+.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece {
+ background-color: #303030 !important;
+ border-color: #303030 !important;
+}
+
+.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-thumb,
+.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-thumb,
+.bd-dark .emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb {
+ border-color: #202020 !important;
+ background-color: #202020 !important;
+}
+
+/* add/create server */
+.bd-dark .theme-light .slide-2pHaq5 {
+ background: #36393f;
+}
+
+.bd-dark .theme-dark .action-1lSjCi,
+.bd-dark .theme-light .action-1lSjCi {
+ background: #2f3136;
+}
+
+/* centered or */
+.bd-dark .theme-dark .or-3THJsp,
+.bd-dark .theme-light .or-3THJsp {
+ background: #2f3136;
+ order: 2;
+ height: 56px;
+ width: 56px;
+ top: 103px;
+ line-height: 56px;
+ left: calc(50% - 29px);
+ border-radius: 50%;
+ border: 2px solid #484b52;
+}
+
+.bd-dark .create-3jownz {
+ order: 1;
+}
+
+.bd-dark .join-33Tr-7 {
+ order: 3;
+}
+
+.bd-dark .theme-dark .actionIcon-2IISM_,
+.bd-dark .theme-light .actionIcon-2IISM_ {
+ filter: grayscale(100%) brightness(60%);
+}
+
+.bd-dark .theme-light .footer-2yfCgX {
+ background: #2f3136;
+}
+
+/* Region Select */
+.bd-dark .regionSelectModal-12e-57 {
+ background: #36393f;
+}
+
+.bd-dark .regionSelectModal-12e-57 .regionSelectModalOption-2DSIZ3 {
+ background: #2f3136;
+ border: 2px solid #484b52;
+}
+
+/* Ace Editor Settings */
+.bd-dark ~ div #ace_settingsmenu {
+ color: #f6f6f7;
+ background: #36393f;
+ box-shadow: 0 0 0 1px rgba(32, 34, 37, 0.6), 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+}
+
+.bd-dark ~ div #ace_settingsmenu select,
+.bd-dark ~ div #ace_settingsmenu input[type="text"] {
+ color: #f6f6f7;
+ background: #2f3136;
+ border: 1px solid #484b52;
+}
+
+.bd-dark ~ div .ace_closeButton::before {
+ color: #f6f6f7;
+}
\ No newline at end of file
diff --git a/src/styles/builtins/emotemenu.css b/src/styles/builtins/emotemenu.css
new file mode 100644
index 00000000..6bc0ecec
--- /dev/null
+++ b/src/styles/builtins/emotemenu.css
@@ -0,0 +1,130 @@
+#removemenu {
+ width: auto;
+ background: #505050;
+ z-index: 999999;
+ box-shadow: 0 0 2px #000;
+ padding: 2px;
+ left: 25px;
+ display: block;
+ cursor: pointer;
+ color: #fff;
+ position: fixed;
+}
+
+#removemenu ul a {
+ text-decoration: none;
+ color: #fff;
+ padding: 3px;
+}
+
+.emotewrapper {
+ position: relative;
+ display: inline-flex;
+ object-fit: contain;
+ margin: -0.1em 0.05em -0.2em 0.1em;
+ vertical-align: top;
+}
+
+.emotewrapper.jumboable {
+ margin-bottom: 0;
+ margin-top: 0.2em;
+ vertical-align: -0.3em;
+}
+
+.emote {
+ height: 1.45em;
+}
+
+.emote.jumboable {
+ height: 2rem;
+}
+
+.fav {
+ display: none;
+ position: absolute;
+ width: 15px;
+ height: 15px;
+ right: -7px;
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=");
+ border: none;
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+ background-color: #303030;
+ border-radius: 5px;
+ top: -7px;
+ cursor: pointer;
+}
+
+.fav.active {
+ background-color: yellow;
+}
+
+.emotewrapper:hover .fav {
+ display: block;
+}
+
+.emojiPicker-3m1S-j {
+ box-shadow: none;
+ border-top: none;
+ border-radius: 0 0 5px 5px;
+}
+
+#bd-qem {
+ border-radius: 5px 5px 0 0;
+ background: #fff;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ height: 30px;
+ display: flex;
+ flex-direction: row;
+ padding-right: 1px;
+}
+
+#bd-qem button {
+ border-left: 1px solid #efefef;
+ background: transparent;
+ box-shadow: #cecece 1px 0 0 0;
+ flex-grow: 1;
+}
+
+#bd-qem button:hover {
+ background: #ececec;
+}
+
+#bd-qem-twitch {
+ border-radius: 5px 0 0 0;
+ order: 2;
+}
+
+#bd-qem-emojis {
+ border-radius: 0 5px 0 0;
+ order: 3;
+}
+
+#bd-qem-favourite {
+ order: 3;
+}
+
+#bd-qem button.active {
+ background-color: #e2e2e2;
+}
+
+#bd-qem-twitch-container,
+#bd-qem-favourite-container {
+ width: 346px;
+ height: 329px;
+ background-color: #fff;
+ border-radius: 0 0 5px 5px;
+}
+
+#bd-qem-twitch-container .scroller-wrap,
+#bd-qem-favourite-container .scroller-wrap {
+ height: 100%;
+}
+
+.emote-menu-inner {
+ padding: 5px 0 0 15px;
+}
+
+.bd-qme-hidden #bd-qem-emojis {
+ display: none;
+}
\ No newline at end of file
diff --git a/src/styles/builtins/emotes.css b/src/styles/builtins/emotes.css
new file mode 100644
index 00000000..65a2e018
--- /dev/null
+++ b/src/styles/builtins/emotes.css
@@ -0,0 +1,186 @@
+#emote-container {
+ padding: 10px;
+}
+
+.emote-container {
+ display: inline-block;
+ padding: 2px;
+ border-radius: 5px;
+ width: 30px;
+ height: 30px;
+ position: relative;
+}
+
+.emote-icon {
+ max-width: 100%;
+ max-height: 100%;
+ position: absolute;
+ margin: auto;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ cursor: pointer;
+}
+
+.emote.stop-animation {
+ animation: none;
+}
+
+.emote-container:hover {
+ background: rgba(123, 123, 123, 0.37);
+}
+
+.emoteflip,
+.emotespinflip {
+ transform: scaleX(-1);
+}
+
+.emotespin {
+ animation: 1s emote-spin infinite linear;
+}
+
+.emote1spin {
+ animation: 1s emote-spin-reverse infinite linear;
+}
+
+.emotespin2 {
+ animation: 0.5s emote-spin infinite linear;
+}
+
+.emote2spin {
+ animation: 0.5s emote-spin-reverse infinite linear;
+}
+
+.emotespin3 {
+ animation: 0.2s emote-spin infinite linear;
+}
+
+.emote3spin {
+ animation: 0.2s emote-spin-reverse infinite linear;
+}
+
+.emotepulse {
+ animation: 1s emote-pulse infinite linear;
+}
+
+.emotetr {
+ transform: translateX(-3px);
+}
+
+.emotebl {
+ transform: translateY(-3px);
+}
+
+.emotebr {
+ transform: translate(-3px, -3px);
+}
+
+.emoteshake {
+ animation: 1s emote-shake infinite linear;
+}
+
+.emoteflap {
+ transform: scaleY(-1);
+}
+
+.emoteshake2 {
+ animation: emote-shake2 0.3s linear infinite;
+}
+
+.emoteshake3 {
+ animation: emote-shake3 0.1s linear infinite;
+}
+
+@keyframes emote-shake2 {
+ 25% {
+ transform: translate(-1px, -1px);
+ }
+
+ 50% {
+ transform: translate(-1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, -1px);
+ }
+}
+
+@keyframes emote-shake3 {
+ 25% {
+ transform: translate(-1px, -1px);
+ }
+
+ 50% {
+ transform: translate(-1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, 1px);
+ }
+
+ 75% {
+ transform: translate(1px, -1px);
+ }
+}
+
+@keyframes emote-spin {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes emote-spin-reverse {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(-360deg);
+ }
+}
+
+@keyframes emote-pulse {
+ 0% {
+ -webkit-transform: scale(1, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale(1.2, 1.2);
+ }
+
+ 100% {
+ -webkit-transform: scale(1, 1);
+ }
+}
+
+@keyframes emote-shake {
+ 10%,
+ 90% {
+ transform: translate3d(-1px, 0, 0);
+ }
+
+ 20%,
+ 80% {
+ transform: translate3d(2px, 0, 0);
+ }
+
+ 30%,
+ 50%,
+ 70% {
+ transform: translate3d(-4px, 0, 0);
+ }
+
+ 40%,
+ 60% {
+ transform: translate3d(4px, 0, 0);
+ }
+}
diff --git a/src/styles/builtins/minimalmode.css b/src/styles/builtins/minimalmode.css
new file mode 100644
index 00000000..15dd2e6c
--- /dev/null
+++ b/src/styles/builtins/minimalmode.css
@@ -0,0 +1,233 @@
+/* Messages */
+.bd-minimal .divider-32i8lo {
+ opacity: 0;
+}
+
+/* message avatars */
+.bd-minimal .large-3ChYtB {
+ max-width: 20px;
+ max-height: 20px;
+ background-size: 100%;
+ margin-right: 2px;
+ margin-top: 0;
+ border-radius: 0;
+}
+
+/* message content */
+.bd-minimal .content-3dzVd8 {
+ border-left: 2px solid #ebebeb;
+ padding-left: 2px;
+}
+
+.bd-minimal .theme-dark .content-3dzVd8 {
+ border-left: 2px solid #303030;
+}
+
+/* message username */
+.bd-minimal .username-_4ZSMR {
+ font-size: small;
+}
+
+/* message group */
+.bd-minimal .container-1YxwTf {
+ padding: 5px;
+}
+
+/* message embed */
+.bd-minimal .embed-IeVjo6 {
+ padding: 2px;
+}
+
+/* Member List */
+.bd-minimal .membersWrap-2h-GB4 {
+ min-width: 0;
+}
+
+/* member list avatars */
+.bd-minimal .members-1998pB .small-5Os1Bb {
+ max-width: 15px;
+ max-height: 15px;
+ background-size: 15px 15px;
+}
+
+/* member list avatars */
+.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE {
+ height: 5px;
+ width: 5px;
+}
+
+/* member list list item */
+.bd-minimal .members-1998pB .member-3W1lQa {
+ padding: 5px;
+}
+
+/* member list item inner */
+.bd-minimal .members-1998pB .memberInner-2CPc3V {
+ transform: scale(0.9);
+}
+
+/* member list role label */
+.bd-minimal .members-1998pB .membersGroup-v9BXpm {
+ margin-top: 3px;
+ transform: scale(0.9);
+}
+
+/* channel list */
+.bd-minimal .channels-Ie2l6A {
+ width: 160px;
+}
+
+/* Channel List */
+.bd-minimal.bd-minimal-chan .channels-Ie2l6A {
+ display: none;
+}
+
+/* channel list guild name */
+.bd-minimal .channels-Ie2l6A header span {
+ font-size: 12px;
+}
+
+/* channel item */
+.bd-minimal .containerDefault-3GGEv_ {
+ transform: scale(0.9);
+}
+
+/* channel name */
+.bd-minimal .content-3at_AU {
+ transform: scale(0.9);
+}
+
+/* channel icon */
+.bd-minimal .icon-1_QxNX {
+ width: 14px;
+ height: 14px;
+}
+
+/* Guild List */
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh {
+ width: 20px;
+ height: 20px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+ margin: 0 12.5px 8px;
+}
+
+/* guild link and icon */
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .wrapper-25eVIn a,
+.bd-minimal .listItem-2P_4kh .wrapper-25eVIn .icon-27yU2q {
+ width: 20px;
+ height: 20px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+}
+
+/* guild inner */
+.bd-minimal .listItem-2P_4kh .wrapper-25eVIn {
+ width: 20px;
+ height: 20px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+}
+
+.bd-minimal .listItem-2P_4kh svg,
+.bd-minimal .listItem-2P_4kh foreignObject[mask] {
+ mask: none;
+}
+
+/* home icon */
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .homeIcon-tEMBK1 {
+ width: 10px;
+ height: 10px;
+ background-size: 100%;
+ font-size: 15px;
+ line-height: 20px;
+}
+
+/* add and search */
+.bd-minimal .circleIconButton-jET_ig {
+ height: 20px;
+ width: 20px;
+}
+
+.bd-minimal .circleIconButton-jET_ig svg {
+ height: 14px;
+ width: 14px;
+}
+
+/* friends online */
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .friendsOnline-_wi_fM {
+ margin-left: -15px;
+ font-size: 7px;
+}
+
+/* public servers button */
+.bd-minimal #bd-pub-li {
+ height: 16px;
+}
+
+.bd-minimal #bd-pub-button {
+ font-size: 8px;
+ line-height: 16px;
+ height: 16px;
+}
+
+/* guild list */
+.bd-minimal .wrapper-1Rf91z,
+.bd-minimal .wrapper-1Rf91z .scrollerWrap-1IAIlv,
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG {
+ width: 45px;
+}
+
+/* separator */
+.bd-minimal .wrapper-1Rf91z .guildSeparator-3s64Iy {
+ margin-left: -15px;
+}
+
+/* unread icon */
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh .wrapper-sa6paO {
+ height: 20px;
+ margin-top: 0;
+ margin-left: -12.5px;
+}
+
+/* audio/video */
+.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .iconBadge-2wi9r4 {
+ width: 12px;
+ height: 12px;
+ background-size: 12px;
+}
+
+/* Account Container */
+.bd-minimal .container-2Thooq .avatarSmall-3ACRaI {
+ width: 15px;
+ height: 15px;
+ background-size: 15px 15px;
+}
+
+/* status */
+.bd-minimal .container-2Thooq .avatarSmall-3ACRaI .status-oxiHuE {
+ height: 5px;
+ width: 5px;
+}
+
+/* username and discrim */
+.bd-minimal .container-2Thooq .accountDetails-3k9g4n {
+ transform: scale(0.8);
+}
+
+/* 3 buttons */
+.bd-minimal .container-2Thooq .button-2b6hmh {
+ height: 14px;
+ width: 14px;
+ background-size: 14px 14px;
+ margin-left: 3px;
+}
+
+/* 3 buttons icons */
+.bd-minimal .container-2Thooq .button-2b6hmh svg {
+ height: 14px;
+ width: 14px;
+}
diff --git a/src/styles/builtins/publicservers.css b/src/styles/builtins/publicservers.css
new file mode 100644
index 00000000..ec15107c
--- /dev/null
+++ b/src/styles/builtins/publicservers.css
@@ -0,0 +1,236 @@
+#bd-pub-li {
+ height: 20px;
+ margin-bottom: 10px;
+ overflow: hidden;
+}
+
+#bd-pub-button {
+ border-radius: 4px;
+ background-color: rgb(47, 49, 54);
+ color: #b9bbbe;
+ text-align: center;
+ font-size: 12px;
+ line-height: 20px;
+ height: 20px;
+}
+
+.bd-server-card .bd-server-tags {
+ flex: 1 1 auto;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ width: 0;
+ line-height: 24px;
+ font-size: 12px;
+ color: #b9bbbe;
+ font-weight: 700;
+ margin-right: 10px;
+}
+
+/* .ui-card.ui-card-primary.bd-server-card:first-child {
+ margin-bottom: 13px;
+}
+
+.ui-card.ui-card-primary.bd-server-card:first-child:after {
+ border: 3px solid #7289da;
+ content: "";
+ display: block;
+ position: absolute;
+ left: 0;
+ right: 0;
+ margin-top: 4px;
+} */
+
+.bd-server-card.bd-server-card-pinned {
+ margin-bottom: 15px;
+}
+
+.bd-server-card.bd-server-card-pinned::after {
+ background: #3a71c1;
+ content: "";
+ height: 3px;
+ width: 100%;
+ display: block;
+ margin-top: 7px;
+ position: absolute;
+ top: 100%;
+}
+
+.bd-server-description-container {
+ color: #b9bbbe;
+ min-height: 65px;
+ max-height: 65px;
+ border-top: 1px solid #3f4146;
+ border-bottom: 1px solid #3f4146;
+ padding-top: 5px;
+ font-size: 13px;
+}
+
+.bd-server-header {
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+ justify-content: space-between;
+ font-weight: 600;
+}
+
+.bd-server-card {
+ display: flex;
+ position: relative;
+ border-width: 1px;
+ border-style: solid;
+ border-radius: 5px;
+ background: rgba(32, 34, 37, 0.6);
+ border-color: #202225;
+ margin-bottom: 8px;
+}
+
+.bd-server-header,
+.bd-server-footer {
+ display: flex;
+ color: #b9bbbe;
+}
+
+.bd-server-card .bd-button {
+ margin-top: 4px;
+}
+
+.bd-server-content {
+ padding: 5px 10px;
+ flex: 1;
+}
+
+.bd-server-image {
+ min-width: 115px;
+ min-height: 115px;
+ max-width: 115px;
+ max-height: 115px;
+}
+
+.bd-server-name {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ padding-right: 15px;
+ max-width: 330px;
+ flex: 1 1 50%;
+}
+
+.bd-layer {
+ -ms-flex-direction: column;
+ -webkit-box-direction: normal;
+ -webkit-box-orient: vertical;
+ bottom: 0;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ flex-direction: column;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+
+/* #pubslayer .ui-tab-bar-item {
+ color: #b9bbbe;
+ padding-top: 6px;
+ padding-bottom: 6px;
+ margin-bottom: 2px;
+ padding: 6px 10px;
+ position: relative;
+ font-size: 16px;
+ line-height: 20px;
+ border-radius: 3px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex-shrink: 0;
+ font-weight: 500;
+ cursor: pointer;
+}
+
+#pubslayer .ui-tab-bar-item:hover {
+ color: #f6f6f7;
+ background-color: hsla(216,4%,74%,.1);
+}
+
+#pubslayer .ui-tab-bar-item.selected {
+ color: #fff;
+ background-color: #7289da;
+}
+
+#pubslayer .ui-tab-bar-header {
+ color: #72767d;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 16px;
+ text-transform: uppercase;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex-shrink: 0;
+ font-weight: 500;
+}
+
+#pubslayer #bd-settings-sidebar .ui-tab-bar-separator {
+ background-color: hsla(218,5%,47%,.3);
+ margin-left: 10px;
+ margin-right: 10px;
+ height: 1px;
+ margin-bottom: 8px;
+ margin-top: 8px;
+}
+
+#pubslayer h2.ui-form-title {
+ color: #f6f6f7;
+ text-transform: uppercase;
+ font-weight: 600;
+}
+
+#pubslayer h5.ui-form-title {
+ color: #f6f6f7;
+} */
+
+#pubslayer button {
+ background: #7289da;
+ color: #fff;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 16px;
+ padding: 2px 16px;
+ border: none;
+ border-radius: 3px;
+ transition: background-color 0.17s ease;
+}
+
+#pubslayer button:hover {
+ background-color: #677bc4;
+}
+
+#pubslayer input {
+ color: #f6f6f7;
+ background-color: rgba(0, 0, 0, 0.1);
+ border-color: rgba(0, 0, 0, 0.3);
+ padding: 10px;
+ height: 30px;
+ border-width: 1px;
+ border-style: solid;
+ border-radius: 3px;
+ outline: none;
+ transition: background-color 0.15s ease, border 0.15s ease;
+}
+
+#bd-connection {
+ margin-left: 10px;
+}
+
+.bd-footnote {
+ color: #b9bbbe;
+ font-size: 11px;
+}
+
+.bd-button-next,
+.bd-button-reconnect {
+ margin: 5px 10px 10px 0;
+ width: 100%;
+ min-height: 20px;
+}
\ No newline at end of file
diff --git a/src/styles/buttons.css b/src/styles/buttons.css
new file mode 100644
index 00000000..89187db8
--- /dev/null
+++ b/src/styles/buttons.css
@@ -0,0 +1,26 @@
+.bd-button {
+ background-color: #3e82e5;
+ color: white;
+ border-radius: 3px;
+ padding: 2px 6px;
+}
+
+.bd-button:hover {
+ background-color: rgb(56, 117, 206);
+}
+
+.bd-button:active {
+ background-color: rgb(50, 104, 183);
+}
+
+.bd-button.bd-button-success {
+ background-color: #3ac15c;
+}
+
+.bd-button.bd-button-success:hover {
+ background-color: rgb(52, 174, 83);
+}
+
+.bd-button.bd-button-success:active {
+ background-color: rgb(46, 154, 74);
+}
\ No newline at end of file
diff --git a/src/styles/index.css b/src/styles/index.css
index 3e6feffc..1a573702 100644
--- a/src/styles/index.css
+++ b/src/styles/index.css
@@ -1,2339 +1,17 @@
-/* Error Boundary stuff */
-.react-error {
- color: red;
- font-weight: bold;
- font-family: Arial, Helvetica, sans-serif;
- cursor: pointer;
-}
-
-.bd-settings-group.collapsible .bd-settings-title {
- display: flex;
- justify-content: space-between;
-}
-.bd-settings-group.collapsible .bd-settings-title::after {
- content: "";
- background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSItOTUwIDUzMiAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAtOTUwIDUzMiAxOCAxODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6bm9uZTt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjEuNTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS05MzIsNTMydjE4aC0xOHYtMThILTkzMnoiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ii05MzYuNiw1MzguOCAtOTQxLDU0My4yIC05NDUuNCw1MzguOCAiLz4NCjwvc3ZnPg0K);
- height: 20px;
- width: 20px;
- display: inline-block;
- vertical-align: bottom;
- transition: transform .3s ease;
- transform: rotate(0);
-}
-
-.bd-settings-group.collapsed .bd-settings-title::after {
- transition: transform .3s ease;
- transform: rotate(90deg);
-}
-
-.bd-settings-container {
- height: auto;
- overflow: hidden;
- transition: height 300ms cubic-bezier(0.47, 0, 0.745, 0.715);
-}
-
-.bd-settings-group.collapsed .bd-settings-container {
- height: 0px;
-}
-
-.bd-settings-group ~ .bd-settings-group .bd-settings-title {
- margin-top: 30px;
- transition: margin-top 300ms ease;
-}
-
-.bd-settings-group.collapsed + .bd-settings-group .bd-settings-title {
- margin-top: 0px;
-}
-
-.bd-settings-group.collapsible .bd-settings-title {
- order: 1;
- align-items: center;
-}
-
-.bd-settings-group.collapsible .bd-settings-title::before {
- content: "";
- background-color: rgba(114,118,125,.3);
- height: 2px;
- order: 2;
- flex: 1;
- margin: 0 10px 0 15px;
-}
-
-.bd-settings-group.collapsible .bd-settings-title::after {
- order: 3;
-}
-
-.bd-settings-title.bd-settings-group-title {
- margin-bottom: 10px;
-}
-
-.checkbox-item {
- display: flex;
-}
-
-.checkbox-item .checkbox-label {
- margin-right: 8px;
-}
-
-#bd-connection {
- margin-left: 10px;
-}
-
-.bd-button {
- background-color: #3E82E5;
- color: white;
- border-radius: 3px;
- padding: 2px 6px;
-}
-
-.bd-button:hover {
- background-color: rgb(56,117,206);
-}
-
-.bd-button:active {
- background-color: rgb(50,104,183);
-}
-
-.bd-footnote {
- color: #b9bbbe;
- font-size: 11px;
-}
-
-.bd-button-next,
-.bd-button-reconnect {
- margin: 5px 10px 10px 0;
- width: 100%;
- min-height: 20px;
-}
-
-.bd-server-card {
- position: relative;
- border-width: 1px;
- border-style: solid;
- border-radius: 5px;
- background: rgba(32,34,37,.6);
- border-color: #202225;
- margin-bottom: 8px;
-}
-
-.bd-server-header,
-.bd-server-footer {
- display: flex;
- color: #b9bbbe;
-}
-
-.bd-server-header {
- text-transform: uppercase;
- letter-spacing: 0.5px;
-}
-
-.bd-server-card .bd-button {
- margin-top: 4px;
-}
-
-.bd-button.bd-button-success {
- background-color: #3ac15c;
-}
-
-.bd-button.bd-button-success:hover {
- background-color: rgb(52,174,83);
-}
-
-.bd-button.bd-button-success:active {
- background-color: rgb(46,154,74);
-}
-
-#bbd-version {
- font-size: 12px;
- font-weight: 600;
- color: #72767d;
- padding: 2px 10px;
-}
-
-.settings-open .bd-close {
- cursor: pointer;
- float: right;
-}
-
-
-
-@keyframes open-window {
- from {
- transform: scale(0.9);
- }
- to {
- transform: none;
- }
-}
-
-
-.floating-window {
- animation: open-window 200ms ease;
- min-width: 200px;
- min-height: 300px;
- box-shadow: 0 2px 10px 0 rgba(0,0,0,.2);
- display: flex;
- flex-direction: column;
- -webkit-app-region: no-drag;
- position: fixed;
- z-index: 1001;
- box-sizing: border-box;
-}
-
-.floating-window.modal-open {
- z-index: 999;
-}
-
-.floating-window.resizable {
- overflow: auto;
- resize: both;
- padding-bottom: 10px;
- background: #202225;
-}
-
-.floating-window-titlebar {
- width: 100%;
- display: flex;
- justify-content: space-between;
- align-items: center;
- background: #202225;/*#2F3129background-color: #202225;*/
- color: white;
- border-bottom: 1px solid #272822;
-}
-
-.floating-window-content {
- background: #2F3129;
- /* padding: 5px; */
- color: white;
- flex: 1;
-}
-
-.floating-window-titlebar .title {
- /* font-weight: bold; */
- flex: 1;
- text-align: center;
- padding: 2px 0;
-}
-
-.floating-window-buttons {
- display: flex;
-}
-
-.floating-window-buttons .button {
- cursor: pointer;
- padding: 0 2px;
-}
-
-.floating-window-buttons .button svg {
- fill: #dcddde;
- margin-top: 1.5px;
-}
-
-.floating-window-buttons .button:hover svg {
- fill: white;
-}
-
-.floating-window-buttons .button:hover {
- background-color: #36393F;
-}
-
-.floating-window-buttons .close-button:hover {
- background-color: #f04747;
-}
-
-.floating-window-buttons .close-button:hover svg path.fill {
- fill: white;
-}
-
-
-
-
-
-.floating-window-content #bd-editor-panel {
- display: flex;
- flex-direction: column;
- flex: 1;
-}
-
-.floating-window-content {
- display: flex;
- flex-direction: column;
-}
-
-.floating-window .editor-wrapper {
- flex: 1;
-}
-
-.floating-window .ace_editor {
- height: auto;
- flex: 1;
-}
-
-.floating-window #bd-editor-controls {
- height: auto;
- background: #202225;
- border: none;
- box-shadow: 0px 1px 0px 0px #2F3129 inset;
-}
-
-
-
-
-
-
-
-
-
-
-
-.bd-addon-controls {
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-.bd-addon-controls .bd-search {
- font-size: 13px;
- margin: 0;
- width: 200px;
-}
-
-.bd-addon-dropdowns {
- display: flex;
-}
-
-.bd-select-wrapper + .bd-select-wrapper {
- margin-left: 10px;
-}
-
-.bd-select-wrapper {
- color: #f6f6f7;
- font-size: 13px;
- display: flex;
- align-items: center;
-}
-
-.bd-select-wrapper label {
- opacity: .3;
- margin-right: 5px;
-}
-
-.bd-select {
- position: relative;
- cursor: pointer;
- color: #f6f6f7;
- font-size: 13px;
- display: flex;
- align-items: center;
- justify-content: space-between;
- background-color: rgba(0, 0, 0, 0.1);
- border: 1px solid rgba(0, 0, 0, 0.3);
- border-radius: 3px;
- padding: 5px 5px 5px 0;
-}
-
-.bd-select.bd-select-transparent {
- background: none;
- border: none;
- padding: 0;
-}
-
-.bd-select-value {
- padding-left: 12px;
-}
-
-.bd-select-arrow {
- margin-left: 10px;
-}
-
-.bd-select .bd-select-options {
- position: absolute;
- background: #2F3136;
- border-radius: 0 0 3px 3px;
- max-height: 300px;
- min-width: calc(100% + 2px);
- overflow-y: auto;
- box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 5px 0px;
- border: 1px solid rgba(0, 0, 0, 0.3);
- border-top: 0;
- margin-top: -1px;
- margin-left: -1px;
- z-index: 2;
- top: 100%;
-}
-
-.bd-select-transparent .bd-select-options {
- border: 1px solid rgba(0, 0, 0, 0.3);
- margin-top: 3px;
- border-radius: 3px;
-}
-
-.bd-select .bd-select-option {
- padding: 8px 12px;
- cursor: pointer;
- white-space: pre;
-}
-
-.bd-select .bd-select-option:hover,
-.bd-select .bd-select-option.selected {
- background: #26272B;
-}
-
-
-
-
-.bd-search-wrapper {
- padding: 3px;
- border-radius: 3px;
- outline: none;
- border: 0;
- background-color: #202225;
- color: #fff;
- display: flex;
- align-items: center;
-}
-
-.bd-search {
- padding: 2px 3px;
- background: none;
- border: 0;
- color: #fff;
- flex: 1;
-}
-
-.bd-search-wrapper > svg {
- margin-right: 2px;
-}
-
-
-.bd-setting-item .bd-select {
- min-width: 200px;
-}
-
-
-
-
-
-.bd-settings-group.expanded .bd-settings-container:not(.animating) {
- overflow: visible;
-}
-
-
-.bd-switch {
-background-color: #72767d;
- border-radius: 14px;
- width: 42px;
- height: 24px;
- opacity: 1;
- overflow: hidden;
- user-select: none;
- position: relative;
- display: block;
- flex: 0 0 auto;
- transition: background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out,opacity .15s ease-in-out;
-margin-left: 10px;
-box-shadow: inset 0 1px 1px rgba(0,0,0,.15);
-}
-
-.bd-switch::before {
- content: "";
- display: block;
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- z-index: 0;
- opacity: 0;
-background-color: #000;
-}
-
-.bd-switch::after {
- content: "";
- display: block;
- position: absolute;
- background-color: #fff;
- z-index: 1;
- width: 18px;
- margin: 3px;
- border-radius: 9px;
- height: 18px;
- left: 0;
- transition: transform .15s ease-in-out,width .1s ease-in-out,left .1s ease-in-out;
- box-shadow: 0 2px 4px rgba(0,0,0,.3);
-}
-
-.bd-switch .bd-checkbox {
- position: absolute;
- width: 100%;
- height: 100%;
- opacity: 0;
- padding: 0;
- margin: 0;
- z-index: 2;
- cursor: pointer;
-}
-
-.bd-switch-checked {
- background-color: #3E82E5;
-}
-
-.bd-switch-checked::after {
- transform: translate3d(18px,0,0);
-}
-
-.bd-switch-disabled {
- opacity: .3;
- cursor: not-allowed;
-}
-
-
-
-
-
-.bd-setting-item {
- display: flex;
- flex-direction: column;
- margin-bottom: 20px;
-}
-
-.bd-setting-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
-}
-
-.bd-setting-header label {
- font-weight: 500;
- cursor: pointer;
- overflow: hidden;
- word-wrap: break-word;
- font-size: 16px;
- line-height: 24px;
- color: #f6f6f7;
-}
-
-.bd-setting-note {
- color: #72767d;
- margin-top: 4px;
- font-size: 14px;
- line-height: 20px;
- font-weight: 500;
-}
-
-.bd-setting-divider {
- width: 100%;
- height: 1px;
- margin-top: 20px;
- background-color: rgba(114,118,125,.3);
-}
-
-.bd-controls + .bd-addon-list {
- margin-top: 10px;
-}
-
-
-.bd-addon-button {
- cursor: pointer;
-}
-
-.bd-addon-button + .bd-addon-button {
- margin-left: 5px;
-}
-
-
-
-
-
-
-/* BEGIN EMOTE STYLING */
-/* =================== */
-#emote-container {
- padding: 10px;
-}
-
-.emote-container {
- display: inline-block;
- padding: 2px;
- border-radius: 5px;
- width: 30px;
- height: 30px;
- position: relative;
-}
-
-.emote-icon {
- max-width: 100%;
- max-height: 100%;
- position: absolute;
- margin: auto;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- cursor: pointer;
-}
-
-.emote.stop-animation {animation: none!important;}
-
-.emote-container:hover {
- background: rgba(123, 123, 123, 0.37);
-}
-
-.emoteflip, .emotespinflip {
- transform: scaleX(-1);
-}
-
-.emotespin {
- animation: 1s emote-spin infinite linear;
-}
-
-.emote1spin {
- animation: 1s emote-spin-reverse infinite linear;
-}
-
-.emotespin2 {
- animation: 0.5s emote-spin infinite linear;
-}
-
-.emote2spin {
- animation: 0.5s emote-spin-reverse infinite linear;
-}
-
-.emotespin3 {
- animation: 0.2s emote-spin infinite linear;
-}
-
-.emote3spin {
- animation: 0.2s emote-spin-reverse infinite linear;
-}
-
-.emotepulse {
- animation: 1s emote-pulse infinite linear;
-}
-
-.emotetr {
- transform: translateX(-3px);
-}
-
-.emotebl {
- transform: translateY(-3px);
-}
-
-.emotebr {
- transform: translate(-3px, -3px);
-}
-
-.emoteshake {
- animation: 1s emote-shake infinite linear;
-}
-
-.emoteflap {
- transform: scaleY(-1) !important;
-}
-
-.emoteshake2 {
- animation: emote-shake2 0.3s linear infinite;
-}
-
-.emoteshake3 {
- animation: emote-shake3 0.1s linear infinite;
-}
-
-@keyframes emote-shake2 {
- 25% {
- transform: translate(-1px, -1px);
- }
- 50% {
- transform: translate(-1px, 1px);
- }
- 75% {
- transform: translate(1px, 1px);
- }
- 75% {
- transform: translate(1px, -1px);
- }
-}
-@keyframes emote-shake3 {
- 25% {
- transform: translate(-1px, -1px);
- }
- 50% {
- transform: translate(-1px, 1px);
- }
- 75% {
- transform: translate(1px, 1px);
- }
- 75% {
- transform: translate(1px, -1px);
- }
-}
-@keyframes emote-spin {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
-}
-@keyframes emote-spin-reverse {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(-360deg);
- }
-}
-@keyframes emote-pulse {
- 0% {
- -webkit-transform: scale(1, 1);
- }
- 50% {
- -webkit-transform: scale(1.2, 1.2);
- }
- 100% {
- -webkit-transform: scale(1, 1);
- }
-}
-@keyframes emote-shake {
- 10%, 90% {
- transform: translate3d(-1px, 0, 0);
- }
- 20%, 80% {
- transform: translate3d(2px, 0, 0);
- }
- 30%, 50%, 70% {
- transform: translate3d(-4px, 0, 0);
- }
- 40%, 60% {
- transform: translate3d(4px, 0, 0);
- }
-}
-/* =================== */
-/* END EMOTE STYLING */
-
-/* BEGIN EMOTE MENU */
-/* ================ */
-
-#removemenu {
- width: auto;
- background: #505050;
- position: absolute;
- z-index: 999999;
- display: none;
- box-shadow: 0 0 2px #000;
- padding: 2px;
- left: 25px;
- display: block !important;
- cursor: pointer;
- color: #FFF;
- position: fixed;
-}
-#removemenu ul a {
- text-decoration: none;
- color: #FFF;
- padding: 3px;
-}
-
-.emotewrapper {
- position: relative;
- display: inline-flex;
- object-fit: contain;
- margin: -.1em .05em -.2em .1em;
- vertical-align: top;
-}
-
-.emotewrapper.jumboable {
- margin-bottom: 0;
- margin-top: .2em;
- vertical-align: -.3em;
-}
-
-.emote {
- height: 1.45em;
-}
-
-.emote.jumboable {
- height: 2rem;
-}
-
-.emotewrapper:hover .fav {
- display: block;
-}
-
-.fav {
- display: none;
- position: absolute;
- width: 15px;
- height: 15px;
- right: -7px;
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=");
- border: none;
- background-size: 100% 100%;
- background-repeat: no-repeat;
- background-color: #303030;
- border-radius: 5px;
- top: -7px;
- cursor: pointer;
-}
-
-.fav.active {
- background-color: yellow;
-}
-
-.emojiPicker-3m1S-j {
- box-shadow: none;
- border-top: none;
- border-radius: 0 0 5px 5px;
-}
-
-#bd-qem {
- border-radius: 5px 5px 0 0;
- background: #FFF;
- border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
- height: 30px;
- display: flex;
- flex-direction: row;
- padding-right: 1px !important;
-}
-#bd-qem button {
- border-left: 1px solid #EFEFEF;
- background: transparent;
- box-shadow: #CECECE 1px 0 0 0;
- flex-grow: 1;
-}
-#bd-qem button:hover {
- background: #ECECEC;
-}
-
-#bd-qem-twitch {
- border-radius: 5px 0 0 0;
- order: 2;
-}
-
-#bd-qem-emojis {
- border-radius: 0 5px 0 0;
- order: 3;
-}
-
-#bd-qem-favourite {
- order: 3;
-}
-
-#bd-qem button.active {
- background-color: #E2E2E2;
-}
-
-#bd-qem-twitch-container, #bd-qem-favourite-container {
- width: 346px;
- height: 329px;
- background-color: #FFF;
- border-radius: 0 0 5px 5px;
-}
-
-#bd-qem-twitch-container .scroller-wrap, #bd-qem-favourite-container .scroller-wrap {
- height: 100%;
-}
-
-.emote-menu-inner {
- padding: 5px 0 0 15px;
-}
-
-.bd-qme-hidden #bd-qem-emojis {
- display: none;
-}
-/* ================ */
-/* END EMOTE MENU */
-
-
-
-
-
-/* BEGIN PUBLIC SERVERS */
-/* ==================== */
-#bd-pub-li {
- height: 20px;
- margin-bottom: 10px;
- overflow: hidden;
-}
-
-#bd-pub-button {
- border-radius: 4px;
- background-color: rgb(47, 49, 54);
- color: #b9bbbe;
- text-align: center;
- font-size: 12px;
- line-height: 20px;
- height: 20px;
-}
-
-.bd-server-card .bd-server-tags {
- flex: 1 1 auto;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- width: 0;
- line-height: 24px;
- font-size: 12px;
- color: #b9bbbe;
- font-weight: 700;
- margin-right: 10px;
-}
-
-/* .ui-card.ui-card-primary.bd-server-card:first-child {
- margin-bottom: 13px;
-}
-
-.ui-card.ui-card-primary.bd-server-card:first-child:after {
- border: 3px solid #7289da;
- content: "";
- display: block;
- position: absolute;
- left: 0;
- right: 0;
- margin-top: 4px;
-} */
-
-.bd-server-card.bd-server-card-pinned {
- margin-bottom: 15px;
-}
-
-.bd-server-card.bd-server-card-pinned:after {
- background: #3a71c1;
- content: "";
- height: 3px;
- width: 100%;
- display: block;
- margin-top: 7px;
- position: absolute;
- top: 100%;
-}
-
-.bd-server-description-container {
- color: #b9bbbe;
- min-height: 65px;
- max-height: 65px;
- border-top: 1px solid #3f4146;
- border-bottom: 1px solid #3f4146;
- padding-top: 5px;
- font-size: 13px;
-}
-
-.bd-server-header {
- justify-content: space-between;
- font-weight: 600;
-}
-
-.bd-server-card {
- display: flex;
-}
-
-.bd-server-content {
- padding: 5px 10px;
- flex: 1;
-}
-
-.bd-server-image {
- min-width: 115px;
- min-height: 115px;
- max-width: 115px;
- max-height: 115px;
-}
-
-.bd-server-name {
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- padding-right: 15px;
- max-width: 330px;
- flex: 1 1 50%;
-}
-
-.bd-layer {
- -ms-flex-direction: column;
- -webkit-box-direction: normal;
- -webkit-box-orient: vertical;
- bottom: 0;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- flex-direction: column;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
-}
-
-/* #pubslayer .ui-tab-bar-item {
- color: #b9bbbe;
- padding-top: 6px;
- padding-bottom: 6px;
- margin-bottom: 2px;
- padding: 6px 10px;
- position: relative;
- font-size: 16px;
- line-height: 20px;
- border-radius: 3px;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- flex-shrink: 0;
- font-weight: 500;
- cursor: pointer;
-}
-
-#pubslayer .ui-tab-bar-item:hover {
- color: #f6f6f7;
- background-color: hsla(216,4%,74%,.1);
-}
-
-#pubslayer .ui-tab-bar-item.selected {
- color: #fff;
- background-color: #7289da;
-}
-
-#pubslayer .ui-tab-bar-header {
- color: #72767d;
- padding: 6px 10px;
- font-size: 12px;
- line-height: 16px;
- text-transform: uppercase;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- flex-shrink: 0;
- font-weight: 500;
-}
-
-#pubslayer #bd-settings-sidebar .ui-tab-bar-separator {
- background-color: hsla(218,5%,47%,.3);
- margin-left: 10px;
- margin-right: 10px;
- height: 1px;
- margin-bottom: 8px;
- margin-top: 8px;
-}
-
-#pubslayer h2.ui-form-title {
- color: #f6f6f7;
- text-transform: uppercase;
- font-weight: 600;
-}
-
-#pubslayer h5.ui-form-title {
- color: #f6f6f7;
-} */
-
-#pubslayer button {
-background: #7289da;
- color: #FFF;
- font-size: 14px;
- font-weight: 500;
- line-height: 16px;
- padding: 2px 16px;
- border: none;
- border-radius: 3px;
- transition: background-color .17s ease;
-}
-
-#pubslayer button:hover {
-background-color: #677bc4;
-}
-
-#pubslayer input {
-color: #f6f6f7;
- background-color: rgba(0,0,0,.1);
- border-color: rgba(0,0,0,.3);
- padding: 10px;
- height: 30px;
- border-width: 1px;
- border-style: solid;
- border-radius: 3px;
- outline: none;
- transition: background-color .15s ease,border .15s ease;
-}
-/* ==================== */
-/* END PUBLIC SERVERS */
-
-
-
-
-
-/* BEGIN CSS EDITOR */
-/* ================ */
-#bd-editor-panel {
- display: flex;
- flex-direction: column;
-}
-
-#bd-editor-controls button {
- margin: 0 5px 0 0;
- background: none;
- color: #FFF;
- height: 26px;
- font-weight: 600;
- border-radius: 3px;
- display: flex;
- align-items: center;
-}
-
-#bd-editor-controls button:hover {
- background: rgba(255,255,255,0.05);
-}
-
-#bd-editor-controls button svg {
- fill: white;
-}
-
-#bd-editor-controls button:last-of-type {
- margin-right: 0;
-}
-
-#bd-editor-controls {
- display: flex;
- align-items: center;
- justify-content: space-between;
- background: #272822;
- color: #FFF;
- border: none;
- box-shadow: 0px 1px 0px 0px #2F3129 inset;
- padding: 5px;
-}
-
-
-.editor-wrapper {
- display: flex;
-}
-
-.ace_editor {
- line-height: normal;
- font-family: Consolas, monospace;
- box-sizing: border-box;
- height: calc(100vh - 250px);
- font-size: 14px;
- width: 100%;
-}
-
-.bd-monokai .editor .ace_gutter {
- background: #2F3136;
-}
-
-.bd-monokai .ace_editor {
- background: #292B2F;
-}
-
-.bd-monokai #bd-editor-controls {
- background: #202225;
-}
-
-.theme-light #bd-editor-controls {
- background: #E8E8E8;
- border: 1px solid #FFF;
- border-top: 1px solid #ADADAD;
- box-shadow: inset 0px 1px 0px 0px white;
-}
-
-.controls-section {
- display: flex;
- align-items: center
-}
-
-.controls-section .checkbox-inner {
- width: 14px;
- height: 14px;
-}
-
-.controls-section .checkbox-inner .checkbox:checked+span::after {
- left: 2px;
- top: -2px;
-}
-
-.controls-section .checkbox-label {
- font-size: 14px;
-}
-
-
-
-
-
-#floating-editor-window {
- min-width: 340px;
- min-height: 280px;
- max-height: 900px;
- max-width: 750px;
-}
-
-.floating-addon-window {
- min-width: 535px;
- min-height: 605px;
- max-height: 90%;
- max-width: 90%;
-}
-
-/* Ace Editor Settings */
-#ace_settingsmenu_container {
- background: rgba(0,0,0, 0.7)!important;
-}
-
-body #ace_settingsmenu {
- padding-top: 35px;
-}
-
-body .ace_closeButton {
- position: absolute;
- top: 8px;
- right: 12px;
- z-index: 10000;
- padding: 0;
- cursor: pointer;
- background: none;
- border: none;
-}
-
-body .ace_closeButton::before {
- content: "✖";
- color: #36393f;
-}
-
-body .ace_closeButton:active {
- transform: translateY(2px);
-}
-
-/* editor help text */
-#bd-editor-controls .help-text {
- margin-top: 8px;
- margin-bottom: 3px;
- font-size: 14px;
-}
-
-#bd-editor-controls .help-text .inline {
- background: #2F3129;
- padding: .2em;
- margin: -.2em 0;
- border-radius: 3px;
-}
-/* ================ */
-/* END CSS EDITOR */
-
-
-
-
-
-/* BEGIN BD SETTINGS */
-/* ================= */
-
-.bd-social-logo {
- opacity: 0.6;
-}
-
-.bd-social-link:hover .bd-social-logo {
- opacity: 1;
-}
-
-.standardSidebarView-3F1I7i .bd-versioninfo-wrapper {
- bottom: 0;
- left: 0;
- position: fixed;
- background: inherit;
- right: 0;
- padding: 5px;
-}
-
-.standardSidebarView-3F1I7i .bd-versioninfo-wrapper span {
- color: #b9bbbe;
- font-weight: 600;
- font-size: 11px;
-}
-
-.standardSidebarView-3F1I7i .bd-versioninfo-wrapper a {
- font-size: 11px;
-}
-
-.bd-button-title {
- margin-left: 10px;
-}
-
-/* #bd-settings-sidebar .ui-tab-bar-item {
- font-size: 16px;
- font-weight: 500;
- line-height: 20px;
- text-overflow: ellipsis;
- white-space: nowrap;
- cursor: pointer;
- flex-shrink: 0;
- padding: 6px 10px;
- border-radius: 3px;
- position: relative;
- overflow: hidden;
-}
-#bd-settings-sidebar .ui-tab-bar-item.selected {
- cursor: default;
-}
-.theme-dark #bd-settings-sidebar .ui-tab-bar-item {
- color: #b9bbbe;
-}
-.theme-dark #bd-settings-sidebar .ui-tab-bar-item:hover {
- background-color: rgba(185,187,190,.1);
- color: #f6f6f7;
-}
-.theme-dark #bd-settings-sidebar .ui-tab-bar-item.selected {
- background-color: #7289da;
- color: #fff;
-}
-.theme-light #bd-settings-sidebar .ui-tab-bar-item {
- color: #72767d;
-}
-.theme-light #bd-settings-sidebar .ui-tab-bar-item:hover {
- background-color: rgba(79,84,92,.1);
- color: #4f545c;
-}
-.theme-light #bd-settings-sidebar .ui-tab-bar-item.selected {
- background-color: #7289da;
- color: #fff;
-}
-
-#bd-settings-sidebar .ui-tab-bar-header {
- font-size: 12px;
- font-weight: 700;
- line-height: 16px;
- text-transform: uppercase;
- text-overflow: ellipsis;
- white-space: nowrap;
- flex-shrink: 0;
- padding: 6px 10px;
- overflow: hidden;
-}
-.theme-dark #bd-settings-sidebar .ui-tab-bar-header {
- color: #72767d;
-}
-.theme-light #bd-settings-sidebar .ui-tab-bar-header {
- color: #b9bbbe;
-}
-
-#bd-settings-sidebar .ui-tab-bar-separator {
- height: 1px;
- margin: 8px 10px;
-}
-.theme-dark #bd-settings-sidebar .ui-tab-bar-separator {
- background-color: rgba(114,118,125,.3);
-}
-.theme-light #bd-settings-sidebar .ui-tab-bar-separator {
- background-color: rgba(185,187,190,.3);
-}
-
-.ui-flex {
- display: flex;
-}
-
-#bd-settingspane-container h2.ui-form-title {
- font-size: 16px;
- font-weight: 600;
- line-height: 20px;
- text-transform: uppercase;
- display: inline-block;
- margin-bottom: 20px;
-}
-.theme-dark #bd-settingspane-container h2.ui-form-title {
- color: #f6f6f7;
-}
-.theme-light #bd-settingspane-container h2.ui-form-title {
- color: #4f545c;
-} */
-
-.bd-switch-item {
- flex-direction: column;
- margin-top: 8px;
-}
-
-.bd-switch-item h3 {
- font-size: 16px;
- font-weight: 500;
- line-height: 24px;
- flex: 1;
-}
-.theme-dark .bd-switch-item h3 {
- color: #f6f6f7;
-}
-.theme-light .bd-switch-item h3 {
- color: #4f545c;
-}
-
-/* .ui-switch-item .style-description {
- font-size: 14px;
- font-weight: 500;
- line-height: 20px;
- margin-bottom: 10px;
- padding-bottom: 10px;
- border-bottom: 1px solid hsla(218,5%,47%,.3);
-}
-.theme-dark .ui-switch-item .style-description {
- color: #72767d;
-}
-.theme-light .ui-switch-item .style-description {
- color: rgba(114,118,125,.6);
-} */
-
-.bd-switch-item .bd-switch-wrapper {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- position: relative;
- width: 44px;
- height: 24px;
- display: block;
- flex: 0 0 auto;
-}
-
-.bd-switch-item .bd-switch-wrapper input {
- position: absolute;
- opacity: 0;
- cursor: pointer;
- width: 100%;
- height: 100%;
- z-index: 1;
-}
-
-.bd-switch-item .bd-switch-wrapper .bd-switch {
- background: #7289da;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: #72767d;
- border-radius: 14px;
- transition: background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out;
-}
-
-.bd-switch-item .bd-switch-wrapper .bd-switch:before {
- content: "";
- display: block;
- width: 18px;
- height: 18px;
- position: absolute;
- top: 3px;
- left: 3px;
- bottom: 3px;
- background: #f6f6f7;
- border-radius: 10px;
- transition: all .15s ease;
- box-shadow: 0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05);
-}
-
-.bd-switch-item .bd-switch-wrapper .bd-switch.checked {
- background: #7289da;
-}
-
-.bd-switch-item .bd-switch-wrapper .bd-switch.checked:before {
- transform: translateX(20px);
-}
-
-#bd-settingspane-container .scroller-wrap {
- height: 100%;
-}
-
-#bd-settingspane-container .scroller-wrap .scroller {
- display: flex;
-}
-/* .content-column .ui-form-title:first-child {
- margin-top: 0;
-} */
-/* ================= */
-/* END BD SETTINGS */
-
-
-
-
-
-/* BEGIN PLUGIN/THEME LIST */
-/* ======================= */
-.bd-reload {
- cursor: pointer;
- vertical-align: top;
- fill: #dcddde;
-}
-
-.bd-reload:hover {
- fill: #fff;
-}
-
-.bd-reload-header {
- margin-left: 5px;
-}
-
-.bd-reload-card {
- margin-right: 5px;
-}
-
-.bd-controls {
- display: flex;
-}
-
-.bd-addon-list {
- user-select: text;
-}
-
-.bd-addon-list .bd-addon-card {
- max-height: 175px;
- margin-bottom: 20px;
- padding: 5px 8px;
- border: 1px solid transparent;
- border-radius: 5px;
- overflow: hidden;
-}
-.theme-dark .bd-addon-list .bd-addon-card {
- background-color: rgba(32,34,37,.6);
- color: #f6f6f7;
- border-color: #202225;
-}
-.theme-light .bd-addon-list .bd-addon-card {
- background-color: #f8f9f9;
- color: #4f545c;
- border-color: #dcddde;
-}
-
-.bd-addon-list .bd-addon-card.settings-open {
- max-height: 800px;
- overflow-y: auto;
-}
-
-.bd-addon-list .bd-addon-header {
- font-size: 12px;
- font-weight: 700;
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding-bottom: 5px;
- border-bottom: 1px solid transparent;
- overflow: hidden;
-}
-.theme-dark .bd-addon-list .bd-addon-header {
- color: #f6f6f7;
- border-bottom-color: rgba(114,118,125,.3);
-}
-.theme-light .bd-addon-list .bd-addon-header {
- color: #4f545c;
- border-bottom-color: rgba(185,187,190,.3);
-}
-
-.bd-addon-list .bd-description {
- word-break: break-word;
- max-height: 100px;
- margin: 5px 0;
- padding: 5px 0;
- overflow-y: auto;
-}
-.theme-dark .bd-addon-list .bd-description {
- color: #b9bbbe;
-}
-.theme-light .bd-addon-list .bd-description {
- color: #72767d;
-}
-
-.bd-addon-list .scroller::-webkit-scrollbar-track-piece,
-.bd-addon-list .scroller::-webkit-scrollbar-thumb {
- border-radius:0 !important;
- border-color:transparent;
-}
-
-.bd-addon-list .bd-footer {
- font-size: 12px;
- font-weight: 700;
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding-top: 5px;
- border-top: 1px solid transparent;
- overflow: hidden;
-}
-.theme-dark .bd-addon-list .bd-footer {
- border-top-color: rgba(114,118,125,.3);
-}
-.theme-light .bd-addon-list .bd-footer {
- border-top-color: rgba(185,187,190,.3);
-}
-
-.bd-addon-list .bd-footer button {
- padding: 3px 16px;
- transition: opacity 250ms ease;
-}
-
-.bd-addon-list .bd-footer button:disabled {
- opacity: 0.4;
-}
-
-.bd-addon-list .bd-footer a {
- color: #3E82E5;
-}
-
-.bd-addon-list .bd-footer a:hover {
- text-decoration: underline;
-}
-/* ======================= */
-/* END PLUGIN/THEME LIST */
-
-
-
-
-/* BEGIN MODALS */
-/* ============ */
-@keyframes bd-backdrop {
- to { opacity: 0.85; }
-}
-
-@keyframes bd-modal-wrapper {
- to { transform: scale(1); opacity: 1; }
-}
-
-@keyframes bd-backdrop-closing {
- to { opacity: 0; }
-}
-
-@keyframes bd-modal-wrapper-closing {
- to { transform: scale(0.7); opacity: 0; }
-}
-
-.bd-backdrop {
- animation: bd-backdrop 250ms ease;
- animation-fill-mode: forwards;
- opacity: 0;
- background-color: rgb(0, 0, 0);
- transform: translateZ(0px);
-}
-
-.bd-modal-wrapper.closing .bd-backdrop {
- animation: bd-backdrop-closing 200ms linear;
- animation-fill-mode: forwards;
- animation-delay: 50ms;
- opacity: 0.85;
-}
-
-.bd-modal-wrapper.closing .bd-modal {
- animation: bd-modal-wrapper-closing 250ms cubic-bezier(0.19, 1, 0.22, 1);
- animation-fill-mode: forwards;
- opacity: 1;
- transform: scale(1);
-}
-
-.bd-modal-wrapper .bd-modal {
- animation: bd-modal-wrapper 250ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
- animation-fill-mode: forwards;
- transform: scale(0.7);
- transform-origin: 50% 50%;
- display: flex;
- align-items: center;
- box-sizing: border-box;
- contain: content;
- justify-content: center;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- opacity: 0;
- pointer-events: none;
- position: absolute;
- z-index: 1000;
-}
-
-.bd-modal-wrapper .bd-modal-inner {
- display: flex;
- contain: layout;
- flex-direction: column;
- pointer-events: auto;
- border: 1px solid rgba(28,36,43,.6);
- border-radius: 5px;
- box-shadow: 0 2px 10px 0 rgba(0,0,0,.2);
- overflow: hidden;
- max-height: 660px;
- min-height: 200px;
- width: 440px;
- user-select: text;
-}
-
-.bd-modal-wrapper .bd-content-modal .bd-modal-inner {
- height: 500px;
- width: 700px;
-}
-
-.bd-modal-wrapper .header {
- background-color: #35393e;
- box-shadow: 0 2px 3px 0 rgba(0,0,0,.2);
- padding: 12px 20px;
- z-index: 1;
- color: #fff;
- font-size: 16px;
- font-weight: 700;
- line-height: 19px;
-}
-
-.bd-modal-wrapper .bd-modal-body {
- background-color: #36393f;
- color: #fff;
- flex-direction: row;
- overflow: hidden;
- display: flex;
- flex-direction: column;
- flex: 1;
- contain: layout;
- position: relative;
-}
-
-.bd-modal-wrapper .scroller {
- padding: 10px;
-}
-
-.bd-modal-wrapper .bd-content-modal .bd-modal-body {
- padding: 0;
-}
-
-.bd-modal-wrapper .scroller {
- overflow-y: auto;
-}
-
-.bd-modal-wrapper .footer {
- display: flex;
- justify-content: flex-end;
- padding: 10px 20px;
-}
-
-.bd-modal-wrapper .footer button {
- min-height: 32px;
- min-width: 60px;
- align-items: center;
- display: flex;
- font-size: 14px;
- font-weight: 500;
- justify-content: center;
- line-height: 16px;
- padding: 2px 16px;
- user-select: none;
-}
-.bd-modal-wrapper .tab-bar-container {
- align-items: center;
- border-bottom: 0;
- background: rgba(0,0,0, 0.2);
- box-shadow: 0 2px 3px 0 rgba(0,0,0,.1);
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- margin-bottom: 15px;
-}
-
-.bd-modal-wrapper .tab-bar.TOP {
- margin: 0;
- border: 0;
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
-}
-
-.bd-modal-wrapper .tab-bar-container .tab-bar-item {
- margin: 0 15px;
- padding: 15px 0;
- color: #fff !important;
- opacity: 0.5;
- transition: opacity 200ms ease;
- border-bottom: 2px solid transparent;
-}
-
-.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover {
- border-color: #fff;
- cursor: pointer;
-}
-
-.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected {
- opacity: 1;
- border-color: #fff;
-}
-
-.bd-modal-wrapper .tab-bar.TOP .tab-bar-item+.tab-bar-item {
- margin: 0;
-}
-
-.bd-modal-wrapper .table-header {
- display: flex;
- justify-content: space-between;
- color: #fff;
- font-weight: 700;
- padding-bottom: 10px;
- margin: 3px 15px 0 15px;
- border-bottom: 1px solid #fff;
- font-size: 14px;
-}
-
-.bd-modal-wrapper .table-column {
- width: 25%;
-}
-
-.bd-modal-wrapper .table-column.column-error {
- width: 50%;
-}
-
-.bd-modal-wrapper .table-column {
- word-wrap: break-word;
-}
-
-.bd-modal-wrapper .errors {
- display: flex;
- flex-direction: column;
- padding: 0;
- font-size: 14px;
- padding: 0 5px;
-}
-
-.bd-modal-wrapper .error {
- display: flex;
- color: #fff;
- border-bottom: 1px solid rgba(255,255,255, 0.25);
- padding: 15px 0;
- align-items: center;
-}
-
-.bd-modal-wrapper .error-link {
- color: #3E82E5;
- font-weight: 500;
-}
-
-.bd-modal-wrapper .bd-content-modal .scroller {
- padding-top: 0;
-}
-/* ============ */
-/* END MODALS */
-
-
-
-/* BEGIN TOASTS */
-/* ============ */
-.bd-toasts {
- position: fixed;
- display: flex;
- top: 0;
- flex-direction: column;
- align-items: center;
- justify-content: flex-end;
- pointer-events: none;
- z-index: 4000;
-}
-
-@keyframes bd-toast-up {
- from {
- transform: translateY(0);
- opacity: 0;
- }
-}
-
-.bd-toast {
- animation: bd-toast-up 300ms ease;
- transform: translateY(-10px);
- background: #36393F;
- padding: 10px;
- border-radius: 5px;
- box-shadow: 0 0 0 1px rgba(32,34,37,.6), 0 2px 10px 0 rgba(0,0,0,.2);
- font-weight: 500;
- color: #fff;
- user-select: text;
- font-size: 14px;
- opacity: 1;
- margin-top: 10px;
- pointer-events: none;
- user-select: none;
-}
-
-@keyframes bd-toast-down {
- to {
- transform: translateY(0px);
- opacity: 0;
- }
-}
-
-.bd-toast.closing {
- animation: bd-toast-down 200ms ease;
- animation-fill-mode: forwards;
- opacity: 1;
- transform: translateY(-10px);
-}
-
-
-.bd-toast.icon {
- padding-left: 30px;
- background-size: 20px 20px;
- background-repeat: no-repeat;
- background-position: 6px 50%;
-}
-
-.bd-toast.toast-info {
- background-color: #4a90e2;
-}
-
-.bd-toast.toast-info.icon {
- background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=);
-}
-
-.bd-toast.toast-success {
- background-color: #43b581;
-}
-
-.bd-toast.toast-success.icon {
- background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=);
-}
-.bd-toast.toast-danger,
-.bd-toast.toast-error {
- background-color: #f04747;
-}
-
-.bd-toast.toast-danger.icon,
-.bd-toast.toast-error.icon {
- background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+);
-}
-
-.bd-toast.toast-warning,
-.bd-toast.toast-warn {
- background-color: #FFA600;
- color: white;
-}
-
-.bd-toast.toast-warning.icon,
-.bd-toast.toast-warn.icon {
- background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==);
-}
-/* ============ */
-/* END TOASTS */
-
-
-
-
-
-
-/* BEGIN MINIMAL MODE */
-/* ================== */
-
-/* Messages */
-/* message divider */
-.bd-minimal .divider-32i8lo {opacity: 0;}
-
-/* message avatars */
-.bd-minimal .large-3ChYtB {
- max-width: 20px;
- max-height: 20px;
- background-size: 100%;
- margin-right: 2px;
- margin-top: 0;
- border-radius: 0;
-}
-
-/* message content */
-.bd-minimal .content-3dzVd8 {
- border-left: 2px solid #EBEBEB;
- padding-left: 2px;
-}
-.bd-minimal .theme-dark .content-3dzVd8 {
- border-left: 2px solid #303030;
-}
-
-/* message username */
-.bd-minimal .username-_4ZSMR {
- font-size: small;
-}
-
-/* message group */
-.bd-minimal .container-1YxwTf {
- padding: 5px;
-}
-
-/* message embed */
-.bd-minimal .embed-IeVjo6 {
- padding: 2px;
-}
-
-/* Member List */
-/* member list wrap */
-.bd-minimal .membersWrap-2h-GB4 {
- min-width: 0px;
-}
-
-/* member list avatars */
-.bd-minimal .members-1998pB .small-5Os1Bb {
- max-width: 15px;
- max-height: 15px;
- background-size: 15px 15px;
-}
-
-/* member list avatars */
-.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE {
- height: 5px;
- width: 5px;
-}
-
-/* member list list item */
-.bd-minimal .members-1998pB .member-3W1lQa {
- padding: 5px;
-}
-
-/* member list item inner */
-.bd-minimal .members-1998pB .memberInner-2CPc3V {
- transform: scale(0.9);
-}
-
-/* member list role label */
-.bd-minimal .members-1998pB .membersGroup-v9BXpm {
- margin-top: 3px;
- transform: scale(0.9);
-}
-
-
-/* Channel List */
-/* Hide Channel Mode */
-.bd-minimal.bd-minimal-chan .channels-Ie2l6A {
- display: none;
-}
-
-/* channel list guild name */
-.bd-minimal .channels-Ie2l6A header span {
- font-size: 12px;
-}
-
-/* channel list */
-.bd-minimal .channels-Ie2l6A {
- width: 160px;
-}
-
-/* channel item */
-.bd-minimal .containerDefault-3GGEv_ {
- transform: scale(0.9);
-}
-
-/* channel name */
-.bd-minimal .content-3at_AU {
- transform: scale(0.9);
-}
-
-/* channel icon */
-.bd-minimal .icon-1_QxNX {
- width: 14px;
- height: 14px;
-}
-
-
-/* Guild List */
-/* guild */
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh {
- width: 20px;
- height: 20px;
- background-size: 100%;
- font-size: 15px;
- line-height: 20px;
- margin: 0 12.5px 8px;
-}
-
-/* guild link and icon */
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .wrapper-25eVIn a,
-.bd-minimal .listItem-2P_4kh .wrapper-25eVIn .icon-27yU2q {
- width: 20px;
- height: 20px;
- background-size: 100%;
- font-size: 15px;
- line-height: 20px;
-}
-
-/* guild inner */
-.bd-minimal .listItem-2P_4kh .wrapper-25eVIn {
- width: 20px;
- height: 20px;
- background-size: 100%;
- font-size: 15px;
- line-height: 20px;
-}
-.bd-minimal .listItem-2P_4kh svg,
-.bd-minimal .listItem-2P_4kh foreignObject[mask] {
- mask: none;
-}
-
-/* home icon */
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .homeIcon-tEMBK1 {
- width: 10px;
- height: 10px;
- background-size: 100%;
- font-size: 15px;
- line-height: 20px;
-}
-
-/* add and search */
-.bd-minimal .circleIconButton-jET_ig {
- height: 20px;
- width: 20px;
-}
-
-.bd-minimal .circleIconButton-jET_ig svg {
- height: 14px;
- width: 14px;
-}
-
-/* friends online */
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .friendsOnline-_wi_fM {
- margin-left: -15px;
- font-size: 7px;
-}
-
-/* public servers button */
-.bd-minimal #bd-pub-li {
- height: 16px;
-}
-.bd-minimal #bd-pub-button {
- font-size: 8px;
- line-height: 16px;
- height: 16px;
-}
-
-/* guild list */
-.bd-minimal .wrapper-1Rf91z,
-.bd-minimal .wrapper-1Rf91z .scrollerWrap-1IAIlv,
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG {
- width: 45px;
-}
-
-/* separator */
-.bd-minimal .wrapper-1Rf91z .guildSeparator-3s64Iy {
- margin-left: -15px;
-}
-
-/* unread icon */
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .listItem-2P_4kh .wrapper-sa6paO {
- height: 20px;
- margin-top: 0px;
- margin-left: -12.5px;
-}
-
-/* audio/video */
-.bd-minimal .wrapper-1Rf91z .scroller-2FKFPG .iconBadge-2wi9r4 {
- width: 12px;
- height: 12px;
- background-size: 12px;
-}
-
-
-/* Account Container */
-/* avatar */
-.bd-minimal .container-2Thooq .avatarSmall-3ACRaI {
- width: 15px;
- height: 15px;
- background-size: 15px 15px;
-}
-
-/* status */
-.bd-minimal .container-2Thooq .avatarSmall-3ACRaI .status-oxiHuE {
- height: 5px;
- width: 5px;
-}
-
-/* username and discrim */
-.bd-minimal .container-2Thooq .accountDetails-3k9g4n {
- transform: scale(0.8);
-}
-
-/* 3 buttons */
-.bd-minimal .container-2Thooq .button-2b6hmh {
- height: 14px;
- width: 14px;
- background-size: 14px 14px;
- margin-left: 3px;
-}
-
-/* 3 buttons icons */
-.bd-minimal .container-2Thooq .button-2b6hmh svg {
- height: 14px;
- width: 14px;
-}
-/* ================== */
-/* END MINIMAL MODE */
-
-
-
-/* BEGIN DARK MODE */
-/* =============== */
-/* Emoji Picker */
-.bd-dark #bd-qem-favourite-container,
-.bd-dark #bd-qem-twitch-container {
- background-color: #353535;
-}
-
-.bd-dark #bd-qem {
- border-bottom: 1px solid #464646 !important;
- background: #353535;
-}
-
-.bd-dark #bd-qem button {
- background: #353535;
- border-left: 1px solid #242424;
- box-shadow: #424242 1px 0 0 0;
- color: #FFF;
-}
-
-.bd-dark #bd-qem button.active {
- background-color: #292929;
-}
-
-.bd-dark #bd-qem button:hover {
- background-color: #303030;
-}
-.bd-dark #bd-qem-favourite-container,
-.bd-dark #bd-qem-twitch-container {
- background-color: #353535;
-}
-
-.bd-dark .emojiPicker-3m1S-j {
- background-color: #353535;
-}
-
-.bd-dark .emojiPicker-3m1S-j .category-2U57w6 {
- background-color: #353535;
-}
-
-.bd-dark .emojiPicker-3m1S-j .header-1nkwgG .searchBar-2pWH0_ {
- background-color: #2B2B2B;
-}
-
-.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input {
- color: #FFF;
-}
-
-.bd-dark .emojiPicker-3m1S-j .searchBar-2pWH0_ input::-webkit-input-placeholder {
- color: #FFF;
-}
-
-.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S {
- background-color: rgba(123, 123, 123, 0.37);
-}
-
-.bd-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ {
- background-color: rgba(62, 62, 62, 0.65);
-}
-
-.bd-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc {
- background: #353535;
- border-color: #202020;
-}
-
-.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar,
-.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track,
-.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-track-piece,
-.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar,
-.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track,
-.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,
-.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,
-.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,
-.bd-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece {
- background-color: #303030 !important;
- border-color: #303030 !important;
-}
-
-.bd-dark #bd-qem-twitch-container .scroller::-webkit-scrollbar-thumb,
-.bd-dark #bd-qem-favourite-container .scroller::-webkit-scrollbar-thumb,
-.bd-dark .emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb {
- border-color: #202020 !important;
- background-color: #202020 !important;
-}
-
-/* add/create server */
-.bd-dark .theme-light .slide-2pHaq5 {
- background: #36393f;
-}
-
-.bd-dark .theme-dark .action-1lSjCi,
-.bd-dark .theme-light .action-1lSjCi {
- background: #2F3136;
-}
-
-/* centered or */
-.bd-dark .theme-dark .or-3THJsp,
-.bd-dark .theme-light .or-3THJsp {
- background: #2F3136;
- order: 2;
- height: 56px;
- width: 56px;
- top: 103px;
- line-height: 56px;
- left: calc(50% - 29px);
- border-radius: 50%;
- border: 2px solid #484B52;
-}
-
-.bd-dark .create-3jownz {
- order: 1;
-}
-
-.bd-dark .join-33Tr-7 {
- order: 3;
-}
-
-.bd-dark .theme-dark .actionIcon-2IISM_,
-.bd-dark .theme-light .actionIcon-2IISM_ {
- filter: grayscale(100%) brightness(60%);
-}
-
-.bd-dark .theme-light .footer-2yfCgX {
- background: #2F3136;
-}
-
-/* Region Select */
-.bd-dark .regionSelectModal-12e-57 {
- background: #36393f;
-}
-
-.bd-dark .regionSelectModal-12e-57 .regionSelectModalOption-2DSIZ3 {
- background: #2F3136;
- border: 2px solid #484B52;
-}
-
-/* Ace Editor Settings */
-.bd-dark ~ div #ace_settingsmenu {
- color: #f6f6f7;
- background: #36393f;
- box-shadow: 0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2);
-}
-
-.bd-dark ~ div #ace_settingsmenu select,
-.bd-dark ~ div #ace_settingsmenu input[type="text"] {
- color: #f6f6f7;
- background: #2F3136;
- border: 1px solid #484B52;
-}
-
-.bd-dark ~ div .ace_closeButton::before {
- color: #f6f6f7;
-}
-
-/* =============== */
-/* END DARK MODE */
-
+/* stylelint-disable no-descending-specificity */
+@import "./builtins/*";
+@import "./ui/*";
+@import "./buttons.css";
.bd-chat-badge {
- vertical-align: bottom;
- line-height: 1.375rem;
- display: inline-block;
- height: 1.25rem;
+ vertical-align: bottom;
+ line-height: 1.375rem;
+ display: inline-block;
+ height: 1.25rem;
}
.bd-member-badge {
- height: 15px;
- margin-left: 4px;
+ height: 15px;
+ margin-left: 4px;
}
-
-.bd-sidebar-header {
- display: flex;
- justify-content: space-between;
-}
-
-.bd-sidebar-header .bd-changelog-button {
- height: 16px;
-}
-
-.bd-sidebar-header .bd-icon {
- cursor: pointer;
- fill: #72767d;
-}
-
-.bd-sidebar-header .bd-icon:hover {
- fill: #fff;
-}
\ No newline at end of file
diff --git a/src/styles/ui/addonlist.css b/src/styles/ui/addonlist.css
new file mode 100644
index 00000000..c89a25e1
--- /dev/null
+++ b/src/styles/ui/addonlist.css
@@ -0,0 +1,194 @@
+.bd-reload {
+ cursor: pointer;
+ vertical-align: top;
+ fill: #dcddde;
+}
+
+.bd-reload:hover {
+ fill: #fff;
+}
+
+.bd-reload-header {
+ margin-left: 5px;
+}
+
+.bd-reload-card {
+ margin-right: 5px;
+}
+
+.bd-controls {
+ display: flex;
+}
+
+.bd-addon-list {
+ user-select: text;
+}
+
+.bd-addon-list .bd-addon-card {
+ max-height: 175px;
+ margin-bottom: 20px;
+ padding: 5px 8px;
+ border: 1px solid transparent;
+ border-radius: 5px;
+ overflow: hidden;
+}
+
+.theme-dark .bd-addon-list .bd-addon-card {
+ background-color: rgba(32, 34, 37, 0.6);
+ color: #f6f6f7;
+ border-color: #202225;
+}
+
+.theme-light .bd-addon-list .bd-addon-card {
+ background-color: #f8f9f9;
+ color: #4f545c;
+ border-color: #dcddde;
+}
+
+.bd-addon-list .bd-addon-card.settings-open {
+ max-height: 800px;
+ overflow-y: auto;
+}
+
+.bd-addon-list .bd-addon-header {
+ font-size: 12px;
+ font-weight: 700;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-bottom: 5px;
+ border-bottom: 1px solid transparent;
+ overflow: hidden;
+}
+
+.theme-dark .bd-addon-list .bd-addon-header {
+ color: #f6f6f7;
+ border-bottom-color: rgba(114, 118, 125, 0.3);
+}
+
+.theme-light .bd-addon-list .bd-addon-header {
+ color: #4f545c;
+ border-bottom-color: rgba(185, 187, 190, 0.3);
+}
+
+.bd-addon-list .bd-description {
+ word-break: break-word;
+ max-height: 100px;
+ margin: 5px 0;
+ padding: 5px 0;
+ overflow-y: auto;
+}
+
+.theme-dark .bd-addon-list .bd-description {
+ color: #b9bbbe;
+}
+
+.theme-light .bd-addon-list .bd-description {
+ color: #72767d;
+}
+
+.bd-addon-list .scroller::-webkit-scrollbar-track-piece,
+.bd-addon-list .scroller::-webkit-scrollbar-thumb {
+ border-radius: 0 !important;
+ border-color: transparent;
+}
+
+.bd-addon-list .bd-footer {
+ font-size: 12px;
+ font-weight: 700;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 5px;
+ border-top: 1px solid transparent;
+ overflow: hidden;
+}
+
+.theme-dark .bd-addon-list .bd-footer {
+ border-top-color: rgba(114, 118, 125, 0.3);
+}
+
+.theme-light .bd-addon-list .bd-footer {
+ border-top-color: rgba(185, 187, 190, 0.3);
+}
+
+.bd-addon-list .bd-footer button {
+ padding: 3px 16px;
+ transition: opacity 250ms ease;
+}
+
+.bd-addon-list .bd-footer button:disabled {
+ opacity: 0.4;
+}
+
+.bd-addon-list .bd-footer a {
+ color: #3e82e5;
+}
+
+.bd-addon-list .bd-footer a:hover {
+ text-decoration: underline;
+}
+
+.bd-controls + .bd-addon-list {
+ margin-top: 10px;
+}
+
+.bd-addon-button {
+ cursor: pointer;
+}
+
+.bd-addon-button + .bd-addon-button {
+ margin-left: 5px;
+}
+
+.bd-search-wrapper {
+ padding: 3px;
+ border-radius: 3px;
+ outline: none;
+ border: 0;
+ background-color: #202225;
+ color: #fff;
+ display: flex;
+ align-items: center;
+}
+
+.bd-search {
+ padding: 2px 3px;
+ background: none;
+ border: 0;
+ color: #fff;
+ flex: 1;
+}
+
+.bd-search-wrapper > svg {
+ margin-right: 2px;
+}
+
+.bd-addon-controls {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.bd-addon-controls .bd-search {
+ font-size: 13px;
+ margin: 0;
+ width: 200px;
+}
+
+.bd-addon-dropdowns {
+ display: flex;
+}
+
+/* Error Boundary stuff */
+.react-error {
+ color: red;
+ font-weight: bold;
+ font-family: Arial, Helvetica, sans-serif;
+ cursor: pointer;
+}
+
+.settings-open .bd-close {
+ cursor: pointer;
+ float: right;
+}
\ No newline at end of file
diff --git a/src/styles/ui/bdsettings.css b/src/styles/ui/bdsettings.css
new file mode 100644
index 00000000..13c9d86b
--- /dev/null
+++ b/src/styles/ui/bdsettings.css
@@ -0,0 +1,469 @@
+.bd-social-logo {
+ opacity: 0.6;
+}
+
+.bd-social-link:hover .bd-social-logo {
+ opacity: 1;
+}
+
+.standardSidebarView-3F1I7i .bd-versioninfo-wrapper {
+ bottom: 0;
+ left: 0;
+ position: fixed;
+ background: inherit;
+ right: 0;
+ padding: 5px;
+}
+
+.standardSidebarView-3F1I7i .bd-versioninfo-wrapper span {
+ color: #b9bbbe;
+ font-weight: 600;
+ font-size: 11px;
+}
+
+.standardSidebarView-3F1I7i .bd-versioninfo-wrapper a {
+ font-size: 11px;
+}
+
+.bd-button-title {
+ margin-left: 10px;
+}
+
+/* #bd-settings-sidebar .ui-tab-bar-item {
+ font-size: 16px;
+ font-weight: 500;
+ line-height: 20px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ cursor: pointer;
+ flex-shrink: 0;
+ padding: 6px 10px;
+ border-radius: 3px;
+ position: relative;
+ overflow: hidden;
+}
+#bd-settings-sidebar .ui-tab-bar-item.selected {
+ cursor: default;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-item {
+ color: #b9bbbe;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-item:hover {
+ background-color: rgba(185,187,190,.1);
+ color: #f6f6f7;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-item.selected {
+ background-color: #7289da;
+ color: #fff;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-item {
+ color: #72767d;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-item:hover {
+ background-color: rgba(79,84,92,.1);
+ color: #4f545c;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-item.selected {
+ background-color: #7289da;
+ color: #fff;
+}
+
+#bd-settings-sidebar .ui-tab-bar-header {
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 16px;
+ text-transform: uppercase;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex-shrink: 0;
+ padding: 6px 10px;
+ overflow: hidden;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-header {
+ color: #72767d;
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-header {
+ color: #b9bbbe;
+}
+
+#bd-settings-sidebar .ui-tab-bar-separator {
+ height: 1px;
+ margin: 8px 10px;
+}
+.theme-dark #bd-settings-sidebar .ui-tab-bar-separator {
+ background-color: rgba(114,118,125,.3);
+}
+.theme-light #bd-settings-sidebar .ui-tab-bar-separator {
+ background-color: rgba(185,187,190,.3);
+}
+
+.ui-flex {
+ display: flex;
+}
+
+#bd-settingspane-container h2.ui-form-title {
+ font-size: 16px;
+ font-weight: 600;
+ line-height: 20px;
+ text-transform: uppercase;
+ display: inline-block;
+ margin-bottom: 20px;
+}
+.theme-dark #bd-settingspane-container h2.ui-form-title {
+ color: #f6f6f7;
+}
+.theme-light #bd-settingspane-container h2.ui-form-title {
+ color: #4f545c;
+} */
+
+.bd-switch {
+ background-color: #72767d;
+ border-radius: 14px;
+ width: 42px;
+ height: 24px;
+ opacity: 1;
+ overflow: hidden;
+ user-select: none;
+ position: relative;
+ display: block;
+ flex: 0 0 auto;
+ transition: background 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border 0.15s ease-in-out, opacity 0.15s ease-in-out;
+ margin-left: 10px;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.bd-switch::before {
+ content: "";
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 0;
+ opacity: 0;
+ background-color: #000;
+}
+
+.bd-switch::after {
+ content: "";
+ display: block;
+ position: absolute;
+ background-color: #fff;
+ z-index: 1;
+ width: 18px;
+ margin: 3px;
+ border-radius: 9px;
+ height: 18px;
+ left: 0;
+ transition: transform 0.15s ease-in-out, width 0.1s ease-in-out, left 0.1s ease-in-out;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
+}
+
+.bd-switch .bd-checkbox {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ padding: 0;
+ margin: 0;
+ z-index: 2;
+ cursor: pointer;
+}
+
+.bd-switch-checked {
+ background-color: #3e82e5;
+}
+
+.bd-switch-checked::after {
+ transform: translate3d(18px, 0, 0);
+}
+
+.bd-switch-disabled {
+ opacity: 0.3;
+ cursor: not-allowed;
+}
+
+.bd-switch-item {
+ flex-direction: column;
+ margin-top: 8px;
+}
+
+.bd-switch-item h3 {
+ font-size: 16px;
+ font-weight: 500;
+ line-height: 24px;
+ flex: 1;
+}
+
+.theme-dark .bd-switch-item h3 {
+ color: #f6f6f7;
+}
+
+.theme-light .bd-switch-item h3 {
+ color: #4f545c;
+}
+
+/* .ui-switch-item .style-description {
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ margin-bottom: 10px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid hsla(218,5%,47%,.3);
+}
+.theme-dark .ui-switch-item .style-description {
+ color: #72767d;
+}
+.theme-light .ui-switch-item .style-description {
+ color: rgba(114,118,125,.6);
+} */
+
+.bd-switch-item .bd-switch-wrapper {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ position: relative;
+ width: 44px;
+ height: 24px;
+ display: block;
+ flex: 0 0 auto;
+}
+
+.bd-switch-item .bd-switch-wrapper input {
+ position: absolute;
+ opacity: 0;
+ cursor: pointer;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: #72767d;
+ border-radius: 14px;
+ transition: background 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch::before {
+ content: "";
+ display: block;
+ width: 18px;
+ height: 18px;
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ bottom: 3px;
+ background: #f6f6f7;
+ border-radius: 10px;
+ transition: all 0.15s ease;
+ box-shadow: 0 3px 1px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 3px 3px 0 rgba(0, 0, 0, 0.05);
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch.checked {
+ background: #7289da;
+}
+
+.bd-switch-item .bd-switch-wrapper .bd-switch.checked::before {
+ transform: translateX(20px);
+}
+
+#bd-settingspane-container .scroller-wrap {
+ height: 100%;
+}
+
+#bd-settingspane-container .scroller-wrap .scroller {
+ display: flex;
+}
+
+.bd-select-wrapper {
+ color: #f6f6f7;
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+}
+
+.bd-select-wrapper + .bd-select-wrapper {
+ margin-left: 10px;
+}
+
+.bd-select-wrapper label {
+ opacity: 0.3;
+ margin-right: 5px;
+}
+
+.bd-select {
+ position: relative;
+ cursor: pointer;
+ color: #f6f6f7;
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background-color: rgba(0, 0, 0, 0.1);
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ border-radius: 3px;
+ padding: 5px 5px 5px 0;
+}
+
+.bd-select.bd-select-transparent {
+ background: none;
+ border: none;
+ padding: 0;
+}
+
+.bd-select-value {
+ padding-left: 12px;
+}
+
+.bd-select-arrow {
+ margin-left: 10px;
+}
+
+.bd-select .bd-select-options {
+ position: absolute;
+ background: #2f3136;
+ border-radius: 0 0 3px 3px;
+ max-height: 300px;
+ min-width: calc(100% + 2px);
+ overflow-y: auto;
+ box-shadow: rgba(0, 0, 0, 0.3) 0 1px 5px 0;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ border-top: 0;
+ margin-top: -1px;
+ margin-left: -1px;
+ z-index: 2;
+ top: 100%;
+}
+
+.bd-select-transparent .bd-select-options {
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ margin-top: 3px;
+ border-radius: 3px;
+}
+
+.bd-select .bd-select-option {
+ padding: 8px 12px;
+ cursor: pointer;
+ white-space: pre;
+}
+
+.bd-select .bd-select-option:hover,
+.bd-select .bd-select-option.selected {
+ background: #26272b;
+}
+
+.bd-setting-item .bd-select {
+ min-width: 200px;
+}
+
+.bd-setting-item {
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 20px;
+}
+
+.bd-setting-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.bd-setting-header label {
+ font-weight: 500;
+ cursor: pointer;
+ overflow: hidden;
+ word-wrap: break-word;
+ font-size: 16px;
+ line-height: 24px;
+ color: #f6f6f7;
+}
+
+.bd-setting-note {
+ color: #72767d;
+ margin-top: 4px;
+ font-size: 14px;
+ line-height: 20px;
+ font-weight: 500;
+}
+
+.bd-setting-divider {
+ width: 100%;
+ height: 1px;
+ margin-top: 20px;
+ background-color: rgba(114, 118, 125, 0.3);
+}
+
+.bd-settings-container {
+ height: auto;
+ overflow: hidden;
+ transition: height 300ms cubic-bezier(0.47, 0, 0.745, 0.715);
+}
+
+.bd-settings-group.collapsed .bd-settings-container {
+ height: 0;
+}
+
+.bd-settings-group.expanded .bd-settings-container:not(.animating) {
+ overflow: visible;
+}
+
+.bd-settings-group.collapsible .bd-settings-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ order: 1;
+}
+
+.bd-settings-group.collapsible .bd-settings-title::before {
+ content: "";
+ background-color: rgba(114, 118, 125, 0.3);
+ height: 2px;
+ order: 2;
+ flex: 1;
+ margin: 0 10px 0 15px;
+}
+
+.bd-settings-group.collapsible .bd-settings-title::after {
+ content: "";
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSItOTUwIDUzMiAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAtOTUwIDUzMiAxOCAxODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6bm9uZTt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjEuNTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS05MzIsNTMydjE4aC0xOHYtMThILTkzMnoiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ii05MzYuNiw1MzguOCAtOTQxLDU0My4yIC05NDUuNCw1MzguOCAiLz4NCjwvc3ZnPg0K");
+ height: 20px;
+ width: 20px;
+ display: inline-block;
+ vertical-align: bottom;
+ transition: transform 0.3s ease;
+ transform: rotate(0);
+ order: 3;
+}
+
+.bd-settings-group.collapsed .bd-settings-title::after {
+ transition: transform 0.3s ease;
+ transform: rotate(90deg);
+}
+
+.bd-settings-group ~ .bd-settings-group .bd-settings-title {
+ margin-top: 30px;
+ transition: margin-top 300ms ease;
+}
+
+.bd-settings-group.collapsed + .bd-settings-group .bd-settings-title {
+ margin-top: 0;
+}
+
+.bd-settings-title.bd-settings-group-title {
+ margin-bottom: 10px;
+}
+
+.checkbox-item {
+ display: flex;
+}
+
+.checkbox-item .checkbox-label {
+ margin-right: 8px;
+}
\ No newline at end of file
diff --git a/src/styles/ui/floatingwindow.css b/src/styles/ui/floatingwindow.css
new file mode 100644
index 00000000..65affc06
--- /dev/null
+++ b/src/styles/ui/floatingwindow.css
@@ -0,0 +1,124 @@
+@keyframes open-window {
+ from {
+ transform: scale(0.9);
+ }
+
+ to {
+ transform: none;
+ }
+}
+
+.floating-window {
+ animation: open-window 200ms ease;
+ min-width: 200px;
+ min-height: 300px;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+ display: flex;
+ flex-direction: column;
+ -webkit-app-region: no-drag;
+ position: fixed;
+ z-index: 1001;
+ box-sizing: border-box;
+}
+
+.floating-window.modal-open {
+ z-index: 999;
+}
+
+.floating-window.resizable {
+ overflow: auto;
+ resize: both;
+ padding-bottom: 10px;
+ background: #202225;
+}
+
+.floating-window-titlebar {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background: #202225; /* #2F3129background-color: #202225; */
+ color: white;
+ border-bottom: 1px solid #272822;
+}
+
+.floating-window-content {
+ display: flex;
+ flex-direction: column;
+ background: #2f3129;
+ color: white;
+ flex: 1;
+}
+
+.floating-window-titlebar .title {
+ /* font-weight: bold; */
+ flex: 1;
+ text-align: center;
+ padding: 2px 0;
+}
+
+.floating-window-buttons {
+ display: flex;
+}
+
+.floating-window-buttons .button {
+ cursor: pointer;
+ padding: 0 2px;
+}
+
+.floating-window-buttons .button svg {
+ fill: #dcddde;
+ margin-top: 1.5px;
+}
+
+.floating-window-buttons .button:hover svg {
+ fill: white;
+}
+
+.floating-window-buttons .button:hover {
+ background-color: #36393f;
+}
+
+.floating-window-buttons .close-button:hover {
+ background-color: #f04747;
+}
+
+.floating-window-buttons .close-button:hover svg path.fill {
+ fill: white;
+}
+
+.floating-window-content #bd-editor-panel {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+}
+
+.floating-window .editor-wrapper {
+ flex: 1;
+}
+
+.floating-window .ace_editor {
+ height: auto;
+ flex: 1;
+}
+
+.floating-window #bd-editor-controls {
+ height: auto;
+ background: #202225;
+ border: none;
+ box-shadow: 0 1px 0 0 #2f3129 inset;
+}
+
+#floating-editor-window {
+ min-width: 340px;
+ min-height: 280px;
+ max-height: 900px;
+ max-width: 750px;
+}
+
+.floating-addon-window {
+ min-width: 535px;
+ min-height: 605px;
+ max-height: 90%;
+ max-width: 90%;
+}
\ No newline at end of file
diff --git a/src/styles/ui/modals.css b/src/styles/ui/modals.css
new file mode 100644
index 00000000..60691e84
--- /dev/null
+++ b/src/styles/ui/modals.css
@@ -0,0 +1,224 @@
+@keyframes bd-backdrop {
+ to {
+ opacity: 0.85;
+ }
+}
+
+@keyframes bd-modal-wrapper {
+ to {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes bd-backdrop-closing {
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes bd-modal-wrapper-closing {
+ to {
+ transform: scale(0.7);
+ opacity: 0;
+ }
+}
+
+.bd-backdrop {
+ animation: bd-backdrop 250ms ease;
+ animation-fill-mode: forwards;
+ opacity: 0;
+ background-color: rgb(0, 0, 0);
+ transform: translateZ(0);
+}
+
+.bd-modal-wrapper.closing .bd-backdrop {
+ animation: bd-backdrop-closing 200ms linear;
+ animation-fill-mode: forwards;
+ animation-delay: 50ms;
+ opacity: 0.85;
+}
+
+.bd-modal-wrapper .bd-modal {
+ animation: bd-modal-wrapper 250ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ animation-fill-mode: forwards;
+ transform: scale(0.7);
+ transform-origin: 50% 50%;
+ display: flex;
+ align-items: center;
+ box-sizing: border-box;
+ contain: content;
+ justify-content: center;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ opacity: 0;
+ pointer-events: none;
+ position: absolute;
+ z-index: 1000;
+}
+
+.bd-modal-wrapper.closing .bd-modal {
+ animation: bd-modal-wrapper-closing 250ms cubic-bezier(0.19, 1, 0.22, 1);
+ animation-fill-mode: forwards;
+ opacity: 1;
+ transform: scale(1);
+}
+
+.bd-modal-wrapper .bd-modal-inner {
+ display: flex;
+ contain: layout;
+ flex-direction: column;
+ pointer-events: auto;
+ border: 1px solid rgba(28, 36, 43, 0.6);
+ border-radius: 5px;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+ overflow: hidden;
+ max-height: 660px;
+ min-height: 200px;
+ width: 440px;
+ user-select: text;
+}
+
+.bd-modal-wrapper .bd-content-modal .bd-modal-inner {
+ height: 500px;
+ width: 700px;
+}
+
+.bd-modal-wrapper .header {
+ background-color: #35393e;
+ box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.2);
+ padding: 12px 20px;
+ z-index: 1;
+ color: #fff;
+ font-size: 16px;
+ font-weight: 700;
+ line-height: 19px;
+}
+
+.bd-modal-wrapper .bd-modal-body {
+ background-color: #36393f;
+ color: #fff;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ contain: layout;
+ position: relative;
+}
+
+.bd-modal-wrapper .scroller {
+ padding: 10px;
+ overflow-y: auto;
+}
+
+.bd-modal-wrapper .bd-content-modal .bd-modal-body {
+ padding: 0;
+}
+
+.bd-modal-wrapper .footer {
+ display: flex;
+ justify-content: flex-end;
+ padding: 10px 20px;
+}
+
+.bd-modal-wrapper .footer button {
+ min-height: 32px;
+ min-width: 60px;
+ align-items: center;
+ display: flex;
+ font-size: 14px;
+ font-weight: 500;
+ justify-content: center;
+ line-height: 16px;
+ padding: 2px 16px;
+ user-select: none;
+}
+
+.bd-modal-wrapper .tab-bar-container {
+ align-items: center;
+ border-bottom: 0;
+ background: rgba(0, 0, 0, 0.2);
+ box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.1);
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ margin-bottom: 15px;
+}
+
+.bd-modal-wrapper .tab-bar.TOP {
+ margin: 0;
+ border: 0;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.bd-modal-wrapper .tab-bar-container .tab-bar-item {
+ margin: 0 15px;
+ padding: 15px 0;
+ color: #fff;
+ opacity: 0.5;
+ transition: opacity 200ms ease;
+ border-bottom: 2px solid transparent;
+}
+
+.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover {
+ border-color: #fff;
+ cursor: pointer;
+}
+
+.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected {
+ opacity: 1;
+ border-color: #fff;
+}
+
+.bd-modal-wrapper .tab-bar.TOP .tab-bar-item + .tab-bar-item {
+ margin: 0;
+}
+
+.bd-modal-wrapper .table-header {
+ display: flex;
+ justify-content: space-between;
+ color: #fff;
+ font-weight: 700;
+ padding-bottom: 10px;
+ margin: 3px 15px 0 15px;
+ border-bottom: 1px solid #fff;
+ font-size: 14px;
+}
+
+.bd-modal-wrapper .table-column {
+ width: 25%;
+ word-wrap: break-word;
+}
+
+.bd-modal-wrapper .table-column.column-error {
+ width: 50%;
+}
+
+.bd-modal-wrapper .errors {
+ display: flex;
+ flex-direction: column;
+ font-size: 14px;
+ padding: 0 5px;
+}
+
+.bd-modal-wrapper .error {
+ display: flex;
+ color: #fff;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.25);
+ padding: 15px 0;
+ align-items: center;
+}
+
+.bd-modal-wrapper .error-link {
+ color: #3e82e5;
+ font-weight: 500;
+}
+
+.bd-modal-wrapper .bd-content-modal .scroller {
+ padding-top: 0;
+}
\ No newline at end of file
diff --git a/src/styles/ui/sidebar.css b/src/styles/ui/sidebar.css
new file mode 100644
index 00000000..2eb58e2d
--- /dev/null
+++ b/src/styles/ui/sidebar.css
@@ -0,0 +1,17 @@
+.bd-sidebar-header {
+ display: flex;
+ justify-content: space-between;
+}
+
+.bd-sidebar-header .bd-changelog-button {
+ height: 16px;
+}
+
+.bd-sidebar-header .bd-icon {
+ cursor: pointer;
+ fill: #72767d;
+}
+
+.bd-sidebar-header .bd-icon:hover {
+ fill: #fff;
+}
diff --git a/src/styles/ui/toasts.css b/src/styles/ui/toasts.css
new file mode 100644
index 00000000..70372bb6
--- /dev/null
+++ b/src/styles/ui/toasts.css
@@ -0,0 +1,91 @@
+.bd-toasts {
+ position: fixed;
+ display: flex;
+ top: 0;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-end;
+ pointer-events: none;
+ z-index: 4000;
+}
+
+@keyframes bd-toast-up {
+ from {
+ transform: translateY(0);
+ opacity: 0;
+ }
+}
+
+.bd-toast {
+ animation: bd-toast-up 300ms ease;
+ transform: translateY(-10px);
+ background: #36393f;
+ padding: 10px;
+ border-radius: 5px;
+ box-shadow: 0 0 0 1px rgba(32, 34, 37, 0.6), 0 2px 10px 0 rgba(0, 0, 0, 0.2);
+ font-weight: 500;
+ color: #fff;
+ font-size: 14px;
+ opacity: 1;
+ margin-top: 10px;
+ pointer-events: none;
+ user-select: none;
+}
+
+@keyframes bd-toast-down {
+ to {
+ transform: translateY(0);
+ opacity: 0;
+ }
+}
+
+.bd-toast.closing {
+ animation: bd-toast-down 200ms ease;
+ animation-fill-mode: forwards;
+ opacity: 1;
+ transform: translateY(-10px);
+}
+
+.bd-toast.icon {
+ padding-left: 30px;
+ background-size: 20px 20px;
+ background-repeat: no-repeat;
+ background-position: 6px 50%;
+}
+
+.bd-toast.toast-info {
+ background-color: #4a90e2;
+}
+
+.bd-toast.toast-info.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=");
+}
+
+.bd-toast.toast-success {
+ background-color: #43b581;
+}
+
+.bd-toast.toast-success.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=");
+}
+
+.bd-toast.toast-danger,
+.bd-toast.toast-error {
+ background-color: #f04747;
+}
+
+.bd-toast.toast-danger.icon,
+.bd-toast.toast-error.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+");
+}
+
+.bd-toast.toast-warning,
+.bd-toast.toast-warn {
+ background-color: #ffa600;
+ color: white;
+}
+
+.bd-toast.toast-warning.icon,
+.bd-toast.toast-warn.icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==");
+}
\ No newline at end of file
diff --git a/src/ui/errorboundary.jsx b/src/ui/errorboundary.jsx
index 6f20fe5a..fee9e3fa 100644
--- a/src/ui/errorboundary.jsx
+++ b/src/ui/errorboundary.jsx
@@ -6,7 +6,7 @@ export default class ErrorBoundary extends React.Component {
this.state = {hasError: false};
}
- componentDidCatch(error, errorInfo) {
+ componentDidCatch() {
this.setState({hasError: true});
}
diff --git a/webpack.config.js b/webpack.config.js
index 5fbff39d..0de68013 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -8,10 +8,7 @@ module.exports = {
entry: "./src/index.js",
output: {
filename: "index.js",
- path: path.resolve(__dirname, "dist"),
- library: "Core",
- libraryTarget: "var",
- libraryExport: "default"
+ path: path.resolve(__dirname, "dist")
},
externals: {
electron: `require("electron")`,
@@ -51,7 +48,7 @@ module.exports = {
plugins: [
new CircularDependencyPlugin({
// exclude detection of files based on a RegExp
- exclude: /a\.js|node_modules/,
+ exclude: /node_modules/,
// add errors to webpack instead of warnings
// failOnError: true,
// set the current working directory for displaying module paths