@nickbusey/thelounge
Version:
The self-hosted Web IRC client
1 lines β’ 339 kB
JavaScript
(()=>{var e,n={1039:(e,n,a)=>{var t={"./away.vue":4509,"./back.vue":5381,"./chghost.vue":3089,"./ctcp.vue":4878,"./ctcp_request.vue":7052,"./error.vue":3576,"./invite.vue":6502,"./join.vue":1770,"./kick.vue":2501,"./mode.vue":7393,"./mode_channel.vue":1686,"./mode_user.vue":1267,"./monospace_block.vue":6258,"./nick.vue":5169,"./part.vue":3397,"./quit.vue":9561,"./raw.vue":7928,"./topic.vue":6096,"./topic_set_by.vue":4886,"./whois.vue":801};function i(e){var n=s(e);return a(n)}function s(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}i.keys=function(){return Object.keys(t)},i.resolve=s,e.exports=i,i.id=1039},2664:(e,n,a)=>{var t={"./collapse.ts":1329,"./expand.ts":102,"./index.ts":3805,"./join.ts":7301,"./search.ts":960};function i(e){var n=s(e);return a(n)}function s(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}i.keys=function(){return Object.keys(t)},i.resolve=s,e.exports=i,i.id=2664},7286:(e,n,a)=>{"use strict";a.d(n,{Z:()=>s});var t=a(2297),i=a(9260);class s{static signout(){t.Z.clear(),i.Z.reload()}}},1329:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>s});var t=a(8687),i=a(6084);const s={input:function(){if(!i.h.state.activeChannel)return;const e=[];for(const n of i.h.state.activeChannel.channel.messages){let a=!1;for(const e of n.previews)e.shown&&(e.shown=!1,a=!0);a&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&t.Z.emit("msg:preview:toggle",{target:i.h.state.activeChannel.channel.id,messageIds:e,shown:!1}),!0}}},102:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>s});var t=a(8687),i=a(6084);const s={input:function(){if(!i.h.state.activeChannel)return;const e=[];for(const n of i.h.state.activeChannel.channel.messages){let a=!1;for(const e of n.previews)e.shown||(e.shown=!0,a=!0);a&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&t.Z.emit("msg:preview:toggle",{target:i.h.state.activeChannel.channel.id,messageIds:e,shown:!0}),!0}}},3805:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>i});const t=a(2664),i=t.keys().reduce(((e,n)=>{const a=n.substring(2,n.length-3);return"index"===a||(e[a]=t(n).default),e}),{})},7301:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>o});var t=a(8687),i=a(6084),s=a(4173);const o={input:function(e){if(e.length>0){let n=e[0];if(n.length>0){const a=i.h.state.activeChannel.network.serverOptions.CHANTYPES,o=e[0].split(",");if(a&&a.length>0)for(let e=0;e<o.length;e++)a.includes(o[e][0])||(o[e]=a[0]+o[e]);n=o.join(",");const r=i.h.getters.findChannelOnCurrentNetwork(n);if(!r)return i.h.state.activeChannel&&t.Z.emit("input",{text:`/join ${n} ${e.length>1?e[1]:""}`,target:i.h.state.activeChannel.channel.id}),!0;(0,s.qZ)(r)}}else if("channel"===i.h.state.activeChannel.channel.type)return t.Z.emit("input",{target:i.h.state.activeChannel.channel.id,text:`/join ${i.h.state.activeChannel.channel.name}`}),!0}}},960:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>s});var t=a(6084),i=a(4173);const s={input:function(e){return!!t.h.state.settings.searchEnabled&&(i.Nd.push({name:"SearchResults",params:{id:t.h.state.activeChannel.channel.id},query:{q:e.join(" ")}}).catch((e=>{console.error(`Failed to push SearchResults route: ${e.message}`)})),!0)}}},9307:(e,n,a)=>{"use strict";a.d(n,{Z:()=>t});const t={colorCodeMap:[["00","White"],["01","Black"],["02","Blue"],["03","Green"],["04","Red"],["05","Brown"],["06","Magenta"],["07","Orange"],["08","Yellow"],["09","Light Green"],["10","Cyan"],["11","Light Cyan"],["12","Light Blue"],["13","Pink"],["14","Grey"],["15","Light Grey"]],commands:[],condensedTypes:new Set(["chghost","join","part","quit","nick","kick","mode"]),timeFormats:{msgDefault:"HH:mm",msgWithSeconds:"HH:mm:ss",msg12h:"hh:mm A",msg12hWithSeconds:"hh:mm:ss A"},mobileViewportPixels:768}},8833:(e,n,a)=>{"use strict";a.d(n,{Z:()=>i});const t=new Map,i=new class{on(e,n){t.has(e)?t.get(e).push(n):t.set(e,[n])}off(e,n){t.has(e)&&t.set(e,t.get(e).filter((e=>e!==n)))}emit(e,...n){t.has(e)&&t.get(e).slice().map((e=>{e(...n)}))}}},5118:(e,n,a)=>{"use strict";a.d(n,{Z:()=>t});const t=function([e,n],[a,t]){return Math.hypot(e-a,n-t)}},5785:(e,n,a)=>{"use strict";a.d(n,{Z:()=>i});const t=["Bytes","KiB","MiB","GiB","TiB","PiB"],i=e=>{const n=e>0?Math.floor(Math.log(e)/Math.log(1024)):0;return`${parseFloat((e/Math.pow(1024,n)).toFixed(1))} ${t[n]}`}},5485:(e,n,a)=>{"use strict";a.d(n,{Z:()=>i});var t=a(6084);const i=(e,n)=>!(!e.isCollapsed||n.highlight||"lobby"===n.type||t.h.state.activeChannel&&n===t.h.state.activeChannel.channel)},4827:(e,n,a)=>{"use strict";a.d(n,{Z:()=>t});const t=e=>("TEXTAREA"===e.target.tagName||"INPUT"===e.target.tagName)&&!!e.target.value},8017:(e,n,a)=>{"use strict";a.d(n,{Z:()=>s});var t=a(7484),i=a.n(t);const s=e=>i()(e).format("D MMMM YYYY, HH:mm:ss")},2297:(e,n,a)=>{"use strict";a.d(n,{Z:()=>t});const t={set(e,n){try{window.localStorage.setItem(e,n)}catch(e){}},get(e){try{return window.localStorage.getItem(e)}catch(e){return null}},remove(e){try{window.localStorage.removeItem(e)}catch(e){}},clear(){try{window.localStorage.clear()}catch(e){}}}},9260:(e,n,a)=>{"use strict";a.d(n,{Z:()=>t});const t={reload(){window.location.reload()}}},4173:(e,n,a)=>{"use strict";a.d(n,{c4:()=>ud,Nd:()=>gd,qZ:()=>dd});var t=a(9307),i=a(2119),s=a(3648);const o={id:"sign-in",class:"window",role:"tabpanel","aria-label":"Sign-in"},r=(0,s._)("img",{src:"img/logo-vertical-transparent-bg.svg",class:"logo",alt:"The Lounge",width:"256",height:"170"},null,-1),l=(0,s._)("img",{src:"img/logo-vertical-transparent-bg-inverted.svg",class:"logo-inverted",alt:"The Lounge",width:"256",height:"170"},null,-1),c=(0,s._)("label",{for:"signin-username"},"Username",-1),g=["value"],u={class:"password-container"},d=(0,s._)("label",{for:"signin-password"},"Password",-1),p=["type"],h={key:0,class:"error"},m=["disabled"];var f=a(2297),w=a(8687),b=a(3577);const k=["aria-label"],v=["aria-label"];var y=a(8015);const _=(0,s.aZ)({name:"RevealPassword",setup(){const e=(0,y.iH)(!1);return{isVisible:e,onClick:()=>{e.value=!e.value}}}});var C=a(3744);const x=(0,C.Z)(_,[["render",function(e,n,a,t,i,o){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s.WI)(e.$slots,"default",{isVisible:e.isVisible}),(0,s._)("span",{ref:"revealButton",type:"button",class:(0,b.C_)(["reveal-password tooltipped tooltipped-n tooltipped-no-delay",{"reveal-password-visible":e.isVisible}]),"aria-label":e.isVisible?"Hide password":"Show password",onClick:n[0]||(n[0]=(...n)=>e.onClick&&e.onClick(...n))},[(0,s._)("span",{"aria-label":e.isVisible?"Hide password":"Show password"},null,8,v)],10,k)])}]]),S=(0,s.aZ)({name:"SignIn",components:{RevealPassword:x},setup(){const e=(0,y.iH)(!1),n=(0,y.iH)(!1),a=(0,y.iH)(null),t=(0,y.iH)(null),i=()=>{e.value=!1,n.value=!0};return(0,s.bv)((()=>{w.Z.on("auth:failed",i)})),(0,s.Jd)((()=>{w.Z.off("auth:failed",i)})),{inFlight:e,errorShown:n,username:a,password:t,onSubmit:i=>{if(i.preventDefault(),!a.value||!t.value)return;e.value=!0,n.value=!1;const s={user:a.value?.value,password:t.value?.value};f.Z.set("user",s.user),w.Z.emit("auth:perform",s)},getStoredUser:()=>f.Z.get("user")}}}),D=(0,C.Z)(S,[["render",function(e,n,a,t,i,f){const w=(0,s.up)("RevealPassword");return(0,s.wg)(),(0,s.iD)("div",o,[(0,s._)("form",{class:"container",method:"post",action:"",onSubmit:n[0]||(n[0]=(...n)=>e.onSubmit&&e.onSubmit(...n))},[r,l,c,(0,s._)("input",{id:"signin-username",ref:"username",class:"input",type:"text",name:"username",autocapitalize:"none",autocorrect:"off",autocomplete:"username",value:e.getStoredUser(),required:"",autofocus:""},null,8,g),(0,s._)("div",u,[d,(0,s.Wm)(w,null,{default:(0,s.w5)((e=>[(0,s._)("input",{id:"signin-password",ref:"password",type:e.isVisible?"text":"password",name:"password",class:"input",autocapitalize:"none",autocorrect:"off",autocomplete:"current-password",required:""},null,8,p)])),_:1})]),e.errorShown?((0,s.wg)(),(0,s.iD)("div",h,"Authentication failed.")):(0,s.kq)("",!0),(0,s._)("button",{disabled:e.inFlight,type:"submit",class:"btn"},"Sign in",8,m)],32)])}]]);var Z=a(6084),j=a(1406);const q={id:"connect",class:"window",role:"tabpanel","aria-label":"Connect"},U={class:"header"},M={class:"title"},T=(0,s.Uk)(" Connect "),z=(0,s._)("h2",null,"Network settings",-1),P={class:"connect-row"},H=(0,s._)("label",{for:"connect:name"},"Name",-1),O={class:"connect-row"},L=(0,s._)("label",{for:"connect:host"},"Server",-1),I={class:"input-wrap"},E=(0,s._)("span",{id:"connect:portseparator"},":",-1),A={class:"connect-row"},N=(0,s._)("label",{for:"connect:password"},"Password",-1),Y=["type"],R={class:"connect-row"},W=(0,s._)("label",null,null,-1),F={class:"input-wrap"},B={class:"tls"},$=["disabled"],V=(0,s.Uk)(" Use secure connection (TLS) "),J={key:0,class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"This network has a strict transport security policy, you will be unable to disable TLS"},K={class:"tls"},G=(0,s.Uk)(" Only allow trusted certificates "),X=(0,s._)("h2",null,"Proxy Settings",-1),Q={class:"connect-row"},ee=(0,s._)("label",null,null,-1),ne={class:"input-wrap"},ae={for:"connect:proxyEnabled"},te=(0,s.Uk)(" Enable Proxy "),ie={class:"connect-row"},se=(0,s._)("label",{for:"connect:proxyHost"},"SOCKS Address",-1),oe={class:"input-wrap"},re=(0,s._)("span",{id:"connect:proxyPortSeparator"},":",-1),le={class:"connect-row"},ce=(0,s._)("label",{for:"connect:proxyUsername"},"Proxy username",-1),ge={class:"connect-row"},ue=(0,s._)("label",{for:"connect:proxyPassword"},"Proxy password",-1),de=["type"],pe=(0,s._)("h2",null,"Network settings",-1),he={class:"connect-row"},me=(0,s._)("label",{for:"connect:name"},"Name",-1),fe={class:"connect-row"},we=(0,s._)("label",{for:"connect:password"},"Password",-1),be=["type"],ke=(0,s._)("h2",null,"User preferences",-1),ve={class:"connect-row"},ye=(0,s._)("label",{for:"connect:nick"},"Nick",-1),_e={key:2,class:"connect-row"},Ce=(0,s._)("label",{for:"connect:username"},"Username",-1),xe={class:"connect-row"},Se=(0,s._)("label",{for:"connect:realname"},"Real name",-1),De={class:"connect-row"},Ze=(0,s._)("label",{for:"connect:leaveMessage"},"Leave message",-1),je={key:3,class:"connect-row"},qe=(0,s._)("label",{for:"connect:commands"},[(0,s.Uk)(" Commands "),(0,s._)("span",{class:"tooltipped tooltipped-ne tooltipped-no-delay","aria-label":"One /command per line.\nEach command will be executed in\nthe server tab on new connection"},[(0,s._)("button",{class:"extra-help"})])],-1),Ue=["value"],Me={key:4,class:"connect-row"},Te=(0,s._)("label",{for:"connect:channels"},"Channels",-1),ze={class:"connect-row"},Pe=(0,s._)("label",null,null,-1),He={class:"input-wrap"},Oe={class:"tls"},Le=(0,s.Uk)(" I have a password "),Ie={key:0,class:"connect-row"},Ee=(0,s._)("label",{for:"connect:password"},"Password",-1),Ae=["type"],Ne=(0,s._)("h2",{id:"label-auth"},"Authentication",-1),Ye={class:"connect-row connect-auth",role:"group","aria-labelledby":"label-auth"},Re={class:"opt"},We=["checked"],Fe=(0,s.Uk)(" No authentication "),Be={class:"opt"},$e=["checked"],Ve=(0,s.Uk)(" Username + password (SASL PLAIN) "),Je={key:0,class:"opt"},Ke=["checked"],Ge=(0,s.Uk)(" Client certificate (SASL EXTERNAL) "),Xe={class:"connect-row"},Qe=(0,s._)("label",{for:"connect:username"},"Account",-1),en={class:"connect-row"},nn=(0,s._)("label",{for:"connect:password"},"Password",-1),an=["type"],tn={key:1,class:"connect-sasl-external"},sn=[(0,s._)("p",null,"The Lounge automatically generates and manages the client certificate.",-1),(0,s._)("p",null," On the IRC server, you will need to tell the services to attach the certificate fingerprint (certfp) to your account, for example: ",-1),(0,s._)("pre",null,[(0,s._)("code",null,"/msg NickServ CERT ADD")],-1)],on=["disabled"],rn=(0,s.Uk)("Save network"),ln=(0,s.Uk)("Connect"),cn=(0,s.aZ)({name:"SidebarToggle",setup:()=>({store:(0,Z.oR)()})}),gn=(0,C.Z)(cn,[["render",function(e,n,a,t,i,o){return(0,s.wg)(),(0,s.iD)("button",{class:"lt","aria-label":"Toggle channel list",onClick:n[0]||(n[0]=n=>e.store.commit("toggleSidebar"))})}]]),un=(0,s.aZ)({name:"NetworkForm",components:{RevealPassword:x,SidebarToggle:gn},props:{handleSubmit:{type:Function,required:!0},defaults:{type:Object,required:!0},disabled:Boolean},setup(e){const n=(0,Z.oR)(),a=(0,y.iH)(n.state.serverConfiguration),t=(0,y.iH)(e.defaults?.username),i=(0,y.iH)(!1),o=(0,y.iH)(null);(0,s.YP)(i,(e=>{e&&(0,s.Y3)((()=>{o.value?.focus()}))}));const r=(0,y.iH)(null),l=()=>{r.value&&(r.value.style.height="",r.value.style.height=`${Math.ceil(r.value.scrollHeight+2)}px`)};(0,s.YP)((()=>e.defaults?.commands),(()=>{(0,s.Y3)((()=>{l()}))})),(0,s.YP)((()=>e.defaults?.tls),(n=>{const a=[6667,6697],t=n?0:1;e.defaults?.port===a[t]&&(e.defaults.port=a[1-t])}));const c=(0,y.iH)(null);return{store:n,config:a,displayPasswordField:i,publicPassword:o,commandsInput:r,resizeCommandsInput:l,setSaslAuth:n=>{e.defaults&&(e.defaults.sasl=n)},usernameInput:c,onNickChanged:e=>{if(!c.value)return;const n=c.value;n.value&&n.value!==t.value||(n.value=e.target?.value),t.value=e.target?.value},onSubmit:n=>{const a=new FormData(n.target),t={};a.forEach(((e,n)=>{t[n]=e})),e.handleSubmit(t)}}}}),dn=(0,C.Z)(un,[["render",function(e,n,a,t,i,o){const r=(0,s.up)("SidebarToggle"),l=(0,s.up)("RevealPassword");return(0,s.wg)(),(0,s.iD)("div",q,[(0,s._)("div",U,[(0,s.Wm)(r)]),(0,s._)("form",{class:"container",method:"post",action:"",onSubmit:n[28]||(n[28]=(0,j.iM)(((...n)=>e.onSubmit&&e.onSubmit(...n)),["prevent"]))},[(0,s._)("h1",M,[e.defaults.uuid?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.wy)((0,s._)("input",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.defaults.uuid=n),type:"hidden",name:"uuid"},null,512),[[j.nr,e.defaults.uuid]]),(0,s.Uk)(" Edit "+(0,b.zw)(e.defaults.name),1)],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[T,e.config?.lockNetwork&&e.store?.state.serverConfiguration?.public?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)(" to "+(0,b.zw)(e.defaults.name),1)],64)):(0,s.kq)("",!0)],64))]),e.config?.lockNetwork?e.config.lockNetwork&&!e.store.state.serverConfiguration?.public?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[pe,(0,s._)("div",he,[me,(0,s.wy)((0,s._)("input",{id:"connect:name","onUpdate:modelValue":n[12]||(n[12]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[j.nr,e.defaults.name,void 0,{trim:!0}]])]),(0,s._)("div",fe,[we,(0,s.Wm)(l,{class:"input-wrap password-container"},{default:(0,s.w5)((a=>[(0,s.wy)((0,s._)("input",{id:"connect:password","onUpdate:modelValue":n[13]||(n[13]=n=>e.defaults.password=n),class:"input",type:a.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,be),[[j.YZ,e.defaults.password]])])),_:1})])],64)):(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[z,(0,s._)("div",P,[H,(0,s.wy)((0,s._)("input",{id:"connect:name","onUpdate:modelValue":n[1]||(n[1]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[j.nr,e.defaults.name,void 0,{trim:!0}]])]),(0,s._)("div",O,[L,(0,s._)("div",I,[(0,s.wy)((0,s._)("input",{id:"connect:host","onUpdate:modelValue":n[2]||(n[2]=n=>e.defaults.host=n),class:"input",name:"host","aria-label":"Server address",maxlength:"255",required:""},null,512),[[j.nr,e.defaults.host,void 0,{trim:!0}]]),E,(0,s.wy)((0,s._)("input",{id:"connect:port","onUpdate:modelValue":n[3]||(n[3]=n=>e.defaults.port=n),class:"input",type:"number",min:"1",max:"65535",name:"port","aria-label":"Server port"},null,512),[[j.nr,e.defaults.port]])])]),(0,s._)("div",A,[N,(0,s.Wm)(l,{class:"input-wrap password-container"},{default:(0,s.w5)((a=>[(0,s.wy)((0,s._)("input",{id:"connect:password","onUpdate:modelValue":n[4]||(n[4]=n=>e.defaults.password=n),class:"input",type:a.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,Y),[[j.YZ,e.defaults.password]])])),_:1})]),(0,s._)("div",R,[W,(0,s._)("div",F,[(0,s._)("label",B,[(0,s.wy)((0,s._)("input",{"onUpdate:modelValue":n[5]||(n[5]=n=>e.defaults.tls=n),type:"checkbox",name:"tls",disabled:e.defaults.hasSTSPolicy},null,8,$),[[j.e8,e.defaults.tls]]),V,e.defaults.hasSTSPolicy?((0,s.wg)(),(0,s.iD)("span",J,"π STS")):(0,s.kq)("",!0)]),(0,s._)("label",K,[(0,s.wy)((0,s._)("input",{"onUpdate:modelValue":n[6]||(n[6]=n=>e.defaults.rejectUnauthorized=n),type:"checkbox",name:"rejectUnauthorized"},null,512),[[j.e8,e.defaults.rejectUnauthorized]]),G])])]),X,(0,s._)("div",Q,[ee,(0,s._)("div",ne,[(0,s._)("label",ae,[(0,s.wy)((0,s._)("input",{id:"connect:proxyEnabled","onUpdate:modelValue":n[7]||(n[7]=n=>e.defaults.proxyEnabled=n),type:"checkbox",name:"proxyEnabled"},null,512),[[j.e8,e.defaults.proxyEnabled]]),te])])]),e.defaults.proxyEnabled?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s._)("div",ie,[se,(0,s._)("div",oe,[(0,s.wy)((0,s._)("input",{id:"connect:proxyHost","onUpdate:modelValue":n[8]||(n[8]=n=>e.defaults.proxyHost=n),class:"input",name:"proxyHost","aria-label":"Proxy host",maxlength:"255"},null,512),[[j.nr,e.defaults.proxyHost,void 0,{trim:!0}]]),re,(0,s.wy)((0,s._)("input",{id:"connect:proxyPort","onUpdate:modelValue":n[9]||(n[9]=n=>e.defaults.proxyPort=n),class:"input",type:"number",min:"1",max:"65535",name:"proxyPort","aria-label":"SOCKS port"},null,512),[[j.nr,e.defaults.proxyPort]])])]),(0,s._)("div",le,[ce,(0,s.wy)((0,s._)("input",{id:"connect:proxyUsername",ref:"proxyUsernameInput","onUpdate:modelValue":n[10]||(n[10]=n=>e.defaults.proxyUsername=n),class:"input username",name:"proxyUsername",maxlength:"100",placeholder:"Proxy username"},null,512),[[j.nr,e.defaults.proxyUsername,void 0,{trim:!0}]])]),(0,s._)("div",ge,[ue,(0,s.Wm)(l,{class:"input-wrap password-container"},{default:(0,s.w5)((a=>[(0,s.wy)((0,s._)("input",{id:"connect:proxyPassword",ref:"proxyPassword","onUpdate:modelValue":n[11]||(n[11]=n=>e.defaults.proxyPassword=n),class:"input",type:a.isVisible?"text":"password",placeholder:"Proxy password",name:"proxyPassword",maxlength:"300"},null,8,de),[[j.YZ,e.defaults.proxyPassword]])])),_:1})])],64)):(0,s.kq)("",!0)],64)),ke,(0,s._)("div",ve,[ye,(0,s.wy)((0,s._)("input",{id:"connect:nick","onUpdate:modelValue":n[14]||(n[14]=n=>e.defaults.nick=n),class:"input nick",name:"nick",pattern:"[^\\s:!@]+",maxlength:"100",required:"",onInput:n[15]||(n[15]=(...n)=>e.onNickChanged&&e.onNickChanged(...n))},null,544),[[j.nr,e.defaults.nick]])]),e.config?.useHexIp?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",_e,[Ce,(0,s.wy)((0,s._)("input",{id:"connect:username",ref:"usernameInput","onUpdate:modelValue":n[16]||(n[16]=n=>e.defaults.username=n),class:"input username",name:"username",maxlength:"100"},null,512),[[j.nr,e.defaults.username,void 0,{trim:!0}]])])),(0,s._)("div",xe,[Se,(0,s.wy)((0,s._)("input",{id:"connect:realname","onUpdate:modelValue":n[17]||(n[17]=n=>e.defaults.realname=n),class:"input",name:"realname",maxlength:"300"},null,512),[[j.nr,e.defaults.realname,void 0,{trim:!0}]])]),(0,s._)("div",De,[Ze,(0,s.wy)((0,s._)("input",{id:"connect:leaveMessage","onUpdate:modelValue":n[18]||(n[18]=n=>e.defaults.leaveMessage=n),autocomplete:"off",class:"input",name:"leaveMessage",placeholder:"The Lounge - https://thelounge.chat"},null,512),[[j.nr,e.defaults.leaveMessage,void 0,{trim:!0}]])]),e.defaults.uuid&&!e.store.state.serverConfiguration?.public?((0,s.wg)(),(0,s.iD)("div",je,[qe,(0,s._)("textarea",{id:"connect:commands",ref:"commandsInput",autocomplete:"off",value:e.defaults.commands?e.defaults.commands.join("\n"):"",class:"input",name:"commands",onInput:n[19]||(n[19]=(...n)=>e.resizeCommandsInput&&e.resizeCommandsInput(...n))},null,40,Ue)])):e.defaults.uuid?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Me,[Te,(0,s.wy)((0,s._)("input",{id:"connect:channels","onUpdate:modelValue":n[20]||(n[20]=n=>e.defaults.join=n),class:"input",name:"join"},null,512),[[j.nr,e.defaults.join,void 0,{trim:!0}]])])),e.store.state.serverConfiguration?.public?((0,s.wg)(),(0,s.iD)(s.HY,{key:5},[e.config?.lockNetwork?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s._)("div",ze,[Pe,(0,s._)("div",He,[(0,s._)("label",Oe,[(0,s.wy)((0,s._)("input",{"onUpdate:modelValue":n[21]||(n[21]=n=>e.displayPasswordField=n),type:"checkbox"},null,512),[[j.e8,e.displayPasswordField]]),Le])])]),e.displayPasswordField?((0,s.wg)(),(0,s.iD)("div",Ie,[Ee,(0,s.Wm)(l,{class:"input-wrap password-container"},{default:(0,s.w5)((a=>[(0,s.wy)((0,s._)("input",{id:"connect:password",ref:"publicPassword","onUpdate:modelValue":n[22]||(n[22]=n=>e.defaults.password=n),class:"input",type:a.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,Ae),[[j.YZ,e.defaults.password]])])),_:1})])):(0,s.kq)("",!0)],64)):(0,s.kq)("",!0)],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:6},[Ne,(0,s._)("div",Ye,[(0,s._)("label",Re,[(0,s._)("input",{checked:!e.defaults.sasl,type:"radio",name:"sasl",value:"",onChange:n[23]||(n[23]=n=>e.setSaslAuth(""))},null,40,We),Fe]),(0,s._)("label",Be,[(0,s._)("input",{checked:"plain"===e.defaults.sasl,type:"radio",name:"sasl",value:"plain",onChange:n[24]||(n[24]=n=>e.setSaslAuth("plain"))},null,40,$e),Ve]),!e.store.state.serverConfiguration?.public&&e.defaults.tls?((0,s.wg)(),(0,s.iD)("label",Je,[(0,s._)("input",{checked:"external"===e.defaults.sasl,type:"radio",name:"sasl",value:"external",onChange:n[25]||(n[25]=n=>e.setSaslAuth("external"))},null,40,Ke),Ge])):(0,s.kq)("",!0)]),"plain"===e.defaults.sasl?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s._)("div",Xe,[Qe,(0,s.wy)((0,s._)("input",{id:"connect:saslAccount","onUpdate:modelValue":n[26]||(n[26]=n=>e.defaults.saslAccount=n),class:"input",name:"saslAccount",maxlength:"100",required:""},null,512),[[j.nr,e.defaults.saslAccount,void 0,{trim:!0}]])]),(0,s._)("div",en,[nn,(0,s.Wm)(l,{class:"input-wrap password-container"},{default:(0,s.w5)((a=>[(0,s.wy)((0,s._)("input",{id:"connect:saslPassword","onUpdate:modelValue":n[27]||(n[27]=n=>e.defaults.saslPassword=n),class:"input",type:a.isVisible?"text":"password",name:"saslPassword",maxlength:"300",required:""},null,8,an),[[j.YZ,e.defaults.saslPassword]])])),_:1})])],64)):"external"===e.defaults.sasl?((0,s.wg)(),(0,s.iD)("div",tn,sn)):(0,s.kq)("",!0)],64)),(0,s._)("div",null,[(0,s._)("button",{type:"submit",class:"btn",disabled:!!e.disabled},[e.defaults.uuid?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[rn],64)):((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[ln],64))],8,on)])],32)])}]]),pn=(0,s.aZ)({name:"Connect",components:{NetworkForm:dn},props:{queryParams:Object},setup(e){const n=(0,Z.oR)(),a=(0,y.iH)(!1);return{defaults:(0,y.iH)(Object.assign({},n.state.serverConfiguration?.defaults,(e=>{if(!e)return{};const a={};for(let t of Object.keys(e)){let i=e[t];if(Array.isArray(i)&&(i=i[0]),"channels"===t&&(t="join"),Object.prototype.hasOwnProperty.call(n.state.serverConfiguration?.defaults,t)&&(!n.state.serverConfiguration?.lockNetwork||!["name","host","port","tls","rejectUnauthorized"].includes(t)))switch("join"===t&&(i=i.split(",").map((e=>e.match(/^[#&!+]/)?e:`#${e}`)).join(", ")),typeof n.state.serverConfiguration?.defaults[t]){case"boolean":a[t]="0"!==i&&"false"!==i&&!!i;break;case"number":a[t]=Number(i);break;case"string":a[t]=String(i)}}return a})(e.queryParams))),disabled:a,handleSubmit:e=>{a.value=!0,w.Z.emit("network:new",e)}}}}),hn=(0,C.Z)(pn,[["render",function(e,n,a,t,i,o){const r=(0,s.up)("NetworkForm");return(0,s.wg)(),(0,s.j4)(r,{"handle-submit":e.handleSubmit,defaults:e.defaults,disabled:e.disabled},null,8,["handle-submit","defaults","disabled"])}]]),mn={id:"settings",class:"window",role:"tabpanel","aria-label":"Settings"},fn={class:"header"},wn={class:"container"},bn={class:"settings-menu"},kn=(0,s._)("h2",null,"Settings",-1),vn={role:"navigation","aria-label":"Settings tabs"},yn=["aria-label","aria-selected"],_n=["onClick","onKeypress"],Cn=(0,s.aZ)({name:"SettingTabListItem",props:{name:{type:String,required:!0},className:{type:String,required:!0},to:{type:String,required:!0}},setup:()=>({route:(0,i.yj)()})}),xn=(0,C.Z)(Cn,[["render",function(e,n,a,t,i,o){const r=(0,s.up)("router-link");return(0,s.wg)(),(0,s.iD)("li",{"aria-label":e.name,role:"tab","aria-selected":e.route.name===e.name,"aria-controls":"settings"},[(0,s.Wm)(r,{to:"/settings/"+e.to,custom:""},{default:(0,s.w5)((({navigate:n,isExactActive:a})=>[(0,s._)("button",{class:(0,b.C_)(["icon",e.className,{active:a}]),onClick:n,onKeypress:(0,j.D2)(n,["enter"])},(0,b.zw)(e.name),43,_n)])),_:1},8,["to"])],8,yn)}]]),Sn=xn,Dn=(0,s.aZ)({name:"SettingsTabs",components:{SettingTabItem:Sn}}),Zn=(0,C.Z)(Dn,[["render",function(e,n,a,t,i,o){const r=(0,s.up)("SettingTabItem");return(0,s.wg)(),(0,s.iD)("aside",bn,[kn,(0,s._)("ul",vn,[(0,s.Wm)(r,{name:"General","class-name":"general",to:""}),(0,s.Wm)(r,{name:"Appearance","class-name":"appearance",to:"appearance"}),(0,s.Wm)(r,{name:"Notifications","class-name":"notifications",to:"notifications"}),(0,s.Wm)(r,{name:"Account","class-name":"account",to:"account"})])])}]]),jn=Zn,qn=(0,s.aZ)({name:"Settings",components:{SidebarToggle:gn,Navigation:jn},setup(){const e=(0,Z.oR)();return{onChange:n=>{const a=n.target.name;if(["old_password","new_password","verify_password"].includes(a))return;let t;t="checkbox"===n.target.type?n.target.checked:n.target.value,e.dispatch("settings/update",{name:a,value:t,sync:!0})},settingsForm:(0,y.iH)()}}}),Un=(0,C.Z)(qn,[["render",function(e,n,a,t,i,o){const r=(0,s.up)("SidebarToggle"),l=(0,s.up)("Navigation"),c=(0,s.up)("router-view");return(0,s.wg)(),(0,s.iD)("div",mn,[(0,s._)("div",fn,[(0,s.Wm)(r)]),(0,s.Wm)(l),(0,s._)("div",wn,[(0,s._)("form",{ref:"settingsForm",autocomplete:"off",onChange:n[0]||(n[0]=(...n)=>e.onChange&&e.onChange(...n)),onSubmit:n[1]||(n[1]=(0,j.iM)((()=>{}),["prevent"]))},[(0,s.Wm)(c,{"settings-form":e.settingsForm},null,8,["settings-form"])],544)])])}]]),Mn=Un,Tn={id:"help",class:"window",role:"tabpanel","aria-label":"Help"},zn={class:"header"},Pn={class:"container"},Hn=(0,s._)("h1",{class:"title"},"Help",-1),On={class:"help-version-title"},Ln=(0,s._)("span",null,"About The Lounge",-1),In=(0,s.Uk)("release notes"),En=(0,s.Uk)(") "),An={class:"about"},Nn=(0,s.Uk)(" The Lounge is running from source ("),Yn=["href"],Rn=(0,s.Uk)("commit "),Wn=(0,s.Uk)("). "),Fn=(0,s.Uk)(" Compare "),Bn=["href"],$n=(0,s.Uk)("between "),Vn=(0,s.Uk)(" and "),Jn=(0,s._)("code",null,"master",-1),Kn=(0,s.Uk)(" to see what you are missing "),Gn=(0,s.Uk)(" Compare "),Xn=["href"],Qn=(0,s.Uk)("between "),ea=(0,s.Uk)(" and "),na=(0,s.Uk)(" to see your local changes "),aa=(0,s._)("p",null,[(0,s._)("a",{href:"https://thelounge.chat/",target:"_blank",rel:"noopener",class:"website-link"},"Website")],-1),ta=(0,s._)("p",null,[(0,s._)("a",{href:"https://thelounge.chat/docs/",target:"_blank",rel:"noopener",class:"documentation-link"},"Documentation")],-1),ia=(0,s._)("p",null,[(0,s._)("a",{href:"https://github.com/thelounge/thelounge/issues/new",target:"_blank",rel:"noopener",class:"report-issue-link"},"Report an issueβ¦")],-1),sa={key:0},oa={key:1,class:"help-item"},ra=(0,s._)("div",{class:"subject gesture"},"Single-Finger Swipe Left",-1),la=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Hide sidebar.")],-1),ca=[ra,la],ga={key:2,class:"help-item"},ua=(0,s._)("div",{class:"subject gesture"},"Single-Finger Swipe Right",-1),da=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Show sidebar.")],-1),pa=[ua,da],ha={key:3,class:"help-item"},ma=(0,s._)("div",{class:"subject gesture"},"Two-Finger Swipe Left",-1),fa=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the next window in the channel list.")],-1),wa=[ma,fa],ba={key:4,class:"help-item"},ka=(0,s._)("div",{class:"subject gesture"},"Two-Finger Swipe Right",-1),va=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the previous window in the channel list.")],-1),ya=[ka,va],_a=(0,s._)("h2",null,"Keyboard Shortcuts",-1),Ca={class:"help-item"},xa={class:"subject"},Sa={key:0},Da=(0,s._)("kbd",null,"Alt",-1),Za=(0,s.Uk)(),ja=(0,s._)("kbd",null,"Shift",-1),qa=(0,s.Uk)(),Ua=(0,s._)("kbd",null,"β",-1),Ma=[Da,Za,ja,qa,Ua],Ta={key:1},za=(0,s._)("kbd",null,"β₯",-1),Pa=(0,s.Uk)(),Ha=(0,s._)("kbd",null,"β§",-1),Oa=(0,s.Uk)(),La=(0,s._)("kbd",null,"β",-1),Ia=[za,Pa,Ha,Oa,La],Ea=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the next lobby in the channel list.")],-1),Aa={class:"help-item"},Na={class:"subject"},Ya={key:0},Ra=(0,s._)("kbd",null,"Alt",-1),Wa=(0,s.Uk)(),Fa=(0,s._)("kbd",null,"Shift",-1),Ba=(0,s.Uk)(),$a=(0,s._)("kbd",null,"β",-1),Va=[Ra,Wa,Fa,Ba,$a],Ja={key:1},Ka=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β§",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],Ga=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the previous lobby in the channel list.")],-1),Xa={class:"help-item"},Qa={class:"subject"},et={key:0},nt=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"Shift",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],at={key:1},tt=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β§",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],it=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Collapse current network.")],-1),st={class:"help-item"},ot={class:"subject"},rt={key:0},lt=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"Shift",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],ct={key:1},gt=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β§",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],ut=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Expand current network.")],-1),dt={class:"help-item"},pt={class:"subject"},ht={key:0},mt=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],ft={key:1},wt=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],bt=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the next window in the channel list.")],-1),kt={class:"help-item"},vt={class:"subject"},yt={key:0},_t=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],Ct={key:1},xt=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"β",-1)],St=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the previous window in the channel list.")],-1),Dt={class:"help-item"},Zt={class:"subject"},jt={key:0},qt=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"A",-1)],Ut={key:1},Mt=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"A",-1)],Tt=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the first window with unread messages.")],-1),zt={class:"help-item"},Pt={class:"subject"},Ht={key:0},Ot=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"S",-1)],Lt={key:1},It=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"S",-1)],Et=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Toggle sidebar.")],-1),At={class:"help-item"},Nt={class:"subject"},Yt={key:0},Rt=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"U",-1)],Wt={key:1},Ft=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"U",-1)],Bt=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Toggle channel user list.")],-1),$t={class:"help-item"},Vt={class:"subject"},Jt={key:0},Kt=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"J",-1)],Gt={key:1},Xt=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"J",-1)],Qt=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Toggle jump to channel switcher.")],-1),ei={class:"help-item"},ni={class:"subject"},ai={key:0},ti=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"M",-1)],ii={key:1},si=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"M",-1)],oi=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Toggle recent mentions popup.")],-1),ri={class:"help-item"},li={class:"subject"},ci={key:0},gi=[(0,s._)("kbd",null,"Alt",-1),(0,s.Uk)(),(0,s._)("kbd",null,"/",-1)],ui={key:1},di=[(0,s._)("kbd",null,"β₯",-1),(0,s.Uk)(),(0,s._)("kbd",null,"/",-1)],pi=(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Switch to the help menu.")],-1),hi=(0,s._)("div",{class:"help-item"},[(0,s._)("div",{class:"subject"},[(0,s._)("span",null,[(0,s._)("kbd",null,"Esc")])]),(0,s._)("div",{class:"description"},[(0,s._)("p",null," Close current contextual window (context menu, image viewer, topic edit, etc) and remove focus from input. ")])],-1),mi=(0,s._)("h2",null,"Formatting Shortcuts",-1),fi={class:"help-item"},wi={class:"subject"},bi={key:0},ki=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"K",-1)],vi={key:1},yi=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"K",-1)],_i=(0,s._)("div",{class:"description"},[(0,s._)("p",null,[(0,s.Uk)(" Mark any text typed after this shortcut to be colored. After hitting this shortcut, enter an integer in the range "),(0,s._)("code",null,"0β15"),(0,s.Uk)(" to select the desired color, or use the autocompletion menu to choose a color name (see below). ")]),(0,s._)("p",null,[(0,s.Uk)(" Background color can be specified by putting a comma and another integer in the range "),(0,s._)("code",null,"0β15"),(0,s.Uk)(" after the foreground color number (autocompletion works too). ")]),(0,s._)("p",null,[(0,s.Uk)(" A color reference can be found "),(0,s._)("a",{href:"https://modern.ircdocs.horse/formatting.html#colors",target:"_blank",rel:"noopener"},"here"),(0,s.Uk)(". ")])],-1),Ci={class:"help-item"},xi={class:"subject"},Si={key:0},Di=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"B",-1)],Zi={key:1},ji=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"B",-1)],qi=(0,s._)("div",{class:"description"},[(0,s._)("p",null,[(0,s.Uk)(" Mark all text typed after this shortcut as "),(0,s._)("span",{class:"irc-bold"},"bold"),(0,s.Uk)(". ")])],-1),Ui={class:"help-item"},Mi={class:"subject"},Ti={key:0},zi=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"U",-1)],Pi={key:1},Hi=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"U",-1)],Oi=(0,s._)("div",{class:"description"},[(0,s._)("p",null,[(0,s.Uk)(" Mark all text typed after this shortcut as "),(0,s._)("span",{class:"irc-underline"},"underlined"),(0,s.Uk)(". ")])],-1),Li={class:"help-item"},Ii={class:"subject"},Ei={key:0},Ai=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"I",-1)],Ni={key:1},Yi=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"I",-1)],Ri=(0,s._)("div",{class:"description"},[(0,s._)("p",null,[(0,s.Uk)(" Mark all text typed after this shortcut as "),(0,s._)("span",{class:"irc-italic"},"italics"),(0,s.Uk)(". ")])],-1),Wi={class:"help-item"},Fi={class:"subject"},Bi={key:0},$i=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"S",-1)],Vi={key:1},Ji=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"S",-1)],Ki=(0,s._)("div",{class:"description"},[(0,s._)("p",null,[(0,s.Uk)(" Mark all text typed after this shortcut as "),(0,s._)("span",{class:"irc-strikethrough"},"struck through"),(0,s.Uk)(". ")])],-1),Gi={class:"help-item"},Xi={class:"subject"},Qi={key:0},es=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"M",-1)],ns={key:1},as=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"M",-1)],ts=(0,s._)("div",{class:"description"},[(0,s._)("p",null,[(0,s.Uk)(" Mark all text typed after this shortcut as "),(0,s._)("span",{class:"irc-monospace"},"monospaced"),(0,s.Uk)(". ")])],-1),is={class:"help-item"},ss={class:"subject"},os={key:0},rs=[(0,s._)("kbd",null,"Ctrl",-1),(0,s.Uk)(),(0,s._)("kbd",null,"O",-1)],ls={key:1},cs=[(0,s._)("kbd",null,"β",-1),(0,s.Uk)(),(0,s._)("kbd",null,"O",-1)],gs=(0,s._)("div",{class:"description"},[(0,s._)("p",null," Mark all text typed after this shortcut to be reset to its original formatting. ")],-1),us=(0,s.uE)('<h2>Autocompletion</h2><p> To auto-complete nicknames, channels, commands, and emoji, type one of the characters below to open a suggestion list. Use the <kbd>β</kbd> and <kbd>β</kbd> keys to highlight an item, and insert it by pressing <kbd>Tab</kbd> or <kbd>Enter</kbd> (or by clicking the desired item). </p><p>Autocompletion can be disabled in settings.</p><div class="help-item"><div class="subject"><code>@</code></div><div class="description"><p>Nickname</p></div></div><div class="help-item"><div class="subject"><code>#</code></div><div class="description"><p>Channel</p></div></div><div class="help-item"><div class="subject"><code>/</code></div><div class="description"><p>Commands (see list of commands below)</p></div></div><div class="help-item"><div class="subject"><code>:</code></div><div class="description"><p> Emoji (note: requires two search characters, to avoid conflicting with common emoticons like <code>:)</code>) </p></div></div><h2>Commands</h2><div class="help-item"><div class="subject"><code>/away [message]</code></div><div class="description"><p>Mark yourself as away with an optional message.</p></div></div><div class="help-item"><div class="subject"><code>/back</code></div><div class="description"><p>Remove your away status (set with <code>/away</code>).</p></div></div><div class="help-item"><div class="subject"><code>/ban nick</code></div><div class="description"><p> Ban (<code>+b</code>) a user from the current channel. This can be a nickname or a hostmask. </p></div></div><div class="help-item"><div class="subject"><code>/banlist</code></div><div class="description"><p>Load the banlist for the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/collapse</code></div><div class="description"><p> Collapse all previews in the current channel (opposite of <code>/expand</code>) </p></div></div><div class="help-item"><div class="subject"><code>/connect host [port]</code></div><div class="description"><p> Connect to a new IRC network. If <code>port</code> starts with a <code>+</code> sign, the connection will be made secure using TLS. </p><p>Alias: <code>/server</code></p></div></div><div class="help-item"><div class="subject"><code>/ctcp target cmd [args]</code></div><div class="description"><p> Send a <abbr title="Client-to-client protocol">CTCP</abbr> request. Read more about this on <a href="https://en.wikipedia.org/wiki/Client-to-client_protocol" target="_blank" rel="noopener">the dedicated Wikipedia article</a>. </p></div></div><div class="help-item"><div class="subject"><code>/deop nick [...nick]</code></div><div class="description"><p> Remove op (<code>-o</code>) from one or several users in the current channel. </p></div></div><div class="help-item"><div class="subject"><code>/devoice nick [...nick]</code></div><div class="description"><p> Remove voice (<code>-v</code>) from one or several users in the current channel. </p></div></div><div class="help-item"><div class="subject"><code>/disconnect [message]</code></div><div class="description"><p>Disconnect from the current network with an optionally-provided message.</p></div></div><div class="help-item"><div class="subject"><code>/expand</code></div><div class="description"><p> Expand all previews in the current channel (opposite of <code>/collapse</code>) </p></div></div><div class="help-item"><div class="subject"><code>/invite nick [channel]</code></div><div class="description"><p> Invite a user to the specified channel. If <code>channel</code> is omitted, user will be invited to the current channel. </p></div></div><div class="help-item"><div class="subject"><code>/ignore nick</code></div><div class="description"><p> Block any messages from the specified user on the current network. This can be a nickname or a hostmask. </p></div></div><div class="help-item"><div class="subject"><code>/ignorelist</code></div><div class="description"><p>Load the list of ignored users for the current network.</p></div></div><div class="help-item"><div class="subject"><code>/join channel</code></div><div class="description"><p>Join a channel.</p></div></div><div class="help-item"><div class="subject"><code>/kick nick [reason]</code></div><div class="description"><p>Kick a user from the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/kickban nick [reason]</code></div><div class="description"><p> Kick and ban (<code>+b</code>) a user from the current channel. Unlike <code>/ban</code>, only nicknames (and not host masks) can be used. </p></div></div><div class="help-item"><div class="subject"><code>/list</code></div><div class="description"><p>Retrieve a list of available channels on this network.</p></div></div><div class="help-item"><div class="subject"><code>/me message</code></div><div class="description"><p> Send an action message to the current channel. The Lounge will display it inline, as if the message was posted in the third person. </p></div></div><div class="help-item"><div class="subject"><code>/mode flags [args]</code></div><div class="description"><p> Set the given flags to the current channel if the active window is a channel, another user if the active window is a private message window, or yourself if the current window is a server window. </p></div></div><div class="help-item"><div class="subject"><code>/msg channel message</code></div><div class="description"><p>Send a message to the specified channel.</p></div></div><div class="help-item"><div class="subject"><code>/mute [...channel]</code></div><div class="description"><p> Prevent messages from generating any feedback for a channel. This turns off the highlight indicator, hides mentions and inhibits push notifications. Muting a network lobby mutes the entire network. Not specifying any channel target mutes the current channel. Revert with <code>/unmute</code>. </p></div></div><div class="help-item"><div class="subject"><code>/nick newnick</code></div><div class="description"><p>Change your nickname on the current network.</p></div></div><div class="help-item"><div class="subject"><code>/notice channel message</code></div><div class="description"><p>Sends a notice message to the specified channel.</p></div></div><div class="help-item"><div class="subject"><code>/op nick [...nick]</code></div><div class="description"><p>Give op (<code>+o</code>) to one or several users in the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/part [channel]</code></div><div class="description"><p> Close the specified channel or private message window, or the current channel if <code>channel</code> is omitted. </p><p>Aliases: <code>/close</code>, <code>/leave</code></p></div></div><div class="help-item"><div class="subject"><code>/rejoin</code></div><div class="description"><p> Leave and immediately rejoin the current channel. Useful to quickly get op from ChanServ in an empty channel, for example. </p><p>Alias: <code>/cycle</code></p></div></div><div class="help-item"><div class="subject"><code>/query nick</code></div><div class="description"><p>Send a private message to the specified user.</p></div></div><div class="help-item"><div class="subject"><code>/quit [message]</code></div><div class="description"><p>Disconnect from the current network with an optional message.</p></div></div><div class="help-item"><div class="subject"><code>/raw message</code></div><div class="description"><p>Send a raw message to the current IRC network.</p><p>Aliases: <code>/quote</code>, <code>/send</code></p></div></div><div class="help-item"><div class="subject"><code>/slap nick</code></div><div class="description"><p>Slap someone in the current channel with a trout!</p></div></div>',39),ds={key:5,class:"help-item"},ps=[(0,s._)("div",{class:"subject"},[(0,s._)("code",null,"/search query")],-1),(0,s._)("div",{class:"description"},[(0,s._)("p",null,"Search for messages in the current channel / user")],-1)],hs=(0,s.uE)('<div class="help-item"><div class="subject"><code>/topic [newtopic]</code></div><div class="description"><p> Get the topic in the current channel. If <code>newtopic</code> is specified, sets the topic in the current channel. </p></div></div><div class="help-item"><div class="subject"><code>/unban nick</code></div><div class="description"><p> Unban (<code>-b</code>) a user from the current channel. This can be a nickname or a hostmask. </p></div></div><div class="help-item"><div class="subject"><code>/unignore nick</code></div><div class="description"><p> Unblock messages from the specified user on the current network. This can be a nickname or a hostmask. </p></div></div><div class="help-item"><div class="subject"><code>/unmute [...channel]</code></div><div class="description"><p> Un-mutes the given channel(s) or the current channel if no channel is provided. See <code>/mute</code> for more information. </p></div></div><div class="help-item"><div class="subject"><code>/voice nick [...nick]</code></div><div class="description"><p> Give voice (<code>+v</code>) to one or several users in the current channel. </p></div></div><div class="help-item"><div class="subject"><code>/whois nick</code></div><div class="description"><p>Retrieve information about the given user on the current network.</p></div></div>',6),ms={key:0},fs={key:1},ws=(0,s.Uk)(" The Lounge "),bs=(0,s.Uk)(" (pre-release) "),ks=(0,s.Uk)(" is now available. "),vs=(0,s._)("br",null,null,-1),ys=["href"],_s={key:2},Cs=[(0,s.Uk)(" The Lounge is up to date, but there are out of date packages Run "),(0,s._)("code",null,"thelounge upgrade",-1),(0,s.Uk)(" on the server to upgrade packages. ")],xs=(0,s._)("p",null,"The Lounge is up to date!",-1),Ss=(0,s._)("p",null,"Information about latest release could not be retrieved.",-1),Ds=(0,s.aZ)({name:"VersionChecker",setup(){const e=(0,Z.oR)(),n=()=>{e.commit("versionData",null),e.commit("versionStatus","loading"),w.Z.emit("changelog")};return(0,s.bv)((()=>{e.state.versionData||n()})),{store:e,checkNow:n}}}),Zs=(0,C.Z)(Ds,[["render",function(e,n,a,t,i,o){return(0,s.wg)(),(0,s.iD)("div",{id:"version-checker",class:(0,b.C_)([e.store.state.versionStatus])},["loading"===e.store.state.versionStatus?((0,s.wg)(),(0,s.iD)("p",ms,"Checking for updatesβ¦")):(0,s.kq)("",!0),"new-version"===e.store.state.versionStatus?((0,s.wg)(),(0,s.iD)("p",fs,[ws,(0,s._)("b",null,(0,b.zw)(e.store.state.versionData?.latest.version),1),e.store.state.versionData?.latest.prerelease?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[bs],64)):(0,s.kq)("",!0),ks,vs,(0,s._)("a",{href:e.store.state.versionData?.latest.url,target:"_blank",rel:"noopener"}," Read more on GitHub ",8,ys)])):(0,s.kq)("",!0),"new-packages"===e.store.state.versionStatus?((0,s.wg)(),(0,s.iD)("p",_s,Cs)):(0,s.kq)("",!0),"up-to-date"===e.store.state.versionStatus?((0,s.wg)(),(0,s.iD)(s.HY,{key:3},[xs,e.store.state.versionDataExpired?((0,s.wg)(),(0,s.iD)("button",{key:0,id:"check-now",class:"btn btn-small",onClick:n[0]||(n[0]=(...n)=>e.checkNow&&e.checkNow(...n))}," Check now ")):(0,s.kq)("",!0)],64)):(0,s.kq)("",!0),"error"===e.store.state.versionStatus?((0,s.wg)(),(0,s.iD)(s.HY,{key:4},[Ss,(0,s._)("button",{id:"check-now",class:"btn btn-small",onClick:n[1]||(n[1]=(...n)=>e.checkNow&&e.checkNow(...n))},"Try again")],64)):(0,s.kq)("",!0)],2)}]]),js=(0,s.aZ)({name:"Help",components:{SidebarToggle:gn,VersionChecker:Zs},setup(){const e=(0,Z.oR)();return{isApple:navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)||!1,isTouch:navigator.maxTouchPoints>0,store:e}}}),qs=(0,C.Z)(js,[["render",function(e,n,a,t,i,o){const r=(0,s.up)("SidebarToggle"),l=(0,s.up)("router-link"),c=(0,s.up)("VersionChecker");return(0,s.wg)(),(0,s.iD)("div",Tn,[(0,s._)("div",zn,[(0,s.Wm)(r)]),(0,s._)("div",Pn,[Hn,(0,s._)("h2",On,[Ln,(0,s._)("small",null,[(0,s.Uk)(" v"+(0,b.zw)(e.store.state.serverConfiguration?.version)+" (",1),(0,s.Wm)(l,{id:"view-changelog",to:"/changelog"},{default:(0,s.w5)((()=>[In])),_:1}),En])]),(0,s._)("div",An,[(0,s.Wm)(c),e.store.state.serverConfiguration?.gitCommit?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s._)("p",null,[Nn,(0,s._)("a",{href:`https://github.com/thelounge/thelounge/tree/${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[Rn,(0,s._)("code",null,(0,b.zw)(e.store.state.serverConfiguration?.gitCommit),1)],8,Yn),Wn]),(0,s._)("ul",null,[(0,s._)("li",null,[Fn,(0,s._)("a",{href:`https://github.com/thelounge/thelounge/compare/${e.store.state.serverConfiguration?.gitCommit}...master`,target:"_blank",rel:"noopener"},[$n,(0,s._)("code",null,(0,b.zw)(e.store.state.serverConfiguration?.gitCommit),1),Vn,Jn],8,Bn),Kn]),(0,s._)("li",null,[Gn,(0,s._)("a",{href:`https://github.com/thelounge/thelounge/compare/${e.store.state.serverConfiguration?.version}...${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[Qn,(0,s._)("code",null,(0,b.zw)(e.store.state.serverConfiguration?.version),1),ea,(0,s._)("code",null,(0,b.zw)(e.store.state.serverConfiguration?.gitCommit),1)],8,Xn),na])])],64)):(0,s.kq)("",!0),aa,ta,ia]),e.isTouch?((0,s.wg)(),(0,s.iD)("h2",sa,"Gestures")):(0,s.kq)("",!0),e.isTouch?((0,s.wg)(),(0,s.iD)("div",oa,ca)):(0,s.kq)("",!0),e.isTouch?((0,s.wg)(),(0,s.iD)("div",ga,pa)):(0,s.kq)("",!0),e.isTouch?((0,s.wg)(),(0,s.iD)("div",ha,wa)):(0,s.kq)("",!0),e.isTouch?((0,s.wg)(),(0,s.iD)("div",ba,ya)):(0,s.kq)("",!0),_a,(0,s._)("div",Ca,[(0,s._)("div",xa,[e.isApple?((0,s.wg)(),(0,s.iD)("span",Ta,Ia)):((0,s.wg)(),(0,s.iD)("span",Sa,Ma))]),Ea]),(0,s._)("div",Aa,[(0,s._)("div",Na,[e.isApple?((0,s.wg)(),(0,s.iD)("span",Ja,Ka)):((0,s.wg)(),(0,s.iD)("span",Ya,Va))]),Ga]),(0,s._)("div",Xa,[(0,s._)("div",Qa,[e.isApple?((0,s.wg)(),(0,s.iD)("span",at,tt)):((0,s.wg)(),(0,s.iD)("span",et,nt))]),it]),(0,s._)("div",st,[(0,s._)("div",ot,[e.isApple?((0,s.wg)(),(0,s.iD)("span",ct,gt)):((0,s.wg)(),(0,s.iD)("span",rt,lt))]),ut]),(0,s._)("div",dt,[(0,s._)("div",pt,[e.isApple?((0,s.wg)(),(0,s.iD)("span",ft,wt)):((0,s.wg)(),(0,s.iD)("span",ht,mt))]),bt]),(0,s._)("div",kt,[(0,s._)("div",vt,[e.isApple?((0,s.wg)(),(0,s.iD)("span",Ct,xt)):((0,s.wg)(),(0,s.iD)("span",yt,_t))]),St]),(0,s._)("div",Dt,[(0,s._)("div",Zt,[e.isApple?((0,s.wg)(),(0,s.iD)("span",Ut,Mt)):((0,s.wg)(),(0,s.iD)("span",jt,qt))]),Tt]),(0,s._)("div",zt,[(0,s._)("div",Pt,[e.isApple?((0,s.wg)(),(0,s.iD)("span",Lt,It)):((0,s.wg)(),(0,s.iD)("span",Ht,Ot))]),Et]),(0,s._)("div",At,[(0,s._)("div",Nt,[e.isApple?((0,s.wg)(),(0,s.iD)("span",Wt,Ft)):((0,s.wg)(),(0,s.iD)("span",Yt,Rt))]),Bt]),(0,s._)("div",$t,[(0,s._)("div",Vt,[e.isApple