(()=>{var _=Object.defineProperty;var b=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var f=(t,e,i)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,h=(t,e)=>{for(var i in e||(e={}))g.call(e,i)&&f(t,i,e[i]);if(b)for(var i of b(e))y.call(e,i)&&f(t,i,e[i]);return t};function w(t){return typeof t=="number"?t===0?0:`${t}px`:t}function u(t,e,i){i=i||document;let s=e.querySelector("style");s||(s=i.createElement("style"),e.appendChild(s)),s.innerHTML="",s.appendChild(i.createTextNode(t))}function L(){let t=document.getElementById("xx-embed-container");return t||(t=document.createElement("div"),t.id="xx-embed-container",u(["#xx-embed-container {position:fixed;z-index:1200;top:0;bottom:0;right:0;left:0;justify-content:center;align-items:center;pointer-events:none}","#xx-embed-container .xx-embed {position:absolute;pointer-events:auto;background-color:#fff;border:1px solid #ddd;box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);display:flex;flex-direction:column;}","#xx-embed-container .xx-embed-has-animation {transition:.2s;transition-property:width,height,left,top,bottom,right;}","#xx-embed-container .xx-embed-header {flex:none;display:flex;flex-direction:row;align-items:center;justify-content:space-between;background-color:#f1f1f1;user-select:none;border-bottom: 1px solid #ddd;}","#xx-embed-container .xx-embed-hide-header .xx-embed-header {display: none!important}","#xx-embed-container .xx-embed-title {padding:0 5px;font-size:13px;opacity:.7;font-weight:bold; display: flex; align-items:center;}","#xx-embed-container .xx-embed-notice-badge {line-height: 14px; min-width: 14px; padding: 0 4px; border-radius: 7px; background-color: #ff0040; color: #fff; font-size:12px;box-sizing: border-box;text-align:center;margin-right:4px}","#xx-embed-container .xx-embed-nav {display:flex;flex-direction:row;align-items:center;}","#xx-embed-container .xx-embed-btn {display:flex;width:24px;height:24px;align-items:center;justify-content:center;opacity:.5;cursor:pointer}","#xx-embed-container .xx-embed-btn:hover {opacity:1;background-color:rgba(0,0,0,.1)}","#xx-embed-container .xx-embed-btn-expand {display:none}","#xx-embed-container .xx-embed-collapsed .xx-embed-btn-expand {display:block}","#xx-embed-container .xx-embed-collapsed .xx-embed-btn-collapse {display:none}","#xx-embed-container .xx-embed-collapsed {height:24px!important;width:200px!important}","#xx-embed-container .xx-embed-collapsed .xx-embed-body {display:none!important}","#xx-embed-container .xx-embed-hidden {display:none!important}","#xx-embed-container .xx-embed-body {flex:auto;position:relative}","#xx-embed-container .xx-embed-iframe {width:100%;height:100%;position:absolute}","#xx-embed-container .xx-embed-close-confirm {display:none;position:absolute;left:0;top:0;right:0;bottom:0;z-index:10;background-color:rgba(0,0,0,0.5);}","#xx-embed-container .xx-embed-close-confirm-shown .xx-embed-close-confirm {display:flex;justify-content:center;align-items:center;}","#xx-embed-container .xx-embed-close-confirm-dialog {background-color:#fff;padding:20px 20px;box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);border-radius:4px}","#xx-embed-container .xx-embed-close-confirm-text {margin-bottom: 15px}","#xx-embed-container .xx-embed-close-confirm-btn {display: inline-block; padding: 5px 10px; margin-right: 10px; background-color: #f1f1f1; color: #A3A2BC; border: 1px solid #A3A2BC; min-width: 80px; text-align: center;border-radius:4px; cursor:pointer}","#xx-embed-container .xx-embed-close-confirm-btn-confirm {background-color: #6129c4; color: #fff; border-color: #6129c4;}"].join(` `),t),document.body.appendChild(t)),t}function C(t,e,i){let s={width:e,height:i};t==="bottom-right"?Object.assign(s,{bottom:0,right:0}):t==="bottom-left"?Object.assign(s,{bottom:0,left:0}):t==="bottom-center"?Object.assign(s,{bottom:0,left:Math.floor((window.innerWidth-e)/2)}):t==="bottom"?Object.assign(s,{bottom:0,left:0,width:"100%"}):t==="left"?Object.assign(s,{bottom:0,left:0,height:"100%"}):t==="right"?Object.assign(s,{bottom:0,right:0,height:"100%"}):t==="top"?Object.assign(s,{top:0,left:0,width:"100%"}):t==="top-center"?Object.assign(s,{top:0,left:Math.floor((window.innerWidth-e)/2)}):t==="center"?Object.assign(s,{left:Math.floor((window.innerWidth-e)/2),top:Math.floor((window.innerHeight-i)/2)}):t&&typeof t=="object"&&Object.assign(s,t);let n=[];for(let o in s)n.push(`${o}:${w(s[o])}`);return n.join(";")}var d=0;function v(){if(document.body.clientWidth>=window.innerWidth)return 0;if(!d){let t=document.createElement("div");t.className="scrollbar-measure",t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),d=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return d}function S(){if(v()){let t=parseInt(getComputedStyle(document.body)["padding-right"]||0,10);return d&&(document.body.style.paddingRight=`${t+d}px`,document.body.style.overflowY="hidden"),d}return 0}function T(){document.body.style.paddingRight="",document.body.style.overflowY=""}var j=Date.now(),r={clientUrl:"./client/",showHeader:!0,width:800,height:480,position:"bottom-right",debug:!1,lang:"zh-cn",animation:!0,autoUpdateTitle:!1,showNoticeBadge:!0,hideOnCollapse:!1,closeAsCollapse:!1,showCollapseButtons:!0,closeBtnHtml:'',expandBtnHtml:'',collapseBtnHtml:''},k=100,x=new Map,p={"zh-cn":{title:"\u55A7\u55A7",closeConfirm:"\u8981\u9000\u51FA\u804A\u5929\u5417\uFF1F",confirm:"\u786E\u5B9A",cancel:"\u53D6\u6D88",collapse:"\u6536\u8D77",expand:"\u5C55\u5F00",close:"\u5173\u95ED"},"zh-tw":{title:"\u55A7\u55A7",closeConfirm:"\u8981\u9000\u51FA\u804A\u5929\u55CE\uFF1F",confirm:"\u78BA\u5B9A",cancel:"\u53D6\u6D88",collapse:"\u6536\u8D77",expand:"\u5C55\u958B",close:"\u95DC\u9589"},en:{title:"Xuanxuan",closeConfirm:"Are you sure to quit chat?",confirm:"Confirm",cancel:"Cancel",collapse:"Collapse",expand:"Expand",close:"Quit"}},m=class{constructor(e){this._options=h(h({},r),e),this._id=`xx-${(j++).toString(36)}`,this._zIndex=k++,this._element=null,this._showed=!1,this._collapsed=!1,this._iframeWindow=null,this._noticeCount=0,this._noticeInfo={},this.disableScrollbar=this.disableScrollbar.bind(this),this.enableScrollbar=this.enableScrollbar.bind(this),this._lang=this._options.lang&&typeof this._options.lang=="object"?Object.assign({},p[r.lang],this._options.lang):(typeof this._options.lang=="string"?p[this._options.lang]:null)||p[r.lang],(this._options.show||this._options.preload)&&this.show(),x.set(this._id,this),this._createTime=Date.now(),this._options.onCreated&&this._options.onCreated.call(this,this)}get id(){return this._id}get shown(){return this._showed}get collapsed(){return!this._collapsed}get url(){let e=[this._options.clientUrl,this._options.clientUrl.indexOf("?")<0?"?":"&","&origin=",encodeURIComponent(window.location.origin),"&embedId=",encodeURIComponent(this._id)];return this._options.account&&e.push("&account=",encodeURIComponent(this._options.account)),this._options.server&&e.push("&server=",encodeURIComponent(this._options.server)),this._options.authKey&&e.push("&authKey=",encodeURIComponent(this._options.authKey)),this._options.injectCss&&e.push("&embedCss=",encodeURIComponent(this._options.injectCss)),this._options.injectStyle&&e.push("&embedStyle=",encodeURIComponent(this._options.injectStyle)),this._options.injectScript&&e.push("&embedScript=",encodeURIComponent(this._options.injectScript)),this._options.lang&&e.push("&lang=",encodeURIComponent(this._options.lang)),this._options.chat?e.push("#/chats/recents/",this._options.chat):this._options.path&&e.push(this._options.path[0]==="#"?"":"#",this._options.path),e.join("")}get hasAccountInfo(){return this._options.server&&this._options.account&&this._options.authKey}get createTime(){return this._createTime}get loadedTime(){return this._loadedTime}get startTime(){return this._startTime}get firstLoginTime(){return this._firstLoginTime}get lastLoginTime(){return this._lastLoginTime}get noticeCount(){return this._noticeCount}get noticeInfo(){return this._noticeInfo}handleMessage(e,i){switch(e){case"titleUpdated":this._options.autoUpdateTitle&&i&&i[0]&&this._element&&(this._element.querySelector(".xx-embed-title-text").innerText=i[0]),this._options.onTitleUpdate&&this._options.onTitleUpdate.call(this,...i);break;case"login":this._lastLoginTime=Date.now(),this._firstLoginTime||(this._firstLoginTime=this._lastLoginTime),this._options.onLogin&&this._options.onLogin.call(this,...i);break;case"logout":this._options.onLogout&&this._options.onLogout.call(this,...i),this._options.closeOnLogout&&this.close(!0);break;case"loaded":this._loadedTime=Date.now(),this._options.onLoaded&&this._options.onLoaded.call(this,...i);break;case"start":this._startTime=Date.now(),this._options.onStart&&this._options.onStart.call(this,...i);break;case"sendMessage":this._options.onSendMessage&&this._options.onSendMessage.call(this,...i);break;case"receiveMessage":this._options.onReceiveMessage&&this._options.onReceiveMessage.call(this,...i);break;case"routeChange":this._options.onRouteChange&&this._options.onRouteChange.call(this,...i);break;case"invokeEmbedMethod":let s=i[0],n=i.slice(1),o=this[s];typeof o=="function"&&o.call(this,...n);break;case"notice":if(this._options.showNoticeBadge&&this._element){let l=i[0].total,c=this._element.querySelector(".xx-embed-notice-badge");c.style.display=l&&l>0?"inline-block":"none",c.innerText=l||"",this._noticeCount=l,this._noticeInfo=i[0]}this._options.onNotice&&this._options.onNotice.call(this,...i);break;default:this._options.onClientEvent&&this._options.onClientEvent.call(this,e,...i);break}}postMessage(e,...i){let n=document.getElementById(`xx-embed-iframe-${this._id}`).contentWindow,o=new URL(this._options.clientUrl);try{n.postMessage([this._id,e,i],o.origin)}catch(l){if(console.info(`Cannot send message to client for type "${e}"`,i),Array.isArray(i)){n.postMessage([this._id,e,JSON.parse(JSON.stringify(i))],o.origin);return}console.error(`Cannot send message to client for type "${e}"`,i)}}executeCommand(e,...i){this.postMessage("executeCommand",e,...i)}executeCommandLine(e){this.postMessage("executeCommandLine",e)}show(e){if(this._options.preload&&this._createTime&&e&&typeof e=="object"){let o=!1;if(e.server&&e.server!==this._options.server&&(this._options.server=e.server,o=!0),e.account&&e.account!==this._options.account&&(this._options.account=e.account,o=!0),e.authKey&&e.authKey!==this._options.authKey&&(this._options.authKey=e.authKey,o=!0),o){this.postMessage("requestLogin",{server:this._options.server,account:this._options.account,authKey:this._options.authKey}),setTimeout(()=>{this.show()},500);return}}let i=this._id;if(!this._element){let o=document.createElement("div");o.id=i,o.classList.add("xx-embed"),o.classList.add("xx-embed-hidden"),this._options.showHeader||o.classList.add("xx-embed-hide-header");let l=['
',`
${this._options.title||this._lang.title}
`,'","
",'
',``,"
",'
','
','
',this._lang.closeConfirm,"
",'","
","
"];o.innerHTML=l.join(` `),this._options.animation&&o.classList.add("xx-embed-has-animation"),L().appendChild(o),this._element=o,this._options.showCollapseButtons&&(o.querySelector(".xx-embed-btn-expand").addEventListener("click",a=>{this.expand(),a.stopPropagation()}),o.querySelector(".xx-embed-btn-collapse").addEventListener("click",a=>{this.collapse(),a.stopPropagation()})),o.querySelector(".xx-embed-btn-close").addEventListener("click",a=>{this._options.closeAsCollapse?this.collapse():this.close(),a.stopPropagation()}),o.querySelector(".xx-embed-header").addEventListener("dblclick",a=>{this.toggleCollapse()}),o.querySelector(".xx-embed-close-confirm-btn-confirm").addEventListener("click",()=>{this.close(!0)}),o.querySelector(".xx-embed-close-confirm-btn-cancel").addEventListener("click",()=>{this.cancelClose()}),o.addEventListener("mouseenter",this.disableScrollbar),o.addEventListener("mouseleave",this.enableScrollbar)}let s=C(this._options.position||"bottom-right",this._options.width,this._options.height),n=[`#${i} {${s}}`,`#${i} .xx-embed-body {min-width: ${this._options.width}px; min-height: ${this._options.height-24}px}`];typeof this._options.cssStyle=="string"&&n.push(this._options.cssStyle.replace(/#id/g,`#${this._id}`)),u(n.join(` `),this._element),(!this._options.preload||this._createTime)&&(this._element.classList.remove("xx-embed-hidden"),this._collapsed&&this.expand(),this._showed=!0,this._options.onShow&&this._options.onShow(this))}redirect(e){e.startsWith("#")||(e=`#${e}`),this.postMessage("setRoute",e)}hide(){!this._showed||!this._element||(this._element.classList.add("xx-embed-hidden"),this._showed=!1,this._options.onHide&&this._options.onHide(this))}toggle(){this._showed?this.hide():this.show()}collapse(){if(!(!this._showed||!this._element||this._collapsed)){if(this._options.hideOnCollapse){this.hide(),this._options.onCollapse&&this._options.onCollapse(this);return}this._element.classList.add("xx-embed-collapsed"),this._collapsed=!0,this._options.onCollapse&&this._options.onCollapse(this)}}expand(){!this._showed||!this._element||!this._collapsed||(this._element.classList.remove("xx-embed-collapsed"),this._collapsed=!1,this._options.onExpand&&this._options.onExpand(this))}toggleCollapse(){this._collapsed?this.expand():this.collapse()}reload(){!this._element||(document.getElementById(`xx-embed-iframe-${this._id}`).src=this.url,this._options.onLoad&&this._options.onLoad(this))}close(e){if(!!this._element&&!(this._options.onClose&&this._options.onClose(this)===!1)){if(!e){this._showed?this.expand():this.show(),this._element.classList.add("xx-embed-close-confirm-shown");return}this.postMessage("logout"),this._element.classList.add("xx-embed-hidden"),this._showed=!1,setTimeout(()=>{this._element.removeEventListener("mouseenter",this.disableScrollbar),this._element.removeEventListener("mouseleave",this.enableScrollbar),this._element.remove(),this._element=null},1e3),this._options.onClosed&&this._options.onClosed(this),x.delete(this._id)}}cancelClose(){!this._element||this._element.classList.remove("xx-embed-close-confirm-shown")}disableScrollbar(){let e=S();e&&(this._element.style.transform=`translateX(-${e}px)`)}enableScrollbar(){T(),this._element.style.transform=""}};m.setGlobalOptions=t=>{Object.assign(r,t)};window.addEventListener("message",t=>{if(!Array.isArray(t.data))return;let e=x.get(t.data[0]);!e||e.handleMessage(t.data[1],t.data[2])},!1);window.Xuanxuan=m;})();