Lightcord/LightcordApi/js/main.min.js

1 line
42 KiB
JavaScript

module.exports=function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{enumerable:!0,get:getter})},__webpack_require__.r=function(exports){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.t=function(value,mode){if(1&mode&&(value=__webpack_require__(value)),8&mode)return value;if(4&mode&&"object"==typeof value&&value&&value.__esModule)return value;var ns=Object.create(null);if(__webpack_require__.r(ns),Object.defineProperty(ns,"default",{enumerable:!0,value:value}),2&mode&&"string"!=typeof value)for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module.default}:function getModuleExports(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WebpackLoaderError=void 0;const BDModules=window.BDModules;exports.default=new class WebpackLoader{constructor(){}get(id){return BDModules.get(id)}find(filter){let result=BDModules.get(filter)[0];return result||console.warn(filter,"couldn't find the module."),result}findByUniqueProperties(props){return BDModules.get(mod=>{if(mod.__esModule&&"default"in mod){let doesMatch=!0;for(let prop of props)Object.prototype.hasOwnProperty.call(mod.default,prop)||(doesMatch=!1);if(doesMatch)return!0}for(let prop of props)if(!Object.prototype.hasOwnProperty.call(mod,prop))return!1;return!0})[0]}filter(filter){return BDModules.get(filter)}filterByUniqueProperties(props){return BDModules.get(mod=>{if(mod.__esModule&&"default"in mod){let doesMatch=!0;for(let prop of props)Object.prototype.hasOwnProperty.call(mod.default,prop)||(doesMatch=!1);if(doesMatch)return!0}for(let prop of props)if(!Object.prototype.hasOwnProperty.call(mod,prop))return!1;return!0})}};class WebpackLoaderError extends Error{constructor(message=""){super(message+="\n\tThis error is related to Lightcord not being able to find a WebpackModule. \n\tPlease show this error and a few lines of logs above this error. \n\tOpen an issue on https://github.com/Lightcord/Lightcord or in their discord server."),this.name="WebpackLoaderError"}}exports.WebpackLoaderError=WebpackLoaderError},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function NOOP(){}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const ReactDOM=__webpack_require__(24),PluginUtilities_1=__webpack_require__(25);exports.default=new class Utils{constructor(){}ReactToHTMLElement(ReactElement){const element=document.createElement("div");return ReactDOM.render(ReactElement,element),element}get PluginUtils(){return PluginUtilities_1.default}getNestedProps(obj,path){let segments=path.split(".");for(let seg of segments)obj=obj&&seg in obj?obj[seg]:void 0;return obj}DecimalColorToHex(color){return"#"+color.toString(16).toUpperCase()}HexColorToDecimal(color){color=color.replace(/[#;]/g,"");let res=parseInt(color,16);if(isNaN(res))throw new Error("Invalid color: "+color);return res}removeDa(className){return className?className.split(" ").filter(e=>!e.startsWith("da-")).join(" "):className}FindReact(dom,traverseUp=0){const domFiber=dom[Object.keys(dom).find(key=>key.startsWith("__reactInternalInstance$"))];if(null==domFiber)return null;if(domFiber._currentElement){let compFiber=domFiber._currentElement._owner;for(let i=0;i<traverseUp;i++)compFiber=compFiber._currentElement._owner;return compFiber._instance}const GetCompFiber=fiber=>{let parentFiber=fiber.return;for(;"string"==typeof parentFiber.type;)parentFiber=parentFiber.return;return parentFiber};let compFiber=GetCompFiber(domFiber);for(let i=0;i<traverseUp;i++)compFiber=GetCompFiber(compFiber);return compFiber.stateNode}hasClass(classNames,className){if(!classNames||!className)return!1;const classnames=classNames.split(" ");for(let classname of this.removeDa(className).split(" "))if(!classnames.includes(classname))return!1;return!0}formatJSObject(obj){if(["string","number","boolean","bigint","undefined"].includes(typeof obj))return JSON.stringify(obj);if(null===obj)return"null";if("function"==typeof obj)return String(obj);if("symbol"==typeof obj)return String(obj);if(Array.isArray(obj))return obj.length?`[\n ${obj.map(e=>this.formatJSObject(e)).join(",\n ")}\n]`:"[]";{const keys=Object.keys(obj);return 0===keys.length?"{}":`{\n ${keys.map(key=>{let original=key;return"symbol"==typeof key?key="["+String(key)+"]":"number"==typeof key?key=String(key):(console.log(key),(isNaN(parseInt(key[0]))||/[^\w\d_$]/g.test(key))&&(key=this.formatJSObject(key))),`${key}: ${this.formatJSObject(obj[original])}`})}\n}`}}}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0);let TitleModules,AllPreviews;class Title extends React.Component{constructor(props){super(props)}get modules(){return TitleModules||(TitleModules=[WebpackLoader_1.default.find(e=>"string"==typeof e.colorStandard),WebpackLoader_1.default.find(e=>"string"==typeof e.size32),WebpackLoader_1.default.find(e=>"string"==typeof e.h2)])}render(){let[colorModule,sizeModule,titleModule]=this.modules,props=this.props,className=`${colorModule.colorStandard} ${sizeModule.size14} ${titleModule.h2} ${titleModule.defaultColor} ${titleModule.defaultMarginh2}`;return props.className&&(className+=" "+props.className),React.createElement("h2",{className:className},props.children)}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{children:"Exemple title"}]),AllPreviews)}}exports.default=Title,Title.defaultProps={children:null,className:null}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function cloneNullProto(obj){let o=Object.create(null);return Object.keys(obj).forEach(k=>{o[k]=obj[k]}),o}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function excludeProperties(obj,props){let newObj={};return Object.keys(obj).forEach(k=>{props.includes(k)||(newObj[k]=obj[k])}),newObj}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const uuidv1=__webpack_require__(26),uuidv4=__webpack_require__(27);let uuid=Object.assign((function(){return uuidv4()}),{v1:()=>uuidv1(),v4:()=>uuidv4()});exports.default=uuid},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.notices=exports.events=void 0;const Notice_1=__webpack_require__(10),events_1=__webpack_require__(11);exports.events=new events_1.EventEmitter;class Notices extends React.Component{constructor(props){super(props),this.noticeHandler=this.noticeHandler.bind(this)}noticeHandler(){this.forceUpdate()}componentWillMount(){exports.events.on("noticeUpdate",this.noticeHandler)}componentWillUnmount(){exports.events.off("noticeUpdate",this.noticeHandler)}render(){if(!this.hasNotice)return null;const notice=exports.notices[0];return React.createElement(Notice_1.default,Object.assign({},notice))}get hasNotice(){return exports.notices.length>0}}exports.default=Notices,Notices.displayName="LightcordNotices",Notices.defaultProps={},exports.notices=[]},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const Button_1=__webpack_require__(13),Switch_1=__webpack_require__(14),RadioGroup_1=__webpack_require__(15),TextArea_1=__webpack_require__(16),TextInput_1=__webpack_require__(9),Dropdown_1=__webpack_require__(17),Title_1=__webpack_require__(3),SettingsTitle_1=__webpack_require__(18),Tabs_1=__webpack_require__(19),SettingSubTitle_1=__webpack_require__(20),CodeBlock_1=__webpack_require__(21),cloneNullProto_1=__webpack_require__(4),Tooltip_1=__webpack_require__(22),ColorPicker_1=__webpack_require__(23),AlertBox_1=__webpack_require__(28);exports.default=cloneNullProto_1.default({inputs:cloneNullProto_1.default({Button:Button_1.default,Switch:Switch_1.default,Choices:RadioGroup_1.default,RadioGroup:RadioGroup_1.default,TextArea:TextArea_1.default,TextInput:TextInput_1.default,Dropdown:Dropdown_1.default,ColorPicker:ColorPicker_1.default}),general:cloneNullProto_1.default({Title:Title_1.default,SettingsTitle:SettingsTitle_1.default,SettingSubTitle:SettingSubTitle_1.default,Tabs:Tabs_1.default,CodeBlock:CodeBlock_1.default,Tooltip:Tooltip_1.default,AlertBox:AlertBox_1.default})})},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0),noop_1=__webpack_require__(1);let TextInputModules,AllPreviews;class TextInput extends React.PureComponent{constructor(props){super(props),this.onChange=this.onChange.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.state={value:props.value||""}}get modules(){return TextInputModules||(TextInputModules=[WebpackLoader_1.default.find(e=>e.default&&"TextInput"===e.default.displayName).default])}onChange(value,name){this.hasSet=!1,this.props.onChange(value,name,this),this.hasSet||(this.setState({value:value}),this.forceUpdate())}onFocus(ev,name){this.props.onFocus(ev,name,this)}onBlur(ev,name){this.props.onBlur(ev,name,this)}render(){let[TextAreaComponent]=this.modules,props=this.props;return React.createElement(TextAreaComponent,Object.assign({},props,{onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,value:this.state.value}))}get value(){return this.state.value||""}setValue(value){this.setState({value:value}),this.forceUpdate(),this.hasSet=!0}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{name:"api-preview-textinput"}],[{size:"default"},{size:"mini"}],[{disabled:!1},{disabled:!0}],[{placeholder:""}],[{value:""}],[{error:null},{error:"Example error"}],[{maxLength:999}],[{className:""}],[{inputClassName:""}],[{id:"api-preview-textinput"}],[{onChange:(value,name)=>{}}]),AllPreviews)}}exports.default=TextInput,TextInput.defaultProps={name:"",size:"default",disabled:!1,placeholder:"",value:"",error:null,maxLength:999,className:"",inputClassName:"",id:null,onChange:noop_1.default,onFocus:noop_1.default,onBlur:noop_1.default},TextInput.help={warn:"This should be used for single line inputs."}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultNotice=void 0;const WebpackLoader_1=__webpack_require__(0),Notices_1=__webpack_require__(7),noop_1=__webpack_require__(1);let NoticeModules;exports.defaultNotice={text:"",id:"unknown id",onClick:noop_1.default,buttonText:null,type:"default"};class Notice extends React.Component{get modules(){return NoticeModules||(NoticeModules=[WebpackLoader_1.default.find(e=>e.noticeInfo)])}render(){const[noticeClasses]=this.modules,className=noticeClasses["notice"+this.props.type.slice(0,1).toUpperCase()+this.props.type.slice(1)];if(!className)return Notices_1.notices.pop(),setImmediate(()=>{Notices_1.events.emit("noticeUpdate")}),null;const button=this.props.buttonText?React.createElement("button",{className:noticeClasses.button,onClick:()=>{Notices_1.notices.pop(),this.props.onClick(),Notices_1.events.emit("noticeUpdate")}},this.props.buttonText):null;return React.createElement("div",{className:className},React.createElement("div",{className:noticeClasses.dismiss,role:"button",tabIndex:0,onClick:()=>{Notices_1.notices.pop(),Notices_1.events.emit("noticeUpdate")}}),this.props.text,button)}}exports.default=Notice,Notice.displayName="LightcordNotice",Notice.defaultProps=exports.defaultNotice},function(module,exports){module.exports=require("events")},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0),components_1=__webpack_require__(8),uuid_1=__webpack_require__(6),Utils_1=__webpack_require__(2),DiscordTools_1=__webpack_require__(29),patchers=__webpack_require__(30),excludeProperties_1=__webpack_require__(5),cloneNullProto_1=__webpack_require__(4),noop_1=__webpack_require__(1),Unfreeze_1=__webpack_require__(31);patchers.patch();const LightcordApi={WebpackLoader:WebpackLoader_1.default,Components:components_1.default,uuid:uuid_1.default,Utils:Utils_1.default,DiscordTools:DiscordTools_1.default,_:{excludeProperties:excludeProperties_1.default,cloneNullProto:cloneNullProto_1.default,NOOP:noop_1.default,unfreeze:Unfreeze_1.default}};exports.default=LightcordApi,Object.assign(window.Lightcord.Api,LightcordApi)},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0);let ButtonModules,AllPreviews;class Button extends React.Component{constructor(props){super(props),this.state={hover:!1}}get modules(){return ButtonModules||(ButtonModules=[WebpackLoader_1.default.findByUniqueProperties(["_horizontal"]),WebpackLoader_1.default.findByUniqueProperties(["colorTransparent"]),WebpackLoader_1.default.findByUniqueProperties(["buttonWrapper"]),WebpackLoader_1.default.findByUniqueProperties(["ButtonColors"])])}render(){let[flexModule,euhModule1,buttonModule,colorsModule]=this.modules,props={};this.props&&("color"in this.props&&(props.color=this.props.color),"children"in this.props&&(props.children=this.props.children),"onClick"in this.props&&(props.onClick=this.props.onClick),"wrapper"in this.props&&(props.wrapper=!!this.props.wrapper),"look"in this.props&&(props.look=this.props.look),"size"in this.props&&(props.size=this.props.size),"hoverColor"in this.props&&(props.hoverColor=this.props.hoverColor),"disabled"in this.props?props.disabled=this.props.disabled:props.disabled=!1),props.color?(props.color=props.color.toLowerCase(),Button.Colors.includes(props.color)||(props.color=Button.Colors[0])):props.color=Button.Colors[0],props.look?(props.look=props.look.toLowerCase(),Button.Looks.includes(props.look)||(props.look=Button.Looks[0])):props.look=Button.Looks[0],props.size?(props.size=props.size.toLowerCase(),Button.Sizes.includes(props.size)||(props.size=Button.Sizes[0])):props.size=Button.Sizes[0],props.hoverColor?(props.hoverColor=props.hoverColor.toLowerCase(),Button.HoverColors.includes(props.hoverColor)||(props.hoverColor=Button.HoverColors[0])):props.hoverColor=Button.HoverColors[0];let buttonSize=props.size&&colorsModule.ButtonSizes[props.size.toUpperCase()]||"";buttonSize&&(buttonSize=" "+buttonSize);let hoverColor=props.hoverColor&&colorsModule.ButtonHovers[props.hoverColor.toUpperCase()]||"";hoverColor&&(hoverColor=" "+hoverColor),props.onClick="function"==typeof props.onClick?props.onClick:()=>{},"boolean"!=typeof props.wrapper&&(props.wrapper=!0);let hover=this.state.hover?euhModule1.hasHover:"";hover&&(hover=" "+hover);let button=React.createElement("button",{type:"button",className:`${flexModule.flexChild} ${euhModule1.button} ${colorsModule.ButtonLooks[props.look.toUpperCase()]} ${colorsModule.ButtonColors[props.color.toUpperCase()]}${buttonSize}${hoverColor}${hover} ${euhModule1.grow}`,style:{flex:"0 1 auto"},onClick:this.props.onClick,onMouseEnter:ev=>{hoverColor&&this.setState({hover:!0})},onMouseLeave:ev=>{hoverColor&&this.setState({hover:!1})},disabled:props.disabled},React.createElement("div",{className:euhModule1.contents},props.children));return props.wrapper?React.createElement("div",{className:buttonModule.buttonWrapper},button):button}static get AllPreviews(){return AllPreviews||(()=>{AllPreviews=[];let colors=[];for(let color of Button.Colors)colors.push({color:color});AllPreviews.push(colors);let looks=[];for(let look of Button.Looks)looks.push({look:look});AllPreviews.push(looks);let sizes=[];for(let size of Button.Sizes)sizes.push({size:size});AllPreviews.push(sizes);let hovers=[];for(let hover of Button.HoverColors)hovers.push({hoverColor:hover});return AllPreviews.push(hovers),AllPreviews.push([{children:"Test Button"}]),AllPreviews.push([{onClick:()=>{}}]),AllPreviews.push([{wrapper:!1}]),AllPreviews.push([{disabled:!1},{disabled:!0}]),AllPreviews})()}}exports.default=Button,Button.Colors=["brand","grey","red","green","yellow","primary","link","white","black","transparent"],Button.Looks=["filled","inverted","outlined","ghost","link","blank"],Button.Sizes=["small","medium","large","xlarge","min","max","icon","none"],Button.HoverColors=["default",...Button.Colors]},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0),noop_1=__webpack_require__(1);let SwitchModules,AllPreviews;class Switch extends React.Component{constructor(props){super(props),this.state={value:props.value||!1},this.onChange=this.onChange.bind(this)}get modules(){return SwitchModules||(SwitchModules=[WebpackLoader_1.default.find(e=>e.default&&"Switch"===e.default.displayName).default])}render(){let[SwitchComponent]=this.modules,props=this.props;return React.createElement(SwitchComponent,{id:props.id,onChange:this.onChange,value:this.state.value||!1,fill:props.fill,theme:SwitchComponent.Themes[props.theme.toUpperCase()],disabled:props.disabled,className:props.className,size:SwitchComponent.Sizes[props.size.toUpperCase()],style:props.style})}onChange(value){this.props.onChange(!this.state.value),this.setState({value:!this.state.value})}get value(){return this.state.value}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{onChange:value=>{}}]),AllPreviews.push([{value:!1}],[{theme:"default"},{theme:"clear"}],[{disabled:!1},{disabled:!0}],[{id:"api-preview-switch"}],[{fill:null}],[{size:"default"},{size:"mini"}],[{style:{}}]),AllPreviews)}}exports.default=Switch,Switch.defaultProps={id:null,onChange:noop_1.default,value:!1,fill:null,theme:"default",disabled:!1,className:null,size:"default",style:{}},Switch.help={error:"The `clear` option doesn't work well on light theme."}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const noop_1=__webpack_require__(1),WebpackLoader_1=__webpack_require__(0);let RadioGroupModule,AllPreviews;class RadioGroup extends React.Component{constructor(props){super(props),this.onChange=this.onChange.bind(this),this.state={value:props.value}}onChange(ev){this.props.onChange(ev.value),this.setState({value:ev.value})}get modules(){return RadioGroupModule||(RadioGroupModule=[WebpackLoader_1.default.find(e=>e.default&&"RadioGroup"===e.default.displayName).default])}render(){let[RadioGroupComponent]=this.modules,props=this.props;return React.createElement(RadioGroupComponent,{options:props.options,onChange:this.onChange,value:this.state.value,disabled:props.disabled,size:RadioGroupComponent.Sizes[props.size.toUpperCase()],itemType:RadioGroupComponent.ItemTypes[props.itemType.toUpperCase()],infoClassName:props.infoClassName})}get value(){return this.state.value}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{options:[{value:"option1",name:"Option 1",desc:"description 1"},{value:"option2",name:"Option 2",desc:"description 2"},{value:"option3",name:"Option 3",desc:"description 3"}]}],[{value:"option1"}],[{disabled:!1},{disabled:!0}],[{size:"medium"},{size:"small"}],[{itemType:"bar"},{itemType:"panel"}]),AllPreviews)}}exports.default=RadioGroup,RadioGroup.defaultProps={options:[{value:"none",name:"No options",desc:"No options was passed to Choices. If you meant to display no options at all, please pass an empty array.",color:"#f04747"}],value:null,disabled:!1,size:"medium",itemType:"bar",infoClassName:null,onChange:noop_1.default}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0),noop_1=__webpack_require__(1);let TextAreaModules,AllPreviews;class TextArea extends React.Component{constructor(props){super(props),this.onChange=this.onChange.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.state={value:props.value||""}}get modules(){return TextAreaModules||(TextAreaModules=[WebpackLoader_1.default.find(e=>e.default&&"TextArea"===e.default.displayName).default])}onChange(value,name){this.props.onChange(value,name),this.setState({value:value})}onFocus(ev,name){this.props.onFocus(ev,name)}onBlur(ev,name){this.props.onBlur(ev,name)}onKeyDown(ev){this.props.onKeyDown(ev)}render(){let[TextAreaComponent]=this.modules,props=this.props;return React.createElement(TextAreaComponent,Object.assign({},props,{onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,value:this.state.value}))}get value(){return this.state.value||""}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{name:"api-preview-textarea"}]),AllPreviews.push([{disabled:!1},{disabled:!0}]),AllPreviews.push([{placeholder:null}]),AllPreviews.push([{autoFocus:!1},{autoFocus:!0}]),AllPreviews.push([{resizeable:!1},{resizeable:!0}]),AllPreviews.push([{flex:!1},{flex:!0}]),AllPreviews.push([{autosize:!1},{autosize:!0}]),AllPreviews.push([{rows:3},{rows:2},{rows:1}]),AllPreviews.push([{value:""}]),AllPreviews.push([{error:null},{error:"Example error"}]),AllPreviews.push([{maxLength:100}]),AllPreviews.push([{className:""}]),AllPreviews.push([{inputClassName:""}]),AllPreviews.push([{id:"api-preview-textarea"}]),AllPreviews)}}exports.default=TextArea,TextArea.defaultProps={name:null,disabled:!1,placeholder:null,autoFocus:!1,resizeable:!1,flex:!1,autosize:!1,rows:3,value:"",error:null,maxLength:null,className:null,id:null,onChange:noop_1.default,onFocus:noop_1.default,onBlur:noop_1.default,onKeyDown:noop_1.default},TextArea.help={warn:"This should be used for multi line inputs."}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const noop_1=__webpack_require__(1),WebpackLoader_1=__webpack_require__(0);let DropdownModules,AllPreviews;class Dropdown extends React.Component{constructor(props){super(props),this.onChange=this.onChange.bind(this),this.state={value:props.value||null}}onChange(value){this.props.onChange(value),this.setState({value:value})}get modules(){return DropdownModules||(DropdownModules=[WebpackLoader_1.default.find(e=>e.default&&"SelectTempWrapper"===e.default.displayName).default])}render(){let[DropdownComponent]=this.modules,props=this.props;return React.createElement(DropdownComponent,Object.assign({},props,{onChange:this.onChange,value:this.state.value}))}get value(){return this.state.value}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{error:null},{error:"An error occured"}],[{options:[{value:"option1",label:"Option 1"},{value:"option2",label:"Option 2"},{value:"option3",label:"Option 3"}]}],[{value:"option1"}],[{disabled:!1},{disabled:!0}],[{searchable:!0},{searchable:!1}],[{clearable:!0},{clearable:!1}],[{isMulti:!1},{isMulti:!0}]),AllPreviews)}}exports.default=Dropdown,Dropdown.defaultProps={className:null,error:null,options:[{value:"none",label:"No options - No options was passed to Dropdown. If you meant to put an empty dropdown, input an empty array."}],valueRenderer:null,multiValueRenderer:null,optionRenderer:null,onChange:noop_1.default,value:null,disabled:!1,searchable:!1,clearable:!1,styleOverrides:null,lightThemeColorOverrides:null,darkThemeColorOverrides:null,isMulti:!1}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0),Title_1=__webpack_require__(3);let TitleModules,AllPreviews;class SettingsTitle extends React.Component{constructor(props){super(props)}get modules(){return TitleModules||(TitleModules=[WebpackLoader_1.default.find(e=>"string"==typeof e.marginTop60)])}render(){let[marginModule]=this.modules,props=this.props,className=`${marginModule.marginTop60} ${marginModule.marginBottom20}`;return props.className&&(className=0+props.className),React.createElement(Title_1.default,{className:className},props.children)}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{children:"Exemple title"}]),AllPreviews)}}exports.default=SettingsTitle,SettingsTitle.defaultProps={children:[""],className:""}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tab=void 0;const noop_1=__webpack_require__(1),Title_1=__webpack_require__(3);class Tabs extends React.Component{constructor(props){super(props),this.tabsElements=[],this.state={active:this.props.active||null}}get tabs(){return this.props.tabs||[]}changeTab(tab){tab!==this.state.active&&(this.props.onChange&&this.props.onChange(tab),this.setState({active:tab}),this.tabsElements.forEach(e=>e.setActive(tab===e.props.id)))}render(){return React.createElement("div",{className:"lc-tabWrapper",style:this.props.style},React.createElement("div",{className:"lc-tabnav",style:{flex:"0 1 auto"}},this.tabs.map(tab=>React.createElement(Tab,{TabContainer:this,title:tab.label,id:tab.id,key:btoa(tab.label+":"+tab.id)}))),React.createElement("div",{className:"lc-tab"},this.props.children))}isActive(tab){return this.state.active===tab}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{children:React.createElement("div",{style:{marginTop:"20px",marginBottom:"20px"}},React.createElement("div",{style:{backgroundColor:"var(--background-primary)",padding:"30px 30px",borderRadius:"8px"},className:"lc-tab-box-shadow"},React.createElement(Title_1.default,null,"Preview tabs")))}],[{tabs:[{label:"Active tab",id:"1"},{label:"Unactive tab",id:"2"}]}],[{active:"1"}],[{onChange:tabId=>{}}]),AllPreviews)}}let AllPreviews;exports.default=Tabs,Tabs.defaultProps={children:null,tabs:[{label:"No tabs was passed to <Tabs>.",id:"none"}],active:null,onChange:noop_1.default,style:{}};class Tab extends React.Component{constructor(props){super(props),this.state={active:props.TabContainer.isActive(props.id)},this.props.TabContainer.tabsElements.push(this)}setActive(isActive){this.setState({active:!!isActive})}render(){let className="lc-navItem";return this.state.active?className+=" lc-navItemActive":className+=" lc-navItemInactive",React.createElement("div",{className:className,onClick:()=>{this.props.TabContainer.changeTab(this.props.id)}},this.props.title)}}exports.Tab=Tab},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0);let TitleModules,AllPreviews;class SettingSubTitle extends React.Component{get modules(){return TitleModules||(TitleModules=[WebpackLoader_1.default.find(e=>"string"==typeof e.marginTop60),WebpackLoader_1.default.findByUniqueProperties(["h5"]),window.Lightcord.Api.WebpackLoader.findByUniqueProperties(["size14"]),window.Lightcord.Api.WebpackLoader.findByUniqueProperties(["colorStandard"])])}render(){let[marginModule,titleModule,sizeModule,colorModule]=this.modules,props=this.props,className=`${colorModule.colorStandard} ${sizeModule.size14} ${titleModule.h5} ${marginModule.marginBottom4}`;return props.className&&(className=0+props.className),React.createElement("h5",{className:className},props.children)}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{children:"Exemple title"}]),AllPreviews)}}exports.default=SettingSubTitle,SettingSubTitle.defaultProps={children:[],className:""}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0);let CodeBlockModules,AllPreviews;class CodeBlock extends React.Component{get modules(){return CodeBlockModules||(CodeBlockModules=[WebpackLoader_1.default.find(e=>e.markup),WebpackLoader_1.default.find(e=>e.messageContent),WebpackLoader_1.default.find(e=>e.scrollbarGhostHairline),WebpackLoader_1.default.find(e=>e.highlight),WebpackLoader_1.default.find(e=>e.marginBottom8)])}render(){let[messageModule1,messageModule2,scrollbarModule1,hightlightJS,marginModule1]=this.modules;const code="plaintext"===this.props.language?React.createElement("code",{className:scrollbarModule1.scrollbarGhostHairline+" hljs"},this.props.content):React.createElement("code",{className:scrollbarModule1.scrollbarGhostHairline+" hljs",dangerouslySetInnerHTML:{__html:hightlightJS.highlight(this.props.language,this.props.content).value}});return React.createElement("div",{className:`${messageModule1.markup} ${messageModule2.messageContent}`},React.createElement("pre",null,code),React.createElement("div",{className:marginModule1.marginBottom8}))}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{content:'console.log("Exemple code")'}]),AllPreviews.push([{language:"js"},{language:"plaintext"},...CodeBlock.prototype.modules[3].listLanguages().filter(e=>"js"!==e).map(e=>({language:e}))]),AllPreviews)}}exports.default=CodeBlock,CodeBlock.defaultProps={language:"plaintext",content:""}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0),excludeProperties_1=__webpack_require__(5);let TooltipModules,AllPreviews;class Tooltip extends React.Component{constructor(props){super(props)}get modules(){return TooltipModules||(TooltipModules=[WebpackLoader_1.default.find(e=>e.default&&"Tooltip"===e.default.displayName)])}render(){let[Tooltip]=this.modules,props=excludeProperties_1.default(this.props,["children"]);return React.createElement(Tooltip.default,props,data=>React.createElement("div",Object.assign(Object.assign({},data),{style:{width:"fit-content",height:"fit-content"}}),this.props.children))}static get AllPreviews(){return AllPreviews||(()=>{AllPreviews=[],AllPreviews.push([{children:React.createElement(window.Lightcord.Api.Components.inputs.Button,{color:"green",look:"ghost",size:"small",hoverColor:"yellow",onClick:()=>{},wrapper:!1},"Hover this button to see the tooltip")}]),AllPreviews.push([{text:"Example Tooltip Text"}]);let colors=[];Tooltip.Colors.forEach(color=>{colors.push({color:color})}),AllPreviews.push(colors);let positions=[];return Tooltip.Positions.forEach(p=>{positions.push({position:p})}),AllPreviews.push(positions),AllPreviews})()}}exports.default=Tooltip,Tooltip.defaultProps={children:null,text:"No text was passed to Tooltip",position:"top",color:"brand"},Tooltip.Positions=["top","left","right","bottom"],Tooltip.Colors=["black","grey","brand","green","yellow","red"]},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const noop_1=__webpack_require__(1),WebpackLoader_1=__webpack_require__(0),Utils_1=__webpack_require__(2),Constants={defaultColor:10070709,baseColors:[1752220,3066993,3447003,10181046,15277667,15844367,15105570,15158332,9807270,6323595,1146986,2067276,2123412,7419530,11342935,12745742,11027200,10038562,9936031,5533306]};let ColorPickerModules,AllPreviews,isFetching=null;class ColorPicker extends React.PureComponent{constructor(props){super(props),this.state={value:props.value||null,lastColor:this.props.value},this.onChange=this.onChange.bind(this)}static preload(){ColorPicker.prototype.modules[0]||isFetching||new ColorPicker({}).render()}onChange(val){this.props.onChange(val),this.setState({value:val}),this.forceUpdate()}get modules(){return ColorPickerModules||(ColorPickerModules=[WebpackLoader_1.default.find(e=>e.default&&"ColorPicker"===e.default.displayName)])}renderColorPicker(){let[ColorPickerComponent]=this.modules;if(!ColorPickerComponent){if(isFetching)return isFetching.then(()=>this.forceUpdate()),null;let resolve;ColorPickerModules=null,isFetching=new Promise(res=>resolve=res);let children=(new(WebpackLoader_1.default.find(e=>e.default&&e.default.displayName&&e.default.displayName.includes("GuildSettingsRoles")).default)).render().type.prototype.renderRoleSettings.call({props:{guild:{roles:[],id:null,isOwner:()=>!1},currentUser:{id:null}},getSelectedRole:()=>({id:null})}).props.children.type.prototype.renderColorPicker.call({props:{role:{id:null,color:0},locked:!1,everyone:!1}}).props.children;return children.type(children.props).props.children.type._ctor().then(c=>{this.forceUpdate(),resolve()}),null}return React.createElement(ColorPickerComponent.default,{colors:this.props.baseColors,defaultColor:this.props.defaultColor,value:this.state.value,disabled:this.props.disabled,onChange:this.onChange,customColor:this.props.customColor})}render(){return this.state.lastColor!==this.props.value&&(this.state={value:this.props.value,lastColor:this.props.value}),this.renderColorPicker()}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{disabled:!1},{disabled:!0}],[{value:Utils_1.default.HexColorToDecimal("#7289DA")},{value:null}],[{onChange:color=>{}}]),AllPreviews)}}exports.default=ColorPicker,ColorPicker.defaultProps={defaultColor:Constants.defaultColor,customColor:null,baseColors:Constants.baseColors,value:null,disabled:!1,onChange:noop_1.default},ColorPicker.help={info:"To convert hex colors to decimal, you can do `Lightcord.Api.Utils.HexColorToDecimal('#yourcolor')` and go back with `Lightcord.Api.Utils.DecimalColorToHex(7506394)`",warn:"The component may not appear instantly. The component needs to be loaded, so you could experience 50-300ms loading time depending on your internet connection."}},function(module,exports,__webpack_require__){"use strict";module.exports=window.ReactDOM},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const components_1=__webpack_require__(8),Utils_1=__webpack_require__(2),uuid_1=__webpack_require__(6),TextInput_1=__webpack_require__(9);exports.default=new class PluginUtilities{constructor(){}renderSettings(settings){let items=this.renderSettingsToReact(settings),elem=React.createElement("div",{key:uuid_1.default()},items);return Utils_1.default.ReactToHTMLElement(elem)}renderSettingsToReact(settings){let items=[];return settings.forEach(item=>{if("object"!=typeof item)return items.push(item);item.props&&"children"in item.props&&(Array.isArray(item.props.children)||(item.props.children=[item.props.children]),item.props.children=this.renderSettingsToReact(item.props.children)),item.props||(item.props={}),item.props.key=uuid_1.default();let component=Utils_1.default.getNestedProps(components_1.default,item.component);if(component)items.push(React.createElement(component,Object.create(item.props)));else{let warning=new TextInput_1.default({value:`Warning: No component was found for: "${item.component}". Please correct your code.`,disabled:!0,error:`Warning: No component was found for: "${item.component}". Please correct your code.`}).render();items.push(warning)}}),items}}},function(module,exports){module.exports=require("uuid/v1")},function(module,exports){module.exports=require("uuid/v4")},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const WebpackLoader_1=__webpack_require__(0);let AlertBoxModules,AllPreviews;class AlertBox extends React.Component{get modules(){return AlertBoxModules||(AlertBoxModules=[WebpackLoader_1.default.find(e=>e.default&&"Markdown"===e.default.displayName&&e.default.defaultProps.parser).default])}render(){const[Markdown]=this.modules;let wrap,children;return"string"==typeof this.props.children?(wrap=Markdown.prototype.render.call({props:Object.assign({className:"",children:this.props.children},Markdown.defaultProps)}),children=wrap.props.children):(wrap=Markdown.prototype.render.call({props:Object.assign({className:"",children:""},Markdown.defaultProps)}),children=this.props.children),wrap.props.children=React.createElement("div",{className:"lc-alert-box lc-alert-box-"+this.props.type},React.createElement("blockquote",{className:"lc-blockquote"},children)),wrap}static get AllPreviews(){return AllPreviews||(AllPreviews=[],AllPreviews.push([{children:"***Discord's*** **Markdown** _is_ [supported](https://google.com) or you can just insert your own react childs."}],[{type:"info"},{type:"success"},{type:"warn"},{type:"error"}]),AllPreviews)}}exports.default=AlertBox,AlertBox.defaultProps={type:"info",children:null},AlertBox.help={info:"You can insert markdown (as string) or normal react childs",warn:"All string will be interpreted as markdown. If you want raw string, pass an array with the string inside."}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Notice=void 0;const Notices_1=__webpack_require__(7),Utils_1=__webpack_require__(2),uuid_1=__webpack_require__(6),cloneNullProto_1=__webpack_require__(4),events_1=__webpack_require__(11),Notice_1=__webpack_require__(10),excludeProperties_1=__webpack_require__(5),noop_1=__webpack_require__(1),WebpackLoader_1=__webpack_require__(0);let soundModule;exports.default=new class DiscordTools{showNotice(data){if("object"!=typeof data||"string"!=typeof data.text)throw new Error("This notice is not valid. Given: "+Utils_1.default.formatJSObject(data));let newData=cloneNullProto_1.default(Object.assign({},Notice_1.defaultNotice,data));newData.id=uuid_1.default(),Notices_1.notices.push(newData),Notices_1.events.emit("noticeUpdate");return new Notice(newData)}get notices(){return Notices_1.notices.map(data=>new Notice(data))}showNotification(data){const notification=new window.Notification(data.title,excludeProperties_1.default(data,["title","onClick","onClose","onShow"]));return notification.onclick=data.onClick||noop_1.default,notification.onshow=data.onShow||noop_1.default,notification.onclose=data.onClose||noop_1.default,notification}createSound(sound){if(soundModule=soundModule||WebpackLoader_1.default.findByUniqueProperties(["createSound"]),!soundModule)throw new WebpackLoader_1.WebpackLoaderError("Couldn't find soundModule here.");return soundModule.createSound(sound)}playSound(sound){const created=this.createSound(sound);return created.play(),created}};const EventHandler=function(){this.removed!==this.state.removed&&this.removed&&this.emit("removed"),this.showing!==this.state.showing&&(this.showing?this.emit("showing",!0):this.emit("showing",!1)),this.index!==this.state.index&&this.emit("index",this.index)};class Notice extends events_1.EventEmitter{constructor(data){super(),this.data=data,this.state={removed:this.removed,showing:this.showing,index:this.index};let eventFunc=EventHandler.bind(this);Notices_1.events.on("noticeUpdate",eventFunc),this.on("removed",()=>{Notices_1.events.off("noticeUpdate",eventFunc)})}on(event,listener){return super.on(event,listener)}once(event,listener){return super.once(event,listener)}off(event,listener){return super.off(event,listener)}get removed(){return!Notices_1.notices.find(e=>e.id===this.id)}get showing(){return 0===this.index}get index(){return Notices_1.notices.findIndex(e=>e.id===this.id)}get id(){return this.data.id}get text(){return this.data.text}set text(text){this.data.text=text,Notices_1.events.emit("noticeUpdate")}get type(){return this.data.type}set type(type){this.data.type=type,Notices_1.events.emit("noticeUpdate")}get buttonText(){return this.data.buttonText}set buttonText(buttonText){this.data.buttonText=buttonText,Notices_1.events.emit("noticeUpdate")}get onClick(){return this.data.onClick}set onClick(onClick){this.data.onClick=onClick,Notices_1.events.emit("noticeUpdate")}remove(){this.removed||(Notices_1.notices.splice(this.index,1),Notices_1.events.emit("noticeUpdate"))}}exports.Notice=Notice},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.patch=void 0;const Utils_1=__webpack_require__(2),Notices_1=__webpack_require__(7);function getModule(filter){return new Promise(resolve=>{window.Lightcord.Api.ensureExported(filter).then(resolve).catch(err=>{console.error("[LIGHTCORD]",err,filter)})})}exports.patch=function patch(){getModule(e=>e.default&&"ConnectedAppView"===e.default.displayName).then(async mod=>{const appClasses=await getModule(e=>e.hasNotice),buildRender=original=>function render(){const returnValue=original.call(this,...arguments),newchildren=[];let children=returnValue.props.children[1].props.children;return Array.isArray(children)||(children=[children]),newchildren.push(children[0]),newchildren.push(React.createElement(Notices_1.default,{container:this})),newchildren.push(children[1]),returnValue.props.children[1].props.children=newchildren,returnValue.props.children[1].props.children[2].props.children[0].props.render=buildRenderChannelSidebar(returnValue.props.children[1].props.children[2].props.children[0].props.render),returnValue},buildRenderChannelSidebar=original=>function renderChannelSidebar(){const returnValue=original.call(this,...arguments),hasNotice=Notices_1.notices.length>0;return hasNotice?(Utils_1.default.hasClass(returnValue.props.className,appClasses.hasNotice)||(returnValue.props.className+=" "+Utils_1.default.removeDa(appClasses.hasNotice)),returnValue):returnValue};mod.default.prototype.render=buildRender(mod.default.prototype.render),async function(){const base=document.querySelector("."+Utils_1.default.removeDa(appClasses.base));if(!base)throw new Error("Could not find base here");const elem=Utils_1.default.FindReact(base);elem.render=buildRender(elem.render),elem.forceUpdate()}()})}},function(module,exports,__webpack_require__){"use strict";function unfreeze(o){var oo=void 0;if(o instanceof Array){oo=[];o.forEach((function(v){oo.push(v)}))}else if(o instanceof String)oo=new String(o).toString();else if("object"==typeof o)for(var property in oo={},o)oo[property]=o[property];return oo}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=unfreeze,Object.unfreeze=unfreeze}]);