@lordbex/thelounge 4.5.0-blowfish-pre โ 4.5.1-blowfish
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/public/js/bundle.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var e,n={211:(e,n,t)=>{"use strict";t.d(n,{Eb:()=>f,M_:()=>b,Pj:()=>w});var a=t(2124),s=t(9808),o=t(381);const i={apply(){},default:null,sync:null},l={syncSettings:{default:!0,sync:"never",apply(e,n,t=!1){n&&!t&&o.A.emit("setting:get")}},advanced:{default:!1},autocomplete:{default:!0},nickPostfix:{default:""},coloredNicks:{default:!0},desktopNotifications:{default:!1,sync:"never",apply(e,n){e.commit("refreshDesktopNotificationState",null,{root:!0}),"Notification"in window&&n&&"granted"!==Notification.permission&&Notification.requestPermission(()=>e.commit("refreshDesktopNotificationState",null,{root:!0})).catch(e=>{console.error(e)})}},highlights:{default:"",sync:"always"},highlightExceptions:{default:"",sync:"always"},awayMessage:{default:"",sync:"always"},links:{default:!0},motd:{default:!0},notification:{default:!0,sync:"never"},notifyAllMessages:{default:!1},showSeconds:{default:!1},use12hClock:{default:!1},statusMessages:{default:"condensed"},theme:{default:document.getElementById("theme")?.dataset.serverTheme,apply(e,n){const t=document.getElementById("theme"),a=`themes/${n}.css`;if(!(t instanceof HTMLLinkElement))throw new Error("theme element is not a link");const s=t.attributes.getNamedItem("href");if(!s)throw new Error("theme is missing href attribute");if(s.value===a)return;if(s.value=a,!e.state.serverConfiguration)return;const o=e.state.serverConfiguration?.themes.filter(e=>e.name===n)[0],i=document.querySelector('meta[name="theme-color"]');if(!(i instanceof HTMLMetaElement))throw new Error("theme meta element is not a meta element");if(i){const e=o.themeColor||i.content;i.content=e}}},media:{default:!0},uploadCanvas:{default:!0},userStyles:{default:"",apply(e,n){if(!/[?&]nocss/.test(window.location.search)){const e=document.getElementById("user-specified-css");e&&(e.innerHTML=n)}}},searchEnabled:{default:!1},jumptoEabled:{default:!0},filterdmsEnabled:{default:!0},showAllDMs:{default:!1},showInputNick:{default:!0},disableMutedUnread:{default:!1},compactSidebar:{default:!1},beautifyBridgedMessages:{default:!0},bridgedMessageNicksStyle:{default:"parentheses"},enhancedUserListEnabled:{default:!0},enhancedContextMenuEnabled:{default:!0},enableEnhancedSearch:{default:!1},enableRainbowHotkey:{default:!0}},r=function(e){const n={};for(const t in e)n[t]={...i,...e[t]};return n}(l);function c(){const e={};for(const n in r)e[n]=r[n].default;return e}function u(){let e={};try{e=JSON.parse(s.A.get("settings")||"{}")}catch{s.A.remove("settings")}return e?(null!==e.highlights&&"object"==typeof e.highlights&&(e.highlights=e.highlights.join(", ")),e):{}}function d(e,n){const t={...e};for(const a in e)void 0!==n[a]&&typeof e[a]==typeof n[a]&&(t[a]=n[a]);return t}const p=document.title;var h=function(e){return e.Unsupported="unsupported",e.Blocked="blocked",e.NoHttps="nohttps",e.Granted="granted",e}(h||{});function g(){return"Notification"in window?"granted"===Notification.permission?h.Granted:window.isSecureContext?h.Blocked:h.NoHttps:h.Unsupported}const m={findChannelOnCurrentNetwork:e=>n=>(n=n.toLowerCase(),e.activeChannel?.network.channels.find(e=>e.name.toLowerCase()===n)),findChannelOnNetwork:e=>(n,t)=>{for(const a of e.networks)if(a.uuid===n)for(const e of a.channels)if(e.name===t)return{network:a,channel:e};return null},findChannel:e=>n=>{for(const t of e.networks)for(const e of t.channels)if(e.id===n)return{network:t,channel:e};return null},findNetwork:e=>n=>{for(const t of e.networks)if(t.uuid===n)return t;return null},highlightCount(e){let n=0;for(const t of e.networks)for(const e of t.channels)e.muted||(n+=e.highlight);return n},title:(e,n)=>(n.highlightCount?`(${n.highlightCount.toString()}) `:"")+(e.activeChannel?`${e.activeChannel.channel.name} โ `:"")+p},k={state:()=>({appLoaded:!1,activeChannel:void 0,currentUserVisibleError:null,desktopNotificationState:g(),isAutoCompleting:!1,isConnected:!1,networks:[],mentions:[],hasServiceWorker:!1,pushNotificationState:"unsupported",serverConfiguration:null,sessions:[],sidebarOpen:!1,sidebarDragging:!1,userlistOpen:"false"!==s.A.get("thelounge.state.userlist"),versionData:null,versionStatus:"loading",versionDataExpired:!1,serverHasSettings:!1,messageSearchResults:null,messageSearchPendingQuery:null,searchEnabled:!1}),mutations:{appLoaded(e){e.appLoaded=!0},activeChannel(e,n){e.activeChannel=n},currentUserVisibleError(e,n){e.currentUserVisibleError=n},refreshDesktopNotificationState(e){e.desktopNotificationState=g()},isAutoCompleting(e,n){e.isAutoCompleting=n},isConnected(e,n){e.isConnected=n},networks(e,n){e.networks=n},mentions(e,n){e.mentions=n},removeNetwork(e,n){e.networks.splice(e.networks.findIndex(e=>e.uuid===n),1)},sortNetworks(e,n){e.networks.sort(n)},hasServiceWorker(e){e.hasServiceWorker=!0},pushNotificationState(e,n){e.pushNotificationState=n},serverConfiguration(e,n){e.serverConfiguration=n},sessions(e,n){e.sessions=n},sidebarOpen(e,n){e.sidebarOpen=n},sidebarDragging(e,n){e.sidebarDragging=n},toggleSidebar(e){e.sidebarOpen=!e.sidebarOpen},toggleUserlist(e){e.userlistOpen=!e.userlistOpen},userlistOpen(e,n){e.userlistOpen=n},versionData(e,n){e.versionData=n},versionStatus(e,n){e.versionStatus=n},versionDataExpired(e,n){e.versionDataExpired=n},serverHasSettings(e,n){e.serverHasSettings=n},messageSearchPendingQuery(e,n){e.messageSearchPendingQuery=n},messageSearchResults(e,n){e.messageSearchResults=n},addMessageSearchResults(e,n){if(e.messageSearchResults||(e.messageSearchResults={results:[]}),!n)return;const t=[...n.results,...e.messageSearchResults.results];e.messageSearchResults={results:t}}},actions:{partChannel({commit:e,state:n},t){e("mentions",n.mentions.filter(e=>!(e.chanId===t.channel.id)))}},getters:m},f=Symbol(),b=(0,a.y$)(k),v=function(e){return{namespaced:!0,state:d(c(),u()),mutations:{set(e,{name:n,value:t}){e[n]=t}},actions:{syncAll({state:n},t=!1){if(!1!==n.syncSettings||!1!==t){e.commit("serverHasSettings",!0);for(const e in n)"never"===r[e].sync&&"always"!==r[e].sync||o.A.emit("setting:set",{name:e,value:n[e]})}},applyAll({state:n}){for(const t in r)r[t].apply(e,n[t],!0)},update({state:n,commit:t},{name:a,value:i,sync:l=!1}){if(n[a]===i)return;const c=r[a];c&&(!1!==l||!1!==n.syncSettings&&"never"!==c.sync)&&(t("set",{name:a,value:i}),s.A.set("settings",JSON.stringify(n)),c.apply(e,i),l&&(n.syncSettings&&"never"!==c.sync||"always"===c.sync)&&o.A.emit("setting:set",{name:a,value:i}))}}}}(b);function w(){return(0,a.Pj)(f)}b.registerModule("settings",v)},381:(e,n,t)=>{"use strict";t.d(n,{A:()=>a});const a=(0,t(3508).Ay)({transports:JSON.parse(document.body.dataset.transports||"['polling', 'websocket']"),path:window.location.pathname+"socket.io/",autoConnect:!1,reconnection:!document.body.classList.contains("public")})},514:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var a=t(641);const s={class:"content"};var o=t(3568),i=t(6640);const l=(0,a.pM)({name:"MessageTypeMode",components:{ParsedMessage:o.A,Username:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),r=(0,t(6262).A)(l,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("Username"),c=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(r,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" sets mode ",-1)),(0,a.bF)(c,{message:e.message},null,8,["message"])])}]])},875:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>u});var a=t(641);const s={class:"content"},o={class:"hostmask"},i={key:0,class:"quit-reason"};var l=t(3568),r=t(6640);const c=(0,a.pM)({name:"MessageTypeQuit",components:{ParsedMessage:l.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),u=(0,t(6262).A)(c,[["render",function(e,n,t,l,r,c){const u=(0,a.g2)("Username"),d=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),(0,a.Lk)("i",o,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(d,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),n[1]||(n[1]=(0,a.eW)(")",-1))]),n[4]||(n[4]=(0,a.eW)(" has quit ",-1)),e.message.text?((0,a.uX)(),(0,a.CE)("i",i,[n[2]||(n[2]=(0,a.eW)("(",-1)),(0,a.bF)(d,{network:e.network,message:e.message},null,8,["network","message"]),n[3]||(n[3]=(0,a.eW)(")",-1))])):(0,a.Q3)("",!0)])}]])},991:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={class:"away-message"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeAway",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("ParsedMessage"),u=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",s,[e.message.self?((0,a.uX)(),(0,a.Wv)(c,{key:0,network:e.network,message:e.message},null,8,["network","message"])):((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),n[2]||(n[2]=(0,a.eW)(" is away ",-1)),(0,a.Lk)("i",o,[n[0]||(n[0]=(0,a.eW)("(",-1)),(0,a.bF)(c,{network:e.network,message:e.message},null,8,["network","message"]),n[1]||(n[1]=(0,a.eW)(")",-1))])],64))])}]])},1191:(e,n,t)=>{var a={"./away.vue":991,"./back.vue":1344,"./chghost.vue":2462,"./ctcp.vue":6455,"./ctcp_request.vue":8078,"./error.vue":2429,"./invite.vue":3393,"./join.vue":7902,"./kick.vue":9971,"./mass_event.vue":1740,"./mode.vue":514,"./mode_channel.vue":7062,"./mode_user.vue":5506,"./monospace_block.vue":3107,"./nick.vue":9956,"./part.vue":5182,"./quit.vue":875,"./raw.vue":9207,"./topic.vue":4379,"./topic_set_by.vue":6789,"./whois.vue":2837};function s(e){var n=o(e);return t(n)}function o(e){if(!t.o(a,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=o,e.exports=s,s.id=1191},1344:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var a=t(641);const s={class:"content"};var o=t(3568),i=t(6640);const l=(0,a.pM)({name:"MessageTypeBack",components:{ParsedMessage:o.A,Username:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),r=(0,t(6262).A)(l,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("ParsedMessage"),c=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",s,[e.message.self?((0,a.uX)(),(0,a.Wv)(r,{key:0,network:e.network,message:e.message},null,8,["network","message"])):((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" is back ",-1))],64))])}]])},1654:(e,n,t)=>{"use strict";t.d(n,{cL:()=>s,gC:()=>o,rR:()=>a});let a=function(e){return e.CHANNEL="channel",e.LOBBY="lobby",e.QUERY="query",e.SPECIAL="special",e}({}),s=function(e){return e.BANLIST="list_bans",e.INVITELIST="list_invites",e.CHANNELLIST="list_channels",e.IGNORELIST="list_ignored",e}({}),o=function(e){return e[e.PARTED=0]="PARTED",e[e.JOINED=1]="JOINED",e}({})},1740:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641),s=t(33);const o={class:"content mass-event-summary"},i={class:"mass-event-duration"};var l=t(211);const r=(0,a.pM)({name:"MessageTypeMassEvent",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({store:(0,l.Pj)(),summaryParts:(0,a.EW)(()=>{const n=[],t=e.message.massEventSummary;return t?(t.joins>0&&n.push(`${t.joins} user${1!==t.joins?"s":""} joined`),t.parts>0&&n.push(`${t.parts} user${1!==t.parts?"s":""} left`),t.quits>0&&n.push(`${t.quits} user${1!==t.quits?"s":""} quit`),t.kicks>0&&n.push(`${t.kicks} user${1!==t.kicks?"s":""} kicked`),t.nicks>0&&n.push(`${t.nicks} nick change${1!==t.nicks?"s":""}`),t.modes>0&&n.push(`${t.modes} mode change${1!==t.modes?"s":""}`),t.chghosts>0&&n.push(`${t.chghosts} host change${1!==t.chghosts?"s":""}`),t.away>0&&n.push(`${t.away} user${1!==t.away?"s":""} away`),t.back>0&&n.push(`${t.back} user${1!==t.back?"s":""} back`),n.length>0?n:["No events"]):["No summary data"]}),formattedDuration:(0,a.EW)(()=>{const n=e.message.massEventSummary;if(!n||!n.duration)return"0s";const t=Math.round(n.duration/1e3);if(t<60)return`${t}s`;const a=Math.floor(t/60),s=t%60;return 0===s?`${a}m`:`${a}m ${s}s`})})}),c=(0,t(6262).A)(r,[["render",function(e,n,t,l,r,c){return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.Lk)("strong",null,"Mass event:",-1)),((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(e.summaryParts,(e,n)=>((0,a.uX)(),(0,a.CE)("span",{key:n},(0,s.v_)(n>0?", ":" ")+(0,s.v_)(e),1))),128)),(0,a.Lk)("i",i," ("+(0,s.v_)(e.formattedDuration)+")",1)])}]])},2429:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641);const s={class:"content"};var o=t(3568);const i=(0,a.pM)({name:"MessageTypeError",components:{ParsedMessage:o.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({errorMessage:(0,a.EW)(()=>{const n=e.message.channel||"!UNKNOWN_CHAN",t=e.message.nick||"!UNKNOWN_NICK";switch(e.message.error){case"bad_channel_key":return`Cannot join ${n} - Bad channel key.`;case"banned_from_channel":return`Cannot join ${n} - You have been banned from the channel.`;case"cannot_send_to_channel":return`Cannot send to channel ${n}`;case"channel_is_full":return`Cannot join ${n} - Channel is full.`;case"chanop_privs_needed":return"Cannot perform action: You're not a channel operator.";case"invite_only_channel":return`Cannot join ${n} - Channel is invite only.`;case"no_such_nick":return`User ${t} hasn't logged in or does not exist.`;case"not_on_channel":return"Cannot perform action: You're not on the channel.";case"password_mismatch":return"Password mismatch.";case"too_many_channels":return`Cannot join ${n} - You've already reached the maximum number of channels allowed.`;case"unknown_command":return`Unknown command: ${e.message.command||"!UNDEFINED_COMMAND_BUG"}`;case"user_not_in_channel":return`User ${t} is not on the channel.`;case"user_on_channel":return`User ${t} is already on the channel.`;default:return e.message.reason?`${e.message.reason} (${e.message.error||"!UNDEFINED_ERR"})`:e.message.error}})})}),l=(0,t(6262).A)(i,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(r,{network:e.network,message:e.message,text:e.errorMessage},null,8,["network","message","text"])])}]])},2462:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>p});var a=t(641),s=t(33);const o={class:"content"},i={key:0},l={key:1},r={class:"hostmask"};var c=t(3568),u=t(6640);const d=(0,a.pM)({name:"MessageTypeChangeHost",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,t(6262).A)(d,[["render",function(e,n,t,c,u,d){const p=(0,a.g2)("Username"),h=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(p,{user:e.message.from},null,8,["user"]),n[2]||(n[2]=(0,a.eW)(" has changed ",-1)),e.message.new_ident?((0,a.uX)(),(0,a.CE)("span",i,[n[0]||(n[0]=(0,a.eW)("username to ",-1)),(0,a.Lk)("b",null,(0,s.v_)(e.message.new_ident),1)])):(0,a.Q3)("",!0),e.message.new_host?((0,a.uX)(),(0,a.CE)("span",l,[n[1]||(n[1]=(0,a.eW)("hostname to ",-1)),(0,a.Lk)("i",r,[(0,a.bF)(h,{network:e.network,text:e.message.new_host},null,8,["network","text"])])])):(0,a.Q3)("",!0)])}]])},2806:(e,n,t)=>{"use strict";t.d(n,{A:()=>s});const a=new Map,s=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)})}}},2837:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>k});var a=t(641),s=t(33);const o={class:"content"},i={key:0},l={class:"whois"},r={class:"hostmask"},c={class:"hostmask"},u=["href"],d={key:0};var p=t(7321),h=t(3568),g=t(6640);const m=(0,a.pM)({name:"MessageTypeWhois",components:{ParsedMessage:h.A,Username:g.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,p.A)(e)})}),k=(0,t(6262).A)(m,[["render",function(e,n,t,p,h,g){const m=(0,a.g2)("Username"),k=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.Lk)("p",null,[(0,a.bF)(m,{user:{nick:e.message.whois.nick}},null,8,["user"]),e.message.whois.whowas?((0,a.uX)(),(0,a.CE)("span",i," is offline, last information:")):(0,a.Q3)("",!0)]),(0,a.Lk)("dl",l,[e.message.whois.account?((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[n[0]||(n[0]=(0,a.Lk)("dt",null,"Logged in as:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.account),1)],64)):(0,a.Q3)("",!0),n[20]||(n[20]=(0,a.Lk)("dt",null,"Host mask:",-1)),(0,a.Lk)("dd",r,[(0,a.bF)(k,{network:e.network,text:e.message.whois.ident+"@"+e.message.whois.hostname},null,8,["network","text"])]),e.message.whois.actual_hostname?((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[n[1]||(n[1]=(0,a.Lk)("dt",null,"Actual host:",-1)),(0,a.Lk)("dd",c,[(0,a.Lk)("a",{href:"https://ipinfo.io/"+e.message.whois.actual_ip,target:"_blank",rel:"noopener"},(0,s.v_)(e.message.whois.actual_ip),9,u),e.message.whois.actual_hostname!=e.message.whois.actual_ip?((0,a.uX)(),(0,a.CE)("i",d," ("+(0,s.v_)(e.message.whois.actual_hostname)+")",1)):(0,a.Q3)("",!0)])],64)):(0,a.Q3)("",!0),e.message.whois.actual_username?((0,a.uX)(),(0,a.CE)(a.FK,{key:2},[n[2]||(n[2]=(0,a.Lk)("dt",null,"Actual username:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.actual_username),1)],64)):(0,a.Q3)("",!0),e.message.whois.real_name?((0,a.uX)(),(0,a.CE)(a.FK,{key:3},[n[3]||(n[3]=(0,a.Lk)("dt",null,"Real name:",-1)),(0,a.Lk)("dd",null,[(0,a.bF)(k,{network:e.network,text:e.message.whois.real_name},null,8,["network","text"])])],64)):(0,a.Q3)("",!0),e.message.whois.registered_nick?((0,a.uX)(),(0,a.CE)(a.FK,{key:4},[n[4]||(n[4]=(0,a.Lk)("dt",null,"Registered nick:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.registered_nick),1)],64)):(0,a.Q3)("",!0),e.message.whois.channels?((0,a.uX)(),(0,a.CE)(a.FK,{key:5},[n[5]||(n[5]=(0,a.Lk)("dt",null,"Channels:",-1)),(0,a.Lk)("dd",null,[(0,a.bF)(k,{network:e.network,text:e.message.whois.channels},null,8,["network","text"])])],64)):(0,a.Q3)("",!0),e.message.whois.modes?((0,a.uX)(),(0,a.CE)(a.FK,{key:6},[n[6]||(n[6]=(0,a.Lk)("dt",null,"Modes:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.modes),1)],64)):(0,a.Q3)("",!0),e.message.whois.special?((0,a.uX)(!0),(0,a.CE)(a.FK,{key:7},(0,a.pI)(e.message.whois.special,e=>((0,a.uX)(),(0,a.CE)(a.FK,{key:e},[n[7]||(n[7]=(0,a.Lk)("dt",null,"Special:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e),1)],64))),128)):(0,a.Q3)("",!0),e.message.whois.operator?((0,a.uX)(),(0,a.CE)(a.FK,{key:8},[n[8]||(n[8]=(0,a.Lk)("dt",null,"Operator:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.operator),1)],64)):(0,a.Q3)("",!0),e.message.whois.helpop?((0,a.uX)(),(0,a.CE)(a.FK,{key:9},[n[9]||(n[9]=(0,a.Lk)("dt",null,"Available for help:",-1)),n[10]||(n[10]=(0,a.Lk)("dd",null,"Yes",-1))],64)):(0,a.Q3)("",!0),e.message.whois.bot?((0,a.uX)(),(0,a.CE)(a.FK,{key:10},[n[11]||(n[11]=(0,a.Lk)("dt",null,"Is a bot:",-1)),n[12]||(n[12]=(0,a.Lk)("dd",null,"Yes",-1))],64)):(0,a.Q3)("",!0),e.message.whois.away?((0,a.uX)(),(0,a.CE)(a.FK,{key:11},[n[13]||(n[13]=(0,a.Lk)("dt",null,"Away:",-1)),(0,a.Lk)("dd",null,[(0,a.bF)(k,{network:e.network,text:e.message.whois.away},null,8,["network","text"])])],64)):(0,a.Q3)("",!0),e.message.whois.secure?((0,a.uX)(),(0,a.CE)(a.FK,{key:12},[n[14]||(n[14]=(0,a.Lk)("dt",null,"Secure connection:",-1)),n[15]||(n[15]=(0,a.Lk)("dd",null,"Yes",-1))],64)):(0,a.Q3)("",!0),e.message.whois.certfps?((0,a.uX)(!0),(0,a.CE)(a.FK,{key:13},(0,a.pI)(e.message.whois.certfps,e=>((0,a.uX)(),(0,a.CE)(a.FK,{key:e},[n[16]||(n[16]=(0,a.Lk)("dt",null,"Certificate:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e),1)],64))),128)):(0,a.Q3)("",!0),e.message.whois.server?((0,a.uX)(),(0,a.CE)(a.FK,{key:14},[n[17]||(n[17]=(0,a.Lk)("dt",null,"Connected to:",-1)),(0,a.Lk)("dd",null,[(0,a.eW)((0,s.v_)(e.message.whois.server)+" ",1),(0,a.Lk)("i",null,"("+(0,s.v_)(e.message.whois.server_info)+")",1)])],64)):(0,a.Q3)("",!0),e.message.whois.logonTime?((0,a.uX)(),(0,a.CE)(a.FK,{key:15},[n[18]||(n[18]=(0,a.Lk)("dt",null,"Connected at:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.localetime(e.message.whois.logonTime)),1)],64)):(0,a.Q3)("",!0),e.message.whois.idle?((0,a.uX)(),(0,a.CE)(a.FK,{key:16},[n[19]||(n[19]=(0,a.Lk)("dt",null,"Idle since:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.localetime(e.message.whois.idleTime)),1)],64)):(0,a.Q3)("",!0)])])}]])},3107:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var a=t(641);const s={class:"content"},o={class:"text"};var i=t(3568);const l=(0,a.pM)({name:"MessageTypeMonospaceBlock",components:{ParsedMessage:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({cleanText:(0,a.EW)(()=>{let n=e.message.text.split("\n");return n.every(e=>""===e||"-"===e[0])&&(n=n.map(e=>e.substring(2))),n.map(e=>e.replace(/\s*$/,"")).join("\n").replace(/^[\r\n]+|[\r\n]+$/g,"")})})}),r=(0,t(6262).A)(l,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.Lk)("span",o,[(0,a.bF)(c,{network:e.network,text:e.cleanText},null,8,["network","text"])])])}]])},3388:(e,n,t)=>{"use strict";t.d(n,{A:()=>s});const a=["Bytes","KiB","MiB","GiB","TiB","PiB"],s=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]}`}},3393:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={key:0};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeInvite",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" invited ",-1)),e.message.invitedYou?((0,a.uX)(),(0,a.CE)("span",o,"you")):((0,a.uX)(),(0,a.Wv)(c,{key:1,user:e.message.target},null,8,["user"])),n[1]||(n[1]=(0,a.eW)(" to ",-1)),(0,a.bF)(u,{network:e.network,text:e.message.channel},null,8,["network","text"])])}]])},3568:(e,n,t)=>{"use strict";t.d(n,{A:()=>N});var a=t(641);const s=/^(\d{1,2})(?:,(\d{1,2}))?/,o=/^([0-9a-f]{6})(?:,([0-9a-f]{6}))?/i,i=/[\u0000-\u0009\u000B-\u001F]/g,l=["bold","textColor","bgColor","hexColor","hexBgColor","italic","underline","strikethrough","monospace"];var r=t(680),c=t.n(r);function u(e){return c()(e).replace("-","\\-")}var d=t(2319),p=t(9011);const h=(0,d.A)().tlds(p).tlds("onion",!0),g=["sftp","smb","file","irc","ircs","svn","git","steam","mumble","ts3server","svn+ssh","ssh","gopher","gemini"];for(const e of g)h.add(e+":","http:");function m(e){return{start:e.index,end:e.lastIndex,link:e.url}}h.add("web+",{validate(e,n,t){const a=/^[a-z]+:/gi;if(!a.test(e.slice(n)))return 0;const s=t.testSchemaAt(e,"http:",n+a.lastIndex);return 0===s?0:a.lastIndex+s},normalize(e){e.schema=e.text.slice(0,e.text.indexOf(":")+1)}}),h.add("//",{validate:h.__schemas__["//"].validate,normalize(e){e.schema="",e.url="http:"+e.url}});const k=(0,t(631).A)(),f=/([\w[\]\\`^{|}-]+)/g,b=function(e,n){return e.start<=n.start&&n.start<e.end||e.start<n.end&&n.end<=e.end||n.start<=e.start&&e.start<n.end||n.start<e.end&&e.end<=n.end};function v(e,n){return e.start-n.start||n.end-e.end}const w=JSON.parse('{"๐":"grinning face","๐":"grinning face with big eyes","๐":"grinning face with smiling eyes","๐":"beaming face with smiling eyes","๐":"grinning squinting face","๐
":"grinning face with sweat","๐คฃ":"rolling on the floor laughing","๐":"face with tears of joy","๐":"slightly smiling face","๐":"upside-down face","๐ซ ":"melting face","๐":"winking face","๐":"smiling face with smiling eyes","๐":"smiling face with halo","๐ฅฐ":"smiling face with hearts","๐":"smiling face with heart-eyes","๐คฉ":"star-struck","๐":"face blowing a kiss","๐":"kissing face","โบ":"smiling face","๐":"kissing face with closed eyes","๐":"kissing face with smiling eyes","๐ฅฒ":"smiling face with tear","๐":"face savoring food","๐":"face with tongue","๐":"winking face with tongue","๐คช":"zany face","๐":"squinting face with tongue","๐ค":"money-mouth face","๐ค":"smiling face with open hands","๐คญ":"face with hand over mouth","๐ซข":"face with open eyes and hand over mouth","๐ซฃ":"face with peeking eye","๐คซ":"shushing face","๐ค":"thinking face","๐ซก":"saluting face","๐ค":"zipper-mouth face","๐คจ":"face with raised eyebrow","๐":"neutral face","๐":"expressionless face","๐ถ":"face without mouth","๐ซฅ":"dotted line face","๐ถโ๐ซ":"face in clouds","๐":"smirking face","๐":"unamused face","๐":"face with rolling eyes","๐ฌ":"grimacing face","๐ฎโ๐จ":"face exhaling","๐คฅ":"lying face","๐ซจ":"shaking face","๐":"relieved face","๐":"pensive face","๐ช":"sleepy face","๐คค":"drooling face","๐ด":"sleeping face","๐ท":"face with medical mask","๐ค":"face with thermometer","๐ค":"face with head-bandage","๐คข":"nauseated face","๐คฎ":"face vomiting","๐คง":"sneezing face","๐ฅต":"hot face","๐ฅถ":"cold face","๐ฅด":"woozy face","๐ต":"face with crossed-out eyes","๐ตโ๐ซ":"face with spiral eyes","๐คฏ":"exploding head","๐ค ":"cowboy hat face","๐ฅณ":"partying face","๐ฅธ":"disguised face","๐":"smiling face with sunglasses","๐ค":"nerd face","๐ง":"face with monocle","๐":"confused face","๐ซค":"face with diagonal mouth","๐":"worried face","๐":"slightly frowning face","โน":"frowning face","๐ฎ":"face with open mouth","๐ฏ":"hushed face","๐ฒ":"astonished face","๐ณ":"flushed face","๐ฅบ":"pleading face","๐ฅน":"face holding back tears","๐ฆ":"frowning face with open mouth","๐ง":"anguished face","๐จ":"fearful face","๐ฐ":"anxious face with sweat","๐ฅ":"sad but relieved face","๐ข":"crying face","๐ญ":"loudly crying face","๐ฑ":"face screaming in fear","๐":"confounded face","๐ฃ":"persevering face","๐":"disappointed face","๐":"downcast face with sweat","๐ฉ":"weary face","๐ซ":"tired face","๐ฅฑ":"yawning face","๐ค":"face with steam from nose","๐ก":"enraged face","๐ ":"angry face","๐คฌ":"face with symbols on mouth","๐":"smiling face with horns","๐ฟ":"angry face with horns","๐":"skull","โ ":"skull and crossbones","๐ฉ":"pile of poo","๐คก":"clown face","๐น":"ogre","๐บ":"goblin","๐ป":"ghost","๐ฝ":"alien","๐พ":"alien monster","๐ค":"robot","๐บ":"grinning cat","๐ธ":"grinning cat with smiling eyes","๐น":"cat with tears of joy","๐ป":"smiling cat with heart-eyes","๐ผ":"cat with wry smile","๐ฝ":"kissing cat","๐":"weary cat","๐ฟ":"crying cat","๐พ":"pouting cat","๐":"see-no-evil monkey","๐":"hear-no-evil monkey","๐":"speak-no-evil monkey","๐":"love letter","๐":"heart with arrow","๐":"heart with ribbon","๐":"sparkling heart","๐":"growing heart","๐":"beating heart","๐":"revolving hearts","๐":"two hearts","๐":"heart decoration","โฃ":"heart exclamation","๐":"broken heart","โคโ๐ฅ":"heart on fire","โคโ๐ฉน":"mending heart","โค":"red heart","๐ฉท":"pink heart","๐งก":"orange heart","๐":"yellow heart","๐":"green heart","๐":"blue heart","๐ฉต":"light blue heart","๐":"purple heart","๐ค":"brown heart","๐ค":"black heart","๐ฉถ":"grey heart","๐ค":"white heart","๐":"kiss mark","๐ฏ":"hundred points","๐ข":"anger symbol","๐ฅ":"collision","๐ซ":"dizzy","๐ฆ":"sweat droplets","๐จ":"dashing away","๐ณ":"hole","๐ฌ":"speech balloon","๐โ๐จ":"eye in speech bubble","๐จ":"left speech bubble","๐ฏ":"right anger bubble","๐ญ":"thought balloon","๐ค":"ZZZ","๐":"waving hand","๐ค":"raised back of hand","๐":"hand with fingers splayed","โ":"raised hand","๐":"vulcan salute","๐ซฑ":"rightwards hand","๐ซฒ":"leftwards hand","๐ซณ":"palm down hand","๐ซด":"palm up hand","๐ซท":"leftwards pushing hand","๐ซธ":"rightwards pushing hand","๐":"OK hand","๐ค":"pinched fingers","๐ค":"pinching hand","โ":"victory hand","๐ค":"crossed fingers","๐ซฐ":"hand with index finger and thumb crossed","๐ค":"love-you gesture","๐ค":"sign of the horns","๐ค":"call me hand","๐":"backhand index pointing left","๐":"backhand index pointing right","๐":"backhand index pointing up","๐":"middle finger","๐":"backhand index pointing down","โ":"index pointing up","๐ซต":"index pointing at the viewer","๐":"thumbs up","๐":"thumbs down","โ":"raised fist","๐":"oncoming fist","๐ค":"left-facing fist","๐ค":"right-facing fist","๐":"clapping hands","๐":"raising hands","๐ซถ":"heart hands","๐":"open hands","๐คฒ":"palms up together","๐ค":"handshake","๐":"folded hands","โ":"writing hand","๐
":"nail polish","๐คณ":"selfie","๐ช":"flexed biceps","๐ฆพ":"mechanical arm","๐ฆฟ":"mechanical leg","๐ฆต":"leg","๐ฆถ":"foot","๐":"ear","๐ฆป":"ear with hearing aid","๐":"nose","๐ง ":"brain","๐ซ":"anatomical heart","๐ซ":"lungs","๐ฆท":"tooth","๐ฆด":"bone","๐":"eyes","๐":"eye","๐
":"tongue","๐":"mouth","๐ซฆ":"biting lip","๐ถ":"baby","๐ง":"child","๐ฆ":"boy","๐ง":"girl","๐ง":"person","๐ฑ":"person: blond hair","๐จ":"man","๐ง":"person: beard","๐งโโ":"man: beard","๐งโโ":"woman: beard","๐จโ๐ฆฐ":"man: red hair","๐จโ๐ฆฑ":"man: curly hair","๐จโ๐ฆณ":"man: white hair","๐จโ๐ฆฒ":"man: bald","๐ฉ":"woman","๐ฉโ๐ฆฐ":"woman: red hair","๐งโ๐ฆฐ":"person: red hair","๐ฉโ๐ฆฑ":"woman: curly hair","๐งโ๐ฆฑ":"person: curly hair","๐ฉโ๐ฆณ":"woman: white hair","๐งโ๐ฆณ":"person: white hair","๐ฉโ๐ฆฒ":"woman: bald","๐งโ๐ฆฒ":"person: bald","๐ฑโโ":"woman: blond hair","๐ฑโโ":"man: blond hair","๐ง":"older person","๐ด":"old man","๐ต":"old woman","๐":"person frowning","๐โโ":"man frowning","๐โโ":"woman frowning","๐":"person pouting","๐โโ":"man pouting","๐โโ":"woman pouting","๐
":"person gesturing NO","๐
โโ":"man gesturing NO","๐
โโ":"woman gesturing NO","๐":"person gesturing OK","๐โโ":"man gesturing OK","๐โโ":"woman gesturing OK","๐":"person tipping hand","๐โโ":"man tipping hand","๐โโ":"woman tipping hand","๐":"person raising hand","๐โโ":"man raising hand","๐โโ":"woman raising hand","๐ง":"deaf person","๐งโโ":"deaf man","๐งโโ":"deaf woman","๐":"person bowing","๐โโ":"man bowing","๐โโ":"woman bowing","๐คฆ":"person facepalming","๐คฆโโ":"man facepalming","๐คฆโโ":"woman facepalming","๐คท":"person shrugging","๐คทโโ":"man shrugging","๐คทโโ":"woman shrugging","๐งโโ":"health worker","๐จโโ":"man health worker","๐ฉโโ":"woman health worker","๐งโ๐":"student","๐จโ๐":"man student","๐ฉโ๐":"woman student","๐งโ๐ซ":"teacher","๐จโ๐ซ":"man teacher","๐ฉโ๐ซ":"woman teacher","๐งโโ":"judge","๐จโโ":"man judge","๐ฉโโ":"woman judge","๐งโ๐พ":"farmer","๐จโ๐พ":"man farmer","๐ฉโ๐พ":"woman farmer","๐งโ๐ณ":"cook","๐จโ๐ณ":"man cook","๐ฉโ๐ณ":"woman cook","๐งโ๐ง":"mechanic","๐จโ๐ง":"man mechanic","๐ฉโ๐ง":"woman mechanic","๐งโ๐ญ":"factory worker","๐จโ๐ญ":"man factory worker","๐ฉโ๐ญ":"woman factory worker","๐งโ๐ผ":"office worker","๐จโ๐ผ":"man office worker","๐ฉโ๐ผ":"woman office worker","๐งโ๐ฌ":"scientist","๐จโ๐ฌ":"man scientist","๐ฉโ๐ฌ":"woman scientist","๐งโ๐ป":"technologist","๐จโ๐ป":"man technologist","๐ฉโ๐ป":"woman technologist","๐งโ๐ค":"singer","๐จโ๐ค":"man singer","๐ฉโ๐ค":"woman singer","๐งโ๐จ":"artist","๐จโ๐จ":"man artist","๐ฉโ๐จ":"woman artist","๐งโโ":"pilot","๐จโโ":"man pilot","๐ฉโโ":"woman pilot","๐งโ๐":"astronaut","๐จโ๐":"man astronaut","๐ฉโ๐":"woman astronaut","๐งโ๐":"firefighter","๐จโ๐":"man firefighter","๐ฉโ๐":"woman firefighter","๐ฎ":"police officer","๐ฎโโ":"man police officer","๐ฎโโ":"woman police officer","๐ต":"detective","๐ตโโ":"man detective","๐ตโโ":"woman detective","๐":"guard","๐โโ":"man guard","๐โโ":"woman guard","๐ฅท":"ninja","๐ท":"construction worker","๐ทโโ":"man construction worker","๐ทโโ":"woman construction worker","๐ซ
":"person with crown","๐คด":"prince","๐ธ":"princess","๐ณ":"person wearing turban","๐ณโโ":"man wearing turban","๐ณโโ":"woman wearing turban","๐ฒ":"person with skullcap","๐ง":"woman with headscarf","๐คต":"person in tuxedo","๐คตโโ":"man in tuxedo","๐คตโโ":"woman in tuxedo","๐ฐ":"person with veil","๐ฐโโ":"man with veil","๐ฐโโ":"woman with veil","๐คฐ":"pregnant woman","๐ซ":"pregnant man","๐ซ":"pregnant person","๐คฑ":"breast-feeding","๐ฉโ๐ผ":"woman feeding baby","๐จโ๐ผ":"man feeding baby","๐งโ๐ผ":"person feeding baby","๐ผ":"baby angel","๐
":"Santa Claus","๐คถ":"Mrs. Claus","๐งโ๐":"mx claus","๐ฆธ":"superhero","๐ฆธโโ":"man superhero","๐ฆธโโ":"woman superhero","๐ฆน":"supervillain","๐ฆนโโ":"man supervillain","๐ฆนโโ":"woman supervillain","๐ง":"mage","๐งโโ":"man mage","๐งโโ":"woman mage","๐ง":"fairy","๐งโโ":"man fairy","๐งโโ":"woman fairy","๐ง":"vampire","๐งโโ":"man vampire","๐งโโ":"woman vampire","๐ง":"merperson","๐งโโ":"merman","๐งโโ":"mermaid","๐ง":"elf","๐งโโ":"man elf","๐งโโ":"woman elf","๐ง":"genie","๐งโโ":"man genie","๐งโโ":"woman genie","๐ง":"zombie","๐งโโ":"man zombie","๐งโโ":"woman zombie","๐ง":"troll","๐":"person getting massage","๐โโ":"man getting massage","๐โโ":"woman getting massage","๐":"person getting haircut","๐โโ":"man getting haircut","๐โโ":"woman getting haircut","๐ถ":"person walking","๐ถโโ":"man walking","๐ถโโ":"woman walking","๐ง":"person standing","๐งโโ":"man standing","๐งโโ":"woman standing","๐ง":"person kneeling","๐งโโ":"man kneeling","๐งโโ":"woman kneeling","๐งโ๐ฆฏ":"person with white cane","๐จโ๐ฆฏ":"man with white cane","๐ฉโ๐ฆฏ":"woman with white cane","๐งโ๐ฆผ":"person in motorized wheelchair","๐จโ๐ฆผ":"man in motorized wheelchair","๐ฉโ๐ฆผ":"woman in motorized wheelchair","๐งโ๐ฆฝ":"person in manual wheelchair","๐จโ๐ฆฝ":"man in manual wheelchair","๐ฉโ๐ฆฝ":"woman in manual wheelchair","๐":"person running","๐โโ":"man running","๐โโ":"woman running","๐":"woman dancing","๐บ":"man dancing","๐ด":"person in suit levitating","๐ฏ":"people with bunny ears","๐ฏโโ":"men with bunny ears","๐ฏโโ":"women with bunny ears","๐ง":"person in steamy room","๐งโโ":"man in steamy room","๐งโโ":"woman in steamy room","๐ง":"person climbing","๐งโโ":"man climbing","๐งโโ":"woman climbing","๐คบ":"person fencing","๐":"horse racing","โท":"skier","๐":"snowboarder","๐":"person golfing","๐โโ":"man golfing","๐โโ":"woman golfing","๐":"person surfing","๐โโ":"man surfing","๐โโ":"woman surfing","๐ฃ":"person rowing boat","๐ฃโโ":"man rowing boat","๐ฃโโ":"woman rowing boat","๐":"person swimming","๐โโ":"man swimming","๐โโ":"woman swimming","โน":"person bouncing ball","โนโโ":"man bouncing ball","โนโโ":"woman bouncing ball","๐":"person lifting weights","๐โโ":"man lifting weights","๐โโ":"woman lifting weights","๐ด":"person biking","๐ดโโ":"man biking","๐ดโโ":"woman biking","๐ต":"person mountain biking","๐ตโโ":"man mountain biking","๐ตโโ":"woman mountain biking","๐คธ":"person cartwheeling","๐คธโโ":"man cartwheeling","๐คธโโ":"woman cartwheeling","๐คผ":"people wrestling","๐คผโโ":"men wrestling","๐คผโโ":"women wrestling","๐คฝ":"person playing water polo","๐คฝโโ":"man playing water polo","๐คฝโโ":"woman playing water polo","๐คพ":"person playing handball","๐คพโโ":"man playing handball","๐คพโโ":"woman playing handball","๐คน":"person juggling","๐คนโโ":"man juggling","๐คนโโ":"woman juggling","๐ง":"person in lotus position","๐งโโ":"man in lotus position","๐งโโ":"woman in lotus position","๐":"person taking bath","๐":"person in bed","๐งโ๐คโ๐ง":"people holding hands","๐ญ":"women holding hands","๐ซ":"woman and man holding hands","๐ฌ":"men holding hands","๐":"kiss","๐ฉโโคโ๐โ๐จ":"kiss: woman, man","๐จโโคโ๐โ๐จ":"kiss: man, man","๐ฉโโคโ๐โ๐ฉ":"kiss: woman, woman","๐":"couple with heart","๐ฉโโคโ๐จ":"couple with heart: woman, man","๐จโโคโ๐จ":"couple with heart: man, man","๐ฉโโคโ๐ฉ":"couple with heart: woman, woman","๐ช":"family","๐จโ๐ฉโ๐ฆ":"family: man, woman, boy","๐จโ๐ฉโ๐ง":"family: man, woman, girl","๐จโ๐ฉโ๐งโ๐ฆ":"family: man, woman, girl, boy","๐จโ๐ฉโ๐ฆโ๐ฆ":"family: man, woman, boy, boy","๐จโ๐ฉโ๐งโ๐ง":"family: man, woman, girl, girl","๐จโ๐จโ๐ฆ":"family: man, man, boy","๐จโ๐จโ๐ง":"family: man, man, girl","๐จโ๐จโ๐งโ๐ฆ":"family: man, man, girl, boy","๐จโ๐จโ๐ฆโ๐ฆ":"family: man, man, boy, boy","๐จโ๐จโ๐งโ๐ง":"family: man, man, girl, girl","๐ฉโ๐ฉโ๐ฆ":"family: woman, woman, boy","๐ฉโ๐ฉโ๐ง":"family: woman, woman, girl","๐ฉโ๐ฉโ๐งโ๐ฆ":"family: woman, woman, girl, boy","๐ฉโ๐ฉโ๐ฆโ๐ฆ":"family: woman, woman, boy, boy","๐ฉโ๐ฉโ๐งโ๐ง":"family: woman, woman, girl, girl","๐จโ๐ฆ":"family: man, boy","๐จโ๐ฆโ๐ฆ":"family: man, boy, boy","๐จโ๐ง":"family: man, girl","๐จโ๐งโ๐ฆ":"family: man, girl, boy","๐จโ๐งโ๐ง":"family: man, girl, girl","๐ฉโ๐ฆ":"family: woman, boy","๐ฉโ๐ฆโ๐ฆ":"family: woman, boy, boy","๐ฉโ๐ง":"family: woman, girl","๐ฉโ๐งโ๐ฆ":"family: woman, girl, boy","๐ฉโ๐งโ๐ง":"family: woman, girl, girl","๐ฃ":"speaking head","๐ค":"bust in silhouette","๐ฅ":"busts in silhouette","๐ซ":"people hugging","๐ฃ":"footprints","๐ต":"monkey face","๐":"monkey","๐ฆ":"gorilla","๐ฆง":"orangutan","๐ถ":"dog face","๐":"dog","๐ฆฎ":"guide dog","๐โ๐ฆบ":"service dog","๐ฉ":"poodle","๐บ":"wolf","๐ฆ":"fox","๐ฆ":"raccoon","๐ฑ":"cat face","๐":"cat","๐โโฌ":"black cat","๐ฆ":"lion","๐ฏ":"tiger face","๐
":"tiger","๐":"leopard","๐ด":"horse face","๐ซ":"moose","๐ซ":"donkey","๐":"horse","๐ฆ":"unicorn","๐ฆ":"zebra","๐ฆ":"deer","๐ฆฌ":"bison","๐ฎ":"cow face","๐":"ox","๐":"water buffalo","๐":"cow","๐ท":"pig face","๐":"pig","๐":"boar","๐ฝ":"pig nose","๐":"ram","๐":"ewe","๐":"goat","๐ช":"camel","๐ซ":"two-hump camel","๐ฆ":"llama","๐ฆ":"giraffe","๐":"elephant","๐ฆฃ":"mammoth","๐ฆ":"rhinoceros","๐ฆ":"hippopotamus","๐ญ":"mouse face","๐":"mouse","๐":"rat","๐น":"hamster","๐ฐ":"rabbit face","๐":"rabbit","๐ฟ":"chipmunk","๐ฆซ":"beaver","๐ฆ":"hedgehog","๐ฆ":"bat","๐ป":"bear","๐ปโโ":"polar bear","๐จ":"koala","๐ผ":"panda","๐ฆฅ":"sloth","๐ฆฆ":"otter","๐ฆจ":"skunk","๐ฆ":"kangaroo","๐ฆก":"badger","๐พ":"paw prints","๐ฆ":"turkey","๐":"chicken","๐":"rooster","๐ฃ":"hatching chick","๐ค":"baby chick","๐ฅ":"front-facing baby chick","๐ฆ":"bird","๐ง":"penguin","๐":"dove","๐ฆ
":"eagle","๐ฆ":"duck","๐ฆข":"swan","๐ฆ":"owl","๐ฆค":"dodo","๐ชถ":"feather","๐ฆฉ":"flamingo","๐ฆ":"peacock","๐ฆ":"parrot","๐ชฝ":"wing","๐ฆโโฌ":"black bird","๐ชฟ":"goose","๐ธ":"frog","๐":"crocodile","๐ข":"turtle","๐ฆ":"lizard","๐":"snake","๐ฒ":"dragon face","๐":"dragon","๐ฆ":"sauropod","๐ฆ":"T-Rex","๐ณ":"spouting whale","๐":"whale","๐ฌ":"dolphin","๐ฆญ":"seal","๐":"fish","๐ ":"tropical fish","๐ก":"blowfish","๐ฆ":"shark","๐":"octopus","๐":"spiral shell","๐ชธ":"coral","๐ชผ":"jellyfish","๐":"snail","๐ฆ":"butterfly","๐":"bug","๐":"ant","๐":"honeybee","๐ชฒ":"beetle","๐":"lady beetle","๐ฆ":"cricket","๐ชณ":"cockroach","๐ท":"spider","๐ธ":"spider web","๐ฆ":"scorpion","๐ฆ":"mosquito","๐ชฐ":"fly","๐ชฑ":"worm","๐ฆ ":"microbe","๐":"bouquet","๐ธ":"cherry blossom","๐ฎ":"white flower","๐ชท":"lotus","๐ต":"rosette","๐น":"rose","๐ฅ":"wilted flower","๐บ":"hibiscus","๐ป":"sunflower","๐ผ":"blossom","๐ท":"tulip","๐ชป":"hyacinth","๐ฑ":"seedling","๐ชด":"potted plant","๐ฒ":"evergreen tree","๐ณ":"deciduous tree","๐ด":"palm tree","๐ต":"cactus","๐พ":"sheaf of rice","๐ฟ":"herb","โ":"shamrock","๐":"four leaf clover","๐":"maple leaf","๐":"fallen leaf","๐":"leaf fluttering in wind","๐ชน":"empty nest","๐ชบ":"nest with eggs","๐":"mushroom","๐":"grapes","๐":"melon","๐":"watermelon","๐":"tangerine","๐":"lemon","๐":"banana","๐":"pineapple","๐ฅญ":"mango","๐":"red apple","๐":"green apple","๐":"pear","๐":"peach","๐":"cherries","๐":"strawberry","๐ซ":"blueberries","๐ฅ":"kiwi fruit","๐
":"tomato","๐ซ":"olive","๐ฅฅ":"coconut","๐ฅ":"avocado","๐":"eggplant","๐ฅ":"potato","๐ฅ":"carrot","๐ฝ":"ear of corn","๐ถ":"hot pepper","๐ซ":"bell pepper","๐ฅ":"cucumber","๐ฅฌ":"leafy green","๐ฅฆ":"broccoli","๐ง":"garlic","๐ง
":"onion","๐ฅ":"peanuts","๐ซ":"beans","๐ฐ":"chestnut","๐ซ":"ginger root","๐ซ":"pea pod","๐":"bread","๐ฅ":"croissant","๐ฅ":"baguette bread","๐ซ":"flatbread","๐ฅจ":"pretzel","๐ฅฏ":"bagel","๐ฅ":"pancakes","๐ง":"waffle","๐ง":"cheese wedge","๐":"meat on bone","๐":"poultry leg","๐ฅฉ":"cut of meat","๐ฅ":"bacon","๐":"hamburger","๐":"french fries","๐":"pizza","๐ญ":"hot dog","๐ฅช":"sandwich","๐ฎ":"taco","๐ฏ":"burrito","๐ซ":"tamale","๐ฅ":"stuffed flatbread","๐ง":"falafel","๐ฅ":"egg","๐ณ":"cooking","๐ฅ":"shallow pan of food","๐ฒ":"pot of food","๐ซ":"fondue","๐ฅฃ":"bowl with spoon","๐ฅ":"green salad","๐ฟ":"popcorn","๐ง":"butter","๐ง":"salt","๐ฅซ":"canned food","๐ฑ":"bento box","๐":"rice cracker","๐":"rice ball","๐":"cooked rice","๐":"curry rice","๐":"steaming bowl","๐":"spaghetti","๐ ":"roasted sweet potato","๐ข":"oden","๐ฃ":"sushi","๐ค":"fried shrimp","๐ฅ":"fish cake with swirl","๐ฅฎ":"moon cake","๐ก":"dango","๐ฅ":"dumpling","๐ฅ ":"fortune cookie","๐ฅก":"takeout box","๐ฆ":"crab","๐ฆ":"lobster","๐ฆ":"shrimp","๐ฆ":"squid","๐ฆช":"oyster","๐ฆ":"soft ice cream","๐ง":"shaved ice","๐จ":"ice cream","๐ฉ":"doughnut","๐ช":"cookie","๐":"birthday cake","๐ฐ":"shortcake","๐ง":"cupcake","๐ฅง":"pie","๐ซ":"chocolate bar","๐ฌ":"candy","๐ญ":"lollipop","๐ฎ":"custard","๐ฏ":"honey pot","๐ผ":"baby bottle","๐ฅ":"glass of milk","โ":"hot beverage","๐ซ":"teapot","๐ต":"teacup without handle","๐ถ":"sake","๐พ":"bottle with popping cork","๐ท":"wine glass","๐ธ":"cocktail glass","๐น":"tropical drink","๐บ":"beer mug","๐ป":"clinking beer mugs","๐ฅ":"clinking glasses","๐ฅ":"tumbler glass","๐ซ":"pouring liquid","๐ฅค":"cup with straw","๐ง":"bubble tea","๐ง":"beverage box","๐ง":"mate","๐ง":"ice","๐ฅข":"chopsticks","๐ฝ":"fork and knife with plate","๐ด":"fork and knife","๐ฅ":"spoon","๐ช":"kitchen knife","๐ซ":"jar","๐บ":"amphora","๐":"globe showing Europe-Africa","๐":"globe showing Americas","๐":"globe showing Asia-Australia","๐":"globe with meridians","๐บ":"world map","๐พ":"map of Japan","๐งญ":"compass","๐":"snow-capped mountain","โฐ":"mountain","๐":"volcano","๐ป":"mount fuji","๐":"camping","๐":"beach with umbrella","๐":"desert","๐":"desert island","๐":"national park","๐":"stadium","๐":"classical building","๐":"building construction","๐งฑ":"brick","๐ชจ":"rock","๐ชต":"wood","๐":"hut","๐":"houses","๐":"derelict house","๐ ":"house","๐ก":"house with garden","๐ข":"office building","๐ฃ":"Japanese post office","๐ค":"post office","๐ฅ":"hospital","๐ฆ":"bank","๐จ":"hotel","๐ฉ":"love hotel","๐ช":"convenience store","๐ซ":"school","๐ฌ":"department store","๐ญ":"factory","๐ฏ":"Japanese castle","๐ฐ":"castle","๐":"wedding","๐ผ":"Tokyo tower","๐ฝ":"Statue of Liberty","โช":"church","๐":"mosque","๐":"hindu temple","๐":"synagogue","โฉ":"shinto shrine","๐":"kaaba","โฒ":"fountain","โบ":"tent","๐":"foggy","๐":"night with stars","๐":"cityscape","๐":"sunrise over mountains","๐
":"sunrise","๐":"cityscape at dusk","๐":"sunset","๐":"bridge at night","โจ":"hot springs","๐ ":"carousel horse","๐":"playground slide","๐ก":"ferris wheel","๐ข":"roller coaster","๐":"barber pole","๐ช":"circus tent","๐":"locomotive","๐":"railway car","๐":"high-speed train","๐
":"bullet train","๐":"train","๐":"metro","๐":"light rail","๐":"station","๐":"tram","๐":"monorail","๐":"mountain railway","๐":"tram car","๐":"bus","๐":"oncoming bus","๐":"trolleybus","๐":"minibus","๐":"ambulance","๐":"fire engine","๐":"police car","๐":"oncoming police car","๐":"taxi","๐":"oncoming taxi","๐":"automobile","๐":"oncoming automobile","๐":"sport utility vehicle","๐ป":"pickup truck","๐":"delivery truck","๐":"articulated lorry","๐":"tractor","๐":"racing car","๐":"motorcycle","๐ต":"motor scooter","๐ฆฝ":"manual wheelchair","๐ฆผ":"motorized wheelchair","๐บ":"auto rickshaw","๐ฒ":"bicycle","๐ด":"kick scooter","๐น":"skateboard","๐ผ":"roller skate","๐":"bus stop","๐ฃ":"motorway","๐ค":"railway track","๐ข":"oil drum","โฝ":"fuel pump","๐":"wheel","๐จ":"police car light","๐ฅ":"horizontal traffic light","๐ฆ":"vertical traffic light","๐":"stop sign","๐ง":"construction","โ":"anchor","๐":"ring buoy","โต":"sailboat","๐ถ":"canoe","๐ค":"speedboat","๐ณ":"passenger ship","โด":"ferry","๐ฅ":"motor boat","๐ข":"ship","โ":"airplane","๐ฉ":"small airplane","๐ซ":"airplane departure","๐ฌ":"airplane arrival","๐ช":"parachute","๐บ":"seat","๐":"helicopter","๐":"suspension railway","๐ ":"mountain cableway","๐ก":"aerial tramway","๐ฐ":"satellite","๐":"rocket","๐ธ":"flying saucer","๐":"bellhop bell","๐งณ":"luggage","โ":"hourglass done","โณ":"hourglass not done","โ":"watch","โฐ":"alarm clock","โฑ":"stopwatch","โฒ":"timer clock","๐ฐ":"mantelpiece clock","๐":"twelve oโclock","๐ง":"twelve-thirty","๐":"one oโclock","๐":"one-thirty","๐":"two oโclock","๐":"two-thirty","๐":"three oโclock","๐":"three-thirty","๐":"four oโclock","๐":"four-thirty","๐":"five oโclock","๐ ":"five-thirty","๐":"six oโclock","๐ก":"six-thirty","๐":"seven oโclock","๐ข":"seven-thirty","๐":"eight oโclock","๐ฃ":"eight-thirty","๐":"nine oโclock","๐ค":"nine-thirty","๐":"ten oโclock","๐ฅ":"ten-thirty","๐":"eleven oโclock","๐ฆ":"eleven-thirty","๐":"new moon","๐":"waxing crescent moon","๐":"first quarter moon","๐":"waxing gibbous moon","๐":"full moon","๐":"waning gibbous moon","๐":"last quarter moon","๐":"waning crescent moon","๐":"crescent moon","๐":"new moon face","๐":"first quarter moon face","๐":"last quarter moon face","๐ก":"thermometer","โ":"sun","๐":"full moon face","๐":"sun with face","๐ช":"ringed planet","โญ":"star","๐":"glowing star","๐ ":"shooting star","๐":"milky way","โ":"cloud","โ
":"sun behind cloud","โ":"cloud with lightning and rain","๐ค":"sun behind small cloud","๐ฅ":"sun behind large cloud","๐ฆ":"sun behind rain cloud","๐ง":"cloud with rain","๐จ":"cloud with snow","๐ฉ":"cloud with lightning","๐ช":"tornado","๐ซ":"fog","๐ฌ":"wind face","๐":"cyclone","๐":"rainbow","๐":"closed umbrella","โ":"umbrella","โ":"umbrella with rain drops","โฑ":"umbrella on ground","โก":"high voltage","โ":"snowflake","โ":"snowman","โ":"snowman without snow","โ":"comet","๐ฅ":"fire","๐ง":"droplet","๐":"water wave","๐":"jack-o-lantern","๐":"Christmas tree","๐":"fireworks","๐":"sparkler","๐งจ":"firecracker","โจ":"sparkles","๐":"balloon","๐":"party popper","๐":"confetti ball","๐":"tanabata tree","๐":"pine decoration","๐":"Japanese dolls","๐":"carp streamer","๐":"wind chime","๐":"moon viewing ceremony","๐งง":"red envelope","๐":"ribbon","๐":"wrapped gift","๐":"reminder ribbon","๐":"admission tickets","๐ซ":"ticket","๐":"military medal","๐":"trophy","๐
":"sports medal","๐ฅ":"1st place medal","๐ฅ":"2nd place medal","๐ฅ":"3rd place medal","โฝ":"soccer ball","โพ":"baseball","๐ฅ":"softball","๐":"basketball","๐":"volleyball","๐":"american football","๐":"rugby football","๐พ":"tennis","๐ฅ":"flying disc","๐ณ":"bowling","๐":"cricket game","๐":"field hockey","๐":"ice hockey","๐ฅ":"lacrosse","๐":"ping pong","๐ธ":"badminton","๐ฅ":"boxing glove","๐ฅ":"martial arts uniform","๐ฅ
":"goal net","โณ":"flag in hole","โธ":"ice skate","๐ฃ":"fishing pole","๐คฟ":"diving mask","๐ฝ":"running shirt","๐ฟ":"skis","๐ท":"sled","๐ฅ":"curling stone","๐ฏ":"bullseye","๐ช":"yo-yo","๐ช":"kite","๐ซ":"water pistol","๐ฑ":"pool 8 ball","๐ฎ":"crystal ball","๐ช":"magic wand","๐ฎ":"video game","๐น":"joystick","๐ฐ":"slot machine","๐ฒ":"game die","๐งฉ":"puzzle piece","๐งธ":"teddy bear","๐ช
":"piรฑata","๐ชฉ":"mirror ball","๐ช":"nesting dolls","โ ":"spade suit","โฅ":"heart suit","โฆ":"diamond suit","โฃ":"club suit","โ":"chess pawn","๐":"joker","๐":"mahjong red dragon","๐ด":"flower playing cards","๐ญ":"performing arts","๐ผ":"framed picture","๐จ":"artist palette","๐งต":"thread","๐ชก":"sewing needle","๐งถ":"yarn","๐ชข":"knot","๐":"glasses","๐ถ":"sunglasses","๐ฅฝ":"goggles","๐ฅผ":"lab coat","๐ฆบ":"safety vest","๐":"necktie","๐":"t-shirt","๐":"jeans","๐งฃ":"scarf","๐งค":"gloves","๐งฅ":"coat","๐งฆ":"socks","๐":"dress","๐":"kimono","๐ฅป":"sari","๐ฉฑ":"one-piece swimsuit","๐ฉฒ":"briefs","๐ฉณ":"shorts","๐":"bikini","๐":"womanโs clothes","๐ชญ":"folding hand fan","๐":"purse","๐":"handbag","๐":"clutch bag","๐":"shopping bags","๐":"backpack","๐ฉด":"thong sandal","๐":"manโs shoe","๐":"running shoe","๐ฅพ":"hiking boot","๐ฅฟ":"flat shoe","๐ ":"high-heeled shoe","๐ก":"womanโs sandal","๐ฉฐ":"ballet shoes","๐ข":"womanโs boot","๐ชฎ":"hair pick","๐":"crown","๐":"womanโs hat","๐ฉ":"top hat","๐":"graduation cap","๐งข":"billed cap","๐ช":"military helmet","โ":"rescue workerโs helmet","๐ฟ":"prayer beads","๐":"lipstick","๐":"ring","๐":"gem stone","๐":"muted speaker","๐":"speaker low volume","๐":"speaker medium volume","๐":"speaker high volume","๐ข":"loudspeaker","๐ฃ":"megaphone","๐ฏ":"postal horn","๐":"bell","๐":"bell with slash","๐ผ":"musical score","๐ต":"musical note","๐ถ":"musical notes","๐":"studio microphone","๐":"level slider","๐":"control knobs","๐ค":"microphone","๐ง":"headphone","๐ป":"radio","๐ท":"saxophone","๐ช":"accordion","๐ธ":"guitar","๐น":"musical keyboard","๐บ":"trumpet","๐ป":"violin","๐ช":"banjo","๐ฅ":"drum","๐ช":"long drum","๐ช":"maracas","๐ช":"flute","๐ฑ":"mobile phone","๐ฒ":"mobile phone with arrow","โ":"telephone","๐":"telephone receiver","๐":"pager","๐ ":"fax machine","๐":"battery","๐ชซ":"low battery","๐":"electric plug","๐ป":"laptop","๐ฅ":"desktop computer","๐จ":"printer","โจ":"keyboard","๐ฑ":"computer mouse","๐ฒ":"trackball","๐ฝ":"computer disk","๐พ":"floppy disk","๐ฟ":"optical disk","๐":"dvd","๐งฎ":"abacus","๐ฅ":"movie camera","๐":"film frames","๐ฝ":"film projector","๐ฌ":"clapper board","๐บ":"television","๐ท":"camera","๐ธ":"camera with flash","๐น":"video camera","๐ผ":"videocassette","๐":"magnifying glass tilted left","๐":"magnifying glass tilted right","๐ฏ":"candle","๐ก":"light bulb","๐ฆ":"flashlight","๐ฎ":"red paper lantern","๐ช":"diya lamp","๐":"notebook with decorative cover","๐":"closed book","๐":"open book","๐":"green book","๐":"blue book","๐":"orange book","๐":"books","๐":"notebook","๐":"ledger","๐":"page with curl","๐":"scroll","๐":"page facing up","๐ฐ":"newspaper","๐":"rolled-up newspaper","๐":"bookmark tabs","๐":"bookmark","๐ท":"label","๐ฐ":"money bag","๐ช":"coin","๐ด":"yen banknote","๐ต":"dollar banknote","๐ถ":"euro banknote","๐ท":"pound banknote","๐ธ":"money with wings","๐ณ":"credit card","๐งพ":"receipt","๐น":"chart increasing with yen","โ":"envelope","๐ง":"e-mail","๐จ":"incoming envelope","๐ฉ":"envelope with arrow","๐ค":"outbox tray","๐ฅ":"inbox tray","๐ฆ":"package","๐ซ":"closed mailbox with raised flag","๐ช":"closed mailbox with lowered flag","๐ฌ":"open mailbox with raised flag","๐ญ":"open mailbox with lowered flag","๐ฎ":"postbox","๐ณ":"ballot box with ballot","โ":"pencil","โ":"black nib","๐":"fountain pen","๐":"pen","๐":"paintbrush","๐":"crayon","๐":"memo","๐ผ":"briefcase","๐":"file folder","๐":"open file folder","๐":"card index dividers","๐
":"calendar","๐":"tear-off calendar","๐":"spiral notepad","๐":"spiral calendar","๐":"card index","๐":"chart increasing","๐":"chart decreasing","๐":"bar chart","๐":"clipboard","๐":"pushpin","๐":"round pushpin","๐":"paperclip","๐":"linked paperclips","๐":"straight ruler","๐":"triangular ruler","โ":"scissors","๐":"card file box","๐":"file cabinet","๐":"wastebasket","๐":"locked","๐":"unlocked","๐":"locked with pen","๐":"locked with key","๐":"key","๐":"old key","๐จ":"hammer","๐ช":"axe","โ":"pick","โ":"hammer and pick","๐ ":"hammer and wrench","๐ก":"dagger","โ":"crossed swords","๐ฃ":"bomb","๐ช":"boomerang","๐น":"bow and arrow","๐ก":"shield","๐ช":"carpentry saw","๐ง":"wrench","๐ช":"screwdriver","๐ฉ":"nut and bolt","โ":"gear","๐":"clamp","โ":"balance scale","๐ฆฏ":"white cane","๐":"link","โ":"chains","๐ช":"hook","๐งฐ":"toolbox","๐งฒ":"magnet","๐ช":"ladder","โ":"alembic","๐งช":"test tube","๐งซ":"petri dish","๐งฌ":"dna","๐ฌ":"microscope","๐ญ":"telescope","๐ก":"satellite antenna","๐":"syringe","๐ฉธ":"drop of blood","๐":"pill","๐ฉน":"adhesive bandage","๐ฉผ":"crutch","๐ฉบ":"stethoscope","๐ฉป":"x-ray","๐ช":"door","๐":"elevator","๐ช":"mirror","๐ช":"window","๐":"bed","๐":"couch and lamp","๐ช":"chair","๐ฝ":"toilet","๐ช ":"plunger","๐ฟ":"shower","๐":"bathtub","๐ชค":"mouse trap","๐ช":"razor","๐งด":"lotion bottle","๐งท":"safety pin","๐งน":"broom","๐งบ":"basket","๐งป":"roll of paper","๐ชฃ":"bucket","๐งผ":"soap","๐ซง":"bubbles","๐ชฅ":"toothbrush","๐งฝ":"sponge","๐งฏ":"fire extinguisher","๐":"shopping cart","๐ฌ":"cigarette","โฐ":"coffin","๐ชฆ":"headstone","โฑ":"funeral urn","๐งฟ":"nazar amulet","๐ชฌ":"hamsa","๐ฟ":"moai","๐ชง":"placard","๐ชช":"identification card","๐ง":"ATM sign","๐ฎ":"litter in bin sign","๐ฐ":"potable water","โฟ":"wheelchair symbol","๐น":"menโs room","๐บ":"womenโs room","๐ป":"restroom","๐ผ":"baby symbol","๐พ":"water closet","๐":"passport control","๐":"customs","๐":"baggage claim","๐
":"left luggage","โ ":"warning","๐ธ":"children crossing","โ":"no entry","๐ซ":"prohibited","๐ณ":"no bicycles","๐ญ":"no smoking","๐ฏ":"no littering","๐ฑ":"non-potable water","๐ท":"no pedestrians","๐ต":"no mobile phones","๐":"no one under eighteen","โข":"radioactive","โฃ":"biohazard","โฌ":"up arrow","โ":"up-right arrow","โก":"right arrow","โ":"down-right arrow","โฌ":"down arrow","โ":"down-left arrow","โฌ
":"left arrow","โ":"up-left arrow","โ":"up-down arrow","โ":"left-right arrow","โฉ":"right arrow curving left","โช":"left arrow curving right","โคด":"right arrow curving up","โคต":"right arrow curving down","๐":"clockwise vertical arrows","๐":"counterclockwise arrows button","๐":"BACK arrow","๐":"END arrow","๐":"ON! arrow","๐":"SOON arrow","๐":"TOP arrow","๐":"place of worship","โ":"atom symbol","๐":"om","โก":"star of David","โธ":"wheel of dharma","โฏ":"yin yang","โ":"latin cross","โฆ":"orthodox cross","โช":"star and crescent","โฎ":"peace symbol","๐":"menorah","๐ฏ":"dotted six-pointed star","๐ชฏ":"khanda","โ":"Aries","โ":"Taurus","โ":"Gemini","โ":"Cancer","โ":"Leo","โ":"Virgo","โ":"Libra","โ":"Scorpio","โ":"Sagittarius","โ":"Capricorn","โ":"Aquarius","โ":"Pisces","โ":"Ophiuchus","๐":"shuffle tracks button","๐":"repeat button","๐":"repeat single button","โถ":"play button","โฉ":"fast-forward button","โญ":"next track button","โฏ":"play or pause button","โ":"reverse button","โช":"fast reverse button","โฎ":"last track button","๐ผ":"upwards button","โซ":"fast up button","๐ฝ":"downwards button","โฌ":"fast down button","โธ":"pause button","โน":"stop button","โบ":"record button","โ":"eject button","๐ฆ":"cinema","๐
":"dim button","๐":"bright button","๐ถ":"antenna bars","๐":"wireless","๐ณ":"vibration mode","๐ด":"mobile phone off","โ":"female sign","โ":"male sign","โง":"transgender symbol","โ":"multiply","โ":"plus","โ":"minus","โ":"divide","๐ฐ":"heavy equals sign","โพ":"infinity","โผ":"double exclamation mark","โ":"exclamation question mark","โ":"red question mark","โ":"white question mark","โ":"white exclamation mark","โ":"red exclamation mark","ใฐ":"wavy dash","๐ฑ":"currency exchange","๐ฒ":"heavy dollar sign","โ":"medical symbol","โป":"recycling symbol","โ":"fleur-de-lis","๐ฑ":"trident emblem","๐":"name badge","๐ฐ":"Japanese symbol for beginner","โญ":"hollow red circle","โ
":"check mark button","โ":"check box with check","โ":"check mark","โ":"cross mark","โ":"cross mark button","โฐ":"curly loop","โฟ":"double curly loop","ใฝ":"part alternation mark","โณ":"eight-spoked asterisk","โด":"eight-pointed star","โ":"sparkle","ยฉ":"copyright","ยฎ":"registered","โข":"trade mark","#โฃ":"keycap: #","*โฃ":"keycap: *","0โฃ":"keycap: 0","1โฃ":"keycap: 1","2โฃ":"keycap: 2","3โฃ":"keycap: 3","4โฃ":"keycap: 4","5โฃ":"keycap: 5","6โฃ":"keycap: 6","7โฃ":"keycap: 7","8โฃ":"keycap: 8","9โฃ":"keycap: 9","๐":"keycap: 10","๐ ":"input latin uppercase","๐ก":"input latin lowercase","๐ข":"input numbers","๐ฃ":"input symbols","๐ค":"input latin letters","๐
ฐ":"A button (blood type)","๐":"AB button (blood type)","๐
ฑ":"B button (blood type)","๐":"CL button","๐":"COOL button","๐":"FREE button","โน":"information","๐":"ID button","โ":"circled M","๐":"NEW button","๐":"NG button","๐
พ":"O button (blood type)","๐":"OK button","๐
ฟ":"P button","๐":"SOS button","๐":"UP! button","๐":"VS button","๐":"Japanese โhereโ button","๐":"Japanese โservice chargeโ button","๐ท":"Japanese โmonthly amountโ button","๐ถ":"Japanese โnot free of chargeโ button","๐ฏ":"Japanese โreservedโ button","๐":"Japanese โbargainโ button","๐น":"Japanese โdiscountโ button","๐":"Japanese โfree of chargeโ button","๐ฒ":"Japanese โprohibitedโ button","๐":"Japanese โacceptableโ button","๐ธ":"Japanese โapplicationโ button","๐ด":"Japanese โpassing gradeโ button","๐ณ":"Japanese โvacancyโ button","ใ":"Japanese โcongratulationsโ button","ใ":"Japanese โsecretโ button","๐บ":"Japanese โopen for businessโ button","๐ต":"Japanese โno vacancyโ button","๐ด":"red circle","๐ ":"orange circle","๐ก":"yellow circle","๐ข":"green circle","๐ต":"blue circle","๐ฃ":"purple circle","๐ค":"brown circle","โซ":"black circle","โช":"white circle","๐ฅ":"red square","๐ง":"orange square","๐จ":"yellow square","๐ฉ":"green square","๐ฆ":"blue square","๐ช":"purple square","๐ซ":"brown square","โฌ":"black large square","โฌ":"white large square","โผ":"black medium square","โป":"white medium square","โพ":"black medium-small square","โฝ":"white medium-small square","โช":"black small square","โซ":"white small square","๐ถ":"large orange diamond","๐ท":"large blue diamond","๐ธ":"small orange diamond","๐น":"small blue diamond","๐บ":"red triangle pointed up","๐ป":"red triangle pointed down","๐ ":"diamond with a dot","๐":"radio button","๐ณ":"white square button","๐ฒ":"black square button","๐":"chequered flag","๐ฉ":"triangular flag","๐":"crossed flags","๐ด":"black flag","๐ณ":"white flag","๐ณโ๐":"rainbow flag","๐ณโโง":"transgender flag","๐ดโโ ":"pirate flag","๐ฆ๐จ":"flag: Ascension Island","๐ฆ๐ฉ":"flag: Andorra","๐ฆ๐ช":"flag: United Arab Emirates","๐ฆ๐ซ":"flag: Afghanistan","๐ฆ๐ฌ":"flag: Antigua & Barbuda","๐ฆ๐ฎ":"flag: Anguilla","๐ฆ๐ฑ":"flag: Albania","๐ฆ๐ฒ":"flag: Armenia","๐ฆ๐ด":"flag: Angola","๐ฆ๐ถ":"flag: Antarctica","๐ฆ๐ท":"flag: Argentina","๐ฆ๐ธ":"flag: American Samoa","๐ฆ๐น":"flag: Austria","๐ฆ๐บ":"flag: Australia","๐ฆ๐ผ":"flag: Aruba","๐ฆ๐ฝ":"flag: ร
land Islands","๐ฆ๐ฟ":"flag: Azerbaijan","๐ง๐ฆ":"flag: Bosnia & Herzegovina","๐ง๐ง":"flag: Barbados","๐ง๐ฉ":"flag: Bangladesh","๐ง๐ช":"flag: Belgium","๐ง๐ซ":"flag: Burkina Faso","๐ง๐ฌ":"flag: Bulgaria","๐ง๐ญ":"flag: Bahrain","๐ง๐ฎ":"flag: Burundi","๐ง๐ฏ":"flag: Benin","๐ง๐ฑ":"flag: St. Barthรฉlemy","๐ง๐ฒ":"flag: Bermuda","๐ง๐ณ":"flag: Brunei","๐ง๐ด":"flag: Bolivia","๐ง๐ถ":"flag: Caribbean Netherlands","๐ง๐ท":"flag: Brazil","๐ง๐ธ":"flag: Bahamas","๐ง๐น":"flag: Bhutan","๐ง๐ป":"flag: Bouvet Island","๐ง๐ผ":"flag: Botswana","๐ง๐พ":"flag: Belarus","๐ง๐ฟ":"flag: Belize","๐จ๐ฆ":"flag: Canada","๐จ๐จ":"flag: Cocos (Keeling) Islands","๐จ๐ฉ":"flag: Congo - Kinshasa","๐จ๐ซ":"flag: Central African Republic","๐จ๐ฌ":"flag: Congo - Brazzaville","๐จ๐ญ":"flag: Switzerland","๐จ๐ฎ":"flag: Cรดte dโIvoire","๐จ๐ฐ":"flag: Cook Islands","๐จ๐ฑ":"flag: Chile","๐จ๐ฒ":"flag: Cameroon","๐จ๐ณ":"flag: China","๐จ๐ด":"flag: Colombia","๐จ๐ต":"flag: Clipperton Island","๐จ๐ท":"flag: Costa Rica","๐จ๐บ":"flag: Cuba","๐จ๐ป":"flag: Cape Verde","๐จ๐ผ":"flag: Curaรงao","๐จ๐ฝ":"flag: Christmas Island","๐จ๐พ":"flag: Cyprus","๐จ๐ฟ":"flag: Czechia","๐ฉ๐ช":"flag: Germany","๐ฉ๐ฌ":"flag: Diego Garcia","๐ฉ๐ฏ":"flag: Djibouti","๐ฉ๐ฐ":"flag: Denmark","๐ฉ๐ฒ":"flag: Dominica","๐ฉ๐ด":"flag: Dominican Republic","๐ฉ๐ฟ":"flag: Algeria","๐ช๐ฆ":"flag: Ceuta & Melilla","๐ช๐จ":"flag: Ecuador","๐ช๐ช":"flag: Estonia","๐ช๐ฌ":"flag: Egypt","๐ช๐ญ":"flag: Western Sahara","๐ช๐ท":"flag: Eritrea","๐ช๐ธ":"flag: Spain","๐ช๐น":"flag: Ethiopia","๐ช๐บ":"flag: European Union","๐ซ๐ฎ":"flag: Finland","๐ซ๐ฏ":"flag: Fiji","๐ซ๐ฐ":"flag: Falkland Islands","๐ซ๐ฒ":"flag: Micronesia","๐ซ๐ด":"flag: Faroe Islands","๐ซ๐ท":"flag: France","๐ฌ๐ฆ":"flag: Gabon","๐ฌ๐ง":"flag: United Kingdom","๐ฌ๐ฉ":"flag: Grenada","๐ฌ๐ช":"flag: Georgia","๐ฌ๐ซ":"flag: French Guiana","๐ฌ๐ฌ":"flag: Guernsey","๐ฌ๐ญ":"flag: Ghana","๐ฌ๐ฎ":"flag: Gibraltar","๐ฌ๐ฑ":"flag: Greenland","๐ฌ๐ฒ":"flag: Gambia","๐ฌ๐ณ":"flag: Guinea","๐ฌ๐ต":"flag: Guadeloupe","๐ฌ๐ถ":"flag: Equatorial Guinea","๐ฌ๐ท":"flag: Greece","๐ฌ๐ธ":"flag: South Georgia & South Sandwich Islands","๐ฌ๐น":"flag: Guatemala","๐ฌ๐บ":"flag: Guam","๐ฌ๐ผ":"flag: Guinea-Bissau","๐ฌ๐พ":"flag: Guyana","๐ญ๐ฐ":"flag: Hong Kong SAR China","๐ญ๐ฒ":"flag: Heard & McDonald Islands","๐ญ๐ณ":"flag: Honduras","๐ญ๐ท":"flag: Croatia","๐ญ๐น":"flag: Haiti","๐ญ๐บ":"flag: Hungary","๐ฎ๐จ":"flag: Canary Islands","๐ฎ๐ฉ":"flag: Indonesia","๐ฎ๐ช":"flag: Ireland","๐ฎ๐ฑ":"flag: Israel","๐ฎ๐ฒ":"flag: Isle of Man","๐ฎ๐ณ":"flag: India","๐ฎ๐ด":"flag: British Indian Ocean Territory","๐ฎ๐ถ":"flag: Iraq","๐ฎ๐ท":"flag: Iran","๐ฎ๐ธ":"flag: Iceland","๐ฎ๐น":"flag: Italy","๐ฏ๐ช":"flag: Jersey","๐ฏ๐ฒ":"flag: Jamaica","๐ฏ๐ด":"flag: Jordan","๐ฏ๐ต":"flag: Japan","๐ฐ๐ช":"flag: Kenya","๐ฐ๐ฌ":"flag: Kyrgyzstan","๐ฐ๐ญ":"flag: Cambodia","๐ฐ๐ฎ":"flag: Kiribati","๐ฐ๐ฒ":"flag: Comoros","๐ฐ๐ณ":"flag: St. Kitts & Nevis","๐ฐ๐ต":"flag: North Korea","๐ฐ๐ท":"flag: South Korea","๐ฐ๐ผ":"flag: Kuwait","๐ฐ๐พ":"flag: Cayman Islands","๐ฐ๐ฟ":"flag: Kazakhstan","๐ฑ๐ฆ":"flag: Laos","๐ฑ๐ง":"flag: Lebanon","๐ฑ๐จ":"flag: St. Lucia","๐ฑ๐ฎ":"flag: Liechtenstein","๐ฑ๐ฐ":"flag: Sri Lanka","๐ฑ๐ท":"flag: Liberia","๐ฑ๐ธ":"flag: Lesotho","๐ฑ๐น":"flag: Lithuania","๐ฑ๐บ":"flag: Luxembourg","๐ฑ๐ป":"flag: Latvia","๐ฑ๐พ":"flag: Libya","๐ฒ๐ฆ":"flag: Morocco","๐ฒ๐จ":"flag: Monaco","๐ฒ๐ฉ":"flag: Moldova","๐ฒ๐ช":"flag: Montenegro","๐ฒ๐ซ":"flag: St. Martin","๐ฒ๐ฌ":"flag: Madagascar","๐ฒ๐ญ":"flag: Marshall Islands","๐ฒ๐ฐ":"flag: North Macedonia","๐ฒ๐ฑ":"flag: Mali","๐ฒ๐ฒ":"flag: Myanmar (Burma)","๐ฒ๐ณ":"flag: Mongolia","๐ฒ๐ด":"flag: Macao SAR China","๐ฒ๐ต":"flag: Northern Mariana Islands","๐ฒ๐ถ":"flag: Martinique","๐ฒ๐ท":"flag: Mauritania","๐ฒ๐ธ":"flag: Montserrat","๐ฒ๐น":"flag: Malta","๐ฒ๐บ":"flag: Mauritius","๐ฒ๐ป":"flag: Maldives","๐ฒ๐ผ":"flag: Malawi","๐ฒ๐ฝ":"flag: Mexico","๐ฒ๐พ":"flag: Malaysia","๐ฒ๐ฟ":"flag: Mozambique","๐ณ๐ฆ":"flag: Namibia","๐ณ๐จ":"flag: New Caledonia","๐ณ๐ช":"flag: Niger","๐ณ๐ซ":"flag: Norfolk Island","๐ณ๐ฌ":"flag: Nigeria","๐ณ๐ฎ":"flag: Nicaragua","๐ณ๐ฑ":"flag: Netherlands","๐ณ๐ด":"flag: Norway","๐ณ๐ต":"flag: Nepal","๐ณ๐ท":"flag: Nauru","๐ณ๐บ":"flag: Niue","๐ณ๐ฟ":"flag: New Zealand","๐ด๐ฒ":"flag: Oman","๐ต๐ฆ":"flag: Panama","๐ต๐ช":"flag: Peru","๐ต๐ซ":"flag: French Polynesia","๐ต๐ฌ":"flag: Papua New Guinea","๐ต๐ญ":"flag: Philippines","๐ต๐ฐ":"flag: Pakistan","๐ต๐ฑ":"flag: Poland","๐ต๐ฒ":"flag: St. Pierre & Miquelon","๐ต๐ณ":"flag: Pitcairn Islands","๐ต๐ท":"flag: Puerto Rico","๐ต๐ธ":"flag: Palestinian Territories","๐ต๐น":"flag: Portugal","๐ต๐ผ":"flag: Palau","๐ต๐พ":"flag: Paraguay","๐ถ๐ฆ":"flag: Qatar","๐ท๐ช":"flag: Rรฉunion","๐ท๐ด":"flag: Romania","๐ท๐ธ":"flag: Serbia","๐ท๐บ":"flag: Russia","๐ท๐ผ":"flag: Rwanda","๐ธ๐ฆ":"flag: Saudi Arabia","๐ธ๐ง":"flag: Solomon Islands","๐ธ๐จ":"flag: Seychelles","๐ธ๐ฉ":"flag: Sudan","๐ธ๐ช":"flag: Sweden","๐ธ๐ฌ":"flag: Singapore","๐ธ๐ญ":"flag: St. Helena","๐ธ๐ฎ":"flag: Slovenia","๐ธ๐ฏ":"flag: Svalbard & Jan Mayen","๐ธ๐ฐ":"flag: Slovakia","๐ธ๐ฑ":"flag: Sierra Leone","๐ธ๐ฒ":"flag: San Marino","๐ธ๐ณ":"flag: Senegal","๐ธ๐ด":"flag: Somalia","๐ธ๐ท":"flag: Suriname","๐ธ๐ธ":"flag: South Sudan","๐ธ๐น":"flag: Sรฃo Tomรฉ & Prรญncipe","๐ธ๐ป":"flag: El Salvador","๐ธ๐ฝ":"flag: Sint Maarten","๐ธ๐พ":"flag: Syria","๐ธ๐ฟ":"flag: Eswatini","๐น๐ฆ":"flag: Tristan da Cunha","๐น๐จ":"flag: Turks & Caicos Islands","๐น๐ฉ":"flag: Chad","๐น๐ซ":"flag: French Southern Territories","๐น๐ฌ":"flag: Togo","๐น๐ญ":"flag: Thailand","๐น๐ฏ":"flag: Tajikistan","๐น๐ฐ":"flag: Tokelau","๐น๐ฑ":"flag: Timor-Leste","๐น๐ฒ":"flag: Turkmenistan","๐น๐ณ":"flag: Tunisia","๐น๐ด":"flag: Tonga","๐น๐ท":"flag: Turkey","๐น๐น":"flag: Trinidad & Tobago","๐น๐ป":"flag: Tuvalu","๐น๐ผ":"flag: Taiwan","๐น๐ฟ":"flag: Tanzania","๐บ๐ฆ":"flag: Ukraine","๐บ๐ฌ":"flag: Uganda","๐บ๐ฒ":"flag: U.S. Outlying Islands","๐บ๐ณ":"flag: United Nations","๐บ๐ธ":"flag: United States","๐บ๐พ":"flag: Uruguay","๐บ๐ฟ":"flag: Uzbekistan","๐ป๐ฆ":"flag: Vatican City","๐ป๐จ":"flag: St. Vincent & Grenadines","๐ป๐ช":"flag: Venezuela","๐ป๐ฌ":"flag: British Virgin Islands","๐ป๐ฎ":"flag: U.S. Virgin Islands","๐ป๐ณ":"flag: Vietnam","๐ป๐บ":"flag: Vanuatu","๐ผ๐ซ":"flag: Wallis & Futuna","๐ผ๐ธ":"flag: Samoa","๐ฝ๐ฐ":"flag: Kosovo","๐พ๐ช":"flag: Yemen","๐พ๐น":"flag: Mayotte","๐ฟ๐ฆ":"flag: South Africa","๐ฟ๐ฒ":"flag: Zambia","๐ฟ๐ผ":"flag: Zimbabwe","๐ด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ":"flag: England","๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ":"flag: Scotland","๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ":"flag: Wales"}');var y=t(33);const _=["aria-label"],C=(0,a.pM)({name:"LinkPreviewToggle",props:{link:{type:Object,required:!0},message:{type:Object,required:!0}},emits:["toggle-link-preview"],setup:(e,{emit:n})=>({ariaLabel:(0,a.EW)(()=>e.link.shown?"Collapse preview":"Expand preview"),onClick:()=>{e.link.shown=!e.link.shown,n("toggle-link-preview",e.link,e.message)}})});var L=t(6262);const M=(0,L.A)(C,[["render",function(e,n,t,s,o,i){return"loading"!==e.link.type?((0,a.uX)(),(0,a.CE)("button",{key:0,class:(0,y.C4)(["toggle-button","toggle-preview",{opened:e.link.shown}]),"aria-label":e.ariaLabel,onClick:n[0]||(n[0]=(...n)=>e.onClick&&e.onClick(...n))},null,10,_)):(0,a.Q3)("",!0)}]]),E={class:"preview-size"};var x=t(3388);const S=(0,a.pM)({name:"LinkPreviewFileSize",props:{size:{type:Number,required:!0}},setup:e=>({previewSize:(0,x.A)(e.size)})}),A=(0,L.A)(S,[["render",function(e,n,t,s,o,i){return(0,a.uX)(),(0,a.CE)("span",E,"("+(0,y.v_)(e.previewSize)+")",1)}]]);var T=t(3751),X=t(2806);const j=(0,a.pM)({name:"InlineChannel",props:{channel:String},setup:e=>({openContextMenu:n=>{X.A.emit("contextmenu:inline-channel",{event:n,channel:e.channel})}})}),W=(0,L.A)(j,[["render",function(e,n,t,s,o,i){return(0,a.uX)(),(0,a.CE)("span",{class:"inline-channel",dir:"auto",role:"button",tabindex:"0",onClick:n[0]||(n[0]=(0,T.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"])),onContextmenu:n[1]||(n[1]=(0,T.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))},[(0,a.RG)(e.$slots,"default")],32)}]]);var P=t(6640);const R=/[\u{1f3fb}-\u{1f3ff}]|\u{fe0f}/gu,I=function(e,n,t){const r=function(e){return function(e){const n=[];let t,a,l,r,c,u,d,p,h,g,m=0,k=0;const f=()=>{a=!1,l=void 0,r=void 0,c=void 0,u=void 0,d=!1,p=!1,h=!1,g=!1};f();const b=()=>{const t=e.slice(m,k).replace(i," ");if(t.length){const e=n.length?n[n.length-1].end:0;n.push({bold:a,textColor:l,bgColor:r,hexColor:c,hexBgColor:u,italic:d,underline:p,strikethrough:h,monospace:g,text:t,start:e,end:e+t.length})}m=k+1};for(;k<e.length;){switch(e[k]){case"":b(),f();break;case"":b(),a=!a;break;case"":b(),t=e.slice(k+1).match(s),t?(l=Number(t[1]),t[2]&&(r=Number(t[2])),k+=t[0].length,m=k+1):(l=void 0,r=void 0);break;case"":b(),t=e.slice(k+1).match(o),t?(c=t[1].toUpperCase(),t[2]&&(u=t[2].toUpperCase()),k+=t[0].length,m=k+1):(c=void 0,u=void 0);break;case"":{b();const e=r;r=l,l=e;break}case"":b(),d=!d;break;case"":b(),p=!p;break;case"":b(),h=!h;break;case"":b(),g=!g}k+=1}return b(),n}(e).reduce((e,n)=>{if(e.length){const t=e[e.length-1];if(l.every(e=>n[e]===t[e]))return t.text+=n.text,t.end+=n.text.length,e}return e.concat([n])},[])}(e),c=r.map(e=>e.text).join(""),d=function(e,n,t){const a=t.map(u).join(""),s=n.map(u).join(""),o=new RegExp(`(?:^|\\s)[${a}]*([${s}][^ ]+)`,"g"),i=[];let l;do{l=o.exec(e),l&&i.push({start:l.index+l[0].length-l[1].length,end:l.index+l[0].length,channel:l[1]})}while(l);return i}(c,t?t.serverOptions.CHANTYPES:["#","&"],t?t.serverOptions.PREFIX?.prefix?.map(e=>e.symbol):["!","@","%","+"]),p=function(e){const n=h.match(e);return n?n.map(m):[]}(c),g=function(e){const n=[];let t;for(;t=k.exec(e);)n.push({start:t.index,end:t.index+t[0].length,emoji:t[0]});return n}(c),y=function(e,n){const t=[];if(0===n.length)return t;let a;for(;a=f.exec(e);)n.indexOf(a[1])>-1&&t.push({start:a.index,end:a.index+a[1].length,nick:a[1]});return t}(c,n&&n.users||[]);return function(e,n,t){const a=function(e,n){let t=0;const a=e.reduce((e,n)=>(n.start>t&&e.push({start:t,end:n.start}),t=n.end,e),[]);return t<n.length&&a.push({start:t,end:n.length}),a}(e=e.sort(v).reduce((e,n)=>e.some(e=>b(e,n))?e:e.concat([n]),[]),t);return[...e,...a].sort(v).map(e=>{const t=n.filter(n=>b(e,n)).map(n=>function(e,n){const t=n.start,a=Math.max(n.start,e.start),s=Math.min(n.end,e.end),o=n.text.slice(a-t,s-t);return Object.assign({},n,{start:a,end:s,text:o})}(e,n));return{...e,fragments:t}})}(d.concat(p).concat(g).concat(y),r,c).map(e=>{const t=e.fragments.map(e=>function(e){const n=[];e.bold&&n.push("irc-bold"),void 0!==e.textColor&&n.push("irc-fg"+e.textColor),void 0!==e.bgColor&&n.push("irc-bg"+e.bgColor),e.italic&&n.push("irc-italic"),e.underline&&n.push("irc-underline"),e.strikethrough&&n.push("irc-strikethrough"),e.monospace&&n.push("irc-monospace");const t={class:void 0,style:void 0};let s=!1;return n.length>0&&(s=!0,t.class=n),e.hexColor&&(s=!0,t.style={color:`#${e.hexColor}`},e.hexBgColor&&(t.style["background-color"]=`#${e.hexBgColor}`)),s?(0,a.h)("span",t,e.text):e.text}(e));if("link"in e){const s=n&&n.previews&&n.previews.find(n=>n.link===e.link),o=(0,a.h)("a",{href:e.link,dir:s?null:"auto",target:"_blank",rel:"noopener"},t);if(!s)return o;const i=[o];return s.size>0&&i.push((0,a.h)(A,{size:s.size})),i.push((0,a.h)(M,{link:s,message:n})),(0,a.h)("span",{dir:"auto"},i)}if("channel"in e)return(0,a.h)(W,{channel:e.channel},{default:()=>t});if(function(e){return"emoji"in e}(e)){const n=e.emoji.replace(R,""),s=w[n]?`Emoji: ${w[n]}`:null;return(0,a.h)("span",{class:["emoji"],role:"img","aria-label":s,title:s},t)}return function(e){return"nick"in e}(e)?(0,a.h)(P.A,{user:{nick:e.nick},dir:"auto"},{default:()=>t}):t})},N=(0,a.pM)({name:"ParsedMessage",functional:!0,props:{text:String,message:{type:Object,required:!1},network:{type:Object,required:!1}},render:e=>I(void 0!==e.text?e.text:e.message.text,e.message,e.network)})},4379:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={key:2,class:"new-topic"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeTopic",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[e.message.from&&e.message.from.nick?((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" has changed the topic to: ",-1))],64)):((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[(0,a.eW)("The topic is: ")],64)),e.message.text?((0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(u,{network:e.network,message:e.message},null,8,["network","message"])])):(0,a.Q3)("",!0)])}]])},5182:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>u});var a=t(641);const s={class:"content"},o={class:"hostmask"},i={key:0,class:"part-reason"};var l=t(3568),r=t(6640);const c=(0,a.pM)({name:"MessageTypePart",components:{ParsedMessage:l.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),u=(0,t(6262).A)(c,[["render",function(e,n,t,l,r,c){const u=(0,a.g2)("Username"),d=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),(0,a.Lk)("i",o,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(d,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),n[1]||(n[1]=(0,a.eW)(")",-1))]),n[4]||(n[4]=(0,a.eW)(" has left the channel ",-1)),e.message.text?((0,a.uX)(),(0,a.CE)("i",i,[n[2]||(n[2]=(0,a.eW)("(",-1)),(0,a.bF)(d,{network:e.network,message:e.message},null,8,["network","message"]),n[3]||(n[3]=(0,a.eW)(")",-1))])):(0,a.Q3)("",!0)])}]])},5506:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641),s=t(33);const o={class:"content"},i=(0,a.pM)({name:"MessageChannelMode",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,i,l,r){return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.eW)(" your user mode is ",-1)),(0,a.Lk)("b",null,(0,s.v_)(e.message.raw_modes),1)])}]])},6455:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>u});var a=t(641),s=t(33);const o={class:"content"},i={class:"ctcp-message"};var l=t(3568),r=t(6640);const c=(0,a.pM)({name:"MessageTypeCTCP",components:{ParsedMessage:l.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),u=(0,t(6262).A)(c,[["render",function(e,n,t,l,r,c){const u=(0,a.g2)("Username"),d=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" "+(0,s.v_)(" ")+" ",-1)),(0,a.Lk)("span",i,[(0,a.bF)(d,{text:e.message.ctcpMessage},null,8,["text"])])])}]])},6640:(e,n,t)=>{"use strict";t.d(n,{A:()=>d});var a=t(641),s=t(3751),o=t(33);const i=["data-name"];var l=t(2806),r=t(211),c=t(1654);const u=(0,a.pM)({name:"Username",props:{user:{type:Object,required:!0},active:Boolean,onHover:{type:Function,required:!1},channel:{type:Object,required:!1},network:{type:Object,required:!1}},setup(e){const n=(0,a.EW)(()=>e.user.modes?e.user.modes[0]:e.user.mode),t=(0,a.EW)(()=>(e=>{let n=0;for(let t=0;t<e.length;t++)n+=e.charCodeAt(t);return"color-"+(1+n%32).toString()})(e.user.nick)),s=(0,r.Pj)();return s.state.settings.beautifyBridgedMessages&&e.user.shoutbox&&s.state.activeChannel?.channel.state===c.gC.JOINED&&!s.state.activeChannel?.channel.users.find(n=>n.nick===e.user.nick)&&s.state.activeChannel?.channel.users.push({nick:e.user.nick,modes:[],lastMessage:Date.now(),mode:"",away:""}),{displayNick:(0,a.EW)(()=>{const t=n.value??"",a=e.user.nick;return s.state.settings.beautifyBridgedMessages&&e.user.shoutbox&&"parentheses"===s.state.settings.bridgedMessageNicksStyle?`(${t}${a})`:`${t}${a}`}),mode:n,nickColor:t,hover:()=>e.onHover?e.onHover(e.user):null,openContextMenu:n=>{l.A.emit("contextmenu:user",{event:n,user:e.user,network:e.network,channel:e.channel})},store:s}}}),d=(0,t(6262).A)(u,[["render",function(e,n,t,l,r,c){return(0,a.uX)(),(0,a.CE)("span",(0,a.v6)({class:["user",{[e.nickColor]:e.store.state.settings.coloredNicks},{active:e.active}],"data-name":e.user.nick,role:"button"},(0,a.Tb)(e.onHover?{mouseenter:e.hover}:{},!0),{onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"])),onContextmenu:n[1]||(n[1]=(0,s.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))}),[(0,a.RG)(e.$slots,"default",{},()=>[(0,a.eW)((0,o.v_)(e.displayNick),1)])],16,i)}]])},6789:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641),s=t(33);const o={class:"content"};var i=t(7321),l=t(6640);const r=(0,a.pM)({name:"MessageTypeTopicSetBy",components:{Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({messageTimeLocale:(0,a.EW)(()=>(0,i.A)(e.message.when))})}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.eW)(" Topic set by ",-1)),(0,a.bF)(c,{user:e.message.from},null,8,["user"]),(0,a.eW)(" on "+(0,s.v_)(e.messageTimeLocale),1)])}]])},7062:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641),s=t(33);const o={class:"content"},i=(0,a.pM)({name:"MessageChannelMode",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,i,l,r){return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.eW)(" channel mode is ",-1)),(0,a.Lk)("b",null,(0,s.v_)(e.message.text),1)])}]])},7321:(e,n,t)=>{"use strict";t.d(n,{A:()=>o});var a=t(4353),s=t.n(a);const o=e=>s()(e).format("D MMMM YYYY, HH:mm:ss")},7421:(e,n,t)=>{"use strict";const a={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};var s=t(3751),o=t(211),i=t(641),l=t(33),r=t(2806),c=t(6411),u=t.n(c),d=t(7350),p=t.n(d),h=t(9808);const g=e=>("TEXTAREA"===e.target.tagName||"INPUT"===e.target.tagName)&&!!e.target.value,m={class:"scrollable-area"},k={class:"logo-container"},f=["src"],b=["src"],v={key:0,title:"The Lounge has been built in development mode",style:{backgroundColor:"#ff9e18",color:"#000",padding:"2px",borderRadius:"4px",fontSize:"12px"}},w={id:"footer"},y={class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":"Connect to network"},_=["aria-selected","onClick","onKeypress"],C={class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":"Settings"},L=["aria-selected","onClick","onKeypress"],M=["aria-label"],E=["aria-selected","onClick","onKeypress"];var x=t(953),S=t(5220);const A={key:0,class:"empty",role:"navigation","aria-label":"Network and Channel list"},T={key:1,ref:"networklist",role:"navigation","aria-label":"Network and Channel list"},X={key:0,class:"jump-to-input"},j=["value"],W={key:1,class:"jump-to-results"},P={key:0},R=["onMouseenter"],I={key:1,class:"no-results"},N=["id"];var U=t(246);const F={delay:{type:Number,default:0,required:!1},delayOnTouchOnly:{type:Boolean,default:!1,required:!1},touchStartThreshold:{type:Number,default:10,required:!1},handle:{type:String,default:"",required:!1},draggable:{type:String,default:"",required:!1},ghostClass:{type:String,default:"",required:!1},dragClass:{type:String,default:"",required:!1},group:{type:String,default:"",required:!1},class:{type:String,default:"",required:!1},itemKey:{type:String,default:"",required:!0},list:{type:Array,default:[],required:!0},filter:{type:String,default:"",required:!1}},O=(0,i.pM)({name:"Draggable",props:F,emits:["change","choose","unchoose"],setup(e,{emit:n}){const t=(0,x.KR)(null),a=(0,x.KR)(null);return(0,i.wB)(t,t=>{t&&(a.value=new U.Ay(t,{...e,onChoose(e){n("choose",e)},onUnchoose(e){n("unchoose",e)},onEnd(e){n("change",e)}}))}),(0,i.xo)(()=>{a.value&&(a.value.destroy(),t.value=null)}),{containerRef:t}}});var q=t(6262);const K=(0,q.A)(O,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{ref:"containerRef",class:(0,l.C4)(e.$props.class)},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.list,(n,t)=>(0,i.RG)(e.$slots,"item",{key:n[e.itemKey],element:n,index:t})),128))],2)}]]);var D=t(4751),B=t.n(D);const $=["aria-controls","aria-label","aria-expanded"],H={key:1,class:"collapse-network"},Q={class:"lobby-wrap"},z=["title"],V={key:0,class:"not-secure-tooltip tooltipped tooltipped-w","aria-label":"Insecure connection"},Y={key:1,class:"not-connected-tooltip tooltipped tooltipped-w","aria-label":"Disconnected"},J=["aria-label"],G=["aria-controls","aria-label"],Z=(e,n)=>{const t=h.A.get("thelounge.networks.collapsed"),a=t?new Set(JSON.parse(t)):new Set;e.isCollapsed=n,n?a.add(e.uuid):a.delete(e.uuid),h.A.set("thelounge.networks.collapsed",JSON.stringify([...a]))},ee=e=>e<1e3?e.toString():(e/1e3).toFixed(2).slice(0,-1)+"k",ne=["aria-label","title","data-name","data-type","aria-controls","aria-selected"],te=(e,n)=>!(!e.isCollapsed||n.highlight||"lobby"===n.type||o.M_.state.activeChannel&&n===o.M_.state.activeChannel.channel),ae={id:"sign-in",class:"window",role:"tabpanel","aria-label":"Sign-in"},se={class:"password-container"},oe=["type"],ie={key:0,class:"error"},le=["disabled"];var re=t(381);const ce=["aria-label"],ue=["aria-label"],de=(0,i.pM)({name:"RevealPassword",setup(){const e=(0,x.KR)(!1);return{isVisible:e,onClick:()=>{e.value=!e.value}}}}),pe=(0,q.A)(de,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",null,[(0,i.RG)(e.$slots,"default",{isVisible:e.isVisible}),(0,i.Lk)("span",{ref:"revealButton",type:"button",class:(0,l.C4)(["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,i.Lk)("span",{"aria-label":e.isVisible?"Hide password":"Show password"},null,8,ue)],10,ce)])}]]),he=(0,i.pM)({name:"SignIn",components:{RevealPassword:pe},setup(){const e=(0,x.KR)(!1),n=(0,x.KR)(!1),t=(0,x.KR)(h.A.get("user")||""),a=(0,x.KR)(""),s=()=>{e.value=!1,n.value=!0};return(0,i.sV)(()=>{re.A.on("auth:failed",s)}),(0,i.xo)(()=>{re.A.off("auth:failed",s)}),{inFlight:e,errorShown:n,username:t,password:a,onSubmit:s=>{if(s.preventDefault(),!t.value||!a.value)return;e.value=!0,n.value=!1;const o={user:t.value,password:a.value};h.A.set("user",o.user),re.A.emit("auth:perform",o)}}}}),ge=(0,q.A)(he,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("RevealPassword");return(0,i.uX)(),(0,i.CE)("div",ae,[(0,i.Lk)("form",{class:"container",method:"post",action:"",onSubmit:n[2]||(n[2]=(...n)=>e.onSubmit&&e.onSubmit(...n))},[n[4]||(n[4]=(0,i.Lk)("img",{src:"img/logo-vertical-transparent-bg.svg",class:"logo",alt:"The Lounge",width:"256",height:"170"},null,-1)),n[5]||(n[5]=(0,i.Lk)("img",{src:"img/logo-vertical-transparent-bg-inverted.svg",class:"logo-inverted",alt:"The Lounge",width:"256",height:"170"},null,-1)),n[6]||(n[6]=(0,i.Lk)("label",{for:"signin-username"},"Username",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.username,void 0,{trim:!0}]]),(0,i.Lk)("div",se,[n[3]||(n[3]=(0,i.Lk)("label",{for:"signin-password"},"Password",-1)),(0,i.bF)(r,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"signin-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.password=n),type:t.isVisible?"text":"password",class:"input",autocapitalize:"none",autocorrect:"off",autocomplete:"current-password",required:""},null,8,oe),[[s.hp,e.password]])]),_:1})]),e.errorShown?((0,i.uX)(),(0,i.CE)("div",ie,"Authentication failed.")):(0,i.Q3)("",!0),(0,i.Lk)("button",{disabled:e.inFlight,type:"submit",class:"btn"},"Sign in",8,le)],32)])}]]),me={id:"connect",class:"window",role:"tabpanel","aria-label":"Connect"},ke={class:"header"},fe={class:"title"},be={class:"connect-row"},ve={class:"connect-row"},we={class:"input-wrap"},ye={class:"connect-row"},_e=["type"],Ce={class:"connect-row"},Le={class:"input-wrap"},Me={class:"tls"},Ee=["disabled"],xe={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"},Se={class:"tls"},Ae={class:"connect-row"},Te={class:"input-wrap"},Xe={for:"connect:proxyEnabled"},je={class:"connect-row"},We={class:"input-wrap"},Pe={class:"connect-row"},Re={class:"connect-row"},Ie=["type"],Ne={class:"connect-row"},Ue={class:"connect-row"},Fe=["type"],Oe={class:"connect-row"},qe={key:2,class:"connect-row"},Ke={class:"connect-row"},De={class:"connect-row"},Be={key:3,class:"connect-row"},$e=["value"],He={key:4,class:"connect-row"},Qe={class:"connect-row"},ze={class:"connect-row",style:{display:"block"}},Ve={class:"fish-keys-section"},Ye={class:"input-wrap fish-key-inputs"},Je=["onUpdate:modelValue"],Ge=["onUpdate:modelValue"],Ze=["disabled","onClick"],en={class:"connect-row"},nn={class:"connect-row"},tn={class:"input-wrap"},an={class:"tls"},sn={key:0,class:"connect-row"},on=["type"],ln={class:"connect-row connect-auth",role:"group","aria-labelledby":"label-auth"},rn={class:"opt"},cn=["checked"],un={class:"opt"},dn=["checked"],pn={key:0,class:"opt"},hn=["checked"],gn={class:"connect-row"},mn={class:"connect-row"},kn=["type"],fn={key:1,class:"connect-sasl-external"},bn=["disabled"],vn=(0,i.pM)({name:"SidebarToggle",setup:()=>({store:(0,o.Pj)()})}),wn=(0,q.A)(vn,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("button",{class:"lt","aria-label":"Toggle channel list",onClick:n[0]||(n[0]=n=>e.store.commit("toggleSidebar"))})}]]),yn=(0,i.pM)({name:"NetworkForm",components:{RevealPassword:pe,SidebarToggle:wn},props:{handleSubmit:{type:Function,required:!0},defaults:{type:Object,required:!0},disabled:Boolean},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(n.state.serverConfiguration),a=(0,x.KR)(e.defaults?.username),s=(0,x.KR)(!1),l=(0,x.KR)(null);(0,i.wB)(s,e=>{e&&(0,i.dY)(()=>{l.value?.focus()})});const r=(0,x.KR)(null),c=()=>{r.value&&(r.value.style.height="",r.value.style.height=`${Math.ceil(r.value.scrollHeight+2)}px`)};(0,i.wB)(()=>e.defaults?.commands,()=>{(0,i.dY)(()=>{c()})}),(0,i.wB)(()=>e.defaults?.tls,n=>{const t=[6667,6697],a=n?0:1;e.defaults?.port===t[a]&&(e.defaults.port=t[1-a])});const u=(0,x.KR)(null),d=(0,x.KR)([]),p=(0,i.EW)(()=>{const e={};for(const n of d.value){const t=n.target.trim(),a=n.key.trim();t&&a&&(e[t]=a)}return e});return(0,i.wB)(()=>e.defaults.fishKeys,e=>{d.value=(e=>{if(!e||0===Object.keys(e).length)return[{target:"",key:""}];const n=[];for(const[t,a]of Object.entries(e))n.push({target:t,key:String(a??"")});return n.length>0?n:[{target:"",key:""}]})(e)},{immediate:!0}),{store:n,config:t,displayPasswordField:s,publicPassword:l,commandsInput:r,resizeCommandsInput:c,setSaslAuth:n=>{e.defaults&&(e.defaults.sasl=n)},usernameInput:u,onNickChanged:e=>{if(!u.value)return;const n=u.value;n.value&&n.value!==a.value||(n.value=e.target?.value),a.value=e.target?.value},onSubmit:n=>{const t=new FormData(n.target),a={};t.forEach((e,n)=>{a[n]=e}),a.fishKeys=p.value,e.handleSubmit(a)},fishKeysEntries:d,fishKeysValue:p,addFishKeyEntry:()=>{d.value.push({target:"",key:""})},removeFishKeyEntry:e=>{d.value.length>1&&d.value.splice(e,1)}}}}),_n=(0,q.A)(yn,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("RevealPassword");return(0,i.uX)(),(0,i.CE)("div",me,[(0,i.Lk)("div",ke,[(0,i.bF)(c)]),(0,i.Lk)("form",{class:"container",method:"post",action:"",onSubmit:n[30]||(n[30]=(0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["prevent"]))},[(0,i.Lk)("h1",fe,[e.defaults.uuid?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.defaults.uuid=n),type:"hidden",name:"uuid"},null,512),[[s.Jo,e.defaults.uuid]]),(0,i.eW)(" Edit "+(0,l.v_)(e.defaults.name),1)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[31]||(n[31]=(0,i.eW)(" Connect ",-1)),e.config?.lockNetwork&&e.store?.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" to "+(0,l.v_)(e.defaults.name),1)],64)):(0,i.Q3)("",!0)],64))]),e.config?.lockNetwork?e.config.lockNetwork&&!e.store.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[49]||(n[49]=(0,i.Lk)("h2",null,"Network settings",-1)),(0,i.Lk)("div",Ne,[n[47]||(n[47]=(0,i.Lk)("label",{for:"connect:name"},"Name",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:name","onUpdate:modelValue":n[12]||(n[12]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[s.Jo,e.defaults.name,void 0,{trim:!0}]])]),(0,i.Lk)("div",Ue,[n[48]||(n[48]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password","onUpdate:modelValue":n[13]||(n[13]=n=>e.defaults.password=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,Fe),[[s.hp,e.defaults.password]])]),_:1})])],64)):(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[45]||(n[45]=(0,i.Lk)("h2",null,"Network settings",-1)),(0,i.Lk)("div",be,[n[32]||(n[32]=(0,i.Lk)("label",{for:"connect:name"},"Name",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:name","onUpdate:modelValue":n[1]||(n[1]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[s.Jo,e.defaults.name,void 0,{trim:!0}]])]),(0,i.Lk)("div",ve,[n[34]||(n[34]=(0,i.Lk)("label",{for:"connect:host"},"Server",-1)),(0,i.Lk)("div",we,[(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.host,void 0,{trim:!0}]]),n[33]||(n[33]=(0,i.Lk)("span",{id:"connect:portseparator"},":",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.port]])])]),(0,i.Lk)("div",ye,[n[35]||(n[35]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password","onUpdate:modelValue":n[4]||(n[4]=n=>e.defaults.password=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,_e),[[s.hp,e.defaults.password]])]),_:1})]),(0,i.Lk)("div",Ce,[n[38]||(n[38]=(0,i.Lk)("label",null,null,-1)),(0,i.Lk)("div",Le,[(0,i.Lk)("label",Me,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[5]||(n[5]=n=>e.defaults.tls=n),type:"checkbox",name:"tls",disabled:e.defaults.hasSTSPolicy},null,8,Ee),[[s.lH,e.defaults.tls]]),n[36]||(n[36]=(0,i.eW)(" Use secure connection (TLS) ",-1)),e.defaults.hasSTSPolicy?((0,i.uX)(),(0,i.CE)("span",xe,"๐ STS")):(0,i.Q3)("",!0)]),(0,i.Lk)("label",Se,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[6]||(n[6]=n=>e.defaults.rejectUnauthorized=n),type:"checkbox",name:"rejectUnauthorized"},null,512),[[s.lH,e.defaults.rejectUnauthorized]]),n[37]||(n[37]=(0,i.eW)(" Only allow trusted certificates ",-1))])])]),n[46]||(n[46]=(0,i.Lk)("h2",null,"Proxy Settings",-1)),(0,i.Lk)("div",Ae,[n[40]||(n[40]=(0,i.Lk)("label",null,null,-1)),(0,i.Lk)("div",Te,[(0,i.Lk)("label",Xe,[(0,i.bo)((0,i.Lk)("input",{id:"connect:proxyEnabled","onUpdate:modelValue":n[7]||(n[7]=n=>e.defaults.proxyEnabled=n),type:"checkbox",name:"proxyEnabled"},null,512),[[s.lH,e.defaults.proxyEnabled]]),n[39]||(n[39]=(0,i.eW)(" Enable Proxy ",-1))])])]),e.defaults.proxyEnabled?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",je,[n[42]||(n[42]=(0,i.Lk)("label",{for:"connect:proxyHost"},"SOCKS Address",-1)),(0,i.Lk)("div",We,[(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.proxyHost,void 0,{trim:!0}]]),n[41]||(n[41]=(0,i.Lk)("span",{id:"connect:proxyPortSeparator"},":",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.proxyPort]])])]),(0,i.Lk)("div",Pe,[n[43]||(n[43]=(0,i.Lk)("label",{for:"connect:proxyUsername"},"Proxy username",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.proxyUsername,void 0,{trim:!0}]])]),(0,i.Lk)("div",Re,[n[44]||(n[44]=(0,i.Lk)("label",{for:"connect:proxyPassword"},"Proxy password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:proxyPassword",ref:"proxyPassword","onUpdate:modelValue":n[11]||(n[11]=n=>e.defaults.proxyPassword=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Proxy password",name:"proxyPassword",maxlength:"300"},null,8,Ie),[[s.hp,e.defaults.proxyPassword]])]),_:1})])],64)):(0,i.Q3)("",!0)],64)),n[68]||(n[68]=(0,i.Lk)("h2",null,"User preferences",-1)),(0,i.Lk)("div",Oe,[n[50]||(n[50]=(0,i.Lk)("label",{for:"connect:nick"},"Nick",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.nick]])]),e.config?.useHexIp?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",qe,[n[51]||(n[51]=(0,i.Lk)("label",{for:"connect:username"},"Username",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.username,void 0,{trim:!0}]])])),(0,i.Lk)("div",Ke,[n[52]||(n[52]=(0,i.Lk)("label",{for:"connect:realname"},"Real name",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:realname","onUpdate:modelValue":n[17]||(n[17]=n=>e.defaults.realname=n),class:"input",name:"realname",maxlength:"300"},null,512),[[s.Jo,e.defaults.realname,void 0,{trim:!0}]])]),(0,i.Lk)("div",De,[n[53]||(n[53]=(0,i.Lk)("label",{for:"connect:leaveMessage"},"Leave message",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.leaveMessage,void 0,{trim:!0}]])]),e.defaults.uuid&&!e.store.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)("div",Be,[n[54]||(n[54]=(0,i.Lk)("label",{for:"connect:commands"},[(0,i.eW)(" Commands "),(0,i.Lk)("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,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("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,$e)])):e.defaults.uuid?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",He,[n[55]||(n[55]=(0,i.Lk)("label",{for:"connect:channels"},"Channels",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:channels","onUpdate:modelValue":n[20]||(n[20]=n=>e.defaults.join=n),class:"input",name:"join"},null,512),[[s.Jo,e.defaults.join,void 0,{trim:!0}]])])),n[69]||(n[69]=(0,i.Lk)("h2",null,"FiSH (Blowfish)",-1)),(0,i.Lk)("div",Qe,[n[56]||(n[56]=(0,i.Lk)("label",{for:"connect:fishGlobalKey"},"Global key",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:fishGlobalKey","onUpdate:modelValue":n[21]||(n[21]=n=>e.defaults.fishGlobalKey=n),class:"input",name:"fishGlobalKey",placeholder:"Optional global key for this network"},null,512),[[s.Jo,e.defaults.fishGlobalKey,void 0,{trim:!0}]])]),(0,i.Lk)("div",ze,[n[57]||(n[57]=(0,i.Lk)("label",{for:"connect:fishKeys",style:{"margin-bottom":"5px"}},[(0,i.eW)(" Per-channel or User-Channels "),(0,i.Lk)("span",{class:"tooltipped tooltipped-ne tooltipped-no-delay","aria-label":"#channel key or nick key"},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("div",Ve,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.fishKeysEntries,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:t,class:"connect-row fish-key-row"},[(0,i.Lk)("div",Ye,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":e=>n.target=e,class:"input fish-target-input",placeholder:"#channel or nick",maxlength:"100","aria-label":"Channel or user name",style:{margin:"0"}},null,8,Je),[[s.Jo,n.target]]),(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":e=>n.key=e,type:"password",class:"input fish-key-input",placeholder:"encryption key",maxlength:"300","aria-label":"Encryption key",style:{margin:"0"}},null,8,Ge),[[s.Jo,n.key]]),(0,i.Lk)("button",{type:"button",class:"btn fish-remove-btn",disabled:e.fishKeysEntries.length<=1,title:"Remove entry",style:{width:"auto",margin:"0"},onClick:n=>e.removeFishKeyEntry(t)}," Remove ",8,Ze)])]))),128)),(0,i.Lk)("div",en,[(0,i.Lk)("button",{type:"button",class:"btn",onClick:n[22]||(n[22]=(...n)=>e.addFishKeyEntry&&e.addFishKeyEntry(...n))}," Add Entry ")])])]),e.store.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:5},[e.config?.lockNetwork?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",nn,[n[59]||(n[59]=(0,i.Lk)("label",null,null,-1)),(0,i.Lk)("div",tn,[(0,i.Lk)("label",an,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[23]||(n[23]=n=>e.displayPasswordField=n),type:"checkbox"},null,512),[[s.lH,e.displayPasswordField]]),n[58]||(n[58]=(0,i.eW)(" I have a password ",-1))])])]),e.displayPasswordField?((0,i.uX)(),(0,i.CE)("div",sn,[n[60]||(n[60]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password",ref:"publicPassword","onUpdate:modelValue":n[24]||(n[24]=n=>e.defaults.password=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,on),[[s.hp,e.defaults.password]])]),_:1})])):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:6},[n[67]||(n[67]=(0,i.Lk)("h2",{id:"label-auth"},"Authentication",-1)),(0,i.Lk)("div",ln,[(0,i.Lk)("label",rn,[(0,i.Lk)("input",{checked:!e.defaults.sasl,type:"radio",name:"sasl",value:"",onChange:n[25]||(n[25]=n=>e.setSaslAuth(""))},null,40,cn),n[61]||(n[61]=(0,i.eW)(" No authentication ",-1))]),(0,i.Lk)("label",un,[(0,i.Lk)("input",{checked:"plain"===e.defaults.sasl,type:"radio",name:"sasl",value:"plain",onChange:n[26]||(n[26]=n=>e.setSaslAuth("plain"))},null,40,dn),n[62]||(n[62]=(0,i.eW)(" Username + password (SASL PLAIN) ",-1))]),!e.store.state.serverConfiguration?.public&&e.defaults.tls?((0,i.uX)(),(0,i.CE)("label",pn,[(0,i.Lk)("input",{checked:"external"===e.defaults.sasl,type:"radio",name:"sasl",value:"external",onChange:n[27]||(n[27]=n=>e.setSaslAuth("external"))},null,40,hn),n[63]||(n[63]=(0,i.eW)(" Client certificate (SASL EXTERNAL) ",-1))])):(0,i.Q3)("",!0)]),"plain"===e.defaults.sasl?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",gn,[n[64]||(n[64]=(0,i.Lk)("label",{for:"connect:username"},"Account",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:saslAccount","onUpdate:modelValue":n[28]||(n[28]=n=>e.defaults.saslAccount=n),class:"input",name:"saslAccount",maxlength:"100",required:""},null,512),[[s.Jo,e.defaults.saslAccount,void 0,{trim:!0}]])]),(0,i.Lk)("div",mn,[n[65]||(n[65]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:saslPassword","onUpdate:modelValue":n[29]||(n[29]=n=>e.defaults.saslPassword=n),class:"input",type:t.isVisible?"text":"password",name:"saslPassword",maxlength:"300",required:""},null,8,kn),[[s.hp,e.defaults.saslPassword]])]),_:1})])],64)):"external"===e.defaults.sasl?((0,i.uX)(),(0,i.CE)("div",fn,[...n[66]||(n[66]=[(0,i.Lk)("p",null,"The Lounge automatically generates and manages the client certificate.",-1),(0,i.Lk)("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,i.Lk)("pre",null,[(0,i.Lk)("code",null,"/msg NickServ CERT ADD")],-1)])])):(0,i.Q3)("",!0)],64)),(0,i.Lk)("div",null,[(0,i.Lk)("button",{type:"submit",class:"btn",disabled:!!e.disabled},[e.defaults.uuid?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)("Save network")],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)("Connect")],64))],8,bn)])],32)])}]]),Cn=(0,i.pM)({name:"Connect",components:{NetworkForm:_n},props:{queryParams:Object},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(!1);return{defaults:(0,x.KR)(Object.assign({},n.state.serverConfiguration?.defaults,(e=>{if(!e)return{};const t={};for(let a of Object.keys(e)){let s=e[a];if(Array.isArray(s)&&(s=s[0]),"channels"===a&&(a="join"),Object.prototype.hasOwnProperty.call(n.state.serverConfiguration?.defaults,a)&&(!n.state.serverConfiguration?.lockNetwork||!["name","host","port","tls","rejectUnauthorized"].includes(a)))switch("join"===a&&(s=s.split(",").map(e=>e.match(/^[#&!+]/)?e:`#${e}`).join(", ")),typeof n.state.serverConfiguration?.defaults[a]){case"boolean":t[a]="0"!==s&&"false"!==s&&!!s;break;case"number":t[a]=Number(s);break;case"string":t[a]=String(s)}}return t})(e.queryParams))),disabled:t,handleSubmit:e=>{t.value=!0,re.A.emit("network:new",e)}}}}),Ln=(0,q.A)(Cn,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("NetworkForm");return(0,i.uX)(),(0,i.Wv)(l,{"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"},En={class:"header"},xn={class:"container"},Sn={class:"settings-menu"},An={role:"navigation","aria-label":"Settings tabs"},Tn=["aria-label","aria-selected"],Xn=["onClick","onKeypress"],jn=(0,i.pM)({name:"SettingTabListItem",props:{name:{type:String,required:!0},className:{type:String,required:!0},to:{type:String,required:!0}},setup:()=>({route:(0,S.lq)()})}),Wn=(0,q.A)(jn,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("li",{"aria-label":e.name,role:"tab","aria-selected":e.route.name===e.name,"aria-controls":"settings"},[(0,i.bF)(c,{to:"/settings/"+e.to,custom:""},{default:(0,i.k6)(({navigate:n,isExactActive:t})=>[(0,i.Lk)("button",{class:(0,l.C4)(["icon",e.className,{active:t}]),onClick:n,onKeypress:(0,s.jR)(n,["enter"])},(0,l.v_)(e.name),43,Xn)]),_:1},8,["to"])],8,Tn)}]]),Pn=(0,i.pM)({name:"SettingsTabs",components:{SettingTabItem:Wn}}),Rn=(0,q.A)(Pn,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("SettingTabItem");return(0,i.uX)(),(0,i.CE)("aside",Sn,[n[0]||(n[0]=(0,i.Lk)("h2",null,"Settings",-1)),(0,i.Lk)("ul",An,[(0,i.bF)(l,{name:"General","class-name":"general",to:""}),(0,i.bF)(l,{name:"Appearance","class-name":"appearance",to:"appearance"}),(0,i.bF)(l,{name:"Notifications","class-name":"notifications",to:"notifications"}),(0,i.bF)(l,{name:"Account","class-name":"account",to:"account"})])])}]]),In=(0,i.pM)({name:"Settings",components:{SidebarToggle:wn,Navigation:Rn},setup(){const e=(0,o.Pj)();return{onChange:n=>{const t=n.target.name;if(["old_password","new_password","verify_password"].includes(t))return;let a;a="checkbox"===n.target.type?n.target.checked:n.target.value,e.dispatch("settings/update",{name:t,value:a,sync:!0})}}}}),Nn=(0,q.A)(In,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("Navigation"),u=(0,i.g2)("router-view");return(0,i.uX)(),(0,i.CE)("div",Mn,[(0,i.Lk)("div",En,[(0,i.bF)(r)]),(0,i.bF)(c),(0,i.Lk)("div",xn,[(0,i.Lk)("form",{ref:"settingsForm",autocomplete:"off",onChange:n[0]||(n[0]=(...n)=>e.onChange&&e.onChange(...n)),onSubmit:n[1]||(n[1]=(0,s.D$)(()=>{},["prevent"]))},[(0,i.bF)(u)],544)])])}]]),Un={id:"help",class:"window",role:"tabpanel","aria-label":"Help"},Fn={class:"header"},On={class:"container"},qn={class:"help-version-title"},Kn={class:"about"},Dn=["href"],Bn=["href"],$n=["href"],Hn={key:0},Qn={key:1,class:"help-item"},zn={key:2,class:"help-item"},Vn={key:3,class:"help-item"},Yn={key:4,class:"help-item"},Jn={class:"help-item"},Gn={class:"subject"},Zn={key:0},et={key:1},nt={class:"help-item"},tt={class:"subject"},at={key:0},st={key:1},ot={class:"help-item"},it={class:"subject"},lt={key:0},rt={key:1},ct={class:"help-item"},ut={class:"subject"},dt={key:0},pt={key:1},ht={class:"help-item"},gt={class:"subject"},mt={key:0},kt={key:1},ft={class:"help-item"},bt={class:"subject"},vt={key:0},wt={key:1},yt={class:"help-item"},_t={class:"subject"},Ct={key:0},Lt={key:1},Mt={class:"help-item"},Et={class:"subject"},xt={key:0},St={key:1},At={class:"help-item"},Tt={class:"subject"},Xt={key:0},jt={key:1},Wt={class:"help-item"},Pt={class:"subject"},Rt={key:0},It={key:1},Nt={class:"help-item"},Ut={class:"subject"},Ft={key:0},Ot={key:1},qt={class:"help-item"},Kt={class:"subject"},Dt={key:0},Bt={key:1},$t={class:"help-item"},Ht={class:"subject"},Qt={key:0},zt={key:1},Vt={class:"help-item"},Yt={class:"subject"},Jt={key:0},Gt={key:1},Zt={class:"help-item"},ea={class:"subject"},na={key:0},ta={key:1},aa={class:"help-item"},sa={class:"subject"},oa={key:0},ia={key:1},la={class:"help-item"},ra={class:"subject"},ca={key:0},ua={key:1},da={class:"help-item"},pa={class:"subject"},ha={key:0},ga={key:1},ma={class:"help-item"},ka={class:"subject"},fa={key:0},ba={key:1},va={class:"help-item"},wa={class:"subject"},ya={key:0},_a={key:1},Ca={class:"help-item"},La={class:"subject"},Ma={key:0},Ea={key:1},xa={key:5,class:"help-item"},Sa={key:0},Aa={key:1},Ta=["href"],Xa={key:2},ja=(0,i.pM)({name:"VersionChecker",setup(){const e=(0,o.Pj)(),n=()=>{e.commit("versionData",null),e.commit("versionStatus","loading"),re.A.emit("changelog")};return(0,i.sV)(()=>{e.state.versionData||n()}),{store:e,checkNow:n}}}),Wa=(0,q.A)(ja,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{id:"version-checker",class:(0,l.C4)([e.store.state.versionStatus])},["loading"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",Sa,"Checking for updatesโฆ")):(0,i.Q3)("",!0),"new-version"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",Aa,[n[2]||(n[2]=(0,i.eW)(" The Lounge ",-1)),(0,i.Lk)("b",null,(0,l.v_)(e.store.state.versionData?.latest?.version),1),e.store.state.versionData?.latest?.prerelease?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" (pre-release) ")],64)):(0,i.Q3)("",!0),n[3]||(n[3]=(0,i.eW)(" is now available. ",-1)),n[4]||(n[4]=(0,i.Lk)("br",null,null,-1)),(0,i.Lk)("a",{href:e.store.state.versionData?.latest?.url,target:"_blank",rel:"noopener"}," Read more on GitHub ",8,Ta)])):(0,i.Q3)("",!0),"new-packages"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",Xa,[...n[5]||(n[5]=[(0,i.eW)(" The Lounge is up to date, but there are out of date packages Run ",-1),(0,i.Lk)("code",null,"thelounge upgrade",-1),(0,i.eW)(" on the server to upgrade packages. ",-1)])])):(0,i.Q3)("",!0),"up-to-date"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)(i.FK,{key:3},[n[6]||(n[6]=(0,i.Lk)("p",null,"The Lounge is up to date!",-1)),e.store.state.versionDataExpired?((0,i.uX)(),(0,i.CE)("button",{key:0,id:"check-now",class:"btn btn-small",onClick:n[0]||(n[0]=(...n)=>e.checkNow&&e.checkNow(...n))}," Check now ")):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0),"error"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)(i.FK,{key:4},[n[7]||(n[7]=(0,i.Lk)("p",null,"Information about latest release could not be retrieved.",-1)),(0,i.Lk)("button",{id:"check-now",class:"btn btn-small",onClick:n[1]||(n[1]=(...n)=>e.checkNow&&e.checkNow(...n))},"Try again")],64)):(0,i.Q3)("",!0)],2)}]]),Pa=(0,i.pM)({name:"Help",components:{SidebarToggle:wn,VersionChecker:Wa},setup(){const e=(0,o.Pj)();return{isApple:navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)||!1,isTouch:navigator.maxTouchPoints>0,store:e}}}),Ra=(0,q.A)(Pa,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("router-link"),u=(0,i.g2)("VersionChecker");return(0,i.uX)(),(0,i.CE)("div",Un,[(0,i.Lk)("div",Fn,[(0,i.bF)(r)]),(0,i.Lk)("div",On,[n[86]||(n[86]=(0,i.Lk)("h1",{class:"title"},"Help",-1)),(0,i.Lk)("h2",qn,[n[2]||(n[2]=(0,i.Lk)("span",null,"About The Lounge",-1)),(0,i.Lk)("small",null,[(0,i.eW)(" v"+(0,l.v_)(e.store.state.serverConfiguration?.version)+" (",1),(0,i.bF)(c,{id:"view-changelog",to:"/changelog"},{default:(0,i.k6)(()=>[...n[0]||(n[0]=[(0,i.eW)("release notes",-1)])]),_:1}),n[1]||(n[1]=(0,i.eW)(") ",-1))])]),(0,i.Lk)("div",Kn,[(0,i.bF)(u),e.store.state.serverConfiguration?.gitCommit?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("p",null,[n[4]||(n[4]=(0,i.eW)(" The Lounge is running from source (",-1)),(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/tree/${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[n[3]||(n[3]=(0,i.eW)("commit ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.gitCommit),1)],8,Dn),n[5]||(n[5]=(0,i.eW)("). ",-1))]),(0,i.Lk)("ul",null,[(0,i.Lk)("li",null,[n[9]||(n[9]=(0,i.eW)(" Compare ",-1)),(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/compare/${e.store.state.serverConfiguration?.gitCommit}...master`,target:"_blank",rel:"noopener"},[n[6]||(n[6]=(0,i.eW)("between ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.gitCommit),1),n[7]||(n[7]=(0,i.eW)(" and ",-1)),n[8]||(n[8]=(0,i.Lk)("code",null,"master",-1))],8,Bn),n[10]||(n[10]=(0,i.eW)(" to see what you are missing ",-1))]),(0,i.Lk)("li",null,[n[13]||(n[13]=(0,i.eW)(" Compare ",-1)),(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/compare/${e.store.state.serverConfiguration?.version}...${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[n[11]||(n[11]=(0,i.eW)("between ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.version),1),n[12]||(n[12]=(0,i.eW)(" and ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.gitCommit),1)],8,$n),n[14]||(n[14]=(0,i.eW)(" to see your local changes ",-1))])])],64)):(0,i.Q3)("",!0),n[15]||(n[15]=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://thelounge.chat/",target:"_blank",rel:"noopener",class:"website-link"},"Website")],-1)),n[16]||(n[16]=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://thelounge.chat/docs/",target:"_blank",rel:"noopener",class:"documentation-link"},"Documentation")],-1)),n[17]||(n[17]=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://github.com/LordBex/thelounge/issues/new",target:"_blank",rel:"noopener",class:"report-issue-link"},"Report an issueโฆ")],-1))]),e.isTouch?((0,i.uX)(),(0,i.CE)("h2",Hn,"Gestures")):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Qn,[...n[18]||(n[18]=[(0,i.Lk)("div",{class:"subject gesture"},"Single-Finger Swipe Left",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Hide sidebar.")],-1)])])):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",zn,[...n[19]||(n[19]=[(0,i.Lk)("div",{class:"subject gesture"},"Single-Finger Swipe Right",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Show sidebar.")],-1)])])):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Vn,[...n[20]||(n[20]=[(0,i.Lk)("div",{class:"subject gesture"},"Two-Finger Swipe Left",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window in the channel list.")],-1)])])):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Yn,[...n[21]||(n[21]=[(0,i.Lk)("div",{class:"subject gesture"},"Two-Finger Swipe Right",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window in the channel list.")],-1)])])):(0,i.Q3)("",!0),n[87]||(n[87]=(0,i.Lk)("h2",null,"Keyboard Shortcuts",-1)),(0,i.Lk)("div",Jn,[(0,i.Lk)("div",Gn,[e.isApple?((0,i.uX)(),(0,i.CE)("span",et,[...n[23]||(n[23]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",Zn,[...n[22]||(n[22]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[24]||(n[24]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next lobby in the channel list.")],-1))]),(0,i.Lk)("div",nt,[(0,i.Lk)("div",tt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",st,[...n[26]||(n[26]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",at,[...n[25]||(n[25]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[27]||(n[27]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous lobby in the channel list.")],-1))]),(0,i.Lk)("div",ot,[(0,i.Lk)("div",it,[e.isApple?((0,i.uX)(),(0,i.CE)("span",rt,[...n[29]||(n[29]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",lt,[...n[28]||(n[28]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[30]||(n[30]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Collapse current network.")],-1))]),(0,i.Lk)("div",ct,[(0,i.Lk)("div",ut,[e.isApple?((0,i.uX)(),(0,i.CE)("span",pt,[...n[32]||(n[32]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",dt,[...n[31]||(n[31]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[33]||(n[33]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Expand current network.")],-1))]),(0,i.Lk)("div",ht,[(0,i.Lk)("div",gt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",kt,[...n[35]||(n[35]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",mt,[...n[34]||(n[34]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[36]||(n[36]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window in the channel list.")],-1))]),(0,i.Lk)("div",ft,[(0,i.Lk)("div",bt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",wt,[...n[38]||(n[38]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",vt,[...n[37]||(n[37]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[39]||(n[39]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window in the channel list.")],-1))]),(0,i.Lk)("div",yt,[(0,i.Lk)("div",_t,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Lt,[...n[41]||(n[41]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",Ct,[...n[40]||(n[40]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[42]||(n[42]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window with unread messages in the channel list.")],-1))]),(0,i.Lk)("div",Mt,[(0,i.Lk)("div",Et,[e.isApple?((0,i.uX)(),(0,i.CE)("span",St,[...n[44]||(n[44]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",xt,[...n[43]||(n[43]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[45]||(n[45]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window with unread messages in the channel list.")],-1))]),(0,i.Lk)("div",At,[(0,i.Lk)("div",Tt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",jt,[...n[47]||(n[47]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"A",-1)])])):((0,i.uX)(),(0,i.CE)("span",Xt,[...n[46]||(n[46]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"A",-1)])]))]),n[48]||(n[48]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the first window with unread messages.")],-1))]),(0,i.Lk)("div",Wt,[(0,i.Lk)("div",Pt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",It,[...n[50]||(n[50]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])])):((0,i.uX)(),(0,i.CE)("span",Rt,[...n[49]||(n[49]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])]))]),n[51]||(n[51]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle sidebar.")],-1))]),(0,i.Lk)("div",Nt,[(0,i.Lk)("div",Ut,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Ot,[...n[53]||(n[53]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])])):((0,i.uX)(),(0,i.CE)("span",Ft,[...n[52]||(n[52]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])]))]),n[54]||(n[54]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle channel user list.")],-1))]),(0,i.Lk)("div",qt,[(0,i.Lk)("div",Kt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Bt,[...n[56]||(n[56]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"J",-1)])])):((0,i.uX)(),(0,i.CE)("span",Dt,[...n[55]||(n[55]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"J",-1)])]))]),n[57]||(n[57]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle jump to channel switcher.")],-1))]),(0,i.Lk)("div",$t,[(0,i.Lk)("div",Ht,[e.isApple?((0,i.uX)(),(0,i.CE)("span",zt,[...n[59]||(n[59]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])])):((0,i.uX)(),(0,i.CE)("span",Qt,[...n[58]||(n[58]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])]))]),n[60]||(n[60]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle recent mentions popup.")],-1))]),(0,i.Lk)("div",Vt,[(0,i.Lk)("div",Yt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Gt,[...n[62]||(n[62]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"/",-1)])])):((0,i.uX)(),(0,i.CE)("span",Jt,[...n[61]||(n[61]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"/",-1)])]))]),n[63]||(n[63]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the help menu.")],-1))]),n[88]||(n[88]=(0,i.Lk)("div",{class:"help-item"},[(0,i.Lk)("div",{class:"subject"},[(0,i.Lk)("span",null,[(0,i.Lk)("kbd",null,"Esc")])]),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null," Close current contextual window (context menu, image viewer, topic edit, etc) and remove focus from input. ")])],-1)),n[89]||(n[89]=(0,i.Lk)("h2",null,"Formatting Shortcuts",-1)),(0,i.Lk)("div",Zt,[(0,i.Lk)("div",ea,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ta,[...n[65]||(n[65]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"K",-1)])])):((0,i.uX)(),(0,i.CE)("span",na,[...n[64]||(n[64]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"K",-1)])]))]),n[66]||(n[66]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark any text typed after this shortcut to be colored. After hitting this shortcut, enter an integer in the range "),(0,i.Lk)("code",null,"0โ15"),(0,i.eW)(" to select the desired color, or use the autocompletion menu to choose a color name (see below). ")]),(0,i.Lk)("p",null,[(0,i.eW)(" Background color can be specified by putting a comma and another integer in the range "),(0,i.Lk)("code",null,"0โ15"),(0,i.eW)(" after the foreground color number (autocompletion works too). ")]),(0,i.Lk)("p",null,[(0,i.eW)(" A color reference can be found "),(0,i.Lk)("a",{href:"https://modern.ircdocs.horse/formatting.html#colors",target:"_blank",rel:"noopener"},"here"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",aa,[(0,i.Lk)("div",sa,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ia,[...n[68]||(n[68]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"B",-1)])])):((0,i.uX)(),(0,i.CE)("span",oa,[...n[67]||(n[67]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"B",-1)])]))]),n[69]||(n[69]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-bold"},"bold"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",la,[(0,i.Lk)("div",ra,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ua,[...n[71]||(n[71]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])])):((0,i.uX)(),(0,i.CE)("span",ca,[...n[70]||(n[70]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])]))]),n[72]||(n[72]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-underline"},"underlined"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",da,[(0,i.Lk)("div",pa,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ga,[...n[74]||(n[74]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"I",-1)])])):((0,i.uX)(),(0,i.CE)("span",ha,[...n[73]||(n[73]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"I",-1)])]))]),n[75]||(n[75]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-italic"},"italics"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",ma,[(0,i.Lk)("div",ka,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ba,[...n[77]||(n[77]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])])):((0,i.uX)(),(0,i.CE)("span",fa,[...n[76]||(n[76]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])]))]),n[78]||(n[78]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-strikethrough"},"struck through"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",va,[(0,i.Lk)("div",wa,[e.isApple?((0,i.uX)(),(0,i.CE)("span",_a,[...n[80]||(n[80]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])])):((0,i.uX)(),(0,i.CE)("span",ya,[...n[79]||(n[79]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])]))]),n[81]||(n[81]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-monospace"},"monospaced"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",Ca,[(0,i.Lk)("div",La,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Ea,[...n[83]||(n[83]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"O",-1)])])):((0,i.uX)(),(0,i.CE)("span",Ma,[...n[82]||(n[82]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"O",-1)])]))]),n[84]||(n[84]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null," Mark all text typed after this shortcut to be reset to its original formatting. ")],-1))]),n[90]||(n[90]=(0,i.Fv)('<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)),e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",xa,[...n[85]||(n[85]=[(0,i.Lk)("div",{class:"subject"},[(0,i.Lk)("code",null,"/search query")],-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Search for messages in the current channel / user")],-1)])])):(0,i.Q3)("",!0),n[91]||(n[91]=(0,i.Fv)('<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))])])}]]),Ia={id:"changelog",class:"window","aria-label":"Changelog"},Na={class:"header"},Ua={class:"container"},Fa={class:"title"},Oa=["innerHTML"],qa=["href"],Ka={key:1},Da=(0,i.pM)({name:"Changelog",components:{SidebarToggle:wn},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(null),t=()=>{n.value&&n.value.querySelectorAll("a").forEach(e=>{e.setAttribute("target","_blank"),e.setAttribute("rel","noopener"),e.querySelector("img")&&e.classList.add("toggle-thumbnail")})};return(0,i.sV)(()=>{e.state.versionData||re.A.emit("changelog"),t()}),(0,i.$u)(()=>{t()}),{store:e}}}),Ba=(0,q.A)(Da,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("div",Ia,[(0,i.Lk)("div",Na,[(0,i.bF)(r)]),(0,i.Lk)("div",Ua,[(0,i.bF)(c,{id:"back-to-help",to:"/help"},{default:(0,i.k6)(()=>[...n[0]||(n[0]=[(0,i.eW)("ยซ Help",-1)])]),_:1}),e.store.state.versionData?.current&&e.store.state.versionData?.current.version?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("h1",Fa," Release notes for "+(0,l.v_)(e.store.state.versionData.current.version),1),e.store.state.versionData.current.changelog?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[1]||(n[1]=(0,i.Lk)("h3",null,"Introduction",-1)),(0,i.Lk)("div",{ref:"changelog",class:"changelog-text",innerHTML:e.store.state.versionData.current.changelog},null,8,Oa)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[2]||(n[2]=(0,i.Lk)("p",null,"Unable to retrieve changelog for current release from GitHub.",-1)),(0,i.Lk)("p",null,[e.store.state.serverConfiguration?.version?((0,i.uX)(),(0,i.CE)("a",{key:0,href:`https://github.com/LordBex/thelounge/releases/tag/v${e.store.state.serverConfiguration?.version}`,target:"_blank",rel:"noopener"},"View release notes for this version on GitHub",8,qa)):(0,i.Q3)("",!0)])],64))],64)):((0,i.uX)(),(0,i.CE)("p",Ka,"Loading changelogโฆ"))])])}]]),$a=(0,i.pM)({name:"NetworkEdit",components:{NetworkForm:_n},setup(){const e=(0,S.lq)(),n=(0,o.Pj)(),t=(0,x.KR)(!1),a=(0,x.KR)(null),s=()=>{re.A.emit("network:get",String(e.params.uuid||"")),a.value=n.getters.findNetwork(String(e.params.uuid||""))};return(0,i.wB)(()=>e.params.uuid,()=>{s()}),(0,i.sV)(()=>{s()}),{disabled:t,networkData:a,handleSubmit:e=>{t.value=!0,re.A.emit("network:edit",e);const a=n.getters.findNetwork(e.uuid);a&&(a.name=a.channels[0].name=e.name,mc(a.channels[0]))}}}}),Ha=(0,q.A)($a,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("NetworkForm");return e.networkData?((0,i.uX)(),(0,i.Wv)(l,{key:0,"handle-submit":e.handleSubmit,defaults:e.networkData,disabled:e.disabled},null,8,["handle-submit","defaults","disabled"])):(0,i.Q3)("",!0)}]]),Qa={id:"chat-container",class:"window"},za={class:"chat-view","data-type":"search-results","aria-label":"Search results",role:"tabpanel"},Va={key:0,class:"header"},Ya={class:"title"},Ja={class:"channel-name"},Ga={class:"topic"},Za={key:1,class:"chat-content"},es={ref:"chat",class:"chat",tabindex:"-1"},ns={class:"show-more"},ts=["disabled"],as={key:0},ss={key:1},os={key:0,class:"search-status"},is={key:1,class:"search-status"},ls={class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions"},rs=["data-jump-to"],cs=["id","data-type","data-command","data-from","data-bridged"],us=["aria-label"],ds={class:"from"},ps={class:"content"},hs={class:"content",dir:"auto"},gs={key:0,class:"from"},ms={key:1,class:"from"},ks={key:2,class:"from"},fs={class:"content",dir:"auto"},bs={key:0,"aria-label":"This message was shown in your active channel",class:"msg-shown-in-active tooltipped tooltipped-e"},vs=["aria-label"];var ws=t(4353),ys=t.n(ws),_s=t(7321),Cs=t(6640);const Ls={key:0,ref:"container",class:"preview",dir:"ltr"},Ms=["href"],Es=["src"],xs={class:"toggle-text",dir:"auto"},Ss={class:"head"},As={class:"overflowable"},Ts=["href","title"],Xs=["aria-expanded","aria-label"],js={class:"body overflowable"},Ws=["href","title"],Ps=["href"],Rs=["src"],Is=["src","type"],Ns=["src","type"],Us={key:0},Fs=["href"],Os=["href"],qs={class:"prefetch-error"},Ks=["aria-expanded","aria-label"];var Ds=t(5696),Bs=t(3388);const $s=(0,i.pM)({name:"LinkPreview",props:{link:{type:Object,required:!0},keepScrollPosition:{type:Function,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(!1),a=(0,x.KR)(!1),s=(0,i.WQ)(gu);(0,Ds.V6)((e,n,t)=>{if(s?.value?.link)return s.value.closeViewer(),t(!1);t()});const l=(0,x.KR)(null),c=(0,x.KR)(null),u=(0,i.EW)(()=>a.value?"Less":"More"),d=(0,i.EW)(()=>{if(e.link.maxSize)return(0,Bs.A)(e.link.maxSize)}),p=()=>{(0,i.dY)(()=>{l.value&&c.value&&(t.value=l.value.offsetWidth>=c.value.offsetWidth)}).catch(e=>{console.error("Error in LinkPreview.handleResize",e)})},h=()=>{e.link.sourceLoaded=!0,e.keepScrollPosition(),"link"===e.link.type&&p()},g=()=>{"loading"!==e.link.type&&("error"===e.link.type&&h(),"link"===e.link.type&&(p(),e.keepScrollPosition()))},m=()=>{if(null!==e.link.shown)return;let t=!1;switch(e.link.type){case"error":"image-too-big"===e.link.error&&(t=n.state.settings.media);break;case"link":t=n.state.settings.links;break;default:t=n.state.settings.media}e.link.shown=t};return m(),(0,i.wB)(()=>e.link.type,()=>{m(),g()}),(0,i.sV)(()=>{r.A.on("resize",p),g()}),(0,i.xo)(()=>{r.A.off("resize",p)}),(0,i.hi)(()=>{e.link.sourceLoaded=!1}),{moreButtonLabel:u,imageMaxSize:d,onThumbnailClick:n=>{n.preventDefault(),s?.value&&(s.value.channel=e.channel,s.value.link=e.link)},onThumbnailError:()=>{e.link.thumb="",h()},onMoreClick:()=>{a.value=!a.value,e.keepScrollPosition()},onPreviewReady:h,onPreviewUpdate:g,showMoreButton:t,isContentShown:a,content:l,container:c}}}),Hs=(0,q.A)($s,[["render",function(e,n,t,a,o,r){return e.link.shown?(0,i.bo)(((0,i.uX)(),(0,i.CE)("div",Ls,[(0,i.Lk)("div",{ref:"content",class:(0,l.C4)(["toggle-content","toggle-type-"+e.link.type,{opened:e.isContentShown}])},["link"===e.link.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.link.thumb?(0,i.bo)(((0,i.uX)(),(0,i.CE)("a",{key:0,href:e.link.link,class:"toggle-thumbnail",target:"_blank",rel:"noopener",onClick:n[3]||(n[3]=(...n)=>e.onThumbnailClick&&e.onThumbnailClick(...n))},[(0,i.Lk)("img",{src:e.link.thumb,decoding:"async",alt:"",class:"thumb",onError:n[0]||(n[0]=(...n)=>e.onThumbnailError&&e.onThumbnailError(...n)),onAbort:n[1]||(n[1]=(...n)=>e.onThumbnailError&&e.onThumbnailError(...n)),onLoad:n[2]||(n[2]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},null,40,Es)],8,Ms)),[[s.aG,e.link.sourceLoaded]]):(0,i.Q3)("",!0),(0,i.Lk)("div",xs,[(0,i.Lk)("div",Ss,[(0,i.Lk)("div",As,[(0,i.Lk)("a",{href:e.link.link,title:e.link.head,target:"_blank",rel:"noopener"},(0,l.v_)(e.link.head),9,Ts)]),e.showMoreButton?((0,i.uX)(),(0,i.CE)("button",{key:0,"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel,dir:"auto",class:"more",onClick:n[4]||(n[4]=(...n)=>e.onMoreClick&&e.onMoreClick(...n))},[...n[10]||(n[10]=[(0,i.Lk)("span",{class:"more-caret"},null,-1)])],8,Xs)):(0,i.Q3)("",!0)]),(0,i.Lk)("div",js,[(0,i.Lk)("a",{href:e.link.link,title:e.link.body,target:"_blank",rel:"noopener"},(0,l.v_)(e.link.body),9,Ws)])])],64)):"image"===e.link.type?((0,i.uX)(),(0,i.CE)("a",{key:1,href:e.link.link,class:"toggle-thumbnail",target:"_blank",rel:"noopener",onClick:n[6]||(n[6]=(...n)=>e.onThumbnailClick&&e.onThumbnailClick(...n))},[(0,i.bo)((0,i.Lk)("img",{src:e.link.thumb,decoding:"async",alt:"",onLoad:n[5]||(n[5]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},null,40,Rs),[[s.aG,e.link.sourceLoaded]])],8,Ps)):"video"===e.link.type?(0,i.bo)(((0,i.uX)(),(0,i.CE)("video",{key:2,preload:"metadata",controls:"",onCanplay:n[7]||(n[7]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},[(0,i.Lk)("source",{src:e.link.media,type:e.link.mediaType},null,8,Is)],544)),[[s.aG,e.link.sourceLoaded]]):"audio"===e.link.type?(0,i.bo)(((0,i.uX)(),(0,i.CE)("audio",{key:3,controls:"",preload:"metadata",onCanplay:n[8]||(n[8]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},[(0,i.Lk)("source",{src:e.link.media,type:e.link.mediaType},null,8,Ns)],544)),[[s.aG,e.link.sourceLoaded]]):"error"===e.link.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:4},["image-too-big"===e.link.error?((0,i.uX)(),(0,i.CE)("em",Us,[(0,i.eW)(" This image is larger than "+(0,l.v_)(e.imageMaxSize)+" and cannot be previewed. ",1),(0,i.Lk)("a",{href:e.link.link,target:"_blank",rel:"noopener"},"Click here",8,Fs),n[11]||(n[11]=(0,i.eW)(" to open it in a new window. ",-1))])):"message"===e.link.error?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.Lk)("div",null,[(0,i.Lk)("em",null,[n[12]||(n[12]=(0,i.eW)(" A preview could not be loaded. ",-1)),(0,i.Lk)("a",{href:e.link.link,target:"_blank",rel:"noopener"},"Click here",8,Os),n[13]||(n[13]=(0,i.eW)(" to open it in a new window. ",-1))]),n[14]||(n[14]=(0,i.Lk)("br",null,null,-1)),(0,i.Lk)("pre",qs,(0,l.v_)(e.link.message)+"\n\n",1)]),(0,i.Lk)("button",{"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel,class:"more",onClick:n[9]||(n[9]=(...n)=>e.onMoreClick&&e.onMoreClick(...n))},[...n[15]||(n[15]=[(0,i.Lk)("span",{class:"more-caret"},null,-1)])],8,Ks)],64)):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0)],2)],512)),[[s.aG,e.link.sourceLoaded||"link"===e.link.type]]):(0,i.Q3)("",!0)}]]);var Qs=t(3568);const zs=t(1191),Vs=zs.keys().reduce((e,n)=>(e["message-"+n.substring(2,n.length-4)]=zs(n).default,e),{});let Ys=function(e){return e.UNHANDLED="unhandled",e.ACTION="action",e.AWAY="away",e.BACK="back",e.ERROR="error",e.INVITE="invite",e.JOIN="join",e.KICK="kick",e.LOGIN="login",e.LOGOUT="logout",e.MESSAGE="message",e.MODE="mode",e.MODE_CHANNEL="mode_channel",e.MODE_USER="mode_user",e.MONOSPACE_BLOCK="monospace_block",e.NICK="nick",e.NOTICE="notice",e.PART="part",e.QUIT="quit",e.CTCP="ctcp",e.CTCP_REQUEST="ctcp_request",e.CHGHOST="chghost",e.TOPIC="topic",e.TOPIC_SET_BY="topic_set_by",e.WHOIS="whois",e.RAW="raw",e.PLUGIN="plugin",e.WALLOPS="wallops",e.MASS_EVENT="mass_event",e}({});const Js=[{type:"basic",name:"Anthelion",description:"[ SB ] (<nick>): <message>",matches:["sauron"],regex:/^.*?\[.*?SB.*?\][^(]+\((?<nick>[^):]+)\):.+?(?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"BeyondHD + ReelFliX",description:"[SB] <nick>: <message> | [Chatbox] <nick>: <message>",matches:["willie","wall-e"],regex:/^.*?\[(?:SB|Chatbox)\][^\w]+(?<nick>[^:]+): (?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"UploadCX + LST + OnlyEncodes+ + HomiesHelpDesk + Aither + DarkPeers + Luminarr",description:"[nick] message | [nick]: message | nick: message | nick message",matches:["ulcx","bot","bridgebot","bbot","chatbot","darkpeers","luminarr"],regex:/^\[?(?<nick>[^:\]]+)\]?:? (?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"RocketHD",description:"๐ฐ๏ธ<nick>: <message>",matches:["rocketnouncer"],regex:/^๐ฐ๏ธ(?<nick>[^:]+?): (?<content>.*)/v,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"DigitalCore",description:"<<nick>> <message>",matches:["endor"],regex:/^<(?<nick>[^>]+?)> (?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"HUNO (Discord)",description:"ยป<nick> (<rank>)ยซ <message> | ยป<nick>ยซ <message>",matches:["mellos"],regex:/^ยป(?<nick>[^ยซ]+?)(?: (?:\p{RGI_Emoji}+|\(.+?\)))?ยซ (?<content>.*)/v,transform(e){return Gs(e.text.match(this.regex))}},{type:"advanced",name:"HUNO (Web)",description:"Nicks in the format '<nick>-web'",matches:e=>e.endsWith("-web")||e.endsWith("-web",e.length-2),transform:e=>({nick:e.from.nick.slice(0,-4)})}];function Gs(e){return e?.groups}var Zs=t(1654);Vs.ParsedMessage=Qs.A,Vs.LinkPreview=Hs,Vs.Username=Cs.A;const eo=(0,i.pM)({name:"Message",components:Vs,props:{message:{type:Object,required:!0},channel:{type:Object,required:!1},network:{type:Object,required:!0},keepScrollPosition:Function,isPreviousSource:Boolean,isFocused:Boolean},setup(e){const n=(0,o.Pj)(),t=(0,i.EW)(()=>{let e;return e=n.state.settings.use12hClock?n.state.settings.showSeconds?"msg12hWithSeconds":"msg12h":n.state.settings.showSeconds?"msgWithSeconds":"msgDefault",a.timeFormats[e]}),s=(0,i.EW)(()=>ys()(e.message.time).format(t.value)),l=(0,i.EW)(()=>(0,_s.A)(e.message.time)),r=(0,i.EW)(()=>"message-"+(e.message.type||"invalid")),c=(0,i.EW)(()=>e.channel?.type===Zs.rR.CHANNEL&&n.state.settings.beautifyBridgedMessages&&e.message.type===Ys.MESSAGE?function(e){const n=e.from?.nick?.toLowerCase();if(!e.text||!n)return e;const t=Js.find(e=>"basic"===e.type?e.matches.includes(n):"advanced"===e.type?e.matches(n):void 0);if(!t)return e;const a=t.transform(e);if(!a||!a.nick)return e;const s=structuredClone((0,x.ux)(e));var o;return s.text=a.content??s.text,s.from={...s.from,nick:(o=a.nick,o.replaceAll(/[^0-9a-z_-|]/gi,"")),mode:"",shoutbox:!0,original_nick:n},s}(e.message):e.message);return{timeFormat:t,prettyMessage:c,messageTime:s,messageTimeLocale:l,messageComponent:r,isAction:()=>!!e.message.type&&void 0!==Vs["message-"+e.message.type]}}}),no=(0,q.A)(eo,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Username"),c=(0,i.g2)("ParsedMessage"),u=(0,i.g2)("LinkPreview");return(0,i.uX)(),(0,i.CE)("div",{id:"msg-"+e.prettyMessage.id,class:(0,l.C4)(["msg",{self:e.prettyMessage.self,highlight:e.prettyMessage.highlight,"is-focused":e.isFocused,"previous-source":e.isPreviousSource}]),"data-type":e.prettyMessage.type,"data-command":e.prettyMessage.command,"data-from":e.prettyMessage.from&&(e.prettyMessage.from.shoutbox?e.prettyMessage.from.original_nick:e.prettyMessage.from.nick),"data-bridged":e.prettyMessage.from?.shoutbox},[(0,i.Lk)("span",{"aria-hidden":"true","aria-label":e.messageTimeLocale,class:"time tooltipped tooltipped-e"},(0,l.v_)(`${e.messageTime} `),9,us),"unhandled"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("span",ds,"["+(0,l.v_)(e.prettyMessage.command)+"]",1),(0,i.Lk)("span",ps,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.prettyMessage.params,(e,n)=>((0,i.uX)(),(0,i.CE)("span",{key:n},(0,l.v_)(` ${e} `),1))),128))])],64)):e.isAction()?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[0]||(n[0]=(0,i.Lk)("span",{class:"from"},[(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"***ย ")],-1)),((0,i.uX)(),(0,i.Wv)((0,i.$y)(e.messageComponent),{network:e.network,message:e.prettyMessage},null,8,["network","message"]))],64)):"action"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:2},[n[2]||(n[2]=(0,i.Lk)("span",{class:"from"},[(0,i.Lk)("span",{class:"only-copy"},"*ย ")],-1)),(0,i.Lk)("span",hs,[(0,i.bF)(r,{user:e.prettyMessage.from,network:e.network,channel:e.channel,dir:"auto"},null,8,["user","network","channel"]),n[1]||(n[1]=(0,i.eW)()),(0,i.bF)(c,{message:e.prettyMessage},null,8,["message"]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.prettyMessage.previews,n=>((0,i.uX)(),(0,i.Wv)(u,{key:n.link,"keep-scroll-position":e.keepScrollPosition,link:n,channel:e.channel},null,8,["keep-scroll-position","link","channel"]))),128))])],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:3},["message"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)("span",gs,[e.prettyMessage.from&&e.prettyMessage.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[3]||(n[3]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"<",-1)),(0,i.bF)(r,{user:e.prettyMessage.from,network:e.network,channel:e.channel},null,8,["user","network","channel"]),n[4]||(n[4]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},">ย ",-1))],64)):(0,i.Q3)("",!0)])):"plugin"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)("span",ms,[e.prettyMessage.from&&e.prettyMessage.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[5]||(n[5]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"[",-1)),(0,i.eW)(" "+(0,l.v_)(e.prettyMessage.from.nick)+" ",1),n[6]||(n[6]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"]ย ",-1))],64)):(0,i.Q3)("",!0)])):((0,i.uX)(),(0,i.CE)("span",ks,[e.prettyMessage.from&&e.prettyMessage.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[7]||(n[7]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"-",-1)),(0,i.bF)(r,{user:e.prettyMessage.from,network:e.network,channel:e.channel},null,8,["user","network","channel"]),n[8]||(n[8]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"-ย ",-1))],64)):(0,i.Q3)("",!0)])),(0,i.Lk)("span",fs,[e.prettyMessage.showInActive?((0,i.uX)(),(0,i.CE)("span",bs,[...n[9]||(n[9]=[(0,i.Lk)("span",null,null,-1)])])):(0,i.Q3)("",!0),e.prettyMessage.statusmsgGroup?((0,i.uX)(),(0,i.CE)("span",{key:1,"aria-label":`This message was only shown to users with ${e.prettyMessage.statusmsgGroup} mode`,class:"msg-statusmsg tooltipped tooltipped-e"},[(0,i.Lk)("span",null,(0,l.v_)(e.prettyMessage.statusmsgGroup),1)],8,vs)):(0,i.Q3)("",!0),(0,i.bF)(c,{network:e.network,message:e.prettyMessage},null,8,["network","message"]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.prettyMessage.previews,n=>((0,i.uX)(),(0,i.Wv)(u,{key:n.link,"keep-scroll-position":e.keepScrollPosition,link:n,channel:e.channel},null,8,["keep-scroll-position","link","channel"]))),128))])],64))],10,cs)}]]),to={class:"input-wrapper"},ao=(0,i.pM)({name:"MessageSearchForm",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,x.KR)(!1),t=(0,x.KR)(""),a=(0,S.rd)(),s=(0,S.lq)(),o=(0,x.KR)(null),l=(0,i.EW)(()=>"SearchResults"===s.name);return(0,i.wB)(s,e=>{e.query.q&&(t.value=String(e.query.q))}),(0,i.sV)(()=>{t.value=String(s.query.q||""),n.value=l.value,o.value&&!t.value&&n.value&&o.value.focus()}),{searchOpened:n,searchInput:t,searchInputField:o,closeSearch:()=>{l.value||(t.value="",n.value=!1)},toggleSearch:()=>{n.value?o.value?.blur():(n.value=!0,o.value?.focus())},searchMessages:n=>{n.preventDefault(),t.value&&a.push({name:"SearchResults",params:{id:e.channel.id},query:{q:t.value}}).catch(e=>{"NavigationDuplicated"===e.name&&r.A.emit("re-search")})},onSearchPage:l}}}),so=(0,q.A)(ao,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("form",{class:(0,l.C4)(["message-search",{opened:e.searchOpened}]),onSubmit:n[4]||(n[4]=(0,s.D$)((...n)=>e.searchMessages&&e.searchMessages(...n),["prevent"]))},[(0,i.Lk)("div",to,[(0,i.bo)((0,i.Lk)("input",{ref:"searchInputField","onUpdate:modelValue":n[0]||(n[0]=n=>e.searchInput=n),type:"search",name:"search",class:"input",placeholder:"Search messagesโฆ",onBlur:n[1]||(n[1]=(...n)=>e.closeSearch&&e.closeSearch(...n)),onKeyup:n[2]||(n[2]=(0,s.jR)((...n)=>e.closeSearch&&e.closeSearch(...n),["esc"]))},null,544),[[s.Jo,e.searchInput]])]),e.onSearchPage?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("button",{key:0,class:"search",type:"button","aria-label":"Search messages in this channel",onMousedown:n[3]||(n[3]=(0,s.D$)((...n)=>e.toggleSearch&&e.toggleSearch(...n),["prevent"]))},null,32))],34)}]]),oo=["aria-label"],io={class:"date-marker"},lo=["aria-label"];var ro=t(8720),co=t.n(ro);ys().extend(co());const uo=(0,i.pM)({name:"DateMarker",props:{message:{type:Object,required:!0},isFocused:Boolean},setup(e){const n=(0,i.EW)(()=>ys()(e.message.time).format("D MMMM YYYY")),t=()=>(Date.now()-Date.parse(e.message.time.toString()))/36e5,a=()=>{t()>=48&&r.A.off("daychange",a)};return(0,i.sV)(()=>{t()<48&&r.A.on("daychange",a)}),(0,i.xo)(()=>{r.A.off("daychange",a)}),{localeDate:n,friendlyDate:()=>ys()(e.message.time).calendar(null,{sameDay:"[Today]",lastDay:"[Yesterday]",lastWeek:"D MMMM YYYY",sameElse:"D MMMM YYYY"})}}}),po=(0,q.A)(uo,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{"aria-label":e.localeDate,class:"date-marker-container tooltipped tooltipped-s"},[(0,i.Lk)("div",io,[n[0]||(n[0]=(0,i.eW)(" ; ",-1)),(0,i.Lk)("span",{"aria-label":e.friendlyDate(),class:"date-marker-text"},null,8,lo)])],8,oo)}]]),ho=(0,i.pM)({name:"SearchResults",components:{SidebarToggle:wn,Message:no,DateMarker:po,MessageSearchForm:so},setup(){const e=(0,o.Pj)(),n=(0,S.lq)(),t=(0,x.KR)(),a=(0,x.KR)(),s=(0,x.KR)(0),l=(0,x.KR)(!1),c=(0,x.KR)(0),u=(0,x.KR)(0),d=(0,i.EW)(()=>{const n=e.state.messageSearchResults?.results;return n||[]}),p=(0,i.EW)(()=>{const t=parseInt(String(n.params.id||""),10);return e.getters.findChannel(t)}),h=(0,i.EW)(()=>p.value?p.value.network:null),g=(0,i.EW)(()=>p.value?p.value.channel:null),m=()=>{p.value&&e.commit("activeChannel",p.value)},k=()=>{g.value&&mc(g.value)},f=()=>{s.value=0,e.commit("messageSearchResults",null),e.commit("messageSearchPendingQuery",null)},b=()=>{if(!h.value||!g.value)return;f();const t={networkUuid:h.value.uuid,channelName:g.value.name,searchTerm:String(n.query.q||""),offset:s.value};e.commit("messageSearchPendingQuery",t),re.A.emit("search",t)},v=async()=>{await(0,i.dY)();const e=t.value;e&&(e.scrollTop=e.scrollHeight)};return(0,i.wB)(()=>n.params.id,()=>{b(),m()}),(0,i.wB)(()=>n.query,()=>{b(),m()}),(0,i.wB)(d,async()=>{if(l.value=!(!d.value.length||d.value.length%100),s.value){await(0,i.dY)();const e=t.value;if(!e)return;const n=e.scrollHeight;e.scrollTop=c.value+n-u.value}else await v()}),(0,i.sV)(()=>{m(),b(),r.A.on("escapekey",k),r.A.on("re-search",b)}),(0,i.hi)(()=>{r.A.off("escapekey",k),r.A.off("re-search",b),f()}),{chat:t,loadMoreButton:a,messages:d,moreResultsAvailable:l,network:h,channel:g,route:n,offset:s,store:e,setActiveChannel:m,closeSearch:k,shouldDisplayDateMarker:(e,n)=>{const t=d.value[n-1];return!t||new Date(t.time).getDay()!==new Date(e.time).getDay()},doSearch:b,onShowMoreClick:()=>{if(!t.value||!h.value||!g.value)return;s.value+=100,c.value=t.value.scrollTop,u.value=t.value.scrollHeight;const a={networkUuid:h.value.uuid,channelName:g.value.name,searchTerm:String(n.query.q||""),offset:s.value};e.commit("messageSearchPendingQuery",a),re.A.emit("search",a)},jumpToBottom:v,jump:n=>{if(!e.state.settings.enableEnhancedSearch||!g.value)return;const t=new Date(n.time).getTime();mc(g.value,n.id,t)}}}}),go=(0,q.A)(ho,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("MessageSearchForm"),d=(0,i.g2)("DateMarker"),p=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",Qa,[(0,i.Lk)("div",{id:"chat",class:(0,l.C4)({"time-seconds":e.store.state.settings.showSeconds,"time-12h":e.store.state.settings.use12hClock})},[(0,i.Lk)("div",za,[e.network&&e.channel?((0,i.uX)(),(0,i.CE)("div",Va,[(0,i.bF)(c),(0,i.Lk)("span",Ya,[n[2]||(n[2]=(0,i.eW)("Searching in ",-1)),(0,i.Lk)("span",Ja,(0,l.v_)(e.channel.name),1),n[3]||(n[3]=(0,i.eW)(" for",-1))]),(0,i.Lk)("span",Ga,(0,l.v_)(e.route.query.q),1),(0,i.bF)(u,{network:e.network,channel:e.channel},null,8,["network","channel"]),(0,i.Lk)("button",{class:"close","aria-label":"Close search window",title:"Close search window",onClick:n[0]||(n[0]=(...n)=>e.closeSearch&&e.closeSearch(...n))})])):(0,i.Q3)("",!0),e.network&&e.channel?((0,i.uX)(),(0,i.CE)("div",Za,[(0,i.Lk)("div",es,[(0,i.bo)((0,i.Lk)("div",ns,[(0,i.Lk)("button",{ref:"loadMoreButton",disabled:!!e.store.state.messageSearchPendingQuery||!e.store.state.isConnected,class:"btn",onClick:n[1]||(n[1]=(...n)=>e.onShowMoreClick&&e.onShowMoreClick(...n))},[e.store.state.messageSearchPendingQuery?((0,i.uX)(),(0,i.CE)("span",as,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("span",ss,"Show older messages"))],8,ts)],512),[[s.aG,e.moreResultsAvailable]]),e.store.state.messageSearchPendingQuery&&!e.offset?((0,i.uX)(),(0,i.CE)("div",os," Searchingโฆ ")):e.messages.length||e.offset?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",is," No results found. ")),(0,i.Lk)("div",ls,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.messages,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:n.id,class:"result","data-jump-to":e.store.state.settings.enableEnhancedSearch||void 0},[e.shouldDisplayDateMarker(n,t)?((0,i.uX)(),(0,i.Wv)(d,{key:n.id+"-date",message:n},null,8,["message"])):(0,i.Q3)("",!0),((0,i.uX)(),(0,i.Wv)(p,{key:n.id,channel:e.channel,network:e.network,message:n,"data-id":n.id,onClick:t=>e.jump(n)},null,8,["channel","network","message","data-id","onClick"]))],8,rs))),128))])],512)])):(0,i.Q3)("",!0)])],2)])}]]),mo=["data-current-channel"],ko=["id","data-type","aria-label"],fo={class:"header"},bo=["aria-label"],vo={key:0,class:"topic-container"},wo=["value"],yo=["title"],_o={key:3,class:"rt-tooltip tooltipped tooltipped-w","aria-label":"Toggle user list"},Co={key:0,class:"chat-content"},Lo={class:"chat"},Mo={class:"messages"},Eo={class:"msg"},xo={key:1,class:"chat-content"},So={ref:"chat",class:"chat",tabindex:"-1"},Ao={class:"show-more"},To=["disabled"],Xo={key:0},jo={key:1},Wo={key:1,class:"unread-marker"},Po=/\x02|\x1D|\x1F|\x16|\x0F|\x11|\x1E|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?|\x04(?:[0-9a-f]{6}(?:,[0-9a-f]{6})?)?/gi,Ro=new Set(["away","back","chghost","join","kick","mass_event","mode","nick","part","quit"]);function Io(e){if("InstallTrigger"in window)return;const n=window.getSelection();if(!n)return;if(n.anchorNode===n.focusNode)return;const t=n.getRangeAt(0),a=t.cloneContents(),s=document.createElement("div");s.id="js-copy-hack",s.appendChild(a),e.appendChild(s),n.selectAllChildren(s),window.setTimeout(()=>{e.removeChild(s),n.removeAllRanges(),n.addRange(t)},0)}const No={class:"condensed-summary"},Uo=(0,i.pM)({name:"MessageCondensed",components:{Message:no},props:{network:{type:Object,required:!0},messages:{type:Array,required:!0},keepScrollPosition:{type:Function,required:!0},isFocused:Boolean},setup(e){const n=(0,x.KR)(!0),t=(0,i.EW)(()=>{const n={};Ro.forEach(e=>{n[e]=0});for(const t of e.messages)if(t.type===Ys.MODE){const e=(t.text?t.text:"").split(" ")[0].split("").filter(e=>"+"!==e&&"-"!==e).length;n[t.type]+=e}else if(t.type===Ys.MASS_EVENT){const e=t.massEventSummary;Object.keys(e).forEach(t=>{if("startTime"!==t&&"endTime"!==t&&"duration"!==t)return"away"===t||"back"===t?n[t]+=e[t]:void(n[t.slice(0,-1)]+=e[t])})}else{if(!t.type){console.log(`empty message type, this should not happen: ${t.id}`);continue}n[t.type]++}n.part+=n.quit;const t=[];if(Ro.forEach(e=>{if(n[e])switch(e){case"chghost":t.push(String(n[e])+(n[e]>1?" users have changed hostname":" user has changed hostname"));break;case"join":t.push(String(n[e])+(n[e]>1?" users have joined":" user has joined"));break;case"part":t.push(String(n[e])+(n[e]>1?" users have left":" user has left"));break;case"nick":t.push(String(n[e])+(n[e]>1?" users have changed nick":" user has changed nick"));break;case"kick":t.push(String(n[e])+(n[e]>1?" users were kicked":" user was kicked"));break;case"mode":t.push(String(n[e])+(n[e]>1?" modes were set":" mode was set"));break;case"away":t.push("marked away "+(n[e]>1?String(n[e])+" times":"once"));break;case"back":t.push("marked back "+(n[e]>1?String(n[e])+" times":"once"))}}),t.length){let e=t.pop();return t.length&&(e=t.join(", ")+", and "+e),e}return""});return{isCollapsed:n,condensedText:t,onCollapseClick:()=>{n.value=!n.value,e.keepScrollPosition()}}}}),Fo=(0,q.A)(Uo,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",{class:(0,l.C4)(["msg",{closed:e.isCollapsed,"is-focused":e.isFocused}]),"data-type":"condensed"},[(0,i.Lk)("div",No,[n[2]||(n[2]=(0,i.Lk)("span",{class:"time"},null,-1)),n[3]||(n[3]=(0,i.Lk)("span",{class:"from"},null,-1)),(0,i.Lk)("span",{class:"content",onClick:n[0]||(n[0]=(...n)=>e.onCollapseClick&&e.onCollapseClick(...n))},[(0,i.eW)((0,l.v_)(e.condensedText)+" ",1),n[1]||(n[1]=(0,i.Lk)("button",{class:"toggle-button","aria-label":"Toggle status messages"},null,-1))])]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.messages,n=>((0,i.uX)(),(0,i.Wv)(r,{key:n.id,network:e.network,message:n},null,8,["network","message"]))),128))],2)}]]),Oo=500,qo=(0,i.pM)({name:"MessageList",components:{Message:no,MessageCondensed:Fo,DateMarker:po},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},isFocused:Number,focusedTime:Number},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(null),a=(0,x.KR)(null),s=(0,x.KR)(null),l=(0,x.KR)(null),c=(0,x.KR)(null),u=(0,x.KR)(!1),d=(0,x.KR)(0),p=(0,x.KR)(!1);let h=!1;const g=(0,i.EW)(()=>{if(e.channel.type!==Zs.rR.CHANNEL&&e.channel.type!==Zs.rR.QUERY)return e.channel.messages;if("hidden"===n.state.settings.statusMessages)return e.channel.messages.filter(e=>!Ro.has(e.type||""));if("condensed"!==n.state.settings.statusMessages)return e.channel.messages;let t=null;const a=[];for(const n of e.channel.messages)n.self||n.highlight||!Ro.has(n.type||"")?(t=null,a.push(n)):(t||(t={time:n.time,type:"condensed",messages:[]},a.push(t)),t.messages.push(n),t.id=n.id,n.id===e.channel.firstUnread&&(t=null));return a.map(e=>"condensed"===e.type&&1===e.messages.length?e.messages[0]:e)}),m=(0,i.EW)(()=>{const e=g.value,n=e.length;if(n<=Oo)return e;const t=Math.max(0,Math.min(d.value,n-Oo));return e.slice(t,t+Oo)}),k=(0,i.EW)(()=>d.value>0),f=(0,i.EW)(()=>{const e=g.value.length;return e<=Oo||d.value>=e-Oo}),b=(0,i.EW)(()=>e.channel.moreHistoryAvailable&&0===d.value),v=()=>{t.value&&(u.value=!0,t.value.scrollTop=t.value.scrollHeight,setTimeout(()=>{u.value=!1},50))},w=async()=>{const n=g.value.length;d.value=Math.max(0,n-Oo),e.channel.scrolledToBottom=!0,p.value=!0,await(0,i.dY)(),v(),p.value=!1},y=async(n,a)=>{l.value=n,c.value=a||null,e.channel.scrolledToBottom=!1,p.value=!0;const s=g.value;let o=-1;for(let e=0;e<s.length;e++){const t=s[e];if("condensed"===t.type){if(t.messages.some(e=>e.id===n)){o=e;break}}else if(t.id===n){o=e;break}}if(-1===o&&a)for(let e=0;e<s.length;e++){const n=s[e],t=new Date(n.time).getTime();if(Math.abs(t-a)<1e3){o=e;break}if("condensed"===n.type)for(const t of n.messages){const n=new Date(t.time).getTime();if(Math.abs(n-a)<1e3){o=e;break}}if(-1!==o)break}if(-1===o)return p.value=!1,!1;if(s.length>Oo){const e=Math.floor(250);d.value=Math.max(0,Math.min(o-e,s.length-Oo))}if(await(0,i.dY)(),t.value){const e=t.value.querySelector(`#msg-${n}`);if(e){u.value=!0,e.scrollIntoView({behavior:"instant",block:"center"});const n=t.value.closest("#chat-container");return n&&(n.scrollTop=0),setTimeout(()=>{u.value=!1,p.value=!1},50),setTimeout(()=>{l.value=null,c.value=null},3e3),!0}}return p.value=!1,!1},_=async n=>{c.value=n,e.channel.scrolledToBottom=!1,p.value=!0;const a=g.value;let s=-1;for(let e=0;e<a.length;e++){const t=a[e],o=new Date(t.time).getTime();if(Math.abs(o-n)<1e3){s=e;break}if("condensed"===t.type){for(const a of t.messages){const t=new Date(a.time).getTime();if(Math.abs(t-n)<1e3){s=e;break}}if(-1!==s)break}}if(-1===s)return p.value=!1,!1;if(a.length>Oo){const e=Math.floor(250);d.value=Math.max(0,Math.min(s-e,a.length-Oo))}if(await(0,i.dY)(),t.value){const e=t.value.querySelectorAll(".msg[id^='msg-']");for(const t of e){const e=t.id.replace("msg-",""),a=m.value.find(n=>"condensed"===n.type?n.messages.some(n=>String(n.id)===e):String(n.id)===e);if(a){const e=new Date(a.time).getTime();if(Math.abs(e-n)<1e3)return u.value=!0,t.scrollIntoView({behavior:"instant",block:"center"}),setTimeout(()=>{u.value=!1,p.value=!1},50),setTimeout(()=>{c.value=null},3e3),!0}}}return p.value=!1,!1},C=()=>{if(u.value||p.value)return;const n=t.value;if(!n)return;const a=n.scrollTop,s=n.scrollHeight-a-n.clientHeight,o=a;s<=30&&f.value?e.channel.scrolledToBottom||(e.channel.scrolledToBottom=!0):e.channel.scrolledToBottom&&s>100&&(e.channel.scrolledToBottom=!1),o<200&&k.value?(async(n=100)=>{if(p.value||d.value<=0)return;const a=t.value;if(!a)return;p.value=!0;const s=a.scrollHeight,o=a.scrollTop,l=Math.max(0,d.value-n);if(0===d.value-l)return void(p.value=!1);d.value=l,e.channel.scrolledToBottom=!1,await(0,i.dY)();const r=a.scrollHeight-s;a.scrollTop=o+r,p.value=!1})(50):s<200&&!f.value&&(async(n=100)=>{if(p.value)return;const a=g.value.length,s=Math.max(0,a-Oo);if(d.value>=s)return;const o=t.value;if(!o)return;p.value=!0;const l=o.scrollHeight,r=o.scrollTop,c=Math.min(s,d.value+n);d.value=c,c>=s&&(e.channel.scrolledToBottom=!0),await(0,i.dY)();const u=l-o.scrollHeight;o.scrollTop=r-u,p.value=!1})(50)},L=()=>{if(!n.state.isConnected)return;let t=-1;for(const n of e.channel.messages)if(!n.showInActive){t=n.id;break}e.channel.historyLoading=!0,re.A.emit("more",{target:e.channel.id,lastId:t,condensed:"shown"!==n.state.settings.statusMessages})},M=async()=>{if(e.channel.scrolledToBottom)return void await w();const n=t.value;if(!n)return;p.value=!0;const a=n.scrollHeight-n.scrollTop;await(0,i.dY)(),u.value=!0,n.scrollTop=n.scrollHeight-a,setTimeout(()=>{u.value=!1,p.value=!1},50)},E=()=>{e.channel.scrolledToBottom&&w()};(0,i.sV)(async()=>{t.value?.addEventListener("scroll",C,{passive:!0}),r.A.on("resize",E),e.isFocused&&!isNaN(e.isFocused)?(await(0,i.dY)(),await y(e.isFocused,e.focusedTime)):e.focusedTime&&!isNaN(e.focusedTime)?(await(0,i.dY)(),await _(e.focusedTime)):(e.channel.scrolledToBottom=!0,d.value=Math.max(0,g.value.length-Oo),await(0,i.dY)(),v()),await(0,i.dY)(),window.IntersectionObserver&&a.value&&(s.value=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&L()})},{root:t.value}),s.value.observe(a.value))}),(0,i.wB)(()=>e.channel.id,async()=>{e.channel.scrolledToBottom=!0,l.value=null,c.value=null,d.value=Math.max(0,g.value.length-Oo),await(0,i.dY)(),v(),s.value&&a.value&&(s.value.unobserve(a.value),s.value.observe(a.value))});const S=(0,i.EW)(()=>{const n=e.channel.messages;return n.length>0?n[0].id:null});return(0,i.wB)(S,async(e,n)=>{if(null===n||null===e)return;if(e===n)return;const a=t.value;if(!a)return;p.value=!0;const s=a.scrollTop,o=a.scrollHeight,l=g.value.length,r=Math.max(0,l-Oo);0===d.value||(d.value=Math.min(r,d.value)),await(0,i.dY)();const c=a.scrollHeight-o;u.value=!0,a.scrollTop=s+c,setTimeout(()=>{u.value=!1,p.value=!1},50)}),(0,i.wB)(()=>e.channel.messages.length,async(n,t)=>{if(e.channel.scrolledToBottom){const e=g.value.length;d.value=Math.max(0,e-Oo),await(0,i.dY)(),v()}}),(0,i.wB)(()=>e.isFocused,async n=>{n&&!isNaN(n)&&(await(0,i.dY)(),await y(n,e.focusedTime))}),(0,i.wB)(()=>e.focusedTime,async n=>{e.isFocused&&!isNaN(e.isFocused)||n&&!isNaN(n)&&(await(0,i.dY)(),await _(n))}),(0,i.Ic)(()=>{h=!1}),(0,i.xo)(()=>{r.A.off("resize",E),t.value?.removeEventListener("scroll",C)}),(0,i.hi)(()=>{s.value?.disconnect()}),{chat:t,store:n,loadMoreButton:a,displayedMessages:m,showLoadMoreButton:b,getMessageKey:e=>"condensed"===e.type?`condensed-${e.messages[0]?.id}-${new Date(e.time).getTime()}`:`${e.id}-${new Date(e.time).getTime()}`,isMessageFocused:e=>{if(null!==l.value)return"condensed"===e.type?e.messages.some(e=>e.id===l.value):e.id===l.value;if(!c.value)return!1;const n=new Date(e.time).getTime();if(Math.abs(n-c.value)<1e3)return!0;if("condensed"===e.type)for(const n of e.messages){const e=new Date(n.time).getTime();if(Math.abs(e-c.value)<1e3)return!0}return!1},onShowMoreClick:L,onCopy:()=>{t.value&&Io(t.value)},shouldDisplayDateMarker:(e,n)=>{const t=m.value[n-1];if(!t)return!0;const a=new Date(t.time),s=new Date(e.time);return a.getDate()!==s.getDate()||a.getMonth()!==s.getMonth()||a.getFullYear()!==s.getFullYear()},shouldDisplayUnreadMarker:n=>!h&&n>e.channel.firstUnread&&(h=!0,!0),keepScrollPosition:M,isPreviousSource:(e,n)=>{const t=m.value[n-1];return t&&e.type===Ys.MESSAGE&&t.type===Ys.MESSAGE&&e.from&&t.from&&e.from.nick===t.from.nick},jumpToBottom:w,onLinkPreviewToggle:async(n,t)=>{await M(),re.A.emit("msg:preview:toggle",{target:e.channel.id,msgId:t.id,link:n.link,shown:n.shown})}}}}),Ko=(0,q.A)(qo,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("DateMarker"),c=(0,i.g2)("MessageCondensed"),u=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",So,[(0,i.bo)((0,i.Lk)("div",Ao,[(0,i.Lk)("button",{ref:"loadMoreButton",disabled:e.channel.historyLoading||!e.store.state.isConnected,class:"btn",onClick:n[0]||(n[0]=(...n)=>e.onShowMoreClick&&e.onShowMoreClick(...n))},[e.channel.historyLoading?((0,i.uX)(),(0,i.CE)("span",Xo,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("span",jo,"Show older messages"))],8,To)],512),[[s.aG,e.showLoadMoreButton]]),(0,i.Lk)("div",{class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions",onCopy:n[1]||(n[1]=(...n)=>e.onCopy&&e.onCopy(...n))},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.displayedMessages,(t,a)=>((0,i.uX)(),(0,i.CE)(i.FK,{key:e.getMessageKey(t)},[e.shouldDisplayDateMarker(t,a)?((0,i.uX)(),(0,i.Wv)(r,{key:0,message:t,"is-focused":e.isMessageFocused(t)},null,8,["message","is-focused"])):(0,i.Q3)("",!0),e.shouldDisplayUnreadMarker(Number(t.id))?((0,i.uX)(),(0,i.CE)("div",Wo,[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"unread-marker-text"},null,-1)])])):(0,i.Q3)("",!0),"condensed"===t.type?((0,i.uX)(),(0,i.Wv)(c,{key:2,network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:t.messages,"is-focused":e.isMessageFocused(t)},null,8,["network","keep-scroll-position","messages","is-focused"])):((0,i.uX)(),(0,i.Wv)(u,{key:3,channel:e.channel,network:e.network,message:t,"keep-scroll-position":e.keepScrollPosition,"is-previous-source":e.isPreviousSource(t,a),"is-focused":e.isMessageFocused(t),onToggleLinkPreview:e.onLinkPreviewToggle},null,8,["channel","network","message","keep-scroll-position","is-previous-source","is-focused","onToggleLinkPreview"]))],64))),128))],32)],512)}]]),Do={ref:"chat",class:"chat",tabindex:"-1"},Bo={class:"show-more"},$o=["disabled"],Ho={key:0},Qo={key:1},zo=(0,i.pM)({name:"MessageListBasic",components:{Message:no,MessageCondensed:Fo,DateMarker:po},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},focused:Number},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(null),a=(0,x.KR)(null),s=(0,x.KR)(null),l=(0,x.KR)(!1),c=(0,x.KR)(!1);let u=!1;const d=()=>{l.value=!0,e.channel.scrolledToBottom=!0;const n=t.value;n&&(n.scrollTop=n.scrollHeight)},p=()=>{if(!n.state.isConnected)return;let t=-1;for(const n of e.channel.messages)if(!n.showInActive){t=n.id;break}e.channel.historyLoading=!0,re.A.emit("more",{target:e.channel.id,lastId:t,condensed:"shown"!==n.state.settings.statusMessages})},h=e=>{e.forEach(e=>{e.isIntersecting&&p()})};(0,i.dY)(()=>{t.value&&(window.IntersectionObserver&&(s.value=new window.IntersectionObserver(h,{root:t.value})),d())}).catch(e=>{console.error("Error in new IntersectionObserver",e)});const g=(0,i.EW)(()=>{if(e.channel.type!==Zs.rR.CHANNEL&&e.channel.type!==Zs.rR.QUERY)return e.channel.messages;if("hidden"===n.state.settings.statusMessages)return e.channel.messages.filter(e=>!Ro.has(e.type||""));if("condensed"!==n.state.settings.statusMessages)return e.channel.messages;let t=null;const a=[];for(const n of e.channel.messages)n.self||n.highlight||!Ro.has(n.type||"")?(t=null,a.push(n)):(t||(t={time:n.time,type:"condensed",messages:[]},a.push(t)),t.messages.push(n),t.id=n.id,n.id===e.channel.firstUnread&&(t=null));return a.map(e=>"condensed"===e.type&&1===e.messages.length?e.messages[0]:e)}),m=async()=>{if(c.value)return;const n=t.value;if(n)if(e.channel.scrolledToBottom)c.value=!0,await(0,i.dY)(),c.value=!1,d();else if(e.channel.historyLoading){const e=n.scrollHeight-n.scrollTop;c.value=!0,await(0,i.dY)(),c.value=!1,l.value=!0,n.scrollTop=n.scrollHeight-e}},k=()=>{if(l.value)return void(l.value=!1);const n=t.value;n&&(e.channel.scrolledToBottom=n.scrollHeight-n.scrollTop-n.offsetHeight<=30)},f=()=>{e.channel.scrolledToBottom&&d()};return(0,i.sV)(()=>{t.value?.addEventListener("scroll",k,{passive:!0}),r.A.on("resize",f),(0,i.dY)(()=>{s.value&&a.value&&s.value.observe(a.value)})}),(0,i.wB)(()=>e.channel.id,()=>{e.channel.scrolledToBottom=!0,s.value&&a.value&&(s.value.unobserve(a.value),s.value.observe(a.value))}),(0,i.wB)(()=>e.channel.messages,async()=>{await m()},{deep:!0}),(0,i.wB)(()=>e.channel.pendingMessage,async()=>{await m()}),(0,i.Ic)(()=>{u=!1}),(0,i.xo)(()=>{r.A.off("resize",f),t.value?.removeEventListener("scroll",k)}),(0,i.hi)(()=>{s.value&&s.value.disconnect()}),{chat:t,store:n,onShowMoreClick:p,loadMoreButton:a,onCopy:()=>{t.value&&Io(t.value)},condensedMessages:g,shouldDisplayDateMarker:(e,n)=>{const t=g.value[n-1];if(!t)return!0;const a=new Date(t.time),s=new Date(e.time);return a.getDate()!==s.getDate()||a.getMonth()!==s.getMonth()||a.getFullYear()!==s.getFullYear()},shouldDisplayUnreadMarker:n=>!u&&n>e.channel.firstUnread&&(u=!0,!0),keepScrollPosition:m,isPreviousSource:(e,n)=>{const t=g.value[n-1];return t&&e.type===Ys.MESSAGE&&t.type===Ys.MESSAGE&&e.from&&t.from&&e.from.nick===t.from.nick},jumpToBottom:d,onLinkPreviewToggle:async(n,t)=>{await m(),re.A.emit("msg:preview:toggle",{target:e.channel.id,msgId:t.id,link:n.link,shown:n.shown})}}}}),Vo=(0,q.A)(zo,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("DateMarker"),c=(0,i.g2)("MessageCondensed"),u=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",Do,[(0,i.bo)((0,i.Lk)("div",Bo,[(0,i.Lk)("button",{ref:"loadMoreButton",disabled:e.channel.historyLoading||!e.store.state.isConnected,class:"btn",onClick:n[0]||(n[0]=(...n)=>e.onShowMoreClick&&e.onShowMoreClick(...n))},[e.channel.historyLoading?((0,i.uX)(),(0,i.CE)("span",Ho,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("span",Qo,"Show older messages"))],8,$o)],512),[[s.aG,e.channel.moreHistoryAvailable]]),(0,i.Lk)("div",{class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions",onCopy:n[1]||(n[1]=(...n)=>e.onCopy&&e.onCopy(...n))},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.condensedMessages,(t,a)=>((0,i.uX)(),(0,i.CE)(i.FK,null,[e.shouldDisplayDateMarker(t,a)?((0,i.uX)(),(0,i.Wv)(r,{key:t.id+"-date",message:t,focused:t.id===e.focused},null,8,["message","focused"])):(0,i.Q3)("",!0),e.shouldDisplayUnreadMarker(Number(t.id))?((0,i.uX)(),(0,i.CE)("div",{key:t.id+"-unread",class:"unread-marker"},[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"unread-marker-text"},null,-1)])])):(0,i.Q3)("",!0),"condensed"===t.type?((0,i.uX)(),(0,i.Wv)(c,{key:t.messages[0].id,network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:t.messages,focused:t.id===e.focused},null,8,["network","keep-scroll-position","messages","focused"])):((0,i.uX)(),(0,i.Wv)(u,{key:t.id,channel:e.channel,network:e.network,message:t,"keep-scroll-position":e.keepScrollPosition,"is-previous-source":e.isPreviousSource(t,a),focused:t.id===e.focused,onToggleLinkPreview:e.onLinkPreviewToggle},null,8,["channel","network","message","keep-scroll-position","is-previous-source","focused","onToggleLinkPreview"]))],64))),256))],32)],512)}]]),Yo={key:0,id:"nick"},Jo=["value","placeholder","aria-label"],Go=["disabled"],Zo={id:"submit-tooltip",class:"tooltipped tooltipped-w tooltipped-no-touch","aria-label":"Send message"},ei=["disabled"];var ni=t(2531),ti=t(6e3),ai=t(9787);const si=JSON.parse('{"100":"๐ฏ","1234":"๐ข","grinning":"๐","smiley":"๐","smile":"๐","grin":"๐","laughing":"๐","satisfied":"๐","sweat_smile":"๐
","rofl":"๐คฃ","joy":"๐","slightly_smiling_face":"๐","upside_down_face":"๐","melting_face":"๐ซ ","wink":"๐","blush":"๐","innocent":"๐","smiling_face_with_three_hearts":"๐ฅฐ","heart_eyes":"๐","star_struck":"๐คฉ","kissing_heart":"๐","kissing":"๐","relaxed":"โบ๏ธ","kissing_closed_eyes":"๐","kissing_smiling_eyes":"๐","smiling_face_with_tear":"๐ฅฒ","yum":"๐","stuck_out_tongue":"๐","stuck_out_tongue_winking_eye":"๐","zany_face":"๐คช","stuck_out_tongue_closed_eyes":"๐","money_mouth_face":"๐ค","hugs":"๐ค","hand_over_mouth":"๐คญ","face_with_open_eyes_and_hand_over_mouth":"๐ซข","face_with_peeking_eye":"๐ซฃ","shushing_face":"๐คซ","thinking":"๐ค","saluting_face":"๐ซก","zipper_mouth_face":"๐ค","raised_eyebrow":"๐คจ","neutral_face":"๐","expressionless":"๐","no_mouth":"๐ถ","dotted_line_face":"๐ซฅ","face_in_clouds":"๐ถโ๐ซ๏ธ","smirk":"๐","unamused":"๐","roll_eyes":"๐","grimacing":"๐ฌ","face_exhaling":"๐ฎโ๐จ","lying_face":"๐คฅ","shaking_face":"๐ซจ","relieved":"๐","pensive":"๐","sleepy":"๐ช","drooling_face":"๐คค","sleeping":"๐ด","mask":"๐ท","face_with_thermometer":"๐ค","face_with_head_bandage":"๐ค","nauseated_face":"๐คข","vomiting_face":"๐คฎ","sneezing_face":"๐คง","hot_face":"๐ฅต","cold_face":"๐ฅถ","woozy_face":"๐ฅด","dizzy_face":"๐ต","face_with_spiral_eyes":"๐ตโ๐ซ","exploding_head":"๐คฏ","cowboy_hat_face":"๐ค ","partying_face":"๐ฅณ","disguised_face":"๐ฅธ","sunglasses":"๐","nerd_face":"๐ค","monocle_face":"๐ง","confused":"๐","face_with_diagonal_mouth":"๐ซค","worried":"๐","slightly_frowning_face":"๐","frowning_face":"โน๏ธ","open_mouth":"๐ฎ","hushed":"๐ฏ","astonished":"๐ฒ","flushed":"๐ณ","pleading_face":"๐ฅบ","face_holding_back_tears":"๐ฅน","frowning":"๐ฆ","anguished":"๐ง","fearful":"๐จ","cold_sweat":"๐ฐ","disappointed_relieved":"๐ฅ","cry":"๐ข","sob":"๐ญ","scream":"๐ฑ","confounded":"๐","persevere":"๐ฃ","disappointed":"๐","sweat":"๐","weary":"๐ฉ","tired_face":"๐ซ","yawning_face":"๐ฅฑ","triumph":"๐ค","rage":"๐ก","pout":"๐ก","angry":"๐ ","cursing_face":"๐คฌ","smiling_imp":"๐","imp":"๐ฟ","skull":"๐","skull_and_crossbones":"โ ๏ธ","hankey":"๐ฉ","poop":"๐ฉ","shit":"๐ฉ","clown_face":"๐คก","japanese_ogre":"๐น","japanese_goblin":"๐บ","ghost":"๐ป","alien":"๐ฝ","space_invader":"๐พ","robot":"๐ค","smiley_cat":"๐บ","smile_cat":"๐ธ","joy_cat":"๐น","heart_eyes_cat":"๐ป","smirk_cat":"๐ผ","kissing_cat":"๐ฝ","scream_cat":"๐","crying_cat_face":"๐ฟ","pouting_cat":"๐พ","see_no_evil":"๐","hear_no_evil":"๐","speak_no_evil":"๐","love_letter":"๐","cupid":"๐","gift_heart":"๐","sparkling_heart":"๐","heartpulse":"๐","heartbeat":"๐","revolving_hearts":"๐","two_hearts":"๐","heart_decoration":"๐","heavy_heart_exclamation":"โฃ๏ธ","broken_heart":"๐","heart_on_fire":"โค๏ธโ๐ฅ","mending_heart":"โค๏ธโ๐ฉน","heart":"โค๏ธ","pink_heart":"๐ฉท","orange_heart":"๐งก","yellow_heart":"๐","green_heart":"๐","blue_heart":"๐","light_blue_heart":"๐ฉต","purple_heart":"๐","brown_heart":"๐ค","black_heart":"๐ค","grey_heart":"๐ฉถ","white_heart":"๐ค","kiss":"๐","anger":"๐ข","boom":"๐ฅ","collision":"๐ฅ","dizzy":"๐ซ","sweat_drops":"๐ฆ","dash":"๐จ","hole":"๐ณ๏ธ","speech_balloon":"๐ฌ","eye_speech_bubble":"๐๏ธโ๐จ๏ธ","left_speech_bubble":"๐จ๏ธ","right_anger_bubble":"๐ฏ๏ธ","thought_balloon":"๐ญ","zzz":"๐ค","wave":"๐","raised_back_of_hand":"๐ค","raised_hand_with_fingers_splayed":"๐๏ธ","hand":"โ","raised_hand":"โ","vulcan_salute":"๐","rightwards_hand":"๐ซฑ","leftwards_hand":"๐ซฒ","palm_down_hand":"๐ซณ","palm_up_hand":"๐ซด","leftwards_pushing_hand":"๐ซท","rightwards_pushing_hand":"๐ซธ","ok_hand":"๐","pinched_fingers":"๐ค","pinching_hand":"๐ค","v":"โ๏ธ","crossed_fingers":"๐ค","hand_with_index_finger_and_thumb_crossed":"๐ซฐ","love_you_gesture":"๐ค","metal":"๐ค","call_me_hand":"๐ค","point_left":"๐","point_right":"๐","point_up_2":"๐","middle_finger":"๐","fu":"๐","point_down":"๐","point_up":"โ๏ธ","index_pointing_at_the_viewer":"๐ซต","+1":"๐","thumbsup":"๐","-1":"๐","thumbsdown":"๐","fist_raised":"โ","fist":"โ","fist_oncoming":"๐","facepunch":"๐","punch":"๐","fist_left":"๐ค","fist_right":"๐ค","clap":"๐","raised_hands":"๐","heart_hands":"๐ซถ","open_hands":"๐","palms_up_together":"๐คฒ","handshake":"๐ค","pray":"๐","writing_hand":"โ๏ธ","nail_care":"๐
","selfie":"๐คณ","muscle":"๐ช","mechanical_arm":"๐ฆพ","mechanical_leg":"๐ฆฟ","leg":"๐ฆต","foot":"๐ฆถ","ear":"๐","ear_with_hearing_aid":"๐ฆป","nose":"๐","brain":"๐ง ","anatomical_heart":"๐ซ","lungs":"๐ซ","tooth":"๐ฆท","bone":"๐ฆด","eyes":"๐","eye":"๐๏ธ","tongue":"๐
","lips":"๐","biting_lip":"๐ซฆ","baby":"๐ถ","child":"๐ง","boy":"๐ฆ","girl":"๐ง","adult":"๐ง","blond_haired_person":"๐ฑ","man":"๐จ","bearded_person":"๐ง","man_beard":"๐งโโ๏ธ","woman_beard":"๐งโโ๏ธ","red_haired_man":"๐จโ๐ฆฐ","curly_haired_man":"๐จโ๐ฆฑ","white_haired_man":"๐จโ๐ฆณ","bald_man":"๐จโ๐ฆฒ","woman":"๐ฉ","red_haired_woman":"๐ฉโ๐ฆฐ","person_red_hair":"๐งโ๐ฆฐ","curly_haired_woman":"๐ฉโ๐ฆฑ","person_curly_hair":"๐งโ๐ฆฑ","white_haired_woman":"๐ฉโ๐ฆณ","person_white_hair":"๐งโ๐ฆณ","bald_woman":"๐ฉโ๐ฆฒ","person_bald":"๐งโ๐ฆฒ","blond_haired_woman":"๐ฑโโ๏ธ","blonde_woman":"๐ฑโโ๏ธ","blond_haired_man":"๐ฑโโ๏ธ","older_adult":"๐ง","older_man":"๐ด","older_woman":"๐ต","frowning_person":"๐","frowning_man":"๐โโ๏ธ","frowning_woman":"๐โโ๏ธ","pouting_face":"๐","pouting_man":"๐โโ๏ธ","pouting_woman":"๐โโ๏ธ","no_good":"๐
","no_good_man":"๐
โโ๏ธ","ng_man":"๐
โโ๏ธ","no_good_woman":"๐
โโ๏ธ","ng_woman":"๐
โโ๏ธ","ok_person":"๐","ok_man":"๐โโ๏ธ","ok_woman":"๐โโ๏ธ","tipping_hand_person":"๐","information_desk_person":"๐","tipping_hand_man":"๐โโ๏ธ","sassy_man":"๐โโ๏ธ","tipping_hand_woman":"๐โโ๏ธ","sassy_woman":"๐โโ๏ธ","raising_hand":"๐","raising_hand_man":"๐โโ๏ธ","raising_hand_woman":"๐โโ๏ธ","deaf_person":"๐ง","deaf_man":"๐งโโ๏ธ","deaf_woman":"๐งโโ๏ธ","bow":"๐","bowing_man":"๐โโ๏ธ","bowing_woman":"๐โโ๏ธ","facepalm":"๐คฆ","man_facepalming":"๐คฆโโ๏ธ","woman_facepalming":"๐คฆโโ๏ธ","shrug":"๐คท","man_shrugging":"๐คทโโ๏ธ","woman_shrugging":"๐คทโโ๏ธ","health_worker":"๐งโโ๏ธ","man_health_worker":"๐จโโ๏ธ","woman_health_worker":"๐ฉโโ๏ธ","student":"๐งโ๐","man_student":"๐จโ๐","woman_student":"๐ฉโ๐","teacher":"๐งโ๐ซ","man_teacher":"๐จโ๐ซ","woman_teacher":"๐ฉโ๐ซ","judge":"๐งโโ๏ธ","man_judge":"๐จโโ๏ธ","woman_judge":"๐ฉโโ๏ธ","farmer":"๐งโ๐พ","man_farmer":"๐จโ๐พ","woman_farmer":"๐ฉโ๐พ","cook":"๐งโ๐ณ","man_cook":"๐จโ๐ณ","woman_cook":"๐ฉโ๐ณ","mechanic":"๐งโ๐ง","man_mechanic":"๐จโ๐ง","woman_mechanic":"๐ฉโ๐ง","factory_worker":"๐งโ๐ญ","man_factory_worker":"๐จโ๐ญ","woman_factory_worker":"๐ฉโ๐ญ","office_worker":"๐งโ๐ผ","man_office_worker":"๐จโ๐ผ","woman_office_worker":"๐ฉโ๐ผ","scientist":"๐งโ๐ฌ","man_scientist":"๐จโ๐ฌ","woman_scientist":"๐ฉโ๐ฌ","technologist":"๐งโ๐ป","man_technologist":"๐จโ๐ป","woman_technologist":"๐ฉโ๐ป","singer":"๐งโ๐ค","man_singer":"๐จโ๐ค","woman_singer":"๐ฉโ๐ค","artist":"๐งโ๐จ","man_artist":"๐จโ๐จ","woman_artist":"๐ฉโ๐จ","pilot":"๐งโโ๏ธ","man_pilot":"๐จโโ๏ธ","woman_pilot":"๐ฉโโ๏ธ","astronaut":"๐งโ๐","man_astronaut":"๐จโ๐","woman_astronaut":"๐ฉโ๐","firefighter":"๐งโ๐","man_firefighter":"๐จโ๐","woman_firefighter":"๐ฉโ๐","police_officer":"๐ฎ","cop":"๐ฎ","policeman":"๐ฎโโ๏ธ","policewoman":"๐ฎโโ๏ธ","detective":"๐ต๏ธ","male_detective":"๐ต๏ธโโ๏ธ","female_detective":"๐ต๏ธโโ๏ธ","guard":"๐","guardsman":"๐โโ๏ธ","guardswoman":"๐โโ๏ธ","ninja":"๐ฅท","construction_worker":"๐ท","construction_worker_man":"๐ทโโ๏ธ","construction_worker_woman":"๐ทโโ๏ธ","person_with_crown":"๐ซ
","prince":"๐คด","princess":"๐ธ","person_with_turban":"๐ณ","man_with_turban":"๐ณโโ๏ธ","woman_with_turban":"๐ณโโ๏ธ","man_with_gua_pi_mao":"๐ฒ","woman_with_headscarf":"๐ง","person_in_tuxedo":"๐คต","man_in_tuxedo":"๐คตโโ๏ธ","woman_in_tuxedo":"๐คตโโ๏ธ","person_with_veil":"๐ฐ","man_with_veil":"๐ฐโโ๏ธ","woman_with_veil":"๐ฐโโ๏ธ","bride_with_veil":"๐ฐโโ๏ธ","pregnant_woman":"๐คฐ","pregnant_man":"๐ซ","pregnant_person":"๐ซ","breast_feeding":"๐คฑ","woman_feeding_baby":"๐ฉโ๐ผ","man_feeding_baby":"๐จโ๐ผ","person_feeding_baby":"๐งโ๐ผ","angel":"๐ผ","santa":"๐
","mrs_claus":"๐คถ","mx_claus":"๐งโ๐","superhero":"๐ฆธ","superhero_man":"๐ฆธโโ๏ธ","superhero_woman":"๐ฆธโโ๏ธ","supervillain":"๐ฆน","supervillain_man":"๐ฆนโโ๏ธ","supervillain_woman":"๐ฆนโโ๏ธ","mage":"๐ง","mage_man":"๐งโโ๏ธ","mage_woman":"๐งโโ๏ธ","fairy":"๐ง","fairy_man":"๐งโโ๏ธ","fairy_woman":"๐งโโ๏ธ","vampire":"๐ง","vampire_man":"๐งโโ๏ธ","vampire_woman":"๐งโโ๏ธ","merperson":"๐ง","merman":"๐งโโ๏ธ","mermaid":"๐งโโ๏ธ","elf":"๐ง","elf_man":"๐งโโ๏ธ","elf_woman":"๐งโโ๏ธ","genie":"๐ง","genie_man":"๐งโโ๏ธ","genie_woman":"๐งโโ๏ธ","zombie":"๐ง","zombie_man":"๐งโโ๏ธ","zombie_woman":"๐งโโ๏ธ","troll":"๐ง","massage":"๐","massage_man":"๐โโ๏ธ","massage_woman":"๐โโ๏ธ","haircut":"๐","haircut_man":"๐โโ๏ธ","haircut_woman":"๐โโ๏ธ","walking":"๐ถ","walking_man":"๐ถโโ๏ธ","walking_woman":"๐ถโโ๏ธ","standing_person":"๐ง","standing_man":"๐งโโ๏ธ","standing_woman":"๐งโโ๏ธ","kneeling_person":"๐ง","kneeling_man":"๐งโโ๏ธ","kneeling_woman":"๐งโโ๏ธ","person_with_probing_cane":"๐งโ๐ฆฏ","man_with_probing_cane":"๐จโ๐ฆฏ","woman_with_probing_cane":"๐ฉโ๐ฆฏ","person_in_motorized_wheelchair":"๐งโ๐ฆผ","man_in_motorized_wheelchair":"๐จโ๐ฆผ","woman_in_motorized_wheelchair":"๐ฉโ๐ฆผ","person_in_manual_wheelchair":"๐งโ๐ฆฝ","man_in_manual_wheelchair":"๐จโ๐ฆฝ","woman_in_manual_wheelchair":"๐ฉโ๐ฆฝ","runner":"๐","running":"๐","running_man":"๐โโ๏ธ","running_woman":"๐โโ๏ธ","woman_dancing":"๐","dancer":"๐","man_dancing":"๐บ","business_suit_levitating":"๐ด๏ธ","dancers":"๐ฏ","dancing_men":"๐ฏโโ๏ธ","dancing_women":"๐ฏโโ๏ธ","sauna_person":"๐ง","sauna_man":"๐งโโ๏ธ","sauna_woman":"๐งโโ๏ธ","climbing":"๐ง","climbing_man":"๐งโโ๏ธ","climbing_woman":"๐งโโ๏ธ","person_fencing":"๐คบ","horse_racing":"๐","skier":"โท๏ธ","snowboarder":"๐","golfing":"๐๏ธ","golfing_man":"๐๏ธโโ๏ธ","golfing_woman":"๐๏ธโโ๏ธ","surfer":"๐","surfing_man":"๐โโ๏ธ","surfing_woman":"๐โโ๏ธ","rowboat":"๐ฃ","rowing_man":"๐ฃโโ๏ธ","rowing_woman":"๐ฃโโ๏ธ","swimmer":"๐","swimming_man":"๐โโ๏ธ","swimming_woman":"๐โโ๏ธ","bouncing_ball_person":"โน๏ธ","bouncing_ball_man":"โน๏ธโโ๏ธ","basketball_man":"โน๏ธโโ๏ธ","bouncing_ball_woman":"โน๏ธโโ๏ธ","basketball_woman":"โน๏ธโโ๏ธ","weight_lifting":"๐๏ธ","weight_lifting_man":"๐๏ธโโ๏ธ","weight_lifting_woman":"๐๏ธโโ๏ธ","bicyclist":"๐ด","biking_man":"๐ดโโ๏ธ","biking_woman":"๐ดโโ๏ธ","mountain_bicyclist":"๐ต","mountain_biking_man":"๐ตโโ๏ธ","mountain_biking_woman":"๐ตโโ๏ธ","cartwheeling":"๐คธ","man_cartwheeling":"๐คธโโ๏ธ","woman_cartwheeling":"๐คธโโ๏ธ","wrestling":"๐คผ","men_wrestling":"๐คผโโ๏ธ","women_wrestling":"๐คผโโ๏ธ","water_polo":"๐คฝ","man_playing_water_polo":"๐คฝโโ๏ธ","woman_playing_water_polo":"๐คฝโโ๏ธ","handball_person":"๐คพ","man_playing_handball":"๐คพโโ๏ธ","woman_playing_handball":"๐คพโโ๏ธ","juggling_person":"๐คน","man_juggling":"๐คนโโ๏ธ","woman_juggling":"๐คนโโ๏ธ","lotus_position":"๐ง","lotus_position_man":"๐งโโ๏ธ","lotus_position_woman":"๐งโโ๏ธ","bath":"๐","sleeping_bed":"๐","people_holding_hands":"๐งโ๐คโ๐ง","two_women_holding_hands":"๐ญ","couple":"๐ซ","two_men_holding_hands":"๐ฌ","couplekiss":"๐","couplekiss_man_woman":"๐ฉโโค๏ธโ๐โ๐จ","couplekiss_man_man":"๐จโโค๏ธโ๐โ๐จ","couplekiss_woman_woman":"๐ฉโโค๏ธโ๐โ๐ฉ","couple_with_heart":"๐","couple_with_heart_woman_man":"๐ฉโโค๏ธโ๐จ","couple_with_heart_man_man":"๐จโโค๏ธโ๐จ","couple_with_heart_woman_woman":"๐ฉโโค๏ธโ๐ฉ","family":"๐ช","family_man_woman_boy":"๐จโ๐ฉโ๐ฆ","family_man_woman_girl":"๐จโ๐ฉโ๐ง","family_man_woman_girl_boy":"๐จโ๐ฉโ๐งโ๐ฆ","family_man_woman_boy_boy":"๐จโ๐ฉโ๐ฆโ๐ฆ","family_man_woman_girl_girl":"๐จโ๐ฉโ๐งโ๐ง","family_man_man_boy":"๐จโ๐จโ๐ฆ","family_man_man_girl":"๐จโ๐จโ๐ง","family_man_man_girl_boy":"๐จโ๐จโ๐งโ๐ฆ","family_man_man_boy_boy":"๐จโ๐จโ๐ฆโ๐ฆ","family_man_man_girl_girl":"๐จโ๐จโ๐งโ๐ง","family_woman_woman_boy":"๐ฉโ๐ฉโ๐ฆ","family_woman_woman_girl":"๐ฉโ๐ฉโ๐ง","family_woman_woman_girl_boy":"๐ฉโ๐ฉโ๐งโ๐ฆ","family_woman_woman_boy_boy":"๐ฉโ๐ฉโ๐ฆโ๐ฆ","family_woman_woman_girl_girl":"๐ฉโ๐ฉโ๐งโ๐ง","family_man_boy":"๐จโ๐ฆ","family_man_boy_boy":"๐จโ๐ฆโ๐ฆ","family_man_girl":"๐จโ๐ง","family_man_girl_boy":"๐จโ๐งโ๐ฆ","family_man_girl_girl":"๐จโ๐งโ๐ง","family_woman_boy":"๐ฉโ๐ฆ","family_woman_boy_boy":"๐ฉโ๐ฆโ๐ฆ","family_woman_girl":"๐ฉโ๐ง","family_woman_girl_boy":"๐ฉโ๐งโ๐ฆ","family_woman_girl_girl":"๐ฉโ๐งโ๐ง","speaking_head":"๐ฃ๏ธ","bust_in_silhouette":"๐ค","busts_in_silhouette":"๐ฅ","people_hugging":"๐ซ","footprints":"๐ฃ","monkey_face":"๐ต","monkey":"๐","gorilla":"๐ฆ","orangutan":"๐ฆง","dog":"๐ถ","dog2":"๐","guide_dog":"๐ฆฎ","service_dog":"๐โ๐ฆบ","poodle":"๐ฉ","wolf":"๐บ","fox_face":"๐ฆ","raccoon":"๐ฆ","cat":"๐ฑ","cat2":"๐","black_cat":"๐โโฌ","lion":"๐ฆ","tiger":"๐ฏ","tiger2":"๐
","leopard":"๐","horse":"๐ด","moose":"๐ซ","donkey":"๐ซ","racehorse":"๐","unicorn":"๐ฆ","zebra":"๐ฆ","deer":"๐ฆ","bison":"๐ฆฌ","cow":"๐ฎ","ox":"๐","water_buffalo":"๐","cow2":"๐","pig":"๐ท","pig2":"๐","boar":"๐","pig_nose":"๐ฝ","ram":"๐","sheep":"๐","goat":"๐","dromedary_camel":"๐ช","camel":"๐ซ","llama":"๐ฆ","giraffe":"๐ฆ","elephant":"๐","mammoth":"๐ฆฃ","rhinoceros":"๐ฆ","hippopotamus":"๐ฆ","mouse":"๐ญ","mouse2":"๐","rat":"๐","hamster":"๐น","rabbit":"๐ฐ","rabbit2":"๐","chipmunk":"๐ฟ๏ธ","beaver":"๐ฆซ","hedgehog":"๐ฆ","bat":"๐ฆ","bear":"๐ป","polar_bear":"๐ปโโ๏ธ","koala":"๐จ","panda_face":"๐ผ","sloth":"๐ฆฅ","otter":"๐ฆฆ","skunk":"๐ฆจ","kangaroo":"๐ฆ","badger":"๐ฆก","feet":"๐พ","paw_prints":"๐พ","turkey":"๐ฆ","chicken":"๐","rooster":"๐","hatching_chick":"๐ฃ","baby_chick":"๐ค","hatched_chick":"๐ฅ","bird":"๐ฆ","penguin":"๐ง","dove":"๐๏ธ","eagle":"๐ฆ
","duck":"๐ฆ","swan":"๐ฆข","owl":"๐ฆ","dodo":"๐ฆค","feather":"๐ชถ","flamingo":"๐ฆฉ","peacock":"๐ฆ","parrot":"๐ฆ","wing":"๐ชฝ","black_bird":"๐ฆโโฌ","goose":"๐ชฟ","frog":"๐ธ","crocodile":"๐","turtle":"๐ข","lizard":"๐ฆ","snake":"๐","dragon_face":"๐ฒ","dragon":"๐","sauropod":"๐ฆ","t_rex":"๐ฆ","whale":"๐ณ","whale2":"๐","dolphin":"๐ฌ","flipper":"๐ฌ","seal":"๐ฆญ","fish":"๐","tropical_fish":"๐ ","blowfish":"๐ก","shark":"๐ฆ","octopus":"๐","shell":"๐","coral":"๐ชธ","jellyfish":"๐ชผ","snail":"๐","butterfly":"๐ฆ","bug":"๐","ant":"๐","bee":"๐","honeybee":"๐","beetle":"๐ชฒ","lady_beetle":"๐","cricket":"๐ฆ","cockroach":"๐ชณ","spider":"๐ท๏ธ","spider_web":"๐ธ๏ธ","scorpion":"๐ฆ","mosquito":"๐ฆ","fly":"๐ชฐ","worm":"๐ชฑ","microbe":"๐ฆ ","bouquet":"๐","cherry_blossom":"๐ธ","white_flower":"๐ฎ","lotus":"๐ชท","rosette":"๐ต๏ธ","rose":"๐น","wilted_flower":"๐ฅ","hibiscus":"๐บ","sunflower":"๐ป","blossom":"๐ผ","tulip":"๐ท","hyacinth":"๐ชป","seedling":"๐ฑ","potted_plant":"๐ชด","evergreen_tree":"๐ฒ","deciduous_tree":"๐ณ","palm_tree":"๐ด","cactus":"๐ต","ear_of_rice":"๐พ","herb":"๐ฟ","shamrock":"โ๏ธ","four_leaf_clover":"๐","maple_leaf":"๐","fallen_leaf":"๐","leaves":"๐","empty_nest":"๐ชน","nest_with_eggs":"๐ชบ","mushroom":"๐","grapes":"๐","melon":"๐","watermelon":"๐","tangerine":"๐","orange":"๐","mandarin":"๐","lemon":"๐","banana":"๐","pineapple":"๐","mango":"๐ฅญ","apple":"๐","green_apple":"๐","pear":"๐","peach":"๐","cherries":"๐","strawberry":"๐","blueberries":"๐ซ","kiwi_fruit":"๐ฅ","tomato":"๐
","olive":"๐ซ","coconut":"๐ฅฅ","avocado":"๐ฅ","eggplant":"๐","potato":"๐ฅ","carrot":"๐ฅ","corn":"๐ฝ","hot_pepper":"๐ถ๏ธ","bell_pepper":"๐ซ","cucumber":"๐ฅ","leafy_green":"๐ฅฌ","broccoli":"๐ฅฆ","garlic":"๐ง","onion":"๐ง
","peanuts":"๐ฅ","beans":"๐ซ","chestnut":"๐ฐ","ginger_root":"๐ซ","pea_pod":"๐ซ","bread":"๐","croissant":"๐ฅ","baguette_bread":"๐ฅ","flatbread":"๐ซ","pretzel":"๐ฅจ","bagel":"๐ฅฏ","pancakes":"๐ฅ","waffle":"๐ง","cheese":"๐ง","meat_on_bone":"๐","poultry_leg":"๐","cut_of_meat":"๐ฅฉ","bacon":"๐ฅ","hamburger":"๐","fries":"๐","pizza":"๐","hotdog":"๐ญ","sandwich":"๐ฅช","taco":"๐ฎ","burrito":"๐ฏ","tamale":"๐ซ","stuffed_flatbread":"๐ฅ","falafel":"๐ง","egg":"๐ฅ","fried_egg":"๐ณ","shallow_pan_of_food":"๐ฅ","stew":"๐ฒ","fondue":"๐ซ","bowl_with_spoon":"๐ฅฃ","green_salad":"๐ฅ","popcorn":"๐ฟ","butter":"๐ง","salt":"๐ง","canned_food":"๐ฅซ","bento":"๐ฑ","rice_cracker":"๐","rice_ball":"๐","rice":"๐","curry":"๐","ramen":"๐","spaghetti":"๐","sweet_potato":"๐ ","oden":"๐ข","sushi":"๐ฃ","fried_shrimp":"๐ค","fish_cake":"๐ฅ","moon_cake":"๐ฅฎ","dango":"๐ก","dumpling":"๐ฅ","fortune_cookie":"๐ฅ ","takeout_box":"๐ฅก","crab":"๐ฆ","lobster":"๐ฆ","shrimp":"๐ฆ","squid":"๐ฆ","oyster":"๐ฆช","icecream":"๐ฆ","shaved_ice":"๐ง","ice_cream":"๐จ","doughnut":"๐ฉ","cookie":"๐ช","birthday":"๐","cake":"๐ฐ","cupcake":"๐ง","pie":"๐ฅง","chocolate_bar":"๐ซ","candy":"๐ฌ","lollipop":"๐ญ","custard":"๐ฎ","honey_pot":"๐ฏ","baby_bottle":"๐ผ","milk_glass":"๐ฅ","coffee":"โ","teapot":"๐ซ","tea":"๐ต","sake":"๐ถ","champagne":"๐พ","wine_glass":"๐ท","cocktail":"๐ธ","tropical_drink":"๐น","beer":"๐บ","beers":"๐ป","clinking_glasses":"๐ฅ","tumbler_glass":"๐ฅ","pouring_liquid":"๐ซ","cup_with_straw":"๐ฅค","bubble_tea":"๐ง","beverage_box":"๐ง","mate":"๐ง","ice_cube":"๐ง","chopsticks":"๐ฅข","plate_with_cutlery":"๐ฝ๏ธ","fork_and_knife":"๐ด","spoon":"๐ฅ","hocho":"๐ช","knife":"๐ช","jar":"๐ซ","amphora":"๐บ","earth_africa":"๐","earth_americas":"๐","earth_asia":"๐","globe_with_meridians":"๐","world_map":"๐บ๏ธ","japan":"๐พ","compass":"๐งญ","mountain_snow":"๐๏ธ","mountain":"โฐ๏ธ","volcano":"๐","mount_fuji":"๐ป","camping":"๐๏ธ","beach_umbrella":"๐๏ธ","desert":"๐๏ธ","desert_island":"๐๏ธ","national_park":"๐๏ธ","stadium":"๐๏ธ","classical_building":"๐๏ธ","building_construction":"๐๏ธ","bricks":"๐งฑ","rock":"๐ชจ","wood":"๐ชต","hut":"๐","houses":"๐๏ธ","derelict_house":"๐๏ธ","house":"๐ ","house_with_garden":"๐ก","office":"๐ข","post_office":"๐ฃ","european_post_office":"๐ค","hospital":"๐ฅ","bank":"๐ฆ","hotel":"๐จ","love_hotel":"๐ฉ","convenience_store":"๐ช","school":"๐ซ","department_store":"๐ฌ","factory":"๐ญ","japanese_castle":"๐ฏ","european_castle":"๐ฐ","wedding":"๐","tokyo_tower":"๐ผ","statue_of_liberty":"๐ฝ","church":"โช","mosque":"๐","hindu_temple":"๐","synagogue":"๐","shinto_shrine":"โฉ๏ธ","kaaba":"๐","fountain":"โฒ","tent":"โบ","foggy":"๐","night_with_stars":"๐","cityscape":"๐๏ธ","sunrise_over_mountains":"๐","sunrise":"๐
","city_sunset":"๐","city_sunrise":"๐","bridge_at_night":"๐","hotsprings":"โจ๏ธ","carousel_horse":"๐ ","playground_slide":"๐","ferris_wheel":"๐ก","roller_coaster":"๐ข","barber":"๐","circus_tent":"๐ช","steam_locomotive":"๐","railway_car":"๐","bullettrain_side":"๐","bullettrain_front":"๐
","train2":"๐","metro":"๐","light_rail":"๐","station":"๐","tram":"๐","monorail":"๐","mountain_railway":"๐","train":"๐","bus":"๐","oncoming_bus":"๐","trolleybus":"๐","minibus":"๐","ambulance":"๐","fire_engine":"๐","police_car":"๐","oncoming_police_car":"๐","taxi":"๐","oncoming_taxi":"๐","car":"๐","red_car":"๐","oncoming_automobile":"๐","blue_car":"๐","pickup_truck":"๐ป","truck":"๐","articulated_lorry":"๐","tractor":"๐","racing_car":"๐๏ธ","motorcycle":"๐๏ธ","motor_scooter":"๐ต","manual_wheelchair":"๐ฆฝ","motorized_wheelchair":"๐ฆผ","auto_rickshaw":"๐บ","bike":"๐ฒ","kick_scooter":"๐ด","skateboard":"๐น","roller_skate":"๐ผ","busstop":"๐","motorway":"๐ฃ๏ธ","railway_track":"๐ค๏ธ","oil_drum":"๐ข๏ธ","fuelpump":"โฝ","wheel":"๐","rotating_light":"๐จ","traffic_light":"๐ฅ","vertical_traffic_light":"๐ฆ","stop_sign":"๐","construction":"๐ง","anchor":"โ","ring_buoy":"๐","boat":"โต","sailboat":"โต","canoe":"๐ถ","speedboat":"๐ค","passenger_ship":"๐ณ๏ธ","ferry":"โด๏ธ","motor_boat":"๐ฅ๏ธ","ship":"๐ข","airplane":"โ๏ธ","small_airplane":"๐ฉ๏ธ","flight_departure":"๐ซ","flight_arrival":"๐ฌ","parachute":"๐ช","seat":"๐บ","helicopter":"๐","suspension_railway":"๐","mountain_cableway":"๐ ","aerial_tramway":"๐ก","artificial_satellite":"๐ฐ๏ธ","rocket":"๐","flying_saucer":"๐ธ","bellhop_bell":"๐๏ธ","luggage":"๐งณ","hourglass":"โ","hourglass_flowing_sand":"โณ","watch":"โ","alarm_clock":"โฐ","stopwatch":"โฑ๏ธ","timer_clock":"โฒ๏ธ","mantelpiece_clock":"๐ฐ๏ธ","clock12":"๐","clock1230":"๐ง","clock1":"๐","clock130":"๐","clock2":"๐","clock230":"๐","clock3":"๐","clock330":"๐","clock4":"๐","clock430":"๐","clock5":"๐","clock530":"๐ ","clock6":"๐","clock630":"๐ก","clock7":"๐","clock730":"๐ข","clock8":"๐","clock830":"๐ฃ","clock9":"๐","clock930":"๐ค","clock10":"๐","clock1030":"๐ฅ","clock11":"๐","clock1130":"๐ฆ","new_moon":"๐","waxing_crescent_moon":"๐","first_quarter_moon":"๐","moon":"๐","waxing_gibbous_moon":"๐","full_moon":"๐","waning_gibbous_moon":"๐","last_quarter_moon":"๐","waning_crescent_moon":"๐","crescent_moon":"๐","new_moon_with_face":"๐","first_quarter_moon_with_face":"๐","last_quarter_moon_with_face":"๐","thermometer":"๐ก๏ธ","sunny":"โ๏ธ","full_moon_with_face":"๐","sun_with_face":"๐","ringed_planet":"๐ช","star":"โญ","star2":"๐","stars":"๐ ","milky_way":"๐","cloud":"โ๏ธ","partly_sunny":"โ
","cloud_with_lightning_and_rain":"โ๏ธ","sun_behind_small_cloud":"๐ค๏ธ","sun_behind_large_cloud":"๐ฅ๏ธ","sun_behind_rain_cloud":"๐ฆ๏ธ","cloud_with_rain":"๐ง๏ธ","cloud_with_snow":"๐จ๏ธ","cloud_with_lightning":"๐ฉ๏ธ","tornado":"๐ช๏ธ","fog":"๐ซ๏ธ","wind_face":"๐ฌ๏ธ","cyclone":"๐","rainbow":"๐","closed_umbrella":"๐","open_umbrella":"โ๏ธ","umbrella":"โ","parasol_on_ground":"โฑ๏ธ","zap":"โก","snowflake":"โ๏ธ","snowman_with_snow":"โ๏ธ","snowman":"โ","comet":"โ๏ธ","fire":"๐ฅ","droplet":"๐ง","ocean":"๐","jack_o_lantern":"๐","christmas_tree":"๐","fireworks":"๐","sparkler":"๐","firecracker":"๐งจ","sparkles":"โจ","balloon":"๐","tada":"๐","confetti_ball":"๐","tanabata_tree":"๐","bamboo":"๐","dolls":"๐","flags":"๐","wind_chime":"๐","rice_scene":"๐","red_envelope":"๐งง","ribbon":"๐","gift":"๐","reminder_ribbon":"๐๏ธ","tickets":"๐๏ธ","ticket":"๐ซ","medal_military":"๐๏ธ","trophy":"๐","medal_sports":"๐
","1st_place_medal":"๐ฅ","2nd_place_medal":"๐ฅ","3rd_place_medal":"๐ฅ","soccer":"โฝ","baseball":"โพ","softball":"๐ฅ","basketball":"๐","volleyball":"๐","football":"๐","rugby_football":"๐","tennis":"๐พ","flying_disc":"๐ฅ","bowling":"๐ณ","cricket_game":"๐","field_hockey":"๐","ice_hockey":"๐","lacrosse":"๐ฅ","ping_pong":"๐","badminton":"๐ธ","boxing_glove":"๐ฅ","martial_arts_uniform":"๐ฅ","goal_net":"๐ฅ
","golf":"โณ","ice_skate":"โธ๏ธ","fishing_pole_and_fish":"๐ฃ","diving_mask":"๐คฟ","running_shirt_with_sash":"๐ฝ","ski":"๐ฟ","sled":"๐ท","curling_stone":"๐ฅ","dart":"๐ฏ","yo_yo":"๐ช","kite":"๐ช","gun":"๐ซ","8ball":"๐ฑ","crystal_ball":"๐ฎ","magic_wand":"๐ช","video_game":"๐ฎ","joystick":"๐น๏ธ","slot_machine":"๐ฐ","game_die":"๐ฒ","jigsaw":"๐งฉ","teddy_bear":"๐งธ","pinata":"๐ช
","mirror_ball":"๐ชฉ","nesting_dolls":"๐ช","spades":"โ ๏ธ","hearts":"โฅ๏ธ","diamonds":"โฆ๏ธ","clubs":"โฃ๏ธ","chess_pawn":"โ๏ธ","black_joker":"๐","mahjong":"๐","flower_playing_cards":"๐ด","performing_arts":"๐ญ","framed_picture":"๐ผ๏ธ","art":"๐จ","thread":"๐งต","sewing_needle":"๐ชก","yarn":"๐งถ","knot":"๐ชข","eyeglasses":"๐","dark_sunglasses":"๐ถ๏ธ","goggles":"๐ฅฝ","lab_coat":"๐ฅผ","safety_vest":"๐ฆบ","necktie":"๐","shirt":"๐","tshirt":"๐","jeans":"๐","scarf":"๐งฃ","gloves":"๐งค","coat":"๐งฅ","socks":"๐งฆ","dress":"๐","kimono":"๐","sari":"๐ฅป","one_piece_swimsuit":"๐ฉฑ","swim_brief":"๐ฉฒ","shorts":"๐ฉณ","bikini":"๐","womans_clothes":"๐","folding_hand_fan":"๐ชญ","purse":"๐","handbag":"๐","pouch":"๐","shopping":"๐๏ธ","school_satchel":"๐","thong_sandal":"๐ฉด","mans_shoe":"๐","shoe":"๐","athletic_shoe":"๐","hiking_boot":"๐ฅพ","flat_shoe":"๐ฅฟ","high_heel":"๐ ","sandal":"๐ก","ballet_shoes":"๐ฉฐ","boot":"๐ข","hair_pick":"๐ชฎ","crown":"๐","womans_hat":"๐","tophat":"๐ฉ","mortar_board":"๐","billed_cap":"๐งข","military_helmet":"๐ช","rescue_worker_helmet":"โ๏ธ","prayer_beads":"๐ฟ","lipstick":"๐","ring":"๐","gem":"๐","mute":"๐","speaker":"๐","sound":"๐","loud_sound":"๐","loudspeaker":"๐ข","mega":"๐ฃ","postal_horn":"๐ฏ","bell":"๐","no_bell":"๐","musical_score":"๐ผ","musical_note":"๐ต","notes":"๐ถ","studio_microphone":"๐๏ธ","level_slider":"๐๏ธ","control_knobs":"๐๏ธ","microphone":"๐ค","headphones":"๐ง","radio":"๐ป","saxophone":"๐ท","accordion":"๐ช","guitar":"๐ธ","musical_keyboard":"๐น","trumpet":"๐บ","violin":"๐ป","banjo":"๐ช","drum":"๐ฅ","long_drum":"๐ช","maracas":"๐ช","flute":"๐ช","iphone":"๐ฑ","calling":"๐ฒ","phone":"โ๏ธ","telephone":"โ๏ธ","telephone_receiver":"๐","pager":"๐","fax":"๐ ","battery":"๐","low_battery":"๐ชซ","electric_plug":"๐","computer":"๐ป","desktop_computer":"๐ฅ๏ธ","printer":"๐จ๏ธ","keyboard":"โจ๏ธ","computer_mouse":"๐ฑ๏ธ","trackball":"๐ฒ๏ธ","minidisc":"๐ฝ","floppy_disk":"๐พ","cd":"๐ฟ","dvd":"๐","abacus":"๐งฎ","movie_camera":"๐ฅ","film_strip":"๐๏ธ","film_projector":"๐ฝ๏ธ","clapper":"๐ฌ","tv":"๐บ","camera":"๐ท","camera_flash":"๐ธ","video_camera":"๐น","vhs":"๐ผ","mag":"๐","mag_right":"๐","candle":"๐ฏ๏ธ","bulb":"๐ก","flashlight":"๐ฆ","izakaya_lantern":"๐ฎ","lantern":"๐ฎ","diya_lamp":"๐ช","notebook_with_decorative_cover":"๐","closed_book":"๐","book":"๐","open_book":"๐","green_book":"๐","blue_book":"๐","orange_book":"๐","books":"๐","notebook":"๐","ledger":"๐","page_with_curl":"๐","scroll":"๐","page_facing_up":"๐","newspaper":"๐ฐ","newspaper_roll":"๐๏ธ","bookmark_tabs":"๐","bookmark":"๐","label":"๐ท๏ธ","moneybag":"๐ฐ","coin":"๐ช","yen":"๐ด","dollar":"๐ต","euro":"๐ถ","pound":"๐ท","money_with_wings":"๐ธ","credit_card":"๐ณ","receipt":"๐งพ","chart":"๐น","envelope":"โ๏ธ","email":"๐ง","e_mail":"๐ง","incoming_envelope":"๐จ","envelope_with_arrow":"๐ฉ","outbox_tray":"๐ค","inbox_tray":"๐ฅ","package":"๐ฆ","mailbox":"๐ซ","mailbox_closed":"๐ช","mailbox_with_mail":"๐ฌ","mailbox_with_no_mail":"๐ญ","postbox":"๐ฎ","ballot_box":"๐ณ๏ธ","pencil2":"โ๏ธ","black_nib":"โ๏ธ","fountain_pen":"๐๏ธ","pen":"๐๏ธ","paintbrush":"๐๏ธ","crayon":"๐๏ธ","memo":"๐","pencil":"๐","briefcase":"๐ผ","file_folder":"๐","open_file_folder":"๐","card_index_dividers":"๐๏ธ","date":"๐
","calendar":"๐","spiral_notepad":"๐๏ธ","spiral_calendar":"๐๏ธ","card_index":"๐","chart_with_upwards_trend":"๐","chart_with_downwards_trend":"๐","bar_chart":"๐","clipboard":"๐","pushpin":"๐","round_pushpin":"๐","paperclip":"๐","paperclips":"๐๏ธ","straight_ruler":"๐","triangular_ruler":"๐","scissors":"โ๏ธ","card_file_box":"๐๏ธ","file_cabinet":"๐๏ธ","wastebasket":"๐๏ธ","lock":"๐","unlock":"๐","lock_with_ink_pen":"๐","closed_lock_with_key":"๐","key":"๐","old_key":"๐๏ธ","hammer":"๐จ","axe":"๐ช","pick":"โ๏ธ","hammer_and_pick":"โ๏ธ","hammer_and_wrench":"๐ ๏ธ","dagger":"๐ก๏ธ","crossed_swords":"โ๏ธ","bomb":"๐ฃ","boomerang":"๐ช","bow_and_arrow":"๐น","shield":"๐ก๏ธ","carpentry_saw":"๐ช","wrench":"๐ง","screwdriver":"๐ช","nut_and_bolt":"๐ฉ","gear":"โ๏ธ","clamp":"๐๏ธ","balance_scale":"โ๏ธ","probing_cane":"๐ฆฏ","link":"๐","chains":"โ๏ธ","hook":"๐ช","toolbox":"๐งฐ","magnet":"๐งฒ","ladder":"๐ช","alembic":"โ๏ธ","test_tube":"๐งช","petri_dish":"๐งซ","dna":"๐งฌ","microscope":"๐ฌ","telescope":"๐ญ","satellite":"๐ก","syringe":"๐","drop_of_blood":"๐ฉธ","pill":"๐","adhesive_bandage":"๐ฉน","crutch":"๐ฉผ","stethoscope":"๐ฉบ","x_ray":"๐ฉป","door":"๐ช","elevator":"๐","mirror":"๐ช","window":"๐ช","bed":"๐๏ธ","couch_and_lamp":"๐๏ธ","chair":"๐ช","toilet":"๐ฝ","plunger":"๐ช ","shower":"๐ฟ","bathtub":"๐","mouse_trap":"๐ชค","razor":"๐ช","lotion_bottle":"๐งด","safety_pin":"๐งท","broom":"๐งน","basket":"๐งบ","roll_of_paper":"๐งป","bucket":"๐ชฃ","soap":"๐งผ","bubbles":"๐ซง","toothbrush":"๐ชฅ","sponge":"๐งฝ","fire_extinguisher":"๐งฏ","shopping_cart":"๐","smoking":"๐ฌ","coffin":"โฐ๏ธ","headstone":"๐ชฆ","funeral_urn":"โฑ๏ธ","nazar_amulet":"๐งฟ","hamsa":"๐ชฌ","moyai":"๐ฟ","placard":"๐ชง","identification_card":"๐ชช","atm":"๐ง","put_litter_in_its_place":"๐ฎ","potable_water":"๐ฐ","wheelchair":"โฟ","mens":"๐น","womens":"๐บ","restroom":"๐ป","baby_symbol":"๐ผ","wc":"๐พ","passport_control":"๐","customs":"๐","baggage_claim":"๐","left_luggage":"๐
","warning":"โ ๏ธ","children_crossing":"๐ธ","no_entry":"โ","no_entry_sign":"๐ซ","no_bicycles":"๐ณ","no_smoking":"๐ญ","do_not_litter":"๐ฏ","non_potable_water":"๐ฑ","no_pedestrians":"๐ท","no_mobile_phones":"๐ต","underage":"๐","radioactive":"โข๏ธ","biohazard":"โฃ๏ธ","arrow_up":"โฌ๏ธ","arrow_upper_right":"โ๏ธ","arrow_right":"โก๏ธ","arrow_lower_right":"โ๏ธ","arrow_down":"โฌ๏ธ","arrow_lower_left":"โ๏ธ","arrow_left":"โฌ
๏ธ","arrow_upper_left":"โ๏ธ","arrow_up_down":"โ๏ธ","left_right_arrow":"โ๏ธ","leftwards_arrow_with_hook":"โฉ๏ธ","arrow_right_hook":"โช๏ธ","arrow_heading_up":"โคด๏ธ","arrow_heading_down":"โคต๏ธ","arrows_clockwise":"๐","arrows_counterclockwise":"๐","back":"๐","end":"๐","on":"๐","soon":"๐","top":"๐","place_of_worship":"๐","atom_symbol":"โ๏ธ","om":"๐๏ธ","star_of_david":"โก๏ธ","wheel_of_dharma":"โธ๏ธ","yin_yang":"โฏ๏ธ","latin_cross":"โ๏ธ","orthodox_cross":"โฆ๏ธ","star_and_crescent":"โช๏ธ","peace_symbol":"โฎ๏ธ","menorah":"๐","six_pointed_star":"๐ฏ","khanda":"๐ชฏ","aries":"โ","taurus":"โ","gemini":"โ","cancer":"โ","leo":"โ","virgo":"โ","libra":"โ","scorpius":"โ","sagittarius":"โ","capricorn":"โ","aquarius":"โ","pisces":"โ","ophiuchus":"โ","twisted_rightwards_arrows":"๐","repeat":"๐","repeat_one":"๐","arrow_forward":"โถ๏ธ","fast_forward":"โฉ","next_track_button":"โญ๏ธ","play_or_pause_button":"โฏ๏ธ","arrow_backward":"โ๏ธ","rewind":"โช","previous_track_button":"โฎ๏ธ","arrow_up_small":"๐ผ","arrow_double_up":"โซ","arrow_down_small":"๐ฝ","arrow_double_down":"โฌ","pause_button":"โธ๏ธ","stop_button":"โน๏ธ","record_button":"โบ๏ธ","eject_button":"โ๏ธ","cinema":"๐ฆ","low_brightness":"๐
","high_brightness":"๐","signal_strength":"๐ถ","wireless":"๐","vibration_mode":"๐ณ","mobile_phone_off":"๐ด","female_sign":"โ๏ธ","male_sign":"โ๏ธ","transgender_symbol":"โง๏ธ","heavy_multiplication_x":"โ๏ธ","heavy_plus_sign":"โ","heavy_minus_sign":"โ","heavy_division_sign":"โ","heavy_equals_sign":"๐ฐ","infinity":"โพ๏ธ","bangbang":"โผ๏ธ","interrobang":"โ๏ธ","question":"โ","grey_question":"โ","grey_exclamation":"โ","exclamation":"โ","heavy_exclamation_mark":"โ","wavy_dash":"ใฐ๏ธ","currency_exchange":"๐ฑ","heavy_dollar_sign":"๐ฒ","medical_symbol":"โ๏ธ","recycle":"โป๏ธ","fleur_de_lis":"โ๏ธ","trident":"๐ฑ","name_badge":"๐","beginner":"๐ฐ","o":"โญ","white_check_mark":"โ
","ballot_box_with_check":"โ๏ธ","heavy_check_mark":"โ๏ธ","x":"โ","negative_squared_cross_mark":"โ","curly_loop":"โฐ","loop":"โฟ","part_alternation_mark":"ใฝ๏ธ","eight_spoked_asterisk":"โณ๏ธ","eight_pointed_black_star":"โด๏ธ","sparkle":"โ๏ธ","copyright":"ยฉ๏ธ","registered":"ยฎ๏ธ","tm":"โข๏ธ","hash":"#๏ธโฃ","asterisk":"*๏ธโฃ","zero":"0๏ธโฃ","one":"1๏ธโฃ","two":"2๏ธโฃ","three":"3๏ธโฃ","four":"4๏ธโฃ","five":"5๏ธโฃ","six":"6๏ธโฃ","seven":"7๏ธโฃ","eight":"8๏ธโฃ","nine":"9๏ธโฃ","keycap_ten":"๐","capital_abcd":"๐ ","abcd":"๐ก","symbols":"๐ฃ","abc":"๐ค","a":"๐
ฐ๏ธ","ab":"๐","b":"๐
ฑ๏ธ","cl":"๐","cool":"๐","free":"๐","information_source":"โน๏ธ","id":"๐","m":"โ๏ธ","new":"๐","ng":"๐","o2":"๐
พ๏ธ","ok":"๐","parking":"๐
ฟ๏ธ","sos":"๐","up":"๐","vs":"๐","koko":"๐","sa":"๐๏ธ","u6708":"๐ท๏ธ","u6709":"๐ถ","u6307":"๐ฏ","ideograph_advantage":"๐","u5272":"๐น","u7121":"๐","u7981":"๐ฒ","accept":"๐","u7533":"๐ธ","u5408":"๐ด","u7a7a":"๐ณ","congratulations":"ใ๏ธ","secret":"ใ๏ธ","u55b6":"๐บ","u6e80":"๐ต","red_circle":"๐ด","orange_circle":"๐ ","yellow_circle":"๐ก","green_circle":"๐ข","large_blue_circle":"๐ต","purple_circle":"๐ฃ","brown_circle":"๐ค","black_circle":"โซ","white_circle":"โช","red_square":"๐ฅ","orange_square":"๐ง","yellow_square":"๐จ","green_square":"๐ฉ","blue_square":"๐ฆ","purple_square":"๐ช","brown_square":"๐ซ","black_large_square":"โฌ","white_large_square":"โฌ","black_medium_square":"โผ๏ธ","white_medium_square":"โป๏ธ","black_medium_small_square":"โพ","white_medium_small_square":"โฝ","black_small_square":"โช๏ธ","white_small_square":"โซ๏ธ","large_orange_diamond":"๐ถ","large_blue_diamond":"๐ท","small_orange_diamond":"๐ธ","small_blue_diamond":"๐น","small_red_triangle":"๐บ","small_red_triangle_down":"๐ป","diamond_shape_with_a_dot_inside":"๐ ","radio_button":"๐","white_square_button":"๐ณ","black_square_button":"๐ฒ","checkered_flag":"๐","triangular_flag_on_post":"๐ฉ","crossed_flags":"๐","black_flag":"๐ด","white_flag":"๐ณ๏ธ","rainbow_flag":"๐ณ๏ธโ๐","transgender_flag":"๐ณ๏ธโโง๏ธ","pirate_flag":"๐ดโโ ๏ธ","ascension_island":"๐ฆ๐จ","andorra":"๐ฆ๐ฉ","united_arab_emirates":"๐ฆ๐ช","afghanistan":"๐ฆ๐ซ","antigua_barbuda":"๐ฆ๐ฌ","anguilla":"๐ฆ๐ฎ","albania":"๐ฆ๐ฑ","armenia":"๐ฆ๐ฒ","angola":"๐ฆ๐ด","antarctica":"๐ฆ๐ถ","argentina":"๐ฆ๐ท","american_samoa":"๐ฆ๐ธ","austria":"๐ฆ๐น","australia":"๐ฆ๐บ","aruba":"๐ฆ๐ผ","aland_islands":"๐ฆ๐ฝ","azerbaijan":"๐ฆ๐ฟ","bosnia_herzegovina":"๐ง๐ฆ","barbados":"๐ง๐ง","bangladesh":"๐ง๐ฉ","belgium":"๐ง๐ช","burkina_faso":"๐ง๐ซ","bulgaria":"๐ง๐ฌ","bahrain":"๐ง๐ญ","burundi":"๐ง๐ฎ","benin":"๐ง๐ฏ","st_barthelemy":"๐ง๐ฑ","bermuda":"๐ง๐ฒ","brunei":"๐ง๐ณ","bolivia":"๐ง๐ด","caribbean_netherlands":"๐ง๐ถ","brazil":"๐ง๐ท","bahamas":"๐ง๐ธ","bhutan":"๐ง๐น","bouvet_island":"๐ง๐ป","botswana":"๐ง๐ผ","belarus":"๐ง๐พ","belize":"๐ง๐ฟ","canada":"๐จ๐ฆ","cocos_islands":"๐จ๐จ","congo_kinshasa":"๐จ๐ฉ","central_african_republic":"๐จ๐ซ","congo_brazzaville":"๐จ๐ฌ","switzerland":"๐จ๐ญ","cote_divoire":"๐จ๐ฎ","cook_islands":"๐จ๐ฐ","chile":"๐จ๐ฑ","cameroon":"๐จ๐ฒ","cn":"๐จ๐ณ","colombia":"๐จ๐ด","clipperton_island":"๐จ๐ต","costa_rica":"๐จ๐ท","cuba":"๐จ๐บ","cape_verde":"๐จ๐ป","curacao":"๐จ๐ผ","christmas_island":"๐จ๐ฝ","cyprus":"๐จ๐พ","czech_republic":"๐จ๐ฟ","de":"๐ฉ๐ช","diego_garcia":"๐ฉ๐ฌ","djibouti":"๐ฉ๐ฏ","denmark":"๐ฉ๐ฐ","dominica":"๐ฉ๐ฒ","dominican_republic":"๐ฉ๐ด","algeria":"๐ฉ๐ฟ","ceuta_melilla":"๐ช๐ฆ","ecuador":"๐ช๐จ","estonia":"๐ช๐ช","egypt":"๐ช๐ฌ","western_sahara":"๐ช๐ญ","eritrea":"๐ช๐ท","es":"๐ช๐ธ","ethiopia":"๐ช๐น","eu":"๐ช๐บ","european_union":"๐ช๐บ","finland":"๐ซ๐ฎ","fiji":"๐ซ๐ฏ","falkland_islands":"๐ซ๐ฐ","micronesia":"๐ซ๐ฒ","faroe_islands":"๐ซ๐ด","fr":"๐ซ๐ท","gabon":"๐ฌ๐ฆ","gb":"๐ฌ๐ง","uk":"๐ฌ๐ง","grenada":"๐ฌ๐ฉ","georgia":"๐ฌ๐ช","french_guiana":"๐ฌ๐ซ","guernsey":"๐ฌ๐ฌ","ghana":"๐ฌ๐ญ","gibraltar":"๐ฌ๐ฎ","greenland":"๐ฌ๐ฑ","gambia":"๐ฌ๐ฒ","guinea":"๐ฌ๐ณ","guadeloupe":"๐ฌ๐ต","equatorial_guinea":"๐ฌ๐ถ","greece":"๐ฌ๐ท","south_georgia_south_sandwich_islands":"๐ฌ๐ธ","guatemala":"๐ฌ๐น","guam":"๐ฌ๐บ","guinea_bissau":"๐ฌ๐ผ","guyana":"๐ฌ๐พ","hong_kong":"๐ญ๐ฐ","heard_mcdonald_islands":"๐ญ๐ฒ","honduras":"๐ญ๐ณ","croatia":"๐ญ๐ท","haiti":"๐ญ๐น","hungary":"๐ญ๐บ","canary_islands":"๐ฎ๐จ","indonesia":"๐ฎ๐ฉ","ireland":"๐ฎ๐ช","israel":"๐ฎ๐ฑ","isle_of_man":"๐ฎ๐ฒ","india":"๐ฎ๐ณ","british_indian_ocean_territory":"๐ฎ๐ด","iraq":"๐ฎ๐ถ","iran":"๐ฎ๐ท","iceland":"๐ฎ๐ธ","it":"๐ฎ๐น","jersey":"๐ฏ๐ช","jamaica":"๐ฏ๐ฒ","jordan":"๐ฏ๐ด","jp":"๐ฏ๐ต","kenya":"๐ฐ๐ช","kyrgyzstan":"๐ฐ๐ฌ","cambodia":"๐ฐ๐ญ","kiribati":"๐ฐ๐ฎ","comoros":"๐ฐ๐ฒ","st_kitts_nevis":"๐ฐ๐ณ","north_korea":"๐ฐ๐ต","kr":"๐ฐ๐ท","kuwait":"๐ฐ๐ผ","cayman_islands":"๐ฐ๐พ","kazakhstan":"๐ฐ๐ฟ","laos":"๐ฑ๐ฆ","lebanon":"๐ฑ๐ง","st_lucia":"๐ฑ๐จ","liechtenstein":"๐ฑ๐ฎ","sri_lanka":"๐ฑ๐ฐ","liberia":"๐ฑ๐ท","lesotho":"๐ฑ๐ธ","lithuania":"๐ฑ๐น","luxembourg":"๐ฑ๐บ","latvia":"๐ฑ๐ป","libya":"๐ฑ๐พ","morocco":"๐ฒ๐ฆ","monaco":"๐ฒ๐จ","moldova":"๐ฒ๐ฉ","montenegro":"๐ฒ๐ช","st_martin":"๐ฒ๐ซ","madagascar":"๐ฒ๐ฌ","marshall_islands":"๐ฒ๐ญ","macedonia":"๐ฒ๐ฐ","mali":"๐ฒ๐ฑ","myanmar":"๐ฒ๐ฒ","mongolia":"๐ฒ๐ณ","macau":"๐ฒ๐ด","northern_mariana_islands":"๐ฒ๐ต","martinique":"๐ฒ๐ถ","mauritania":"๐ฒ๐ท","montserrat":"๐ฒ๐ธ","malta":"๐ฒ๐น","mauritius":"๐ฒ๐บ","maldives":"๐ฒ๐ป","malawi":"๐ฒ๐ผ","mexico":"๐ฒ๐ฝ","malaysia":"๐ฒ๐พ","mozambique":"๐ฒ๐ฟ","namibia":"๐ณ๐ฆ","new_caledonia":"๐ณ๐จ","niger":"๐ณ๐ช","norfolk_island":"๐ณ๐ซ","nigeria":"๐ณ๐ฌ","nicaragua":"๐ณ๐ฎ","netherlands":"๐ณ๐ฑ","norway":"๐ณ๐ด","nepal":"๐ณ๐ต","nauru":"๐ณ๐ท","niue":"๐ณ๐บ","new_zealand":"๐ณ๐ฟ","oman":"๐ด๐ฒ","panama":"๐ต๐ฆ","peru":"๐ต๐ช","french_polynesia":"๐ต๐ซ","papua_new_guinea":"๐ต๐ฌ","philippines":"๐ต๐ญ","pakistan":"๐ต๐ฐ","poland":"๐ต๐ฑ","st_pierre_miquelon":"๐ต๐ฒ","pitcairn_islands":"๐ต๐ณ","puerto_rico":"๐ต๐ท","palestinian_territories":"๐ต๐ธ","portugal":"๐ต๐น","palau":"๐ต๐ผ","paraguay":"๐ต๐พ","qatar":"๐ถ๐ฆ","reunion":"๐ท๐ช","romania":"๐ท๐ด","serbia":"๐ท๐ธ","ru":"๐ท๐บ","rwanda":"๐ท๐ผ","saudi_arabia":"๐ธ๐ฆ","solomon_islands":"๐ธ๐ง","seychelles":"๐ธ๐จ","sudan":"๐ธ๐ฉ","sweden":"๐ธ๐ช","singapore":"๐ธ๐ฌ","st_helena":"๐ธ๐ญ","slovenia":"๐ธ๐ฎ","svalbard_jan_mayen":"๐ธ๐ฏ","slovakia":"๐ธ๐ฐ","sierra_leone":"๐ธ๐ฑ","san_marino":"๐ธ๐ฒ","senegal":"๐ธ๐ณ","somalia":"๐ธ๐ด","suriname":"๐ธ๐ท","south_sudan":"๐ธ๐ธ","sao_tome_principe":"๐ธ๐น","el_salvador":"๐ธ๐ป","sint_maarten":"๐ธ๐ฝ","syria":"๐ธ๐พ","swaziland":"๐ธ๐ฟ","tristan_da_cunha":"๐น๐ฆ","turks_caicos_islands":"๐น๐จ","chad":"๐น๐ฉ","french_southern_territories":"๐น๐ซ","togo":"๐น๐ฌ","thailand":"๐น๐ญ","tajikistan":"๐น๐ฏ","tokelau":"๐น๐ฐ","timor_leste":"๐น๐ฑ","turkmenistan":"๐น๐ฒ","tunisia":"๐น๐ณ","tonga":"๐น๐ด","tr":"๐น๐ท","trinidad_tobago":"๐น๐น","tuvalu":"๐น๐ป","taiwan":"๐น๐ผ","tanzania":"๐น๐ฟ","ukraine":"๐บ๐ฆ","uganda":"๐บ๐ฌ","us_outlying_islands":"๐บ๐ฒ","united_nations":"๐บ๐ณ","us":"๐บ๐ธ","uruguay":"๐บ๐พ","uzbekistan":"๐บ๐ฟ","vatican_city":"๐ป๐ฆ","st_vincent_grenadines":"๐ป๐จ","venezuela":"๐ป๐ช","british_virgin_islands":"๐ป๐ฌ","us_virgin_islands":"๐ป๐ฎ","vietnam":"๐ป๐ณ","vanuatu":"๐ป๐บ","wallis_futuna":"๐ผ๐ซ","samoa":"๐ผ๐ธ","kosovo":"๐ฝ๐ฐ","yemen":"๐พ๐ช","mayotte":"๐พ๐น","south_africa":"๐ฟ๐ฆ","zambia":"๐ฟ๐ฒ","zimbabwe":"๐ฟ๐ผ","england":"๐ด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ","scotland":"๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ","wales":"๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ"}'),oi=Object.keys(si),ii={id:"emoji",match:/(^|\s):([-+\w:?]{2,}):?$/,search(e,n){n(hi(e=e.replace(/:$/,""),oi))},template:([e,n])=>`<span class="emoji">${String(si[n])}</span> ${e}`,replace:([,e])=>"$1"+String(si[e]),index:2},li={id:"nicks",match:/(^|\s)(@([a-zA-Z_[\]\\^{}|`@][a-zA-Z0-9_[\]\\^{}|`-]*)?)$/,search(e,n){"@"===(e=e.slice(1))[0]?n(gi(e.slice(1),!0).map(e=>["@"+e[0],"@"+e[1]])):n(gi(e,!0))},template:([e])=>e,replace:([,e])=>"$1"+pi(e),index:2},ri={id:"chans",match:/(^|\s)((?:#|\+|&|![A-Z0-9]{5})(?:[^\s]+)?)$/,search(e,n){n(function(e){const n=[];if(o.M_.state.activeChannel)for(const t of o.M_.state.activeChannel.network.channels)t.type===Zs.rR.CHANNEL&&t.name[0]===e[0]&&n.push(t.name);return hi(e,n)}(e))},template:([e])=>e,replace:([,e])=>"$1"+e,index:2},ci={id:"commands",match:/^\/(\w*)$/,search(e,n){n(hi("/"+e,function(){let e=a.commands.slice();return o.M_.state.settings.searchEnabled||(e=e.filter(e=>"/search"!==e)),e}()))},template:([e])=>e,replace:([,e])=>e,index:1},ui={id:"foreground-colors",match:/\x03(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,n){e=e.toLowerCase(),n(a.colorCodeMap.filter(n=>B().test(e,n[0])||B().test(e,n[1])).map(n=>B().test(e,n[1])?[n[0],B().match(e,n[1],{pre:"<b>",post:"</b>"}).rendered]:n))},template:e=>`<span class="irc-fg${parseInt(e[0],10)}">${e[1]}</span>`,replace:e=>""+e[0],index:1},di={id:"background-colors",match:/\x03(\d{2}),(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,n,t){e=e.toLowerCase(),n(a.colorCodeMap.filter(n=>B().test(e,n[0])||B().test(e,n[1])).map(n=>B().test(e,n[1])?[n[0],B().match(e,n[1],{pre:"<b>",post:"</b>"}).rendered]:n).map(e=>e.concat(t[1])))},template:e=>`<span class="irc-fg${parseInt(e[2],10)} irc-bg irc-bg${parseInt(e[0],10)}">${e[1]}</span>`,replace:e=>"$1,"+e[0],index:2};function pi(e,n=1){return o.M_.state.settings.nickPostfix?n>0&&/\s/.test(o.M_.state.activeChannel?.channel.pendingMessage||"")?e+" ":e+o.M_.state.settings.nickPostfix:e}function hi(e,n){return B().filter(e,n,{pre:"<b>",post:"</b>"}).map(e=>[e.string,e.original])}function gi(e,n){const t=function(){if(!o.M_.state.activeChannel)return[];const e=o.M_.state.activeChannel.channel;if(e.users&&e.users.length>0)return e.users.slice().sort((e,n)=>n.lastMessage-e.lastMessage).map(e=>e.nick);const n=o.M_.state.activeChannel.network.nick,t=e.name;return n!==t&&e.type===Zs.rR.QUERY?[t,n]:[n]}();return e=e.toLowerCase(),n?hi(e,t):t.filter(n=>!n.toLowerCase().indexOf(e))}const mi={collapse:function(){if(!o.M_.state.activeChannel)return!1;const e=[];for(const n of o.M_.state.activeChannel.channel.messages){let t=!1;for(const e of n.previews||[])e.shown&&(e.shown=!1,t=!0);t&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&re.A.emit("msg:preview:toggle",{target:o.M_.state.activeChannel?.channel.id,messageIds:e,shown:!1}),!0},expand:function(){if(!o.M_.state.activeChannel)return!1;const e=[];for(const n of o.M_.state.activeChannel.channel.messages){let t=!1;for(const e of n.previews||[])e.shown||(e.shown=!0,t=!0);t&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&re.A.emit("msg:preview:toggle",{target:o.M_.state.activeChannel?.channel.id,messageIds:e,shown:!0}),!0},join:function(e){if(e.length>0){let n=e[0];if(n.length>0){const t=o.M_.state.activeChannel?.network.serverOptions.CHANTYPES,a=e[0].split(",");if(t&&t.length>0)for(let e=0;e<a.length;e++)t.includes(a[e][0])||(a[e]=t[0]+a[e]);n=a.join(",");const s=o.M_.getters.findChannelOnCurrentNetwork(n);if(!s)return o.M_.state.activeChannel&&re.A.emit("input",{text:`/join ${n} ${e.length>1?e[1]:""}`,target:o.M_.state.activeChannel.channel.id}),!0;mc(s)}}else if(o.M_.state.activeChannel?.channel.type===Zs.rR.CHANNEL)return re.A.emit("input",{target:o.M_.state.activeChannel.channel.id,text:`/join ${o.M_.state.activeChannel.channel.name}`}),!0;return!1},search:function(e){return!!o.M_.state.settings.searchEnabled&&(hc.push({name:"SearchResults",params:{id:o.M_.state.activeChannel?.channel.id},query:{q:e.join(" ")}}).catch(e=>{console.error(`Failed to push SearchResults route: ${e.message}`)}),!0)}},ki=new class{xhr=null;fileQueue=[];tokenKeepAlive=null;overlay=null;uploadProgressbar=null;onDragEnter=e=>this.dragEnter(e);onDragOver=e=>this.dragOver(e);onDragLeave=e=>this.dragLeave(e);onDrop=e=>this.drop(e);onPaste=e=>this.paste(e);init(){re.A.on("upload:auth",e=>this.uploadNextFileInQueue(e))}mounted(){this.overlay=document.getElementById("upload-overlay"),this.uploadProgressbar=document.getElementById("upload-progressbar"),document.addEventListener("dragenter",this.onDragEnter),document.addEventListener("dragover",this.onDragOver),document.addEventListener("dragleave",this.onDragLeave),document.addEventListener("drop",this.onDrop),document.addEventListener("paste",this.onPaste)}unmounted(){document.removeEventListener("dragenter",this.onDragEnter),document.removeEventListener("dragover",this.onDragOver),document.removeEventListener("dragleave",this.onDragLeave),document.removeEventListener("drop",this.onDrop),document.removeEventListener("paste",this.onPaste)}dragOver(e){e.dataTransfer?.types.includes("Files")&&e.preventDefault()}dragEnter(e){!e.relatedTarget&&e.dataTransfer?.types.includes("Files")&&(e.preventDefault(),this.overlay?.classList.add("is-dragover"))}dragLeave(e){e.relatedTarget||(e.preventDefault(),this.overlay?.classList.remove("is-dragover"))}drop(e){if(!e.dataTransfer?.types.includes("Files"))return;let n;e.preventDefault(),this.overlay?.classList.remove("is-dragover"),n=e.dataTransfer.items?Array.from(e.dataTransfer.items).filter(e=>"file"===e.kind).map(e=>e.getAsFile()):Array.from(e.dataTransfer.files),this.triggerUpload(n)}paste(e){const n=e.clipboardData?.items,t=[];if(n){for(let e=0;e<n.length;e++)"file"===n[e].kind&&t.push(n[e].getAsFile());0!==t.length&&(e.preventDefault(),this.triggerUpload(t))}}triggerUpload(e){if(!e.length)return;if(!o.M_.state.isConnected)return void this.handleResponse({error:"You are currently disconnected, unable to initiate upload process."});const n=0===this.fileQueue.length,t=o.M_.state.serverConfiguration?.fileUploadMaxFileSize||0;for(const n of e){if(!n)return;t>0&&n.size>t?this.handleResponse({error:`File ${n.name} is over the maximum allowed size`}):this.fileQueue.push(n)}n&&null===this.xhr&&this.fileQueue.length>0&&this.requestToken()}requestToken(){re.A.emit("upload:auth")}setProgress(e){this.uploadProgressbar&&(this.uploadProgressbar.classList.toggle("upload-progressbar-visible",e>0),this.uploadProgressbar.style.width=`${e}%`)}uploadNextFileInQueue(e){const n=this.fileQueue.shift();n&&(this.tokenKeepAlive=setInterval(()=>re.A.emit("upload:ping",e),4e4),o.M_.state.settings.uploadCanvas&&n.type.startsWith("image/")&&!n.type.includes("svg")&&"image/gif"!==n.type?this.renderImage(n,n=>this.performUpload(e,n)):this.performUpload(e,n))}renderImage(e,n){const t=new FileReader;t.onabort=()=>n(e),t.onerror=()=>t.abort(),t.onload=()=>{const a=new Image;if(a.onerror=()=>n(e),a.onload=()=>{const t=document.createElement("canvas");t.width=a.width,t.height=a.height;const s=t.getContext("2d");if(!s)throw new Error("Could not get canvas context in upload");s.drawImage(a,0,0),t.toBlob(t=>{n(new File([t],e.name))},e.type)},"string"!=typeof t.result)throw new Error("Expected string result from readAsDataURL");a.src=t.result},t.readAsDataURL(e)}performUpload(e,n){this.xhr=new XMLHttpRequest,this.xhr.upload.addEventListener("progress",e=>{const n=Math.floor(e.loaded/e.total*1e3)/10;this.setProgress(n)},!1),this.xhr.onreadystatechange=()=>{if(this.xhr?.readyState===XMLHttpRequest.DONE){let e;try{e=JSON.parse(this.xhr.responseText)}catch{e={error:`Upload aborted: ${this.xhr.statusText} (HTTP ${this.xhr.status})`}}this.handleResponse(e),this.xhr=null,this.fileQueue.length>0&&this.requestToken()}};const t=new FormData;t.append("file",n),this.xhr.open("POST",`uploads/new/${e}`),this.xhr.send(t)}handleResponse(e){this.setProgress(0),this.tokenKeepAlive&&(clearInterval(this.tokenKeepAlive),this.tokenKeepAlive=null),e.error?o.M_.commit("currentUserVisibleError",e.error):e.url&&this.insertUploadUrl(e.url)}insertUploadUrl(e){const n=new URL(e,location.toString()).toString(),t=document.getElementById("input");if(!(t instanceof HTMLTextAreaElement))throw new Error("Could not find textbox in upload");const a=t.selectionStart,s=a>0?t.value.substring(0,a)+" ":"",o=t.value.substring(a),i=s+n+" ";(0,ni.update)(t,i+o),t.selectionStart=t.selectionEnd=i.length}abort(){this.fileQueue=[],this.xhr&&(this.xhr.abort(),this.xhr=null)}},fi={abort:()=>ki.abort(),initialize:()=>ki.init(),mounted:()=>ki.mounted(),unmounted:()=>ki.unmounted(),triggerUpload:e=>ki.triggerUpload(e)},bi={"mod+k":"","mod+b":"","mod+u":"","mod+i":"","mod+o":"","mod+s":"","mod+m":"","mod+r":"/rainbow"},vi={'"':'"',"'":"'","(":")","<":">","[":"]","{":"}","*":"*","`":"`","~":"~",_:"_"},wi=(0,i.pM)({name:"ChatInput",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(),a=(0,x.KR)(),s=(0,x.KR)(),l=()=>{(0,i.dY)(()=>{if(!t.value)return;const e=window.getComputedStyle(t.value),n=parseFloat(e.lineHeight)||1;t.value.style.height="",t.value.style.height=Math.ceil(t.value.scrollHeight/n)*n+"px"})},c=n=>{e.channel.pendingMessage=n.target.value,e.channel.inputHistoryPosition=0,l()},d=()=>{t.value?.blur()};return(0,i.wB)(()=>e.channel.id,()=>{s.value&&s.value.hide()}),(0,i.wB)(()=>e.channel.pendingMessage,()=>{l()}),(0,i.sV)(()=>{if(r.A.on("escapekey",d),n.state.settings.autocomplete){if(!t.value)throw new Error("ChatInput autocomplete: input element is not available");s.value=function(e){let n=0,t="",a=[];e.addEventListener("input",e=>{"autocomplete"!==e.detail&&(n=0,a=[],t="")}),u()(e).bind("tab",s=>{if(o.M_.state.isAutoCompleting)return;s.preventDefault();const i=e.value;if(0===n){if(t=i.substring(0,e.selectionStart).split(/\s/).pop()||"",0===t.length)return;if(a=gi(t,!1),0===a.length)return}const l=e.selectionStart-t.length,r=pi(String(a[n%a.length]),l),c=i.substring(e.selectionStart);e.value=i.substr(0,l)+r+c,e.selectionStart-=c.length,e.selectionEnd=e.selectionStart,e.dispatchEvent(new CustomEvent("input",{detail:"autocomplete"})),t=r,n++},"keydown");const s=[ii,li,ri,ci,ui,di],i=new ai.a(e),l=new ti.Textcomplete(i,s,{dropdown:{className:"textcomplete-menu",placement:"top"}});return l.on("show",()=>{o.M_.commit("isAutoCompleting",!0)}),l.on("hidden",()=>{o.M_.commit("isAutoCompleting",!1)}),{hide(){l.hide()},destroy(){l.destroy(),o.M_.commit("isAutoCompleting",!1)}}}(t.value)}const a=u()(t.value);let i=Object.keys(bi);!1===n.state.settings.enableRainbowHotkey&&(i=i.filter(e=>"mod+r"!==e)),a.bind(i,function(e,n){const a=bi[n];if(e.target)return"/rainbow"===a&&null!=t.value?(t.value.value.startsWith(a)||(t.value.value=`${a} ${t.value.value}`,c(e)),!1):((0,ni.wrapCursor)(e.target,a,e.target.selectionStart===e.target.selectionEnd?"":a),!1)}),a.bind(Object.keys(vi),function(e,n){if(e.target?.selectionStart!==e.target.selectionEnd)return(0,ni.wrapCursor)(e.target,n,vi[n]),!1}),a.bind(["up","down"],(a,s)=>{if(n.state.isAutoCompleting||a.target.selectionStart!==a.target.selectionEnd||!t.value)return;const o=(t.value.value.slice(void 0,t.value.selectionStart).match(/\n/g)||[]).length,i=(t.value.value.match(/\n/g)||[]).length,{channel:r}=e;if(0===r.inputHistoryPosition&&(r.inputHistory[r.inputHistoryPosition]=r.pendingMessage),"up"===s&&0===o){if(!(r.inputHistoryPosition<r.inputHistory.length-1))return;r.inputHistoryPosition++}else{if(!("down"===s&&r.inputHistoryPosition>0&&o===i))return;r.inputHistoryPosition--}return r.pendingMessage=r.inputHistory[r.inputHistoryPosition],t.value.value=r.pendingMessage,l(),!1}),n.state.serverConfiguration?.fileUpload&&fi.mounted()}),(0,i.hi)(()=>{r.A.off("escapekey",d),s.value&&(s.value.destroy(),s.value=void 0),fi.unmounted(),fi.abort()}),{store:n,input:t,uploadInput:a,onUploadInputChange:()=>{if(!a.value||!a.value.files)return;const e=Array.from(a.value.files);fi.triggerUpload(e),a.value.value=""},openFileUpload:()=>{a.value?.click()},blurInput:d,onBlur:e=>{const n=e.target;"input"===n.id&&n.classList.contains("mousetrap")||s.value&&s.value.hide()},setInputSize:l,upload:fi,getInputPlaceholder:e=>e.type===Zs.rR.CHANNEL||e.type===Zs.rR.QUERY?`Write to ${e.name}`:"",onSubmit:()=>{if(!t.value)return;if(t.value.click(),t.value.focus(),!n.state.isConnected)return!1;const a=e.channel.id,o=e.channel.pendingMessage;if(0===o.length)return!1;if(s.value&&s.value.hide(),e.channel.inputHistoryPosition=0,e.channel.pendingMessage="",t.value.value="",l(),e.channel.inputHistory[1]!==o&&e.channel.inputHistory.splice(1,0,o),e.channel.inputHistory.length>100&&e.channel.inputHistory.pop(),"/"===o[0]){const e=o.substring(1).split(" "),n=e.shift()?.toLowerCase();if(!n)return!1;if(Object.prototype.hasOwnProperty.call(mi,n)&&mi[n](e))return!1}re.A.emit("input",{target:a,text:o})},setPendingMessage:c}}}),yi=(0,q.A)(wi,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("form",{id:"form",method:"post",action:"",onSubmit:n[5]||(n[5]=(0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["prevent"]))},[n[6]||(n[6]=(0,i.Lk)("span",{id:"upload-progressbar"},null,-1)),e.store.state.settings.showInputNick?((0,i.uX)(),(0,i.CE)("span",Yo,(0,l.v_)(e.network.nick),1)):(0,i.Q3)("",!0),(0,i.Lk)("textarea",{id:"input",ref:"input",dir:"auto",class:"mousetrap",enterkeyhint:"send",value:e.channel.pendingMessage,placeholder:e.getInputPlaceholder(e.channel),"aria-label":e.getInputPlaceholder(e.channel),onInput:n[0]||(n[0]=(...n)=>e.setPendingMessage&&e.setPendingMessage(...n)),onKeypress:n[1]||(n[1]=(0,s.jR)((0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["exact","prevent"]),["enter"])),onBlur:n[2]||(n[2]=(...n)=>e.onBlur&&e.onBlur(...n))},null,40,Jo),e.store.state.serverConfiguration?.fileUpload?((0,i.uX)(),(0,i.CE)("span",{key:1,id:"upload-tooltip",class:"tooltipped tooltipped-w tooltipped-no-touch","aria-label":"Upload file",onClick:n[4]||(n[4]=(...n)=>e.openFileUpload&&e.openFileUpload(...n))},[(0,i.Lk)("input",{id:"upload-input",ref:"uploadInput",type:"file","aria-labelledby":"upload",multiple:"",onChange:n[3]||(n[3]=(...n)=>e.onUploadInputChange&&e.onUploadInputChange(...n))},null,544),(0,i.Lk)("button",{id:"upload",type:"button","aria-label":"Upload file",disabled:!e.store.state.isConnected},null,8,Go)])):(0,i.Q3)("",!0),(0,i.Lk)("span",Zo,[(0,i.Lk)("button",{id:"submit",type:"submit","aria-label":"Send message",disabled:!e.store.state.isConnected},null,8,ei)])],32)}]]),_i=["aria-label"],Ci={class:"count"},Li=["value","placeholder"],Mi={class:"names"},Ei={"~":"owner","&":"admin","!":"admin","@":"op","%":"half-op","+":"voice","":"normal"},xi=(0,i.pM)({name:"ChatUserList",components:{Username:Cs.A},props:{channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(""),a=(0,x.KR)(),s=(0,x.KR)(),l=(0,i.EW)(()=>n.state.settings.enhancedUserListEnabled&&e.channel.groups&&e.channel.groups.length>0),r=(0,i.EW)(()=>{if(t.value)return(0,D.filter)(t.value,e.channel.users,{pre:"<b>",post:"</b>",extract:e=>e.nick})}),c=new Map,u=e=>{if(c.has(e))return;const n=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return c.set(e,n)},d=(0,i.EW)(()=>{const n={};if(l.value)if(t.value&&r.value){const t=r.value.filter(e=>e.original.nick);for(const{name:a,users:s}of e.channel.groups??[]){n[a]??=[],u(a);for(const e of t)s.includes(e.original.nick)&&n[a].push(e)}}else for(const{name:t,users:a}of e.channel.groups??[]){n[t]??=[],u(t);for(const s of e.channel.users)a.includes(s.nick)&&n[t].push(s)}return n}),p=(0,i.EW)(()=>{const n={};if(!l.value)if(t.value&&r.value){const e=r.value;for(const t of e){const e=t.original.modes[0]||"";n[e]??=[],t.string=e+t.string,n[e].push(t)}}else for(const t of e.channel.users){const e=t.modes[0]||"";n[e]??=[],n[e].push(t)}return n}),h=(0,i.EW)(()=>l.value?d.value:p.value),g=()=>{(0,i.dY)(()=>{const e=s.value?.querySelector(".active");e?.scrollIntoView({block:"nearest",inline:"nearest"})})};return{filteredUsers:r,groupedUsers:h,hasCustomGroups:l,userSearchInput:t,activeUser:a,userlist:s,getGroupSlug:e=>c.get(e)??u(e),setUserSearchInput:e=>{t.value=e.target.value},getModeClass:e=>Ei[e],selectUser:()=>{if(!a.value||!s.value)return;const e=s.value.querySelector(".active");if(!e)return;const n=e.getBoundingClientRect(),t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0,clientX:n.left,clientY:n.top+n.height});e.dispatchEvent(t)},hoverUser:e=>{a.value=e},removeHoverUser:()=>{a.value=null},navigateUserList:(n,s)=>{n.stopImmediatePropagation(),n.preventDefault();let o=e.channel.users;if(t.value&&r.value&&(o=r.value.map(e=>e.original)),!o.length)return void(a.value=null);const i=()=>{a.value=s?o[0]:o[o.length-1],g()};if(!a.value)return void i();let l=o.indexOf(a.value);if(-1!==l){for(l+=s;l<0;)l+=o.length;for(;l>o.length-1;)l-=o.length;a.value=o[l],g()}else i()}}}}),Si=(0,q.A)(xi,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("Username");return(0,i.uX)(),(0,i.CE)("aside",{ref:"userlist",class:"userlist","aria-label":"User list for "+e.channel.name,onMouseleave:n[6]||(n[6]=(...n)=>e.removeHoverUser&&e.removeHoverUser(...n))},[(0,i.Lk)("div",Ci,[(0,i.Lk)("input",{ref:"input",value:e.userSearchInput,placeholder:e.channel.users.length+" user"+(1===e.channel.users.length?"":"s"),type:"search",class:"search","aria-label":"Search among the user list",tabindex:"-1",onInput:n[0]||(n[0]=(...n)=>e.setUserSearchInput&&e.setUserSearchInput(...n)),onKeydown:[n[1]||(n[1]=(0,s.jR)(n=>e.navigateUserList(n,-1),["up"])),n[2]||(n[2]=(0,s.jR)(n=>e.navigateUserList(n,1),["down"])),n[3]||(n[3]=(0,s.jR)(n=>e.navigateUserList(n,-10),["page-up"])),n[4]||(n[4]=(0,s.jR)(n=>e.navigateUserList(n,10),["page-down"])),n[5]||(n[5]=(0,s.jR)((...n)=>e.selectUser&&e.selectUser(...n),["enter"]))]},null,40,Li)]),(0,i.Lk)("div",Mi,[e.hasCustomGroups?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:0},(0,i.pI)(e.groupedUsers,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:"group-"+t,class:(0,l.C4)(["user-mode","custom-group","group-"+e.getGroupSlug(t)])},[n.length>0?((0,i.uX)(),(0,i.CE)("div",{key:0,class:(0,l.C4)(["custom-group-header","group-header-"+e.getGroupSlug(t)])},(0,l.v_)(t),3)):(0,i.Q3)("",!0),e.userSearchInput.length>0?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.original.nick+"-search","on-hover":e.hoverUser,active:n.original===e.activeUser,user:n.original,innerHTML:n.string},null,8,["on-hover","active","user","innerHTML"]))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:2},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.nick,"on-hover":e.hoverUser,active:n===e.activeUser,user:n},null,8,["on-hover","active","user"]))),128))],2))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(e.groupedUsers,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:t,class:(0,l.C4)(["user-mode",e.getModeClass(String(t))])},[e.userSearchInput.length>0?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:0},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.original.nick+"-search","on-hover":e.hoverUser,active:n.original===e.activeUser,user:n.original,innerHTML:n.string},null,8,["on-hover","active","user","innerHTML"]))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.nick,"on-hover":e.hoverUser,active:n===e.activeUser,user:n},null,8,["on-hover","active","user"]))),128))],2))),128))])],40,_i)}]]),Ai={class:"ban-list"},Ti={class:"hostmask"},Xi={class:"banned_by"},ji={class:"banned_at"},Wi=(0,i.pM)({name:"ListBans",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,_s.A)(e)})}),Pi=(0,q.A)(Wi,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",Ai,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"hostmask"},"Banned"),(0,i.Lk)("th",{class:"banned_by"},"Banned By"),(0,i.Lk)("th",{class:"banned_at"},"Banned At")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channel.data,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.hostmask},[(0,i.Lk)("td",Ti,[(0,i.bF)(r,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Xi,(0,l.v_)(n.banned_by),1),(0,i.Lk)("td",ji,(0,l.v_)(e.localetime(n.banned_at)),1)]))),128))])])}]]),Ri={class:"invite-list"},Ii={class:"hostmask"},Ni={class:"invitened_by"},Ui={class:"invitened_at"},Fi=(0,i.pM)({name:"ListInvites",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,_s.A)(e)})}),Oi=(0,q.A)(Fi,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",Ri,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"hostmask"},"Invited"),(0,i.Lk)("th",{class:"invitened_by"},"Invited By"),(0,i.Lk)("th",{class:"invitened_at"},"Invited At")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channel.data,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.hostmask},[(0,i.Lk)("td",Ii,[(0,i.bF)(r,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Ni,(0,l.v_)(n.invited_by),1),(0,i.Lk)("td",Ui,(0,l.v_)(e.localetime(n.invited_at)),1)]))),128))])])}]]),qi={key:0},Ki={key:1,class:"channel-list"},Di={class:"channel"},Bi={class:"users"},$i={class:"topic"},Hi=(0,i.pM)({name:"ListChannels",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:e=>({channelData:e.channel.data})}),Qi=(0,q.A)(Hi,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return e.channelData.text?((0,i.uX)(),(0,i.CE)("span",qi,(0,l.v_)(e.channelData.text),1)):((0,i.uX)(),(0,i.CE)("table",Ki,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"channel"},"Channel"),(0,i.Lk)("th",{class:"users"},"Users"),(0,i.Lk)("th",{class:"topic"},"Topic")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channelData,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.channel},[(0,i.Lk)("td",Di,[(0,i.bF)(r,{network:e.network,text:n.channel},null,8,["network","text"])]),(0,i.Lk)("td",Bi,(0,l.v_)(n.num_users),1),(0,i.Lk)("td",$i,[(0,i.bF)(r,{network:e.network,text:n.topic},null,8,["network","text"])])]))),128))])]))}]]),zi={class:"ignore-list"},Vi={class:"hostmask"},Yi={class:"when"},Ji=(0,i.pM)({name:"ListIgnored",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:_s.A})}),Gi=(0,q.A)(Ji,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",zi,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"hostmask"},"Hostmask"),(0,i.Lk)("th",{class:"when"},"Ignored At")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channel.data,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.hostmask},[(0,i.Lk)("td",Vi,[(0,i.bF)(r,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Yi,(0,l.v_)(e.localetime(n.when)),1)]))),128))])])}]]),Zi=(0,i.pM)({name:"Chat",components:{ParsedMessage:Qs.A,MessageList:Ko,MessageListBasic:Vo,ChatInput:yi,ChatUserList:Si,SidebarToggle:wn,MessageSearchForm:so},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},isFocused:Number,focusedTime:Number},emits:["channel-changed"],setup(e,{emit:n}){const t=(0,o.Pj)(),a=(0,i.EW)(()=>t.state.settings.searchEnabled&&t.state.settings.enableEnhancedSearch?Ko:Vo),s=(0,x.KR)(a.value),l=(0,x.KR)(null),c=(0,i.EW)(()=>{switch(e.channel.special){case Zs.cL.BANLIST:return Pi;case Zs.cL.INVITELIST:return Oi;case Zs.cL.CHANNELLIST:return Qi;case Zs.cL.IGNORELIST:return Gi}}),u=()=>{n("channel-changed",e.channel),re.A.emit("open",e.channel.id),e.channel.usersOutdated&&(e.channel.usersOutdated=!1,re.A.emit("names",{target:e.channel.id}))};return(0,i.wB)(()=>e.channel,()=>{u()}),(0,i.wB)(()=>e.channel.editTopic,e=>{e&&(0,i.dY)(()=>{l.value?.focus()})}),(0,i.sV)(()=>{u(),e.channel.editTopic&&(0,i.dY)(()=>{l.value?.focus()})}),{store:t,messageList:s,MessageListType:a,topicInput:l,specialComponent:c,hideUserVisibleError:()=>{t.commit("currentUserVisibleError",null)},editTopic:()=>{e.channel.type===Zs.rR.CHANNEL&&(e.channel.editTopic=!0)},saveTopic:()=>{if(e.channel.editTopic=!1,!l.value)return;const n=l.value.value;if(e.channel.topic!==n){const t=e.channel.id,a=`/topic ${n}`;re.A.emit("input",{target:t,text:a})}},openContextMenu:n=>{r.A.emit("contextmenu:channel",{event:n,channel:e.channel,network:e.network})},openMentions:e=>{r.A.emit("mentions:toggle",{event:e})}}}}),el=(0,q.A)(Zi,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("ParsedMessage"),d=(0,i.g2)("MessageSearchForm"),p=(0,i.g2)("ChatUserList"),h=(0,i.g2)("MessageList"),g=(0,i.g2)("MessageListBasic"),m=(0,i.g2)("ChatInput");return(0,i.uX)(),(0,i.CE)("div",{id:"chat-container",class:"window","data-current-channel":e.channel.name,lang:""},[(0,i.Lk)("div",{id:"chat",class:(0,l.C4)({"hide-motd":!e.store.state.settings.motd,"time-seconds":e.store.state.settings.showSeconds,"time-12h":e.store.state.settings.use12hClock,"colored-nicks":!0})},[(0,i.Lk)("div",{id:"chan-"+e.channel.id,class:"chat-view","data-type":e.channel.type,"aria-label":e.channel.name,role:"tabpanel"},[(0,i.Lk)("div",fo,[(0,i.bF)(c),(0,i.Lk)("span",{class:"title","aria-label":"Currently open "+e.channel.type},(0,l.v_)(e.channel.name),9,bo),!0===e.channel.editTopic?((0,i.uX)(),(0,i.CE)("div",vo,[(0,i.Lk)("input",{ref:"topicInput",value:e.channel.topic,class:"topic-input",placeholder:"Set channel topic",enterkeyhint:"done",onKeyup:[n[0]||(n[0]=(0,s.jR)((...n)=>e.saveTopic&&e.saveTopic(...n),["enter"])),n[1]||(n[1]=(0,s.jR)(n=>e.channel.editTopic=!1,["esc"]))]},null,40,wo),(0,i.Lk)("span",{"aria-label":"Save topic",class:"save-topic",onClick:n[2]||(n[2]=(...n)=>e.saveTopic&&e.saveTopic(...n))},[...n[9]||(n[9]=[(0,i.Lk)("span",{type:"button","aria-label":"Save topic"},null,-1)])])])):((0,i.uX)(),(0,i.CE)("span",{key:1,title:e.channel.topic,class:(0,l.C4)({topic:!0,empty:!e.channel.topic}),onDblclick:n[3]||(n[3]=(...n)=>e.editTopic&&e.editTopic(...n))},[e.channel.topic?((0,i.uX)(),(0,i.Wv)(u,{key:0,network:e.network,text:e.channel.topic},null,8,["network","text"])):(0,i.Q3)("",!0)],42,yo)),e.store.state.settings.searchEnabled&&["channel","query"].includes(e.channel.type)?((0,i.uX)(),(0,i.Wv)(d,{key:2,network:e.network,channel:e.channel},null,8,["network","channel"])):(0,i.Q3)("",!0),(0,i.Lk)("button",{class:"mentions","aria-label":"Open your mentions",onClick:n[4]||(n[4]=(...n)=>e.openMentions&&e.openMentions(...n))}),(0,i.Lk)("button",{class:"menu","aria-label":"Open the context menu",onClick:n[5]||(n[5]=(...n)=>e.openContextMenu&&e.openContextMenu(...n))}),"channel"===e.channel.type?((0,i.uX)(),(0,i.CE)("span",_o,[(0,i.Lk)("button",{class:"rt","aria-label":"Toggle user list",onClick:n[6]||(n[6]=n=>e.store.commit("toggleUserlist"))})])):(0,i.Q3)("",!0)]),"special"===e.channel.type?((0,i.uX)(),(0,i.CE)("div",Co,[(0,i.Lk)("div",Lo,[(0,i.Lk)("div",Mo,[(0,i.Lk)("div",Eo,[((0,i.uX)(),(0,i.Wv)((0,i.$y)(e.specialComponent),{network:e.network,channel:e.channel},null,8,["network","channel"]))])])])])):((0,i.uX)(),(0,i.CE)("div",xo,[(0,i.Lk)("div",{class:(0,l.C4)(["scroll-down tooltipped tooltipped-w tooltipped-no-touch",{"scroll-down-shown":!e.channel.scrolledToBottom}]),"aria-label":"Jump to recent messages",onClick:n[7]||(n[7]=(...n)=>e.messageList.jumpToBottom&&e.messageList.jumpToBottom(...n))},[...n[10]||(n[10]=[(0,i.Lk)("div",{class:"scroll-down-arrow"},null,-1)])],2),"channel"===e.channel.type?((0,i.uX)(),(0,i.Wv)(p,{key:0,channel:e.channel},null,8,["channel"])):(0,i.Q3)("",!0),e.store.state.settings.searchEnabled&&e.store.state.settings.enableEnhancedSearch?((0,i.uX)(),(0,i.Wv)(h,{key:1,ref:"messageList",network:e.network,channel:e.channel,"is-focused":e.isFocused,"focused-time":e.focusedTime},null,8,["network","channel","is-focused","focused-time"])):((0,i.uX)(),(0,i.Wv)(g,{key:2,ref:"messageList",network:e.network,channel:e.channel,"is-focused":e.isFocused,"focused-time":e.focusedTime},null,8,["network","channel","is-focused","focused-time"]))]))],8,ko)],2),e.store.state.currentUserVisibleError?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"user-visible-error",onClick:n[8]||(n[8]=(...n)=>e.hideUserVisibleError&&e.hideUserVisibleError(...n))},(0,l.v_)(e.store.state.currentUserVisibleError),1)):(0,i.Q3)("",!0),(0,i.bF)(m,{network:e.network,channel:e.channel},null,8,["network","channel"])],8,mo)}]]),nl=(0,i.pM)({name:"RoutedChat",components:{Chat:el},setup(){const e=(0,S.lq)(),n=(0,o.Pj)(),t=(0,i.EW)(()=>{const t=parseInt(String(e.params.id||""),10);return n.getters.findChannel(t)}),a=()=>{t.value&&n.commit("activeChannel",t.value)};return(0,i.wB)(t,()=>{a()}),(0,i.sV)(()=>{a()}),{route:e,activeChannel:t,channelChanged:e=>{const t=e.id,a=n.getters.findChannel(t);a?.channel&&(a.channel.unread=0,a.channel.highlight=0)}}}}),tl=(0,q.A)(nl,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("Chat");return e.activeChannel?((0,i.uX)(),(0,i.Wv)(l,{key:0,network:e.activeChannel.network,channel:e.activeChannel.channel,"is-focused":parseInt(String(e.route.query.focused),10),"focused-time":parseInt(String(e.route.query.focusedTime),10),onChannelChanged:e.channelChanged},null,8,["network","channel","is-focused","focused-time","onChannelChanged"])):(0,i.Q3)("",!0)}]]),al={class:"opt"},sl=["checked"],ol={class:"opt"},il=["checked"],ll={class:"opt"},rl=["checked"],cl={class:"opt"},ul=["checked"],dl={role:"group",style:{"padding-left":"1.5rem"}},pl={class:"opt"},hl=["disabled","checked"],gl={class:"opt"},ml=["disabled","checked"],kl={class:"opt"},fl=["checked"],bl={class:"opt"},vl=["checked"],wl={class:"opt"},yl=["checked"],_l={role:"group","aria-labelledby":"label-status-messages"},Cl={class:"opt"},Ll=["checked"],Ml={class:"opt"},El=["checked"],xl={class:"opt"},Sl=["checked"],Al={class:"opt"},Tl=["checked"],Xl={class:"opt"},jl=["checked"],Wl={class:"opt"},Pl=["checked"],Rl={class:"opt"},Il=["checked"],Nl={class:"opt"},Ul=["checked"],Fl={class:"opt"},Ol=["checked"],ql={class:"opt"},Kl=["checked"],Dl={class:"opt"},Bl=["checked"],$l={class:"opt"},Hl=["checked"],Ql={class:"opt"},zl=["value"],Vl=["value"],Yl=["value"],Jl=["value"],Gl=(0,i.pM)({name:"AppearanceSettings",setup:()=>({store:(0,o.Pj)()})}),Zl=(0,q.A)(Gl,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",null,[n[29]||(n[29]=(0,i.Lk)("h2",null,"Messages",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",al,[(0,i.Lk)("input",{checked:e.store.state.settings.motd,type:"checkbox",name:"motd"},null,8,sl),n[0]||(n[0]=(0,i.eW)(" Show ",-1)),n[1]||(n[1]=(0,i.Lk)("abbr",{title:"Message Of The Day"},"MOTD",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",ol,[(0,i.Lk)("input",{checked:e.store.state.settings.showSeconds,type:"checkbox",name:"showSeconds"},null,8,il),n[2]||(n[2]=(0,i.eW)(" Include seconds in timestamp ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",ll,[(0,i.Lk)("input",{checked:e.store.state.settings.use12hClock,type:"checkbox",name:"use12hClock"},null,8,rl),n[3]||(n[3]=(0,i.eW)(" Use 12-hour timestamps ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",cl,[(0,i.Lk)("input",{checked:e.store.state.settings.beautifyBridgedMessages,type:"checkbox",name:"beautifyBridgedMessages"},null,8,ul),n[4]||(n[4]=(0,i.eW)(" Beautify supported bridged shoutbox messages ",-1))]),(0,i.Lk)("div",dl,[(0,i.Lk)("label",pl,[(0,i.Lk)("input",{disabled:!e.store.state.settings.beautifyBridgedMessages||void 0,checked:"parentheses"===e.store.state.settings.bridgedMessageNicksStyle,type:"radio",name:"bridgedMessageNicksStyle",value:"parentheses"},null,8,hl),n[5]||(n[5]=(0,i.eW)(" Show bridged nicknames in parentheses ",-1)),n[6]||(n[6]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"example: (nick)"},[(0,i.Lk)("button",{class:"extra-help"})],-1))]),(0,i.Lk)("label",gl,[(0,i.Lk)("input",{disabled:!e.store.state.settings.beautifyBridgedMessages||void 0,checked:"normal"===e.store.state.settings.bridgedMessageNicksStyle,type:"radio",name:"bridgedMessageNicksStyle",value:"normal"},null,8,ml),n[7]||(n[7]=(0,i.eW)(" Show bridged nicknames like a normal user ",-1)),n[8]||(n[8]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"example: nick"},[(0,i.Lk)("button",{class:"extra-help"})],-1))])])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",kl,[(0,i.Lk)("input",{checked:e.store.state.settings.disableMutedUnread,type:"checkbox",name:"disableMutedUnread"},null,8,fl),n[9]||(n[9]=(0,i.eW)(" Don't show unread badges on muted channels ",-1))])]),e.store.state.serverConfiguration?.prefetch?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[12]||(n[12]=(0,i.Lk)("h2",null,"Link previews",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",bl,[(0,i.Lk)("input",{checked:e.store.state.settings.media,type:"checkbox",name:"media"},null,8,vl),n[10]||(n[10]=(0,i.eW)(" Auto-expand media ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",wl,[(0,i.Lk)("input",{checked:e.store.state.settings.links,type:"checkbox",name:"links"},null,8,yl),n[11]||(n[11]=(0,i.eW)(" Auto-expand websites ",-1))])])],64)):(0,i.Q3)("",!0),n[30]||(n[30]=(0,i.Lk)("h2",{id:"label-status-messages"},[(0,i.eW)(" Status messages "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"Joins, parts, quits, kicks, nick changes, and mode changes"},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("div",_l,[(0,i.Lk)("label",Cl,[(0,i.Lk)("input",{checked:"shown"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"shown"},null,8,Ll),n[13]||(n[13]=(0,i.eW)(" Show all status messages individually ",-1))]),(0,i.Lk)("label",Ml,[(0,i.Lk)("input",{checked:"condensed"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"condensed"},null,8,El),n[14]||(n[14]=(0,i.eW)(" Condense status messages together ",-1))]),(0,i.Lk)("label",xl,[(0,i.Lk)("input",{checked:"hidden"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"hidden"},null,8,Sl),n[15]||(n[15]=(0,i.eW)(" Hide all status messages ",-1))])]),n[31]||(n[31]=(0,i.Lk)("h2",null,"Layout",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",Al,[(0,i.Lk)("input",{checked:e.store.state.settings.enhancedUserListEnabled,type:"checkbox",name:"enhancedUserListEnabled"},null,8,Tl),n[16]||(n[16]=(0,i.eW)(" Use enhanced user list when available ",-1))]),(0,i.Lk)("label",Xl,[(0,i.Lk)("input",{checked:e.store.state.settings.enhancedContextMenuEnabled,type:"checkbox",name:"enhancedContextMenuEnabled"},null,8,jl),n[17]||(n[17]=(0,i.eW)(" Use enhanced context menu ",-1))]),(0,i.Lk)("label",Wl,[(0,i.Lk)("input",{checked:e.store.state.settings.showInputNick,type:"checkbox",name:"showInputNick"},null,8,Pl),n[18]||(n[18]=(0,i.eW)(" Show current nick in the input box ",-1))]),(0,i.Lk)("label",Rl,[(0,i.Lk)("input",{checked:e.store.state.settings.jumptoEabled,type:"checkbox",name:"jumptoEabled"},null,8,Il),n[19]||(n[19]=(0,i.eW)(' Enable "Jump to" in sidebar ',-1))]),(0,i.Lk)("label",Nl,[(0,i.Lk)("input",{checked:e.store.state.settings.filterdmsEnabled,type:"checkbox",name:"filterdmsEnabled"},null,8,Ul),n[20]||(n[20]=(0,i.eW)(' Enable "Filter DMs" in DM section ',-1))]),(0,i.Lk)("label",Fl,[(0,i.Lk)("input",{checked:e.store.state.settings.showAllDMs,type:"checkbox",name:"showAllDMs"},null,8,Ol),n[21]||(n[21]=(0,i.eW)(" Always show all DM channels in sidebar ",-1))]),(0,i.Lk)("label",ql,[(0,i.Lk)("input",{checked:e.store.state.settings.compactSidebar,type:"checkbox",name:"compactSidebar"},null,8,Kl),n[22]||(n[22]=(0,i.eW)(" Use compact sidebar on Desktop ",-1))])]),n[32]||(n[32]=(0,i.Lk)("h2",null,"Visual Aids",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",Dl,[(0,i.Lk)("input",{checked:e.store.state.settings.coloredNicks,type:"checkbox",name:"coloredNicks"},null,8,Bl),n[23]||(n[23]=(0,i.eW)(" Enable colored nicknames ",-1))]),(0,i.Lk)("label",$l,[(0,i.Lk)("input",{checked:e.store.state.settings.autocomplete,type:"checkbox",name:"autocomplete"},null,8,Hl),n[24]||(n[24]=(0,i.eW)(" Enable autocomplete ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Ql,[n[25]||(n[25]=(0,i.Lk)("label",{for:"nickPostfix",class:"opt"},[(0,i.eW)(" Nick autocomplete postfix "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"Nick autocomplete postfix (for example a comma)"},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("input",{id:"nickPostfix",value:e.store.state.settings.nickPostfix,type:"text",name:"nickPostfix",class:"input",placeholder:"Nick autocomplete postfix (e.g. ', ')"},null,8,zl)])]),n[33]||(n[33]=(0,i.Lk)("h2",null,"Theme",-1)),(0,i.Lk)("div",null,[n[26]||(n[26]=(0,i.Lk)("label",{for:"theme-select",class:"sr-only"},"Theme",-1)),(0,i.Lk)("select",{id:"theme-select",value:e.store.state.settings.theme,name:"theme",class:"input"},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.store.state.serverConfiguration?.themes,e=>((0,i.uX)(),(0,i.CE)("option",{key:e.name,value:e.name},(0,l.v_)(e.displayName),9,Yl))),128))],8,Vl)]),(0,i.Lk)("div",null,[n[27]||(n[27]=(0,i.Lk)("h2",null,"Custom Stylesheet",-1)),n[28]||(n[28]=(0,i.Lk)("label",{for:"user-specified-css-input",class:"sr-only"}," Custom stylesheet. You can override any style with CSS here. ",-1)),(0,i.Lk)("textarea",{id:"user-specified-css-input",value:e.store.state.settings.userStyles,class:"input",name:"userStyles",placeholder:"/* You can override any style with CSS here */"},null,8,Jl)])])}]]),er={key:0},nr={key:1},tr={class:"opt"},ar=["checked"],sr={key:2},or={class:"opt"},ir=["checked"],lr={key:3},rr={class:"opt"},cr=["checked"],ur={key:4},dr={class:"opt"},pr=["checked"],hr={key:0,class:"settings-sync-panel"},gr={key:1,class:"settings-sync-panel"},mr={key:5},kr={class:"opt"},fr=["value"];let br=null;window.addEventListener("beforeinstallprompt",e=>{e.preventDefault(),br=e});const vr=(0,i.pM)({name:"GeneralSettings",setup(){const e=(0,o.Pj)(),n=(0,x.KR)(!1),t=(0,i.EW)(()=>null!==br);return(0,i.sV)(()=>{n.value=!!window.navigator.registerProtocolHandler&&!e.state.serverConfiguration?.lockNetwork}),{store:e,canRegisterProtocol:n,hasInstallPromptEvent:t,nativeInstallPrompt:()=>{br&&(br.prompt().catch(e=>{console.error(e)}),br=null)},onForceSyncClick:()=>{e.dispatch("settings/syncAll",!0).catch(e=>{console.error(e)}),e.dispatch("settings/update",{name:"syncSettings",value:!0,sync:!0}).catch(e=>{console.error(e)})},registerProtocol:()=>{const e=document.location.origin+document.location.pathname+"?uri=%s";window.navigator.registerProtocolHandler("irc",e),window.navigator.registerProtocolHandler("ircs",e)}}}}),wr=(0,q.A)(vr,[["render",function(e,n,t,a,o,l){return(0,i.uX)(),(0,i.CE)("div",null,[e.canRegisterProtocol||e.hasInstallPromptEvent?((0,i.uX)(),(0,i.CE)("div",er,[n[3]||(n[3]=(0,i.Lk)("h2",null,"Native app",-1)),e.hasInstallPromptEvent?((0,i.uX)(),(0,i.CE)("button",{key:0,type:"button",class:"btn",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.nativeInstallPrompt&&e.nativeInstallPrompt(...n),["prevent"]))}," Add The Lounge to Home screen ")):(0,i.Q3)("",!0),e.canRegisterProtocol?((0,i.uX)(),(0,i.CE)("button",{key:1,type:"button",class:"btn",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.registerProtocol&&e.registerProtocol(...n),["prevent"]))}," Open irc:// URLs with The Lounge ")):(0,i.Q3)("",!0)])):(0,i.Q3)("",!0),e.store.state.serverConfiguration?.fileUpload?((0,i.uX)(),(0,i.CE)("div",nr,[n[6]||(n[6]=(0,i.Lk)("h2",null,"File uploads",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",tr,[(0,i.Lk)("input",{checked:e.store.state.settings.uploadCanvas,type:"checkbox",name:"uploadCanvas"},null,8,ar),n[4]||(n[4]=(0,i.eW)(" Attempt to remove metadata from images before uploading ",-1)),n[5]||(n[5]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"This option renders the image into a canvas element to remove metadata from the image.\n\tThis may break orientation if your browser does not support that."},[(0,i.Lk)("button",{class:"extra-help"})],-1))])])])):(0,i.Q3)("",!0),e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",sr,[n[8]||(n[8]=(0,i.Lk)("h2",null,"Enhanced search",-1)),(0,i.Lk)("label",or,[(0,i.Lk)("input",{checked:e.store.state.settings.enableEnhancedSearch,type:"checkbox",name:"enableEnhancedSearch"},null,8,ir),n[7]||(n[7]=(0,i.eW)(" Enable enhanced search with 'Jump to message' ",-1))])])):(0,i.Q3)("",!0),e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",lr,[n[11]||(n[11]=(0,i.Lk)("h2",null,"Input",-1)),(0,i.Lk)("label",rr,[(0,i.Lk)("input",{checked:e.store.state.settings.enableRainbowHotkey,type:"checkbox",name:"enableRainbowHotkey"},null,8,cr),n[9]||(n[9]=(0,i.eW)(" Enable rainbow messages with 'Ctrl+R' hotkey ",-1)),n[10]||(n[10]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"You can still use rainbow text with '/rainbow' or '/rgb'"},[(0,i.Lk)("button",{class:"extra-help"})],-1))])])):(0,i.Q3)("",!0),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",ur,[n[16]||(n[16]=(0,i.Lk)("h2",null,"Settings synchronisation",-1)),(0,i.Lk)("label",dr,[(0,i.Lk)("input",{checked:e.store.state.settings.syncSettings,type:"checkbox",name:"syncSettings"},null,8,pr),n[12]||(n[12]=(0,i.eW)(" Synchronize settings with other clients ",-1))]),e.store.state.settings.syncSettings?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.store.state.serverHasSettings?((0,i.uX)(),(0,i.CE)("div",hr,[n[13]||(n[13]=(0,i.Lk)("p",null,[(0,i.Lk)("strong",null,"Warning:"),(0,i.eW)(" Checking this box will override the settings of this client with those stored on the server. ")],-1)),n[14]||(n[14]=(0,i.Lk)("p",null," Use the button below to enable synchronization, and override any settings already synced to the server. ",-1)),(0,i.Lk)("button",{type:"button",class:"btn btn-small",onClick:n[2]||(n[2]=(...n)=>e.onForceSyncClick&&e.onForceSyncClick(...n))}," Sync settings and enable ")])):((0,i.uX)(),(0,i.CE)("div",gr,[...n[15]||(n[15]=[(0,i.Lk)("p",null,[(0,i.Lk)("strong",null,"Warning:"),(0,i.eW)(" No settings have been synced before. Enabling this will sync all settings of this client as the base for other clients. ")],-1)])]))],64))])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",mr,[n[18]||(n[18]=(0,i.Lk)("h2",null,"Automatic away message",-1)),(0,i.Lk)("label",kr,[n[17]||(n[17]=(0,i.Lk)("label",{for:"awayMessage",class:"sr-only"},"Automatic away message",-1)),(0,i.Lk)("input",{id:"awayMessage",value:e.store.state.settings.awayMessage,type:"text",name:"awayMessage",class:"input",placeholder:"Away message if The Lounge is not open"},null,8,fr)])]))])}]]),yr={key:0,id:"change-password",role:"group","aria-labelledby":"label-change-password"},_r={class:"password-container"},Cr=["type"],Lr={class:"password-container"},Mr=["type"],Er={class:"password-container"},xr=["type"],Sr={key:0,class:"feedback success"},Ar={key:1,class:"feedback error"},Tr={key:1,class:"session-list",role:"group"},Xr={key:2},jr={key:3},Wr={class:"session-item"},Pr={class:"session-item-info"},Rr=["href"],Ir={key:0,class:"session-usage"},Nr={key:1,class:"session-usage"},Ur={class:"session-item-btn"},Fr={reload(){window.location.reload()}};class Or{static signout(){h.A.clear(),Fr.reload()}}const qr=(0,i.pM)({name:"Session",props:{session:{type:Object,required:!0}},setup:e=>({lastUse:(0,i.EW)(()=>(0,_s.A)(e.session.lastUse)),signOut:()=>{e.session.current?(re.A.emit("sign-out"),Or.signout()):re.A.emit("sign-out",e.session.token)}})}),Kr=(0,q.A)(qr,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("div",Wr,[(0,i.Lk)("div",Pr,[(0,i.Lk)("strong",null,(0,l.v_)(e.session.agent),1),(0,i.Lk)("a",{href:"https://ipinfo.io/"+e.session.ip,target:"_blank",rel:"noopener"},(0,l.v_)(e.session.ip),9,Rr),e.session.active>1?((0,i.uX)(),(0,i.CE)("p",Ir," Active in "+(0,l.v_)(e.session.active)+" browsers ",1)):e.session.current||e.session.active?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("p",Nr,[n[1]||(n[1]=(0,i.eW)(" Last used on ",-1)),(0,i.Lk)("time",null,(0,l.v_)(e.lastUse),1)]))]),(0,i.Lk)("div",Ur,[(0,i.Lk)("button",{class:"btn",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.signOut&&e.signOut(...n),["prevent"]))},[e.session.current?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)("Sign out")],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)("Revoke")],64))])])])}]]),Dr=(0,i.pM)({name:"UserSettings",components:{RevealPassword:pe,Session:Kr},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(),t=(0,x.KR)(""),a=(0,x.KR)(""),s=(0,x.KR)(""),l=(0,i.EW)(()=>e.state.sessions.find(e=>e.current)),r=(0,i.EW)(()=>e.state.sessions.filter(e=>!e.current&&e.active>0)),c=(0,i.EW)(()=>e.state.sessions.filter(e=>!e.current&&!e.active));return(0,i.sV)(()=>{re.A.emit("sessions:get")}),{store:e,passwordChangeStatus:n,passwordErrors:{missing_fields:"Please fill in all fields",password_mismatch:"Both new password fields must match",password_incorrect:"The current password field does not match your account password",update_failed:"Failed to update your password"},currentSession:l,activeSessions:r,otherSessions:c,changePassword:()=>{const e={old_password:t.value,new_password:a.value,verify_password:s.value};e.old_password&&e.new_password&&e.verify_password?e.new_password===e.verify_password?(re.A.once("change-password",e=>{n.value=e}),re.A.emit("change-password",e)):n.value={success:!1,error:"password_mismatch"}:n.value={success:!1,error:"missing_fields"}},old_password:t,new_password:a,verify_password:s}}}),Br=(0,q.A)(Dr,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("RevealPassword"),u=(0,i.g2)("Session"),d=(0,i.g2)("session;"),p=(0,i.g2)("session");return(0,i.uX)(),(0,i.CE)("div",null,[e.store.state.serverConfiguration?.public||e.store.state.serverConfiguration?.ldapEnabled?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",yr,[n[7]||(n[7]=(0,i.Lk)("h2",{id:"label-change-password"},"Change password",-1)),(0,i.Lk)("div",_r,[n[4]||(n[4]=(0,i.Lk)("label",{for:"current-password",class:"sr-only"}," Enter current password ",-1)),(0,i.bF)(c,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"current-password","onUpdate:modelValue":n[0]||(n[0]=n=>e.old_password=n),autocomplete:"current-password",type:t.isVisible?"text":"password",name:"old_password",class:"input",placeholder:"Enter current password"},null,8,Cr),[[s.hp,e.old_password]])]),_:1})]),(0,i.Lk)("div",Lr,[n[5]||(n[5]=(0,i.Lk)("label",{for:"new-password",class:"sr-only"}," Enter desired new password ",-1)),(0,i.bF)(c,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"new-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.new_password=n),type:t.isVisible?"text":"password",name:"new_password",autocomplete:"new-password",class:"input",placeholder:"Enter desired new password"},null,8,Mr),[[s.hp,e.new_password]])]),_:1})]),(0,i.Lk)("div",Er,[n[6]||(n[6]=(0,i.Lk)("label",{for:"new-password-verify",class:"sr-only"}," Repeat new password ",-1)),(0,i.bF)(c,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"new-password-verify","onUpdate:modelValue":n[2]||(n[2]=n=>e.verify_password=n),type:t.isVisible?"text":"password",name:"verify_password",autocomplete:"new-password",class:"input",placeholder:"Repeat new password"},null,8,xr),[[s.hp,e.verify_password]])]),_:1})]),e.passwordChangeStatus&&e.passwordChangeStatus.success?((0,i.uX)(),(0,i.CE)("div",Sr," Successfully updated your password ")):e.passwordChangeStatus&&e.passwordChangeStatus.error?((0,i.uX)(),(0,i.CE)("div",Ar,(0,l.v_)(e.passwordErrors[e.passwordChangeStatus.error]),1)):(0,i.Q3)("",!0),(0,i.Lk)("div",null,[(0,i.Lk)("button",{type:"submit",class:"btn",onClick:n[3]||(n[3]=(0,s.D$)((...n)=>e.changePassword&&e.changePassword(...n),["prevent"]))}," Change password ")])])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",Tr,[n[10]||(n[10]=(0,i.Lk)("h2",null,"Sessions",-1)),n[11]||(n[11]=(0,i.Lk)("h3",null,"Current session",-1)),e.currentSession?((0,i.uX)(),(0,i.Wv)(u,{key:0,session:e.currentSession},null,8,["session"])):(0,i.Q3)("",!0),e.activeSessions.length>0?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[8]||(n[8]=(0,i.Lk)("h3",null,"active sessions",-1)),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.activeSessions,e=>((0,i.uX)(),(0,i.Wv)(d,{key:e.token,session:e},null,8,["session"]))),128))],64)):(0,i.Q3)("",!0),n[12]||(n[12]=(0,i.Lk)("h3",null,"other sessions",-1)),0===e.store.state.sessions.length?((0,i.uX)(),(0,i.CE)("p",Xr,"loadingโฆ")):0===e.otherSessions.length?((0,i.uX)(),(0,i.CE)("p",jr,[...n[9]||(n[9]=[(0,i.Lk)("em",null,"you are not currently logged in to any other device.",-1)])])):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:4},(0,i.pI)(e.otherSessions,e=>((0,i.uX)(),(0,i.Wv)(p,{key:e.token,session:e},null,8,["session"]))),128))]))])}]]),$r=["disabled"],Hr={key:0,class:"error"},Qr={key:1,class:"error"},zr={class:"opt"},Vr=["checked","disabled"],Yr={key:0,class:"error"},Jr={key:1,id:"warnBlockedDesktopNotifications",class:"error"},Gr={key:2,id:"warnBlockedDesktopNotifications",class:"error"},Zr={class:"opt"},ec=["checked"],nc={class:"opt"},tc={class:"opt"},ac=["checked"],sc={key:1},oc={class:"opt"},ic=["value"],lc={key:2},rc={class:"opt"},cc=["value"],uc=function(){o.M_.commit("pushNotificationState","loading"),navigator.serviceWorker.ready.then(e=>e.pushManager.getSubscription().then(n=>n?(re.A.emit("push:unregister"),n.unsubscribe().then(e=>{o.M_.commit("pushNotificationState",e?"supported":"unsupported")})):e.pushManager.subscribe({applicationServerKey:o.M_.state.serverConfiguration?.applicationServerKey,userVisibleOnly:!0}).then(e=>{re.A.emit("push:register",e.toJSON()),o.M_.commit("pushNotificationState","subscribed"),o.M_.commit("refreshDesktopNotificationState")}))).catch(e=>{o.M_.commit("pushNotificationState","unsupported"),o.M_.commit("refreshDesktopNotificationState"),console.error(e)})};re.A.once("push:issubscribed",function(e){"https:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname?"serviceWorker"in navigator&&navigator.serviceWorker.register("service-worker.js").then(n=>{if(o.M_.commit("hasServiceWorker"),n.pushManager)return n.pushManager.getSubscription().then(n=>{n&&!1===e?n.unsubscribe().then(e=>{o.M_.commit("pushNotificationState",e?"supported":"unsupported")}):o.M_.commit("pushNotificationState",n?"subscribed":"supported")})}).catch(e=>{o.M_.commit("pushNotificationState","unsupported"),console.error(e)}):o.M_.commit("pushNotificationState","nohttps")});const dc=(0,i.pM)({name:"NotificationSettings",setup(){const e=(0,o.Pj)();return{isIOS:(0,i.EW)(()=>["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document),store:e,playNotification:()=>{const e=new Audio;e.src="audio/pop.wav",e.play()},onPushButtonClick:()=>{uc()}}}}),pc=(0,q.A)(dc,[["render",function(e,n,t,a,o,l){return(0,i.uX)(),(0,i.CE)("div",null,[e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[4]||(n[4]=(0,i.Lk)("h2",null,"Push Notifications",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("button",{id:"pushNotifications",type:"button",class:"btn",disabled:"supported"!==e.store.state.pushNotificationState&&"subscribed"!==e.store.state.pushNotificationState,onClick:n[0]||(n[0]=(...n)=>e.onPushButtonClick&&e.onPushButtonClick(...n))},["subscribed"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" Unsubscribe from push notifications ")],64)):"loading"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)(" Loadingโฆ ")],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:2},[(0,i.eW)(" Subscribe to push notifications ")],64))],8,$r),"nohttps"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)("div",Hr,[...n[2]||(n[2]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Push notifications are only supported over HTTPS connections. ",-1)])])):(0,i.Q3)("",!0),"unsupported"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)("div",Qr,[...n[3]||(n[3]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": ",-1),(0,i.Lk)("span",null,"Push notifications are not supported by your browser.",-1)])])):(0,i.Q3)("",!0)])],64)),n[14]||(n[14]=(0,i.Lk)("h2",null,"Browser Notifications",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",zr,[(0,i.Lk)("input",{id:"desktopNotifications",checked:e.store.state.settings.desktopNotifications,disabled:"nohttps"===e.store.state.desktopNotificationState,type:"checkbox",name:"desktopNotifications"},null,8,Vr),n[8]||(n[8]=(0,i.eW)(" Enable browser notifications",-1)),n[9]||(n[9]=(0,i.Lk)("br",null,null,-1)),"unsupported"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Yr,[...n[5]||(n[5]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are not supported by your browser. ",-1)])])):(0,i.Q3)("",!0),"nohttps"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Jr,[...n[6]||(n[6]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are only supported over HTTPS connections. ",-1)])])):(0,i.Q3)("",!0),"blocked"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Gr,[...n[7]||(n[7]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are blocked by your browser. ",-1)])])):(0,i.Q3)("",!0)])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Zr,[(0,i.Lk)("input",{checked:e.store.state.settings.notification,type:"checkbox",name:"notification"},null,8,ec),n[10]||(n[10]=(0,i.eW)(" Enable notification sound ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("div",nc,[(0,i.Lk)("button",{id:"play",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.playNotification&&e.playNotification(...n),["prevent"]))},"Play sound")])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",tc,[(0,i.Lk)("input",{checked:e.store.state.settings.notifyAllMessages,type:"checkbox",name:"notifyAllMessages"},null,8,ac),n[11]||(n[11]=(0,i.eW)(" Enable notification for all messages ",-1))])]),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",sc,[(0,i.Lk)("label",oc,[n[12]||(n[12]=(0,i.Lk)("label",{for:"highlights",class:"opt"},[(0,i.eW)(" Custom highlights "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"If a message contains any of these comma-separated\nexpressions, it will trigger a highlight."},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("input",{id:"highlights",value:e.store.state.settings.highlights,type:"text",name:"highlights",class:"input",autocomplete:"off",placeholder:"Comma-separated, e.g.: word, some more words, anotherword"},null,8,ic)])])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",lc,[(0,i.Lk)("label",rc,[n[13]||(n[13]=(0,i.Lk)("label",{for:"highlightExceptions",class:"opt"},[(0,i.eW)(" Highlight exceptions "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"If a message contains any of these comma-separated\nexpressions, it will not trigger a highlight even if it contains\nyour nickname or expressions defined in custom highlights."},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("input",{id:"highlightExceptions",value:e.store.state.settings.highlightExceptions,type:"text",name:"highlightExceptions",class:"input",autocomplete:"off",placeholder:"Comma-separated, e.g.: word, some more words, anotherword"},null,8,cc)])]))])}]]),hc=(0,S.aE)({history:(0,S.Bt)(),routes:[{name:"SignIn",path:"/sign-in",component:ge,beforeEnter(e,n,t){o.M_.state.appLoaded?t(!1):t()}},{name:"Connect",path:"/connect",component:Ln,props:e=>({queryParams:e.query})},{path:"/settings",component:Nn,children:[{name:"General",path:"",component:wr},{name:"Appearance",path:"appearance",component:Zl},{name:"Account",path:"account",component:Br,props:!0},{name:"Notifications",path:"notifications",component:pc}]},{name:"Help",path:"/help",component:Ra},{name:"Changelog",path:"/changelog",component:Ba},{name:"NetworkEdit",path:"/edit-network/:uuid",component:Ha},{name:"RoutedChat",path:"/chan-:id",component:tl},{name:"SearchResults",path:"/chan-:id/search",component:go}]});async function gc(e,n={},t={}){hc.currentRoute.value.name?await hc.push({name:e,params:n,query:t}):await hc.replace({name:e,params:n,query:t}).catch(()=>{})}function mc(e,n,t){const a={};n&&(a.focused=n),t&&(a.focusedTime=t),gc("RoutedChat",{id:e.id},a)}hc.beforeEach((e,n,t)=>{o.M_.state.appLoaded||"SignIn"===e.name?t():o.M_.watch(e=>e.appLoaded,()=>t())}),hc.beforeEach(e=>!(!e.matched.length||"RoutedChat"===e.name&&!o.M_.getters.findChannel(Number(e.params.id))||"NetworkEdit"===e.name&&!o.M_.getters.findNetwork(String(e.params.uuid)))),hc.afterEach(e=>{if(o.M_.state.appLoaded&&window.innerWidth<=a.mobileViewportPixels&&o.M_.commit("sidebarOpen",!1),o.M_.state.activeChannel){const n=o.M_.state.activeChannel.channel;"RoutedChat"!==e.name&&o.M_.commit("activeChannel",void 0),n.messages?.length>0&&(n.firstUnread=n.messages[n.messages.length-1].id),o.M_.state.settings.searchEnabled&&o.M_.state.settings.enableEnhancedSearch||n.messages?.length>100&&(n.messages.splice(0,n.messages.length-100),n.moreHistoryAvailable=!0)}}),"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("message",e=>{if(e.data&&"open"===e.data.type){const n=parseInt(e.data.channel.substring(5),10),t=o.M_.getters.findChannel(n);t&&mc(t.channel)}});const kc=(0,i.pM)({name:"ChannelWrapper",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},active:Boolean,isFiltering:Boolean},setup(e){const n=(0,o.Pj)();return{activeChannel:(0,i.EW)(()=>n.state.activeChannel),isChannelVisible:(0,i.EW)(()=>e.isFiltering||!te(e.network,e.channel)),getAriaLabel:()=>{const n=[],t=e.channel.type;return e.channel.unread>0&&(e.channel.unread>1?n.push(`${e.channel.unread} unread messages`):n.push(`${e.channel.unread} unread message`)),e.channel.highlight>0&&(e.channel.highlight>1?n.push(`${e.channel.highlight} mentions`):n.push(`${e.channel.highlight} mention`)),`${t}: ${e.channel.name} ${n.length?`(${n.join(", ")})`:""}`},click:()=>{e.isFiltering||mc(e.channel)},openContextMenu:n=>{r.A.emit("contextmenu:channel",{event:n,channel:e.channel,network:e.network})}}}}),fc=(0,q.A)(kc,[["render",function(e,n,t,a,o,r){return e.isChannelVisible?((0,i.uX)(),(0,i.CE)("div",{key:0,ref:"element",class:(0,l.C4)(["channel-list-item",{active:e.active},{"parted-channel":"channel"===e.channel.type&&0===e.channel.state},{"has-draft":e.channel.pendingMessage},{"has-unread":e.channel.unread},{"has-highlight":e.channel.highlight},{"not-secure":"lobby"===e.channel.type&&e.network.status.connected&&!e.network.status.secure},{"not-connected":"lobby"===e.channel.type&&!e.network.status.connected},{"is-muted":e.channel.muted}]),"aria-label":e.getAriaLabel(),title:e.getAriaLabel(),"data-name":e.channel.name,"data-type":e.channel.type,"aria-controls":"#chan-"+e.channel.id,"aria-selected":e.active,style:(0,l.Tr)(e.channel.closed?{transition:"none",opacity:.4}:void 0),role:"tab",onClick:n[0]||(n[0]=(...n)=>e.click&&e.click(...n)),onContextmenu:n[1]||(n[1]=(0,s.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))},[(0,i.RG)(e.$slots,"default",{network:e.network,channel:e.channel,activeChannel:e.activeChannel})],46,ne)):(0,i.Q3)("",!0)}]]),bc=(0,i.pM)({name:"Channel",components:{ChannelWrapper:fc},props:{network:{type:Object,required:!0},isJoinChannelShown:Boolean,active:Boolean,isFiltering:Boolean},emits:["toggle-join-channel"],setup(e){const n=(0,i.EW)(()=>e.network.channels[0]),t=(0,i.EW)(()=>e.isJoinChannelShown?"Cancel":"Join a channelโฆ"),a=(0,i.EW)(()=>ee(n.value.unread));return{channel:n,joinChannelLabel:t,unreadCount:a,onCollapseClick:()=>{Z(e.network,!e.network.isCollapsed)},getExpandLabel:e=>e.isCollapsed?"Expand":"Collapse"}}}),vc=(0,q.A)(bc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("ChannelWrapper");return(0,i.uX)(),(0,i.Wv)(c,(0,i.v6)(e.$props,{channel:e.channel}),{default:(0,i.k6)(()=>[e.network.channels.length>1?((0,i.uX)(),(0,i.CE)("button",{key:0,"aria-controls":"network-"+e.network.uuid,"aria-label":e.getExpandLabel(e.network),"aria-expanded":!e.network.isCollapsed,class:"collapse-network",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.onCollapseClick&&e.onCollapseClick(...n),["stop"]))},[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"collapse-network-icon"},null,-1)])],8,$)):((0,i.uX)(),(0,i.CE)("span",H)),(0,i.Lk)("div",Q,[(0,i.Lk)("span",{title:e.channel.name,class:"name"},(0,l.v_)(e.channel.name),9,z),e.network.status.connected&&!e.network.status.secure?((0,i.uX)(),(0,i.CE)("span",V,[...n[3]||(n[3]=[(0,i.Lk)("span",{class:"not-secure-icon"},null,-1)])])):(0,i.Q3)("",!0),e.network.status.connected?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("span",Y,[...n[4]||(n[4]=[(0,i.Lk)("span",{class:"not-connected-icon"},null,-1)])])),e.channel.unread?((0,i.uX)(),(0,i.CE)("span",{key:2,class:(0,l.C4)([{highlight:e.channel.highlight},"badge"])},(0,l.v_)(e.unreadCount),3)):(0,i.Q3)("",!0)]),(0,i.Lk)("span",{"aria-label":e.joinChannelLabel,class:"add-channel-tooltip tooltipped tooltipped-w tooltipped-no-touch"},[(0,i.Lk)("button",{class:(0,l.C4)(["add-channel",{opened:e.isJoinChannelShown}]),"aria-controls":"join-channel-"+e.channel.id,"aria-label":e.joinChannelLabel,onClick:n[1]||(n[1]=(0,s.D$)(n=>e.$emit("toggle-join-channel"),["stop"]))},null,10,G)],8,J)]),_:1},16,["channel"])}]]),wc={class:"name"},yc={key:0,class:"parted-channel-tooltip tooltipped tooltipped-w","aria-label":"Not currently joined"},_c={class:"close-tooltip tooltipped tooltipped-w","aria-label":"Leave"},Cc={key:2,class:"close-tooltip tooltipped tooltipped-w","aria-label":"Close"};function Lc(e){return()=>{e.type!==Zs.rR.LOBBY?(e.closed=!0,re.A.emit("input",{target:Number(e.id),text:"/close"})):r.A.emit("confirm-dialog",{title:"Remove network",text:`Are you sure you want to quit and remove ${e.name}? This cannot be undone.`,button:"Remove network"},n=>{n&&(e.closed=!0,re.A.emit("input",{target:Number(e.id),text:"/quit"}))})}}const Mc=(0,i.pM)({name:"Channel",components:{ChannelWrapper:fc},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},active:Boolean,isFiltering:Boolean},setup:e=>({store:(0,o.Pj)(),unreadCount:(0,i.EW)(()=>ee(e.channel.unread)),close:Lc(e.channel)})}),Ec=(0,q.A)(Mc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("ChannelWrapper");return(0,i.uX)(),(0,i.Wv)(c,(0,i.v6)({ref:"wrapper"},e.$props),{default:(0,i.k6)(()=>[(0,i.Lk)("span",wc,(0,l.v_)(e.channel.name),1),!e.channel.unread||!0===e.store.state.settings.disableMutedUnread&&e.channel.muted?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("span",{key:0,class:(0,l.C4)([{highlight:e.channel.highlight&&!e.channel.muted},"badge"])},(0,l.v_)(e.unreadCount),3)),"channel"===e.channel.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[0===e.channel.state?((0,i.uX)(),(0,i.CE)("span",yc,[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"parted-channel-icon"},null,-1)])])):(0,i.Q3)("",!0),(0,i.Lk)("span",_c,[(0,i.Lk)("button",{class:"close","aria-label":"Leave",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.close&&e.close(...n),["stop"]))})])],64)):((0,i.uX)(),(0,i.CE)("span",Cc,[(0,i.Lk)("button",{class:"close","aria-label":"Close",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.close&&e.close(...n),["stop"]))})]))]),_:1},16)}]]),xc=["id"],Sc=(0,i.pM)({name:"JoinChannel",directives:{focus:{mounted:e=>e.focus()}},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},emits:["toggle-join-channel"],setup(e,{emit:n}){const t=(0,o.Pj)(),a=(0,x.KR)(""),s=(0,x.KR)("");return{inputChannel:a,inputPassword:s,onSubmit:()=>{const o=t.getters.findChannelOnCurrentNetwork(a.value);if(o)mc(o);else{const n=e.network.serverOptions.CHANTYPES;let t=a.value;n&&n.length>0&&!n.includes(t[0])&&(t=n[0]+t),re.A.emit("input",{text:`/join ${t} ${s.value}`,target:e.channel.id})}a.value="",s.value="",n("toggle-join-channel")}}}}),Ac=(0,q.A)(Sc,[["render",function(e,n,t,a,o,l){const r=(0,i.gN)("focus");return(0,i.uX)(),(0,i.CE)("form",{id:"join-channel-"+e.channel.id,class:"join-form",method:"post",action:"",autocomplete:"off",onKeydown:n[2]||(n[2]=(0,s.jR)((0,s.D$)(n=>e.$emit("toggle-join-channel"),["prevent"]),["esc"])),onSubmit:n[3]||(n[3]=(0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["prevent"]))},[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.inputChannel=n),type:"text",class:"input",name:"channel",placeholder:"Channel",pattern:"[^\\s]+",maxlength:"200",title:"The channel name may not contain spaces",required:""},null,512),[[s.Jo,e.inputChannel],[r]]),(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[1]||(n[1]=n=>e.inputPassword=n),type:"password",class:"input",name:"key",placeholder:"Password (optional)",pattern:"[^\\s]+",maxlength:"200",title:"The channel password may not contain spaces",autocomplete:"new-password"},null,512),[[s.Jo,e.inputPassword]]),n[4]||(n[4]=(0,i.Lk)("button",{type:"submit",class:"btn btn-small"},"Join",-1))],40,xc)}]]),Tc=["title"],Xc={key:0,class:"dm-unread-badge highlight badge"},jc={key:0,class:"dm-filter"},Wc=(0,i.pM)({name:"DirectMessageSection",components:{Draggable:K,Channel:Ec},props:{network:{type:Object,required:!0},queries:{type:Array,required:!0}},setup(e){const n=e.network.uuid+"-dms",t="thelounge.directMessages.collapsed",a=(0,o.Pj)(),s=(0,x.KR)((()=>{const e=h.A.get(t);return(e?new Set(JSON.parse(e)):new Set).has(n)})()),l=(0,x.KR)(""),r=(0,x.KR)(!1),c=(0,i.EW)(()=>a.state.settings.showAllDMs?Number.MAX_SAFE_INTEGER:5),u=(0,i.EW)(()=>void 0!==e.queries.find(e=>e.id===a.state.activeChannel?.channel.id)),d=(0,i.EW)(()=>e.queries.filter(e=>e.unread>0&&!e.muted).length>0),p=(0,i.EW)(()=>ee(e.queries.filter(e=>e.unread>0&&!e.muted).length)),g=(0,i.EW)(()=>l.value?(0,D.filter)(l.value,e.queries,{extract:e=>e.name}).map(e=>e.original):e.queries),m=(0,i.EW)(()=>[...g.value].sort((e,n)=>e.pinned&&!n.pinned?-1:!e.pinned&&n.pinned?1:e.unread>0&&0===n.unread?-1:0===e.unread&&n.unread>0?1:e.name.toLowerCase().localeCompare(n.name.toLowerCase()))),k=(0,i.EW)(()=>{if(r.value||l.value)return m.value;const e=m.value.filter(e=>e.pinned),n=m.value.filter(e=>!e.pinned&&e.unread>0),t=m.value.filter(e=>!e.pinned&&0===e.unread),a=c.value-e.length-n.length;return a<=0?[...e,...n]:[...e,...n,...t.slice(0,a)]}),f=(0,i.EW)(()=>m.value.length-k.value.length),b=(0,i.EW)(()=>f.value>0&&!l.value);return{uuid:n,store:a,isCollapsed:s,filterText:l,showAll:r,hasUnread:d,totalUnreadCount:p,sortedQueries:m,hiddenCount:f,hasActiveQuery:u,hasHiddenChannels:b,shouldShowChannel:e=>!(!s.value||!e.highlight)||!(s.value&&!e.highlight)&&k.value.includes(e),toggleCollapsed:()=>{s.value=!s.value;const e=h.A.get(t),a=e?new Set(JSON.parse(e)):new Set;s.value?a.add(n):a.delete(n),h.A.set(t,JSON.stringify([...a]))},onDMSort:n=>{const{oldIndex:t,newIndex:a}=n;void 0!==t&&void 0!==a&&t!==a&&re.A.emit("sort:channels",{network:e.network.uuid,order:e.network.channels.map(e=>e.id)})}}}}),Pc=(0,q.A)(Wc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("Channel"),u=(0,i.g2)("Draggable");return e.queries.length>0&&!e.network.isCollapsed||e.network.isCollapsed&&(e.hasUnread||e.hasActiveQuery)?((0,i.uX)(),(0,i.CE)("div",{key:0,class:(0,l.C4)(["dm-section",{collapsed:e.isCollapsed}])},[(0,i.Lk)("div",{class:(0,l.C4)(["channel-list-item dm-section-header",e.hasUnread?"has-unread has-highlight":""]),title:"Total Queries: "+e.queries.length+" - Total Unread: "+e.totalUnreadCount,onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.toggleCollapsed&&e.toggleCollapsed(...n),["stop"]))},[(0,i.Lk)("span",{class:(0,l.C4)(["dm-collapse-icon",{"is-collapsed":e.isCollapsed}])},null,2),n[3]||(n[3]=(0,i.Lk)("span",{class:"dm-section-title"},"Direct Messages",-1)),e.hasUnread?((0,i.uX)(),(0,i.CE)("span",Xc,(0,l.v_)(e.totalUnreadCount),1)):(0,i.Q3)("",!0)],10,Tc),!e.isCollapsed||e.hasActiveQuery||e.hasUnread?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.queries.length>2&&e.store.state.settings.filterdmsEnabled&&!e.isCollapsed?((0,i.uX)(),(0,i.CE)("div",jc,[(0,i.bo)((0,i.Lk)("input",{ref:"filterInput","onUpdate:modelValue":n[1]||(n[1]=n=>e.filterText=n),type:"text",placeholder:"Filter DMs...",class:"dm-filter-input input"},null,512),[[s.Jo,e.filterText]])])):(0,i.Q3)("",!0),(0,i.bF)(u,{list:e.sortedQueries,delay:500,"delay-on-touch-only":!0,"touch-start-threshold":10,draggable:".dm-channel-wrapper","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragging",group:e.uuid,class:"dm-list","item-key":"id",onChange:e.onDMSort},{item:(0,i.k6)(({element:n})=>[e.shouldShowChannel(n)?((0,i.uX)(),(0,i.CE)("div",{key:0,class:(0,l.C4)(["dm-channel-wrapper",{"is-pinned":n.pinned}])},[((0,i.uX)(),(0,i.Wv)(c,{key:n.id,"data-item":n.id,channel:n,network:e.network,active:e.store.state.activeChannel&&n===e.store.state.activeChannel.channel},null,8,["data-item","channel","network","active"]))],2)):(0,i.Q3)("",!0)]),_:1},8,["list","group","onChange"]),e.hasHiddenChannels?((0,i.uX)(),(0,i.CE)("div",{key:1,class:"channel-list-item dm-show-more",onClick:n[2]||(n[2]=n=>e.showAll=!e.showAll)},(0,l.v_)(e.showAll?"Show less":`Show ${e.hiddenCount} more...`),1)):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0)],2)):(0,i.Q3)("",!0)}],["__scopeId","data-v-e4cbcea8"]]),Rc=function([e,n],[t,a]){return Math.hypot(e-t,n-a)},Ic=(0,i.pM)({name:"NetworkList",components:{JoinChannel:Ac,NetworkLobby:vc,Channel:Ec,Draggable:K,DirectMessageSection:Pc},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(""),t=(0,x.KR)(),a=(0,x.KR)(),s=(0,x.KR)(null),l=(0,x.KR)(null),c=(0,x.KR)(!1),d=(e,n,t)=>{const a=e.splice(n,1)[0];e.splice(t,0,a)},p=(0,i.EW)(()=>{const n=[];for(const t of e.state.networks)for(const a of t.channels)e.state.activeChannel&&a===e.state.activeChannel.channel||n.push({network:t,channel:a});return n}),h=(0,i.EW)(()=>(0,D.filter)(n.value,p.value,{extract:e=>e.channel.name}).map(e=>e.original)),m=n=>!!g(n)||(e.state.activeChannel&&Z(e.state.activeChannel.network,!0),!1),k=n=>!!g(n)||(e.state.activeChannel&&Z(e.state.activeChannel.network,!1),!1),f=()=>{s.value!==document.activeElement&&(c.value=!e.state.sidebarOpen,e.commit("sidebarOpen",!0),(0,i.dY)(()=>{s.value?.focus()}))},b=()=>{t.value=null,n.value="",s.value?.blur(),c.value&&e.commit("sidebarOpen",!1)},v=e=>!!g(e)||(s.value===document.activeElement?(b(),!1):(f(),!1)),w=e=>{h.value.length&&(e||(e=h.value[0].channel),t.value=e)},y=()=>{(0,i.dY)(()=>{const e=l.value?.querySelector(".channel-list-item.active");e&&e.scrollIntoView({block:"nearest",inline:"nearest"})})};return(0,i.wB)(n,()=>{w()}),(0,i.sV)(()=>{u().bind("alt+shift+right",k),u().bind("alt+shift+left",m),u().bind("alt+j",v)}),(0,i.xo)(()=>{u().unbind("alt+shift+right"),u().unbind("alt+shift+left"),u().unbind("alt+j")}),{store:e,networklist:l,searchInput:s,searchText:n,results:h,activeSearchItem:t,LONG_TOUCH_DURATION:500,activateSearch:f,deactivateSearch:b,toggleSearch:v,setSearchText:e=>{n.value=e.target.value},setActiveSearchItem:w,scrollToActive:y,selectResult:()=>{n.value&&h.value.length&&t.value&&(mc(t.value),b(),y())},navigateResults:(e,a)=>{if(e.stopImmediatePropagation(),e.preventDefault(),!n.value)return;const s=h.value.map(e=>e.channel);if(!s.length)return void(t.value=null);let o=t.value?s.indexOf(t.value):-1;if(!t.value||-1===o)return t.value=a?s[0]:s[s.length-1],void y();for(o+=a;o<0;)o+=s.length;for(;o>s.length-1;)o-=s.length;t.value=s[o],y()},onChannelSort:n=>{let{oldIndex:t,newIndex:a}=n;if(void 0===t||void 0===a||t===a)return;t+=1,a+=1;const s=n.item.getAttribute("data-item");if(!s)return;const o=parseInt(s),i=e.getters.findChannel(o);i&&(d(i.network.channels,t,a),re.A.emit("sort:channels",{network:i.network.uuid,order:i.network.channels.map(e=>e.id)}))},onNetworkSort:n=>{const{oldIndex:t,newIndex:a}=n;void 0!==t&&void 0!==a&&t!==a&&(d(e.state.networks,t,a),re.A.emit("sort:networks",{order:e.state.networks.map(e=>e.uuid)}))},onDraggableTouchStart:e=>{1===e.touches.length&&document.body.classList.add("force-no-select")},onDraggableTouchMove:e=>{if(a.value&&e.touches.length>0){const n=e.touches[0],t=[n.clientX,n.clientY];Rc(a.value,t)>10&&r.A.emit("contextmenu:cancel")}},onDraggableTouchEnd:e=>{0===e.touches.length&&document.body.classList.remove("force-no-select")},onDraggableChoose:e=>{const n=e.originalEvent;(e=>!!(e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType))(n)&&(e.item.classList.add("ui-sortable-dragging-touch-cue"),n instanceof TouchEvent&&n.touches.length>0?a.value=[n.touches[0].clientX,n.touches[0].clientY]:n instanceof PointerEvent&&(a.value=[n.clientX,n.clientY]))},onDraggableUnchoose:e=>{e.item.classList.remove("ui-sortable-dragging-touch-cue"),a.value=null}}}}),Nc=(0,q.A)(Ic,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("Channel"),u=(0,i.g2)("NetworkLobby"),d=(0,i.g2)("JoinChannel"),p=(0,i.g2)("Draggable"),h=(0,i.g2)("DirectMessageSection");return 0===e.store.state.networks.length?((0,i.uX)(),(0,i.CE)("div",A," You are not connected to any networks yet. ")):((0,i.uX)(),(0,i.CE)("div",T,[e.store.state.settings.jumptoEabled?((0,i.uX)(),(0,i.CE)("div",X,[(0,i.Lk)("input",{ref:"searchInput",value:e.searchText,placeholder:"Jump to...",type:"search",class:"search input mousetrap","aria-label":"Search among the channel list",tabindex:"-1",onInput:n[0]||(n[0]=(...n)=>e.setSearchText&&e.setSearchText(...n)),onKeydown:[n[1]||(n[1]=(0,s.jR)(n=>e.navigateResults(n,-1),["up"])),n[2]||(n[2]=(0,s.jR)(n=>e.navigateResults(n,1),["down"])),n[3]||(n[3]=(0,s.jR)(n=>e.navigateResults(n,-10),["page-up"])),n[4]||(n[4]=(0,s.jR)(n=>e.navigateResults(n,10),["page-down"])),n[5]||(n[5]=(0,s.jR)((...n)=>e.selectResult&&e.selectResult(...n),["enter"])),n[6]||(n[6]=(0,s.jR)((...n)=>e.deactivateSearch&&e.deactivateSearch(...n),["escape"]))],onFocus:n[7]||(n[7]=(...n)=>e.activateSearch&&e.activateSearch(...n))},null,40,j)])):(0,i.Q3)("",!0),e.searchText?((0,i.uX)(),(0,i.CE)("div",W,[e.results.length?((0,i.uX)(),(0,i.CE)("div",P,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.results,t=>((0,i.uX)(),(0,i.CE)("div",{key:t.channel.id,onMouseenter:n=>e.setActiveSearchItem(t.channel),onClick:n[8]||(n[8]=(0,s.D$)((...n)=>e.selectResult&&e.selectResult(...n),["prevent"]))},["lobby"!==t.channel.type?((0,i.uX)(),(0,i.Wv)(c,{key:0,channel:t.channel,network:t.network,active:t.channel===e.activeSearchItem,"is-filtering":!0},null,8,["channel","network","active"])):((0,i.uX)(),(0,i.Wv)(u,{key:1,channel:t.channel,network:t.network,active:t.channel===e.activeSearchItem,"is-filtering":!0},null,8,["channel","network","active"]))],40,R))),128))])):((0,i.uX)(),(0,i.CE)("div",I,"No results found."))])):((0,i.uX)(),(0,i.Wv)(p,{key:2,list:e.store.state.networks,delay:e.LONG_TOUCH_DURATION,"delay-on-touch-only":!0,"touch-start-threshold":10,handle:".channel-list-item[data-type='lobby']",draggable:".network","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragging",group:"networks",class:"networks","item-key":"uuid",onChange:e.onNetworkSort,onChoose:e.onDraggableChoose,onUnchoose:e.onDraggableUnchoose},{item:(0,i.k6)(({element:t})=>[((0,i.uX)(),(0,i.CE)("div",{id:"network-"+t.uuid,key:t.uuid,class:(0,l.C4)([{collapsed:t.isCollapsed,"not-connected":!t.status.connected,"not-secure":!t.status.secure},"network"]),role:"region","aria-live":"polite",onTouchstart:n[9]||(n[9]=(...n)=>e.onDraggableTouchStart&&e.onDraggableTouchStart(...n)),onTouchmove:n[10]||(n[10]=(...n)=>e.onDraggableTouchMove&&e.onDraggableTouchMove(...n)),onTouchend:n[11]||(n[11]=(...n)=>e.onDraggableTouchEnd&&e.onDraggableTouchEnd(...n)),onTouchcancel:n[12]||(n[12]=(...n)=>e.onDraggableTouchEnd&&e.onDraggableTouchEnd(...n))},[(0,i.bF)(u,{network:t,"is-join-channel-shown":t.isJoinChannelShown,active:e.store.state.activeChannel&&t.channels[0]===e.store.state.activeChannel.channel,onToggleJoinChannel:e=>t.isJoinChannelShown=!t.isJoinChannelShown},null,8,["network","is-join-channel-shown","active","onToggleJoinChannel"]),t.isJoinChannelShown?((0,i.uX)(),(0,i.Wv)(d,{key:0,network:t,channel:t.channels[0],onToggleJoinChannel:e=>t.isJoinChannelShown=!t.isJoinChannelShown},null,8,["network","channel","onToggleJoinChannel"])):(0,i.Q3)("",!0),(0,i.bF)(p,{draggable:".channel-list-item","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragging",group:t.uuid,list:t.channels,delay:e.LONG_TOUCH_DURATION,"delay-on-touch-only":!0,"touch-start-threshold":10,class:"channels","item-key":"name",onChange:e.onChannelSort,onChoose:e.onDraggableChoose,onUnchoose:e.onDraggableUnchoose},{item:(0,i.k6)(({element:n,index:a})=>[a>0&&"query"!==n.type?((0,i.uX)(),(0,i.Wv)(c,{key:n.id,"data-item":n.id,channel:n,network:t,active:e.store.state.activeChannel&&n===e.store.state.activeChannel.channel},null,8,["data-item","channel","network","active"])):(0,i.Q3)("",!0)]),_:2},1032,["group","list","delay","onChange","onChoose","onUnchoose"]),(0,i.bF)(h,{network:t,queries:t.channels.filter(e=>"query"===e.type)},null,8,["network","queries"])],42,N))]),_:1},8,["list","delay","onChange","onChoose","onUnchoose"]))],512))}]]),Uc=(0,i.pM)({name:"Sidebar",components:{NetworkList:Nc},props:{overlay:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,S.lq)(),a=(0,x.KR)(),s=(0,x.KR)(),l=(0,x.KR)(0),r=(0,x.KR)(0),c=(0,x.KR)(!1),u=(0,x.KR)(!1),d=(0,x.KR)(null),p=e=>{n.commit("sidebarOpen",e)},h=t=>{const o=s.value=t.touches.item(0);if(!(o&&a.value&&a.value.screenX&&a.value.screenY))return;let i=o.screenX-a.value.screenX;const l=o.screenY-a.value.screenY;if(!c.value){if(Math.abs(l/i)>=1)return void g();const e=window.devicePixelRatio||2;Math.abs(i)>e&&(n.commit("sidebarDragging",!0),c.value=!0)}u.value&&(n.state.sidebarOpen&&(i+=r.value),i>r.value?i=r.value:i<0&&(i=0),d.value&&(d.value.style.transform="translate3d("+i.toString()+"px, 0, 0)"),e.overlay&&(e.overlay.style.opacity=""+i/r.value))},g=()=>{if(!a.value?.screenX||!s.value?.screenX)return;const t=s.value.screenX-a.value.screenX,o=Math.abs(t);(o>r.value/2||Date.now()-l.value<180&&o>50)&&p(t>0),document.body.removeEventListener("touchmove",h),document.body.removeEventListener("touchend",g),n.commit("sidebarDragging",!1),a.value=null,s.value=null,l.value=0,c.value=!1,(0,i.dY)(()=>{d.value&&(d.value.style.transform=""),e.overlay&&(e.overlay.style.opacity="")})},m=e=>{if(!d.value)return;if(a.value=s.value=e.touches.item(0),1!==e.touches.length)return void g();const t=window.getComputedStyle(d.value);r.value=parseFloat(t.width),u.value="absolute"===t.position,(!n.state.sidebarOpen||a.value?.screenX&&a.value.screenX>r.value)&&(l.value=Date.now(),document.body.addEventListener("touchmove",h,{passive:!0}),document.body.addEventListener("touchend",g,{passive:!0}))};return(0,i.sV)(()=>{document.body.addEventListener("touchstart",m,{passive:!0})}),(0,i.hi)(()=>{document.body.removeEventListener("touchstart",m)}),{isDevelopment:!1,store:n,route:t,sidebar:d,toggle:p,onTouchStart:m,onTouchMove:h,onTouchEnd:g,isPublic:()=>document.body.classList.contains("public")}}}),Fc=(0,q.A)(Uc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("NetworkList"),u=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("aside",{id:"sidebar",ref:"sidebar",class:(0,l.C4)(e.store.state.settings.compactSidebar?"compact":"")},[(0,i.Lk)("div",m,[(0,i.Lk)("div",k,[(0,i.Lk)("img",{src:`img/logo-${e.isPublic()?"horizontal-":""}transparent-bg.svg`,class:"logo",alt:"The Lounge",role:"presentation"},null,8,f),(0,i.Lk)("img",{src:`img/logo-${e.isPublic()?"horizontal-":""}transparent-bg-inverted.svg`,class:"logo-inverted",alt:"The Lounge",role:"presentation"},null,8,b),e.isDevelopment?((0,i.uX)(),(0,i.CE)("span",v,"DEVELOPER")):(0,i.Q3)("",!0)]),(0,i.bF)(c)]),(0,i.Lk)("footer",w,[(0,i.Lk)("span",y,[(0,i.bF)(u,{to:"/connect",role:"tab","aria-controls":"connect"},{default:(0,i.k6)(({navigate:e,isActive:n})=>[(0,i.Lk)("button",{class:(0,l.C4)(["icon","connect",{active:n}]),"aria-selected":n,onClick:e,onKeypress:(0,s.jR)(e,["enter"])},null,42,_)]),_:1})]),(0,i.Lk)("span",C,[(0,i.bF)(u,{to:"/settings",role:"tab","aria-controls":"settings"},{default:(0,i.k6)(({navigate:e,isActive:n})=>[(0,i.Lk)("button",{class:(0,l.C4)(["icon","settings",{active:n}]),"aria-selected":n,onClick:e,onKeypress:(0,s.jR)(e,["enter"])},null,42,L)]),_:1})]),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":e.store.state.serverConfiguration?.isUpdateAvailable?"Help\n(update available)":"Help"},[(0,i.bF)(u,{to:"/help",role:"tab","aria-controls":"help"},{default:(0,i.k6)(({navigate:n,isActive:t})=>[(0,i.Lk)("button",{"aria-selected":"Help"===e.route.name,class:(0,l.C4)(["icon","help",{notified:e.store.state.serverConfiguration?.isUpdateAvailable},{active:t}]),onClick:n,onKeypress:(0,s.jR)(n,["enter"])},null,42,E)]),_:1})],8,M)])],2)}]]),Oc=["href"],qc=["src"],Kc=(0,i.pM)({name:"ImageViewer",setup(){const e=(0,x.KR)(),n=(0,x.KR)(),t=(0,x.KR)(null),a=(0,x.KR)(),s=(0,x.KR)(),o=(0,x.KR)(),l=(0,x.KR)({x:0,y:0}),c=(0,x.KR)({scale:1,x:0,y:0}),d=(0,i.EW)(()=>{const e=Math.floor(c.value.x),n=Math.floor(c.value.y);return{left:`${l.value.x}px`,top:`${l.value.y}px`,transform:`translate3d(${e}px, ${n}px, 0) scale3d(${c.value.scale}, ${c.value.scale}, 1)`}}),p=()=>{null!==t.value&&(o.value=null,a.value=null,s.value=null,t.value=null)},h=()=>{a.value&&(t.value=a.value)},g=()=>{s.value&&(t.value=s.value)},m=(t,a,s,o)=>{if(!n.value||!e.value)return;const i=n.value.width,l=e.value.offsetWidth/2,r=e.value.offsetHeight/2;return{x:l-(l-(s-i*a/2))/a*t+i*t/2,y:r-(r-(o-i*a/2))/a*t+i*t/2}},k=()=>{const t=n.value,a=e.value;if(!t||!a)return;const s=t.width*c.value.scale,o=t.height*c.value.scale,i=a.offsetWidth,l=a.offsetHeight;s<i?c.value.x=i/2:c.value.x-s/2>0?c.value.x=s/2:c.value.x+s/2<i&&(c.value.x=i-s/2),o<l?c.value.y=l/2:c.value.y-o/2>0?c.value.y=o/2:c.value.y+o/2<l&&(c.value.y=l-o/2)},f=e=>{let n=0,t=0,a=0;for(let s=0;s<e.length;s++){const o=e[s].clientX,i=e[s].clientY;n+=o,t+=i;for(let n=0;n<e.length;n++)if(s!==n){const t=e[n].clientX,s=e[n].clientY;a+=Math.sqrt((o-t)*(o-t)+(i-s)*(i-s))}}return 0===a&&(a=1),{x:n/e.length,y:t/e.length,scale:a/e.length}};return(0,i.wB)(t,(e,n)=>{if(null===e)return r.A.off("escapekey",p),r.A.off("resize",k),u().unbind("left"),void u().unbind("right");(()=>{if(!o.value||!t.value)return null;const e=o.value.messages.map(e=>e.previews).flat().filter(e=>e&&e.thumb),n=e.indexOf(t.value);a.value=e[n-1]||null,s.value=e[n+1]||null})(),n||(r.A.on("escapekey",p),r.A.on("resize",k),u().bind("left",h),u().bind("right",g))}),{link:t,channel:o,image:n,transform:c,closeViewer:p,next:g,previous:h,onImageLoad:()=>{(()=>{const t=e.value,a=n.value;if(!t||!a)return;const s=t.offsetWidth,o=t.offsetHeight,i=Math.min(1,s/a.width,o/a.height);l.value.x=Math.floor(-n.value.naturalWidth/2),l.value.y=Math.floor(-n.value.naturalHeight/2),c.value.scale=Math.max(i,.1),c.value.x=s/2,c.value.y=o/2})()},onImageMouseDown:t=>{if(1!==t.which)return;t.stopPropagation(),t.preventDefault();const a=e.value,s=n.value;if(!a||!s)return;const o=t.clientX,i=t.clientY,l=c.value.x,r=c.value.y,u=s.width*c.value.scale,d=s.height*c.value.scale,h=a.offsetWidth,g=a.offsetHeight,m=c.value.x-u/2,f=c.value.y-d/2;let b=0;const v=e=>{e.stopPropagation(),e.preventDefault();const n=e.clientX-o,t=e.clientY-i;b=Math.max(b,Math.abs(n),Math.abs(t)),(m<0||u+m>h)&&(c.value.x=l+n),(f<0||d+f>g)&&(c.value.y=r+t),k()},w=e=>{k(),b<2&&0===e.button&&p(),n.value?.removeEventListener("mousemove",v),n.value?.removeEventListener("mouseup",w)};n.value?.addEventListener("mousemove",v),n.value?.addEventListener("mouseup",w)},onMouseWheel:e=>{if(null!==t.value){if(e.preventDefault(),e.ctrlKey)c.value.y+=e.deltaY;else{const n=e.deltaY>0?.1:-.1,t=Math.min(3,Math.max(.1,c.value.scale+n)),a=m(t,c.value.scale,c.value.x,c.value.y);if(!a)return;c.value.scale=t,c.value.x=a.x,c.value.y=a.y}k()}},onClick:e=>{e.target!==n.value&&p()},onTouchStart:e=>{e.stopImmediatePropagation()},previousImage:a,nextImage:s,onImageTouchStart:e=>{const t=n.value;let a=f(e.touches),s=e.touches,o=0;const i={x:a.x,y:a.y,scale:a.scale},l={x:c.value.x,y:c.value.y,scale:c.value.scale},r=e=>{a=f(e.touches),s.length!==e.touches.length&&(i.x=a.x,i.y=a.y,i.scale=a.scale,l.x=c.value.x,l.y=c.value.y,l.scale=c.value.scale);const n=a.x-i.x,t=a.y-i.y,r=a.scale/i.scale;s=e.touches,o=0;const u=Math.min(3,Math.max(.1,l.scale*r)),d=m(u,l.scale,l.x,l.y);d&&(c.value.x=d.x+n,c.value.y=d.y+t,c.value.scale=u,k())},u=e=>{const n=e.changedTouches.length;s.length>n+o?o+=n:(k(),t?.removeEventListener("touchmove",r),t?.removeEventListener("touchend",u))};t?.addEventListener("touchmove",r,{passive:!0}),t?.addEventListener("touchend",u,{passive:!0})},computeImageStyles:d,viewer:e}}}),Dc=(0,q.A)(Kc,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("div",{id:"image-viewer",ref:"viewer",class:(0,l.C4)({opened:null!==e.link}),onWheel:n[5]||(n[5]=(...n)=>e.onMouseWheel&&e.onMouseWheel(...n)),onTouchstartPassive:n[6]||(n[6]=(...n)=>e.onTouchStart&&e.onTouchStart(...n)),onClick:n[7]||(n[7]=(...n)=>e.onClick&&e.onClick(...n))},[null!==e.link?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[8]||(n[8]=(0,i.Lk)("button",{class:"close-btn","aria-label":"Close"},null,-1)),e.previousImage?((0,i.uX)(),(0,i.CE)("button",{key:0,class:"previous-image-btn","aria-label":"Previous image",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.previous&&e.previous(...n),["stop"]))})):(0,i.Q3)("",!0),e.nextImage?((0,i.uX)(),(0,i.CE)("button",{key:1,class:"next-image-btn","aria-label":"Next image",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.next&&e.next(...n),["stop"]))})):(0,i.Q3)("",!0),(0,i.Lk)("a",{class:"open-btn",href:e.link.link,target:"_blank",rel:"noopener"},null,8,Oc),(0,i.Lk)("img",{ref:"image",src:e.link.thumb,alt:"",style:(0,l.Tr)(e.computeImageStyles),onLoad:n[2]||(n[2]=(...n)=>e.onImageLoad&&e.onImageLoad(...n)),onMousedown:n[3]||(n[3]=(...n)=>e.onImageMouseDown&&e.onImageMouseDown(...n)),onTouchstartPassive:n[4]||(n[4]=(...n)=>e.onImageTouchStart&&e.onImageTouchStart(...n))},null,44,qc)],64)):(0,i.Q3)("",!0)],34)}]]),Bc=["aria-activedescendant"],$c=["id","onMouseenter","onClick"];const Hc=(0,i.pM)({name:"ContextMenu",props:{message:{required:!1,type:Object}},setup(){const e=(0,o.Pj)(),n=(0,S.rd)(),t=(0,x.KR)(!1),a=(0,x.KR)(!1),s=(0,x.KR)(),l=(0,x.KR)(),c=(0,x.KR)([]),u=(0,x.KR)(-1),d=(0,x.KR)({top:0,left:0}),p=()=>{t.value&&(t.value=!1,c.value=[],l.value&&(l.value.focus(),l.value=null))},h=()=>{a.value=!1,document.body.removeEventListener("pointerup",h)},g=e=>{p(),"action"in e&&e.action?e.action():"link"in e&&e.link&&n.push(e.link).catch(()=>{console.error("Failed to navigate to",e.link)})},m=(n,a)=>{n.preventDefault(),l.value=document.activeElement,c.value=a,u.value=0,t.value=!0,(0,i.dY)(()=>{const t=(n=>{const t=n.target;if(!s.value)return;const a=s.value?.offsetWidth,o=s.value?.offsetHeight;if(t&&t.classList.contains("menu"))return{left:t.getBoundingClientRect().left-(a-t.offsetWidth),top:t.getBoundingClientRect().top+t.offsetHeight};const i={left:n.pageX,top:n.pageY};return e.state.settings.enhancedContextMenuEnabled&&s.value.querySelector('[class*="context-menu-group-"]')&&(i.top-=45),window.innerWidth-i.left<a&&(i.left=window.innerWidth-a),window.innerHeight-i.top<o&&(i.top=window.innerHeight-o),i})(n);t&&(d.value.left=t.left,d.value.top=t.top,s.value?.focus())}).catch(e=>{console.error(e)})},k=e=>{"contextmenu"===e.event.type&&(a.value=!0,document.body.addEventListener("pointerup",h,{passive:!0}));const n=function(e,n){const t=Lc(e);let a=[{label:e.name,type:"item",class:{lobby:"network",channel:"chan",query:"query",special:"chan"}[e.type],link:`/chan-${e.id}`},{type:"divider"}];e.type===Zs.rR.LOBBY&&(a=[...a,{label:"Edit this networkโฆ",type:"item",class:"edit",link:`/edit-network/${n.uuid}`},{label:"Join a channelโฆ",type:"item",class:"join",action:()=>n.isJoinChannelShown=!0},{label:"List all channels",type:"item",class:"list",action:()=>re.A.emit("input",{target:e.id,text:"/list"})},{label:"List ignored users",type:"item",class:"list",action:()=>re.A.emit("input",{target:e.id,text:"/ignorelist"})},n.status.connected?{label:"Disconnect",type:"item",class:"disconnect",action:()=>re.A.emit("input",{target:e.id,text:"/disconnect"})}:{label:"Connect",type:"item",class:"connect",action:()=>re.A.emit("input",{target:e.id,text:"/connect"})}]),e.type===Zs.rR.CHANNEL&&(a.push({label:"Edit topic",type:"item",class:"edit",action(){e.editTopic=!0,mc(e)}}),a.push({label:"List banned users",type:"item",class:"list",action(){re.A.emit("input",{target:e.id,text:"/banlist"})}})),e.type===Zs.rR.QUERY&&a.push({label:"User information",type:"item",class:"action-whois",action(){mc(e),re.A.emit("input",{target:e.id,text:"/whois "+e.name})}},{label:"Ignore user",type:"item",class:"action-ignore",action(){re.A.emit("input",{target:e.id,text:"/ignore "+e.name})}},{label:e.pinned?"Unpin conversation":"Pin conversation",type:"item",class:"pin",action(){re.A.emit("pin:change",{target:e.id,setPinnedTo:!e.pinned})}}),e.type!==Zs.rR.CHANNEL&&e.type!==Zs.rR.QUERY||a.push({label:"Clear history",type:"item",class:"clear-history",action(){r.A.emit("confirm-dialog",{title:"Clear history",text:`Are you sure you want to clear history for ${e.name}? This cannot be undone.`,button:"Clear history"},n=>{n&&re.A.emit("history:clear",{target:e.id})})}});const s={lobby:"network",channel:"channel",query:"conversation"};if(Object.keys(s).includes(e.type)){const n=s[e.type];a.push({label:e.muted?`Unmute ${n}`:`Mute ${n}`,type:"item",class:"mute",action(){re.A.emit("mute:change",{target:e.id,setMutedTo:!e.muted})}})}return a.push({label:{lobby:"Remove",channel:"Leave",query:"Close",special:"Close"}[e.type],type:"item",class:"close",action(){t()}}),a}(e.channel,e.network);m(e.event,n)},f=n=>{const{network:t}=e.state.activeChannel,a=function(e,n,t){const a=t.channels.find(e=>e.name===n);return a?[{label:"Go to channel",type:"item",class:"chan",link:`/chan-${a.id}`}]:[{label:"Join channel",type:"item",class:"join",action:()=>{const a=t.channels.find(e=>e.name===n);a&&mc(a),e.state.activeChannel?re.A.emit("input",{target:e.state.activeChannel.channel.id,text:"/join "+n}):console.error("Unable to join channel: activeChannel is undefined")}}]}(e,n.channel,t);m(n.event,a)},b=n=>{const{network:t,channel:a}=e.state.activeChannel,s=function(e,n,t,a){const s=n&&n.users.find(e=>e.nick===t.nick)||{},o=[...(()=>{const s={label:a.nick,type:"item",class:"user",action(){}};if(e.state.settings.enhancedContextMenuEnabled&&Boolean(t.channels.find(e=>(e.groups?.length??0)>0))){const e={label:a.nick,type:"item",class:"user",action(){n.type===Zs.rR.CHANNEL&&re.A.emit("input",{target:n.id,text:`!user ${a.nick}`})}},s={label:"Tracker Profile",type:"item",class:"action-open",action(){var e;e=`https://brr.red/${a.nick}`,Object.assign(document.createElement("a"),{target:"_blank",rel:"noopener noreferrer",href:e}).click()}},o=t.channels.find(e=>e.users.find(e=>e.nick===a.nick))?.groups?.find(e=>e.users.includes(a.nick))?.name??"Offline";return[{label:o,type:"item",class:`group-${o.toLowerCase()}`,action(){}},{type:"divider"},e,s]}return[s]})(),{type:"divider"},{label:"Direct messages",type:"item",class:"action-query",action(){const t=e.getters.findChannelOnCurrentNetwork(a.nick);t&&mc(t),re.A.emit("input",{target:n.id,text:"/query "+a.nick})}},...e.state.settings.enhancedContextMenuEnabled?[{label:`Slap ${a.nick}`,type:"item",class:"action-slap",action(){re.A.emit("input",{target:n.id,text:"/slap "+a.nick})}}]:[],{type:"divider"},{label:"User information",type:"item",class:"action-whois",action(){const e=t.channels.find(e=>e.name===a.nick);e&&mc(e),re.A.emit("input",{target:n.id,text:"/whois "+a.nick})}},{label:"Ignore user",type:"item",class:"action-ignore",action(){re.A.emit("input",{target:n.id,text:"/ignore "+a.nick})}}];if(!s.modes||s.modes.length<1)return o;const i={"~":"owner","&":"admin","@":"operator","%":"half-op","+":"voice"},l={revoke(e){const n=i[e.symbol];return"string"!=typeof n?"":n?`Revoke ${n} (-${e.mode})`:`Mode -${e.mode}`},give(e){const n=i[e.symbol];return"string"!=typeof n?"":n?`Give ${n} (+${e.mode})`:`Mode +${e.mode}`}},r=t.serverOptions.PREFIX.symbols;function c(e,n){return"~@".indexOf(e)>-1?r.indexOf(e)<=r.indexOf(n):r.indexOf(e)<r.indexOf(n)}return t.serverOptions.PREFIX.prefix.forEach(e=>{c(s.modes[0],e.symbol)&&(a.modes.includes(e.symbol)?o.push({label:l.revoke(e),type:"item",class:"action-revoke-mode",action(){re.A.emit("input",{target:n.id,text:"/mode -"+e.mode+" "+a.nick})}}):o.push({label:l.give(e),type:"item",class:"action-set-mode",action(){re.A.emit("input",{target:n.id,text:"/mode +"+e.mode+" "+a.nick})}}))}),c(r.indexOf("%")>-1?"%":"@",s.modes[0])||(0===a.modes.length||c(s.modes[0],a.modes[0]))&&o.push({label:"Kick",type:"item",class:"action-kick",action(){re.A.emit("input",{target:n.id,text:"/kick "+a.nick})}}),o}(e,a,t,a.users.find(e=>e.nick===n.user.nick)||{nick:n.user.nick,modes:[]});m(n.event,s)};return(0,i.sV)(()=>{r.A.on("escapekey",p),r.A.on("contextmenu:cancel",p),r.A.on("contextmenu:user",b),r.A.on("contextmenu:channel",k),r.A.on("contextmenu:inline-channel",f)}),(0,i.hi)(()=>{r.A.off("escapekey",p),r.A.off("contextmenu:cancel",p),r.A.off("contextmenu:user",b),r.A.off("contextmenu:channel",k),r.A.off("contextmenu:inline-channel",f),p()}),{isOpen:t,items:c,activeItem:u,style:d,contextMenu:s,passthrough:a,close:p,containerClick:e=>{e.currentTarget===e.target&&p()},navigateMenu:e=>{let n=u.value;n+=e;const t=c.value[n];t&&"type"in t&&"divider"===t.type&&(n+=e),n<0&&(n+=c.value.length),n>c.value.length-1&&(n-=c.value.length),u.value=n},hoverItem:e=>{u.value=e},clickItem:g,clickActiveItem:()=>{c.value[u.value]&&g(c.value[u.value])}}}}),Qc=(0,q.A)(Hc,[["render",function(e,n,t,a,o,r){return e.isOpen?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"context-menu-container",class:(0,l.C4)({passthrough:e.passthrough}),onClick:n[2]||(n[2]=(...n)=>e.containerClick&&e.containerClick(...n)),onContextmenu:n[3]||(n[3]=(0,s.D$)((...n)=>e.containerClick&&e.containerClick(...n),["prevent"])),onKeydown:[n[4]||(n[4]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(-1),["exact","prevent"]),["up"])),n[5]||(n[5]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(1),["exact","prevent"]),["down"])),n[6]||(n[6]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(1),["exact","prevent"]),["tab"])),n[7]||(n[7]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(-1),["shift","prevent"]),["tab"]))]},[(0,i.Lk)("ul",{id:"context-menu",ref:"contextMenu",role:"menu",style:(0,l.Tr)({top:e.style.top+"px",left:e.style.left+"px"}),tabindex:"-1","aria-activedescendant":e.activeItem>-1?`context-menu-item-${e.activeItem}`:void 0,onMouseleave:n[0]||(n[0]=n=>e.activeItem=-1),onKeydown:n[1]||(n[1]=(0,s.jR)((0,s.D$)((...n)=>e.clickActiveItem&&e.clickActiveItem(...n),["prevent"]),["enter"]))},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.items,(n,t)=>((0,i.uX)(),(0,i.CE)("li",{key:n.name,id:`context-menu-item-${t}`,class:(0,l.C4)(["context-menu-"+n.type,n.class?"context-menu-"+n.class:null,{active:t===e.activeItem}]),role:"menuitem",onMouseenter:n=>e.hoverItem(t),onClick:t=>e.clickItem(n)},(0,l.v_)(n.label),43,$c))),128))],44,Bc)],34)):(0,i.Q3)("",!0)}]]),zc={key:0,id:"confirm-dialog"},Vc={class:"confirm-text"},Yc={class:"confirm-text-title"},Jc={class:"confirm-buttons"},Gc=(0,i.pM)({name:"ConfirmDialog",setup(){const e=(0,x.KR)(),n=(0,x.KR)(),t=(t,a)=>{e.value=t,n.value=a},a=t=>{e.value=void 0,n.value&&n.value(!!t)};return(0,i.sV)(()=>{r.A.on("escapekey",a),r.A.on("confirm-dialog",t)}),(0,i.hi)(()=>{r.A.off("escapekey",a),r.A.off("confirm-dialog",t)}),{data:e,close:a}}}),Zc=(0,q.A)(Gc,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{id:"confirm-dialog-overlay",class:(0,l.C4)({opened:!!e.data})},[null!==e.data?((0,i.uX)(),(0,i.CE)("div",zc,[(0,i.Lk)("div",Vc,[(0,i.Lk)("div",Yc,(0,l.v_)(e.data?.title),1),(0,i.Lk)("p",null,(0,l.v_)(e.data?.text),1)]),(0,i.Lk)("div",Jc,[(0,i.Lk)("button",{class:"btn btn-cancel",onClick:n[0]||(n[0]=n=>e.close(!1))},"Cancel"),(0,i.Lk)("button",{class:"btn btn-danger",onClick:n[1]||(n[1]=n=>e.close(!0))},(0,l.v_)(e.data?.button),1)])])):(0,i.Q3)("",!0)],2)}]]),eu={class:"mentions-popup"},nu={class:"mentions-popup-title"},tu={key:0},au={key:1},su={class:"mentions-info"},ou={class:"from"},iu=["title"],lu={class:"close-tooltip tooltipped tooltipped-w","aria-label":"Dismiss this mention"},ru=["onClick"],cu=["data-jump-to","onClick"];var uu=t(6279),du=t.n(uu);ys().extend(du());const pu=(0,i.pM)({name:"Mentions",components:{Username:Cs.A,ParsedMessage:Qs.A},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(!1),t=(0,x.KR)(!1),a=(0,i.EW)(()=>{const n=e.state.mentions.slice().reverse();for(const t of n)t.localetime=(0,_s.A)(t.time),t.channel=e.getters.findChannel(t.chanId);return n.filter(e=>!e.channel?.channel.muted)});(0,i.wB)(()=>e.state.mentions,()=>{t.value=!1});const s=()=>{n.value=!n.value,n.value&&(t.value=!0,re.A.emit("mentions:get"))},l=()=>{n.value=!1};return(0,i.sV)(()=>{r.A.on("mentions:toggle",s),r.A.on("escapekey",l)}),(0,i.hi)(()=>{r.A.off("mentions:toggle",s),r.A.off("escapekey",l)}),{store:e,isOpen:n,isLoading:t,resolvedMessages:a,messageTime:e=>ys()(e).fromNow(),dismissMention:n=>{e.state.mentions.splice(e.state.mentions.findIndex(e=>e.msgId===n.msgId),1),re.A.emit("mentions:dismiss",n.msgId)},dismissAllMentions:()=>{e.state.mentions=[],re.A.emit("mentions:dismiss_all")},jumpToMention:t=>{e.state.settings.enableEnhancedSearch&&t.channel&&(mc(t.channel.channel,t.msgId),n.value=!1)},containerClick:e=>{e.currentTarget===e.target&&(n.value=!1)}}}}),hu=(0,q.A)(pu,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Username"),c=(0,i.g2)("ParsedMessage");return e.isOpen?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"mentions-popup-container",onClick:n[1]||(n[1]=(...n)=>e.containerClick&&e.containerClick(...n)),onContextmenu:n[2]||(n[2]=(...n)=>e.containerClick&&e.containerClick(...n))},[(0,i.Lk)("div",eu,[(0,i.Lk)("div",nu,[n[3]||(n[3]=(0,i.eW)(" Recent mentions ",-1)),e.resolvedMessages.length?((0,i.uX)(),(0,i.CE)("button",{key:0,class:"btn dismiss-all-mentions",onClick:n[0]||(n[0]=n=>e.dismissAllMentions())}," Dismiss all ")):(0,i.Q3)("",!0)]),0===e.resolvedMessages.length?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.isLoading?((0,i.uX)(),(0,i.CE)("p",tu,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("p",au,"You have no recent mentions."))],64)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(e.resolvedMessages,t=>((0,i.uX)(),(0,i.CE)("div",{key:t.msgId,class:(0,l.C4)(["msg",t.type])},[(0,i.Lk)("div",su,[(0,i.Lk)("div",null,[(0,i.Lk)("span",ou,[(0,i.bF)(r,{user:t.from},null,8,["user"]),t.channel?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" in "+(0,l.v_)(t.channel.channel.name)+" on "+(0,l.v_)(t.channel.network.name),1)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)(" in unknown channel ")],64))]),n[4]||(n[4]=(0,i.eW)((0,l.v_)(" ")+" ",-1)),(0,i.Lk)("span",{title:t.localetime,class:"time"},(0,l.v_)(e.messageTime(t.time.toString())),9,iu)]),(0,i.Lk)("div",null,[(0,i.Lk)("span",lu,[(0,i.Lk)("button",{class:"msg-dismiss","aria-label":"Dismiss this mention",onClick:n=>e.dismissMention(t)},null,8,ru)])])]),(0,i.Lk)("div",{class:"content",dir:"auto","data-jump-to":e.store.state.settings.searchEnabled&&e.store.state.settings.enableEnhancedSearch||void 0,onClick:n=>e.jumpToMention(t)},[(0,i.bF)(c,{message:t},null,8,["message"])],8,cu)],2))),128))])],32)):(0,i.Q3)("",!0)}]]),gu=Symbol(),mu=Symbol(),ku=Symbol(),fu=(0,i.pM)({name:"App",components:{Sidebar:Fc,ImageViewer:Dc,ContextMenu:Qc,ConfirmDialog:Zc,Mentions:hu},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(null),t=(0,x.KR)(null),s=(0,x.KR)(null),l=(0,x.KR)(null),c=(0,x.KR)(null);(0,i.Gt)(gu,s),(0,i.Gt)(mu,l),(0,i.Gt)(ku,c);const d=(0,i.EW)(()=>({notified:e.getters.highlightCount>0,"menu-open":e.state.appLoaded&&e.state.sidebarOpen,"menu-dragging":e.state.sidebarDragging,"userlist-open":e.state.userlistOpen})),m=(0,x.KR)(),k=(0,x.KR)(),f=()=>{r.A.emit("escapekey")},b=n=>!!g(n)||(e.commit("toggleSidebar"),!1),v=n=>!!g(n)||(e.commit("toggleUserlist"),!1),w=()=>{0!==e.state.networks.length&&r.A.emit("mentions:toggle")},y=()=>{const e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+1).getTime()-e.getTime()};return(()=>{const n=window.innerWidth;let t=h.A.get("thelounge.state.userlist");n>a.mobileViewportPixels&&e.commit("sidebarOpen","false"!==h.A.get("thelounge.state.sidebar")),n>=1024&&"true"!==t&&"false"!==t&&(t="true"),e.commit("userlistOpen","true"===t)})(),(0,i.sV)(()=>{u().bind("esc",f),u().bind("alt+u",v),u().bind("alt+s",b),u().bind("alt+m",w),m.value=p()(()=>{r.A.emit("resize")},100),window.addEventListener("resize",m.value,{passive:!0});const e=()=>{r.A.emit("daychange"),k.value=setTimeout(e,y())};k.value=setTimeout(e,y())}),(0,i.xo)(()=>{u().unbind("esc"),u().unbind("alt+u"),u().unbind("alt+s"),u().unbind("alt+m"),m.value&&window.removeEventListener("resize",m.value),k.value&&clearTimeout(k.value)}),{viewportClasses:d,escapeKey:f,toggleSidebar:b,toggleUserList:v,toggleMentions:w,store:e,overlay:n,loungeWindow:t,imageViewer:s,contextMenu:l,confirmDialog:c}}}),bu=(0,q.A)(fu,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Sidebar"),c=(0,i.g2)("router-view"),u=(0,i.g2)("Mentions"),d=(0,i.g2)("ImageViewer"),p=(0,i.g2)("ContextMenu"),h=(0,i.g2)("ConfirmDialog");return(0,i.uX)(),(0,i.CE)("div",{id:"viewport",class:(0,l.C4)(e.viewportClasses),role:"tablist"},[e.store.state.appLoaded?((0,i.uX)(),(0,i.Wv)(r,{key:0,overlay:e.overlay},null,8,["overlay"])):(0,i.Q3)("",!0),(0,i.Lk)("div",{id:"sidebar-overlay",ref:"overlay","aria-hidden":"true",onClick:n[0]||(n[0]=n=>e.store.commit("sidebarOpen",!1))},null,512),(0,i.bF)(c,{ref:"loungeWindow"},null,512),(0,i.bF)(u),(0,i.bF)(d,{ref:"imageViewer"},null,512),(0,i.bF)(p,{ref:"contextMenu"},null,512),(0,i.bF)(h,{ref:"confirmDialog"},null,512),n[1]||(n[1]=(0,i.Lk)("div",{id:"upload-overlay"},null,-1))],2)}]]);function vu(e){const n=String(e.message||e);if(o.M_.commit("isConnected",!1),!re.A.io.reconnection())return o.M_.commit("currentUserVisibleError",`Disconnected from the server (${n}), The Lounge does not reconnect in public mode.`),void wu();var t;o.M_.commit("currentUserVisibleError",`Waiting to reconnectโฆ (${n})`),wu(),re.A.io.skipReconnect&&"io client disconnect"!==n&&(t=()=>re.A.connect(),window.requestIdleCallback?window.requestIdleCallback(t,{timeout:2e3}):t())}function wu(){const e=document.getElementById("loading-page-message");e&&(e.textContent=o.M_.state.currentUserVisibleError)}re.A.on("disconnect",vu),re.A.on("connect_error",vu),re.A.on("error",vu),re.A.io.on("reconnect_attempt",function(e){o.M_.commit("currentUserVisibleError",`Reconnectingโฆ (attempt ${e})`),wu()}),re.A.on("connecting",function(){o.M_.commit("currentUserVisibleError","Connectingโฆ"),wu()}),re.A.on("connect",function(){re.A.sendBuffer=[],o.M_.commit("currentUserVisibleError","Finalizing connectionโฆ"),wu()});let yu,_u=null;async function Cu(){window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),"SignIn"!==hc.currentRoute.value.name&&await gc("SignIn")}function Lu(e){re.A.disconnect(),o.M_.commit("currentUserVisibleError",e),Fr.reload()}function Mu(){const e=document.getElementById("loading-page-message");e&&(e.textContent=o.M_.state.currentUserVisibleError)}function Eu(e){const n=[""].concat(e.messages.filter(e=>e.self&&e.text&&e.type===Ys.MESSAGE).map(e=>e.text?e.text:"").reverse().slice(0,99)),{messages:t,...a}=e;return{...a,editTopic:!1,pendingMessage:"",inputHistoryPosition:0,historyLoading:!1,scrolledToBottom:!0,users:[],usersOutdated:e.type===Zs.rR.CHANNEL,moreHistoryAvailable:e.totalMessages>e.messages.length,inputHistory:n,messages:t,groups:e.groups||void 0}}function xu(e,n){const t=[];for(const a of n){const n=e.find(e=>e.id===a.id);if(!n){const e=Eu(a);t.push(e),Su(e);continue}Su(n),n.messages&&a.messages.length<100?n.messages=n.messages.concat(a.messages):n.messages=a.messages;for(const e in a)Object.hasOwn(n,e)&&"messages"!==e&&(n[e]=a[e]);t.push(n)}return t}function Su(e){if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel===e)return re.A.emit("names",{target:e.id}),void(e.usersOutdated=!1);e.usersOutdated=!0}function Au(){const e=window.location.origin+window.location.pathname+window.location.hash;window.history.replaceState(null,"",e)}re.A.on("auth:success",function(){o.M_.commit("currentUserVisibleError","Loading messagesโฆ"),Mu()}),re.A.on("auth:failed",async function(){if(h.A.remove("token"),o.M_.state.appLoaded)return Lu("Authentication failed, reloadingโฆ");await Cu()}),re.A.on("auth:start",async function(e){if(_u&&e!==_u)return Lu("Server restarted, reloadingโฆ");_u=e;const n=h.A.get("user"),t=h.A.get("token"),a=n&&t;if(o.M_.state.appLoaded&&!a)return Lu("Authentication failed, reloadingโฆ");if(a){o.M_.commit("currentUserVisibleError","Authorizingโฆ"),Mu();let e=-1;for(const n of o.M_.state.networks)for(const t of n.channels)if(t.messages.length>0){const n=t.messages[t.messages.length-1].id;e<n&&(e=n)}const a=o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id||null;re.A.emit("auth:perform",{user:n,token:t,lastMessage:e,openChannel:a,hasConfig:null!==o.M_.state.serverConfiguration})}else await Cu()}),re.A.on("commands",function(e){e&&(a.commands=e)}),re.A.on("init",async function(e){if(o.M_.commit("networks",function(e){const n=h.A.get("thelounge.networks.collapsed"),t=n?new Set(JSON.parse(n)):new Set,a=[];for(const n of e){const e=o.M_.getters.findNetwork(n.uuid);if(!e){const e={...n,channels:n.channels.map(Eu),isJoinChannelShown:!1,isCollapsed:t.has(n.uuid)};a.push(e);continue}for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&("channels"===t?e.channels=xu(e.channels,n.channels):e[t]=n[t]);a.push(e)}return a}(e.networks)),o.M_.commit("isConnected",!0),o.M_.commit("currentUserVisibleError",null),e.token&&h.A.set("token",e.token),!o.M_.state.appLoaded){o.M_.commit("appLoaded"),re.A.emit("setting:get");try{await hc.isReady()}catch{}if(window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),await async function(){if(!("URLSearchParams"in window))return!1;const e=new URLSearchParams(document.location.search);if(e.has("uri")){const n=e.get("uri"),t=(e=>{const n={name:"",host:"",port:"",join:"",tls:!1};try{const t=new URL(e);if("irc:"===t.protocol)t.protocol="http:",t.port||(t.port="6667");else{if("ircs:"!==t.protocol)return;t.protocol="https:",t.port||(t.port="6697"),n.tls=!0}if(!t.hostname)return{};n.host=n.name=t.hostname,n.port=t.port;let a="";t.pathname.length>1&&(a=t.pathname.substr(1)),t.hash.length>1&&(a+=t.hash),n.join=a}catch{}return n})(String(n));return Au(),await hc.push({name:"Connect",query:t}),!0}if(document.body.classList.contains("public")&&document.location.search){const n=Object.fromEntries(e.entries());return Au(),await hc.push({name:"Connect",query:n}),!0}return!1}())return;if(!hc.currentRoute?.value?.name||"SignIn"===hc.currentRoute?.value?.name){const n=o.M_.getters.findChannel(e.active);n?mc(n.channel):o.M_.state.networks.length>0?mc(o.M_.state.networks[0].channels[0]):await gc("Connect")}}}),re.A.on("join",function(e){const n=o.M_.getters.findNetwork(e.network);if(!n)return;const t=Eu(e.chan);if(n.channels.splice(e.index||-1,0,t),"query"===e.chan.type&&!e.shouldOpen)return;const a=o.M_.getters.findChannel(e.chan.id);a?mc(a.channel):console.error("Could not find channel",e.chan.id)}),re.A.on("more",async e=>{const n=o.M_.getters.findChannel(e.chan)?.channel;n&&(n.inputHistory=n.inputHistory.concat(e.messages.filter(e=>e.self&&e.text&&e.type===Ys.MESSAGE).map(e=>e.text?e.text:"").reverse().slice(0,100-n.inputHistory.length)),n.moreHistoryAvailable=e.totalMessages>n.messages.length+e.messages.length,n.messages.unshift(...e.messages),await(0,i.dY)(),n.historyLoading=!1)});try{yu=new Audio,yu.src="audio/pop.wav"}catch{yu={play(){}}}function Tu(e){return{...e,localetime:"",channel:null}}re.A.on("msg",function(e){const n=o.M_.getters.findChannel(e.chan);if(!n)return;let t=n.channel,a=o.M_.state.activeChannel&&o.M_.state.activeChannel.channel===t;e.msg.showInActive&&(o.M_.state.activeChannel&&o.M_.state.activeChannel.network===n.network?(t=o.M_.state.activeChannel.channel,a=!0,e.chan===t.id?delete e.msg.showInActive:e.chan=t.id):delete e.msg.showInActive),a||(void 0!==e.highlight&&(t.highlight=e.highlight),void 0!==e.unread&&(t.unread=e.unread)),t.messages.push(e.msg),e.msg.self?t.firstUnread=e.msg.id:function(e,n,t,a){var s;if(!n.muted&&((a.highlight||o.M_.state.settings.notifyAllMessages&&a.type===Ys.MESSAGE)&&(!document.hasFocus()||!t||t.channel!==n))){if(o.M_.state.settings.notification)try{yu.play()}catch{}if(o.M_.state.settings.desktopNotifications&&"Notification"in window&&"granted"===Notification.permission){let t,i;const l=a.from&&a.from.nick?a.from.nick:"unkonown";a.type===Ys.INVITE?(t="New channel invite:",i=l+" invited you to "+a.channel):(t=l,n.type!==Zs.rR.QUERY&&(t+=` (${n.name})`),a.type===Ys.MESSAGE&&(t+=" says:"),s=a.text?a.text:"",i=s.replace(Po,"").trim());const r=Date.parse(String(a.time));try{o.M_.state.hasServiceWorker?navigator.serviceWorker.ready.then(n=>{n.active?.postMessage({type:"notification",chanId:e,timestamp:r,title:t,body:i})}).catch(()=>{}):new Notification(t,{tag:`chan-${e}`,badge:"img/icon-alerted-black-transparent-bg-72x72px.png",icon:"img/icon-alerted-grey-bg-192x192px.png",body:i,timestamp:r}).addEventListener("click",function(){this.close(),window.focus();const n=o.M_.getters.findChannel(e);n&&mc(n.channel)})}catch{}}}}(e.chan,t,o.M_.state.activeChannel,e.msg);let s=0;o.M_.state.settings.searchEnabled&&o.M_.state.settings.enableEnhancedSearch?s=1e4:a?t.scrolledToBottom&&(s=1500):s=100,s>0&&t.messages.length>s&&(t.messages.splice(0,t.messages.length-s),t.moreHistoryAvailable=!0),t.type===Zs.rR.CHANNEL&&function(e,n){switch(n.type){case Ys.MESSAGE:case Ys.ACTION:{const t=e.users.find(e=>e.nick===n.from?.nick);t&&(t.lastMessage=new Date(n.time).getTime()||Date.now());break}case Ys.QUIT:case Ys.PART:{const t=e.users.findIndex(e=>e.nick===n.from?.nick);t>-1&&e.users.splice(t,1);break}case Ys.KICK:{const t=e.users.findIndex(e=>e.nick===n.target?.nick);t>-1&&e.users.splice(t,1);break}}}(t,e.msg)}),re.A.on("msg:preview",function(e){const n=o.M_.getters.findChannel(e.chan),t=n?.channel.messages.find(n=>n.id===e.id);if(!t||!t.previews)return;const a=t.previews.findIndex(n=>n.link===e.preview.link);a>-1&&(t.previews[a]=e.preview)}),re.A.on("msg:special",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.data=e.data,mc(n.channel))}),re.A.on("names",function(e){const n=o.M_.getters.findChannel(e.id);n&&(n.channel.users=e.users)}),re.A.on("network",function(e){const n={...e.network,channels:e.network.channels.map(Eu),isJoinChannelShown:!1,isCollapsed:!1};o.M_.commit("networks",[...o.M_.state.networks,n]),mc(n.channels[n.channels.length-1])}),re.A.on("network:options",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.serverOptions=e.serverOptions)}),re.A.on("network:status",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.status.connected=e.connected,n.status.secure=e.secure,e.connected||n.channels.forEach(e=>{e.users=[],e.state=Zs.gC.PARTED}))}),re.A.on("channel:state",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.state=e.state)}),re.A.on("network:info",function(e){const n=o.M_.getters.findNetwork(e.uuid);if(n)for(const t in e)n[t]=e[t]}),re.A.on("network:name",function(e){const n=o.M_.getters.findNetwork(e.uuid);n&&(n.name=n.channels[0].name=e.name)}),re.A.on("nick",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.nick=e.nick)}),re.A.on("open",function(e){if(e<1)return;if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e)return;const n=o.M_.getters.findChannel(e);n&&(n.channel.highlight=0,n.channel.unread=0,n.channel.messages.length>0&&(n.channel.firstUnread=n.channel.messages[n.channel.messages.length-1].id))}),re.A.on("part",async function(e){o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e.chan&&mc(o.M_.state.activeChannel.network.channels[0]);const n=o.M_.getters.findChannel(e.chan);if(!n)return;const t=n.network.channels.findIndex(n=>n.id===e.chan);n.network.channels.splice(t,1),await o.M_.dispatch("partChannel",n)}),re.A.on("quit",async function(e){const n=o.M_.state.activeChannel&&o.M_.state.activeChannel.network.uuid===e.network;o.M_.commit("removeNetwork",e.network),n&&(o.M_.state.networks.length>0?mc(o.M_.state.networks[0].channels[0]):await gc("Connect"))}),re.A.on("sync_sort:networks",function(e){o.M_.commit("sortNetworks",(n,t)=>e.order.indexOf(n.uuid)-e.order.indexOf(t.uuid))}),re.A.on("sync_sort:channels",function(e){const n=o.M_.getters.findNetwork(e.network);n&&n.channels.sort((n,t)=>e.order.indexOf(n.id)-e.order.indexOf(t.id))}),re.A.on("topic",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.topic=e.topic)}),re.A.on("users",function(e){if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e.chan)return re.A.emit("names",{target:e.chan});const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.usersOutdated=!0)}),re.A.on("sign-out",function(){Or.signout()}),re.A.on("sessions:list",function(e){e.sort((e,n)=>n.lastUse-e.lastUse),o.M_.commit("sessions",e)}),re.A.once("configuration",function(e){o.M_.commit("serverConfiguration",e),o.M_.dispatch("settings/applyAll"),e.fileUpload&&fi.initialize();const n=e.themes.find(e=>e.name===o.M_.state.settings.theme);void 0===n?o.M_.dispatch("settings/update",{name:"theme",value:e.defaultTheme,sync:!0}):n.themeColor&&(document.querySelector('meta[name="theme-color"]').content=n.themeColor),document.body.classList.contains("public")&&window.addEventListener("beforeunload",e=>{e.preventDefault(),e.returnValue="Are you sure you want to navigate away from this page?"})}),re.A.on("changelog",function(e){let n;if(o.M_.commit("versionData",e),o.M_.commit("versionDataExpired",!1),n=e.latest?"new-version":e.packages?"new-packages":e.current.changelog?"up-to-date":"error",o.M_.commit("versionStatus",n),e.expiresAt){const n=e.expiresAt-Date.now();n>0?setTimeout(()=>o.M_.commit("versionDataExpired",!0),n):o.M_.commit("versionDataExpired",!0)}}),re.A.on("changelog:newversion",()=>{o.M_.state.serverConfiguration&&(o.M_.state.serverConfiguration.isUpdateAvailable=!0)}),re.A.on("setting:new",async function(e){const n=e.name,t=e.value;await o.M_.dispatch("settings/update",{name:n,value:t,sync:!1})}),re.A.on("setting:all",async function(e){const n=Object.keys(e).length>0;if(o.M_.commit("serverHasSettings",n),n)for(const n in e)await o.M_.dispatch("settings/update",{name:n,value:e[n],sync:!1});else await o.M_.dispatch("settings/syncAll")}),re.A.on("history:clear",function(e){const n=o.M_.getters.findChannel(e.target);n?.channel&&(n.channel.messages=[],n.channel.unread=0,n.channel.highlight=0,n.channel.firstUnread=0,n.channel.moreHistoryAvailable=!1)}),re.A.on("mentions:list",function(e){o.M_.commit("mentions",e.map(Tu))}),re.A.on("search:results",e=>{const n=o.M_.state.messageSearchPendingQuery;n&&n.channelName===e.channelName&&n.networkUuid===e.networkUuid&&n.offset===e.offset&&n.searchTerm===e.searchTerm&&(o.M_.commit("messageSearchPendingQuery",null),o.M_.state.messageSearchResults?o.M_.commit("addMessageSearchResults",e):o.M_.commit("messageSearchResults",{results:e.results}))}),re.A.on("mute:changed",e=>{const{target:n,status:t}=e,a=o.M_.getters.findChannel(n);if(a?.channel.type===Zs.rR.LOBBY)for(const e of a.network.channels)e.type!==Zs.rR.SPECIAL&&(e.muted=t);else a&&(a.channel.muted=t)}),re.A.on("pin:changed",e=>{const{target:n,status:t}=e,a=o.M_.getters.findChannel(n);a&&(a.channel.pinned=t)}),re.A.on("channel:groups",e=>{const n=o.M_.getters.findChannel(e.chan)?.channel;n&&(n.groups=[...e.groups])});function Xu(e){if(0===o.M_.state.networks.length)return;const n=[];let t=-1;for(const e of o.M_.state.networks)for(const a of e.channels)te(e,a)||(-1===t&&o.M_.state.activeChannel?.channel===a&&(t=n.length),n.push(a));const a=n.length;t=((t+e)%a+a)%a,ju(n[t])}function ju(e){mc(e);const n=document.querySelector(`#sidebar .channel-list-item[aria-controls="#chan-${e.id}"]`);n&&n.scrollIntoView({block:"center",inline:"nearest"})}u().bind(["alt+up","alt+down"],function(e,n){return!!g(e)||(Xu("up"===n.split("+").pop()?-1:1),!1)}),function(e){let n=[];document.body.addEventListener("touchmove",function(e){if(2!==e.touches.length)return;const t=e.touches.item(0),a=e.touches.item(1);if(!t||!a)return;const s=window.performance.now(),o=[(t.screenX+a.screenX)/2,(t.screenY+a.screenY)/2];if(n.length>0){const e=n[n.length-1],t=e.center[0]===o[0]&&e.center[1]===o[1];if(e.timestamp===s||t)return}n.push({timestamp:s,center:o})},{passive:!0}),document.body.addEventListener("touchend",function(t){if(!(t.touches.length>=2))try{const t=function(e){if(e.length<2)return null;for(let n=1;n<e.length;++n){const t=e[n-1],a=e[n];if(Rc(t.center,a.center)/Math.abs(t.timestamp-a.timestamp)<.2)return null}return function([e,n],[t,a]){const s=(a-n)/(t-e);return Math.abs(s)<1?e<t?"e":"w":n<a?"s":"n"}(e[0].center,e[e.length-1].center)}(n);t&&e(t)}finally{n=[]}},{passive:!0}),document.body.addEventListener("touchcancel",function(){n=[]},{passive:!0})}(function(e){"e"!==e&&"w"!==e||Xu("e"===e?-1:1)}),u().bind(["alt+shift+up","alt+shift+down"],function(e,n){if(g(e))return!0;const t=o.M_.state.networks.length;if(0===t)return!1;const a="up"===n.split("+").pop()?-1:1;let s=0;return o.M_.state.activeChannel&&(s=o.M_.state.networks.findIndex(e=>e===o.M_.state.activeChannel?.network),-1===a&&o.M_.state.activeChannel?.channel.type!==Zs.rR.LOBBY||(s=((s+a)%t+t)%t)),ju(o.M_.state.networks[s].channels[0]),!1}),u().bind(["alt+mod+up","alt+mod+down"],function(e,n){if(g(e))return!0;const t=o.M_.state.networks.map(e=>e.channels.filter(e=>e.unread||e===o.M_.state.activeChannel?.channel)).flat();if(0===t.length)return;let a=t.findIndex(e=>e===o.M_.state.activeChannel?.channel);const s=t.length;return a=((a+("up"===n.split("+").pop()?-1:1))%s+s)%s,ju(t[a]),!1}),u().bind(["alt+a"],function(e){if(g(e))return!0;let n;e:for(const e of o.M_.state.networks)for(const t of e.channels){if(t.highlight){n=t;break e}t.unread&&!n&&(n=t)}return n&&ju(n),!1}),u().bind(["alt+/"],function(e){return!!g(e)||(gc("Help").catch(e=>console.log(e)),!1)});const Wu={8:!0,9:!0,12:!0,16:!0,17:!0,18:!0,19:!0,20:!0,27:!0,35:!0,36:!0,37:!0,38:!0,39:!0,40:!0,45:!0,46:!0,112:!0,113:!0,114:!0,115:!0,116:!0,117:!0,118:!0,119:!0,120:!0,121:!0,122:!0,123:!0,144:!0,145:!0,224:!0};document.addEventListener("keydown",e=>{if("Escape"===e.key&&"Help"===hc.currentRoute.value.name)return void hc.go(-1);if(e.altKey||Wu[e.which])return;if((e.ctrlKey||e.metaKey)&&86!==e.which)return;if(33===e.which||34===e.which){const e=document.querySelector(".window .chat-content .chat");return void(e&&e.focus())}const n=e.target.tagName;if("INPUT"===n||"TEXTAREA"===n)return;const t=document.getElementById("input");t&&(t.focus(),13===e.which&&e.preventDefault())});const Pu=document.getElementById("favicon"),Ru=Pu?.getAttribute("href")||"",Iu=Pu?.dataset.other||"",Nu=(0,s.Ef)(bu);Nu.use(hc),Nu.use(o.M_,o.Eb),Nu.mount("#app"),re.A.open(),o.M_.watch(e=>e.sidebarOpen,e=>{window.innerWidth>a.mobileViewportPixels&&(h.A.set("thelounge.state.sidebar",e.toString()),r.A.emit("resize"))}),o.M_.watch(e=>e.userlistOpen,e=>{h.A.set("thelounge.state.userlist",e.toString()),r.A.emit("resize")}),o.M_.watch((e,n)=>n.title,e=>{document.title=e}),o.M_.watch((e,n)=>n.highlightCount,e=>{Pu?.setAttribute("href",e>0?Iu:Ru);const n=window.navigator;n.setAppBadge&&(e>0?n.setAppBadge(e).catch(()=>{}):n.clearAppBadge&&n.clearAppBadge().catch(()=>{}))}),Nu.config.errorHandler=function(e){e instanceof Error?o.M_.commit("currentUserVisibleError",`Vue error: ${e.message}`):o.M_.commit("currentUserVisibleError",`Vue error: ${String(e)}`),console.error(e)}},7902:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>p});var a=t(641),s=t(33);const o={class:"content"},i={class:"hostmask"},l={key:0,class:"account"},r={key:1,class:"realname"};var c=t(3568),u=t(6640);const d=(0,a.pM)({name:"MessageTypeJoin",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,t(6262).A)(d,[["render",function(e,n,t,c,u,d){const p=(0,a.g2)("Username"),h=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(p,{user:e.message.from},null,8,["user"]),(0,a.Lk)("i",i,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(h,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),n[1]||(n[1]=(0,a.eW)(")",-1))]),e.message.account?((0,a.uX)(),(0,a.CE)("i",l," ["+(0,s.v_)(e.message.account)+"]",1)):(0,a.Q3)("",!0),e.message.gecos?((0,a.uX)(),(0,a.CE)("i",r," ("+(0,s.v_)(e.message.gecos)+")",1)):(0,a.Q3)("",!0),n[2]||(n[2]=(0,a.eW)(" has joined the channel ",-1))])}]])},8078:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={class:"ctcp-message"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeRequestCTCP",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" sent a ",-1)),n[1]||(n[1]=(0,a.Lk)("abbr",{title:"Client-to-client protocol"},"CTCP",-1)),n[2]||(n[2]=(0,a.eW)(" request: ",-1)),(0,a.Lk)("span",o,[(0,a.bF)(u,{text:e.message.ctcpMessage},null,8,["text"])])])}]])},9207:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641),s=t(33);const o={class:"content"},i=(0,a.pM)({name:"MessageTypeRaw",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,i,l,r){return(0,a.uX)(),(0,a.CE)("span",o,(0,s.v_)(e.message.text),1)}]])},9808:(e,n,t)=>{"use strict";t.d(n,{A:()=>a});const a={set(e,n){try{window.localStorage.setItem(e,n)}catch{}},get(e){try{return window.localStorage.getItem(e)}catch{return null}},remove(e){try{window.localStorage.removeItem(e)}catch{}},clear(){try{window.localStorage.clear()}catch{}}}},9956:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641);const s={class:"content"};var o=t(6640);const i=(0,a.pM)({name:"MessageTypeNick",components:{Username:o.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(r,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" is now known as ",-1)),(0,a.bF)(r,{user:{nick:e.message.new_nick,mode:e.message.from.mode}},null,8,["user"])])}]])},9971:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={key:0,class:"part-reason"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeKick",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[2]||(n[2]=(0,a.eW)(" has kicked; ",-1)),(0,a.bF)(c,{user:e.message.target},null,8,["user"]),e.message.text?((0,a.uX)(),(0,a.CE)("i",o,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(u,{network:e.network,message:e.message},null,8,["network","message"]),n[1]||(n[1]=(0,a.eW)(")",-1))])):(0,a.Q3)("",!0)])}]])}},t={};function a(e){var s=t[e];if(void 0!==s)return s.exports;var o=t[e]={exports:{}};return n[e].call(o.exports,o,o.exports,a),o.exports}a.m=n,e=[],a.O=(n,t,s,o)=>{if(!t){var i=1/0;for(u=0;u<e.length;u++){t=e[u][0],s=e[u][1],o=e[u][2];for(var l=!0,r=0;r<t.length;r++)(!1&o||i>=o)&&Object.keys(a.O).every(e=>a.O[e](t[r]))?t.splice(r--,1):(l=!1,o<i&&(i=o));if(l){e.splice(u--,1);var c=s();void 0!==c&&(n=c)}}return n}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,s,o]},a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={936:0};a.O.j=n=>0===e[n];var n=(n,t)=>{var s,o,i=t[0],l=t[1],r=t[2],c=0;if(i.some(n=>0!==e[n])){for(s in l)a.o(l,s)&&(a.m[s]=l[s]);if(r)var u=r(a)}for(n&&n(t);c<i.length;c++)o=i[c],a.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return a.O(u)},t=self.webpackChunk_lordbex_thelounge=self.webpackChunk_lordbex_thelounge||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))})();var s=a.O(void 0,[110],()=>a(7421));s=a.O(s)})();
|
|
1
|
+
(()=>{var e,n={211:(e,n,t)=>{"use strict";t.d(n,{Eb:()=>f,M_:()=>b,Pj:()=>w});var a=t(2124),s=t(9808),o=t(381);const i={apply(){},default:null,sync:null},l={syncSettings:{default:!0,sync:"never",apply(e,n,t=!1){n&&!t&&o.A.emit("setting:get")}},advanced:{default:!1},autocomplete:{default:!0},nickPostfix:{default:""},coloredNicks:{default:!0},desktopNotifications:{default:!1,sync:"never",apply(e,n){e.commit("refreshDesktopNotificationState",null,{root:!0}),"Notification"in window&&n&&"granted"!==Notification.permission&&Notification.requestPermission(()=>e.commit("refreshDesktopNotificationState",null,{root:!0})).catch(e=>{console.error(e)})}},highlights:{default:"",sync:"always"},highlightExceptions:{default:"",sync:"always"},awayMessage:{default:"",sync:"always"},links:{default:!0},motd:{default:!0},notification:{default:!0,sync:"never"},notifyAllMessages:{default:!1},showSeconds:{default:!1},use12hClock:{default:!1},statusMessages:{default:"condensed"},theme:{default:document.getElementById("theme")?.dataset.serverTheme,apply(e,n){const t=document.getElementById("theme"),a=`themes/${n}.css`;if(!(t instanceof HTMLLinkElement))throw new Error("theme element is not a link");const s=t.attributes.getNamedItem("href");if(!s)throw new Error("theme is missing href attribute");if(s.value===a)return;if(s.value=a,!e.state.serverConfiguration)return;const o=e.state.serverConfiguration?.themes.filter(e=>e.name===n)[0],i=document.querySelector('meta[name="theme-color"]');if(!(i instanceof HTMLMetaElement))throw new Error("theme meta element is not a meta element");if(i){const e=o.themeColor||i.content;i.content=e}}},media:{default:!0},uploadCanvas:{default:!0},userStyles:{default:"",apply(e,n){if(!/[?&]nocss/.test(window.location.search)){const e=document.getElementById("user-specified-css");e&&(e.innerHTML=n)}}},searchEnabled:{default:!1},jumptoEabled:{default:!0},filterdmsEnabled:{default:!0},showAllDMs:{default:!1},showInputNick:{default:!0},disableMutedUnread:{default:!1},compactSidebar:{default:!1},beautifyBridgedMessages:{default:!0},bridgedMessageNicksStyle:{default:"parentheses"},enhancedUserListEnabled:{default:!0},enhancedContextMenuEnabled:{default:!0},enableEnhancedSearch:{default:!1},enableRainbowHotkey:{default:!0}},r=function(e){const n={};for(const t in e)n[t]={...i,...e[t]};return n}(l);function c(){const e={};for(const n in r)e[n]=r[n].default;return e}function u(){let e={};try{e=JSON.parse(s.A.get("settings")||"{}")}catch{s.A.remove("settings")}return e?(null!==e.highlights&&"object"==typeof e.highlights&&(e.highlights=e.highlights.join(", ")),e):{}}function d(e,n){const t={...e};for(const a in e)void 0!==n[a]&&typeof e[a]==typeof n[a]&&(t[a]=n[a]);return t}const p=document.title;var h=function(e){return e.Unsupported="unsupported",e.Blocked="blocked",e.NoHttps="nohttps",e.Granted="granted",e}(h||{});function g(){return"Notification"in window?"granted"===Notification.permission?h.Granted:window.isSecureContext?h.Blocked:h.NoHttps:h.Unsupported}const m={findChannelOnCurrentNetwork:e=>n=>(n=n.toLowerCase(),e.activeChannel?.network.channels.find(e=>e.name.toLowerCase()===n)),findChannelOnNetwork:e=>(n,t)=>{for(const a of e.networks)if(a.uuid===n)for(const e of a.channels)if(e.name===t)return{network:a,channel:e};return null},findChannel:e=>n=>{for(const t of e.networks)for(const e of t.channels)if(e.id===n)return{network:t,channel:e};return null},findNetwork:e=>n=>{for(const t of e.networks)if(t.uuid===n)return t;return null},highlightCount(e){let n=0;for(const t of e.networks)for(const e of t.channels)e.muted||(n+=e.highlight);return n},title:(e,n)=>(n.highlightCount?`(${n.highlightCount.toString()}) `:"")+(e.activeChannel?`${e.activeChannel.channel.name} โ `:"")+p},k={state:()=>({appLoaded:!1,activeChannel:void 0,currentUserVisibleError:null,desktopNotificationState:g(),isAutoCompleting:!1,isConnected:!1,networks:[],mentions:[],hasServiceWorker:!1,pushNotificationState:"unsupported",serverConfiguration:null,sessions:[],sidebarOpen:!1,sidebarDragging:!1,userlistOpen:"false"!==s.A.get("thelounge.state.userlist"),versionData:null,versionStatus:"loading",versionDataExpired:!1,serverHasSettings:!1,messageSearchResults:null,messageSearchPendingQuery:null,searchEnabled:!1}),mutations:{appLoaded(e){e.appLoaded=!0},activeChannel(e,n){e.activeChannel=n},currentUserVisibleError(e,n){e.currentUserVisibleError=n},refreshDesktopNotificationState(e){e.desktopNotificationState=g()},isAutoCompleting(e,n){e.isAutoCompleting=n},isConnected(e,n){e.isConnected=n},networks(e,n){e.networks=n},mentions(e,n){e.mentions=n},removeNetwork(e,n){e.networks.splice(e.networks.findIndex(e=>e.uuid===n),1)},sortNetworks(e,n){e.networks.sort(n)},hasServiceWorker(e){e.hasServiceWorker=!0},pushNotificationState(e,n){e.pushNotificationState=n},serverConfiguration(e,n){e.serverConfiguration=n},sessions(e,n){e.sessions=n},sidebarOpen(e,n){e.sidebarOpen=n},sidebarDragging(e,n){e.sidebarDragging=n},toggleSidebar(e){e.sidebarOpen=!e.sidebarOpen},toggleUserlist(e){e.userlistOpen=!e.userlistOpen},userlistOpen(e,n){e.userlistOpen=n},versionData(e,n){e.versionData=n},versionStatus(e,n){e.versionStatus=n},versionDataExpired(e,n){e.versionDataExpired=n},serverHasSettings(e,n){e.serverHasSettings=n},messageSearchPendingQuery(e,n){e.messageSearchPendingQuery=n},messageSearchResults(e,n){e.messageSearchResults=n},addMessageSearchResults(e,n){if(e.messageSearchResults||(e.messageSearchResults={results:[]}),!n)return;const t=[...n.results,...e.messageSearchResults.results];e.messageSearchResults={results:t}}},actions:{partChannel({commit:e,state:n},t){e("mentions",n.mentions.filter(e=>!(e.chanId===t.channel.id)))}},getters:m},f=Symbol(),b=(0,a.y$)(k),v=function(e){return{namespaced:!0,state:d(c(),u()),mutations:{set(e,{name:n,value:t}){e[n]=t}},actions:{syncAll({state:n},t=!1){if(!1!==n.syncSettings||!1!==t){e.commit("serverHasSettings",!0);for(const e in n)"never"===r[e].sync&&"always"!==r[e].sync||o.A.emit("setting:set",{name:e,value:n[e]})}},applyAll({state:n}){for(const t in r)r[t].apply(e,n[t],!0)},update({state:n,commit:t},{name:a,value:i,sync:l=!1}){if(n[a]===i)return;const c=r[a];c&&(!1!==l||!1!==n.syncSettings&&"never"!==c.sync)&&(t("set",{name:a,value:i}),s.A.set("settings",JSON.stringify(n)),c.apply(e,i),l&&(n.syncSettings&&"never"!==c.sync||"always"===c.sync)&&o.A.emit("setting:set",{name:a,value:i}))}}}}(b);function w(){return(0,a.Pj)(f)}b.registerModule("settings",v)},381:(e,n,t)=>{"use strict";t.d(n,{A:()=>a});const a=(0,t(3508).Ay)({transports:JSON.parse(document.body.dataset.transports||"['polling', 'websocket']"),path:window.location.pathname+"socket.io/",autoConnect:!1,reconnection:!document.body.classList.contains("public")})},514:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var a=t(641);const s={class:"content"};var o=t(3568),i=t(6640);const l=(0,a.pM)({name:"MessageTypeMode",components:{ParsedMessage:o.A,Username:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),r=(0,t(6262).A)(l,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("Username"),c=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(r,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" sets mode ",-1)),(0,a.bF)(c,{message:e.message},null,8,["message"])])}]])},875:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>u});var a=t(641);const s={class:"content"},o={class:"hostmask"},i={key:0,class:"quit-reason"};var l=t(3568),r=t(6640);const c=(0,a.pM)({name:"MessageTypeQuit",components:{ParsedMessage:l.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),u=(0,t(6262).A)(c,[["render",function(e,n,t,l,r,c){const u=(0,a.g2)("Username"),d=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),(0,a.Lk)("i",o,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(d,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),n[1]||(n[1]=(0,a.eW)(")",-1))]),n[4]||(n[4]=(0,a.eW)(" has quit ",-1)),e.message.text?((0,a.uX)(),(0,a.CE)("i",i,[n[2]||(n[2]=(0,a.eW)("(",-1)),(0,a.bF)(d,{network:e.network,message:e.message},null,8,["network","message"]),n[3]||(n[3]=(0,a.eW)(")",-1))])):(0,a.Q3)("",!0)])}]])},991:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={class:"away-message"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeAway",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("ParsedMessage"),u=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",s,[e.message.self?((0,a.uX)(),(0,a.Wv)(c,{key:0,network:e.network,message:e.message},null,8,["network","message"])):((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),n[2]||(n[2]=(0,a.eW)(" is away ",-1)),(0,a.Lk)("i",o,[n[0]||(n[0]=(0,a.eW)("(",-1)),(0,a.bF)(c,{network:e.network,message:e.message},null,8,["network","message"]),n[1]||(n[1]=(0,a.eW)(")",-1))])],64))])}]])},1191:(e,n,t)=>{var a={"./away.vue":991,"./back.vue":1344,"./chghost.vue":2462,"./ctcp.vue":6455,"./ctcp_request.vue":8078,"./error.vue":2429,"./invite.vue":3393,"./join.vue":7902,"./kick.vue":9971,"./mass_event.vue":1740,"./mode.vue":514,"./mode_channel.vue":7062,"./mode_user.vue":5506,"./monospace_block.vue":3107,"./nick.vue":9956,"./part.vue":5182,"./quit.vue":875,"./raw.vue":9207,"./topic.vue":4379,"./topic_set_by.vue":6789,"./whois.vue":2837};function s(e){var n=o(e);return t(n)}function o(e){if(!t.o(a,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=o,e.exports=s,s.id=1191},1344:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var a=t(641);const s={class:"content"};var o=t(3568),i=t(6640);const l=(0,a.pM)({name:"MessageTypeBack",components:{ParsedMessage:o.A,Username:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),r=(0,t(6262).A)(l,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("ParsedMessage"),c=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",s,[e.message.self?((0,a.uX)(),(0,a.Wv)(r,{key:0,network:e.network,message:e.message},null,8,["network","message"])):((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" is back ",-1))],64))])}]])},1654:(e,n,t)=>{"use strict";t.d(n,{cL:()=>s,gC:()=>o,rR:()=>a});let a=function(e){return e.CHANNEL="channel",e.LOBBY="lobby",e.QUERY="query",e.SPECIAL="special",e}({}),s=function(e){return e.BANLIST="list_bans",e.INVITELIST="list_invites",e.CHANNELLIST="list_channels",e.IGNORELIST="list_ignored",e}({}),o=function(e){return e[e.PARTED=0]="PARTED",e[e.JOINED=1]="JOINED",e}({})},1740:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641),s=t(33);const o={class:"content mass-event-summary"},i={class:"mass-event-duration"};var l=t(211);const r=(0,a.pM)({name:"MessageTypeMassEvent",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({store:(0,l.Pj)(),summaryParts:(0,a.EW)(()=>{const n=[],t=e.message.massEventSummary;return t?(t.joins>0&&n.push(`${t.joins} user${1!==t.joins?"s":""} joined`),t.parts>0&&n.push(`${t.parts} user${1!==t.parts?"s":""} left`),t.quits>0&&n.push(`${t.quits} user${1!==t.quits?"s":""} quit`),t.kicks>0&&n.push(`${t.kicks} user${1!==t.kicks?"s":""} kicked`),t.nicks>0&&n.push(`${t.nicks} nick change${1!==t.nicks?"s":""}`),t.modes>0&&n.push(`${t.modes} mode change${1!==t.modes?"s":""}`),t.chghosts>0&&n.push(`${t.chghosts} host change${1!==t.chghosts?"s":""}`),t.away>0&&n.push(`${t.away} user${1!==t.away?"s":""} away`),t.back>0&&n.push(`${t.back} user${1!==t.back?"s":""} back`),n.length>0?n:["No events"]):["No summary data"]}),formattedDuration:(0,a.EW)(()=>{const n=e.message.massEventSummary;if(!n||!n.duration)return"0s";const t=Math.round(n.duration/1e3);if(t<60)return`${t}s`;const a=Math.floor(t/60),s=t%60;return 0===s?`${a}m`:`${a}m ${s}s`})})}),c=(0,t(6262).A)(r,[["render",function(e,n,t,l,r,c){return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.Lk)("strong",null,"Mass event:",-1)),((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(e.summaryParts,(e,n)=>((0,a.uX)(),(0,a.CE)("span",{key:n},(0,s.v_)(n>0?", ":" ")+(0,s.v_)(e),1))),128)),(0,a.Lk)("i",i," ("+(0,s.v_)(e.formattedDuration)+")",1)])}]])},2429:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641);const s={class:"content"};var o=t(3568);const i=(0,a.pM)({name:"MessageTypeError",components:{ParsedMessage:o.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({errorMessage:(0,a.EW)(()=>{const n=e.message.channel||"!UNKNOWN_CHAN",t=e.message.nick||"!UNKNOWN_NICK";switch(e.message.error){case"bad_channel_key":return`Cannot join ${n} - Bad channel key.`;case"banned_from_channel":return`Cannot join ${n} - You have been banned from the channel.`;case"cannot_send_to_channel":return`Cannot send to channel ${n}`;case"channel_is_full":return`Cannot join ${n} - Channel is full.`;case"chanop_privs_needed":return"Cannot perform action: You're not a channel operator.";case"invite_only_channel":return`Cannot join ${n} - Channel is invite only.`;case"no_such_nick":return`User ${t} hasn't logged in or does not exist.`;case"not_on_channel":return"Cannot perform action: You're not on the channel.";case"password_mismatch":return"Password mismatch.";case"too_many_channels":return`Cannot join ${n} - You've already reached the maximum number of channels allowed.`;case"unknown_command":return`Unknown command: ${e.message.command||"!UNDEFINED_COMMAND_BUG"}`;case"user_not_in_channel":return`User ${t} is not on the channel.`;case"user_on_channel":return`User ${t} is already on the channel.`;default:return e.message.reason?`${e.message.reason} (${e.message.error||"!UNDEFINED_ERR"})`:e.message.error}})})}),l=(0,t(6262).A)(i,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(r,{network:e.network,message:e.message,text:e.errorMessage},null,8,["network","message","text"])])}]])},2462:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>p});var a=t(641),s=t(33);const o={class:"content"},i={key:0},l={key:1},r={class:"hostmask"};var c=t(3568),u=t(6640);const d=(0,a.pM)({name:"MessageTypeChangeHost",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,t(6262).A)(d,[["render",function(e,n,t,c,u,d){const p=(0,a.g2)("Username"),h=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(p,{user:e.message.from},null,8,["user"]),n[2]||(n[2]=(0,a.eW)(" has changed ",-1)),e.message.new_ident?((0,a.uX)(),(0,a.CE)("span",i,[n[0]||(n[0]=(0,a.eW)("username to ",-1)),(0,a.Lk)("b",null,(0,s.v_)(e.message.new_ident),1)])):(0,a.Q3)("",!0),e.message.new_host?((0,a.uX)(),(0,a.CE)("span",l,[n[1]||(n[1]=(0,a.eW)("hostname to ",-1)),(0,a.Lk)("i",r,[(0,a.bF)(h,{network:e.network,text:e.message.new_host},null,8,["network","text"])])])):(0,a.Q3)("",!0)])}]])},2806:(e,n,t)=>{"use strict";t.d(n,{A:()=>s});const a=new Map,s=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)})}}},2837:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>k});var a=t(641),s=t(33);const o={class:"content"},i={key:0},l={class:"whois"},r={class:"hostmask"},c={class:"hostmask"},u=["href"],d={key:0};var p=t(7321),h=t(3568),g=t(6640);const m=(0,a.pM)({name:"MessageTypeWhois",components:{ParsedMessage:h.A,Username:g.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,p.A)(e)})}),k=(0,t(6262).A)(m,[["render",function(e,n,t,p,h,g){const m=(0,a.g2)("Username"),k=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.Lk)("p",null,[(0,a.bF)(m,{user:{nick:e.message.whois.nick}},null,8,["user"]),e.message.whois.whowas?((0,a.uX)(),(0,a.CE)("span",i," is offline, last information:")):(0,a.Q3)("",!0)]),(0,a.Lk)("dl",l,[e.message.whois.account?((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[n[0]||(n[0]=(0,a.Lk)("dt",null,"Logged in as:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.account),1)],64)):(0,a.Q3)("",!0),n[20]||(n[20]=(0,a.Lk)("dt",null,"Host mask:",-1)),(0,a.Lk)("dd",r,[(0,a.bF)(k,{network:e.network,text:e.message.whois.ident+"@"+e.message.whois.hostname},null,8,["network","text"])]),e.message.whois.actual_hostname?((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[n[1]||(n[1]=(0,a.Lk)("dt",null,"Actual host:",-1)),(0,a.Lk)("dd",c,[(0,a.Lk)("a",{href:"https://ipinfo.io/"+e.message.whois.actual_ip,target:"_blank",rel:"noopener"},(0,s.v_)(e.message.whois.actual_ip),9,u),e.message.whois.actual_hostname!=e.message.whois.actual_ip?((0,a.uX)(),(0,a.CE)("i",d," ("+(0,s.v_)(e.message.whois.actual_hostname)+")",1)):(0,a.Q3)("",!0)])],64)):(0,a.Q3)("",!0),e.message.whois.actual_username?((0,a.uX)(),(0,a.CE)(a.FK,{key:2},[n[2]||(n[2]=(0,a.Lk)("dt",null,"Actual username:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.actual_username),1)],64)):(0,a.Q3)("",!0),e.message.whois.real_name?((0,a.uX)(),(0,a.CE)(a.FK,{key:3},[n[3]||(n[3]=(0,a.Lk)("dt",null,"Real name:",-1)),(0,a.Lk)("dd",null,[(0,a.bF)(k,{network:e.network,text:e.message.whois.real_name},null,8,["network","text"])])],64)):(0,a.Q3)("",!0),e.message.whois.registered_nick?((0,a.uX)(),(0,a.CE)(a.FK,{key:4},[n[4]||(n[4]=(0,a.Lk)("dt",null,"Registered nick:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.registered_nick),1)],64)):(0,a.Q3)("",!0),e.message.whois.channels?((0,a.uX)(),(0,a.CE)(a.FK,{key:5},[n[5]||(n[5]=(0,a.Lk)("dt",null,"Channels:",-1)),(0,a.Lk)("dd",null,[(0,a.bF)(k,{network:e.network,text:e.message.whois.channels},null,8,["network","text"])])],64)):(0,a.Q3)("",!0),e.message.whois.modes?((0,a.uX)(),(0,a.CE)(a.FK,{key:6},[n[6]||(n[6]=(0,a.Lk)("dt",null,"Modes:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.modes),1)],64)):(0,a.Q3)("",!0),e.message.whois.special?((0,a.uX)(!0),(0,a.CE)(a.FK,{key:7},(0,a.pI)(e.message.whois.special,e=>((0,a.uX)(),(0,a.CE)(a.FK,{key:e},[n[7]||(n[7]=(0,a.Lk)("dt",null,"Special:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e),1)],64))),128)):(0,a.Q3)("",!0),e.message.whois.operator?((0,a.uX)(),(0,a.CE)(a.FK,{key:8},[n[8]||(n[8]=(0,a.Lk)("dt",null,"Operator:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.message.whois.operator),1)],64)):(0,a.Q3)("",!0),e.message.whois.helpop?((0,a.uX)(),(0,a.CE)(a.FK,{key:9},[n[9]||(n[9]=(0,a.Lk)("dt",null,"Available for help:",-1)),n[10]||(n[10]=(0,a.Lk)("dd",null,"Yes",-1))],64)):(0,a.Q3)("",!0),e.message.whois.bot?((0,a.uX)(),(0,a.CE)(a.FK,{key:10},[n[11]||(n[11]=(0,a.Lk)("dt",null,"Is a bot:",-1)),n[12]||(n[12]=(0,a.Lk)("dd",null,"Yes",-1))],64)):(0,a.Q3)("",!0),e.message.whois.away?((0,a.uX)(),(0,a.CE)(a.FK,{key:11},[n[13]||(n[13]=(0,a.Lk)("dt",null,"Away:",-1)),(0,a.Lk)("dd",null,[(0,a.bF)(k,{network:e.network,text:e.message.whois.away},null,8,["network","text"])])],64)):(0,a.Q3)("",!0),e.message.whois.secure?((0,a.uX)(),(0,a.CE)(a.FK,{key:12},[n[14]||(n[14]=(0,a.Lk)("dt",null,"Secure connection:",-1)),n[15]||(n[15]=(0,a.Lk)("dd",null,"Yes",-1))],64)):(0,a.Q3)("",!0),e.message.whois.certfps?((0,a.uX)(!0),(0,a.CE)(a.FK,{key:13},(0,a.pI)(e.message.whois.certfps,e=>((0,a.uX)(),(0,a.CE)(a.FK,{key:e},[n[16]||(n[16]=(0,a.Lk)("dt",null,"Certificate:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e),1)],64))),128)):(0,a.Q3)("",!0),e.message.whois.server?((0,a.uX)(),(0,a.CE)(a.FK,{key:14},[n[17]||(n[17]=(0,a.Lk)("dt",null,"Connected to:",-1)),(0,a.Lk)("dd",null,[(0,a.eW)((0,s.v_)(e.message.whois.server)+" ",1),(0,a.Lk)("i",null,"("+(0,s.v_)(e.message.whois.server_info)+")",1)])],64)):(0,a.Q3)("",!0),e.message.whois.logonTime?((0,a.uX)(),(0,a.CE)(a.FK,{key:15},[n[18]||(n[18]=(0,a.Lk)("dt",null,"Connected at:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.localetime(e.message.whois.logonTime)),1)],64)):(0,a.Q3)("",!0),e.message.whois.idle?((0,a.uX)(),(0,a.CE)(a.FK,{key:16},[n[19]||(n[19]=(0,a.Lk)("dt",null,"Idle since:",-1)),(0,a.Lk)("dd",null,(0,s.v_)(e.localetime(e.message.whois.idleTime)),1)],64)):(0,a.Q3)("",!0)])])}]])},3107:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var a=t(641);const s={class:"content"},o={class:"text"};var i=t(3568);const l=(0,a.pM)({name:"MessageTypeMonospaceBlock",components:{ParsedMessage:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({cleanText:(0,a.EW)(()=>{let n=e.message.text.split("\n");return n.every(e=>""===e||"-"===e[0])&&(n=n.map(e=>e.substring(2))),n.map(e=>e.replace(/\s*$/,"")).join("\n").replace(/^[\r\n]+|[\r\n]+$/g,"")})})}),r=(0,t(6262).A)(l,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.Lk)("span",o,[(0,a.bF)(c,{network:e.network,text:e.cleanText},null,8,["network","text"])])])}]])},3388:(e,n,t)=>{"use strict";t.d(n,{A:()=>s});const a=["Bytes","KiB","MiB","GiB","TiB","PiB"],s=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]}`}},3393:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={key:0};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeInvite",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" invited ",-1)),e.message.invitedYou?((0,a.uX)(),(0,a.CE)("span",o,"you")):((0,a.uX)(),(0,a.Wv)(c,{key:1,user:e.message.target},null,8,["user"])),n[1]||(n[1]=(0,a.eW)(" to ",-1)),(0,a.bF)(u,{network:e.network,text:e.message.channel},null,8,["network","text"])])}]])},3568:(e,n,t)=>{"use strict";t.d(n,{A:()=>N});var a=t(641);const s=/^(\d{1,2})(?:,(\d{1,2}))?/,o=/^([0-9a-f]{6})(?:,([0-9a-f]{6}))?/i,i=/[\u0000-\u0009\u000B-\u001F]/g,l=["bold","textColor","bgColor","hexColor","hexBgColor","italic","underline","strikethrough","monospace"];var r=t(680),c=t.n(r);function u(e){return c()(e).replace("-","\\-")}var d=t(2319),p=t(9011);const h=(0,d.A)().tlds(p).tlds("onion",!0),g=["sftp","smb","file","irc","ircs","svn","git","steam","mumble","ts3server","svn+ssh","ssh","gopher","gemini"];for(const e of g)h.add(e+":","http:");function m(e){return{start:e.index,end:e.lastIndex,link:e.url}}h.add("web+",{validate(e,n,t){const a=/^[a-z]+:/gi;if(!a.test(e.slice(n)))return 0;const s=t.testSchemaAt(e,"http:",n+a.lastIndex);return 0===s?0:a.lastIndex+s},normalize(e){e.schema=e.text.slice(0,e.text.indexOf(":")+1)}}),h.add("//",{validate:h.__schemas__["//"].validate,normalize(e){e.schema="",e.url="http:"+e.url}});const k=(0,t(631).A)(),f=/([\w[\]\\`^{|}-]+)/g,b=function(e,n){return e.start<=n.start&&n.start<e.end||e.start<n.end&&n.end<=e.end||n.start<=e.start&&e.start<n.end||n.start<e.end&&e.end<=n.end};function v(e,n){return e.start-n.start||n.end-e.end}const w=JSON.parse('{"๐":"grinning face","๐":"grinning face with big eyes","๐":"grinning face with smiling eyes","๐":"beaming face with smiling eyes","๐":"grinning squinting face","๐
":"grinning face with sweat","๐คฃ":"rolling on the floor laughing","๐":"face with tears of joy","๐":"slightly smiling face","๐":"upside-down face","๐ซ ":"melting face","๐":"winking face","๐":"smiling face with smiling eyes","๐":"smiling face with halo","๐ฅฐ":"smiling face with hearts","๐":"smiling face with heart-eyes","๐คฉ":"star-struck","๐":"face blowing a kiss","๐":"kissing face","โบ":"smiling face","๐":"kissing face with closed eyes","๐":"kissing face with smiling eyes","๐ฅฒ":"smiling face with tear","๐":"face savoring food","๐":"face with tongue","๐":"winking face with tongue","๐คช":"zany face","๐":"squinting face with tongue","๐ค":"money-mouth face","๐ค":"smiling face with open hands","๐คญ":"face with hand over mouth","๐ซข":"face with open eyes and hand over mouth","๐ซฃ":"face with peeking eye","๐คซ":"shushing face","๐ค":"thinking face","๐ซก":"saluting face","๐ค":"zipper-mouth face","๐คจ":"face with raised eyebrow","๐":"neutral face","๐":"expressionless face","๐ถ":"face without mouth","๐ซฅ":"dotted line face","๐ถโ๐ซ":"face in clouds","๐":"smirking face","๐":"unamused face","๐":"face with rolling eyes","๐ฌ":"grimacing face","๐ฎโ๐จ":"face exhaling","๐คฅ":"lying face","๐ซจ":"shaking face","๐":"relieved face","๐":"pensive face","๐ช":"sleepy face","๐คค":"drooling face","๐ด":"sleeping face","๐ท":"face with medical mask","๐ค":"face with thermometer","๐ค":"face with head-bandage","๐คข":"nauseated face","๐คฎ":"face vomiting","๐คง":"sneezing face","๐ฅต":"hot face","๐ฅถ":"cold face","๐ฅด":"woozy face","๐ต":"face with crossed-out eyes","๐ตโ๐ซ":"face with spiral eyes","๐คฏ":"exploding head","๐ค ":"cowboy hat face","๐ฅณ":"partying face","๐ฅธ":"disguised face","๐":"smiling face with sunglasses","๐ค":"nerd face","๐ง":"face with monocle","๐":"confused face","๐ซค":"face with diagonal mouth","๐":"worried face","๐":"slightly frowning face","โน":"frowning face","๐ฎ":"face with open mouth","๐ฏ":"hushed face","๐ฒ":"astonished face","๐ณ":"flushed face","๐ฅบ":"pleading face","๐ฅน":"face holding back tears","๐ฆ":"frowning face with open mouth","๐ง":"anguished face","๐จ":"fearful face","๐ฐ":"anxious face with sweat","๐ฅ":"sad but relieved face","๐ข":"crying face","๐ญ":"loudly crying face","๐ฑ":"face screaming in fear","๐":"confounded face","๐ฃ":"persevering face","๐":"disappointed face","๐":"downcast face with sweat","๐ฉ":"weary face","๐ซ":"tired face","๐ฅฑ":"yawning face","๐ค":"face with steam from nose","๐ก":"enraged face","๐ ":"angry face","๐คฌ":"face with symbols on mouth","๐":"smiling face with horns","๐ฟ":"angry face with horns","๐":"skull","โ ":"skull and crossbones","๐ฉ":"pile of poo","๐คก":"clown face","๐น":"ogre","๐บ":"goblin","๐ป":"ghost","๐ฝ":"alien","๐พ":"alien monster","๐ค":"robot","๐บ":"grinning cat","๐ธ":"grinning cat with smiling eyes","๐น":"cat with tears of joy","๐ป":"smiling cat with heart-eyes","๐ผ":"cat with wry smile","๐ฝ":"kissing cat","๐":"weary cat","๐ฟ":"crying cat","๐พ":"pouting cat","๐":"see-no-evil monkey","๐":"hear-no-evil monkey","๐":"speak-no-evil monkey","๐":"love letter","๐":"heart with arrow","๐":"heart with ribbon","๐":"sparkling heart","๐":"growing heart","๐":"beating heart","๐":"revolving hearts","๐":"two hearts","๐":"heart decoration","โฃ":"heart exclamation","๐":"broken heart","โคโ๐ฅ":"heart on fire","โคโ๐ฉน":"mending heart","โค":"red heart","๐ฉท":"pink heart","๐งก":"orange heart","๐":"yellow heart","๐":"green heart","๐":"blue heart","๐ฉต":"light blue heart","๐":"purple heart","๐ค":"brown heart","๐ค":"black heart","๐ฉถ":"grey heart","๐ค":"white heart","๐":"kiss mark","๐ฏ":"hundred points","๐ข":"anger symbol","๐ฅ":"collision","๐ซ":"dizzy","๐ฆ":"sweat droplets","๐จ":"dashing away","๐ณ":"hole","๐ฌ":"speech balloon","๐โ๐จ":"eye in speech bubble","๐จ":"left speech bubble","๐ฏ":"right anger bubble","๐ญ":"thought balloon","๐ค":"ZZZ","๐":"waving hand","๐ค":"raised back of hand","๐":"hand with fingers splayed","โ":"raised hand","๐":"vulcan salute","๐ซฑ":"rightwards hand","๐ซฒ":"leftwards hand","๐ซณ":"palm down hand","๐ซด":"palm up hand","๐ซท":"leftwards pushing hand","๐ซธ":"rightwards pushing hand","๐":"OK hand","๐ค":"pinched fingers","๐ค":"pinching hand","โ":"victory hand","๐ค":"crossed fingers","๐ซฐ":"hand with index finger and thumb crossed","๐ค":"love-you gesture","๐ค":"sign of the horns","๐ค":"call me hand","๐":"backhand index pointing left","๐":"backhand index pointing right","๐":"backhand index pointing up","๐":"middle finger","๐":"backhand index pointing down","โ":"index pointing up","๐ซต":"index pointing at the viewer","๐":"thumbs up","๐":"thumbs down","โ":"raised fist","๐":"oncoming fist","๐ค":"left-facing fist","๐ค":"right-facing fist","๐":"clapping hands","๐":"raising hands","๐ซถ":"heart hands","๐":"open hands","๐คฒ":"palms up together","๐ค":"handshake","๐":"folded hands","โ":"writing hand","๐
":"nail polish","๐คณ":"selfie","๐ช":"flexed biceps","๐ฆพ":"mechanical arm","๐ฆฟ":"mechanical leg","๐ฆต":"leg","๐ฆถ":"foot","๐":"ear","๐ฆป":"ear with hearing aid","๐":"nose","๐ง ":"brain","๐ซ":"anatomical heart","๐ซ":"lungs","๐ฆท":"tooth","๐ฆด":"bone","๐":"eyes","๐":"eye","๐
":"tongue","๐":"mouth","๐ซฆ":"biting lip","๐ถ":"baby","๐ง":"child","๐ฆ":"boy","๐ง":"girl","๐ง":"person","๐ฑ":"person: blond hair","๐จ":"man","๐ง":"person: beard","๐งโโ":"man: beard","๐งโโ":"woman: beard","๐จโ๐ฆฐ":"man: red hair","๐จโ๐ฆฑ":"man: curly hair","๐จโ๐ฆณ":"man: white hair","๐จโ๐ฆฒ":"man: bald","๐ฉ":"woman","๐ฉโ๐ฆฐ":"woman: red hair","๐งโ๐ฆฐ":"person: red hair","๐ฉโ๐ฆฑ":"woman: curly hair","๐งโ๐ฆฑ":"person: curly hair","๐ฉโ๐ฆณ":"woman: white hair","๐งโ๐ฆณ":"person: white hair","๐ฉโ๐ฆฒ":"woman: bald","๐งโ๐ฆฒ":"person: bald","๐ฑโโ":"woman: blond hair","๐ฑโโ":"man: blond hair","๐ง":"older person","๐ด":"old man","๐ต":"old woman","๐":"person frowning","๐โโ":"man frowning","๐โโ":"woman frowning","๐":"person pouting","๐โโ":"man pouting","๐โโ":"woman pouting","๐
":"person gesturing NO","๐
โโ":"man gesturing NO","๐
โโ":"woman gesturing NO","๐":"person gesturing OK","๐โโ":"man gesturing OK","๐โโ":"woman gesturing OK","๐":"person tipping hand","๐โโ":"man tipping hand","๐โโ":"woman tipping hand","๐":"person raising hand","๐โโ":"man raising hand","๐โโ":"woman raising hand","๐ง":"deaf person","๐งโโ":"deaf man","๐งโโ":"deaf woman","๐":"person bowing","๐โโ":"man bowing","๐โโ":"woman bowing","๐คฆ":"person facepalming","๐คฆโโ":"man facepalming","๐คฆโโ":"woman facepalming","๐คท":"person shrugging","๐คทโโ":"man shrugging","๐คทโโ":"woman shrugging","๐งโโ":"health worker","๐จโโ":"man health worker","๐ฉโโ":"woman health worker","๐งโ๐":"student","๐จโ๐":"man student","๐ฉโ๐":"woman student","๐งโ๐ซ":"teacher","๐จโ๐ซ":"man teacher","๐ฉโ๐ซ":"woman teacher","๐งโโ":"judge","๐จโโ":"man judge","๐ฉโโ":"woman judge","๐งโ๐พ":"farmer","๐จโ๐พ":"man farmer","๐ฉโ๐พ":"woman farmer","๐งโ๐ณ":"cook","๐จโ๐ณ":"man cook","๐ฉโ๐ณ":"woman cook","๐งโ๐ง":"mechanic","๐จโ๐ง":"man mechanic","๐ฉโ๐ง":"woman mechanic","๐งโ๐ญ":"factory worker","๐จโ๐ญ":"man factory worker","๐ฉโ๐ญ":"woman factory worker","๐งโ๐ผ":"office worker","๐จโ๐ผ":"man office worker","๐ฉโ๐ผ":"woman office worker","๐งโ๐ฌ":"scientist","๐จโ๐ฌ":"man scientist","๐ฉโ๐ฌ":"woman scientist","๐งโ๐ป":"technologist","๐จโ๐ป":"man technologist","๐ฉโ๐ป":"woman technologist","๐งโ๐ค":"singer","๐จโ๐ค":"man singer","๐ฉโ๐ค":"woman singer","๐งโ๐จ":"artist","๐จโ๐จ":"man artist","๐ฉโ๐จ":"woman artist","๐งโโ":"pilot","๐จโโ":"man pilot","๐ฉโโ":"woman pilot","๐งโ๐":"astronaut","๐จโ๐":"man astronaut","๐ฉโ๐":"woman astronaut","๐งโ๐":"firefighter","๐จโ๐":"man firefighter","๐ฉโ๐":"woman firefighter","๐ฎ":"police officer","๐ฎโโ":"man police officer","๐ฎโโ":"woman police officer","๐ต":"detective","๐ตโโ":"man detective","๐ตโโ":"woman detective","๐":"guard","๐โโ":"man guard","๐โโ":"woman guard","๐ฅท":"ninja","๐ท":"construction worker","๐ทโโ":"man construction worker","๐ทโโ":"woman construction worker","๐ซ
":"person with crown","๐คด":"prince","๐ธ":"princess","๐ณ":"person wearing turban","๐ณโโ":"man wearing turban","๐ณโโ":"woman wearing turban","๐ฒ":"person with skullcap","๐ง":"woman with headscarf","๐คต":"person in tuxedo","๐คตโโ":"man in tuxedo","๐คตโโ":"woman in tuxedo","๐ฐ":"person with veil","๐ฐโโ":"man with veil","๐ฐโโ":"woman with veil","๐คฐ":"pregnant woman","๐ซ":"pregnant man","๐ซ":"pregnant person","๐คฑ":"breast-feeding","๐ฉโ๐ผ":"woman feeding baby","๐จโ๐ผ":"man feeding baby","๐งโ๐ผ":"person feeding baby","๐ผ":"baby angel","๐
":"Santa Claus","๐คถ":"Mrs. Claus","๐งโ๐":"mx claus","๐ฆธ":"superhero","๐ฆธโโ":"man superhero","๐ฆธโโ":"woman superhero","๐ฆน":"supervillain","๐ฆนโโ":"man supervillain","๐ฆนโโ":"woman supervillain","๐ง":"mage","๐งโโ":"man mage","๐งโโ":"woman mage","๐ง":"fairy","๐งโโ":"man fairy","๐งโโ":"woman fairy","๐ง":"vampire","๐งโโ":"man vampire","๐งโโ":"woman vampire","๐ง":"merperson","๐งโโ":"merman","๐งโโ":"mermaid","๐ง":"elf","๐งโโ":"man elf","๐งโโ":"woman elf","๐ง":"genie","๐งโโ":"man genie","๐งโโ":"woman genie","๐ง":"zombie","๐งโโ":"man zombie","๐งโโ":"woman zombie","๐ง":"troll","๐":"person getting massage","๐โโ":"man getting massage","๐โโ":"woman getting massage","๐":"person getting haircut","๐โโ":"man getting haircut","๐โโ":"woman getting haircut","๐ถ":"person walking","๐ถโโ":"man walking","๐ถโโ":"woman walking","๐ง":"person standing","๐งโโ":"man standing","๐งโโ":"woman standing","๐ง":"person kneeling","๐งโโ":"man kneeling","๐งโโ":"woman kneeling","๐งโ๐ฆฏ":"person with white cane","๐จโ๐ฆฏ":"man with white cane","๐ฉโ๐ฆฏ":"woman with white cane","๐งโ๐ฆผ":"person in motorized wheelchair","๐จโ๐ฆผ":"man in motorized wheelchair","๐ฉโ๐ฆผ":"woman in motorized wheelchair","๐งโ๐ฆฝ":"person in manual wheelchair","๐จโ๐ฆฝ":"man in manual wheelchair","๐ฉโ๐ฆฝ":"woman in manual wheelchair","๐":"person running","๐โโ":"man running","๐โโ":"woman running","๐":"woman dancing","๐บ":"man dancing","๐ด":"person in suit levitating","๐ฏ":"people with bunny ears","๐ฏโโ":"men with bunny ears","๐ฏโโ":"women with bunny ears","๐ง":"person in steamy room","๐งโโ":"man in steamy room","๐งโโ":"woman in steamy room","๐ง":"person climbing","๐งโโ":"man climbing","๐งโโ":"woman climbing","๐คบ":"person fencing","๐":"horse racing","โท":"skier","๐":"snowboarder","๐":"person golfing","๐โโ":"man golfing","๐โโ":"woman golfing","๐":"person surfing","๐โโ":"man surfing","๐โโ":"woman surfing","๐ฃ":"person rowing boat","๐ฃโโ":"man rowing boat","๐ฃโโ":"woman rowing boat","๐":"person swimming","๐โโ":"man swimming","๐โโ":"woman swimming","โน":"person bouncing ball","โนโโ":"man bouncing ball","โนโโ":"woman bouncing ball","๐":"person lifting weights","๐โโ":"man lifting weights","๐โโ":"woman lifting weights","๐ด":"person biking","๐ดโโ":"man biking","๐ดโโ":"woman biking","๐ต":"person mountain biking","๐ตโโ":"man mountain biking","๐ตโโ":"woman mountain biking","๐คธ":"person cartwheeling","๐คธโโ":"man cartwheeling","๐คธโโ":"woman cartwheeling","๐คผ":"people wrestling","๐คผโโ":"men wrestling","๐คผโโ":"women wrestling","๐คฝ":"person playing water polo","๐คฝโโ":"man playing water polo","๐คฝโโ":"woman playing water polo","๐คพ":"person playing handball","๐คพโโ":"man playing handball","๐คพโโ":"woman playing handball","๐คน":"person juggling","๐คนโโ":"man juggling","๐คนโโ":"woman juggling","๐ง":"person in lotus position","๐งโโ":"man in lotus position","๐งโโ":"woman in lotus position","๐":"person taking bath","๐":"person in bed","๐งโ๐คโ๐ง":"people holding hands","๐ญ":"women holding hands","๐ซ":"woman and man holding hands","๐ฌ":"men holding hands","๐":"kiss","๐ฉโโคโ๐โ๐จ":"kiss: woman, man","๐จโโคโ๐โ๐จ":"kiss: man, man","๐ฉโโคโ๐โ๐ฉ":"kiss: woman, woman","๐":"couple with heart","๐ฉโโคโ๐จ":"couple with heart: woman, man","๐จโโคโ๐จ":"couple with heart: man, man","๐ฉโโคโ๐ฉ":"couple with heart: woman, woman","๐ช":"family","๐จโ๐ฉโ๐ฆ":"family: man, woman, boy","๐จโ๐ฉโ๐ง":"family: man, woman, girl","๐จโ๐ฉโ๐งโ๐ฆ":"family: man, woman, girl, boy","๐จโ๐ฉโ๐ฆโ๐ฆ":"family: man, woman, boy, boy","๐จโ๐ฉโ๐งโ๐ง":"family: man, woman, girl, girl","๐จโ๐จโ๐ฆ":"family: man, man, boy","๐จโ๐จโ๐ง":"family: man, man, girl","๐จโ๐จโ๐งโ๐ฆ":"family: man, man, girl, boy","๐จโ๐จโ๐ฆโ๐ฆ":"family: man, man, boy, boy","๐จโ๐จโ๐งโ๐ง":"family: man, man, girl, girl","๐ฉโ๐ฉโ๐ฆ":"family: woman, woman, boy","๐ฉโ๐ฉโ๐ง":"family: woman, woman, girl","๐ฉโ๐ฉโ๐งโ๐ฆ":"family: woman, woman, girl, boy","๐ฉโ๐ฉโ๐ฆโ๐ฆ":"family: woman, woman, boy, boy","๐ฉโ๐ฉโ๐งโ๐ง":"family: woman, woman, girl, girl","๐จโ๐ฆ":"family: man, boy","๐จโ๐ฆโ๐ฆ":"family: man, boy, boy","๐จโ๐ง":"family: man, girl","๐จโ๐งโ๐ฆ":"family: man, girl, boy","๐จโ๐งโ๐ง":"family: man, girl, girl","๐ฉโ๐ฆ":"family: woman, boy","๐ฉโ๐ฆโ๐ฆ":"family: woman, boy, boy","๐ฉโ๐ง":"family: woman, girl","๐ฉโ๐งโ๐ฆ":"family: woman, girl, boy","๐ฉโ๐งโ๐ง":"family: woman, girl, girl","๐ฃ":"speaking head","๐ค":"bust in silhouette","๐ฅ":"busts in silhouette","๐ซ":"people hugging","๐ฃ":"footprints","๐ต":"monkey face","๐":"monkey","๐ฆ":"gorilla","๐ฆง":"orangutan","๐ถ":"dog face","๐":"dog","๐ฆฎ":"guide dog","๐โ๐ฆบ":"service dog","๐ฉ":"poodle","๐บ":"wolf","๐ฆ":"fox","๐ฆ":"raccoon","๐ฑ":"cat face","๐":"cat","๐โโฌ":"black cat","๐ฆ":"lion","๐ฏ":"tiger face","๐
":"tiger","๐":"leopard","๐ด":"horse face","๐ซ":"moose","๐ซ":"donkey","๐":"horse","๐ฆ":"unicorn","๐ฆ":"zebra","๐ฆ":"deer","๐ฆฌ":"bison","๐ฎ":"cow face","๐":"ox","๐":"water buffalo","๐":"cow","๐ท":"pig face","๐":"pig","๐":"boar","๐ฝ":"pig nose","๐":"ram","๐":"ewe","๐":"goat","๐ช":"camel","๐ซ":"two-hump camel","๐ฆ":"llama","๐ฆ":"giraffe","๐":"elephant","๐ฆฃ":"mammoth","๐ฆ":"rhinoceros","๐ฆ":"hippopotamus","๐ญ":"mouse face","๐":"mouse","๐":"rat","๐น":"hamster","๐ฐ":"rabbit face","๐":"rabbit","๐ฟ":"chipmunk","๐ฆซ":"beaver","๐ฆ":"hedgehog","๐ฆ":"bat","๐ป":"bear","๐ปโโ":"polar bear","๐จ":"koala","๐ผ":"panda","๐ฆฅ":"sloth","๐ฆฆ":"otter","๐ฆจ":"skunk","๐ฆ":"kangaroo","๐ฆก":"badger","๐พ":"paw prints","๐ฆ":"turkey","๐":"chicken","๐":"rooster","๐ฃ":"hatching chick","๐ค":"baby chick","๐ฅ":"front-facing baby chick","๐ฆ":"bird","๐ง":"penguin","๐":"dove","๐ฆ
":"eagle","๐ฆ":"duck","๐ฆข":"swan","๐ฆ":"owl","๐ฆค":"dodo","๐ชถ":"feather","๐ฆฉ":"flamingo","๐ฆ":"peacock","๐ฆ":"parrot","๐ชฝ":"wing","๐ฆโโฌ":"black bird","๐ชฟ":"goose","๐ธ":"frog","๐":"crocodile","๐ข":"turtle","๐ฆ":"lizard","๐":"snake","๐ฒ":"dragon face","๐":"dragon","๐ฆ":"sauropod","๐ฆ":"T-Rex","๐ณ":"spouting whale","๐":"whale","๐ฌ":"dolphin","๐ฆญ":"seal","๐":"fish","๐ ":"tropical fish","๐ก":"blowfish","๐ฆ":"shark","๐":"octopus","๐":"spiral shell","๐ชธ":"coral","๐ชผ":"jellyfish","๐":"snail","๐ฆ":"butterfly","๐":"bug","๐":"ant","๐":"honeybee","๐ชฒ":"beetle","๐":"lady beetle","๐ฆ":"cricket","๐ชณ":"cockroach","๐ท":"spider","๐ธ":"spider web","๐ฆ":"scorpion","๐ฆ":"mosquito","๐ชฐ":"fly","๐ชฑ":"worm","๐ฆ ":"microbe","๐":"bouquet","๐ธ":"cherry blossom","๐ฎ":"white flower","๐ชท":"lotus","๐ต":"rosette","๐น":"rose","๐ฅ":"wilted flower","๐บ":"hibiscus","๐ป":"sunflower","๐ผ":"blossom","๐ท":"tulip","๐ชป":"hyacinth","๐ฑ":"seedling","๐ชด":"potted plant","๐ฒ":"evergreen tree","๐ณ":"deciduous tree","๐ด":"palm tree","๐ต":"cactus","๐พ":"sheaf of rice","๐ฟ":"herb","โ":"shamrock","๐":"four leaf clover","๐":"maple leaf","๐":"fallen leaf","๐":"leaf fluttering in wind","๐ชน":"empty nest","๐ชบ":"nest with eggs","๐":"mushroom","๐":"grapes","๐":"melon","๐":"watermelon","๐":"tangerine","๐":"lemon","๐":"banana","๐":"pineapple","๐ฅญ":"mango","๐":"red apple","๐":"green apple","๐":"pear","๐":"peach","๐":"cherries","๐":"strawberry","๐ซ":"blueberries","๐ฅ":"kiwi fruit","๐
":"tomato","๐ซ":"olive","๐ฅฅ":"coconut","๐ฅ":"avocado","๐":"eggplant","๐ฅ":"potato","๐ฅ":"carrot","๐ฝ":"ear of corn","๐ถ":"hot pepper","๐ซ":"bell pepper","๐ฅ":"cucumber","๐ฅฌ":"leafy green","๐ฅฆ":"broccoli","๐ง":"garlic","๐ง
":"onion","๐ฅ":"peanuts","๐ซ":"beans","๐ฐ":"chestnut","๐ซ":"ginger root","๐ซ":"pea pod","๐":"bread","๐ฅ":"croissant","๐ฅ":"baguette bread","๐ซ":"flatbread","๐ฅจ":"pretzel","๐ฅฏ":"bagel","๐ฅ":"pancakes","๐ง":"waffle","๐ง":"cheese wedge","๐":"meat on bone","๐":"poultry leg","๐ฅฉ":"cut of meat","๐ฅ":"bacon","๐":"hamburger","๐":"french fries","๐":"pizza","๐ญ":"hot dog","๐ฅช":"sandwich","๐ฎ":"taco","๐ฏ":"burrito","๐ซ":"tamale","๐ฅ":"stuffed flatbread","๐ง":"falafel","๐ฅ":"egg","๐ณ":"cooking","๐ฅ":"shallow pan of food","๐ฒ":"pot of food","๐ซ":"fondue","๐ฅฃ":"bowl with spoon","๐ฅ":"green salad","๐ฟ":"popcorn","๐ง":"butter","๐ง":"salt","๐ฅซ":"canned food","๐ฑ":"bento box","๐":"rice cracker","๐":"rice ball","๐":"cooked rice","๐":"curry rice","๐":"steaming bowl","๐":"spaghetti","๐ ":"roasted sweet potato","๐ข":"oden","๐ฃ":"sushi","๐ค":"fried shrimp","๐ฅ":"fish cake with swirl","๐ฅฎ":"moon cake","๐ก":"dango","๐ฅ":"dumpling","๐ฅ ":"fortune cookie","๐ฅก":"takeout box","๐ฆ":"crab","๐ฆ":"lobster","๐ฆ":"shrimp","๐ฆ":"squid","๐ฆช":"oyster","๐ฆ":"soft ice cream","๐ง":"shaved ice","๐จ":"ice cream","๐ฉ":"doughnut","๐ช":"cookie","๐":"birthday cake","๐ฐ":"shortcake","๐ง":"cupcake","๐ฅง":"pie","๐ซ":"chocolate bar","๐ฌ":"candy","๐ญ":"lollipop","๐ฎ":"custard","๐ฏ":"honey pot","๐ผ":"baby bottle","๐ฅ":"glass of milk","โ":"hot beverage","๐ซ":"teapot","๐ต":"teacup without handle","๐ถ":"sake","๐พ":"bottle with popping cork","๐ท":"wine glass","๐ธ":"cocktail glass","๐น":"tropical drink","๐บ":"beer mug","๐ป":"clinking beer mugs","๐ฅ":"clinking glasses","๐ฅ":"tumbler glass","๐ซ":"pouring liquid","๐ฅค":"cup with straw","๐ง":"bubble tea","๐ง":"beverage box","๐ง":"mate","๐ง":"ice","๐ฅข":"chopsticks","๐ฝ":"fork and knife with plate","๐ด":"fork and knife","๐ฅ":"spoon","๐ช":"kitchen knife","๐ซ":"jar","๐บ":"amphora","๐":"globe showing Europe-Africa","๐":"globe showing Americas","๐":"globe showing Asia-Australia","๐":"globe with meridians","๐บ":"world map","๐พ":"map of Japan","๐งญ":"compass","๐":"snow-capped mountain","โฐ":"mountain","๐":"volcano","๐ป":"mount fuji","๐":"camping","๐":"beach with umbrella","๐":"desert","๐":"desert island","๐":"national park","๐":"stadium","๐":"classical building","๐":"building construction","๐งฑ":"brick","๐ชจ":"rock","๐ชต":"wood","๐":"hut","๐":"houses","๐":"derelict house","๐ ":"house","๐ก":"house with garden","๐ข":"office building","๐ฃ":"Japanese post office","๐ค":"post office","๐ฅ":"hospital","๐ฆ":"bank","๐จ":"hotel","๐ฉ":"love hotel","๐ช":"convenience store","๐ซ":"school","๐ฌ":"department store","๐ญ":"factory","๐ฏ":"Japanese castle","๐ฐ":"castle","๐":"wedding","๐ผ":"Tokyo tower","๐ฝ":"Statue of Liberty","โช":"church","๐":"mosque","๐":"hindu temple","๐":"synagogue","โฉ":"shinto shrine","๐":"kaaba","โฒ":"fountain","โบ":"tent","๐":"foggy","๐":"night with stars","๐":"cityscape","๐":"sunrise over mountains","๐
":"sunrise","๐":"cityscape at dusk","๐":"sunset","๐":"bridge at night","โจ":"hot springs","๐ ":"carousel horse","๐":"playground slide","๐ก":"ferris wheel","๐ข":"roller coaster","๐":"barber pole","๐ช":"circus tent","๐":"locomotive","๐":"railway car","๐":"high-speed train","๐
":"bullet train","๐":"train","๐":"metro","๐":"light rail","๐":"station","๐":"tram","๐":"monorail","๐":"mountain railway","๐":"tram car","๐":"bus","๐":"oncoming bus","๐":"trolleybus","๐":"minibus","๐":"ambulance","๐":"fire engine","๐":"police car","๐":"oncoming police car","๐":"taxi","๐":"oncoming taxi","๐":"automobile","๐":"oncoming automobile","๐":"sport utility vehicle","๐ป":"pickup truck","๐":"delivery truck","๐":"articulated lorry","๐":"tractor","๐":"racing car","๐":"motorcycle","๐ต":"motor scooter","๐ฆฝ":"manual wheelchair","๐ฆผ":"motorized wheelchair","๐บ":"auto rickshaw","๐ฒ":"bicycle","๐ด":"kick scooter","๐น":"skateboard","๐ผ":"roller skate","๐":"bus stop","๐ฃ":"motorway","๐ค":"railway track","๐ข":"oil drum","โฝ":"fuel pump","๐":"wheel","๐จ":"police car light","๐ฅ":"horizontal traffic light","๐ฆ":"vertical traffic light","๐":"stop sign","๐ง":"construction","โ":"anchor","๐":"ring buoy","โต":"sailboat","๐ถ":"canoe","๐ค":"speedboat","๐ณ":"passenger ship","โด":"ferry","๐ฅ":"motor boat","๐ข":"ship","โ":"airplane","๐ฉ":"small airplane","๐ซ":"airplane departure","๐ฌ":"airplane arrival","๐ช":"parachute","๐บ":"seat","๐":"helicopter","๐":"suspension railway","๐ ":"mountain cableway","๐ก":"aerial tramway","๐ฐ":"satellite","๐":"rocket","๐ธ":"flying saucer","๐":"bellhop bell","๐งณ":"luggage","โ":"hourglass done","โณ":"hourglass not done","โ":"watch","โฐ":"alarm clock","โฑ":"stopwatch","โฒ":"timer clock","๐ฐ":"mantelpiece clock","๐":"twelve oโclock","๐ง":"twelve-thirty","๐":"one oโclock","๐":"one-thirty","๐":"two oโclock","๐":"two-thirty","๐":"three oโclock","๐":"three-thirty","๐":"four oโclock","๐":"four-thirty","๐":"five oโclock","๐ ":"five-thirty","๐":"six oโclock","๐ก":"six-thirty","๐":"seven oโclock","๐ข":"seven-thirty","๐":"eight oโclock","๐ฃ":"eight-thirty","๐":"nine oโclock","๐ค":"nine-thirty","๐":"ten oโclock","๐ฅ":"ten-thirty","๐":"eleven oโclock","๐ฆ":"eleven-thirty","๐":"new moon","๐":"waxing crescent moon","๐":"first quarter moon","๐":"waxing gibbous moon","๐":"full moon","๐":"waning gibbous moon","๐":"last quarter moon","๐":"waning crescent moon","๐":"crescent moon","๐":"new moon face","๐":"first quarter moon face","๐":"last quarter moon face","๐ก":"thermometer","โ":"sun","๐":"full moon face","๐":"sun with face","๐ช":"ringed planet","โญ":"star","๐":"glowing star","๐ ":"shooting star","๐":"milky way","โ":"cloud","โ
":"sun behind cloud","โ":"cloud with lightning and rain","๐ค":"sun behind small cloud","๐ฅ":"sun behind large cloud","๐ฆ":"sun behind rain cloud","๐ง":"cloud with rain","๐จ":"cloud with snow","๐ฉ":"cloud with lightning","๐ช":"tornado","๐ซ":"fog","๐ฌ":"wind face","๐":"cyclone","๐":"rainbow","๐":"closed umbrella","โ":"umbrella","โ":"umbrella with rain drops","โฑ":"umbrella on ground","โก":"high voltage","โ":"snowflake","โ":"snowman","โ":"snowman without snow","โ":"comet","๐ฅ":"fire","๐ง":"droplet","๐":"water wave","๐":"jack-o-lantern","๐":"Christmas tree","๐":"fireworks","๐":"sparkler","๐งจ":"firecracker","โจ":"sparkles","๐":"balloon","๐":"party popper","๐":"confetti ball","๐":"tanabata tree","๐":"pine decoration","๐":"Japanese dolls","๐":"carp streamer","๐":"wind chime","๐":"moon viewing ceremony","๐งง":"red envelope","๐":"ribbon","๐":"wrapped gift","๐":"reminder ribbon","๐":"admission tickets","๐ซ":"ticket","๐":"military medal","๐":"trophy","๐
":"sports medal","๐ฅ":"1st place medal","๐ฅ":"2nd place medal","๐ฅ":"3rd place medal","โฝ":"soccer ball","โพ":"baseball","๐ฅ":"softball","๐":"basketball","๐":"volleyball","๐":"american football","๐":"rugby football","๐พ":"tennis","๐ฅ":"flying disc","๐ณ":"bowling","๐":"cricket game","๐":"field hockey","๐":"ice hockey","๐ฅ":"lacrosse","๐":"ping pong","๐ธ":"badminton","๐ฅ":"boxing glove","๐ฅ":"martial arts uniform","๐ฅ
":"goal net","โณ":"flag in hole","โธ":"ice skate","๐ฃ":"fishing pole","๐คฟ":"diving mask","๐ฝ":"running shirt","๐ฟ":"skis","๐ท":"sled","๐ฅ":"curling stone","๐ฏ":"bullseye","๐ช":"yo-yo","๐ช":"kite","๐ซ":"water pistol","๐ฑ":"pool 8 ball","๐ฎ":"crystal ball","๐ช":"magic wand","๐ฎ":"video game","๐น":"joystick","๐ฐ":"slot machine","๐ฒ":"game die","๐งฉ":"puzzle piece","๐งธ":"teddy bear","๐ช
":"piรฑata","๐ชฉ":"mirror ball","๐ช":"nesting dolls","โ ":"spade suit","โฅ":"heart suit","โฆ":"diamond suit","โฃ":"club suit","โ":"chess pawn","๐":"joker","๐":"mahjong red dragon","๐ด":"flower playing cards","๐ญ":"performing arts","๐ผ":"framed picture","๐จ":"artist palette","๐งต":"thread","๐ชก":"sewing needle","๐งถ":"yarn","๐ชข":"knot","๐":"glasses","๐ถ":"sunglasses","๐ฅฝ":"goggles","๐ฅผ":"lab coat","๐ฆบ":"safety vest","๐":"necktie","๐":"t-shirt","๐":"jeans","๐งฃ":"scarf","๐งค":"gloves","๐งฅ":"coat","๐งฆ":"socks","๐":"dress","๐":"kimono","๐ฅป":"sari","๐ฉฑ":"one-piece swimsuit","๐ฉฒ":"briefs","๐ฉณ":"shorts","๐":"bikini","๐":"womanโs clothes","๐ชญ":"folding hand fan","๐":"purse","๐":"handbag","๐":"clutch bag","๐":"shopping bags","๐":"backpack","๐ฉด":"thong sandal","๐":"manโs shoe","๐":"running shoe","๐ฅพ":"hiking boot","๐ฅฟ":"flat shoe","๐ ":"high-heeled shoe","๐ก":"womanโs sandal","๐ฉฐ":"ballet shoes","๐ข":"womanโs boot","๐ชฎ":"hair pick","๐":"crown","๐":"womanโs hat","๐ฉ":"top hat","๐":"graduation cap","๐งข":"billed cap","๐ช":"military helmet","โ":"rescue workerโs helmet","๐ฟ":"prayer beads","๐":"lipstick","๐":"ring","๐":"gem stone","๐":"muted speaker","๐":"speaker low volume","๐":"speaker medium volume","๐":"speaker high volume","๐ข":"loudspeaker","๐ฃ":"megaphone","๐ฏ":"postal horn","๐":"bell","๐":"bell with slash","๐ผ":"musical score","๐ต":"musical note","๐ถ":"musical notes","๐":"studio microphone","๐":"level slider","๐":"control knobs","๐ค":"microphone","๐ง":"headphone","๐ป":"radio","๐ท":"saxophone","๐ช":"accordion","๐ธ":"guitar","๐น":"musical keyboard","๐บ":"trumpet","๐ป":"violin","๐ช":"banjo","๐ฅ":"drum","๐ช":"long drum","๐ช":"maracas","๐ช":"flute","๐ฑ":"mobile phone","๐ฒ":"mobile phone with arrow","โ":"telephone","๐":"telephone receiver","๐":"pager","๐ ":"fax machine","๐":"battery","๐ชซ":"low battery","๐":"electric plug","๐ป":"laptop","๐ฅ":"desktop computer","๐จ":"printer","โจ":"keyboard","๐ฑ":"computer mouse","๐ฒ":"trackball","๐ฝ":"computer disk","๐พ":"floppy disk","๐ฟ":"optical disk","๐":"dvd","๐งฎ":"abacus","๐ฅ":"movie camera","๐":"film frames","๐ฝ":"film projector","๐ฌ":"clapper board","๐บ":"television","๐ท":"camera","๐ธ":"camera with flash","๐น":"video camera","๐ผ":"videocassette","๐":"magnifying glass tilted left","๐":"magnifying glass tilted right","๐ฏ":"candle","๐ก":"light bulb","๐ฆ":"flashlight","๐ฎ":"red paper lantern","๐ช":"diya lamp","๐":"notebook with decorative cover","๐":"closed book","๐":"open book","๐":"green book","๐":"blue book","๐":"orange book","๐":"books","๐":"notebook","๐":"ledger","๐":"page with curl","๐":"scroll","๐":"page facing up","๐ฐ":"newspaper","๐":"rolled-up newspaper","๐":"bookmark tabs","๐":"bookmark","๐ท":"label","๐ฐ":"money bag","๐ช":"coin","๐ด":"yen banknote","๐ต":"dollar banknote","๐ถ":"euro banknote","๐ท":"pound banknote","๐ธ":"money with wings","๐ณ":"credit card","๐งพ":"receipt","๐น":"chart increasing with yen","โ":"envelope","๐ง":"e-mail","๐จ":"incoming envelope","๐ฉ":"envelope with arrow","๐ค":"outbox tray","๐ฅ":"inbox tray","๐ฆ":"package","๐ซ":"closed mailbox with raised flag","๐ช":"closed mailbox with lowered flag","๐ฌ":"open mailbox with raised flag","๐ญ":"open mailbox with lowered flag","๐ฎ":"postbox","๐ณ":"ballot box with ballot","โ":"pencil","โ":"black nib","๐":"fountain pen","๐":"pen","๐":"paintbrush","๐":"crayon","๐":"memo","๐ผ":"briefcase","๐":"file folder","๐":"open file folder","๐":"card index dividers","๐
":"calendar","๐":"tear-off calendar","๐":"spiral notepad","๐":"spiral calendar","๐":"card index","๐":"chart increasing","๐":"chart decreasing","๐":"bar chart","๐":"clipboard","๐":"pushpin","๐":"round pushpin","๐":"paperclip","๐":"linked paperclips","๐":"straight ruler","๐":"triangular ruler","โ":"scissors","๐":"card file box","๐":"file cabinet","๐":"wastebasket","๐":"locked","๐":"unlocked","๐":"locked with pen","๐":"locked with key","๐":"key","๐":"old key","๐จ":"hammer","๐ช":"axe","โ":"pick","โ":"hammer and pick","๐ ":"hammer and wrench","๐ก":"dagger","โ":"crossed swords","๐ฃ":"bomb","๐ช":"boomerang","๐น":"bow and arrow","๐ก":"shield","๐ช":"carpentry saw","๐ง":"wrench","๐ช":"screwdriver","๐ฉ":"nut and bolt","โ":"gear","๐":"clamp","โ":"balance scale","๐ฆฏ":"white cane","๐":"link","โ":"chains","๐ช":"hook","๐งฐ":"toolbox","๐งฒ":"magnet","๐ช":"ladder","โ":"alembic","๐งช":"test tube","๐งซ":"petri dish","๐งฌ":"dna","๐ฌ":"microscope","๐ญ":"telescope","๐ก":"satellite antenna","๐":"syringe","๐ฉธ":"drop of blood","๐":"pill","๐ฉน":"adhesive bandage","๐ฉผ":"crutch","๐ฉบ":"stethoscope","๐ฉป":"x-ray","๐ช":"door","๐":"elevator","๐ช":"mirror","๐ช":"window","๐":"bed","๐":"couch and lamp","๐ช":"chair","๐ฝ":"toilet","๐ช ":"plunger","๐ฟ":"shower","๐":"bathtub","๐ชค":"mouse trap","๐ช":"razor","๐งด":"lotion bottle","๐งท":"safety pin","๐งน":"broom","๐งบ":"basket","๐งป":"roll of paper","๐ชฃ":"bucket","๐งผ":"soap","๐ซง":"bubbles","๐ชฅ":"toothbrush","๐งฝ":"sponge","๐งฏ":"fire extinguisher","๐":"shopping cart","๐ฌ":"cigarette","โฐ":"coffin","๐ชฆ":"headstone","โฑ":"funeral urn","๐งฟ":"nazar amulet","๐ชฌ":"hamsa","๐ฟ":"moai","๐ชง":"placard","๐ชช":"identification card","๐ง":"ATM sign","๐ฎ":"litter in bin sign","๐ฐ":"potable water","โฟ":"wheelchair symbol","๐น":"menโs room","๐บ":"womenโs room","๐ป":"restroom","๐ผ":"baby symbol","๐พ":"water closet","๐":"passport control","๐":"customs","๐":"baggage claim","๐
":"left luggage","โ ":"warning","๐ธ":"children crossing","โ":"no entry","๐ซ":"prohibited","๐ณ":"no bicycles","๐ญ":"no smoking","๐ฏ":"no littering","๐ฑ":"non-potable water","๐ท":"no pedestrians","๐ต":"no mobile phones","๐":"no one under eighteen","โข":"radioactive","โฃ":"biohazard","โฌ":"up arrow","โ":"up-right arrow","โก":"right arrow","โ":"down-right arrow","โฌ":"down arrow","โ":"down-left arrow","โฌ
":"left arrow","โ":"up-left arrow","โ":"up-down arrow","โ":"left-right arrow","โฉ":"right arrow curving left","โช":"left arrow curving right","โคด":"right arrow curving up","โคต":"right arrow curving down","๐":"clockwise vertical arrows","๐":"counterclockwise arrows button","๐":"BACK arrow","๐":"END arrow","๐":"ON! arrow","๐":"SOON arrow","๐":"TOP arrow","๐":"place of worship","โ":"atom symbol","๐":"om","โก":"star of David","โธ":"wheel of dharma","โฏ":"yin yang","โ":"latin cross","โฆ":"orthodox cross","โช":"star and crescent","โฎ":"peace symbol","๐":"menorah","๐ฏ":"dotted six-pointed star","๐ชฏ":"khanda","โ":"Aries","โ":"Taurus","โ":"Gemini","โ":"Cancer","โ":"Leo","โ":"Virgo","โ":"Libra","โ":"Scorpio","โ":"Sagittarius","โ":"Capricorn","โ":"Aquarius","โ":"Pisces","โ":"Ophiuchus","๐":"shuffle tracks button","๐":"repeat button","๐":"repeat single button","โถ":"play button","โฉ":"fast-forward button","โญ":"next track button","โฏ":"play or pause button","โ":"reverse button","โช":"fast reverse button","โฎ":"last track button","๐ผ":"upwards button","โซ":"fast up button","๐ฝ":"downwards button","โฌ":"fast down button","โธ":"pause button","โน":"stop button","โบ":"record button","โ":"eject button","๐ฆ":"cinema","๐
":"dim button","๐":"bright button","๐ถ":"antenna bars","๐":"wireless","๐ณ":"vibration mode","๐ด":"mobile phone off","โ":"female sign","โ":"male sign","โง":"transgender symbol","โ":"multiply","โ":"plus","โ":"minus","โ":"divide","๐ฐ":"heavy equals sign","โพ":"infinity","โผ":"double exclamation mark","โ":"exclamation question mark","โ":"red question mark","โ":"white question mark","โ":"white exclamation mark","โ":"red exclamation mark","ใฐ":"wavy dash","๐ฑ":"currency exchange","๐ฒ":"heavy dollar sign","โ":"medical symbol","โป":"recycling symbol","โ":"fleur-de-lis","๐ฑ":"trident emblem","๐":"name badge","๐ฐ":"Japanese symbol for beginner","โญ":"hollow red circle","โ
":"check mark button","โ":"check box with check","โ":"check mark","โ":"cross mark","โ":"cross mark button","โฐ":"curly loop","โฟ":"double curly loop","ใฝ":"part alternation mark","โณ":"eight-spoked asterisk","โด":"eight-pointed star","โ":"sparkle","ยฉ":"copyright","ยฎ":"registered","โข":"trade mark","#โฃ":"keycap: #","*โฃ":"keycap: *","0โฃ":"keycap: 0","1โฃ":"keycap: 1","2โฃ":"keycap: 2","3โฃ":"keycap: 3","4โฃ":"keycap: 4","5โฃ":"keycap: 5","6โฃ":"keycap: 6","7โฃ":"keycap: 7","8โฃ":"keycap: 8","9โฃ":"keycap: 9","๐":"keycap: 10","๐ ":"input latin uppercase","๐ก":"input latin lowercase","๐ข":"input numbers","๐ฃ":"input symbols","๐ค":"input latin letters","๐
ฐ":"A button (blood type)","๐":"AB button (blood type)","๐
ฑ":"B button (blood type)","๐":"CL button","๐":"COOL button","๐":"FREE button","โน":"information","๐":"ID button","โ":"circled M","๐":"NEW button","๐":"NG button","๐
พ":"O button (blood type)","๐":"OK button","๐
ฟ":"P button","๐":"SOS button","๐":"UP! button","๐":"VS button","๐":"Japanese โhereโ button","๐":"Japanese โservice chargeโ button","๐ท":"Japanese โmonthly amountโ button","๐ถ":"Japanese โnot free of chargeโ button","๐ฏ":"Japanese โreservedโ button","๐":"Japanese โbargainโ button","๐น":"Japanese โdiscountโ button","๐":"Japanese โfree of chargeโ button","๐ฒ":"Japanese โprohibitedโ button","๐":"Japanese โacceptableโ button","๐ธ":"Japanese โapplicationโ button","๐ด":"Japanese โpassing gradeโ button","๐ณ":"Japanese โvacancyโ button","ใ":"Japanese โcongratulationsโ button","ใ":"Japanese โsecretโ button","๐บ":"Japanese โopen for businessโ button","๐ต":"Japanese โno vacancyโ button","๐ด":"red circle","๐ ":"orange circle","๐ก":"yellow circle","๐ข":"green circle","๐ต":"blue circle","๐ฃ":"purple circle","๐ค":"brown circle","โซ":"black circle","โช":"white circle","๐ฅ":"red square","๐ง":"orange square","๐จ":"yellow square","๐ฉ":"green square","๐ฆ":"blue square","๐ช":"purple square","๐ซ":"brown square","โฌ":"black large square","โฌ":"white large square","โผ":"black medium square","โป":"white medium square","โพ":"black medium-small square","โฝ":"white medium-small square","โช":"black small square","โซ":"white small square","๐ถ":"large orange diamond","๐ท":"large blue diamond","๐ธ":"small orange diamond","๐น":"small blue diamond","๐บ":"red triangle pointed up","๐ป":"red triangle pointed down","๐ ":"diamond with a dot","๐":"radio button","๐ณ":"white square button","๐ฒ":"black square button","๐":"chequered flag","๐ฉ":"triangular flag","๐":"crossed flags","๐ด":"black flag","๐ณ":"white flag","๐ณโ๐":"rainbow flag","๐ณโโง":"transgender flag","๐ดโโ ":"pirate flag","๐ฆ๐จ":"flag: Ascension Island","๐ฆ๐ฉ":"flag: Andorra","๐ฆ๐ช":"flag: United Arab Emirates","๐ฆ๐ซ":"flag: Afghanistan","๐ฆ๐ฌ":"flag: Antigua & Barbuda","๐ฆ๐ฎ":"flag: Anguilla","๐ฆ๐ฑ":"flag: Albania","๐ฆ๐ฒ":"flag: Armenia","๐ฆ๐ด":"flag: Angola","๐ฆ๐ถ":"flag: Antarctica","๐ฆ๐ท":"flag: Argentina","๐ฆ๐ธ":"flag: American Samoa","๐ฆ๐น":"flag: Austria","๐ฆ๐บ":"flag: Australia","๐ฆ๐ผ":"flag: Aruba","๐ฆ๐ฝ":"flag: ร
land Islands","๐ฆ๐ฟ":"flag: Azerbaijan","๐ง๐ฆ":"flag: Bosnia & Herzegovina","๐ง๐ง":"flag: Barbados","๐ง๐ฉ":"flag: Bangladesh","๐ง๐ช":"flag: Belgium","๐ง๐ซ":"flag: Burkina Faso","๐ง๐ฌ":"flag: Bulgaria","๐ง๐ญ":"flag: Bahrain","๐ง๐ฎ":"flag: Burundi","๐ง๐ฏ":"flag: Benin","๐ง๐ฑ":"flag: St. Barthรฉlemy","๐ง๐ฒ":"flag: Bermuda","๐ง๐ณ":"flag: Brunei","๐ง๐ด":"flag: Bolivia","๐ง๐ถ":"flag: Caribbean Netherlands","๐ง๐ท":"flag: Brazil","๐ง๐ธ":"flag: Bahamas","๐ง๐น":"flag: Bhutan","๐ง๐ป":"flag: Bouvet Island","๐ง๐ผ":"flag: Botswana","๐ง๐พ":"flag: Belarus","๐ง๐ฟ":"flag: Belize","๐จ๐ฆ":"flag: Canada","๐จ๐จ":"flag: Cocos (Keeling) Islands","๐จ๐ฉ":"flag: Congo - Kinshasa","๐จ๐ซ":"flag: Central African Republic","๐จ๐ฌ":"flag: Congo - Brazzaville","๐จ๐ญ":"flag: Switzerland","๐จ๐ฎ":"flag: Cรดte dโIvoire","๐จ๐ฐ":"flag: Cook Islands","๐จ๐ฑ":"flag: Chile","๐จ๐ฒ":"flag: Cameroon","๐จ๐ณ":"flag: China","๐จ๐ด":"flag: Colombia","๐จ๐ต":"flag: Clipperton Island","๐จ๐ท":"flag: Costa Rica","๐จ๐บ":"flag: Cuba","๐จ๐ป":"flag: Cape Verde","๐จ๐ผ":"flag: Curaรงao","๐จ๐ฝ":"flag: Christmas Island","๐จ๐พ":"flag: Cyprus","๐จ๐ฟ":"flag: Czechia","๐ฉ๐ช":"flag: Germany","๐ฉ๐ฌ":"flag: Diego Garcia","๐ฉ๐ฏ":"flag: Djibouti","๐ฉ๐ฐ":"flag: Denmark","๐ฉ๐ฒ":"flag: Dominica","๐ฉ๐ด":"flag: Dominican Republic","๐ฉ๐ฟ":"flag: Algeria","๐ช๐ฆ":"flag: Ceuta & Melilla","๐ช๐จ":"flag: Ecuador","๐ช๐ช":"flag: Estonia","๐ช๐ฌ":"flag: Egypt","๐ช๐ญ":"flag: Western Sahara","๐ช๐ท":"flag: Eritrea","๐ช๐ธ":"flag: Spain","๐ช๐น":"flag: Ethiopia","๐ช๐บ":"flag: European Union","๐ซ๐ฎ":"flag: Finland","๐ซ๐ฏ":"flag: Fiji","๐ซ๐ฐ":"flag: Falkland Islands","๐ซ๐ฒ":"flag: Micronesia","๐ซ๐ด":"flag: Faroe Islands","๐ซ๐ท":"flag: France","๐ฌ๐ฆ":"flag: Gabon","๐ฌ๐ง":"flag: United Kingdom","๐ฌ๐ฉ":"flag: Grenada","๐ฌ๐ช":"flag: Georgia","๐ฌ๐ซ":"flag: French Guiana","๐ฌ๐ฌ":"flag: Guernsey","๐ฌ๐ญ":"flag: Ghana","๐ฌ๐ฎ":"flag: Gibraltar","๐ฌ๐ฑ":"flag: Greenland","๐ฌ๐ฒ":"flag: Gambia","๐ฌ๐ณ":"flag: Guinea","๐ฌ๐ต":"flag: Guadeloupe","๐ฌ๐ถ":"flag: Equatorial Guinea","๐ฌ๐ท":"flag: Greece","๐ฌ๐ธ":"flag: South Georgia & South Sandwich Islands","๐ฌ๐น":"flag: Guatemala","๐ฌ๐บ":"flag: Guam","๐ฌ๐ผ":"flag: Guinea-Bissau","๐ฌ๐พ":"flag: Guyana","๐ญ๐ฐ":"flag: Hong Kong SAR China","๐ญ๐ฒ":"flag: Heard & McDonald Islands","๐ญ๐ณ":"flag: Honduras","๐ญ๐ท":"flag: Croatia","๐ญ๐น":"flag: Haiti","๐ญ๐บ":"flag: Hungary","๐ฎ๐จ":"flag: Canary Islands","๐ฎ๐ฉ":"flag: Indonesia","๐ฎ๐ช":"flag: Ireland","๐ฎ๐ฑ":"flag: Israel","๐ฎ๐ฒ":"flag: Isle of Man","๐ฎ๐ณ":"flag: India","๐ฎ๐ด":"flag: British Indian Ocean Territory","๐ฎ๐ถ":"flag: Iraq","๐ฎ๐ท":"flag: Iran","๐ฎ๐ธ":"flag: Iceland","๐ฎ๐น":"flag: Italy","๐ฏ๐ช":"flag: Jersey","๐ฏ๐ฒ":"flag: Jamaica","๐ฏ๐ด":"flag: Jordan","๐ฏ๐ต":"flag: Japan","๐ฐ๐ช":"flag: Kenya","๐ฐ๐ฌ":"flag: Kyrgyzstan","๐ฐ๐ญ":"flag: Cambodia","๐ฐ๐ฎ":"flag: Kiribati","๐ฐ๐ฒ":"flag: Comoros","๐ฐ๐ณ":"flag: St. Kitts & Nevis","๐ฐ๐ต":"flag: North Korea","๐ฐ๐ท":"flag: South Korea","๐ฐ๐ผ":"flag: Kuwait","๐ฐ๐พ":"flag: Cayman Islands","๐ฐ๐ฟ":"flag: Kazakhstan","๐ฑ๐ฆ":"flag: Laos","๐ฑ๐ง":"flag: Lebanon","๐ฑ๐จ":"flag: St. Lucia","๐ฑ๐ฎ":"flag: Liechtenstein","๐ฑ๐ฐ":"flag: Sri Lanka","๐ฑ๐ท":"flag: Liberia","๐ฑ๐ธ":"flag: Lesotho","๐ฑ๐น":"flag: Lithuania","๐ฑ๐บ":"flag: Luxembourg","๐ฑ๐ป":"flag: Latvia","๐ฑ๐พ":"flag: Libya","๐ฒ๐ฆ":"flag: Morocco","๐ฒ๐จ":"flag: Monaco","๐ฒ๐ฉ":"flag: Moldova","๐ฒ๐ช":"flag: Montenegro","๐ฒ๐ซ":"flag: St. Martin","๐ฒ๐ฌ":"flag: Madagascar","๐ฒ๐ญ":"flag: Marshall Islands","๐ฒ๐ฐ":"flag: North Macedonia","๐ฒ๐ฑ":"flag: Mali","๐ฒ๐ฒ":"flag: Myanmar (Burma)","๐ฒ๐ณ":"flag: Mongolia","๐ฒ๐ด":"flag: Macao SAR China","๐ฒ๐ต":"flag: Northern Mariana Islands","๐ฒ๐ถ":"flag: Martinique","๐ฒ๐ท":"flag: Mauritania","๐ฒ๐ธ":"flag: Montserrat","๐ฒ๐น":"flag: Malta","๐ฒ๐บ":"flag: Mauritius","๐ฒ๐ป":"flag: Maldives","๐ฒ๐ผ":"flag: Malawi","๐ฒ๐ฝ":"flag: Mexico","๐ฒ๐พ":"flag: Malaysia","๐ฒ๐ฟ":"flag: Mozambique","๐ณ๐ฆ":"flag: Namibia","๐ณ๐จ":"flag: New Caledonia","๐ณ๐ช":"flag: Niger","๐ณ๐ซ":"flag: Norfolk Island","๐ณ๐ฌ":"flag: Nigeria","๐ณ๐ฎ":"flag: Nicaragua","๐ณ๐ฑ":"flag: Netherlands","๐ณ๐ด":"flag: Norway","๐ณ๐ต":"flag: Nepal","๐ณ๐ท":"flag: Nauru","๐ณ๐บ":"flag: Niue","๐ณ๐ฟ":"flag: New Zealand","๐ด๐ฒ":"flag: Oman","๐ต๐ฆ":"flag: Panama","๐ต๐ช":"flag: Peru","๐ต๐ซ":"flag: French Polynesia","๐ต๐ฌ":"flag: Papua New Guinea","๐ต๐ญ":"flag: Philippines","๐ต๐ฐ":"flag: Pakistan","๐ต๐ฑ":"flag: Poland","๐ต๐ฒ":"flag: St. Pierre & Miquelon","๐ต๐ณ":"flag: Pitcairn Islands","๐ต๐ท":"flag: Puerto Rico","๐ต๐ธ":"flag: Palestinian Territories","๐ต๐น":"flag: Portugal","๐ต๐ผ":"flag: Palau","๐ต๐พ":"flag: Paraguay","๐ถ๐ฆ":"flag: Qatar","๐ท๐ช":"flag: Rรฉunion","๐ท๐ด":"flag: Romania","๐ท๐ธ":"flag: Serbia","๐ท๐บ":"flag: Russia","๐ท๐ผ":"flag: Rwanda","๐ธ๐ฆ":"flag: Saudi Arabia","๐ธ๐ง":"flag: Solomon Islands","๐ธ๐จ":"flag: Seychelles","๐ธ๐ฉ":"flag: Sudan","๐ธ๐ช":"flag: Sweden","๐ธ๐ฌ":"flag: Singapore","๐ธ๐ญ":"flag: St. Helena","๐ธ๐ฎ":"flag: Slovenia","๐ธ๐ฏ":"flag: Svalbard & Jan Mayen","๐ธ๐ฐ":"flag: Slovakia","๐ธ๐ฑ":"flag: Sierra Leone","๐ธ๐ฒ":"flag: San Marino","๐ธ๐ณ":"flag: Senegal","๐ธ๐ด":"flag: Somalia","๐ธ๐ท":"flag: Suriname","๐ธ๐ธ":"flag: South Sudan","๐ธ๐น":"flag: Sรฃo Tomรฉ & Prรญncipe","๐ธ๐ป":"flag: El Salvador","๐ธ๐ฝ":"flag: Sint Maarten","๐ธ๐พ":"flag: Syria","๐ธ๐ฟ":"flag: Eswatini","๐น๐ฆ":"flag: Tristan da Cunha","๐น๐จ":"flag: Turks & Caicos Islands","๐น๐ฉ":"flag: Chad","๐น๐ซ":"flag: French Southern Territories","๐น๐ฌ":"flag: Togo","๐น๐ญ":"flag: Thailand","๐น๐ฏ":"flag: Tajikistan","๐น๐ฐ":"flag: Tokelau","๐น๐ฑ":"flag: Timor-Leste","๐น๐ฒ":"flag: Turkmenistan","๐น๐ณ":"flag: Tunisia","๐น๐ด":"flag: Tonga","๐น๐ท":"flag: Turkey","๐น๐น":"flag: Trinidad & Tobago","๐น๐ป":"flag: Tuvalu","๐น๐ผ":"flag: Taiwan","๐น๐ฟ":"flag: Tanzania","๐บ๐ฆ":"flag: Ukraine","๐บ๐ฌ":"flag: Uganda","๐บ๐ฒ":"flag: U.S. Outlying Islands","๐บ๐ณ":"flag: United Nations","๐บ๐ธ":"flag: United States","๐บ๐พ":"flag: Uruguay","๐บ๐ฟ":"flag: Uzbekistan","๐ป๐ฆ":"flag: Vatican City","๐ป๐จ":"flag: St. Vincent & Grenadines","๐ป๐ช":"flag: Venezuela","๐ป๐ฌ":"flag: British Virgin Islands","๐ป๐ฎ":"flag: U.S. Virgin Islands","๐ป๐ณ":"flag: Vietnam","๐ป๐บ":"flag: Vanuatu","๐ผ๐ซ":"flag: Wallis & Futuna","๐ผ๐ธ":"flag: Samoa","๐ฝ๐ฐ":"flag: Kosovo","๐พ๐ช":"flag: Yemen","๐พ๐น":"flag: Mayotte","๐ฟ๐ฆ":"flag: South Africa","๐ฟ๐ฒ":"flag: Zambia","๐ฟ๐ผ":"flag: Zimbabwe","๐ด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ":"flag: England","๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ":"flag: Scotland","๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ":"flag: Wales"}');var y=t(33);const _=["aria-label"],C=(0,a.pM)({name:"LinkPreviewToggle",props:{link:{type:Object,required:!0},message:{type:Object,required:!0}},emits:["toggle-link-preview"],setup:(e,{emit:n})=>({ariaLabel:(0,a.EW)(()=>e.link.shown?"Collapse preview":"Expand preview"),onClick:()=>{e.link.shown=!e.link.shown,n("toggle-link-preview",e.link,e.message)}})});var L=t(6262);const M=(0,L.A)(C,[["render",function(e,n,t,s,o,i){return"loading"!==e.link.type?((0,a.uX)(),(0,a.CE)("button",{key:0,class:(0,y.C4)(["toggle-button","toggle-preview",{opened:e.link.shown}]),"aria-label":e.ariaLabel,onClick:n[0]||(n[0]=(...n)=>e.onClick&&e.onClick(...n))},null,10,_)):(0,a.Q3)("",!0)}]]),E={class:"preview-size"};var x=t(3388);const S=(0,a.pM)({name:"LinkPreviewFileSize",props:{size:{type:Number,required:!0}},setup:e=>({previewSize:(0,x.A)(e.size)})}),A=(0,L.A)(S,[["render",function(e,n,t,s,o,i){return(0,a.uX)(),(0,a.CE)("span",E,"("+(0,y.v_)(e.previewSize)+")",1)}]]);var T=t(3751),X=t(2806);const j=(0,a.pM)({name:"InlineChannel",props:{channel:String},setup:e=>({openContextMenu:n=>{X.A.emit("contextmenu:inline-channel",{event:n,channel:e.channel})}})}),W=(0,L.A)(j,[["render",function(e,n,t,s,o,i){return(0,a.uX)(),(0,a.CE)("span",{class:"inline-channel",dir:"auto",role:"button",tabindex:"0",onClick:n[0]||(n[0]=(0,T.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"])),onContextmenu:n[1]||(n[1]=(0,T.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))},[(0,a.RG)(e.$slots,"default")],32)}]]);var P=t(6640);const R=/[\u{1f3fb}-\u{1f3ff}]|\u{fe0f}/gu,I=function(e,n,t){const r=function(e){return function(e){const n=[];let t,a,l,r,c,u,d,p,h,g,m=0,k=0;const f=()=>{a=!1,l=void 0,r=void 0,c=void 0,u=void 0,d=!1,p=!1,h=!1,g=!1};f();const b=()=>{const t=e.slice(m,k).replace(i," ");if(t.length){const e=n.length?n[n.length-1].end:0;n.push({bold:a,textColor:l,bgColor:r,hexColor:c,hexBgColor:u,italic:d,underline:p,strikethrough:h,monospace:g,text:t,start:e,end:e+t.length})}m=k+1};for(;k<e.length;){switch(e[k]){case"":b(),f();break;case"":b(),a=!a;break;case"":b(),t=e.slice(k+1).match(s),t?(l=Number(t[1]),t[2]&&(r=Number(t[2])),k+=t[0].length,m=k+1):(l=void 0,r=void 0);break;case"":b(),t=e.slice(k+1).match(o),t?(c=t[1].toUpperCase(),t[2]&&(u=t[2].toUpperCase()),k+=t[0].length,m=k+1):(c=void 0,u=void 0);break;case"":{b();const e=r;r=l,l=e;break}case"":b(),d=!d;break;case"":b(),p=!p;break;case"":b(),h=!h;break;case"":b(),g=!g}k+=1}return b(),n}(e).reduce((e,n)=>{if(e.length){const t=e[e.length-1];if(l.every(e=>n[e]===t[e]))return t.text+=n.text,t.end+=n.text.length,e}return e.concat([n])},[])}(e),c=r.map(e=>e.text).join(""),d=function(e,n,t){const a=t.map(u).join(""),s=n.map(u).join(""),o=new RegExp(`(?:^|\\s)[${a}]*([${s}][^ ]+)`,"g"),i=[];let l;do{l=o.exec(e),l&&i.push({start:l.index+l[0].length-l[1].length,end:l.index+l[0].length,channel:l[1]})}while(l);return i}(c,t?t.serverOptions.CHANTYPES:["#","&"],t?t.serverOptions.PREFIX?.prefix?.map(e=>e.symbol):["!","@","%","+"]),p=function(e){const n=h.match(e);return n?n.map(m):[]}(c),g=function(e){const n=[];let t;for(;t=k.exec(e);)n.push({start:t.index,end:t.index+t[0].length,emoji:t[0]});return n}(c),y=function(e,n){const t=[];if(0===n.length)return t;let a;for(;a=f.exec(e);)n.indexOf(a[1])>-1&&t.push({start:a.index,end:a.index+a[1].length,nick:a[1]});return t}(c,n&&n.users||[]);return function(e,n,t){const a=function(e,n){let t=0;const a=e.reduce((e,n)=>(n.start>t&&e.push({start:t,end:n.start}),t=n.end,e),[]);return t<n.length&&a.push({start:t,end:n.length}),a}(e=e.sort(v).reduce((e,n)=>e.some(e=>b(e,n))?e:e.concat([n]),[]),t);return[...e,...a].sort(v).map(e=>{const t=n.filter(n=>b(e,n)).map(n=>function(e,n){const t=n.start,a=Math.max(n.start,e.start),s=Math.min(n.end,e.end),o=n.text.slice(a-t,s-t);return Object.assign({},n,{start:a,end:s,text:o})}(e,n));return{...e,fragments:t}})}(d.concat(p).concat(g).concat(y),r,c).map(e=>{const t=e.fragments.map(e=>function(e){const n=[];e.bold&&n.push("irc-bold"),void 0!==e.textColor&&n.push("irc-fg"+e.textColor),void 0!==e.bgColor&&n.push("irc-bg"+e.bgColor),e.italic&&n.push("irc-italic"),e.underline&&n.push("irc-underline"),e.strikethrough&&n.push("irc-strikethrough"),e.monospace&&n.push("irc-monospace");const t={class:void 0,style:void 0};let s=!1;return n.length>0&&(s=!0,t.class=n),e.hexColor&&(s=!0,t.style={color:`#${e.hexColor}`},e.hexBgColor&&(t.style["background-color"]=`#${e.hexBgColor}`)),s?(0,a.h)("span",t,e.text):e.text}(e));if("link"in e){const s=n&&n.previews&&n.previews.find(n=>n.link===e.link),o=(0,a.h)("a",{href:e.link,dir:s?null:"auto",target:"_blank",rel:"noopener"},t);if(!s)return o;const i=[o];return s.size>0&&i.push((0,a.h)(A,{size:s.size})),i.push((0,a.h)(M,{link:s,message:n})),(0,a.h)("span",{dir:"auto"},i)}if("channel"in e)return(0,a.h)(W,{channel:e.channel},{default:()=>t});if(function(e){return"emoji"in e}(e)){const n=e.emoji.replace(R,""),s=w[n]?`Emoji: ${w[n]}`:null;return(0,a.h)("span",{class:["emoji"],role:"img","aria-label":s,title:s},t)}return function(e){return"nick"in e}(e)?(0,a.h)(P.A,{user:{nick:e.nick},dir:"auto"},{default:()=>t}):t})},N=(0,a.pM)({name:"ParsedMessage",functional:!0,props:{text:String,message:{type:Object,required:!1},network:{type:Object,required:!1}},render:e=>I(void 0!==e.text?e.text:e.message.text,e.message,e.network)})},4379:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={key:2,class:"new-topic"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeTopic",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[e.message.from&&e.message.from.nick?((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" has changed the topic to: ",-1))],64)):((0,a.uX)(),(0,a.CE)(a.FK,{key:1},[(0,a.eW)("The topic is: ")],64)),e.message.text?((0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(u,{network:e.network,message:e.message},null,8,["network","message"])])):(0,a.Q3)("",!0)])}]])},5182:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>u});var a=t(641);const s={class:"content"},o={class:"hostmask"},i={key:0,class:"part-reason"};var l=t(3568),r=t(6640);const c=(0,a.pM)({name:"MessageTypePart",components:{ParsedMessage:l.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),u=(0,t(6262).A)(c,[["render",function(e,n,t,l,r,c){const u=(0,a.g2)("Username"),d=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),(0,a.Lk)("i",o,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(d,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),n[1]||(n[1]=(0,a.eW)(")",-1))]),n[4]||(n[4]=(0,a.eW)(" has left the channel ",-1)),e.message.text?((0,a.uX)(),(0,a.CE)("i",i,[n[2]||(n[2]=(0,a.eW)("(",-1)),(0,a.bF)(d,{network:e.network,message:e.message},null,8,["network","message"]),n[3]||(n[3]=(0,a.eW)(")",-1))])):(0,a.Q3)("",!0)])}]])},5506:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641),s=t(33);const o={class:"content"},i=(0,a.pM)({name:"MessageChannelMode",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,i,l,r){return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.eW)(" your user mode is ",-1)),(0,a.Lk)("b",null,(0,s.v_)(e.message.raw_modes),1)])}]])},6455:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>u});var a=t(641),s=t(33);const o={class:"content"},i={class:"ctcp-message"};var l=t(3568),r=t(6640);const c=(0,a.pM)({name:"MessageTypeCTCP",components:{ParsedMessage:l.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),u=(0,t(6262).A)(c,[["render",function(e,n,t,l,r,c){const u=(0,a.g2)("Username"),d=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(u,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" "+(0,s.v_)(" ")+" ",-1)),(0,a.Lk)("span",i,[(0,a.bF)(d,{text:e.message.ctcpMessage},null,8,["text"])])])}]])},6640:(e,n,t)=>{"use strict";t.d(n,{A:()=>d});var a=t(641),s=t(3751),o=t(33);const i=["data-name"];var l=t(2806),r=t(211),c=t(1654);const u=(0,a.pM)({name:"Username",props:{user:{type:Object,required:!0},active:Boolean,onHover:{type:Function,required:!1},channel:{type:Object,required:!1},network:{type:Object,required:!1}},setup(e){const n=(0,a.EW)(()=>e.user.modes?e.user.modes[0]:e.user.mode),t=(0,a.EW)(()=>(e=>{let n=0;for(let t=0;t<e.length;t++)n+=e.charCodeAt(t);return"color-"+(1+n%32).toString()})(e.user.nick)),s=(0,r.Pj)();return s.state.settings.beautifyBridgedMessages&&e.user.shoutbox&&s.state.activeChannel?.channel.state===c.gC.JOINED&&!s.state.activeChannel?.channel.users.find(n=>n.nick===e.user.nick)&&s.state.activeChannel?.channel.users.push({nick:e.user.nick,modes:[],lastMessage:Date.now(),mode:"",away:""}),{displayNick:(0,a.EW)(()=>{const t=n.value??"",a=e.user.nick;return s.state.settings.beautifyBridgedMessages&&e.user.shoutbox&&"parentheses"===s.state.settings.bridgedMessageNicksStyle?`(${t}${a})`:`${t}${a}`}),mode:n,nickColor:t,hover:()=>e.onHover?e.onHover(e.user):null,openContextMenu:n=>{l.A.emit("contextmenu:user",{event:n,user:e.user,network:e.network,channel:e.channel})},store:s}}}),d=(0,t(6262).A)(u,[["render",function(e,n,t,l,r,c){return(0,a.uX)(),(0,a.CE)("span",(0,a.v6)({class:["user",{[e.nickColor]:e.store.state.settings.coloredNicks},{active:e.active}],"data-name":e.user.nick,role:"button"},(0,a.Tb)(e.onHover?{mouseenter:e.hover}:{},!0),{onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"])),onContextmenu:n[1]||(n[1]=(0,s.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))}),[(0,a.RG)(e.$slots,"default",{},()=>[(0,a.eW)((0,o.v_)(e.displayNick),1)])],16,i)}]])},6789:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641),s=t(33);const o={class:"content"};var i=t(7321),l=t(6640);const r=(0,a.pM)({name:"MessageTypeTopicSetBy",components:{Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({messageTimeLocale:(0,a.EW)(()=>(0,i.A)(e.message.when))})}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.eW)(" Topic set by ",-1)),(0,a.bF)(c,{user:e.message.from},null,8,["user"]),(0,a.eW)(" on "+(0,s.v_)(e.messageTimeLocale),1)])}]])},7062:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641),s=t(33);const o={class:"content"},i=(0,a.pM)({name:"MessageChannelMode",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,i,l,r){return(0,a.uX)(),(0,a.CE)("span",o,[n[0]||(n[0]=(0,a.eW)(" channel mode is ",-1)),(0,a.Lk)("b",null,(0,s.v_)(e.message.text),1)])}]])},7321:(e,n,t)=>{"use strict";t.d(n,{A:()=>o});var a=t(4353),s=t.n(a);const o=e=>s()(e).format("D MMMM YYYY, HH:mm:ss")},7902:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>p});var a=t(641),s=t(33);const o={class:"content"},i={class:"hostmask"},l={key:0,class:"account"},r={key:1,class:"realname"};var c=t(3568),u=t(6640);const d=(0,a.pM)({name:"MessageTypeJoin",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,t(6262).A)(d,[["render",function(e,n,t,c,u,d){const p=(0,a.g2)("Username"),h=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",o,[(0,a.bF)(p,{user:e.message.from},null,8,["user"]),(0,a.Lk)("i",i,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(h,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),n[1]||(n[1]=(0,a.eW)(")",-1))]),e.message.account?((0,a.uX)(),(0,a.CE)("i",l," ["+(0,s.v_)(e.message.account)+"]",1)):(0,a.Q3)("",!0),e.message.gecos?((0,a.uX)(),(0,a.CE)("i",r," ("+(0,s.v_)(e.message.gecos)+")",1)):(0,a.Q3)("",!0),n[2]||(n[2]=(0,a.eW)(" has joined the channel ",-1))])}]])},8078:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={class:"ctcp-message"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeRequestCTCP",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" sent a ",-1)),n[1]||(n[1]=(0,a.Lk)("abbr",{title:"Client-to-client protocol"},"CTCP",-1)),n[2]||(n[2]=(0,a.eW)(" request: ",-1)),(0,a.Lk)("span",o,[(0,a.bF)(u,{text:e.message.ctcpMessage},null,8,["text"])])])}]])},9056:(e,n,t)=>{"use strict";const a={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};var s=t(3751),o=t(211),i=t(641),l=t(33),r=t(2806),c=t(6411),u=t.n(c),d=t(7350),p=t.n(d),h=t(9808);const g=e=>("TEXTAREA"===e.target.tagName||"INPUT"===e.target.tagName)&&!!e.target.value,m={class:"scrollable-area"},k={class:"logo-container"},f=["src"],b=["src"],v={key:0,title:"The Lounge has been built in development mode",style:{backgroundColor:"#ff9e18",color:"#000",padding:"2px",borderRadius:"4px",fontSize:"12px"}},w={id:"footer"},y={class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":"Connect to network"},_=["aria-selected","onClick","onKeypress"],C={class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":"Settings"},L=["aria-selected","onClick","onKeypress"],M=["aria-label"],E=["aria-selected","onClick","onKeypress"];var x=t(953),S=t(5220);const A={key:0,class:"empty",role:"navigation","aria-label":"Network and Channel list"},T={key:1,ref:"networklist",role:"navigation","aria-label":"Network and Channel list"},X={key:0,class:"jump-to-input"},j=["value"],W={key:1,class:"jump-to-results"},P={key:0},R=["onMouseenter"],I={key:1,class:"no-results"},N=["id"];var U=t(246);const F={delay:{type:Number,default:0,required:!1},delayOnTouchOnly:{type:Boolean,default:!1,required:!1},touchStartThreshold:{type:Number,default:10,required:!1},handle:{type:String,default:"",required:!1},draggable:{type:String,default:"",required:!1},ghostClass:{type:String,default:"",required:!1},dragClass:{type:String,default:"",required:!1},group:{type:String,default:"",required:!1},class:{type:String,default:"",required:!1},itemKey:{type:String,default:"",required:!0},list:{type:Array,default:[],required:!0},filter:{type:String,default:"",required:!1}},O=(0,i.pM)({name:"Draggable",props:F,emits:["change","choose","unchoose"],setup(e,{emit:n}){const t=(0,x.KR)(null),a=(0,x.KR)(null);return(0,i.wB)(t,t=>{t&&(a.value=new U.Ay(t,{...e,onChoose(e){n("choose",e)},onUnchoose(e){n("unchoose",e)},onEnd(e){n("change",e)}}))}),(0,i.xo)(()=>{a.value&&(a.value.destroy(),t.value=null)}),{containerRef:t}}});var q=t(6262);const K=(0,q.A)(O,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{ref:"containerRef",class:(0,l.C4)(e.$props.class)},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.list,(n,t)=>(0,i.RG)(e.$slots,"item",{key:n[e.itemKey],element:n,index:t})),128))],2)}]]);var D=t(4751),B=t.n(D);const $=["aria-controls","aria-label","aria-expanded"],H={key:1,class:"collapse-network"},Q={class:"lobby-wrap"},z=["title"],V={key:0,class:"not-secure-tooltip tooltipped tooltipped-w","aria-label":"Insecure connection"},Y={key:1,class:"not-connected-tooltip tooltipped tooltipped-w","aria-label":"Disconnected"},J=["aria-label"],G=["aria-controls","aria-label"],Z=(e,n)=>{const t=h.A.get("thelounge.networks.collapsed"),a=t?new Set(JSON.parse(t)):new Set;e.isCollapsed=n,n?a.add(e.uuid):a.delete(e.uuid),h.A.set("thelounge.networks.collapsed",JSON.stringify([...a]))},ee=e=>e<1e3?e.toString():(e/1e3).toFixed(2).slice(0,-1)+"k",ne=["aria-label","title","data-name","data-type","aria-controls","aria-selected"],te=(e,n)=>!(!e.isCollapsed||n.highlight||"lobby"===n.type||o.M_.state.activeChannel&&n===o.M_.state.activeChannel.channel),ae={id:"sign-in",class:"window",role:"tabpanel","aria-label":"Sign-in"},se={class:"password-container"},oe=["type"],ie={key:0,class:"error"},le=["disabled"];var re=t(381);const ce=["aria-label"],ue=["aria-label"],de=(0,i.pM)({name:"RevealPassword",setup(){const e=(0,x.KR)(!1);return{isVisible:e,onClick:()=>{e.value=!e.value}}}}),pe=(0,q.A)(de,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",null,[(0,i.RG)(e.$slots,"default",{isVisible:e.isVisible}),(0,i.Lk)("span",{ref:"revealButton",type:"button",class:(0,l.C4)(["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,i.Lk)("span",{"aria-label":e.isVisible?"Hide password":"Show password"},null,8,ue)],10,ce)])}]]),he=(0,i.pM)({name:"SignIn",components:{RevealPassword:pe},setup(){const e=(0,x.KR)(!1),n=(0,x.KR)(!1),t=(0,x.KR)(h.A.get("user")||""),a=(0,x.KR)(""),s=()=>{e.value=!1,n.value=!0};return(0,i.sV)(()=>{re.A.on("auth:failed",s)}),(0,i.xo)(()=>{re.A.off("auth:failed",s)}),{inFlight:e,errorShown:n,username:t,password:a,onSubmit:s=>{if(s.preventDefault(),!t.value||!a.value)return;e.value=!0,n.value=!1;const o={user:t.value,password:a.value};h.A.set("user",o.user),re.A.emit("auth:perform",o)}}}}),ge=(0,q.A)(he,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("RevealPassword");return(0,i.uX)(),(0,i.CE)("div",ae,[(0,i.Lk)("form",{class:"container",method:"post",action:"",onSubmit:n[2]||(n[2]=(...n)=>e.onSubmit&&e.onSubmit(...n))},[n[4]||(n[4]=(0,i.Lk)("img",{src:"img/logo-vertical-transparent-bg.svg",class:"logo",alt:"The Lounge",width:"256",height:"170"},null,-1)),n[5]||(n[5]=(0,i.Lk)("img",{src:"img/logo-vertical-transparent-bg-inverted.svg",class:"logo-inverted",alt:"The Lounge",width:"256",height:"170"},null,-1)),n[6]||(n[6]=(0,i.Lk)("label",{for:"signin-username"},"Username",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.username,void 0,{trim:!0}]]),(0,i.Lk)("div",se,[n[3]||(n[3]=(0,i.Lk)("label",{for:"signin-password"},"Password",-1)),(0,i.bF)(r,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"signin-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.password=n),type:t.isVisible?"text":"password",class:"input",autocapitalize:"none",autocorrect:"off",autocomplete:"current-password",required:""},null,8,oe),[[s.hp,e.password]])]),_:1})]),e.errorShown?((0,i.uX)(),(0,i.CE)("div",ie,"Authentication failed.")):(0,i.Q3)("",!0),(0,i.Lk)("button",{disabled:e.inFlight,type:"submit",class:"btn"},"Sign in",8,le)],32)])}]]),me={id:"connect",class:"window",role:"tabpanel","aria-label":"Connect"},ke={class:"header"},fe={class:"title"},be={class:"connect-row"},ve={class:"connect-row"},we={class:"input-wrap"},ye={class:"connect-row"},_e=["type"],Ce={class:"connect-row"},Le={class:"input-wrap"},Me={class:"tls"},Ee=["disabled"],xe={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"},Se={class:"tls"},Ae={class:"connect-row"},Te={class:"input-wrap"},Xe={for:"connect:proxyEnabled"},je={class:"connect-row"},We={class:"input-wrap"},Pe={class:"connect-row"},Re={class:"connect-row"},Ie=["type"],Ne={class:"connect-row"},Ue={class:"connect-row"},Fe=["type"],Oe={class:"connect-row"},qe={key:2,class:"connect-row"},Ke={class:"connect-row"},De={class:"connect-row"},Be={key:3,class:"connect-row"},$e=["value"],He={key:4,class:"connect-row"},Qe={class:"connect-row"},ze={class:"connect-row",style:{display:"block"}},Ve={class:"fish-keys-section"},Ye={class:"input-wrap fish-key-inputs"},Je=["onUpdate:modelValue"],Ge=["onUpdate:modelValue"],Ze=["disabled","onClick"],en={class:"connect-row"},nn={class:"connect-row"},tn={class:"input-wrap"},an={class:"tls"},sn={key:0,class:"connect-row"},on=["type"],ln={class:"connect-row connect-auth",role:"group","aria-labelledby":"label-auth"},rn={class:"opt"},cn=["checked"],un={class:"opt"},dn=["checked"],pn={key:0,class:"opt"},hn=["checked"],gn={class:"connect-row"},mn={class:"connect-row"},kn=["type"],fn={key:1,class:"connect-sasl-external"},bn=["disabled"],vn=(0,i.pM)({name:"SidebarToggle",setup:()=>({store:(0,o.Pj)()})}),wn=(0,q.A)(vn,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("button",{class:"lt","aria-label":"Toggle channel list",onClick:n[0]||(n[0]=n=>e.store.commit("toggleSidebar"))})}]]),yn=(0,i.pM)({name:"NetworkForm",components:{RevealPassword:pe,SidebarToggle:wn},props:{handleSubmit:{type:Function,required:!0},defaults:{type:Object,required:!0},disabled:Boolean},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(n.state.serverConfiguration),a=(0,x.KR)(e.defaults?.username),s=(0,x.KR)(!1),l=(0,x.KR)(null);(0,i.wB)(s,e=>{e&&(0,i.dY)(()=>{l.value?.focus()})});const r=(0,x.KR)(null),c=()=>{r.value&&(r.value.style.height="",r.value.style.height=`${Math.ceil(r.value.scrollHeight+2)}px`)};(0,i.wB)(()=>e.defaults?.commands,()=>{(0,i.dY)(()=>{c()})}),(0,i.wB)(()=>e.defaults?.tls,n=>{const t=[6667,6697],a=n?0:1;e.defaults?.port===t[a]&&(e.defaults.port=t[1-a])});const u=(0,x.KR)(null),d=(0,x.KR)([]),p=(0,i.EW)(()=>{const e={};for(const n of d.value){const t=n.target.trim(),a=n.key.trim();t&&a&&(e[t]=a)}return e});return(0,i.wB)(()=>e.defaults.fishKeys,e=>{d.value=(e=>{if(!e||0===Object.keys(e).length)return[{target:"",key:""}];const n=[];for(const[t,a]of Object.entries(e))n.push({target:t,key:String(a??"")});return n.length>0?n:[{target:"",key:""}]})(e)},{immediate:!0}),{store:n,config:t,displayPasswordField:s,publicPassword:l,commandsInput:r,resizeCommandsInput:c,setSaslAuth:n=>{e.defaults&&(e.defaults.sasl=n)},usernameInput:u,onNickChanged:e=>{if(!u.value)return;const n=u.value;n.value&&n.value!==a.value||(n.value=e.target?.value),a.value=e.target?.value},onSubmit:n=>{const t=new FormData(n.target),a={};t.forEach((e,n)=>{a[n]=e}),e.handleSubmit({...a,fishKeys:p.value})},fishKeysEntries:d,fishKeysValue:p,addFishKeyEntry:()=>{d.value.push({target:"",key:""})},removeFishKeyEntry:e=>{d.value.length>1&&d.value.splice(e,1)}}}}),_n=(0,q.A)(yn,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("RevealPassword");return(0,i.uX)(),(0,i.CE)("div",me,[(0,i.Lk)("div",ke,[(0,i.bF)(c)]),(0,i.Lk)("form",{class:"container",method:"post",action:"",onSubmit:n[30]||(n[30]=(0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["prevent"]))},[(0,i.Lk)("h1",fe,[e.defaults.uuid?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.defaults.uuid=n),type:"hidden",name:"uuid"},null,512),[[s.Jo,e.defaults.uuid]]),(0,i.eW)(" Edit "+(0,l.v_)(e.defaults.name),1)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[31]||(n[31]=(0,i.eW)(" Connect ",-1)),e.config?.lockNetwork&&e.store?.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" to "+(0,l.v_)(e.defaults.name),1)],64)):(0,i.Q3)("",!0)],64))]),e.config?.lockNetwork?e.config.lockNetwork&&!e.store.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[49]||(n[49]=(0,i.Lk)("h2",null,"Network settings",-1)),(0,i.Lk)("div",Ne,[n[47]||(n[47]=(0,i.Lk)("label",{for:"connect:name"},"Name",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:name","onUpdate:modelValue":n[12]||(n[12]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[s.Jo,e.defaults.name,void 0,{trim:!0}]])]),(0,i.Lk)("div",Ue,[n[48]||(n[48]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password","onUpdate:modelValue":n[13]||(n[13]=n=>e.defaults.password=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,Fe),[[s.hp,e.defaults.password]])]),_:1})])],64)):(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[45]||(n[45]=(0,i.Lk)("h2",null,"Network settings",-1)),(0,i.Lk)("div",be,[n[32]||(n[32]=(0,i.Lk)("label",{for:"connect:name"},"Name",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:name","onUpdate:modelValue":n[1]||(n[1]=n=>e.defaults.name=n),class:"input",name:"name",maxlength:"100"},null,512),[[s.Jo,e.defaults.name,void 0,{trim:!0}]])]),(0,i.Lk)("div",ve,[n[34]||(n[34]=(0,i.Lk)("label",{for:"connect:host"},"Server",-1)),(0,i.Lk)("div",we,[(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.host,void 0,{trim:!0}]]),n[33]||(n[33]=(0,i.Lk)("span",{id:"connect:portseparator"},":",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.port]])])]),(0,i.Lk)("div",ye,[n[35]||(n[35]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password","onUpdate:modelValue":n[4]||(n[4]=n=>e.defaults.password=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,_e),[[s.hp,e.defaults.password]])]),_:1})]),(0,i.Lk)("div",Ce,[n[38]||(n[38]=(0,i.Lk)("label",null,null,-1)),(0,i.Lk)("div",Le,[(0,i.Lk)("label",Me,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[5]||(n[5]=n=>e.defaults.tls=n),type:"checkbox",name:"tls",disabled:e.defaults.hasSTSPolicy},null,8,Ee),[[s.lH,e.defaults.tls]]),n[36]||(n[36]=(0,i.eW)(" Use secure connection (TLS) ",-1)),e.defaults.hasSTSPolicy?((0,i.uX)(),(0,i.CE)("span",xe,"๐ STS")):(0,i.Q3)("",!0)]),(0,i.Lk)("label",Se,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[6]||(n[6]=n=>e.defaults.rejectUnauthorized=n),type:"checkbox",name:"rejectUnauthorized"},null,512),[[s.lH,e.defaults.rejectUnauthorized]]),n[37]||(n[37]=(0,i.eW)(" Only allow trusted certificates ",-1))])])]),n[46]||(n[46]=(0,i.Lk)("h2",null,"Proxy Settings",-1)),(0,i.Lk)("div",Ae,[n[40]||(n[40]=(0,i.Lk)("label",null,null,-1)),(0,i.Lk)("div",Te,[(0,i.Lk)("label",Xe,[(0,i.bo)((0,i.Lk)("input",{id:"connect:proxyEnabled","onUpdate:modelValue":n[7]||(n[7]=n=>e.defaults.proxyEnabled=n),type:"checkbox",name:"proxyEnabled"},null,512),[[s.lH,e.defaults.proxyEnabled]]),n[39]||(n[39]=(0,i.eW)(" Enable Proxy ",-1))])])]),e.defaults.proxyEnabled?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",je,[n[42]||(n[42]=(0,i.Lk)("label",{for:"connect:proxyHost"},"SOCKS Address",-1)),(0,i.Lk)("div",We,[(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.proxyHost,void 0,{trim:!0}]]),n[41]||(n[41]=(0,i.Lk)("span",{id:"connect:proxyPortSeparator"},":",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.proxyPort]])])]),(0,i.Lk)("div",Pe,[n[43]||(n[43]=(0,i.Lk)("label",{for:"connect:proxyUsername"},"Proxy username",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.proxyUsername,void 0,{trim:!0}]])]),(0,i.Lk)("div",Re,[n[44]||(n[44]=(0,i.Lk)("label",{for:"connect:proxyPassword"},"Proxy password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:proxyPassword",ref:"proxyPassword","onUpdate:modelValue":n[11]||(n[11]=n=>e.defaults.proxyPassword=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Proxy password",name:"proxyPassword",maxlength:"300"},null,8,Ie),[[s.hp,e.defaults.proxyPassword]])]),_:1})])],64)):(0,i.Q3)("",!0)],64)),n[68]||(n[68]=(0,i.Lk)("h2",null,"User preferences",-1)),(0,i.Lk)("div",Oe,[n[50]||(n[50]=(0,i.Lk)("label",{for:"connect:nick"},"Nick",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.nick]])]),e.config?.useHexIp?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",qe,[n[51]||(n[51]=(0,i.Lk)("label",{for:"connect:username"},"Username",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.username,void 0,{trim:!0}]])])),(0,i.Lk)("div",Ke,[n[52]||(n[52]=(0,i.Lk)("label",{for:"connect:realname"},"Real name",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:realname","onUpdate:modelValue":n[17]||(n[17]=n=>e.defaults.realname=n),class:"input",name:"realname",maxlength:"300"},null,512),[[s.Jo,e.defaults.realname,void 0,{trim:!0}]])]),(0,i.Lk)("div",De,[n[53]||(n[53]=(0,i.Lk)("label",{for:"connect:leaveMessage"},"Leave message",-1)),(0,i.bo)((0,i.Lk)("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),[[s.Jo,e.defaults.leaveMessage,void 0,{trim:!0}]])]),e.defaults.uuid&&!e.store.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)("div",Be,[n[54]||(n[54]=(0,i.Lk)("label",{for:"connect:commands"},[(0,i.eW)(" Commands "),(0,i.Lk)("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,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("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,$e)])):e.defaults.uuid?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",He,[n[55]||(n[55]=(0,i.Lk)("label",{for:"connect:channels"},"Channels",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:channels","onUpdate:modelValue":n[20]||(n[20]=n=>e.defaults.join=n),class:"input",name:"join"},null,512),[[s.Jo,e.defaults.join,void 0,{trim:!0}]])])),n[69]||(n[69]=(0,i.Lk)("h2",null,"FiSH (Blowfish)",-1)),(0,i.Lk)("div",Qe,[n[56]||(n[56]=(0,i.Lk)("label",{for:"connect:fishGlobalKey"},"Global key",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:fishGlobalKey","onUpdate:modelValue":n[21]||(n[21]=n=>e.defaults.fishGlobalKey=n),class:"input",name:"fishGlobalKey",placeholder:"Optional global key for this network"},null,512),[[s.Jo,e.defaults.fishGlobalKey,void 0,{trim:!0}]])]),(0,i.Lk)("div",ze,[n[57]||(n[57]=(0,i.Lk)("label",{for:"connect:fishKeys",style:{"margin-bottom":"5px"}},[(0,i.eW)(" Per-channel or User-Channels "),(0,i.Lk)("span",{class:"tooltipped tooltipped-ne tooltipped-no-delay","aria-label":"#channel key or nick key"},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("div",Ve,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.fishKeysEntries,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:t,class:"connect-row fish-key-row"},[(0,i.Lk)("div",Ye,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":e=>n.target=e,class:"input fish-target-input",placeholder:"#channel or nick",maxlength:"100","aria-label":"Channel or user name",style:{margin:"0"}},null,8,Je),[[s.Jo,n.target]]),(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":e=>n.key=e,type:"password",class:"input fish-key-input",placeholder:"encryption key",maxlength:"300","aria-label":"Encryption key",style:{margin:"0"}},null,8,Ge),[[s.Jo,n.key]]),(0,i.Lk)("button",{type:"button",class:"btn fish-remove-btn",disabled:e.fishKeysEntries.length<=1,title:"Remove entry",style:{width:"auto",margin:"0"},onClick:n=>e.removeFishKeyEntry(t)}," Remove ",8,Ze)])]))),128)),(0,i.Lk)("div",en,[(0,i.Lk)("button",{type:"button",class:"btn",onClick:n[22]||(n[22]=(...n)=>e.addFishKeyEntry&&e.addFishKeyEntry(...n))}," Add Entry ")])])]),e.store.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:5},[e.config?.lockNetwork?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",nn,[n[59]||(n[59]=(0,i.Lk)("label",null,null,-1)),(0,i.Lk)("div",tn,[(0,i.Lk)("label",an,[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[23]||(n[23]=n=>e.displayPasswordField=n),type:"checkbox"},null,512),[[s.lH,e.displayPasswordField]]),n[58]||(n[58]=(0,i.eW)(" I have a password ",-1))])])]),e.displayPasswordField?((0,i.uX)(),(0,i.CE)("div",sn,[n[60]||(n[60]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password",ref:"publicPassword","onUpdate:modelValue":n[24]||(n[24]=n=>e.defaults.password=n),class:"input",type:t.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,on),[[s.hp,e.defaults.password]])]),_:1})])):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:6},[n[67]||(n[67]=(0,i.Lk)("h2",{id:"label-auth"},"Authentication",-1)),(0,i.Lk)("div",ln,[(0,i.Lk)("label",rn,[(0,i.Lk)("input",{checked:!e.defaults.sasl,type:"radio",name:"sasl",value:"",onChange:n[25]||(n[25]=n=>e.setSaslAuth(""))},null,40,cn),n[61]||(n[61]=(0,i.eW)(" No authentication ",-1))]),(0,i.Lk)("label",un,[(0,i.Lk)("input",{checked:"plain"===e.defaults.sasl,type:"radio",name:"sasl",value:"plain",onChange:n[26]||(n[26]=n=>e.setSaslAuth("plain"))},null,40,dn),n[62]||(n[62]=(0,i.eW)(" Username + password (SASL PLAIN) ",-1))]),!e.store.state.serverConfiguration?.public&&e.defaults.tls?((0,i.uX)(),(0,i.CE)("label",pn,[(0,i.Lk)("input",{checked:"external"===e.defaults.sasl,type:"radio",name:"sasl",value:"external",onChange:n[27]||(n[27]=n=>e.setSaslAuth("external"))},null,40,hn),n[63]||(n[63]=(0,i.eW)(" Client certificate (SASL EXTERNAL) ",-1))])):(0,i.Q3)("",!0)]),"plain"===e.defaults.sasl?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",gn,[n[64]||(n[64]=(0,i.Lk)("label",{for:"connect:username"},"Account",-1)),(0,i.bo)((0,i.Lk)("input",{id:"connect:saslAccount","onUpdate:modelValue":n[28]||(n[28]=n=>e.defaults.saslAccount=n),class:"input",name:"saslAccount",maxlength:"100",required:""},null,512),[[s.Jo,e.defaults.saslAccount,void 0,{trim:!0}]])]),(0,i.Lk)("div",mn,[n[65]||(n[65]=(0,i.Lk)("label",{for:"connect:password"},"Password",-1)),(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:saslPassword","onUpdate:modelValue":n[29]||(n[29]=n=>e.defaults.saslPassword=n),class:"input",type:t.isVisible?"text":"password",name:"saslPassword",maxlength:"300",required:""},null,8,kn),[[s.hp,e.defaults.saslPassword]])]),_:1})])],64)):"external"===e.defaults.sasl?((0,i.uX)(),(0,i.CE)("div",fn,[...n[66]||(n[66]=[(0,i.Lk)("p",null,"The Lounge automatically generates and manages the client certificate.",-1),(0,i.Lk)("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,i.Lk)("pre",null,[(0,i.Lk)("code",null,"/msg NickServ CERT ADD")],-1)])])):(0,i.Q3)("",!0)],64)),(0,i.Lk)("div",null,[(0,i.Lk)("button",{type:"submit",class:"btn",disabled:!!e.disabled},[e.defaults.uuid?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)("Save network")],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)("Connect")],64))],8,bn)])],32)])}]]),Cn=(0,i.pM)({name:"Connect",components:{NetworkForm:_n},props:{queryParams:Object},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(!1);return{defaults:(0,x.KR)(Object.assign({},n.state.serverConfiguration?.defaults,(e=>{if(!e)return{};const t={};for(let a of Object.keys(e)){let s=e[a];if(Array.isArray(s)&&(s=s[0]),"channels"===a&&(a="join"),Object.prototype.hasOwnProperty.call(n.state.serverConfiguration?.defaults,a)&&(!n.state.serverConfiguration?.lockNetwork||!["name","host","port","tls","rejectUnauthorized"].includes(a)))switch("join"===a&&(s=s.split(",").map(e=>e.match(/^[#&!+]/)?e:`#${e}`).join(", ")),typeof n.state.serverConfiguration?.defaults[a]){case"boolean":t[a]="0"!==s&&"false"!==s&&!!s;break;case"number":t[a]=Number(s);break;case"string":t[a]=String(s)}}return t})(e.queryParams))),disabled:t,handleSubmit:e=>{t.value=!0,re.A.emit("network:new",e)}}}}),Ln=(0,q.A)(Cn,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("NetworkForm");return(0,i.uX)(),(0,i.Wv)(l,{"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"},En={class:"header"},xn={class:"container"},Sn={class:"settings-menu"},An={role:"navigation","aria-label":"Settings tabs"},Tn=["aria-label","aria-selected"],Xn=["onClick","onKeypress"],jn=(0,i.pM)({name:"SettingTabListItem",props:{name:{type:String,required:!0},className:{type:String,required:!0},to:{type:String,required:!0}},setup:()=>({route:(0,S.lq)()})}),Wn=(0,q.A)(jn,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("li",{"aria-label":e.name,role:"tab","aria-selected":e.route.name===e.name,"aria-controls":"settings"},[(0,i.bF)(c,{to:"/settings/"+e.to,custom:""},{default:(0,i.k6)(({navigate:n,isExactActive:t})=>[(0,i.Lk)("button",{class:(0,l.C4)(["icon",e.className,{active:t}]),onClick:n,onKeypress:(0,s.jR)(n,["enter"])},(0,l.v_)(e.name),43,Xn)]),_:1},8,["to"])],8,Tn)}]]),Pn=(0,i.pM)({name:"SettingsTabs",components:{SettingTabItem:Wn}}),Rn=(0,q.A)(Pn,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("SettingTabItem");return(0,i.uX)(),(0,i.CE)("aside",Sn,[n[0]||(n[0]=(0,i.Lk)("h2",null,"Settings",-1)),(0,i.Lk)("ul",An,[(0,i.bF)(l,{name:"General","class-name":"general",to:""}),(0,i.bF)(l,{name:"Appearance","class-name":"appearance",to:"appearance"}),(0,i.bF)(l,{name:"Notifications","class-name":"notifications",to:"notifications"}),(0,i.bF)(l,{name:"Account","class-name":"account",to:"account"})])])}]]),In=(0,i.pM)({name:"Settings",components:{SidebarToggle:wn,Navigation:Rn},setup(){const e=(0,o.Pj)();return{onChange:n=>{const t=n.target.name;if(["old_password","new_password","verify_password"].includes(t))return;let a;a="checkbox"===n.target.type?n.target.checked:n.target.value,e.dispatch("settings/update",{name:t,value:a,sync:!0})}}}}),Nn=(0,q.A)(In,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("Navigation"),u=(0,i.g2)("router-view");return(0,i.uX)(),(0,i.CE)("div",Mn,[(0,i.Lk)("div",En,[(0,i.bF)(r)]),(0,i.bF)(c),(0,i.Lk)("div",xn,[(0,i.Lk)("form",{ref:"settingsForm",autocomplete:"off",onChange:n[0]||(n[0]=(...n)=>e.onChange&&e.onChange(...n)),onSubmit:n[1]||(n[1]=(0,s.D$)(()=>{},["prevent"]))},[(0,i.bF)(u)],544)])])}]]),Un={id:"help",class:"window",role:"tabpanel","aria-label":"Help"},Fn={class:"header"},On={class:"container"},qn={class:"help-version-title"},Kn={class:"about"},Dn=["href"],Bn=["href"],$n=["href"],Hn={key:0},Qn={key:1,class:"help-item"},zn={key:2,class:"help-item"},Vn={key:3,class:"help-item"},Yn={key:4,class:"help-item"},Jn={class:"help-item"},Gn={class:"subject"},Zn={key:0},et={key:1},nt={class:"help-item"},tt={class:"subject"},at={key:0},st={key:1},ot={class:"help-item"},it={class:"subject"},lt={key:0},rt={key:1},ct={class:"help-item"},ut={class:"subject"},dt={key:0},pt={key:1},ht={class:"help-item"},gt={class:"subject"},mt={key:0},kt={key:1},ft={class:"help-item"},bt={class:"subject"},vt={key:0},wt={key:1},yt={class:"help-item"},_t={class:"subject"},Ct={key:0},Lt={key:1},Mt={class:"help-item"},Et={class:"subject"},xt={key:0},St={key:1},At={class:"help-item"},Tt={class:"subject"},Xt={key:0},jt={key:1},Wt={class:"help-item"},Pt={class:"subject"},Rt={key:0},It={key:1},Nt={class:"help-item"},Ut={class:"subject"},Ft={key:0},Ot={key:1},qt={class:"help-item"},Kt={class:"subject"},Dt={key:0},Bt={key:1},$t={class:"help-item"},Ht={class:"subject"},Qt={key:0},zt={key:1},Vt={class:"help-item"},Yt={class:"subject"},Jt={key:0},Gt={key:1},Zt={class:"help-item"},ea={class:"subject"},na={key:0},ta={key:1},aa={class:"help-item"},sa={class:"subject"},oa={key:0},ia={key:1},la={class:"help-item"},ra={class:"subject"},ca={key:0},ua={key:1},da={class:"help-item"},pa={class:"subject"},ha={key:0},ga={key:1},ma={class:"help-item"},ka={class:"subject"},fa={key:0},ba={key:1},va={class:"help-item"},wa={class:"subject"},ya={key:0},_a={key:1},Ca={class:"help-item"},La={class:"subject"},Ma={key:0},Ea={key:1},xa={key:5,class:"help-item"},Sa={key:0},Aa={key:1},Ta=["href"],Xa={key:2},ja=(0,i.pM)({name:"VersionChecker",setup(){const e=(0,o.Pj)(),n=()=>{e.commit("versionData",null),e.commit("versionStatus","loading"),re.A.emit("changelog")};return(0,i.sV)(()=>{e.state.versionData||n()}),{store:e,checkNow:n}}}),Wa=(0,q.A)(ja,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{id:"version-checker",class:(0,l.C4)([e.store.state.versionStatus])},["loading"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",Sa,"Checking for updatesโฆ")):(0,i.Q3)("",!0),"new-version"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",Aa,[n[2]||(n[2]=(0,i.eW)(" The Lounge ",-1)),(0,i.Lk)("b",null,(0,l.v_)(e.store.state.versionData?.latest?.version),1),e.store.state.versionData?.latest?.prerelease?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" (pre-release) ")],64)):(0,i.Q3)("",!0),n[3]||(n[3]=(0,i.eW)(" is now available. ",-1)),n[4]||(n[4]=(0,i.Lk)("br",null,null,-1)),(0,i.Lk)("a",{href:e.store.state.versionData?.latest?.url,target:"_blank",rel:"noopener"}," Read more on GitHub ",8,Ta)])):(0,i.Q3)("",!0),"new-packages"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",Xa,[...n[5]||(n[5]=[(0,i.eW)(" The Lounge is up to date, but there are out of date packages Run ",-1),(0,i.Lk)("code",null,"thelounge upgrade",-1),(0,i.eW)(" on the server to upgrade packages. ",-1)])])):(0,i.Q3)("",!0),"up-to-date"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)(i.FK,{key:3},[n[6]||(n[6]=(0,i.Lk)("p",null,"The Lounge is up to date!",-1)),e.store.state.versionDataExpired?((0,i.uX)(),(0,i.CE)("button",{key:0,id:"check-now",class:"btn btn-small",onClick:n[0]||(n[0]=(...n)=>e.checkNow&&e.checkNow(...n))}," Check now ")):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0),"error"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)(i.FK,{key:4},[n[7]||(n[7]=(0,i.Lk)("p",null,"Information about latest release could not be retrieved.",-1)),(0,i.Lk)("button",{id:"check-now",class:"btn btn-small",onClick:n[1]||(n[1]=(...n)=>e.checkNow&&e.checkNow(...n))},"Try again")],64)):(0,i.Q3)("",!0)],2)}]]),Pa=(0,i.pM)({name:"Help",components:{SidebarToggle:wn,VersionChecker:Wa},setup(){const e=(0,o.Pj)();return{isApple:navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)||!1,isTouch:navigator.maxTouchPoints>0,store:e}}}),Ra=(0,q.A)(Pa,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("router-link"),u=(0,i.g2)("VersionChecker");return(0,i.uX)(),(0,i.CE)("div",Un,[(0,i.Lk)("div",Fn,[(0,i.bF)(r)]),(0,i.Lk)("div",On,[n[86]||(n[86]=(0,i.Lk)("h1",{class:"title"},"Help",-1)),(0,i.Lk)("h2",qn,[n[2]||(n[2]=(0,i.Lk)("span",null,"About The Lounge",-1)),(0,i.Lk)("small",null,[(0,i.eW)(" v"+(0,l.v_)(e.store.state.serverConfiguration?.version)+" (",1),(0,i.bF)(c,{id:"view-changelog",to:"/changelog"},{default:(0,i.k6)(()=>[...n[0]||(n[0]=[(0,i.eW)("release notes",-1)])]),_:1}),n[1]||(n[1]=(0,i.eW)(") ",-1))])]),(0,i.Lk)("div",Kn,[(0,i.bF)(u),e.store.state.serverConfiguration?.gitCommit?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("p",null,[n[4]||(n[4]=(0,i.eW)(" The Lounge is running from source (",-1)),(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/tree/${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[n[3]||(n[3]=(0,i.eW)("commit ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.gitCommit),1)],8,Dn),n[5]||(n[5]=(0,i.eW)("). ",-1))]),(0,i.Lk)("ul",null,[(0,i.Lk)("li",null,[n[9]||(n[9]=(0,i.eW)(" Compare ",-1)),(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/compare/${e.store.state.serverConfiguration?.gitCommit}...master`,target:"_blank",rel:"noopener"},[n[6]||(n[6]=(0,i.eW)("between ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.gitCommit),1),n[7]||(n[7]=(0,i.eW)(" and ",-1)),n[8]||(n[8]=(0,i.Lk)("code",null,"master",-1))],8,Bn),n[10]||(n[10]=(0,i.eW)(" to see what you are missing ",-1))]),(0,i.Lk)("li",null,[n[13]||(n[13]=(0,i.eW)(" Compare ",-1)),(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/compare/${e.store.state.serverConfiguration?.version}...${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[n[11]||(n[11]=(0,i.eW)("between ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.version),1),n[12]||(n[12]=(0,i.eW)(" and ",-1)),(0,i.Lk)("code",null,(0,l.v_)(e.store.state.serverConfiguration?.gitCommit),1)],8,$n),n[14]||(n[14]=(0,i.eW)(" to see your local changes ",-1))])])],64)):(0,i.Q3)("",!0),n[15]||(n[15]=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://thelounge.chat/",target:"_blank",rel:"noopener",class:"website-link"},"Website")],-1)),n[16]||(n[16]=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://thelounge.chat/docs/",target:"_blank",rel:"noopener",class:"documentation-link"},"Documentation")],-1)),n[17]||(n[17]=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://github.com/LordBex/thelounge/issues/new",target:"_blank",rel:"noopener",class:"report-issue-link"},"Report an issueโฆ")],-1))]),e.isTouch?((0,i.uX)(),(0,i.CE)("h2",Hn,"Gestures")):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Qn,[...n[18]||(n[18]=[(0,i.Lk)("div",{class:"subject gesture"},"Single-Finger Swipe Left",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Hide sidebar.")],-1)])])):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",zn,[...n[19]||(n[19]=[(0,i.Lk)("div",{class:"subject gesture"},"Single-Finger Swipe Right",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Show sidebar.")],-1)])])):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Vn,[...n[20]||(n[20]=[(0,i.Lk)("div",{class:"subject gesture"},"Two-Finger Swipe Left",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window in the channel list.")],-1)])])):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Yn,[...n[21]||(n[21]=[(0,i.Lk)("div",{class:"subject gesture"},"Two-Finger Swipe Right",-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window in the channel list.")],-1)])])):(0,i.Q3)("",!0),n[87]||(n[87]=(0,i.Lk)("h2",null,"Keyboard Shortcuts",-1)),(0,i.Lk)("div",Jn,[(0,i.Lk)("div",Gn,[e.isApple?((0,i.uX)(),(0,i.CE)("span",et,[...n[23]||(n[23]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",Zn,[...n[22]||(n[22]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[24]||(n[24]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next lobby in the channel list.")],-1))]),(0,i.Lk)("div",nt,[(0,i.Lk)("div",tt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",st,[...n[26]||(n[26]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",at,[...n[25]||(n[25]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[27]||(n[27]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous lobby in the channel list.")],-1))]),(0,i.Lk)("div",ot,[(0,i.Lk)("div",it,[e.isApple?((0,i.uX)(),(0,i.CE)("span",rt,[...n[29]||(n[29]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",lt,[...n[28]||(n[28]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[30]||(n[30]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Collapse current network.")],-1))]),(0,i.Lk)("div",ct,[(0,i.Lk)("div",ut,[e.isApple?((0,i.uX)(),(0,i.CE)("span",pt,[...n[32]||(n[32]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โง",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",dt,[...n[31]||(n[31]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Shift",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[33]||(n[33]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Expand current network.")],-1))]),(0,i.Lk)("div",ht,[(0,i.Lk)("div",gt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",kt,[...n[35]||(n[35]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",mt,[...n[34]||(n[34]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[36]||(n[36]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window in the channel list.")],-1))]),(0,i.Lk)("div",ft,[(0,i.Lk)("div",bt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",wt,[...n[38]||(n[38]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",vt,[...n[37]||(n[37]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[39]||(n[39]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window in the channel list.")],-1))]),(0,i.Lk)("div",yt,[(0,i.Lk)("div",_t,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Lt,[...n[41]||(n[41]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",Ct,[...n[40]||(n[40]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[42]||(n[42]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window with unread messages in the channel list.")],-1))]),(0,i.Lk)("div",Mt,[(0,i.Lk)("div",Et,[e.isApple?((0,i.uX)(),(0,i.CE)("span",St,[...n[44]||(n[44]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])])):((0,i.uX)(),(0,i.CE)("span",xt,[...n[43]||(n[43]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"โ",-1)])]))]),n[45]||(n[45]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window with unread messages in the channel list.")],-1))]),(0,i.Lk)("div",At,[(0,i.Lk)("div",Tt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",jt,[...n[47]||(n[47]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"A",-1)])])):((0,i.uX)(),(0,i.CE)("span",Xt,[...n[46]||(n[46]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"A",-1)])]))]),n[48]||(n[48]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the first window with unread messages.")],-1))]),(0,i.Lk)("div",Wt,[(0,i.Lk)("div",Pt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",It,[...n[50]||(n[50]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])])):((0,i.uX)(),(0,i.CE)("span",Rt,[...n[49]||(n[49]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])]))]),n[51]||(n[51]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle sidebar.")],-1))]),(0,i.Lk)("div",Nt,[(0,i.Lk)("div",Ut,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Ot,[...n[53]||(n[53]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])])):((0,i.uX)(),(0,i.CE)("span",Ft,[...n[52]||(n[52]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])]))]),n[54]||(n[54]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle channel user list.")],-1))]),(0,i.Lk)("div",qt,[(0,i.Lk)("div",Kt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Bt,[...n[56]||(n[56]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"J",-1)])])):((0,i.uX)(),(0,i.CE)("span",Dt,[...n[55]||(n[55]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"J",-1)])]))]),n[57]||(n[57]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle jump to channel switcher.")],-1))]),(0,i.Lk)("div",$t,[(0,i.Lk)("div",Ht,[e.isApple?((0,i.uX)(),(0,i.CE)("span",zt,[...n[59]||(n[59]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])])):((0,i.uX)(),(0,i.CE)("span",Qt,[...n[58]||(n[58]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])]))]),n[60]||(n[60]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle recent mentions popup.")],-1))]),(0,i.Lk)("div",Vt,[(0,i.Lk)("div",Yt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Gt,[...n[62]||(n[62]=[(0,i.Lk)("kbd",null,"โฅ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"/",-1)])])):((0,i.uX)(),(0,i.CE)("span",Jt,[...n[61]||(n[61]=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"/",-1)])]))]),n[63]||(n[63]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the help menu.")],-1))]),n[88]||(n[88]=(0,i.Lk)("div",{class:"help-item"},[(0,i.Lk)("div",{class:"subject"},[(0,i.Lk)("span",null,[(0,i.Lk)("kbd",null,"Esc")])]),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null," Close current contextual window (context menu, image viewer, topic edit, etc) and remove focus from input. ")])],-1)),n[89]||(n[89]=(0,i.Lk)("h2",null,"Formatting Shortcuts",-1)),(0,i.Lk)("div",Zt,[(0,i.Lk)("div",ea,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ta,[...n[65]||(n[65]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"K",-1)])])):((0,i.uX)(),(0,i.CE)("span",na,[...n[64]||(n[64]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"K",-1)])]))]),n[66]||(n[66]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark any text typed after this shortcut to be colored. After hitting this shortcut, enter an integer in the range "),(0,i.Lk)("code",null,"0โ15"),(0,i.eW)(" to select the desired color, or use the autocompletion menu to choose a color name (see below). ")]),(0,i.Lk)("p",null,[(0,i.eW)(" Background color can be specified by putting a comma and another integer in the range "),(0,i.Lk)("code",null,"0โ15"),(0,i.eW)(" after the foreground color number (autocompletion works too). ")]),(0,i.Lk)("p",null,[(0,i.eW)(" A color reference can be found "),(0,i.Lk)("a",{href:"https://modern.ircdocs.horse/formatting.html#colors",target:"_blank",rel:"noopener"},"here"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",aa,[(0,i.Lk)("div",sa,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ia,[...n[68]||(n[68]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"B",-1)])])):((0,i.uX)(),(0,i.CE)("span",oa,[...n[67]||(n[67]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"B",-1)])]))]),n[69]||(n[69]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-bold"},"bold"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",la,[(0,i.Lk)("div",ra,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ua,[...n[71]||(n[71]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])])):((0,i.uX)(),(0,i.CE)("span",ca,[...n[70]||(n[70]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)])]))]),n[72]||(n[72]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-underline"},"underlined"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",da,[(0,i.Lk)("div",pa,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ga,[...n[74]||(n[74]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"I",-1)])])):((0,i.uX)(),(0,i.CE)("span",ha,[...n[73]||(n[73]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"I",-1)])]))]),n[75]||(n[75]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-italic"},"italics"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",ma,[(0,i.Lk)("div",ka,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ba,[...n[77]||(n[77]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])])):((0,i.uX)(),(0,i.CE)("span",fa,[...n[76]||(n[76]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)])]))]),n[78]||(n[78]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-strikethrough"},"struck through"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",va,[(0,i.Lk)("div",wa,[e.isApple?((0,i.uX)(),(0,i.CE)("span",_a,[...n[80]||(n[80]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])])):((0,i.uX)(),(0,i.CE)("span",ya,[...n[79]||(n[79]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)])]))]),n[81]||(n[81]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,[(0,i.eW)(" Mark all text typed after this shortcut as "),(0,i.Lk)("span",{class:"irc-monospace"},"monospaced"),(0,i.eW)(". ")])],-1))]),(0,i.Lk)("div",Ca,[(0,i.Lk)("div",La,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Ea,[...n[83]||(n[83]=[(0,i.Lk)("kbd",null,"โ",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"O",-1)])])):((0,i.uX)(),(0,i.CE)("span",Ma,[...n[82]||(n[82]=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"O",-1)])]))]),n[84]||(n[84]=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null," Mark all text typed after this shortcut to be reset to its original formatting. ")],-1))]),n[90]||(n[90]=(0,i.Fv)('<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)),e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",xa,[...n[85]||(n[85]=[(0,i.Lk)("div",{class:"subject"},[(0,i.Lk)("code",null,"/search query")],-1),(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Search for messages in the current channel / user")],-1)])])):(0,i.Q3)("",!0),n[91]||(n[91]=(0,i.Fv)('<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))])])}]]),Ia={id:"changelog",class:"window","aria-label":"Changelog"},Na={class:"header"},Ua={class:"container"},Fa={class:"title"},Oa=["innerHTML"],qa=["href"],Ka={key:1},Da=(0,i.pM)({name:"Changelog",components:{SidebarToggle:wn},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(null),t=()=>{n.value&&n.value.querySelectorAll("a").forEach(e=>{e.setAttribute("target","_blank"),e.setAttribute("rel","noopener"),e.querySelector("img")&&e.classList.add("toggle-thumbnail")})};return(0,i.sV)(()=>{e.state.versionData||re.A.emit("changelog"),t()}),(0,i.$u)(()=>{t()}),{store:e}}}),Ba=(0,q.A)(Da,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("div",Ia,[(0,i.Lk)("div",Na,[(0,i.bF)(r)]),(0,i.Lk)("div",Ua,[(0,i.bF)(c,{id:"back-to-help",to:"/help"},{default:(0,i.k6)(()=>[...n[0]||(n[0]=[(0,i.eW)("ยซ Help",-1)])]),_:1}),e.store.state.versionData?.current&&e.store.state.versionData?.current.version?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("h1",Fa," Release notes for "+(0,l.v_)(e.store.state.versionData.current.version),1),e.store.state.versionData.current.changelog?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[1]||(n[1]=(0,i.Lk)("h3",null,"Introduction",-1)),(0,i.Lk)("div",{ref:"changelog",class:"changelog-text",innerHTML:e.store.state.versionData.current.changelog},null,8,Oa)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[2]||(n[2]=(0,i.Lk)("p",null,"Unable to retrieve changelog for current release from GitHub.",-1)),(0,i.Lk)("p",null,[e.store.state.serverConfiguration?.version?((0,i.uX)(),(0,i.CE)("a",{key:0,href:`https://github.com/LordBex/thelounge/releases/tag/v${e.store.state.serverConfiguration?.version}`,target:"_blank",rel:"noopener"},"View release notes for this version on GitHub",8,qa)):(0,i.Q3)("",!0)])],64))],64)):((0,i.uX)(),(0,i.CE)("p",Ka,"Loading changelogโฆ"))])])}]]),$a=(0,i.pM)({name:"NetworkEdit",components:{NetworkForm:_n},setup(){const e=(0,S.lq)(),n=(0,o.Pj)(),t=(0,x.KR)(!1),a=(0,x.KR)(null),s=()=>{re.A.emit("network:get",String(e.params.uuid||"")),a.value=n.getters.findNetwork(String(e.params.uuid||""))};return(0,i.wB)(()=>e.params.uuid,()=>{s()}),(0,i.sV)(()=>{s()}),{disabled:t,networkData:a,handleSubmit:e=>{t.value=!0,re.A.emit("network:edit",e);const a=n.getters.findNetwork(e.uuid);a&&(a.name=a.channels[0].name=e.name,mc(a.channels[0]))}}}}),Ha=(0,q.A)($a,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("NetworkForm");return e.networkData?((0,i.uX)(),(0,i.Wv)(l,{key:0,"handle-submit":e.handleSubmit,defaults:e.networkData,disabled:e.disabled},null,8,["handle-submit","defaults","disabled"])):(0,i.Q3)("",!0)}]]),Qa={id:"chat-container",class:"window"},za={class:"chat-view","data-type":"search-results","aria-label":"Search results",role:"tabpanel"},Va={key:0,class:"header"},Ya={class:"title"},Ja={class:"channel-name"},Ga={class:"topic"},Za={key:1,class:"chat-content"},es={ref:"chat",class:"chat",tabindex:"-1"},ns={class:"show-more"},ts=["disabled"],as={key:0},ss={key:1},os={key:0,class:"search-status"},is={key:1,class:"search-status"},ls={class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions"},rs=["data-jump-to"],cs=["id","data-type","data-command","data-from","data-bridged"],us=["aria-label"],ds={class:"from"},ps={class:"content"},hs={class:"content",dir:"auto"},gs={key:0,class:"from"},ms={key:1,class:"from"},ks={key:2,class:"from"},fs={class:"content",dir:"auto"},bs={key:0,"aria-label":"This message was shown in your active channel",class:"msg-shown-in-active tooltipped tooltipped-e"},vs=["aria-label"];var ws=t(4353),ys=t.n(ws),_s=t(7321),Cs=t(6640);const Ls={key:0,ref:"container",class:"preview",dir:"ltr"},Ms=["href"],Es=["src"],xs={class:"toggle-text",dir:"auto"},Ss={class:"head"},As={class:"overflowable"},Ts=["href","title"],Xs=["aria-expanded","aria-label"],js={class:"body overflowable"},Ws=["href","title"],Ps=["href"],Rs=["src"],Is=["src","type"],Ns=["src","type"],Us={key:0},Fs=["href"],Os=["href"],qs={class:"prefetch-error"},Ks=["aria-expanded","aria-label"];var Ds=t(5696),Bs=t(3388);const $s=(0,i.pM)({name:"LinkPreview",props:{link:{type:Object,required:!0},keepScrollPosition:{type:Function,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(!1),a=(0,x.KR)(!1),s=(0,i.WQ)(gu);(0,Ds.V6)((e,n,t)=>{if(s?.value?.link)return s.value.closeViewer(),t(!1);t()});const l=(0,x.KR)(null),c=(0,x.KR)(null),u=(0,i.EW)(()=>a.value?"Less":"More"),d=(0,i.EW)(()=>{if(e.link.maxSize)return(0,Bs.A)(e.link.maxSize)}),p=()=>{(0,i.dY)(()=>{l.value&&c.value&&(t.value=l.value.offsetWidth>=c.value.offsetWidth)}).catch(e=>{console.error("Error in LinkPreview.handleResize",e)})},h=()=>{e.link.sourceLoaded=!0,e.keepScrollPosition(),"link"===e.link.type&&p()},g=()=>{"loading"!==e.link.type&&("error"===e.link.type&&h(),"link"===e.link.type&&(p(),e.keepScrollPosition()))},m=()=>{if(null!==e.link.shown)return;let t=!1;switch(e.link.type){case"error":"image-too-big"===e.link.error&&(t=n.state.settings.media);break;case"link":t=n.state.settings.links;break;default:t=n.state.settings.media}e.link.shown=t};return m(),(0,i.wB)(()=>e.link.type,()=>{m(),g()}),(0,i.sV)(()=>{r.A.on("resize",p),g()}),(0,i.xo)(()=>{r.A.off("resize",p)}),(0,i.hi)(()=>{e.link.sourceLoaded=!1}),{moreButtonLabel:u,imageMaxSize:d,onThumbnailClick:n=>{n.preventDefault(),s?.value&&(s.value.channel=e.channel,s.value.link=e.link)},onThumbnailError:()=>{e.link.thumb="",h()},onMoreClick:()=>{a.value=!a.value,e.keepScrollPosition()},onPreviewReady:h,onPreviewUpdate:g,showMoreButton:t,isContentShown:a,content:l,container:c}}}),Hs=(0,q.A)($s,[["render",function(e,n,t,a,o,r){return e.link.shown?(0,i.bo)(((0,i.uX)(),(0,i.CE)("div",Ls,[(0,i.Lk)("div",{ref:"content",class:(0,l.C4)(["toggle-content","toggle-type-"+e.link.type,{opened:e.isContentShown}])},["link"===e.link.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.link.thumb?(0,i.bo)(((0,i.uX)(),(0,i.CE)("a",{key:0,href:e.link.link,class:"toggle-thumbnail",target:"_blank",rel:"noopener",onClick:n[3]||(n[3]=(...n)=>e.onThumbnailClick&&e.onThumbnailClick(...n))},[(0,i.Lk)("img",{src:e.link.thumb,decoding:"async",alt:"",class:"thumb",onError:n[0]||(n[0]=(...n)=>e.onThumbnailError&&e.onThumbnailError(...n)),onAbort:n[1]||(n[1]=(...n)=>e.onThumbnailError&&e.onThumbnailError(...n)),onLoad:n[2]||(n[2]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},null,40,Es)],8,Ms)),[[s.aG,e.link.sourceLoaded]]):(0,i.Q3)("",!0),(0,i.Lk)("div",xs,[(0,i.Lk)("div",Ss,[(0,i.Lk)("div",As,[(0,i.Lk)("a",{href:e.link.link,title:e.link.head,target:"_blank",rel:"noopener"},(0,l.v_)(e.link.head),9,Ts)]),e.showMoreButton?((0,i.uX)(),(0,i.CE)("button",{key:0,"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel,dir:"auto",class:"more",onClick:n[4]||(n[4]=(...n)=>e.onMoreClick&&e.onMoreClick(...n))},[...n[10]||(n[10]=[(0,i.Lk)("span",{class:"more-caret"},null,-1)])],8,Xs)):(0,i.Q3)("",!0)]),(0,i.Lk)("div",js,[(0,i.Lk)("a",{href:e.link.link,title:e.link.body,target:"_blank",rel:"noopener"},(0,l.v_)(e.link.body),9,Ws)])])],64)):"image"===e.link.type?((0,i.uX)(),(0,i.CE)("a",{key:1,href:e.link.link,class:"toggle-thumbnail",target:"_blank",rel:"noopener",onClick:n[6]||(n[6]=(...n)=>e.onThumbnailClick&&e.onThumbnailClick(...n))},[(0,i.bo)((0,i.Lk)("img",{src:e.link.thumb,decoding:"async",alt:"",onLoad:n[5]||(n[5]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},null,40,Rs),[[s.aG,e.link.sourceLoaded]])],8,Ps)):"video"===e.link.type?(0,i.bo)(((0,i.uX)(),(0,i.CE)("video",{key:2,preload:"metadata",controls:"",onCanplay:n[7]||(n[7]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},[(0,i.Lk)("source",{src:e.link.media,type:e.link.mediaType},null,8,Is)],544)),[[s.aG,e.link.sourceLoaded]]):"audio"===e.link.type?(0,i.bo)(((0,i.uX)(),(0,i.CE)("audio",{key:3,controls:"",preload:"metadata",onCanplay:n[8]||(n[8]=(...n)=>e.onPreviewReady&&e.onPreviewReady(...n))},[(0,i.Lk)("source",{src:e.link.media,type:e.link.mediaType},null,8,Ns)],544)),[[s.aG,e.link.sourceLoaded]]):"error"===e.link.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:4},["image-too-big"===e.link.error?((0,i.uX)(),(0,i.CE)("em",Us,[(0,i.eW)(" This image is larger than "+(0,l.v_)(e.imageMaxSize)+" and cannot be previewed. ",1),(0,i.Lk)("a",{href:e.link.link,target:"_blank",rel:"noopener"},"Click here",8,Fs),n[11]||(n[11]=(0,i.eW)(" to open it in a new window. ",-1))])):"message"===e.link.error?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.Lk)("div",null,[(0,i.Lk)("em",null,[n[12]||(n[12]=(0,i.eW)(" A preview could not be loaded. ",-1)),(0,i.Lk)("a",{href:e.link.link,target:"_blank",rel:"noopener"},"Click here",8,Os),n[13]||(n[13]=(0,i.eW)(" to open it in a new window. ",-1))]),n[14]||(n[14]=(0,i.Lk)("br",null,null,-1)),(0,i.Lk)("pre",qs,(0,l.v_)(e.link.message)+"\n\n",1)]),(0,i.Lk)("button",{"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel,class:"more",onClick:n[9]||(n[9]=(...n)=>e.onMoreClick&&e.onMoreClick(...n))},[...n[15]||(n[15]=[(0,i.Lk)("span",{class:"more-caret"},null,-1)])],8,Ks)],64)):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0)],2)],512)),[[s.aG,e.link.sourceLoaded||"link"===e.link.type]]):(0,i.Q3)("",!0)}]]);var Qs=t(3568);const zs=t(1191),Vs=zs.keys().reduce((e,n)=>(e["message-"+n.substring(2,n.length-4)]=zs(n).default,e),{});let Ys=function(e){return e.UNHANDLED="unhandled",e.ACTION="action",e.AWAY="away",e.BACK="back",e.ERROR="error",e.INVITE="invite",e.JOIN="join",e.KICK="kick",e.LOGIN="login",e.LOGOUT="logout",e.MESSAGE="message",e.MODE="mode",e.MODE_CHANNEL="mode_channel",e.MODE_USER="mode_user",e.MONOSPACE_BLOCK="monospace_block",e.NICK="nick",e.NOTICE="notice",e.PART="part",e.QUIT="quit",e.CTCP="ctcp",e.CTCP_REQUEST="ctcp_request",e.CHGHOST="chghost",e.TOPIC="topic",e.TOPIC_SET_BY="topic_set_by",e.WHOIS="whois",e.RAW="raw",e.PLUGIN="plugin",e.WALLOPS="wallops",e.MASS_EVENT="mass_event",e}({});const Js=[{type:"basic",name:"Anthelion",description:"[ SB ] (<nick>): <message>",matches:["sauron"],regex:/^.*?\[.*?SB.*?\][^(]+\((?<nick>[^):]+)\):.+?(?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"BeyondHD + ReelFliX",description:"[SB] <nick>: <message> | [Chatbox] <nick>: <message>",matches:["willie","wall-e"],regex:/^.*?\[(?:SB|Chatbox)\][^\w]+(?<nick>[^:]+): (?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"UploadCX + LST + OnlyEncodes+ + HomiesHelpDesk + Aither + DarkPeers + Luminarr",description:"[nick] message | [nick]: message | nick: message | nick message",matches:["ulcx","bot","bridgebot","bbot","chatbot","darkpeers","luminarr"],regex:/^\[?(?<nick>[^:\]]+)\]?:? (?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"RocketHD",description:"๐ฐ๏ธ<nick>: <message>",matches:["rocketnouncer"],regex:/^๐ฐ๏ธ(?<nick>[^:]+?): (?<content>.*)/v,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"DigitalCore",description:"<<nick>> <message>",matches:["endor"],regex:/^<(?<nick>[^>]+?)> (?<content>.*)/,transform(e){return Gs(e.text.match(this.regex))}},{type:"basic",name:"HUNO (Discord)",description:"ยป<nick> (<rank>)ยซ <message> | ยป<nick>ยซ <message>",matches:["mellos"],regex:/^ยป(?<nick>[^ยซ]+?)(?: (?:\p{RGI_Emoji}+|\(.+?\)))?ยซ (?<content>.*)/v,transform(e){return Gs(e.text.match(this.regex))}},{type:"advanced",name:"HUNO (Web)",description:"Nicks in the format '<nick>-web'",matches:e=>e.endsWith("-web")||e.endsWith("-web",e.length-2),transform:e=>({nick:e.from.nick.slice(0,-4)})}];function Gs(e){return e?.groups}var Zs=t(1654);Vs.ParsedMessage=Qs.A,Vs.LinkPreview=Hs,Vs.Username=Cs.A;const eo=(0,i.pM)({name:"Message",components:Vs,props:{message:{type:Object,required:!0},channel:{type:Object,required:!1},network:{type:Object,required:!0},keepScrollPosition:Function,isPreviousSource:Boolean,isFocused:Boolean},setup(e){const n=(0,o.Pj)(),t=(0,i.EW)(()=>{let e;return e=n.state.settings.use12hClock?n.state.settings.showSeconds?"msg12hWithSeconds":"msg12h":n.state.settings.showSeconds?"msgWithSeconds":"msgDefault",a.timeFormats[e]}),s=(0,i.EW)(()=>ys()(e.message.time).format(t.value)),l=(0,i.EW)(()=>(0,_s.A)(e.message.time)),r=(0,i.EW)(()=>"message-"+(e.message.type||"invalid")),c=(0,i.EW)(()=>e.channel?.type===Zs.rR.CHANNEL&&n.state.settings.beautifyBridgedMessages&&e.message.type===Ys.MESSAGE?function(e){const n=e.from?.nick?.toLowerCase();if(!e.text||!n)return e;const t=Js.find(e=>"basic"===e.type?e.matches.includes(n):"advanced"===e.type?e.matches(n):void 0);if(!t)return e;const a=t.transform(e);if(!a||!a.nick)return e;const s=structuredClone((0,x.ux)(e));var o;return s.text=a.content??s.text,s.from={...s.from,nick:(o=a.nick,o.replaceAll(/[^0-9a-z_-|]/gi,"")),mode:"",shoutbox:!0,original_nick:n},s}(e.message):e.message);return{timeFormat:t,prettyMessage:c,messageTime:s,messageTimeLocale:l,messageComponent:r,isAction:()=>!!e.message.type&&void 0!==Vs["message-"+e.message.type]}}}),no=(0,q.A)(eo,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Username"),c=(0,i.g2)("ParsedMessage"),u=(0,i.g2)("LinkPreview");return(0,i.uX)(),(0,i.CE)("div",{id:"msg-"+e.prettyMessage.id,class:(0,l.C4)(["msg",{self:e.prettyMessage.self,highlight:e.prettyMessage.highlight,"is-focused":e.isFocused,"previous-source":e.isPreviousSource}]),"data-type":e.prettyMessage.type,"data-command":e.prettyMessage.command,"data-from":e.prettyMessage.from&&(e.prettyMessage.from.shoutbox?e.prettyMessage.from.original_nick:e.prettyMessage.from.nick),"data-bridged":e.prettyMessage.from?.shoutbox},[(0,i.Lk)("span",{"aria-hidden":"true","aria-label":e.messageTimeLocale,class:"time tooltipped tooltipped-e"},(0,l.v_)(`${e.messageTime} `),9,us),"unhandled"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("span",ds,"["+(0,l.v_)(e.prettyMessage.command)+"]",1),(0,i.Lk)("span",ps,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.prettyMessage.params,(e,n)=>((0,i.uX)(),(0,i.CE)("span",{key:n},(0,l.v_)(` ${e} `),1))),128))])],64)):e.isAction()?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[0]||(n[0]=(0,i.Lk)("span",{class:"from"},[(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"***ย ")],-1)),((0,i.uX)(),(0,i.Wv)((0,i.$y)(e.messageComponent),{network:e.network,message:e.prettyMessage},null,8,["network","message"]))],64)):"action"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:2},[n[2]||(n[2]=(0,i.Lk)("span",{class:"from"},[(0,i.Lk)("span",{class:"only-copy"},"*ย ")],-1)),(0,i.Lk)("span",hs,[(0,i.bF)(r,{user:e.prettyMessage.from,network:e.network,channel:e.channel,dir:"auto"},null,8,["user","network","channel"]),n[1]||(n[1]=(0,i.eW)()),(0,i.bF)(c,{message:e.prettyMessage},null,8,["message"]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.prettyMessage.previews,n=>((0,i.uX)(),(0,i.Wv)(u,{key:n.link,"keep-scroll-position":e.keepScrollPosition,link:n,channel:e.channel},null,8,["keep-scroll-position","link","channel"]))),128))])],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:3},["message"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)("span",gs,[e.prettyMessage.from&&e.prettyMessage.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[3]||(n[3]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"<",-1)),(0,i.bF)(r,{user:e.prettyMessage.from,network:e.network,channel:e.channel},null,8,["user","network","channel"]),n[4]||(n[4]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},">ย ",-1))],64)):(0,i.Q3)("",!0)])):"plugin"===e.prettyMessage.type?((0,i.uX)(),(0,i.CE)("span",ms,[e.prettyMessage.from&&e.prettyMessage.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[5]||(n[5]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"[",-1)),(0,i.eW)(" "+(0,l.v_)(e.prettyMessage.from.nick)+" ",1),n[6]||(n[6]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"]ย ",-1))],64)):(0,i.Q3)("",!0)])):((0,i.uX)(),(0,i.CE)("span",ks,[e.prettyMessage.from&&e.prettyMessage.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[7]||(n[7]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"-",-1)),(0,i.bF)(r,{user:e.prettyMessage.from,network:e.network,channel:e.channel},null,8,["user","network","channel"]),n[8]||(n[8]=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"-ย ",-1))],64)):(0,i.Q3)("",!0)])),(0,i.Lk)("span",fs,[e.prettyMessage.showInActive?((0,i.uX)(),(0,i.CE)("span",bs,[...n[9]||(n[9]=[(0,i.Lk)("span",null,null,-1)])])):(0,i.Q3)("",!0),e.prettyMessage.statusmsgGroup?((0,i.uX)(),(0,i.CE)("span",{key:1,"aria-label":`This message was only shown to users with ${e.prettyMessage.statusmsgGroup} mode`,class:"msg-statusmsg tooltipped tooltipped-e"},[(0,i.Lk)("span",null,(0,l.v_)(e.prettyMessage.statusmsgGroup),1)],8,vs)):(0,i.Q3)("",!0),(0,i.bF)(c,{network:e.network,message:e.prettyMessage},null,8,["network","message"]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.prettyMessage.previews,n=>((0,i.uX)(),(0,i.Wv)(u,{key:n.link,"keep-scroll-position":e.keepScrollPosition,link:n,channel:e.channel},null,8,["keep-scroll-position","link","channel"]))),128))])],64))],10,cs)}]]),to={class:"input-wrapper"},ao=(0,i.pM)({name:"MessageSearchForm",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,x.KR)(!1),t=(0,x.KR)(""),a=(0,S.rd)(),s=(0,S.lq)(),o=(0,x.KR)(null),l=(0,i.EW)(()=>"SearchResults"===s.name);return(0,i.wB)(s,e=>{e.query.q&&(t.value=String(e.query.q))}),(0,i.sV)(()=>{t.value=String(s.query.q||""),n.value=l.value,o.value&&!t.value&&n.value&&o.value.focus()}),{searchOpened:n,searchInput:t,searchInputField:o,closeSearch:()=>{l.value||(t.value="",n.value=!1)},toggleSearch:()=>{n.value?o.value?.blur():(n.value=!0,o.value?.focus())},searchMessages:n=>{n.preventDefault(),t.value&&a.push({name:"SearchResults",params:{id:e.channel.id},query:{q:t.value}}).catch(e=>{"NavigationDuplicated"===e.name&&r.A.emit("re-search")})},onSearchPage:l}}}),so=(0,q.A)(ao,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("form",{class:(0,l.C4)(["message-search",{opened:e.searchOpened}]),onSubmit:n[4]||(n[4]=(0,s.D$)((...n)=>e.searchMessages&&e.searchMessages(...n),["prevent"]))},[(0,i.Lk)("div",to,[(0,i.bo)((0,i.Lk)("input",{ref:"searchInputField","onUpdate:modelValue":n[0]||(n[0]=n=>e.searchInput=n),type:"search",name:"search",class:"input",placeholder:"Search messagesโฆ",onBlur:n[1]||(n[1]=(...n)=>e.closeSearch&&e.closeSearch(...n)),onKeyup:n[2]||(n[2]=(0,s.jR)((...n)=>e.closeSearch&&e.closeSearch(...n),["esc"]))},null,544),[[s.Jo,e.searchInput]])]),e.onSearchPage?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("button",{key:0,class:"search",type:"button","aria-label":"Search messages in this channel",onMousedown:n[3]||(n[3]=(0,s.D$)((...n)=>e.toggleSearch&&e.toggleSearch(...n),["prevent"]))},null,32))],34)}]]),oo=["aria-label"],io={class:"date-marker"},lo=["aria-label"];var ro=t(8720),co=t.n(ro);ys().extend(co());const uo=(0,i.pM)({name:"DateMarker",props:{message:{type:Object,required:!0},isFocused:Boolean},setup(e){const n=(0,i.EW)(()=>ys()(e.message.time).format("D MMMM YYYY")),t=()=>(Date.now()-Date.parse(e.message.time.toString()))/36e5,a=()=>{t()>=48&&r.A.off("daychange",a)};return(0,i.sV)(()=>{t()<48&&r.A.on("daychange",a)}),(0,i.xo)(()=>{r.A.off("daychange",a)}),{localeDate:n,friendlyDate:()=>ys()(e.message.time).calendar(null,{sameDay:"[Today]",lastDay:"[Yesterday]",lastWeek:"D MMMM YYYY",sameElse:"D MMMM YYYY"})}}}),po=(0,q.A)(uo,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{"aria-label":e.localeDate,class:"date-marker-container tooltipped tooltipped-s"},[(0,i.Lk)("div",io,[n[0]||(n[0]=(0,i.eW)(" ; ",-1)),(0,i.Lk)("span",{"aria-label":e.friendlyDate(),class:"date-marker-text"},null,8,lo)])],8,oo)}]]),ho=(0,i.pM)({name:"SearchResults",components:{SidebarToggle:wn,Message:no,DateMarker:po,MessageSearchForm:so},setup(){const e=(0,o.Pj)(),n=(0,S.lq)(),t=(0,x.KR)(),a=(0,x.KR)(),s=(0,x.KR)(0),l=(0,x.KR)(!1),c=(0,x.KR)(0),u=(0,x.KR)(0),d=(0,i.EW)(()=>{const n=e.state.messageSearchResults?.results;return n||[]}),p=(0,i.EW)(()=>{const t=parseInt(String(n.params.id||""),10);return e.getters.findChannel(t)}),h=(0,i.EW)(()=>p.value?p.value.network:null),g=(0,i.EW)(()=>p.value?p.value.channel:null),m=()=>{p.value&&e.commit("activeChannel",p.value)},k=()=>{g.value&&mc(g.value)},f=()=>{s.value=0,e.commit("messageSearchResults",null),e.commit("messageSearchPendingQuery",null)},b=()=>{if(!h.value||!g.value)return;f();const t={networkUuid:h.value.uuid,channelName:g.value.name,searchTerm:String(n.query.q||""),offset:s.value};e.commit("messageSearchPendingQuery",t),re.A.emit("search",t)},v=async()=>{await(0,i.dY)();const e=t.value;e&&(e.scrollTop=e.scrollHeight)};return(0,i.wB)(()=>n.params.id,()=>{b(),m()}),(0,i.wB)(()=>n.query,()=>{b(),m()}),(0,i.wB)(d,async()=>{if(l.value=!(!d.value.length||d.value.length%100),s.value){await(0,i.dY)();const e=t.value;if(!e)return;const n=e.scrollHeight;e.scrollTop=c.value+n-u.value}else await v()}),(0,i.sV)(()=>{m(),b(),r.A.on("escapekey",k),r.A.on("re-search",b)}),(0,i.hi)(()=>{r.A.off("escapekey",k),r.A.off("re-search",b),f()}),{chat:t,loadMoreButton:a,messages:d,moreResultsAvailable:l,network:h,channel:g,route:n,offset:s,store:e,setActiveChannel:m,closeSearch:k,shouldDisplayDateMarker:(e,n)=>{const t=d.value[n-1];return!t||new Date(t.time).getDay()!==new Date(e.time).getDay()},doSearch:b,onShowMoreClick:()=>{if(!t.value||!h.value||!g.value)return;s.value+=100,c.value=t.value.scrollTop,u.value=t.value.scrollHeight;const a={networkUuid:h.value.uuid,channelName:g.value.name,searchTerm:String(n.query.q||""),offset:s.value};e.commit("messageSearchPendingQuery",a),re.A.emit("search",a)},jumpToBottom:v,jump:n=>{if(!e.state.settings.enableEnhancedSearch||!g.value)return;const t=new Date(n.time).getTime();mc(g.value,n.id,t)}}}}),go=(0,q.A)(ho,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("MessageSearchForm"),d=(0,i.g2)("DateMarker"),p=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",Qa,[(0,i.Lk)("div",{id:"chat",class:(0,l.C4)({"time-seconds":e.store.state.settings.showSeconds,"time-12h":e.store.state.settings.use12hClock})},[(0,i.Lk)("div",za,[e.network&&e.channel?((0,i.uX)(),(0,i.CE)("div",Va,[(0,i.bF)(c),(0,i.Lk)("span",Ya,[n[2]||(n[2]=(0,i.eW)("Searching in ",-1)),(0,i.Lk)("span",Ja,(0,l.v_)(e.channel.name),1),n[3]||(n[3]=(0,i.eW)(" for",-1))]),(0,i.Lk)("span",Ga,(0,l.v_)(e.route.query.q),1),(0,i.bF)(u,{network:e.network,channel:e.channel},null,8,["network","channel"]),(0,i.Lk)("button",{class:"close","aria-label":"Close search window",title:"Close search window",onClick:n[0]||(n[0]=(...n)=>e.closeSearch&&e.closeSearch(...n))})])):(0,i.Q3)("",!0),e.network&&e.channel?((0,i.uX)(),(0,i.CE)("div",Za,[(0,i.Lk)("div",es,[(0,i.bo)((0,i.Lk)("div",ns,[(0,i.Lk)("button",{ref:"loadMoreButton",disabled:!!e.store.state.messageSearchPendingQuery||!e.store.state.isConnected,class:"btn",onClick:n[1]||(n[1]=(...n)=>e.onShowMoreClick&&e.onShowMoreClick(...n))},[e.store.state.messageSearchPendingQuery?((0,i.uX)(),(0,i.CE)("span",as,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("span",ss,"Show older messages"))],8,ts)],512),[[s.aG,e.moreResultsAvailable]]),e.store.state.messageSearchPendingQuery&&!e.offset?((0,i.uX)(),(0,i.CE)("div",os," Searchingโฆ ")):e.messages.length||e.offset?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",is," No results found. ")),(0,i.Lk)("div",ls,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.messages,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:n.id,class:"result","data-jump-to":e.store.state.settings.enableEnhancedSearch||void 0},[e.shouldDisplayDateMarker(n,t)?((0,i.uX)(),(0,i.Wv)(d,{key:n.id+"-date",message:n},null,8,["message"])):(0,i.Q3)("",!0),((0,i.uX)(),(0,i.Wv)(p,{key:n.id,channel:e.channel,network:e.network,message:n,"data-id":n.id,onClick:t=>e.jump(n)},null,8,["channel","network","message","data-id","onClick"]))],8,rs))),128))])],512)])):(0,i.Q3)("",!0)])],2)])}]]),mo=["data-current-channel"],ko=["id","data-type","aria-label"],fo={class:"header"},bo=["aria-label"],vo={key:0,class:"topic-container"},wo=["value"],yo=["title"],_o={key:3,class:"rt-tooltip tooltipped tooltipped-w","aria-label":"Toggle user list"},Co={key:0,class:"chat-content"},Lo={class:"chat"},Mo={class:"messages"},Eo={class:"msg"},xo={key:1,class:"chat-content"},So={ref:"chat",class:"chat",tabindex:"-1"},Ao={class:"show-more"},To=["disabled"],Xo={key:0},jo={key:1},Wo={key:1,class:"unread-marker"},Po=/\x02|\x1D|\x1F|\x16|\x0F|\x11|\x1E|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?|\x04(?:[0-9a-f]{6}(?:,[0-9a-f]{6})?)?/gi,Ro=new Set(["away","back","chghost","join","kick","mass_event","mode","nick","part","quit"]);function Io(e){if("InstallTrigger"in window)return;const n=window.getSelection();if(!n)return;if(n.anchorNode===n.focusNode)return;const t=n.getRangeAt(0),a=t.cloneContents(),s=document.createElement("div");s.id="js-copy-hack",s.appendChild(a),e.appendChild(s),n.selectAllChildren(s),window.setTimeout(()=>{e.removeChild(s),n.removeAllRanges(),n.addRange(t)},0)}const No={class:"condensed-summary"},Uo=(0,i.pM)({name:"MessageCondensed",components:{Message:no},props:{network:{type:Object,required:!0},messages:{type:Array,required:!0},keepScrollPosition:{type:Function,required:!0},isFocused:Boolean},setup(e){const n=(0,x.KR)(!0),t=(0,i.EW)(()=>{const n={};Ro.forEach(e=>{n[e]=0});for(const t of e.messages)if(t.type===Ys.MODE){const e=(t.text?t.text:"").split(" ")[0].split("").filter(e=>"+"!==e&&"-"!==e).length;n[t.type]+=e}else if(t.type===Ys.MASS_EVENT){const e=t.massEventSummary;Object.keys(e).forEach(t=>{if("startTime"!==t&&"endTime"!==t&&"duration"!==t)return"away"===t||"back"===t?n[t]+=e[t]:void(n[t.slice(0,-1)]+=e[t])})}else{if(!t.type){console.log(`empty message type, this should not happen: ${t.id}`);continue}n[t.type]++}n.part+=n.quit;const t=[];if(Ro.forEach(e=>{if(n[e])switch(e){case"chghost":t.push(String(n[e])+(n[e]>1?" users have changed hostname":" user has changed hostname"));break;case"join":t.push(String(n[e])+(n[e]>1?" users have joined":" user has joined"));break;case"part":t.push(String(n[e])+(n[e]>1?" users have left":" user has left"));break;case"nick":t.push(String(n[e])+(n[e]>1?" users have changed nick":" user has changed nick"));break;case"kick":t.push(String(n[e])+(n[e]>1?" users were kicked":" user was kicked"));break;case"mode":t.push(String(n[e])+(n[e]>1?" modes were set":" mode was set"));break;case"away":t.push("marked away "+(n[e]>1?String(n[e])+" times":"once"));break;case"back":t.push("marked back "+(n[e]>1?String(n[e])+" times":"once"))}}),t.length){let e=t.pop();return t.length&&(e=t.join(", ")+", and "+e),e}return""});return{isCollapsed:n,condensedText:t,onCollapseClick:()=>{n.value=!n.value,e.keepScrollPosition()}}}}),Fo=(0,q.A)(Uo,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",{class:(0,l.C4)(["msg",{closed:e.isCollapsed,"is-focused":e.isFocused}]),"data-type":"condensed"},[(0,i.Lk)("div",No,[n[2]||(n[2]=(0,i.Lk)("span",{class:"time"},null,-1)),n[3]||(n[3]=(0,i.Lk)("span",{class:"from"},null,-1)),(0,i.Lk)("span",{class:"content",onClick:n[0]||(n[0]=(...n)=>e.onCollapseClick&&e.onCollapseClick(...n))},[(0,i.eW)((0,l.v_)(e.condensedText)+" ",1),n[1]||(n[1]=(0,i.Lk)("button",{class:"toggle-button","aria-label":"Toggle status messages"},null,-1))])]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.messages,n=>((0,i.uX)(),(0,i.Wv)(r,{key:n.id,network:e.network,message:n},null,8,["network","message"]))),128))],2)}]]),Oo=500,qo=(0,i.pM)({name:"MessageList",components:{Message:no,MessageCondensed:Fo,DateMarker:po},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},isFocused:Number,focusedTime:Number},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(null),a=(0,x.KR)(null),s=(0,x.KR)(null),l=(0,x.KR)(null),c=(0,x.KR)(null),u=(0,x.KR)(!1),d=(0,x.KR)(0),p=(0,x.KR)(!1);let h=!1;const g=(0,i.EW)(()=>{if(e.channel.type!==Zs.rR.CHANNEL&&e.channel.type!==Zs.rR.QUERY)return e.channel.messages;if("hidden"===n.state.settings.statusMessages)return e.channel.messages.filter(e=>!Ro.has(e.type||""));if("condensed"!==n.state.settings.statusMessages)return e.channel.messages;let t=null;const a=[];for(const n of e.channel.messages)n.self||n.highlight||!Ro.has(n.type||"")?(t=null,a.push(n)):(t||(t={time:n.time,type:"condensed",messages:[]},a.push(t)),t.messages.push(n),t.id=n.id,n.id===e.channel.firstUnread&&(t=null));return a.map(e=>"condensed"===e.type&&1===e.messages.length?e.messages[0]:e)}),m=(0,i.EW)(()=>{const e=g.value,n=e.length;if(n<=Oo)return e;const t=Math.max(0,Math.min(d.value,n-Oo));return e.slice(t,t+Oo)}),k=(0,i.EW)(()=>d.value>0),f=(0,i.EW)(()=>{const e=g.value.length;return e<=Oo||d.value>=e-Oo}),b=(0,i.EW)(()=>e.channel.moreHistoryAvailable&&0===d.value),v=()=>{t.value&&(u.value=!0,t.value.scrollTop=t.value.scrollHeight,setTimeout(()=>{u.value=!1},50))},w=async()=>{const n=g.value.length;d.value=Math.max(0,n-Oo),e.channel.scrolledToBottom=!0,p.value=!0,await(0,i.dY)(),v(),p.value=!1},y=async(n,a)=>{l.value=n,c.value=a||null,e.channel.scrolledToBottom=!1,p.value=!0;const s=g.value;let o=-1;for(let e=0;e<s.length;e++){const t=s[e];if("condensed"===t.type){if(t.messages.some(e=>e.id===n)){o=e;break}}else if(t.id===n){o=e;break}}if(-1===o&&a)for(let e=0;e<s.length;e++){const n=s[e],t=new Date(n.time).getTime();if(Math.abs(t-a)<1e3){o=e;break}if("condensed"===n.type)for(const t of n.messages){const n=new Date(t.time).getTime();if(Math.abs(n-a)<1e3){o=e;break}}if(-1!==o)break}if(-1===o)return p.value=!1,!1;if(s.length>Oo){const e=Math.floor(250);d.value=Math.max(0,Math.min(o-e,s.length-Oo))}if(await(0,i.dY)(),t.value){const e=t.value.querySelector(`#msg-${n}`);if(e){u.value=!0,e.scrollIntoView({behavior:"instant",block:"center"});const n=t.value.closest("#chat-container");return n&&(n.scrollTop=0),setTimeout(()=>{u.value=!1,p.value=!1},50),setTimeout(()=>{l.value=null,c.value=null},3e3),!0}}return p.value=!1,!1},_=async n=>{c.value=n,e.channel.scrolledToBottom=!1,p.value=!0;const a=g.value;let s=-1;for(let e=0;e<a.length;e++){const t=a[e],o=new Date(t.time).getTime();if(Math.abs(o-n)<1e3){s=e;break}if("condensed"===t.type){for(const a of t.messages){const t=new Date(a.time).getTime();if(Math.abs(t-n)<1e3){s=e;break}}if(-1!==s)break}}if(-1===s)return p.value=!1,!1;if(a.length>Oo){const e=Math.floor(250);d.value=Math.max(0,Math.min(s-e,a.length-Oo))}if(await(0,i.dY)(),t.value){const e=t.value.querySelectorAll(".msg[id^='msg-']");for(const t of e){const e=t.id.replace("msg-",""),a=m.value.find(n=>"condensed"===n.type?n.messages.some(n=>String(n.id)===e):String(n.id)===e);if(a){const e=new Date(a.time).getTime();if(Math.abs(e-n)<1e3)return u.value=!0,t.scrollIntoView({behavior:"instant",block:"center"}),setTimeout(()=>{u.value=!1,p.value=!1},50),setTimeout(()=>{c.value=null},3e3),!0}}}return p.value=!1,!1},C=()=>{if(u.value||p.value)return;const n=t.value;if(!n)return;const a=n.scrollTop,s=n.scrollHeight-a-n.clientHeight,o=a;s<=30&&f.value?e.channel.scrolledToBottom||(e.channel.scrolledToBottom=!0):e.channel.scrolledToBottom&&s>100&&(e.channel.scrolledToBottom=!1),o<200&&k.value?(async(n=100)=>{if(p.value||d.value<=0)return;const a=t.value;if(!a)return;p.value=!0;const s=a.scrollHeight,o=a.scrollTop,l=Math.max(0,d.value-n);if(0===d.value-l)return void(p.value=!1);d.value=l,e.channel.scrolledToBottom=!1,await(0,i.dY)();const r=a.scrollHeight-s;a.scrollTop=o+r,p.value=!1})(50):s<200&&!f.value&&(async(n=100)=>{if(p.value)return;const a=g.value.length,s=Math.max(0,a-Oo);if(d.value>=s)return;const o=t.value;if(!o)return;p.value=!0;const l=o.scrollHeight,r=o.scrollTop,c=Math.min(s,d.value+n);d.value=c,c>=s&&(e.channel.scrolledToBottom=!0),await(0,i.dY)();const u=l-o.scrollHeight;o.scrollTop=r-u,p.value=!1})(50)},L=()=>{if(!n.state.isConnected)return;let t=-1;for(const n of e.channel.messages)if(!n.showInActive){t=n.id;break}e.channel.historyLoading=!0,re.A.emit("more",{target:e.channel.id,lastId:t,condensed:"shown"!==n.state.settings.statusMessages})},M=async()=>{if(e.channel.scrolledToBottom)return void await w();const n=t.value;if(!n)return;p.value=!0;const a=n.scrollHeight-n.scrollTop;await(0,i.dY)(),u.value=!0,n.scrollTop=n.scrollHeight-a,setTimeout(()=>{u.value=!1,p.value=!1},50)},E=()=>{e.channel.scrolledToBottom&&w()};(0,i.sV)(async()=>{t.value?.addEventListener("scroll",C,{passive:!0}),r.A.on("resize",E),e.isFocused&&!isNaN(e.isFocused)?(await(0,i.dY)(),await y(e.isFocused,e.focusedTime)):e.focusedTime&&!isNaN(e.focusedTime)?(await(0,i.dY)(),await _(e.focusedTime)):(e.channel.scrolledToBottom=!0,d.value=Math.max(0,g.value.length-Oo),await(0,i.dY)(),v()),await(0,i.dY)(),window.IntersectionObserver&&a.value&&(s.value=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&L()})},{root:t.value}),s.value.observe(a.value))}),(0,i.wB)(()=>e.channel.id,async()=>{e.channel.scrolledToBottom=!0,l.value=null,c.value=null,d.value=Math.max(0,g.value.length-Oo),await(0,i.dY)(),v(),s.value&&a.value&&(s.value.unobserve(a.value),s.value.observe(a.value))});const S=(0,i.EW)(()=>{const n=e.channel.messages;return n.length>0?n[0].id:null});return(0,i.wB)(S,async(e,n)=>{if(null===n||null===e)return;if(e===n)return;const a=t.value;if(!a)return;p.value=!0;const s=a.scrollTop,o=a.scrollHeight,l=g.value.length,r=Math.max(0,l-Oo);0===d.value||(d.value=Math.min(r,d.value)),await(0,i.dY)();const c=a.scrollHeight-o;u.value=!0,a.scrollTop=s+c,setTimeout(()=>{u.value=!1,p.value=!1},50)}),(0,i.wB)(()=>e.channel.messages.length,async(n,t)=>{if(e.channel.scrolledToBottom){const e=g.value.length;d.value=Math.max(0,e-Oo),await(0,i.dY)(),v()}}),(0,i.wB)(()=>e.isFocused,async n=>{n&&!isNaN(n)&&(await(0,i.dY)(),await y(n,e.focusedTime))}),(0,i.wB)(()=>e.focusedTime,async n=>{e.isFocused&&!isNaN(e.isFocused)||n&&!isNaN(n)&&(await(0,i.dY)(),await _(n))}),(0,i.Ic)(()=>{h=!1}),(0,i.xo)(()=>{r.A.off("resize",E),t.value?.removeEventListener("scroll",C)}),(0,i.hi)(()=>{s.value?.disconnect()}),{chat:t,store:n,loadMoreButton:a,displayedMessages:m,showLoadMoreButton:b,getMessageKey:e=>"condensed"===e.type?`condensed-${e.messages[0]?.id}-${new Date(e.time).getTime()}`:`${e.id}-${new Date(e.time).getTime()}`,isMessageFocused:e=>{if(null!==l.value)return"condensed"===e.type?e.messages.some(e=>e.id===l.value):e.id===l.value;if(!c.value)return!1;const n=new Date(e.time).getTime();if(Math.abs(n-c.value)<1e3)return!0;if("condensed"===e.type)for(const n of e.messages){const e=new Date(n.time).getTime();if(Math.abs(e-c.value)<1e3)return!0}return!1},onShowMoreClick:L,onCopy:()=>{t.value&&Io(t.value)},shouldDisplayDateMarker:(e,n)=>{const t=m.value[n-1];if(!t)return!0;const a=new Date(t.time),s=new Date(e.time);return a.getDate()!==s.getDate()||a.getMonth()!==s.getMonth()||a.getFullYear()!==s.getFullYear()},shouldDisplayUnreadMarker:n=>!h&&n>e.channel.firstUnread&&(h=!0,!0),keepScrollPosition:M,isPreviousSource:(e,n)=>{const t=m.value[n-1];return t&&e.type===Ys.MESSAGE&&t.type===Ys.MESSAGE&&e.from&&t.from&&e.from.nick===t.from.nick},jumpToBottom:w,onLinkPreviewToggle:async(n,t)=>{await M(),re.A.emit("msg:preview:toggle",{target:e.channel.id,msgId:t.id,link:n.link,shown:n.shown})}}}}),Ko=(0,q.A)(qo,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("DateMarker"),c=(0,i.g2)("MessageCondensed"),u=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",So,[(0,i.bo)((0,i.Lk)("div",Ao,[(0,i.Lk)("button",{ref:"loadMoreButton",disabled:e.channel.historyLoading||!e.store.state.isConnected,class:"btn",onClick:n[0]||(n[0]=(...n)=>e.onShowMoreClick&&e.onShowMoreClick(...n))},[e.channel.historyLoading?((0,i.uX)(),(0,i.CE)("span",Xo,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("span",jo,"Show older messages"))],8,To)],512),[[s.aG,e.showLoadMoreButton]]),(0,i.Lk)("div",{class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions",onCopy:n[1]||(n[1]=(...n)=>e.onCopy&&e.onCopy(...n))},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.displayedMessages,(t,a)=>((0,i.uX)(),(0,i.CE)(i.FK,{key:e.getMessageKey(t)},[e.shouldDisplayDateMarker(t,a)?((0,i.uX)(),(0,i.Wv)(r,{key:0,message:t,"is-focused":e.isMessageFocused(t)},null,8,["message","is-focused"])):(0,i.Q3)("",!0),e.shouldDisplayUnreadMarker(Number(t.id))?((0,i.uX)(),(0,i.CE)("div",Wo,[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"unread-marker-text"},null,-1)])])):(0,i.Q3)("",!0),"condensed"===t.type?((0,i.uX)(),(0,i.Wv)(c,{key:2,network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:t.messages,"is-focused":e.isMessageFocused(t)},null,8,["network","keep-scroll-position","messages","is-focused"])):((0,i.uX)(),(0,i.Wv)(u,{key:3,channel:e.channel,network:e.network,message:t,"keep-scroll-position":e.keepScrollPosition,"is-previous-source":e.isPreviousSource(t,a),"is-focused":e.isMessageFocused(t),onToggleLinkPreview:e.onLinkPreviewToggle},null,8,["channel","network","message","keep-scroll-position","is-previous-source","is-focused","onToggleLinkPreview"]))],64))),128))],32)],512)}]]),Do={ref:"chat",class:"chat",tabindex:"-1"},Bo={class:"show-more"},$o=["disabled"],Ho={key:0},Qo={key:1},zo=(0,i.pM)({name:"MessageListBasic",components:{Message:no,MessageCondensed:Fo,DateMarker:po},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},focused:Number},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(null),a=(0,x.KR)(null),s=(0,x.KR)(null),l=(0,x.KR)(!1),c=(0,x.KR)(!1);let u=!1;const d=()=>{l.value=!0,e.channel.scrolledToBottom=!0;const n=t.value;n&&(n.scrollTop=n.scrollHeight)},p=()=>{if(!n.state.isConnected)return;let t=-1;for(const n of e.channel.messages)if(!n.showInActive){t=n.id;break}e.channel.historyLoading=!0,re.A.emit("more",{target:e.channel.id,lastId:t,condensed:"shown"!==n.state.settings.statusMessages})},h=e=>{e.forEach(e=>{e.isIntersecting&&p()})};(0,i.dY)(()=>{t.value&&(window.IntersectionObserver&&(s.value=new window.IntersectionObserver(h,{root:t.value})),d())}).catch(e=>{console.error("Error in new IntersectionObserver",e)});const g=(0,i.EW)(()=>{if(e.channel.type!==Zs.rR.CHANNEL&&e.channel.type!==Zs.rR.QUERY)return e.channel.messages;if("hidden"===n.state.settings.statusMessages)return e.channel.messages.filter(e=>!Ro.has(e.type||""));if("condensed"!==n.state.settings.statusMessages)return e.channel.messages;let t=null;const a=[];for(const n of e.channel.messages)n.self||n.highlight||!Ro.has(n.type||"")?(t=null,a.push(n)):(t||(t={time:n.time,type:"condensed",messages:[]},a.push(t)),t.messages.push(n),t.id=n.id,n.id===e.channel.firstUnread&&(t=null));return a.map(e=>"condensed"===e.type&&1===e.messages.length?e.messages[0]:e)}),m=async()=>{if(c.value)return;const n=t.value;if(n)if(e.channel.scrolledToBottom)c.value=!0,await(0,i.dY)(),c.value=!1,d();else if(e.channel.historyLoading){const e=n.scrollHeight-n.scrollTop;c.value=!0,await(0,i.dY)(),c.value=!1,l.value=!0,n.scrollTop=n.scrollHeight-e}},k=()=>{if(l.value)return void(l.value=!1);const n=t.value;n&&(e.channel.scrolledToBottom=n.scrollHeight-n.scrollTop-n.offsetHeight<=30)},f=()=>{e.channel.scrolledToBottom&&d()};return(0,i.sV)(()=>{t.value?.addEventListener("scroll",k,{passive:!0}),r.A.on("resize",f),(0,i.dY)(()=>{s.value&&a.value&&s.value.observe(a.value)})}),(0,i.wB)(()=>e.channel.id,()=>{e.channel.scrolledToBottom=!0,s.value&&a.value&&(s.value.unobserve(a.value),s.value.observe(a.value))}),(0,i.wB)(()=>e.channel.messages,async()=>{await m()},{deep:!0}),(0,i.wB)(()=>e.channel.pendingMessage,async()=>{await m()}),(0,i.Ic)(()=>{u=!1}),(0,i.xo)(()=>{r.A.off("resize",f),t.value?.removeEventListener("scroll",k)}),(0,i.hi)(()=>{s.value&&s.value.disconnect()}),{chat:t,store:n,onShowMoreClick:p,loadMoreButton:a,onCopy:()=>{t.value&&Io(t.value)},condensedMessages:g,shouldDisplayDateMarker:(e,n)=>{const t=g.value[n-1];if(!t)return!0;const a=new Date(t.time),s=new Date(e.time);return a.getDate()!==s.getDate()||a.getMonth()!==s.getMonth()||a.getFullYear()!==s.getFullYear()},shouldDisplayUnreadMarker:n=>!u&&n>e.channel.firstUnread&&(u=!0,!0),keepScrollPosition:m,isPreviousSource:(e,n)=>{const t=g.value[n-1];return t&&e.type===Ys.MESSAGE&&t.type===Ys.MESSAGE&&e.from&&t.from&&e.from.nick===t.from.nick},jumpToBottom:d,onLinkPreviewToggle:async(n,t)=>{await m(),re.A.emit("msg:preview:toggle",{target:e.channel.id,msgId:t.id,link:n.link,shown:n.shown})}}}}),Vo=(0,q.A)(zo,[["render",function(e,n,t,a,o,l){const r=(0,i.g2)("DateMarker"),c=(0,i.g2)("MessageCondensed"),u=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",Do,[(0,i.bo)((0,i.Lk)("div",Bo,[(0,i.Lk)("button",{ref:"loadMoreButton",disabled:e.channel.historyLoading||!e.store.state.isConnected,class:"btn",onClick:n[0]||(n[0]=(...n)=>e.onShowMoreClick&&e.onShowMoreClick(...n))},[e.channel.historyLoading?((0,i.uX)(),(0,i.CE)("span",Ho,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("span",Qo,"Show older messages"))],8,$o)],512),[[s.aG,e.channel.moreHistoryAvailable]]),(0,i.Lk)("div",{class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions",onCopy:n[1]||(n[1]=(...n)=>e.onCopy&&e.onCopy(...n))},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.condensedMessages,(t,a)=>((0,i.uX)(),(0,i.CE)(i.FK,null,[e.shouldDisplayDateMarker(t,a)?((0,i.uX)(),(0,i.Wv)(r,{key:t.id+"-date",message:t,focused:t.id===e.focused},null,8,["message","focused"])):(0,i.Q3)("",!0),e.shouldDisplayUnreadMarker(Number(t.id))?((0,i.uX)(),(0,i.CE)("div",{key:t.id+"-unread",class:"unread-marker"},[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"unread-marker-text"},null,-1)])])):(0,i.Q3)("",!0),"condensed"===t.type?((0,i.uX)(),(0,i.Wv)(c,{key:t.messages[0].id,network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:t.messages,focused:t.id===e.focused},null,8,["network","keep-scroll-position","messages","focused"])):((0,i.uX)(),(0,i.Wv)(u,{key:t.id,channel:e.channel,network:e.network,message:t,"keep-scroll-position":e.keepScrollPosition,"is-previous-source":e.isPreviousSource(t,a),focused:t.id===e.focused,onToggleLinkPreview:e.onLinkPreviewToggle},null,8,["channel","network","message","keep-scroll-position","is-previous-source","focused","onToggleLinkPreview"]))],64))),256))],32)],512)}]]),Yo={key:0,id:"nick"},Jo=["value","placeholder","aria-label"],Go=["disabled"],Zo={id:"submit-tooltip",class:"tooltipped tooltipped-w tooltipped-no-touch","aria-label":"Send message"},ei=["disabled"];var ni=t(2531),ti=t(6e3),ai=t(9787);const si=JSON.parse('{"100":"๐ฏ","1234":"๐ข","grinning":"๐","smiley":"๐","smile":"๐","grin":"๐","laughing":"๐","satisfied":"๐","sweat_smile":"๐
","rofl":"๐คฃ","joy":"๐","slightly_smiling_face":"๐","upside_down_face":"๐","melting_face":"๐ซ ","wink":"๐","blush":"๐","innocent":"๐","smiling_face_with_three_hearts":"๐ฅฐ","heart_eyes":"๐","star_struck":"๐คฉ","kissing_heart":"๐","kissing":"๐","relaxed":"โบ๏ธ","kissing_closed_eyes":"๐","kissing_smiling_eyes":"๐","smiling_face_with_tear":"๐ฅฒ","yum":"๐","stuck_out_tongue":"๐","stuck_out_tongue_winking_eye":"๐","zany_face":"๐คช","stuck_out_tongue_closed_eyes":"๐","money_mouth_face":"๐ค","hugs":"๐ค","hand_over_mouth":"๐คญ","face_with_open_eyes_and_hand_over_mouth":"๐ซข","face_with_peeking_eye":"๐ซฃ","shushing_face":"๐คซ","thinking":"๐ค","saluting_face":"๐ซก","zipper_mouth_face":"๐ค","raised_eyebrow":"๐คจ","neutral_face":"๐","expressionless":"๐","no_mouth":"๐ถ","dotted_line_face":"๐ซฅ","face_in_clouds":"๐ถโ๐ซ๏ธ","smirk":"๐","unamused":"๐","roll_eyes":"๐","grimacing":"๐ฌ","face_exhaling":"๐ฎโ๐จ","lying_face":"๐คฅ","shaking_face":"๐ซจ","relieved":"๐","pensive":"๐","sleepy":"๐ช","drooling_face":"๐คค","sleeping":"๐ด","mask":"๐ท","face_with_thermometer":"๐ค","face_with_head_bandage":"๐ค","nauseated_face":"๐คข","vomiting_face":"๐คฎ","sneezing_face":"๐คง","hot_face":"๐ฅต","cold_face":"๐ฅถ","woozy_face":"๐ฅด","dizzy_face":"๐ต","face_with_spiral_eyes":"๐ตโ๐ซ","exploding_head":"๐คฏ","cowboy_hat_face":"๐ค ","partying_face":"๐ฅณ","disguised_face":"๐ฅธ","sunglasses":"๐","nerd_face":"๐ค","monocle_face":"๐ง","confused":"๐","face_with_diagonal_mouth":"๐ซค","worried":"๐","slightly_frowning_face":"๐","frowning_face":"โน๏ธ","open_mouth":"๐ฎ","hushed":"๐ฏ","astonished":"๐ฒ","flushed":"๐ณ","pleading_face":"๐ฅบ","face_holding_back_tears":"๐ฅน","frowning":"๐ฆ","anguished":"๐ง","fearful":"๐จ","cold_sweat":"๐ฐ","disappointed_relieved":"๐ฅ","cry":"๐ข","sob":"๐ญ","scream":"๐ฑ","confounded":"๐","persevere":"๐ฃ","disappointed":"๐","sweat":"๐","weary":"๐ฉ","tired_face":"๐ซ","yawning_face":"๐ฅฑ","triumph":"๐ค","rage":"๐ก","pout":"๐ก","angry":"๐ ","cursing_face":"๐คฌ","smiling_imp":"๐","imp":"๐ฟ","skull":"๐","skull_and_crossbones":"โ ๏ธ","hankey":"๐ฉ","poop":"๐ฉ","shit":"๐ฉ","clown_face":"๐คก","japanese_ogre":"๐น","japanese_goblin":"๐บ","ghost":"๐ป","alien":"๐ฝ","space_invader":"๐พ","robot":"๐ค","smiley_cat":"๐บ","smile_cat":"๐ธ","joy_cat":"๐น","heart_eyes_cat":"๐ป","smirk_cat":"๐ผ","kissing_cat":"๐ฝ","scream_cat":"๐","crying_cat_face":"๐ฟ","pouting_cat":"๐พ","see_no_evil":"๐","hear_no_evil":"๐","speak_no_evil":"๐","love_letter":"๐","cupid":"๐","gift_heart":"๐","sparkling_heart":"๐","heartpulse":"๐","heartbeat":"๐","revolving_hearts":"๐","two_hearts":"๐","heart_decoration":"๐","heavy_heart_exclamation":"โฃ๏ธ","broken_heart":"๐","heart_on_fire":"โค๏ธโ๐ฅ","mending_heart":"โค๏ธโ๐ฉน","heart":"โค๏ธ","pink_heart":"๐ฉท","orange_heart":"๐งก","yellow_heart":"๐","green_heart":"๐","blue_heart":"๐","light_blue_heart":"๐ฉต","purple_heart":"๐","brown_heart":"๐ค","black_heart":"๐ค","grey_heart":"๐ฉถ","white_heart":"๐ค","kiss":"๐","anger":"๐ข","boom":"๐ฅ","collision":"๐ฅ","dizzy":"๐ซ","sweat_drops":"๐ฆ","dash":"๐จ","hole":"๐ณ๏ธ","speech_balloon":"๐ฌ","eye_speech_bubble":"๐๏ธโ๐จ๏ธ","left_speech_bubble":"๐จ๏ธ","right_anger_bubble":"๐ฏ๏ธ","thought_balloon":"๐ญ","zzz":"๐ค","wave":"๐","raised_back_of_hand":"๐ค","raised_hand_with_fingers_splayed":"๐๏ธ","hand":"โ","raised_hand":"โ","vulcan_salute":"๐","rightwards_hand":"๐ซฑ","leftwards_hand":"๐ซฒ","palm_down_hand":"๐ซณ","palm_up_hand":"๐ซด","leftwards_pushing_hand":"๐ซท","rightwards_pushing_hand":"๐ซธ","ok_hand":"๐","pinched_fingers":"๐ค","pinching_hand":"๐ค","v":"โ๏ธ","crossed_fingers":"๐ค","hand_with_index_finger_and_thumb_crossed":"๐ซฐ","love_you_gesture":"๐ค","metal":"๐ค","call_me_hand":"๐ค","point_left":"๐","point_right":"๐","point_up_2":"๐","middle_finger":"๐","fu":"๐","point_down":"๐","point_up":"โ๏ธ","index_pointing_at_the_viewer":"๐ซต","+1":"๐","thumbsup":"๐","-1":"๐","thumbsdown":"๐","fist_raised":"โ","fist":"โ","fist_oncoming":"๐","facepunch":"๐","punch":"๐","fist_left":"๐ค","fist_right":"๐ค","clap":"๐","raised_hands":"๐","heart_hands":"๐ซถ","open_hands":"๐","palms_up_together":"๐คฒ","handshake":"๐ค","pray":"๐","writing_hand":"โ๏ธ","nail_care":"๐
","selfie":"๐คณ","muscle":"๐ช","mechanical_arm":"๐ฆพ","mechanical_leg":"๐ฆฟ","leg":"๐ฆต","foot":"๐ฆถ","ear":"๐","ear_with_hearing_aid":"๐ฆป","nose":"๐","brain":"๐ง ","anatomical_heart":"๐ซ","lungs":"๐ซ","tooth":"๐ฆท","bone":"๐ฆด","eyes":"๐","eye":"๐๏ธ","tongue":"๐
","lips":"๐","biting_lip":"๐ซฆ","baby":"๐ถ","child":"๐ง","boy":"๐ฆ","girl":"๐ง","adult":"๐ง","blond_haired_person":"๐ฑ","man":"๐จ","bearded_person":"๐ง","man_beard":"๐งโโ๏ธ","woman_beard":"๐งโโ๏ธ","red_haired_man":"๐จโ๐ฆฐ","curly_haired_man":"๐จโ๐ฆฑ","white_haired_man":"๐จโ๐ฆณ","bald_man":"๐จโ๐ฆฒ","woman":"๐ฉ","red_haired_woman":"๐ฉโ๐ฆฐ","person_red_hair":"๐งโ๐ฆฐ","curly_haired_woman":"๐ฉโ๐ฆฑ","person_curly_hair":"๐งโ๐ฆฑ","white_haired_woman":"๐ฉโ๐ฆณ","person_white_hair":"๐งโ๐ฆณ","bald_woman":"๐ฉโ๐ฆฒ","person_bald":"๐งโ๐ฆฒ","blond_haired_woman":"๐ฑโโ๏ธ","blonde_woman":"๐ฑโโ๏ธ","blond_haired_man":"๐ฑโโ๏ธ","older_adult":"๐ง","older_man":"๐ด","older_woman":"๐ต","frowning_person":"๐","frowning_man":"๐โโ๏ธ","frowning_woman":"๐โโ๏ธ","pouting_face":"๐","pouting_man":"๐โโ๏ธ","pouting_woman":"๐โโ๏ธ","no_good":"๐
","no_good_man":"๐
โโ๏ธ","ng_man":"๐
โโ๏ธ","no_good_woman":"๐
โโ๏ธ","ng_woman":"๐
โโ๏ธ","ok_person":"๐","ok_man":"๐โโ๏ธ","ok_woman":"๐โโ๏ธ","tipping_hand_person":"๐","information_desk_person":"๐","tipping_hand_man":"๐โโ๏ธ","sassy_man":"๐โโ๏ธ","tipping_hand_woman":"๐โโ๏ธ","sassy_woman":"๐โโ๏ธ","raising_hand":"๐","raising_hand_man":"๐โโ๏ธ","raising_hand_woman":"๐โโ๏ธ","deaf_person":"๐ง","deaf_man":"๐งโโ๏ธ","deaf_woman":"๐งโโ๏ธ","bow":"๐","bowing_man":"๐โโ๏ธ","bowing_woman":"๐โโ๏ธ","facepalm":"๐คฆ","man_facepalming":"๐คฆโโ๏ธ","woman_facepalming":"๐คฆโโ๏ธ","shrug":"๐คท","man_shrugging":"๐คทโโ๏ธ","woman_shrugging":"๐คทโโ๏ธ","health_worker":"๐งโโ๏ธ","man_health_worker":"๐จโโ๏ธ","woman_health_worker":"๐ฉโโ๏ธ","student":"๐งโ๐","man_student":"๐จโ๐","woman_student":"๐ฉโ๐","teacher":"๐งโ๐ซ","man_teacher":"๐จโ๐ซ","woman_teacher":"๐ฉโ๐ซ","judge":"๐งโโ๏ธ","man_judge":"๐จโโ๏ธ","woman_judge":"๐ฉโโ๏ธ","farmer":"๐งโ๐พ","man_farmer":"๐จโ๐พ","woman_farmer":"๐ฉโ๐พ","cook":"๐งโ๐ณ","man_cook":"๐จโ๐ณ","woman_cook":"๐ฉโ๐ณ","mechanic":"๐งโ๐ง","man_mechanic":"๐จโ๐ง","woman_mechanic":"๐ฉโ๐ง","factory_worker":"๐งโ๐ญ","man_factory_worker":"๐จโ๐ญ","woman_factory_worker":"๐ฉโ๐ญ","office_worker":"๐งโ๐ผ","man_office_worker":"๐จโ๐ผ","woman_office_worker":"๐ฉโ๐ผ","scientist":"๐งโ๐ฌ","man_scientist":"๐จโ๐ฌ","woman_scientist":"๐ฉโ๐ฌ","technologist":"๐งโ๐ป","man_technologist":"๐จโ๐ป","woman_technologist":"๐ฉโ๐ป","singer":"๐งโ๐ค","man_singer":"๐จโ๐ค","woman_singer":"๐ฉโ๐ค","artist":"๐งโ๐จ","man_artist":"๐จโ๐จ","woman_artist":"๐ฉโ๐จ","pilot":"๐งโโ๏ธ","man_pilot":"๐จโโ๏ธ","woman_pilot":"๐ฉโโ๏ธ","astronaut":"๐งโ๐","man_astronaut":"๐จโ๐","woman_astronaut":"๐ฉโ๐","firefighter":"๐งโ๐","man_firefighter":"๐จโ๐","woman_firefighter":"๐ฉโ๐","police_officer":"๐ฎ","cop":"๐ฎ","policeman":"๐ฎโโ๏ธ","policewoman":"๐ฎโโ๏ธ","detective":"๐ต๏ธ","male_detective":"๐ต๏ธโโ๏ธ","female_detective":"๐ต๏ธโโ๏ธ","guard":"๐","guardsman":"๐โโ๏ธ","guardswoman":"๐โโ๏ธ","ninja":"๐ฅท","construction_worker":"๐ท","construction_worker_man":"๐ทโโ๏ธ","construction_worker_woman":"๐ทโโ๏ธ","person_with_crown":"๐ซ
","prince":"๐คด","princess":"๐ธ","person_with_turban":"๐ณ","man_with_turban":"๐ณโโ๏ธ","woman_with_turban":"๐ณโโ๏ธ","man_with_gua_pi_mao":"๐ฒ","woman_with_headscarf":"๐ง","person_in_tuxedo":"๐คต","man_in_tuxedo":"๐คตโโ๏ธ","woman_in_tuxedo":"๐คตโโ๏ธ","person_with_veil":"๐ฐ","man_with_veil":"๐ฐโโ๏ธ","woman_with_veil":"๐ฐโโ๏ธ","bride_with_veil":"๐ฐโโ๏ธ","pregnant_woman":"๐คฐ","pregnant_man":"๐ซ","pregnant_person":"๐ซ","breast_feeding":"๐คฑ","woman_feeding_baby":"๐ฉโ๐ผ","man_feeding_baby":"๐จโ๐ผ","person_feeding_baby":"๐งโ๐ผ","angel":"๐ผ","santa":"๐
","mrs_claus":"๐คถ","mx_claus":"๐งโ๐","superhero":"๐ฆธ","superhero_man":"๐ฆธโโ๏ธ","superhero_woman":"๐ฆธโโ๏ธ","supervillain":"๐ฆน","supervillain_man":"๐ฆนโโ๏ธ","supervillain_woman":"๐ฆนโโ๏ธ","mage":"๐ง","mage_man":"๐งโโ๏ธ","mage_woman":"๐งโโ๏ธ","fairy":"๐ง","fairy_man":"๐งโโ๏ธ","fairy_woman":"๐งโโ๏ธ","vampire":"๐ง","vampire_man":"๐งโโ๏ธ","vampire_woman":"๐งโโ๏ธ","merperson":"๐ง","merman":"๐งโโ๏ธ","mermaid":"๐งโโ๏ธ","elf":"๐ง","elf_man":"๐งโโ๏ธ","elf_woman":"๐งโโ๏ธ","genie":"๐ง","genie_man":"๐งโโ๏ธ","genie_woman":"๐งโโ๏ธ","zombie":"๐ง","zombie_man":"๐งโโ๏ธ","zombie_woman":"๐งโโ๏ธ","troll":"๐ง","massage":"๐","massage_man":"๐โโ๏ธ","massage_woman":"๐โโ๏ธ","haircut":"๐","haircut_man":"๐โโ๏ธ","haircut_woman":"๐โโ๏ธ","walking":"๐ถ","walking_man":"๐ถโโ๏ธ","walking_woman":"๐ถโโ๏ธ","standing_person":"๐ง","standing_man":"๐งโโ๏ธ","standing_woman":"๐งโโ๏ธ","kneeling_person":"๐ง","kneeling_man":"๐งโโ๏ธ","kneeling_woman":"๐งโโ๏ธ","person_with_probing_cane":"๐งโ๐ฆฏ","man_with_probing_cane":"๐จโ๐ฆฏ","woman_with_probing_cane":"๐ฉโ๐ฆฏ","person_in_motorized_wheelchair":"๐งโ๐ฆผ","man_in_motorized_wheelchair":"๐จโ๐ฆผ","woman_in_motorized_wheelchair":"๐ฉโ๐ฆผ","person_in_manual_wheelchair":"๐งโ๐ฆฝ","man_in_manual_wheelchair":"๐จโ๐ฆฝ","woman_in_manual_wheelchair":"๐ฉโ๐ฆฝ","runner":"๐","running":"๐","running_man":"๐โโ๏ธ","running_woman":"๐โโ๏ธ","woman_dancing":"๐","dancer":"๐","man_dancing":"๐บ","business_suit_levitating":"๐ด๏ธ","dancers":"๐ฏ","dancing_men":"๐ฏโโ๏ธ","dancing_women":"๐ฏโโ๏ธ","sauna_person":"๐ง","sauna_man":"๐งโโ๏ธ","sauna_woman":"๐งโโ๏ธ","climbing":"๐ง","climbing_man":"๐งโโ๏ธ","climbing_woman":"๐งโโ๏ธ","person_fencing":"๐คบ","horse_racing":"๐","skier":"โท๏ธ","snowboarder":"๐","golfing":"๐๏ธ","golfing_man":"๐๏ธโโ๏ธ","golfing_woman":"๐๏ธโโ๏ธ","surfer":"๐","surfing_man":"๐โโ๏ธ","surfing_woman":"๐โโ๏ธ","rowboat":"๐ฃ","rowing_man":"๐ฃโโ๏ธ","rowing_woman":"๐ฃโโ๏ธ","swimmer":"๐","swimming_man":"๐โโ๏ธ","swimming_woman":"๐โโ๏ธ","bouncing_ball_person":"โน๏ธ","bouncing_ball_man":"โน๏ธโโ๏ธ","basketball_man":"โน๏ธโโ๏ธ","bouncing_ball_woman":"โน๏ธโโ๏ธ","basketball_woman":"โน๏ธโโ๏ธ","weight_lifting":"๐๏ธ","weight_lifting_man":"๐๏ธโโ๏ธ","weight_lifting_woman":"๐๏ธโโ๏ธ","bicyclist":"๐ด","biking_man":"๐ดโโ๏ธ","biking_woman":"๐ดโโ๏ธ","mountain_bicyclist":"๐ต","mountain_biking_man":"๐ตโโ๏ธ","mountain_biking_woman":"๐ตโโ๏ธ","cartwheeling":"๐คธ","man_cartwheeling":"๐คธโโ๏ธ","woman_cartwheeling":"๐คธโโ๏ธ","wrestling":"๐คผ","men_wrestling":"๐คผโโ๏ธ","women_wrestling":"๐คผโโ๏ธ","water_polo":"๐คฝ","man_playing_water_polo":"๐คฝโโ๏ธ","woman_playing_water_polo":"๐คฝโโ๏ธ","handball_person":"๐คพ","man_playing_handball":"๐คพโโ๏ธ","woman_playing_handball":"๐คพโโ๏ธ","juggling_person":"๐คน","man_juggling":"๐คนโโ๏ธ","woman_juggling":"๐คนโโ๏ธ","lotus_position":"๐ง","lotus_position_man":"๐งโโ๏ธ","lotus_position_woman":"๐งโโ๏ธ","bath":"๐","sleeping_bed":"๐","people_holding_hands":"๐งโ๐คโ๐ง","two_women_holding_hands":"๐ญ","couple":"๐ซ","two_men_holding_hands":"๐ฌ","couplekiss":"๐","couplekiss_man_woman":"๐ฉโโค๏ธโ๐โ๐จ","couplekiss_man_man":"๐จโโค๏ธโ๐โ๐จ","couplekiss_woman_woman":"๐ฉโโค๏ธโ๐โ๐ฉ","couple_with_heart":"๐","couple_with_heart_woman_man":"๐ฉโโค๏ธโ๐จ","couple_with_heart_man_man":"๐จโโค๏ธโ๐จ","couple_with_heart_woman_woman":"๐ฉโโค๏ธโ๐ฉ","family":"๐ช","family_man_woman_boy":"๐จโ๐ฉโ๐ฆ","family_man_woman_girl":"๐จโ๐ฉโ๐ง","family_man_woman_girl_boy":"๐จโ๐ฉโ๐งโ๐ฆ","family_man_woman_boy_boy":"๐จโ๐ฉโ๐ฆโ๐ฆ","family_man_woman_girl_girl":"๐จโ๐ฉโ๐งโ๐ง","family_man_man_boy":"๐จโ๐จโ๐ฆ","family_man_man_girl":"๐จโ๐จโ๐ง","family_man_man_girl_boy":"๐จโ๐จโ๐งโ๐ฆ","family_man_man_boy_boy":"๐จโ๐จโ๐ฆโ๐ฆ","family_man_man_girl_girl":"๐จโ๐จโ๐งโ๐ง","family_woman_woman_boy":"๐ฉโ๐ฉโ๐ฆ","family_woman_woman_girl":"๐ฉโ๐ฉโ๐ง","family_woman_woman_girl_boy":"๐ฉโ๐ฉโ๐งโ๐ฆ","family_woman_woman_boy_boy":"๐ฉโ๐ฉโ๐ฆโ๐ฆ","family_woman_woman_girl_girl":"๐ฉโ๐ฉโ๐งโ๐ง","family_man_boy":"๐จโ๐ฆ","family_man_boy_boy":"๐จโ๐ฆโ๐ฆ","family_man_girl":"๐จโ๐ง","family_man_girl_boy":"๐จโ๐งโ๐ฆ","family_man_girl_girl":"๐จโ๐งโ๐ง","family_woman_boy":"๐ฉโ๐ฆ","family_woman_boy_boy":"๐ฉโ๐ฆโ๐ฆ","family_woman_girl":"๐ฉโ๐ง","family_woman_girl_boy":"๐ฉโ๐งโ๐ฆ","family_woman_girl_girl":"๐ฉโ๐งโ๐ง","speaking_head":"๐ฃ๏ธ","bust_in_silhouette":"๐ค","busts_in_silhouette":"๐ฅ","people_hugging":"๐ซ","footprints":"๐ฃ","monkey_face":"๐ต","monkey":"๐","gorilla":"๐ฆ","orangutan":"๐ฆง","dog":"๐ถ","dog2":"๐","guide_dog":"๐ฆฎ","service_dog":"๐โ๐ฆบ","poodle":"๐ฉ","wolf":"๐บ","fox_face":"๐ฆ","raccoon":"๐ฆ","cat":"๐ฑ","cat2":"๐","black_cat":"๐โโฌ","lion":"๐ฆ","tiger":"๐ฏ","tiger2":"๐
","leopard":"๐","horse":"๐ด","moose":"๐ซ","donkey":"๐ซ","racehorse":"๐","unicorn":"๐ฆ","zebra":"๐ฆ","deer":"๐ฆ","bison":"๐ฆฌ","cow":"๐ฎ","ox":"๐","water_buffalo":"๐","cow2":"๐","pig":"๐ท","pig2":"๐","boar":"๐","pig_nose":"๐ฝ","ram":"๐","sheep":"๐","goat":"๐","dromedary_camel":"๐ช","camel":"๐ซ","llama":"๐ฆ","giraffe":"๐ฆ","elephant":"๐","mammoth":"๐ฆฃ","rhinoceros":"๐ฆ","hippopotamus":"๐ฆ","mouse":"๐ญ","mouse2":"๐","rat":"๐","hamster":"๐น","rabbit":"๐ฐ","rabbit2":"๐","chipmunk":"๐ฟ๏ธ","beaver":"๐ฆซ","hedgehog":"๐ฆ","bat":"๐ฆ","bear":"๐ป","polar_bear":"๐ปโโ๏ธ","koala":"๐จ","panda_face":"๐ผ","sloth":"๐ฆฅ","otter":"๐ฆฆ","skunk":"๐ฆจ","kangaroo":"๐ฆ","badger":"๐ฆก","feet":"๐พ","paw_prints":"๐พ","turkey":"๐ฆ","chicken":"๐","rooster":"๐","hatching_chick":"๐ฃ","baby_chick":"๐ค","hatched_chick":"๐ฅ","bird":"๐ฆ","penguin":"๐ง","dove":"๐๏ธ","eagle":"๐ฆ
","duck":"๐ฆ","swan":"๐ฆข","owl":"๐ฆ","dodo":"๐ฆค","feather":"๐ชถ","flamingo":"๐ฆฉ","peacock":"๐ฆ","parrot":"๐ฆ","wing":"๐ชฝ","black_bird":"๐ฆโโฌ","goose":"๐ชฟ","frog":"๐ธ","crocodile":"๐","turtle":"๐ข","lizard":"๐ฆ","snake":"๐","dragon_face":"๐ฒ","dragon":"๐","sauropod":"๐ฆ","t_rex":"๐ฆ","whale":"๐ณ","whale2":"๐","dolphin":"๐ฌ","flipper":"๐ฌ","seal":"๐ฆญ","fish":"๐","tropical_fish":"๐ ","blowfish":"๐ก","shark":"๐ฆ","octopus":"๐","shell":"๐","coral":"๐ชธ","jellyfish":"๐ชผ","snail":"๐","butterfly":"๐ฆ","bug":"๐","ant":"๐","bee":"๐","honeybee":"๐","beetle":"๐ชฒ","lady_beetle":"๐","cricket":"๐ฆ","cockroach":"๐ชณ","spider":"๐ท๏ธ","spider_web":"๐ธ๏ธ","scorpion":"๐ฆ","mosquito":"๐ฆ","fly":"๐ชฐ","worm":"๐ชฑ","microbe":"๐ฆ ","bouquet":"๐","cherry_blossom":"๐ธ","white_flower":"๐ฎ","lotus":"๐ชท","rosette":"๐ต๏ธ","rose":"๐น","wilted_flower":"๐ฅ","hibiscus":"๐บ","sunflower":"๐ป","blossom":"๐ผ","tulip":"๐ท","hyacinth":"๐ชป","seedling":"๐ฑ","potted_plant":"๐ชด","evergreen_tree":"๐ฒ","deciduous_tree":"๐ณ","palm_tree":"๐ด","cactus":"๐ต","ear_of_rice":"๐พ","herb":"๐ฟ","shamrock":"โ๏ธ","four_leaf_clover":"๐","maple_leaf":"๐","fallen_leaf":"๐","leaves":"๐","empty_nest":"๐ชน","nest_with_eggs":"๐ชบ","mushroom":"๐","grapes":"๐","melon":"๐","watermelon":"๐","tangerine":"๐","orange":"๐","mandarin":"๐","lemon":"๐","banana":"๐","pineapple":"๐","mango":"๐ฅญ","apple":"๐","green_apple":"๐","pear":"๐","peach":"๐","cherries":"๐","strawberry":"๐","blueberries":"๐ซ","kiwi_fruit":"๐ฅ","tomato":"๐
","olive":"๐ซ","coconut":"๐ฅฅ","avocado":"๐ฅ","eggplant":"๐","potato":"๐ฅ","carrot":"๐ฅ","corn":"๐ฝ","hot_pepper":"๐ถ๏ธ","bell_pepper":"๐ซ","cucumber":"๐ฅ","leafy_green":"๐ฅฌ","broccoli":"๐ฅฆ","garlic":"๐ง","onion":"๐ง
","peanuts":"๐ฅ","beans":"๐ซ","chestnut":"๐ฐ","ginger_root":"๐ซ","pea_pod":"๐ซ","bread":"๐","croissant":"๐ฅ","baguette_bread":"๐ฅ","flatbread":"๐ซ","pretzel":"๐ฅจ","bagel":"๐ฅฏ","pancakes":"๐ฅ","waffle":"๐ง","cheese":"๐ง","meat_on_bone":"๐","poultry_leg":"๐","cut_of_meat":"๐ฅฉ","bacon":"๐ฅ","hamburger":"๐","fries":"๐","pizza":"๐","hotdog":"๐ญ","sandwich":"๐ฅช","taco":"๐ฎ","burrito":"๐ฏ","tamale":"๐ซ","stuffed_flatbread":"๐ฅ","falafel":"๐ง","egg":"๐ฅ","fried_egg":"๐ณ","shallow_pan_of_food":"๐ฅ","stew":"๐ฒ","fondue":"๐ซ","bowl_with_spoon":"๐ฅฃ","green_salad":"๐ฅ","popcorn":"๐ฟ","butter":"๐ง","salt":"๐ง","canned_food":"๐ฅซ","bento":"๐ฑ","rice_cracker":"๐","rice_ball":"๐","rice":"๐","curry":"๐","ramen":"๐","spaghetti":"๐","sweet_potato":"๐ ","oden":"๐ข","sushi":"๐ฃ","fried_shrimp":"๐ค","fish_cake":"๐ฅ","moon_cake":"๐ฅฎ","dango":"๐ก","dumpling":"๐ฅ","fortune_cookie":"๐ฅ ","takeout_box":"๐ฅก","crab":"๐ฆ","lobster":"๐ฆ","shrimp":"๐ฆ","squid":"๐ฆ","oyster":"๐ฆช","icecream":"๐ฆ","shaved_ice":"๐ง","ice_cream":"๐จ","doughnut":"๐ฉ","cookie":"๐ช","birthday":"๐","cake":"๐ฐ","cupcake":"๐ง","pie":"๐ฅง","chocolate_bar":"๐ซ","candy":"๐ฌ","lollipop":"๐ญ","custard":"๐ฎ","honey_pot":"๐ฏ","baby_bottle":"๐ผ","milk_glass":"๐ฅ","coffee":"โ","teapot":"๐ซ","tea":"๐ต","sake":"๐ถ","champagne":"๐พ","wine_glass":"๐ท","cocktail":"๐ธ","tropical_drink":"๐น","beer":"๐บ","beers":"๐ป","clinking_glasses":"๐ฅ","tumbler_glass":"๐ฅ","pouring_liquid":"๐ซ","cup_with_straw":"๐ฅค","bubble_tea":"๐ง","beverage_box":"๐ง","mate":"๐ง","ice_cube":"๐ง","chopsticks":"๐ฅข","plate_with_cutlery":"๐ฝ๏ธ","fork_and_knife":"๐ด","spoon":"๐ฅ","hocho":"๐ช","knife":"๐ช","jar":"๐ซ","amphora":"๐บ","earth_africa":"๐","earth_americas":"๐","earth_asia":"๐","globe_with_meridians":"๐","world_map":"๐บ๏ธ","japan":"๐พ","compass":"๐งญ","mountain_snow":"๐๏ธ","mountain":"โฐ๏ธ","volcano":"๐","mount_fuji":"๐ป","camping":"๐๏ธ","beach_umbrella":"๐๏ธ","desert":"๐๏ธ","desert_island":"๐๏ธ","national_park":"๐๏ธ","stadium":"๐๏ธ","classical_building":"๐๏ธ","building_construction":"๐๏ธ","bricks":"๐งฑ","rock":"๐ชจ","wood":"๐ชต","hut":"๐","houses":"๐๏ธ","derelict_house":"๐๏ธ","house":"๐ ","house_with_garden":"๐ก","office":"๐ข","post_office":"๐ฃ","european_post_office":"๐ค","hospital":"๐ฅ","bank":"๐ฆ","hotel":"๐จ","love_hotel":"๐ฉ","convenience_store":"๐ช","school":"๐ซ","department_store":"๐ฌ","factory":"๐ญ","japanese_castle":"๐ฏ","european_castle":"๐ฐ","wedding":"๐","tokyo_tower":"๐ผ","statue_of_liberty":"๐ฝ","church":"โช","mosque":"๐","hindu_temple":"๐","synagogue":"๐","shinto_shrine":"โฉ๏ธ","kaaba":"๐","fountain":"โฒ","tent":"โบ","foggy":"๐","night_with_stars":"๐","cityscape":"๐๏ธ","sunrise_over_mountains":"๐","sunrise":"๐
","city_sunset":"๐","city_sunrise":"๐","bridge_at_night":"๐","hotsprings":"โจ๏ธ","carousel_horse":"๐ ","playground_slide":"๐","ferris_wheel":"๐ก","roller_coaster":"๐ข","barber":"๐","circus_tent":"๐ช","steam_locomotive":"๐","railway_car":"๐","bullettrain_side":"๐","bullettrain_front":"๐
","train2":"๐","metro":"๐","light_rail":"๐","station":"๐","tram":"๐","monorail":"๐","mountain_railway":"๐","train":"๐","bus":"๐","oncoming_bus":"๐","trolleybus":"๐","minibus":"๐","ambulance":"๐","fire_engine":"๐","police_car":"๐","oncoming_police_car":"๐","taxi":"๐","oncoming_taxi":"๐","car":"๐","red_car":"๐","oncoming_automobile":"๐","blue_car":"๐","pickup_truck":"๐ป","truck":"๐","articulated_lorry":"๐","tractor":"๐","racing_car":"๐๏ธ","motorcycle":"๐๏ธ","motor_scooter":"๐ต","manual_wheelchair":"๐ฆฝ","motorized_wheelchair":"๐ฆผ","auto_rickshaw":"๐บ","bike":"๐ฒ","kick_scooter":"๐ด","skateboard":"๐น","roller_skate":"๐ผ","busstop":"๐","motorway":"๐ฃ๏ธ","railway_track":"๐ค๏ธ","oil_drum":"๐ข๏ธ","fuelpump":"โฝ","wheel":"๐","rotating_light":"๐จ","traffic_light":"๐ฅ","vertical_traffic_light":"๐ฆ","stop_sign":"๐","construction":"๐ง","anchor":"โ","ring_buoy":"๐","boat":"โต","sailboat":"โต","canoe":"๐ถ","speedboat":"๐ค","passenger_ship":"๐ณ๏ธ","ferry":"โด๏ธ","motor_boat":"๐ฅ๏ธ","ship":"๐ข","airplane":"โ๏ธ","small_airplane":"๐ฉ๏ธ","flight_departure":"๐ซ","flight_arrival":"๐ฌ","parachute":"๐ช","seat":"๐บ","helicopter":"๐","suspension_railway":"๐","mountain_cableway":"๐ ","aerial_tramway":"๐ก","artificial_satellite":"๐ฐ๏ธ","rocket":"๐","flying_saucer":"๐ธ","bellhop_bell":"๐๏ธ","luggage":"๐งณ","hourglass":"โ","hourglass_flowing_sand":"โณ","watch":"โ","alarm_clock":"โฐ","stopwatch":"โฑ๏ธ","timer_clock":"โฒ๏ธ","mantelpiece_clock":"๐ฐ๏ธ","clock12":"๐","clock1230":"๐ง","clock1":"๐","clock130":"๐","clock2":"๐","clock230":"๐","clock3":"๐","clock330":"๐","clock4":"๐","clock430":"๐","clock5":"๐","clock530":"๐ ","clock6":"๐","clock630":"๐ก","clock7":"๐","clock730":"๐ข","clock8":"๐","clock830":"๐ฃ","clock9":"๐","clock930":"๐ค","clock10":"๐","clock1030":"๐ฅ","clock11":"๐","clock1130":"๐ฆ","new_moon":"๐","waxing_crescent_moon":"๐","first_quarter_moon":"๐","moon":"๐","waxing_gibbous_moon":"๐","full_moon":"๐","waning_gibbous_moon":"๐","last_quarter_moon":"๐","waning_crescent_moon":"๐","crescent_moon":"๐","new_moon_with_face":"๐","first_quarter_moon_with_face":"๐","last_quarter_moon_with_face":"๐","thermometer":"๐ก๏ธ","sunny":"โ๏ธ","full_moon_with_face":"๐","sun_with_face":"๐","ringed_planet":"๐ช","star":"โญ","star2":"๐","stars":"๐ ","milky_way":"๐","cloud":"โ๏ธ","partly_sunny":"โ
","cloud_with_lightning_and_rain":"โ๏ธ","sun_behind_small_cloud":"๐ค๏ธ","sun_behind_large_cloud":"๐ฅ๏ธ","sun_behind_rain_cloud":"๐ฆ๏ธ","cloud_with_rain":"๐ง๏ธ","cloud_with_snow":"๐จ๏ธ","cloud_with_lightning":"๐ฉ๏ธ","tornado":"๐ช๏ธ","fog":"๐ซ๏ธ","wind_face":"๐ฌ๏ธ","cyclone":"๐","rainbow":"๐","closed_umbrella":"๐","open_umbrella":"โ๏ธ","umbrella":"โ","parasol_on_ground":"โฑ๏ธ","zap":"โก","snowflake":"โ๏ธ","snowman_with_snow":"โ๏ธ","snowman":"โ","comet":"โ๏ธ","fire":"๐ฅ","droplet":"๐ง","ocean":"๐","jack_o_lantern":"๐","christmas_tree":"๐","fireworks":"๐","sparkler":"๐","firecracker":"๐งจ","sparkles":"โจ","balloon":"๐","tada":"๐","confetti_ball":"๐","tanabata_tree":"๐","bamboo":"๐","dolls":"๐","flags":"๐","wind_chime":"๐","rice_scene":"๐","red_envelope":"๐งง","ribbon":"๐","gift":"๐","reminder_ribbon":"๐๏ธ","tickets":"๐๏ธ","ticket":"๐ซ","medal_military":"๐๏ธ","trophy":"๐","medal_sports":"๐
","1st_place_medal":"๐ฅ","2nd_place_medal":"๐ฅ","3rd_place_medal":"๐ฅ","soccer":"โฝ","baseball":"โพ","softball":"๐ฅ","basketball":"๐","volleyball":"๐","football":"๐","rugby_football":"๐","tennis":"๐พ","flying_disc":"๐ฅ","bowling":"๐ณ","cricket_game":"๐","field_hockey":"๐","ice_hockey":"๐","lacrosse":"๐ฅ","ping_pong":"๐","badminton":"๐ธ","boxing_glove":"๐ฅ","martial_arts_uniform":"๐ฅ","goal_net":"๐ฅ
","golf":"โณ","ice_skate":"โธ๏ธ","fishing_pole_and_fish":"๐ฃ","diving_mask":"๐คฟ","running_shirt_with_sash":"๐ฝ","ski":"๐ฟ","sled":"๐ท","curling_stone":"๐ฅ","dart":"๐ฏ","yo_yo":"๐ช","kite":"๐ช","gun":"๐ซ","8ball":"๐ฑ","crystal_ball":"๐ฎ","magic_wand":"๐ช","video_game":"๐ฎ","joystick":"๐น๏ธ","slot_machine":"๐ฐ","game_die":"๐ฒ","jigsaw":"๐งฉ","teddy_bear":"๐งธ","pinata":"๐ช
","mirror_ball":"๐ชฉ","nesting_dolls":"๐ช","spades":"โ ๏ธ","hearts":"โฅ๏ธ","diamonds":"โฆ๏ธ","clubs":"โฃ๏ธ","chess_pawn":"โ๏ธ","black_joker":"๐","mahjong":"๐","flower_playing_cards":"๐ด","performing_arts":"๐ญ","framed_picture":"๐ผ๏ธ","art":"๐จ","thread":"๐งต","sewing_needle":"๐ชก","yarn":"๐งถ","knot":"๐ชข","eyeglasses":"๐","dark_sunglasses":"๐ถ๏ธ","goggles":"๐ฅฝ","lab_coat":"๐ฅผ","safety_vest":"๐ฆบ","necktie":"๐","shirt":"๐","tshirt":"๐","jeans":"๐","scarf":"๐งฃ","gloves":"๐งค","coat":"๐งฅ","socks":"๐งฆ","dress":"๐","kimono":"๐","sari":"๐ฅป","one_piece_swimsuit":"๐ฉฑ","swim_brief":"๐ฉฒ","shorts":"๐ฉณ","bikini":"๐","womans_clothes":"๐","folding_hand_fan":"๐ชญ","purse":"๐","handbag":"๐","pouch":"๐","shopping":"๐๏ธ","school_satchel":"๐","thong_sandal":"๐ฉด","mans_shoe":"๐","shoe":"๐","athletic_shoe":"๐","hiking_boot":"๐ฅพ","flat_shoe":"๐ฅฟ","high_heel":"๐ ","sandal":"๐ก","ballet_shoes":"๐ฉฐ","boot":"๐ข","hair_pick":"๐ชฎ","crown":"๐","womans_hat":"๐","tophat":"๐ฉ","mortar_board":"๐","billed_cap":"๐งข","military_helmet":"๐ช","rescue_worker_helmet":"โ๏ธ","prayer_beads":"๐ฟ","lipstick":"๐","ring":"๐","gem":"๐","mute":"๐","speaker":"๐","sound":"๐","loud_sound":"๐","loudspeaker":"๐ข","mega":"๐ฃ","postal_horn":"๐ฏ","bell":"๐","no_bell":"๐","musical_score":"๐ผ","musical_note":"๐ต","notes":"๐ถ","studio_microphone":"๐๏ธ","level_slider":"๐๏ธ","control_knobs":"๐๏ธ","microphone":"๐ค","headphones":"๐ง","radio":"๐ป","saxophone":"๐ท","accordion":"๐ช","guitar":"๐ธ","musical_keyboard":"๐น","trumpet":"๐บ","violin":"๐ป","banjo":"๐ช","drum":"๐ฅ","long_drum":"๐ช","maracas":"๐ช","flute":"๐ช","iphone":"๐ฑ","calling":"๐ฒ","phone":"โ๏ธ","telephone":"โ๏ธ","telephone_receiver":"๐","pager":"๐","fax":"๐ ","battery":"๐","low_battery":"๐ชซ","electric_plug":"๐","computer":"๐ป","desktop_computer":"๐ฅ๏ธ","printer":"๐จ๏ธ","keyboard":"โจ๏ธ","computer_mouse":"๐ฑ๏ธ","trackball":"๐ฒ๏ธ","minidisc":"๐ฝ","floppy_disk":"๐พ","cd":"๐ฟ","dvd":"๐","abacus":"๐งฎ","movie_camera":"๐ฅ","film_strip":"๐๏ธ","film_projector":"๐ฝ๏ธ","clapper":"๐ฌ","tv":"๐บ","camera":"๐ท","camera_flash":"๐ธ","video_camera":"๐น","vhs":"๐ผ","mag":"๐","mag_right":"๐","candle":"๐ฏ๏ธ","bulb":"๐ก","flashlight":"๐ฆ","izakaya_lantern":"๐ฎ","lantern":"๐ฎ","diya_lamp":"๐ช","notebook_with_decorative_cover":"๐","closed_book":"๐","book":"๐","open_book":"๐","green_book":"๐","blue_book":"๐","orange_book":"๐","books":"๐","notebook":"๐","ledger":"๐","page_with_curl":"๐","scroll":"๐","page_facing_up":"๐","newspaper":"๐ฐ","newspaper_roll":"๐๏ธ","bookmark_tabs":"๐","bookmark":"๐","label":"๐ท๏ธ","moneybag":"๐ฐ","coin":"๐ช","yen":"๐ด","dollar":"๐ต","euro":"๐ถ","pound":"๐ท","money_with_wings":"๐ธ","credit_card":"๐ณ","receipt":"๐งพ","chart":"๐น","envelope":"โ๏ธ","email":"๐ง","e_mail":"๐ง","incoming_envelope":"๐จ","envelope_with_arrow":"๐ฉ","outbox_tray":"๐ค","inbox_tray":"๐ฅ","package":"๐ฆ","mailbox":"๐ซ","mailbox_closed":"๐ช","mailbox_with_mail":"๐ฌ","mailbox_with_no_mail":"๐ญ","postbox":"๐ฎ","ballot_box":"๐ณ๏ธ","pencil2":"โ๏ธ","black_nib":"โ๏ธ","fountain_pen":"๐๏ธ","pen":"๐๏ธ","paintbrush":"๐๏ธ","crayon":"๐๏ธ","memo":"๐","pencil":"๐","briefcase":"๐ผ","file_folder":"๐","open_file_folder":"๐","card_index_dividers":"๐๏ธ","date":"๐
","calendar":"๐","spiral_notepad":"๐๏ธ","spiral_calendar":"๐๏ธ","card_index":"๐","chart_with_upwards_trend":"๐","chart_with_downwards_trend":"๐","bar_chart":"๐","clipboard":"๐","pushpin":"๐","round_pushpin":"๐","paperclip":"๐","paperclips":"๐๏ธ","straight_ruler":"๐","triangular_ruler":"๐","scissors":"โ๏ธ","card_file_box":"๐๏ธ","file_cabinet":"๐๏ธ","wastebasket":"๐๏ธ","lock":"๐","unlock":"๐","lock_with_ink_pen":"๐","closed_lock_with_key":"๐","key":"๐","old_key":"๐๏ธ","hammer":"๐จ","axe":"๐ช","pick":"โ๏ธ","hammer_and_pick":"โ๏ธ","hammer_and_wrench":"๐ ๏ธ","dagger":"๐ก๏ธ","crossed_swords":"โ๏ธ","bomb":"๐ฃ","boomerang":"๐ช","bow_and_arrow":"๐น","shield":"๐ก๏ธ","carpentry_saw":"๐ช","wrench":"๐ง","screwdriver":"๐ช","nut_and_bolt":"๐ฉ","gear":"โ๏ธ","clamp":"๐๏ธ","balance_scale":"โ๏ธ","probing_cane":"๐ฆฏ","link":"๐","chains":"โ๏ธ","hook":"๐ช","toolbox":"๐งฐ","magnet":"๐งฒ","ladder":"๐ช","alembic":"โ๏ธ","test_tube":"๐งช","petri_dish":"๐งซ","dna":"๐งฌ","microscope":"๐ฌ","telescope":"๐ญ","satellite":"๐ก","syringe":"๐","drop_of_blood":"๐ฉธ","pill":"๐","adhesive_bandage":"๐ฉน","crutch":"๐ฉผ","stethoscope":"๐ฉบ","x_ray":"๐ฉป","door":"๐ช","elevator":"๐","mirror":"๐ช","window":"๐ช","bed":"๐๏ธ","couch_and_lamp":"๐๏ธ","chair":"๐ช","toilet":"๐ฝ","plunger":"๐ช ","shower":"๐ฟ","bathtub":"๐","mouse_trap":"๐ชค","razor":"๐ช","lotion_bottle":"๐งด","safety_pin":"๐งท","broom":"๐งน","basket":"๐งบ","roll_of_paper":"๐งป","bucket":"๐ชฃ","soap":"๐งผ","bubbles":"๐ซง","toothbrush":"๐ชฅ","sponge":"๐งฝ","fire_extinguisher":"๐งฏ","shopping_cart":"๐","smoking":"๐ฌ","coffin":"โฐ๏ธ","headstone":"๐ชฆ","funeral_urn":"โฑ๏ธ","nazar_amulet":"๐งฟ","hamsa":"๐ชฌ","moyai":"๐ฟ","placard":"๐ชง","identification_card":"๐ชช","atm":"๐ง","put_litter_in_its_place":"๐ฎ","potable_water":"๐ฐ","wheelchair":"โฟ","mens":"๐น","womens":"๐บ","restroom":"๐ป","baby_symbol":"๐ผ","wc":"๐พ","passport_control":"๐","customs":"๐","baggage_claim":"๐","left_luggage":"๐
","warning":"โ ๏ธ","children_crossing":"๐ธ","no_entry":"โ","no_entry_sign":"๐ซ","no_bicycles":"๐ณ","no_smoking":"๐ญ","do_not_litter":"๐ฏ","non_potable_water":"๐ฑ","no_pedestrians":"๐ท","no_mobile_phones":"๐ต","underage":"๐","radioactive":"โข๏ธ","biohazard":"โฃ๏ธ","arrow_up":"โฌ๏ธ","arrow_upper_right":"โ๏ธ","arrow_right":"โก๏ธ","arrow_lower_right":"โ๏ธ","arrow_down":"โฌ๏ธ","arrow_lower_left":"โ๏ธ","arrow_left":"โฌ
๏ธ","arrow_upper_left":"โ๏ธ","arrow_up_down":"โ๏ธ","left_right_arrow":"โ๏ธ","leftwards_arrow_with_hook":"โฉ๏ธ","arrow_right_hook":"โช๏ธ","arrow_heading_up":"โคด๏ธ","arrow_heading_down":"โคต๏ธ","arrows_clockwise":"๐","arrows_counterclockwise":"๐","back":"๐","end":"๐","on":"๐","soon":"๐","top":"๐","place_of_worship":"๐","atom_symbol":"โ๏ธ","om":"๐๏ธ","star_of_david":"โก๏ธ","wheel_of_dharma":"โธ๏ธ","yin_yang":"โฏ๏ธ","latin_cross":"โ๏ธ","orthodox_cross":"โฆ๏ธ","star_and_crescent":"โช๏ธ","peace_symbol":"โฎ๏ธ","menorah":"๐","six_pointed_star":"๐ฏ","khanda":"๐ชฏ","aries":"โ","taurus":"โ","gemini":"โ","cancer":"โ","leo":"โ","virgo":"โ","libra":"โ","scorpius":"โ","sagittarius":"โ","capricorn":"โ","aquarius":"โ","pisces":"โ","ophiuchus":"โ","twisted_rightwards_arrows":"๐","repeat":"๐","repeat_one":"๐","arrow_forward":"โถ๏ธ","fast_forward":"โฉ","next_track_button":"โญ๏ธ","play_or_pause_button":"โฏ๏ธ","arrow_backward":"โ๏ธ","rewind":"โช","previous_track_button":"โฎ๏ธ","arrow_up_small":"๐ผ","arrow_double_up":"โซ","arrow_down_small":"๐ฝ","arrow_double_down":"โฌ","pause_button":"โธ๏ธ","stop_button":"โน๏ธ","record_button":"โบ๏ธ","eject_button":"โ๏ธ","cinema":"๐ฆ","low_brightness":"๐
","high_brightness":"๐","signal_strength":"๐ถ","wireless":"๐","vibration_mode":"๐ณ","mobile_phone_off":"๐ด","female_sign":"โ๏ธ","male_sign":"โ๏ธ","transgender_symbol":"โง๏ธ","heavy_multiplication_x":"โ๏ธ","heavy_plus_sign":"โ","heavy_minus_sign":"โ","heavy_division_sign":"โ","heavy_equals_sign":"๐ฐ","infinity":"โพ๏ธ","bangbang":"โผ๏ธ","interrobang":"โ๏ธ","question":"โ","grey_question":"โ","grey_exclamation":"โ","exclamation":"โ","heavy_exclamation_mark":"โ","wavy_dash":"ใฐ๏ธ","currency_exchange":"๐ฑ","heavy_dollar_sign":"๐ฒ","medical_symbol":"โ๏ธ","recycle":"โป๏ธ","fleur_de_lis":"โ๏ธ","trident":"๐ฑ","name_badge":"๐","beginner":"๐ฐ","o":"โญ","white_check_mark":"โ
","ballot_box_with_check":"โ๏ธ","heavy_check_mark":"โ๏ธ","x":"โ","negative_squared_cross_mark":"โ","curly_loop":"โฐ","loop":"โฟ","part_alternation_mark":"ใฝ๏ธ","eight_spoked_asterisk":"โณ๏ธ","eight_pointed_black_star":"โด๏ธ","sparkle":"โ๏ธ","copyright":"ยฉ๏ธ","registered":"ยฎ๏ธ","tm":"โข๏ธ","hash":"#๏ธโฃ","asterisk":"*๏ธโฃ","zero":"0๏ธโฃ","one":"1๏ธโฃ","two":"2๏ธโฃ","three":"3๏ธโฃ","four":"4๏ธโฃ","five":"5๏ธโฃ","six":"6๏ธโฃ","seven":"7๏ธโฃ","eight":"8๏ธโฃ","nine":"9๏ธโฃ","keycap_ten":"๐","capital_abcd":"๐ ","abcd":"๐ก","symbols":"๐ฃ","abc":"๐ค","a":"๐
ฐ๏ธ","ab":"๐","b":"๐
ฑ๏ธ","cl":"๐","cool":"๐","free":"๐","information_source":"โน๏ธ","id":"๐","m":"โ๏ธ","new":"๐","ng":"๐","o2":"๐
พ๏ธ","ok":"๐","parking":"๐
ฟ๏ธ","sos":"๐","up":"๐","vs":"๐","koko":"๐","sa":"๐๏ธ","u6708":"๐ท๏ธ","u6709":"๐ถ","u6307":"๐ฏ","ideograph_advantage":"๐","u5272":"๐น","u7121":"๐","u7981":"๐ฒ","accept":"๐","u7533":"๐ธ","u5408":"๐ด","u7a7a":"๐ณ","congratulations":"ใ๏ธ","secret":"ใ๏ธ","u55b6":"๐บ","u6e80":"๐ต","red_circle":"๐ด","orange_circle":"๐ ","yellow_circle":"๐ก","green_circle":"๐ข","large_blue_circle":"๐ต","purple_circle":"๐ฃ","brown_circle":"๐ค","black_circle":"โซ","white_circle":"โช","red_square":"๐ฅ","orange_square":"๐ง","yellow_square":"๐จ","green_square":"๐ฉ","blue_square":"๐ฆ","purple_square":"๐ช","brown_square":"๐ซ","black_large_square":"โฌ","white_large_square":"โฌ","black_medium_square":"โผ๏ธ","white_medium_square":"โป๏ธ","black_medium_small_square":"โพ","white_medium_small_square":"โฝ","black_small_square":"โช๏ธ","white_small_square":"โซ๏ธ","large_orange_diamond":"๐ถ","large_blue_diamond":"๐ท","small_orange_diamond":"๐ธ","small_blue_diamond":"๐น","small_red_triangle":"๐บ","small_red_triangle_down":"๐ป","diamond_shape_with_a_dot_inside":"๐ ","radio_button":"๐","white_square_button":"๐ณ","black_square_button":"๐ฒ","checkered_flag":"๐","triangular_flag_on_post":"๐ฉ","crossed_flags":"๐","black_flag":"๐ด","white_flag":"๐ณ๏ธ","rainbow_flag":"๐ณ๏ธโ๐","transgender_flag":"๐ณ๏ธโโง๏ธ","pirate_flag":"๐ดโโ ๏ธ","ascension_island":"๐ฆ๐จ","andorra":"๐ฆ๐ฉ","united_arab_emirates":"๐ฆ๐ช","afghanistan":"๐ฆ๐ซ","antigua_barbuda":"๐ฆ๐ฌ","anguilla":"๐ฆ๐ฎ","albania":"๐ฆ๐ฑ","armenia":"๐ฆ๐ฒ","angola":"๐ฆ๐ด","antarctica":"๐ฆ๐ถ","argentina":"๐ฆ๐ท","american_samoa":"๐ฆ๐ธ","austria":"๐ฆ๐น","australia":"๐ฆ๐บ","aruba":"๐ฆ๐ผ","aland_islands":"๐ฆ๐ฝ","azerbaijan":"๐ฆ๐ฟ","bosnia_herzegovina":"๐ง๐ฆ","barbados":"๐ง๐ง","bangladesh":"๐ง๐ฉ","belgium":"๐ง๐ช","burkina_faso":"๐ง๐ซ","bulgaria":"๐ง๐ฌ","bahrain":"๐ง๐ญ","burundi":"๐ง๐ฎ","benin":"๐ง๐ฏ","st_barthelemy":"๐ง๐ฑ","bermuda":"๐ง๐ฒ","brunei":"๐ง๐ณ","bolivia":"๐ง๐ด","caribbean_netherlands":"๐ง๐ถ","brazil":"๐ง๐ท","bahamas":"๐ง๐ธ","bhutan":"๐ง๐น","bouvet_island":"๐ง๐ป","botswana":"๐ง๐ผ","belarus":"๐ง๐พ","belize":"๐ง๐ฟ","canada":"๐จ๐ฆ","cocos_islands":"๐จ๐จ","congo_kinshasa":"๐จ๐ฉ","central_african_republic":"๐จ๐ซ","congo_brazzaville":"๐จ๐ฌ","switzerland":"๐จ๐ญ","cote_divoire":"๐จ๐ฎ","cook_islands":"๐จ๐ฐ","chile":"๐จ๐ฑ","cameroon":"๐จ๐ฒ","cn":"๐จ๐ณ","colombia":"๐จ๐ด","clipperton_island":"๐จ๐ต","costa_rica":"๐จ๐ท","cuba":"๐จ๐บ","cape_verde":"๐จ๐ป","curacao":"๐จ๐ผ","christmas_island":"๐จ๐ฝ","cyprus":"๐จ๐พ","czech_republic":"๐จ๐ฟ","de":"๐ฉ๐ช","diego_garcia":"๐ฉ๐ฌ","djibouti":"๐ฉ๐ฏ","denmark":"๐ฉ๐ฐ","dominica":"๐ฉ๐ฒ","dominican_republic":"๐ฉ๐ด","algeria":"๐ฉ๐ฟ","ceuta_melilla":"๐ช๐ฆ","ecuador":"๐ช๐จ","estonia":"๐ช๐ช","egypt":"๐ช๐ฌ","western_sahara":"๐ช๐ญ","eritrea":"๐ช๐ท","es":"๐ช๐ธ","ethiopia":"๐ช๐น","eu":"๐ช๐บ","european_union":"๐ช๐บ","finland":"๐ซ๐ฎ","fiji":"๐ซ๐ฏ","falkland_islands":"๐ซ๐ฐ","micronesia":"๐ซ๐ฒ","faroe_islands":"๐ซ๐ด","fr":"๐ซ๐ท","gabon":"๐ฌ๐ฆ","gb":"๐ฌ๐ง","uk":"๐ฌ๐ง","grenada":"๐ฌ๐ฉ","georgia":"๐ฌ๐ช","french_guiana":"๐ฌ๐ซ","guernsey":"๐ฌ๐ฌ","ghana":"๐ฌ๐ญ","gibraltar":"๐ฌ๐ฎ","greenland":"๐ฌ๐ฑ","gambia":"๐ฌ๐ฒ","guinea":"๐ฌ๐ณ","guadeloupe":"๐ฌ๐ต","equatorial_guinea":"๐ฌ๐ถ","greece":"๐ฌ๐ท","south_georgia_south_sandwich_islands":"๐ฌ๐ธ","guatemala":"๐ฌ๐น","guam":"๐ฌ๐บ","guinea_bissau":"๐ฌ๐ผ","guyana":"๐ฌ๐พ","hong_kong":"๐ญ๐ฐ","heard_mcdonald_islands":"๐ญ๐ฒ","honduras":"๐ญ๐ณ","croatia":"๐ญ๐ท","haiti":"๐ญ๐น","hungary":"๐ญ๐บ","canary_islands":"๐ฎ๐จ","indonesia":"๐ฎ๐ฉ","ireland":"๐ฎ๐ช","israel":"๐ฎ๐ฑ","isle_of_man":"๐ฎ๐ฒ","india":"๐ฎ๐ณ","british_indian_ocean_territory":"๐ฎ๐ด","iraq":"๐ฎ๐ถ","iran":"๐ฎ๐ท","iceland":"๐ฎ๐ธ","it":"๐ฎ๐น","jersey":"๐ฏ๐ช","jamaica":"๐ฏ๐ฒ","jordan":"๐ฏ๐ด","jp":"๐ฏ๐ต","kenya":"๐ฐ๐ช","kyrgyzstan":"๐ฐ๐ฌ","cambodia":"๐ฐ๐ญ","kiribati":"๐ฐ๐ฎ","comoros":"๐ฐ๐ฒ","st_kitts_nevis":"๐ฐ๐ณ","north_korea":"๐ฐ๐ต","kr":"๐ฐ๐ท","kuwait":"๐ฐ๐ผ","cayman_islands":"๐ฐ๐พ","kazakhstan":"๐ฐ๐ฟ","laos":"๐ฑ๐ฆ","lebanon":"๐ฑ๐ง","st_lucia":"๐ฑ๐จ","liechtenstein":"๐ฑ๐ฎ","sri_lanka":"๐ฑ๐ฐ","liberia":"๐ฑ๐ท","lesotho":"๐ฑ๐ธ","lithuania":"๐ฑ๐น","luxembourg":"๐ฑ๐บ","latvia":"๐ฑ๐ป","libya":"๐ฑ๐พ","morocco":"๐ฒ๐ฆ","monaco":"๐ฒ๐จ","moldova":"๐ฒ๐ฉ","montenegro":"๐ฒ๐ช","st_martin":"๐ฒ๐ซ","madagascar":"๐ฒ๐ฌ","marshall_islands":"๐ฒ๐ญ","macedonia":"๐ฒ๐ฐ","mali":"๐ฒ๐ฑ","myanmar":"๐ฒ๐ฒ","mongolia":"๐ฒ๐ณ","macau":"๐ฒ๐ด","northern_mariana_islands":"๐ฒ๐ต","martinique":"๐ฒ๐ถ","mauritania":"๐ฒ๐ท","montserrat":"๐ฒ๐ธ","malta":"๐ฒ๐น","mauritius":"๐ฒ๐บ","maldives":"๐ฒ๐ป","malawi":"๐ฒ๐ผ","mexico":"๐ฒ๐ฝ","malaysia":"๐ฒ๐พ","mozambique":"๐ฒ๐ฟ","namibia":"๐ณ๐ฆ","new_caledonia":"๐ณ๐จ","niger":"๐ณ๐ช","norfolk_island":"๐ณ๐ซ","nigeria":"๐ณ๐ฌ","nicaragua":"๐ณ๐ฎ","netherlands":"๐ณ๐ฑ","norway":"๐ณ๐ด","nepal":"๐ณ๐ต","nauru":"๐ณ๐ท","niue":"๐ณ๐บ","new_zealand":"๐ณ๐ฟ","oman":"๐ด๐ฒ","panama":"๐ต๐ฆ","peru":"๐ต๐ช","french_polynesia":"๐ต๐ซ","papua_new_guinea":"๐ต๐ฌ","philippines":"๐ต๐ญ","pakistan":"๐ต๐ฐ","poland":"๐ต๐ฑ","st_pierre_miquelon":"๐ต๐ฒ","pitcairn_islands":"๐ต๐ณ","puerto_rico":"๐ต๐ท","palestinian_territories":"๐ต๐ธ","portugal":"๐ต๐น","palau":"๐ต๐ผ","paraguay":"๐ต๐พ","qatar":"๐ถ๐ฆ","reunion":"๐ท๐ช","romania":"๐ท๐ด","serbia":"๐ท๐ธ","ru":"๐ท๐บ","rwanda":"๐ท๐ผ","saudi_arabia":"๐ธ๐ฆ","solomon_islands":"๐ธ๐ง","seychelles":"๐ธ๐จ","sudan":"๐ธ๐ฉ","sweden":"๐ธ๐ช","singapore":"๐ธ๐ฌ","st_helena":"๐ธ๐ญ","slovenia":"๐ธ๐ฎ","svalbard_jan_mayen":"๐ธ๐ฏ","slovakia":"๐ธ๐ฐ","sierra_leone":"๐ธ๐ฑ","san_marino":"๐ธ๐ฒ","senegal":"๐ธ๐ณ","somalia":"๐ธ๐ด","suriname":"๐ธ๐ท","south_sudan":"๐ธ๐ธ","sao_tome_principe":"๐ธ๐น","el_salvador":"๐ธ๐ป","sint_maarten":"๐ธ๐ฝ","syria":"๐ธ๐พ","swaziland":"๐ธ๐ฟ","tristan_da_cunha":"๐น๐ฆ","turks_caicos_islands":"๐น๐จ","chad":"๐น๐ฉ","french_southern_territories":"๐น๐ซ","togo":"๐น๐ฌ","thailand":"๐น๐ญ","tajikistan":"๐น๐ฏ","tokelau":"๐น๐ฐ","timor_leste":"๐น๐ฑ","turkmenistan":"๐น๐ฒ","tunisia":"๐น๐ณ","tonga":"๐น๐ด","tr":"๐น๐ท","trinidad_tobago":"๐น๐น","tuvalu":"๐น๐ป","taiwan":"๐น๐ผ","tanzania":"๐น๐ฟ","ukraine":"๐บ๐ฆ","uganda":"๐บ๐ฌ","us_outlying_islands":"๐บ๐ฒ","united_nations":"๐บ๐ณ","us":"๐บ๐ธ","uruguay":"๐บ๐พ","uzbekistan":"๐บ๐ฟ","vatican_city":"๐ป๐ฆ","st_vincent_grenadines":"๐ป๐จ","venezuela":"๐ป๐ช","british_virgin_islands":"๐ป๐ฌ","us_virgin_islands":"๐ป๐ฎ","vietnam":"๐ป๐ณ","vanuatu":"๐ป๐บ","wallis_futuna":"๐ผ๐ซ","samoa":"๐ผ๐ธ","kosovo":"๐ฝ๐ฐ","yemen":"๐พ๐ช","mayotte":"๐พ๐น","south_africa":"๐ฟ๐ฆ","zambia":"๐ฟ๐ฒ","zimbabwe":"๐ฟ๐ผ","england":"๐ด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ","scotland":"๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ","wales":"๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ"}'),oi=Object.keys(si),ii={id:"emoji",match:/(^|\s):([-+\w:?]{2,}):?$/,search(e,n){n(hi(e=e.replace(/:$/,""),oi))},template:([e,n])=>`<span class="emoji">${String(si[n])}</span> ${e}`,replace:([,e])=>"$1"+String(si[e]),index:2},li={id:"nicks",match:/(^|\s)(@([a-zA-Z_[\]\\^{}|`@][a-zA-Z0-9_[\]\\^{}|`-]*)?)$/,search(e,n){"@"===(e=e.slice(1))[0]?n(gi(e.slice(1),!0).map(e=>["@"+e[0],"@"+e[1]])):n(gi(e,!0))},template:([e])=>e,replace:([,e])=>"$1"+pi(e),index:2},ri={id:"chans",match:/(^|\s)((?:#|\+|&|![A-Z0-9]{5})(?:[^\s]+)?)$/,search(e,n){n(function(e){const n=[];if(o.M_.state.activeChannel)for(const t of o.M_.state.activeChannel.network.channels)t.type===Zs.rR.CHANNEL&&t.name[0]===e[0]&&n.push(t.name);return hi(e,n)}(e))},template:([e])=>e,replace:([,e])=>"$1"+e,index:2},ci={id:"commands",match:/^\/(\w*)$/,search(e,n){n(hi("/"+e,function(){let e=a.commands.slice();return o.M_.state.settings.searchEnabled||(e=e.filter(e=>"/search"!==e)),e}()))},template:([e])=>e,replace:([,e])=>e,index:1},ui={id:"foreground-colors",match:/\x03(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,n){e=e.toLowerCase(),n(a.colorCodeMap.filter(n=>B().test(e,n[0])||B().test(e,n[1])).map(n=>B().test(e,n[1])?[n[0],B().match(e,n[1],{pre:"<b>",post:"</b>"}).rendered]:n))},template:e=>`<span class="irc-fg${parseInt(e[0],10)}">${e[1]}</span>`,replace:e=>""+e[0],index:1},di={id:"background-colors",match:/\x03(\d{2}),(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,n,t){e=e.toLowerCase(),n(a.colorCodeMap.filter(n=>B().test(e,n[0])||B().test(e,n[1])).map(n=>B().test(e,n[1])?[n[0],B().match(e,n[1],{pre:"<b>",post:"</b>"}).rendered]:n).map(e=>e.concat(t[1])))},template:e=>`<span class="irc-fg${parseInt(e[2],10)} irc-bg irc-bg${parseInt(e[0],10)}">${e[1]}</span>`,replace:e=>"$1,"+e[0],index:2};function pi(e,n=1){return o.M_.state.settings.nickPostfix?n>0&&/\s/.test(o.M_.state.activeChannel?.channel.pendingMessage||"")?e+" ":e+o.M_.state.settings.nickPostfix:e}function hi(e,n){return B().filter(e,n,{pre:"<b>",post:"</b>"}).map(e=>[e.string,e.original])}function gi(e,n){const t=function(){if(!o.M_.state.activeChannel)return[];const e=o.M_.state.activeChannel.channel;if(e.users&&e.users.length>0)return e.users.slice().sort((e,n)=>n.lastMessage-e.lastMessage).map(e=>e.nick);const n=o.M_.state.activeChannel.network.nick,t=e.name;return n!==t&&e.type===Zs.rR.QUERY?[t,n]:[n]}();return e=e.toLowerCase(),n?hi(e,t):t.filter(n=>!n.toLowerCase().indexOf(e))}const mi={collapse:function(){if(!o.M_.state.activeChannel)return!1;const e=[];for(const n of o.M_.state.activeChannel.channel.messages){let t=!1;for(const e of n.previews||[])e.shown&&(e.shown=!1,t=!0);t&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&re.A.emit("msg:preview:toggle",{target:o.M_.state.activeChannel?.channel.id,messageIds:e,shown:!1}),!0},expand:function(){if(!o.M_.state.activeChannel)return!1;const e=[];for(const n of o.M_.state.activeChannel.channel.messages){let t=!1;for(const e of n.previews||[])e.shown||(e.shown=!0,t=!0);t&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&re.A.emit("msg:preview:toggle",{target:o.M_.state.activeChannel?.channel.id,messageIds:e,shown:!0}),!0},join:function(e){if(e.length>0){let n=e[0];if(n.length>0){const t=o.M_.state.activeChannel?.network.serverOptions.CHANTYPES,a=e[0].split(",");if(t&&t.length>0)for(let e=0;e<a.length;e++)t.includes(a[e][0])||(a[e]=t[0]+a[e]);n=a.join(",");const s=o.M_.getters.findChannelOnCurrentNetwork(n);if(!s)return o.M_.state.activeChannel&&re.A.emit("input",{text:`/join ${n} ${e.length>1?e[1]:""}`,target:o.M_.state.activeChannel.channel.id}),!0;mc(s)}}else if(o.M_.state.activeChannel?.channel.type===Zs.rR.CHANNEL)return re.A.emit("input",{target:o.M_.state.activeChannel.channel.id,text:`/join ${o.M_.state.activeChannel.channel.name}`}),!0;return!1},search:function(e){return!!o.M_.state.settings.searchEnabled&&(hc.push({name:"SearchResults",params:{id:o.M_.state.activeChannel?.channel.id},query:{q:e.join(" ")}}).catch(e=>{console.error(`Failed to push SearchResults route: ${e.message}`)}),!0)}},ki=new class{xhr=null;fileQueue=[];tokenKeepAlive=null;overlay=null;uploadProgressbar=null;onDragEnter=e=>this.dragEnter(e);onDragOver=e=>this.dragOver(e);onDragLeave=e=>this.dragLeave(e);onDrop=e=>this.drop(e);onPaste=e=>this.paste(e);init(){re.A.on("upload:auth",e=>this.uploadNextFileInQueue(e))}mounted(){this.overlay=document.getElementById("upload-overlay"),this.uploadProgressbar=document.getElementById("upload-progressbar"),document.addEventListener("dragenter",this.onDragEnter),document.addEventListener("dragover",this.onDragOver),document.addEventListener("dragleave",this.onDragLeave),document.addEventListener("drop",this.onDrop),document.addEventListener("paste",this.onPaste)}unmounted(){document.removeEventListener("dragenter",this.onDragEnter),document.removeEventListener("dragover",this.onDragOver),document.removeEventListener("dragleave",this.onDragLeave),document.removeEventListener("drop",this.onDrop),document.removeEventListener("paste",this.onPaste)}dragOver(e){e.dataTransfer?.types.includes("Files")&&e.preventDefault()}dragEnter(e){!e.relatedTarget&&e.dataTransfer?.types.includes("Files")&&(e.preventDefault(),this.overlay?.classList.add("is-dragover"))}dragLeave(e){e.relatedTarget||(e.preventDefault(),this.overlay?.classList.remove("is-dragover"))}drop(e){if(!e.dataTransfer?.types.includes("Files"))return;let n;e.preventDefault(),this.overlay?.classList.remove("is-dragover"),n=e.dataTransfer.items?Array.from(e.dataTransfer.items).filter(e=>"file"===e.kind).map(e=>e.getAsFile()):Array.from(e.dataTransfer.files),this.triggerUpload(n)}paste(e){const n=e.clipboardData?.items,t=[];if(n){for(let e=0;e<n.length;e++)"file"===n[e].kind&&t.push(n[e].getAsFile());0!==t.length&&(e.preventDefault(),this.triggerUpload(t))}}triggerUpload(e){if(!e.length)return;if(!o.M_.state.isConnected)return void this.handleResponse({error:"You are currently disconnected, unable to initiate upload process."});const n=0===this.fileQueue.length,t=o.M_.state.serverConfiguration?.fileUploadMaxFileSize||0;for(const n of e){if(!n)return;t>0&&n.size>t?this.handleResponse({error:`File ${n.name} is over the maximum allowed size`}):this.fileQueue.push(n)}n&&null===this.xhr&&this.fileQueue.length>0&&this.requestToken()}requestToken(){re.A.emit("upload:auth")}setProgress(e){this.uploadProgressbar&&(this.uploadProgressbar.classList.toggle("upload-progressbar-visible",e>0),this.uploadProgressbar.style.width=`${e}%`)}uploadNextFileInQueue(e){const n=this.fileQueue.shift();n&&(this.tokenKeepAlive=setInterval(()=>re.A.emit("upload:ping",e),4e4),o.M_.state.settings.uploadCanvas&&n.type.startsWith("image/")&&!n.type.includes("svg")&&"image/gif"!==n.type?this.renderImage(n,n=>this.performUpload(e,n)):this.performUpload(e,n))}renderImage(e,n){const t=new FileReader;t.onabort=()=>n(e),t.onerror=()=>t.abort(),t.onload=()=>{const a=new Image;if(a.onerror=()=>n(e),a.onload=()=>{const t=document.createElement("canvas");t.width=a.width,t.height=a.height;const s=t.getContext("2d");if(!s)throw new Error("Could not get canvas context in upload");s.drawImage(a,0,0),t.toBlob(t=>{n(new File([t],e.name))},e.type)},"string"!=typeof t.result)throw new Error("Expected string result from readAsDataURL");a.src=t.result},t.readAsDataURL(e)}performUpload(e,n){this.xhr=new XMLHttpRequest,this.xhr.upload.addEventListener("progress",e=>{const n=Math.floor(e.loaded/e.total*1e3)/10;this.setProgress(n)},!1),this.xhr.onreadystatechange=()=>{if(this.xhr?.readyState===XMLHttpRequest.DONE){let e;try{e=JSON.parse(this.xhr.responseText)}catch{e={error:`Upload aborted: ${this.xhr.statusText} (HTTP ${this.xhr.status})`}}this.handleResponse(e),this.xhr=null,this.fileQueue.length>0&&this.requestToken()}};const t=new FormData;t.append("file",n),this.xhr.open("POST",`uploads/new/${e}`),this.xhr.send(t)}handleResponse(e){this.setProgress(0),this.tokenKeepAlive&&(clearInterval(this.tokenKeepAlive),this.tokenKeepAlive=null),e.error?o.M_.commit("currentUserVisibleError",e.error):e.url&&this.insertUploadUrl(e.url)}insertUploadUrl(e){const n=new URL(e,location.toString()).toString(),t=document.getElementById("input");if(!(t instanceof HTMLTextAreaElement))throw new Error("Could not find textbox in upload");const a=t.selectionStart,s=a>0?t.value.substring(0,a)+" ":"",o=t.value.substring(a),i=s+n+" ";(0,ni.update)(t,i+o),t.selectionStart=t.selectionEnd=i.length}abort(){this.fileQueue=[],this.xhr&&(this.xhr.abort(),this.xhr=null)}},fi={abort:()=>ki.abort(),initialize:()=>ki.init(),mounted:()=>ki.mounted(),unmounted:()=>ki.unmounted(),triggerUpload:e=>ki.triggerUpload(e)},bi={"mod+k":"","mod+b":"","mod+u":"","mod+i":"","mod+o":"","mod+s":"","mod+m":"","mod+r":"/rainbow"},vi={'"':'"',"'":"'","(":")","<":">","[":"]","{":"}","*":"*","`":"`","~":"~",_:"_"},wi=(0,i.pM)({name:"ChatInput",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(),a=(0,x.KR)(),s=(0,x.KR)(),l=()=>{(0,i.dY)(()=>{if(!t.value)return;const e=window.getComputedStyle(t.value),n=parseFloat(e.lineHeight)||1;t.value.style.height="",t.value.style.height=Math.ceil(t.value.scrollHeight/n)*n+"px"})},c=n=>{e.channel.pendingMessage=n.target.value,e.channel.inputHistoryPosition=0,l()},d=()=>{t.value?.blur()};return(0,i.wB)(()=>e.channel.id,()=>{s.value&&s.value.hide()}),(0,i.wB)(()=>e.channel.pendingMessage,()=>{l()}),(0,i.sV)(()=>{if(r.A.on("escapekey",d),n.state.settings.autocomplete){if(!t.value)throw new Error("ChatInput autocomplete: input element is not available");s.value=function(e){let n=0,t="",a=[];e.addEventListener("input",e=>{"autocomplete"!==e.detail&&(n=0,a=[],t="")}),u()(e).bind("tab",s=>{if(o.M_.state.isAutoCompleting)return;s.preventDefault();const i=e.value;if(0===n){if(t=i.substring(0,e.selectionStart).split(/\s/).pop()||"",0===t.length)return;if(a=gi(t,!1),0===a.length)return}const l=e.selectionStart-t.length,r=pi(String(a[n%a.length]),l),c=i.substring(e.selectionStart);e.value=i.substr(0,l)+r+c,e.selectionStart-=c.length,e.selectionEnd=e.selectionStart,e.dispatchEvent(new CustomEvent("input",{detail:"autocomplete"})),t=r,n++},"keydown");const s=[ii,li,ri,ci,ui,di],i=new ai.a(e),l=new ti.Textcomplete(i,s,{dropdown:{className:"textcomplete-menu",placement:"top"}});return l.on("show",()=>{o.M_.commit("isAutoCompleting",!0)}),l.on("hidden",()=>{o.M_.commit("isAutoCompleting",!1)}),{hide(){l.hide()},destroy(){l.destroy(),o.M_.commit("isAutoCompleting",!1)}}}(t.value)}const a=u()(t.value);let i=Object.keys(bi);!1===n.state.settings.enableRainbowHotkey&&(i=i.filter(e=>"mod+r"!==e)),a.bind(i,function(e,n){const a=bi[n];if(e.target)return"/rainbow"===a&&null!=t.value?(t.value.value.startsWith(a)||(t.value.value=`${a} ${t.value.value}`,c(e)),!1):((0,ni.wrapCursor)(e.target,a,e.target.selectionStart===e.target.selectionEnd?"":a),!1)}),a.bind(Object.keys(vi),function(e,n){if(e.target?.selectionStart!==e.target.selectionEnd)return(0,ni.wrapCursor)(e.target,n,vi[n]),!1}),a.bind(["up","down"],(a,s)=>{if(n.state.isAutoCompleting||a.target.selectionStart!==a.target.selectionEnd||!t.value)return;const o=(t.value.value.slice(void 0,t.value.selectionStart).match(/\n/g)||[]).length,i=(t.value.value.match(/\n/g)||[]).length,{channel:r}=e;if(0===r.inputHistoryPosition&&(r.inputHistory[r.inputHistoryPosition]=r.pendingMessage),"up"===s&&0===o){if(!(r.inputHistoryPosition<r.inputHistory.length-1))return;r.inputHistoryPosition++}else{if(!("down"===s&&r.inputHistoryPosition>0&&o===i))return;r.inputHistoryPosition--}return r.pendingMessage=r.inputHistory[r.inputHistoryPosition],t.value.value=r.pendingMessage,l(),!1}),n.state.serverConfiguration?.fileUpload&&fi.mounted()}),(0,i.hi)(()=>{r.A.off("escapekey",d),s.value&&(s.value.destroy(),s.value=void 0),fi.unmounted(),fi.abort()}),{store:n,input:t,uploadInput:a,onUploadInputChange:()=>{if(!a.value||!a.value.files)return;const e=Array.from(a.value.files);fi.triggerUpload(e),a.value.value=""},openFileUpload:()=>{a.value?.click()},blurInput:d,onBlur:e=>{const n=e.target;"input"===n.id&&n.classList.contains("mousetrap")||s.value&&s.value.hide()},setInputSize:l,upload:fi,getInputPlaceholder:e=>e.type===Zs.rR.CHANNEL||e.type===Zs.rR.QUERY?`Write to ${e.name}`:"",onSubmit:()=>{if(!t.value)return;if(t.value.click(),t.value.focus(),!n.state.isConnected)return!1;const a=e.channel.id,o=e.channel.pendingMessage;if(0===o.length)return!1;if(s.value&&s.value.hide(),e.channel.inputHistoryPosition=0,e.channel.pendingMessage="",t.value.value="",l(),e.channel.inputHistory[1]!==o&&e.channel.inputHistory.splice(1,0,o),e.channel.inputHistory.length>100&&e.channel.inputHistory.pop(),"/"===o[0]){const e=o.substring(1).split(" "),n=e.shift()?.toLowerCase();if(!n)return!1;if(Object.prototype.hasOwnProperty.call(mi,n)&&mi[n](e))return!1}re.A.emit("input",{target:a,text:o})},setPendingMessage:c}}}),yi=(0,q.A)(wi,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("form",{id:"form",method:"post",action:"",onSubmit:n[5]||(n[5]=(0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["prevent"]))},[n[6]||(n[6]=(0,i.Lk)("span",{id:"upload-progressbar"},null,-1)),e.store.state.settings.showInputNick?((0,i.uX)(),(0,i.CE)("span",Yo,(0,l.v_)(e.network.nick),1)):(0,i.Q3)("",!0),(0,i.Lk)("textarea",{id:"input",ref:"input",dir:"auto",class:"mousetrap",enterkeyhint:"send",value:e.channel.pendingMessage,placeholder:e.getInputPlaceholder(e.channel),"aria-label":e.getInputPlaceholder(e.channel),onInput:n[0]||(n[0]=(...n)=>e.setPendingMessage&&e.setPendingMessage(...n)),onKeypress:n[1]||(n[1]=(0,s.jR)((0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["exact","prevent"]),["enter"])),onBlur:n[2]||(n[2]=(...n)=>e.onBlur&&e.onBlur(...n))},null,40,Jo),e.store.state.serverConfiguration?.fileUpload?((0,i.uX)(),(0,i.CE)("span",{key:1,id:"upload-tooltip",class:"tooltipped tooltipped-w tooltipped-no-touch","aria-label":"Upload file",onClick:n[4]||(n[4]=(...n)=>e.openFileUpload&&e.openFileUpload(...n))},[(0,i.Lk)("input",{id:"upload-input",ref:"uploadInput",type:"file","aria-labelledby":"upload",multiple:"",onChange:n[3]||(n[3]=(...n)=>e.onUploadInputChange&&e.onUploadInputChange(...n))},null,544),(0,i.Lk)("button",{id:"upload",type:"button","aria-label":"Upload file",disabled:!e.store.state.isConnected},null,8,Go)])):(0,i.Q3)("",!0),(0,i.Lk)("span",Zo,[(0,i.Lk)("button",{id:"submit",type:"submit","aria-label":"Send message",disabled:!e.store.state.isConnected},null,8,ei)])],32)}]]),_i=["aria-label"],Ci={class:"count"},Li=["value","placeholder"],Mi={class:"names"},Ei={"~":"owner","&":"admin","!":"admin","@":"op","%":"half-op","+":"voice","":"normal"},xi=(0,i.pM)({name:"ChatUserList",components:{Username:Cs.A},props:{channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,x.KR)(""),a=(0,x.KR)(),s=(0,x.KR)(),l=(0,i.EW)(()=>n.state.settings.enhancedUserListEnabled&&e.channel.groups&&e.channel.groups.length>0),r=(0,i.EW)(()=>{if(t.value)return(0,D.filter)(t.value,e.channel.users,{pre:"<b>",post:"</b>",extract:e=>e.nick})}),c=new Map,u=e=>{if(c.has(e))return;const n=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return c.set(e,n)},d=(0,i.EW)(()=>{const n={};if(l.value)if(t.value&&r.value){const t=r.value.filter(e=>e.original.nick);for(const{name:a,users:s}of e.channel.groups??[]){n[a]??=[],u(a);for(const e of t)s.includes(e.original.nick)&&n[a].push(e)}}else for(const{name:t,users:a}of e.channel.groups??[]){n[t]??=[],u(t);for(const s of e.channel.users)a.includes(s.nick)&&n[t].push(s)}return n}),p=(0,i.EW)(()=>{const n={};if(!l.value)if(t.value&&r.value){const e=r.value;for(const t of e){const e=t.original.modes[0]||"";n[e]??=[],t.string=e+t.string,n[e].push(t)}}else for(const t of e.channel.users){const e=t.modes[0]||"";n[e]??=[],n[e].push(t)}return n}),h=(0,i.EW)(()=>l.value?d.value:p.value),g=()=>{(0,i.dY)(()=>{const e=s.value?.querySelector(".active");e?.scrollIntoView({block:"nearest",inline:"nearest"})})};return{filteredUsers:r,groupedUsers:h,hasCustomGroups:l,userSearchInput:t,activeUser:a,userlist:s,getGroupSlug:e=>c.get(e)??u(e),setUserSearchInput:e=>{t.value=e.target.value},getModeClass:e=>Ei[e],selectUser:()=>{if(!a.value||!s.value)return;const e=s.value.querySelector(".active");if(!e)return;const n=e.getBoundingClientRect(),t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0,clientX:n.left,clientY:n.top+n.height});e.dispatchEvent(t)},hoverUser:e=>{a.value=e},removeHoverUser:()=>{a.value=null},navigateUserList:(n,s)=>{n.stopImmediatePropagation(),n.preventDefault();let o=e.channel.users;if(t.value&&r.value&&(o=r.value.map(e=>e.original)),!o.length)return void(a.value=null);const i=()=>{a.value=s?o[0]:o[o.length-1],g()};if(!a.value)return void i();let l=o.indexOf(a.value);if(-1!==l){for(l+=s;l<0;)l+=o.length;for(;l>o.length-1;)l-=o.length;a.value=o[l],g()}else i()}}}}),Si=(0,q.A)(xi,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("Username");return(0,i.uX)(),(0,i.CE)("aside",{ref:"userlist",class:"userlist","aria-label":"User list for "+e.channel.name,onMouseleave:n[6]||(n[6]=(...n)=>e.removeHoverUser&&e.removeHoverUser(...n))},[(0,i.Lk)("div",Ci,[(0,i.Lk)("input",{ref:"input",value:e.userSearchInput,placeholder:e.channel.users.length+" user"+(1===e.channel.users.length?"":"s"),type:"search",class:"search","aria-label":"Search among the user list",tabindex:"-1",onInput:n[0]||(n[0]=(...n)=>e.setUserSearchInput&&e.setUserSearchInput(...n)),onKeydown:[n[1]||(n[1]=(0,s.jR)(n=>e.navigateUserList(n,-1),["up"])),n[2]||(n[2]=(0,s.jR)(n=>e.navigateUserList(n,1),["down"])),n[3]||(n[3]=(0,s.jR)(n=>e.navigateUserList(n,-10),["page-up"])),n[4]||(n[4]=(0,s.jR)(n=>e.navigateUserList(n,10),["page-down"])),n[5]||(n[5]=(0,s.jR)((...n)=>e.selectUser&&e.selectUser(...n),["enter"]))]},null,40,Li)]),(0,i.Lk)("div",Mi,[e.hasCustomGroups?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:0},(0,i.pI)(e.groupedUsers,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:"group-"+t,class:(0,l.C4)(["user-mode","custom-group","group-"+e.getGroupSlug(t)])},[n.length>0?((0,i.uX)(),(0,i.CE)("div",{key:0,class:(0,l.C4)(["custom-group-header","group-header-"+e.getGroupSlug(t)])},(0,l.v_)(t),3)):(0,i.Q3)("",!0),e.userSearchInput.length>0?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.original.nick+"-search","on-hover":e.hoverUser,active:n.original===e.activeUser,user:n.original,innerHTML:n.string},null,8,["on-hover","active","user","innerHTML"]))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:2},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.nick,"on-hover":e.hoverUser,active:n===e.activeUser,user:n},null,8,["on-hover","active","user"]))),128))],2))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(e.groupedUsers,(n,t)=>((0,i.uX)(),(0,i.CE)("div",{key:t,class:(0,l.C4)(["user-mode",e.getModeClass(String(t))])},[e.userSearchInput.length>0?((0,i.uX)(!0),(0,i.CE)(i.FK,{key:0},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.original.nick+"-search","on-hover":e.hoverUser,active:n.original===e.activeUser,user:n.original,innerHTML:n.string},null,8,["on-hover","active","user","innerHTML"]))),128)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(n,n=>((0,i.uX)(),(0,i.Wv)(c,{key:n.nick,"on-hover":e.hoverUser,active:n===e.activeUser,user:n},null,8,["on-hover","active","user"]))),128))],2))),128))])],40,_i)}]]),Ai={class:"ban-list"},Ti={class:"hostmask"},Xi={class:"banned_by"},ji={class:"banned_at"},Wi=(0,i.pM)({name:"ListBans",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,_s.A)(e)})}),Pi=(0,q.A)(Wi,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",Ai,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"hostmask"},"Banned"),(0,i.Lk)("th",{class:"banned_by"},"Banned By"),(0,i.Lk)("th",{class:"banned_at"},"Banned At")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channel.data,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.hostmask},[(0,i.Lk)("td",Ti,[(0,i.bF)(r,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Xi,(0,l.v_)(n.banned_by),1),(0,i.Lk)("td",ji,(0,l.v_)(e.localetime(n.banned_at)),1)]))),128))])])}]]),Ri={class:"invite-list"},Ii={class:"hostmask"},Ni={class:"invitened_by"},Ui={class:"invitened_at"},Fi=(0,i.pM)({name:"ListInvites",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,_s.A)(e)})}),Oi=(0,q.A)(Fi,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",Ri,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"hostmask"},"Invited"),(0,i.Lk)("th",{class:"invitened_by"},"Invited By"),(0,i.Lk)("th",{class:"invitened_at"},"Invited At")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channel.data,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.hostmask},[(0,i.Lk)("td",Ii,[(0,i.bF)(r,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Ni,(0,l.v_)(n.invited_by),1),(0,i.Lk)("td",Ui,(0,l.v_)(e.localetime(n.invited_at)),1)]))),128))])])}]]),qi={key:0},Ki={key:1,class:"channel-list"},Di={class:"channel"},Bi={class:"users"},$i={class:"topic"},Hi=(0,i.pM)({name:"ListChannels",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:e=>({channelData:e.channel.data})}),Qi=(0,q.A)(Hi,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return e.channelData.text?((0,i.uX)(),(0,i.CE)("span",qi,(0,l.v_)(e.channelData.text),1)):((0,i.uX)(),(0,i.CE)("table",Ki,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"channel"},"Channel"),(0,i.Lk)("th",{class:"users"},"Users"),(0,i.Lk)("th",{class:"topic"},"Topic")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channelData,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.channel},[(0,i.Lk)("td",Di,[(0,i.bF)(r,{network:e.network,text:n.channel},null,8,["network","text"])]),(0,i.Lk)("td",Bi,(0,l.v_)(n.num_users),1),(0,i.Lk)("td",$i,[(0,i.bF)(r,{network:e.network,text:n.topic},null,8,["network","text"])])]))),128))])]))}]]),zi={class:"ignore-list"},Vi={class:"hostmask"},Yi={class:"when"},Ji=(0,i.pM)({name:"ListIgnored",components:{ParsedMessage:Qs.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:_s.A})}),Gi=(0,q.A)(Ji,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",zi,[n[0]||(n[0]=(0,i.Lk)("thead",null,[(0,i.Lk)("tr",null,[(0,i.Lk)("th",{class:"hostmask"},"Hostmask"),(0,i.Lk)("th",{class:"when"},"Ignored At")])],-1)),(0,i.Lk)("tbody",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.channel.data,n=>((0,i.uX)(),(0,i.CE)("tr",{key:n.hostmask},[(0,i.Lk)("td",Vi,[(0,i.bF)(r,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Yi,(0,l.v_)(e.localetime(n.when)),1)]))),128))])])}]]),Zi=(0,i.pM)({name:"Chat",components:{ParsedMessage:Qs.A,MessageList:Ko,MessageListBasic:Vo,ChatInput:yi,ChatUserList:Si,SidebarToggle:wn,MessageSearchForm:so},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},isFocused:Number,focusedTime:Number},emits:["channel-changed"],setup(e,{emit:n}){const t=(0,o.Pj)(),a=(0,i.EW)(()=>t.state.settings.searchEnabled&&t.state.settings.enableEnhancedSearch?Ko:Vo),s=(0,x.KR)(a.value),l=(0,x.KR)(null),c=(0,i.EW)(()=>{switch(e.channel.special){case Zs.cL.BANLIST:return Pi;case Zs.cL.INVITELIST:return Oi;case Zs.cL.CHANNELLIST:return Qi;case Zs.cL.IGNORELIST:return Gi}}),u=()=>{n("channel-changed",e.channel),re.A.emit("open",e.channel.id),e.channel.usersOutdated&&(e.channel.usersOutdated=!1,re.A.emit("names",{target:e.channel.id}))};return(0,i.wB)(()=>e.channel,()=>{u()}),(0,i.wB)(()=>e.channel.editTopic,e=>{e&&(0,i.dY)(()=>{l.value?.focus()})}),(0,i.sV)(()=>{u(),e.channel.editTopic&&(0,i.dY)(()=>{l.value?.focus()})}),{store:t,messageList:s,MessageListType:a,topicInput:l,specialComponent:c,hideUserVisibleError:()=>{t.commit("currentUserVisibleError",null)},editTopic:()=>{e.channel.type===Zs.rR.CHANNEL&&(e.channel.editTopic=!0)},saveTopic:()=>{if(e.channel.editTopic=!1,!l.value)return;const n=l.value.value;if(e.channel.topic!==n){const t=e.channel.id,a=`/topic ${n}`;re.A.emit("input",{target:t,text:a})}},openContextMenu:n=>{r.A.emit("contextmenu:channel",{event:n,channel:e.channel,network:e.network})},openMentions:e=>{r.A.emit("mentions:toggle",{event:e})}}}}),el=(0,q.A)(Zi,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("ParsedMessage"),d=(0,i.g2)("MessageSearchForm"),p=(0,i.g2)("ChatUserList"),h=(0,i.g2)("MessageList"),g=(0,i.g2)("MessageListBasic"),m=(0,i.g2)("ChatInput");return(0,i.uX)(),(0,i.CE)("div",{id:"chat-container",class:"window","data-current-channel":e.channel.name,lang:""},[(0,i.Lk)("div",{id:"chat",class:(0,l.C4)({"hide-motd":!e.store.state.settings.motd,"time-seconds":e.store.state.settings.showSeconds,"time-12h":e.store.state.settings.use12hClock,"colored-nicks":!0})},[(0,i.Lk)("div",{id:"chan-"+e.channel.id,class:"chat-view","data-type":e.channel.type,"aria-label":e.channel.name,role:"tabpanel"},[(0,i.Lk)("div",fo,[(0,i.bF)(c),(0,i.Lk)("span",{class:"title","aria-label":"Currently open "+e.channel.type},(0,l.v_)(e.channel.name),9,bo),!0===e.channel.editTopic?((0,i.uX)(),(0,i.CE)("div",vo,[(0,i.Lk)("input",{ref:"topicInput",value:e.channel.topic,class:"topic-input",placeholder:"Set channel topic",enterkeyhint:"done",onKeyup:[n[0]||(n[0]=(0,s.jR)((...n)=>e.saveTopic&&e.saveTopic(...n),["enter"])),n[1]||(n[1]=(0,s.jR)(n=>e.channel.editTopic=!1,["esc"]))]},null,40,wo),(0,i.Lk)("span",{"aria-label":"Save topic",class:"save-topic",onClick:n[2]||(n[2]=(...n)=>e.saveTopic&&e.saveTopic(...n))},[...n[9]||(n[9]=[(0,i.Lk)("span",{type:"button","aria-label":"Save topic"},null,-1)])])])):((0,i.uX)(),(0,i.CE)("span",{key:1,title:e.channel.topic,class:(0,l.C4)({topic:!0,empty:!e.channel.topic}),onDblclick:n[3]||(n[3]=(...n)=>e.editTopic&&e.editTopic(...n))},[e.channel.topic?((0,i.uX)(),(0,i.Wv)(u,{key:0,network:e.network,text:e.channel.topic},null,8,["network","text"])):(0,i.Q3)("",!0)],42,yo)),e.store.state.settings.searchEnabled&&["channel","query"].includes(e.channel.type)?((0,i.uX)(),(0,i.Wv)(d,{key:2,network:e.network,channel:e.channel},null,8,["network","channel"])):(0,i.Q3)("",!0),(0,i.Lk)("button",{class:"mentions","aria-label":"Open your mentions",onClick:n[4]||(n[4]=(...n)=>e.openMentions&&e.openMentions(...n))}),(0,i.Lk)("button",{class:"menu","aria-label":"Open the context menu",onClick:n[5]||(n[5]=(...n)=>e.openContextMenu&&e.openContextMenu(...n))}),"channel"===e.channel.type?((0,i.uX)(),(0,i.CE)("span",_o,[(0,i.Lk)("button",{class:"rt","aria-label":"Toggle user list",onClick:n[6]||(n[6]=n=>e.store.commit("toggleUserlist"))})])):(0,i.Q3)("",!0)]),"special"===e.channel.type?((0,i.uX)(),(0,i.CE)("div",Co,[(0,i.Lk)("div",Lo,[(0,i.Lk)("div",Mo,[(0,i.Lk)("div",Eo,[((0,i.uX)(),(0,i.Wv)((0,i.$y)(e.specialComponent),{network:e.network,channel:e.channel},null,8,["network","channel"]))])])])])):((0,i.uX)(),(0,i.CE)("div",xo,[(0,i.Lk)("div",{class:(0,l.C4)(["scroll-down tooltipped tooltipped-w tooltipped-no-touch",{"scroll-down-shown":!e.channel.scrolledToBottom}]),"aria-label":"Jump to recent messages",onClick:n[7]||(n[7]=(...n)=>e.messageList.jumpToBottom&&e.messageList.jumpToBottom(...n))},[...n[10]||(n[10]=[(0,i.Lk)("div",{class:"scroll-down-arrow"},null,-1)])],2),"channel"===e.channel.type?((0,i.uX)(),(0,i.Wv)(p,{key:0,channel:e.channel},null,8,["channel"])):(0,i.Q3)("",!0),e.store.state.settings.searchEnabled&&e.store.state.settings.enableEnhancedSearch?((0,i.uX)(),(0,i.Wv)(h,{key:1,ref:"messageList",network:e.network,channel:e.channel,"is-focused":e.isFocused,"focused-time":e.focusedTime},null,8,["network","channel","is-focused","focused-time"])):((0,i.uX)(),(0,i.Wv)(g,{key:2,ref:"messageList",network:e.network,channel:e.channel,"is-focused":e.isFocused,"focused-time":e.focusedTime},null,8,["network","channel","is-focused","focused-time"]))]))],8,ko)],2),e.store.state.currentUserVisibleError?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"user-visible-error",onClick:n[8]||(n[8]=(...n)=>e.hideUserVisibleError&&e.hideUserVisibleError(...n))},(0,l.v_)(e.store.state.currentUserVisibleError),1)):(0,i.Q3)("",!0),(0,i.bF)(m,{network:e.network,channel:e.channel},null,8,["network","channel"])],8,mo)}]]),nl=(0,i.pM)({name:"RoutedChat",components:{Chat:el},setup(){const e=(0,S.lq)(),n=(0,o.Pj)(),t=(0,i.EW)(()=>{const t=parseInt(String(e.params.id||""),10);return n.getters.findChannel(t)}),a=()=>{t.value&&n.commit("activeChannel",t.value)};return(0,i.wB)(t,()=>{a()}),(0,i.sV)(()=>{a()}),{route:e,activeChannel:t,channelChanged:e=>{const t=e.id,a=n.getters.findChannel(t);a?.channel&&(a.channel.unread=0,a.channel.highlight=0)}}}}),tl=(0,q.A)(nl,[["render",function(e,n,t,a,s,o){const l=(0,i.g2)("Chat");return e.activeChannel?((0,i.uX)(),(0,i.Wv)(l,{key:0,network:e.activeChannel.network,channel:e.activeChannel.channel,"is-focused":parseInt(String(e.route.query.focused),10),"focused-time":parseInt(String(e.route.query.focusedTime),10),onChannelChanged:e.channelChanged},null,8,["network","channel","is-focused","focused-time","onChannelChanged"])):(0,i.Q3)("",!0)}]]),al={class:"opt"},sl=["checked"],ol={class:"opt"},il=["checked"],ll={class:"opt"},rl=["checked"],cl={class:"opt"},ul=["checked"],dl={role:"group",style:{"padding-left":"1.5rem"}},pl={class:"opt"},hl=["disabled","checked"],gl={class:"opt"},ml=["disabled","checked"],kl={class:"opt"},fl=["checked"],bl={class:"opt"},vl=["checked"],wl={class:"opt"},yl=["checked"],_l={role:"group","aria-labelledby":"label-status-messages"},Cl={class:"opt"},Ll=["checked"],Ml={class:"opt"},El=["checked"],xl={class:"opt"},Sl=["checked"],Al={class:"opt"},Tl=["checked"],Xl={class:"opt"},jl=["checked"],Wl={class:"opt"},Pl=["checked"],Rl={class:"opt"},Il=["checked"],Nl={class:"opt"},Ul=["checked"],Fl={class:"opt"},Ol=["checked"],ql={class:"opt"},Kl=["checked"],Dl={class:"opt"},Bl=["checked"],$l={class:"opt"},Hl=["checked"],Ql={class:"opt"},zl=["value"],Vl=["value"],Yl=["value"],Jl=["value"],Gl=(0,i.pM)({name:"AppearanceSettings",setup:()=>({store:(0,o.Pj)()})}),Zl=(0,q.A)(Gl,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",null,[n[29]||(n[29]=(0,i.Lk)("h2",null,"Messages",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",al,[(0,i.Lk)("input",{checked:e.store.state.settings.motd,type:"checkbox",name:"motd"},null,8,sl),n[0]||(n[0]=(0,i.eW)(" Show ",-1)),n[1]||(n[1]=(0,i.Lk)("abbr",{title:"Message Of The Day"},"MOTD",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",ol,[(0,i.Lk)("input",{checked:e.store.state.settings.showSeconds,type:"checkbox",name:"showSeconds"},null,8,il),n[2]||(n[2]=(0,i.eW)(" Include seconds in timestamp ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",ll,[(0,i.Lk)("input",{checked:e.store.state.settings.use12hClock,type:"checkbox",name:"use12hClock"},null,8,rl),n[3]||(n[3]=(0,i.eW)(" Use 12-hour timestamps ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",cl,[(0,i.Lk)("input",{checked:e.store.state.settings.beautifyBridgedMessages,type:"checkbox",name:"beautifyBridgedMessages"},null,8,ul),n[4]||(n[4]=(0,i.eW)(" Beautify supported bridged shoutbox messages ",-1))]),(0,i.Lk)("div",dl,[(0,i.Lk)("label",pl,[(0,i.Lk)("input",{disabled:!e.store.state.settings.beautifyBridgedMessages||void 0,checked:"parentheses"===e.store.state.settings.bridgedMessageNicksStyle,type:"radio",name:"bridgedMessageNicksStyle",value:"parentheses"},null,8,hl),n[5]||(n[5]=(0,i.eW)(" Show bridged nicknames in parentheses ",-1)),n[6]||(n[6]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"example: (nick)"},[(0,i.Lk)("button",{class:"extra-help"})],-1))]),(0,i.Lk)("label",gl,[(0,i.Lk)("input",{disabled:!e.store.state.settings.beautifyBridgedMessages||void 0,checked:"normal"===e.store.state.settings.bridgedMessageNicksStyle,type:"radio",name:"bridgedMessageNicksStyle",value:"normal"},null,8,ml),n[7]||(n[7]=(0,i.eW)(" Show bridged nicknames like a normal user ",-1)),n[8]||(n[8]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"example: nick"},[(0,i.Lk)("button",{class:"extra-help"})],-1))])])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",kl,[(0,i.Lk)("input",{checked:e.store.state.settings.disableMutedUnread,type:"checkbox",name:"disableMutedUnread"},null,8,fl),n[9]||(n[9]=(0,i.eW)(" Don't show unread badges on muted channels ",-1))])]),e.store.state.serverConfiguration?.prefetch?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[12]||(n[12]=(0,i.Lk)("h2",null,"Link previews",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",bl,[(0,i.Lk)("input",{checked:e.store.state.settings.media,type:"checkbox",name:"media"},null,8,vl),n[10]||(n[10]=(0,i.eW)(" Auto-expand media ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",wl,[(0,i.Lk)("input",{checked:e.store.state.settings.links,type:"checkbox",name:"links"},null,8,yl),n[11]||(n[11]=(0,i.eW)(" Auto-expand websites ",-1))])])],64)):(0,i.Q3)("",!0),n[30]||(n[30]=(0,i.Lk)("h2",{id:"label-status-messages"},[(0,i.eW)(" Status messages "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"Joins, parts, quits, kicks, nick changes, and mode changes"},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("div",_l,[(0,i.Lk)("label",Cl,[(0,i.Lk)("input",{checked:"shown"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"shown"},null,8,Ll),n[13]||(n[13]=(0,i.eW)(" Show all status messages individually ",-1))]),(0,i.Lk)("label",Ml,[(0,i.Lk)("input",{checked:"condensed"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"condensed"},null,8,El),n[14]||(n[14]=(0,i.eW)(" Condense status messages together ",-1))]),(0,i.Lk)("label",xl,[(0,i.Lk)("input",{checked:"hidden"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"hidden"},null,8,Sl),n[15]||(n[15]=(0,i.eW)(" Hide all status messages ",-1))])]),n[31]||(n[31]=(0,i.Lk)("h2",null,"Layout",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",Al,[(0,i.Lk)("input",{checked:e.store.state.settings.enhancedUserListEnabled,type:"checkbox",name:"enhancedUserListEnabled"},null,8,Tl),n[16]||(n[16]=(0,i.eW)(" Use enhanced user list when available ",-1))]),(0,i.Lk)("label",Xl,[(0,i.Lk)("input",{checked:e.store.state.settings.enhancedContextMenuEnabled,type:"checkbox",name:"enhancedContextMenuEnabled"},null,8,jl),n[17]||(n[17]=(0,i.eW)(" Use enhanced context menu ",-1))]),(0,i.Lk)("label",Wl,[(0,i.Lk)("input",{checked:e.store.state.settings.showInputNick,type:"checkbox",name:"showInputNick"},null,8,Pl),n[18]||(n[18]=(0,i.eW)(" Show current nick in the input box ",-1))]),(0,i.Lk)("label",Rl,[(0,i.Lk)("input",{checked:e.store.state.settings.jumptoEabled,type:"checkbox",name:"jumptoEabled"},null,8,Il),n[19]||(n[19]=(0,i.eW)(' Enable "Jump to" in sidebar ',-1))]),(0,i.Lk)("label",Nl,[(0,i.Lk)("input",{checked:e.store.state.settings.filterdmsEnabled,type:"checkbox",name:"filterdmsEnabled"},null,8,Ul),n[20]||(n[20]=(0,i.eW)(' Enable "Filter DMs" in DM section ',-1))]),(0,i.Lk)("label",Fl,[(0,i.Lk)("input",{checked:e.store.state.settings.showAllDMs,type:"checkbox",name:"showAllDMs"},null,8,Ol),n[21]||(n[21]=(0,i.eW)(" Always show all DM channels in sidebar ",-1))]),(0,i.Lk)("label",ql,[(0,i.Lk)("input",{checked:e.store.state.settings.compactSidebar,type:"checkbox",name:"compactSidebar"},null,8,Kl),n[22]||(n[22]=(0,i.eW)(" Use compact sidebar on Desktop ",-1))])]),n[32]||(n[32]=(0,i.Lk)("h2",null,"Visual Aids",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",Dl,[(0,i.Lk)("input",{checked:e.store.state.settings.coloredNicks,type:"checkbox",name:"coloredNicks"},null,8,Bl),n[23]||(n[23]=(0,i.eW)(" Enable colored nicknames ",-1))]),(0,i.Lk)("label",$l,[(0,i.Lk)("input",{checked:e.store.state.settings.autocomplete,type:"checkbox",name:"autocomplete"},null,8,Hl),n[24]||(n[24]=(0,i.eW)(" Enable autocomplete ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Ql,[n[25]||(n[25]=(0,i.Lk)("label",{for:"nickPostfix",class:"opt"},[(0,i.eW)(" Nick autocomplete postfix "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"Nick autocomplete postfix (for example a comma)"},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("input",{id:"nickPostfix",value:e.store.state.settings.nickPostfix,type:"text",name:"nickPostfix",class:"input",placeholder:"Nick autocomplete postfix (e.g. ', ')"},null,8,zl)])]),n[33]||(n[33]=(0,i.Lk)("h2",null,"Theme",-1)),(0,i.Lk)("div",null,[n[26]||(n[26]=(0,i.Lk)("label",{for:"theme-select",class:"sr-only"},"Theme",-1)),(0,i.Lk)("select",{id:"theme-select",value:e.store.state.settings.theme,name:"theme",class:"input"},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.store.state.serverConfiguration?.themes,e=>((0,i.uX)(),(0,i.CE)("option",{key:e.name,value:e.name},(0,l.v_)(e.displayName),9,Yl))),128))],8,Vl)]),(0,i.Lk)("div",null,[n[27]||(n[27]=(0,i.Lk)("h2",null,"Custom Stylesheet",-1)),n[28]||(n[28]=(0,i.Lk)("label",{for:"user-specified-css-input",class:"sr-only"}," Custom stylesheet. You can override any style with CSS here. ",-1)),(0,i.Lk)("textarea",{id:"user-specified-css-input",value:e.store.state.settings.userStyles,class:"input",name:"userStyles",placeholder:"/* You can override any style with CSS here */"},null,8,Jl)])])}]]),er={key:0},nr={key:1},tr={class:"opt"},ar=["checked"],sr={key:2},or={class:"opt"},ir=["checked"],lr={key:3},rr={class:"opt"},cr=["checked"],ur={key:4},dr={class:"opt"},pr=["checked"],hr={key:0,class:"settings-sync-panel"},gr={key:1,class:"settings-sync-panel"},mr={key:5},kr={class:"opt"},fr=["value"];let br=null;window.addEventListener("beforeinstallprompt",e=>{e.preventDefault(),br=e});const vr=(0,i.pM)({name:"GeneralSettings",setup(){const e=(0,o.Pj)(),n=(0,x.KR)(!1),t=(0,i.EW)(()=>null!==br);return(0,i.sV)(()=>{n.value=!!window.navigator.registerProtocolHandler&&!e.state.serverConfiguration?.lockNetwork}),{store:e,canRegisterProtocol:n,hasInstallPromptEvent:t,nativeInstallPrompt:()=>{br&&(br.prompt().catch(e=>{console.error(e)}),br=null)},onForceSyncClick:()=>{e.dispatch("settings/syncAll",!0).catch(e=>{console.error(e)}),e.dispatch("settings/update",{name:"syncSettings",value:!0,sync:!0}).catch(e=>{console.error(e)})},registerProtocol:()=>{const e=document.location.origin+document.location.pathname+"?uri=%s";window.navigator.registerProtocolHandler("irc",e),window.navigator.registerProtocolHandler("ircs",e)}}}}),wr=(0,q.A)(vr,[["render",function(e,n,t,a,o,l){return(0,i.uX)(),(0,i.CE)("div",null,[e.canRegisterProtocol||e.hasInstallPromptEvent?((0,i.uX)(),(0,i.CE)("div",er,[n[3]||(n[3]=(0,i.Lk)("h2",null,"Native app",-1)),e.hasInstallPromptEvent?((0,i.uX)(),(0,i.CE)("button",{key:0,type:"button",class:"btn",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.nativeInstallPrompt&&e.nativeInstallPrompt(...n),["prevent"]))}," Add The Lounge to Home screen ")):(0,i.Q3)("",!0),e.canRegisterProtocol?((0,i.uX)(),(0,i.CE)("button",{key:1,type:"button",class:"btn",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.registerProtocol&&e.registerProtocol(...n),["prevent"]))}," Open irc:// URLs with The Lounge ")):(0,i.Q3)("",!0)])):(0,i.Q3)("",!0),e.store.state.serverConfiguration?.fileUpload?((0,i.uX)(),(0,i.CE)("div",nr,[n[6]||(n[6]=(0,i.Lk)("h2",null,"File uploads",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",tr,[(0,i.Lk)("input",{checked:e.store.state.settings.uploadCanvas,type:"checkbox",name:"uploadCanvas"},null,8,ar),n[4]||(n[4]=(0,i.eW)(" Attempt to remove metadata from images before uploading ",-1)),n[5]||(n[5]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"This option renders the image into a canvas element to remove metadata from the image.\n\tThis may break orientation if your browser does not support that."},[(0,i.Lk)("button",{class:"extra-help"})],-1))])])])):(0,i.Q3)("",!0),e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",sr,[n[8]||(n[8]=(0,i.Lk)("h2",null,"Enhanced search",-1)),(0,i.Lk)("label",or,[(0,i.Lk)("input",{checked:e.store.state.settings.enableEnhancedSearch,type:"checkbox",name:"enableEnhancedSearch"},null,8,ir),n[7]||(n[7]=(0,i.eW)(" Enable enhanced search with 'Jump to message' ",-1))])])):(0,i.Q3)("",!0),e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",lr,[n[11]||(n[11]=(0,i.Lk)("h2",null,"Input",-1)),(0,i.Lk)("label",rr,[(0,i.Lk)("input",{checked:e.store.state.settings.enableRainbowHotkey,type:"checkbox",name:"enableRainbowHotkey"},null,8,cr),n[9]||(n[9]=(0,i.eW)(" Enable rainbow messages with 'Ctrl+R' hotkey ",-1)),n[10]||(n[10]=(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"You can still use rainbow text with '/rainbow' or '/rgb'"},[(0,i.Lk)("button",{class:"extra-help"})],-1))])])):(0,i.Q3)("",!0),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",ur,[n[16]||(n[16]=(0,i.Lk)("h2",null,"Settings synchronisation",-1)),(0,i.Lk)("label",dr,[(0,i.Lk)("input",{checked:e.store.state.settings.syncSettings,type:"checkbox",name:"syncSettings"},null,8,pr),n[12]||(n[12]=(0,i.eW)(" Synchronize settings with other clients ",-1))]),e.store.state.settings.syncSettings?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.store.state.serverHasSettings?((0,i.uX)(),(0,i.CE)("div",hr,[n[13]||(n[13]=(0,i.Lk)("p",null,[(0,i.Lk)("strong",null,"Warning:"),(0,i.eW)(" Checking this box will override the settings of this client with those stored on the server. ")],-1)),n[14]||(n[14]=(0,i.Lk)("p",null," Use the button below to enable synchronization, and override any settings already synced to the server. ",-1)),(0,i.Lk)("button",{type:"button",class:"btn btn-small",onClick:n[2]||(n[2]=(...n)=>e.onForceSyncClick&&e.onForceSyncClick(...n))}," Sync settings and enable ")])):((0,i.uX)(),(0,i.CE)("div",gr,[...n[15]||(n[15]=[(0,i.Lk)("p",null,[(0,i.Lk)("strong",null,"Warning:"),(0,i.eW)(" No settings have been synced before. Enabling this will sync all settings of this client as the base for other clients. ")],-1)])]))],64))])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",mr,[n[18]||(n[18]=(0,i.Lk)("h2",null,"Automatic away message",-1)),(0,i.Lk)("label",kr,[n[17]||(n[17]=(0,i.Lk)("label",{for:"awayMessage",class:"sr-only"},"Automatic away message",-1)),(0,i.Lk)("input",{id:"awayMessage",value:e.store.state.settings.awayMessage,type:"text",name:"awayMessage",class:"input",placeholder:"Away message if The Lounge is not open"},null,8,fr)])]))])}]]),yr={key:0,id:"change-password",role:"group","aria-labelledby":"label-change-password"},_r={class:"password-container"},Cr=["type"],Lr={class:"password-container"},Mr=["type"],Er={class:"password-container"},xr=["type"],Sr={key:0,class:"feedback success"},Ar={key:1,class:"feedback error"},Tr={key:1,class:"session-list",role:"group"},Xr={key:2},jr={key:3},Wr={class:"session-item"},Pr={class:"session-item-info"},Rr=["href"],Ir={key:0,class:"session-usage"},Nr={key:1,class:"session-usage"},Ur={class:"session-item-btn"},Fr={reload(){window.location.reload()}};class Or{static signout(){h.A.clear(),Fr.reload()}}const qr=(0,i.pM)({name:"Session",props:{session:{type:Object,required:!0}},setup:e=>({lastUse:(0,i.EW)(()=>(0,_s.A)(e.session.lastUse)),signOut:()=>{e.session.current?(re.A.emit("sign-out"),Or.signout()):re.A.emit("sign-out",e.session.token)}})}),Kr=(0,q.A)(qr,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("div",Wr,[(0,i.Lk)("div",Pr,[(0,i.Lk)("strong",null,(0,l.v_)(e.session.agent),1),(0,i.Lk)("a",{href:"https://ipinfo.io/"+e.session.ip,target:"_blank",rel:"noopener"},(0,l.v_)(e.session.ip),9,Rr),e.session.active>1?((0,i.uX)(),(0,i.CE)("p",Ir," Active in "+(0,l.v_)(e.session.active)+" browsers ",1)):e.session.current||e.session.active?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("p",Nr,[n[1]||(n[1]=(0,i.eW)(" Last used on ",-1)),(0,i.Lk)("time",null,(0,l.v_)(e.lastUse),1)]))]),(0,i.Lk)("div",Ur,[(0,i.Lk)("button",{class:"btn",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.signOut&&e.signOut(...n),["prevent"]))},[e.session.current?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)("Sign out")],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)("Revoke")],64))])])])}]]),Dr=(0,i.pM)({name:"UserSettings",components:{RevealPassword:pe,Session:Kr},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(),t=(0,x.KR)(""),a=(0,x.KR)(""),s=(0,x.KR)(""),l=(0,i.EW)(()=>e.state.sessions.find(e=>e.current)),r=(0,i.EW)(()=>e.state.sessions.filter(e=>!e.current&&e.active>0)),c=(0,i.EW)(()=>e.state.sessions.filter(e=>!e.current&&!e.active));return(0,i.sV)(()=>{re.A.emit("sessions:get")}),{store:e,passwordChangeStatus:n,passwordErrors:{missing_fields:"Please fill in all fields",password_mismatch:"Both new password fields must match",password_incorrect:"The current password field does not match your account password",update_failed:"Failed to update your password"},currentSession:l,activeSessions:r,otherSessions:c,changePassword:()=>{const e={old_password:t.value,new_password:a.value,verify_password:s.value};e.old_password&&e.new_password&&e.verify_password?e.new_password===e.verify_password?(re.A.once("change-password",e=>{n.value=e}),re.A.emit("change-password",e)):n.value={success:!1,error:"password_mismatch"}:n.value={success:!1,error:"missing_fields"}},old_password:t,new_password:a,verify_password:s}}}),Br=(0,q.A)(Dr,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("RevealPassword"),u=(0,i.g2)("Session"),d=(0,i.g2)("session;"),p=(0,i.g2)("session");return(0,i.uX)(),(0,i.CE)("div",null,[e.store.state.serverConfiguration?.public||e.store.state.serverConfiguration?.ldapEnabled?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",yr,[n[7]||(n[7]=(0,i.Lk)("h2",{id:"label-change-password"},"Change password",-1)),(0,i.Lk)("div",_r,[n[4]||(n[4]=(0,i.Lk)("label",{for:"current-password",class:"sr-only"}," Enter current password ",-1)),(0,i.bF)(c,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"current-password","onUpdate:modelValue":n[0]||(n[0]=n=>e.old_password=n),autocomplete:"current-password",type:t.isVisible?"text":"password",name:"old_password",class:"input",placeholder:"Enter current password"},null,8,Cr),[[s.hp,e.old_password]])]),_:1})]),(0,i.Lk)("div",Lr,[n[5]||(n[5]=(0,i.Lk)("label",{for:"new-password",class:"sr-only"}," Enter desired new password ",-1)),(0,i.bF)(c,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"new-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.new_password=n),type:t.isVisible?"text":"password",name:"new_password",autocomplete:"new-password",class:"input",placeholder:"Enter desired new password"},null,8,Mr),[[s.hp,e.new_password]])]),_:1})]),(0,i.Lk)("div",Er,[n[6]||(n[6]=(0,i.Lk)("label",{for:"new-password-verify",class:"sr-only"}," Repeat new password ",-1)),(0,i.bF)(c,null,{default:(0,i.k6)(t=>[(0,i.bo)((0,i.Lk)("input",{id:"new-password-verify","onUpdate:modelValue":n[2]||(n[2]=n=>e.verify_password=n),type:t.isVisible?"text":"password",name:"verify_password",autocomplete:"new-password",class:"input",placeholder:"Repeat new password"},null,8,xr),[[s.hp,e.verify_password]])]),_:1})]),e.passwordChangeStatus&&e.passwordChangeStatus.success?((0,i.uX)(),(0,i.CE)("div",Sr," Successfully updated your password ")):e.passwordChangeStatus&&e.passwordChangeStatus.error?((0,i.uX)(),(0,i.CE)("div",Ar,(0,l.v_)(e.passwordErrors[e.passwordChangeStatus.error]),1)):(0,i.Q3)("",!0),(0,i.Lk)("div",null,[(0,i.Lk)("button",{type:"submit",class:"btn",onClick:n[3]||(n[3]=(0,s.D$)((...n)=>e.changePassword&&e.changePassword(...n),["prevent"]))}," Change password ")])])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",Tr,[n[10]||(n[10]=(0,i.Lk)("h2",null,"Sessions",-1)),n[11]||(n[11]=(0,i.Lk)("h3",null,"Current session",-1)),e.currentSession?((0,i.uX)(),(0,i.Wv)(u,{key:0,session:e.currentSession},null,8,["session"])):(0,i.Q3)("",!0),e.activeSessions.length>0?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[n[8]||(n[8]=(0,i.Lk)("h3",null,"active sessions",-1)),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.activeSessions,e=>((0,i.uX)(),(0,i.Wv)(d,{key:e.token,session:e},null,8,["session"]))),128))],64)):(0,i.Q3)("",!0),n[12]||(n[12]=(0,i.Lk)("h3",null,"other sessions",-1)),0===e.store.state.sessions.length?((0,i.uX)(),(0,i.CE)("p",Xr,"loadingโฆ")):0===e.otherSessions.length?((0,i.uX)(),(0,i.CE)("p",jr,[...n[9]||(n[9]=[(0,i.Lk)("em",null,"you are not currently logged in to any other device.",-1)])])):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:4},(0,i.pI)(e.otherSessions,e=>((0,i.uX)(),(0,i.Wv)(p,{key:e.token,session:e},null,8,["session"]))),128))]))])}]]),$r=["disabled"],Hr={key:0,class:"error"},Qr={key:1,class:"error"},zr={class:"opt"},Vr=["checked","disabled"],Yr={key:0,class:"error"},Jr={key:1,id:"warnBlockedDesktopNotifications",class:"error"},Gr={key:2,id:"warnBlockedDesktopNotifications",class:"error"},Zr={class:"opt"},ec=["checked"],nc={class:"opt"},tc={class:"opt"},ac=["checked"],sc={key:1},oc={class:"opt"},ic=["value"],lc={key:2},rc={class:"opt"},cc=["value"],uc=function(){o.M_.commit("pushNotificationState","loading"),navigator.serviceWorker.ready.then(e=>e.pushManager.getSubscription().then(n=>n?(re.A.emit("push:unregister"),n.unsubscribe().then(e=>{o.M_.commit("pushNotificationState",e?"supported":"unsupported")})):e.pushManager.subscribe({applicationServerKey:o.M_.state.serverConfiguration?.applicationServerKey,userVisibleOnly:!0}).then(e=>{re.A.emit("push:register",e.toJSON()),o.M_.commit("pushNotificationState","subscribed"),o.M_.commit("refreshDesktopNotificationState")}))).catch(e=>{o.M_.commit("pushNotificationState","unsupported"),o.M_.commit("refreshDesktopNotificationState"),console.error(e)})};re.A.once("push:issubscribed",function(e){"https:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname?"serviceWorker"in navigator&&navigator.serviceWorker.register("service-worker.js").then(n=>{if(o.M_.commit("hasServiceWorker"),n.pushManager)return n.pushManager.getSubscription().then(n=>{n&&!1===e?n.unsubscribe().then(e=>{o.M_.commit("pushNotificationState",e?"supported":"unsupported")}):o.M_.commit("pushNotificationState",n?"subscribed":"supported")})}).catch(e=>{o.M_.commit("pushNotificationState","unsupported"),console.error(e)}):o.M_.commit("pushNotificationState","nohttps")});const dc=(0,i.pM)({name:"NotificationSettings",setup(){const e=(0,o.Pj)();return{isIOS:(0,i.EW)(()=>["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document),store:e,playNotification:()=>{const e=new Audio;e.src="audio/pop.wav",e.play()},onPushButtonClick:()=>{uc()}}}}),pc=(0,q.A)(dc,[["render",function(e,n,t,a,o,l){return(0,i.uX)(),(0,i.CE)("div",null,[e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[4]||(n[4]=(0,i.Lk)("h2",null,"Push Notifications",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("button",{id:"pushNotifications",type:"button",class:"btn",disabled:"supported"!==e.store.state.pushNotificationState&&"subscribed"!==e.store.state.pushNotificationState,onClick:n[0]||(n[0]=(...n)=>e.onPushButtonClick&&e.onPushButtonClick(...n))},["subscribed"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" Unsubscribe from push notifications ")],64)):"loading"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)(" Loadingโฆ ")],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:2},[(0,i.eW)(" Subscribe to push notifications ")],64))],8,$r),"nohttps"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)("div",Hr,[...n[2]||(n[2]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Push notifications are only supported over HTTPS connections. ",-1)])])):(0,i.Q3)("",!0),"unsupported"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)("div",Qr,[...n[3]||(n[3]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": ",-1),(0,i.Lk)("span",null,"Push notifications are not supported by your browser.",-1)])])):(0,i.Q3)("",!0)])],64)),n[14]||(n[14]=(0,i.Lk)("h2",null,"Browser Notifications",-1)),(0,i.Lk)("div",null,[(0,i.Lk)("label",zr,[(0,i.Lk)("input",{id:"desktopNotifications",checked:e.store.state.settings.desktopNotifications,disabled:"nohttps"===e.store.state.desktopNotificationState,type:"checkbox",name:"desktopNotifications"},null,8,Vr),n[8]||(n[8]=(0,i.eW)(" Enable browser notifications",-1)),n[9]||(n[9]=(0,i.Lk)("br",null,null,-1)),"unsupported"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Yr,[...n[5]||(n[5]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are not supported by your browser. ",-1)])])):(0,i.Q3)("",!0),"nohttps"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Jr,[...n[6]||(n[6]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are only supported over HTTPS connections. ",-1)])])):(0,i.Q3)("",!0),"blocked"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Gr,[...n[7]||(n[7]=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are blocked by your browser. ",-1)])])):(0,i.Q3)("",!0)])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Zr,[(0,i.Lk)("input",{checked:e.store.state.settings.notification,type:"checkbox",name:"notification"},null,8,ec),n[10]||(n[10]=(0,i.eW)(" Enable notification sound ",-1))])]),(0,i.Lk)("div",null,[(0,i.Lk)("div",nc,[(0,i.Lk)("button",{id:"play",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.playNotification&&e.playNotification(...n),["prevent"]))},"Play sound")])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",tc,[(0,i.Lk)("input",{checked:e.store.state.settings.notifyAllMessages,type:"checkbox",name:"notifyAllMessages"},null,8,ac),n[11]||(n[11]=(0,i.eW)(" Enable notification for all messages ",-1))])]),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",sc,[(0,i.Lk)("label",oc,[n[12]||(n[12]=(0,i.Lk)("label",{for:"highlights",class:"opt"},[(0,i.eW)(" Custom highlights "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"If a message contains any of these comma-separated\nexpressions, it will trigger a highlight."},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("input",{id:"highlights",value:e.store.state.settings.highlights,type:"text",name:"highlights",class:"input",autocomplete:"off",placeholder:"Comma-separated, e.g.: word, some more words, anotherword"},null,8,ic)])])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",lc,[(0,i.Lk)("label",rc,[n[13]||(n[13]=(0,i.Lk)("label",{for:"highlightExceptions",class:"opt"},[(0,i.eW)(" Highlight exceptions "),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-delay","aria-label":"If a message contains any of these comma-separated\nexpressions, it will not trigger a highlight even if it contains\nyour nickname or expressions defined in custom highlights."},[(0,i.Lk)("button",{class:"extra-help"})])],-1)),(0,i.Lk)("input",{id:"highlightExceptions",value:e.store.state.settings.highlightExceptions,type:"text",name:"highlightExceptions",class:"input",autocomplete:"off",placeholder:"Comma-separated, e.g.: word, some more words, anotherword"},null,8,cc)])]))])}]]),hc=(0,S.aE)({history:(0,S.Bt)(),routes:[{name:"SignIn",path:"/sign-in",component:ge,beforeEnter(e,n,t){o.M_.state.appLoaded?t(!1):t()}},{name:"Connect",path:"/connect",component:Ln,props:e=>({queryParams:e.query})},{path:"/settings",component:Nn,children:[{name:"General",path:"",component:wr},{name:"Appearance",path:"appearance",component:Zl},{name:"Account",path:"account",component:Br,props:!0},{name:"Notifications",path:"notifications",component:pc}]},{name:"Help",path:"/help",component:Ra},{name:"Changelog",path:"/changelog",component:Ba},{name:"NetworkEdit",path:"/edit-network/:uuid",component:Ha},{name:"RoutedChat",path:"/chan-:id",component:tl},{name:"SearchResults",path:"/chan-:id/search",component:go}]});async function gc(e,n={},t={}){hc.currentRoute.value.name?await hc.push({name:e,params:n,query:t}):await hc.replace({name:e,params:n,query:t}).catch(()=>{})}function mc(e,n,t){const a={};n&&(a.focused=n),t&&(a.focusedTime=t),gc("RoutedChat",{id:e.id},a)}hc.beforeEach((e,n,t)=>{o.M_.state.appLoaded||"SignIn"===e.name?t():o.M_.watch(e=>e.appLoaded,()=>t())}),hc.beforeEach(e=>!(!e.matched.length||"RoutedChat"===e.name&&!o.M_.getters.findChannel(Number(e.params.id))||"NetworkEdit"===e.name&&!o.M_.getters.findNetwork(String(e.params.uuid)))),hc.afterEach(e=>{if(o.M_.state.appLoaded&&window.innerWidth<=a.mobileViewportPixels&&o.M_.commit("sidebarOpen",!1),o.M_.state.activeChannel){const n=o.M_.state.activeChannel.channel;"RoutedChat"!==e.name&&o.M_.commit("activeChannel",void 0),n.messages?.length>0&&(n.firstUnread=n.messages[n.messages.length-1].id),o.M_.state.settings.searchEnabled&&o.M_.state.settings.enableEnhancedSearch||n.messages?.length>100&&(n.messages.splice(0,n.messages.length-100),n.moreHistoryAvailable=!0)}}),"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("message",e=>{if(e.data&&"open"===e.data.type){const n=parseInt(e.data.channel.substring(5),10),t=o.M_.getters.findChannel(n);t&&mc(t.channel)}});const kc=(0,i.pM)({name:"ChannelWrapper",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},active:Boolean,isFiltering:Boolean},setup(e){const n=(0,o.Pj)();return{activeChannel:(0,i.EW)(()=>n.state.activeChannel),isChannelVisible:(0,i.EW)(()=>e.isFiltering||!te(e.network,e.channel)),getAriaLabel:()=>{const n=[],t=e.channel.type;return e.channel.unread>0&&(e.channel.unread>1?n.push(`${e.channel.unread} unread messages`):n.push(`${e.channel.unread} unread message`)),e.channel.highlight>0&&(e.channel.highlight>1?n.push(`${e.channel.highlight} mentions`):n.push(`${e.channel.highlight} mention`)),`${t}: ${e.channel.name} ${n.length?`(${n.join(", ")})`:""}`},click:()=>{e.isFiltering||mc(e.channel)},openContextMenu:n=>{r.A.emit("contextmenu:channel",{event:n,channel:e.channel,network:e.network})}}}}),fc=(0,q.A)(kc,[["render",function(e,n,t,a,o,r){return e.isChannelVisible?((0,i.uX)(),(0,i.CE)("div",{key:0,ref:"element",class:(0,l.C4)(["channel-list-item",{active:e.active},{"parted-channel":"channel"===e.channel.type&&0===e.channel.state},{"has-draft":e.channel.pendingMessage},{"has-unread":e.channel.unread},{"has-highlight":e.channel.highlight},{"not-secure":"lobby"===e.channel.type&&e.network.status.connected&&!e.network.status.secure},{"not-connected":"lobby"===e.channel.type&&!e.network.status.connected},{"is-muted":e.channel.muted}]),"aria-label":e.getAriaLabel(),title:e.getAriaLabel(),"data-name":e.channel.name,"data-type":e.channel.type,"aria-controls":"#chan-"+e.channel.id,"aria-selected":e.active,style:(0,l.Tr)(e.channel.closed?{transition:"none",opacity:.4}:void 0),role:"tab",onClick:n[0]||(n[0]=(...n)=>e.click&&e.click(...n)),onContextmenu:n[1]||(n[1]=(0,s.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))},[(0,i.RG)(e.$slots,"default",{network:e.network,channel:e.channel,activeChannel:e.activeChannel})],46,ne)):(0,i.Q3)("",!0)}]]),bc=(0,i.pM)({name:"Channel",components:{ChannelWrapper:fc},props:{network:{type:Object,required:!0},isJoinChannelShown:Boolean,active:Boolean,isFiltering:Boolean},emits:["toggle-join-channel"],setup(e){const n=(0,i.EW)(()=>e.network.channels[0]),t=(0,i.EW)(()=>e.isJoinChannelShown?"Cancel":"Join a channelโฆ"),a=(0,i.EW)(()=>ee(n.value.unread));return{channel:n,joinChannelLabel:t,unreadCount:a,onCollapseClick:()=>{Z(e.network,!e.network.isCollapsed)},getExpandLabel:e=>e.isCollapsed?"Expand":"Collapse"}}}),vc=(0,q.A)(bc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("ChannelWrapper");return(0,i.uX)(),(0,i.Wv)(c,(0,i.v6)(e.$props,{channel:e.channel}),{default:(0,i.k6)(()=>[e.network.channels.length>1?((0,i.uX)(),(0,i.CE)("button",{key:0,"aria-controls":"network-"+e.network.uuid,"aria-label":e.getExpandLabel(e.network),"aria-expanded":!e.network.isCollapsed,class:"collapse-network",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.onCollapseClick&&e.onCollapseClick(...n),["stop"]))},[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"collapse-network-icon"},null,-1)])],8,$)):((0,i.uX)(),(0,i.CE)("span",H)),(0,i.Lk)("div",Q,[(0,i.Lk)("span",{title:e.channel.name,class:"name"},(0,l.v_)(e.channel.name),9,z),e.network.status.connected&&!e.network.status.secure?((0,i.uX)(),(0,i.CE)("span",V,[...n[3]||(n[3]=[(0,i.Lk)("span",{class:"not-secure-icon"},null,-1)])])):(0,i.Q3)("",!0),e.network.status.connected?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("span",Y,[...n[4]||(n[4]=[(0,i.Lk)("span",{class:"not-connected-icon"},null,-1)])])),e.channel.unread?((0,i.uX)(),(0,i.CE)("span",{key:2,class:(0,l.C4)([{highlight:e.channel.highlight},"badge"])},(0,l.v_)(e.unreadCount),3)):(0,i.Q3)("",!0)]),(0,i.Lk)("span",{"aria-label":e.joinChannelLabel,class:"add-channel-tooltip tooltipped tooltipped-w tooltipped-no-touch"},[(0,i.Lk)("button",{class:(0,l.C4)(["add-channel",{opened:e.isJoinChannelShown}]),"aria-controls":"join-channel-"+e.channel.id,"aria-label":e.joinChannelLabel,onClick:n[1]||(n[1]=(0,s.D$)(n=>e.$emit("toggle-join-channel"),["stop"]))},null,10,G)],8,J)]),_:1},16,["channel"])}]]),wc={class:"name"},yc={key:0,class:"parted-channel-tooltip tooltipped tooltipped-w","aria-label":"Not currently joined"},_c={class:"close-tooltip tooltipped tooltipped-w","aria-label":"Leave"},Cc={key:2,class:"close-tooltip tooltipped tooltipped-w","aria-label":"Close"};function Lc(e){return()=>{e.type!==Zs.rR.LOBBY?(e.closed=!0,re.A.emit("input",{target:Number(e.id),text:"/close"})):r.A.emit("confirm-dialog",{title:"Remove network",text:`Are you sure you want to quit and remove ${e.name}? This cannot be undone.`,button:"Remove network"},n=>{n&&(e.closed=!0,re.A.emit("input",{target:Number(e.id),text:"/quit"}))})}}const Mc=(0,i.pM)({name:"Channel",components:{ChannelWrapper:fc},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},active:Boolean,isFiltering:Boolean},setup:e=>({store:(0,o.Pj)(),unreadCount:(0,i.EW)(()=>ee(e.channel.unread)),close:Lc(e.channel)})}),Ec=(0,q.A)(Mc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("ChannelWrapper");return(0,i.uX)(),(0,i.Wv)(c,(0,i.v6)({ref:"wrapper"},e.$props),{default:(0,i.k6)(()=>[(0,i.Lk)("span",wc,(0,l.v_)(e.channel.name),1),!e.channel.unread||!0===e.store.state.settings.disableMutedUnread&&e.channel.muted?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("span",{key:0,class:(0,l.C4)([{highlight:e.channel.highlight&&!e.channel.muted},"badge"])},(0,l.v_)(e.unreadCount),3)),"channel"===e.channel.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[0===e.channel.state?((0,i.uX)(),(0,i.CE)("span",yc,[...n[2]||(n[2]=[(0,i.Lk)("span",{class:"parted-channel-icon"},null,-1)])])):(0,i.Q3)("",!0),(0,i.Lk)("span",_c,[(0,i.Lk)("button",{class:"close","aria-label":"Leave",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.close&&e.close(...n),["stop"]))})])],64)):((0,i.uX)(),(0,i.CE)("span",Cc,[(0,i.Lk)("button",{class:"close","aria-label":"Close",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.close&&e.close(...n),["stop"]))})]))]),_:1},16)}]]),xc=["id"],Sc=(0,i.pM)({name:"JoinChannel",directives:{focus:{mounted:e=>e.focus()}},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},emits:["toggle-join-channel"],setup(e,{emit:n}){const t=(0,o.Pj)(),a=(0,x.KR)(""),s=(0,x.KR)("");return{inputChannel:a,inputPassword:s,onSubmit:()=>{const o=t.getters.findChannelOnCurrentNetwork(a.value);if(o)mc(o);else{const n=e.network.serverOptions.CHANTYPES;let t=a.value;n&&n.length>0&&!n.includes(t[0])&&(t=n[0]+t),re.A.emit("input",{text:`/join ${t} ${s.value}`,target:e.channel.id})}a.value="",s.value="",n("toggle-join-channel")}}}}),Ac=(0,q.A)(Sc,[["render",function(e,n,t,a,o,l){const r=(0,i.gN)("focus");return(0,i.uX)(),(0,i.CE)("form",{id:"join-channel-"+e.channel.id,class:"join-form",method:"post",action:"",autocomplete:"off",onKeydown:n[2]||(n[2]=(0,s.jR)((0,s.D$)(n=>e.$emit("toggle-join-channel"),["prevent"]),["esc"])),onSubmit:n[3]||(n[3]=(0,s.D$)((...n)=>e.onSubmit&&e.onSubmit(...n),["prevent"]))},[(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.inputChannel=n),type:"text",class:"input",name:"channel",placeholder:"Channel",pattern:"[^\\s]+",maxlength:"200",title:"The channel name may not contain spaces",required:""},null,512),[[s.Jo,e.inputChannel],[r]]),(0,i.bo)((0,i.Lk)("input",{"onUpdate:modelValue":n[1]||(n[1]=n=>e.inputPassword=n),type:"password",class:"input",name:"key",placeholder:"Password (optional)",pattern:"[^\\s]+",maxlength:"200",title:"The channel password may not contain spaces",autocomplete:"new-password"},null,512),[[s.Jo,e.inputPassword]]),n[4]||(n[4]=(0,i.Lk)("button",{type:"submit",class:"btn btn-small"},"Join",-1))],40,xc)}]]),Tc=["title"],Xc={key:0,class:"dm-unread-badge highlight badge"},jc={key:0,class:"dm-filter"},Wc=(0,i.pM)({name:"DirectMessageSection",components:{Draggable:K,Channel:Ec},props:{network:{type:Object,required:!0},queries:{type:Array,required:!0}},setup(e){const n=e.network.uuid+"-dms",t="thelounge.directMessages.collapsed",a=(0,o.Pj)(),s=(0,x.KR)((()=>{const e=h.A.get(t);return(e?new Set(JSON.parse(e)):new Set).has(n)})()),l=(0,x.KR)(""),r=(0,x.KR)(!1),c=(0,i.EW)(()=>a.state.settings.showAllDMs?Number.MAX_SAFE_INTEGER:5),u=(0,i.EW)(()=>void 0!==e.queries.find(e=>e.id===a.state.activeChannel?.channel.id)),d=(0,i.EW)(()=>e.queries.filter(e=>e.unread>0&&!e.muted).length>0),p=(0,i.EW)(()=>ee(e.queries.filter(e=>e.unread>0&&!e.muted).length)),g=(0,i.EW)(()=>l.value?(0,D.filter)(l.value,e.queries,{extract:e=>e.name}).map(e=>e.original):e.queries),m=(0,i.EW)(()=>[...g.value].sort((e,n)=>e.pinned&&!n.pinned?-1:!e.pinned&&n.pinned?1:e.unread>0&&0===n.unread?-1:0===e.unread&&n.unread>0?1:e.name.toLowerCase().localeCompare(n.name.toLowerCase()))),k=(0,i.EW)(()=>{if(r.value||l.value)return m.value;const e=m.value.filter(e=>e.pinned),n=m.value.filter(e=>!e.pinned&&e.unread>0),t=m.value.filter(e=>!e.pinned&&0===e.unread),a=c.value-e.length-n.length;return a<=0?[...e,...n]:[...e,...n,...t.slice(0,a)]}),f=(0,i.EW)(()=>m.value.length-k.value.length),b=(0,i.EW)(()=>f.value>0&&!l.value);return{uuid:n,store:a,isCollapsed:s,filterText:l,showAll:r,hasUnread:d,totalUnreadCount:p,sortedQueries:m,hiddenCount:f,hasActiveQuery:u,hasHiddenChannels:b,shouldShowChannel:e=>!(!s.value||!e.highlight)||!(s.value&&!e.highlight)&&k.value.includes(e),toggleCollapsed:()=>{s.value=!s.value;const e=h.A.get(t),a=e?new Set(JSON.parse(e)):new Set;s.value?a.add(n):a.delete(n),h.A.set(t,JSON.stringify([...a]))},onDMSort:n=>{const{oldIndex:t,newIndex:a}=n;void 0!==t&&void 0!==a&&t!==a&&re.A.emit("sort:channels",{network:e.network.uuid,order:e.network.channels.map(e=>e.id)})}}}}),Pc=(0,q.A)(Wc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("Channel"),u=(0,i.g2)("Draggable");return e.queries.length>0&&!e.network.isCollapsed||e.network.isCollapsed&&(e.hasUnread||e.hasActiveQuery)?((0,i.uX)(),(0,i.CE)("div",{key:0,class:(0,l.C4)(["dm-section",{collapsed:e.isCollapsed}])},[(0,i.Lk)("div",{class:(0,l.C4)(["channel-list-item dm-section-header",e.hasUnread?"has-unread has-highlight":""]),title:"Total Queries: "+e.queries.length+" - Total Unread: "+e.totalUnreadCount,onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.toggleCollapsed&&e.toggleCollapsed(...n),["stop"]))},[(0,i.Lk)("span",{class:(0,l.C4)(["dm-collapse-icon",{"is-collapsed":e.isCollapsed}])},null,2),n[3]||(n[3]=(0,i.Lk)("span",{class:"dm-section-title"},"Direct Messages",-1)),e.hasUnread?((0,i.uX)(),(0,i.CE)("span",Xc,(0,l.v_)(e.totalUnreadCount),1)):(0,i.Q3)("",!0)],10,Tc),!e.isCollapsed||e.hasActiveQuery||e.hasUnread?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.queries.length>2&&e.store.state.settings.filterdmsEnabled&&!e.isCollapsed?((0,i.uX)(),(0,i.CE)("div",jc,[(0,i.bo)((0,i.Lk)("input",{ref:"filterInput","onUpdate:modelValue":n[1]||(n[1]=n=>e.filterText=n),type:"text",placeholder:"Filter DMs...",class:"dm-filter-input input"},null,512),[[s.Jo,e.filterText]])])):(0,i.Q3)("",!0),(0,i.bF)(u,{list:e.sortedQueries,delay:500,"delay-on-touch-only":!0,"touch-start-threshold":10,draggable:".dm-channel-wrapper","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragging",group:e.uuid,class:"dm-list","item-key":"id",onChange:e.onDMSort},{item:(0,i.k6)(({element:n})=>[e.shouldShowChannel(n)?((0,i.uX)(),(0,i.CE)("div",{key:0,class:(0,l.C4)(["dm-channel-wrapper",{"is-pinned":n.pinned}])},[((0,i.uX)(),(0,i.Wv)(c,{key:n.id,"data-item":n.id,channel:n,network:e.network,active:e.store.state.activeChannel&&n===e.store.state.activeChannel.channel},null,8,["data-item","channel","network","active"]))],2)):(0,i.Q3)("",!0)]),_:1},8,["list","group","onChange"]),e.hasHiddenChannels?((0,i.uX)(),(0,i.CE)("div",{key:1,class:"channel-list-item dm-show-more",onClick:n[2]||(n[2]=n=>e.showAll=!e.showAll)},(0,l.v_)(e.showAll?"Show less":`Show ${e.hiddenCount} more...`),1)):(0,i.Q3)("",!0)],64)):(0,i.Q3)("",!0)],2)):(0,i.Q3)("",!0)}],["__scopeId","data-v-e4cbcea8"]]),Rc=function([e,n],[t,a]){return Math.hypot(e-t,n-a)},Ic=(0,i.pM)({name:"NetworkList",components:{JoinChannel:Ac,NetworkLobby:vc,Channel:Ec,Draggable:K,DirectMessageSection:Pc},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(""),t=(0,x.KR)(),a=(0,x.KR)(),s=(0,x.KR)(null),l=(0,x.KR)(null),c=(0,x.KR)(!1),d=(e,n,t)=>{const a=e.splice(n,1)[0];e.splice(t,0,a)},p=(0,i.EW)(()=>{const n=[];for(const t of e.state.networks)for(const a of t.channels)e.state.activeChannel&&a===e.state.activeChannel.channel||n.push({network:t,channel:a});return n}),h=(0,i.EW)(()=>(0,D.filter)(n.value,p.value,{extract:e=>e.channel.name}).map(e=>e.original)),m=n=>!!g(n)||(e.state.activeChannel&&Z(e.state.activeChannel.network,!0),!1),k=n=>!!g(n)||(e.state.activeChannel&&Z(e.state.activeChannel.network,!1),!1),f=()=>{s.value!==document.activeElement&&(c.value=!e.state.sidebarOpen,e.commit("sidebarOpen",!0),(0,i.dY)(()=>{s.value?.focus()}))},b=()=>{t.value=null,n.value="",s.value?.blur(),c.value&&e.commit("sidebarOpen",!1)},v=e=>!!g(e)||(s.value===document.activeElement?(b(),!1):(f(),!1)),w=e=>{h.value.length&&(e||(e=h.value[0].channel),t.value=e)},y=()=>{(0,i.dY)(()=>{const e=l.value?.querySelector(".channel-list-item.active");e&&e.scrollIntoView({block:"nearest",inline:"nearest"})})};return(0,i.wB)(n,()=>{w()}),(0,i.sV)(()=>{u().bind("alt+shift+right",k),u().bind("alt+shift+left",m),u().bind("alt+j",v)}),(0,i.xo)(()=>{u().unbind("alt+shift+right"),u().unbind("alt+shift+left"),u().unbind("alt+j")}),{store:e,networklist:l,searchInput:s,searchText:n,results:h,activeSearchItem:t,LONG_TOUCH_DURATION:500,activateSearch:f,deactivateSearch:b,toggleSearch:v,setSearchText:e=>{n.value=e.target.value},setActiveSearchItem:w,scrollToActive:y,selectResult:()=>{n.value&&h.value.length&&t.value&&(mc(t.value),b(),y())},navigateResults:(e,a)=>{if(e.stopImmediatePropagation(),e.preventDefault(),!n.value)return;const s=h.value.map(e=>e.channel);if(!s.length)return void(t.value=null);let o=t.value?s.indexOf(t.value):-1;if(!t.value||-1===o)return t.value=a?s[0]:s[s.length-1],void y();for(o+=a;o<0;)o+=s.length;for(;o>s.length-1;)o-=s.length;t.value=s[o],y()},onChannelSort:n=>{let{oldIndex:t,newIndex:a}=n;if(void 0===t||void 0===a||t===a)return;t+=1,a+=1;const s=n.item.getAttribute("data-item");if(!s)return;const o=parseInt(s),i=e.getters.findChannel(o);i&&(d(i.network.channels,t,a),re.A.emit("sort:channels",{network:i.network.uuid,order:i.network.channels.map(e=>e.id)}))},onNetworkSort:n=>{const{oldIndex:t,newIndex:a}=n;void 0!==t&&void 0!==a&&t!==a&&(d(e.state.networks,t,a),re.A.emit("sort:networks",{order:e.state.networks.map(e=>e.uuid)}))},onDraggableTouchStart:e=>{1===e.touches.length&&document.body.classList.add("force-no-select")},onDraggableTouchMove:e=>{if(a.value&&e.touches.length>0){const n=e.touches[0],t=[n.clientX,n.clientY];Rc(a.value,t)>10&&r.A.emit("contextmenu:cancel")}},onDraggableTouchEnd:e=>{0===e.touches.length&&document.body.classList.remove("force-no-select")},onDraggableChoose:e=>{const n=e.originalEvent;(e=>!!(e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType))(n)&&(e.item.classList.add("ui-sortable-dragging-touch-cue"),n instanceof TouchEvent&&n.touches.length>0?a.value=[n.touches[0].clientX,n.touches[0].clientY]:n instanceof PointerEvent&&(a.value=[n.clientX,n.clientY]))},onDraggableUnchoose:e=>{e.item.classList.remove("ui-sortable-dragging-touch-cue"),a.value=null}}}}),Nc=(0,q.A)(Ic,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("Channel"),u=(0,i.g2)("NetworkLobby"),d=(0,i.g2)("JoinChannel"),p=(0,i.g2)("Draggable"),h=(0,i.g2)("DirectMessageSection");return 0===e.store.state.networks.length?((0,i.uX)(),(0,i.CE)("div",A," You are not connected to any networks yet. ")):((0,i.uX)(),(0,i.CE)("div",T,[e.store.state.settings.jumptoEabled?((0,i.uX)(),(0,i.CE)("div",X,[(0,i.Lk)("input",{ref:"searchInput",value:e.searchText,placeholder:"Jump to...",type:"search",class:"search input mousetrap","aria-label":"Search among the channel list",tabindex:"-1",onInput:n[0]||(n[0]=(...n)=>e.setSearchText&&e.setSearchText(...n)),onKeydown:[n[1]||(n[1]=(0,s.jR)(n=>e.navigateResults(n,-1),["up"])),n[2]||(n[2]=(0,s.jR)(n=>e.navigateResults(n,1),["down"])),n[3]||(n[3]=(0,s.jR)(n=>e.navigateResults(n,-10),["page-up"])),n[4]||(n[4]=(0,s.jR)(n=>e.navigateResults(n,10),["page-down"])),n[5]||(n[5]=(0,s.jR)((...n)=>e.selectResult&&e.selectResult(...n),["enter"])),n[6]||(n[6]=(0,s.jR)((...n)=>e.deactivateSearch&&e.deactivateSearch(...n),["escape"]))],onFocus:n[7]||(n[7]=(...n)=>e.activateSearch&&e.activateSearch(...n))},null,40,j)])):(0,i.Q3)("",!0),e.searchText?((0,i.uX)(),(0,i.CE)("div",W,[e.results.length?((0,i.uX)(),(0,i.CE)("div",P,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.results,t=>((0,i.uX)(),(0,i.CE)("div",{key:t.channel.id,onMouseenter:n=>e.setActiveSearchItem(t.channel),onClick:n[8]||(n[8]=(0,s.D$)((...n)=>e.selectResult&&e.selectResult(...n),["prevent"]))},["lobby"!==t.channel.type?((0,i.uX)(),(0,i.Wv)(c,{key:0,channel:t.channel,network:t.network,active:t.channel===e.activeSearchItem,"is-filtering":!0},null,8,["channel","network","active"])):((0,i.uX)(),(0,i.Wv)(u,{key:1,channel:t.channel,network:t.network,active:t.channel===e.activeSearchItem,"is-filtering":!0},null,8,["channel","network","active"]))],40,R))),128))])):((0,i.uX)(),(0,i.CE)("div",I,"No results found."))])):((0,i.uX)(),(0,i.Wv)(p,{key:2,list:e.store.state.networks,delay:e.LONG_TOUCH_DURATION,"delay-on-touch-only":!0,"touch-start-threshold":10,handle:".channel-list-item[data-type='lobby']",draggable:".network","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragging",group:"networks",class:"networks","item-key":"uuid",onChange:e.onNetworkSort,onChoose:e.onDraggableChoose,onUnchoose:e.onDraggableUnchoose},{item:(0,i.k6)(({element:t})=>[((0,i.uX)(),(0,i.CE)("div",{id:"network-"+t.uuid,key:t.uuid,class:(0,l.C4)([{collapsed:t.isCollapsed,"not-connected":!t.status.connected,"not-secure":!t.status.secure},"network"]),role:"region","aria-live":"polite",onTouchstart:n[9]||(n[9]=(...n)=>e.onDraggableTouchStart&&e.onDraggableTouchStart(...n)),onTouchmove:n[10]||(n[10]=(...n)=>e.onDraggableTouchMove&&e.onDraggableTouchMove(...n)),onTouchend:n[11]||(n[11]=(...n)=>e.onDraggableTouchEnd&&e.onDraggableTouchEnd(...n)),onTouchcancel:n[12]||(n[12]=(...n)=>e.onDraggableTouchEnd&&e.onDraggableTouchEnd(...n))},[(0,i.bF)(u,{network:t,"is-join-channel-shown":t.isJoinChannelShown,active:e.store.state.activeChannel&&t.channels[0]===e.store.state.activeChannel.channel,onToggleJoinChannel:e=>t.isJoinChannelShown=!t.isJoinChannelShown},null,8,["network","is-join-channel-shown","active","onToggleJoinChannel"]),t.isJoinChannelShown?((0,i.uX)(),(0,i.Wv)(d,{key:0,network:t,channel:t.channels[0],onToggleJoinChannel:e=>t.isJoinChannelShown=!t.isJoinChannelShown},null,8,["network","channel","onToggleJoinChannel"])):(0,i.Q3)("",!0),(0,i.bF)(p,{draggable:".channel-list-item","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragging",group:t.uuid,list:t.channels,delay:e.LONG_TOUCH_DURATION,"delay-on-touch-only":!0,"touch-start-threshold":10,class:"channels","item-key":"name",onChange:e.onChannelSort,onChoose:e.onDraggableChoose,onUnchoose:e.onDraggableUnchoose},{item:(0,i.k6)(({element:n,index:a})=>[a>0&&"query"!==n.type?((0,i.uX)(),(0,i.Wv)(c,{key:n.id,"data-item":n.id,channel:n,network:t,active:e.store.state.activeChannel&&n===e.store.state.activeChannel.channel},null,8,["data-item","channel","network","active"])):(0,i.Q3)("",!0)]),_:2},1032,["group","list","delay","onChange","onChoose","onUnchoose"]),(0,i.bF)(h,{network:t,queries:t.channels.filter(e=>"query"===e.type)},null,8,["network","queries"])],42,N))]),_:1},8,["list","delay","onChange","onChoose","onUnchoose"]))],512))}]]),Uc=(0,i.pM)({name:"Sidebar",components:{NetworkList:Nc},props:{overlay:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),t=(0,S.lq)(),a=(0,x.KR)(),s=(0,x.KR)(),l=(0,x.KR)(0),r=(0,x.KR)(0),c=(0,x.KR)(!1),u=(0,x.KR)(!1),d=(0,x.KR)(null),p=e=>{n.commit("sidebarOpen",e)},h=t=>{const o=s.value=t.touches.item(0);if(!(o&&a.value&&a.value.screenX&&a.value.screenY))return;let i=o.screenX-a.value.screenX;const l=o.screenY-a.value.screenY;if(!c.value){if(Math.abs(l/i)>=1)return void g();const e=window.devicePixelRatio||2;Math.abs(i)>e&&(n.commit("sidebarDragging",!0),c.value=!0)}u.value&&(n.state.sidebarOpen&&(i+=r.value),i>r.value?i=r.value:i<0&&(i=0),d.value&&(d.value.style.transform="translate3d("+i.toString()+"px, 0, 0)"),e.overlay&&(e.overlay.style.opacity=""+i/r.value))},g=()=>{if(!a.value?.screenX||!s.value?.screenX)return;const t=s.value.screenX-a.value.screenX,o=Math.abs(t);(o>r.value/2||Date.now()-l.value<180&&o>50)&&p(t>0),document.body.removeEventListener("touchmove",h),document.body.removeEventListener("touchend",g),n.commit("sidebarDragging",!1),a.value=null,s.value=null,l.value=0,c.value=!1,(0,i.dY)(()=>{d.value&&(d.value.style.transform=""),e.overlay&&(e.overlay.style.opacity="")})},m=e=>{if(!d.value)return;if(a.value=s.value=e.touches.item(0),1!==e.touches.length)return void g();const t=window.getComputedStyle(d.value);r.value=parseFloat(t.width),u.value="absolute"===t.position,(!n.state.sidebarOpen||a.value?.screenX&&a.value.screenX>r.value)&&(l.value=Date.now(),document.body.addEventListener("touchmove",h,{passive:!0}),document.body.addEventListener("touchend",g,{passive:!0}))};return(0,i.sV)(()=>{document.body.addEventListener("touchstart",m,{passive:!0})}),(0,i.hi)(()=>{document.body.removeEventListener("touchstart",m)}),{isDevelopment:!1,store:n,route:t,sidebar:d,toggle:p,onTouchStart:m,onTouchMove:h,onTouchEnd:g,isPublic:()=>document.body.classList.contains("public")}}}),Fc=(0,q.A)(Uc,[["render",function(e,n,t,a,o,r){const c=(0,i.g2)("NetworkList"),u=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("aside",{id:"sidebar",ref:"sidebar",class:(0,l.C4)(e.store.state.settings.compactSidebar?"compact":"")},[(0,i.Lk)("div",m,[(0,i.Lk)("div",k,[(0,i.Lk)("img",{src:`img/logo-${e.isPublic()?"horizontal-":""}transparent-bg.svg`,class:"logo",alt:"The Lounge",role:"presentation"},null,8,f),(0,i.Lk)("img",{src:`img/logo-${e.isPublic()?"horizontal-":""}transparent-bg-inverted.svg`,class:"logo-inverted",alt:"The Lounge",role:"presentation"},null,8,b),e.isDevelopment?((0,i.uX)(),(0,i.CE)("span",v,"DEVELOPER")):(0,i.Q3)("",!0)]),(0,i.bF)(c)]),(0,i.Lk)("footer",w,[(0,i.Lk)("span",y,[(0,i.bF)(u,{to:"/connect",role:"tab","aria-controls":"connect"},{default:(0,i.k6)(({navigate:e,isActive:n})=>[(0,i.Lk)("button",{class:(0,l.C4)(["icon","connect",{active:n}]),"aria-selected":n,onClick:e,onKeypress:(0,s.jR)(e,["enter"])},null,42,_)]),_:1})]),(0,i.Lk)("span",C,[(0,i.bF)(u,{to:"/settings",role:"tab","aria-controls":"settings"},{default:(0,i.k6)(({navigate:e,isActive:n})=>[(0,i.Lk)("button",{class:(0,l.C4)(["icon","settings",{active:n}]),"aria-selected":n,onClick:e,onKeypress:(0,s.jR)(e,["enter"])},null,42,L)]),_:1})]),(0,i.Lk)("span",{class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":e.store.state.serverConfiguration?.isUpdateAvailable?"Help\n(update available)":"Help"},[(0,i.bF)(u,{to:"/help",role:"tab","aria-controls":"help"},{default:(0,i.k6)(({navigate:n,isActive:t})=>[(0,i.Lk)("button",{"aria-selected":"Help"===e.route.name,class:(0,l.C4)(["icon","help",{notified:e.store.state.serverConfiguration?.isUpdateAvailable},{active:t}]),onClick:n,onKeypress:(0,s.jR)(n,["enter"])},null,42,E)]),_:1})],8,M)])],2)}]]),Oc=["href"],qc=["src"],Kc=(0,i.pM)({name:"ImageViewer",setup(){const e=(0,x.KR)(),n=(0,x.KR)(),t=(0,x.KR)(null),a=(0,x.KR)(),s=(0,x.KR)(),o=(0,x.KR)(),l=(0,x.KR)({x:0,y:0}),c=(0,x.KR)({scale:1,x:0,y:0}),d=(0,i.EW)(()=>{const e=Math.floor(c.value.x),n=Math.floor(c.value.y);return{left:`${l.value.x}px`,top:`${l.value.y}px`,transform:`translate3d(${e}px, ${n}px, 0) scale3d(${c.value.scale}, ${c.value.scale}, 1)`}}),p=()=>{null!==t.value&&(o.value=null,a.value=null,s.value=null,t.value=null)},h=()=>{a.value&&(t.value=a.value)},g=()=>{s.value&&(t.value=s.value)},m=(t,a,s,o)=>{if(!n.value||!e.value)return;const i=n.value.width,l=e.value.offsetWidth/2,r=e.value.offsetHeight/2;return{x:l-(l-(s-i*a/2))/a*t+i*t/2,y:r-(r-(o-i*a/2))/a*t+i*t/2}},k=()=>{const t=n.value,a=e.value;if(!t||!a)return;const s=t.width*c.value.scale,o=t.height*c.value.scale,i=a.offsetWidth,l=a.offsetHeight;s<i?c.value.x=i/2:c.value.x-s/2>0?c.value.x=s/2:c.value.x+s/2<i&&(c.value.x=i-s/2),o<l?c.value.y=l/2:c.value.y-o/2>0?c.value.y=o/2:c.value.y+o/2<l&&(c.value.y=l-o/2)},f=e=>{let n=0,t=0,a=0;for(let s=0;s<e.length;s++){const o=e[s].clientX,i=e[s].clientY;n+=o,t+=i;for(let n=0;n<e.length;n++)if(s!==n){const t=e[n].clientX,s=e[n].clientY;a+=Math.sqrt((o-t)*(o-t)+(i-s)*(i-s))}}return 0===a&&(a=1),{x:n/e.length,y:t/e.length,scale:a/e.length}};return(0,i.wB)(t,(e,n)=>{if(null===e)return r.A.off("escapekey",p),r.A.off("resize",k),u().unbind("left"),void u().unbind("right");(()=>{if(!o.value||!t.value)return null;const e=o.value.messages.map(e=>e.previews).flat().filter(e=>e&&e.thumb),n=e.indexOf(t.value);a.value=e[n-1]||null,s.value=e[n+1]||null})(),n||(r.A.on("escapekey",p),r.A.on("resize",k),u().bind("left",h),u().bind("right",g))}),{link:t,channel:o,image:n,transform:c,closeViewer:p,next:g,previous:h,onImageLoad:()=>{(()=>{const t=e.value,a=n.value;if(!t||!a)return;const s=t.offsetWidth,o=t.offsetHeight,i=Math.min(1,s/a.width,o/a.height);l.value.x=Math.floor(-n.value.naturalWidth/2),l.value.y=Math.floor(-n.value.naturalHeight/2),c.value.scale=Math.max(i,.1),c.value.x=s/2,c.value.y=o/2})()},onImageMouseDown:t=>{if(1!==t.which)return;t.stopPropagation(),t.preventDefault();const a=e.value,s=n.value;if(!a||!s)return;const o=t.clientX,i=t.clientY,l=c.value.x,r=c.value.y,u=s.width*c.value.scale,d=s.height*c.value.scale,h=a.offsetWidth,g=a.offsetHeight,m=c.value.x-u/2,f=c.value.y-d/2;let b=0;const v=e=>{e.stopPropagation(),e.preventDefault();const n=e.clientX-o,t=e.clientY-i;b=Math.max(b,Math.abs(n),Math.abs(t)),(m<0||u+m>h)&&(c.value.x=l+n),(f<0||d+f>g)&&(c.value.y=r+t),k()},w=e=>{k(),b<2&&0===e.button&&p(),n.value?.removeEventListener("mousemove",v),n.value?.removeEventListener("mouseup",w)};n.value?.addEventListener("mousemove",v),n.value?.addEventListener("mouseup",w)},onMouseWheel:e=>{if(null!==t.value){if(e.preventDefault(),e.ctrlKey)c.value.y+=e.deltaY;else{const n=e.deltaY>0?.1:-.1,t=Math.min(3,Math.max(.1,c.value.scale+n)),a=m(t,c.value.scale,c.value.x,c.value.y);if(!a)return;c.value.scale=t,c.value.x=a.x,c.value.y=a.y}k()}},onClick:e=>{e.target!==n.value&&p()},onTouchStart:e=>{e.stopImmediatePropagation()},previousImage:a,nextImage:s,onImageTouchStart:e=>{const t=n.value;let a=f(e.touches),s=e.touches,o=0;const i={x:a.x,y:a.y,scale:a.scale},l={x:c.value.x,y:c.value.y,scale:c.value.scale},r=e=>{a=f(e.touches),s.length!==e.touches.length&&(i.x=a.x,i.y=a.y,i.scale=a.scale,l.x=c.value.x,l.y=c.value.y,l.scale=c.value.scale);const n=a.x-i.x,t=a.y-i.y,r=a.scale/i.scale;s=e.touches,o=0;const u=Math.min(3,Math.max(.1,l.scale*r)),d=m(u,l.scale,l.x,l.y);d&&(c.value.x=d.x+n,c.value.y=d.y+t,c.value.scale=u,k())},u=e=>{const n=e.changedTouches.length;s.length>n+o?o+=n:(k(),t?.removeEventListener("touchmove",r),t?.removeEventListener("touchend",u))};t?.addEventListener("touchmove",r,{passive:!0}),t?.addEventListener("touchend",u,{passive:!0})},computeImageStyles:d,viewer:e}}}),Dc=(0,q.A)(Kc,[["render",function(e,n,t,a,o,r){return(0,i.uX)(),(0,i.CE)("div",{id:"image-viewer",ref:"viewer",class:(0,l.C4)({opened:null!==e.link}),onWheel:n[5]||(n[5]=(...n)=>e.onMouseWheel&&e.onMouseWheel(...n)),onTouchstartPassive:n[6]||(n[6]=(...n)=>e.onTouchStart&&e.onTouchStart(...n)),onClick:n[7]||(n[7]=(...n)=>e.onClick&&e.onClick(...n))},[null!==e.link?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[n[8]||(n[8]=(0,i.Lk)("button",{class:"close-btn","aria-label":"Close"},null,-1)),e.previousImage?((0,i.uX)(),(0,i.CE)("button",{key:0,class:"previous-image-btn","aria-label":"Previous image",onClick:n[0]||(n[0]=(0,s.D$)((...n)=>e.previous&&e.previous(...n),["stop"]))})):(0,i.Q3)("",!0),e.nextImage?((0,i.uX)(),(0,i.CE)("button",{key:1,class:"next-image-btn","aria-label":"Next image",onClick:n[1]||(n[1]=(0,s.D$)((...n)=>e.next&&e.next(...n),["stop"]))})):(0,i.Q3)("",!0),(0,i.Lk)("a",{class:"open-btn",href:e.link.link,target:"_blank",rel:"noopener"},null,8,Oc),(0,i.Lk)("img",{ref:"image",src:e.link.thumb,alt:"",style:(0,l.Tr)(e.computeImageStyles),onLoad:n[2]||(n[2]=(...n)=>e.onImageLoad&&e.onImageLoad(...n)),onMousedown:n[3]||(n[3]=(...n)=>e.onImageMouseDown&&e.onImageMouseDown(...n)),onTouchstartPassive:n[4]||(n[4]=(...n)=>e.onImageTouchStart&&e.onImageTouchStart(...n))},null,44,qc)],64)):(0,i.Q3)("",!0)],34)}]]),Bc=["aria-activedescendant"],$c=["id","onMouseenter","onClick"];const Hc=(0,i.pM)({name:"ContextMenu",props:{message:{required:!1,type:Object}},setup(){const e=(0,o.Pj)(),n=(0,S.rd)(),t=(0,x.KR)(!1),a=(0,x.KR)(!1),s=(0,x.KR)(),l=(0,x.KR)(),c=(0,x.KR)([]),u=(0,x.KR)(-1),d=(0,x.KR)({top:0,left:0}),p=()=>{t.value&&(t.value=!1,c.value=[],l.value&&(l.value.focus(),l.value=null))},h=()=>{a.value=!1,document.body.removeEventListener("pointerup",h)},g=e=>{p(),"action"in e&&e.action?e.action():"link"in e&&e.link&&n.push(e.link).catch(()=>{console.error("Failed to navigate to",e.link)})},m=(n,a)=>{n.preventDefault(),l.value=document.activeElement,c.value=a,u.value=0,t.value=!0,(0,i.dY)(()=>{const t=(n=>{const t=n.target;if(!s.value)return;const a=s.value?.offsetWidth,o=s.value?.offsetHeight;if(t&&t.classList.contains("menu"))return{left:t.getBoundingClientRect().left-(a-t.offsetWidth),top:t.getBoundingClientRect().top+t.offsetHeight};const i={left:n.pageX,top:n.pageY};return e.state.settings.enhancedContextMenuEnabled&&s.value.querySelector('[class*="context-menu-group-"]')&&(i.top-=45),window.innerWidth-i.left<a&&(i.left=window.innerWidth-a),window.innerHeight-i.top<o&&(i.top=window.innerHeight-o),i})(n);t&&(d.value.left=t.left,d.value.top=t.top,s.value?.focus())}).catch(e=>{console.error(e)})},k=e=>{"contextmenu"===e.event.type&&(a.value=!0,document.body.addEventListener("pointerup",h,{passive:!0}));const n=function(e,n){const t=Lc(e);let a=[{label:e.name,type:"item",class:{lobby:"network",channel:"chan",query:"query",special:"chan"}[e.type],link:`/chan-${e.id}`},{type:"divider"}];e.type===Zs.rR.LOBBY&&(a=[...a,{label:"Edit this networkโฆ",type:"item",class:"edit",link:`/edit-network/${n.uuid}`},{label:"Join a channelโฆ",type:"item",class:"join",action:()=>n.isJoinChannelShown=!0},{label:"List all channels",type:"item",class:"list",action:()=>re.A.emit("input",{target:e.id,text:"/list"})},{label:"List ignored users",type:"item",class:"list",action:()=>re.A.emit("input",{target:e.id,text:"/ignorelist"})},n.status.connected?{label:"Disconnect",type:"item",class:"disconnect",action:()=>re.A.emit("input",{target:e.id,text:"/disconnect"})}:{label:"Connect",type:"item",class:"connect",action:()=>re.A.emit("input",{target:e.id,text:"/connect"})}]),e.type===Zs.rR.CHANNEL&&(a.push({label:"Edit topic",type:"item",class:"edit",action(){e.editTopic=!0,mc(e)}}),a.push({label:"List banned users",type:"item",class:"list",action(){re.A.emit("input",{target:e.id,text:"/banlist"})}})),e.type===Zs.rR.QUERY&&a.push({label:"User information",type:"item",class:"action-whois",action(){mc(e),re.A.emit("input",{target:e.id,text:"/whois "+e.name})}},{label:"Ignore user",type:"item",class:"action-ignore",action(){re.A.emit("input",{target:e.id,text:"/ignore "+e.name})}},{label:e.pinned?"Unpin conversation":"Pin conversation",type:"item",class:"pin",action(){re.A.emit("pin:change",{target:e.id,setPinnedTo:!e.pinned})}}),e.type!==Zs.rR.CHANNEL&&e.type!==Zs.rR.QUERY||a.push({label:"Clear history",type:"item",class:"clear-history",action(){r.A.emit("confirm-dialog",{title:"Clear history",text:`Are you sure you want to clear history for ${e.name}? This cannot be undone.`,button:"Clear history"},n=>{n&&re.A.emit("history:clear",{target:e.id})})}});const s={lobby:"network",channel:"channel",query:"conversation"};if(Object.keys(s).includes(e.type)){const n=s[e.type];a.push({label:e.muted?`Unmute ${n}`:`Mute ${n}`,type:"item",class:"mute",action(){re.A.emit("mute:change",{target:e.id,setMutedTo:!e.muted})}})}return a.push({label:{lobby:"Remove",channel:"Leave",query:"Close",special:"Close"}[e.type],type:"item",class:"close",action(){t()}}),a}(e.channel,e.network);m(e.event,n)},f=n=>{const{network:t}=e.state.activeChannel,a=function(e,n,t){const a=t.channels.find(e=>e.name===n);return a?[{label:"Go to channel",type:"item",class:"chan",link:`/chan-${a.id}`}]:[{label:"Join channel",type:"item",class:"join",action:()=>{const a=t.channels.find(e=>e.name===n);a&&mc(a),e.state.activeChannel?re.A.emit("input",{target:e.state.activeChannel.channel.id,text:"/join "+n}):console.error("Unable to join channel: activeChannel is undefined")}}]}(e,n.channel,t);m(n.event,a)},b=n=>{const{network:t,channel:a}=e.state.activeChannel,s=function(e,n,t,a){const s=n&&n.users.find(e=>e.nick===t.nick)||{},o=[...(()=>{const s={label:a.nick,type:"item",class:"user",action(){}};if(e.state.settings.enhancedContextMenuEnabled&&Boolean(t.channels.find(e=>(e.groups?.length??0)>0))){const e={label:a.nick,type:"item",class:"user",action(){n.type===Zs.rR.CHANNEL&&re.A.emit("input",{target:n.id,text:`!user ${a.nick}`})}},s={label:"Tracker Profile",type:"item",class:"action-open",action(){var e;e=`https://brr.red/${a.nick}`,Object.assign(document.createElement("a"),{target:"_blank",rel:"noopener noreferrer",href:e}).click()}},o=t.channels.find(e=>e.users.find(e=>e.nick===a.nick))?.groups?.find(e=>e.users.includes(a.nick))?.name??"Offline";return[{label:o,type:"item",class:`group-${o.toLowerCase()}`,action(){}},{type:"divider"},e,s]}return[s]})(),{type:"divider"},{label:"Direct messages",type:"item",class:"action-query",action(){const t=e.getters.findChannelOnCurrentNetwork(a.nick);t&&mc(t),re.A.emit("input",{target:n.id,text:"/query "+a.nick})}},...e.state.settings.enhancedContextMenuEnabled?[{label:`Slap ${a.nick}`,type:"item",class:"action-slap",action(){re.A.emit("input",{target:n.id,text:"/slap "+a.nick})}}]:[],{type:"divider"},{label:"User information",type:"item",class:"action-whois",action(){const e=t.channels.find(e=>e.name===a.nick);e&&mc(e),re.A.emit("input",{target:n.id,text:"/whois "+a.nick})}},{label:"Ignore user",type:"item",class:"action-ignore",action(){re.A.emit("input",{target:n.id,text:"/ignore "+a.nick})}}];if(!s.modes||s.modes.length<1)return o;const i={"~":"owner","&":"admin","@":"operator","%":"half-op","+":"voice"},l={revoke(e){const n=i[e.symbol];return"string"!=typeof n?"":n?`Revoke ${n} (-${e.mode})`:`Mode -${e.mode}`},give(e){const n=i[e.symbol];return"string"!=typeof n?"":n?`Give ${n} (+${e.mode})`:`Mode +${e.mode}`}},r=t.serverOptions.PREFIX.symbols;function c(e,n){return"~@".indexOf(e)>-1?r.indexOf(e)<=r.indexOf(n):r.indexOf(e)<r.indexOf(n)}return t.serverOptions.PREFIX.prefix.forEach(e=>{c(s.modes[0],e.symbol)&&(a.modes.includes(e.symbol)?o.push({label:l.revoke(e),type:"item",class:"action-revoke-mode",action(){re.A.emit("input",{target:n.id,text:"/mode -"+e.mode+" "+a.nick})}}):o.push({label:l.give(e),type:"item",class:"action-set-mode",action(){re.A.emit("input",{target:n.id,text:"/mode +"+e.mode+" "+a.nick})}}))}),c(r.indexOf("%")>-1?"%":"@",s.modes[0])||(0===a.modes.length||c(s.modes[0],a.modes[0]))&&o.push({label:"Kick",type:"item",class:"action-kick",action(){re.A.emit("input",{target:n.id,text:"/kick "+a.nick})}}),o}(e,a,t,a.users.find(e=>e.nick===n.user.nick)||{nick:n.user.nick,modes:[]});m(n.event,s)};return(0,i.sV)(()=>{r.A.on("escapekey",p),r.A.on("contextmenu:cancel",p),r.A.on("contextmenu:user",b),r.A.on("contextmenu:channel",k),r.A.on("contextmenu:inline-channel",f)}),(0,i.hi)(()=>{r.A.off("escapekey",p),r.A.off("contextmenu:cancel",p),r.A.off("contextmenu:user",b),r.A.off("contextmenu:channel",k),r.A.off("contextmenu:inline-channel",f),p()}),{isOpen:t,items:c,activeItem:u,style:d,contextMenu:s,passthrough:a,close:p,containerClick:e=>{e.currentTarget===e.target&&p()},navigateMenu:e=>{let n=u.value;n+=e;const t=c.value[n];t&&"type"in t&&"divider"===t.type&&(n+=e),n<0&&(n+=c.value.length),n>c.value.length-1&&(n-=c.value.length),u.value=n},hoverItem:e=>{u.value=e},clickItem:g,clickActiveItem:()=>{c.value[u.value]&&g(c.value[u.value])}}}}),Qc=(0,q.A)(Hc,[["render",function(e,n,t,a,o,r){return e.isOpen?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"context-menu-container",class:(0,l.C4)({passthrough:e.passthrough}),onClick:n[2]||(n[2]=(...n)=>e.containerClick&&e.containerClick(...n)),onContextmenu:n[3]||(n[3]=(0,s.D$)((...n)=>e.containerClick&&e.containerClick(...n),["prevent"])),onKeydown:[n[4]||(n[4]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(-1),["exact","prevent"]),["up"])),n[5]||(n[5]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(1),["exact","prevent"]),["down"])),n[6]||(n[6]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(1),["exact","prevent"]),["tab"])),n[7]||(n[7]=(0,s.jR)((0,s.D$)(n=>e.navigateMenu(-1),["shift","prevent"]),["tab"]))]},[(0,i.Lk)("ul",{id:"context-menu",ref:"contextMenu",role:"menu",style:(0,l.Tr)({top:e.style.top+"px",left:e.style.left+"px"}),tabindex:"-1","aria-activedescendant":e.activeItem>-1?`context-menu-item-${e.activeItem}`:void 0,onMouseleave:n[0]||(n[0]=n=>e.activeItem=-1),onKeydown:n[1]||(n[1]=(0,s.jR)((0,s.D$)((...n)=>e.clickActiveItem&&e.clickActiveItem(...n),["prevent"]),["enter"]))},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.items,(n,t)=>((0,i.uX)(),(0,i.CE)("li",{key:n.name,id:`context-menu-item-${t}`,class:(0,l.C4)(["context-menu-"+n.type,n.class?"context-menu-"+n.class:null,{active:t===e.activeItem}]),role:"menuitem",onMouseenter:n=>e.hoverItem(t),onClick:t=>e.clickItem(n)},(0,l.v_)(n.label),43,$c))),128))],44,Bc)],34)):(0,i.Q3)("",!0)}]]),zc={key:0,id:"confirm-dialog"},Vc={class:"confirm-text"},Yc={class:"confirm-text-title"},Jc={class:"confirm-buttons"},Gc=(0,i.pM)({name:"ConfirmDialog",setup(){const e=(0,x.KR)(),n=(0,x.KR)(),t=(t,a)=>{e.value=t,n.value=a},a=t=>{e.value=void 0,n.value&&n.value(!!t)};return(0,i.sV)(()=>{r.A.on("escapekey",a),r.A.on("confirm-dialog",t)}),(0,i.hi)(()=>{r.A.off("escapekey",a),r.A.off("confirm-dialog",t)}),{data:e,close:a}}}),Zc=(0,q.A)(Gc,[["render",function(e,n,t,a,s,o){return(0,i.uX)(),(0,i.CE)("div",{id:"confirm-dialog-overlay",class:(0,l.C4)({opened:!!e.data})},[null!==e.data?((0,i.uX)(),(0,i.CE)("div",zc,[(0,i.Lk)("div",Vc,[(0,i.Lk)("div",Yc,(0,l.v_)(e.data?.title),1),(0,i.Lk)("p",null,(0,l.v_)(e.data?.text),1)]),(0,i.Lk)("div",Jc,[(0,i.Lk)("button",{class:"btn btn-cancel",onClick:n[0]||(n[0]=n=>e.close(!1))},"Cancel"),(0,i.Lk)("button",{class:"btn btn-danger",onClick:n[1]||(n[1]=n=>e.close(!0))},(0,l.v_)(e.data?.button),1)])])):(0,i.Q3)("",!0)],2)}]]),eu={class:"mentions-popup"},nu={class:"mentions-popup-title"},tu={key:0},au={key:1},su={class:"mentions-info"},ou={class:"from"},iu=["title"],lu={class:"close-tooltip tooltipped tooltipped-w","aria-label":"Dismiss this mention"},ru=["onClick"],cu=["data-jump-to","onClick"];var uu=t(6279),du=t.n(uu);ys().extend(du());const pu=(0,i.pM)({name:"Mentions",components:{Username:Cs.A,ParsedMessage:Qs.A},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(!1),t=(0,x.KR)(!1),a=(0,i.EW)(()=>{const n=e.state.mentions.slice().reverse();for(const t of n)t.localetime=(0,_s.A)(t.time),t.channel=e.getters.findChannel(t.chanId);return n.filter(e=>!e.channel?.channel.muted)});(0,i.wB)(()=>e.state.mentions,()=>{t.value=!1});const s=()=>{n.value=!n.value,n.value&&(t.value=!0,re.A.emit("mentions:get"))},l=()=>{n.value=!1};return(0,i.sV)(()=>{r.A.on("mentions:toggle",s),r.A.on("escapekey",l)}),(0,i.hi)(()=>{r.A.off("mentions:toggle",s),r.A.off("escapekey",l)}),{store:e,isOpen:n,isLoading:t,resolvedMessages:a,messageTime:e=>ys()(e).fromNow(),dismissMention:n=>{e.state.mentions.splice(e.state.mentions.findIndex(e=>e.msgId===n.msgId),1),re.A.emit("mentions:dismiss",n.msgId)},dismissAllMentions:()=>{e.state.mentions=[],re.A.emit("mentions:dismiss_all")},jumpToMention:t=>{e.state.settings.enableEnhancedSearch&&t.channel&&(mc(t.channel.channel,t.msgId),n.value=!1)},containerClick:e=>{e.currentTarget===e.target&&(n.value=!1)}}}}),hu=(0,q.A)(pu,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Username"),c=(0,i.g2)("ParsedMessage");return e.isOpen?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"mentions-popup-container",onClick:n[1]||(n[1]=(...n)=>e.containerClick&&e.containerClick(...n)),onContextmenu:n[2]||(n[2]=(...n)=>e.containerClick&&e.containerClick(...n))},[(0,i.Lk)("div",eu,[(0,i.Lk)("div",nu,[n[3]||(n[3]=(0,i.eW)(" Recent mentions ",-1)),e.resolvedMessages.length?((0,i.uX)(),(0,i.CE)("button",{key:0,class:"btn dismiss-all-mentions",onClick:n[0]||(n[0]=n=>e.dismissAllMentions())}," Dismiss all ")):(0,i.Q3)("",!0)]),0===e.resolvedMessages.length?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[e.isLoading?((0,i.uX)(),(0,i.CE)("p",tu,"Loadingโฆ")):((0,i.uX)(),(0,i.CE)("p",au,"You have no recent mentions."))],64)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(e.resolvedMessages,t=>((0,i.uX)(),(0,i.CE)("div",{key:t.msgId,class:(0,l.C4)(["msg",t.type])},[(0,i.Lk)("div",su,[(0,i.Lk)("div",null,[(0,i.Lk)("span",ou,[(0,i.bF)(r,{user:t.from},null,8,["user"]),t.channel?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" in "+(0,l.v_)(t.channel.channel.name)+" on "+(0,l.v_)(t.channel.network.name),1)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.eW)(" in unknown channel ")],64))]),n[4]||(n[4]=(0,i.eW)((0,l.v_)(" ")+" ",-1)),(0,i.Lk)("span",{title:t.localetime,class:"time"},(0,l.v_)(e.messageTime(t.time.toString())),9,iu)]),(0,i.Lk)("div",null,[(0,i.Lk)("span",lu,[(0,i.Lk)("button",{class:"msg-dismiss","aria-label":"Dismiss this mention",onClick:n=>e.dismissMention(t)},null,8,ru)])])]),(0,i.Lk)("div",{class:"content",dir:"auto","data-jump-to":e.store.state.settings.searchEnabled&&e.store.state.settings.enableEnhancedSearch||void 0,onClick:n=>e.jumpToMention(t)},[(0,i.bF)(c,{message:t},null,8,["message"])],8,cu)],2))),128))])],32)):(0,i.Q3)("",!0)}]]),gu=Symbol(),mu=Symbol(),ku=Symbol(),fu=(0,i.pM)({name:"App",components:{Sidebar:Fc,ImageViewer:Dc,ContextMenu:Qc,ConfirmDialog:Zc,Mentions:hu},setup(){const e=(0,o.Pj)(),n=(0,x.KR)(null),t=(0,x.KR)(null),s=(0,x.KR)(null),l=(0,x.KR)(null),c=(0,x.KR)(null);(0,i.Gt)(gu,s),(0,i.Gt)(mu,l),(0,i.Gt)(ku,c);const d=(0,i.EW)(()=>({notified:e.getters.highlightCount>0,"menu-open":e.state.appLoaded&&e.state.sidebarOpen,"menu-dragging":e.state.sidebarDragging,"userlist-open":e.state.userlistOpen})),m=(0,x.KR)(),k=(0,x.KR)(),f=()=>{r.A.emit("escapekey")},b=n=>!!g(n)||(e.commit("toggleSidebar"),!1),v=n=>!!g(n)||(e.commit("toggleUserlist"),!1),w=()=>{0!==e.state.networks.length&&r.A.emit("mentions:toggle")},y=()=>{const e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+1).getTime()-e.getTime()};return(()=>{const n=window.innerWidth;let t=h.A.get("thelounge.state.userlist");n>a.mobileViewportPixels&&e.commit("sidebarOpen","false"!==h.A.get("thelounge.state.sidebar")),n>=1024&&"true"!==t&&"false"!==t&&(t="true"),e.commit("userlistOpen","true"===t)})(),(0,i.sV)(()=>{u().bind("esc",f),u().bind("alt+u",v),u().bind("alt+s",b),u().bind("alt+m",w),m.value=p()(()=>{r.A.emit("resize")},100),window.addEventListener("resize",m.value,{passive:!0});const e=()=>{r.A.emit("daychange"),k.value=setTimeout(e,y())};k.value=setTimeout(e,y())}),(0,i.xo)(()=>{u().unbind("esc"),u().unbind("alt+u"),u().unbind("alt+s"),u().unbind("alt+m"),m.value&&window.removeEventListener("resize",m.value),k.value&&clearTimeout(k.value)}),{viewportClasses:d,escapeKey:f,toggleSidebar:b,toggleUserList:v,toggleMentions:w,store:e,overlay:n,loungeWindow:t,imageViewer:s,contextMenu:l,confirmDialog:c}}}),bu=(0,q.A)(fu,[["render",function(e,n,t,a,s,o){const r=(0,i.g2)("Sidebar"),c=(0,i.g2)("router-view"),u=(0,i.g2)("Mentions"),d=(0,i.g2)("ImageViewer"),p=(0,i.g2)("ContextMenu"),h=(0,i.g2)("ConfirmDialog");return(0,i.uX)(),(0,i.CE)("div",{id:"viewport",class:(0,l.C4)(e.viewportClasses),role:"tablist"},[e.store.state.appLoaded?((0,i.uX)(),(0,i.Wv)(r,{key:0,overlay:e.overlay},null,8,["overlay"])):(0,i.Q3)("",!0),(0,i.Lk)("div",{id:"sidebar-overlay",ref:"overlay","aria-hidden":"true",onClick:n[0]||(n[0]=n=>e.store.commit("sidebarOpen",!1))},null,512),(0,i.bF)(c,{ref:"loungeWindow"},null,512),(0,i.bF)(u),(0,i.bF)(d,{ref:"imageViewer"},null,512),(0,i.bF)(p,{ref:"contextMenu"},null,512),(0,i.bF)(h,{ref:"confirmDialog"},null,512),n[1]||(n[1]=(0,i.Lk)("div",{id:"upload-overlay"},null,-1))],2)}]]);function vu(e){const n=String(e.message||e);if(o.M_.commit("isConnected",!1),!re.A.io.reconnection())return o.M_.commit("currentUserVisibleError",`Disconnected from the server (${n}), The Lounge does not reconnect in public mode.`),void wu();var t;o.M_.commit("currentUserVisibleError",`Waiting to reconnectโฆ (${n})`),wu(),re.A.io.skipReconnect&&"io client disconnect"!==n&&(t=()=>re.A.connect(),window.requestIdleCallback?window.requestIdleCallback(t,{timeout:2e3}):t())}function wu(){const e=document.getElementById("loading-page-message");e&&(e.textContent=o.M_.state.currentUserVisibleError)}re.A.on("disconnect",vu),re.A.on("connect_error",vu),re.A.on("error",vu),re.A.io.on("reconnect_attempt",function(e){o.M_.commit("currentUserVisibleError",`Reconnectingโฆ (attempt ${e})`),wu()}),re.A.on("connecting",function(){o.M_.commit("currentUserVisibleError","Connectingโฆ"),wu()}),re.A.on("connect",function(){re.A.sendBuffer=[],o.M_.commit("currentUserVisibleError","Finalizing connectionโฆ"),wu()});let yu,_u=null;async function Cu(){window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),"SignIn"!==hc.currentRoute.value.name&&await gc("SignIn")}function Lu(e){re.A.disconnect(),o.M_.commit("currentUserVisibleError",e),Fr.reload()}function Mu(){const e=document.getElementById("loading-page-message");e&&(e.textContent=o.M_.state.currentUserVisibleError)}function Eu(e){const n=[""].concat(e.messages.filter(e=>e.self&&e.text&&e.type===Ys.MESSAGE).map(e=>e.text?e.text:"").reverse().slice(0,99)),{messages:t,...a}=e;return{...a,editTopic:!1,pendingMessage:"",inputHistoryPosition:0,historyLoading:!1,scrolledToBottom:!0,users:[],usersOutdated:e.type===Zs.rR.CHANNEL,moreHistoryAvailable:e.totalMessages>e.messages.length,inputHistory:n,messages:t,groups:e.groups||void 0}}function xu(e,n){const t=[];for(const a of n){const n=e.find(e=>e.id===a.id);if(!n){const e=Eu(a);t.push(e),Su(e);continue}Su(n),n.messages&&a.messages.length<100?n.messages=n.messages.concat(a.messages):n.messages=a.messages;for(const e in a)Object.hasOwn(n,e)&&"messages"!==e&&(n[e]=a[e]);t.push(n)}return t}function Su(e){if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel===e)return re.A.emit("names",{target:e.id}),void(e.usersOutdated=!1);e.usersOutdated=!0}function Au(){const e=window.location.origin+window.location.pathname+window.location.hash;window.history.replaceState(null,"",e)}re.A.on("auth:success",function(){o.M_.commit("currentUserVisibleError","Loading messagesโฆ"),Mu()}),re.A.on("auth:failed",async function(){if(h.A.remove("token"),o.M_.state.appLoaded)return Lu("Authentication failed, reloadingโฆ");await Cu()}),re.A.on("auth:start",async function(e){if(_u&&e!==_u)return Lu("Server restarted, reloadingโฆ");_u=e;const n=h.A.get("user"),t=h.A.get("token"),a=n&&t;if(o.M_.state.appLoaded&&!a)return Lu("Authentication failed, reloadingโฆ");if(a){o.M_.commit("currentUserVisibleError","Authorizingโฆ"),Mu();let e=-1;for(const n of o.M_.state.networks)for(const t of n.channels)if(t.messages.length>0){const n=t.messages[t.messages.length-1].id;e<n&&(e=n)}const a=o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id||null;re.A.emit("auth:perform",{user:n,token:t,lastMessage:e,openChannel:a,hasConfig:null!==o.M_.state.serverConfiguration})}else await Cu()}),re.A.on("commands",function(e){e&&(a.commands=e)}),re.A.on("init",async function(e){if(o.M_.commit("networks",function(e){const n=h.A.get("thelounge.networks.collapsed"),t=n?new Set(JSON.parse(n)):new Set,a=[];for(const n of e){const e=o.M_.getters.findNetwork(n.uuid);if(!e){const e={...n,channels:n.channels.map(Eu),isJoinChannelShown:!1,isCollapsed:t.has(n.uuid)};a.push(e);continue}for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&("channels"===t?e.channels=xu(e.channels,n.channels):e[t]=n[t]);a.push(e)}return a}(e.networks)),o.M_.commit("isConnected",!0),o.M_.commit("currentUserVisibleError",null),e.token&&h.A.set("token",e.token),!o.M_.state.appLoaded){o.M_.commit("appLoaded"),re.A.emit("setting:get");try{await hc.isReady()}catch{}if(window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),await async function(){if(!("URLSearchParams"in window))return!1;const e=new URLSearchParams(document.location.search);if(e.has("uri")){const n=e.get("uri"),t=(e=>{const n={name:"",host:"",port:"",join:"",tls:!1};try{const t=new URL(e);if("irc:"===t.protocol)t.protocol="http:",t.port||(t.port="6667");else{if("ircs:"!==t.protocol)return;t.protocol="https:",t.port||(t.port="6697"),n.tls=!0}if(!t.hostname)return{};n.host=n.name=t.hostname,n.port=t.port;let a="";t.pathname.length>1&&(a=t.pathname.substr(1)),t.hash.length>1&&(a+=t.hash),n.join=a}catch{}return n})(String(n));return Au(),await hc.push({name:"Connect",query:t}),!0}if(document.body.classList.contains("public")&&document.location.search){const n=Object.fromEntries(e.entries());return Au(),await hc.push({name:"Connect",query:n}),!0}return!1}())return;if(!hc.currentRoute?.value?.name||"SignIn"===hc.currentRoute?.value?.name){const n=o.M_.getters.findChannel(e.active);n?mc(n.channel):o.M_.state.networks.length>0?mc(o.M_.state.networks[0].channels[0]):await gc("Connect")}}}),re.A.on("join",function(e){const n=o.M_.getters.findNetwork(e.network);if(!n)return;const t=Eu(e.chan);if(n.channels.splice(e.index||-1,0,t),"query"===e.chan.type&&!e.shouldOpen)return;const a=o.M_.getters.findChannel(e.chan.id);a?mc(a.channel):console.error("Could not find channel",e.chan.id)}),re.A.on("more",async e=>{const n=o.M_.getters.findChannel(e.chan)?.channel;n&&(n.inputHistory=n.inputHistory.concat(e.messages.filter(e=>e.self&&e.text&&e.type===Ys.MESSAGE).map(e=>e.text?e.text:"").reverse().slice(0,100-n.inputHistory.length)),n.moreHistoryAvailable=e.totalMessages>n.messages.length+e.messages.length,n.messages.unshift(...e.messages),await(0,i.dY)(),n.historyLoading=!1)});try{yu=new Audio,yu.src="audio/pop.wav"}catch{yu={play(){}}}function Tu(e){return{...e,localetime:"",channel:null}}re.A.on("msg",function(e){const n=o.M_.getters.findChannel(e.chan);if(!n)return;let t=n.channel,a=o.M_.state.activeChannel&&o.M_.state.activeChannel.channel===t;e.msg.showInActive&&(o.M_.state.activeChannel&&o.M_.state.activeChannel.network===n.network?(t=o.M_.state.activeChannel.channel,a=!0,e.chan===t.id?delete e.msg.showInActive:e.chan=t.id):delete e.msg.showInActive),a||(void 0!==e.highlight&&(t.highlight=e.highlight),void 0!==e.unread&&(t.unread=e.unread)),t.messages.push(e.msg),e.msg.self?t.firstUnread=e.msg.id:function(e,n,t,a){var s;if(!n.muted&&((a.highlight||o.M_.state.settings.notifyAllMessages&&a.type===Ys.MESSAGE)&&(!document.hasFocus()||!t||t.channel!==n))){if(o.M_.state.settings.notification)try{yu.play()}catch{}if(o.M_.state.settings.desktopNotifications&&"Notification"in window&&"granted"===Notification.permission){let t,i;const l=a.from&&a.from.nick?a.from.nick:"unkonown";a.type===Ys.INVITE?(t="New channel invite:",i=l+" invited you to "+a.channel):(t=l,n.type!==Zs.rR.QUERY&&(t+=` (${n.name})`),a.type===Ys.MESSAGE&&(t+=" says:"),s=a.text?a.text:"",i=s.replace(Po,"").trim());const r=Date.parse(String(a.time));try{o.M_.state.hasServiceWorker?navigator.serviceWorker.ready.then(n=>{n.active?.postMessage({type:"notification",chanId:e,timestamp:r,title:t,body:i})}).catch(()=>{}):new Notification(t,{tag:`chan-${e}`,badge:"img/icon-alerted-black-transparent-bg-72x72px.png",icon:"img/icon-alerted-grey-bg-192x192px.png",body:i,timestamp:r}).addEventListener("click",function(){this.close(),window.focus();const n=o.M_.getters.findChannel(e);n&&mc(n.channel)})}catch{}}}}(e.chan,t,o.M_.state.activeChannel,e.msg);let s=0;o.M_.state.settings.searchEnabled&&o.M_.state.settings.enableEnhancedSearch?s=1e4:a?t.scrolledToBottom&&(s=1500):s=100,s>0&&t.messages.length>s&&(t.messages.splice(0,t.messages.length-s),t.moreHistoryAvailable=!0),t.type===Zs.rR.CHANNEL&&function(e,n){switch(n.type){case Ys.MESSAGE:case Ys.ACTION:{const t=e.users.find(e=>e.nick===n.from?.nick);t&&(t.lastMessage=new Date(n.time).getTime()||Date.now());break}case Ys.QUIT:case Ys.PART:{const t=e.users.findIndex(e=>e.nick===n.from?.nick);t>-1&&e.users.splice(t,1);break}case Ys.KICK:{const t=e.users.findIndex(e=>e.nick===n.target?.nick);t>-1&&e.users.splice(t,1);break}}}(t,e.msg)}),re.A.on("msg:preview",function(e){const n=o.M_.getters.findChannel(e.chan),t=n?.channel.messages.find(n=>n.id===e.id);if(!t||!t.previews)return;const a=t.previews.findIndex(n=>n.link===e.preview.link);a>-1&&(t.previews[a]=e.preview)}),re.A.on("msg:special",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.data=e.data,mc(n.channel))}),re.A.on("names",function(e){const n=o.M_.getters.findChannel(e.id);n&&(n.channel.users=e.users)}),re.A.on("network",function(e){const n={...e.network,channels:e.network.channels.map(Eu),isJoinChannelShown:!1,isCollapsed:!1};o.M_.commit("networks",[...o.M_.state.networks,n]),mc(n.channels[n.channels.length-1])}),re.A.on("network:options",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.serverOptions=e.serverOptions)}),re.A.on("network:status",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.status.connected=e.connected,n.status.secure=e.secure,e.connected||n.channels.forEach(e=>{e.users=[],e.state=Zs.gC.PARTED}))}),re.A.on("channel:state",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.state=e.state)}),re.A.on("network:info",function(e){const n=o.M_.getters.findNetwork(e.uuid);if(n)for(const t in e)n[t]=e[t]}),re.A.on("network:name",function(e){const n=o.M_.getters.findNetwork(e.uuid);n&&(n.name=n.channels[0].name=e.name)}),re.A.on("nick",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.nick=e.nick)}),re.A.on("open",function(e){if(e<1)return;if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e)return;const n=o.M_.getters.findChannel(e);n&&(n.channel.highlight=0,n.channel.unread=0,n.channel.messages.length>0&&(n.channel.firstUnread=n.channel.messages[n.channel.messages.length-1].id))}),re.A.on("part",async function(e){o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e.chan&&mc(o.M_.state.activeChannel.network.channels[0]);const n=o.M_.getters.findChannel(e.chan);if(!n)return;const t=n.network.channels.findIndex(n=>n.id===e.chan);n.network.channels.splice(t,1),await o.M_.dispatch("partChannel",n)}),re.A.on("quit",async function(e){const n=o.M_.state.activeChannel&&o.M_.state.activeChannel.network.uuid===e.network;o.M_.commit("removeNetwork",e.network),n&&(o.M_.state.networks.length>0?mc(o.M_.state.networks[0].channels[0]):await gc("Connect"))}),re.A.on("sync_sort:networks",function(e){o.M_.commit("sortNetworks",(n,t)=>e.order.indexOf(n.uuid)-e.order.indexOf(t.uuid))}),re.A.on("sync_sort:channels",function(e){const n=o.M_.getters.findNetwork(e.network);n&&n.channels.sort((n,t)=>e.order.indexOf(n.id)-e.order.indexOf(t.id))}),re.A.on("topic",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.topic=e.topic)}),re.A.on("users",function(e){if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e.chan)return re.A.emit("names",{target:e.chan});const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.usersOutdated=!0)}),re.A.on("sign-out",function(){Or.signout()}),re.A.on("sessions:list",function(e){e.sort((e,n)=>n.lastUse-e.lastUse),o.M_.commit("sessions",e)}),re.A.once("configuration",function(e){o.M_.commit("serverConfiguration",e),o.M_.dispatch("settings/applyAll"),e.fileUpload&&fi.initialize();const n=e.themes.find(e=>e.name===o.M_.state.settings.theme);void 0===n?o.M_.dispatch("settings/update",{name:"theme",value:e.defaultTheme,sync:!0}):n.themeColor&&(document.querySelector('meta[name="theme-color"]').content=n.themeColor),document.body.classList.contains("public")&&window.addEventListener("beforeunload",e=>{e.preventDefault(),e.returnValue="Are you sure you want to navigate away from this page?"})}),re.A.on("changelog",function(e){let n;if(o.M_.commit("versionData",e),o.M_.commit("versionDataExpired",!1),n=e.latest?"new-version":e.packages?"new-packages":e.current.changelog?"up-to-date":"error",o.M_.commit("versionStatus",n),e.expiresAt){const n=e.expiresAt-Date.now();n>0?setTimeout(()=>o.M_.commit("versionDataExpired",!0),n):o.M_.commit("versionDataExpired",!0)}}),re.A.on("changelog:newversion",()=>{o.M_.state.serverConfiguration&&(o.M_.state.serverConfiguration.isUpdateAvailable=!0)}),re.A.on("setting:new",async function(e){const n=e.name,t=e.value;await o.M_.dispatch("settings/update",{name:n,value:t,sync:!1})}),re.A.on("setting:all",async function(e){const n=Object.keys(e).length>0;if(o.M_.commit("serverHasSettings",n),n)for(const n in e)await o.M_.dispatch("settings/update",{name:n,value:e[n],sync:!1});else await o.M_.dispatch("settings/syncAll")}),re.A.on("history:clear",function(e){const n=o.M_.getters.findChannel(e.target);n?.channel&&(n.channel.messages=[],n.channel.unread=0,n.channel.highlight=0,n.channel.firstUnread=0,n.channel.moreHistoryAvailable=!1)}),re.A.on("mentions:list",function(e){o.M_.commit("mentions",e.map(Tu))}),re.A.on("search:results",e=>{const n=o.M_.state.messageSearchPendingQuery;n&&n.channelName===e.channelName&&n.networkUuid===e.networkUuid&&n.offset===e.offset&&n.searchTerm===e.searchTerm&&(o.M_.commit("messageSearchPendingQuery",null),o.M_.state.messageSearchResults?o.M_.commit("addMessageSearchResults",e):o.M_.commit("messageSearchResults",{results:e.results}))}),re.A.on("mute:changed",e=>{const{target:n,status:t}=e,a=o.M_.getters.findChannel(n);if(a?.channel.type===Zs.rR.LOBBY)for(const e of a.network.channels)e.type!==Zs.rR.SPECIAL&&(e.muted=t);else a&&(a.channel.muted=t)}),re.A.on("pin:changed",e=>{const{target:n,status:t}=e,a=o.M_.getters.findChannel(n);a&&(a.channel.pinned=t)}),re.A.on("channel:groups",e=>{const n=o.M_.getters.findChannel(e.chan)?.channel;n&&(n.groups=[...e.groups])});function Xu(e){if(0===o.M_.state.networks.length)return;const n=[];let t=-1;for(const e of o.M_.state.networks)for(const a of e.channels)te(e,a)||(-1===t&&o.M_.state.activeChannel?.channel===a&&(t=n.length),n.push(a));const a=n.length;t=((t+e)%a+a)%a,ju(n[t])}function ju(e){mc(e);const n=document.querySelector(`#sidebar .channel-list-item[aria-controls="#chan-${e.id}"]`);n&&n.scrollIntoView({block:"center",inline:"nearest"})}u().bind(["alt+up","alt+down"],function(e,n){return!!g(e)||(Xu("up"===n.split("+").pop()?-1:1),!1)}),function(e){let n=[];document.body.addEventListener("touchmove",function(e){if(2!==e.touches.length)return;const t=e.touches.item(0),a=e.touches.item(1);if(!t||!a)return;const s=window.performance.now(),o=[(t.screenX+a.screenX)/2,(t.screenY+a.screenY)/2];if(n.length>0){const e=n[n.length-1],t=e.center[0]===o[0]&&e.center[1]===o[1];if(e.timestamp===s||t)return}n.push({timestamp:s,center:o})},{passive:!0}),document.body.addEventListener("touchend",function(t){if(!(t.touches.length>=2))try{const t=function(e){if(e.length<2)return null;for(let n=1;n<e.length;++n){const t=e[n-1],a=e[n];if(Rc(t.center,a.center)/Math.abs(t.timestamp-a.timestamp)<.2)return null}return function([e,n],[t,a]){const s=(a-n)/(t-e);return Math.abs(s)<1?e<t?"e":"w":n<a?"s":"n"}(e[0].center,e[e.length-1].center)}(n);t&&e(t)}finally{n=[]}},{passive:!0}),document.body.addEventListener("touchcancel",function(){n=[]},{passive:!0})}(function(e){"e"!==e&&"w"!==e||Xu("e"===e?-1:1)}),u().bind(["alt+shift+up","alt+shift+down"],function(e,n){if(g(e))return!0;const t=o.M_.state.networks.length;if(0===t)return!1;const a="up"===n.split("+").pop()?-1:1;let s=0;return o.M_.state.activeChannel&&(s=o.M_.state.networks.findIndex(e=>e===o.M_.state.activeChannel?.network),-1===a&&o.M_.state.activeChannel?.channel.type!==Zs.rR.LOBBY||(s=((s+a)%t+t)%t)),ju(o.M_.state.networks[s].channels[0]),!1}),u().bind(["alt+mod+up","alt+mod+down"],function(e,n){if(g(e))return!0;const t=o.M_.state.networks.map(e=>e.channels.filter(e=>e.unread||e===o.M_.state.activeChannel?.channel)).flat();if(0===t.length)return;let a=t.findIndex(e=>e===o.M_.state.activeChannel?.channel);const s=t.length;return a=((a+("up"===n.split("+").pop()?-1:1))%s+s)%s,ju(t[a]),!1}),u().bind(["alt+a"],function(e){if(g(e))return!0;let n;e:for(const e of o.M_.state.networks)for(const t of e.channels){if(t.highlight){n=t;break e}t.unread&&!n&&(n=t)}return n&&ju(n),!1}),u().bind(["alt+/"],function(e){return!!g(e)||(gc("Help").catch(e=>console.log(e)),!1)});const Wu={8:!0,9:!0,12:!0,16:!0,17:!0,18:!0,19:!0,20:!0,27:!0,35:!0,36:!0,37:!0,38:!0,39:!0,40:!0,45:!0,46:!0,112:!0,113:!0,114:!0,115:!0,116:!0,117:!0,118:!0,119:!0,120:!0,121:!0,122:!0,123:!0,144:!0,145:!0,224:!0};document.addEventListener("keydown",e=>{if("Escape"===e.key&&"Help"===hc.currentRoute.value.name)return void hc.go(-1);if(e.altKey||Wu[e.which])return;if((e.ctrlKey||e.metaKey)&&86!==e.which)return;if(33===e.which||34===e.which){const e=document.querySelector(".window .chat-content .chat");return void(e&&e.focus())}const n=e.target.tagName;if("INPUT"===n||"TEXTAREA"===n)return;const t=document.getElementById("input");t&&(t.focus(),13===e.which&&e.preventDefault())});const Pu=document.getElementById("favicon"),Ru=Pu?.getAttribute("href")||"",Iu=Pu?.dataset.other||"",Nu=(0,s.Ef)(bu);Nu.use(hc),Nu.use(o.M_,o.Eb),Nu.mount("#app"),re.A.open(),o.M_.watch(e=>e.sidebarOpen,e=>{window.innerWidth>a.mobileViewportPixels&&(h.A.set("thelounge.state.sidebar",e.toString()),r.A.emit("resize"))}),o.M_.watch(e=>e.userlistOpen,e=>{h.A.set("thelounge.state.userlist",e.toString()),r.A.emit("resize")}),o.M_.watch((e,n)=>n.title,e=>{document.title=e}),o.M_.watch((e,n)=>n.highlightCount,e=>{Pu?.setAttribute("href",e>0?Iu:Ru);const n=window.navigator;n.setAppBadge&&(e>0?n.setAppBadge(e).catch(()=>{}):n.clearAppBadge&&n.clearAppBadge().catch(()=>{}))}),Nu.config.errorHandler=function(e){e instanceof Error?o.M_.commit("currentUserVisibleError",`Vue error: ${e.message}`):o.M_.commit("currentUserVisibleError",`Vue error: ${String(e)}`),console.error(e)}},9207:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641),s=t(33);const o={class:"content"},i=(0,a.pM)({name:"MessageTypeRaw",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,i,l,r){return(0,a.uX)(),(0,a.CE)("span",o,(0,s.v_)(e.message.text),1)}]])},9808:(e,n,t)=>{"use strict";t.d(n,{A:()=>a});const a={set(e,n){try{window.localStorage.setItem(e,n)}catch{}},get(e){try{return window.localStorage.getItem(e)}catch{return null}},remove(e){try{window.localStorage.removeItem(e)}catch{}},clear(){try{window.localStorage.clear()}catch{}}}},9956:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>l});var a=t(641);const s={class:"content"};var o=t(6640);const i=(0,a.pM)({name:"MessageTypeNick",components:{Username:o.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,t(6262).A)(i,[["render",function(e,n,t,o,i,l){const r=(0,a.g2)("Username");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(r,{user:e.message.from},null,8,["user"]),n[0]||(n[0]=(0,a.eW)(" is now known as ",-1)),(0,a.bF)(r,{user:{nick:e.message.new_nick,mode:e.message.from.mode}},null,8,["user"])])}]])},9971:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>c});var a=t(641);const s={class:"content"},o={key:0,class:"part-reason"};var i=t(3568),l=t(6640);const r=(0,a.pM)({name:"MessageTypeKick",components:{ParsedMessage:i.A,Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,t(6262).A)(r,[["render",function(e,n,t,i,l,r){const c=(0,a.g2)("Username"),u=(0,a.g2)("ParsedMessage");return(0,a.uX)(),(0,a.CE)("span",s,[(0,a.bF)(c,{user:e.message.from},null,8,["user"]),n[2]||(n[2]=(0,a.eW)(" has kicked; ",-1)),(0,a.bF)(c,{user:e.message.target},null,8,["user"]),e.message.text?((0,a.uX)(),(0,a.CE)("i",o,[n[0]||(n[0]=(0,a.eW)(" (",-1)),(0,a.bF)(u,{network:e.network,message:e.message},null,8,["network","message"]),n[1]||(n[1]=(0,a.eW)(")",-1))])):(0,a.Q3)("",!0)])}]])}},t={};function a(e){var s=t[e];if(void 0!==s)return s.exports;var o=t[e]={exports:{}};return n[e].call(o.exports,o,o.exports,a),o.exports}a.m=n,e=[],a.O=(n,t,s,o)=>{if(!t){var i=1/0;for(u=0;u<e.length;u++){t=e[u][0],s=e[u][1],o=e[u][2];for(var l=!0,r=0;r<t.length;r++)(!1&o||i>=o)&&Object.keys(a.O).every(e=>a.O[e](t[r]))?t.splice(r--,1):(l=!1,o<i&&(i=o));if(l){e.splice(u--,1);var c=s();void 0!==c&&(n=c)}}return n}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,s,o]},a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={936:0};a.O.j=n=>0===e[n];var n=(n,t)=>{var s,o,i=t[0],l=t[1],r=t[2],c=0;if(i.some(n=>0!==e[n])){for(s in l)a.o(l,s)&&(a.m[s]=l[s]);if(r)var u=r(a)}for(n&&n(t);c<i.length;c++)o=i[c],a.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return a.O(u)},t=self.webpackChunk_lordbex_thelounge=self.webpackChunk_lordbex_thelounge||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))})();var s=a.O(void 0,[110],()=>a(9056));s=a.O(s)})();
|
|
2
2
|
//# sourceMappingURL=bundle.js.map
|