');for(const n of e){const e=$(`
\n
${n.name?n.name:n.file}
\n
${n.message}
\n
\n
`);t.append(e),n.error&&e.find("a").on("click",e=>{e.preventDefault(),x.err("ContentManager",`Error details for ${n.name?n.name:n.file}.`,n.error)})}return t}const o=[s(e),s(t)];n.find(".tab-bar-item").on("click",e=>{e.preventDefault(),n.find(".tab-bar-item").removeClass("selected"),$(e.target).addClass("selected"),n.find(".scroller").empty().append(o[$(e.target).index()])}),n.find(".footer button").on("click",()=>{n.addClass("closing"),setTimeout(()=>{n.remove()},300)}),n.find(".bd-backdrop").on("click",()=>{n.addClass("closing"),setTimeout(()=>{n.remove()},300)}),n.appendTo("#app-mount"),e.length?n.find(".tab-bar-item")[0].click():n.find(".tab-bar-item")[1].click()}}const N=n(3);var P=new class extends N{dispatch(e,...t){this.emit(e,...t)}off(e,t){this.removeListener(e,t)}};function T(){}T.prototype.loadPlugins=function(){this.loadPluginData(),d.concat(q.loadPlugins());const e=Object.keys(w);for(let t=0;t
t.filename==e).plugin;try{n.load&&"function"==typeof n.load&&n.load()}catch(e){l["fork-ps-1"]&&x.showContentErrors({plugins:[e]})}x.log("ContentManager",`${n.getName()} v${n.getVersion()} was loaded.`),l["fork-ps-2"]&&x.showToast(`${n.getName()} v${n.getVersion()} was loaded.`,{type:"success"}),P.dispatch("plugin-loaded",n.getName())},T.prototype.unloadPlugin=function(e){const t=Object.values(w).find(t=>t.filename==e)||w[e];if(!t)return;const n=t.plugin.getName();E[n]&&this.disablePlugin(n,!0);const s=q.unloadContent(w[n].filename,"plugin");if(delete w[n],s)return l["fork-ps-1"]&&x.showContentErrors({plugins:[s]}),l["fork-ps-2"]&&x.showToast(`${n} could not be unloaded. It may have not been loaded yet.`,{type:"error"}),x.err("ContentManager",`${n} could not be unloaded. It may have not been loaded yet.`,s);x.log("ContentManager",`${n} was unloaded.`),l["fork-ps-2"]&&x.showToast(`${n} was unloaded.`,{type:"success"}),P.dispatch("plugin-unloaded",n)},T.prototype.delete=function(e){const t=Object.values(w).find(t=>t.filename==e)||w[e];if(!t)return;this.unloadPlugin(t.filename);const s=n(2).resolve(q.pluginsFolder,t.filename);n(1).unlinkSync(s)},T.prototype.reloadPlugin=function(e){const t=Object.values(w).find(t=>t.filename==e)||w[e];if(!t)return this.loadPlugin(e);const n=t.plugin.getName(),s=E[n];s&&this.stopPlugin(n,!0);const o=q.reloadContent(w[n].filename,"plugin");if(o)return l["fork-ps-1"]&&x.showContentErrors({plugins:[o]}),l["fork-ps-2"]&&x.showToast(`${n} could not be reloaded.`,{type:"error"}),x.err("ContentManager",`${n} could not be reloaded.`,o);w[n].plugin.load&&"function"==typeof w[n].plugin.load&&w[n].plugin.load(),s&&this.startPlugin(n,!0),x.log("ContentManager",`${n} v${w[n].plugin.getVersion()} was reloaded.`),l["fork-ps-2"]&&x.showToast(`${n} v${w[n].plugin.getVersion()} was reloaded.`,{type:"success"}),P.dispatch("plugin-reloaded",n)},T.prototype.reload=function(e){return this.reloadPlugin(e)},T.prototype.edit=function(e){console.log("Edit "+e);const t=Object.values(w).find(t=>t.filename==e)||w[e];if(!t)return;const s=n(2).resolve(q.pluginsFolder,t.filename);console.log("Edit "+s),n(0).shell.openItem(`${s}`)},T.prototype.updatePluginList=function(){const e=q.loadNewContent("plugin");for(const t of e.added)this.loadPlugin(t);for(const t of e.removed)this.unloadPlugin(t)},T.prototype.loadPluginData=function(){const e=H.getSettingGroup("plugins");e&&Object.assign(E,e)},T.prototype.savePluginData=function(){H.setSettingGroup("plugins",E)},T.prototype.newMessage=function(){const e=Object.keys(w);for(let t=0;t",{id:n.id,text:unescape(n.css)}))}for(const e in S)k[e]||delete S[e];this.saveThemeData()},M.prototype.enableTheme=function(e,t=!1){S[e]=!0,this.saveThemeData();const n=k[e];$("head").append($("'),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){H.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}}class Ve extends U.reactComponent{constructor(e){super(e);this.props.lines=0,this.setInitialState(),this.attach=this.attach.bind(this),this.detachedEditor=U.react.createElement(Ue,{attach:this.attach}),this.onClick=this.onClick.bind(this),this.updateCss=this.updateCss.bind(this),this.saveCss=this.saveCss.bind(this),this.detach=this.detach.bind(this)}setInitialState(){this.state={detached:this.props.detached||U.editorDetached}}componentDidMount(){this.editor=ace.edit("bd-customcss-editor"),this.editor.setTheme("ace/theme/monokai"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{l["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){this.editor.destroy()}componentDidUpdate(e,t){const n=this;t.detached&&!n.state.detached&&U.reactDom.unmountComponentAtNode(n.detachedRoot)}codeMirror(){}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=H.getBDData("bdcustomcss");let t="";return e&&""!==e&&(t=atob(e)),t}updateLineCount(){const e=this.refs.editor.value.split("\n").length;e!=this.props.lines&&(this.refs.lines.textContent=Array.from(new Array(e),(e,t)=>t+1).join(".\n")+".",this.props.lines=e)}render(){const e=this,{detached:t}=e.state;return U.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default",style:{padding:"60px 40px 0px"}},t&&U.react.createElement("div",{id:"editor-detached"},U.react.createElement(fe,{text:"Custom CSS Editor"}),U.react.createElement("h3",null,"Editor Detached"),U.react.createElement("button",{className:"btn btn-primary",onClick:()=>{e.attach()}},"Attach")),!t&&U.react.createElement("div",null,U.react.createElement(fe,{text:"Custom CSS Editor"}),U.react.createElement("div",{className:"editor-wrapper"},U.react.createElement("div",{id:"bd-customcss-editor",className:"editor",ref:"editor"},e.css)),U.react.createElement("div",{id:"bd-customcss-attach-controls"},U.react.createElement("ul",{className:"checkbox-group"},U.react.createElement(He,{id:"live-update",text:"Live Update",onChange:this.onChange,checked:l["bda-css-0"]})),U.react.createElement("div",{id:"bd-customcss-detach-controls-button"},U.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),U.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),U.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("detach")}},"Detach"),U.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on detach"),U.react.createElement("div",{className:"help-text"},"Press ",U.react.createElement("code",{className:"inline"},"ctrl"),"+",U.react.createElement("span",{className:"inline"},",")," with the editor focused to access the editor's settings.")))))}onClick(e){const t=this;switch(e){case"update":t.updateCss();break;case"save":t.saveCss();break;case"detach":t.detach()}}onChange(e,t){switch(e){case"live-update":l["bda-css-0"]=t,mt.saveSettings()}}updateCss(){0==$("#customcss").length&&$("head").append(''),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){H.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}detach(){this.setState({detached:!0});const e=this.detachedRoot;e?U.reactDom.render(this.detachedEditor,e):console.log("FAILED TO INJECT ROOT: .app")}get detachedRoot(){const e=$("#bd-customcss-detach-container");return e.length?e[0]:this.injectDetachedRoot()?this.detachedRoot:null}injectDetachedRoot(){return!!$(".app, .app-2rEoOp").length&&($("",{id:"bd-customcss-detach-container"}).insertAfter($(".app, .app-2rEoOp")),!0)}attach(){this.setState({detached:!1})}}class Je extends U.reactComponent{constructor(e){super(e)}static get displayName(){return"ContentColumn"}render(){return U.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default"},U.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.title),this.props.children)}}class Ze extends U.reactComponent{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?U.react.createElement("div",{className:"react-error"},"Component Error"):this.props.children}}const Qe=U.React;class Ye extends Qe.Component{render(){const e=this.props.size||"24px";return Qe.createElement("svg",{viewBox:"0 0 24 24",fill:"#FFFFFF",style:{width:e,height:e},onClick:this.props.onClick},Qe.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"}),Qe.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}}const Ke=U.React;class Xe extends Ke.Component{render(){const e=this.props.size||"24px";return Ke.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},Ke.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Ke.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"}),Ke.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}const et=U.React;class tt extends U.reactComponent{constructor(e){super(e),this.onChange=this.onChange.bind(this),this.showSettings=this.showSettings.bind(this),this.setInitialState(),this.hasSettings="function"==typeof this.props.addon.getSettingsPanel,this.settingsPanel="",this.edit=this.edit.bind(this),this.delete=this.delete.bind(this),this.reload=this.reload.bind(this)}setInitialState(){this.state={checked:this.props.enabled,settings:!1,reloads:0}}showSettings(){this.hasSettings&&this.setState({settings:!0})}closeSettings(){this.panelRef.current.innerHTML="",this.setState({settingsOpen:!1})}componentDidUpdate(){if(!this.state.settings)return;if("object"==typeof this.settingsPanel&&this.refs.settingspanel.appendChild(this.settingsPanel),!l["fork-ps-3"])return;const e=$(U.reactDom.findDOMNode(this)),t=e.parents(".scroller");((e,t)=>{const n=e.scrollTop,s=n+e.clientHeight,o=t.offsetTop,i=o+t.clientHeight;return os})(t[0],e[0])&&t.animate({scrollTop:e.offset().top-t.offset().top+t.scrollTop()-30},300)}getString(e){return e?"string"==typeof e?e:e.toString():"???"}get settingsComponent(){const e=this.getString(this.props.addon.name);try{this.settingsPanel=this.props.addon.getSettingsPanel()}catch(e){x.err("Plugins","Unable to get settings panel for "+this.props.addon.name+".",e)}return U.react.createElement("div",{className:"bd-card bd-addon-card settings-open ui-switch-item"},U.react.createElement("div",{style:{float:"right",cursor:"pointer"},onClick:()=>{this.refs.settingspanel.innerHTML="",this.setState({settings:!1})}},U.react.createElement(he,null)),"object"==typeof this.settingsPanel&&U.react.createElement("div",{id:`plugin-settings-${e}`,className:"plugin-settings",ref:"settingspanel"}),"object"!=typeof this.settingsPanel&&U.react.createElement("div",{id:`plugin-settings-${e}`,className:"plugin-settings",ref:"settingspanel",dangerouslySetInnerHTML:{__html:this.settingsPanel}}))}buildTitle(e,t,n){const s="{{name}} v{{version}} by {{author}}".split(/({{[A-Za-z]+}})/),o=s.findIndex(e=>"{{name}}"==e);o&&(s[o]=et.createElement("span",{className:"name bda-name"},e));const i=s.findIndex(e=>"{{version}}"==e);o&&(s[i]=et.createElement("span",{className:"version bda-version"},t));const r=s.findIndex(e=>"{{author}}"==e);if(o){const e={className:"author bda-author"};(n.link||n.id)&&(e.className+=` ${U.anchorClasses.anchor} ${U.anchorClasses.anchorUnderlineOnHover}`,e.target="_blank",n.link&&(e.href=n.link),n.id&&(e.onClick=()=>{U.LayerStack.popLayer(),U.openDM(n.id)})),s[r]=et.createElement(n.link||n.id?"a":"span",e,n.name)}return s.flat()}makeLink(e,t){const n={className:"bda-link bda-link-website",target:"_blank"};return"string"==typeof t&&(n.href=t),"function"==typeof t&&(n.onClick=e=>{e.preventDefault(),e.stopPropagation(),t()}),U.react.createElement("a",n,e)}makeButton(e,t,n){return et.createElement(Le,{color:"black",side:"top",text:e},et.createElement("div",{className:"bd-addon-button",onClick:n},t))}get links(){const e=[],t=this.props.addon;return t.website&&e.push(this.makeLink("Website",t.website)),t.source&&e.push(this.makeLink("Source",t.source)),t.invite&&e.push(this.makeLink("Support Server",()=>{const e=/\.gg\/(.*)$/;let n=t.invite;e.test(n)&&(n=n.match(e)[1]),U.LayerStack.popLayer(),U.InviteActions.acceptInviteAndTransitionToInviteChannel(n)})),t.donate&&e.push(this.makeLink("Donate",t.donate)),t.patreon&&e.push(this.makeLink("Patreon",t.patreon)),e}get footer(){const e=this.links;return(e.length||this.hasSettings)&&U.react.createElement("div",{className:"bd-card-footer bda-footer"},U.react.createElement("span",{className:"bd-addon-links bda-links"},...e.map((t,n)=>n{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 ot.createElement("div",{className:"bd-select-options"},this.props.options.map(t=>ot.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 ot.createElement("div",{className:`bd-select${e}${t}`,onClick:this.showMenu,ref:this.dropdown},ot.createElement("div",{className:"bd-select-value"},this.selected.label),ot.createElement(st,{className:"bd-select-arrow"}),this.state.open&&this.options)}}const rt=U.React;class at extends rt.Component{render(){const e=this.props.size||"16px";return rt.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},rt.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),rt.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"}))}}const ct=U.React;class lt extends ct.Component{render(){return ct.createElement("div",{className:"bd-search-wrapper"},ct.createElement("input",{onChange:this.props.onChange,onKeyDown:this.props.onKeyDown,type:"text",className:"bd-search",placeholder:this.props.placeholder,maxLength:"50"}),ct.createElement(at,null))}}function dt(){return(dt=Object.assign||function(e){for(var t=1;t{Ct.showConfirmationModal("Are You Sure?",`Are you sure you want to delete ${e}?`,{danger:!0,confirmText:"Delete",onConfirm:()=>{t(!0)},onCancel:()=>{t(!1)}})})}get sortOptions(){return[{label:"Name",value:"name"},{label:"Author",value:"author"},{label:"Version",value:"version"},{label:"Recently Added",value:"added"},{label:"Last Modified",value:"modified"},{label:"File Size",value:"size"}]}get directions(){return[{label:"Ascending",value:!0},{label:"Descending",value:!1}]}reverse(e){this.setState({ascending:e})}sort(e){this.setState({sort:e})}search(e){this.setState({query:e.target.value.toLocaleLowerCase()})}getProps(e){return{key:e.name,enabled:this.cookie[e.name],toggle:this.manager.toggle.bind(this.manager),edit:this.edit.bind(this),remove:this.delete.bind(this),addon:e}}getAddons(){const e=this.props.list.sort((e,t)=>{const n=e[this.state.sort],s=t[this.state.sort];return"string"==typeof n?n.toLocaleLowerCase().localeCompare(s.toLocaleLowerCase()):n>s?1:s>n?-1:0});return this.state.ascending||e.reverse(),e.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=t||e.version.toLocaleLowerCase().includes(this.state.query),!t)return null}const t=this.getProps(e);return pt.createElement(Ze,null,pt.createElement(tt,dt({},t,{reload:!l["fork-ps-5"]&&this.manager.reload.bind(this.manager)})))})}render(){const e=pt.createElement(ht,{color:"black",position:"top",text:"Reload List"},e=>pt.createElement(Ne,dt({},e,{className:"bd-icon bd-reload bd-reload-header",size:"18px",onClick:async()=>{this.isPlugins?D.updatePluginList():F.updateThemeList(),this.forceUpdate()}}))),t=this.getAddons().filter(e=>e);return pt.createElement(me,{contentColumn:!0,fade:!0,dark:!0},pt.createElement(Je,{title:`${this.props.type.toUpperCase()}—${t.length}`},pt.createElement("button",{key:"folder-button",className:"bd-button bd-pfbtn",onClick:this.openFolder.bind(this)},"Open ",this.isPlugins?"Plugin":"Theme"," Folder"),!l["fork-ps-5"]&&e,pt.createElement("div",{className:"bd-controls bd-addon-controls"},pt.createElement(lt,{onChange:this.search,placeholder:`Search ${this.props.type}...`}),pt.createElement("div",{className:"bd-addon-dropdowns"},pt.createElement("div",{className:"bd-select-wrapper"},pt.createElement("label",{className:"bd-label"},"Sort by:"),pt.createElement(it,{options:this.sortOptions,onChange:this.sort,style:"transparent"})),pt.createElement("div",{className:"bd-select-wrapper"},pt.createElement("label",{className:"bd-label"},"Order:"),pt.createElement(it,{options:this.directions,onChange:this.reverse,style:"transparent"})))),pt.createElement("div",{className:"bda-slist bd-addon-list"},t)),pt.createElement(pe,{key:"tools"}))}}var mt=new class{constructor(){this.sideBarOnClick=this.sideBarOnClick.bind(this),this.onChange=this.onChange.bind(this),this.updateSettings=this.updateSettings.bind(this),this.sidebar=new ne(this.sideBarOnClick),this.buildPluginProps=this.buildPluginProps.bind(this)}get root(){const e=$("#bd-settingspane-container");return e.length?e[0]:this.injectRoot()?this.root:null}injectRoot(){if(!$(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").length)return!1;const e=$("",{class:"contentRegion-3nDuYy content-region",id:"bd-settingspane-container"});return $(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").append(e),x.onRemoved(e[0],()=>{U.reactDom.unmountComponentAtNode(e[0])}),!0}get coreSettings(){const e=this.getSettings("core");return[...new Set(e.map(e=>e.category))].map(t=>({title:t,settings:e.filter(e=>e.category==t)}))}get emoteSettings(){return this.getSettings("emote")}getSettings(e){return Object.keys(a).reduce((t,n)=>{const s=a[n];return s.cat===e&&s.implemented&&!s.hidden&&(s.text=n,t.push(s)),t},[])}sideBarOnClick(e){const t=this;switch($(".contentRegion-3nDuYy, .content-region").first().hide(),$(t.root).show(),e){case"core":t.renderCoreSettings();break;case"emotes":t.renderEmoteSettings();break;case"customcss":t.renderCustomCssEditor();break;case"plugins":t.renderPluginPane();break;case"themes":t.renderThemePane()}}onClick(){}onChange(e,t){this.updateSettings(e,t)}updateSettings(e,t){l[e]=t,"bda-gs-2"==e&&(t?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal")),"bda-gs-3"==e&&(t?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan")),"bda-gs-1"==e&&(t?ye.addButton():ye.removeButton()),"bda-gs-4"==e&&(t?ke.enable():ke.disable()),"bda-gs-5"==e&&(t?$("#app-mount").addClass("bda-dark"):$("#app-mount").removeClass("bda-dark")),t&&"bda-gs-6"==e&&oe.inject24Hour(),"bda-gs-7"==e&&(t?se.injectColoredText():se.removeColoredText()),"bda-es-4"==e&&(t?Y.autoCapitalize():Y.disableAutoCapitalize()),"fork-ps-4"==e&&(t?Ee.start():Ee.stop()),"fork-ps-5"==e&&(t?(q.watchContent("plugin"),q.watchContent("theme")):(q.unwatchContent("plugin"),q.unwatchContent("theme"))),"bda-gs-8"==e&&(t?xe.enable(l["fork-dm-1"]):xe.disable()),"fork-dm-1"==e&&l["bda-gs-8"]&&xe.enable(t),this.saveSettings()}async initializeSettings(){l["bda-gs-2"]&&$("body").addClass("bd-minimal"),l["bda-gs-3"]&&$("body").addClass("bd-minimal-chan"),l["bda-gs-1"]&&ye.addButton(),l["bda-gs-4"]&&ke.enable(),l["bda-gs-5"]&&$("#app-mount").addClass("bda-dark"),l["bda-gs-6"]&&oe.inject24Hour(),l["bda-gs-7"]&&se.injectColoredText(),l["bda-es-4"]&&Y.autoCapitalize(),l["fork-ps-4"]&&Ee.start(),l["fork-ps-5"]&&(q.watchContent("plugin"),q.watchContent("theme")),l["bda-gs-8"]&&xe.enable(l["fork-dm-1"]),this.saveSettings()}saveSettings(){H.setSettingGroup("settings",l)}loadSettings(){Object.assign(l,H.getSettingGroup("settings"))}renderSidebar(){const e=this;$("[class*='side-'] > [class*='item-']").off("click.v2settingspanel").on("click.v2settingspanel",()=>{U.reactDom.unmountComponentAtNode(e.root),$(e.root).hide(),$(".contentRegion-3nDuYy, .content-region").first().show()}),e.sidebar.render()}get coreComponent(){return U.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[U.react.createElement(We,{key:"cspanel",onChange:this.onChange,sections:this.coreSettings}),U.react.createElement(pe,{key:"tools"})]})}get emoteComponent(){return U.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[U.react.createElement(Ge,{key:"espanel",title:"Emote Settings",onChange:this.onChange,settings:this.emoteSettings,button:{title:"Clear Emote Cache",onClick:()=>{Y.clearEmoteData(),Y.init(),J.init()}}}),U.react.createElement(pe,{key:"tools"})]})}get customCssComponent(){return U.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[U.react.createElement(Ve,{key:"csseditor"}),U.react.createElement(pe,{key:"tools"})]})}contentComponent(e){const t=this.getAddonList(e),n=e.replace("s",""),s=this;class o extends U.react.Component{constructor(e){super(e),this.onChange=this.onChange.bind(this)}componentDidMount(){P.on(`${n}-reloaded`,this.onChange),P.on(`${n}-loaded`,this.onChange),P.on(`${n}-unloaded`,this.onChange)}componentWillUnmount(){P.off(`${n}-reloaded`,this.onChange),P.off(`${n}-loaded`,this.onChange),P.off(`${n}-unloaded`,this.onChange)}onChange(){s.sideBarOnClick(e)}render(){return t}}return U.react.createElement(o)}getString(e){return e?"string"==typeof e?e:e.toString():"???"}buildPluginProps(e){const t=w[e].plugin;return Object.assign({},{name:this.getString(t.getName()),author:this.getString(t.getAuthor()),description:this.getString(t.getDescription()),version:this.getString(t.getVersion()),getSettingsPanel:t.getSettingsPanel&&t.getSettingsPanel.bind(t)},w[e])}getAddonList(e){const t="plugins"===e?Object.keys(w).map(this.buildPluginProps):Object.values(k);return U.react.createElement(ut,{type:e,list:t})}get pluginsComponent(){const e=Object.keys(w).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(U.react.createElement(Ze,null,U.react.createElement(Ie,{key:t,plugin:w[t].plugin}))),e),[]),t=U.react.createElement(Be,{key:"plugin-list",className:"bda-slist",children:e}),s=!l["fork-ps-5"]&&U.react.createElement(Le(Ne,{color:"black",side:"top",text:"Reload Plugin List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{D.updatePluginList(),this.sideBarOnClick("plugins")}}),o=U.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(0).shell.openItem(q.pluginsFolder)}},"Open Plugin Folder");U.react.createElement(Je,{key:"pcolumn",title:"Plugins",children:[s,o,t]});return U.react.createElement(ut,{type:"plugins"})}get themesComponent(){const e=Object.keys(k).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(U.react.createElement(Ze,null,U.react.createElement(_e,{key:t,theme:k[t]}))),e),[]),t=U.react.createElement(Be,{key:"theme-list",className:"bda-slist",children:e}),s=!l["fork-ps-5"]&&U.react.createElement(Le(Ne,{color:"black",side:"top",text:"Reload Theme List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{F.updateThemeList(),this.sideBarOnClick("themes")}}),o=U.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(0).shell.openItem(q.themesFolder)}},"Open Theme Folder");U.react.createElement(Je,{key:"tcolumn",title:"Themes",children:[s,o,t]});return U.react.createElement(ut,{type:"themes"})}renderCoreSettings(){const e=this.root;e?U.reactDom.render(this.coreComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderEmoteSettings(){const e=this.root;e?U.reactDom.render(this.emoteComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderCustomCssEditor(){const e=this.root;e?U.reactDom.render(this.customCssComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderPluginPane(){const e=this.root;e?U.reactDom.render(this.contentComponent("plugins"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderThemePane(){const e=this.root;e?U.reactDom.render(this.contentComponent("themes"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}};class gt extends U.reactComponent{render(){return U.react.createElement("svg",{height:"100%",width:this.props.size||"16px",className:"bd-logo "+this.props.className,style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},viewBox:"0 0 2000 2000"},U.react.createElement("metadata",null),U.react.createElement("defs",null,U.react.createElement("filter",{id:"shadow1"},U.react.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"})),U.react.createElement("filter",{id:"shadow2"},U.react.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20","flood-color":"rgba(255,255,255,0.15)"})),U.react.createElement("filter",{id:"shadow3"},U.react.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"}))),U.react.createElement("g",null,U.react.createElement("path",{style:{filter:"url(#shadow3)"},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",fill:"#171717",opacity:"1"}),U.react.createElement("path",{style:{filter:"url(#shadow2)"},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",fill:"#3E82E5",opacity:"1"}),U.react.createElement("path",{style:{filter:"url(#shadow1)"},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",fill:"#FFFFFF",opacity:"1"})))}}function ft(e){Object.assign(p,e)}ft.prototype.init=async function(){if(p.version
Please download the latest version from GitHub");if(window.ED)return void x.alert("Not Supported","BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.");if(window.WebSocket&&window.WebSocket.name&&window.WebSocket.name.includes("Patched"))return void x.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");const e=p.updater?p.updater.LatestVersion:p.latestVersion;e>p.version&&x.alert("Update Available",`\n An update for BandagedBD is available (${e})! Please Reinstall!
\n Download Installer\n `),x.log("Startup","Initializing Settings"),this.initSettings(),x.log("Startup","Initializing EmoteModule"),window.emotePromise=Y.init().then(()=>{Y.initialized=!0,x.log("Startup","Initializing QuickEmoteMenu"),J.init()}),this.injectExternals(),await this.checkForGuilds(),U.initialize(),x.log("Startup","Updating Settings"),mt.initializeSettings(),x.log("Startup","Loading Plugins"),D.loadPlugins(),x.log("Startup","Loading Themes"),F.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",(function(){l["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()})),Y.autoCapitalize(),x.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2").length&&document.getElementsByClassName("bd-loaderv2")[0].remove(),x.log("Startup","Initializing Main Observer"),this.initObserver(),l["fork-ps-1"]&&(x.log("Startup","Collecting Startup Errors"),x.showContentErrors({plugins:d,themes:h}));const t=H.getBDData("version");i>t&&(r&&this.showChangelogModal(r),H.setBDData("version",i)),x.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),x.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),x.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),x.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")()},ft.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const n=function(){const s=U.guildClasses.wrapper.split(" ")[0];document.querySelectorAll(`.${s}`).length>0&&e++;const o=U.guildClasses.listItem.split(" ")[0],i=U.guildClasses.blobContainer.split(" ")[0];return document.querySelectorAll(`.${s} .${o} .${i}`).length>0||e>=50?t(p.deferLoaded=!0):void setTimeout(n,100)};$(document).ready((function(){setTimeout(n,100)}))})},ft.prototype.injectExternals=async function(){await x.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"),window.require.original&&(window.require=window.require.original)},ft.prototype.initSettings=function(){if(H.initialize(),H.getSettingGroup("settings")){mt.loadSettings(),$(''),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){H.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}}class Ve extends U.reactComponent{constructor(e){super(e);this.props.lines=0,this.setInitialState(),this.attach=this.attach.bind(this),this.detachedEditor=U.react.createElement(Ue,{attach:this.attach}),this.onClick=this.onClick.bind(this),this.updateCss=this.updateCss.bind(this),this.saveCss=this.saveCss.bind(this),this.detach=this.detach.bind(this)}setInitialState(){this.state={detached:this.props.detached||U.editorDetached}}componentDidMount(){this.editor=ace.edit("bd-customcss-editor"),this.editor.setTheme("ace/theme/monokai"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{c["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){this.editor.destroy()}componentDidUpdate(e,t){const n=this;t.detached&&!n.state.detached&&U.reactDom.unmountComponentAtNode(n.detachedRoot)}codeMirror(){}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=H.getBDData("bdcustomcss");let t="";return e&&""!==e&&(t=atob(e)),t}updateLineCount(){const e=this.refs.editor.value.split("\n").length;e!=this.props.lines&&(this.refs.lines.textContent=Array.from(new Array(e),(e,t)=>t+1).join(".\n")+".",this.props.lines=e)}render(){const e=this,{detached:t}=e.state;return U.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default",style:{padding:"60px 40px 0px"}},t&&U.react.createElement("div",{id:"editor-detached"},U.react.createElement(fe,{text:"Custom CSS Editor"}),U.react.createElement("h3",null,"Editor Detached"),U.react.createElement("button",{className:"btn btn-primary",onClick:()=>{e.attach()}},"Attach")),!t&&U.react.createElement("div",null,U.react.createElement(fe,{text:"Custom CSS Editor"}),U.react.createElement("div",{className:"editor-wrapper"},U.react.createElement("div",{id:"bd-customcss-editor",className:"editor",ref:"editor"},e.css)),U.react.createElement("div",{id:"bd-customcss-attach-controls"},U.react.createElement("ul",{className:"checkbox-group"},U.react.createElement(He,{id:"live-update",text:"Live Update",onChange:this.onChange,checked:c["bda-css-0"]})),U.react.createElement("div",{id:"bd-customcss-detach-controls-button"},U.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),U.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),U.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("detach")}},"Detach"),U.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on detach"),U.react.createElement("div",{className:"help-text"},"Press ",U.react.createElement("code",{className:"inline"},"ctrl"),"+",U.react.createElement("span",{className:"inline"},",")," with the editor focused to access the editor's settings.")))))}onClick(e){const t=this;switch(e){case"update":t.updateCss();break;case"save":t.saveCss();break;case"detach":t.detach()}}onChange(e,t){switch(e){case"live-update":c["bda-css-0"]=t,mt.saveSettings()}}updateCss(){0==$("#customcss").length&&$("head").append(''),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){H.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}detach(){this.setState({detached:!0});const e=this.detachedRoot;e?U.reactDom.render(this.detachedEditor,e):console.log("FAILED TO INJECT ROOT: .app")}get detachedRoot(){const e=$("#bd-customcss-detach-container");return e.length?e[0]:this.injectDetachedRoot()?this.detachedRoot:null}injectDetachedRoot(){return!!$(".app, .app-2rEoOp").length&&($("",{id:"bd-customcss-detach-container"}).insertAfter($(".app, .app-2rEoOp")),!0)}attach(){this.setState({detached:!1})}}class Je extends U.reactComponent{constructor(e){super(e)}static get displayName(){return"ContentColumn"}render(){return U.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default"},U.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.title),this.props.children)}}class Ze extends U.reactComponent{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?U.react.createElement("div",{className:"react-error"},"Component Error"):this.props.children}}const Qe=U.React;class Ye extends Qe.Component{render(){const e=this.props.size||"24px";return Qe.createElement("svg",{viewBox:"0 0 24 24",fill:"#FFFFFF",style:{width:e,height:e},onClick:this.props.onClick},Qe.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"}),Qe.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}}const Ke=U.React;class Xe extends Ke.Component{render(){const e=this.props.size||"24px";return Ke.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},Ke.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Ke.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"}),Ke.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}const et=U.React;class tt extends U.reactComponent{constructor(e){super(e),this.onChange=this.onChange.bind(this),this.showSettings=this.showSettings.bind(this),this.setInitialState(),this.hasSettings="function"==typeof this.props.addon.getSettingsPanel,this.settingsPanel="",this.edit=this.edit.bind(this),this.delete=this.delete.bind(this),this.reload=this.reload.bind(this)}setInitialState(){this.state={checked:this.props.enabled,settings:!1,reloads:0}}showSettings(){this.hasSettings&&this.setState({settings:!0})}closeSettings(){this.panelRef.current.innerHTML="",this.setState({settingsOpen:!1})}componentDidUpdate(){if(!this.state.settings)return;if("object"==typeof this.settingsPanel&&this.refs.settingspanel.appendChild(this.settingsPanel),!c["fork-ps-3"])return;const e=$(U.reactDom.findDOMNode(this)),t=e.parents(".scroller");((e,t)=>{const n=e.scrollTop,s=n+e.clientHeight,o=t.offsetTop,i=o+t.clientHeight;return os})(t[0],e[0])&&t.animate({scrollTop:e.offset().top-t.offset().top+t.scrollTop()-30},300)}getString(e){return e?"string"==typeof e?e:e.toString():"???"}get settingsComponent(){const e=this.getString(this.props.addon.name);try{this.settingsPanel=this.props.addon.getSettingsPanel()}catch(e){x.err("Plugins","Unable to get settings panel for "+this.props.addon.name+".",e)}return U.react.createElement("div",{className:"bd-card bd-addon-card settings-open ui-switch-item"},U.react.createElement("div",{style:{float:"right",cursor:"pointer"},onClick:()=>{this.refs.settingspanel.innerHTML="",this.setState({settings:!1})}},U.react.createElement(he,null)),"object"==typeof this.settingsPanel&&U.react.createElement("div",{id:`plugin-settings-${e}`,className:"plugin-settings",ref:"settingspanel"}),"object"!=typeof this.settingsPanel&&U.react.createElement("div",{id:`plugin-settings-${e}`,className:"plugin-settings",ref:"settingspanel",dangerouslySetInnerHTML:{__html:this.settingsPanel}}))}buildTitle(e,t,n){const s="{{name}} v{{version}} by {{author}}".split(/({{[A-Za-z]+}})/),o=s.findIndex(e=>"{{name}}"==e);o&&(s[o]=et.createElement("span",{className:"name bda-name"},e));const i=s.findIndex(e=>"{{version}}"==e);o&&(s[i]=et.createElement("span",{className:"version bda-version"},t));const r=s.findIndex(e=>"{{author}}"==e);if(o){const e={className:"author bda-author"};(n.link||n.id)&&(e.className+=` ${U.anchorClasses.anchor} ${U.anchorClasses.anchorUnderlineOnHover}`,e.target="_blank",n.link&&(e.href=n.link),n.id&&(e.onClick=()=>{U.LayerStack.popLayer(),U.openDM(n.id)})),s[r]=et.createElement(n.link||n.id?"a":"span",e,n.name)}return s.flat()}makeLink(e,t){const n={className:"bda-link bda-link-website",target:"_blank"};return"string"==typeof t&&(n.href=t),"function"==typeof t&&(n.onClick=e=>{e.preventDefault(),e.stopPropagation(),t()}),U.react.createElement("a",n,e)}makeButton(e,t,n){return et.createElement(Le,{color:"black",side:"top",text:e},et.createElement("div",{className:"bd-addon-button",onClick:n},t))}get links(){const e=[],t=this.props.addon;return t.website&&e.push(this.makeLink("Website",t.website)),t.source&&e.push(this.makeLink("Source",t.source)),t.invite&&e.push(this.makeLink("Support Server",()=>{const e=/\.gg\/(.*)$/;let n=t.invite;e.test(n)&&(n=n.match(e)[1]),U.LayerStack.popLayer(),U.InviteActions.acceptInviteAndTransitionToInviteChannel(n)})),t.donate&&e.push(this.makeLink("Donate",t.donate)),t.patreon&&e.push(this.makeLink("Patreon",t.patreon)),e}get footer(){const e=this.links;return(e.length||this.hasSettings)&&U.react.createElement("div",{className:"bd-card-footer bda-footer"},U.react.createElement("span",{className:"bd-addon-links bda-links"},...e.map((t,n)=>n{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 ot.createElement("div",{className:"bd-select-options"},this.props.options.map(t=>ot.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 ot.createElement("div",{className:`bd-select${e}${t}`,onClick:this.showMenu,ref:this.dropdown},ot.createElement("div",{className:"bd-select-value"},this.selected.label),ot.createElement(st,{className:"bd-select-arrow"}),this.state.open&&this.options)}}const rt=U.React;class at extends rt.Component{render(){const e=this.props.size||"16px";return rt.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},rt.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),rt.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"}))}}const lt=U.React;class ct extends lt.Component{render(){return lt.createElement("div",{className:"bd-search-wrapper"},lt.createElement("input",{onChange:this.props.onChange,onKeyDown:this.props.onKeyDown,type:"text",className:"bd-search",placeholder:this.props.placeholder,maxLength:"50"}),lt.createElement(at,null))}}function dt(){return(dt=Object.assign||function(e){for(var t=1;t{Ct.showConfirmationModal("Are You Sure?",`Are you sure you want to delete ${e}?`,{danger:!0,confirmText:"Delete",onConfirm:()=>{t(!0)},onCancel:()=>{t(!1)}})})}get sortOptions(){return[{label:"Name",value:"name"},{label:"Author",value:"author"},{label:"Version",value:"version"},{label:"Recently Added",value:"added"},{label:"Last Modified",value:"modified"},{label:"File Size",value:"size"}]}get directions(){return[{label:"Ascending",value:!0},{label:"Descending",value:!1}]}reverse(e){this.setState({ascending:e})}sort(e){this.setState({sort:e})}search(e){this.setState({query:e.target.value.toLocaleLowerCase()})}getProps(e){return{key:e.name,enabled:this.cookie[e.name],toggle:this.manager.toggle.bind(this.manager),edit:this.edit.bind(this),remove:this.delete.bind(this),addon:e}}getAddons(){const e=this.props.list.sort((e,t)=>{const n=e[this.state.sort],s=t[this.state.sort];return"string"==typeof n?n.toLocaleLowerCase().localeCompare(s.toLocaleLowerCase()):n>s?1:s>n?-1:0});return this.state.ascending||e.reverse(),e.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=t||e.version.toLocaleLowerCase().includes(this.state.query),!t)return null}const t=this.getProps(e);return pt.createElement(Ze,null,pt.createElement(tt,dt({},t,{reload:!c["fork-ps-5"]&&this.manager.reload.bind(this.manager)})))})}render(){const e=pt.createElement(ht,{color:"black",position:"top",text:"Reload List"},e=>pt.createElement(Ne,dt({},e,{className:"bd-icon bd-reload bd-reload-header",size:"18px",onClick:async()=>{this.isPlugins?D.updatePluginList():F.updateThemeList(),this.forceUpdate()}}))),t=this.getAddons().filter(e=>e);return pt.createElement(me,{contentColumn:!0,fade:!0,dark:!0},pt.createElement(Je,{title:`${this.props.type.toUpperCase()}—${t.length}`},pt.createElement("button",{key:"folder-button",className:"bd-button bd-pfbtn",onClick:this.openFolder.bind(this)},"Open ",this.isPlugins?"Plugin":"Theme"," Folder"),!c["fork-ps-5"]&&e,pt.createElement("div",{className:"bd-controls bd-addon-controls"},pt.createElement(ct,{onChange:this.search,placeholder:`Search ${this.props.type}...`}),pt.createElement("div",{className:"bd-addon-dropdowns"},pt.createElement("div",{className:"bd-select-wrapper"},pt.createElement("label",{className:"bd-label"},"Sort by:"),pt.createElement(it,{options:this.sortOptions,onChange:this.sort,style:"transparent"})),pt.createElement("div",{className:"bd-select-wrapper"},pt.createElement("label",{className:"bd-label"},"Order:"),pt.createElement(it,{options:this.directions,onChange:this.reverse,style:"transparent"})))),pt.createElement("div",{className:"bda-slist bd-addon-list"},t)),pt.createElement(pe,{key:"tools"}))}}var mt=new class{constructor(){this.sideBarOnClick=this.sideBarOnClick.bind(this),this.onChange=this.onChange.bind(this),this.updateSettings=this.updateSettings.bind(this),this.sidebar=new ne(this.sideBarOnClick),this.buildPluginProps=this.buildPluginProps.bind(this)}get root(){const e=$("#bd-settingspane-container");return e.length?e[0]:this.injectRoot()?this.root:null}injectRoot(){if(!$(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").length)return!1;const e=$("",{class:"contentRegion-3nDuYy content-region",id:"bd-settingspane-container"});return $(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").append(e),x.onRemoved(e[0],()=>{U.reactDom.unmountComponentAtNode(e[0])}),!0}get coreSettings(){const e=this.getSettings("core");return[...new Set(e.map(e=>e.category))].map(t=>({title:t,settings:e.filter(e=>e.category==t)}))}get emoteSettings(){return this.getSettings("emote")}getSettings(e){return Object.keys(a).reduce((t,n)=>{const s=a[n];return s.cat===e&&s.implemented&&!s.hidden&&(s.text=n,t.push(s)),t},[])}sideBarOnClick(e){const t=this;switch($(".contentRegion-3nDuYy, .content-region").first().hide(),$(t.root).show(),e){case"core":t.renderCoreSettings();break;case"emotes":t.renderEmoteSettings();break;case"customcss":t.renderCustomCssEditor();break;case"plugins":t.renderPluginPane();break;case"themes":t.renderThemePane()}}onClick(){}onChange(e,t){this.updateSettings(e,t)}updateSettings(e,t){c[e]=t,"bda-gs-2"==e&&(t?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal")),"bda-gs-3"==e&&(t?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan")),"bda-gs-1"==e&&(t?ye.addButton():ye.removeButton()),"bda-gs-4"==e&&(t?ke.enable():ke.disable()),"bda-gs-5"==e&&(t?$("#app-mount").addClass("bda-dark"):$("#app-mount").removeClass("bda-dark")),t&&"bda-gs-6"==e&&oe.inject24Hour(),"bda-gs-7"==e&&(t?se.injectColoredText():se.removeColoredText()),"bda-es-4"==e&&(t?Y.autoCapitalize():Y.disableAutoCapitalize()),"fork-ps-4"==e&&(t?Ee.start():Ee.stop()),"fork-ps-5"==e&&(t?(q.watchContent("plugin"),q.watchContent("theme")):(q.unwatchContent("plugin"),q.unwatchContent("theme"))),"bda-gs-8"==e&&(t?xe.enable(c["fork-dm-1"]):xe.disable()),"fork-dm-1"==e&&c["bda-gs-8"]&&xe.enable(t),this.saveSettings()}async initializeSettings(){c["bda-gs-2"]&&$("body").addClass("bd-minimal"),c["bda-gs-3"]&&$("body").addClass("bd-minimal-chan"),c["bda-gs-1"]&&ye.addButton(),c["bda-gs-4"]&&ke.enable(),c["bda-gs-5"]&&$("#app-mount").addClass("bda-dark"),c["bda-gs-6"]&&oe.inject24Hour(),c["bda-gs-7"]&&se.injectColoredText(),c["bda-es-4"]&&Y.autoCapitalize(),c["fork-ps-4"]&&Ee.start(),c["fork-ps-5"]&&(q.watchContent("plugin"),q.watchContent("theme")),c["bda-gs-8"]&&xe.enable(c["fork-dm-1"]),this.saveSettings()}saveSettings(){H.setSettingGroup("settings",c)}loadSettings(){Object.assign(c,H.getSettingGroup("settings"))}renderSidebar(){const e=this;$("[class*='side-'] > [class*='item-']").off("click.v2settingspanel").on("click.v2settingspanel",()=>{U.reactDom.unmountComponentAtNode(e.root),$(e.root).hide(),$(".contentRegion-3nDuYy, .content-region").first().show()}),e.sidebar.render()}get coreComponent(){return U.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[U.react.createElement(We,{key:"cspanel",onChange:this.onChange,sections:this.coreSettings}),U.react.createElement(pe,{key:"tools"})]})}get emoteComponent(){return U.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[U.react.createElement(Ge,{key:"espanel",title:"Emote Settings",onChange:this.onChange,settings:this.emoteSettings,button:{title:"Clear Emote Cache",onClick:()=>{Y.clearEmoteData(),Y.init(),J.init()}}}),U.react.createElement(pe,{key:"tools"})]})}get customCssComponent(){return U.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[U.react.createElement(Ve,{key:"csseditor"}),U.react.createElement(pe,{key:"tools"})]})}contentComponent(e){const t=this.getAddonList(e),n=e.replace("s",""),s=this;class o extends U.react.Component{constructor(e){super(e),this.onChange=this.onChange.bind(this)}componentDidMount(){P.on(`${n}-reloaded`,this.onChange),P.on(`${n}-loaded`,this.onChange),P.on(`${n}-unloaded`,this.onChange)}componentWillUnmount(){P.off(`${n}-reloaded`,this.onChange),P.off(`${n}-loaded`,this.onChange),P.off(`${n}-unloaded`,this.onChange)}onChange(){s.sideBarOnClick(e)}render(){return t}}return U.react.createElement(o)}getString(e){return e?"string"==typeof e?e:e.toString():"???"}buildPluginProps(e){const t=w[e].plugin;return Object.assign({},{name:this.getString(t.getName()),author:this.getString(t.getAuthor()),description:this.getString(t.getDescription()),version:this.getString(t.getVersion()),getSettingsPanel:t.getSettingsPanel&&t.getSettingsPanel.bind(t)},w[e])}getAddonList(e){const t="plugins"===e?Object.keys(w).map(this.buildPluginProps):Object.values(k);return U.react.createElement(ut,{type:e,list:t})}get pluginsComponent(){const e=Object.keys(w).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(U.react.createElement(Ze,null,U.react.createElement(Ie,{key:t,plugin:w[t].plugin}))),e),[]),t=U.react.createElement(Be,{key:"plugin-list",className:"bda-slist",children:e}),s=!c["fork-ps-5"]&&U.react.createElement(Le(Ne,{color:"black",side:"top",text:"Reload Plugin List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{D.updatePluginList(),this.sideBarOnClick("plugins")}}),o=U.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(0).shell.openItem(q.pluginsFolder)}},"Open Plugin Folder");U.react.createElement(Je,{key:"pcolumn",title:"Plugins",children:[s,o,t]});return U.react.createElement(ut,{type:"plugins"})}get themesComponent(){const e=Object.keys(k).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(U.react.createElement(Ze,null,U.react.createElement(_e,{key:t,theme:k[t]}))),e),[]),t=U.react.createElement(Be,{key:"theme-list",className:"bda-slist",children:e}),s=!c["fork-ps-5"]&&U.react.createElement(Le(Ne,{color:"black",side:"top",text:"Reload Theme List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{F.updateThemeList(),this.sideBarOnClick("themes")}}),o=U.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(0).shell.openItem(q.themesFolder)}},"Open Theme Folder");U.react.createElement(Je,{key:"tcolumn",title:"Themes",children:[s,o,t]});return U.react.createElement(ut,{type:"themes"})}renderCoreSettings(){const e=this.root;e?U.reactDom.render(this.coreComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderEmoteSettings(){const e=this.root;e?U.reactDom.render(this.emoteComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderCustomCssEditor(){const e=this.root;e?U.reactDom.render(this.customCssComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderPluginPane(){const e=this.root;e?U.reactDom.render(this.contentComponent("plugins"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderThemePane(){const e=this.root;e?U.reactDom.render(this.contentComponent("themes"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}};class gt extends U.reactComponent{render(){return U.react.createElement("svg",{height:"100%",width:this.props.size||"16px",className:"bd-logo "+this.props.className,style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},viewBox:"0 0 2000 2000"},U.react.createElement("metadata",null),U.react.createElement("defs",null,U.react.createElement("filter",{id:"shadow1"},U.react.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"})),U.react.createElement("filter",{id:"shadow2"},U.react.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20","flood-color":"rgba(255,255,255,0.15)"})),U.react.createElement("filter",{id:"shadow3"},U.react.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"}))),U.react.createElement("g",null,U.react.createElement("path",{style:{filter:"url(#shadow3)"},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",fill:"#171717",opacity:"1"}),U.react.createElement("path",{style:{filter:"url(#shadow2)"},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",fill:"#3E82E5",opacity:"1"}),U.react.createElement("path",{style:{filter:"url(#shadow1)"},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",fill:"#FFFFFF",opacity:"1"})))}}function ft(e){Object.assign(p,e)}ft.prototype.init=async function(){if(p.version
Please download the latest version from GitHub");if(window.ED)return void x.alert("Not Supported","BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.");if(window.WebSocket&&window.WebSocket.name&&window.WebSocket.name.includes("Patched"))return void x.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");const e=p.updater?p.updater.LatestVersion:p.latestVersion;e>p.version&&x.alert("Update Available",`\n An update for BandagedBD is available (${e})! Please Reinstall!
\n Download Installer\n `),x.log("Startup","Initializing Settings"),this.initSettings(),x.log("Startup","Initializing EmoteModule"),window.emotePromise=Y.init().then(()=>{Y.initialized=!0,x.log("Startup","Initializing QuickEmoteMenu"),J.init()}),this.injectExternals(),await this.checkForGuilds(),U.initialize(),x.log("Startup","Updating Settings"),mt.initializeSettings(),x.log("Startup","Loading Plugins"),D.loadPlugins(),x.log("Startup","Loading Themes"),F.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",(function(){c["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()})),Y.autoCapitalize(),x.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2").length&&document.getElementsByClassName("bd-loaderv2")[0].remove(),x.log("Startup","Initializing Main Observer"),this.initObserver(),c["fork-ps-1"]&&(x.log("Startup","Collecting Startup Errors"),x.showContentErrors({plugins:d,themes:h}));const t=H.getBDData("version");i>t&&(r&&this.showChangelogModal(r),H.setBDData("version",i)),x.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),x.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),x.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),x.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")()},ft.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const n=function(){const s=U.guildClasses.wrapper.split(" ")[0];document.querySelectorAll(`.${s}`).length>0&&e++;const o=U.guildClasses.listItem.split(" ")[0],i=U.guildClasses.blobContainer.split(" ")[0];return document.querySelectorAll(`.${s} .${o} .${i}`).length>0||e>=50?t(p.deferLoaded=!0):void setTimeout(n,100)};$(document).ready((function(){setTimeout(n,100)}))})},ft.prototype.injectExternals=async function(){await x.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"),window.require.original&&(window.require=window.require.original)},ft.prototype.initSettings=function(){if(H.initialize(),H.getSettingGroup("settings")){mt.loadSettings(),$('