@lordbex/thelounge 4.4.4-blowfish → 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/README.md +2 -2
- package/dist/defaults/config.js +31 -2
- package/dist/package.json +93 -91
- package/dist/server/client.js +188 -194
- package/dist/server/clientManager.js +65 -63
- package/dist/server/command-line/index.js +44 -43
- package/dist/server/command-line/install.js +37 -70
- package/dist/server/command-line/outdated.js +12 -17
- package/dist/server/command-line/start.js +25 -26
- package/dist/server/command-line/storage.js +26 -31
- package/dist/server/command-line/uninstall.js +16 -23
- package/dist/server/command-line/upgrade.js +20 -26
- package/dist/server/command-line/users/add.js +33 -40
- package/dist/server/command-line/users/edit.js +18 -24
- package/dist/server/command-line/users/index.js +12 -16
- package/dist/server/command-line/users/list.js +11 -39
- package/dist/server/command-line/users/remove.js +16 -22
- package/dist/server/command-line/users/reset.js +34 -35
- package/dist/server/command-line/utils.js +231 -87
- package/dist/server/config.js +61 -52
- package/dist/server/helper.js +29 -28
- package/dist/server/identification.js +39 -34
- package/dist/server/index.js +1 -3
- package/dist/server/log.js +19 -16
- package/dist/server/models/chan.js +36 -33
- package/dist/server/models/msg.js +15 -19
- package/dist/server/models/network.js +88 -86
- package/dist/server/models/prefix.js +4 -7
- package/dist/server/models/user.js +5 -10
- package/dist/server/path-helper.js +8 -0
- package/dist/server/plugins/auth/ldap.js +177 -112
- package/dist/server/plugins/auth/local.js +10 -15
- package/dist/server/plugins/auth.js +6 -35
- package/dist/server/plugins/changelog.js +30 -27
- package/dist/server/plugins/clientCertificate.js +33 -37
- package/dist/server/plugins/dev-server.js +15 -21
- package/dist/server/plugins/inputs/action.js +9 -14
- package/dist/server/plugins/inputs/away.js +1 -3
- package/dist/server/plugins/inputs/ban.js +9 -14
- package/dist/server/plugins/inputs/blow.js +9 -14
- package/dist/server/plugins/inputs/connect.js +5 -10
- package/dist/server/plugins/inputs/ctcp.js +7 -12
- package/dist/server/plugins/inputs/disconnect.js +1 -3
- package/dist/server/plugins/inputs/ignore.js +23 -29
- package/dist/server/plugins/inputs/ignorelist.js +12 -18
- package/dist/server/plugins/inputs/index.js +8 -34
- package/dist/server/plugins/inputs/invite.js +7 -12
- package/dist/server/plugins/inputs/kick.js +7 -12
- package/dist/server/plugins/inputs/kill.js +1 -3
- package/dist/server/plugins/inputs/list.js +1 -3
- package/dist/server/plugins/inputs/mode.js +10 -15
- package/dist/server/plugins/inputs/msg.js +13 -18
- package/dist/server/plugins/inputs/mute.js +9 -15
- package/dist/server/plugins/inputs/nick.js +9 -14
- package/dist/server/plugins/inputs/notice.js +5 -7
- package/dist/server/plugins/inputs/part.js +11 -16
- package/dist/server/plugins/inputs/quit.js +7 -13
- package/dist/server/plugins/inputs/rainbow.js +55 -0
- package/dist/server/plugins/inputs/raw.js +1 -3
- package/dist/server/plugins/inputs/rejoin.js +7 -12
- package/dist/server/plugins/inputs/topic.js +7 -12
- package/dist/server/plugins/inputs/whois.js +1 -3
- package/dist/server/plugins/irc-events/away.js +14 -20
- package/dist/server/plugins/irc-events/cap.js +16 -22
- package/dist/server/plugins/irc-events/chghost.js +14 -13
- package/dist/server/plugins/irc-events/connection.js +61 -63
- package/dist/server/plugins/irc-events/ctcp.js +22 -28
- package/dist/server/plugins/irc-events/error.js +20 -26
- package/dist/server/plugins/irc-events/help.js +7 -13
- package/dist/server/plugins/irc-events/info.js +7 -13
- package/dist/server/plugins/irc-events/invite.js +7 -13
- package/dist/server/plugins/irc-events/join.js +30 -27
- package/dist/server/plugins/irc-events/kick.js +21 -17
- package/dist/server/plugins/irc-events/link.js +75 -96
- package/dist/server/plugins/irc-events/list.js +23 -26
- package/dist/server/plugins/irc-events/message.js +46 -52
- package/dist/server/plugins/irc-events/mode.js +66 -63
- package/dist/server/plugins/irc-events/modelist.js +29 -35
- package/dist/server/plugins/irc-events/motd.js +10 -16
- package/dist/server/plugins/irc-events/names.js +3 -6
- package/dist/server/plugins/irc-events/nick.js +26 -23
- package/dist/server/plugins/irc-events/part.js +19 -15
- package/dist/server/plugins/irc-events/quit.js +17 -14
- package/dist/server/plugins/irc-events/sasl.js +9 -15
- package/dist/server/plugins/irc-events/spgroups.js +38 -0
- package/dist/server/plugins/irc-events/spjoin.js +52 -0
- package/dist/server/plugins/irc-events/topic.js +12 -18
- package/dist/server/plugins/irc-events/unhandled.js +12 -12
- package/dist/server/plugins/irc-events/welcome.js +7 -13
- package/dist/server/plugins/irc-events/whois.js +20 -24
- package/dist/server/plugins/massEventAggregator.js +214 -0
- package/dist/server/plugins/messageStorage/sqlite.js +322 -141
- package/dist/server/plugins/messageStorage/text.js +21 -26
- package/dist/server/plugins/packages/index.js +105 -74
- package/dist/server/plugins/packages/publicClient.js +7 -16
- package/dist/server/plugins/packages/themes.js +11 -16
- package/dist/server/plugins/storage.js +28 -33
- package/dist/server/plugins/sts.js +12 -17
- package/dist/server/plugins/uploader.js +40 -43
- package/dist/server/plugins/webpush.js +23 -51
- package/dist/server/server.js +318 -271
- package/dist/server/storageCleaner.js +29 -37
- package/dist/server/utils/fish.js +7 -14
- package/dist/shared/irc.js +3 -6
- package/dist/shared/linkify.js +7 -14
- package/dist/shared/types/chan.js +6 -9
- package/dist/shared/types/changelog.js +1 -2
- package/dist/shared/types/config.js +1 -2
- package/dist/shared/types/mention.js +1 -2
- package/dist/shared/types/msg.js +3 -5
- package/dist/shared/types/network.js +1 -2
- package/dist/shared/types/storage.js +1 -2
- package/dist/shared/types/user.js +1 -2
- package/index.js +14 -10
- package/package.json +93 -91
- package/public/css/style.css +9 -6
- package/public/css/style.css.map +1 -1
- package/public/fonts/font-awesome/fa-brands-400.ttf +0 -0
- package/public/fonts/font-awesome/fa-brands-400.woff2 +0 -0
- package/public/fonts/font-awesome/fa-duotone-900.ttf +0 -0
- package/public/fonts/font-awesome/fa-duotone-900.woff2 +0 -0
- package/public/fonts/font-awesome/fa-light-300.ttf +0 -0
- package/public/fonts/font-awesome/fa-light-300.woff2 +0 -0
- package/public/fonts/font-awesome/fa-regular-400.ttf +0 -0
- package/public/fonts/font-awesome/fa-regular-400.woff2 +0 -0
- package/public/fonts/font-awesome/fa-solid-900.ttf +0 -0
- package/public/fonts/font-awesome/fa-solid-900.woff2 +0 -0
- package/public/fonts/font-awesome/fa-thin-100.ttf +0 -0
- package/public/fonts/font-awesome/fa-thin-100.woff2 +0 -0
- package/public/fonts/font-awesome/fa-v4compatibility.ttf +0 -0
- package/public/fonts/font-awesome/fa-v4compatibility.woff2 +0 -0
- package/public/js/bundle.js +1 -1
- package/public/js/bundle.js.map +1 -1
- package/public/js/bundle.vendor.js +1 -1
- package/public/js/bundle.vendor.js.LICENSE.txt +24 -6
- package/public/js/bundle.vendor.js.map +1 -1
- package/public/service-worker.js +1 -1
- package/public/themes/default.css +1 -1
- package/public/themes/morning.css +1 -1
- package/dist/webpack.config.js +0 -224
package/public/js/bundle.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var e,n={1191:(e,n,a)=>{var t={"./away.vue":5247,"./back.vue":9186,"./chghost.vue":649,"./ctcp.vue":4307,"./ctcp_request.vue":4526,"./error.vue":7705,"./invite.vue":2394,"./join.vue":4521,"./kick.vue":5110,"./mode.vue":4288,"./mode_channel.vue":1900,"./mode_user.vue":1243,"./monospace_block.vue":2027,"./nick.vue":6141,"./part.vue":1927,"./quit.vue":8082,"./raw.vue":839,"./topic.vue":9152,"./topic_set_by.vue":443,"./whois.vue":6010};function s(e){var n=o(e);return a(n)}function o(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}s.keys=function(){return Object.keys(t)},s.resolve=o,e.exports=s,s.id=1191},2806:(e,n,a)=>{"use strict";a.d(n,{A:()=>s});const t=new Map,s=new class{on(e,n){t.has(e)?t.get(e).push(n):t.set(e,[n])}off(e,n){t.has(e)&&t.set(e,t.get(e).filter(e=>e!==n))}emit(e,...n){t.has(e)&&t.get(e).slice().map(e=>{e(...n)})}}},3388:(e,n,a)=>{"use strict";a.d(n,{A:()=>s});const t=["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))} ${t[n]}`}},7321:(e,n,a)=>{"use strict";a.d(n,{A:()=>o});var t=a(4353),s=a.n(t);const o=e=>s()(e).format("D MMMM YYYY, HH:mm:ss")},9808:(e,n,a)=>{"use strict";a.d(n,{A:()=>t});const t={set(e,n){try{window.localStorage.setItem(e,n)}catch(e){}},get(e){try{return window.localStorage.getItem(e)}catch(e){return null}},remove(e){try{window.localStorage.removeItem(e)}catch(e){}},clear(){try{window.localStorage.clear()}catch(e){}}}},381:(e,n,a)=>{"use strict";a.d(n,{A:()=>t});const t=(0,a(3105).Ay)({transports:JSON.parse(document.body.dataset.transports||"['polling', 'websocket']"),path:window.location.pathname+"socket.io/",autoConnect:!1,reconnection:!document.body.classList.contains("public")})},211:(e,n,a)=>{"use strict";a.d(n,{Eb:()=>f,M_:()=>b,Pj:()=>w});var t=a(2124),s=a(9808),o=a(381);const i={apply(){},default:null,sync:null},r={syncSettings:{default:!0,sync:"never",apply(e,n,a=!1){n&&!a&&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 a=document.getElementById("theme"),t=`themes/${n}.css`;if(!(a instanceof HTMLLinkElement))throw new Error("theme element is not a link");const s=a.attributes.getNamedItem("href");if(!s)throw new Error("theme is missing href attribute");if(s.value===t)return;if(s.value=t,!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}},l=function(e){const n={};for(const a in e)n[a]={...i,...e[a]};return n}(r);function c(){const e={};for(const n in l)e[n]=l[n].default;return e}function u(){let e={};try{e=JSON.parse(s.A.get("settings")||"{}")}catch(e){s.A.remove("settings")}return e?(null!==e.highlights&&"object"==typeof e.highlights&&(e.highlights=e.highlights.join(", ")),e):{}}function d(e,n){const a={...e};for(const t in e)void 0!==n[t]&&typeof e[t]==typeof n[t]&&(a[t]=n[t]);return a}const p=document.title;var h=function(e){return e.Unsupported="unsupported",e.Blocked="blocked",e.NoHttps="nohttps",e.Granted="granted",e}(h||{});function m(){return"Notification"in window?Notification.permission===h.Granted?h.Granted:window.isSecureContext?h.Blocked:h.NoHttps:h.Unsupported}const g={findChannelOnCurrentNetwork:e=>n=>(n=n.toLowerCase(),e.activeChannel?.network.channels.find(e=>e.name.toLowerCase()===n)),findChannelOnNetwork:e=>(n,a)=>{for(const t of e.networks)if(t.uuid===n)for(const e of t.channels)if(e.name===a)return{network:t,channel:e};return null},findChannel:e=>n=>{for(const a of e.networks)for(const e of a.channels)if(e.id===n)return{network:a,channel:e};return null},findNetwork:e=>n=>{for(const a of e.networks)if(a.uuid===n)return a;return null},highlightCount(e){let n=0;for(const a of e.networks)for(const e of a.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:m(),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=m()},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 a=[...n.results,...e.messageSearchResults.results];e.messageSearchResults={results:a}}},actions:{partChannel({commit:e,state:n},a){e("mentions",n.mentions.filter(e=>!(e.chanId===a.channel.id)))}},getters:g},f=Symbol(),b=(0,t.y$)(k),v=function(e){return{namespaced:!0,state:d(c(),u()),mutations:{set(e,{name:n,value:a}){e[n]=a}},actions:{syncAll({state:n},a=!1){if(!1!==n.syncSettings||!1!==a){e.commit("serverHasSettings",!0);for(const e in n)"never"===l[e].sync&&"always"!==l[e].sync||o.A.emit("setting:set",{name:e,value:n[e]})}},applyAll({state:n}){for(const a in l)l[a].apply(e,n[a],!0)},update({state:n,commit:a},{name:t,value:i,sync:r=!1}){if(n[t]===i)return;const c=l[t];c&&(!1!==r||!1!==n.syncSettings&&"never"!==c.sync)&&(a("set",{name:t,value:i}),s.A.set("settings",JSON.stringify(n)),c.apply(e,i),r&&(n.syncSettings&&"never"!==c.sync||"always"===c.sync)&&o.A.emit("setting:set",{name:t,value:i}))}}}}(b);function w(){return(0,t.Pj)(f)}b.registerModule("settings",v)},5244:(e,n,a)=>{"use strict";const t={colorCodeMap:[["00","White"],["01","Black"],["02","Blue"],["03","Green"],["04","Red"],["05","Brown"],["06","Magenta"],["07","Orange"],["08","Yellow"],["09","Light Green"],["10","Cyan"],["11","Light Cyan"],["12","Light Blue"],["13","Pink"],["14","Grey"],["15","Light Grey"]],commands:[],timeFormats:{msgDefault:"HH:mm",msgWithSeconds:"HH:mm:ss",msg12h:"hh:mm A",msg12hWithSeconds:"hh:mm:ss A"},mobileViewportPixels:768};var s=a(7657),o=a(211),i=a(6931),r=a(33);const l=(0,i.Lk)("div",{id:"upload-overlay"},null,-1);var c=a(2806),u=a(6411),d=a.n(u),p=a(7350),h=a.n(p),m=a(9808);const g=e=>("TEXTAREA"===e.target.tagName||"INPUT"===e.target.tagName)&&!!e.target.value,k={id:"sidebar",ref:"sidebar"},f={class:"scrollable-area"},b={class:"logo-container"},v=["src"],w=["src"],y={key:0,title:"The Lounge has been built in development mode",style:{backgroundColor:"#ff9e18",color:"#000",padding:"2px",borderRadius:"4px",fontSize:"12px"}},_={id:"footer"},C={class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":"Connect to network"},L=["aria-selected","onClick","onKeypress"],E={class:"tooltipped tooltipped-n tooltipped-no-touch","aria-label":"Settings"},x=["aria-selected","onClick","onKeypress"],M=["aria-label"],S=["aria-selected","onClick","onKeypress"];var A=a(6043),j=a(6166);const X={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"},P={class:"jump-to-input"},W=["value"],I={key:0,class:"jump-to-results"},R={key:0},O=["onMouseenter"],N={key:1,class:"no-results"},F=["id"];var U=a(246);const K={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}},q=(0,i.pM)({name:"Draggable",props:K,emits:["change","choose","unchoose"],setup(e,{emit:n}){const a=(0,A.KR)(null),t=(0,A.KR)(null);return(0,i.wB)(a,a=>{a&&(t.value=new U.Ay(a,{...e,onChoose(e){n("choose",e)},onUnchoose(e){n("unchoose",e)},onEnd(e){n("change",e)}}))}),(0,i.xo)(()=>{t.value&&(t.value.destroy(),a.value=null)}),{containerRef:a}}});var D=a(6262);const B=(0,D.A)(q,[["render",function(e,n,a,t,s,o){return(0,i.uX)(),(0,i.CE)("div",{ref:"containerRef",class:(0,r.C4)(e.$props.class)},[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.list,(n,a)=>(0,i.RG)(e.$slots,"item",{key:n[e.itemKey],element:n,index:a})),128))],2)}]]);var Q=a(4751),$=a.n(Q);const H=["aria-controls","aria-label","aria-expanded"],z=[(0,i.Lk)("span",{class:"collapse-network-icon"},null,-1)],V={key:1,class:"collapse-network"},J={class:"lobby-wrap"},Y=["title"],G={key:0,class:"not-secure-tooltip tooltipped tooltipped-w","aria-label":"Insecure connection"},Z=[(0,i.Lk)("span",{class:"not-secure-icon"},null,-1)],ee={key:1,class:"not-connected-tooltip tooltipped tooltipped-w","aria-label":"Disconnected"},ne=[(0,i.Lk)("span",{class:"not-connected-icon"},null,-1)],ae=["aria-label"],te=["aria-controls","aria-label"],se=(e,n)=>{const a=m.A.get("thelounge.networks.collapsed"),t=a?new Set(JSON.parse(a)):new Set;e.isCollapsed=n,n?t.add(e.uuid):t.delete(e.uuid),m.A.set("thelounge.networks.collapsed",JSON.stringify([...t]))},oe=e=>e<1e3?e.toString():(e/1e3).toFixed(2).slice(0,-1)+"k",ie=["aria-label","title","data-name","data-type","aria-controls","aria-selected"],re=(e,n)=>!(!e.isCollapsed||n.highlight||"lobby"===n.type||o.M_.state.activeChannel&&n===o.M_.state.activeChannel.channel),le={id:"sign-in",class:"window",role:"tabpanel","aria-label":"Sign-in"},ce=(0,i.Lk)("img",{src:"img/logo-vertical-transparent-bg.svg",class:"logo",alt:"The Lounge",width:"256",height:"170"},null,-1),ue=(0,i.Lk)("img",{src:"img/logo-vertical-transparent-bg-inverted.svg",class:"logo-inverted",alt:"The Lounge",width:"256",height:"170"},null,-1),de=(0,i.Lk)("label",{for:"signin-username"},"Username",-1),pe={class:"password-container"},he=(0,i.Lk)("label",{for:"signin-password"},"Password",-1),me=["type"],ge={key:0,class:"error"},ke=["disabled"];var fe=a(381);const be=["aria-label"],ve=["aria-label"],we=(0,i.pM)({name:"RevealPassword",setup(){const e=(0,A.KR)(!1);return{isVisible:e,onClick:()=>{e.value=!e.value}}}}),ye=(0,D.A)(we,[["render",function(e,n,a,t,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,r.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,ve)],10,be)])}]]),_e=(0,i.pM)({name:"SignIn",components:{RevealPassword:ye},setup(){const e=(0,A.KR)(!1),n=(0,A.KR)(!1),a=(0,A.KR)(m.A.get("user")||""),t=(0,A.KR)(""),s=()=>{e.value=!1,n.value=!0};return(0,i.sV)(()=>{fe.A.on("auth:failed",s)}),(0,i.xo)(()=>{fe.A.off("auth:failed",s)}),{inFlight:e,errorShown:n,username:a,password:t,onSubmit:s=>{if(s.preventDefault(),!a.value||!t.value)return;e.value=!0,n.value=!1;const o={user:a.value,password:t.value};m.A.set("user",o.user),fe.A.emit("auth:perform",o)}}}}),Ce=(0,D.A)(_e,[["render",function(e,n,a,t,o,r){const l=(0,i.g2)("RevealPassword");return(0,i.uX)(),(0,i.CE)("div",le,[(0,i.Lk)("form",{class:"container",method:"post",action:"",onSubmit:n[2]||(n[2]=(...n)=>e.onSubmit&&e.onSubmit(...n))},[ce,ue,de,(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",pe,[he,(0,i.bF)(l,null,{default:(0,i.k6)(a=>[(0,i.bo)((0,i.Lk)("input",{id:"signin-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.password=n),type:a.isVisible?"text":"password",class:"input",autocapitalize:"none",autocorrect:"off",autocomplete:"current-password",required:""},null,8,me),[[s.hp,e.password]])]),_:1})]),e.errorShown?((0,i.uX)(),(0,i.CE)("div",ge,"Authentication failed.")):(0,i.Q3)("",!0),(0,i.Lk)("button",{disabled:e.inFlight,type:"submit",class:"btn"},"Sign in",8,ke)],32)])}]]),Le={id:"connect",class:"window",role:"tabpanel","aria-label":"Connect"},Ee={class:"header"},xe={class:"title"},Me=(0,i.eW)(" Connect "),Se=(0,i.Lk)("h2",null,"Network settings",-1),Ae={class:"connect-row"},je=(0,i.Lk)("label",{for:"connect:name"},"Name",-1),Xe={class:"connect-row"},Te=(0,i.Lk)("label",{for:"connect:host"},"Server",-1),Pe={class:"input-wrap"},We=(0,i.Lk)("span",{id:"connect:portseparator"},":",-1),Ie={class:"connect-row"},Re=(0,i.Lk)("label",{for:"connect:password"},"Password",-1),Oe=["type"],Ne={class:"connect-row"},Fe=(0,i.Lk)("label",null,null,-1),Ue={class:"input-wrap"},Ke={class:"tls"},qe=["disabled"],De=(0,i.eW)(" Use secure connection (TLS) "),Be={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"},Qe={class:"tls"},$e=(0,i.eW)(" Only allow trusted certificates "),He=(0,i.Lk)("h2",null,"Proxy Settings",-1),ze={class:"connect-row"},Ve=(0,i.Lk)("label",null,null,-1),Je={class:"input-wrap"},Ye={for:"connect:proxyEnabled"},Ge=(0,i.eW)(" Enable Proxy "),Ze={class:"connect-row"},en=(0,i.Lk)("label",{for:"connect:proxyHost"},"SOCKS Address",-1),nn={class:"input-wrap"},an=(0,i.Lk)("span",{id:"connect:proxyPortSeparator"},":",-1),tn={class:"connect-row"},sn=(0,i.Lk)("label",{for:"connect:proxyUsername"},"Proxy username",-1),on={class:"connect-row"},rn=(0,i.Lk)("label",{for:"connect:proxyPassword"},"Proxy password",-1),ln=["type"],cn=(0,i.Lk)("h2",null,"Network settings",-1),un={class:"connect-row"},dn=(0,i.Lk)("label",{for:"connect:name"},"Name",-1),pn={class:"connect-row"},hn=(0,i.Lk)("label",{for:"connect:password"},"Password",-1),mn=["type"],gn=(0,i.Lk)("h2",null,"User preferences",-1),kn={class:"connect-row"},fn=(0,i.Lk)("label",{for:"connect:nick"},"Nick",-1),bn={key:2,class:"connect-row"},vn=(0,i.Lk)("label",{for:"connect:username"},"Username",-1),wn={class:"connect-row"},yn=(0,i.Lk)("label",{for:"connect:realname"},"Real name",-1),_n={class:"connect-row"},Cn=(0,i.Lk)("label",{for:"connect:leaveMessage"},"Leave message",-1),Ln={key:3,class:"connect-row"},En=(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),xn=["value"],Mn={key:4,class:"connect-row"},Sn=(0,i.Lk)("label",{for:"connect:channels"},"Channels",-1),An=(0,i.Lk)("h2",null,"FiSH (Blowfish)",-1),jn={class:"connect-row"},Xn=(0,i.Lk)("label",{for:"connect:fishGlobalKey"},"Global key",-1),Tn={class:"connect-row",style:{display:"block"}},Pn=(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),Wn={class:"fish-keys-section"},In={class:"input-wrap fish-key-inputs"},Rn=["onUpdate:modelValue"],On=["onUpdate:modelValue"],Nn=["disabled","onClick"],Fn={class:"connect-row"},Un={class:"connect-row"},Kn=(0,i.Lk)("label",null,null,-1),qn={class:"input-wrap"},Dn={class:"tls"},Bn=(0,i.eW)(" I have a password "),Qn={key:0,class:"connect-row"},$n=(0,i.Lk)("label",{for:"connect:password"},"Password",-1),Hn=["type"],zn=(0,i.Lk)("h2",{id:"label-auth"},"Authentication",-1),Vn={class:"connect-row connect-auth",role:"group","aria-labelledby":"label-auth"},Jn={class:"opt"},Yn=["checked"],Gn=(0,i.eW)(" No authentication "),Zn={class:"opt"},ea=["checked"],na=(0,i.eW)(" Username + password (SASL PLAIN) "),aa={key:0,class:"opt"},ta=["checked"],sa=(0,i.eW)(" Client certificate (SASL EXTERNAL) "),oa={class:"connect-row"},ia=(0,i.Lk)("label",{for:"connect:username"},"Account",-1),ra={class:"connect-row"},la=(0,i.Lk)("label",{for:"connect:password"},"Password",-1),ca=["type"],ua={key:1,class:"connect-sasl-external"},da=[(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)],pa=["disabled"],ha=(0,i.eW)("Save network"),ma=(0,i.eW)("Connect"),ga=(0,i.pM)({name:"SidebarToggle",setup:()=>({store:(0,o.Pj)()})}),ka=(0,D.A)(ga,[["render",function(e,n,a,t,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"))})}]]),fa=(0,i.pM)({name:"NetworkForm",components:{RevealPassword:ye,SidebarToggle:ka},props:{handleSubmit:{type:Function,required:!0},defaults:{type:Object,required:!0},disabled:Boolean},setup(e){const n=(0,o.Pj)(),a=(0,A.KR)(n.state.serverConfiguration),t=(0,A.KR)(e.defaults?.username),s=(0,A.KR)(!1),r=(0,A.KR)(null);(0,i.wB)(s,e=>{e&&(0,i.dY)(()=>{r.value?.focus()})});const l=(0,A.KR)(null),c=()=>{l.value&&(l.value.style.height="",l.value.style.height=`${Math.ceil(l.value.scrollHeight+2)}px`)};(0,i.wB)(()=>e.defaults?.commands,()=>{(0,i.dY)(()=>{c()})}),(0,i.wB)(()=>e.defaults?.tls,n=>{const a=[6667,6697],t=n?0:1;e.defaults?.port===a[t]&&(e.defaults.port=a[1-t])});const u=(0,A.KR)(null),d=(0,A.KR)([]),p=(0,i.EW)(()=>{const e={};for(const n of d.value){const a=n.target.trim(),t=n.key.trim();a&&t&&(e[a]=t)}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[a,t]of Object.entries(e))n.push({target:a,key:String(t??"")});return n.length>0?n:[{target:"",key:""}]})(e)},{immediate:!0}),{store:n,config:a,displayPasswordField:s,publicPassword:r,commandsInput:l,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!==t.value||(n.value=e.target?.value),t.value=e.target?.value},onSubmit:n=>{const a=new FormData(n.target),t={};a.forEach((e,n)=>{t[n]=e}),t.fishKeys=p.value,e.handleSubmit(t)},fishKeysEntries:d,fishKeysValue:p,addFishKeyEntry:()=>{d.value.push({target:"",key:""})},removeFishKeyEntry:e=>{d.value.length>1&&d.value.splice(e,1)}}}}),ba=(0,D.A)(fa,[["render",function(e,n,a,t,o,l){const c=(0,i.g2)("SidebarToggle"),u=(0,i.g2)("RevealPassword");return(0,i.uX)(),(0,i.CE)("div",Le,[(0,i.Lk)("div",Ee,[(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",xe,[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,r.v_)(e.defaults.name),1)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[Me,e.config?.lockNetwork&&e.store?.state.serverConfiguration?.public?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" to "+(0,r.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},[cn,(0,i.Lk)("div",un,[dn,(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",pn,[hn,(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(a=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password","onUpdate:modelValue":n[13]||(n[13]=n=>e.defaults.password=n),class:"input",type:a.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,mn),[[s.hp,e.defaults.password]])]),_:1})])],64)):(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[Se,(0,i.Lk)("div",Ae,[je,(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",Xe,[Te,(0,i.Lk)("div",Pe,[(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}]]),We,(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",Ie,[Re,(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(a=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:password","onUpdate:modelValue":n[4]||(n[4]=n=>e.defaults.password=n),class:"input",type:a.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,Oe),[[s.hp,e.defaults.password]])]),_:1})]),(0,i.Lk)("div",Ne,[Fe,(0,i.Lk)("div",Ue,[(0,i.Lk)("label",Ke,[(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,qe),[[s.lH,e.defaults.tls]]),De,e.defaults.hasSTSPolicy?((0,i.uX)(),(0,i.CE)("span",Be,"🔒 STS")):(0,i.Q3)("",!0)]),(0,i.Lk)("label",Qe,[(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]]),$e])])]),He,(0,i.Lk)("div",ze,[Ve,(0,i.Lk)("div",Je,[(0,i.Lk)("label",Ye,[(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]]),Ge])])]),e.defaults.proxyEnabled?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",Ze,[en,(0,i.Lk)("div",nn,[(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}]]),an,(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",tn,[sn,(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",on,[rn,(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(a=>[(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:a.isVisible?"text":"password",placeholder:"Proxy password",name:"proxyPassword",maxlength:"300"},null,8,ln),[[s.hp,e.defaults.proxyPassword]])]),_:1})])],64)):(0,i.Q3)("",!0)],64)),gn,(0,i.Lk)("div",kn,[fn,(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",bn,[vn,(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",wn,[yn,(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",_n,[Cn,(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",Ln,[En,(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,xn)])):e.defaults.uuid?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",Mn,[Sn,(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}]])])),An,(0,i.Lk)("div",jn,[Xn,(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",Tn,[Pn,(0,i.Lk)("div",Wn,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.fishKeysEntries,(n,a)=>((0,i.uX)(),(0,i.CE)("div",{key:a,class:"connect-row fish-key-row"},[(0,i.Lk)("div",In,[(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,Rn),[[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,On),[[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(a)}," Remove ",8,Nn)])]))),128)),(0,i.Lk)("div",Fn,[(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",Un,[Kn,(0,i.Lk)("div",qn,[(0,i.Lk)("label",Dn,[(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]]),Bn])])]),e.displayPasswordField?((0,i.uX)(),(0,i.CE)("div",Qn,[$n,(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(a=>[(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:a.isVisible?"text":"password",placeholder:"Server password (optional)",name:"password",maxlength:"300"},null,8,Hn),[[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},[zn,(0,i.Lk)("div",Vn,[(0,i.Lk)("label",Jn,[(0,i.Lk)("input",{checked:!e.defaults.sasl,type:"radio",name:"sasl",value:"",onChange:n[25]||(n[25]=n=>e.setSaslAuth(""))},null,40,Yn),Gn]),(0,i.Lk)("label",Zn,[(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,ea),na]),!e.store.state.serverConfiguration?.public&&e.defaults.tls?((0,i.uX)(),(0,i.CE)("label",aa,[(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,ta),sa])):(0,i.Q3)("",!0)]),"plain"===e.defaults.sasl?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("div",oa,[ia,(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",ra,[la,(0,i.bF)(u,{class:"input-wrap password-container"},{default:(0,i.k6)(a=>[(0,i.bo)((0,i.Lk)("input",{id:"connect:saslPassword","onUpdate:modelValue":n[29]||(n[29]=n=>e.defaults.saslPassword=n),class:"input",type:a.isVisible?"text":"password",name:"saslPassword",maxlength:"300",required:""},null,8,ca),[[s.hp,e.defaults.saslPassword]])]),_:1})])],64)):"external"===e.defaults.sasl?((0,i.uX)(),(0,i.CE)("div",ua,da)):(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},[ha],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[ma],64))],8,pa)])],32)])}]]),va=(0,i.pM)({name:"Connect",components:{NetworkForm:ba},props:{queryParams:Object},setup(e){const n=(0,o.Pj)(),a=(0,A.KR)(!1);return{defaults:(0,A.KR)(Object.assign({},n.state.serverConfiguration?.defaults,(e=>{if(!e)return{};const a={};for(let t of Object.keys(e)){let s=e[t];if(Array.isArray(s)&&(s=s[0]),"channels"===t&&(t="join"),Object.prototype.hasOwnProperty.call(n.state.serverConfiguration?.defaults,t)&&(!n.state.serverConfiguration?.lockNetwork||!["name","host","port","tls","rejectUnauthorized"].includes(t)))switch("join"===t&&(s=s.split(",").map(e=>e.match(/^[#&!+]/)?e:`#${e}`).join(", ")),typeof n.state.serverConfiguration?.defaults[t]){case"boolean":a[t]="0"!==s&&"false"!==s&&!!s;break;case"number":a[t]=Number(s);break;case"string":a[t]=String(s)}}return a})(e.queryParams))),disabled:a,handleSubmit:e=>{a.value=!0,fe.A.emit("network:new",e)}}}}),wa=(0,D.A)(va,[["render",function(e,n,a,t,s,o){const r=(0,i.g2)("NetworkForm");return(0,i.uX)(),(0,i.Wv)(r,{"handle-submit":e.handleSubmit,defaults:e.defaults,disabled:e.disabled},null,8,["handle-submit","defaults","disabled"])}]]),ya={id:"settings",class:"window",role:"tabpanel","aria-label":"Settings"},_a={class:"header"},Ca={class:"container"},La={class:"settings-menu"},Ea=(0,i.Lk)("h2",null,"Settings",-1),xa={role:"navigation","aria-label":"Settings tabs"},Ma=["aria-label","aria-selected"],Sa=["onClick","onKeypress"],Aa=(0,i.pM)({name:"SettingTabListItem",props:{name:{type:String,required:!0},className:{type:String,required:!0},to:{type:String,required:!0}},setup:()=>({route:(0,j.lq)()})}),ja=(0,D.A)(Aa,[["render",function(e,n,a,t,o,l){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:a})=>[(0,i.Lk)("button",{class:(0,r.C4)(["icon",e.className,{active:a}]),onClick:n,onKeypress:(0,s.jR)(n,["enter"])},(0,r.v_)(e.name),43,Sa)]),_:1},8,["to"])],8,Ma)}]]),Xa=ja,Ta=(0,i.pM)({name:"SettingsTabs",components:{SettingTabItem:Xa}}),Pa=(0,D.A)(Ta,[["render",function(e,n,a,t,s,o){const r=(0,i.g2)("SettingTabItem");return(0,i.uX)(),(0,i.CE)("aside",La,[Ea,(0,i.Lk)("ul",xa,[(0,i.bF)(r,{name:"General","class-name":"general",to:""}),(0,i.bF)(r,{name:"Appearance","class-name":"appearance",to:"appearance"}),(0,i.bF)(r,{name:"Notifications","class-name":"notifications",to:"notifications"}),(0,i.bF)(r,{name:"Account","class-name":"account",to:"account"})])])}]]),Wa=Pa,Ia=(0,i.pM)({name:"Settings",components:{SidebarToggle:ka,Navigation:Wa},setup(){const e=(0,o.Pj)();return{onChange:n=>{const a=n.target.name;if(["old_password","new_password","verify_password"].includes(a))return;let t;t="checkbox"===n.target.type?n.target.checked:n.target.value,e.dispatch("settings/update",{name:a,value:t,sync:!0})}}}}),Ra=(0,D.A)(Ia,[["render",function(e,n,a,t,o,r){const l=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("Navigation"),u=(0,i.g2)("router-view");return(0,i.uX)(),(0,i.CE)("div",ya,[(0,i.Lk)("div",_a,[(0,i.bF)(l)]),(0,i.bF)(c),(0,i.Lk)("div",Ca,[(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)])])}]]),Oa=Ra,Na={id:"help",class:"window",role:"tabpanel","aria-label":"Help"},Fa={class:"header"},Ua={class:"container"},Ka=(0,i.Lk)("h1",{class:"title"},"Help",-1),qa={class:"help-version-title"},Da=(0,i.Lk)("span",null,"About The Lounge",-1),Ba=(0,i.eW)("release notes"),Qa=(0,i.eW)(") "),$a={class:"about"},Ha=(0,i.eW)(" The Lounge is running from source ("),za=["href"],Va=(0,i.eW)("commit "),Ja=(0,i.eW)("). "),Ya=(0,i.eW)(" Compare "),Ga=["href"],Za=(0,i.eW)("between "),et=(0,i.eW)(" and "),nt=(0,i.Lk)("code",null,"master",-1),at=(0,i.eW)(" to see what you are missing "),tt=(0,i.eW)(" Compare "),st=["href"],ot=(0,i.eW)("between "),it=(0,i.eW)(" and "),rt=(0,i.eW)(" to see your local changes "),lt=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://thelounge.chat/",target:"_blank",rel:"noopener",class:"website-link"},"Website")],-1),ct=(0,i.Lk)("p",null,[(0,i.Lk)("a",{href:"https://thelounge.chat/docs/",target:"_blank",rel:"noopener",class:"documentation-link"},"Documentation")],-1),ut=(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),dt={key:0},pt={key:1,class:"help-item"},ht=(0,i.Lk)("div",{class:"subject gesture"},"Single-Finger Swipe Left",-1),mt=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Hide sidebar.")],-1),gt=[ht,mt],kt={key:2,class:"help-item"},ft=(0,i.Lk)("div",{class:"subject gesture"},"Single-Finger Swipe Right",-1),bt=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Show sidebar.")],-1),vt=[ft,bt],wt={key:3,class:"help-item"},yt=(0,i.Lk)("div",{class:"subject gesture"},"Two-Finger Swipe Left",-1),_t=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window in the channel list.")],-1),Ct=[yt,_t],Lt={key:4,class:"help-item"},Et=(0,i.Lk)("div",{class:"subject gesture"},"Two-Finger Swipe Right",-1),xt=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window in the channel list.")],-1),Mt=[Et,xt],St=(0,i.Lk)("h2",null,"Keyboard Shortcuts",-1),At={class:"help-item"},jt={class:"subject"},Xt={key:0},Tt=(0,i.Lk)("kbd",null,"Alt",-1),Pt=(0,i.eW)(),Wt=(0,i.Lk)("kbd",null,"Shift",-1),It=(0,i.eW)(),Rt=(0,i.Lk)("kbd",null,"↓",-1),Ot=[Tt,Pt,Wt,It,Rt],Nt={key:1},Ft=(0,i.Lk)("kbd",null,"⌥",-1),Ut=(0,i.eW)(),Kt=(0,i.Lk)("kbd",null,"⇧",-1),qt=(0,i.eW)(),Dt=(0,i.Lk)("kbd",null,"↓",-1),Bt=[Ft,Ut,Kt,qt,Dt],Qt=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next lobby in the channel list.")],-1),$t={class:"help-item"},Ht={class:"subject"},zt={key:0},Vt=(0,i.Lk)("kbd",null,"Alt",-1),Jt=(0,i.eW)(),Yt=(0,i.Lk)("kbd",null,"Shift",-1),Gt=(0,i.eW)(),Zt=(0,i.Lk)("kbd",null,"↑",-1),es=[Vt,Jt,Yt,Gt,Zt],ns={key:1},as=(0,i.Lk)("kbd",null,"⌥",-1),ts=(0,i.eW)(),ss=(0,i.Lk)("kbd",null,"⇧",-1),os=(0,i.eW)(),is=(0,i.Lk)("kbd",null,"↑",-1),rs=[as,ts,ss,os,is],ls=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous lobby in the channel list.")],-1),cs={class:"help-item"},us={class:"subject"},ds={key:0},ps=(0,i.Lk)("kbd",null,"Alt",-1),hs=(0,i.eW)(),ms=(0,i.Lk)("kbd",null,"Shift",-1),gs=(0,i.eW)(),ks=(0,i.Lk)("kbd",null,"←",-1),fs=[ps,hs,ms,gs,ks],bs={key:1},vs=(0,i.Lk)("kbd",null,"⌥",-1),ws=(0,i.eW)(),ys=(0,i.Lk)("kbd",null,"⇧",-1),_s=(0,i.eW)(),Cs=(0,i.Lk)("kbd",null,"←",-1),Ls=[vs,ws,ys,_s,Cs],Es=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Collapse current network.")],-1),xs={class:"help-item"},Ms={class:"subject"},Ss={key:0},As=(0,i.Lk)("kbd",null,"Alt",-1),js=(0,i.eW)(),Xs=(0,i.Lk)("kbd",null,"Shift",-1),Ts=(0,i.eW)(),Ps=(0,i.Lk)("kbd",null,"→",-1),Ws=[As,js,Xs,Ts,Ps],Is={key:1},Rs=(0,i.Lk)("kbd",null,"⌥",-1),Os=(0,i.eW)(),Ns=(0,i.Lk)("kbd",null,"⇧",-1),Fs=(0,i.eW)(),Us=(0,i.Lk)("kbd",null,"→",-1),Ks=[Rs,Os,Ns,Fs,Us],qs=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Expand current network.")],-1),Ds={class:"help-item"},Bs={class:"subject"},Qs={key:0},$s=(0,i.Lk)("kbd",null,"Alt",-1),Hs=(0,i.eW)(),zs=(0,i.Lk)("kbd",null,"↓",-1),Vs=[$s,Hs,zs],Js={key:1},Ys=(0,i.Lk)("kbd",null,"⌥",-1),Gs=(0,i.eW)(),Zs=(0,i.Lk)("kbd",null,"↓",-1),eo=[Ys,Gs,Zs],no=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window in the channel list.")],-1),ao={class:"help-item"},to={class:"subject"},so={key:0},oo=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"↑",-1)],io={key:1},ro=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"↑",-1)],lo=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window in the channel list.")],-1),co={class:"help-item"},uo={class:"subject"},po={key:0},ho=[(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)],mo={key:1},go=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"↓",-1)],ko=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the next window with unread messages in the channel list.")],-1),fo={class:"help-item"},bo={class:"subject"},vo={key:0},wo=[(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)],yo={key:1},_o=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"↑",-1)],Co=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the previous window with unread messages in the channel list.")],-1),Lo={class:"help-item"},Eo={class:"subject"},xo={key:0},Mo=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"A",-1)],So={key:1},Ao=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"A",-1)],jo=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the first window with unread messages.")],-1),Xo={class:"help-item"},To={class:"subject"},Po={key:0},Wo=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)],Io={key:1},Ro=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)],Oo=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle sidebar.")],-1),No={class:"help-item"},Fo={class:"subject"},Uo={key:0},Ko=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)],qo={key:1},Do=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)],Bo=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle channel user list.")],-1),Qo={class:"help-item"},$o={class:"subject"},Ho={key:0},zo=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"J",-1)],Vo={key:1},Jo=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"J",-1)],Yo=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle jump to channel switcher.")],-1),Go={class:"help-item"},Zo={class:"subject"},ei={key:0},ni=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)],ai={key:1},ti=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)],si=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Toggle recent mentions popup.")],-1),oi={class:"help-item"},ii={class:"subject"},ri={key:0},li=[(0,i.Lk)("kbd",null,"Alt",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"/",-1)],ci={key:1},ui=[(0,i.Lk)("kbd",null,"⌥",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"/",-1)],di=(0,i.Lk)("div",{class:"description"},[(0,i.Lk)("p",null,"Switch to the help menu.")],-1),pi=(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),hi=(0,i.Lk)("h2",null,"Formatting Shortcuts",-1),mi={class:"help-item"},gi={class:"subject"},ki={key:0},fi=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"K",-1)],bi={key:1},vi=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"K",-1)],wi=(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),yi={class:"help-item"},_i={class:"subject"},Ci={key:0},Li=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"B",-1)],Ei={key:1},xi=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"B",-1)],Mi=(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),Si={class:"help-item"},Ai={class:"subject"},ji={key:0},Xi=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)],Ti={key:1},Pi=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"U",-1)],Wi=(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),Ii={class:"help-item"},Ri={class:"subject"},Oi={key:0},Ni=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"I",-1)],Fi={key:1},Ui=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"I",-1)],Ki=(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),qi={class:"help-item"},Di={class:"subject"},Bi={key:0},Qi=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)],$i={key:1},Hi=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"S",-1)],zi=(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),Vi={class:"help-item"},Ji={class:"subject"},Yi={key:0},Gi=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)],Zi={key:1},er=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"M",-1)],nr=(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),ar={class:"help-item"},tr={class:"subject"},sr={key:0},or=[(0,i.Lk)("kbd",null,"Ctrl",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"O",-1)],ir={key:1},rr=[(0,i.Lk)("kbd",null,"⌘",-1),(0,i.eW)(),(0,i.Lk)("kbd",null,"O",-1)],lr=(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),cr=(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),ur={key:5,class:"help-item"},dr=[(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)],pr=(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),hr={key:0},mr={key:1},gr=(0,i.eW)(" The Lounge "),kr=(0,i.eW)(" (pre-release) "),fr=(0,i.eW)(" is now available. "),br=(0,i.Lk)("br",null,null,-1),vr=["href"],wr={key:2},yr=[(0,i.eW)(" The Lounge is up to date, but there are out of date packages Run "),(0,i.Lk)("code",null,"thelounge upgrade",-1),(0,i.eW)(" on the server to upgrade packages. ")],_r=(0,i.Lk)("p",null,"The Lounge is up to date!",-1),Cr=(0,i.Lk)("p",null,"Information about latest release could not be retrieved.",-1),Lr=(0,i.pM)({name:"VersionChecker",setup(){const e=(0,o.Pj)(),n=()=>{e.commit("versionData",null),e.commit("versionStatus","loading"),fe.A.emit("changelog")};return(0,i.sV)(()=>{e.state.versionData||n()}),{store:e,checkNow:n}}}),Er=(0,D.A)(Lr,[["render",function(e,n,a,t,s,o){return(0,i.uX)(),(0,i.CE)("div",{id:"version-checker",class:(0,r.C4)([e.store.state.versionStatus])},["loading"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",hr,"Checking for updates…")):(0,i.Q3)("",!0),"new-version"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",mr,[gr,(0,i.Lk)("b",null,(0,r.v_)(e.store.state.versionData?.latest.version),1),e.store.state.versionData?.latest.prerelease?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[kr],64)):(0,i.Q3)("",!0),fr,br,(0,i.Lk)("a",{href:e.store.state.versionData?.latest.url,target:"_blank",rel:"noopener"}," Read more on GitHub ",8,vr)])):(0,i.Q3)("",!0),"new-packages"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)("p",wr,yr)):(0,i.Q3)("",!0),"up-to-date"===e.store.state.versionStatus?((0,i.uX)(),(0,i.CE)(i.FK,{key:3},[_r,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},[Cr,(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)}]]),xr=(0,i.pM)({name:"Help",components:{SidebarToggle:ka,VersionChecker:Er},setup(){const e=(0,o.Pj)();return{isApple:navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)||!1,isTouch:navigator.maxTouchPoints>0,store:e}}}),Mr=(0,D.A)(xr,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("router-link"),u=(0,i.g2)("VersionChecker");return(0,i.uX)(),(0,i.CE)("div",Na,[(0,i.Lk)("div",Fa,[(0,i.bF)(l)]),(0,i.Lk)("div",Ua,[Ka,(0,i.Lk)("h2",qa,[Da,(0,i.Lk)("small",null,[(0,i.eW)(" v"+(0,r.v_)(e.store.state.serverConfiguration?.version)+" (",1),(0,i.bF)(c,{id:"view-changelog",to:"/changelog"},{default:(0,i.k6)(()=>[Ba]),_:1}),Qa])]),(0,i.Lk)("div",$a,[(0,i.bF)(u),e.store.state.serverConfiguration?.gitCommit?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("p",null,[Ha,(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/tree/${e.store.state.serverConfiguration?.gitCommit}`,target:"_blank",rel:"noopener"},[Va,(0,i.Lk)("code",null,(0,r.v_)(e.store.state.serverConfiguration?.gitCommit),1)],8,za),Ja]),(0,i.Lk)("ul",null,[(0,i.Lk)("li",null,[Ya,(0,i.Lk)("a",{href:`https://github.com/LordBex/thelounge/compare/${e.store.state.serverConfiguration?.gitCommit}...master`,target:"_blank",rel:"noopener"},[Za,(0,i.Lk)("code",null,(0,r.v_)(e.store.state.serverConfiguration?.gitCommit),1),et,nt],8,Ga),at]),(0,i.Lk)("li",null,[tt,(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"},[ot,(0,i.Lk)("code",null,(0,r.v_)(e.store.state.serverConfiguration?.version),1),it,(0,i.Lk)("code",null,(0,r.v_)(e.store.state.serverConfiguration?.gitCommit),1)],8,st),rt])])],64)):(0,i.Q3)("",!0),lt,ct,ut]),e.isTouch?((0,i.uX)(),(0,i.CE)("h2",dt,"Gestures")):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",pt,gt)):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",kt,vt)):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",wt,Ct)):(0,i.Q3)("",!0),e.isTouch?((0,i.uX)(),(0,i.CE)("div",Lt,Mt)):(0,i.Q3)("",!0),St,(0,i.Lk)("div",At,[(0,i.Lk)("div",jt,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Nt,Bt)):((0,i.uX)(),(0,i.CE)("span",Xt,Ot))]),Qt]),(0,i.Lk)("div",$t,[(0,i.Lk)("div",Ht,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ns,rs)):((0,i.uX)(),(0,i.CE)("span",zt,es))]),ls]),(0,i.Lk)("div",cs,[(0,i.Lk)("div",us,[e.isApple?((0,i.uX)(),(0,i.CE)("span",bs,Ls)):((0,i.uX)(),(0,i.CE)("span",ds,fs))]),Es]),(0,i.Lk)("div",xs,[(0,i.Lk)("div",Ms,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Is,Ks)):((0,i.uX)(),(0,i.CE)("span",Ss,Ws))]),qs]),(0,i.Lk)("div",Ds,[(0,i.Lk)("div",Bs,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Js,eo)):((0,i.uX)(),(0,i.CE)("span",Qs,Vs))]),no]),(0,i.Lk)("div",ao,[(0,i.Lk)("div",to,[e.isApple?((0,i.uX)(),(0,i.CE)("span",io,ro)):((0,i.uX)(),(0,i.CE)("span",so,oo))]),lo]),(0,i.Lk)("div",co,[(0,i.Lk)("div",uo,[e.isApple?((0,i.uX)(),(0,i.CE)("span",mo,go)):((0,i.uX)(),(0,i.CE)("span",po,ho))]),ko]),(0,i.Lk)("div",fo,[(0,i.Lk)("div",bo,[e.isApple?((0,i.uX)(),(0,i.CE)("span",yo,_o)):((0,i.uX)(),(0,i.CE)("span",vo,wo))]),Co]),(0,i.Lk)("div",Lo,[(0,i.Lk)("div",Eo,[e.isApple?((0,i.uX)(),(0,i.CE)("span",So,Ao)):((0,i.uX)(),(0,i.CE)("span",xo,Mo))]),jo]),(0,i.Lk)("div",Xo,[(0,i.Lk)("div",To,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Io,Ro)):((0,i.uX)(),(0,i.CE)("span",Po,Wo))]),Oo]),(0,i.Lk)("div",No,[(0,i.Lk)("div",Fo,[e.isApple?((0,i.uX)(),(0,i.CE)("span",qo,Do)):((0,i.uX)(),(0,i.CE)("span",Uo,Ko))]),Bo]),(0,i.Lk)("div",Qo,[(0,i.Lk)("div",$o,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Vo,Jo)):((0,i.uX)(),(0,i.CE)("span",Ho,zo))]),Yo]),(0,i.Lk)("div",Go,[(0,i.Lk)("div",Zo,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ai,ti)):((0,i.uX)(),(0,i.CE)("span",ei,ni))]),si]),(0,i.Lk)("div",oi,[(0,i.Lk)("div",ii,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ci,ui)):((0,i.uX)(),(0,i.CE)("span",ri,li))]),di]),pi,hi,(0,i.Lk)("div",mi,[(0,i.Lk)("div",gi,[e.isApple?((0,i.uX)(),(0,i.CE)("span",bi,vi)):((0,i.uX)(),(0,i.CE)("span",ki,fi))]),wi]),(0,i.Lk)("div",yi,[(0,i.Lk)("div",_i,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Ei,xi)):((0,i.uX)(),(0,i.CE)("span",Ci,Li))]),Mi]),(0,i.Lk)("div",Si,[(0,i.Lk)("div",Ai,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Ti,Pi)):((0,i.uX)(),(0,i.CE)("span",ji,Xi))]),Wi]),(0,i.Lk)("div",Ii,[(0,i.Lk)("div",Ri,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Fi,Ui)):((0,i.uX)(),(0,i.CE)("span",Oi,Ni))]),Ki]),(0,i.Lk)("div",qi,[(0,i.Lk)("div",Di,[e.isApple?((0,i.uX)(),(0,i.CE)("span",$i,Hi)):((0,i.uX)(),(0,i.CE)("span",Bi,Qi))]),zi]),(0,i.Lk)("div",Vi,[(0,i.Lk)("div",Ji,[e.isApple?((0,i.uX)(),(0,i.CE)("span",Zi,er)):((0,i.uX)(),(0,i.CE)("span",Yi,Gi))]),nr]),(0,i.Lk)("div",ar,[(0,i.Lk)("div",tr,[e.isApple?((0,i.uX)(),(0,i.CE)("span",ir,rr)):((0,i.uX)(),(0,i.CE)("span",sr,or))]),lr]),cr,e.store.state.settings.searchEnabled?((0,i.uX)(),(0,i.CE)("div",ur,dr)):(0,i.Q3)("",!0),pr])])}]]),Sr={id:"changelog",class:"window","aria-label":"Changelog"},Ar={class:"header"},jr={class:"container"},Xr=(0,i.eW)("« Help"),Tr={class:"title"},Pr=(0,i.Lk)("h3",null,"Introduction",-1),Wr=["innerHTML"],Ir=(0,i.Lk)("p",null,"Unable to retrieve changelog for current release from GitHub.",-1),Rr=["href"],Or={key:1},Nr=(0,i.pM)({name:"Changelog",components:{SidebarToggle:ka},setup(){const e=(0,o.Pj)(),n=(0,A.KR)(null),a=()=>{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||fe.A.emit("changelog"),a()}),(0,i.$u)(()=>{a()}),{store:e}}}),Fr=(0,D.A)(Nr,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("SidebarToggle"),c=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("div",Sr,[(0,i.Lk)("div",Ar,[(0,i.bF)(l)]),(0,i.Lk)("div",jr,[(0,i.bF)(c,{id:"back-to-help",to:"/help"},{default:(0,i.k6)(()=>[Xr]),_: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",Tr," Release notes for "+(0,r.v_)(e.store.state.versionData.current.version),1),e.store.state.versionData.current.changelog?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[Pr,(0,i.Lk)("div",{ref:"changelog",class:"changelog-text",innerHTML:e.store.state.versionData.current.changelog},null,8,Wr)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[Ir,(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,Rr)):(0,i.Q3)("",!0)])],64))],64)):((0,i.uX)(),(0,i.CE)("p",Or,"Loading changelog…"))])])}]]),Ur=(0,i.pM)({name:"NetworkEdit",components:{NetworkForm:ba},setup(){const e=(0,j.lq)(),n=(0,o.Pj)(),a=(0,A.KR)(!1),t=(0,A.KR)(null),s=()=>{fe.A.emit("network:get",String(e.params.uuid||"")),t.value=n.getters.findNetwork(String(e.params.uuid||""))};return(0,i.wB)(()=>e.params.uuid,()=>{s()}),(0,i.sV)(()=>{s()}),{disabled:a,networkData:t,handleSubmit:e=>{a.value=!0,fe.A.emit("network:edit",e);const t=n.getters.findNetwork(e.uuid);t&&(t.name=t.channels[0].name=e.name,sm(t.channels[0]))}}}}),Kr=(0,D.A)(Ur,[["render",function(e,n,a,t,s,o){const r=(0,i.g2)("NetworkForm");return e.networkData?((0,i.uX)(),(0,i.Wv)(r,{key:0,"handle-submit":e.handleSubmit,defaults:e.networkData,disabled:e.disabled},null,8,["handle-submit","defaults","disabled"])):(0,i.Q3)("",!0)}]]),qr={id:"chat-container",class:"window"},Dr={class:"chat-view","data-type":"search-results","aria-label":"Search results",role:"tabpanel"},Br={key:0,class:"header"},Qr={class:"title"},$r=(0,i.eW)("Searching in "),Hr={class:"channel-name"},zr=(0,i.eW)(" for"),Vr={class:"topic"},Jr={key:1,class:"chat-content"},Yr={ref:"chat",class:"chat",tabindex:"-1"},Gr={class:"show-more"},Zr=["disabled"],el={key:0},nl={key:1},al={key:0,class:"search-status"},tl={key:1,class:"search-status"},sl={class:"messages",role:"log","aria-live":"polite","aria-relevant":"additions"},ol=["onClick"],il=["id","data-type","data-command","data-from"],rl=["aria-label"],ll={class:"from"},cl={class:"content"},ul=(0,i.Lk)("span",{class:"from"},[(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"*** ")],-1),dl=(0,i.Lk)("span",{class:"from"},[(0,i.Lk)("span",{class:"only-copy"},"* ")],-1),pl={class:"content",dir:"auto"},hl=(0,i.eW)(),ml={key:0,class:"from"},gl=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"<",-1),kl=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"> ",-1),fl={key:1,class:"from"},bl=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"[",-1),vl=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"] ",-1),wl={key:2,class:"from"},yl=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"-",-1),_l=(0,i.Lk)("span",{class:"only-copy","aria-hidden":"true"},"- ",-1),Cl={class:"content",dir:"auto"},Ll={key:0,"aria-label":"This message was shown in your active channel",class:"msg-shown-in-active tooltipped tooltipped-e"},El=[(0,i.Lk)("span",null,null,-1)],xl=["aria-label"];var Ml=a(4353),Sl=a.n(Ml),Al=a(7321),jl=a(7758);const Xl={key:0,ref:"container",class:"preview",dir:"ltr"},Tl=["href"],Pl=["src"],Wl={class:"toggle-text",dir:"auto"},Il={class:"head"},Rl={class:"overflowable"},Ol=["href","title"],Nl=["aria-expanded","aria-label"],Fl=[(0,i.Lk)("span",{class:"more-caret"},null,-1)],Ul={class:"body overflowable"},Kl=["href","title"],ql=["href"],Dl=["src"],Bl=["src","type"],Ql=["src","type"],$l={key:0},Hl=["href"],zl=(0,i.eW)(" to open it in a new window. "),Vl=(0,i.eW)(" A preview could not be loaded. "),Jl=["href"],Yl=(0,i.eW)(" to open it in a new window. "),Gl=(0,i.Lk)("br",null,null,-1),Zl={class:"prefetch-error"},ec=["aria-expanded","aria-label"],nc=[(0,i.Lk)("span",{class:"more-caret"},null,-1)];var ac=a(3388);const tc=(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)(),a=(0,A.KR)(!1),t=(0,A.KR)(!1),s=(0,i.WQ)(sg);(0,j.V6)((e,n,a)=>{if(s?.value?.link)return s.value.closeViewer(),a(!1);a()});const r=(0,A.KR)(null),l=(0,A.KR)(null),u=(0,i.EW)(()=>t.value?"Less":"More"),d=(0,i.EW)(()=>{if(e.link.maxSize)return(0,ac.A)(e.link.maxSize)}),p=()=>{(0,i.dY)(()=>{r.value&&l.value&&(a.value=r.value.offsetWidth>=l.value.offsetWidth)}).catch(e=>{console.error("Error in LinkPreview.handleResize",e)})},h=()=>{e.link.sourceLoaded=!0,e.keepScrollPosition(),"link"===e.link.type&&p()},m=()=>{"loading"!==e.link.type&&("error"===e.link.type&&h(),"link"===e.link.type&&(p(),e.keepScrollPosition()))},g=()=>{if(null!==e.link.shown)return;let a=!1;switch(e.link.type){case"error":"image-too-big"===e.link.error&&(a=n.state.settings.media);break;case"link":a=n.state.settings.links;break;default:a=n.state.settings.media}e.link.shown=a};return g(),(0,i.wB)(()=>e.link.type,()=>{g(),m()}),(0,i.sV)(()=>{c.A.on("resize",p),m()}),(0,i.xo)(()=>{c.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:()=>{t.value=!t.value,e.keepScrollPosition()},onPreviewReady:h,onPreviewUpdate:m,showMoreButton:a,isContentShown:t,content:r,container:l}}}),sc=(0,D.A)(tc,[["render",function(e,n,a,t,o,l){return e.link.shown?(0,i.bo)(((0,i.uX)(),(0,i.CE)("div",Xl,[(0,i.Lk)("div",{ref:"content",class:(0,r.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,Pl)],8,Tl)),[[s.aG,e.link.sourceLoaded]]):(0,i.Q3)("",!0),(0,i.Lk)("div",Wl,[(0,i.Lk)("div",Il,[(0,i.Lk)("div",Rl,[(0,i.Lk)("a",{href:e.link.link,title:e.link.head,target:"_blank",rel:"noopener"},(0,r.v_)(e.link.head),9,Ol)]),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))},Fl,8,Nl)):(0,i.Q3)("",!0)]),(0,i.Lk)("div",Ul,[(0,i.Lk)("a",{href:e.link.link,title:e.link.body,target:"_blank",rel:"noopener"},(0,r.v_)(e.link.body),9,Kl)])])],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,Dl),[[s.aG,e.link.sourceLoaded]])],8,ql)):"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,Bl)],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,Ql)],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",$l,[(0,i.eW)(" This image is larger than "+(0,r.v_)(e.imageMaxSize)+" and cannot be previewed. ",1),(0,i.Lk)("a",{href:e.link.link,target:"_blank",rel:"noopener"},"Click here",8,Hl),zl])):"message"===e.link.error?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[(0,i.Lk)("div",null,[(0,i.Lk)("em",null,[Vl,(0,i.Lk)("a",{href:e.link.link,target:"_blank",rel:"noopener"},"Click here",8,Jl),Yl]),Gl,(0,i.Lk)("pre",Zl,(0,r.v_)(e.link.message),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))},nc,8,ec)],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 oc=a(5162);const ic=a(1191),rc=ic.keys().reduce((e,n)=>(e["message-"+n.substring(2,n.length-4)]=ic(n).default,e),{});rc.ParsedMessage=oc.A,rc.LinkPreview=sc,rc.Username=jl.A;const lc=(0,i.pM)({name:"Message",components:rc,props:{message:{type:Object,required:!0},channel:{type:Object,required:!1},network:{type:Object,required:!0},keepScrollPosition:Function,isPreviousSource:Boolean,focused:Boolean},setup(e){const n=(0,o.Pj)(),a=(0,i.EW)(()=>{let e;return e=n.state.settings.use12hClock?n.state.settings.showSeconds?"msg12hWithSeconds":"msg12h":n.state.settings.showSeconds?"msgWithSeconds":"msgDefault",t.timeFormats[e]}),s=(0,i.EW)(()=>Sl()(e.message.time).format(a.value)),r=(0,i.EW)(()=>(0,Al.A)(e.message.time)),l=(0,i.EW)(()=>"message-"+(e.message.type||"invalid"));return{timeFormat:a,messageTime:s,messageTimeLocale:r,messageComponent:l,isAction:()=>!!e.message.type&&void 0!==rc["message-"+e.message.type]}}}),cc=(0,D.A)(lc,[["render",function(e,n,a,t,s,o){const l=(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.message.id,class:(0,r.C4)(["msg",{self:e.message.self,highlight:e.message.highlight||e.focused,"previous-source":e.isPreviousSource}]),"data-type":e.message.type,"data-command":e.message.command,"data-from":e.message.from&&e.message.from.nick},[(0,i.Lk)("span",{"aria-hidden":"true","aria-label":e.messageTimeLocale,class:"time tooltipped tooltipped-e"},(0,r.v_)(`${e.messageTime} `),9,rl),"unhandled"===e.message.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.Lk)("span",ll,"["+(0,r.v_)(e.message.command)+"]",1),(0,i.Lk)("span",cl,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.message.params,(e,n)=>((0,i.uX)(),(0,i.CE)("span",{key:n},(0,r.v_)(` ${e} `),1))),128))])],64)):e.isAction()?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[ul,((0,i.uX)(),(0,i.Wv)((0,i.$y)(e.messageComponent),{network:e.network,message:e.message},null,8,["network","message"]))],64)):"action"===e.message.type?((0,i.uX)(),(0,i.CE)(i.FK,{key:2},[dl,(0,i.Lk)("span",pl,[(0,i.bF)(l,{user:e.message.from,network:e.network,channel:e.channel,dir:"auto"},null,8,["user","network","channel"]),hl,(0,i.bF)(c,{message:e.message},null,8,["message"]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.message.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.message.type?((0,i.uX)(),(0,i.CE)("span",ml,[e.message.from&&e.message.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[gl,(0,i.bF)(l,{user:e.message.from,network:e.network,channel:e.channel},null,8,["user","network","channel"]),kl],64)):(0,i.Q3)("",!0)])):"plugin"===e.message.type?((0,i.uX)(),(0,i.CE)("span",fl,[e.message.from&&e.message.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[bl,(0,i.eW)(" "+(0,r.v_)(e.message.from.nick)+" ",1),vl],64)):(0,i.Q3)("",!0)])):((0,i.uX)(),(0,i.CE)("span",wl,[e.message.from&&e.message.from.nick?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[yl,(0,i.bF)(l,{user:e.message.from,network:e.network,channel:e.channel},null,8,["user","network","channel"]),_l],64)):(0,i.Q3)("",!0)])),(0,i.Lk)("span",Cl,[e.message.showInActive?((0,i.uX)(),(0,i.CE)("span",Ll,El)):(0,i.Q3)("",!0),e.message.statusmsgGroup?((0,i.uX)(),(0,i.CE)("span",{key:1,"aria-label":`This message was only shown to users with ${e.message.statusmsgGroup} mode`,class:"msg-statusmsg tooltipped tooltipped-e"},[(0,i.Lk)("span",null,(0,r.v_)(e.message.statusmsgGroup),1)],8,xl)):(0,i.Q3)("",!0),(0,i.bF)(c,{network:e.network,message:e.message},null,8,["network","message"]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.message.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,il)}]]),uc={class:"input-wrapper"},dc=(0,i.pM)({name:"MessageSearchForm",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,A.KR)(!1),a=(0,A.KR)(""),t=(0,j.rd)(),s=(0,j.lq)(),o=(0,A.KR)(null),r=(0,i.EW)(()=>"SearchResults"===s.name);return(0,i.wB)(s,e=>{e.query.q&&(a.value=String(e.query.q))}),(0,i.sV)(()=>{a.value=String(s.query.q||""),n.value=r.value,o.value&&!a.value&&n.value&&o.value.focus()}),{searchOpened:n,searchInput:a,searchInputField:o,closeSearch:()=>{r.value||(a.value="",n.value=!1)},toggleSearch:()=>{n.value?o.value?.blur():(n.value=!0,o.value?.focus())},searchMessages:n=>{n.preventDefault(),a.value&&t.push({name:"SearchResults",params:{id:e.channel.id},query:{q:a.value}}).catch(e=>{"NavigationDuplicated"===e.name&&c.A.emit("re-search")})},onSearchPage:r}}}),pc=(0,D.A)(dc,[["render",function(e,n,a,t,o,l){return(0,i.uX)(),(0,i.CE)("form",{class:(0,r.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",uc,[(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)}]]),hc=["aria-label"],mc={class:"date-marker"},gc=["aria-label"];var kc=a(8720),fc=a.n(kc);Sl().extend(fc());const bc=(0,i.pM)({name:"DateMarker",props:{message:{type:Object,required:!0},focused:Boolean},setup(e){const n=(0,i.EW)(()=>Sl()(e.message.time).format("D MMMM YYYY")),a=()=>(Date.now()-Date.parse(e.message.time.toString()))/36e5,t=()=>{a()>=48&&c.A.off("daychange",t)};return(0,i.sV)(()=>{a()<48&&c.A.on("daychange",t)}),(0,i.xo)(()=>{c.A.off("daychange",t)}),{localeDate:n,friendlyDate:()=>Sl()(e.message.time).calendar(null,{sameDay:"[Today]",lastDay:"[Yesterday]",lastWeek:"D MMMM YYYY",sameElse:"D MMMM YYYY"})}}}),vc=(0,D.A)(bc,[["render",function(e,n,a,t,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",mc,[(0,i.Lk)("span",{"aria-label":e.friendlyDate(),class:"date-marker-text"},null,8,gc)])],8,hc)}]]),wc=(0,i.pM)({name:"SearchResults",components:{SidebarToggle:ka,Message:cc,DateMarker:vc,MessageSearchForm:pc},setup(){const e=(0,o.Pj)(),n=(0,j.lq)(),a=((0,j.rd)(),(0,A.KR)()),t=(0,A.KR)(),s=(0,A.KR)(0),r=(0,A.KR)(!1),l=(0,A.KR)(0),u=(0,A.KR)(0),d=(0,i.EW)(()=>{const n=e.state.messageSearchResults?.results;return n||[]}),p=(0,i.EW)(()=>{const a=parseInt(String(n.params.id||""),10);return e.getters.findChannel(a)}),h=(0,i.EW)(()=>p.value?p.value.network:null),m=(0,i.EW)(()=>p.value?p.value.channel:null),g=()=>{p.value&&e.commit("activeChannel",p.value)},k=()=>{m.value&&sm(m.value)},f=()=>{s.value=0,e.commit("messageSearchResults",null),e.commit("messageSearchPendingQuery",null)},b=()=>{if(!h.value||!m.value)return;f();const a={networkUuid:h.value.uuid,channelName:m.value.name,searchTerm:String(n.query.q||""),offset:s.value};e.commit("messageSearchPendingQuery",a),fe.A.emit("search",a)},v=async()=>{await(0,i.dY)();const e=a.value;e&&(e.scrollTop=e.scrollHeight)};return(0,i.wB)(()=>n.params.id,()=>{b(),g()}),(0,i.wB)(()=>n.query,()=>{b(),g()}),(0,i.wB)(d,async()=>{if(r.value=!(!d.value.length||d.value.length%100),s.value){await(0,i.dY)();const e=a.value;if(!e)return;const n=e.scrollHeight;e.scrollTop=l.value+n-u.value}else await v()}),(0,i.sV)(()=>{g(),b(),c.A.on("escapekey",k),c.A.on("re-search",b)}),(0,i.hi)(()=>{c.A.off("escapekey",k),c.A.off("re-search",b),f()}),{chat:a,loadMoreButton:t,messages:d,moreResultsAvailable:r,network:h,channel:m,route:n,offset:s,store:e,setActiveChannel:g,closeSearch:k,shouldDisplayDateMarker:(e,n)=>{const a=d.value[n-1];return!a||new Date(a.time).getDay()!==new Date(e.time).getDay()},doSearch:b,onShowMoreClick:()=>{if(!a.value||!h.value||!m.value)return;s.value+=100,l.value=a.value.scrollTop,u.value=a.value.scrollHeight;const t={networkUuid:h.value.uuid,channelName:m.value.name,searchTerm:String(n.query.q||""),offset:s.value};e.commit("messageSearchPendingQuery",t),fe.A.emit("search",t)},jumpToBottom:v,jump:(e,n)=>{}}}}),yc=(0,D.A)(wc,[["render",function(e,n,a,t,o,l){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",qr,[(0,i.Lk)("div",{id:"chat",class:(0,r.C4)({"time-seconds":e.store.state.settings.showSeconds,"time-12h":e.store.state.settings.use12hClock})},[(0,i.Lk)("div",Dr,[e.network&&e.channel?((0,i.uX)(),(0,i.CE)("div",Br,[(0,i.bF)(c),(0,i.Lk)("span",Qr,[$r,(0,i.Lk)("span",Hr,(0,r.v_)(e.channel.name),1),zr]),(0,i.Lk)("span",Vr,(0,r.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",Jr,[(0,i.Lk)("div",Yr,[(0,i.bo)((0,i.Lk)("div",Gr,[(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",el,"Loading…")):((0,i.uX)(),(0,i.CE)("span",nl,"Show older messages"))],8,Zr)],512),[[s.aG,e.moreResultsAvailable]]),e.store.state.messageSearchPendingQuery&&!e.offset?((0,i.uX)(),(0,i.CE)("div",al," Searching… ")):e.messages.length||e.offset?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",tl," No results found. ")),(0,i.Lk)("div",sl,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.messages,(n,a)=>((0,i.uX)(),(0,i.CE)("div",{key:n.id,class:"result",onClick:t=>e.jump(n,a)},[e.shouldDisplayDateMarker(n,a)?((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},null,8,["channel","network","message","data-id"]))],8,ol))),128))])],512)])):(0,i.Q3)("",!0)])],2)])}]]),_c=["data-current-channel"],Cc=["id","data-type","aria-label"],Lc={class:"header"},Ec=["aria-label"],xc={key:0,class:"topic-container"},Mc=["value"],Sc=[(0,i.Lk)("span",{type:"button","aria-label":"Save topic"},null,-1)],Ac=["title"],jc={key:3,class:"rt-tooltip tooltipped tooltipped-w","aria-label":"Toggle user list"},Xc={key:0,class:"chat-content"},Tc={class:"chat"},Pc={class:"messages"},Wc={class:"msg"},Ic={key:1,class:"chat-content"},Rc=[(0,i.Lk)("div",{class:"scroll-down-arrow"},null,-1)],Oc={ref:"chat",class:"chat",tabindex:"-1"},Nc={class:"show-more"},Fc=["disabled"],Uc={key:0},Kc={key:1},qc=[(0,i.Lk)("span",{class:"unread-marker-text"},null,-1)],Dc=/\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,Bc=new Set(["away","back","chghost","join","kick","mode","nick","part","quit"]);let Qc=function(e){return e.CHANNEL="channel",e.LOBBY="lobby",e.QUERY="query",e.SPECIAL="special",e}({}),$c=function(e){return e.BANLIST="list_bans",e.INVITELIST="list_invites",e.CHANNELLIST="list_channels",e.IGNORELIST="list_ignored",e}({}),Hc=function(e){return e[e.PARTED=0]="PARTED",e[e.JOINED=1]="JOINED",e}({}),zc=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}({});const Vc={class:"condensed-summary"},Jc=(0,i.Lk)("span",{class:"time"},null,-1),Yc=(0,i.Lk)("span",{class:"from"},null,-1),Gc=(0,i.Lk)("button",{class:"toggle-button","aria-label":"Toggle status messages"},null,-1),Zc=(0,i.pM)({name:"MessageCondensed",components:{Message:cc},props:{network:{type:Object,required:!0},messages:{type:Array,required:!0},keepScrollPosition:{type:Function,required:!0},focused:Boolean},setup(e){const n=(0,A.KR)(!0),a=(0,i.EW)(()=>{const n={};Bc.forEach(e=>{n[e]=0});for(const a of e.messages)if(a.type===zc.MODE){const e=(a.text?a.text:"").split(" ")[0].split("").filter(e=>"+"!==e&&"-"!==e).length;n[a.type]+=e}else{if(!a.type){console.log(`empty message type, this should not happen: ${a.id}`);continue}n[a.type]++}n.part+=n.quit;const a=[];if(Bc.forEach(e=>{if(n[e])switch(e){case"chghost":a.push(String(n[e])+(n[e]>1?" users have changed hostname":" user has changed hostname"));break;case"join":a.push(String(n[e])+(n[e]>1?" users have joined":" user has joined"));break;case"part":a.push(String(n[e])+(n[e]>1?" users have left":" user has left"));break;case"nick":a.push(String(n[e])+(n[e]>1?" users have changed nick":" user has changed nick"));break;case"kick":a.push(String(n[e])+(n[e]>1?" users were kicked":" user was kicked"));break;case"mode":a.push(String(n[e])+(n[e]>1?" modes were set":" mode was set"));break;case"away":a.push("marked away "+(n[e]>1?String(n[e])+" times":"once"));break;case"back":a.push("marked back "+(n[e]>1?String(n[e])+" times":"once"))}}),a.length){let e=a.pop();return a.length&&(e=a.join(", ")+", and "+e),e}return""});return{isCollapsed:n,condensedText:a,onCollapseClick:()=>{n.value=!n.value,e.keepScrollPosition()}}}}),eu=(0,D.A)(Zc,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",{class:(0,r.C4)(["msg",{closed:e.isCollapsed}]),"data-type":"condensed"},[(0,i.Lk)("div",Vc,[Jc,Yc,(0,i.Lk)("span",{class:"content",onClick:n[0]||(n[0]=(...n)=>e.onCollapseClick&&e.onCollapseClick(...n))},[(0,i.eW)((0,r.v_)(e.condensedText),1),Gc])]),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.messages,n=>((0,i.uX)(),(0,i.Wv)(l,{key:n.id,network:e.network,message:n},null,8,["network","message"]))),128))],2)}]]);let nu=!1;const au=(0,i.pM)({name:"MessageList",components:{Message:cc,MessageCondensed:eu,DateMarker:vc},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},focused:Number},setup(e){const n=(0,o.Pj)(),a=(0,A.KR)(null),t=(0,A.KR)(null),s=(0,A.KR)(null),r=(0,A.KR)(!1),l=(0,A.KR)(!1),u=()=>{r.value=!0,e.channel.scrolledToBottom=!0;const n=a.value;n&&(n.scrollTop=n.scrollHeight)},d=()=>{if(!n.state.isConnected)return;let a=-1;for(const n of e.channel.messages)if(!n.showInActive){a=n.id;break}e.channel.historyLoading=!0,fe.A.emit("more",{target:e.channel.id,lastId:a,condensed:"shown"!==n.state.settings.statusMessages})},p=e=>{e.forEach(e=>{e.isIntersecting&&d()})};(0,i.dY)(()=>{a.value&&(window.IntersectionObserver&&(s.value=new window.IntersectionObserver(p,{root:a.value})),u())}).catch(e=>{console.error("Error in new IntersectionObserver",e)});const h=(0,i.EW)(()=>{if(e.channel.type!==Qc.CHANNEL&&e.channel.type!==Qc.QUERY)return e.channel.messages;if("hidden"===n.state.settings.statusMessages)return e.channel.messages.filter(e=>!Bc.has(e.type||""));if("condensed"!==n.state.settings.statusMessages)return e.channel.messages;let a=null;const t=[];for(const n of e.channel.messages)n.self||n.highlight||!Bc.has(n.type||"")?(a=null,t.push(n)):(a||(a={time:n.time,type:"condensed",messages:[]},t.push(a)),a.messages.push(n),a.id=n.id,n.id===e.channel.firstUnread&&(a=null));return t.map(e=>"condensed"===e.type&&1===e.messages.length?e.messages[0]:e)}),m=async()=>{if(l.value)return;const n=a.value;if(n)if(e.channel.scrolledToBottom)l.value=!0,await(0,i.dY)(),l.value=!1,u();else if(e.channel.historyLoading){const e=n.scrollHeight-n.scrollTop;l.value=!0,await(0,i.dY)(),l.value=!1,r.value=!0,n.scrollTop=n.scrollHeight-e}},g=()=>{if(r.value)return void(r.value=!1);const n=a.value;n&&(e.channel.scrolledToBottom=n.scrollHeight-n.scrollTop-n.offsetHeight<=30)},k=()=>{e.channel.scrolledToBottom&&u()};return(0,i.sV)(()=>{a.value?.addEventListener("scroll",g,{passive:!0}),c.A.on("resize",k),(0,i.dY)(()=>{s.value&&t.value&&s.value.observe(t.value)})}),(0,i.wB)(()=>e.channel.id,()=>{e.channel.scrolledToBottom=!0,s.value&&t.value&&(s.value.unobserve(t.value),s.value.observe(t.value))}),(0,i.wB)(()=>e.channel.messages,async()=>{await m()},{deep:!0}),(0,i.wB)(()=>e.channel.pendingMessage,async()=>{await m()}),(0,i.Ic)(()=>{nu=!1}),(0,i.xo)(()=>{c.A.off("resize",k),a.value?.removeEventListener("scroll",g)}),(0,i.hi)(()=>{s.value&&s.value.disconnect()}),{chat:a,store:n,onShowMoreClick:d,loadMoreButton:t,onCopy:()=>{a.value&&function(e){if(void 0!==window.InstallTrigger)return;const n=window.getSelection();if(!n)return;if(n.anchorNode===n.focusNode)return;const a=n.getRangeAt(0),t=a.cloneContents(),s=document.createElement("div");s.id="js-copy-hack",s.appendChild(t),e.appendChild(s),n.selectAllChildren(s),window.setTimeout(()=>{e.removeChild(s),n.removeAllRanges(),n.addRange(a)},0)}(a.value)},condensedMessages:h,shouldDisplayDateMarker:(e,n)=>{const a=h.value[n-1];if(!a)return!0;const t=new Date(a.time),s=new Date(e.time);return t.getDate()!==s.getDate()||t.getMonth()!==s.getMonth()||t.getFullYear()!==s.getFullYear()},shouldDisplayUnreadMarker:n=>!nu&&n>e.channel.firstUnread&&(nu=!0,!0),keepScrollPosition:m,isPreviousSource:(e,n)=>{const a=h.value[n-1];return a&&e.type===zc.MESSAGE&&a.type===zc.MESSAGE&&e.from&&a.from&&e.from.nick===a.from.nick},jumpToBottom:u,onLinkPreviewToggle:async(n,a)=>{await m(),fe.A.emit("msg:preview:toggle",{target:e.channel.id,msgId:a.id,link:n.link,shown:n.shown})}}}}),tu=(0,D.A)(au,[["render",function(e,n,a,t,o,r){const l=(0,i.g2)("DateMarker"),c=(0,i.g2)("MessageCondensed"),u=(0,i.g2)("Message");return(0,i.uX)(),(0,i.CE)("div",Oc,[(0,i.bo)((0,i.Lk)("div",Nc,[(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",Uc,"Loading…")):((0,i.uX)(),(0,i.CE)("span",Kc,"Show older messages"))],8,Fc)],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,(n,a)=>((0,i.uX)(),(0,i.CE)(i.FK,null,[e.shouldDisplayDateMarker(n,a)?((0,i.uX)(),(0,i.Wv)(l,{key:n.id+"-date",message:n,focused:n.id===e.focused},null,8,["message","focused"])):(0,i.Q3)("",!0),e.shouldDisplayUnreadMarker(Number(n.id))?((0,i.uX)(),(0,i.CE)("div",{key:n.id+"-unread",class:"unread-marker"},qc)):(0,i.Q3)("",!0),"condensed"===n.type?((0,i.uX)(),(0,i.Wv)(c,{key:n.messages[0].id,network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:n.messages,focused:n.id===e.focused},null,8,["network","keep-scroll-position","messages","focused"])):((0,i.uX)(),(0,i.Wv)(u,{key:n.id,channel:e.channel,network:e.network,message:n,"keep-scroll-position":e.keepScrollPosition,"is-previous-source":e.isPreviousSource(n,a),focused:n.id===e.focused,onToggleLinkPreview:e.onLinkPreviewToggle},null,8,["channel","network","message","keep-scroll-position","is-previous-source","focused","onToggleLinkPreview"]))],64))),256))],32)],512)}]]),su=(0,i.Lk)("span",{id:"upload-progressbar"},null,-1),ou={id:"nick"},iu=["value","placeholder","aria-label"],ru=["disabled"],lu={id:"submit-tooltip",class:"tooltipped tooltipped-w tooltipped-no-touch","aria-label":"Send message"},cu=["disabled"];var uu=a(2531),du=a(6e3),pu=a(9787);const hu=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":"🏴"}'),mu=Object.keys(hu),gu={id:"emoji",match:/(^|\s):([-+\w:?]{2,}):?$/,search(e,n){n(_u(e=e.replace(/:$/,""),mu))},template:([e,n])=>`<span class="emoji">${String(hu[n])}</span> ${e}`,replace:([,e])=>"$1"+String(hu[e]),index:2},ku={id:"nicks",match:/(^|\s)(@([a-zA-Z_[\]\\^{}|`@][a-zA-Z0-9_[\]\\^{}|`-]*)?)$/,search(e,n){"@"===(e=e.slice(1))[0]?n(Cu(e.slice(1),!0).map(e=>["@"+e[0],"@"+e[1]])):n(Cu(e,!0))},template:([e])=>e,replace:([,e])=>"$1"+yu(e),index:2},fu={id:"chans",match:/(^|\s)((?:#|\+|&|![A-Z0-9]{5})(?:[^\s]+)?)$/,search(e,n){n(function(e){const n=[];if(o.M_.state.activeChannel)for(const a of o.M_.state.activeChannel.network.channels)a.type===Qc.CHANNEL&&a.name[0]===e[0]&&n.push(a.name);return _u(e,n)}(e))},template:([e])=>e,replace:([,e])=>"$1"+e,index:2},bu={id:"commands",match:/^\/(\w*)$/,search(e,n){n(_u("/"+e,function(){let e=t.commands.slice();return o.M_.state.settings.searchEnabled||(e=e.filter(e=>"/search"!==e)),e}()))},template:([e])=>e,replace:([,e])=>e,index:1},vu={id:"foreground-colors",match:/\x03(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,n){e=e.toLowerCase(),n(t.colorCodeMap.filter(n=>$().test(e,n[0])||$().test(e,n[1])).map(n=>$().test(e,n[1])?[n[0],$().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},wu={id:"background-colors",match:/\x03(\d{2}),(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,n,a){e=e.toLowerCase(),n(t.colorCodeMap.filter(n=>$().test(e,n[0])||$().test(e,n[1])).map(n=>$().test(e,n[1])?[n[0],$().match(e,n[1],{pre:"<b>",post:"</b>"}).rendered]:n).map(e=>e.concat(a[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 yu(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 _u(e,n){return $().filter(e,n,{pre:"<b>",post:"</b>"}).map(e=>[e.string,e.original])}function Cu(e,n){const a=function(){if(!o.M_.state.activeChannel)return[];if(o.M_.state.activeChannel.channel.users.length>0)return o.M_.state.activeChannel.channel.users.slice().sort((e,n)=>n.lastMessage-e.lastMessage).map(e=>e.nick);const e=o.M_.state.activeChannel.network.nick,n=o.M_.state.activeChannel.channel.name;return e!==n&&o.M_.state.activeChannel.channel.type===Qc.QUERY?[n,e]:[e]}();return e=e.toLowerCase(),n?_u(e,a):a.filter(n=>!n.toLowerCase().indexOf(e))}const Lu={collapse:function(){if(!o.M_.state.activeChannel)return!1;const e=[];for(const n of o.M_.state.activeChannel.channel.messages){let a=!1;for(const e of n.previews||[])e.shown&&(e.shown=!1,a=!0);a&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&fe.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 a=!1;for(const e of n.previews||[])e.shown||(e.shown=!0,a=!0);a&&e.push(n.id)}return!document.body.classList.contains("public")&&e.length>0&&fe.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 a=o.M_.state.activeChannel?.network.serverOptions.CHANTYPES,t=e[0].split(",");if(a&&a.length>0)for(let e=0;e<t.length;e++)a.includes(t[e][0])||(t[e]=a[0]+t[e]);n=t.join(",");const s=o.M_.getters.findChannelOnCurrentNetwork(n);if(!s)return o.M_.state.activeChannel&&fe.A.emit("input",{text:`/join ${n} ${e.length>1?e[1]:""}`,target:o.M_.state.activeChannel.channel.id}),!0;sm(s)}}else if(o.M_.state.activeChannel?.channel.type===Qc.CHANNEL)return fe.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&&(am.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)}},Eu=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(){fe.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,a=[];if(n){for(let e=0;e<n.length;e++)"file"===n[e].kind&&a.push(n[e].getAsFile());0!==a.length&&(e.preventDefault(),this.triggerUpload(a))}}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,a=o.M_.state.serverConfiguration?.fileUploadMaxFileSize||0;for(const n of e){if(!n)return;a>0&&n.size>a?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(){fe.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(()=>fe.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 a=new FileReader;a.onabort=()=>n(e),a.onerror=()=>a.abort(),a.onload=()=>{const t=new Image;t.onerror=()=>n(e),t.onload=()=>{const a=document.createElement("canvas");a.width=t.width,a.height=t.height;const s=a.getContext("2d");if(!s)throw new Error("Could not get canvas context in upload");s.drawImage(t,0,0),a.toBlob(a=>{n(new File([a],e.name))},e.type)},t.src=String(a.result)},a.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(n){e={error:`Upload aborted: ${this.xhr.statusText} (HTTP ${this.xhr.status})`}}this.handleResponse(e),this.xhr=null,this.fileQueue.length>0&&this.requestToken()}};const a=new FormData;a.append("file",n),this.xhr.open("POST",`uploads/new/${e}`),this.xhr.send(a)}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(),a=document.getElementById("input");if(!(a instanceof HTMLTextAreaElement))throw new Error("Could not find textbox in upload");const t=a.selectionStart,s=t>0?a.value.substring(0,t)+" ":"",o=a.value.substring(t),i=s+n+" ";(0,uu.update)(a,i+o),a.selectionStart=a.selectionEnd=i.length}abort(){this.fileQueue=[],this.xhr&&(this.xhr.abort(),this.xhr=null)}},xu={abort:()=>Eu.abort(),initialize:()=>Eu.init(),mounted:()=>Eu.mounted(),unmounted:()=>Eu.unmounted(),triggerUpload:e=>Eu.triggerUpload(e)},Mu={"mod+k":"","mod+b":"","mod+u":"","mod+i":"","mod+o":"","mod+s":"","mod+m":""},Su={'"':'"',"'":"'","(":")","<":">","[":"]","{":"}","*":"*","`":"`","~":"~",_:"_"},Au=(0,i.pM)({name:"ChatInput",props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),a=(0,A.KR)(),t=(0,A.KR)(),s=(0,A.KR)(),r=()=>{(0,i.dY)(()=>{if(!a.value)return;const e=window.getComputedStyle(a.value),n=parseFloat(e.lineHeight)||1;a.value.style.height="",a.value.style.height=Math.ceil(a.value.scrollHeight/n)*n+"px"})},l=()=>{a.value?.blur()};return(0,i.wB)(()=>e.channel.id,()=>{s.value&&s.value.hide()}),(0,i.wB)(()=>e.channel.pendingMessage,()=>{r()}),(0,i.sV)(()=>{if(c.A.on("escapekey",l),n.state.settings.autocomplete){if(!a.value)throw new Error("ChatInput autocomplete: input element is not available");s.value=function(e){let n=0,a="",t=[];e.addEventListener("input",e=>{"autocomplete"!==e.detail&&(n=0,t=[],a="")}),d()(e).bind("tab",s=>{if(o.M_.state.isAutoCompleting)return;s.preventDefault();const i=e.value;if(0===n){if(a=i.substring(0,e.selectionStart).split(/\s/).pop()||"",0===a.length)return;if(t=Cu(a,!1),0===t.length)return}const r=e.selectionStart-a.length,l=yu(String(t[n%t.length]),r),c=i.substring(e.selectionStart);e.value=i.substr(0,r)+l+c,e.selectionStart-=c.length,e.selectionEnd=e.selectionStart,e.dispatchEvent(new CustomEvent("input",{detail:"autocomplete"})),a=l,n++},"keydown");const s=[gu,ku,fu,bu,vu,wu],i=new pu.a(e),r=new du.Textcomplete(i,s,{dropdown:{className:"textcomplete-menu",placement:"top"}});return r.on("show",()=>{o.M_.commit("isAutoCompleting",!0)}),r.on("hidden",()=>{o.M_.commit("isAutoCompleting",!1)}),{hide(){r.hide()},destroy(){r.destroy(),o.M_.commit("isAutoCompleting",!1)}}}(a.value)}const t=d()(a.value);t.bind(Object.keys(Mu),function(e,n){const a=Mu[n];if(e.target)return(0,uu.wrapCursor)(e.target,a,e.target.selectionStart===e.target.selectionEnd?"":a),!1}),t.bind(Object.keys(Su),function(e,n){if(e.target?.selectionStart!==e.target.selectionEnd)return(0,uu.wrapCursor)(e.target,n,Su[n]),!1}),t.bind(["up","down"],(t,s)=>{if(n.state.isAutoCompleting||t.target.selectionStart!==t.target.selectionEnd||!a.value)return;const o=(a.value.value.slice(void 0,a.value.selectionStart).match(/\n/g)||[]).length,i=(a.value.value.match(/\n/g)||[]).length,{channel:l}=e;if(0===l.inputHistoryPosition&&(l.inputHistory[l.inputHistoryPosition]=l.pendingMessage),"up"===s&&0===o){if(!(l.inputHistoryPosition<l.inputHistory.length-1))return;l.inputHistoryPosition++}else{if(!("down"===s&&l.inputHistoryPosition>0&&o===i))return;l.inputHistoryPosition--}return l.pendingMessage=l.inputHistory[l.inputHistoryPosition],a.value.value=l.pendingMessage,r(),!1}),n.state.serverConfiguration?.fileUpload&&xu.mounted()}),(0,i.hi)(()=>{c.A.off("escapekey",l),s.value&&(s.value.destroy(),s.value=void 0),xu.unmounted(),xu.abort()}),{store:n,input:a,uploadInput:t,onUploadInputChange:()=>{if(!t.value||!t.value.files)return;const e=Array.from(t.value.files);xu.triggerUpload(e),t.value.value=""},openFileUpload:()=>{t.value?.click()},blurInput:l,onBlur:()=>{s.value&&s.value.hide()},setInputSize:r,upload:xu,getInputPlaceholder:e=>e.type===Qc.CHANNEL||e.type===Qc.QUERY?`Write to ${e.name}`:"",onSubmit:()=>{if(!a.value)return;if(a.value.click(),a.value.focus(),!n.state.isConnected)return!1;const t=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="",a.value.value="",r(),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(Lu,n)&&Lu[n](e))return!1}fe.A.emit("input",{target:t,text:o})},setPendingMessage:n=>{e.channel.pendingMessage=n.target.value,e.channel.inputHistoryPosition=0,r()}}}}),ju=(0,D.A)(Au,[["render",function(e,n,a,t,o,l){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"]))},[su,(0,i.Lk)("span",ou,(0,r.v_)(e.network.nick),1),(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,iu),e.store.state.serverConfiguration?.fileUpload?((0,i.uX)(),(0,i.CE)("span",{key:0,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,ru)])):(0,i.Q3)("",!0),(0,i.Lk)("span",lu,[(0,i.Lk)("button",{id:"submit",type:"submit","aria-label":"Send message",disabled:!e.store.state.isConnected},null,8,cu)])],32)}]]),Xu=["aria-label"],Tu={class:"count"},Pu=["value","placeholder"],Wu={class:"names"},Iu={"~":"owner","&":"admin","!":"admin","@":"op","%":"half-op","+":"voice","":"normal"},Ru=(0,i.pM)({name:"ChatUserList",components:{Username:jl.A},props:{channel:{type:Object,required:!0}},setup(e){const n=(0,A.KR)(""),a=(0,A.KR)(),t=(0,A.KR)(),s=(0,i.EW)(()=>{if(n.value)return(0,Q.filter)(n.value,e.channel.users,{pre:"<b>",post:"</b>",extract:e=>e.nick})}),o=(0,i.EW)(()=>{const a={};if(n.value&&s.value){const e=s.value;for(const n of e){const e=n.original.modes[0]||"";a[e]||(a[e]=[]),n.string=e+n.string,a[e].push(n)}}else for(const n of e.channel.users){const e=n.modes[0]||"";a[e]?a[e].push(n):a[e]=[n]}return a}),r=()=>{(0,i.dY)(()=>{const e=t.value?.querySelector(".active");e?.scrollIntoView({block:"nearest",inline:"nearest"})})};return{filteredUsers:s,groupedUsers:o,userSearchInput:n,activeUser:a,userlist:t,setUserSearchInput:e=>{n.value=e.target.value},getModeClass:e=>Iu[e],selectUser:()=>{if(!a.value||!t.value)return;const e=t.value.querySelector(".active");if(!e)return;const n=e.getBoundingClientRect(),s=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0,clientX:n.left,clientY:n.top+n.height});e.dispatchEvent(s)},hoverUser:e=>{a.value=e},removeHoverUser:()=>{a.value=null},navigateUserList:(t,o)=>{t.stopImmediatePropagation(),t.preventDefault();let i=e.channel.users;if(n.value&&s.value&&(i=s.value.map(e=>e.original)),!i.length)return void(a.value=null);const l=()=>{a.value=o?i[0]:i[i.length-1],r()};if(!a.value)return void l();let c=i.indexOf(a.value);if(-1!==c){for(c+=o;c<0;)c+=i.length;for(;c>i.length-1;)c-=i.length;a.value=i[c],r()}else l()}}}}),Ou=(0,D.A)(Ru,[["render",function(e,n,a,t,o,l){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",Tu,[(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,Pu)]),(0,i.Lk)("div",Wu,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.groupedUsers,(n,a)=>((0,i.uX)(),(0,i.CE)("div",{key:a,class:(0,r.C4)(["user-mode",e.getModeClass(String(a))])},[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,Xu)}]]),Nu={class:"ban-list"},Fu=(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),Uu={class:"hostmask"},Ku={class:"banned_by"},qu={class:"banned_at"},Du=(0,i.pM)({name:"ListBans",components:{ParsedMessage:oc.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,Al.A)(e)})}),Bu=(0,D.A)(Du,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",Nu,[Fu,(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",Uu,[(0,i.bF)(l,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",Ku,(0,r.v_)(n.banned_by),1),(0,i.Lk)("td",qu,(0,r.v_)(e.localetime(n.banned_at)),1)]))),128))])])}]]),Qu={class:"invite-list"},$u=(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),Hu={class:"hostmask"},zu={class:"invitened_by"},Vu={class:"invitened_at"},Ju=(0,i.pM)({name:"ListInvites",components:{ParsedMessage:oc.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,Al.A)(e)})}),Yu=(0,D.A)(Ju,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",Qu,[$u,(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",Hu,[(0,i.bF)(l,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",zu,(0,r.v_)(n.invited_by),1),(0,i.Lk)("td",Vu,(0,r.v_)(e.localetime(n.invited_at)),1)]))),128))])])}]]),Gu={key:0},Zu={key:1,class:"channel-list"},ed=(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),nd={class:"channel"},ad={class:"users"},td={class:"topic"},sd=(0,i.pM)({name:"ListChannels",components:{ParsedMessage:oc.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}}}),od=(0,D.A)(sd,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("ParsedMessage");return e.channel.data.text?((0,i.uX)(),(0,i.CE)("span",Gu,(0,r.v_)(e.channel.data.text),1)):((0,i.uX)(),(0,i.CE)("table",Zu,[ed,(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.channel},[(0,i.Lk)("td",nd,[(0,i.bF)(l,{network:e.network,text:n.channel},null,8,["network","text"])]),(0,i.Lk)("td",ad,(0,r.v_)(n.num_users),1),(0,i.Lk)("td",td,[(0,i.bF)(l,{network:e.network,text:n.topic},null,8,["network","text"])])]))),128))])]))}]]),id={class:"ignore-list"},rd=(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),ld={class:"hostmask"},cd={class:"when"},ud=(0,i.pM)({name:"ListIgnored",components:{ParsedMessage:oc.A},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0}},setup:()=>({localetime:Al.A})}),dd=(0,D.A)(ud,[["render",function(e,n,a,t,s,o){const l=(0,i.g2)("ParsedMessage");return(0,i.uX)(),(0,i.CE)("table",id,[rd,(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",ld,[(0,i.bF)(l,{network:e.network,text:n.hostmask},null,8,["network","text"])]),(0,i.Lk)("td",cd,(0,r.v_)(e.localetime(n.when)),1)]))),128))])])}]]),pd=(0,i.pM)({name:"Chat",components:{ParsedMessage:oc.A,MessageList:tu,ChatInput:ju,ChatUserList:Ou,SidebarToggle:ka,MessageSearchForm:pc},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},focused:Number},emits:["channel-changed"],setup(e,{emit:n}){const a=(0,o.Pj)(),t=(0,A.KR)(),s=(0,A.KR)(null),r=(0,i.EW)(()=>{switch(e.channel.special){case $c.BANLIST:return Bu;case $c.INVITELIST:return Yu;case $c.CHANNELLIST:return od;case $c.IGNORELIST:return dd}}),l=()=>{n("channel-changed",e.channel),fe.A.emit("open",e.channel.id),e.channel.usersOutdated&&(e.channel.usersOutdated=!1,fe.A.emit("names",{target:e.channel.id}))};return(0,i.wB)(()=>e.channel,()=>{l()}),(0,i.wB)(()=>e.channel.editTopic,e=>{e&&(0,i.dY)(()=>{s.value?.focus()})}),(0,i.sV)(()=>{l(),e.channel.editTopic&&(0,i.dY)(()=>{s.value?.focus()})}),{store:a,messageList:t,topicInput:s,specialComponent:r,hideUserVisibleError:()=>{a.commit("currentUserVisibleError",null)},editTopic:()=>{e.channel.type===Qc.CHANNEL&&(e.channel.editTopic=!0)},saveTopic:()=>{if(e.channel.editTopic=!1,!s.value)return;const n=s.value.value;if(e.channel.topic!==n){const a=e.channel.id,t=`/topic ${n}`;fe.A.emit("input",{target:a,text:t})}},openContextMenu:n=>{c.A.emit("contextmenu:channel",{event:n,channel:e.channel,network:e.network})},openMentions:e=>{c.A.emit("mentions:toggle",{event:e})}}}}),hd=(0,D.A)(pd,[["render",function(e,n,a,t,o,l){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"),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,r.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",Lc,[(0,i.bF)(c),(0,i.Lk)("span",{class:"title","aria-label":"Currently open "+e.channel.type},(0,r.v_)(e.channel.name),9,Ec),!0===e.channel.editTopic?((0,i.uX)(),(0,i.CE)("div",xc,[(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,Mc),(0,i.Lk)("span",{"aria-label":"Save topic",class:"save-topic",onClick:n[2]||(n[2]=(...n)=>e.saveTopic&&e.saveTopic(...n))},Sc)])):((0,i.uX)(),(0,i.CE)("span",{key:1,title:e.channel.topic,class:(0,r.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,Ac)),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",jc,[(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",Xc,[(0,i.Lk)("div",Tc,[(0,i.Lk)("div",Pc,[(0,i.Lk)("div",Wc,[((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",Ic,[(0,i.Lk)("div",{class:(0,r.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())},Rc,2),"channel"===e.channel.type?((0,i.uX)(),(0,i.Wv)(p,{key:0,channel:e.channel},null,8,["channel"])):(0,i.Q3)("",!0),(0,i.bF)(h,{ref:"messageList",network:e.network,channel:e.channel,focused:e.focused},null,8,["network","channel","focused"])]))],8,Cc)],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,r.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,_c)}]]),md=(0,i.pM)({name:"RoutedChat",components:{Chat:hd},setup(){const e=(0,j.lq)(),n=(0,o.Pj)(),a=(0,i.EW)(()=>{const a=parseInt(String(e.params.id||""),10);return n.getters.findChannel(a)}),t=()=>{a.value&&n.commit("activeChannel",a.value)};return(0,i.wB)(a,()=>{t()}),(0,i.sV)(()=>{t()}),{route:e,activeChannel:a,channelChanged:e=>{const a=e.id,t=n.getters.findChannel(a);t?.channel&&(t.channel.unread=0,t.channel.highlight=0)}}}}),gd=(0,D.A)(md,[["render",function(e,n,a,t,s,o){const r=(0,i.g2)("Chat");return e.activeChannel?((0,i.uX)(),(0,i.Wv)(r,{key:0,network:e.activeChannel.network,channel:e.activeChannel.channel,focused:parseInt(String(e.route.query.focused),10),onChannelChanged:e.channelChanged},null,8,["network","channel","focused","onChannelChanged"])):(0,i.Q3)("",!0)}]]),kd=(0,i.Lk)("h2",null,"Messages",-1),fd={class:"opt"},bd=["checked"],vd=(0,i.eW)(" Show "),wd=(0,i.Lk)("abbr",{title:"Message Of The Day"},"MOTD",-1),yd={class:"opt"},_d=["checked"],Cd=(0,i.eW)(" Include seconds in timestamp "),Ld={class:"opt"},Ed=["checked"],xd=(0,i.eW)(" Use 12-hour timestamps "),Md=(0,i.Lk)("h2",null,"Link previews",-1),Sd={class:"opt"},Ad=["checked"],jd=(0,i.eW)(" Auto-expand media "),Xd={class:"opt"},Td=["checked"],Pd=(0,i.eW)(" Auto-expand websites "),Wd=(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),Id={role:"group","aria-labelledby":"label-status-messages"},Rd={class:"opt"},Od=["checked"],Nd=(0,i.eW)(" Show all status messages individually "),Fd={class:"opt"},Ud=["checked"],Kd=(0,i.eW)(" Condense status messages together "),qd={class:"opt"},Dd=["checked"],Bd=(0,i.eW)(" Hide all status messages "),Qd=(0,i.Lk)("h2",null,"Visual Aids",-1),$d={class:"opt"},Hd=["checked"],zd=(0,i.eW)(" Enable colored nicknames "),Vd={class:"opt"},Jd=["checked"],Yd=(0,i.eW)(" Enable autocomplete "),Gd={class:"opt"},Zd=(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),ep=["value"],np=(0,i.Lk)("h2",null,"Theme",-1),ap=(0,i.Lk)("label",{for:"theme-select",class:"sr-only"},"Theme",-1),tp=["value"],sp=["value"],op=(0,i.Lk)("h2",null,"Custom Stylesheet",-1),ip=(0,i.Lk)("label",{for:"user-specified-css-input",class:"sr-only"}," Custom stylesheet. You can override any style with CSS here. ",-1),rp=["value"],lp=(0,i.pM)({name:"AppearanceSettings",setup:()=>({store:(0,o.Pj)()})}),cp=(0,D.A)(lp,[["render",function(e,n,a,t,s,o){return(0,i.uX)(),(0,i.CE)("div",null,[kd,(0,i.Lk)("div",null,[(0,i.Lk)("label",fd,[(0,i.Lk)("input",{checked:e.store.state.settings.motd,type:"checkbox",name:"motd"},null,8,bd),vd,wd])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",yd,[(0,i.Lk)("input",{checked:e.store.state.settings.showSeconds,type:"checkbox",name:"showSeconds"},null,8,_d),Cd])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Ld,[(0,i.Lk)("input",{checked:e.store.state.settings.use12hClock,type:"checkbox",name:"use12hClock"},null,8,Ed),xd])]),e.store.state.serverConfiguration?.prefetch?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[Md,(0,i.Lk)("div",null,[(0,i.Lk)("label",Sd,[(0,i.Lk)("input",{checked:e.store.state.settings.media,type:"checkbox",name:"media"},null,8,Ad),jd])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Xd,[(0,i.Lk)("input",{checked:e.store.state.settings.links,type:"checkbox",name:"links"},null,8,Td),Pd])])],64)):(0,i.Q3)("",!0),Wd,(0,i.Lk)("div",Id,[(0,i.Lk)("label",Rd,[(0,i.Lk)("input",{checked:"shown"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"shown"},null,8,Od),Nd]),(0,i.Lk)("label",Fd,[(0,i.Lk)("input",{checked:"condensed"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"condensed"},null,8,Ud),Kd]),(0,i.Lk)("label",qd,[(0,i.Lk)("input",{checked:"hidden"===e.store.state.settings.statusMessages,type:"radio",name:"statusMessages",value:"hidden"},null,8,Dd),Bd])]),Qd,(0,i.Lk)("div",null,[(0,i.Lk)("label",$d,[(0,i.Lk)("input",{checked:e.store.state.settings.coloredNicks,type:"checkbox",name:"coloredNicks"},null,8,Hd),zd]),(0,i.Lk)("label",Vd,[(0,i.Lk)("input",{checked:e.store.state.settings.autocomplete,type:"checkbox",name:"autocomplete"},null,8,Jd),Yd])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Gd,[Zd,(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,ep)])]),np,(0,i.Lk)("div",null,[ap,(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,r.v_)(e.displayName),9,sp))),128))],8,tp)]),(0,i.Lk)("div",null,[op,ip,(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,rp)])])}]]),up={key:0},dp=(0,i.Lk)("h2",null,"Native app",-1),pp={key:1},hp=(0,i.Lk)("h2",null,"File uploads",-1),mp={class:"opt"},gp=["checked"],kp=(0,i.eW)(" Attempt to remove metadata from images before uploading "),fp=(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),bp={key:2},vp=(0,i.Lk)("h2",null,"Settings synchronisation",-1),wp={class:"opt"},yp=["checked"],_p=(0,i.eW)(" Synchronize settings with other clients "),Cp={key:0,class:"settings-sync-panel"},Lp=(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),Ep=(0,i.Lk)("p",null," Use the button below to enable synchronization, and override any settings already synced to the server. ",-1),xp={key:1,class:"settings-sync-panel"},Mp=[(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)],Sp={key:3},Ap=(0,i.Lk)("h2",null,"Automatic away message",-1),jp={class:"opt"},Xp=(0,i.Lk)("label",{for:"awayMessage",class:"sr-only"},"Automatic away message",-1),Tp=["value"];let Pp=null;window.addEventListener("beforeinstallprompt",e=>{e.preventDefault(),Pp=e});const Wp=(0,i.pM)({name:"GeneralSettings",setup(){const e=(0,o.Pj)(),n=(0,A.KR)(!1),a=(0,i.EW)(()=>null!==Pp);return(0,i.sV)(()=>{n.value=!!window.navigator.registerProtocolHandler&&!e.state.serverConfiguration?.lockNetwork}),{store:e,canRegisterProtocol:n,hasInstallPromptEvent:a,nativeInstallPrompt:()=>{Pp&&(Pp.prompt().catch(e=>{console.error(e)}),Pp=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,"The Lounge"),window.navigator.registerProtocolHandler("ircs",e,"The Lounge")}}}}),Ip=(0,D.A)(Wp,[["render",function(e,n,a,t,o,r){return(0,i.uX)(),(0,i.CE)("div",null,[e.canRegisterProtocol||e.hasInstallPromptEvent?((0,i.uX)(),(0,i.CE)("div",up,[dp,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",pp,[hp,(0,i.Lk)("div",null,[(0,i.Lk)("label",mp,[(0,i.Lk)("input",{checked:e.store.state.settings.uploadCanvas,type:"checkbox",name:"uploadCanvas"},null,8,gp),kp,fp])])])):(0,i.Q3)("",!0),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",bp,[vp,(0,i.Lk)("label",wp,[(0,i.Lk)("input",{checked:e.store.state.settings.syncSettings,type:"checkbox",name:"syncSettings"},null,8,yp),_p]),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",Cp,[Lp,Ep,(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",xp,Mp))],64))])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",Sp,[Ap,(0,i.Lk)("label",jp,[Xp,(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,Tp)])]))])}]]),Rp={key:0,id:"change-password",role:"group","aria-labelledby":"label-change-password"},Op=(0,i.Lk)("h2",{id:"label-change-password"},"Change password",-1),Np={class:"password-container"},Fp=(0,i.Lk)("label",{for:"current-password",class:"sr-only"}," Enter current password ",-1),Up=["type"],Kp={class:"password-container"},qp=(0,i.Lk)("label",{for:"new-password",class:"sr-only"}," Enter desired new password ",-1),Dp=["type"],Bp={class:"password-container"},Qp=(0,i.Lk)("label",{for:"new-password-verify",class:"sr-only"}," Repeat new password ",-1),$p=["type"],Hp={key:0,class:"feedback success"},zp={key:1,class:"feedback error"},Vp={key:1,class:"session-list",role:"group"},Jp=(0,i.Lk)("h2",null,"Sessions",-1),Yp=(0,i.Lk)("h3",null,"Current session",-1),Gp=(0,i.Lk)("h3",null,"Active sessions",-1),Zp=(0,i.Lk)("h3",null,"Other sessions",-1),eh={key:2},nh={key:3},ah=[(0,i.Lk)("em",null,"You are not currently logged in to any other device.",-1)],th={class:"session-item"},sh={class:"session-item-info"},oh=["href"],ih={key:0,class:"session-usage"},rh={key:1,class:"session-usage"},lh=(0,i.eW)(" Last used on "),ch={class:"session-item-btn"},uh=(0,i.eW)("Sign out"),dh=(0,i.eW)("Revoke"),ph={reload(){window.location.reload()}};class hh{static signout(){m.A.clear(),ph.reload()}}const mh=(0,i.pM)({name:"Session",props:{session:{type:Object,required:!0}},setup:e=>({lastUse:(0,i.EW)(()=>(0,Al.A)(e.session.lastUse)),signOut:()=>{e.session.current?(fe.A.emit("sign-out"),hh.signout()):fe.A.emit("sign-out",e.session.token)}})}),gh=(0,D.A)(mh,[["render",function(e,n,a,t,o,l){return(0,i.uX)(),(0,i.CE)("div",th,[(0,i.Lk)("div",sh,[(0,i.Lk)("strong",null,(0,r.v_)(e.session.agent),1),(0,i.Lk)("a",{href:"https://ipinfo.io/"+e.session.ip,target:"_blank",rel:"noopener"},(0,r.v_)(e.session.ip),9,oh),e.session.active>1?((0,i.uX)(),(0,i.CE)("p",ih," Active in "+(0,r.v_)(e.session.active)+" browsers ",1)):e.session.current||e.session.active?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("p",rh,[lh,(0,i.Lk)("time",null,(0,r.v_)(e.lastUse),1)]))]),(0,i.Lk)("div",ch,[(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},[uh],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[dh],64))])])])}]]),kh=(0,i.pM)({name:"UserSettings",components:{RevealPassword:ye,Session:gh},setup(){const e=(0,o.Pj)(),n=(0,A.KR)(),a=(0,A.KR)(""),t=(0,A.KR)(""),s=(0,A.KR)(""),r=(0,i.EW)(()=>e.state.sessions.find(e=>e.current)),l=(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)(()=>{fe.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:r,activeSessions:l,otherSessions:c,changePassword:()=>{const e={old_password:a.value,new_password:t.value,verify_password:s.value};e.old_password&&e.new_password&&e.verify_password?e.new_password===e.verify_password?(fe.A.once("change-password",e=>{n.value=e}),fe.A.emit("change-password",e)):n.value={success:!1,error:"password_mismatch"}:n.value={success:!1,error:"missing_fields"}},old_password:a,new_password:t,verify_password:s}}}),fh=(0,D.A)(kh,[["render",function(e,n,a,t,o,l){const c=(0,i.g2)("RevealPassword"),u=(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",Rp,[Op,(0,i.Lk)("div",Np,[Fp,(0,i.bF)(c,null,{default:(0,i.k6)(a=>[(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:a.isVisible?"text":"password",name:"old_password",class:"input",placeholder:"Enter current password"},null,8,Up),[[s.hp,e.old_password]])]),_:1})]),(0,i.Lk)("div",Kp,[qp,(0,i.bF)(c,null,{default:(0,i.k6)(a=>[(0,i.bo)((0,i.Lk)("input",{id:"new-password","onUpdate:modelValue":n[1]||(n[1]=n=>e.new_password=n),type:a.isVisible?"text":"password",name:"new_password",autocomplete:"new-password",class:"input",placeholder:"Enter desired new password"},null,8,Dp),[[s.hp,e.new_password]])]),_:1})]),(0,i.Lk)("div",Bp,[Qp,(0,i.bF)(c,null,{default:(0,i.k6)(a=>[(0,i.bo)((0,i.Lk)("input",{id:"new-password-verify","onUpdate:modelValue":n[2]||(n[2]=n=>e.verify_password=n),type:a.isVisible?"text":"password",name:"verify_password",autocomplete:"new-password",class:"input",placeholder:"Repeat new password"},null,8,$p),[[s.hp,e.verify_password]])]),_:1})]),e.passwordChangeStatus&&e.passwordChangeStatus.success?((0,i.uX)(),(0,i.CE)("div",Hp," Successfully updated your password ")):e.passwordChangeStatus&&e.passwordChangeStatus.error?((0,i.uX)(),(0,i.CE)("div",zp,(0,r.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",Vp,[Jp,Yp,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},[Gp,((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.activeSessions,e=>((0,i.uX)(),(0,i.Wv)(u,{key:e.token,session:e},null,8,["session"]))),128))],64)):(0,i.Q3)("",!0),Zp,0===e.store.state.sessions.length?((0,i.uX)(),(0,i.CE)("p",eh,"Loading…")):0===e.otherSessions.length?((0,i.uX)(),(0,i.CE)("p",nh,ah)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:4},(0,i.pI)(e.otherSessions,e=>((0,i.uX)(),(0,i.Wv)(u,{key:e.token,session:e},null,8,["session"]))),128))]))])}]]),bh=(0,i.Lk)("h2",null,"Push Notifications",-1),vh=["disabled"],wh=(0,i.eW)(" Unsubscribe from push notifications "),yh=(0,i.eW)(" Loading… "),_h=(0,i.eW)(" Subscribe to push notifications "),Ch={key:0,class:"error"},Lh=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Push notifications are only supported over HTTPS connections. ")],Eh={key:1,class:"error"},xh=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": "),(0,i.Lk)("span",null,"Push notifications are not supported by your browser.",-1)],Mh=(0,i.Lk)("h2",null,"Browser Notifications",-1),Sh={class:"opt"},Ah=["checked","disabled"],jh=(0,i.eW)(" Enable browser notifications"),Xh=(0,i.Lk)("br",null,null,-1),Th={key:0,class:"error"},Ph=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are not supported by your browser. ")],Wh={key:1,id:"warnBlockedDesktopNotifications",class:"error"},Ih=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are only supported over HTTPS connections. ")],Rh={key:2,id:"warnBlockedDesktopNotifications",class:"error"},Oh=[(0,i.Lk)("strong",null,"Warning",-1),(0,i.eW)(": Notifications are blocked by your browser. ")],Nh={class:"opt"},Fh=["checked"],Uh=(0,i.eW)(" Enable notification sound "),Kh={class:"opt"},qh={class:"opt"},Dh=["checked"],Bh=(0,i.eW)(" Enable notification for all messages "),Qh={key:1},$h={class:"opt"},Hh=(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),zh=["value"],Vh={key:2},Jh={class:"opt"},Yh=(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),Gh=["value"],Zh=function(){o.M_.commit("pushNotificationState","loading"),navigator.serviceWorker.ready.then(e=>e.pushManager.getSubscription().then(n=>n?(fe.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=>{fe.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)})};fe.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 em=(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:()=>{Zh()}}}}),nm=(0,D.A)(em,[["render",function(e,n,a,t,o,r){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},[bh,(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},[wh],64)):"loading"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[yh],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:2},[_h],64))],8,vh),"nohttps"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)("div",Ch,Lh)):(0,i.Q3)("",!0),"unsupported"===e.store.state.pushNotificationState?((0,i.uX)(),(0,i.CE)("div",Eh,xh)):(0,i.Q3)("",!0)])],64)),Mh,(0,i.Lk)("div",null,[(0,i.Lk)("label",Sh,[(0,i.Lk)("input",{id:"desktopNotifications",checked:e.store.state.settings.desktopNotifications,disabled:"nohttps"===e.store.state.desktopNotificationState,type:"checkbox",name:"desktopNotifications"},null,8,Ah),jh,Xh,"unsupported"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Th,Ph)):(0,i.Q3)("",!0),"nohttps"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Wh,Ih)):(0,i.Q3)("",!0),"blocked"===e.store.state.desktopNotificationState?((0,i.uX)(),(0,i.CE)("div",Rh,Oh)):(0,i.Q3)("",!0)])]),(0,i.Lk)("div",null,[(0,i.Lk)("label",Nh,[(0,i.Lk)("input",{checked:e.store.state.settings.notification,type:"checkbox",name:"notification"},null,8,Fh),Uh])]),(0,i.Lk)("div",null,[(0,i.Lk)("div",Kh,[(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",qh,[(0,i.Lk)("input",{checked:e.store.state.settings.notifyAllMessages,type:"checkbox",name:"notifyAllMessages"},null,8,Dh),Bh])]),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",Qh,[(0,i.Lk)("label",$h,[Hh,(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,zh)])])),e.store.state.serverConfiguration?.public?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",Vh,[(0,i.Lk)("label",Jh,[Yh,(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,Gh)])]))])}]]),am=(0,j.aE)({history:(0,j.Bt)(),routes:[{name:"SignIn",path:"/sign-in",component:Ce,beforeEnter(e,n,a){o.M_.state.appLoaded?a(!1):a()}},{name:"Connect",path:"/connect",component:wa,props:e=>({queryParams:e.query})},{path:"/settings",component:Oa,children:[{name:"General",path:"",component:Ip},{name:"Appearance",path:"appearance",component:cp},{name:"Account",path:"account",component:fh,props:!0},{name:"Notifications",path:"notifications",component:nm}]},{name:"Help",path:"/help",component:Mr},{name:"Changelog",path:"/changelog",component:Fr},{name:"NetworkEdit",path:"/edit-network/:uuid",component:Kr},{name:"RoutedChat",path:"/chan-:id",component:gd},{name:"SearchResults",path:"/chan-:id/search",component:yc}]});async function tm(e,n={}){am.currentRoute.value.name?await am.push({name:e,params:n}):await am.replace({name:e,params:n}).catch(()=>{})}function sm(e){tm("RoutedChat",{id:e.id})}am.beforeEach((e,n,a)=>{o.M_.state.appLoaded||"SignIn"===e.name?a():o.M_.watch(e=>e.appLoaded,()=>a())}),am.beforeEach((e,n)=>!(!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)))),am.afterEach(e=>{if(o.M_.state.appLoaded&&window.innerWidth<=t.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),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),a=o.M_.getters.findChannel(n);a&&sm(a.channel)}});const om=(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||!re(e.network,e.channel)),getAriaLabel:()=>{const n=[],a=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`)),`${a}: ${e.channel.name} ${n.length?`(${n.join(", ")})`:""}`},click:()=>{e.isFiltering||sm(e.channel)},openContextMenu:n=>{c.A.emit("contextmenu:channel",{event:n,channel:e.channel,network:e.network})}}}}),im=(0,D.A)(om,[["render",function(e,n,a,t,o,l){return e.isChannelVisible?((0,i.uX)(),(0,i.CE)("div",{key:0,ref:"element",class:(0,r.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,r.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,ie)):(0,i.Q3)("",!0)}]]),rm=(0,i.pM)({name:"Channel",components:{ChannelWrapper:im},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]),a=(0,i.EW)(()=>e.isJoinChannelShown?"Cancel":"Join a channel…"),t=(0,i.EW)(()=>oe(n.value.unread));return{channel:n,joinChannelLabel:a,unreadCount:t,onCollapseClick:()=>{se(e.network,!e.network.isCollapsed)},getExpandLabel:e=>e.isCollapsed?"Expand":"Collapse"}}}),lm=(0,D.A)(rm,[["render",function(e,n,a,t,o,l){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"]))},z,8,H)):((0,i.uX)(),(0,i.CE)("span",V)),(0,i.Lk)("div",J,[(0,i.Lk)("span",{title:e.channel.name,class:"name"},(0,r.v_)(e.channel.name),9,Y),e.network.status.connected&&!e.network.status.secure?((0,i.uX)(),(0,i.CE)("span",G,Z)):(0,i.Q3)("",!0),e.network.status.connected?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("span",ee,ne)),e.channel.unread?((0,i.uX)(),(0,i.CE)("span",{key:2,class:(0,r.C4)([{highlight:e.channel.highlight},"badge"])},(0,r.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,r.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,te)],8,ae)]),_:1},16,["channel"])}]]),cm={class:"name"},um={key:0,class:"parted-channel-tooltip tooltipped tooltipped-w","aria-label":"Not currently joined"},dm=[(0,i.Lk)("span",{class:"parted-channel-icon"},null,-1)],pm={class:"close-tooltip tooltipped tooltipped-w","aria-label":"Leave"},hm={key:2,class:"close-tooltip tooltipped tooltipped-w","aria-label":"Close"};function mm(e){return()=>{e.type!==Qc.LOBBY?(e.closed=!0,fe.A.emit("input",{target:Number(e.id),text:"/close"})):c.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,fe.A.emit("input",{target:Number(e.id),text:"/quit"}))})}}const gm=(0,i.pM)({name:"Channel",components:{ChannelWrapper:im},props:{network:{type:Object,required:!0},channel:{type:Object,required:!0},active:Boolean,isFiltering:Boolean},setup:e=>({unreadCount:(0,i.EW)(()=>oe(e.channel.unread)),close:mm(e.channel)})}),km=(0,D.A)(gm,[["render",function(e,n,a,t,o,l){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",cm,(0,r.v_)(e.channel.name),1),e.channel.unread?((0,i.uX)(),(0,i.CE)("span",{key:0,class:(0,r.C4)([{highlight:e.channel.highlight&&!e.channel.muted},"badge"])},(0,r.v_)(e.unreadCount),3)):(0,i.Q3)("",!0),"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",um,dm)):(0,i.Q3)("",!0),(0,i.Lk)("span",pm,[(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",hm,[(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)}]]),fm=["id"],bm=(0,i.Lk)("button",{type:"submit",class:"btn btn-small"},"Join",-1),vm=(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 a=(0,o.Pj)(),t=(0,A.KR)(""),s=(0,A.KR)("");return{inputChannel:t,inputPassword:s,onSubmit:()=>{const o=a.getters.findChannelOnCurrentNetwork(t.value);if(o)sm(o);else{const n=e.network.serverOptions.CHANTYPES;let a=t.value;n&&n.length>0&&!n.includes(a[0])&&(a=n[0]+a),fe.A.emit("input",{text:`/join ${a} ${s.value}`,target:e.channel.id})}t.value="",s.value="",n("toggle-join-channel")}}}}),wm=(0,D.A)(vm,[["render",function(e,n,a,t,o,r){const l=(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],[l]]),(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]]),bm],40,fm)}]]),ym=function([e,n],[a,t]){return Math.hypot(e-a,n-t)},_m=(0,i.pM)({name:"NetworkList",components:{JoinChannel:wm,NetworkLobby:lm,Channel:km,Draggable:B},setup(){const e=(0,o.Pj)(),n=(0,A.KR)(""),a=(0,A.KR)(),t=(0,A.KR)(),s=(0,A.KR)(null),r=(0,A.KR)(null),l=(0,A.KR)(!1),u=(e,n,a)=>{const t=e.splice(n,1)[0];e.splice(a,0,t)},p=(0,i.EW)(()=>{const n=[];for(const a of e.state.networks)for(const t of a.channels)e.state.activeChannel&&t===e.state.activeChannel.channel||n.push({network:a,channel:t});return n}),h=(0,i.EW)(()=>(0,Q.filter)(n.value,p.value,{extract:e=>e.channel.name}).map(e=>e.original)),m=n=>!!g(n)||(e.state.activeChannel&&se(e.state.activeChannel.network,!0),!1),k=n=>!!g(n)||(e.state.activeChannel&&se(e.state.activeChannel.network,!1),!1),f=()=>{s.value!==document.activeElement&&(l.value=!e.state.sidebarOpen,e.commit("sidebarOpen",!0),(0,i.dY)(()=>{s.value?.focus()}))},b=()=>{a.value=null,n.value="",s.value?.blur(),l.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),a.value=e)},y=()=>{(0,i.dY)(()=>{const e=r.value?.querySelector(".channel-list-item.active");e&&e.scrollIntoView({block:"nearest",inline:"nearest"})})};return(0,i.wB)(n,()=>{w()}),(0,i.sV)(()=>{d().bind("alt+shift+right",k),d().bind("alt+shift+left",m),d().bind("alt+j",v)}),(0,i.xo)(()=>{d().unbind("alt+shift+right"),d().unbind("alt+shift+left"),d().unbind("alt+j")}),(0,A.KR)(),(0,A.KR)({}),{store:e,networklist:r,searchInput:s,searchText:n,results:h,activeSearchItem:a,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&&a.value&&(sm(a.value),b(),y())},navigateResults:(e,t)=>{if(e.stopImmediatePropagation(),e.preventDefault(),!n.value)return;const s=h.value.map(e=>e.channel);if(!s.length)return void(a.value=null);let o=a.value?s.indexOf(a.value):-1;if(!a.value||-1===o)return a.value=t?s[0]:s[s.length-1],void y();for(o+=t;o<0;)o+=s.length;for(;o>s.length-1;)o-=s.length;a.value=s[o],y()},onChannelSort:n=>{let{oldIndex:a,newIndex:t}=n;if(void 0===a||void 0===t||a===t)return;a+=1,t+=1;const s=n.item.getAttribute("data-item");if(!s)return;const o=parseInt(s),i=e.getters.findChannel(o);i&&(u(i.network.channels,a,t),fe.A.emit("sort:channels",{network:i.network.uuid,order:i.network.channels.map(e=>e.id)}))},onNetworkSort:n=>{const{oldIndex:a,newIndex:t}=n;void 0!==a&&void 0!==t&&a!==t&&(u(e.state.networks,a,t),fe.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(t.value&&e.touches.length>0){const n=e.touches[0],a=[n.clientX,n.clientY];ym(t.value,a)>10&&c.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?t.value=[n.touches[0].clientX,n.touches[0].clientY]:n instanceof PointerEvent&&(t.value=[n.clientX,n.clientY]))},onDraggableUnchoose:e=>{e.item.classList.remove("ui-sortable-dragging-touch-cue"),t.value=null}}}}),Cm=(0,D.A)(_m,[["render",function(e,n,a,t,o,l){const c=(0,i.g2)("Channel"),u=(0,i.g2)("NetworkLobby"),d=(0,i.g2)("JoinChannel"),p=(0,i.g2)("Draggable");return 0===e.store.state.networks.length?((0,i.uX)(),(0,i.CE)("div",X," You are not connected to any networks yet. ")):((0,i.uX)(),(0,i.CE)("div",T,[(0,i.Lk)("div",P,[(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,W)]),e.searchText?((0,i.uX)(),(0,i.CE)("div",I,[e.results.length?((0,i.uX)(),(0,i.CE)("div",R,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(e.results,a=>((0,i.uX)(),(0,i.CE)("div",{key:a.channel.id,onMouseenter:n=>e.setActiveSearchItem(a.channel),onClick:n[8]||(n[8]=(0,s.D$)((...n)=>e.selectResult&&e.selectResult(...n),["prevent"]))},["lobby"!==a.channel.type?((0,i.uX)(),(0,i.Wv)(c,{key:0,channel:a.channel,network:a.network,active:a.channel===e.activeSearchItem,"is-filtering":!0},null,8,["channel","network","active"])):((0,i.uX)(),(0,i.Wv)(u,{key:1,channel:a.channel,network:a.network,active:a.channel===e.activeSearchItem,"is-filtering":!0},null,8,["channel","network","active"]))],40,O))),128))])):((0,i.uX)(),(0,i.CE)("div",N,"No results found."))])):((0,i.uX)(),(0,i.Wv)(p,{key:1,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:a})=>[((0,i.uX)(),(0,i.CE)("div",{id:"network-"+a.uuid,key:a.uuid,class:(0,r.C4)([{collapsed:a.isCollapsed,"not-connected":!a.status.connected,"not-secure":!a.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:a,"is-join-channel-shown":a.isJoinChannelShown,active:e.store.state.activeChannel&&a.channels[0]===e.store.state.activeChannel.channel,onToggleJoinChannel:e=>a.isJoinChannelShown=!a.isJoinChannelShown},null,8,["network","is-join-channel-shown","active","onToggleJoinChannel"]),a.isJoinChannelShown?((0,i.uX)(),(0,i.Wv)(d,{key:0,network:a,channel:a.channels[0],onToggleJoinChannel:e=>a.isJoinChannelShown=!a.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:a.uuid,list:a.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:t})=>[t>0?((0,i.uX)(),(0,i.Wv)(c,{key:n.id,"data-item":n.id,channel:n,network:a,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"])],42,F))]),_:1},8,["list","delay","onChange","onChoose","onUnchoose"]))],512))}]]),Lm=(0,i.pM)({name:"Sidebar",components:{NetworkList:Cm},props:{overlay:{type:Object,required:!0}},setup(e){const n=(0,o.Pj)(),a=(0,j.lq)(),t=(0,A.KR)(),s=(0,A.KR)(),r=(0,A.KR)(0),l=(0,A.KR)(0),c=(0,A.KR)(!1),u=(0,A.KR)(!1),d=(0,A.KR)(null),p=e=>{n.commit("sidebarOpen",e)},h=a=>{const o=s.value=a.touches.item(0);if(!(o&&t.value&&t.value.screenX&&t.value.screenY))return;let i=o.screenX-t.value.screenX;const r=o.screenY-t.value.screenY;if(!c.value){if(Math.abs(r/i)>=1)return void m();const e=window.devicePixelRatio||2;Math.abs(i)>e&&(n.commit("sidebarDragging",!0),c.value=!0)}u.value&&(n.state.sidebarOpen&&(i+=l.value),i>l.value?i=l.value:i<0&&(i=0),d.value&&(d.value.style.transform="translate3d("+i.toString()+"px, 0, 0)"),e.overlay&&(e.overlay.style.opacity=""+i/l.value))},m=()=>{if(!t.value?.screenX||!s.value?.screenX)return;const a=s.value.screenX-t.value.screenX,o=Math.abs(a);(o>l.value/2||Date.now()-r.value<180&&o>50)&&p(a>0),document.body.removeEventListener("touchmove",h),document.body.removeEventListener("touchend",m),n.commit("sidebarDragging",!1),t.value=null,s.value=null,r.value=0,c.value=!1,(0,i.dY)(()=>{d.value&&(d.value.style.transform=""),e.overlay&&(e.overlay.style.opacity="")})},g=e=>{if(!d.value)return;if(t.value=s.value=e.touches.item(0),1!==e.touches.length)return void m();const a=window.getComputedStyle(d.value);l.value=parseFloat(a.width),u.value="absolute"===a.position,(!n.state.sidebarOpen||t.value?.screenX&&t.value.screenX>l.value)&&(r.value=Date.now(),document.body.addEventListener("touchmove",h,{passive:!0}),document.body.addEventListener("touchend",m,{passive:!0}))};return(0,i.sV)(()=>{document.body.addEventListener("touchstart",g,{passive:!0})}),(0,i.hi)(()=>{document.body.removeEventListener("touchstart",g)}),{isDevelopment:!1,store:n,route:a,sidebar:d,toggle:p,onTouchStart:g,onTouchMove:h,onTouchEnd:m,isPublic:()=>document.body.classList.contains("public")}}}),Em=(0,D.A)(Lm,[["render",function(e,n,a,t,o,l){const c=(0,i.g2)("NetworkList"),u=(0,i.g2)("router-link");return(0,i.uX)(),(0,i.CE)("aside",k,[(0,i.Lk)("div",f,[(0,i.Lk)("div",b,[(0,i.Lk)("img",{src:`img/logo-${e.isPublic()?"horizontal-":""}transparent-bg.svg`,class:"logo",alt:"The Lounge",role:"presentation"},null,8,v),(0,i.Lk)("img",{src:`img/logo-${e.isPublic()?"horizontal-":""}transparent-bg-inverted.svg`,class:"logo-inverted",alt:"The Lounge",role:"presentation"},null,8,w),e.isDevelopment?((0,i.uX)(),(0,i.CE)("span",y,"DEVELOPER")):(0,i.Q3)("",!0)]),(0,i.bF)(c)]),(0,i.Lk)("footer",_,[(0,i.Lk)("span",C,[(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,r.C4)(["icon","connect",{active:n}]),"aria-selected":n,onClick:e,onKeypress:(0,s.jR)(e,["enter"])},null,42,L)]),_:1})]),(0,i.Lk)("span",E,[(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,r.C4)(["icon","settings",{active:n}]),"aria-selected":n,onClick:e,onKeypress:(0,s.jR)(e,["enter"])},null,42,x)]),_: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:a})=>[(0,i.Lk)("button",{"aria-selected":"Help"===e.route.name,class:(0,r.C4)(["icon","help",{notified:e.store.state.serverConfiguration?.isUpdateAvailable},{active:a}]),onClick:n,onKeypress:(0,s.jR)(n,["enter"])},null,42,S)]),_:1})],8,M)])],512)}]]),xm=(0,i.Lk)("button",{class:"close-btn","aria-label":"Close"},null,-1),Mm=["href"],Sm=["src"],Am=(0,i.pM)({name:"ImageViewer",setup(){const e=(0,A.KR)(),n=(0,A.KR)(),a=(0,A.KR)(null),t=(0,A.KR)(),s=(0,A.KR)(),o=(0,A.KR)(),r=(0,A.KR)({x:0,y:0}),l=(0,A.KR)({scale:1,x:0,y:0}),u=(0,i.EW)(()=>{const e=Math.floor(l.value.x),n=Math.floor(l.value.y);return{left:`${r.value.x}px`,top:`${r.value.y}px`,transform:`translate3d(${e}px, ${n}px, 0) scale3d(${l.value.scale}, ${l.value.scale}, 1)`}}),p=()=>{null!==a.value&&(o.value=null,t.value=null,s.value=null,a.value=null)},h=()=>{t.value&&(a.value=t.value)},m=()=>{s.value&&(a.value=s.value)},g=(a,t,s,o)=>{if(!n.value||!e.value)return;const i=n.value.width,r=e.value.offsetWidth/2,l=e.value.offsetHeight/2;return{x:r-(r-(s-i*t/2))/t*a+i*a/2,y:l-(l-(o-i*t/2))/t*a+i*a/2}},k=()=>{const a=n.value,t=e.value;if(!a||!t)return;const s=a.width*l.value.scale,o=a.height*l.value.scale,i=t.offsetWidth,r=t.offsetHeight;s<i?l.value.x=i/2:l.value.x-s/2>0?l.value.x=s/2:l.value.x+s/2<i&&(l.value.x=i-s/2),o<r?l.value.y=r/2:l.value.y-o/2>0?l.value.y=o/2:l.value.y+o/2<r&&(l.value.y=r-o/2)},f=e=>{let n=0,a=0,t=0;for(let s=0;s<e.length;s++){const o=e[s].clientX,i=e[s].clientY;n+=o,a+=i;for(let n=0;n<e.length;n++)if(s!==n){const a=e[n].clientX,s=e[n].clientY;t+=Math.sqrt((o-a)*(o-a)+(i-s)*(i-s))}}return 0===t&&(t=1),{x:n/e.length,y:a/e.length,scale:t/e.length}};return(0,i.wB)(a,(e,n)=>{if(null===e)return c.A.off("escapekey",p),c.A.off("resize",k),d().unbind("left"),void d().unbind("right");(()=>{if(!o.value||!a.value)return null;const e=o.value.messages.map(e=>e.previews).flat().filter(e=>e&&e.thumb),n=e.indexOf(a.value);t.value=e[n-1]||null,s.value=e[n+1]||null})(),n||(c.A.on("escapekey",p),c.A.on("resize",k),d().bind("left",h),d().bind("right",m))}),{link:a,channel:o,image:n,transform:l,closeViewer:p,next:m,previous:h,onImageLoad:()=>{(()=>{const a=e.value,t=n.value;if(!a||!t)return;const s=a.offsetWidth,o=a.offsetHeight,i=Math.min(1,s/t.width,o/t.height);r.value.x=Math.floor(-n.value.naturalWidth/2),r.value.y=Math.floor(-n.value.naturalHeight/2),l.value.scale=Math.max(i,.1),l.value.x=s/2,l.value.y=o/2})()},onImageMouseDown:a=>{if(1!==a.which)return;a.stopPropagation(),a.preventDefault();const t=e.value,s=n.value;if(!t||!s)return;const o=a.clientX,i=a.clientY,r=l.value.x,c=l.value.y,u=s.width*l.value.scale,d=s.height*l.value.scale,h=t.offsetWidth,m=t.offsetHeight,g=l.value.x-u/2,f=l.value.y-d/2;let b=0;const v=e=>{e.stopPropagation(),e.preventDefault();const n=e.clientX-o,a=e.clientY-i;b=Math.max(b,Math.abs(n),Math.abs(a)),(g<0||u+g>h)&&(l.value.x=r+n),(f<0||d+f>m)&&(l.value.y=c+a),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!==a.value){if(e.preventDefault(),e.ctrlKey)l.value.y+=e.deltaY;else{const n=e.deltaY>0?.1:-.1,a=Math.min(3,Math.max(.1,l.value.scale+n)),t=g(a,l.value.scale,l.value.x,l.value.y);if(!t)return;l.value.scale=a,l.value.x=t.x,l.value.y=t.y}k()}},onClick:e=>{e.target!==n.value&&p()},onTouchStart:e=>{e.stopImmediatePropagation()},previousImage:t,nextImage:s,onImageTouchStart:e=>{const a=n.value;let t=f(e.touches),s=e.touches,o=0;const i={x:t.x,y:t.y,scale:t.scale},r={x:l.value.x,y:l.value.y,scale:l.value.scale},c=e=>{t=f(e.touches),s.length!==e.touches.length&&(i.x=t.x,i.y=t.y,i.scale=t.scale,r.x=l.value.x,r.y=l.value.y,r.scale=l.value.scale);const n=t.x-i.x,a=t.y-i.y,c=t.scale/i.scale;s=e.touches,o=0;const u=Math.min(3,Math.max(.1,r.scale*c)),d=g(u,r.scale,r.x,r.y);d&&(l.value.x=d.x+n,l.value.y=d.y+a,l.value.scale=u,k())},u=e=>{const n=e.changedTouches.length;s.length>n+o?o+=n:(k(),a?.removeEventListener("touchmove",c),a?.removeEventListener("touchend",u))};a?.addEventListener("touchmove",c,{passive:!0}),a?.addEventListener("touchend",u,{passive:!0})},computeImageStyles:u,viewer:e}}}),jm=(0,D.A)(Am,[["render",function(e,n,a,t,o,l){return(0,i.uX)(),(0,i.CE)("div",{id:"image-viewer",ref:"viewer",class:(0,r.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},[xm,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,Mm),(0,i.Lk)("img",{ref:"image",src:e.link.thumb,alt:"",style:(0,r.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,Sm)],64)):(0,i.Q3)("",!0)],34)}]]),Xm=["aria-activedescendant"],Tm=["id","onMouseenter","onClick"],Pm=(0,i.pM)({name:"ContextMenu",props:{message:{required:!1,type:Object}},setup(){const e=(0,o.Pj)(),n=(0,j.rd)(),a=(0,A.KR)(!1),t=(0,A.KR)(!1),s=(0,A.KR)(),r=(0,A.KR)(),l=(0,A.KR)([]),u=(0,A.KR)(-1),d=(0,A.KR)({top:0,left:0}),p=()=>{a.value&&(a.value=!1,l.value=[],r.value&&(r.value.focus(),r.value=null))},h=()=>{t.value=!1,document.body.removeEventListener("pointerup",h)},m=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)})},g=(e,n)=>{e.preventDefault(),r.value=document.activeElement,l.value=n,u.value=0,a.value=!0,(0,i.dY)(()=>{const n=(e=>{const n=e.target;if(!s.value)return;const a=s.value?.offsetWidth,t=s.value?.offsetHeight;if(n&&n.classList.contains("menu"))return{left:n.getBoundingClientRect().left-(a-n.offsetWidth),top:n.getBoundingClientRect().top+n.offsetHeight};const o={left:e.pageX,top:e.pageY};return window.innerWidth-o.left<a&&(o.left=window.innerWidth-a),window.innerHeight-o.top<t&&(o.top=window.innerHeight-t),o})(e);n&&(d.value.left=n.left,d.value.top=n.top,s.value?.focus())}).catch(e=>{console.error(e)})},k=e=>{"contextmenu"===e.event.type&&(t.value=!0,document.body.addEventListener("pointerup",h,{passive:!0}));const n=function(e,n){const a=mm(e);let t=[{label:e.name,type:"item",class:{lobby:"network",channel:"chan",query:"query",special:"chan"}[e.type],link:`/chan-${e.id}`},{type:"divider"}];e.type===Qc.LOBBY&&(t=[...t,{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:()=>fe.A.emit("input",{target:e.id,text:"/list"})},{label:"List ignored users",type:"item",class:"list",action:()=>fe.A.emit("input",{target:e.id,text:"/ignorelist"})},n.status.connected?{label:"Disconnect",type:"item",class:"disconnect",action:()=>fe.A.emit("input",{target:e.id,text:"/disconnect"})}:{label:"Connect",type:"item",class:"connect",action:()=>fe.A.emit("input",{target:e.id,text:"/connect"})}]),e.type===Qc.CHANNEL&&(t.push({label:"Edit topic",type:"item",class:"edit",action(){e.editTopic=!0,sm(e)}}),t.push({label:"List banned users",type:"item",class:"list",action(){fe.A.emit("input",{target:e.id,text:"/banlist"})}})),e.type===Qc.QUERY&&t.push({label:"User information",type:"item",class:"action-whois",action(){sm(e),fe.A.emit("input",{target:e.id,text:"/whois "+e.name})}},{label:"Ignore user",type:"item",class:"action-ignore",action(){fe.A.emit("input",{target:e.id,text:"/ignore "+e.name})}}),e.type!==Qc.CHANNEL&&e.type!==Qc.QUERY||t.push({label:"Clear history",type:"item",class:"clear-history",action(){c.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&&fe.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];t.push({label:e.muted?`Unmute ${n}`:`Mute ${n}`,type:"item",class:"mute",action(){fe.A.emit("mute:change",{target:e.id,setMutedTo:!e.muted})}})}return t.push({label:{lobby:"Remove",channel:"Leave",query:"Close",special:"Close"}[e.type],type:"item",class:"close",action(){a()}}),t}(e.channel,e.network);g(e.event,n)},f=n=>{const{network:a}=e.state.activeChannel,t=function(e,n,a){const t=a.channels.find(e=>e.name===n);return t?[{label:"Go to channel",type:"item",class:"chan",link:`/chan-${t.id}`}]:[{label:"Join channel",type:"item",class:"join",action:()=>{const t=a.channels.find(e=>e.name===n);t&&sm(t),e.state.activeChannel?fe.A.emit("input",{target:e.state.activeChannel.channel.id,text:"/join "+n}):console.error("Unable to join channel: activeChannel is undefined")}}]}(e,n.channel,a);g(n.event,t)},b=n=>{const{network:a,channel:t}=e.state.activeChannel,s=function(e,n,a,t){const s=n&&n.users.find(e=>e.nick===a.nick)||{},o=()=>{const e=a.channels.find(e=>e.name===t.nick);e&&sm(e),fe.A.emit("input",{target:n.id,text:"/whois "+t.nick})},i=[{label:t.nick,type:"item",class:"user",action:o},{type:"divider"},{label:"User information",type:"item",class:"action-whois",action:o},{label:"Ignore user",type:"item",class:"action-ignore",action(){fe.A.emit("input",{target:n.id,text:"/ignore "+t.nick})}},{label:"Direct messages",type:"item",class:"action-query",action(){const a=e.getters.findChannelOnCurrentNetwork(t.nick);a&&sm(a),fe.A.emit("input",{target:n.id,text:"/query "+t.nick})}}];if(!s.modes||s.modes.length<1)return i;const r={"~":"owner","&":"admin","@":"operator","%":"half-op","+":"voice"},l={revoke(e){const n=r[e.symbol];return"string"!=typeof n?"":n?`Revoke ${n} (-${e.mode})`:`Mode -${e.mode}`},give(e){const n=r[e.symbol];return"string"!=typeof n?"":n?`Give ${n} (+${e.mode})`:`Mode +${e.mode}`}},c=a.serverOptions.PREFIX.symbols;function u(e,n){return"~@".indexOf(e)>-1?c.indexOf(e)<=c.indexOf(n):c.indexOf(e)<c.indexOf(n)}return a.serverOptions.PREFIX.prefix.forEach(e=>{u(s.modes[0],e.symbol)&&(t.modes.includes(e.symbol)?i.push({label:l.revoke(e),type:"item",class:"action-revoke-mode",action(){fe.A.emit("input",{target:n.id,text:"/mode -"+e.mode+" "+t.nick})}}):i.push({label:l.give(e),type:"item",class:"action-set-mode",action(){fe.A.emit("input",{target:n.id,text:"/mode +"+e.mode+" "+t.nick})}}))}),u(c.indexOf("%")>-1?"%":"@",s.modes[0])||(0===t.modes.length||u(s.modes[0],t.modes[0]))&&i.push({label:"Kick",type:"item",class:"action-kick",action(){fe.A.emit("input",{target:n.id,text:"/kick "+t.nick})}}),i}(e,t,a,t.users.find(e=>e.nick===n.user.nick)||{nick:n.user.nick,modes:[]});g(n.event,s)};return(0,i.sV)(()=>{c.A.on("escapekey",p),c.A.on("contextmenu:cancel",p),c.A.on("contextmenu:user",b),c.A.on("contextmenu:channel",k),c.A.on("contextmenu:inline-channel",f)}),(0,i.hi)(()=>{c.A.off("escapekey",p),c.A.off("contextmenu:cancel",p),c.A.off("contextmenu:user",b),c.A.off("contextmenu:channel",k),c.A.off("contextmenu:inline-channel",f),p()}),{isOpen:a,items:l,activeItem:u,style:d,contextMenu:s,passthrough:t,close:p,containerClick:e=>{e.currentTarget===e.target&&p()},navigateMenu:e=>{let n=u.value;n+=e;const a=l.value[n];a&&"type"in a&&"divider"===a.type&&(n+=e),n<0&&(n+=l.value.length),n>l.value.length-1&&(n-=l.value.length),u.value=n},hoverItem:e=>{u.value=e},clickItem:m,clickActiveItem:()=>{l.value[u.value]&&m(l.value[u.value])}}}}),Wm=(0,D.A)(Pm,[["render",function(e,n,a,t,o,l){return e.isOpen?((0,i.uX)(),(0,i.CE)("div",{key:0,id:"context-menu-container",class:(0,r.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,r.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,a)=>((0,i.uX)(),(0,i.CE)("li",{key:n.name,id:`context-menu-item-${a}`,class:(0,r.C4)(["context-menu-"+n.type,n.class?"context-menu-"+n.class:null,{active:a===e.activeItem}]),role:"menuitem",onMouseenter:n=>e.hoverItem(a),onClick:a=>e.clickItem(n)},(0,r.v_)(n.label),43,Tm))),128))],44,Xm)],34)):(0,i.Q3)("",!0)}]]),Im={key:0,id:"confirm-dialog"},Rm={class:"confirm-text"},Om={class:"confirm-text-title"},Nm={class:"confirm-buttons"},Fm=(0,i.pM)({name:"ConfirmDialog",setup(){const e=(0,A.KR)(),n=(0,A.KR)(),a=(a,t)=>{e.value=a,n.value=t},t=a=>{e.value=void 0,n.value&&n.value(!!a)};return(0,i.sV)(()=>{c.A.on("escapekey",t),c.A.on("confirm-dialog",a)}),(0,i.hi)(()=>{c.A.off("escapekey",t),c.A.off("confirm-dialog",a)}),{data:e,close:t}}}),Um=(0,D.A)(Fm,[["render",function(e,n,a,t,s,o){return(0,i.uX)(),(0,i.CE)("div",{id:"confirm-dialog-overlay",class:(0,r.C4)({opened:!!e.data})},[null!==e.data?((0,i.uX)(),(0,i.CE)("div",Im,[(0,i.Lk)("div",Rm,[(0,i.Lk)("div",Om,(0,r.v_)(e.data?.title),1),(0,i.Lk)("p",null,(0,r.v_)(e.data?.text),1)]),(0,i.Lk)("div",Nm,[(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,r.v_)(e.data?.button),1)])])):(0,i.Q3)("",!0)],2)}]]),Km={class:"mentions-popup"},qm={class:"mentions-popup-title"},Dm=(0,i.eW)(" Recent mentions "),Bm={key:0},Qm={key:1},$m={class:"mentions-info"},Hm={class:"from"},zm=(0,i.eW)(" in unknown channel "),Vm=(0,i.eW)((0,r.v_)(" ")+" "),Jm=["title"],Ym={class:"close-tooltip tooltipped tooltipped-w","aria-label":"Dismiss this mention"},Gm=["onClick"],Zm={class:"content",dir:"auto"};var eg=a(6279),ng=a.n(eg);Sl().extend(ng());const ag=(0,i.pM)({name:"Mentions",components:{Username:jl.A,ParsedMessage:oc.A},setup(){const e=(0,o.Pj)(),n=(0,A.KR)(!1),a=(0,A.KR)(!1),t=(0,i.EW)(()=>{const n=e.state.mentions.slice().reverse();for(const a of n)a.localetime=(0,Al.A)(a.time),a.channel=e.getters.findChannel(a.chanId);return n.filter(e=>!e.channel?.channel.muted)});(0,i.wB)(()=>e.state.mentions,()=>{a.value=!1});const s=()=>{n.value=!n.value,n.value&&(a.value=!0,fe.A.emit("mentions:get"))},r=()=>{n.value=!1};return(0,i.sV)(()=>{c.A.on("mentions:toggle",s),c.A.on("escapekey",r)}),(0,i.hi)(()=>{c.A.off("mentions:toggle",s),c.A.off("escapekey",r)}),{isOpen:n,isLoading:a,resolvedMessages:t,messageTime:e=>Sl()(e).fromNow(),dismissMention:n=>{e.state.mentions.splice(e.state.mentions.findIndex(e=>e.msgId===n.msgId),1),fe.A.emit("mentions:dismiss",n.msgId)},dismissAllMentions:()=>{e.state.mentions=[],fe.A.emit("mentions:dismiss_all")},containerClick:e=>{e.currentTarget===e.target&&(n.value=!1)}}}}),tg=(0,D.A)(ag,[["render",function(e,n,a,t,s,o){const l=(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",Km,[(0,i.Lk)("div",qm,[Dm,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",Bm,"Loading…")):((0,i.uX)(),(0,i.CE)("p",Qm,"You have no recent mentions."))],64)):((0,i.uX)(!0),(0,i.CE)(i.FK,{key:1},(0,i.pI)(e.resolvedMessages,n=>((0,i.uX)(),(0,i.CE)("div",{key:n.msgId,class:(0,r.C4)(["msg",n.type])},[(0,i.Lk)("div",$m,[(0,i.Lk)("div",null,[(0,i.Lk)("span",Hm,[(0,i.bF)(l,{user:n.from},null,8,["user"]),n.channel?((0,i.uX)(),(0,i.CE)(i.FK,{key:0},[(0,i.eW)(" in "+(0,r.v_)(n.channel.channel.name)+" on "+(0,r.v_)(n.channel.network.name),1)],64)):((0,i.uX)(),(0,i.CE)(i.FK,{key:1},[zm],64))]),Vm,(0,i.Lk)("span",{title:n.localetime,class:"time"},(0,r.v_)(e.messageTime(n.time.toString())),9,Jm)]),(0,i.Lk)("div",null,[(0,i.Lk)("span",Ym,[(0,i.Lk)("button",{class:"msg-dismiss","aria-label":"Dismiss this mention",onClick:a=>e.dismissMention(n)},null,8,Gm)])])]),(0,i.Lk)("div",Zm,[(0,i.bF)(c,{message:n},null,8,["message"])])],2))),128))])],32)):(0,i.Q3)("",!0)}]]),sg=Symbol(),og=Symbol(),ig=Symbol(),rg=(0,i.pM)({name:"App",components:{Sidebar:Em,ImageViewer:jm,ContextMenu:Wm,ConfirmDialog:Um,Mentions:tg},setup(){const e=(0,o.Pj)(),n=(0,A.KR)(null),a=(0,A.KR)(null),s=(0,A.KR)(null),r=(0,A.KR)(null),l=(0,A.KR)(null);(0,i.Gt)(sg,s),(0,i.Gt)(og,r),(0,i.Gt)(ig,l);const u=(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})),p=(0,A.KR)(),k=(0,A.KR)(),f=()=>{c.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&&c.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 a=m.A.get("thelounge.state.userlist");n>t.mobileViewportPixels&&e.commit("sidebarOpen","false"!==m.A.get("thelounge.state.sidebar")),n>=1024&&"true"!==a&&"false"!==a&&(a="true"),e.commit("userlistOpen","true"===a)})(),(0,i.sV)(()=>{d().bind("esc",f),d().bind("alt+u",v),d().bind("alt+s",b),d().bind("alt+m",w),p.value=h()(()=>{c.A.emit("resize")},100),window.addEventListener("resize",p.value,{passive:!0});const e=()=>{c.A.emit("daychange"),k.value=setTimeout(e,y())};k.value=setTimeout(e,y())}),(0,i.xo)(()=>{d().unbind("esc"),d().unbind("alt+u"),d().unbind("alt+s"),d().unbind("alt+m"),p.value&&window.removeEventListener("resize",p.value),k.value&&clearTimeout(k.value)}),{viewportClasses:u,escapeKey:f,toggleSidebar:b,toggleUserList:v,toggleMentions:w,store:e,overlay:n,loungeWindow:a,imageViewer:s,contextMenu:r,confirmDialog:l}}}),lg=(0,D.A)(rg,[["render",function(e,n,a,t,s,o){const c=(0,i.g2)("Sidebar"),u=(0,i.g2)("router-view"),d=(0,i.g2)("Mentions"),p=(0,i.g2)("ImageViewer"),h=(0,i.g2)("ContextMenu"),m=(0,i.g2)("ConfirmDialog");return(0,i.uX)(),(0,i.CE)("div",{id:"viewport",class:(0,r.C4)(e.viewportClasses),role:"tablist"},[e.store.state.appLoaded?((0,i.uX)(),(0,i.Wv)(c,{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)(u,{ref:"loungeWindow"},null,512),(0,i.bF)(d),(0,i.bF)(p,{ref:"imageViewer"},null,512),(0,i.bF)(h,{ref:"contextMenu"},null,512),(0,i.bF)(m,{ref:"confirmDialog"},null,512),l],2)}]]);function cg(e){const n=String(e.message||e);if(o.M_.commit("isConnected",!1),!fe.A.io.reconnection())return o.M_.commit("currentUserVisibleError",`Disconnected from the server (${n}), The Lounge does not reconnect in public mode.`),void ug();var a;o.M_.commit("currentUserVisibleError",`Waiting to reconnect… (${n})`),ug(),fe.A.io.skipReconnect&&"io client disconnect"!==n&&(a=()=>fe.A.connect(),window.requestIdleCallback?window.requestIdleCallback(a,{timeout:2e3}):a())}function ug(){const e=document.getElementById("loading-page-message");e&&(e.textContent=o.M_.state.currentUserVisibleError)}fe.A.on("disconnect",cg),fe.A.on("connect_error",cg),fe.A.on("error",cg),fe.A.io.on("reconnect_attempt",function(e){o.M_.commit("currentUserVisibleError",`Reconnecting… (attempt ${e})`),ug()}),fe.A.on("connecting",function(){o.M_.commit("currentUserVisibleError","Connecting…"),ug()}),fe.A.on("connect",function(){fe.A.sendBuffer=[],o.M_.commit("currentUserVisibleError","Finalizing connection…"),ug()});let dg,pg=null;async function hg(){window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),"SignIn"!==am.currentRoute.value.name&&await tm("SignIn")}function mg(e){fe.A.disconnect(),o.M_.commit("currentUserVisibleError",e),ph.reload()}function gg(){const e=document.getElementById("loading-page-message");e&&(e.textContent=o.M_.state.currentUserVisibleError)}function kg(e){const n=[""].concat(e.messages.filter(e=>e.self&&e.text&&e.type===zc.MESSAGE).map(e=>e.text?e.text:"").reverse().slice(0,99)),{messages:a,totalMessages:t,...s}=e;return{...s,editTopic:!1,pendingMessage:"",inputHistoryPosition:0,historyLoading:!1,scrolledToBottom:!0,users:[],usersOutdated:e.type===Qc.CHANNEL,moreHistoryAvailable:e.totalMessages>e.messages.length,inputHistory:n,messages:a}}function fg(e,n){const a=[];for(const t of n){const n=e.find(e=>e.id===t.id);if(!n){const e=kg(t);a.push(e),bg(e);continue}bg(n),n.messages&&t.messages.length<100?n.messages=n.messages.concat(t.messages):n.messages=t.messages;for(const e in t)Object.hasOwn(n,e)&&"messages"!==e&&(n[e]=t[e]);a.push(n)}return a}function bg(e){if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel===e)return fe.A.emit("names",{target:e.id}),void(e.usersOutdated=!1);e.usersOutdated=!0}function vg(){const e=window.location.origin+window.location.pathname+window.location.hash;window.history.replaceState(null,"",e)}fe.A.on("auth:success",function(){o.M_.commit("currentUserVisibleError","Loading messages…"),gg()}),fe.A.on("auth:failed",async function(){if(m.A.remove("token"),o.M_.state.appLoaded)return mg("Authentication failed, reloading…");await hg()}),fe.A.on("auth:start",async function(e){if(pg&&e!==pg)return mg("Server restarted, reloading…");pg=e;const n=m.A.get("user"),a=m.A.get("token"),t=n&&a;if(o.M_.state.appLoaded&&!t)return mg("Authentication failed, reloading…");if(t){o.M_.commit("currentUserVisibleError","Authorizing…"),gg();let e=-1;for(const n of o.M_.state.networks)for(const a of n.channels)if(a.messages.length>0){const n=a.messages[a.messages.length-1].id;e<n&&(e=n)}const t=o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id||null;fe.A.emit("auth:perform",{user:n,token:a,lastMessage:e,openChannel:t,hasConfig:null!==o.M_.state.serverConfiguration})}else await hg()}),fe.A.on("commands",function(e){e&&(t.commands=e)}),fe.A.on("init",async function(e){if(o.M_.commit("networks",function(e){const n=m.A.get("thelounge.networks.collapsed"),a=n?new Set(JSON.parse(n)):new Set,t=[];for(const n of e){const e=o.M_.getters.findNetwork(n.uuid);if(!e){const e={...n,channels:n.channels.map(kg),isJoinChannelShown:!1,isCollapsed:a.has(n.uuid)};t.push(e);continue}for(const a in n)Object.prototype.hasOwnProperty.call(n,a)&&("channels"===a?e.channels=fg(e.channels,n.channels):e[a]=n[a]);t.push(e)}return t}(e.networks)),o.M_.commit("isConnected",!0),o.M_.commit("currentUserVisibleError",null),e.token&&m.A.set("token",e.token),!o.M_.state.appLoaded){o.M_.commit("appLoaded"),fe.A.emit("setting:get");try{await am.isReady()}catch(e){}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"),a=(e=>{const n={name:"",host:"",port:"",join:"",tls:!1};try{const a=new URL(e);if("irc:"===a.protocol)a.protocol="http:",a.port||(a.port="6667");else{if("ircs:"!==a.protocol)return;a.protocol="https:",a.port||(a.port="6697"),n.tls=!0}if(!a.hostname)return{};n.host=n.name=a.hostname,n.port=a.port;let t="";a.pathname.length>1&&(t=a.pathname.substr(1)),a.hash.length>1&&(t+=a.hash),n.join=t}catch(e){}return n})(String(n));return vg(),await am.push({name:"Connect",query:a}),!0}if(document.body.classList.contains("public")&&document.location.search){const n=Object.fromEntries(e.entries());return vg(),await am.push({name:"Connect",query:n}),!0}return!1}())return;if(!am.currentRoute?.value?.name||"SignIn"===am.currentRoute?.value?.name){const n=o.M_.getters.findChannel(e.active);n?sm(n.channel):o.M_.state.networks.length>0?sm(o.M_.state.networks[0].channels[0]):await tm("Connect")}}}),fe.A.on("join",function(e){const n=o.M_.getters.findNetwork(e.network);if(!n)return;const a=kg(e.chan);if(n.channels.splice(e.index||-1,0,a),"query"===e.chan.type&&!e.shouldOpen)return;const t=o.M_.getters.findChannel(e.chan.id);t?sm(t.channel):console.error("Could not find channel",e.chan.id)}),fe.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===zc.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{dg=new Audio,dg.src="audio/pop.wav"}catch(e){dg={play(){}}}function wg(e){return{...e,localetime:"",channel:null}}fe.A.on("msg",function(e){const n=o.M_.getters.findChannel(e.chan);if(!n)return;let a=n.channel,t=o.M_.state.activeChannel&&o.M_.state.activeChannel.channel===a;e.msg.showInActive&&(o.M_.state.activeChannel&&o.M_.state.activeChannel.network===n.network?(a=o.M_.state.activeChannel.channel,t=!0,e.chan===a.id?delete e.msg.showInActive:e.chan=a.id):delete e.msg.showInActive),t||(void 0!==e.highlight&&(a.highlight=e.highlight),void 0!==e.unread&&(a.unread=e.unread)),a.messages.push(e.msg),e.msg.self?a.firstUnread=e.msg.id:function(e,n,a,t){var s;if(!n.muted&&((t.highlight||o.M_.state.settings.notifyAllMessages&&t.type===zc.MESSAGE)&&(!document.hasFocus()||!a||a.channel!==n))){if(o.M_.state.settings.notification)try{dg.play()}catch(e){}if(o.M_.state.settings.desktopNotifications&&"Notification"in window&&"granted"===Notification.permission){let a,i;const r=t.from&&t.from.nick?t.from.nick:"unkonown";t.type===zc.INVITE?(a="New channel invite:",i=r+" invited you to "+t.channel):(a=r,n.type!==Qc.QUERY&&(a+=` (${n.name})`),t.type===zc.MESSAGE&&(a+=" says:"),s=t.text?t.text:"",i=s.replace(Dc,"").trim());const l=Date.parse(String(t.time));try{o.M_.state.hasServiceWorker?navigator.serviceWorker.ready.then(n=>{n.active?.postMessage({type:"notification",chanId:e,timestamp:l,title:a,body:i})}).catch(()=>{}):new Notification(a,{tag:`chan-${e}`,badge:"img/icon-alerted-black-transparent-bg-72x72px.png",icon:"img/icon-alerted-grey-bg-192x192px.png",body:i,timestamp:l}).addEventListener("click",function(){this.close(),window.focus();const n=o.M_.getters.findChannel(e);n&&sm(n.channel)})}catch(e){}}}}(e.chan,a,o.M_.state.activeChannel,e.msg);let s=0;t?a.scrolledToBottom&&(s=1500):s=100,s>0&&a.messages.length>s&&(a.messages.splice(0,a.messages.length-s),a.moreHistoryAvailable=!0),a.type===Qc.CHANNEL&&function(e,n){switch(n.type){case zc.MESSAGE:case zc.ACTION:{const a=e.users.find(e=>e.nick===n.from?.nick);a&&(a.lastMessage=new Date(n.time).getTime()||Date.now());break}case zc.QUIT:case zc.PART:{const a=e.users.findIndex(e=>e.nick===n.from?.nick);a>-1&&e.users.splice(a,1);break}case zc.KICK:{const a=e.users.findIndex(e=>e.nick===n.target?.nick);a>-1&&e.users.splice(a,1);break}}}(a,e.msg)}),fe.A.on("msg:preview",function(e){const n=o.M_.getters.findChannel(e.chan),a=n?.channel.messages.find(n=>n.id===e.id);if(!a||!a.previews)return;const t=a.previews.findIndex(n=>n.link===e.preview.link);t>-1&&(a.previews[t]=e.preview)}),fe.A.on("msg:special",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.data=e.data,sm(n.channel))}),fe.A.on("names",function(e){const n=o.M_.getters.findChannel(e.id);n&&(n.channel.users=e.users)}),fe.A.on("network",function(e){const n={...e.network,channels:e.network.channels.map(kg),isJoinChannelShown:!1,isCollapsed:!1};o.M_.commit("networks",[...o.M_.state.networks,n]),sm(n.channels[n.channels.length-1])}),fe.A.on("network:options",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.serverOptions=e.serverOptions)}),fe.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=Hc.PARTED}))}),fe.A.on("channel:state",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.state=e.state)}),fe.A.on("network:info",function(e){const n=o.M_.getters.findNetwork(e.uuid);if(n)for(const a in e)n[a]=e[a]}),fe.A.on("network:name",function(e){const n=o.M_.getters.findNetwork(e.uuid);n&&(n.name=n.channels[0].name=e.name)}),fe.A.on("nick",function(e){const n=o.M_.getters.findNetwork(e.network);n&&(n.nick=e.nick)}),fe.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))}),fe.A.on("part",async function(e){o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e.chan&&sm(o.M_.state.activeChannel.network.channels[0]);const n=o.M_.getters.findChannel(e.chan);n&&(n.network.channels.splice(n.network.channels.findIndex(n=>n.id===e.chan),1),await o.M_.dispatch("partChannel",n))}),fe.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?sm(o.M_.state.networks[0].channels[0]):await tm("Connect"))}),fe.A.on("sync_sort:networks",function(e){o.M_.commit("sortNetworks",(n,a)=>e.order.indexOf(n.uuid)-e.order.indexOf(a.uuid))}),fe.A.on("sync_sort:channels",function(e){const n=o.M_.getters.findNetwork(e.network);n&&n.channels.sort((n,a)=>e.order.indexOf(n.id)-e.order.indexOf(a.id))}),fe.A.on("topic",function(e){const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.topic=e.topic)}),fe.A.on("users",function(e){if(o.M_.state.activeChannel&&o.M_.state.activeChannel.channel.id===e.chan)return fe.A.emit("names",{target:e.chan});const n=o.M_.getters.findChannel(e.chan);n&&(n.channel.usersOutdated=!0)}),fe.A.on("sign-out",function(){hh.signout()}),fe.A.on("sessions:list",function(e){e.sort((e,n)=>n.lastUse-e.lastUse),o.M_.commit("sessions",e)}),fe.A.once("configuration",function(e){o.M_.commit("serverConfiguration",e),o.M_.dispatch("settings/applyAll"),e.fileUpload&&xu.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?"})}),fe.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)}}),fe.A.on("changelog:newversion",()=>{o.M_.state.serverConfiguration&&(o.M_.state.serverConfiguration.isUpdateAvailable=!0)}),fe.A.on("setting:new",async function(e){const n=e.name,a=e.value;await o.M_.dispatch("settings/update",{name:n,value:a,sync:!1})}),fe.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")}),fe.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)}),fe.A.on("mentions:list",function(e){o.M_.commit("mentions",e.map(wg))}),fe.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}))}),fe.A.on("mute:changed",e=>{const{target:n,status:a}=e,t=o.M_.getters.findChannel(n);if(t?.channel.type===Qc.LOBBY)for(const e of t.network.channels)e.type!==Qc.SPECIAL&&(e.muted=a);else t&&(t.channel.muted=a)});function yg(e){if(0===o.M_.state.networks.length)return;const n=[];let a=-1;for(const e of o.M_.state.networks)for(const t of e.channels)re(e,t)||(-1===a&&o.M_.state.activeChannel?.channel===t&&(a=n.length),n.push(t));const t=n.length;a=((a+e)%t+t)%t,_g(n[a])}function _g(e){sm(e);const n=document.querySelector(`#sidebar .channel-list-item[aria-controls="#chan-${e.id}"]`);n&&n.scrollIntoView({block:"center",inline:"nearest"})}d().bind(["alt+up","alt+down"],function(e,n){return!!g(e)||(yg("up"===n.split("+").pop()?-1:1),!1)}),function(e){let n=[];document.body.addEventListener("touchmove",function(e){if(2!==e.touches.length)return;const a=e.touches.item(0),t=e.touches.item(1);if(!a||!t)return;const s=window.performance.now(),o=[(a.screenX+t.screenX)/2,(a.screenY+t.screenY)/2];if(n.length>0){const e=n[n.length-1],a=e.center[0]===o[0]&&e.center[1]===o[1];if(e.timestamp===s||a)return}n.push({timestamp:s,center:o})},{passive:!0}),document.body.addEventListener("touchend",function(a){if(!(a.touches.length>=2))try{const a=function(e){if(e.length<2)return null;for(let n=1;n<e.length;++n){const a=e[n-1],t=e[n];if(ym(a.center,t.center)/Math.abs(a.timestamp-t.timestamp)<.2)return null}return function([e,n],[a,t]){const s=(t-n)/(a-e);return Math.abs(s)<1?e<a?"e":"w":n<t?"s":"n"}(e[0].center,e[e.length-1].center)}(n);a&&e(a)}finally{n=[]}},{passive:!0}),document.body.addEventListener("touchcancel",function(){n=[]},{passive:!0})}(function(e){"e"!==e&&"w"!==e||yg("e"===e?-1:1)}),d().bind(["alt+shift+up","alt+shift+down"],function(e,n){if(g(e))return!0;const a=o.M_.state.networks.length;if(0===a)return!1;const t="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===t&&o.M_.state.activeChannel?.channel.type!==Qc.LOBBY||(s=((s+t)%a+a)%a)),_g(o.M_.state.networks[s].channels[0]),!1}),d().bind(["alt+mod+up","alt+mod+down"],function(e,n){if(g(e))return!0;const a=o.M_.state.networks.map(e=>e.channels.filter(e=>e.unread||e===o.M_.state.activeChannel?.channel)).flat();if(0===a.length)return;let t=a.findIndex(e=>e===o.M_.state.activeChannel?.channel);const s=a.length;return t=((t+("up"===n.split("+").pop()?-1:1))%s+s)%s,_g(a[t]),!1}),d().bind(["alt+a"],function(e){if(g(e))return!0;let n;e:for(const e of o.M_.state.networks)for(const a of e.channels){if(a.highlight){n=a;break e}a.unread&&!n&&(n=a)}return n&&_g(n),!1}),d().bind(["alt+/"],function(e){return!!g(e)||(tm("Help").catch(e=>console.log(e)),!1)});const Cg={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"===am.currentRoute.value.name)return void am.go(-1);if(e.altKey||Cg[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 a=document.getElementById("input");a&&(a.focus(),13===e.which&&e.preventDefault())});const Lg=document.getElementById("favicon"),Eg=Lg?.getAttribute("href")||"",xg=Lg?.dataset.other||"",Mg=(0,s.Ef)(lg);Mg.use(am),Mg.use(o.M_,o.Eb),Mg.mount("#app"),fe.A.open(),o.M_.watch(e=>e.sidebarOpen,e=>{window.innerWidth>t.mobileViewportPixels&&(m.A.set("thelounge.state.sidebar",e.toString()),c.A.emit("resize"))}),o.M_.watch(e=>e.userlistOpen,e=>{m.A.set("thelounge.state.userlist",e.toString()),c.A.emit("resize")}),o.M_.watch((e,n)=>n.title,e=>{document.title=e}),o.M_.watch((e,n)=>n.highlightCount,e=>{Lg?.setAttribute("href",e>0?xg:Eg);const n=window.navigator;n.setAppBadge&&(e>0?n.setAppBadge(e).catch(()=>{}):n.clearAppBadge&&n.clearAppBadge().catch(()=>{}))}),Mg.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)}},5247:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>p});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" is away "),i={class:"away-message"},r=(0,t.eW)("("),l=(0,t.eW)(")");var c=a(5162),u=a(7758);const d=(0,t.pM)({name:"MessageTypeAway",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,a(6262).A)(d,[["render",function(e,n,a,c,u,d){const p=(0,t.g2)("ParsedMessage"),h=(0,t.g2)("Username");return(0,t.uX)(),(0,t.CE)("span",s,[e.message.self?((0,t.uX)(),(0,t.Wv)(p,{key:0,network:e.network,message:e.message},null,8,["network","message"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.bF)(h,{user:e.message.from},null,8,["user"]),o,(0,t.Lk)("i",i,[r,(0,t.bF)(p,{network:e.network,message:e.message},null,8,["network","message"]),l])],64))])}]])},9186:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>c});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" is back ");var i=a(5162),r=a(7758);const l=(0,t.pM)({name:"MessageTypeBack",components:{ParsedMessage:i.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,a(6262).A)(l,[["render",function(e,n,a,i,r,l){const c=(0,t.g2)("ParsedMessage"),u=(0,t.g2)("Username");return(0,t.uX)(),(0,t.CE)("span",s,[e.message.self?((0,t.uX)(),(0,t.Wv)(c,{key:0,network:e.network,message:e.message},null,8,["network","message"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.bF)(u,{user:e.message.from},null,8,["user"]),o],64))])}]])},649:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>g});var t=a(6931),s=a(33);const o={class:"content"},i=(0,t.eW)(" has changed "),r={key:0},l=(0,t.eW)("username to "),c={key:1},u=(0,t.eW)("hostname to "),d={class:"hostmask"};var p=a(5162),h=a(7758);const m=(0,t.pM)({name:"MessageTypeChangeHost",components:{ParsedMessage:p.A,Username:h.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),g=(0,a(6262).A)(m,[["render",function(e,n,a,p,h,m){const g=(0,t.g2)("Username"),k=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",o,[(0,t.bF)(g,{user:e.message.from},null,8,["user"]),i,e.message.new_ident?((0,t.uX)(),(0,t.CE)("span",r,[l,(0,t.Lk)("b",null,(0,s.v_)(e.message.new_ident),1)])):(0,t.Q3)("",!0),e.message.new_host?((0,t.uX)(),(0,t.CE)("span",c,[u,(0,t.Lk)("i",d,[(0,t.bF)(k,{network:e.network,text:e.message.new_host},null,8,["network","text"])])])):(0,t.Q3)("",!0)])}]])},4307:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>d});var t=a(6931),s=a(33);const o={class:"content"},i=(0,t.eW)(" "+(0,s.v_)(" ")),r={class:"ctcp-message"};var l=a(5162),c=a(7758);const u=(0,t.pM)({name:"MessageTypeCTCP",components:{ParsedMessage:l.A,Username:c.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),d=(0,a(6262).A)(u,[["render",function(e,n,a,s,l,c){const u=(0,t.g2)("Username"),d=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",o,[(0,t.bF)(u,{user:e.message.from},null,8,["user"]),i,(0,t.Lk)("span",r,[(0,t.bF)(d,{text:e.message.ctcpMessage},null,8,["text"])])])}]])},4526:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>p});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" sent a "),i=(0,t.Lk)("abbr",{title:"Client-to-client protocol"},"CTCP",-1),r=(0,t.eW)(" request: "),l={class:"ctcp-message"};var c=a(5162),u=a(7758);const d=(0,t.pM)({name:"MessageTypeRequestCTCP",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,a(6262).A)(d,[["render",function(e,n,a,c,u,d){const p=(0,t.g2)("Username"),h=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(p,{user:e.message.from},null,8,["user"]),o,i,r,(0,t.Lk)("span",l,[(0,t.bF)(h,{text:e.message.ctcpMessage},null,8,["text"])])])}]])},7705:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>r});var t=a(6931);const s={class:"content"};var o=a(5162);const i=(0,t.pM)({name:"MessageTypeError",components:{ParsedMessage:o.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({errorMessage:(0,t.EW)(()=>{const n=e.message.channel||"!UNKNOWN_CHAN",a=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 ${a} 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 ${a} is not on the channel.`;case"user_on_channel":return`User ${a} is already on the channel.`;default:return e.message.reason?`${e.message.reason} (${e.message.error||"!UNDEFINED_ERR"})`:e.message.error}})})}),r=(0,a(6262).A)(i,[["render",function(e,n,a,o,i,r){const l=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(l,{network:e.network,message:e.message,text:e.errorMessage},null,8,["network","message","text"])])}]])},2394:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>d});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" invited "),i={key:0},r=(0,t.eW)(" to ");var l=a(5162),c=a(7758);const u=(0,t.pM)({name:"MessageTypeInvite",components:{ParsedMessage:l.A,Username:c.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),d=(0,a(6262).A)(u,[["render",function(e,n,a,l,c,u){const d=(0,t.g2)("Username"),p=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(d,{user:e.message.from},null,8,["user"]),o,e.message.invitedYou?((0,t.uX)(),(0,t.CE)("span",i,"you")):((0,t.uX)(),(0,t.Wv)(d,{key:1,user:e.message.target},null,8,["user"])),r,(0,t.bF)(p,{network:e.network,text:e.message.channel},null,8,["network","text"])])}]])},4521:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>g});var t=a(6931),s=a(33);const o={class:"content"},i={class:"hostmask"},r=(0,t.eW)(" ("),l=(0,t.eW)(")"),c={key:0,class:"account"},u={key:1,class:"realname"},d=(0,t.eW)(" has joined the channel ");var p=a(5162),h=a(7758);const m=(0,t.pM)({name:"MessageTypeJoin",components:{ParsedMessage:p.A,Username:h.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),g=(0,a(6262).A)(m,[["render",function(e,n,a,p,h,m){const g=(0,t.g2)("Username"),k=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",o,[(0,t.bF)(g,{user:e.message.from},null,8,["user"]),(0,t.Lk)("i",i,[r,(0,t.bF)(k,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),l]),e.message.account?((0,t.uX)(),(0,t.CE)("i",c," ["+(0,s.v_)(e.message.account)+"]",1)):(0,t.Q3)("",!0),e.message.gecos?((0,t.uX)(),(0,t.CE)("i",u," ("+(0,s.v_)(e.message.gecos)+")",1)):(0,t.Q3)("",!0),d])}]])},5110:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>p});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" has kicked "),i={key:0,class:"part-reason"},r=(0,t.eW)(" ("),l=(0,t.eW)(")");var c=a(5162),u=a(7758);const d=(0,t.pM)({name:"MessageTypeKick",components:{ParsedMessage:c.A,Username:u.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),p=(0,a(6262).A)(d,[["render",function(e,n,a,c,u,d){const p=(0,t.g2)("Username"),h=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(p,{user:e.message.from},null,8,["user"]),o,(0,t.bF)(p,{user:e.message.target},null,8,["user"]),e.message.text?((0,t.uX)(),(0,t.CE)("i",i,[r,(0,t.bF)(h,{network:e.network,message:e.message},null,8,["network","message"]),l])):(0,t.Q3)("",!0)])}]])},4288:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>c});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" sets mode ");var i=a(5162),r=a(7758);const l=(0,t.pM)({name:"MessageTypeMode",components:{ParsedMessage:i.A,Username:r.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),c=(0,a(6262).A)(l,[["render",function(e,n,a,i,r,l){const c=(0,t.g2)("Username"),u=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(c,{user:e.message.from},null,8,["user"]),o,(0,t.bF)(u,{message:e.message},null,8,["message"])])}]])},1900:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>l});var t=a(6931),s=a(33);const o={class:"content"},i=(0,t.eW)(" Channel mode is "),r=(0,t.pM)({name:"MessageChannelMode",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,a(6262).A)(r,[["render",function(e,n,a,r,l,c){return(0,t.uX)(),(0,t.CE)("span",o,[i,(0,t.Lk)("b",null,(0,s.v_)(e.message.text),1)])}]])},1243:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>l});var t=a(6931),s=a(33);const o={class:"content"},i=(0,t.eW)(" Your user mode is "),r=(0,t.pM)({name:"MessageChannelMode",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,a(6262).A)(r,[["render",function(e,n,a,r,l,c){return(0,t.uX)(),(0,t.CE)("span",o,[i,(0,t.Lk)("b",null,(0,s.v_)(e.message.raw_modes),1)])}]])},2027:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>l});var t=a(6931);const s={class:"content"},o={class:"text"};var i=a(5162);const r=(0,t.pM)({name:"MessageTypeMonospaceBlock",components:{ParsedMessage:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({cleanText:(0,t.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,"")})})}),l=(0,a(6262).A)(r,[["render",function(e,n,a,i,r,l){const c=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.Lk)("span",o,[(0,t.bF)(c,{network:e.network,text:e.cleanText},null,8,["network","text"])])])}]])},6141:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>l});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" is now known as ");var i=a(7758);const r=(0,t.pM)({name:"MessageTypeNick",components:{Username:i.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),l=(0,a(6262).A)(r,[["render",function(e,n,a,i,r,l){const c=(0,t.g2)("Username");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(c,{user:e.message.from},null,8,["user"]),o,(0,t.bF)(c,{user:{nick:e.message.new_nick,mode:e.message.from.mode}},null,8,["user"])])}]])},1927:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>g});var t=a(6931);const s={class:"content"},o={class:"hostmask"},i=(0,t.eW)(" ("),r=(0,t.eW)(")"),l=(0,t.eW)(" has left the channel "),c={key:0,class:"part-reason"},u=(0,t.eW)("("),d=(0,t.eW)(")");var p=a(5162),h=a(7758);const m=(0,t.pM)({name:"MessageTypePart",components:{ParsedMessage:p.A,Username:h.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),g=(0,a(6262).A)(m,[["render",function(e,n,a,p,h,m){const g=(0,t.g2)("Username"),k=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(g,{user:e.message.from},null,8,["user"]),(0,t.Lk)("i",o,[i,(0,t.bF)(k,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),r]),l,e.message.text?((0,t.uX)(),(0,t.CE)("i",c,[u,(0,t.bF)(k,{network:e.network,message:e.message},null,8,["network","message"]),d])):(0,t.Q3)("",!0)])}]])},8082:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>g});var t=a(6931);const s={class:"content"},o={class:"hostmask"},i=(0,t.eW)(" ("),r=(0,t.eW)(")"),l=(0,t.eW)(" has quit "),c={key:0,class:"quit-reason"},u=(0,t.eW)("("),d=(0,t.eW)(")");var p=a(5162),h=a(7758);const m=(0,t.pM)({name:"MessageTypeQuit",components:{ParsedMessage:p.A,Username:h.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),g=(0,a(6262).A)(m,[["render",function(e,n,a,p,h,m){const g=(0,t.g2)("Username"),k=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[(0,t.bF)(g,{user:e.message.from},null,8,["user"]),(0,t.Lk)("i",o,[i,(0,t.bF)(k,{network:e.network,text:e.message.hostmask},null,8,["network","text"]),r]),l,e.message.text?((0,t.uX)(),(0,t.CE)("i",c,[u,(0,t.bF)(k,{network:e.network,message:e.message},null,8,["network","message"]),d])):(0,t.Q3)("",!0)])}]])},839:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>r});var t=a(6931),s=a(33);const o={class:"content"},i=(0,t.pM)({name:"MessageTypeRaw",props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),r=(0,a(6262).A)(i,[["render",function(e,n,a,i,r,l){return(0,t.uX)(),(0,t.CE)("span",o,(0,s.v_)(e.message.text),1)}]])},9152:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>d});var t=a(6931);const s={class:"content"},o=(0,t.eW)(" has changed the topic to: "),i=(0,t.eW)("The topic is: "),r={key:2,class:"new-topic"};var l=a(5162),c=a(7758);const u=(0,t.pM)({name:"MessageTypeTopic",components:{ParsedMessage:l.A,Username:c.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}}}),d=(0,a(6262).A)(u,[["render",function(e,n,a,l,c,u){const d=(0,t.g2)("Username"),p=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",s,[e.message.from&&e.message.from.nick?((0,t.uX)(),(0,t.CE)(t.FK,{key:0},[(0,t.bF)(d,{user:e.message.from},null,8,["user"]),o],64)):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[i],64)),e.message.text?((0,t.uX)(),(0,t.CE)("span",r,[(0,t.bF)(p,{network:e.network,message:e.message},null,8,["network","message"])])):(0,t.Q3)("",!0)])}]])},443:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>u});var t=a(6931),s=a(33);const o={class:"content"},i=(0,t.eW)(" Topic set by ");var r=a(7321),l=a(7758);const c=(0,t.pM)({name:"MessageTypeTopicSetBy",components:{Username:l.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:e=>({messageTimeLocale:(0,t.EW)(()=>(0,r.A)(e.message.when))})}),u=(0,a(6262).A)(c,[["render",function(e,n,a,r,l,c){const u=(0,t.g2)("Username");return(0,t.uX)(),(0,t.CE)("span",o,[i,(0,t.bF)(u,{user:e.message.from},null,8,["user"]),(0,t.eW)(" on "+(0,s.v_)(e.messageTimeLocale),1)])}]])},6010:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>O});var t=a(6931),s=a(33);const o={class:"content"},i={key:0},r={class:"whois"},l=(0,t.Lk)("dt",null,"Logged in as:",-1),c=(0,t.Lk)("dt",null,"Host mask:",-1),u={class:"hostmask"},d=(0,t.Lk)("dt",null,"Actual host:",-1),p={class:"hostmask"},h=["href"],m={key:0},g=(0,t.Lk)("dt",null,"Actual username:",-1),k=(0,t.Lk)("dt",null,"Real name:",-1),f=(0,t.Lk)("dt",null,"Registered nick:",-1),b=(0,t.Lk)("dt",null,"Channels:",-1),v=(0,t.Lk)("dt",null,"Modes:",-1),w=(0,t.Lk)("dt",null,"Special:",-1),y=(0,t.Lk)("dt",null,"Operator:",-1),_=(0,t.Lk)("dt",null,"Available for help:",-1),C=(0,t.Lk)("dd",null,"Yes",-1),L=(0,t.Lk)("dt",null,"Is a bot:",-1),E=(0,t.Lk)("dd",null,"Yes",-1),x=(0,t.Lk)("dt",null,"Away:",-1),M=(0,t.Lk)("dt",null,"Secure connection:",-1),S=(0,t.Lk)("dd",null,"Yes",-1),A=(0,t.Lk)("dt",null,"Certificate:",-1),j=(0,t.Lk)("dt",null,"Connected to:",-1),X=(0,t.Lk)("dt",null,"Connected at:",-1),T=(0,t.Lk)("dt",null,"Idle since:",-1);var P=a(7321),W=a(5162),I=a(7758);const R=(0,t.pM)({name:"MessageTypeWhois",components:{ParsedMessage:W.A,Username:I.A},props:{network:{type:Object,required:!0},message:{type:Object,required:!0}},setup:()=>({localetime:e=>(0,P.A)(e)})}),O=(0,a(6262).A)(R,[["render",function(e,n,a,P,W,I){const R=(0,t.g2)("Username"),O=(0,t.g2)("ParsedMessage");return(0,t.uX)(),(0,t.CE)("span",o,[(0,t.Lk)("p",null,[(0,t.bF)(R,{user:{nick:e.message.whois.nick}},null,8,["user"]),e.message.whois.whowas?((0,t.uX)(),(0,t.CE)("span",i," is offline, last information:")):(0,t.Q3)("",!0)]),(0,t.Lk)("dl",r,[e.message.whois.account?((0,t.uX)(),(0,t.CE)(t.FK,{key:0},[l,(0,t.Lk)("dd",null,(0,s.v_)(e.message.whois.account),1)],64)):(0,t.Q3)("",!0),c,(0,t.Lk)("dd",u,[(0,t.bF)(O,{network:e.network,text:e.message.whois.ident+"@"+e.message.whois.hostname},null,8,["network","text"])]),e.message.whois.actual_hostname?((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[d,(0,t.Lk)("dd",p,[(0,t.Lk)("a",{href:"https://ipinfo.io/"+e.message.whois.actual_ip,target:"_blank",rel:"noopener"},(0,s.v_)(e.message.whois.actual_ip),9,h),e.message.whois.actual_hostname!=e.message.whois.actual_ip?((0,t.uX)(),(0,t.CE)("i",m," ("+(0,s.v_)(e.message.whois.actual_hostname)+")",1)):(0,t.Q3)("",!0)])],64)):(0,t.Q3)("",!0),e.message.whois.actual_username?((0,t.uX)(),(0,t.CE)(t.FK,{key:2},[g,(0,t.Lk)("dd",null,(0,s.v_)(e.message.whois.actual_username),1)],64)):(0,t.Q3)("",!0),e.message.whois.real_name?((0,t.uX)(),(0,t.CE)(t.FK,{key:3},[k,(0,t.Lk)("dd",null,[(0,t.bF)(O,{network:e.network,text:e.message.whois.real_name},null,8,["network","text"])])],64)):(0,t.Q3)("",!0),e.message.whois.registered_nick?((0,t.uX)(),(0,t.CE)(t.FK,{key:4},[f,(0,t.Lk)("dd",null,(0,s.v_)(e.message.whois.registered_nick),1)],64)):(0,t.Q3)("",!0),e.message.whois.channels?((0,t.uX)(),(0,t.CE)(t.FK,{key:5},[b,(0,t.Lk)("dd",null,[(0,t.bF)(O,{network:e.network,text:e.message.whois.channels},null,8,["network","text"])])],64)):(0,t.Q3)("",!0),e.message.whois.modes?((0,t.uX)(),(0,t.CE)(t.FK,{key:6},[v,(0,t.Lk)("dd",null,(0,s.v_)(e.message.whois.modes),1)],64)):(0,t.Q3)("",!0),e.message.whois.special?((0,t.uX)(!0),(0,t.CE)(t.FK,{key:7},(0,t.pI)(e.message.whois.special,e=>((0,t.uX)(),(0,t.CE)(t.FK,{key:e},[w,(0,t.Lk)("dd",null,(0,s.v_)(e),1)],64))),128)):(0,t.Q3)("",!0),e.message.whois.operator?((0,t.uX)(),(0,t.CE)(t.FK,{key:8},[y,(0,t.Lk)("dd",null,(0,s.v_)(e.message.whois.operator),1)],64)):(0,t.Q3)("",!0),e.message.whois.helpop?((0,t.uX)(),(0,t.CE)(t.FK,{key:9},[_,C],64)):(0,t.Q3)("",!0),e.message.whois.bot?((0,t.uX)(),(0,t.CE)(t.FK,{key:10},[L,E],64)):(0,t.Q3)("",!0),e.message.whois.away?((0,t.uX)(),(0,t.CE)(t.FK,{key:11},[x,(0,t.Lk)("dd",null,[(0,t.bF)(O,{network:e.network,text:e.message.whois.away},null,8,["network","text"])])],64)):(0,t.Q3)("",!0),e.message.whois.secure?((0,t.uX)(),(0,t.CE)(t.FK,{key:12},[M,S],64)):(0,t.Q3)("",!0),e.message.whois.certfps?((0,t.uX)(!0),(0,t.CE)(t.FK,{key:13},(0,t.pI)(e.message.whois.certfps,e=>((0,t.uX)(),(0,t.CE)(t.FK,{key:e},[A,(0,t.Lk)("dd",null,(0,s.v_)(e),1)],64))),128)):(0,t.Q3)("",!0),e.message.whois.server?((0,t.uX)(),(0,t.CE)(t.FK,{key:14},[j,(0,t.Lk)("dd",null,[(0,t.eW)((0,s.v_)(e.message.whois.server)+" ",1),(0,t.Lk)("i",null,"("+(0,s.v_)(e.message.whois.server_info)+")",1)])],64)):(0,t.Q3)("",!0),e.message.whois.logonTime?((0,t.uX)(),(0,t.CE)(t.FK,{key:15},[X,(0,t.Lk)("dd",null,(0,s.v_)(e.localetime(e.message.whois.logonTime)),1)],64)):(0,t.Q3)("",!0),e.message.whois.idle?((0,t.uX)(),(0,t.CE)(t.FK,{key:16},[T,(0,t.Lk)("dd",null,(0,s.v_)(e.localetime(e.message.whois.idleTime)),1)],64)):(0,t.Q3)("",!0)])])}]])},5162:(e,n,a)=>{"use strict";a.d(n,{A:()=>N});var t=a(6931);const s=/^(\d{1,2})(?:,(\d{1,2}))?/,o=/^([0-9a-f]{6})(?:,([0-9a-f]{6}))?/i,i=/[\u0000-\u0009\u000B-\u001F]/g,r=["bold","textColor","bgColor","hexColor","hexBgColor","italic","underline","strikethrough","monospace"];var l=a(680),c=a.n(l);function u(e){return c()(e).replace("-","\\-")}var d=a(2833),p=a.n(d),h=a(9011);const m=p()().tlds(h).tlds("onion",!0),g=["sftp","smb","file","irc","ircs","svn","git","steam","mumble","ts3server","svn+ssh","ssh","gopher","gemini"];for(const e of g)m.add(e+":","http:");function k(e){return{start:e.index,end:e.lastIndex,link:e.url}}m.add("web+",{validate(e,n,a){const t=/^[a-z]+:/gi;if(!t.test(e.slice(n)))return 0;const s=a.testSchemaAt(e,"http:",n+t.lastIndex);return 0===s?0:t.lastIndex+s},normalize(e){e.schema=e.text.slice(0,e.text.indexOf(":")+1)}}),m.add("//",{validate:m.__schemas__["//"].validate,normalize(e){e.schema="",e.url="http:"+e.url}});const f=(0,a(631).A)(),b=/([\w[\]\\`^{|}-]+)/g,v=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 w(e,n){return e.start-n.start||n.end-e.end}const y=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 _=a(33);const C=["aria-label"],L=(0,t.pM)({name:"LinkPreviewToggle",props:{link:{type:Object,required:!0},message:{type:Object,required:!0}},emits:["toggle-link-preview"],setup:(e,{emit:n})=>({ariaLabel:(0,t.EW)(()=>e.link.shown?"Collapse preview":"Expand preview"),onClick:()=>{e.link.shown=!e.link.shown,n("toggle-link-preview",e.link,e.message)}})});var E=a(6262);const x=(0,E.A)(L,[["render",function(e,n,a,s,o,i){return"loading"!==e.link.type?((0,t.uX)(),(0,t.CE)("button",{key:0,class:(0,_.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,C)):(0,t.Q3)("",!0)}]]),M={class:"preview-size"};var S=a(3388);const A=(0,t.pM)({name:"LinkPreviewFileSize",props:{size:{type:Number,required:!0}},setup:e=>({previewSize:(0,S.A)(e.size)})}),j=(0,E.A)(A,[["render",function(e,n,a,s,o,i){return(0,t.uX)(),(0,t.CE)("span",M,"("+(0,_.v_)(e.previewSize)+")",1)}]]);var X=a(7657),T=a(2806);const P=(0,t.pM)({name:"InlineChannel",props:{channel:String},setup:e=>({openContextMenu:n=>{T.A.emit("contextmenu:inline-channel",{event:n,channel:e.channel})}})}),W=(0,E.A)(P,[["render",function(e,n,a,s,o,i){return(0,t.uX)(),(0,t.CE)("span",{class:"inline-channel",dir:"auto",role:"button",tabindex:"0",onClick:n[0]||(n[0]=(0,X.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"])),onContextmenu:n[1]||(n[1]=(0,X.D$)((...n)=>e.openContextMenu&&e.openContextMenu(...n),["prevent"]))},[(0,t.RG)(e.$slots,"default")],32)}]]);var I=a(7758);const R=/[\u{1f3fb}-\u{1f3ff}]|\u{fe0f}/gu,O=function(e,n,a){const l=function(e){return function(e){const n=[];let a,t,r,l,c,u,d,p,h,m,g=0,k=0;const f=()=>{t=!1,r=void 0,l=void 0,c=void 0,u=void 0,d=!1,p=!1,h=!1,m=!1};f();const b=()=>{const a=e.slice(g,k).replace(i," ");if(a.length){const e=n.length?n[n.length-1].end:0;n.push({bold:t,textColor:r,bgColor:l,hexColor:c,hexBgColor:u,italic:d,underline:p,strikethrough:h,monospace:m,text:a,start:e,end:e+a.length})}g=k+1};for(;k<e.length;){switch(e[k]){case"":b(),f();break;case"":b(),t=!t;break;case"":b(),a=e.slice(k+1).match(s),a?(r=Number(a[1]),a[2]&&(l=Number(a[2])),k+=a[0].length,g=k+1):(r=void 0,l=void 0);break;case"":b(),a=e.slice(k+1).match(o),a?(c=a[1].toUpperCase(),a[2]&&(u=a[2].toUpperCase()),k+=a[0].length,g=k+1):(c=void 0,u=void 0);break;case"":{b();const e=l;l=r,r=e;break}case"":b(),d=!d;break;case"":b(),p=!p;break;case"":b(),h=!h;break;case"":b(),m=!m}k+=1}return b(),n}(e).reduce((e,n)=>{if(e.length){const a=e[e.length-1];if(r.every(e=>n[e]===a[e]))return a.text+=n.text,a.end+=n.text.length,e}return e.concat([n])},[])}(e),c=l.map(e=>e.text).join(""),d=function(e,n,a){const t=a.map(u).join(""),s=n.map(u).join(""),o=new RegExp(`(?:^|\\s)[${t}]*([${s}][^ ]+)`,"g"),i=[];let r;do{r=o.exec(e),r&&i.push({start:r.index+r[0].length-r[1].length,end:r.index+r[0].length,channel:r[1]})}while(r);return i}(c,a?a.serverOptions.CHANTYPES:["#","&"],a?a.serverOptions.PREFIX?.prefix?.map(e=>e.symbol):["!","@","%","+"]),p=function(e){const n=m.match(e);return n?n.map(k):[]}(c),h=function(e){const n=[];let a;for(;a=f.exec(e);)n.push({start:a.index,end:a.index+a[0].length,emoji:a[0]});return n}(c),g=function(e,n){const a=[];if(0===n.length)return a;let t;for(;t=b.exec(e);)n.indexOf(t[1])>-1&&a.push({start:t.index,end:t.index+t[1].length,nick:t[1]});return a}(c,n&&n.users||[]);return function(e,n,a){const t=function(e,n){let a=0;const t=e.reduce((e,n)=>(n.start>a&&e.push({start:a,end:n.start}),a=n.end,e),[]);return a<n.length&&t.push({start:a,end:n.length}),t}(e=e.sort(w).reduce((e,n)=>e.some(e=>v(e,n))?e:e.concat([n]),[]),a);return[...e,...t].sort(w).map(e=>(e.fragments=n.filter(n=>v(e,n)).map(n=>function(e,n){const a=n.start,t=Math.max(n.start,e.start),s=Math.min(n.end,e.end),o=n.text.slice(t-a,s-a);return Object.assign({},n,{start:t,end:s,text:o})}(e,n)),e))}(d.concat(p).concat(h).concat(g),l,c).map(e=>{const a=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 a={class:void 0,style:void 0};let s=!1;return n.length>0&&(s=!0,a.class=n),e.hexColor&&(s=!0,a.style={color:`#${e.hexColor}`},e.hexBgColor&&(a.style["background-color"]=`#${e.hexBgColor}`)),s?(0,t.h)("span",a,e.text):e.text}(e));if(e.link){const s=n&&n.previews&&n.previews.find(n=>n.link===e.link),o=(0,t.h)("a",{href:e.link,dir:s?null:"auto",target:"_blank",rel:"noopener"},a);if(!s)return o;const i=[o];return s.size>0&&i.push((0,t.h)(j,{size:s.size})),i.push((0,t.h)(x,{link:s,message:n})),(0,t.h)("span",{dir:"auto"},i)}if(e.channel)return(0,t.h)(W,{channel:e.channel},{default:()=>a});if(e.emoji){const n=e.emoji.replace(R,""),s=y[n]?`Emoji: ${y[n]}`:null;return(0,t.h)("span",{class:["emoji"],role:"img","aria-label":s,title:s},a)}return e.nick?(0,t.h)(I.A,{user:{nick:e.nick},dir:"auto"},{default:()=>a}):a})},N=(0,t.pM)({name:"ParsedMessage",functional:!0,props:{text:String,message:{type:Object,required:!1},network:{type:Object,required:!1}},render:e=>O(void 0!==e.text?e.text:e.message.text,e.message,e.network)})},7758:(e,n,a)=>{"use strict";a.d(n,{A:()=>u});var t=a(6931),s=a(7657),o=a(33);const i=["data-name"];var r=a(2806),l=a(211);const c=(0,t.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=>({mode:(0,t.EW)(()=>e.user.modes?e.user.modes[0]:e.user.mode),nickColor:(0,t.EW)(()=>(e=>{let n=0;for(let a=0;a<e.length;a++)n+=e.charCodeAt(a);return"color-"+(1+n%32).toString()})(e.user.nick)),hover:()=>e.onHover?e.onHover(e.user):null,openContextMenu:n=>{r.A.emit("contextmenu:user",{event:n,user:e.user,network:e.network,channel:e.channel})},store:(0,l.Pj)()})}),u=(0,a(6262).A)(c,[["render",function(e,n,a,r,l,c){return(0,t.uX)(),(0,t.CE)("span",(0,t.v6)({class:["user",{[e.nickColor]:e.store.state.settings.coloredNicks},{active:e.active}],"data-name":e.user.nick,role:"button"},(0,t.Tb)(e.onHover?{mouseenter:e.hover}:{}),{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,t.RG)(e.$slots,"default",{},()=>[(0,t.eW)((0,o.v_)(e.mode)+(0,o.v_)(e.user.nick),1)])],16,i)}]])}},a={};function t(e){var s=a[e];if(void 0!==s)return s.exports;var o=a[e]={exports:{}};return n[e].call(o.exports,o,o.exports,t),o.exports}t.m=n,e=[],t.O=(n,a,s,o)=>{if(!a){var i=1/0;for(u=0;u<e.length;u++){a=e[u][0],s=e[u][1],o=e[u][2];for(var r=!0,l=0;l<a.length;l++)(!1&o||i>=o)&&Object.keys(t.O).every(e=>t.O[e](a[l]))?a.splice(l--,1):(r=!1,o<i&&(i=o));if(r){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]=[a,s,o]},t.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},t.d=(e,n)=>{for(var a in n)t.o(n,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:n[a]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={936:0};t.O.j=n=>0===e[n];var n=(n,a)=>{var s,o,i=a[0],r=a[1],l=a[2],c=0;if(i.some(n=>0!==e[n])){for(s in r)t.o(r,s)&&(t.m[s]=r[s]);if(l)var u=l(t)}for(n&&n(a);c<i.length;c++)o=i[c],t.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return t.O(u)},a=self.webpackChunk_lordbex_thelounge=self.webpackChunk_lordbex_thelounge||[];a.forEach(n.bind(null,0)),a.push=n.bind(null,a.push.bind(a))})();var s=t.O(void 0,[110],()=>t(5244));s=t.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
|