thelounge
Version:
The self-hosted Web IRC client
1 lines β’ 310 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 s(e){var n=o(e);return a(n)}function o(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}s.keys=function(){return Object.keys(t)},s.resolve=o,e.exports=s,s.id=1039},2664:(e,n,a)=>{var t={"./collapse.ts":1329,"./expand.ts":102,"./index.ts":3805,"./join.ts":7301,"./search.ts":960};function s(e){var n=o(e);return a(n)}function o(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}s.keys=function(){return Object.keys(t)},s.resolve=o,e.exports=s,s.id=2664},7286:(e,n,a)=>{"use strict";a.d(n,{Z:()=>o});var t=a(2297),s=a(9260);class o{static signout(){t.Z.clear(),s.Z.reload()}}},1329:(e,n,a)=>{"use strict";a.r(n);var t=a(8687),s=a(6084);n.default={input:function(){if(!s.h.state.activeChannel)return;const e=[];for(const n of s.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:s.h.state.activeChannel?.channel.id,messageIds:e,shown:!1}),!0}}},102:(e,n,a)=>{"use strict";a.r(n);var t=a(8687),s=a(6084);n.default={input:function(){if(!s.h.state.activeChannel)return;const e=[];for(const n of s.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:s.h.state.activeChannel?.channel.id,messageIds:e,shown:!0}),!0}}},3805:(e,n,a)=>{"use strict";a.r(n);const t=a(2664);n.default=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);var t=a(8687),s=a(6084),o=a(7543);n.default={input:function(e){if(e.length>0){let n=e[0];if(n.length>0){const a=s.h.state.activeChannel?.network.serverOptions.CHANTYPES,i=e[0].split(",");if(a&&a.length>0)for(let e=0;e<i.length;e++)a.includes(i[e][0])||(i[e]=a[0]+i[e]);n=i.join(",");const r=s.h.getters.findChannelOnCurrentNetwork(n);if(!r)return s.h.state.activeChannel&&t.Z.emit("input",{text:`/join ${n} ${e.length>1?e[1]:""}`,target:s.h.state.activeChannel.channel.id}),!0;(0,o.qZ)(r)}}else if("channel"===s.h.state.activeChannel?.channel.type)return t.Z.emit("input",{target:s.h.state.activeChannel.channel.id,text:`/join ${s.h.state.activeChannel.channel.name}`}),!0}}},960:(e,n,a)=>{"use strict";a.r(n);var t=a(6084),s=a(7543);n.default={input:function(e){return!!t.h.state.settings.searchEnabled&&(s.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)=>{"use strict";n.Z={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:[],timeFormats:{msgDefault:"HH:mm",msgWithSeconds:"HH:mm:ss",msg12h:"hh:mm A",msg12hWithSeconds:"hh:mm:ss A"},mobileViewportPixels:768}},8833:(e,n)=>{"use strict";const a=new Map;n.Z=new class{on(e,n){a.has(e)?a.get(e).push(n):a.set(e,[n])}off(e,n){a.has(e)&&a.set(e,a.get(e).filter((e=>e!==n)))}emit(e,...n){a.has(e)&&a.get(e).slice().map((e=>{e(...n)}))}}},5118:(e,n)=>{"use strict";n.Z=function([e,n],[a,t]){return Math.hypot(e-a,n-t)}},5785:(e,n)=>{"use strict";const a=["Bytes","KiB","MiB","GiB","TiB","PiB"];n.Z=e=>{const n=e>0?Math.floor(Math.log(e)/Math.log(1024)):0;return`${parseFloat((e/Math.pow(1024,n)).toFixed(1))} ${a[n]}`}},5485:(e,n,a)=>{"use strict";var t=a(6084);n.Z=(e,n)=>!(!e.isCollapsed||n.highlight||"lobby"===n.type||t.h.state.activeChannel&&n===t.h.state.activeChannel.channel)},4827:(e,n)=>{"use strict";n.Z=e=>("TEXTAREA"===e.target.tagName||"INPUT"===e.target.tagName)&&!!e.target.value},8017:(e,n,a)=>{"use strict";var t=a(7484),s=a.n(t);n.Z=e=>s()(e).format("D MMMM YYYY, HH:mm:ss")},2297:(e,n)=>{"use strict";n.Z={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)=>{"use strict";n.Z={reload(){window.location.reload()}}},7543:(e,n,a)=>{"use strict";a.d(n,{c4:()=>hh,Nd:()=>dh,qZ:()=>ph});var t=a(9307),s=a(2119),o=a(3648),i=a(1406);const r={id:"sign-in",class:"window",role:"tabpanel","aria-label":"Sign-in"},l=(0,o._)("img",{src:"img/logo-vertical-transparent-bg.svg",class:"logo",alt:"The Lounge",width:"256",height:"170"},null,-1),c=(0,o._)("img",{src:"img/logo-vertical-transparent-bg-inverted.svg",class:"logo-inverted",alt:"The Lounge",width:"256",height:"170"},null,-1),u=(0,o._)("label",{for:"signin-username"},"Username",-1),d={class:"password-container"},h=(0,o._)("label",{for:"signin-password"},"Password",-1),p=["type"],g={key:0,class:"error"},m=["disabled"];var w=a(2297),f=a(8687),k=a(3577);const b=["aria-label"],v=["aria-label"];var _=a(8015),y=(0,o.aZ)({name:"RevealPassword",setup(){const e=(0,_.iH)(!1);return{isVisible:e,onClick:()=>{e.value=!e.value}}}}),C=a(3744),x=(0,C.Z)(y,[["render",function(e,n,a,t,s,i){return(0,o.wg)(),(0,o.iD)("div",null,[(0,o.WI)(e.$slots,"default",{isVisible:e.isVisible}),(0,o._)("span",{ref:"revealButton",type:"button",class:(0,k.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,o._)("span",{"aria-label":e.isVisible?"Hide password":"Show password"},null,8,v)],10,b)])}]]),S=(0,o.aZ)({name:"SignIn",components:{RevealPassword:x},setup(){const e=(0,_.iH)(!1),n=(0,_.iH)(!1),a=(0,_.iH)(w.Z.get("user")||""),t=(0,_.iH)(""),s=()=>{e.value=!1,n.value=!0};return(0,o.bv)((()=>{f.Z.on("auth:failed",s)})),(0,o.Jd)((()=>{f.Z.off("auth:failed",s)})),{inFlight:e,errorShown:n,username:a,password:t,onSubmit:s=>{if(s.preventDefault(),!a.value||!t.value)return;e.value=!0,n.value=!1;const o={user:a.value,password:t.value};w.Z.set("user",o.user),f.Z.emit("auth:perform",o)}}}}),D=(0,C.Z)(S,[["render",function(e,n,a,t,s,w){const f=(0,o.up)("RevealPassword");return(0,o.wg)(),(0,o.iD)("div",r,[(0,o._)("form",{class:"container",method:"post",action:"",onSubmit:n[2]||(n[2]=(...n)=>e.onSubmit&&e.onSubmit(...n))},[l,c,u,(0,o.wy)((0,o._)("input",{id:"signin-username","onUpdate:modelValue":n[0]||(n[0]=n=>e.username=n),class:"input",type:"text",name:"username",autocapitalize:"none",autocorrect:"off",autocomplete:"username",required:"",autofocus:""},null,512),[[i.nr,e.username]]),(0,o._)("div",d,[h,(0,o.Wm)(f,null,{default:(0,o.w5)((a=>[(0,o.wy)((0,o._)("input",{id:"signin-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.password=n),type:a.isVisible?"text":"password",class:"input",autocapitalize:"none",autocorrect:"off",autocomplete:"current-password",required:""},null,8,p),[[i.YZ,e.password]])])),_:1})]),e.errorShown?((0,o.wg)(),(0,o.iD)("div",g,"Authentication failed.")):(0,o.kq)("",!0),(0,o._)("button",{disabled:e.inFlight,type:"submit",class:"btn"},"Sign in",8,m)],32)])}]]),Z=a(6084);const U={id:"connect",class:"window",role:"tabpanel","aria-label":"Connect"},M={class:"header"},q={class:"title"},j=(0,o.Uk)(" Connect "),T=(0,o._)("h2",null,"Network settings",-1),P={class:"connect-row"},H=(0,o._)("label",{for:"connect:name"},"Name",-1),L={class:"connect-row"},O=(0,o._)("label",{for:"connect:host"},"Server",-1),I={class:"input-wrap"},A=(0,o._)("span",{id:"connect:portseparator"},":",-1),E={class:"connect-row"},N=(0,o._)("label",{for:"connect:password"},"Password",-1),z=["type"],Y={class:"connect-row"},R=(0,o._)("label",null,null,-1),W={class:"input-wrap"},F={class:"tls"},B=["disabled"],$=(0,o.Uk)(" Use secure connection (TLS) "),V={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"},J={class:"tls"},K=(0,o.Uk)(" Only allow trusted certificates "),G=(0,o._)("h2",null,"Proxy Settings",-1),X={class:"connect-row"},Q=(0,o._)("label",null,null,-1),ee={class:"input-wrap"},ne={for:"connect:proxyEnabled"},ae=(0,o.Uk)(" Enable Proxy "),te={class:"connect-row"},se=(0,o._)("label",{for:"connect:proxyHost"},"SOCKS Address",-1),oe={class:"input-wrap"},ie=(0,o._)("span",{id:"connect:proxyPortSeparator"},":",-1),re={class:"connect-row"},le=(0,o._)("label",{for:"connect:proxyUsername"},"Proxy username",-1),ce={class:"connect-row"},ue=(0,o._)("label",{for:"connect:proxyPassword"},"Proxy password",-1),de=["type"],he=(0,o._)("h2",null,"Network settings",-1),pe={class:"connect-row"},ge=(0,o._)("label",{for:"connect:name"},"Name",-1),me={class:"connect-row"},we=(0,o._)("label",{for:"connect:password"},"Password",-1),fe=["type"],ke=(0,o._)("h2",null,"User preferences",-1),be={class:"connect-row"},ve=(0,o._)("label",{for:"connect:nick"},"Nick",-1),_e={key:2,class:"connect-row"},ye=(0,o._)("label",{for:"connect:username"},"Username",-1),Ce={class:"connect-row"},xe=(0,o._)("label",{for:"connect:realname"},"Real name",-1),Se={class:"connect-row"},De=(0,o._)("label",{for:"connect:leaveMessage"},"Leave message",-1),Ze={key:3,class:"connect-row"},Ue=(0,o._)("label",{for:"connect:commands"},[(0,o.Uk)(" Commands "),(0,o._)("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,o._)("button",{class:"extra-help"})])],-1),Me=["value"],qe={key:4,class:"connect-row"},je=(0,o._)("label",{for:"connect:channels"},"Channels",-1),Te={class:"connect-row"},Pe=(0,o._)("label",null,null,-1),He={class:"input-wrap"},Le={class:"tls"},Oe=(0,o.Uk)(" I have a password "),Ie={key:0,class:"connect-row"},Ae=(0,o._)("label",{for:"connect:password"},"Password",-1),Ee=["type"],Ne=(0,o._)("h2",{id:"label-auth"},"Authentication",-1),ze={class:"connect-row connect-auth",role:"group","aria-labelledby":"label-auth"},Ye={class:"opt"},Re=["checked"],We=(0,o.Uk)(" No authentication "),Fe={class:"opt"},Be=["checked"],$e=(0,o.Uk)(" Username + password (SASL PLAIN) "),Ve={key:0,class:"opt"},Je=["checked"],Ke=(0,o.Uk)(" Client certificate (SASL EXTERNAL) "),Ge={class:"connect-row"},Xe=(0,o._)("label",{for:"connect:username"},"Account",-1),Qe={class:"connect-row"},en=(0,o._)("label",{for:"connect:password"},"Password",-1),nn=["type"],an={key:1,class:"connect-sasl-external"},tn=[(0,o._)("p",null,"The Lounge automatically generates and manages the client certificate.",-1),(0,o._)("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,o._)("pre",null,[(0,o._)("code",null,"/msg NickServ CERT ADD")],-1)],sn=["disabled"],on=(0,o.Uk)("Save network"),rn=(0,o.Uk)("Connect");var ln=(0,o.aZ)({name:"SidebarToggle",setup:()=>({store:(0,Z.oR)()})}),cn=(0,C.Z)(ln,[["render",function(e,n,a,t,s,i){return(0,o.wg)(),(0,o.iD)("button",{class:"lt","aria-label":"Toggle channel list",onClick:n[0]||(n[0]=n=>e.store.commit("toggleSidebar"))})}]]),un=(0,o.aZ)({name:"NetworkForm",components:{RevealPassword:x,SidebarToggle:cn},props:{handleSubmit:{type:Function,required:!0},defaults:{type:Object,required:!0},disabled:Boolean},setup(e){const n=(0,Z.oR)(),a=(0,_.iH)(n.state.serverConfiguration),t=(0,_.iH)(e.defaults?.username),s=(0,_.iH)(!1),i=(0,_.iH)(null);(0,o.YP)(s,(e=>{e&&(0,o.Y3)((()=>{i.value?.focus()}))}));const r=(0,_.iH)(null),l=()=>{r.value&&(r.value.style.height="",r.value.style.height=`${Math.ceil(r.value.scrollHeight+2)}px`)};(0,o.YP)((()=>e.defaults?.commands),(()=>{(0,o.Y3)((()=>{l()}))})),(0,o.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,_.iH)(null);return{store:n,config:a,displayPasswordField:s,publicPassword:i,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,s,r){const l=(0,o.up)("SidebarToggle"),c=(0,o.up)("RevealPassword");return(0,o.wg)(),(0,o.iD)("div",U,[(0,o._)("div",M,[(0,o.Wm)(l)]),(0,o._)("form",{class:"container",method:"post",action:"",onSubmit:n[28]||(n[28]=(0,i.iM)(((...n)=>e.onSubmit&&e.onSubmit(...n)),["prevent"]))},[(0,o._)("h1",q,[e.defaults.uuid?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.defaults.uuid=n),type:"hidden",name:"uuid"},null,512),[[i.nr,e.defaults.uuid]]),(0,o.Uk)(" Edit "+(0,k.zw)(e.defaults.name),1)],64)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},[j,e.config?.lockNetwork&&e.store?.state.serverConfiguration?.public?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o.Uk)(" to "+(0,k.zw)(e.defaults.name),1)],64)):(0,o.kq)("",!0)],64))]),e.config?.lockNetwork?e.config.lockNetwork&&!e.store.state.serverConfiguration?.public?((0,o.wg)(),(0,o.iD)(o.HY,{key:1},[he,(0,o._)("div",pe,[ge,(0,o.wy)((0,o._)("input",{id:"connect:name","onUpdate:modelValue":n[12]||(n[12]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[i.nr,e.defaults.name,void 0,{trim:!0}]])]),(0,o._)("div",me,[we,(0,o.Wm)(c,{class:"input-wrap password-container"},{default:(0,o.w5)((a=>[(0,o.wy)((0,o._)("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,fe),[[i.YZ,e.defaults.password]])])),_:1})])],64)):(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[T,(0,o._)("div",P,[H,(0,o.wy)((0,o._)("input",{id:"connect:name","onUpdate:modelValue":n[1]||(n[1]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[i.nr,e.defaults.name,void 0,{trim:!0}]])]),(0,o._)("div",L,[O,(0,o._)("div",I,[(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.host,void 0,{trim:!0}]]),A,(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.port]])])]),(0,o._)("div",E,[N,(0,o.Wm)(c,{class:"input-wrap password-container"},{default:(0,o.w5)((a=>[(0,o.wy)((0,o._)("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,z),[[i.YZ,e.defaults.password]])])),_:1})]),(0,o._)("div",Y,[R,(0,o._)("div",W,[(0,o._)("label",F,[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":n[5]||(n[5]=n=>e.defaults.tls=n),type:"checkbox",name:"tls",disabled:e.defaults.hasSTSPolicy},null,8,B),[[i.e8,e.defaults.tls]]),$,e.defaults.hasSTSPolicy?((0,o.wg)(),(0,o.iD)("span",V,"π STS")):(0,o.kq)("",!0)]),(0,o._)("label",J,[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":n[6]||(n[6]=n=>e.defaults.rejectUnauthorized=n),type:"checkbox",name:"rejectUnauthorized"},null,512),[[i.e8,e.defaults.rejectUnauthorized]]),K])])]),G,(0,o._)("div",X,[Q,(0,o._)("div",ee,[(0,o._)("label",ne,[(0,o.wy)((0,o._)("input",{id:"connect:proxyEnabled","onUpdate:modelValue":n[7]||(n[7]=n=>e.defaults.proxyEnabled=n),type:"checkbox",name:"proxyEnabled"},null,512),[[i.e8,e.defaults.proxyEnabled]]),ae])])]),e.defaults.proxyEnabled?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o._)("div",te,[se,(0,o._)("div",oe,[(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.proxyHost,void 0,{trim:!0}]]),ie,(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.proxyPort]])])]),(0,o._)("div",re,[le,(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.proxyUsername,void 0,{trim:!0}]])]),(0,o._)("div",ce,[ue,(0,o.Wm)(c,{class:"input-wrap password-container"},{default:(0,o.w5)((a=>[(0,o.wy)((0,o._)("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),[[i.YZ,e.defaults.proxyPassword]])])),_:1})])],64)):(0,o.kq)("",!0)],64)),ke,(0,o._)("div",be,[ve,(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.nick]])]),e.config?.useHexIp?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",_e,[ye,(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.username,void 0,{trim:!0}]])])),(0,o._)("div",Ce,[xe,(0,o.wy)((0,o._)("input",{id:"connect:realname","onUpdate:modelValue":n[17]||(n[17]=n=>e.defaults.realname=n),class:"input",name:"realname",maxlength:"300"},null,512),[[i.nr,e.defaults.realname,void 0,{trim:!0}]])]),(0,o._)("div",Se,[De,(0,o.wy)((0,o._)("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),[[i.nr,e.defaults.leaveMessage,void 0,{trim:!0}]])]),e.defaults.uuid&&!e.store.state.serverConfiguration?.public?((0,o.wg)(),(0,o.iD)("div",Ze,[Ue,(0,o._)("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,Me)])):e.defaults.uuid?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",qe,[je,(0,o.wy)((0,o._)("input",{id:"connect:channels","onUpdate:modelValue":n[20]||(n[20]=n=>e.defaults.join=n),class:"input",name:"join"},null,512),[[i.nr,e.defaults.join,void 0,{trim:!0}]])])),e.store.state.serverConfiguration?.public?((0,o.wg)(),(0,o.iD)(o.HY,{key:5},[e.config?.lockNetwork?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o._)("div",Te,[Pe,(0,o._)("div",He,[(0,o._)("label",Le,[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":n[21]||(n[21]=n=>e.displayPasswordField=n),type:"checkbox"},null,512),[[i.e8,e.displayPasswordField]]),Oe])])]),e.displayPasswordField?((0,o.wg)(),(0,o.iD)("div",Ie,[Ae,(0,o.Wm)(c,{class:"input-wrap password-container"},{default:(0,o.w5)((a=>[(0,o.wy)((0,o._)("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,Ee),[[i.YZ,e.defaults.password]])])),_:1})])):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0)],64)):((0,o.wg)(),(0,o.iD)(o.HY,{key:6},[Ne,(0,o._)("div",ze,[(0,o._)("label",Ye,[(0,o._)("input",{checked:!e.defaults.sasl,type:"radio",name:"sasl",value:"",onChange:n[23]||(n[23]=n=>e.setSaslAuth(""))},null,40,Re),We]),(0,o._)("label",Fe,[(0,o._)("input",{checked:"plain"===e.defaults.sasl,type:"radio",name:"sasl",value:"plain",onChange:n[24]||(n[24]=n=>e.setSaslAuth("plain"))},null,40,Be),$e]),!e.store.state.serverConfiguration?.public&&e.defaults.tls?((0,o.wg)(),(0,o.iD)("label",Ve,[(0,o._)("input",{checked:"external"===e.defaults.sasl,type:"radio",name:"sasl",value:"external",onChange:n[25]||(n[25]=n=>e.setSaslAuth("external"))},null,40,Je),Ke])):(0,o.kq)("",!0)]),"plain"===e.defaults.sasl?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o._)("div",Ge,[Xe,(0,o.wy)((0,o._)("input",{id:"connect:saslAccount","onUpdate:modelValue":n[26]||(n[26]=n=>e.defaults.saslAccount=n),class:"input",name:"saslAccount",maxlength:"100",required:""},null,512),[[i.nr,e.defaults.saslAccount,void 0,{trim:!0}]])]),(0,o._)("div",Qe,[en,(0,o.Wm)(c,{class:"input-wrap password-container"},{default:(0,o.w5)((a=>[(0,o.wy)((0,o._)("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,nn),[[i.YZ,e.defaults.saslPassword]])])),_:1})])],64)):"external"===e.defaults.sasl?((0,o.wg)(),(0,o.iD)("div",an,tn)):(0,o.kq)("",!0)],64)),(0,o._)("div",null,[(0,o._)("button",{type:"submit",class:"btn",disabled:!!e.disabled},[e.defaults.uuid?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[on],64)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},[rn],64))],8,sn)])],32)])}]]),hn=(0,o.aZ)({name:"Connect",components:{NetworkForm:dn},props:{queryParams:Object},setup(e){const n=(0,Z.oR)(),a=(0,_.iH)(!1);return{defaults:(0,_.iH)(Object.assign({},n.state.serverConfiguration?.defaults,(e=>{if(!e)return{};const a={};for(let t of Object.keys(e)){let s=e[t];if(Array.isArray(s)&&(s=s[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&&(s=s.split(",").map((e=>e.match(/^[#&!+]/)?e:`#${e}`)).join(", ")),typeof n.state.serverConfiguration?.defaults[t]){case"boolean":a[t]="0"!==s&&"false"!==s&&!!s;break;case"number":a[t]=Number(s);break;case"string":a[t]=String(s)}}return a})(e.queryParams))),disabled:a,handleSubmit:e=>{a.value=!0,f.Z.emit("network:new",e)}}}}),pn=(0,C.Z)(hn,[["render",function(e,n,a,t,s,i){const r=(0,o.up)("NetworkForm");return(0,o.wg)(),(0,o.j4)(r,{"handle-submit":e.handleSubmit,defaults:e.defaults,disabled:e.disabled},null,8,["handle-submit","defaults","disabled"])}]]);const gn={id:"settings",class:"window",role:"tabpanel","aria-label":"Settings"},mn={class:"header"},wn={class:"container"},fn={class:"settings-menu"},kn=(0,o._)("h2",null,"Settings",-1),bn={role:"navigation","aria-label":"Settings tabs"},vn=["aria-label","aria-selected"],_n=["onClick","onKeypress"];var yn=(0,o.aZ)({name:"SettingTabListItem",props:{name:{type:String,required:!0},className:{type:String,required:!0},to:{type:String,required:!0}},setup:()=>({route:(0,s.yj)()})}),Cn=(0,C.Z)(yn,[["render",function(e,n,a,t,s,r){const l=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("li",{"aria-label":e.name,role:"tab","aria-selected":e.route.name===e.name,"aria-controls":"settings"},[(0,o.Wm)(l,{to:"/settings/"+e.to,custom:""},{default:(0,o.w5)((({navigate:n,isExactActive:a})=>[(0,o._)("button",{class:(0,k.C_)(["icon",e.className,{active:a}]),onClick:n,onKeypress:(0,i.D2)(n,["enter"])},(0,k.zw)(e.name),43,_n)])),_:1},8,["to"])],8,vn)}]]),xn=(0,o.aZ)({name:"SettingsTabs",components:{SettingTabItem:Cn}}),Sn=(0,C.Z)(xn,[["render",function(e,n,a,t,s,i){const r=(0,o.up)("SettingTabItem");return(0,o.wg)(),(0,o.iD)("aside",fn,[kn,(0,o._)("ul",bn,[(0,o.Wm)(r,{name:"General","class-name":"general",to:""}),(0,o.Wm)(r,{name:"Appearance","class-name":"appearance",to:"appearance"}),(0,o.Wm)(r,{name:"Notifications","class-name":"notifications",to:"notifications"}),(0,o.Wm)(r,{name:"Account","class-name":"account",to:"account"})])])}]]),Dn=(0,o.aZ)({name:"Settings",components:{SidebarToggle:cn,Navigation:Sn},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})}}}}),Zn=(0,C.Z)(Dn,[["render",function(e,n,a,t,s,r){const l=(0,o.up)("SidebarToggle"),c=(0,o.up)("Navigation"),u=(0,o.up)("router-view");return(0,o.wg)(),(0,o.iD)("div",gn,[(0,o._)("div",mn,[(0,o.Wm)(l)]),(0,o.Wm)(c),(0,o._)("div",wn,[(0,o._)("form",{ref:"settingsForm",autocomplete:"off",onChange:n[0]||(n[0]=(...n)=>e.onChange&&e.onChange(...n)),onSubmit:n[1]||(n[1]=(0,i.iM)((()=>{}),["prevent"]))},[(0,o.Wm)(u)],544)])])}]]);const Un={id:"help",class:"window",role:"tabpanel","aria-label":"Help"},Mn={class:"header"},qn={class:"container"},jn=(0,o._)("h1",{class:"title"},"Help",-1),Tn={class:"help-version-title"},Pn=(0,o._)("span",null,"About The Lounge",-1),Hn=(0,o.Uk)("release notes"),Ln=(0,o.Uk)(") "),On={class:"about"},In=(0,o.Uk)(" The Lounge is running from source ("),An=["href"],En=(0,o.Uk)("commit "),Nn=(0,o.Uk)("). "),zn=(0,o.Uk)(" Compare "),Yn=["href"],Rn=(0,o.Uk)("between "),Wn=(0,o.Uk)(" and "),Fn=(0,o._)("code",null,"master",-1),Bn=(0,o.Uk)(" to see what you are missing "),$n=(0,o.Uk)(" Compare "),Vn=["href"],Jn=(0,o.Uk)("between "),Kn=(0,o.Uk)(" and "),Gn=(0,o.Uk)(" to see your local changes "),Xn=(0,o._)("p",null,[(0,o._)("a",{href:"https://thelounge.chat/",target:"_blank",rel:"noopener",class:"website-link"},"Website")],-1),Qn=(0,o._)("p",null,[(0,o._)("a",{href:"https://thelounge.chat/docs/",target:"_blank",rel:"noopener",class:"documentation-link"},"Documentation")],-1),ea=(0,o._)("p",null,[(0,o._)("a",{href:"https://github.com/thelounge/thelounge/issues/new",target:"_blank",rel:"noopener",class:"report-issue-link"},"Report an issueβ¦")],-1),na={key:0},aa={key:1,class:"help-item"},ta=(0,o._)("div",{class:"subject gesture"},"Single-Finger Swipe Left",-1),sa=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Hide sidebar.")],-1),oa=[ta,sa],ia={key:2,class:"help-item"},ra=(0,o._)("div",{class:"subject gesture"},"Single-Finger Swipe Right",-1),la=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Show sidebar.")],-1),ca=[ra,la],ua={key:3,class:"help-item"},da=(0,o._)("div",{class:"subject gesture"},"Two-Finger Swipe Left",-1),ha=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the next window in the channel list.")],-1),pa=[da,ha],ga={key:4,class:"help-item"},ma=(0,o._)("div",{class:"subject gesture"},"Two-Finger Swipe Right",-1),wa=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the previous window in the channel list.")],-1),fa=[ma,wa],ka=(0,o._)("h2",null,"Keyboard Shortcuts",-1),ba={class:"help-item"},va={class:"subject"},_a={key:0},ya=(0,o._)("kbd",null,"Alt",-1),Ca=(0,o.Uk)(),xa=(0,o._)("kbd",null,"Shift",-1),Sa=(0,o.Uk)(),Da=(0,o._)("kbd",null,"β",-1),Za=[ya,Ca,xa,Sa,Da],Ua={key:1},Ma=(0,o._)("kbd",null,"β₯",-1),qa=(0,o.Uk)(),ja=(0,o._)("kbd",null,"β§",-1),Ta=(0,o.Uk)(),Pa=(0,o._)("kbd",null,"β",-1),Ha=[Ma,qa,ja,Ta,Pa],La=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the next lobby in the channel list.")],-1),Oa={class:"help-item"},Ia={class:"subject"},Aa={key:0},Ea=(0,o._)("kbd",null,"Alt",-1),Na=(0,o.Uk)(),za=[Ea,Na,(0,o._)("kbd",null,"Shift",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],Ya={key:1},Ra=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β§",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],Wa=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the previous lobby in the channel list.")],-1),Fa={class:"help-item"},Ba={class:"subject"},$a={key:0},Va=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"Shift",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],Ja={key:1},Ka=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β§",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],Ga=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Collapse current network.")],-1),Xa={class:"help-item"},Qa={class:"subject"},et={key:0},nt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"Shift",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],at={key:1},tt=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β§",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],st=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Expand current network.")],-1),ot={class:"help-item"},it={class:"subject"},rt={key:0},lt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],ct={key:1},ut=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],dt=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the next window in the channel list.")],-1),ht={class:"help-item"},pt={class:"subject"},gt={key:0},mt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],wt={key:1},ft=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],kt=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the previous window in the channel list.")],-1),bt={class:"help-item"},vt={class:"subject"},_t={key:0},yt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],Ct={key:1},xt=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],St=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the next window with unread messages in the channel list.")],-1),Dt={class:"help-item"},Zt={class:"subject"},Ut={key:0},Mt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],qt={key:1},jt=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"β",-1)],Tt=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the previous window with unread messages in the channel list.")],-1),Pt={class:"help-item"},Ht={class:"subject"},Lt={key:0},Ot=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"A",-1)],It={key:1},At=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"A",-1)],Et=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the first window with unread messages.")],-1),Nt={class:"help-item"},zt={class:"subject"},Yt={key:0},Rt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"S",-1)],Wt={key:1},Ft=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"S",-1)],Bt=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Toggle sidebar.")],-1),$t={class:"help-item"},Vt={class:"subject"},Jt={key:0},Kt=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"U",-1)],Gt={key:1},Xt=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"U",-1)],Qt=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Toggle channel user list.")],-1),es={class:"help-item"},ns={class:"subject"},as={key:0},ts=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"J",-1)],ss={key:1},os=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"J",-1)],is=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Toggle jump to channel switcher.")],-1),rs={class:"help-item"},ls={class:"subject"},cs={key:0},us=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"M",-1)],ds={key:1},hs=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"M",-1)],ps=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Toggle recent mentions popup.")],-1),gs={class:"help-item"},ms={class:"subject"},ws={key:0},fs=[(0,o._)("kbd",null,"Alt",-1),(0,o.Uk)(),(0,o._)("kbd",null,"/",-1)],ks={key:1},bs=[(0,o._)("kbd",null,"β₯",-1),(0,o.Uk)(),(0,o._)("kbd",null,"/",-1)],vs=(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Switch to the help menu.")],-1),_s=(0,o._)("div",{class:"help-item"},[(0,o._)("div",{class:"subject"},[(0,o._)("span",null,[(0,o._)("kbd",null,"Esc")])]),(0,o._)("div",{class:"description"},[(0,o._)("p",null," Close current contextual window (context menu, image viewer, topic edit, etc) and remove focus from input. ")])],-1),ys=(0,o._)("h2",null,"Formatting Shortcuts",-1),Cs={class:"help-item"},xs={class:"subject"},Ss={key:0},Ds=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"K",-1)],Zs={key:1},Us=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"K",-1)],Ms=(0,o._)("div",{class:"description"},[(0,o._)("p",null,[(0,o.Uk)(" Mark any text typed after this shortcut to be colored. After hitting this shortcut, enter an integer in the range "),(0,o._)("code",null,"0β15"),(0,o.Uk)(" to select the desired color, or use the autocompletion menu to choose a color name (see below). ")]),(0,o._)("p",null,[(0,o.Uk)(" Background color can be specified by putting a comma and another integer in the range "),(0,o._)("code",null,"0β15"),(0,o.Uk)(" after the foreground color number (autocompletion works too). ")]),(0,o._)("p",null,[(0,o.Uk)(" A color reference can be found "),(0,o._)("a",{href:"https://modern.ircdocs.horse/formatting.html#colors",target:"_blank",rel:"noopener"},"here"),(0,o.Uk)(". ")])],-1),qs={class:"help-item"},js={class:"subject"},Ts={key:0},Ps=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"B",-1)],Hs={key:1},Ls=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"B",-1)],Os=(0,o._)("div",{class:"description"},[(0,o._)("p",null,[(0,o.Uk)(" Mark all text typed after this shortcut as "),(0,o._)("span",{class:"irc-bold"},"bold"),(0,o.Uk)(". ")])],-1),Is={class:"help-item"},As={class:"subject"},Es={key:0},Ns=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"U",-1)],zs={key:1},Ys=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"U",-1)],Rs=(0,o._)("div",{class:"description"},[(0,o._)("p",null,[(0,o.Uk)(" Mark all text typed after this shortcut as "),(0,o._)("span",{class:"irc-underline"},"underlined"),(0,o.Uk)(". ")])],-1),Ws={class:"help-item"},Fs={class:"subject"},Bs={key:0},$s=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"I",-1)],Vs={key:1},Js=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"I",-1)],Ks=(0,o._)("div",{class:"description"},[(0,o._)("p",null,[(0,o.Uk)(" Mark all text typed after this shortcut as "),(0,o._)("span",{class:"irc-italic"},"italics"),(0,o.Uk)(". ")])],-1),Gs={class:"help-item"},Xs={class:"subject"},Qs={key:0},eo=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"S",-1)],no={key:1},ao=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"S",-1)],to=(0,o._)("div",{class:"description"},[(0,o._)("p",null,[(0,o.Uk)(" Mark all text typed after this shortcut as "),(0,o._)("span",{class:"irc-strikethrough"},"struck through"),(0,o.Uk)(". ")])],-1),so={class:"help-item"},oo={class:"subject"},io={key:0},ro=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"M",-1)],lo={key:1},co=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"M",-1)],uo=(0,o._)("div",{class:"description"},[(0,o._)("p",null,[(0,o.Uk)(" Mark all text typed after this shortcut as "),(0,o._)("span",{class:"irc-monospace"},"monospaced"),(0,o.Uk)(". ")])],-1),ho={class:"help-item"},po={class:"subject"},go={key:0},mo=[(0,o._)("kbd",null,"Ctrl",-1),(0,o.Uk)(),(0,o._)("kbd",null,"O",-1)],wo={key:1},fo=[(0,o._)("kbd",null,"β",-1),(0,o.Uk)(),(0,o._)("kbd",null,"O",-1)],ko=(0,o._)("div",{class:"description"},[(0,o._)("p",null," Mark all text typed after this shortcut to be reset to its original formatting. ")],-1),bo=(0,o.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 [password]</code></div><div class="description"><p> Join a channel. Password is only needed in protected channels and can usually be omitted. </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),vo={key:5,class:"help-item"},_o=[(0,o._)("div",{class:"subject"},[(0,o._)("code",null,"/search query")],-1),(0,o._)("div",{class:"description"},[(0,o._)("p",null,"Search for messages in the current channel / user")],-1)],yo=(0,o.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),Co={key:0},xo={key:1},So=(0,o.Uk)(" The Lounge "),Do=(0,o.Uk)(" (pre-release) "),Zo=(0,o.Uk)(" is now available. "),Uo=(0,o._)("br",null,null,-1),Mo=["href"],qo={key:2},jo=[(0,o.Uk)(" The Lounge is up to date, but there are out of date packages Run "),(0,o._)("code",null,"thelounge upgrade",-1),(0,o.Uk)(" on the server to upgrade packages. ")],To=(0,o._)("p",null,"The Lounge is up to date!",-1),Po=(0,o._)("p",null,"Information about latest release could not be retrieved.",-1);var Ho=(0,o.aZ)({name:"VersionChecker",setup(){const e=(0,Z.oR)(),n=()=>{e.commit("versionData",null),e.commit("versionStatus","loading"),f.Z.emit("changelog")};return(0,o.bv)((()=>{e.state.versionData||n()})),{store:e,checkNow:n}}}),Lo=(0,C.Z)(Ho,[["render",function(e,n,a,t,s,i){return(0,o.wg)(),(0,o.iD)("div",{id:"version-checker",class:(0,k.C_)([e.store.state.versionStatus])},["loading"===e.store.state.versionStatus?((0,o.wg)(),(0,o.iD)("p",Co,"Checking for updatesβ¦")):(0,o.kq)("",!0),"new-version"===e.store.state.versionStatus?((0,o.wg)(),(0,o.iD)("p",xo,[So,(0,o._)("b",null,(0,k.zw)(e.store.state.versionData?.latest.version),1),e.store.state.versionData?.latest.prerelease?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[Do],64)):(0,o.kq)("",!0),Zo,Uo,(0,o._)("a",{href:e.store.state.versionData?.latest.url,target:"_blank",rel:"noopener"}," Read more on GitHub ",8,Mo)])):(0,o.kq)("",!0),"new-packages"===e.store.state.versionStatus?((0,o.wg)(),(0,o.iD)("p",qo,jo)):(0,o.kq)("",!0),"up-to-date"===e.store.state.versionStatus?((0,o.wg)(),(0,o.iD)(o.HY,{key:3},[To,e.store.state.versionDataExpired?((0,o.wg)(),(0,o.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,o.kq)("",!0)],64)):(0,o.kq)("",!0),"error"===e.store.state.versionStatus?((0,o.wg)(),(0,o.iD)(o.HY,{key:4},[Po,(0,o._)("button",{id:"check-now",class:"btn btn-small",onClick:n[1]||(n[1]=(...n)=>e.checkNow&&e.checkNow(...n))},"Try again")],64)):(0,o.kq)("",!0)],2)}]]),Oo=(0,o.aZ)({name:"Help",components:{SidebarToggle:cn,VersionChecker:Lo},setup(){const e=(0,Z.oR)();return{isApple:navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)||!1,isTouch:navigator.maxTouchPoints>0,store:e}}}),Io=(0,C.Z)(Oo,[["render",function(e,n,a,t,s,i){const r=(0,o.up)("SidebarToggle"),l=(0,o.up)("router-link"),c=(0,o.up)("VersionChecker");return(0,o.wg)(),(0,o.iD)("div",Un,[(0,o._)("div",Mn,[(0,o.Wm)(r)]),(0,o._)("div",qn,[jn,(0,o._)("h2",Tn,[Pn,(0,o._)("small",null,[(0,o.Uk)(" v"+(0,k.zw)(e.store.state.serverConfiguration?.version)+" (",1),(0,o.Wm)(l,{id:"view-changelog",to:"/changelog"},{default:(0,o.w5)((()=>[Hn])),_:1}),Ln])]),(0,o._)("div",On,[(0,o.Wm)(c),e.store.state.serverConfiguration?.gitCommit?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o._)("p",null,[In,(0,o._)("a",{href:`https://github.com/thelounge/thelounge/tree/${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[En,(0,o._)("code",null,(0,k.zw)(e.store.state.serverConfiguration?.gitCommit),1)],8,An),Nn]),(0,o._)("ul",null,[(0,o._)("li",null,[zn,(0,o._)("a",{href:`https://github.com/thelounge/thelounge/compare/${e.store.state.serverConfiguration?.gitCommit}...master`,target:"_blank",rel:"noopener"},[Rn,(0,o._)("code",null,(0,k.zw)(e.store.state.serverConfiguration?.gitCommit),1),Wn,Fn],8,Yn),Bn]),(0,o._)("li",null,[$n,(0,o._)("a",{href:`https://github.com/thelounge/thelounge/compare/${e.store.state.serverConfiguration?.version}...${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[Jn,(0,o._)("code",null,(0,k.zw)(e.store.state.serverConfiguration?.version),1),Kn,(0,o._)("code",null,(0,k.zw)(e.store.state.serverConfiguration?.gitCommit),1)],8,Vn),Gn])])],64)):(0,o.kq)("",!0),Xn,Qn,ea]),e.isTouch?((0,o.wg)(),(0,o.iD)("h2",na,"Gestures")):(0,o.kq)("",!0),e.isTouch?((0,o.wg)(),(0,o.iD)("div",aa,oa)):(0,o.kq)("",!0),e.isTouch?((0,o.wg)(),(0,o.iD)("div",ia,ca)):(0,o.kq)("",!0),e.isTouch?((0,o.wg)(),(0,o.iD)("div",ua,pa)):(0,o.kq)("",!0),e.isTouch?((0,o.wg)(),(0,o.iD)("div",ga,fa)):(0,o.kq)("",!0),ka,(0,o._)("div",ba,[(0,o._)("div",va,[e.isApple?((0,o.wg)(),(0,o.iD)("span",Ua,Ha)):((0,o.wg)(),(0,o.iD)("span",_a,Za))]),La]),(0,o._)("div",Oa,[(0,o._)("div",Ia,[e.isApple?((0,o.wg)(),(0,o.iD)("span",Ya,Ra)):((0,o.wg)(),(0,o.iD)("span",Aa,za))]),Wa]),(0,o._)("div",Fa,[(0,o._)("div",Ba,[e.isApple?((0,o.wg)(),(0,o.iD)("span",Ja,Ka)):((0,o.wg)(),(0,o.iD)("span",$a,Va))]),Ga]),(0,o._)("div",Xa,[(0,o._)("div",Qa,[e.isApple?((0,o.wg)(),(0,o.iD)("span",at,tt)):((0,o.wg)(),(0,o.iD)("span",et,nt))]),st]),(0,o._)("div",ot,[(0,o._)("div",it,[e.isApple?((0,o.wg)(),(0,o.iD)("span",ct,ut)):((0,o.wg)(),(0,o.iD)("span",rt,lt))]),dt]),(0,o._)("div",ht,[(0,o._)("div",pt,[e.isApple?((