2 lines
270 KiB
JavaScript
2 lines
270 KiB
JavaScript
!function(e){function t(t){for(var s,o,r=t[0],l=t[1],c=t[2],u=0,d=[];u<r.length;u++)o=r[u],Object.prototype.hasOwnProperty.call(n,o)&&n[o]&&d.push(n[o][0]),n[o]=0;for(s in l)Object.prototype.hasOwnProperty.call(l,s)&&(e[s]=l[s]);for(h&&h(t);d.length;)d.shift()();return i.push.apply(i,c||[]),a()}function a(){for(var e,t=0;t<i.length;t++){for(var a=i[t],s=!0,r=1;r<a.length;r++){var l=a[r];0!==n[l]&&(s=!1)}s&&(i.splice(t--,1),e=o(o.s=a[0]))}return e}var s={},n={0:0},i=[];function o(t){if(s[t])return s[t].exports;var a=s[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,o),a.l=!0,a.exports}o.m=e,o.c=s,o.d=function(e,t,a){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(o.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)o.d(a,s,function(t){return e[t]}.bind(null,s));return a},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],l=r.push.bind(r);r.push=t,r=r.slice();for(var c=0;c<r.length;c++)t(r[c]);var h=l;i.push([72,1]),a()}([function(e,t,a){"use strict";var s=a(10),n=a(45),i=a(7),o=a(1);function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){c(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const h={apply(){},default:null,sync:null},u=function(e){const t={};for(const a in e)t[a]=l(l({},h),e[a]);return t}({syncSettings:{default:!0,sync:"never",apply(e,t,a=!1){t&&!a&&o.a.emit("setting:get")}},advanced:{default:!1},autocomplete:{default:!0},nickPostfix:{default:""},coloredNicks:{default:!0},desktopNotifications:{default:!1,sync:"never",apply(e,t){e.commit("refreshDesktopNotificationState",null,{root:!0}),"Notification"in window&&t&&"granted"!==Notification.permission&&Notification.requestPermission(()=>e.commit("refreshDesktopNotificationState",null,{root:!0}))}},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,t){const a=document.getElementById("theme"),s="themes/".concat(t,".css");if(a.attributes.href.value===s)return;a.attributes.href.value=s;const n=e.state.serverConfiguration.themes.filter(e=>e.name===t)[0].themeColor||document.querySelector('meta[name="theme-color"]').content;document.querySelector('meta[name="theme-color"]').content=n}},media:{default:!0},uploadCanvas:{default:!0},userStyles:{default:"",apply(e,t){/[?&]nocss/.test(window.location.search)||(document.getElementById("user-specified-css").innerHTML=t)}}});function d(){const e={};for(const t in u)e[t]=u[t].default;return e}function p(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function m(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function g(){let e;try{e=JSON.parse(i.a.get("settings"))}catch(e){i.a.remove("settings")}return e?(null!==e.highlights&&"object"==typeof e.highlights&&(e.highlights=e.highlights.join(", ")),e):{}}function f(e,t){const a=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?p(Object(a),!0).forEach((function(t){m(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},e);for(const s in e)void 0!==t[s]&&typeof e[s]==typeof t[s]&&(a[s]=t[s]);return a}const _=document.title;function v(){return"Notification"in window?"granted"===Notification.permission?"granted":"blocked":"unsupported"}s.a.use(n.a);const b=new n.a.Store({state:{appLoaded:!1,activeChannel:null,currentUserVisibleError:null,desktopNotificationState:v(),isAutoCompleting:!1,isConnected:!1,networks:[],mentions:[],hasServiceWorker:!1,pushNotificationState:"unsupported",serverConfiguration:null,sessions:[],sidebarOpen:!1,sidebarDragging:!1,userlistOpen:"false"!==i.a.get("thelounge.state.userlist"),versionData:null,versionStatus:"loading",versionDataExpired:!1,serverHasSettings:!1},mutations:{appLoaded(e){e.appLoaded=!0},activeChannel(e,t){e.activeChannel=t},currentUserVisibleError(e,t){e.currentUserVisibleError=t},refreshDesktopNotificationState(e){e.desktopNotificationState=v()},isAutoCompleting(e,t){e.isAutoCompleting=t},isConnected(e,t){e.isConnected=t},networks(e,t){e.networks=t},mentions(e,t){e.mentions=t},removeNetwork(e,t){e.networks.splice(b.state.networks.findIndex(e=>e.uuid===t),1)},sortNetworks(e,t){e.networks.sort(t)},hasServiceWorker(e){e.hasServiceWorker=!0},pushNotificationState(e,t){e.pushNotificationState=t},serverConfiguration(e,t){e.serverConfiguration=t},sessions(e,t){e.sessions=t},sidebarOpen(e,t){e.sidebarOpen=t},sidebarDragging(e,t){e.sidebarDragging=t},toggleSidebar(e){e.sidebarOpen=!e.sidebarOpen},toggleUserlist(e){e.userlistOpen=!e.userlistOpen},userlistOpen(e,t){e.userlistOpen=t},versionData(e,t){e.versionData=t},versionStatus(e,t){e.versionStatus=t},versionDataExpired(e,t){e.versionDataExpired=t},serverHasSettings(e,t){e.serverHasSettings=t}},getters:{findChannelOnCurrentNetwork:e=>t=>(t=t.toLowerCase(),e.activeChannel.network.channels.find(e=>e.name.toLowerCase()===t)),findChannel:e=>t=>{for(const a of e.networks)for(const e of a.channels)if(e.id===t)return{network:a,channel:e};return null},findNetwork:e=>t=>{for(const a of e.networks)if(a.uuid===t)return a;return null},highlightCount(e){let t=0;for(const a of e.networks)for(const e of a.channels)t+=e.highlight;return t},title:(e,t)=>(t.highlightCount?"(".concat(t.highlightCount,") "):"")+(e.activeChannel?"".concat(e.activeChannel.channel.name," — "):"")+_,initChannel:()=>e=>(e.pendingMessage="",e.inputHistoryPosition=0,e.inputHistory=[""],e.historyLoading=!1,e.scrolledToBottom=!0,e.editTopic=!1,e.moreHistoryAvailable=e.totalMessages>e.messages.length,delete e.totalMessages,"channel"===e.type&&(e.usersOutdated=!0),e)}});var w;b.registerModule("settings",(w=b,{namespaced:!0,state:f(d(),g()),mutations:{set(e,{name:t,value:a}){e[t]=a}},actions:{syncAll({state:e},t=!1){if(!1!==e.syncSettings||!1!==t){w.commit("serverHasSettings",!0);for(const t in e)"never"===u[t].sync&&"always"!==u[t].sync||o.a.emit("setting:set",{name:t,value:e[t]})}},applyAll({state:e}){for(const t in u)u[t].apply(w,e[t],!0)},update({state:e,commit:t},{name:a,value:s,sync:n=!1}){if(e[a]===s)return;const r=u[a];r&&(!1!==n||!1!==e.syncSettings&&"never"!==r.sync)&&(t("set",{name:a,value:s}),i.a.set("settings",JSON.stringify(e)),r.apply(w,s),n&&(e.syncSettings&&"never"!==r.sync||"always"===r.sync)&&o.a.emit("setting:set",{name:a,value:s}))}}}));t.a=b},function(e,t,a){"use strict";var s=a(65);const n=a.n(s)()({transports:JSON.parse(document.body.dataset.transports),path:window.location.pathname+"socket.io/",autoConnect:!1,reconnection:!document.body.classList.contains("public")});t.a=n},,function(e,t,a){"use strict";const s=new Map;t.a=new class{on(e,t){s.has(e)?s.get(e).push(t):s.set(e,[t])}off(e,t){s.has(e)&&s.set(e,s.get(e).filter(e=>e!==t))}emit(e,...t){s.has(e)&&s.get(e).slice().map(e=>{e(...t)})}}},function(e,t,a){"use strict";var s=a(3),n={name:"Username",props:{user:Object,active:Boolean,onHover:Function},computed:{mode(){return this.user.modes?this.user.modes[0]:this.user.mode},nickColor(){return(e=>{let t=0;for(let a=0;a<e.length;a++)t+=e.charCodeAt(a);return"color-"+(1+t%32)})(this.user.nick)}},methods:{hover(){return this.onHover(this.user)},openContextMenu(e){s.a.emit("contextmenu:user",{event:e,user:this.user})}}},i=a(2),o=Object(i.a)(n,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("span",e._g({class:["user",e.nickColor,{active:e.active}],attrs:{"data-name":e.user.nick,role:"button"},on:{click:function(t){return t.preventDefault(),e.openContextMenu(t)},contextmenu:function(t){return t.preventDefault(),e.openContextMenu(t)}}},e.onHover?{mouseenter:e.hover}:{}),[e._t("default",[e._v(e._s(e.mode)+e._s(e.user.nick))])],2)}),[],!1,null,null,null);t.a=o.exports},function(e,t,a){"use strict";const s=/^(\d{1,2})(?:,(\d{1,2}))?/,n=/^([0-9a-f]{6})(?:,([0-9a-f]{6}))?/i,i=/[\u0000-\u0009\u000B-\u001F]/g;const o=["bold","textColor","bgColor","hexColor","hexBgColor","italic","underline","strikethrough","monospace"];var r=function(e){return function(e){const t=[];let a,o,r,l,c,h,u,d,p,m,g=0,f=0;const _=()=>{o=!1,r=void 0,l=void 0,c=void 0,h=void 0,u=!1,d=!1,p=!1,m=!1};_();const v=()=>{const a=e.slice(g,f).replace(i," ");if(a.length){const e=t.length?t[t.length-1].end:0;t.push({bold:o,textColor:r,bgColor:l,hexColor:c,hexBgColor:h,italic:u,underline:d,strikethrough:p,monospace:m,text:a,start:e,end:e+a.length})}g=f+1};for(;f<e.length;){switch(e[f]){case"":v(),_();break;case"":v(),o=!o;break;case"":v(),a=e.slice(f+1).match(s),a?(r=Number(a[1]),a[2]&&(l=Number(a[2])),f+=a[0].length,g=f+1):(r=void 0,l=void 0);break;case"":v(),a=e.slice(f+1).match(n),a?(c=a[1].toUpperCase(),a[2]&&(h=a[2].toUpperCase()),f+=a[0].length,g=f+1):(c=void 0,h=void 0);break;case"":{v();const e=l;l=r,r=e;break}case"":v(),u=!u;break;case"":v(),d=!d;break;case"":v(),p=!p;break;case"":v(),m=!m}f+=1}return v(),t}(e).reduce((e,t)=>{if(e.length){const a=e[e.length-1];if(o.every(e=>t[e]===a[e]))return a.text+=t.text,a.end+=t.text.length,e}return e.concat([t])},[])},l=a(46),c=a.n(l);var h=function(e,t,a){const s=a.map(c.a).join(""),n=t.map(c.a).join(""),i="(?:^|\\s)[".concat(s,"]*([").concat(n,"][^ ]+)"),o=new RegExp(i,"g"),r=[];let l;do{l=o.exec(e),l&&r.push({start:l.index+l[0].length-l[1].length,end:l.index+l[0].length,channel:l[1]})}while(l);return r},u=a(68);const d=a(120)();var p=function(e){const t=[];let a;for(;a=d.exec(e);)t.push({start:a.index,end:a.index+a[0].length,emoji:a[0]});return t};const m=/([\w[\]\\`^{|}-]+)/g;var g=function(e,t){const a=[];if(0===t.length)return a;let s;for(;s=m.exec(e);)t.indexOf(s[1])>-1&&a.push({start:s.index,end:s.index+s[1].length,nick:s[1]});return a};var f=function(e,t){return e.start<=t.start&&t.start<e.end||e.start<t.end&&t.end<=e.end||t.start<=e.start&&e.start<t.end||t.start<e.end&&e.end<=t.end};var _=function(e,t){let a=0;const s=e.reduce((e,t)=>(t.start>a&&e.push({start:a,end:t.start}),a=t.end,e),[]);return a<t.length&&s.push({start:a,end:t.length}),s};function v(e,t){return e.start-t.start||t.end-e.end}var b=function(e,t,a){return(e=e.sort(v).reduce((e,t)=>e.some(e=>f(e,t))?e:e.concat([t]),[])).concat(_(e,a)).sort(v).map(e=>(e.fragments=t.filter(t=>f(e,t)).map(t=>function(e,t){const a=t.start,s=Math.max(t.start,e.start),n=Math.min(t.end,e.end),i=t.text.slice(s-a,n-a);return Object.assign({},t,{start:s,end:n,text:i})}(e,t)),e))},w=a(47),k={name:"LinkPreviewToggle",props:{link:Object},computed:{ariaLabel(){return this.link.shown?"Collapse preview":"Expand preview"}},methods:{onClick(){this.link.shown=!this.link.shown,this.$parent.$emit("toggle-link-preview",this.link,this.$parent.message)}}},y=a(2),C=Object(y.a)(k,(function(){var e=this.$createElement,t=this._self._c||e;return"loading"!==this.link.type?t("button",{class:["toggle-button","toggle-preview",{opened:this.link.shown}],attrs:{"aria-label":this.ariaLabel},on:{click:this.onClick}}):this._e()}),[],!1,null,null,null).exports,x=a(31),S={name:"LinkPreviewFileSize",props:{size:Number},computed:{previewSize(){return Object(x.a)(this.size)}}},$=Object(y.a)(S,(function(){var e=this.$createElement;return(this._self._c||e)("span",{staticClass:"preview-size"},[this._v("("+this._s(this.previewSize)+")")])}),[],!1,null,null,null).exports,j=a(1),P={name:"InlineChannel",props:{channel:String},methods:{onClick(){const e=this.$store.getters.findChannelOnCurrentNetwork(this.channel);e&&this.$root.switchToChannel(e),j.a.emit("input",{target:this.$store.state.activeChannel.channel.id,text:"/join "+this.channel})}}},O=Object(y.a)(P,(function(){var e=this.$createElement;return(this._self._c||e)("span",{staticClass:"inline-channel",attrs:{dir:"auto",role:"button",tabindex:"0"},on:{click:this.onClick}},[this._t("default")],2)}),[],!1,null,null,null).exports,E=a(4);const M=/[\u{1f3fb}-\u{1f3ff}]|\u{fe0f}/gu;var T=function(e,t,a,s){const n=r(t),i=n.map(e=>e.text).join(""),o=s?s.serverOptions.CHANTYPES:["#","&"],l=s?s.serverOptions.PREFIX:["!","@","%","+"],c=h(i,o,l),d=Object(u.findLinks)(i),m=p(i),f=g(i,a&&a.users||[]),_=c.concat(d).concat(m).concat(f);return b(_,n,i).map(t=>{const s=t.fragments.map(t=>function(e,t){const a=[];e.bold&&a.push("irc-bold"),void 0!==e.textColor&&a.push("irc-fg"+e.textColor),void 0!==e.bgColor&&a.push("irc-bg"+e.bgColor),e.italic&&a.push("irc-italic"),e.underline&&a.push("irc-underline"),e.strikethrough&&a.push("irc-strikethrough"),e.monospace&&a.push("irc-monospace");const s={};let n=!1;return a.length>0&&(n=!0,s.class=a),e.hexColor&&(n=!0,s.style={color:"#".concat(e.hexColor)},e.hexBgColor&&(s.style["background-color"]="#".concat(e.hexBgColor))),n?t("span",s,e.text):e.text}(t,e));if(t.link){const n=a&&a.previews&&a.previews.find(e=>e.link===t.link),i=e("a",{attrs:{href:t.link,dir:n?null:"auto",target:"_blank",rel:"noopener"}},s);if(!n)return i;const o=[i];return n.size>0&&o.push(e($,{props:{size:n.size}})),o.push(e(C,{props:{link:n}})),e("span",{attrs:{dir:"auto"}},o)}if(t.channel)return e(O,{props:{channel:t.channel}},s);if(t.emoji){const a=t.emoji.replace(M,""),n=w[a]?"Emoji: ".concat(w[a]):null;return e("span",{class:["emoji"],attrs:{role:"img","aria-label":n,title:n}},s)}return t.nick?e(E.a,{props:{user:{nick:t.nick}},attrs:{dir:"auto"}},s):s})},A={name:"ParsedMessage",functional:!0,props:{text:String,message:Object,network:Object},render:(e,t)=>T(e,void 0!==t.props.text?t.props.text:t.props.message.text,t.props.message,t.props.network)},I=Object(y.a)(A,void 0,void 0,!1,null,null,null);t.a=I.exports},function(e,t,a){"use strict";a.d(t,"b",(function(){return Ve})),a.d(t,"a",(function(){return We})),a.d(t,"c",(function(){return Je}));var s=a(10),n=a(48),i=a(7),o=a(1),r={name:"RevealPassword",data:()=>({isVisible:!1}),methods:{onClick(){this.isVisible=!this.isVisible}}},l=a(2),c=Object(l.a)(r,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this._t("default",null,{isVisible:this.isVisible}),t("span",{ref:"revealButton",class:["reveal-password tooltipped tooltipped-n tooltipped-no-delay",{"reveal-password-visible":this.isVisible}],attrs:{type:"button","aria-label":this.isVisible?"Hide password":"Show password"},on:{click:this.onClick}},[t("span",{attrs:{"aria-label":this.isVisible?"Hide password":"Show password"}})])],2)}),[],!1,null,null,null).exports,h={name:"SignIn",components:{RevealPassword:c},data:()=>({inFlight:!1,errorShown:!1}),mounted(){o.a.on("auth:failed",this.onAuthFailed)},beforeDestroy(){o.a.off("auth:failed",this.onAuthFailed)},methods:{onAuthFailed(){this.inFlight=!1,this.errorShown=!0},onSubmit(e){e.preventDefault(),this.inFlight=!0,this.errorShown=!1;const t={user:this.$refs.username.value,password:this.$refs.password.value};i.a.set("user",t.user),o.a.emit("auth:perform",t)},getStoredUser:()=>i.a.get("user")}},u=Object(l.a)(h,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"sign-in",role:"tabpanel","aria-label":"Sign-in"}},[a("form",{staticClass:"container",attrs:{method:"post",action:""},on:{submit:e.onSubmit}},[a("img",{staticClass:"logo",attrs:{src:"img/logo-vertical-transparent-bg.svg",alt:"The Lounge",width:"256",height:"170"}}),a("img",{staticClass:"logo-inverted",attrs:{src:"img/logo-vertical-transparent-bg-inverted.svg",alt:"The Lounge",width:"256",height:"170"}}),a("label",{attrs:{for:"signin-username"}},[e._v("Username")]),a("input",{ref:"username",staticClass:"input",attrs:{id:"signin-username",type:"text",name:"username",autocapitalize:"none",autocorrect:"off",autocomplete:"username",required:"",autofocus:""},domProps:{value:e.getStoredUser()}}),a("div",{staticClass:"password-container"},[a("label",{attrs:{for:"signin-password"}},[e._v("Password")]),a("RevealPassword",{scopedSlots:e._u([{key:"default",fn:function(e){return[a("input",{ref:"password",staticClass:"input",attrs:{id:"signin-password",type:e.isVisible?"text":"password",name:"password",autocapitalize:"none",autocorrect:"off",autocomplete:"current-password",required:""}})]}}])})],1),e.errorShown?a("div",{staticClass:"error"},[e._v("Authentication failed.")]):e._e(),a("button",{staticClass:"btn",attrs:{disabled:e.inFlight,type:"submit"}},[e._v("Sign in")])])])}),[],!1,null,null,null).exports,d={name:"SidebarToggle"},p=Object(l.a)(d,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("button",{staticClass:"lt",attrs:{"aria-label":"Toggle channel list"},on:{click:function(t){return e.$store.commit("toggleSidebar")}}})}),[],!1,null,null,null).exports,m={name:"NetworkForm",components:{RevealPassword:c,SidebarToggle:p},props:{handleSubmit:Function,defaults:Object,disabled:Boolean},data(){return{config:this.$store.state.serverConfiguration,previousUsername:this.defaults.username,displayPasswordField:!1}},watch:{displayPasswordField(e){e&&this.$nextTick(()=>this.$refs.publicPassword.focus())},"defaults.commands"(){this.$nextTick(this.resizeCommandsInput)},"defaults.tls"(e){const t=[6667,6697],a=e?0:1;this.defaults.port===t[a]&&(this.defaults.port=t[1-a])}},methods:{setSaslAuth(e){this.defaults.sasl=e},onNickChanged(e){this.$refs.usernameInput&&(this.$refs.usernameInput.value&&this.$refs.usernameInput.value!==this.previousUsername||(this.$refs.usernameInput.value=e.target.value),this.previousUsername=e.target.value)},onSubmit(e){const t=new FormData(e.target),a={};for(const e of t.entries())a[e[0]]=e[1];this.handleSubmit(a)},resizeCommandsInput(){this.$refs.commandsInput&&(this.$refs.commandsInput.style.height="",this.$refs.commandsInput.style.height=Math.ceil(this.$refs.commandsInput.scrollHeight+2)+"px")}}},g=(a(122),Object(l.a)(m,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"connect",role:"tabpanel","aria-label":"Connect"}},[a("div",{staticClass:"header"},[a("SidebarToggle")],1),a("form",{staticClass:"container",attrs:{method:"post",action:""},on:{submit:function(t){return t.preventDefault(),e.onSubmit(t)}}},[a("h1",{staticClass:"title"},[e.defaults.uuid?[a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.uuid,expression:"defaults.uuid"}],attrs:{type:"hidden",name:"uuid"},domProps:{value:e.defaults.uuid},on:{input:function(t){t.target.composing||e.$set(e.defaults,"uuid",t.target.value)}}}),e._v("\n\t\t\t\t\tEdit "+e._s(e.defaults.name)+"\n\t\t\t\t")]:[e._v("\n\t\t\t\t\tWelcome\n\t\t\t\t\t"),e.config.lockNetwork&&e.$store.state.serverConfiguration.public?[e._v("\n\t\t\t\t\t\tto the "+e._s(e.defaults.name)+" Web Chat\n\t\t\t\t\t")]:e._e()]],2),e.config.lockNetwork?e.config.lockNetwork&&!e.$store.state.serverConfiguration.public?[a("h2",[e._v("Network settings")]),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:name"}},[e._v("Name")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.name,expression:"defaults.name"}],staticClass:"input",attrs:{id:"connect:name",name:"name",maxlength:"100"},domProps:{value:e.defaults.name},on:{input:function(t){t.target.composing||e.$set(e.defaults,"name",t.target.value)}}})]),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:password"}},[e._v("Password")]),a("RevealPassword",{staticClass:"input-wrap password-container",scopedSlots:e._u([{key:"default",fn:function(t){return["checkbox"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],staticClass:"input",attrs:{id:"connect:password",placeholder:"Server password (optional)",name:"password",maxlength:"300",type:"checkbox"},domProps:{checked:Array.isArray(e.defaults.password)?e._i(e.defaults.password,null)>-1:e.defaults.password},on:{change:function(t){var a=e.defaults.password,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&e.$set(e.defaults,"password",a.concat([null])):i>-1&&e.$set(e.defaults,"password",a.slice(0,i).concat(a.slice(i+1)))}else e.$set(e.defaults,"password",n)}}}):"radio"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],staticClass:"input",attrs:{id:"connect:password",placeholder:"Server password (optional)",name:"password",maxlength:"300",type:"radio"},domProps:{checked:e._q(e.defaults.password,null)},on:{change:function(t){return e.$set(e.defaults,"password",null)}}}):a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],staticClass:"input",attrs:{id:"connect:password",placeholder:"Server password (optional)",name:"password",maxlength:"300",type:t.isVisible?"text":"password"},domProps:{value:e.defaults.password},on:{input:function(t){t.target.composing||e.$set(e.defaults,"password",t.target.value)}}})]}}])})],1)]:e._e():[a("h2",[e._v("Network settings")]),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:name"}},[e._v("Name")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.name,expression:"defaults.name"}],staticClass:"input",attrs:{id:"connect:name",name:"name",maxlength:"100"},domProps:{value:e.defaults.name},on:{input:function(t){t.target.composing||e.$set(e.defaults,"name",t.target.value)}}})]),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:host"}},[e._v("Server")]),a("div",{staticClass:"input-wrap"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.host,expression:"defaults.host"}],staticClass:"input",attrs:{id:"connect:host",name:"host","aria-label":"Server address",maxlength:"255",required:""},domProps:{value:e.defaults.host},on:{input:function(t){t.target.composing||e.$set(e.defaults,"host",t.target.value)}}}),a("span",{attrs:{id:"connect:portseparator"}},[e._v(":")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.port,expression:"defaults.port"}],staticClass:"input",attrs:{id:"connect:port",type:"number",min:"1",max:"65535",name:"port","aria-label":"Server port"},domProps:{value:e.defaults.port},on:{input:function(t){t.target.composing||e.$set(e.defaults,"port",t.target.value)}}})])]),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:password"}},[e._v("Password")]),a("RevealPassword",{staticClass:"input-wrap password-container",scopedSlots:e._u([{key:"default",fn:function(t){return["checkbox"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],staticClass:"input",attrs:{id:"connect:password",placeholder:"Server password (optional)",name:"password",maxlength:"300",type:"checkbox"},domProps:{checked:Array.isArray(e.defaults.password)?e._i(e.defaults.password,null)>-1:e.defaults.password},on:{change:function(t){var a=e.defaults.password,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&e.$set(e.defaults,"password",a.concat([null])):i>-1&&e.$set(e.defaults,"password",a.slice(0,i).concat(a.slice(i+1)))}else e.$set(e.defaults,"password",n)}}}):"radio"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],staticClass:"input",attrs:{id:"connect:password",placeholder:"Server password (optional)",name:"password",maxlength:"300",type:"radio"},domProps:{checked:e._q(e.defaults.password,null)},on:{change:function(t){return e.$set(e.defaults,"password",null)}}}):a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],staticClass:"input",attrs:{id:"connect:password",placeholder:"Server password (optional)",name:"password",maxlength:"300",type:t.isVisible?"text":"password"},domProps:{value:e.defaults.password},on:{input:function(t){t.target.composing||e.$set(e.defaults,"password",t.target.value)}}})]}}],null,!1,2649577346)})],1),a("div",{staticClass:"connect-row"},[a("label"),a("div",{staticClass:"input-wrap"},[a("label",{staticClass:"tls"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.tls,expression:"defaults.tls"}],attrs:{type:"checkbox",name:"tls",disabled:e.defaults.hasSTSPolicy},domProps:{checked:Array.isArray(e.defaults.tls)?e._i(e.defaults.tls,null)>-1:e.defaults.tls},on:{change:function(t){var a=e.defaults.tls,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&e.$set(e.defaults,"tls",a.concat([null])):i>-1&&e.$set(e.defaults,"tls",a.slice(0,i).concat(a.slice(i+1)))}else e.$set(e.defaults,"tls",n)}}}),e._v("\n\t\t\t\t\t\t\tUse secure connection (TLS)\n\t\t\t\t\t\t\t"),e.defaults.hasSTSPolicy?a("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-delay",attrs:{"aria-label":"This network has a strict transport security policy, you will be unable to disable TLS"}},[e._v("🔒 STS")]):e._e()]),a("label",{staticClass:"tls"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.rejectUnauthorized,expression:"defaults.rejectUnauthorized"}],attrs:{type:"checkbox",name:"rejectUnauthorized"},domProps:{checked:Array.isArray(e.defaults.rejectUnauthorized)?e._i(e.defaults.rejectUnauthorized,null)>-1:e.defaults.rejectUnauthorized},on:{change:function(t){var a=e.defaults.rejectUnauthorized,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&e.$set(e.defaults,"rejectUnauthorized",a.concat([null])):i>-1&&e.$set(e.defaults,"rejectUnauthorized",a.slice(0,i).concat(a.slice(i+1)))}else e.$set(e.defaults,"rejectUnauthorized",n)}}}),e._v("\n\t\t\t\t\t\t\tOnly allow trusted certificates\n\t\t\t\t\t\t")])])])],a("h2"),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:nick"}},[e._v("Nickname")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.nick,expression:"defaults.nick"}],staticClass:"input nick",attrs:{id:"connect:nick",name:"nick",pattern:"[^\\s:!@]+",maxlength:"100",required:""},domProps:{value:e.defaults.nick},on:{input:[function(t){t.target.composing||e.$set(e.defaults,"nick",t.target.value)},e.onNickChanged]}})]),e.config.useHexIp?e._e():[a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:username"}},[e._v("Username")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.username,expression:"defaults.username"}],ref:"usernameInput",staticClass:"input username",attrs:{id:"connect:username",name:"username",maxlength:"100"},domProps:{value:e.defaults.username},on:{input:function(t){t.target.composing||e.$set(e.defaults,"username",t.target.value)}}})])],e.defaults.uuid&&!e.$store.state.serverConfiguration.public?[a("div",{staticClass:"connect-row"},[e._m(0),a("textarea",{ref:"commandsInput",staticClass:"input",attrs:{id:"connect:commands",name:"commands"},domProps:{value:e.defaults.commands?e.defaults.commands.join("\n"):""},on:{input:e.resizeCommandsInput}})])]:e.defaults.uuid?e._e():[a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:channels"}},[e._v("Rooms")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.join,expression:"defaults.join"}],staticClass:"input",attrs:{id:"connect:channels",name:"join"},domProps:{value:e.defaults.join},on:{input:function(t){t.target.composing||e.$set(e.defaults,"join",t.target.value)}}})])],e.$store.state.serverConfiguration.public?[e.config.lockNetwork?[a("div",{staticClass:"connect-row"},[a("label"),a("div",{staticClass:"input-wrap"},[a("label",{staticClass:"tls"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.displayPasswordField,expression:"displayPasswordField"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.displayPasswordField)?e._i(e.displayPasswordField,null)>-1:e.displayPasswordField},on:{change:function(t){var a=e.displayPasswordField,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&(e.displayPasswordField=a.concat([null])):i>-1&&(e.displayPasswordField=a.slice(0,i).concat(a.slice(i+1)))}else e.displayPasswordField=n}}}),e._v("\n\t\t\t\t\t\t\t\tI am already registered\n\t\t\t\t\t\t\t")])])]),e.displayPasswordField?a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:password"}},[e._v("Password")]),a("RevealPassword",{staticClass:"input-wrap password-container",scopedSlots:e._u([{key:"default",fn:function(t){return["checkbox"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],ref:"publicPassword",staticClass:"input",attrs:{id:"connect:password",placeholder:"Your Passwort Goes here",name:"password",maxlength:"300",type:"checkbox"},domProps:{checked:Array.isArray(e.defaults.password)?e._i(e.defaults.password,null)>-1:e.defaults.password},on:{change:function(t){var a=e.defaults.password,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&e.$set(e.defaults,"password",a.concat([null])):i>-1&&e.$set(e.defaults,"password",a.slice(0,i).concat(a.slice(i+1)))}else e.$set(e.defaults,"password",n)}}}):"radio"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],ref:"publicPassword",staticClass:"input",attrs:{id:"connect:password",placeholder:"Your Passwort Goes here",name:"password",maxlength:"300",type:"radio"},domProps:{checked:e._q(e.defaults.password,null)},on:{change:function(t){return e.$set(e.defaults,"password",null)}}}):a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.password,expression:"defaults.password"}],ref:"publicPassword",staticClass:"input",attrs:{id:"connect:password",placeholder:"Your Passwort Goes here",name:"password",maxlength:"300",type:t.isVisible?"text":"password"},domProps:{value:e.defaults.password},on:{input:function(t){t.target.composing||e.$set(e.defaults,"password",t.target.value)}}})]}}],null,!1,1931221684)})],1):e._e()]:e._e()]:[a("h2",{attrs:{id:"label-auth"}},[e._v("Authentication")]),a("div",{staticClass:"connect-row connect-auth",attrs:{role:"group","aria-labelledby":"label-auth"}},[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"radio",name:"sasl",value:""},domProps:{checked:!e.defaults.sasl},on:{change:function(t){return e.setSaslAuth("")}}}),e._v("\n\t\t\t\t\t\tNo authentication\n\t\t\t\t\t")]),a("label",{staticClass:"opt"},[a("input",{attrs:{type:"radio",name:"sasl",value:"plain"},domProps:{checked:"plain"===e.defaults.sasl},on:{change:function(t){return e.setSaslAuth("plain")}}}),e._v("\n\t\t\t\t\t\tUsername + password (SASL PLAIN)\n\t\t\t\t\t")]),!e.$store.state.serverConfiguration.public&&e.defaults.tls?a("label",{staticClass:"opt"},[a("input",{attrs:{type:"radio",name:"sasl",value:"external"},domProps:{checked:"external"===e.defaults.sasl},on:{change:function(t){return e.setSaslAuth("external")}}}),e._v("\n\t\t\t\t\t\tClient certificate (SASL EXTERNAL)\n\t\t\t\t\t")]):e._e()]),"plain"===e.defaults.sasl?[a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:username"}},[e._v("Account")]),a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.saslAccount,expression:"defaults.saslAccount"}],staticClass:"input",attrs:{id:"connect:saslAccount",name:"saslAccount",maxlength:"100",required:""},domProps:{value:e.defaults.saslAccount},on:{input:function(t){t.target.composing||e.$set(e.defaults,"saslAccount",t.target.value)}}})]),a("div",{staticClass:"connect-row"},[a("label",{attrs:{for:"connect:password"}},[e._v("Password")]),a("RevealPassword",{staticClass:"input-wrap password-container",scopedSlots:e._u([{key:"default",fn:function(t){return["checkbox"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.saslPassword,expression:"defaults.saslPassword"}],staticClass:"input",attrs:{id:"connect:saslPassword",name:"saslPassword",maxlength:"300",required:"",type:"checkbox"},domProps:{checked:Array.isArray(e.defaults.saslPassword)?e._i(e.defaults.saslPassword,null)>-1:e.defaults.saslPassword},on:{change:function(t){var a=e.defaults.saslPassword,s=t.target,n=!!s.checked;if(Array.isArray(a)){var i=e._i(a,null);s.checked?i<0&&e.$set(e.defaults,"saslPassword",a.concat([null])):i>-1&&e.$set(e.defaults,"saslPassword",a.slice(0,i).concat(a.slice(i+1)))}else e.$set(e.defaults,"saslPassword",n)}}}):"radio"==(t.isVisible?"text":"password")?a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.saslPassword,expression:"defaults.saslPassword"}],staticClass:"input",attrs:{id:"connect:saslPassword",name:"saslPassword",maxlength:"300",required:"",type:"radio"},domProps:{checked:e._q(e.defaults.saslPassword,null)},on:{change:function(t){return e.$set(e.defaults,"saslPassword",null)}}}):a("input",{directives:[{name:"model",rawName:"v-model",value:e.defaults.saslPassword,expression:"defaults.saslPassword"}],staticClass:"input",attrs:{id:"connect:saslPassword",name:"saslPassword",maxlength:"300",required:"",type:t.isVisible?"text":"password"},domProps:{value:e.defaults.saslPassword},on:{input:function(t){t.target.composing||e.$set(e.defaults,"saslPassword",t.target.value)}}})]}}],null,!1,3144405648)})],1)]:"external"===e.defaults.sasl?a("div",{staticClass:"connect-sasl-external"},[a("p",[e._v("The Lounge automatically generates and manages the client certificate.")]),a("p",[e._v("\n\t\t\t\t\t\tOn the IRC server, you will need to tell the services to attach the\n\t\t\t\t\t\tcertificate fingerprint (certfp) to your account, for example:\n\t\t\t\t\t")]),e._m(1)]):e._e()],a("div",[a("button",{staticClass:"btn",attrs:{type:"submit",disabled:!!e.disabled}},[e.defaults.uuid?[e._v("Save network")]:[e._v("Connect")]],2)])],2)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("label",{attrs:{for:"connect:commands"}},[this._v("\n\t\t\t\t\t\tCommands\n\t\t\t\t\t\t"),t("span",{staticClass:"tooltipped tooltipped-ne tooltipped-no-delay",attrs:{"aria-label":"One /command per line.\nEach command will be executed in\nthe server tab on new connection"}},[t("button",{staticClass:"extra-help"})])])},function(){var e=this.$createElement,t=this._self._c||e;return t("pre",[t("code",[this._v("/msg NickServ CERT ADD")])])}],!1,null,null,null).exports),f={name:"Connect",components:{NetworkForm:g},props:{queryParams:Object},data(){return{disabled:!1,defaults:Object.assign({},this.$store.state.serverConfiguration.defaults,this.parseOverrideParams(this.queryParams))}},methods:{handleSubmit(e){this.disabled=!0,o.a.emit("network:new",e)},parseOverrideParams(e){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(this.$store.state.serverConfiguration.defaults,a)&&(!this.$store.state.serverConfiguration.lockNetwork||!["name","host","port","tls","rejectUnauthorized"].includes(a)))switch("join"===a&&(s=s.split(",").map(e=>e.match(/^[#&!+]/)?e:"#".concat(e)).join(", ")),typeof this.$store.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}}},_=Object(l.a)(f,(function(){var e=this.$createElement;return(this._self._c||e)("NetworkForm",{attrs:{"handle-submit":this.handleSubmit,defaults:this.defaults,disabled:this.disabled}})}),[],!1,null,null,null).exports,v=a(44),b=a(9),w=a(32),k={name:"Session",props:{session:Object},computed:{lastUse(){return Object(b.a)(this.session.lastUse)}},methods:{signOut(){this.session.current?(o.a.emit("sign-out"),w.a.signout()):o.a.emit("sign-out",this.session.token)}}},y=(a(123),Object(l.a)(k,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"session-item"},[a("div",{staticClass:"session-item-info"},[a("strong",[e._v(e._s(e.session.agent))]),a("a",{attrs:{href:"https://ipinfo.io/"+e.session.ip,target:"_blank",rel:"noopener"}},[e._v(e._s(e.session.ip))]),e.session.active>1?a("p",{staticClass:"session-usage"},[e._v("\n\t\t\tActive in "+e._s(e.session.active)+" browsers\n\t\t")]):e.session.current||e.session.active?e._e():a("p",{staticClass:"session-usage"},[e._v("\n\t\t\tLast used on "),a("time",[e._v(e._s(e.lastUse))])])]),a("div",{staticClass:"session-item-btn"},[a("button",{staticClass:"btn",on:{click:function(t){return t.preventDefault(),e.signOut(t)}}},[e.session.current?[e._v("Sign out")]:[e._v("Revoke")]],2)])])}),[],!1,null,null,null).exports);let C=null;window.addEventListener("beforeinstallprompt",e=>{e.preventDefault(),C=e});var x={name:"Settings",components:{RevealPassword:c,Session:y,SidebarToggle:p},data:()=>({canRegisterProtocol:!1,passwordChangeStatus:null,passwordErrors:{missing_fields:"Please enter a new password",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"},isIOS:navigator.platform.match(/(iPhone|iPod|iPad)/i)||!1}),computed:{hasInstallPromptEvent:()=>null!==C,currentSession(){return this.$store.state.sessions.find(e=>e.current)},activeSessions(){return this.$store.state.sessions.filter(e=>!e.current&&e.active>0)},otherSessions(){return this.$store.state.sessions.filter(e=>!e.current&&!e.active)}},mounted(){o.a.emit("sessions:get"),this.canRegisterProtocol=window.navigator.registerProtocolHandler&&!this.$store.state.serverConfiguration.lockNetwork},methods:{onChange(e){const t=e.target.name;if(["old_password","new_password","verify_password"].includes(t))return;let a;a="checkbox"===e.target.type?e.target.checked:e.target.value,this.$store.dispatch("settings/update",{name:t,value:a,sync:!0})},changePassword(){const e=new FormData(this.$refs.settingsForm),t={old_password:e.get("old_password"),new_password:e.get("new_password"),verify_password:e.get("verify_password")};t.old_password&&t.new_password&&t.verify_password?t.new_password===t.verify_password?(o.a.once("change-password",e=>{this.passwordChangeStatus=e}),o.a.emit("change-password",t)):this.passwordChangeStatus={success:!1,error:"password_mismatch"}:this.passwordChangeStatus={success:!1,error:"missing_fields"}},onForceSyncClick(){this.$store.dispatch("settings/syncAll",!0),this.$store.dispatch("settings/update",{name:"syncSettings",value:!0,sync:!0})},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")},nativeInstallPrompt(){C.prompt(),C=null},playNotification(){const e=new Audio;e.src="audio/pop.wav",e.play()},onPushButtonClick(){v.a.togglePushSubscription()}}},S=(a(124),Object(l.a)(x,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"settings",role:"tabpanel","aria-label":"Settings"}},[a("div",{staticClass:"header"},[a("SidebarToggle")],1),a("form",{ref:"settingsForm",staticClass:"container",on:{change:e.onChange,submit:function(e){e.preventDefault()}}},[a("h1",{staticClass:"title"},[e._v("Settings")]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"advanced"},domProps:{checked:e.$store.state.settings.advanced}}),e._v("\n\t\t\t\t\tAdvanced settings\n\t\t\t\t")])]),e.canRegisterProtocol||e.hasInstallPromptEvent?a("div",[a("h2",[e._v("Native app")]),e.hasInstallPromptEvent?a("button",{staticClass:"btn",attrs:{type:"button"},on:{click:function(t){return t.preventDefault(),e.nativeInstallPrompt(t)}}},[e._v("\n\t\t\t\t\tAdd The Lounge to Home screen\n\t\t\t\t")]):e._e(),e.canRegisterProtocol?a("button",{staticClass:"btn",attrs:{type:"button"},on:{click:function(t){return t.preventDefault(),e.registerProtocol(t)}}},[e._v("\n\t\t\t\t\tOpen irc:// URLs with The Lounge\n\t\t\t\t")]):e._e()]):e._e(),!e.$store.state.serverConfiguration.public&&e.$store.state.settings.advanced?a("div",[a("h2",[e._v("Settings synchronisation")]),a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"syncSettings"},domProps:{checked:e.$store.state.settings.syncSettings}}),e._v("\n\t\t\t\t\tSynchronize settings with other clients\n\t\t\t\t")]),e.$store.state.settings.syncSettings?e._e():[e.$store.state.serverHasSettings?a("div",{staticClass:"settings-sync-panel"},[e._m(0),a("p",[e._v("\n\t\t\t\t\t\t\tUse the button below to enable synchronization, and override any\n\t\t\t\t\t\t\tsettings already synced to the server.\n\t\t\t\t\t\t")]),a("button",{staticClass:"btn btn-small",attrs:{type:"button"},on:{click:e.onForceSyncClick}},[e._v("\n\t\t\t\t\t\t\tSync settings and enable\n\t\t\t\t\t\t")])]):a("div",{staticClass:"settings-sync-panel"},[e._m(1)])]],2):e._e(),a("h2",[e._v("Messages")]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"motd"},domProps:{checked:e.$store.state.settings.motd}}),e._v("\n\t\t\t\t\tShow "),a("abbr",{attrs:{title:"Message Of The Day"}},[e._v("MOTD")])])]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"showSeconds"},domProps:{checked:e.$store.state.settings.showSeconds}}),e._v("\n\t\t\t\t\tShow seconds in timestamp\n\t\t\t\t")])]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"use12hClock"},domProps:{checked:e.$store.state.settings.use12hClock}}),e._v("\n\t\t\t\t\tShow 12-hour timestamps\n\t\t\t\t")])]),!e.$store.state.serverConfiguration.public&&e.$store.state.settings.advanced?a("div",[a("h2",[e._v("Automatic away message")]),a("label",{staticClass:"opt"},[a("label",{staticClass:"sr-only",attrs:{for:"awayMessage"}},[e._v("Automatic away message")]),a("input",{staticClass:"input",attrs:{id:"awayMessage",type:"text",name:"awayMessage",placeholder:"Away message if The Lounge is not open"},domProps:{value:e.$store.state.settings.awayMessage}})])]):e._e(),e._m(2),a("div",{attrs:{role:"group","aria-labelledby":"label-status-messages"}},[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"radio",name:"statusMessages",value:"shown"},domProps:{checked:"shown"===e.$store.state.settings.statusMessages}}),e._v("\n\t\t\t\t\tShow all status messages individually\n\t\t\t\t")]),a("label",{staticClass:"opt"},[a("input",{attrs:{type:"radio",name:"statusMessages",value:"condensed"},domProps:{checked:"condensed"===e.$store.state.settings.statusMessages}}),e._v("\n\t\t\t\t\tCondense status messages together\n\t\t\t\t")]),a("label",{staticClass:"opt"},[a("input",{attrs:{type:"radio",name:"statusMessages",value:"hidden"},domProps:{checked:"hidden"===e.$store.state.settings.statusMessages}}),e._v("\n\t\t\t\t\tHide all status messages\n\t\t\t\t")])]),a("h2",[e._v("Visual Aids")]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"coloredNicks"},domProps:{checked:e.$store.state.settings.coloredNicks}}),e._v("\n\t\t\t\t\tEnable colored nicknames\n\t\t\t\t")]),a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"autocomplete"},domProps:{checked:e.$store.state.settings.autocomplete}}),e._v("\n\t\t\t\t\tEnable autocomplete\n\t\t\t\t")])]),e.$store.state.settings.advanced?a("div",[a("label",{staticClass:"opt"},[a("label",{staticClass:"sr-only",attrs:{for:"nickPostfix"}},[e._v("\n\t\t\t\t\t\tNick autocomplete postfix (for example a comma)\n\t\t\t\t\t")]),a("input",{staticClass:"input",attrs:{id:"nickPostfix",type:"text",name:"nickPostfix",placeholder:"Nick autocomplete postfix (e.g. ', ')"},domProps:{value:e.$store.state.settings.nickPostfix}})])]):e._e(),a("h2",[e._v("Theme")]),a("div",[a("label",{staticClass:"sr-only",attrs:{for:"theme-select"}},[e._v("Theme")]),a("select",{staticClass:"input",attrs:{id:"theme-select",name:"theme"},domProps:{value:e.$store.state.settings.theme}},e._l(e.$store.state.serverConfiguration.themes,(function(t){return a("option",{key:t.name,domProps:{value:t.name}},[e._v("\n\t\t\t\t\t\t"+e._s(t.displayName)+"\n\t\t\t\t\t")])})),0)]),e.$store.state.serverConfiguration.prefetch?[a("h2",[e._v("Link previews")]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"media"},domProps:{checked:e.$store.state.settings.media}}),e._v("\n\t\t\t\t\t\tAuto-expand media\n\t\t\t\t\t")])]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"links"},domProps:{checked:e.$store.state.settings.links}}),e._v("\n\t\t\t\t\t\tAuto-expand websites\n\t\t\t\t\t")])])]:e._e(),e.$store.state.settings.advanced&&e.$store.state.serverConfiguration.fileUpload?a("div",[a("h2",[e._v("File uploads")]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"uploadCanvas"},domProps:{checked:e.$store.state.settings.uploadCanvas}}),e._v("\n\t\t\t\t\t\tAttempt to remove metadata from images before uploading\n\t\t\t\t\t\t"),e._m(3)])])]):e._e(),e.$store.state.serverConfiguration.public?e._e():[a("h2",[e._v("Push Notifications")]),a("div",[a("button",{staticClass:"btn",attrs:{id:"pushNotifications",type:"button",disabled:"supported"!==e.$store.state.pushNotificationState&&"subscribed"!==e.$store.state.pushNotificationState},on:{click:e.onPushButtonClick}},["subscribed"===e.$store.state.pushNotificationState?[e._v("\n\t\t\t\t\t\t\tUnsubscribe from push notifications\n\t\t\t\t\t\t")]:"loading"===e.$store.state.pushNotificationState?[e._v("\n\t\t\t\t\t\t\tLoading…\n\t\t\t\t\t\t")]:[e._v(" Subscribe to push notifications ")]],2),"nohttps"===e.$store.state.pushNotificationState?a("div",{staticClass:"error"},[a("strong",[e._v("Warning")]),e._v(": Push notifications are only supported over HTTPS\n\t\t\t\t\t\tconnections.\n\t\t\t\t\t")]):e._e(),"unsupported"===e.$store.state.pushNotificationState?a("div",{staticClass:"error"},[a("strong",[e._v("Warning")]),e._v(":\n\t\t\t\t\t\t"),a("span",[e._v("Push notifications are not supported by your browser.")]),e.isIOS?a("div",{staticClass:"apple-push-unsupported"},[e._v("\n\t\t\t\t\t\t\tSafari does\n\t\t\t\t\t\t\t"),a("a",{attrs:{href:"https://bugs.webkit.org/show_bug.cgi?id=182566",target:"_blank",rel:"noopener"}},[e._v("not support the web push notification specification")]),e._v(", and because all browsers on iOS use Safari under the hood, The Lounge\n\t\t\t\t\t\t\tis unable to provide push notifications on iOS devices.\n\t\t\t\t\t\t")]):e._e()]):e._e()])],a("h2",[e._v("Browser Notifications")]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{id:"desktopNotifications",type:"checkbox",name:"desktopNotifications"},domProps:{checked:e.$store.state.settings.desktopNotifications}}),e._v("\n\t\t\t\t\tEnable browser notifications"),a("br"),"unsupported"===e.$store.state.desktopNotificationState?a("div",{staticClass:"error"},[a("strong",[e._v("Warning")]),e._v(": Notifications are not supported by your browser.\n\t\t\t\t\t")]):e._e(),"blocked"===e.$store.state.desktopNotificationState?a("div",{staticClass:"error",attrs:{id:"warnBlockedDesktopNotifications"}},[a("strong",[e._v("Warning")]),e._v(": Notifications are blocked by your browser.\n\t\t\t\t\t")]):e._e()])]),a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"notification"},domProps:{checked:e.$store.state.settings.notification}}),e._v("\n\t\t\t\t\tEnable notification sound\n\t\t\t\t")])]),a("div",[a("div",{staticClass:"opt"},[a("button",{attrs:{id:"play"},on:{click:function(t){return t.preventDefault(),e.playNotification(t)}}},[e._v("Play sound")])])]),e.$store.state.settings.advanced?a("div",[a("label",{staticClass:"opt"},[a("input",{attrs:{type:"checkbox",name:"notifyAllMessages"},domProps:{checked:e.$store.state.settings.notifyAllMessages}}),e._v("\n\t\t\t\t\tEnable notification for all messages\n\t\t\t\t")])]):e._e(),!e.$store.state.serverConfiguration.public&&e.$store.state.settings.advanced?a("div",[a("label",{staticClass:"opt"},[e._m(4),a("input",{staticClass:"input",attrs:{id:"highlights",type:"text",name:"highlights",placeholder:"Comma-separated, e.g.: word, some more words, anotherword"},domProps:{value:e.$store.state.settings.highlights}})])]):e._e(),!e.$store.state.serverConfiguration.public&&e.$store.state.settings.advanced?a("div",[a("label",{staticClass:"opt"},[e._m(5),a("input",{staticClass:"input",attrs:{id:"highlightExceptions",type:"text",name:"highlightExceptions",placeholder:"Comma-separated, e.g.: word, some more words, anotherword"},domProps:{value:e.$store.state.settings.highlightExceptions}})])]):e._e(),e.$store.state.serverConfiguration.public||e.$store.state.serverConfiguration.ldapEnabled?e._e():a("div",{attrs:{id:"change-password",role:"group","aria-labelledby":"label-change-password"}},[a("h2",{attrs:{id:"label-change-password"}},[e._v("Change password")]),a("div",{staticClass:"password-container"},[a("label",{staticClass:"sr-only",attrs:{for:"old_password_input"}},[e._v(" Enter current password ")]),a("RevealPassword",{scopedSlots:e._u([{key:"default",fn:function(e){return[a("input",{staticClass:"input",attrs:{id:"old_password_input",type:e.isVisible?"text":"password",name:"old_password",placeholder:"Enter current password"}})]}}],null,!1,3021935278)})],1),a("div",{staticClass:"password-container"},[a("label",{staticClass:"sr-only",attrs:{for:"new_password_input"}},[e._v("\n\t\t\t\t\t\tEnter desired new password\n\t\t\t\t\t")]),a("RevealPassword",{scopedSlots:e._u([{key:"default",fn:function(e){return[a("input",{staticClass:"input",attrs:{id:"new_password_input",type:e.isVisible?"text":"password",name:"new_password",placeholder:"Enter desired new password"}})]}}],null,!1,1521376723)})],1),a("div",{staticClass:"password-container"},[a("label",{staticClass:"sr-only",attrs:{for:"verify_password_input"}},[e._v(" Repeat new password ")]),a("RevealPassword",{scopedSlots:e._u([{key:"default",fn:function(e){return[a("input",{staticClass:"input",attrs:{id:"verify_password_input",type:e.isVisible?"text":"password",name:"verify_password",placeholder:"Repeat new password"}})]}}],null,!1,1508332196)})],1),e.passwordChangeStatus&&e.passwordChangeStatus.success?a("div",{staticClass:"feedback success"},[e._v("\n\t\t\t\t\tSuccessfully updated your password\n\t\t\t\t")]):e.passwordChangeStatus&&e.passwordChangeStatus.error?a("div",{staticClass:"feedback error"},[e._v("\n\t\t\t\t\t"+e._s(e.passwordErrors[e.passwordChangeStatus.error])+"\n\t\t\t\t")]):e._e(),a("div",[a("button",{staticClass:"btn",attrs:{type:"submit"},on:{click:function(t){return t.preventDefault(),e.changePassword(t)}}},[e._v("\n\t\t\t\t\t\tChange password\n\t\t\t\t\t")])])]),e.$store.state.settings.advanced?a("div",[a("h2",[e._v("Custom Stylesheet")]),a("label",{staticClass:"sr-only",attrs:{for:"user-specified-css-input"}},[e._v("\n\t\t\t\t\tCustom stylesheet. You can override any style with CSS here.\n\t\t\t\t")]),a("textarea",{staticClass:"input",attrs:{id:"user-specified-css-input",name:"userStyles",placeholder:"/* You can override any style with CSS here */"},domProps:{value:e.$store.state.settings.userStyles}})]):e._e(),e.$store.state.serverConfiguration.public?e._e():a("div",{staticClass:"session-list",attrs:{role:"group"}},[a("h2",[e._v("Sessions")]),a("h3",[e._v("Current session")]),e.currentSession?a("Session",{attrs:{session:e.currentSession}}):e._e(),e.activeSessions.length>0?[a("h3",[e._v("Active sessions")]),e._l(e.activeSessions,(function(e){return a("Session",{key:e.token,attrs:{session:e}})}))]:e._e(),a("h3",[e._v("Other sessions")]),0===e.$store.state.sessions.length?a("p",[e._v("Loading…")]):0===e.otherSessions.length?a("p",[a("em",[e._v("You are not currently logged in to any other device.")])]):e._l(e.otherSessions,(function(e){return a("Session",{key:e.token,attrs:{session:e}})}))],2)],2)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("p",[t("strong",[this._v("Warning:")]),this._v(" Checking this box will override the settings\n\t\t\t\t\t\t\tof this client with those stored on the server.\n\t\t\t\t\t\t")])},function(){var e=this.$createElement,t=this._self._c||e;return t("p",[t("strong",[this._v("Warning:")]),this._v(" No settings have been synced before. Enabling\n\t\t\t\t\t\t\tthis will sync all settings of this client as the base for other\n\t\t\t\t\t\t\tclients.\n\t\t\t\t\t\t")])},function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{attrs:{id:"label-status-messages"}},[this._v("\n\t\t\t\tStatus messages\n\t\t\t\t"),t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-delay",attrs:{"aria-label":"Joins, parts, quits, kicks, nick changes, and mode changes"}},[t("button",{staticClass:"extra-help"})])])},function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-delay",attrs:{"aria-label":"This option renders the image into a canvas element to remove metadata from the image.\nThis may break orientation if your browser does not support that."}},[t("button",{staticClass:"extra-help"})])},function(){var e=this.$createElement,t=this._self._c||e;return t("label",{staticClass:"opt",attrs:{for:"highlights"}},[this._v("\n\t\t\t\t\t\tCustom highlights\n\t\t\t\t\t\t"),t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-delay",attrs:{"aria-label":"If a message contains any of these comma-separated \nexpressions, it will trigger a highlight."}},[t("button",{staticClass:"extra-help"})])])},function(){var e=this.$createElement,t=this._self._c||e;return t("label",{staticClass:"opt",attrs:{for:"highlightExceptions"}},[this._v("\n\t\t\t\t\t\tHighlight exceptions\n\t\t\t\t\t\t"),t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-delay",attrs:{"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."}},[t("button",{staticClass:"extra-help"})])])}],!1,null,null,null).exports),$={name:"VersionChecker",mounted(){this.$store.state.versionData||this.checkNow()},methods:{checkNow(){this.$store.commit("versionData",null),this.$store.commit("versionStatus","loading"),o.a.emit("changelog")}}},j={name:"Help",components:{SidebarToggle:p,VersionChecker:Object(l.a)($,(function(){var e=this.$createElement;return(this._self._c||e)("div")}),[],!1,null,null,null).exports},data:()=>({isApple:navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)||!1})},P=Object(l.a)(j,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"help",role:"tabpanel","aria-label":"Help"}},[a("div",{staticClass:"header"},[a("SidebarToggle")],1),a("div",{staticClass:"container"},[a("h1",{staticClass:"title"},[e._v("Help")]),e._m(0),a("h2",[e._v("Keyboard Shortcuts")]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("⇧")]),a("kbd",[e._v("↓")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("Shift")]),a("kbd",[e._v("↓")])])]),e._m(1)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("⇧")]),a("kbd",[e._v("↑")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("Shift")]),a("kbd",[e._v("↑")])])]),e._m(2)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("⇧")]),a("kbd",[e._v("←")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("Shift")]),a("kbd",[e._v("←")])])]),e._m(3)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("⇧")]),a("kbd",[e._v("→")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("Shift")]),a("kbd",[e._v("→")])])]),e._m(4)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("↓")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("↓")])])]),e._m(5)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("↑")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("↑")])])]),e._m(6)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("A")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("A")])])]),e._m(7)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("S")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("S")])])]),e._m(8)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("U")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("U")])])]),e._m(9)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌥")]),a("kbd",[e._v("J")])]):a("span",[a("kbd",[e._v("Alt")]),a("kbd",[e._v("J")])])]),e._m(10)]),e._m(11),a("h2",[e._v("Formatting Shortcuts")]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("K")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("K")])])]),e._m(12)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("B")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("B")])])]),e._m(13)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("U")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("U")])])]),e._m(14)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("I")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("I")])])]),e._m(15)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("S")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("S")])])]),e._m(16)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("M")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("M")])])]),e._m(17)]),a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[e.isApple?a("span",[a("kbd",[e._v("⌘")]),a("kbd",[e._v("O")])]):a("span",[a("kbd",[e._v("Ctrl")]),a("kbd",[e._v("O")])])]),e._m(18)]),a("h2",[e._v("Autocompletion")]),e._m(19),a("p",[e._v("Autocompletion can be disabled in settings.")]),e._m(20),e._m(21),e._m(22),e._m(23),a("h2",[e._v("Commands")]),e._m(24),e._m(25),e._m(26),e._m(27),e._m(28),e._m(29),e._m(30),e._m(31),e._m(32),e._m(33),e._m(34),e._m(35),e._m(36),e._m(37),e._m(38),e._m(39),e._m(40),e._m(41),e._m(42),e._m(43),e._m(44),e._m(45),e._m(46),e._m(47),e._m(48),e._m(49),e._m(50),e._m(51),e._m(52),e._m(53),e._m(54),e._m(55),e._m(56),e._m(57)])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("h2",{staticClass:"help-version-title"},[t("span",[this._v("The TripSit Web Client")]),t("small",[t("p",[this._v("This Client is powered by The Lounge and was modified to fit the TripSit harm reduction network")]),t("p",[this._v("Please share your feedback in #contrib")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Switch to the next lobby in the channel list.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Switch to the previous lobby in the channel list.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Collapse current network.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Expand current network.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Switch to the next window in the channel list.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Switch to the previous window in the channel list.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Switch to the first window with unread messages.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Toggle sidebar.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Toggle channel user list.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("Toggle jump to channel switcher.")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("span",[t("kbd",[this._v("Esc")])])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tClose current contextual window (context menu, image viewer, topic edit,\n\t\t\t\t\tetc) and remove focus from input.\n\t\t\t\t")])])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"description"},[a("p",[e._v("\n\t\t\t\t\tMark any text typed after this shortcut to be colored. After hitting this\n\t\t\t\t\tshortcut, enter an integer in the range\n\t\t\t\t\t"),a("code",[e._v("0—15")]),e._v(" to select the desired color, or use the autocompletion\n\t\t\t\t\tmenu to choose a color name (see below).\n\t\t\t\t")]),a("p",[e._v("\n\t\t\t\t\tBackground color can be specified by putting a comma and another integer in\n\t\t\t\t\tthe range "),a("code",[e._v("0—15")]),e._v(" after the foreground color number\n\t\t\t\t\t(autocompletion works too).\n\t\t\t\t")]),a("p",[e._v("\n\t\t\t\t\tA color reference can be found\n\t\t\t\t\t"),a("a",{attrs:{href:"https://modern.ircdocs.horse/formatting.html#colors",target:"_blank",rel:"noopener"}},[e._v("here")]),e._v(".\n\t\t\t\t")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tMark all text typed after this shortcut as\n\t\t\t\t\t"),t("span",{staticClass:"irc-bold"},[this._v("bold")]),this._v(".\n\t\t\t\t")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tMark all text typed after this shortcut as\n\t\t\t\t\t"),t("span",{staticClass:"irc-underline"},[this._v("underlined")]),this._v(".\n\t\t\t\t")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tMark all text typed after this shortcut as\n\t\t\t\t\t"),t("span",{staticClass:"irc-italic"},[this._v("italics")]),this._v(".\n\t\t\t\t")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tMark all text typed after this shortcut as\n\t\t\t\t\t"),t("span",{staticClass:"irc-strikethrough"},[this._v("struck through")]),this._v(".\n\t\t\t\t")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tMark all text typed after this shortcut as\n\t\t\t\t\t"),t("span",{staticClass:"irc-monospace"},[this._v("monospaced")]),this._v(".\n\t\t\t\t")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tMark all text typed after this shortcut to be reset to its original\n\t\t\t\t\tformatting.\n\t\t\t\t")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n\t\t\tTo auto-complete nicknames, channels, commands, and emoji, type one of the\n\t\t\tcharacters below to open a suggestion list. Use the "),a("kbd",[e._v("↑")]),e._v(" and\n\t\t\t"),a("kbd",[e._v("↓")]),e._v(" keys to highlight an item, and insert it by pressing "),a("kbd",[e._v("Tab")]),e._v(" or\n\t\t\t"),a("kbd",[e._v("Enter")]),e._v(" (or by clicking the desired item).\n\t\t")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("@")])]),t("div",{staticClass:"description"},[t("p",[this._v("Nickname")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("#")])]),t("div",{staticClass:"description"},[t("p",[this._v("Channel")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/")])]),t("div",{staticClass:"description"},[t("p",[this._v("Commands (see list of commands below)")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v(":")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tEmoji (note: requires two search characters, to avoid conflicting with\n\t\t\t\t\tcommon emoticons like "),t("code",[this._v(":)")]),this._v(")\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/away [message]")])]),t("div",{staticClass:"description"},[t("p",[this._v("Mark yourself as away with an optional message.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/back")])]),t("div",{staticClass:"description"},[t("p",[this._v("Remove your away status (set with "),t("code",[this._v("/away")]),this._v(").")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/ban nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tBan ("),t("code",[this._v("+b")]),this._v(") a user from the current channel. This can be a\n\t\t\t\t\tnickname or a hostmask.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/banlist")])]),t("div",{staticClass:"description"},[t("p",[this._v("Load the banlist for the current channel.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/collapse")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tCollapse all previews in the current channel (opposite of\n\t\t\t\t\t"),t("code",[this._v("/expand")]),this._v(")\n\t\t\t\t")])])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[a("code",[e._v("/connect host [port]")])]),a("div",{staticClass:"description"},[a("p",[e._v("\n\t\t\t\t\tConnect to a new IRC network. If "),a("code",[e._v("port")]),e._v(" starts with a\n\t\t\t\t\t"),a("code",[e._v("+")]),e._v(" sign, the connection will be made secure using TLS.\n\t\t\t\t")]),a("p",[e._v("Alias: "),a("code",[e._v("/server")])])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/ctcp target cmd [args]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tSend a "),t("abbr",{attrs:{title:"Client-to-client protocol"}},[this._v("CTCP")]),this._v("\n\t\t\t\t\trequest. Read more about this on\n\t\t\t\t\t"),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Client-to-client_protocol",target:"_blank",rel:"noopener"}},[this._v("the dedicated Wikipedia article")]),this._v(".\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/deop nick [...nick]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tRemove op ("),t("code",[this._v("-o")]),this._v(") from one or several users in the current\n\t\t\t\t\tchannel.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/devoice nick [...nick]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tRemove voice ("),t("code",[this._v("-v")]),this._v(") from one or several users in the current\n\t\t\t\t\tchannel.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/disconnect [message]")])]),t("div",{staticClass:"description"},[t("p",[this._v("Disconnect from the current network with an optionally-provided message.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/expand")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tExpand all previews in the current channel (opposite of\n\t\t\t\t\t"),t("code",[this._v("/collapse")]),this._v(")\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/invite nick [channel]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tInvite a user to the specified channel. If\n\t\t\t\t\t"),t("code",[this._v("channel")]),this._v(" is omitted, user will be invited to the current\n\t\t\t\t\tchannel.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/ignore nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tBlock any messages from the specified user on the current network. This can\n\t\t\t\t\tbe a nickname or a hostmask.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/ignorelist")])]),t("div",{staticClass:"description"},[t("p",[this._v("Load the list of ignored users for the current network.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/join channel")])]),t("div",{staticClass:"description"},[t("p",[this._v("Join a channel.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/kick nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("Kick a user from the current channel.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/list")])]),t("div",{staticClass:"description"},[t("p",[this._v("Retrieve a list of available channels on this network.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/me message")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tSend an action message to the current channel. The Lounge will display it\n\t\t\t\t\tinline, as if the message was posted in the third person.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/mode flags [args]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tSet the given flags to the current channel if the active window is a\n\t\t\t\t\tchannel, another user if the active window is a private message window, or\n\t\t\t\t\tyourself if the current window is a server window.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/msg channel message")])]),t("div",{staticClass:"description"},[t("p",[this._v("Send a message to the specified channel.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/nick newnick")])]),t("div",{staticClass:"description"},[t("p",[this._v("Change your nickname on the current network.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/notice channel message")])]),t("div",{staticClass:"description"},[t("p",[this._v("Sends a notice message to the specified channel.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/op nick [...nick]")])]),t("div",{staticClass:"description"},[t("p",[this._v("Give op ("),t("code",[this._v("+o")]),this._v(") to one or several users in the current channel.")])])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"help-item"},[a("div",{staticClass:"subject"},[a("code",[e._v("/part [channel]")])]),a("div",{staticClass:"description"},[a("p",[e._v("\n\t\t\t\t\tClose the specified channel or private message window, or the current\n\t\t\t\t\tchannel if "),a("code",[e._v("channel")]),e._v(" is omitted.\n\t\t\t\t")]),a("p",[e._v("Aliases: "),a("code",[e._v("/close")]),e._v(", "),a("code",[e._v("/leave")])])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/rejoin")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tLeave and immediately rejoin the current channel. Useful to quickly get op\n\t\t\t\t\tfrom ChanServ in an empty channel, for example.\n\t\t\t\t")]),t("p",[this._v("Alias: "),t("code",[this._v("/cycle")])])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/query nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("Send a private message to the specified user.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/quit [message]")])]),t("div",{staticClass:"description"},[t("p",[this._v("Disconnect from the current network with an optional message.")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/raw message")])]),t("div",{staticClass:"description"},[t("p",[this._v("Send a raw message to the current IRC network.")]),t("p",[this._v("Aliases: "),t("code",[this._v("/quote")]),this._v(", "),t("code",[this._v("/send")])])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/slap nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("Slap someone in the current channel with a trout!")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/topic [newtopic]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tGet the topic in the current channel. If "),t("code",[this._v("newtopic")]),this._v(" is specified,\n\t\t\t\t\tsets the topic in the current channel.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/unban nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tUnban ("),t("code",[this._v("-b")]),this._v(") a user from the current channel. This can be a\n\t\t\t\t\tnickname or a hostmask.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/unignore nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tUnblock messages from the specified user on the current network. This can be\n\t\t\t\t\ta nickname or a hostmask.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/voice nick [...nick]")])]),t("div",{staticClass:"description"},[t("p",[this._v("\n\t\t\t\t\tGive voice ("),t("code",[this._v("+v")]),this._v(") to one or several users in the current channel.\n\t\t\t\t")])])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"help-item"},[t("div",{staticClass:"subject"},[t("code",[this._v("/whois nick")])]),t("div",{staticClass:"description"},[t("p",[this._v("Retrieve information about the given user on the current network.")])])])}],!1,null,null,null).exports,O={name:"Changelog",components:{SidebarToggle:p},mounted(){this.$store.state.versionData||o.a.emit("changelog"),this.patchChangelog()},updated(){this.patchChangelog()},methods:{patchChangelog(){if(!this.$refs.changelog)return;const e=this.$refs.changelog.querySelectorAll("a");for(const t of e)t.setAttribute("target","_blank"),t.setAttribute("rel","noopener"),t.querySelector("img")&&t.classList.add("toggle-thumbnail")}}},E=Object(l.a)(O,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"changelog","aria-label":"Changelog"}},[a("div",{staticClass:"header"},[a("SidebarToggle")],1),a("div",{staticClass:"container"},[a("router-link",{attrs:{id:"back-to-help",to:"/help"}},[e._v("« Help")]),e.$store.state.versionData&&e.$store.state.versionData.current&&e.$store.state.versionData.current.version?[a("h1",{staticClass:"title"},[e._v("\n\t\t\t\tRelease notes for "+e._s(e.$store.state.versionData.current.version)+"\n\t\t\t")]),e.$store.state.versionData.current.changelog?[a("h3",[e._v("Introduction")]),a("div",{ref:"changelog",staticClass:"changelog-text",domProps:{innerHTML:e._s(e.$store.state.versionData.current.changelog)}})]:[a("p",[e._v("Unable to retrieve changelog for current release from GitHub.")]),a("p",[a("a",{attrs:{href:"https://github.com/thelounge/thelounge/releases/tag/v"+e.$store.state.serverConfiguration.version,target:"_blank",rel:"noopener"}},[e._v("View release notes for this version on GitHub")])])]]:a("p",[e._v("Loading changelog…")])],2)])}),[],!1,null,null,null).exports,M={name:"NetworkEdit",components:{NetworkForm:g},data:()=>({disabled:!1,networkData:null}),watch:{"$route.params.uuid"(){this.setNetworkData()}},mounted(){this.setNetworkData()},methods:{setNetworkData(){o.a.emit("network:get",this.$route.params.uuid),this.networkData=this.$store.getters.findNetwork(this.$route.params.uuid)},handleSubmit(e){this.disabled=!0,o.a.emit("network:edit",e);const t=this.$store.getters.findNetwork(e.uuid);t.name=t.channels[0].name=e.name,this.$root.switchToChannel(t.channels[0])}}},T=Object(l.a)(M,(function(){var e=this.$createElement,t=this._self._c||e;return this.networkData?t("NetworkForm",{attrs:{"handle-submit":this.handleSubmit,defaults:this.networkData,disabled:this.disabled}}):this._e()}),[],!1,null,null,null).exports,A=a(3),I=a(5),N=a(12),U=a.n(N),L=a(4),D=a(31),z={name:"LinkPreview",props:{link:Object,keepScrollPosition:Function,channel:Object},data:()=>({showMoreButton:!1,isContentShown:!1}),computed:{moreButtonLabel(){return this.isContentShown?"Less":"More"},imageMaxSize(){if(this.link.maxSize)return Object(D.a)(this.link.maxSize)}},watch:{"link.type"(){this.updateShownState(),this.onPreviewUpdate()}},created(){this.updateShownState()},mounted(){A.a.on("resize",this.handleResize),this.onPreviewUpdate()},beforeDestroy(){A.a.off("resize",this.handleResize)},destroyed(){this.link.sourceLoaded=!1},methods:{onPreviewUpdate(){"loading"!==this.link.type&&("error"===this.link.type&&this.onPreviewReady(),"link"===this.link.type&&(this.handleResize(),this.keepScrollPosition()))},onPreviewReady(){this.$set(this.link,"sourceLoaded",!0),this.keepScrollPosition(),"link"===this.link.type&&this.handleResize()},onThumbnailError(){this.link.thumb="",this.onPreviewReady()},onThumbnailClick(e){e.preventDefault();const t=this.$root.$refs.app.$refs.imageViewer;t.channel=this.channel,t.link=this.link},onMoreClick(){this.isContentShown=!this.isContentShown,this.keepScrollPosition()},handleResize(){this.$nextTick(()=>{this.$refs.content&&(this.showMoreButton=this.$refs.content.offsetWidth>=this.$refs.container.offsetWidth)})},updateShownState(){if(null!==this.link.shown)return;let e=!1;switch(this.link.type){case"error":"image-too-big"===this.link.error&&(e=this.$store.state.settings.media);break;case"link":e=this.$store.state.settings.links;break;default:e=this.$store.state.settings.media}this.link.shown=e}}},q=Object(l.a)(z,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.link.shown?a("div",{directives:[{name:"show",rawName:"v-show",value:e.link.sourceLoaded||"link"===e.link.type,expression:"link.sourceLoaded || link.type === 'link'"}],ref:"container",staticClass:"preview",attrs:{dir:"ltr"}},[a("div",{ref:"content",class:["toggle-content","toggle-type-"+e.link.type,{opened:e.isContentShown}]},["link"===e.link.type?[e.link.thumb?a("a",{directives:[{name:"show",rawName:"v-show",value:e.link.sourceLoaded,expression:"link.sourceLoaded"}],staticClass:"toggle-thumbnail",attrs:{href:e.link.link,target:"_blank",rel:"noopener"},on:{click:e.onThumbnailClick}},[a("img",{staticClass:"thumb",attrs:{src:e.link.thumb,decoding:"async",alt:""},on:{error:e.onThumbnailError,abort:e.onThumbnailError,load:e.onPreviewReady}})]):e._e(),a("div",{staticClass:"toggle-text",attrs:{dir:"auto"}},[a("div",{staticClass:"head"},[a("div",{staticClass:"overflowable"},[a("a",{attrs:{href:e.link.link,title:e.link.head,target:"_blank",rel:"noopener"}},[e._v(e._s(e.link.head))])]),e.showMoreButton?a("button",{staticClass:"more",attrs:{"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel,dir:"auto"},on:{click:e.onMoreClick}},[a("span",{staticClass:"more-caret"})]):e._e()]),a("div",{staticClass:"body overflowable"},[a("a",{attrs:{href:e.link.link,title:e.link.body,target:"_blank",rel:"noopener"}},[e._v(e._s(e.link.body))])])])]:"image"===e.link.type?[a("a",{staticClass:"toggle-thumbnail",attrs:{href:e.link.link,target:"_blank",rel:"noopener"},on:{click:e.onThumbnailClick}},[a("img",{directives:[{name:"show",rawName:"v-show",value:e.link.sourceLoaded,expression:"link.sourceLoaded"}],attrs:{src:e.link.thumb,decoding:"async",alt:""},on:{load:e.onPreviewReady}})])]:"video"===e.link.type?[a("video",{directives:[{name:"show",rawName:"v-show",value:e.link.sourceLoaded,expression:"link.sourceLoaded"}],attrs:{preload:"metadata",controls:""},on:{canplay:e.onPreviewReady}},[a("source",{attrs:{src:e.link.media,type:e.link.mediaType}})])]:"audio"===e.link.type?[a("audio",{directives:[{name:"show",rawName:"v-show",value:e.link.sourceLoaded,expression:"link.sourceLoaded"}],attrs:{controls:"",preload:"metadata"},on:{canplay:e.onPreviewReady}},[a("source",{attrs:{src:e.link.media,type:e.link.mediaType}})])]:"error"===e.link.type?["image-too-big"===e.link.error?a("em",[e._v("\n\t\t\t\tThis image is larger than "+e._s(e.imageMaxSize)+" and cannot be previewed.\n\t\t\t\t"),a("a",{attrs:{href:e.link.link,target:"_blank",rel:"noopener"}},[e._v("Click here")]),e._v("\n\t\t\t\tto open it in a new window.\n\t\t\t")]):"message"===e.link.error?[a("div",[a("em",[e._v("\n\t\t\t\t\t\tA preview could not be loaded.\n\t\t\t\t\t\t"),a("a",{attrs:{href:e.link.link,target:"_blank",rel:"noopener"}},[e._v("Click here")]),e._v("\n\t\t\t\t\t\tto open it in a new window.\n\t\t\t\t\t")]),a("br"),a("pre",{staticClass:"prefetch-error"},[e._v(e._s(e.link.message))])]),a("button",{staticClass:"more",attrs:{"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel},on:{click:e.onMoreClick}},[a("span",{staticClass:"more-caret"})])]:e._e()]:e._e()],2)]):e._e()}),[],!1,null,null,null).exports;const R=a(125);var B=R.keys().reduce((e,t)=>(e["message-"+t.substring(2,t.length-4)]=R(t).default,e),{});const H=a(14);B.ParsedMessage=I.a,B.LinkPreview=q,B.Username=L.a;var F={name:"Message",components:B,props:{message:Object,channel:Object,network:Object,keepScrollPosition:Function,isPreviousSource:Boolean},computed:{timeFormat(){let e;return e=this.$store.state.settings.use12hClock?this.$store.state.settings.showSeconds?"msg12hWithSeconds":"msg12h":this.$store.state.settings.showSeconds?"msgWithSeconds":"msgDefault",H.timeFormats[e]},messageTime(){return U()(this.message.time).format(this.timeFormat)},messageTimeLocale(){return Object(b.a)(this.message.time)},messageComponent(){return"message-"+this.message.type}},methods:{isAction(){return void 0!==B["message-"+this.message.type]}}},V=Object(l.a)(F,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:["msg",{self:e.message.self,highlight:e.message.highlight,"previous-source":e.isPreviousSource}],attrs:{id:"msg-"+e.message.id,"data-type":e.message.type,"data-command":e.message.command,"data-from":e.message.from&&e.message.from.nick}},[a("span",{staticClass:"time tooltipped tooltipped-e",attrs:{"aria-label":e.messageTimeLocale}},[e._v(e._s(e.messageTime)+"\n\t")]),"unhandled"===e.message.type?[a("span",{staticClass:"from"},[e._v("["+e._s(e.message.command)+"]")]),a("span",{staticClass:"content"},e._l(e.message.params,(function(t,s){return a("span",{key:s},[e._v(e._s(t)+" ")])})),0)]:e.isAction()?[e._m(0),a(e.messageComponent,{tag:"component",attrs:{network:e.network,message:e.message}})]:"action"===e.message.type?[e._m(1),a("span",{staticClass:"content",attrs:{dir:"auto"}},[a("Username",{attrs:{user:e.message.from,dir:"auto"}}),e._v(" "),a("ParsedMessage",{attrs:{message:e.message}}),e._l(e.message.previews,(function(t){return a("LinkPreview",{key:t.link,attrs:{"keep-scroll-position":e.keepScrollPosition,link:t,channel:e.channel}})}))],2)]:["message"===e.message.type?a("span",{staticClass:"from"},[e.message.from&&e.message.from.nick?[a("span",{staticClass:"only-copy"},[e._v("<")]),a("Username",{attrs:{user:e.message.from}}),a("span",{staticClass:"only-copy"},[e._v("> ")])]:e._e()],2):"plugin"===e.message.type?a("span",{staticClass:"from"},[e.message.from&&e.message.from.nick?[a("span",{staticClass:"only-copy"},[e._v("[")]),e._v("\n\t\t\t\t"+e._s(e.message.from.nick)+"\n\t\t\t\t"),a("span",{staticClass:"only-copy"},[e._v("] ")])]:e._e()],2):a("span",{staticClass:"from"},[e.message.from&&e.message.from.nick?[a("span",{staticClass:"only-copy"},[e._v("-")]),a("Username",{attrs:{user:e.message.from}}),a("span",{staticClass:"only-copy"},[e._v("- ")])]:e._e()],2),a("span",{staticClass:"content",attrs:{dir:"auto"}},[e.message.showInActive?a("span",{staticClass:"msg-shown-in-active tooltipped tooltipped-e",attrs:{"aria-label":"This message was shown in your active channel"}},[a("span")]):e._e(),e.message.statusmsgGroup?a("span",{staticClass:"msg-statusmsg tooltipped tooltipped-e",attrs:{"aria-label":"This message was only shown to users with "+e.message.statusmsgGroup+" mode"}},[a("span",[e._v(e._s(e.message.statusmsgGroup))])]):e._e(),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._l(e.message.previews,(function(t){return a("LinkPreview",{key:t.link,attrs:{"keep-scroll-position":e.keepScrollPosition,link:t,channel:e.channel}})}))],2)]],2)}),[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"from"},[t("span",{staticClass:"only-copy"},[this._v("*** ")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"from"},[t("span",{staticClass:"only-copy"},[this._v("* ")])])}],!1,null,null,null).exports;const W=a(14);var J={name:"MessageCondensed",components:{Message:V},props:{network:Object,messages:Array,keepScrollPosition:Function},data:()=>({isCollapsed:!0}),computed:{condensedText(){const e={};W.condensedTypes.forEach(t=>{e[t]=0});for(const t of this.messages)e[t.type]++;e.part+=e.quit;const t=[];W.condensedTypes.forEach(a=>{if(e[a])switch(a){case"chghost":t.push(e[a]+(e[a]>1?" users have changed hostname":" user has changed hostname"));break;case"join":t.push(e[a]+(e[a]>1?" users have joined":" user has joined"));break;case"part":t.push(e[a]+(e[a]>1?" users have left":" user has left"));break;case"nick":t.push(e[a]+(e[a]>1?" users have changed nick":" user has changed nick"));break;case"kick":t.push(e[a]+(e[a]>1?" users were kicked":" user was kicked"));break;case"mode":t.push(e[a]+(e[a]>1?" modes were set":" mode was set"))}});let a=t.pop();return t.length&&(a=t.join(", ")+", and "+a),a}},methods:{onCollapseClick(){this.isCollapsed=!this.isCollapsed,this.keepScrollPosition()}}},K=Object(l.a)(J,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:["msg",{closed:e.isCollapsed}],attrs:{"data-type":"condensed"}},[a("div",{staticClass:"condensed-summary"},[a("span",{staticClass:"time"}),a("span",{staticClass:"from"}),a("span",{staticClass:"content",on:{click:e.onCollapseClick}},[e._v(e._s(e.condensedText)),a("button",{staticClass:"toggle-button",attrs:{"aria-label":"Toggle status messages"}})])]),e._l(e.messages,(function(t){return a("Message",{key:t.id,attrs:{network:e.network,message:t}})}))],2)}),[],!1,null,null,null).exports,Y=a(70),G=a.n(Y);U.a.extend(G.a);var X={name:"DateMarker",props:{message:Object},computed:{localeDate(){return U()(this.message.time).format("D MMMM YYYY")}},mounted(){this.hoursPassed()<48&&A.a.on("daychange",this.dayChange)},beforeDestroy(){A.a.off("daychange",this.dayChange)},methods:{hoursPassed(){return(Date.now()-Date.parse(this.message.time))/36e5},dayChange(){this.$forceUpdate(),this.hoursPassed()>=48&&A.a.off("daychange",this.dayChange)},friendlyDate(){return U()(this.message.time).calendar(null,{sameDay:"[Today]",lastDay:"[Yesterday]",lastWeek:"D MMMM YYYY",sameElse:"D MMMM YYYY"})}}},Q=Object(l.a)(X,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"date-marker-container tooltipped tooltipped-s",attrs:{"aria-label":this.localeDate}},[t("div",{staticClass:"date-marker"},[t("span",{staticClass:"date-marker-text",attrs:{"aria-label":this.friendlyDate()}})])])}),[],!1,null,null,null).exports;const Z=a(14);let ee=!1;var te={name:"MessageList",components:{Message:V,MessageCondensed:K,DateMarker:Q},props:{network:Object,channel:Object},computed:{condensedMessages(){if("channel"!==this.channel.type)return this.channel.messages;if("hidden"===this.$store.state.settings.statusMessages)return this.channel.messages.filter(e=>!Z.condensedTypes.has(e.type));if("condensed"!==this.$store.state.settings.statusMessages)return this.channel.messages;const e=[];let t=null;for(const a of this.channel.messages)a.self||a.highlight||!Z.condensedTypes.has(a.type)?(t=null,e.push(a)):(null===t&&(t={time:a.time,type:"condensed",messages:[]},e.push(t)),t.messages.push(a),t.id=a.id,a.id===this.channel.firstUnread&&(t=null));return e}},watch:{"channel.id"(){this.channel.scrolledToBottom=!0,this.historyObserver&&(this.historyObserver.unobserve(this.$refs.loadMoreButton),this.historyObserver.observe(this.$refs.loadMoreButton))},"channel.messages"(){this.keepScrollPosition()},"channel.pendingMessage"(){this.$nextTick(()=>{this.keepScrollPosition()})}},created(){this.$nextTick(()=>{this.$refs.chat&&(window.IntersectionObserver&&(this.historyObserver=new window.IntersectionObserver(this.onLoadButtonObserved,{root:this.$refs.chat})),this.jumpToBottom())})},mounted(){this.$refs.chat.addEventListener("scroll",this.handleScroll,{passive:!0}),A.a.on("resize",this.handleResize),this.$nextTick(()=>{this.historyObserver&&this.historyObserver.observe(this.$refs.loadMoreButton)})},beforeUpdate(){ee=!1},beforeDestroy(){A.a.off("resize",this.handleResize),this.$refs.chat.removeEventListener("scroll",this.handleScroll)},destroyed(){this.historyObserver&&this.historyObserver.disconnect()},methods:{shouldDisplayDateMarker(e,t){const a=this.condensedMessages[t-1];if(!a)return!0;const s=new Date(a.time),n=new Date(e.time);return s.getDate()!==n.getDate()||s.getMonth()!==n.getMonth()||s.getFullYear()!==n.getFullYear()},shouldDisplayUnreadMarker(e){return!ee&&e>this.channel.firstUnread&&(ee=!0,!0)},isPreviousSource(e,t){const a=this.condensedMessages[t-1];return a&&"message"===e.type&&"message"===a.type&&a.from&&e.from.nick===a.from.nick},onCopy(){!function(e){if(void 0!==window.InstallTrigger)return;const t=window.getSelection();if(t.anchorNode===t.focusNode)return;const a=t.getRangeAt(0),s=a.cloneContents(),n=document.createElement("div");n.id="js-copy-hack",n.appendChild(s),e.appendChild(n),t.selectAllChildren(n),window.setTimeout(()=>{e.removeChild(n),t.removeAllRanges(),t.addRange(a)},0)}(this.$el)},onLinkPreviewToggle(e,t){this.keepScrollPosition(),o.a.emit("msg:preview:toggle",{target:this.channel.id,msgId:t.id,link:e.link,shown:e.shown})},onShowMoreClick(){if(!this.$store.state.isConnected)return;let e=-1;for(const t of this.channel.messages)if(!t.showInActive){e=t.id;break}this.channel.historyLoading=!0,o.a.emit("more",{target:this.channel.id,lastId:e,condensed:"shown"!==this.$store.state.settings.statusMessages})},onLoadButtonObserved(e){e.forEach(e=>{e.isIntersecting&&this.onShowMoreClick()})},keepScrollPosition(){if(this.isWaitingForNextTick)return;const e=this.$refs.chat;if(e)if(this.channel.scrolledToBottom)this.isWaitingForNextTick=!0,this.$nextTick(()=>{this.isWaitingForNextTick=!1,this.jumpToBottom()});else if(this.channel.historyLoading){const t=e.scrollHeight-e.scrollTop;this.isWaitingForNextTick=!0,this.$nextTick(()=>{this.isWaitingForNextTick=!1,this.skipNextScrollEvent=!0,e.scrollTop=e.scrollHeight-t})}},handleScroll(){if(this.skipNextScrollEvent)return void(this.skipNextScrollEvent=!1);const e=this.$refs.chat;e&&(this.channel.scrolledToBottom=e.scrollHeight-e.scrollTop-e.offsetHeight<=30)},handleResize(){this.channel.scrolledToBottom&&this.jumpToBottom()},jumpToBottom(){this.skipNextScrollEvent=!0,this.channel.scrolledToBottom=!0;const e=this.$refs.chat;e.scrollTop=e.scrollHeight}}},ae=Object(l.a)(te,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"chat",staticClass:"chat",attrs:{tabindex:"-1"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.channel.moreHistoryAvailable,expression:"channel.moreHistoryAvailable"}],staticClass:"show-more"},[a("button",{ref:"loadMoreButton",staticClass:"btn",attrs:{disabled:e.channel.historyLoading||!e.$store.state.isConnected},on:{click:e.onShowMoreClick}},[e.channel.historyLoading?a("span",[e._v("Loading…")]):a("span",[e._v("Show older messages")])])]),a("div",{staticClass:"messages",attrs:{role:"log","aria-live":"polite","aria-relevant":"additions"},on:{copy:e.onCopy}},[e._l(e.condensedMessages,(function(t,s){return[e.shouldDisplayDateMarker(t,s)?a("DateMarker",{key:t.id+"-date",attrs:{message:t}}):e._e(),e.shouldDisplayUnreadMarker(t.id)?a("div",{key:t.id+"-unread",staticClass:"unread-marker"},[a("span",{staticClass:"unread-marker-text"})]):e._e(),"condensed"===t.type?a("MessageCondensed",{key:t.messages[0].id,attrs:{network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:t.messages}}):a("Message",{key:t.id,attrs:{channel:e.channel,network:e.network,message:t,"keep-scroll-position":e.keepScrollPosition,"is-previous-source":e.isPreviousSource(t,s)},on:{"toggle-link-preview":e.onLinkPreviewToggle}})]}))],2)])}),[],!1,null,null,null).exports,se=a(8),ne=a.n(se),ie=a(20),oe=a(49),re=a(11),le=a.n(re),ce=a(35),he=a(0);const ue=a(14);var de=function(e){let t=0,a="",s=[];e.addEventListener("input",e=>{"autocomplete"!==e.detail&&(t=0,s=[],a="")}),ne()(e).bind("tab",n=>{if(he.a.state.isAutoCompleting)return;n.preventDefault();const i=e.value;if(0===t){if(a=i.substring(0,e.selectionStart).split(/\s/).pop(),0===a.length)return;if(s=ye(a,!1),0===s.length)return}const o=e.selectionStart-a.length,r=we(s[t%s.length],o),l=i.substr(e.selectionStart);e.value=i.substr(0,o)+r+l,e.selectionStart-=l.length,e.selectionEnd=e.selectionStart,e.dispatchEvent(new CustomEvent("input",{detail:"autocomplete"})),a=r,t++},"keydown");const n=new oe.Textarea(e),i=new oe.Textcomplete(n,{dropdown:{className:"textcomplete-menu",placement:"top"}});return i.register([me,ge,fe,_e,ve,be]),i.on("rendered",()=>{i.dropdown.items.length>0&&i.dropdown.items[0].activate()}),i.on("show",()=>{he.a.commit("isAutoCompleting",!0)}),i.on("hidden",()=>{he.a.commit("isAutoCompleting",!1)}),{hide(){i.hide()},destroy(){i.destroy(),he.a.commit("isAutoCompleting",!1)}}};const pe=Object.keys(ce),me={id:"emoji",match:/(^|\s):([-+\w:?]{2,}):?$/,search(e,t){t(ke(e=e.replace(/:$/,""),pe))},template:([e,t])=>'<span class="emoji">'.concat(ce[t],"</span> ").concat(e),replace:([,e])=>"$1"+ce[e],index:2},ge={id:"nicks",match:/(^|\s)(@([a-zA-Z_[\]\\^{}|`@][a-zA-Z0-9_[\]\\^{}|`-]*)?)$/,search(e,t){"@"===(e=e.slice(1))[0]?t(ye(e.slice(1),!0).map(e=>["@"+e[0],"@"+e[1]])):t(ye(e,!0))},template:([e])=>e,replace:([,e])=>"$1"+we(e),index:2},fe={id:"chans",match:/(^|\s)((?:#|\+|&|![A-Z0-9]{5})(?:[^\s]+)?)$/,search(e,t){t(function(e){const t=[];for(const a of he.a.state.activeChannel.network.channels)"channel"===a.type&&a.name[0]===e[0]&&t.push(a.name);return ke(e,t)}(e))},template:([e])=>e,replace:([,e])=>"$1"+e,index:2},_e={id:"commands",match:/^\/(\w*)$/,search(e,t){t(function(e){const t=ue.commands.slice();return ke(e,t)}("/"+e))},template:([e])=>e,replace:([,e])=>e,index:1},ve={id:"foreground-colors",match:/\x03(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,t){e=e.toLowerCase();t(ue.colorCodeMap.filter(t=>le.a.test(e,t[0])||le.a.test(e,t[1])).map(t=>le.a.test(e,t[1])?[t[0],le.a.match(e,t[1],{pre:"<b>",post:"</b>"}).rendered]:t))},template:e=>'<span class="irc-fg'.concat(parseInt(e[0],10),'">').concat(e[1],"</span>"),replace:e=>""+e[0],index:1},be={id:"background-colors",match:/\x03(\d{2}),(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,t,a){e=e.toLowerCase();t(ue.colorCodeMap.filter(t=>le.a.test(e,t[0])||le.a.test(e,t[1])).map(t=>le.a.test(e,t[1])?[t[0],le.a.match(e,t[1],{pre:"<b>",post:"</b>"}).rendered]:t).map(e=>e.concat(a[1])))},template:e=>'<span class="irc-fg'.concat(parseInt(e[2],10)," irc-bg irc-bg").concat(parseInt(e[0],10),'">').concat(e[1],"</span>"),replace:e=>"$1,"+e[0],index:2};function we(e,t=1){return he.a.state.settings.nickPostfix?t>0&&/\s/.test(he.a.state.activeChannel.channel.pendingMessage)?e+" ":e+he.a.state.settings.nickPostfix:e}function ke(e,t){return le.a.filter(e,t,{pre:"<b>",post:"</b>"}).map(e=>[e.string,e.original])}function ye(e,t){const a=function(){if(he.a.state.activeChannel.channel.users.length>0){return he.a.state.activeChannel.channel.users.slice().sort((e,t)=>t.lastMessage-e.lastMessage).map(e=>e.nick)}const e=he.a.state.activeChannel.network.nick,t=he.a.state.activeChannel.channel.name;return e!==t&&"query"===he.a.state.activeChannel.channel.type?[t,e]:[e]}();return e=e.toLowerCase(),t?ke(e,a):a.filter(t=>!t.toLowerCase().indexOf(e))}var Ce=a(34),xe=a(19);const Se={"mod+k":"","mod+b":"","mod+u":"","mod+i":"","mod+o":"","mod+s":"","mod+m":""},$e={'"':'"',"'":"'","(":")","<":">","[":"]","{":"}","*":"*","`":"`","~":"~",_:"_"};let je=null;var Pe={name:"ChatInput",props:{network:Object,channel:Object},watch:{"channel.id"(){je&&je.hide()},"channel.pendingMessage"(){this.setInputSize()}},mounted(){A.a.on("escapekey",this.blurInput),this.$store.state.settings.autocomplete&&(je=de(this.$refs.input));const e=ne()(this.$refs.input);e.bind(Object.keys(Se),(function(e,t){const a=Se[t];return Object(ie.b)(e.target,a,e.target.selectionStart===e.target.selectionEnd?"":a),!1})),e.bind(Object.keys($e),(function(e,t){if(e.target.selectionStart!==e.target.selectionEnd)return Object(ie.b)(e.target,t,$e[t]),!1})),e.bind(["up","down"],(e,t)=>{if(this.$store.state.isAutoCompleting||e.target.selectionStart!==e.target.selectionEnd)return;const{channel:a}=this;return 0===a.inputHistoryPosition&&(a.inputHistory[a.inputHistoryPosition]=a.pendingMessage),"up"===t?a.inputHistoryPosition<a.inputHistory.length-1&&a.inputHistoryPosition++:a.inputHistoryPosition>0&&a.inputHistoryPosition--,a.pendingMessage=a.inputHistory[a.inputHistoryPosition],this.$refs.input.value=a.pendingMessage,this.setInputSize(),!1}),this.$store.state.serverConfiguration.fileUpload&&xe.a.mounted()},destroyed(){A.a.off("escapekey",this.blurInput),je&&(je.destroy(),je=null),xe.a.abort()},methods:{setPendingMessage(e){this.channel.pendingMessage=e.target.value,this.channel.inputHistoryPosition=0,this.setInputSize()},setInputSize(){this.$nextTick(()=>{const e=window.getComputedStyle(this.$refs.input),t=parseFloat(e.lineHeight,10)||1;this.$refs.input.style.height="",this.$refs.input.style.height=Math.ceil(this.$refs.input.scrollHeight/t)*t+"px"})},getInputPlaceholder:e=>"channel"===e.type||"query"===e.type?"Write to ".concat(e.name):"",onSubmit(){if(this.$refs.input.click(),this.$refs.input.focus(),!this.$store.state.isConnected)return!1;const e=this.channel.id,t=this.channel.pendingMessage;if(0===t.length)return!1;if(je&&je.hide(),this.channel.inputHistoryPosition=0,this.channel.pendingMessage="",this.$refs.input.value="",this.setInputSize(),this.channel.inputHistory[1]!==t&&this.channel.inputHistory.splice(1,0,t),this.channel.inputHistory.length>100&&this.channel.inputHistory.pop(),"/"===t[0]){const e=t.substr(1).split(" "),a=e.shift().toLowerCase();if(Object.prototype.hasOwnProperty.call(Ce.default,a)&&Ce.default[a].input(e))return!1}o.a.emit("input",{target:e,text:t})},onUploadInputChange(){const e=Array.from(this.$refs.uploadInput.files);xe.a.triggerUpload(e),this.$refs.uploadInput.value=""},openFileUpload(){this.$refs.uploadInput.click()},blurInput(){this.$refs.input.blur()}}},Oe=Object(l.a)(Pe,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",{attrs:{id:"form",method:"post",action:""},on:{submit:function(t){return t.preventDefault(),e.onSubmit(t)}}},[a("span",{attrs:{id:"upload-progressbar"}}),a("span",{attrs:{id:"nick"}},[e._v(e._s(e.network.nick))]),a("textarea",{ref:"input",staticClass:"mousetrap",attrs:{id:"input",dir:"auto",enterkeyhint:"send",placeholder:e.getInputPlaceholder(e.channel),"aria-label":e.getInputPlaceholder(e.channel)},domProps:{value:e.channel.pendingMessage},on:{input:e.setPendingMessage,keypress:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.onSubmit(t))}}}),e.$store.state.serverConfiguration.fileUpload?a("span",{staticClass:"tooltipped tooltipped-w tooltipped-no-touch",attrs:{id:"upload-tooltip","aria-label":"Upload file"},on:{click:e.openFileUpload}},[a("input",{ref:"uploadInput",attrs:{id:"upload-input",type:"file","aria-labelledby":"upload",multiple:""},on:{change:e.onUploadInputChange}}),a("button",{attrs:{id:"upload",type:"button","aria-label":"Upload file",disabled:!e.$store.state.isConnected}})]):e._e(),a("span",{staticClass:"tooltipped tooltipped-w tooltipped-no-touch",attrs:{id:"submit-tooltip","aria-label":"Send message"}},[a("button",{attrs:{id:"submit",type:"submit","aria-label":"Send message",disabled:!e.$store.state.isConnected}})])])}),[],!1,null,null,null).exports;const Ee={"~":"owner","&":"admin","!":"admin","@":"op","%":"half-op","+":"voice","":"normal"};var Me={name:"ChatUserList",components:{Username:L.a},props:{channel:Object},data:()=>({userSearchInput:"",activeUser:null}),computed:{filteredUsers(){if(this.userSearchInput)return Object(re.filter)(this.userSearchInput,this.channel.users,{pre:"<b>",post:"</b>",extract:e=>e.nick})},groupedUsers(){const e={};if(this.userSearchInput){const t=this.filteredUsers;for(const a of t){const t=a.original.modes[0]||"";e[t]||(e[t]=[]),a.string=t+a.string,e[t].push(a)}}else for(const t of this.channel.users){const a=t.modes[0]||"";e[a]?e[a].push(t):e[a]=[t]}return e}},methods:{setUserSearchInput(e){this.userSearchInput=e.target.value},getModeClass:e=>Ee[e],selectUser(){if(!this.activeUser)return;const e=this.$refs.userlist.querySelector(".active"),t=e.getBoundingClientRect(),a=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0,clientX:t.left,clientY:t.top+t.height});e.dispatchEvent(a)},hoverUser(e){this.activeUser=e},removeHoverUser(){this.activeUser=null},navigateUserList(e,t){e.stopImmediatePropagation(),e.preventDefault();let a=this.channel.users;if(this.userSearchInput&&(a=this.filteredUsers.map(e=>e.original)),!a.length)return void(this.activeUser=null);let s=a.indexOf(this.activeUser);if(!this.activeUser||-1===s)return this.activeUser=t?a[0]:a[a.length-1],void this.scrollToActiveUser();for(s+=t;s<0;)s+=a.length;for(;s>a.length-1;)s-=a.length;this.activeUser=a[s],this.scrollToActiveUser()},scrollToActiveUser(){this.$nextTick(()=>{this.$refs.userlist.querySelector(".active").scrollIntoView({block:"nearest",inline:"nearest"})})}}},Te=Object(l.a)(Me,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("aside",{ref:"userlist",staticClass:"userlist",on:{mouseleave:e.removeHoverUser}},[a("div",{staticClass:"count"},[a("input",{ref:"input",staticClass:"search",attrs:{placeholder:e.channel.users.length+" user"+(1===e.channel.users.length?"":"s"),type:"search","aria-label":"Search among the user list",tabindex:"-1"},domProps:{value:e.userSearchInput},on:{input:e.setUserSearchInput,keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:e.navigateUserList(t,-1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:e.navigateUserList(t,1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"page-up",void 0,t.key,void 0)?null:e.navigateUserList(t,-10)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"page-down",void 0,t.key,void 0)?null:e.navigateUserList(t,10)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectUser(t)}]}})]),a("div",{staticClass:"names"},e._l(e.groupedUsers,(function(t,s){return a("div",{key:s,class:["user-mode",e.getModeClass(s)]},[e.userSearchInput.length>0?e._l(t,(function(t){return a("Username",{key:t.original.nick,attrs:{"on-hover":e.hoverUser,active:t.original===e.activeUser,user:t.original},domProps:{innerHTML:e._s(t.string)}})})):e._l(t,(function(t){return a("Username",{key:t.nick,attrs:{"on-hover":e.hoverUser,active:t===e.activeUser,user:t}})}))],2)})),0)])}),[],!1,null,null,null).exports,Ae={name:"ListBans",props:{network:Object,channel:Object},methods:{localetime:e=>Object(b.a)(e)}},Ie=Object(l.a)(Ae,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("table",{staticClass:"ban-list"},[e._m(0),a("tbody",e._l(e.channel.data,(function(t){return a("tr",{key:t.hostmask},[a("td",{staticClass:"hostmask"},[e._v(e._s(t.hostmask))]),a("td",{staticClass:"banned_by"},[e._v(e._s(t.banned_by))]),a("td",{staticClass:"banned_at"},[e._v(e._s(e.localetime(t.banned_at)))])])})),0)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"hostmask"},[this._v("Banned")]),t("th",{staticClass:"banned_by"},[this._v("Banned By")]),t("th",{staticClass:"banned_at"},[this._v("Banned At")])])])}],!1,null,null,null).exports,Ne={name:"ListInvites",props:{network:Object,channel:Object},methods:{localetime:e=>Object(b.a)(e)}},Ue=Object(l.a)(Ne,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("table",{staticClass:"invite-list"},[e._m(0),a("tbody",e._l(e.channel.data,(function(t){return a("tr",{key:t.hostmask},[a("td",{staticClass:"hostmask"},[e._v(e._s(t.hostmask))]),a("td",{staticClass:"invitened_by"},[e._v(e._s(t.invited_by))]),a("td",{staticClass:"invitened_at"},[e._v(e._s(e.localetime(t.invited_at)))])])})),0)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"hostmask"},[this._v("Invited")]),t("th",{staticClass:"invitened_by"},[this._v("Invited By")]),t("th",{staticClass:"invitened_at"},[this._v("Invited At")])])])}],!1,null,null,null).exports,Le={name:"ListChannels",components:{ParsedMessage:I.a},props:{network:Object,channel:Object}},De=Object(l.a)(Le,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.channel.data.text?a("span",[e._v(e._s(e.channel.data.text))]):a("table",{staticClass:"channel-list"},[e._m(0),a("tbody",e._l(e.channel.data,(function(t){return a("tr",{key:t.channel},[a("td",{staticClass:"channel"},[a("ParsedMessage",{attrs:{network:e.network,text:t.channel}})],1),a("td",{staticClass:"users"},[e._v(e._s(t.num_users))]),a("td",{staticClass:"topic"},[a("ParsedMessage",{attrs:{network:e.network,text:t.topic}})],1)])})),0)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"channel"},[this._v("Channel")]),t("th",{staticClass:"users"},[this._v("Users")]),t("th",{staticClass:"topic"},[this._v("Topic")])])])}],!1,null,null,null).exports,ze={name:"ListIgnored",props:{network:Object,channel:Object},methods:{localetime:e=>Object(b.a)(e)}},qe=Object(l.a)(ze,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("table",{staticClass:"ignore-list"},[e._m(0),a("tbody",e._l(e.channel.data,(function(t){return a("tr",{key:t.hostmask},[a("td",{staticClass:"hostmask"},[e._v(e._s(t.hostmask))]),a("td",{staticClass:"when"},[e._v(e._s(e.localetime(t.when)))])])})),0)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"hostmask"},[this._v("Hostmask")]),t("th",{staticClass:"when"},[this._v("Ignored At")])])])}],!1,null,null,null).exports,Re={name:"Chat",components:{ParsedMessage:I.a,MessageList:ae,ChatInput:Oe,ChatUserList:Te,SidebarToggle:p},props:{network:Object,channel:Object},computed:{specialComponent(){switch(this.channel.special){case"list_bans":return Ie;case"list_invites":return Ue;case"list_channels":return De;case"list_ignored":return qe}}},watch:{channel(){this.channelChanged()},"channel.editTopic"(e){e&&this.$nextTick(()=>{this.$refs.topicInput.focus()})}},mounted(){this.channelChanged(),this.channel.editTopic&&this.$nextTick(()=>{this.$refs.topicInput.focus()})},methods:{channelChanged(){this.channel.highlight=0,this.channel.unread=0,o.a.emit("open",this.channel.id),this.channel.usersOutdated&&(this.channel.usersOutdated=!1,o.a.emit("names",{target:this.channel.id}))},hideUserVisibleError(){this.$store.commit("currentUserVisibleError",null)},editTopic(){"channel"===this.channel.type&&(this.channel.editTopic=!0)},saveTopic(){this.channel.editTopic=!1;const e=this.$refs.topicInput.value;if(this.channel.topic!==e){const t=this.channel.id,a="/raw TOPIC ".concat(this.channel.name," :").concat(e);o.a.emit("input",{target:t,text:a})}},openContextMenu(e){A.a.emit("contextmenu:channel",{event:e,channel:this.channel,network:this.network})},openMentions(){A.a.emit("mentions:toggle",{event:event})}}},Be={name:"RoutedChat",components:{Chat:Object(l.a)(Re,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"chat-container","data-current-channel":e.channel.name,lang:""}},[a("div",{class:{"hide-motd":!e.$store.state.settings.motd,"colored-nicks":e.$store.state.settings.coloredNicks,"time-seconds":e.$store.state.settings.showSeconds,"time-12h":e.$store.state.settings.use12hClock},attrs:{id:"chat"}},[a("div",{staticClass:"chat-view",attrs:{id:"chan-"+e.channel.id,"data-type":e.channel.type,"aria-label":e.channel.name,role:"tabpanel"}},[a("div",{staticClass:"header"},[a("SidebarToggle"),a("span",{staticClass:"title"},[e._v(e._s(e.channel.name))]),a("button",{staticClass:"mentions",attrs:{"aria-label":"Open your mentions"},on:{click:e.openMentions}}),a("button",{staticClass:"menu",attrs:{"aria-label":"Open the context menu"},on:{click:e.openContextMenu}}),"channel"===e.channel.type?a("span",{staticClass:"rt-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Toggle user list"}},[a("button",{staticClass:"rt",attrs:{"aria-label":"Toggle user list"},on:{click:function(t){return e.$store.commit("toggleUserlist")}}})]):e._e()],1),"special"===e.channel.type?a("div",{staticClass:"chat-content"},[a("div",{staticClass:"chat"},[a("div",{staticClass:"messages"},[a("div",{staticClass:"msg"},[a(e.specialComponent,{tag:"component",attrs:{network:e.network,channel:e.channel}})],1)])])]):a("div",{staticClass:"chat-content"},[a("div",{class:["scroll-down tooltipped tooltipped-w tooltipped-no-touch",{"scroll-down-shown":!e.channel.scrolledToBottom}],attrs:{"aria-label":"Jump to recent messages"},on:{click:function(t){return e.$refs.messageList.jumpToBottom()}}},[a("div",{staticClass:"scroll-down-arrow"})]),a("MessageList",{ref:"messageList",attrs:{network:e.network,channel:e.channel}}),"channel"===e.channel.type?a("ChatUserList",{attrs:{channel:e.channel}}):e._e()],1)])]),this.$store.state.currentUserVisibleError?a("div",{attrs:{id:"user-visible-error"},on:{click:e.hideUserVisibleError}},[e._v("\n\t\t"+e._s(this.$store.state.currentUserVisibleError)+"\n\t")]):e._e(),a("ChatInput",{attrs:{network:e.network,channel:e.channel}})],1)}),[],!1,null,null,null).exports},computed:{activeChannel(){const e=parseInt(this.$route.params.id,10);return this.$store.getters.findChannel(e)}},watch:{activeChannel(){this.setActiveChannel()}},mounted(){this.setActiveChannel()},methods:{setActiveChannel(){this.$store.commit("activeChannel",this.activeChannel)}}},He=Object(l.a)(Be,(function(){var e=this.$createElement,t=this._self._c||e;return this.activeChannel?t("Chat",{attrs:{network:this.activeChannel.network,channel:this.activeChannel.channel}}):this._e()}),[],!1,null,null,null).exports;const Fe=a(14);s.a.use(n.a);const Ve=new n.a({routes:[{name:"SignIn",path:"/sign-in",component:u,beforeEnter(e,t,a){he.a.state.appLoaded?a(!1):a()}},{name:"Connect",path:"/connect",component:_,props:e=>({queryParams:e.query})},{name:"Settings",path:"/settings",component:S},{name:"Help",path:"/help",component:P},{name:"Changelog",path:"/changelog",component:E},{name:"NetworkEdit",path:"/edit-network/:uuid",component:T},{name:"RoutedChat",path:"/chan-:id",component:He}]});function We(e,t={}){Ve.currentRoute.name?Ve.push({name:e,params:t}).catch(()=>{}):Ve.replace({name:e,params:t}).catch(()=>{})}function Je(e){return We("RoutedChat",{id:e.id})}Ve.beforeEach((e,t,a)=>{he.a.state.appLoaded||"SignIn"===e.name?a():he.a.watch(e=>e.appLoaded,()=>a())}),Ve.beforeEach((e,t,a)=>{if(!e.matched.length)return void a(!1);if("RoutedChat"===e.name&&!he.a.getters.findChannel(Number(e.params.id)))return void a(!1);if("NetworkEdit"===e.name&&!he.a.getters.findNetwork(e.params.uuid))return void a(!1);if(!Ve.app.$refs.app)return void a();const s=Ve.app.$root.$refs.app.$refs.imageViewer;if(s&&s.link)return s.closeViewer(),void a(!1);a()}),Ve.afterEach(e=>{if(he.a.state.appLoaded&&window.innerWidth<=Fe.mobileViewportPixels&&he.a.commit("sidebarOpen",!1),he.a.state.activeChannel){const t=he.a.state.activeChannel.channel;"RoutedChat"!==e.name&&he.a.commit("activeChannel",null),t.messages.length>0&&(t.firstUnread=t.messages[t.messages.length-1].id),t.messages.length>100&&(t.messages.splice(0,t.messages.length-100),t.moreHistoryAvailable=!0)}}),"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("message",e=>{if(e.data&&"open"===e.data.type){const t=parseInt(e.data.channel.substr(5),10),a=he.a.getters.findChannel(t);a&&Je(a.channel)}})},function(e,t,a){"use strict";t.a={set(e,t){try{window.localStorage.setItem(e,t)}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){}}}},,function(e,t,a){"use strict";var s=a(12),n=a.n(s);t.a=e=>n()(e).format("D MMMM YYYY, HH:mm:ss")},,,,function(e,t,a){"use strict";e.exports=function(){return function(){}}},function(e,t,a){"use strict";const s=new Set(["chghost","join","part","quit","nick","kick","mode"]);e.exports={colorCodeMap:[["00","White"],["01","Black"],["02","Blue"],["03","Green"],["04","Red"],["05","Brown"],["06","Magenta"],["07","Orange"],["08","Yellow"],["09","Light Green"],["10","Cyan"],["11","Light Cyan"],["12","Light Blue"],["13","Pink"],["14","Grey"],["15","Light Grey"]],commands:[],condensedTypes:s,timeFormats:{msgDefault:"HH:mm",msgWithSeconds:"HH:mm:ss",msg12h:"hh:mm A",msg12hWithSeconds:"hh:mm:ss A"},mobileViewportPixels:768}},,,,,function(e,t,a){"use strict";var s=a(20),n=a(1),i=a(0);const o=new class{init(){this.xhr=null,this.fileQueue=[],this.tokenKeepAlive=null,document.addEventListener("dragenter",e=>this.dragEnter(e)),document.addEventListener("dragover",e=>this.dragOver(e)),document.addEventListener("dragleave",e=>this.dragLeave(e)),document.addEventListener("drop",e=>this.drop(e)),document.addEventListener("paste",e=>this.paste(e)),n.a.on("upload:auth",e=>this.uploadNextFileInQueue(e))}mounted(){this.overlay=document.getElementById("upload-overlay"),this.uploadProgressbar=document.getElementById("upload-progressbar")}dragOver(e){e.preventDefault()}dragEnter(e){e.preventDefault(),!e.relatedTarget&&e.dataTransfer.types.includes("Files")&&this.overlay.classList.add("is-dragover")}dragLeave(e){e.preventDefault(),e.relatedTarget||this.overlay.classList.remove("is-dragover")}drop(e){let t;e.preventDefault(),this.overlay.classList.remove("is-dragover"),t=e.dataTransfer.items?Array.from(e.dataTransfer.items).filter(e=>"file"===e.kind).map(e=>e.getAsFile()):Array.from(e.dataTransfer.files),this.triggerUpload(t)}paste(e){const t=e.clipboardData.items,a=[];for(const e of t)"file"===e.kind&&a.push(e.getAsFile());0!==a.length&&(e.preventDefault(),this.triggerUpload(a))}triggerUpload(e){if(!e.length)return;if(!i.a.state.isConnected)return void this.handleResponse({error:"You are currently disconnected, unable to initiate upload process."});const t=0===this.fileQueue.length,a=i.a.state.serverConfiguration.fileUploadMaxFileSize;for(const t of e)a>0&&t.size>a?this.handleResponse({error:"File ".concat(t.name," is over the maximum allowed size")}):this.fileQueue.push(t);t&&null===this.xhr&&this.fileQueue.length>0&&this.requestToken()}requestToken(){n.a.emit("upload:auth")}setProgress(e){this.uploadProgressbar.classList.toggle("upload-progressbar-visible",e>0),this.uploadProgressbar.style.width=e+"%"}uploadNextFileInQueue(e){const t=this.fileQueue.shift();this.tokenKeepAlive=setInterval(()=>n.a.emit("upload:ping",e),4e4),i.a.state.settings.uploadCanvas&&t.type.startsWith("image/")&&!t.type.includes("svg")?this.renderImage(t,t=>this.performUpload(e,t)):this.performUpload(e,t)}renderImage(e,t){const a=new FileReader;a.onabort=()=>t(e),a.onerror=()=>a.abort(),a.onload=()=>{const s=new Image;s.onerror=()=>t(e),s.onload=()=>{const a=document.createElement("canvas");a.width=s.width,a.height=s.height;a.getContext("2d").drawImage(s,0,0),a.toBlob(a=>{t(new File([a],e.name))},e.type)},s.src=a.result},a.readAsDataURL(e)}performUpload(e,t){this.xhr=new XMLHttpRequest,this.xhr.upload.addEventListener("progress",e=>{const t=Math.floor(e.loaded/e.total*1e3)/10;this.setProgress(t)},!1),this.xhr.onreadystatechange=()=>{if(this.xhr.readyState===XMLHttpRequest.DONE){let e;try{e=JSON.parse(this.xhr.responseText)}catch(t){e={error:"Upload aborted: HTTP ".concat(this.xhr.status)}}this.handleResponse(e),this.xhr=null,this.fileQueue.length>0&&this.requestToken()}};const a=new FormData;a.append("file",t),this.xhr.open("POST","uploads/new/".concat(e)),this.xhr.send(a)}handleResponse(e){this.setProgress(0),this.tokenKeepAlive&&(clearInterval(this.tokenKeepAlive),this.tokenKeepAlive=null),e.error?i.a.commit("currentUserVisibleError",e.error):e.url&&this.insertUploadUrl(e.url)}insertUploadUrl(e){const t=new URL(e,location).toString(),a=document.getElementById("input"),n=a.selectionStart,i=n>0?a.value.substr(0,n)+" ":"",o=a.value.substr(n),r=i+t+" ";Object(s.a)(a,r+o),a.selectionStart=a.selectionEnd=r.length}abort(){this.fileQueue=[],this.xhr&&(this.xhr.abort(),this.xhr=null)}};t.a={abort:()=>o.abort(),initialize:()=>o.init(),mounted:()=>o.mounted(),triggerUpload:e=>o.triggerUpload(e)}},,,,,,function(e,t,a){},function(e,t,a){},function(e,t,a){},function(e,t,a){},function(e,t,a){},function(e,t,a){},function(e,t,a){"use strict";const s=["Bytes","KiB","MiB","GiB","TiB","PiB"];t.a=e=>{const t=e>0?Math.floor(Math.log(e)/Math.log(1024)):0,a=parseFloat((e/Math.pow(1024,t)).toFixed(1));return"".concat(a," ").concat(s[t])}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var s=a(7),n=a(33);class i{static signout(){s.a.clear(),n.a.reload()}}},function(e,t,a){"use strict";t.a={reload(){window.location.reload()}}},function(e,t,a){"use strict";a.r(t);const s=a(134);t.default=s.keys().reduce((e,t)=>{const a=t.substring(2,t.length-3);return"index"===a||(e[a]=s(t).default),e},{})},function(e){e.exports=JSON.parse('{"100":"💯","1234":"🔢","grinning":"😀","smiley":"😃","smile":"😄","grin":"😁","laughing":"😆","satisfied":"😆","sweat_smile":"😅","rofl":"🤣","joy":"😂","slightly_smiling_face":"🙂","upside_down_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":"🤭","shushing_face":"🤫","thinking":"🤔","zipper_mouth_face":"🤐","raised_eyebrow":"🤨","neutral_face":"😐","expressionless":"😑","no_mouth":"😶","smirk":"😏","unamused":"😒","roll_eyes":"🙄","grimacing":"😬","lying_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":"😵","exploding_head":"🤯","cowboy_hat_face":"🤠","partying_face":"🥳","disguised_face":"🥸","sunglasses":"😎","nerd_face":"🤓","monocle_face":"🧐","confused":"😕","worried":"😟","slightly_frowning_face":"🙁","frowning_face":"☹️","open_mouth":"😮","hushed":"😯","astonished":"😲","flushed":"😳","pleading_face":"🥺","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":"🙊","kiss":"💋","love_letter":"💌","cupid":"💘","gift_heart":"💝","sparkling_heart":"💖","heartpulse":"💗","heartbeat":"💓","revolving_hearts":"💞","two_hearts":"💕","heart_decoration":"💟","heavy_heart_exclamation":"❣️","broken_heart":"💔","heart":"❤️","orange_heart":"🧡","yellow_heart":"💛","green_heart":"💚","blue_heart":"💙","purple_heart":"💜","brown_heart":"🤎","black_heart":"🖤","white_heart":"🤍","anger":"💢","boom":"💥","collision":"💥","dizzy":"💫","sweat_drops":"💦","dash":"💨","hole":"🕳️","bomb":"💣","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":"🖖","ok_hand":"👌","pinched_fingers":"🤌","pinching_hand":"🤏","v":"✌️","crossed_fingers":"🤞","love_you_gesture":"🤟","metal":"🤘","call_me_hand":"🤙","point_left":"👈","point_right":"👉","point_up_2":"👆","middle_finger":"🖕","fu":"🖕","point_down":"👇","point_up":"☝️","+1":"👍","thumbsup":"👍","-1":"👎","thumbsdown":"👎","fist_raised":"✊","fist":"✊","fist_oncoming":"👊","facepunch":"👊","punch":"👊","fist_left":"🤛","fist_right":"🤜","clap":"👏","raised_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":"👄","baby":"👶","child":"🧒","boy":"👦","girl":"👧","adult":"🧑","blond_haired_person":"👱","man":"👨","bearded_person":"🧔","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":"👷♀️","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":"🤰","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":"🧟♀️","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":"🐴","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":"🦜","frog":"🐸","crocodile":"🐊","turtle":"🐢","lizard":"🦎","snake":"🐍","dragon_face":"🐲","dragon":"🐉","sauropod":"🦕","t_rex":"🦖","whale":"🐳","whale2":"🐋","dolphin":"🐬","flipper":"🐬","seal":"🦭","fish":"🐟","tropical_fish":"🐠","blowfish":"🐡","shark":"🦈","octopus":"🐙","shell":"🐚","snail":"🐌","butterfly":"🦋","bug":"🐛","ant":"🐜","bee":"🐝","honeybee":"🐝","beetle":"🪲","lady_beetle":"🐞","cricket":"🦗","cockroach":"🪳","spider":"🕷️","spider_web":"🕸️","scorpion":"🦂","mosquito":"🦟","fly":"🪰","worm":"🪱","microbe":"🦠","bouquet":"💐","cherry_blossom":"🌸","white_flower":"💮","rosette":"🏵️","rose":"🌹","wilted_flower":"🥀","hibiscus":"🌺","sunflower":"🌻","blossom":"🌼","tulip":"🌷","seedling":"🌱","potted_plant":"🪴","evergreen_tree":"🌲","deciduous_tree":"🌳","palm_tree":"🌴","cactus":"🌵","ear_of_rice":"🌾","herb":"🌿","shamrock":"☘️","four_leaf_clover":"🍀","maple_leaf":"🍁","fallen_leaf":"🍂","leaves":"🍃","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":"🧅","mushroom":"🍄","peanuts":"🥜","chestnut":"🌰","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":"🥃","cup_with_straw":"🥤","bubble_tea":"🧋","beverage_box":"🧃","mate":"🧉","ice_cube":"🧊","chopsticks":"🥢","plate_with_cutlery":"🍽️","fork_and_knife":"🍴","spoon":"🥄","hocho":"🔪","knife":"🔪","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":"🎠","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":"⛽","rotating_light":"🚨","traffic_light":"🚥","vertical_traffic_light":"🚦","stop_sign":"🛑","construction":"🚧","anchor":"⚓","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":"🪁","8ball":"🎱","crystal_ball":"🔮","magic_wand":"🪄","nazar_amulet":"🧿","video_game":"🎮","joystick":"🕹️","slot_machine":"🎰","game_die":"🎲","jigsaw":"🧩","teddy_bear":"🧸","pinata":"🪅","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":"👚","purse":"👛","handbag":"👜","pouch":"👝","shopping":"🛍️","school_satchel":"🎒","thong_sandal":"🩴","mans_shoe":"👞","shoe":"👞","athletic_shoe":"👟","hiking_boot":"🥾","flat_shoe":"🥿","high_heel":"👠","sandal":"👡","ballet_shoes":"🩰","boot":"👢","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":"🪘","iphone":"📱","calling":"📲","phone":"☎️","telephone":"☎️","telephone_receiver":"📞","pager":"📟","fax":"📠","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":"💹","email":"✉️","envelope":"✉️","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":"⚔️","gun":"🔫","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":"🩹","stethoscope":"🩺","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":"🧼","toothbrush":"🪥","sponge":"🧽","fire_extinguisher":"🧯","shopping_cart":"🛒","smoking":"🚬","coffin":"⚰️","headstone":"🪦","funeral_urn":"⚱️","moyai":"🗿","placard":"🪧","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":"🔯","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":"📶","vibration_mode":"📳","mobile_phone_off":"📴","female_sign":"♀️","male_sign":"♂️","transgender_symbol":"⚧️","heavy_multiplication_x":"✖️","heavy_plus_sign":"➕","heavy_minus_sign":"➖","heavy_division_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":"🏴"}')},,,,,,,,,function(e,t,a){"use strict";var s=a(1),n=a(0);t.a={togglePushSubscription:function(){n.a.commit("pushNotificationState","loading"),navigator.serviceWorker.ready.then(e=>e.pushManager.getSubscription().then(t=>t?(s.a.emit("push:unregister"),t.unsubscribe().then(e=>{n.a.commit("pushNotificationState",e?"supported":"unsupported")})):e.pushManager.subscribe({applicationServerKey:n.a.state.serverConfiguration.applicationServerKey,userVisibleOnly:!0}).then(e=>{s.a.emit("push:register",e.toJSON()),n.a.commit("pushNotificationState","subscribed"),n.a.commit("refreshDesktopNotificationState")}))).catch(e=>{n.a.commit("pushNotificationState","unsupported"),n.a.commit("refreshDesktopNotificationState"),console.error(e)})}},s.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(t=>{if(n.a.commit("hasServiceWorker"),t.pushManager)return t.pushManager.getSubscription().then(t=>{t&&!1===e?t.unsubscribe().then(e=>{n.a.commit("pushNotificationState",e?"supported":"unsupported")}):n.a.commit("pushNotificationState",t?"subscribed":"supported")})}).catch(e=>{n.a.commit("pushNotificationState","unsupported"),console.error(e)}):n.a.commit("pushNotificationState","nohttps")}))},,,function(e){e.exports=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","😉":"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","🤗":"hugging face","🤭":"face with hand over mouth","🤫":"shushing face","🤔":"thinking face","🤐":"zipper-mouth face","🤨":"face with raised eyebrow","😐":"neutral face","😑":"expressionless face","😶":"face without mouth","😏":"smirking face","😒":"unamused face","🙄":"face with rolling eyes","😬":"grimacing face","🤥":"lying 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","😵":"dizzy face","🤯":"exploding head","🤠":"cowboy hat face","🥳":"partying face","🥸":"disguised face","😎":"smiling face with sunglasses","🤓":"nerd face","🧐":"face with monocle","😕":"confused face","😟":"worried face","🙁":"slightly frowning face","☹":"frowning face","😮":"face with open mouth","😯":"hushed face","😲":"astonished face","😳":"flushed face","🥺":"pleading face","😦":"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","😡":"pouting 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","💋":"kiss mark","💌":"love letter","💘":"heart with arrow","💝":"heart with ribbon","💖":"sparkling heart","💗":"growing heart","💓":"beating heart","💞":"revolving hearts","💕":"two hearts","💟":"heart decoration","❣":"heart exclamation","💔":"broken heart","❤":"red heart","🧡":"orange heart","💛":"yellow heart","💚":"green heart","💙":"blue heart","💜":"purple heart","🤎":"brown heart","🖤":"black heart","🤍":"white heart","💯":"hundred points","💢":"anger symbol","💥":"collision","💫":"dizzy","💦":"sweat droplets","💨":"dashing away","🕳":"hole","💣":"bomb","💬":"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","👌":"OK hand","🤌":"pinched fingers","🤏":"pinching hand","✌":"victory hand","🤞":"crossed fingers","🤟":"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","👍":"thumbs up","👎":"thumbs down","✊":"raised fist","👊":"oncoming fist","🤛":"left-facing fist","🤜":"right-facing fist","👏":"clapping hands","🙌":"raising 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","👶":"baby","🧒":"child","👦":"boy","👧":"girl","🧑":"person","👱":"person: blond hair","👨":"man","🧔":"man: 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","🤴":"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","🤱":"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","💆":"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","🐎":"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","🐸":"frog","🐊":"crocodile","🐢":"turtle","🦎":"lizard","🐍":"snake","🐲":"dragon face","🐉":"dragon","🦕":"sauropod","🦖":"T-Rex","🐳":"spouting whale","🐋":"whale","🐬":"dolphin","🦭":"seal","🐟":"fish","🐠":"tropical fish","🐡":"blowfish","🦈":"shark","🐙":"octopus","🐚":"spiral shell","🐌":"snail","🦋":"butterfly","🐛":"bug","🐜":"ant","🐝":"honeybee","🪲":"beetle","🐞":"lady beetle","🦗":"cricket","🪳":"cockroach","🕷":"spider","🕸":"spider web","🦂":"scorpion","🦟":"mosquito","🪰":"fly","🪱":"worm","🦠":"microbe","💐":"bouquet","🌸":"cherry blossom","💮":"white flower","🏵":"rosette","🌹":"rose","🥀":"wilted flower","🌺":"hibiscus","🌻":"sunflower","🌼":"blossom","🌷":"tulip","🌱":"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","🍇":"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","🍄":"mushroom","🥜":"peanuts","🌰":"chestnut","🍞":"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","🥤":"cup with straw","🧋":"bubble tea","🧃":"beverage box","🧉":"mate","🧊":"ice","🥢":"chopsticks","🍽":"fork and knife with plate","🍴":"fork and knife","🥄":"spoon","🔪":"kitchen knife","🏺":"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","🎡":"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","🚨":"police car light","🚥":"horizontal traffic light","🚦":"vertical traffic light","🛑":"stop sign","🚧":"construction","⚓":"anchor","⛵":"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","🎯":"direct hit","🪀":"yo-yo","🪁":"kite","🎱":"pool 8 ball","🔮":"crystal ball","🪄":"magic wand","🧿":"nazar amulet","🎮":"video game","🕹":"joystick","🎰":"slot machine","🎲":"game die","🧩":"puzzle piece","🧸":"teddy bear","🪅":"piñata","🪆":"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","👛":"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","👑":"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","📱":"mobile phone","📲":"mobile phone with arrow","☎":"telephone","📞":"telephone receiver","📟":"pager","📠":"fax machine","🔋":"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","🔫":"pistol","🪃":"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","🩺":"stethoscope","🚪":"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","🪥":"toothbrush","🧽":"sponge","🧯":"fire extinguisher","🛒":"shopping cart","🚬":"cigarette","⚰":"coffin","🪦":"headstone","⚱":"funeral urn","🗿":"moai","🪧":"placard","🏧":"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","♈":"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","📳":"vibration mode","📴":"mobile phone off","♀":"female sign","♂":"male sign","⚧":"transgender symbol","✖":"multiply","➕":"plus","➖":"minus","➗":"divide","♾":"infinity","‼":"double exclamation mark","⁉":"exclamation question mark","❓":"question mark","❔":"white question mark","❕":"white exclamation mark","❗":"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"}')},,,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";const s=a(113);s.prototype.normalize=function(e){e.schema||(e.schema="http:",e.url="http://"+e.url,e.noschema=!0),"//"===e.schema&&(e.schema="http:",e.url="http:"+e.url,e.noschema=!0),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)};const n=s().tlds(a(119)).tlds("onion",!0),i=["sftp","smb","file","irc","ircs","svn","git","steam","mumble","ts3server","svn+ssh","ssh"];for(const e of i)n.add(e+":","http:");function o(e){return{start:e.index,end:e.lastIndex,link:e.url}}e.exports={findLinks:function(e){const t=n.match(e);return t?t.map(o):[]},findLinksWithSchema:function(e){const t=n.match(e);return t?t.filter(e=>!e.noschema).map(o):[]}}},,,function(e,t,a){"use strict";const s=/\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;e.exports=e=>e.replace(s,"").trim()},function(e,t,a){e.exports=a(138)},function(e,t,a){},,,,,,,,,,,,,,,,,,,function(e,t){},,,,,,,,,,,,,,,function(e,t,a){"use strict";var s=a(25);a.n(s).a},function(e,t,a){"use strict";var s=a(26);a.n(s).a},,,,,,,,,,,,,function(e,t,a){"use strict";var s=a(27);a.n(s).a},function(e,t,a){"use strict";var s=a(28);a.n(s).a},function(e,t,a){"use strict";var s=a(29);a.n(s).a},function(e,t,a){"use strict";var s=a(30);a.n(s).a},function(e,t,a){var s={"./away.vue":157,"./back.vue":139,"./chghost.vue":145,"./ctcp.vue":144,"./ctcp_request.vue":143,"./error.vue":142,"./invite.vue":149,"./join.vue":148,"./kick.vue":140,"./mode.vue":155,"./mode_channel.vue":141,"./monospace_block.vue":154,"./nick.vue":152,"./part.vue":151,"./quit.vue":150,"./raw.vue":153,"./topic.vue":146,"./topic_set_by.vue":147,"./whois.vue":156};function n(e){var t=i(e);return a(t)}function i(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=125},,,,,,,,,function(e,t,a){var s={"./collapse.js":135,"./expand.js":136,"./index.js":34,"./join.js":137};function n(e){var t=i(e);return a(t)}function i(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=134},function(e,t,a){"use strict";a.r(t);var s=a(1),n=a(0);t.default={input:function(){const e=[];for(const t of n.a.state.activeChannel.channel.messages){let a=!1;for(const e of t.previews)e.shown&&(e.shown=!1,a=!0);a&&e.push(t.id)}return e.length>0&&s.a.emit("msg:preview:toggle",{target:n.a.state.activeChannel.channel.id,messageIds:e,shown:!1}),!0}}},function(e,t,a){"use strict";a.r(t);var s=a(1),n=a(0);t.default={input:function(){const e=[];for(const t of n.a.state.activeChannel.channel.messages){let a=!1;for(const e of t.previews)e.shown||(e.shown=!0,a=!0);a&&e.push(t.id)}return e.length>0&&s.a.emit("msg:preview:toggle",{target:n.a.state.activeChannel.channel.id,messageIds:e,shown:!0}),!0}}},function(e,t,a){"use strict";a.r(t);var s=a(1),n=a(0),i=a(6);t.default={input:function(e){if(e.length>0){let t=e[0];if(t.length>0){const a=n.a.state.activeChannel.network.serverOptions.CHANTYPES,o=e[0].split(",");if(a&&a.length>0)for(let e=0;e<o.length;e++)a.includes(o[e][0])||(o[e]=a[0]+o[e]);t=o.join(",");const r=n.a.getters.findChannelOnCurrentNetwork(t);if(!r)return s.a.emit("input",{text:"/join ".concat(t," ").concat(e.length>1?e[1]:""),target:n.a.state.activeChannel.channel.id}),!0;Object(i.c)(r)}}else if("channel"===n.a.state.activeChannel.channel.type)return s.a.emit("input",{target:n.a.state.activeChannel.channel.id,text:"/join ".concat(n.a.state.activeChannel.channel.name)}),!0}}},function(e,t,a){"use strict";a.r(t);a(73);var s=a(10),n=a(0),i=a(3),o=a(8),r=a.n(o),l=a(66),c=a.n(l),h=a(7),u=e=>("TEXTAREA"===e.target.tagName||"INPUT"===e.target.tagName)&&!!e.target.value,d=a(67),p=a.n(d),m=a(11),g=(e,t)=>{const a=new Set(JSON.parse(h.a.get("thelounge.networks.collapsed")));e.isCollapsed=t,t?a.add(e.uuid):a.delete(e.uuid),h.a.set("thelounge.networks.collapsed",JSON.stringify([...a]))},f=e=>e<1e3?e.toString():(e/1e3).toFixed(2).slice(0,-1)+"k",_=(e,t)=>!(!e.isCollapsed||t.highlight||"lobby"===t.type)&&(!n.a.state.activeChannel||t!==n.a.state.activeChannel.channel),v={name:"ChannelWrapper",props:{network:Object,channel:Object,active:Boolean,isFiltering:Boolean},computed:{activeChannel(){return this.$store.state.activeChannel},isChannelVisible(){return this.isFiltering||!_(this.network,this.channel)}},methods:{getAriaLabel(){const e=[];return this.channel.unread>0&&e.push("".concat(this.channel.unread," unread")),this.channel.highlight>0&&e.push("".concat(this.channel.highlight," mention")),e.length>0?"".concat(this.channel.name," (").concat(e.join(", "),")"):this.channel.name},click(){this.isFiltering||this.$root.switchToChannel(this.channel)},openContextMenu(e){i.a.emit("contextmenu:channel",{event:e,channel:this.channel,network:this.network})}}},b=a(2),w=Object(b.a)(v,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.isChannelVisible?a("div",{ref:"element",class:["channel-list-item",{active:e.active},{"parted-channel":"channel"===e.channel.type&&0===e.channel.state},{"has-draft":e.channel.pendingMessage},{"not-secure":"lobby"===e.channel.type&&e.network.status.connected&&!e.network.status.secure},{"not-connected":"lobby"===e.channel.type&&!e.network.status.connected}],style:e.channel.closed?{transition:"none",opacity:.4}:null,attrs:{"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,role:"tab"},on:{click:e.click,contextmenu:function(t){return t.preventDefault(),e.openContextMenu(t)}}},[e._t("default",null,{network:e.network,channel:e.channel,activeChannel:e.activeChannel})],2):e._e()}),[],!1,null,null,null).exports,k={name:"Channel",components:{ChannelWrapper:w},props:{network:Object,isJoinChannelShown:Boolean,active:Boolean,isFiltering:Boolean},computed:{channel(){return this.network.channels[0]},joinChannelLabel(){return this.isJoinChannelShown?"Cancel":"Join a channel…"},unreadCount(){return f(this.channel.unread)}},methods:{onCollapseClick(){g(this.network,!this.network.isCollapsed)},getExpandLabel:e=>e.isCollapsed?"Expand":"Collapse"}},y=Object(b.a)(k,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ChannelWrapper",e._b({attrs:{channel:e.channel}},"ChannelWrapper",e.$props,!1),[e.network.channels.length>1?a("button",{staticClass:"collapse-network",attrs:{"aria-controls":"network-"+e.network.uuid,"aria-label":e.getExpandLabel(e.network),"aria-expanded":!e.network.isCollapsed},on:{click:function(t){return t.stopPropagation(),e.onCollapseClick(t)}}},[a("span",{staticClass:"collapse-network-icon"})]):a("span",{staticClass:"collapse-network"}),a("div",{staticClass:"lobby-wrap"},[a("span",{staticClass:"name",attrs:{title:e.channel.name}},[e._v(e._s(e.channel.name))]),e.network.status.connected&&!e.network.status.secure?a("span",{staticClass:"not-secure-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Insecure connection"}},[a("span",{staticClass:"not-secure-icon"})]):e._e(),e.network.status.connected?e._e():a("span",{staticClass:"not-connected-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Disconnected"}},[a("span",{staticClass:"not-connected-icon"})]),e.channel.unread?a("span",{staticClass:"badge",class:{highlight:e.channel.highlight}},[e._v(e._s(e.unreadCount))]):e._e()]),a("span",{staticClass:"add-channel-tooltip tooltipped tooltipped-w tooltipped-no-touch",attrs:{"aria-label":e.joinChannelLabel}},[a("button",{class:["add-channel",{opened:e.isJoinChannelShown}],attrs:{"aria-controls":"join-channel-"+e.channel.id,"aria-label":e.joinChannelLabel},on:{click:function(t){return t.stopPropagation(),e.$emit("toggle-join-channel")}}})])])}),[],!1,null,null,null).exports,C={name:"Channel",components:{ChannelWrapper:w},props:{network:Object,channel:Object,active:Boolean,isFiltering:Boolean},computed:{unreadCount(){return f(this.channel.unread)}},methods:{close(){this.$root.closeChannel(this.channel)}}},x=Object(b.a)(C,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ChannelWrapper",e._b({ref:"wrapper"},"ChannelWrapper",e.$props,!1),[a("span",{staticClass:"name"},[e._v(e._s(e.channel.name))]),e.channel.unread?a("span",{staticClass:"badge",class:{highlight:e.channel.highlight}},[e._v(e._s(e.unreadCount))]):e._e(),"channel"===e.channel.type?[0===e.channel.state?a("span",{staticClass:"parted-channel-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Not currently joined"}},[a("span",{staticClass:"parted-channel-icon"})]):e._e(),a("span",{staticClass:"close-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Leave"}},[a("button",{staticClass:"close",attrs:{"aria-label":"Leave"},on:{click:function(t){return t.stopPropagation(),e.close(t)}}})])]:[a("span",{staticClass:"close-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Close"}},[a("button",{staticClass:"close",attrs:{"aria-label":"Close"},on:{click:function(t){return t.stopPropagation(),e.close(t)}}})])]],2)}),[],!1,null,null,null).exports,S=a(1),$={name:"JoinChannel",directives:{focus:{inserted(e){e.focus()}}},props:{network:Object,channel:Object},data:()=>({inputChannel:"",inputPassword:""}),methods:{onSubmit(){const e=this.$store.getters.findChannelOnCurrentNetwork(this.inputChannel);if(e)this.$root.switchToChannel(e);else{const e=this.network.serverOptions.CHANTYPES;let t=this.inputChannel;e&&e.length>0&&!e.includes(t[0])&&(t=e[0]+t),S.a.emit("input",{text:"/join ".concat(t," ").concat(this.inputPassword),target:this.channel.id})}this.inputChannel="",this.inputPassword="",this.$emit("toggle-join-channel")}}},j={name:"NetworkList",components:{JoinChannel:Object(b.a)($,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",{staticClass:"join-form",attrs:{id:"join-channel-"+e.channel.id,method:"post",action:"",autocomplete:"off"},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:(t.preventDefault(),e.$emit("toggle-join-channel"))},submit:function(t){return t.preventDefault(),e.onSubmit(t)}}},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.inputChannel,expression:"inputChannel"},{name:"focus",rawName:"v-focus"}],staticClass:"input",attrs:{type:"text",name:"channel",placeholder:"Channel",pattern:"[^\\s]+",maxlength:"200",title:"The channel name may not contain spaces",required:""},domProps:{value:e.inputChannel},on:{input:function(t){t.target.composing||(e.inputChannel=t.target.value)}}}),a("input",{directives:[{name:"model",rawName:"v-model",value:e.inputPassword,expression:"inputPassword"}],staticClass:"input",attrs:{type:"password",name:"key",placeholder:"Password (optional)",pattern:"[^\\s]+",maxlength:"200",title:"The channel password may not contain spaces",autocomplete:"new-password"},domProps:{value:e.inputPassword},on:{input:function(t){t.target.composing||(e.inputPassword=t.target.value)}}}),a("button",{staticClass:"btn btn-small",attrs:{type:"submit"}},[e._v("Join")])])}),[],!1,null,null,null).exports,NetworkLobby:y,Channel:x,Draggable:p.a},data:()=>({searchText:"",activeSearchItem:null}),computed:{items(){const e=[];for(const t of this.$store.state.networks)for(const a of t.channels)this.$store.state.activeChannel&&a===this.$store.state.activeChannel.channel||e.push({network:t,channel:a});return e},results(){return Object(m.filter)(this.searchText,this.items,{extract:e=>e.channel.name}).map(e=>e.original)}},watch:{searchText(){this.setActiveSearchItem()}},mounted(){r.a.bind("alt+shift+right",this.expandNetwork),r.a.bind("alt+shift+left",this.collapseNetwork),r.a.bind("alt+j",this.toggleSearch)},beforeDestroy(){r.a.unbind("alt+shift+right",this.expandNetwork),r.a.unbind("alt+shift+left",this.collapseNetwork),r.a.unbind("alt+j",this.toggleSearch)},methods:{expandNetwork(e){return!!u(e)||(this.$store.state.activeChannel&&g(this.$store.state.activeChannel.network,!1),!1)},collapseNetwork(e){return!!u(e)||(this.$store.state.activeChannel&&g(this.$store.state.activeChannel.network,!0),!1)},isCurrentlyInTouch:e=>"mouse"!==e.pointerType,onDragStart(e){e.target.classList.add("ui-sortable-active")},onDragEnd(e){e.target.classList.remove("ui-sortable-active")},onNetworkSort(e){e.moved&&S.a.emit("sort",{type:"networks",order:this.$store.state.networks.map(e=>e.uuid)})},onChannelSort(e){if(!e.moved)return;const t=this.$store.getters.findChannel(e.moved.element.id);t&&S.a.emit("sort",{type:"channels",target:t.network.uuid,order:t.network.channels.map(e=>e.id)})},toggleSearch(e){return!!u(e)||(this.$refs.searchInput===document.activeElement?(this.deactivateSearch(),!1):(this.activateSearch(),!1))},activateSearch(){this.$refs.searchInput!==document.activeElement&&(this.sidebarWasClosed=!this.$store.state.sidebarOpen,this.$store.commit("sidebarOpen",!0),this.$nextTick(()=>{this.$refs.searchInput.focus()}))},deactivateSearch(){this.activeSearchItem=null,this.searchText="",this.$refs.searchInput.blur(),this.sidebarWasClosed&&this.$store.commit("sidebarOpen",!1)},setSearchText(e){this.searchText=e.target.value},setActiveSearchItem(e){this.results.length&&(e||(e=this.results[0].channel),this.activeSearchItem=e)},selectResult(){this.searchText&&this.results.length&&(this.$root.switchToChannel(this.activeSearchItem),this.deactivateSearch(),this.scrollToActive())},navigateResults(e,t){if(e.stopImmediatePropagation(),e.preventDefault(),!this.searchText)return;const a=this.results.map(e=>e.channel);if(!a.length)return void(this.activeSearchItem=null);let s=a.indexOf(this.activeSearchItem);if(!this.activeSearchItem||-1===s)return this.activeSearchItem=t?a[0]:a[a.length-1],void this.scrollToActive();for(s+=t;s<0;)s+=a.length;for(;s>a.length-1;)s-=a.length;this.activeSearchItem=a[s],this.scrollToActive()},scrollToActive(){this.$nextTick(()=>{const e=this.$refs.networklist.querySelector(".channel-list-item.active");e&&e.scrollIntoView({block:"nearest",inline:"nearest"})})}}},P=(a(107),{name:"Sidebar",components:{NetworkList:Object(b.a)(j,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return 0===e.$store.state.networks.length?a("div",{staticClass:"empty"},[e._v("\n\tYou are not connected to any networks yet.\n")]):a("div",{ref:"networklist"},[a("div",{staticClass:"jump-to-input"},[a("input",{ref:"searchInput",staticClass:"search input mousetrap",attrs:{placeholder:"Jump to...",type:"search","aria-label":"Search among the channel list",tabindex:"-1"},domProps:{value:e.searchText},on:{input:e.setSearchText,keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:e.navigateResults(t,-1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:e.navigateResults(t,1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"page-up",void 0,t.key,void 0)?null:e.navigateResults(t,-10)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"page-down",void 0,t.key,void 0)?null:e.navigateResults(t,10)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectResult(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"escape",void 0,t.key,void 0)?null:e.deactivateSearch(t)}],focus:e.activateSearch}})]),e.searchText?a("div",{staticClass:"jump-to-results"},[e.results.length?a("div",e._l(e.results,(function(t){return a("div",{key:t.channel.id,on:{mouseenter:function(a){return e.setActiveSearchItem(t.channel)},click:function(t){return t.preventDefault(),e.selectResult(t)}}},["lobby"!==t.channel.type?a("Channel",{attrs:{channel:t.channel,network:t.network,active:t.channel===e.activeSearchItem,"is-filtering":!0}}):a("NetworkLobby",{attrs:{channel:t.channel,network:t.network,active:t.channel===e.activeSearchItem,"is-filtering":!0}})],1)})),0):a("div",{staticClass:"no-results"},[e._v("No results found.")])]):a("Draggable",{staticClass:"networks",attrs:{list:e.$store.state.networks,filter:e.isCurrentlyInTouch,"prevent-on-filter":!1,handle:".channel-list-item[data-type='lobby']",draggable:".network","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragged",group:"networks"},on:{change:e.onNetworkSort,start:e.onDragStart,end:e.onDragEnd}},e._l(e.$store.state.networks,(function(t){return a("div",{key:t.uuid,staticClass:"network",class:{collapsed:t.isCollapsed,"not-connected":!t.status.connected,"not-secure":!t.status.secure},attrs:{id:"network-"+t.uuid,role:"region"}},[a("NetworkLobby",{attrs:{network:t,"is-join-channel-shown":t.isJoinChannelShown,active:e.$store.state.activeChannel&&t.channels[0]===e.$store.state.activeChannel.channel},on:{"toggle-join-channel":function(e){t.isJoinChannelShown=!t.isJoinChannelShown}}}),t.isJoinChannelShown?a("JoinChannel",{attrs:{network:t,channel:t.channels[0]},on:{"toggle-join-channel":function(e){t.isJoinChannelShown=!t.isJoinChannelShown}}}):e._e(),a("Draggable",{staticClass:"channels",attrs:{draggable:".channel-list-item","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragged",group:t.uuid,filter:e.isCurrentlyInTouch,"prevent-on-filter":!1,list:t.channels},on:{change:e.onChannelSort,start:e.onDragStart,end:e.onDragEnd}},[e._l(t.channels,(function(s,n){return[n>0?a("Channel",{key:s.id,attrs:{channel:s,network:t,active:e.$store.state.activeChannel&&s===e.$store.state.activeChannel.channel}}):e._e()]}))],2)],1)})),0)],1)}),[],!1,null,null,null).exports},props:{overlay:HTMLElement},data:()=>({isDevelopment:!1}),mounted(){this.touchStartPos=null,this.touchCurPos=null,this.touchStartTime=0,this.menuWidth=0,this.menuIsMoving=!1,this.menuIsAbsolute=!1,this.onTouchStart=e=>{if(this.touchStartPos=this.touchCurPos=e.touches.item(0),1!==e.touches.length)return void this.onTouchEnd();const t=window.getComputedStyle(this.$refs.sidebar);this.menuWidth=parseFloat(t.width),this.menuIsAbsolute="absolute"===t.position,(!this.$store.state.sidebarOpen||this.touchStartPos.screenX>this.menuWidth)&&(this.touchStartTime=Date.now(),document.body.addEventListener("touchmove",this.onTouchMove,{passive:!0}),document.body.addEventListener("touchend",this.onTouchEnd,{passive:!0}))},this.onTouchMove=e=>{const t=this.touchCurPos=e.touches.item(0);let a=t.screenX-this.touchStartPos.screenX;const s=t.screenY-this.touchStartPos.screenY;if(!this.menuIsMoving){if(Math.abs(s/a)>=1)return void this.onTouchEnd();const e=window.devicePixelRatio||2;Math.abs(a)>e&&(this.$store.commit("sidebarDragging",!0),this.menuIsMoving=!0)}this.menuIsAbsolute&&(this.$store.state.sidebarOpen&&(a+=this.menuWidth),a>this.menuWidth?a=this.menuWidth:a<0&&(a=0),this.$refs.sidebar.style.transform="translate3d("+a+"px, 0, 0)",this.overlay.style.opacity=a/this.menuWidth)},this.onTouchEnd=()=>{const e=this.touchCurPos.screenX-this.touchStartPos.screenX,t=Math.abs(e);(t>this.menuWidth/2||Date.now()-this.touchStartTime<180&&t>50)&&this.toggle(e>0),document.body.removeEventListener("touchmove",this.onTouchMove),document.body.removeEventListener("touchend",this.onTouchEnd),this.$store.commit("sidebarDragging",!1),this.$refs.sidebar.style.transform=null,this.overlay.style.opacity=null,this.touchStartPos=null,this.touchCurPos=null,this.touchStartTime=0,this.menuIsMoving=!1},this.toggle=e=>{this.$store.commit("sidebarOpen",e)},document.body.addEventListener("touchstart",this.onTouchStart,{passive:!0})},methods:{isPublic:()=>document.body.classList.contains("public")}}),O=Object(b.a)(P,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("aside",{ref:"sidebar",attrs:{id:"sidebar"}},[a("div",{staticClass:"scrollable-area"},[a("div",{staticClass:"logo-container"},[a("img",{staticClass:"logo",attrs:{src:"img/logo-"+(e.isPublic()?"horizontal-":"")+"transparent-bg.svg",alt:"TripSit Web"}}),a("img",{staticClass:"logo-inverted",attrs:{src:"img/logo-"+(e.isPublic()?"horizontal-":"")+"transparent-bg-inverted.svg",alt:"TripSit Web"}}),e.isDevelopment?a("span",{style:{backgroundColor:"#ff9e18",color:"#000",padding:"2px",borderRadius:"4px",fontSize:"12px"},attrs:{title:"The Lounge has been built in development mode"}},[e._v("DEVELOPER")]):e._e()]),a("NetworkList")],1),a("footer",{attrs:{id:"footer"}},[a("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-touch",attrs:{"aria-label":"Settings"}},[a("router-link",{class:["icon","settings"],attrs:{to:"/settings",tag:"button","active-class":"active","aria-label":"Settings",role:"tab","aria-controls":"settings","aria-selected":"Settings"===e.$route.name}})],1),a("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-touch",attrs:{"aria-label":e.$store.state.serverConfiguration.isUpdateAvailable?"Help\n(update available)":"Help"}},[a("router-link",{class:["icon","help",{notified:e.$store.state.serverConfiguration.isUpdateAvailable}],attrs:{to:"/help",tag:"button","active-class":"active","aria-label":"Help",role:"tab","aria-controls":"help","aria-selected":"Help"===e.$route.name}})],1)])])}),[],!1,null,null,null).exports,E={name:"ImageViewer",data:()=>({link:null,previousImage:null,nextImage:null,channel:null,position:{x:0,y:0},transform:{x:0,y:0,scale:0}}),computed:{computeImageStyles(){const e=Math.floor(this.transform.x),t=Math.floor(this.transform.y);return{left:"".concat(this.position.x,"px"),top:"".concat(this.position.y,"px"),transform:"translate3d(".concat(e,"px, ").concat(t,"px, 0) scale3d(").concat(this.transform.scale,", ").concat(this.transform.scale,", 1)")}}},watch:{link(e,t){if(null===e)return i.a.off("escapekey",this.closeViewer),i.a.off("resize",this.correctPosition),r.a.unbind("left",this.previous),void r.a.unbind("right",this.next);this.setPrevNextImages(),t||(i.a.on("escapekey",this.closeViewer),i.a.on("resize",this.correctPosition),r.a.bind("left",this.previous),r.a.bind("right",this.next))}},methods:{closeViewer(){null!==this.link&&(this.channel=null,this.previousImage=null,this.nextImage=null,this.link=null)},setPrevNextImages(){if(!this.channel)return null;const e=this.channel.messages.map(e=>e.previews).flat().filter(e=>e.thumb),t=e.indexOf(this.link);this.previousImage=e[t-1]||null,this.nextImage=e[t+1]||null},previous(){this.previousImage&&(this.link=this.previousImage)},next(){this.nextImage&&(this.link=this.nextImage)},onImageLoad(){this.prepareImage()},prepareImage(){const e=this.$refs.viewer,t=this.$refs.image,a=e.offsetWidth,s=e.offsetHeight,n=Math.min(1,a/t.width,s/t.height);this.position.x=Math.floor(-t.naturalWidth/2),this.position.y=Math.floor(-t.naturalHeight/2),this.transform.scale=Math.max(n,.1),this.transform.x=a/2,this.transform.y=s/2},calculateZoomShift(e,t,a,s){const n=this.$refs.image.width,i=this.$refs.viewer.offsetWidth/2,o=this.$refs.viewer.offsetHeight/2;return{x:i-(i-(a-n*t/2))/t*e+n*e/2,y:o-(o-(s-n*t/2))/t*e+n*e/2}},correctPosition(){const e=this.$refs.image,t=e.width*this.transform.scale,a=e.height*this.transform.scale,s=this.$refs.viewer.offsetWidth,n=this.$refs.viewer.offsetHeight;t<s?this.transform.x=s/2:this.transform.x-t/2>0?this.transform.x=t/2:this.transform.x+t/2<s&&(this.transform.x=s-t/2),a<n?this.transform.y=n/2:this.transform.y-a/2>0?this.transform.y=a/2:this.transform.y+a/2<n&&(this.transform.y=n-a/2)},reduceTouches(e){let t=0,a=0,s=0;for(let n=0;n<e.length;n++){const i=e[n].clientX,o=e[n].clientY;t+=i,a+=o;for(let t=0;t<e.length;t++)if(n!==t){const a=e[t].clientX,n=e[t].clientY;s+=Math.sqrt((i-a)*(i-a)+(o-n)*(o-n))}}return 0===s&&(s=1),{x:t/e.length,y:a/e.length,scale:s/e.length}},onTouchStart(e){e.stopImmediatePropagation()},onImageTouchStart(e){const t=this.$refs.image;let a=this.reduceTouches(e.touches),s=e.touches,n=0;const i={x:a.x,y:a.y,scale:a.scale},o={x:this.transform.x,y:this.transform.y,scale:this.transform.scale},r=e=>{a=this.reduceTouches(e.touches),s.length!==e.touches.length&&(i.x=a.x,i.y=a.y,i.scale=a.scale,o.x=this.transform.x,o.y=this.transform.y,o.scale=this.transform.scale);const t=a.x-i.x,r=a.y-i.y,l=a.scale/i.scale;s=e.touches,n=0;const c=Math.min(3,Math.max(.1,o.scale*l)),h=this.calculateZoomShift(c,o.scale,o.x,o.y);this.transform.x=h.x+t,this.transform.y=h.y+r,this.transform.scale=c,this.correctPosition()},l=e=>{const a=e.changedTouches.length;s.length>a+n?n+=a:(this.correctPosition(),t.removeEventListener("touchmove",r,{passive:!0}),t.removeEventListener("touchend",l,{passive:!0}))};t.addEventListener("touchmove",r,{passive:!0}),t.addEventListener("touchend",l,{passive:!0})},onImageMouseDown(e){if(1!==e.which)return;e.stopPropagation(),e.preventDefault();const t=this.$refs.viewer,a=this.$refs.image,s=e.clientX,n=e.clientY,i=this.transform.x,o=this.transform.y,r=a.width*this.transform.scale,l=a.height*this.transform.scale,c=t.offsetWidth,h=t.offsetHeight,u=this.transform.x-r/2,d=this.transform.y-l/2;let p=0;const m=e=>{e.stopPropagation(),e.preventDefault();const t=e.clientX-s,a=e.clientY-n;p=Math.max(p,Math.abs(t),Math.abs(a)),(u<0||r+u>c)&&(this.transform.x=i+t),(d<0||l+d>h)&&(this.transform.y=o+a),this.correctPosition()},g=e=>{this.correctPosition(),p<2&&0===e.button&&this.closeViewer(),a.removeEventListener("mousemove",m),a.removeEventListener("mouseup",g)};a.addEventListener("mousemove",m),a.addEventListener("mouseup",g)},onMouseWheel(e){if(null!==this.link){if(e.preventDefault(),e.ctrlKey)this.transform.y+=e.deltaY;else{const t=e.deltaY>0?.1:-.1,a=Math.min(3,Math.max(.1,this.transform.scale+t)),s=this.calculateZoomShift(a,this.transform.scale,this.transform.x,this.transform.y);this.transform.scale=a,this.transform.x=s.x,this.transform.y=s.y}this.correctPosition()}},onClick(e){e.target!==this.$refs.image&&this.closeViewer()}}},M=Object(b.a)(E,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"viewer",class:{opened:null!==e.link},attrs:{id:"image-viewer"},on:{wheel:e.onMouseWheel,"&touchstart":function(t){return e.onTouchStart(t)},click:e.onClick}},[null!==e.link?[a("button",{staticClass:"close-btn",attrs:{"aria-label":"Close"}}),e.previousImage?a("button",{staticClass:"previous-image-btn",attrs:{"aria-label":"Previous image"},on:{click:function(t){return t.stopPropagation(),e.previous(t)}}}):e._e(),e.nextImage?a("button",{staticClass:"next-image-btn",attrs:{"aria-label":"Next image"},on:{click:function(t){return t.stopPropagation(),e.next(t)}}}):e._e(),a("a",{staticClass:"open-btn",attrs:{href:e.link.link,target:"_blank",rel:"noopener"}}),a("img",{ref:"image",style:e.computeImageStyles,attrs:{src:e.link.thumb,alt:""},on:{load:e.onImageLoad,mousedown:e.onImageMouseDown,"&touchstart":function(t){return e.onImageTouchStart(t)}}})]:e._e()],2)}),[],!1,null,null,null).exports;var T={name:"ContextMenu",props:{message:Object},data:()=>({isOpen:!1,previousActiveElement:null,items:[],activeItem:-1,style:{left:0,top:0}}),mounted(){i.a.on("escapekey",this.close),i.a.on("contextmenu:user",this.openUserContextMenu),i.a.on("contextmenu:channel",this.openChannelContextMenu)},destroyed(){i.a.off("escapekey",this.close),i.a.off("contextmenu:user",this.openUserContextMenu),i.a.off("contextmenu:channel",this.openChannelContextMenu),this.close()},methods:{openChannelContextMenu(e){const t=function(e,t,a){let s=[{label:t.name,type:"item",class:{lobby:"network",channel:"chan",query:"query",special:"chan"}[t.type],link:"/chan-".concat(t.id)},{type:"divider"}];return"lobby"===t.type&&(s=[...s,{label:"Edit this network…",type:"item",class:"edit",link:"/edit-network/".concat(a.uuid)},{label:"Join a channel…",type:"item",class:"join",action:()=>a.isJoinChannelShown=!0},{label:"List all channels",type:"item",class:"list",action:()=>S.a.emit("input",{target:t.id,text:"/list"})},{label:"List ignored users",type:"item",class:"list",action:()=>S.a.emit("input",{target:t.id,text:"/ignorelist"})},a.status.connected?{label:"Disconnect",type:"item",class:"disconnect",action:()=>S.a.emit("input",{target:t.id,text:"/disconnect"})}:{label:"Connect",type:"item",class:"connect",action:()=>S.a.emit("input",{target:t.id,text:"/connect"})}]),"channel"===t.type&&(s.push({label:"Edit topic",type:"item",class:"edit",action(){t.editTopic=!0,e.switchToChannel(t)}}),s.push({label:"List banned users",type:"item",class:"list",action(){S.a.emit("input",{target:t.id,text:"/banlist"})}})),"query"===t.type&&s.push({label:"User information",type:"item",class:"action-whois",action(){e.switchToChannel(t),S.a.emit("input",{target:t.id,text:"/whois "+t.name})}}),"channel"!==t.type&&"query"!==t.type||s.push({label:"Clear history",type:"item",class:"clear-history",action(){i.a.emit("confirm-dialog",{title:"Clear history",text:"Are you sure you want to clear history for ".concat(t.name,"? This cannot be undone."),button:"Clear history"},e=>{e&&S.a.emit("history:clear",{target:t.id})})}}),s.push({label:{lobby:"Remove",channel:"Leave",query:"Close",special:"Close"}[t.type],type:"item",class:"close",action(){e.closeChannel(t)}}),s}(this.$root,e.channel,e.network);this.open(e.event,t)},openUserContextMenu(e){const{network:t,channel:a}=this.$store.state.activeChannel,s=function(e,t,a,s){const n=(t.users.find(e=>e.nick===a.nick)||{}).modes||[],i=()=>{const a=e.$store.getters.findChannelOnCurrentNetwork(s.nick);a&&e.switchToChannel(a),S.a.emit("input",{target:t.id,text:"/whois "+s.nick})},o=[{label:s.nick,type:"item",class:"user",action:i},{type:"divider"},{label:"User information",type:"item",class:"action-whois",action:i},{label:"Direct messages",type:"item",class:"action-query",action(){const a=e.$store.getters.findChannelOnCurrentNetwork(s.nick);a&&e.switchToChannel(a),S.a.emit("input",{target:t.id,text:"/query "+s.nick})}}];return n.includes("@")&&(o.push({label:"Kick",type:"item",class:"action-kick",action(){S.a.emit("input",{target:t.id,text:"/kick "+s.nick})}}),s.modes.includes("@")?o.push({label:"Revoke operator (-o)",type:"item",class:"action-op",action(){S.a.emit("input",{target:t.id,text:"/deop "+s.nick})}}):o.push({label:"Give operator (+o)",type:"item",class:"action-op",action(){S.a.emit("input",{target:t.id,text:"/op "+s.nick})}}),s.modes.includes("+")?o.push({label:"Revoke voice (-v)",type:"item",class:"action-voice",action(){S.a.emit("input",{target:t.id,text:"/devoice "+s.nick})}}):o.push({label:"Give voice (+v)",type:"item",class:"action-voice",action(){S.a.emit("input",{target:t.id,text:"/voice "+s.nick})}})),o}(this.$root,a,t,a.users.find(t=>t.nick===e.user.nick)||{nick:e.user.nick,modes:[]});this.open(e.event,s)},open(e,t){e.preventDefault(),this.previousActiveElement=document.activeElement,this.items=t,this.activeItem=0,this.isOpen=!0,this.$nextTick(()=>{const t=this.positionContextMenu(e);this.style.left=t.left+"px",this.style.top=t.top+"px",this.$refs.contextMenu.focus()})},close(){this.isOpen&&(this.isOpen=!1,this.items=[],this.previousActiveElement&&(this.previousActiveElement.focus(),this.previousActiveElement=null))},hoverItem(e){this.activeItem=e},clickItem(e){this.close(),e.action?e.action():e.link&&this.$router.push(e.link)},clickActiveItem(){this.items[this.activeItem]&&this.clickItem(this.items[this.activeItem])},navigateMenu(e){let t=this.activeItem;t+=e;const a=this.items[t];a&&"divider"===a.type&&(t+=e),t<0&&(t+=this.items.length),t>this.items.length-1&&(t-=this.items.length),this.activeItem=t},containerClick(e){e.currentTarget===e.target&&this.close()},positionContextMenu(e){const t=e.target,a=this.$refs.contextMenu.offsetWidth,s=this.$refs.contextMenu.offsetHeight;if(t&&t.classList.contains("menu"))return{left:t.getBoundingClientRect().left-(a-t.offsetWidth),top:t.getBoundingClientRect().top+t.offsetHeight};const n={left:e.pageX,top:e.pageY};return window.innerWidth-n.left<a&&(n.left=window.innerWidth-a),window.innerHeight-n.top<s&&(n.top=window.innerHeight-s),n}}},A=Object(b.a)(T,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.isOpen?a("div",{attrs:{id:"context-menu-container"},on:{click:e.containerClick,contextmenu:function(t){return t.preventDefault(),e.containerClick(t)},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.navigateMenu(-1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.navigateMenu(1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"tab",9,t.key,"Tab")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.navigateMenu(1))},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:t.shiftKey?(t.preventDefault(),e.navigateMenu(-1)):null}]}},[a("ul",{ref:"contextMenu",style:e.style,attrs:{id:"context-menu",role:"menu",tabindex:"-1"},on:{mouseleave:function(t){e.activeItem=-1},keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.clickActiveItem(t))}}},[e._l(e.items,(function(t,s){return[a("li",{key:t.name,class:["context-menu-"+t.type,t.class?"context-menu-"+t.class:null,{active:s===e.activeItem}],attrs:{role:"menuitem"},on:{mouseenter:function(t){return e.hoverItem(s)},click:function(a){return e.clickItem(t)}}},[e._v("\n\t\t\t\t"+e._s(t.label)+"\n\t\t\t")])]}))],2)]):e._e()}),[],!1,null,null,null).exports,I={name:"ConfirmDialog",data:()=>({data:null,callback:null}),mounted(){i.a.on("escapekey",this.close),i.a.on("confirm-dialog",this.open)},destroyed(){i.a.off("escapekey",this.close),i.a.off("confirm-dialog",this.open)},methods:{open(e,t){this.data=e,this.callback=t},close(e){this.data=null,this.callback&&this.callback(!!e)}}},N=(a(108),Object(b.a)(I,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:{opened:null!==e.data},attrs:{id:"confirm-dialog-overlay"}},[null!==e.data?a("div",{attrs:{id:"confirm-dialog"}},[a("div",{staticClass:"confirm-text"},[a("div",{staticClass:"confirm-text-title"},[e._v(e._s(e.data.title))]),a("p",[e._v(e._s(e.data.text))])]),a("div",{staticClass:"confirm-buttons"},[a("button",{staticClass:"btn btn-cancel",on:{click:function(t){return e.close(!1)}}},[e._v("Cancel")]),a("button",{staticClass:"btn btn-danger",on:{click:function(t){return e.close(!0)}}},[e._v(e._s(e.data.button))])])]):e._e()])}),[],!1,null,null,null).exports),U=a(4),L=a(5),D=a(9),z=a(12),q=a.n(z),R=a(69),B=a.n(R);q.a.extend(B.a);var H={name:"Mentions",components:{Username:U.a,ParsedMessage:L.a},data:()=>({isOpen:!1,isLoading:!1}),computed:{resolvedMessages(){const e=this.$store.state.mentions.slice().reverse();for(const t of e)t.localetime=Object(D.a)(t.time),t.channel=this.$store.getters.findChannel(t.chanId);return e}},watch:{"$store.state.mentions"(){this.isLoading=!1}},mounted(){i.a.on("mentions:toggle",this.openPopup)},destroyed(){i.a.off("mentions:toggle",this.openPopup)},methods:{messageTime:e=>q()(e).fromNow(),hideMention(e){this.$store.state.mentions.splice(this.$store.state.mentions.findIndex(t=>t.msgId===e.msgId),1),S.a.emit("mentions:hide",e.msgId)},hideAllMentions(){this.$store.state.mentions=[],S.a.emit("mentions:hide_all")},containerClick(e){e.currentTarget===e.target&&(this.isOpen=!1)},openPopup(){this.isOpen=!this.isOpen,this.isOpen&&(this.isLoading=!0,S.a.emit("mentions:get"))}}},F=(a(121),Object(b.a)(H,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.isOpen?a("div",{attrs:{id:"mentions-popup-container"},on:{click:e.containerClick,contextmenu:e.containerClick}},[a("div",{staticClass:"mentions-popup"},[a("div",{staticClass:"mentions-popup-title"},[e._v("\n\t\t\tRecent mentions\n\t\t\t"),e.resolvedMessages.length?a("button",{staticClass:"btn hide-all-mentions",on:{click:function(t){return e.hideAllMentions()}}},[e._v("\n\t\t\t\tHide all\n\t\t\t")]):e._e()]),0===e.resolvedMessages.length?[e.isLoading?a("p",[e._v("Loading…")]):a("p",[e._v("You have no recent mentions.")])]:e._l(e.resolvedMessages,(function(t){return[a("div",{key:t.msgId,class:["msg",t.type]},[a("div",{staticClass:"mentions-info"},[a("div",[a("span",{staticClass:"from"},[a("Username",{attrs:{user:t.from}}),t.channel?[e._v("\n\t\t\t\t\t\t\t\tin "+e._s(t.channel.channel.name)+" on\n\t\t\t\t\t\t\t\t"+e._s(t.channel.network.name)+"\n\t\t\t\t\t\t\t")]:[e._v(" in unknown channel ")]],2),a("span",{staticClass:"time",attrs:{title:t.localetime}},[e._v("\n\t\t\t\t\t\t\t"+e._s(e.messageTime(t.time))+"\n\t\t\t\t\t\t")])]),a("div",[a("span",{staticClass:"close-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Close"}},[a("button",{staticClass:"msg-hide",attrs:{"aria-label":"Hide this mention"},on:{click:function(a){return e.hideMention(t)}}})])])]),a("div",{staticClass:"content",attrs:{dir:"auto"}},[a("ParsedMessage",{attrs:{network:null,message:t}})],1)])]}))],2)]):e._e()}),[],!1,null,null,null).exports);const V=a(14);var W={name:"App",components:{Sidebar:O,ImageViewer:M,ContextMenu:A,ConfirmDialog:N,Mentions:F},computed:{viewportClasses(){return{notified:this.$store.getters.highlightCount>0,"menu-open":this.$store.state.appLoaded&&this.$store.state.sidebarOpen,"menu-dragging":this.$store.state.sidebarDragging,"userlist-open":this.$store.state.userlistOpen}}},created(){this.prepareOpenStates()},mounted(){r.a.bind("esc",this.escapeKey),r.a.bind("alt+u",this.toggleUserList),r.a.bind("alt+s",this.toggleSidebar),this.debouncedResize=c()(()=>{i.a.emit("resize")},100),window.addEventListener("resize",this.debouncedResize,{passive:!0});const e=()=>{i.a.emit("daychange"),this.dayChangeTimeout=setTimeout(e,this.msUntilNextDay())};this.dayChangeTimeout=setTimeout(e,this.msUntilNextDay())},beforeDestroy(){r.a.unbind("esc",this.escapeKey),r.a.unbind("alt+u",this.toggleUserList),r.a.unbind("alt+s",this.toggleSidebar),window.removeEventListener("resize",this.debouncedResize),clearTimeout(this.dayChangeTimeout)},methods:{escapeKey(){i.a.emit("escapekey")},toggleSidebar(e){return!!u(e)||(this.$store.commit("toggleSidebar"),!1)},toggleUserList(e){return!!u(e)||(this.$store.commit("toggleUserlist"),!1)},msUntilNextDay(){const e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+1)-e},prepareOpenStates(){const e=window.innerWidth;let t=h.a.get("thelounge.state.userlist");e>V.mobileViewportPixels&&this.$store.commit("sidebarOpen","false"!==h.a.get("thelounge.state.sidebar")),e>=1024&&"true"!==t&&"false"!==t&&(t="true"),this.$store.commit("userlistOpen","true"===t)}}},J=Object(b.a)(W,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:e.viewportClasses,attrs:{id:"viewport",role:"tablist"}},[e.$store.state.appLoaded?a("Sidebar",{attrs:{overlay:e.$refs.overlay}}):e._e(),a("div",{ref:"overlay",attrs:{id:"sidebar-overlay"},on:{click:function(t){return e.$store.commit("sidebarOpen",!1)}}}),a("router-view",{ref:"window"}),a("Mentions"),a("ImageViewer",{ref:"imageViewer"}),a("ContextMenu",{ref:"contextMenu"}),a("ConfirmDialog",{ref:"confirmDialog"}),a("div",{attrs:{id:"upload-overlay"}})],1)}),[],!1,null,null,null).exports,K=a(6);function Y(e){const t=e.message||e;if(n.a.commit("isConnected",!1),!S.a.io.reconnection())return n.a.commit("currentUserVisibleError","Disconnected from the server (".concat(t,"), The Lounge does not reconnect in public mode.")),void G();var a,s;n.a.commit("currentUserVisibleError","Waiting to reconnect… (".concat(t,")")),G(),S.a.io.skipReconnect&&"io client disconnect"!==t&&(a=()=>S.a.connect(),s=2e3,window.requestIdleCallback?window.requestIdleCallback(a,{timeout:s}):a())}function G(){const e=document.getElementById("loading-page-message");e&&(e.textContent=n.a.state.currentUserVisibleError)}S.a.on("disconnect",Y),S.a.on("connect_error",Y),S.a.on("error",Y),S.a.on("reconnecting",(function(e){n.a.commit("currentUserVisibleError","Reconnecting… (attempt ".concat(e,")")),G()})),S.a.on("connecting",(function(){n.a.commit("currentUserVisibleError","Connecting…"),G()})),S.a.on("connect",(function(){S.a.sendBuffer=[],n.a.commit("currentUserVisibleError","Finalizing connection…"),G()}));var X=a(33);let Q=null;function Z(){window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),"SignIn"!==K.b.currentRoute.name&&Object(K.a)("SignIn")}function ee(e){S.a.disconnect(),n.a.commit("currentUserVisibleError",e),X.a.reload(!0)}function te(){const e=document.getElementById("loading-page-message");e&&(e.textContent=n.a.state.currentUserVisibleError)}S.a.on("auth:success",(function(){n.a.commit("currentUserVisibleError","Loading messages…"),te()})),S.a.on("auth:failed",(function(){if(h.a.remove("token"),n.a.state.appLoaded)return ee("Authentication failed, reloading…");Z()})),S.a.on("auth:start",(function(e){if(Q&&e!==Q)return ee("Server restarted, reloading…");Q=e;const t=h.a.get("user"),a=h.a.get("token"),s=t&&a;if(n.a.state.appLoaded&&!s)return ee("Authentication failed, reloading…");if(s){n.a.commit("currentUserVisibleError","Authorizing…"),te();let e=-1;for(const t of n.a.state.networks)for(const a of t.channels)if(a.messages.length>0){const t=a.messages[a.messages.length-1].id;e<t&&(e=t)}const s=n.a.state.activeChannel&&n.a.state.activeChannel.channel.id||null;S.a.emit("auth:perform",{user:t,token:a,lastMessage:e,openChannel:s,hasConfig:null!==n.a.state.serverConfiguration})}else Z()}));const ae=a(14);S.a.on("commands",(function(e){e&&(ae.commands=e)}));function se(e,t){for(let a=0;a<t.length;a++){const s=t[a],i=e.find(e=>e.id===s.id);if(i){for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&("users"!==e?"totalMessages"!==e?"messages"===e&&i.messages&&s.messages.length<100?i.messages=i.messages.concat(s.messages):i[e]=s[e]:i.moreHistoryAvailable=s.totalMessages>i.messages.length:"channel"===s.type&&(n.a.state.activeChannel&&n.a.state.activeChannel.channel===i?S.a.emit("names",{target:s.id}):i.usersOutdated=!0));t[a]=i}else n.a.getters.initChannel(s)}return t}S.a.on("init",(function(e){n.a.commit("networks",function(e){const t=new Set(JSON.parse(h.a.get("thelounge.networks.collapsed")));for(let a=0;a<e.length;a++){const s=e[a],i=n.a.getters.findNetwork(s.uuid);if(i){for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&("channels"===e?i.channels=se(i.channels,s.channels):i[e]=s[e]);e[a]=i}else s.isJoinChannelShown=!1,s.isCollapsed=t.has(s.uuid),s.channels.forEach(n.a.getters.initChannel)}return e}(e.networks)),n.a.commit("isConnected",!0),n.a.commit("currentUserVisibleError",null),e.token&&h.a.set("token",e.token),n.a.state.appLoaded||(n.a.commit("appLoaded"),S.a.emit("setting:get"),window.g_TheLoungeRemoveLoading&&window.g_TheLoungeRemoveLoading(),s.a.nextTick(()=>{if(!(function(){if(!("URLSearchParams"in window))return!1;const e=new URLSearchParams(document.location.search),t=()=>{const e=window.location.origin+window.location.pathname+window.location.hash;window.history.replaceState({},document.title,e)};if(e.has("uri")){const a=(e=>{const t={};try{const a=new URL(e);if("irc:"===a.protocol)a.protocol="http:",a.port||(a.port=6667),t.tls=!1;else{if("ircs:"!==a.protocol)return;a.protocol="https:",a.port||(a.port=6697),t.tls=!0}if(!a.hostname)return{};t.host=t.name=a.hostname,t.port=a.port;let s="";a.pathname.length>1&&(s=a.pathname.substr(1)),a.hash.length>1&&(s+=a.hash),t.join=s}catch(e){}return t})(e.get("uri"));return t(),K.b.push({name:"Connect",query:a}),!0}if(document.body.classList.contains("public")&&document.location.search){const a=Object.fromEntries(e.entries());return t(),K.b.push({name:"Connect",query:a}),!0}return!1}()||K.b.currentRoute.name&&"SignIn"!==K.b.currentRoute.name)){const t=n.a.getters.findChannel(e.active);t?Object(K.c)(t.channel):n.a.state.networks.length>0?Object(K.c)(n.a.state.networks[0].channels[0]):Object(K.a)("Connect")}}))})),S.a.on("join",(function(e){n.a.getters.initChannel(e.chan);const t=n.a.getters.findNetwork(e.network);t&&(t.channels.splice(e.index||-1,0,e.chan),("query"!==e.chan.type||e.shouldOpen)&&Object(K.c)(n.a.getters.findChannel(e.chan.id).channel))})),S.a.on("more",(function(e){const t=n.a.getters.findChannel(e.chan);t&&(t.channel.moreHistoryAvailable=e.totalMessages>t.channel.messages.length+e.messages.length,t.channel.messages.unshift(...e.messages),s.a.nextTick(()=>{t.channel.historyLoading=!1}))}));var ne=a(71),ie=a.n(ne);let oe;try{oe=new Audio,oe.src="audio/pop.wav"}catch(e){oe={play(){}}}S.a.on("msg",(function(e){const t=n.a.getters.findChannel(e.chan);if(!t)return;let a=t.channel,s=n.a.state.activeChannel&&n.a.state.activeChannel.channel===a;e.msg.showInActive&&(n.a.state.activeChannel&&n.a.state.activeChannel.network===t.network?(a=n.a.state.activeChannel.channel,s=!0,e.chan===a.id?delete e.msg.showInActive:e.chan=a.id):delete e.msg.showInActive),s||(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,t,a,s){if((s.highlight||n.a.state.settings.notifyAllMessages&&"message"===s.type)&&(!document.hasFocus()||!a||a.channel!==t)){if(n.a.state.settings.notification)try{oe.play()}catch(e){}if(n.a.state.settings.desktopNotifications&&"Notification"in window&&"granted"===Notification.permission){let a,i;"invite"===s.type?(a="New channel invite:",i=s.from.nick+" invited you to "+s.channel):(a=s.from.nick,"query"!==t.type&&(a+=" (".concat(t.name,")")),"message"===s.type&&(a+=" says:"),i=ie()(s.text));const o=Date.parse(s.time);try{if(n.a.state.hasServiceWorker)navigator.serviceWorker.ready.then(t=>{t.active.postMessage({type:"notification",chanId:e,timestamp:o,title:a,body:i})});else{new Notification(a,{tag:"chan-".concat(e),badge:"img/icon-alerted-black-transparent-bg-72x72px.png",icon:"img/icon-alerted-grey-bg-192x192px.png",body:i,timestamp:o}).addEventListener("click",(function(){this.close(),window.focus();const t=n.a.getters.findChannel(e);t&&Object(K.c)(t)}))}}catch(e){}}}}(e.chan,a,n.a.state.activeChannel,e.msg);let i=0;s?a.scrolledToBottom&&(i=1500):i=100,i>0&&a.messages.length>i&&(a.messages.splice(0,a.messages.length-i),a.moreHistoryAvailable=!0),"channel"===a.type&&function(e,t){if("message"===t.type||"action"===t.type){const a=e.users.find(e=>e.nick===t.from.nick);a&&(a.lastMessage=new Date(t.time).getTime()||Date.now())}else if("quit"===t.type||"part"===t.type){const a=e.users.findIndex(e=>e.nick===t.from.nick);a>-1&&e.users.splice(a,1)}else if("kick"===t.type){const a=e.users.findIndex(e=>e.nick===t.target.nick);a>-1&&e.users.splice(a,1)}}(a,e.msg)})),S.a.on("msg:preview",(function(e){const{channel:t}=n.a.getters.findChannel(e.chan),a=t.messages.find(t=>t.id===e.id);if(!a)return;const i=a.previews.findIndex(t=>t.link===e.preview.link);i>-1&&s.a.set(a.previews,i,e.preview)})),S.a.on("msg:special",(function(e){const t=n.a.getters.findChannel(e.chan);t.channel.data=e.data,Object(K.c)(t.channel)})),S.a.on("names",(function(e){const t=n.a.getters.findChannel(e.id);t&&(t.channel.users=e.users)})),S.a.on("network",(function(e){const t=e.networks[0];t.isJoinChannelShown=!1,t.isCollapsed=!1,t.channels.forEach(n.a.getters.initChannel),n.a.commit("networks",[...n.a.state.networks,t]),Object(K.c)(t.channels[t.channels.length-1])})),S.a.on("network:options",(function(e){const t=n.a.getters.findNetwork(e.network);t&&(t.serverOptions=e.serverOptions)})),S.a.on("network:status",(function(e){const t=n.a.getters.findNetwork(e.network);t&&(t.status.connected=e.connected,t.status.secure=e.secure,e.connected||t.channels.forEach(e=>{e.users=[],e.state=0}))})),S.a.on("channel:state",(function(e){const t=n.a.getters.findChannel(e.chan);t&&(t.channel.state=e.state)})),S.a.on("network:info",(function(e){const t=n.a.getters.findNetwork(e.uuid);if(t)for(const a in e)s.a.set(t,a,e[a])})),S.a.on("network:name",(function(e){const t=n.a.getters.findNetwork(e.uuid);t.name=t.channels[0].name=e.name})),S.a.on("nick",(function(e){const t=n.a.getters.findNetwork(e.network);t&&(t.nick=e.nick)})),S.a.on("open",(function(e){if(e<1)return;if(n.a.state.activeChannel&&n.a.state.activeChannel.channel.id===e)return;const t=n.a.getters.findChannel(e);t&&(t.channel.highlight=0,t.channel.unread=0,t.channel.messages.length>0&&(t.channel.firstUnread=t.channel.messages[t.channel.messages.length-1].id))})),S.a.on("part",(function(e){n.a.state.activeChannel&&n.a.state.activeChannel.channel.id===e.chan&&Object(K.c)(n.a.state.activeChannel.network.channels[0]);const t=n.a.getters.findChannel(e.chan);t&&t.network.channels.splice(t.network.channels.findIndex(t=>t.id===e.chan),1)})),S.a.on("quit",(function(e){const t=n.a.state.activeChannel&&n.a.state.activeChannel.network.uuid===e.network;n.a.commit("removeNetwork",e.network),t&&(n.a.state.networks.length>0?Object(K.c)(n.a.state.networks[0].channels[0]):Object(K.a)("Connect"))})),S.a.on("sync_sort",(function(e){const t=e.order;switch(e.type){case"networks":n.a.commit("sortNetworks",(e,a)=>t.indexOf(e.uuid)-t.indexOf(a.uuid));break;case"channels":{const a=n.a.getters.findNetwork(e.target);if(!a)return;a.channels.sort((e,a)=>t.indexOf(e.id)-t.indexOf(a.id));break}}})),S.a.on("topic",(function(e){const t=n.a.getters.findChannel(e.chan);t&&(t.channel.topic=e.topic)})),S.a.on("users",(function(e){if(n.a.state.activeChannel&&n.a.state.activeChannel.channel.id===e.chan)return S.a.emit("names",{target:e.chan});const t=n.a.getters.findChannel(e.chan);t&&(t.channel.usersOutdated=!0)}));var re=a(32);S.a.on("sign-out",(function(){re.a.signout()})),S.a.on("sessions:list",(function(e){e.sort((e,t)=>t.lastUse-e.lastUse),n.a.commit("sessions",e)}));var le=a(19);S.a.once("configuration",(function(e){n.a.commit("serverConfiguration",e),n.a.dispatch("settings/applyAll"),e.fileUpload&&le.a.initialize();const t=e.themes.find(e=>e.name===n.a.state.settings.theme);void 0===t?n.a.dispatch("settings/update",{name:"theme",value:e.defaultTheme,sync:!0}):t.themeColor&&(document.querySelector('meta[name="theme-color"]').content=t.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?"})})),S.a.on("changelog",(function(e){let t;if(n.a.commit("versionData",e),n.a.commit("versionDataExpired",!1),t=e.latest?"new-version":e.packages?"new-packages":e.current.changelog?"up-to-date":"error",n.a.commit("versionStatus",t),e.expiresAt){const t=e.expiresAt-Date.now();t>0?setTimeout(()=>n.a.commit("versionDataExpired",!0),t):n.a.commit("versionDataExpired",!0)}})),S.a.on("changelog:newversion",()=>{n.a.state.serverConfiguration.isUpdateAvailable=!0}),S.a.on("setting:new",(function(e){const t=e.name,a=e.value;n.a.dispatch("settings/update",{name:t,value:a,sync:!1})})),S.a.on("setting:all",(function(e){const t=Object.keys(e).length>0;if(n.a.commit("serverHasSettings",t),t)for(const t in e)n.a.dispatch("settings/update",{name:t,value:e[t],sync:!1});else n.a.dispatch("settings/syncAll")})),S.a.on("history:clear",(function(e){const{channel:t}=n.a.getters.findChannel(e.target);t.messages=[],t.unread=0,t.highlight=0,t.firstUnread=0,t.moreHistoryAvailable=!1})),S.a.on("mentions:list",(function(e){n.a.commit("mentions",e)}));a(44);function ce(e){Object(K.c)(e);const t=document.querySelector('#sidebar .channel-list-item[aria-controls="#chan-'.concat(e.id,'"]'));t&&t.scrollIntoView({block:"center",inline:"nearest"})}r.a.bind(["alt+up","alt+down"],(function(e,t){if(u(e))return!0;if(0===n.a.state.networks.length)return!1;const a="up"===t.split("+").pop()?-1:1,s=[];let i=-1;for(const e of n.a.state.networks)for(const t of e.channels)_(e,t)||(-1===i&&n.a.state.activeChannel&&n.a.state.activeChannel.channel===t&&(i=s.length),s.push(t));const o=s.length;return i=((i+a)%o+o)%o,ce(s[i]),!1})),r.a.bind(["alt+shift+up","alt+shift+down"],(function(e,t){if(u(e))return!0;const a=n.a.state.networks.length;if(0===a)return!1;const s="up"===t.split("+").pop()?-1:1;let i=0;return n.a.state.activeChannel&&(i=n.a.state.networks.findIndex(e=>e===n.a.state.activeChannel.network),-1===s&&"lobby"!==n.a.state.activeChannel.channel.type||(i=((i+s)%a+a)%a)),ce(n.a.state.networks[i].channels[0]),!1})),r.a.bind(["alt+a"],(function(e){if(u(e))return!0;let t;e:for(const e of n.a.state.networks)for(const a of e.channels){if(a.highlight){t=a;break e}a.unread&&!t&&(t=a)}return t&&ce(t),!1}));const he={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(e.altKey||he[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 t=e.target.tagName;if("INPUT"===t||"TEXTAREA"===t)return;const a=document.getElementById("input");a&&(a.focus(),13===e.which&&e.preventDefault())});const ue=a(14),de=document.getElementById("favicon"),pe=de.getAttribute("href"),me=de.dataset.other;new s.a({el:"#viewport",router:K.b,mounted(){S.a.open()},methods:{switchToChannel(e){Object(K.a)("RoutedChat",{id:e.id})},closeChannel(e){"lobby"!==e.type?(e.closed=!0,S.a.emit("input",{target:Number(e.id),text:"/close"})):i.a.emit("confirm-dialog",{title:"Remove network",text:"Are you sure you want to quit and remove ".concat(e.name,"? This cannot be undone."),button:"Remove network"},t=>{t&&(e.closed=!0,S.a.emit("input",{target:Number(e.id),text:"/quit"}))})}},render(e){return e(J,{ref:"app",props:this})},store:n.a}),n.a.watch(e=>e.sidebarOpen,e=>{window.innerWidth>ue.mobileViewportPixels&&(h.a.set("thelounge.state.sidebar",e),i.a.emit("resize"))}),n.a.watch(e=>e.userlistOpen,e=>{h.a.set("thelounge.state.userlist",e),i.a.emit("resize")}),n.a.watch((e,t)=>t.title,e=>{document.title=e}),n.a.watch((e,t)=>t.highlightCount,e=>{de.setAttribute("href",e>0?me:pe),navigator.setAppBadge&&(e>0?navigator.setAppBadge(e):navigator.clearAppBadge())}),s.a.config.errorHandler=function(e){n.a.commit("currentUserVisibleError","Vue error: ".concat(e.message)),console.error(e)}},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeBack",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[this.message.self?t("ParsedMessage",{attrs:{network:this.network,message:this.message}}):[t("Username",{attrs:{user:this.message.from}}),this._v("\n\t\tis back\n\t")]],2)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeKick",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v("\n\thas kicked\n\t"),a("Username",{attrs:{user:e.message.target}}),e.message.text?a("i",{staticClass:"part-reason"},[e._v(" ("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1):e._e()],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageChannelMode",props:{network:Object,message:Object}},n=a(2),i=Object(n.a)(s,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[this._v("\n\tChannel mode is "),t("b",[this._v(this._s(this.message.text))])])}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageTypeError",components:{ParsedMessage:a(5).a},props:{network:Object,message:Object},computed:{errorMessage(){switch(this.message.error){case"bad_channel_key":return"Cannot join ".concat(this.message.channel," - Bad channel key.");case"banned_from_channel":return"Cannot join ".concat(this.message.channel," - You have been banned from the channel.");case"cannot_send_to_channel":return"Cannot send to channel ".concat(this.message.channel);case"channel_is_full":return"Cannot join ".concat(this.message.channel," - Channel is full.");case"chanop_privs_needed":return"Cannot perform action: You're not a channel operator.";case"invite_only_channel":return"Cannot join ".concat(this.message.channel," - Channel is invite only.");case"no_such_nick":return"User ".concat(this.message.nick," 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 ".concat(this.message.channel," - You've already reached the maximum number of channels allowed.");case"unknown_command":return"Unknown command: ".concat(this.message.command);case"user_not_in_channel":return"User ".concat(this.message.nick," is not on the channel.");case"user_on_channel":return"User ".concat(this.message.nick," is already on the channel.");default:return this.message.reason?"".concat(this.message.reason," (").concat(this.message.error,")"):this.message.error}}}},n=a(2),i=Object(n.a)(s,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("ParsedMessage",{attrs:{network:this.network,message:this.message,text:this.errorMessage}})],1)}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeRequestCTCP",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v("\n\tsent a "),t("abbr",{attrs:{title:"Client-to-client protocol"}},[this._v("CTCP")]),this._v(" request:\n\t"),t("span",{staticClass:"ctcp-message"},[t("ParsedMessage",{attrs:{text:this.message.ctcpMessage}})],1)],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeCTCP",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v(" \n\t"),t("span",{staticClass:"ctcp-message"},[t("ParsedMessage",{attrs:{text:this.message.ctcpMessage}})],1)],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageTypeChangeHost",components:{Username:a(4).a},props:{network:Object,message:Object}},n=a(2),i=Object(n.a)(s,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v("\n\thas changed\n\t"),e.message.new_ident?a("span",[e._v("username to "),a("b",[e._v(e._s(e.message.new_ident))])]):e._e(),e.message.new_host?a("span",[e._v("hostname to "),a("i",{staticClass:"hostmask"},[e._v(e._s(e.message.new_host))])]):e._e()],1)}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeTopic",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[e.message.from&&e.message.from.nick?[a("Username",{attrs:{user:e.message.from}}),e._v(" has changed the topic to:\n\t")]:[e._v("The topic is: ")],e.message.text?a("span",{staticClass:"new-topic"},[a("ParsedMessage",{attrs:{network:e.network,message:e.message}})],1):e._e()],2)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s=a(9),n={name:"MessageTypeTopicSetBy",components:{Username:a(4).a},props:{network:Object,message:Object},computed:{messageTimeLocale(){return Object(s.a)(this.message.when)}}},i=a(2),o=Object(i.a)(n,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[this._v("\n\tTopic set by\n\t"),t("Username",{attrs:{user:this.message.from}}),this._v("\n\ton "+this._s(this.messageTimeLocale)+"\n")],1)}),[],!1,null,null,null);t.default=o.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageTypeJoin",components:{Username:a(4).a},props:{network:Object,message:Object}},n=a(2),i=Object(n.a)(s,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),t("i",{staticClass:"hostmask"},[this._v(" ("+this._s(this.message.hostmask)+")")]),this._v("\n\thas joined the channel\n")],1)}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeInvite",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v("\n\tinvited\n\t"),e.message.invitedYou?a("span",[e._v("you")]):a("Username",{attrs:{user:e.message.target}}),e._v("\n\tto "),a("ParsedMessage",{attrs:{network:e.network,text:e.message.channel}})],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeQuit",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),a("i",{staticClass:"hostmask"},[e._v(" ("+e._s(e.message.hostmask)+")")]),e._v(" has quit\n\t"),e.message.text?a("i",{staticClass:"quit-reason"},[e._v("("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1):e._e()],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypePart",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),a("i",{staticClass:"hostmask"},[e._v(" ("+e._s(e.message.hostmask)+")")]),e._v(" has left the channel\n\t"),e.message.text?a("i",{staticClass:"part-reason"},[e._v("("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1):e._e()],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageTypeNick",components:{Username:a(4).a},props:{network:Object,message:Object}},n=a(2),i=Object(n.a)(s,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v("\n\tis now known as\n\t"),t("Username",{attrs:{user:{nick:this.message.new_nick,mode:this.message.from.mode}}})],1)}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageTypeRaw",props:{network:Object,message:Object}},n=a(2),i=Object(n.a)(s,(function(){var e=this.$createElement;return(this._self._c||e)("span",{staticClass:"content"},[this._v(this._s(this.message.text))])}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s={name:"MessageTypeMonospaceBlock",components:{ParsedMessage:a(5).a},props:{network:Object,message:Object},computed:{cleanText(){let e=this.message.text.split("\n");return e.every(e=>""===e||"-"===e[0])&&(e=e.map(e=>e.substr(2))),e.map(e=>e.replace(/\s*$/,"")).join("\n").replace(/^[\r\n]+|[\r\n]+$/g,"")}}},n=a(2),i=Object(n.a)(s,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("span",{staticClass:"text"},[t("ParsedMessage",{attrs:{network:this.network,text:this.cleanText}})],1)])}),[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeMode",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v("\n\tsets mode\n\t"),t("ParsedMessage",{attrs:{message:this.message}})],1)}),[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var s=a(9),n=a(5),i=a(4),o={name:"MessageTypeWhois",components:{ParsedMessage:n.a,Username:i.a},props:{network:Object,message:Object},methods:{localetime:e=>Object(s.a)(e)}},r=a(2),l=Object(r.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("p",[a("Username",{attrs:{user:{nick:e.message.whois.nick}}}),e.message.whois.whowas?a("span",[e._v(" is offline, last information:")]):e._e()],1),a("dl",{staticClass:"whois"},[e.message.whois.account?[a("dt",[e._v("Logged in as:")]),a("dd",[e._v(e._s(e.message.whois.account))])]:e._e(),a("dt",[e._v("Host mask:")]),a("dd",{staticClass:"hostmask"},[e._v(e._s(e.message.whois.ident)+"@"+e._s(e.message.whois.hostname))]),e.message.whois.actual_hostname?[a("dt",[e._v("Actual host:")]),a("dd",{staticClass:"hostmask"},[a("a",{attrs:{href:"https://ipinfo.io/"+e.message.whois.actual_ip,target:"_blank",rel:"noopener"}},[e._v(e._s(e.message.whois.actual_ip))]),e.message.whois.actual_hostname!=e.message.whois.actual_ip?a("i",[e._v("\n\t\t\t\t\t("+e._s(e.message.whois.actual_hostname)+")")]):e._e()])]:e._e(),e.message.whois.real_name?[a("dt",[e._v("Real name:")]),a("dd",[a("ParsedMessage",{attrs:{network:e.network,text:e.message.whois.real_name}})],1)]:e._e(),e.message.whois.registered_nick?[a("dt",[e._v("Registered nick:")]),a("dd",[e._v(e._s(e.message.whois.registered_nick))])]:e._e(),e.message.whois.channels?[a("dt",[e._v("Channels:")]),a("dd",[a("ParsedMessage",{attrs:{network:e.network,text:e.message.whois.channels}})],1)]:e._e(),e.message.whois.modes?[a("dt",[e._v("Modes:")]),a("dd",[e._v(e._s(e.message.whois.modes))])]:e._e(),e.message.whois.special?[e._l(e.message.whois.special,(function(t){return[a("dt",{key:t},[e._v("Special:")]),a("dd",{key:t},[e._v(e._s(t))])]}))]:e._e(),e.message.whois.operator?[a("dt",[e._v("Operator:")]),a("dd",[e._v(e._s(e.message.whois.operator))])]:e._e(),e.message.whois.helpop?[a("dt",[e._v("Available for help:")]),a("dd",[e._v("Yes")])]:e._e(),e.message.whois.bot?[a("dt",[e._v("Is a bot:")]),a("dd",[e._v("Yes")])]:e._e(),e.message.whois.away?[a("dt",[e._v("Away:")]),a("dd",[a("ParsedMessage",{attrs:{network:e.network,text:e.message.whois.away}})],1)]:e._e(),e.message.whois.secure?[a("dt",[e._v("Secure connection:")]),a("dd",[e._v("Yes")])]:e._e(),e.message.whois.certfp?[a("dt",[e._v("Certificate:")]),a("dd",[e._v(e._s(e.message.whois.certfp))])]:e._e(),e.message.whois.server?[a("dt",[e._v("Connected to:")]),a("dd",[e._v("\n\t\t\t\t"+e._s(e.message.whois.server)+" "),a("i",[e._v("("+e._s(e.message.whois.server_info)+")")])])]:e._e(),e.message.whois.logonTime?[a("dt",[e._v("Connected at:")]),a("dd",[e._v(e._s(e.localetime(e.message.whois.logonTime)))])]:e._e(),e.message.whois.idle?[a("dt",[e._v("Idle since:")]),a("dd",[e._v(e._s(e.localetime(e.message.whois.idleTime)))])]:e._e()],2)])}),[],!1,null,null,null);t.default=l.exports},function(e,t,a){"use strict";a.r(t);var s=a(5),n=a(4),i={name:"MessageTypeAway",components:{ParsedMessage:s.a,Username:n.a},props:{network:Object,message:Object}},o=a(2),r=Object(o.a)(i,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[e.message.self?a("ParsedMessage",{attrs:{network:e.network,message:e.message}}):[a("Username",{attrs:{user:e.message.from}}),e._v("\n\t\tis away\n\t\t"),a("i",{staticClass:"away-message"},[e._v("("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1)]],2)}),[],!1,null,null,null);t.default=r.exports}]);
|
||
//# sourceMappingURL=bundle.js.map
|