(function(S,g,o,a,u,H,h,R,b,w){"use strict";function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function N(e,t){for(var n=0;nn&&(r.message.communicationDisabled=!0)}))},onStop(){}}});const he=o.findByStoreName("ThemeStore"),be=o.find(function(e){return e?.default?.internal?.resolveSemanticColor})?.default?.internal?.resolveSemanticColor??o.find(function(e){return e?.meta?.resolveSemanticColor})?.meta?.resolveSemanticColor??function(){};function O(e,t=he?.theme){if(e)try{return be(t,e)}catch{return}}const{View:ye,Text:pe}=a.ReactNative,V={destructive:{bg:"#F23F42",fg:"#FFFFFF"},default:{bg:"#4E5058",fg:"#FFFFFF"}};function ve({variant:e="default",children:t}){const n=V[e]??V.default;return a.React.createElement(ye,{style:{backgroundColor:n.bg,borderRadius:4,paddingHorizontal:4,paddingVertical:1,marginLeft:4,alignSelf:"center"}},a.React.createElement(pe,{style:{color:n.fg,fontSize:10,fontWeight:"700",textTransform:"uppercase"}},t))}var Se="f47fd463dcaac61e.png",Re="f944dbd033a60207.png",we="88eacd3588829ded.png",Ee="4d1aef97fe869aaf.png",ke="3a73d84a21043a5e.png",me="8b628d7e3fc05957.png",$e="cb7a2c9b3fb9561c.png",Fe="11d89273b5bd6cc6.png",Te="ea31146eb15fdde7.png",Ae="b0d124bd12658047.png",Ce="cb8b45023e70bb61.png",Ne="a738efc867a225ee.png",Ie="cba17334eeaf3198.png",Be="fead9e69933db668.png",Le="fead9e69933db668.png",De="d6a4e512cdcf1078.png",xe="9901722947705011.png",Pe=function(e){return e.Lock="Lock",e.Warning="Warning",e.Controller="Controller",e}(Pe||{});function Me(e,t){if(e==="Lock")return t?Te:Fe;if(e==="Warning")return t?xe:De;if(e==="Controller")return we}const Ue={Lock:["#f0b232","STATUS_WARNING"],Warning:["#f23f43","STATUS_DANGER"],Controller:["#23a55a","STATUS_POSITIVE"]},_e=[{name:"Announcements",kind:"Lock",base:Se},{name:"Announcements",kind:"Warning",base:Re},{name:"Text",kind:"Lock",base:Ne},{name:"Text",kind:"Warning",base:Ie},{name:"Text",kind:"Controller",base:Ce},{name:"Voice",kind:"Lock",base:Be},{name:"Voice",kind:"Warning",base:Le},{name:"Forum",kind:"Lock",base:Ee},{name:"Forum",kind:"Warning",base:ke},{name:"Stage",kind:"Lock",bottom:!0,base:Ae},{name:"Stage",kind:"Warning",bottom:!0,base:0},{name:"Image",kind:"Lock",bottom:!0,base:me},{name:"Image",kind:"Warning",bottom:!0,base:$e}],W=o.findByName("ChannelInfo",!1),j=o.findByProps("BaseChannelIcon");var Oe=new d({id:"colorful-channels",label:"Colorful Channels",meta:{sublabel:"Gives channel icons with symbols colors to make them more aesthetically pleasing",category:c.Useful},settings:{nsfwTag:{label:"NSFW tag",subLabel:"Adds a red NSFW tag next to channel names",type:"toggle",default:!0},colorIcons:{label:"Colored icon symbols",subLabel:"Turns locked channel symbols yellow, NSFW channel symbols red",type:"toggle",default:!0},colorIconsFallback:{label:"Fallback colors for colored icon symbols",subLabel:"Uses yellow, red and green colors regardless of theme",type:"toggle",default:!1}},handlers:{onStart(){var e=this;this.storage.options.nsfwTag&&W&&this.patches.add(u.after("default",W,function([{channel:t}],n){return a.React.createElement(a.React.Fragment,{},t?.nsfw_&&a.React.createElement(ve,{variant:"destructive"},"nsfw"),n)})),this.storage.options.colorIcons&&j?.BaseChannelIcon&&this.patches.add(u.after("BaseChannelIcon",j,function([{source:t,style:n}],r){try{const i=typeof t?.original=="number"?b.getAssetByID(t.original)?.name:typeof t=="number"?b.getAssetByID(t)?.name:null;if(!i)return;const s=_e.find(function(G){return i===`${G.name}${G.kind}Icon`});if(!s)return;const[l,T]=Ue[s.kind],A=Me(s.kind,s.bottom),f=r?.props?.color?.replace(/-/g,"_")?.toUpperCase(),nt=f&&w.semanticColors?.[f]?O(w.semanticColors[f]):void 0,z=a.ReactNative.StyleSheet.flatten([n,r?.props?.style,{width:18,height:18,tintColor:nt}]),at=e.storage.options.colorIconsFallback?l:O(w.semanticColors?.[T])??l;return a.React.createElement(a.ReactNative.View,{},a.React.createElement(a.ReactNative.Image,{style:z,source:s.base}),a.React.createElement(a.ReactNative.View,{style:{position:"absolute",right:0,bottom:0}},a.React.createElement(a.ReactNative.Image,{style:{...z,tintColor:at},source:A})))}catch{return}}))},onStop(){}}});const Ve=o.findByProps("DeveloperMode","DarkSidebar");var We=new d({id:"enforce-developer-mode",label:"Enforce Developer Mode",meta:{sublabel:"Keeps Developer Mode switched on - it tends to reset itself on Revenge-based clients",category:c.Fixes},handlers:{onStart(){const e=Ve?.DeveloperMode;if(!e?.getSetting||!e?.updateSetting)return;const t=function(){try{e.getSetting()||e.updateSetting(!0)}catch{}};t(),this.patches.add(p("USER_SETTINGS_PROTO_UPDATE",t))},onStop(){}}}),$=[ne,ae,de,ge,Oe,We];const{ScrollView:je,View:Ye}=a.ReactNative;function ze({children:e}){return a.React.createElement(je,{style:{flex:1}},e,a.React.createElement(Ye,{style:{height:24}}))}const{View:Ge,Text:He}=a.ReactNative;function Ke({children:e,style:t}){return a.React.createElement(Ge,{style:[{marginHorizontal:16,marginVertical:8,padding:10,borderRadius:8,borderWidth:1,borderColor:"rgba(128,128,128,0.25)"},t]},a.React.createElement(He,{style:{fontSize:12.5,lineHeight:18,opacity:.75}},e))}const{FormSection:Je,FormSwitchRow:Y,FormRow:F}=R.Forms;function qe(e,t){return typeof e.subLabel=="function"?e.subLabel(t):e.subLabel}function Qe({module:e,settingKey:t}){const n=e.settings[t];if(n.predicate&&!n.predicate.call(e))return null;const r=e.storage.options[t],i=qe(n,r),s=!e.storage.enabled;return n.type==="toggle"?a.React.createElement(Y,{label:n.label,subLabel:i,value:!!r,disabled:s,onValueChange:function(l){e.storage.options[t]=l,e.restart()}}):n.type==="button"?a.React.createElement(F,{label:n.label,subLabel:i,disabled:s,onPress:function(){return n.action.call(e)}}):a.React.createElement(F,{label:n.label,subLabel:[i,r].filter(Boolean).join(" - "),disabled:s,onPress:function(){const l=n.choices.indexOf(r);e.storage.options[t]=n.choices[(l+1)%n.choices.length],e.restart()}})}function Xe({module:e}){e.useRefresh();const t=Object.entries(e.errors);return a.React.createElement(Je,{title:e.label},a.React.createElement(Y,{label:"Enabled",subLabel:e.meta.sublabel,value:!!e.storage.enabled,onValueChange:function(){return e.toggle()}}),e.storage.enabled&&Object.keys(e.settings).map(function(n){return a.React.createElement(Qe,{key:n,module:e,settingKey:n})}),t.length>0&&a.React.createElement(F,{label:`${t.length} error${t.length===1?"":"s"} - tap to copy`,onPress:function(){const n=t.map(function([r,i]){return`[${e.label}] ${r} ${i}`}).join(` `);a.clipboard.setString(n),h.showToast("Copied - paste this when reporting the issue",void 0)}}))}const Ze=[c.Useful,c.Fixes,c.Fun];function et(){return a.React.createElement(ze,null,a.React.createElement(Ke,null,"RoseUtils is a collection of small, independent utilities - toggle whichever ones you want. Fork of nexpid's NexxUtils, with fixes for lookups that broke on newer Discord versions. If a module shows an error below, tap it to copy the details for a bug report."),Ze.flatMap(function(e){return $.filter(function(t){return t.meta.category===e}).map(function(t){return a.React.createElement(Xe,{key:t.id,module:t})})}))}var tt={onLoad(){y.modules??={};for(const e of $)try{e.storage.enabled&&e.start()}catch(t){g.logger.error(`[RoseUtils] Failed to start "${e.label}" on load: ${t}`)}},onUnload(){for(const e of $)try{e.stop()}catch(t){g.logger.error(`[RoseUtils] Failed to stop "${e.label}" cleanly: ${t}`)}},settings:et};return S.default=tt,Object.defineProperty(S,"__esModule",{value:!0}),S})({},vendetta,vendetta.metro,vendetta.metro.common,vendetta.patcher,vendetta.plugin,vendetta.ui.toasts,vendetta.ui.components,vendetta.ui.assets,vendetta.ui);