@hieuzest/koishi-plugin-mahjongpub 0.3.12 → 0.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2,6 +2,6 @@ import{icons as Lt,send as R,receive as Ut}from"@koishijs/client";import{createE
2
2
  * @vue/shared v3.5.26
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
- **/const on=Object.prototype.hasOwnProperty,lt=(e,n)=>on.call(e,n),Ie=e=>typeof e=="function",ze=e=>typeof e=="string",ht=e=>e!==null&&typeof e=="object";var sn=typeof global=="object"&&global&&global.Object===Object&&global,rn=typeof self=="object"&&self&&self.Object===Object&&self,Fe=sn||rn||Function("return this")(),ve=Fe.Symbol,_t=Object.prototype,un=_t.hasOwnProperty,dn=_t.toString,he=ve?ve.toStringTag:void 0;function cn(e){var n=un.call(e,he),t=e[he];try{e[he]=void 0;var a=true}catch{}var l=dn.call(e);return a&&(n?e[he]=t:delete e[he]),l}var pn=Object.prototype,mn=pn.toString;function fn(e){return mn.call(e)}var vn="[object Null]",yn="[object Undefined]",at=ve?ve.toStringTag:void 0;function bt(e){return e==null?e===void 0?yn:vn:at&&at in Object(e)?cn(e):fn(e)}function gn(e){return e!=null&&typeof e=="object"}var hn="[object Symbol]";function Ke(e){return typeof e=="symbol"||gn(e)&&bt(e)==hn}function _n(e,n){for(var t=-1,a=e==null?0:e.length,l=Array(a);++t<a;)l[t]=n(e[t],t,e);return l}var He=Array.isArray,ot=ve?ve.prototype:void 0,st=ot?ot.toString:void 0;function wt(e){if(typeof e=="string")return e;if(He(e))return _n(e,wt)+"";if(Ke(e))return st?st.call(e):"";var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Ct(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var bn="[object AsyncFunction]",wn="[object Function]",Cn="[object GeneratorFunction]",xn="[object Proxy]";function $n(e){if(!Ct(e))return false;var n=bt(e);return n==wn||n==Cn||n==bn||n==xn}var Me=Fe["__core-js_shared__"],rt=function(){var e=/[^.]+$/.exec(Me&&Me.keys&&Me.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function kn(e){return!!rt&&rt in e}var Sn=Function.prototype,In=Sn.toString;function zn(e){if(e!=null){try{return In.call(e)}catch{}try{return e+""}catch{}}return""}var Vn=/[\\^$.*+?()[\]{}|]/g,Tn=/^\[object .+?Constructor\]$/,jn=Function.prototype,Nn=Object.prototype,Pn=jn.toString,On=Nn.hasOwnProperty,En=RegExp("^"+Pn.call(On).replace(Vn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Mn(e){if(!Ct(e)||kn(e))return false;var n=$n(e)?En:Tn;return n.test(zn(e))}function Dn(e,n){return e==null?void 0:e[n]}function xt(e,n){var t=Dn(e,n);return Mn(t)?t:void 0}function Rn(e,n){return e===n||e!==e&&n!==n}var An=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bn=/^\w*$/;function Ln(e,n){if(He(e))return false;var t=typeof e;return t=="number"||t=="symbol"||t=="boolean"||e==null||Ke(e)?true:Bn.test(e)||!An.test(e)||n!=null&&e in Object(n)}var be=xt(Object,"create");function Un(){this.__data__=be?be(null):{},this.size=0}function Fn(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}var Kn="__lodash_hash_undefined__",Hn=Object.prototype,Gn=Hn.hasOwnProperty;function Zn(e){var n=this.__data__;if(be){var t=n[e];return t===Kn?void 0:t}return Gn.call(n,e)?n[e]:void 0}var Jn=Object.prototype,Yn=Jn.hasOwnProperty;function qn(e){var n=this.__data__;return be?n[e]!==void 0:Yn.call(n,e)}var Wn="__lodash_hash_undefined__";function Xn(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=be&&n===void 0?Wn:n,this}function pe(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}pe.prototype.clear=Un;pe.prototype.delete=Fn;pe.prototype.get=Zn;pe.prototype.has=qn;pe.prototype.set=Xn;function Qn(){this.__data__=[],this.size=0}function Ne(e,n){for(var t=e.length;t--;)if(Rn(e[t][0],n))return t;return-1}var el=Array.prototype,tl=el.splice;function nl(e){var n=this.__data__,t=Ne(n,e);if(t<0)return false;var a=n.length-1;return t==a?n.pop():tl.call(n,t,1),--this.size,true}function ll(e){var n=this.__data__,t=Ne(n,e);return t<0?void 0:n[t][1]}function al(e){return Ne(this.__data__,e)>-1}function ol(e,n){var t=this.__data__,a=Ne(t,e);return a<0?(++this.size,t.push([e,n])):t[a][1]=n,this}function ge(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}ge.prototype.clear=Qn;ge.prototype.delete=nl;ge.prototype.get=ll;ge.prototype.has=al;ge.prototype.set=ol;var sl=xt(Fe,"Map");function rl(){this.size=0,this.__data__={hash:new pe,map:new(sl||ge),string:new pe}}function il(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function Pe(e,n){var t=e.__data__;return il(n)?t[typeof n=="string"?"string":"hash"]:t.map}function ul(e){var n=Pe(this,e).delete(e);return this.size-=n?1:0,n}function dl(e){return Pe(this,e).get(e)}function cl(e){return Pe(this,e).has(e)}function pl(e,n){var t=Pe(this,e),a=t.size;return t.set(e,n),this.size+=t.size==a?0:1,this}function me(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}me.prototype.clear=rl;me.prototype.delete=ul;me.prototype.get=dl;me.prototype.has=cl;me.prototype.set=pl;var ml="Expected a function";function Ge(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new TypeError(ml);var t=function(){var a=arguments,l=n?n.apply(this,a):a[0],u=t.cache;if(u.has(l))return u.get(l);var d=e.apply(this,a);return t.cache=u.set(l,d)||u,d};return t.cache=new(Ge.Cache||me),t}Ge.Cache=me;var fl=500;function vl(e){var n=Ge(e,function(a){return t.size===fl&&t.clear(),a}),t=n.cache;return n}var yl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gl=/\\(\\)?/g,hl=vl(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(yl,function(t,a,l,u){n.push(l?u.replace(gl,"$1"):a||t)}),n});function _l(e){return e==null?"":wt(e)}function bl(e,n){return He(e)?e:Ln(e,n)?[e]:hl(_l(e))}function wl(e){if(typeof e=="string"||Ke(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Cl(e,n){n=bl(n,e);for(var t=0,a=n.length;e!=null&&t<a;)e=e[wl(n[t++])];return t&&t==a?e:void 0}function xl(e,n,t){var a=e==null?void 0:Cl(e,n);return a===void 0?t:a}function $l(e){for(var n=-1,t=e==null?0:e.length,a={};++n<t;){var l=e[n];a[l[0]]=l[1]}return a}const kl=e=>e===void 0,we=e=>typeof e=="number",Sl=e=>typeof Element>"u"?false:e instanceof Element,Il=e=>ze(e)?!Number.isNaN(Number(e)):false,it=e=>Object.keys(e);function Re(e,n="px"){if(!e)return"";if(we(e)||Il(e))return`${e}${n}`;if(ze(e))return e}/*! Element Plus Icons Vue v2.3.2 */var zl=G({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),Vl=zl,Tl=G({name:"Close",__name:"close",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),jl=Tl,Nl=G({name:"InfoFilled",__name:"info-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Pl=Nl,Ol=G({name:"SuccessFilled",__name:"success-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),El=Ol,Ml=G({name:"WarningFilled",__name:"warning-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),Dl=Ml;const $t="__epPropKey",oe=e=>e,Rl=e=>ht(e)&&!!e[$t],kt=(e,n)=>{if(!ht(e)||Rl(e))return e;const{values:t,required:a,default:l,type:u,validator:d}=e,$={type:u,required:!!a,validator:t||d?I=>{let g=false,b=[];if(t&&(b=Array.from(t),lt(e,"default")&&b.push(l),g||(g=b.includes(I))),d&&(g||(g=d(I))),!g&&b.length>0){const h=[...new Set(b)].map(x=>JSON.stringify(x)).join(", ");Ft(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${h}], got value ${JSON.stringify(I)}.`)}return g}:void 0,[$t]:true};return lt(e,"default")&&($.default=l),$},Ce=e=>$l(Object.entries(e).map(([n,t])=>[n,kt(t,n)])),Al=oe([String,Object,Function]),Bl={Close:jl},ut={success:El,warning:Dl,error:Vl,info:Pl},St=(e,n)=>(e.install=t=>{for(const a of[e,...Object.values({})])t.component(a.name,a)},e),Ll=(e,n)=>(e.install=t=>{e._context=t._context,t.config.globalProperties[n]=e},e),Ul={esc:"Escape"},Fl=["","default","small","large"],Kl=e=>e,dt=({from:e,replacement:n,scope:t,version:a,ref:l,type:u="API"},d)=>{ce(()=>V(d),m=>{},{immediate:true})};var Hl={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Gl=e=>(n,t)=>Zl(n,t,V(e)),Zl=(e,n,t)=>xl(t,e,e).replace(/\{(\w+)\}/g,(a,l)=>{var u;return`${(u=n==null?void 0:n[l])!=null?u:`{${l}}`}`}),Jl=e=>{const n=P(()=>V(e).name),t=Kt(e)?e:S(e);return{lang:n,locale:t,t:Gl(e)}},It=Symbol("localeContextKey"),Yl=e=>{const n=e||fe(It,S());return Jl(P(()=>n.value||Hl))},ke="el",ql="is-",de=(e,n,t,a,l)=>{let u=`${e}-${n}`;return t&&(u+=`-${t}`),a&&(u+=`__${a}`),l&&(u+=`--${l}`),u},zt=Symbol("namespaceContextKey"),Wl=e=>{const n=e||(_e()?fe(zt,S(ke)):S(ke));return P(()=>V(n)||ke)},Ze=(e,n)=>{const t=Wl(n);return{namespace:t,b:(y="")=>de(t.value,e,y,"",""),e:y=>y?de(t.value,e,"",y,""):"",m:y=>y?de(t.value,e,"","",y):"",be:(y,w)=>y&&w?de(t.value,e,y,w,""):"",em:(y,w)=>y&&w?de(t.value,e,"",y,w):"",bm:(y,w)=>y&&w?de(t.value,e,y,"",w):"",bem:(y,w,p)=>y&&w&&p?de(t.value,e,y,w,p):"",is:(y,...w)=>{const p=w.length>=1?w[0]:true;return y&&p?`${ql}${y}`:""},cssVar:y=>{const w={};for(const p in y)y[p]&&(w[`--${t.value}-${p}`]=y[p]);return w},cssVarName:y=>`--${t.value}-${y}`,cssVarBlock:y=>{const w={};for(const p in y)y[p]&&(w[`--${t.value}-${e}-${p}`]=y[p]);return w},cssVarBlockName:y=>`--${t.value}-${e}-${y}`}},ct={current:0},pt=S(0),Vt=2e3,mt=Symbol("elZIndexContextKey"),Tt=Symbol("zIndexContextKey"),Xl=e=>{const n=_e()?fe(mt,ct):ct,t=e||(_e()?fe(Tt,void 0):void 0),a=P(()=>{const d=V(t);return we(d)?d:Vt}),l=P(()=>a.value+pt.value),u=()=>(n.current++,pt.value=n.current,l.value);return!Ue&&fe(mt),{initialZIndex:a,currentZIndex:l,nextZIndex:u}},Ql=kt({type:String,values:Fl,required:false}),ea=Symbol("size"),ta=Symbol("emptyValuesContextKey"),na=Ce({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>Ie(e)?!e():!e}}),jt=Symbol(),Ve=S();function Nt(e,n=void 0){return _e()?fe(jt,Ve):Ve}function la(e,n){const t=Nt(),a=Ze(e,P(()=>{var m;return((m=t.value)==null?void 0:m.namespace)||ke})),l=Yl(P(()=>{var m;return(m=t.value)==null?void 0:m.locale})),u=Xl(P(()=>{var m;return((m=t.value)==null?void 0:m.zIndex)||Vt})),d=P(()=>{var m;return V(n)||((m=t.value)==null?void 0:m.size)||""});return Pt(P(()=>V(t)||{})),{ns:a,locale:l,zIndex:u,size:d}}const Pt=(e,n,t=false)=>{var a;const l=!!_e(),u=l?Nt():void 0,d=(a=void 0)!=null?a:l?Ht:void 0;if(!d)return;const m=P(()=>{const $=V(e);return u!=null&&u.value?aa(u.value,$):$});return d(jt,m),d(It,P(()=>m.value.locale)),d(zt,P(()=>m.value.namespace)),d(Tt,P(()=>m.value.zIndex)),d(ea,{size:P(()=>m.value.size||"")}),d(ta,P(()=>({emptyValues:m.value.emptyValues,valueOnClear:m.value.valueOnClear}))),(t||!Ve.value)&&(Ve.value=m.value),m},aa=(e,n)=>{const t=[...new Set([...it(e),...it(n)])],a={};for(const l of t)a[l]=n[l]!==void 0?n[l]:e[l];return a},oa=Ce({a11y:{type:Boolean,default:true},locale:{type:oe(Object)},size:Ql,button:{type:oe(Object)},experimentalFeatures:{type:oe(Object)},keyboardNavigation:{type:Boolean,default:true},message:{type:oe(Object)},zIndex:Number,namespace:{type:String,default:"el"},...na}),Ae={};G({name:"ElConfigProvider",props:oa,setup(e,{slots:n}){ce(()=>e.message,a=>{Object.assign(Ae,a??{})},{immediate:true,deep:true});const t=Pt(e);return()=>Te(n,"default",{config:t==null?void 0:t.value})}});var Je=(e,n)=>{const t=e.__vccOpts||e;for(const[a,l]of n)t[a]=l;return t};const sa=Ce({size:{type:oe([Number,String])},color:{type:String}}),ra=G({name:"ElIcon",inheritAttrs:false}),ia=G({...ra,props:sa,setup(e){const n=e,t=Ze("icon"),a=P(()=>{const{size:l,color:u}=n;return!l&&!u?{}:{fontSize:kl(l)?void 0:Re(l),"--color":u}});return(l,u)=>(i(),_("i",Gt({class:V(t).b(),style:V(a)},l.$attrs),[Te(l.$slots,"default")],16))}});var ua=Je(ia,[["__file","icon.vue"]]);const ft=St(ua),da=Ce({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:true},color:String,dotStyle:{type:oe([String,Object,Array])},badgeStyle:{type:oe([String,Object,Array])},offset:{type:oe(Array),default:[0,0]},dotClass:{type:String},badgeClass:{type:String}}),ca=["textContent"],pa=G({name:"ElBadge"}),ma=G({...pa,props:da,setup(e,{expose:n}){const t=e,a=Ze("badge"),l=P(()=>t.isDot?"":we(t.value)&&we(t.max)?t.max<t.value?`${t.max}+`:t.value===0&&!t.showZero?"":`${t.value}`:`${t.value}`),u=P(()=>{var d,m,$,I,g,b;return[{backgroundColor:t.color,marginRight:Re(-((m=(d=t.offset)==null?void 0:d[0])!=null?m:0)),marginTop:Re((I=($=t.offset)==null?void 0:$[1])!=null?I:0)},(g=t.dotStyle)!=null?g:{},(b=t.badgeStyle)!=null?b:{}]});return dt({from:"dot-style",replacement:"badge-style",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},P(()=>!!t.dotStyle)),dt({from:"dot-class",replacement:"badge-class",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},P(()=>!!t.dotClass)),n({content:l}),(d,m)=>(i(),_("div",{class:Y(V(a).b())},[Te(d.$slots,"default"),r(vt,{name:`${V(a).namespace.value}-zoom-in-center`,persisted:""},{default:o(()=>[Be(c("sup",{class:Y([V(a).e("content"),V(a).em("content",d.type),V(a).is("fixed",!!d.$slots.default),V(a).is("dot",d.isDot),d.dotClass,d.badgeClass]),style:yt(V(u)),textContent:O(V(l))},null,14,ca),[[Le,!d.hidden&&(V(l)||d.isDot)]])]),_:1},8,["name"])],2))}});var fa=Je(ma,[["__file","badge.vue"]]);const va=St(fa),Ot=["success","info","warning","error"],Z=Kl({customClass:"",center:false,dangerouslyUseHTMLString:false,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:false,type:"info",plain:false,offset:16,zIndex:0,grouping:false,repeatNum:1,appendTo:Ue?document.body:void 0}),ya=Ce({customClass:{type:String,default:Z.customClass},center:{type:Boolean,default:Z.center},dangerouslyUseHTMLString:{type:Boolean,default:Z.dangerouslyUseHTMLString},duration:{type:Number,default:Z.duration},icon:{type:Al,default:Z.icon},id:{type:String,default:Z.id},message:{type:oe([String,Object,Function]),default:Z.message},onClose:{type:oe(Function),default:Z.onClose},showClose:{type:Boolean,default:Z.showClose},type:{type:String,values:Ot,default:Z.type},plain:{type:Boolean,default:Z.plain},offset:{type:Number,default:Z.offset},zIndex:{type:Number,default:Z.zIndex},grouping:{type:Boolean,default:Z.grouping},repeatNum:{type:Number,default:Z.repeatNum}}),ga={destroy:()=>true},se=Zt([]),ha=e=>{const n=se.findIndex(l=>l.id===e),t=se[n];let a;return n>0&&(a=se[n-1]),{current:t,prev:a}},_a=e=>{const{prev:n}=ha(e);return n?n.vm.exposed.bottom.value:0},ba=(e,n)=>se.findIndex(a=>a.id===e)>0?16:n,wa=["id"],Ca=["innerHTML"],xa=G({name:"ElMessage"}),$a=G({...xa,props:ya,emits:ga,setup(e,{expose:n}){const t=e,{Close:a}=Bl,{ns:l,zIndex:u}=la("message"),{currentZIndex:d,nextZIndex:m}=u,$=S(),I=S(false),g=S(0);let b;const h=P(()=>t.type?t.type==="error"?"danger":t.type:"info"),x=P(()=>{const M=t.type;return{[l.bm("icon",M)]:M&&ut[M]}}),E=P(()=>t.icon||ut[t.type]||""),y=P(()=>_a(t.id)),w=P(()=>ba(t.id,t.offset)+y.value),p=P(()=>g.value+w.value),f=P(()=>({top:`${w.value}px`,zIndex:d.value}));function F(){t.duration!==0&&({stop:b}=en(()=>{A()},t.duration))}function L(){b==null||b()}function A(){I.value=false}function J({code:M}){M===Ul.esc&&A()}return je(()=>{F(),m(),I.value=true}),ce(()=>t.repeatNum,()=>{L(),F()}),Xt(document,"keydown",J),Qt($,()=>{g.value=$.value.getBoundingClientRect().height}),n({visible:I,bottom:p,close:A}),(M,K)=>(i(),N(vt,{name:V(l).b("fade"),onBeforeLeave:M.onClose,onAfterLeave:K[0]||(K[0]=z=>M.$emit("destroy")),persisted:""},{default:o(()=>[Be(c("div",{id:M.id,ref_key:"messageRef",ref:$,class:Y([V(l).b(),{[V(l).m(M.type)]:M.type},V(l).is("center",M.center),V(l).is("closable",M.showClose),V(l).is("plain",M.plain),M.customClass]),style:yt(V(f)),role:"alert",onMouseenter:L,onMouseleave:F},[M.repeatNum>1?(i(),N(V(va),{key:0,value:M.repeatNum,type:V(h),class:Y(V(l).e("badge"))},null,8,["value","type","class"])):T("v-if",true),V(E)?(i(),N(V(ft),{key:1,class:Y([V(l).e("icon"),V(x)])},{default:o(()=>[(i(),N(Jt(V(E))))]),_:1},8,["class"])):T("v-if",true),Te(M.$slots,"default",{},()=>[M.dangerouslyUseHTMLString?(i(),_(q,{key:1},[T(" Caution here, message could've been compromised, never use user's input as message "),c("p",{class:Y(V(l).e("content")),innerHTML:M.message},null,10,Ca)],2112)):(i(),_("p",{key:0,class:Y(V(l).e("content"))},O(M.message),3))]),M.showClose?(i(),N(V(ft),{key:2,class:Y(V(l).e("closeBtn")),onClick:Se(A,["stop"])},{default:o(()=>[r(V(a))]),_:1},8,["class","onClick"])):T("v-if",true)],46,wa),[[Le,I.value]])]),_:3},8,["name","onBeforeLeave"]))}});var ka=Je($a,[["__file","message.vue"]]);let Sa=1;const Et=e=>{const n=!e||ze(e)||gt(e)||Ie(e)?{message:e}:e,t={...Z,...n};if(!t.appendTo)t.appendTo=document.body;else if(ze(t.appendTo)){let a=document.querySelector(t.appendTo);Sl(a)||(a=document.body),t.appendTo=a}return t},Ia=e=>{const n=se.indexOf(e);if(n===-1)return;se.splice(n,1);const{handler:t}=e;t.close()},za=({appendTo:e,...n},t)=>{const a=`message_${Sa++}`,l=n.onClose,u=document.createElement("div"),d={...n,id:a,onClose:()=>{l==null||l(),Ia(g)},onDestroy:()=>{nt(null,u)}},m=r(ka,d,Ie(d.message)||gt(d.message)?{default:Ie(d.message)?d.message:()=>d.message}:null);m.appContext=t||ye._context,nt(m,u),e.appendChild(u.firstElementChild);const $=m.component,g={id:a,vnode:m,vm:$,handler:{close:()=>{$.exposed.visible.value=false}},props:m.component.props};return g},ye=(e={},n)=>{if(!Ue)return{close:()=>{}};if(we(Ae.max)&&se.length>=Ae.max)return{close:()=>{}};const t=Et(e);if(t.grouping&&se.length){const l=se.find(({vnode:u})=>{var d;return((d=u.props)==null?void 0:d.message)===t.message});if(l)return l.props.repeatNum+=1,l.props.type=t.type,l.handler}const a=za(t,n);return se.push(a),a.handler};Ot.forEach(e=>{ye[e]=(n={},t)=>{const a=Et(n);return ye({...a,type:e},t)}});function Va(e){for(const n of se)(!e||e===n.props.type)&&n.handler.close()}ye.closeAll=Va;ye._context=null;const U=Ll(ye,"$message"),Ta={class:"sidebar"},ja={class:"sidebar-header"},Na={class:"contest-list"},Pa=["onClick","onContextmenu"],Oa={class:"contest-name"},Ea={class:"contest-cid"},Ma=G({__name:"sidebar",props:{contests:{},activeCid:{}},emits:["select","add","remove","update"],setup(e,{emit:n}){const t=n,a=S(false),l=S(null),u=S(""),d=S(null),m=S(false);async function $(){if(l.value){m.value=true;try{d.value=await R("mahjongpub/search-contests",l.value,u.value||void 0)}catch(w){U.error(`查询失败: ${w}`)}finally{m.value=false}}}async function I(){if(d.value){m.value=true;try{const w={cid:d.value.cid,name:d.value.name,adminPassword:u.value||void 0};await R("mahjongpub/add-managed",w),t("add",w),a.value=false,l.value=null,d.value=null,u.value=""}catch(w){U.error(`添加失败: ${w}`)}finally{m.value=false}}}const g=S(false),b=S(null),h=S("");function x(w,p){b.value=p,h.value=p.adminPassword??"",g.value=true}async function E(){if(b.value)try{await R("mahjongpub/update-managed",b.value.cid,{adminPassword:h.value||void 0}),t("update",b.value.cid,{adminPassword:h.value||void 0}),g.value=false}catch(w){U.error(`保存失败: ${w}`)}}async function y(){if(b.value)try{await R("mahjongpub/remove-managed",b.value.cid),t("remove",b.value.cid),g.value=false}catch(w){U.error(`移除失败: ${w}`)}}return(w,p)=>{const f=k("el-button"),F=k("el-icon"),L=k("el-input"),A=k("el-form-item"),J=k("el-tag"),M=k("el-form"),K=k("el-dialog");return i(),_("div",Ta,[c("div",ja,[p[9]||(p[9]=c("span",null,"比赛列表",-1)),r(f,{size:"small",type:"primary",onClick:p[0]||(p[0]=z=>a.value=true)},{default:o(()=>[...p[8]||(p[8]=[C("+ 添加",-1)])]),_:1})]),c("div",Na,[(i(true),_(q,null,ee(e.contests,z=>(i(),_("div",{key:z.cid,class:Y(["contest-item",{active:z.cid===e.activeCid}]),onClick:H=>w.$emit("select",z.cid),onContextmenu:Se(H=>x(H,z),["prevent"])},[c("div",Oa,O(z.name),1),c("div",Ea,"#"+O(z.cid),1),z.adminPassword?(i(),N(F,{key:0,class:"admin-badge",title:"已配置管理密码"},{default:o(()=>[...p[10]||(p[10]=[c("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},[c("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"})],-1)])]),_:1})):T("v-if",true)],42,Pa))),128))]),T(" Import Dialog "),r(K,{modelValue:a.value,"onUpdate:modelValue":p[4]||(p[4]=z=>a.value=z),title:"添加比赛",width:"420"},{footer:o(()=>[r(f,{onClick:p[3]||(p[3]=z=>a.value=false)},{default:o(()=>[...p[13]||(p[13]=[C("取消",-1)])]),_:1}),r(f,{loading:m.value,onClick:$},{default:o(()=>[...p[14]||(p[14]=[C("查询",-1)])]),_:1},8,["loading"]),r(f,{type:"primary",disabled:!d.value,onClick:I},{default:o(()=>[...p[15]||(p[15]=[C("添加",-1)])]),_:1},8,["disabled"])]),default:o(()=>[r(M,{"label-width":"80px",onSubmit:Se(I,["prevent"])},{default:o(()=>[r(A,{label:"比赛 ID"},{default:o(()=>[r(L,{modelValue:l.value,"onUpdate:modelValue":p[1]||(p[1]=z=>l.value=z),modelModifiers:{number:true},placeholder:"输入大凤林比赛 ID"},null,8,["modelValue"])]),_:1}),d.value?(i(),N(A,{key:0,label:"比赛名称"},{default:o(()=>[c("span",null,O(d.value.name),1)]),_:1})):T("v-if",true),d.value?(i(),N(A,{key:1,label:"当前轮次"},{default:o(()=>[c("span",null,O(d.value.round),1)]),_:1})):T("v-if",true),r(A,{label:"管理密码"},{default:o(()=>[r(L,{modelValue:u.value,"onUpdate:modelValue":p[2]||(p[2]=z=>u.value=z),placeholder:"可选,用于队伍管理","show-password":""},null,8,["modelValue"])]),_:1}),d.value&&u.value?(i(),N(A,{key:2,label:"密码验证"},{default:o(()=>[d.value.adminVerified?(i(),N(J,{key:0,type:"success",size:"small"},{default:o(()=>[...p[11]||(p[11]=[C("密码正确",-1)])]),_:1})):(i(),N(J,{key:1,type:"danger",size:"small"},{default:o(()=>[...p[12]||(p[12]=[C("密码错误",-1)])]),_:1}))]),_:1})):T("v-if",true)]),_:1})]),_:1},8,["modelValue"]),T(" Context Menu (password edit) "),r(K,{modelValue:g.value,"onUpdate:modelValue":p[7]||(p[7]=z=>g.value=z),title:"编辑比赛",width:"400"},{footer:o(()=>[r(f,{type:"danger",onClick:y},{default:o(()=>[...p[16]||(p[16]=[C("移除比赛",-1)])]),_:1}),r(f,{onClick:p[6]||(p[6]=z=>g.value=false)},{default:o(()=>[...p[17]||(p[17]=[C("取消",-1)])]),_:1}),r(f,{type:"primary",onClick:E},{default:o(()=>[...p[18]||(p[18]=[C("保存",-1)])]),_:1})]),default:o(()=>[b.value?(i(),N(M,{key:0,"label-width":"80px"},{default:o(()=>[r(A,{label:"比赛名称"},{default:o(()=>[c("span",null,O(b.value.name)+" (#"+O(b.value.cid)+")",1)]),_:1}),r(A,{label:"管理密码"},{default:o(()=>[r(L,{modelValue:h.value,"onUpdate:modelValue":p[5]||(p[5]=z=>h.value=z),placeholder:"留空则无队伍管理权限","show-password":""},null,8,["modelValue"])]),_:1})]),_:1})):T("v-if",true)]),_:1},8,["modelValue"])])}}}),Da=ie(Ma,[["__scopeId","data-v-8b51a7a2"]]),Ra={class:"cls-header"},Aa={class:"cls-title"},Ba={key:0,class:"error-msg"},La={class:"player-list"},Ua={class:"player-info"},Fa={class:"player-name"},Ka={class:"swap-popover"},Ha={key:0,class:"swap-section"},Ga=["onClick"],Za={class:"swap-manual"},Ja={class:"swap-mode-actions"},Ya={class:"player-right"},qa=["onClick"],Wa={key:1,class:"point-edit"},Xa={key:0,class:"no-players"},Qa={class:"cls-actions"},eo=G({__name:"cls-card",props:{cls:{},status:{},externalCheckResult:{},hasAdmin:{type:Boolean}},emits:["start","stop","check","swap","edit-point"],setup(e,{emit:n}){const t=e,a=n,l=P(()=>t.status.next??t.status.last??[]),u=P(()=>t.status.status==="pending"||t.status.status==="suspended"),d=S(false),m=S(null),$=P(()=>m.value??t.externalCheckResult??null),I=S(""),g=S({});function b(p,f){g.value[p]=f}function h(p){const f=g.value[p];f!==void 0&&a("edit-point",p,f),g.value[p]=void 0}function x(){d.value=true,m.value=null,a("check",p=>{m.value=p,d.value=false})}function E(p,f,F){f!=null&&f.trim()&&(a("swap",p,f.trim(),F),I.value="")}const y=P(()=>{switch(t.status.status){case"pending":return"info";case"running":return"success";case"finished":return"";case"suspended":return"warning";case"starting":return"warning";case"error":return"danger"}}),w=P(()=>{switch(t.status.status){case"pending":return"等待中";case"running":return"进行中";case"finished":return"已结束";case"suspended":return"已停止";case"starting":return"开赛中";case"error":return"错误"}});return(p,f)=>{const F=k("el-tag"),L=k("el-button"),A=k("el-divider"),J=k("el-input"),M=k("el-popover"),K=k("el-card");return i(),N(K,{class:Y(["cls-card",`status-${e.status.status}`]),shadow:"hover"},{header:o(()=>[c("div",Ra,[c("span",Aa,O(e.cls)+"组 - "+O(e.status.rowi+1),1),r(F,{type:y.value,size:"small",effect:"dark"},{default:o(()=>[C(O(w.value),1)]),_:1},8,["type"])])]),default:o(()=>[e.status.status==="error"&&e.status.msg?(i(),_("div",Ba,O(e.status.msg),1)):T("v-if",true),c("div",La,[(i(true),_(q,null,ee(l.value,(z,H)=>{var xe;return i(),_("div",{key:H,class:"player-row"},[c("div",Ua,[$.value?(i(),_("span",{key:0,class:Y(["online-dot",(xe=$.value[H])!=null&&xe.online?"online":"offline"])},null,2)):T("v-if",true),c("span",Fa,O(z.player),1),u.value?(i(),N(M,{key:1,trigger:"click",width:220,placement:"right","popper-class":"swap-popover-container"},{reference:o(()=>[r(L,{size:"small",text:"",class:"swap-btn",title:"换人"},{default:o(()=>[...f[3]||(f[3]=[C("✎",-1)])]),_:1})]),default:o(()=>{var te;return[c("div",Ka,[(te=z.teammates)!=null&&te.length?(i(),_("div",Ha,[f[4]||(f[4]=c("div",{class:"swap-title"},"从队伍名单选择",-1)),(i(true),_(q,null,ee(z.teammates,(re,Oe)=>(i(),_("div",{key:Oe,class:Y(["swap-option",{active:re===z.player}]),onClick:Ye=>E(H,re,false)},O(re),11,Ga))),128))])):T("v-if",true),r(A,{style:{margin:"8px 0"}}),f[7]||(f[7]=c("div",{class:"swap-title"},"手动输入",-1)),c("div",Za,[r(J,{modelValue:I.value,"onUpdate:modelValue":f[0]||(f[0]=re=>I.value=re),size:"small",placeholder:"选手名"},null,8,["modelValue"])]),c("div",Ja,[r(L,{size:"small",onClick:re=>E(H,I.value,false)},{default:o(()=>[...f[5]||(f[5]=[C("临时替换",-1)])]),_:1},8,["onClick"]),e.hasAdmin?(i(),N(L,{key:0,size:"small",type:"primary",onClick:re=>E(H,I.value,true)},{default:o(()=>[...f[6]||(f[6]=[C("修改名单",-1)])]),_:1},8,["onClick"])):T("v-if",true)])])]}),_:2},1024)):T("v-if",true)]),c("div",Ya,[g.value[H]?(i(),_("div",Wa,[r(J,{modelValue:g.value[H],"onUpdate:modelValue":te=>g.value[H]=te,modelModifiers:{number:true},size:"small",style:{width:"70px"},onKeyup:[De(te=>h(H),["enter"]),De(te=>g.value[H]=void 0,["escape"])]},null,8,["modelValue","onUpdate:modelValue","onKeyup"]),r(L,{size:"small",text:"",type:"primary",class:"point-edit-btn",onClick:te=>h(H)},{default:o(()=>[...f[8]||(f[8]=[C("✓",-1)])]),_:1},8,["onClick"]),r(L,{size:"small",text:"",class:"point-edit-btn",onClick:te=>g.value[H]=void 0},{default:o(()=>[...f[9]||(f[9]=[C("✕",-1)])]),_:1},8,["onClick"])])):(i(),_("span",{key:0,class:Y(["player-point",{editable:u.value}]),onClick:te=>u.value&&b(H,z.point)},O(z.point),11,qa))])])}),128)),l.value.length?T("v-if",true):(i(),_("div",Xa,"-"))]),c("div",Qa,[e.status.status==="pending"||e.status.status==="suspended"?(i(),N(L,{key:0,type:"success",size:"small",onClick:f[1]||(f[1]=z=>p.$emit("start"))},{default:o(()=>[...f[10]||(f[10]=[C(" 开赛 ",-1)])]),_:1})):T("v-if",true),e.status.status==="pending"||e.status.status==="running"||e.status.status==="starting"?(i(),N(L,{key:1,type:"warning",size:"small",onClick:f[2]||(f[2]=z=>p.$emit("stop"))},{default:o(()=>[...f[11]||(f[11]=[C(" 停止 ",-1)])]),_:1})):T("v-if",true),u.value?(i(),N(L,{key:2,size:"small",loading:d.value,onClick:x},{default:o(()=>[...f[12]||(f[12]=[C(" 检查 ",-1)])]),_:1},8,["loading"])):T("v-if",true)])]),_:1},8,["class"])}}}),to=ie(eo,[["__scopeId","data-v-d3fd7b1c"]]),no={class:"match-manager"},lo={class:"config-header"},ao={class:"schedule-section"},oo={class:"schedule-list"},so={class:"config-actions"},ro={class:"subscriber-list"},io={key:0,class:"subscriber-empty"},uo={class:"subscriber-add"},co={class:"schedule-control-header"},po={class:"schedule-control-list"},mo={class:"schedule-info"},fo={key:0,class:"schedule-time"},vo={key:2,class:"status-section"},yo={class:"status-header"},go={class:"status-actions"},ho={class:"cls-grid"},_o={key:3,class:"status-placeholder"},bo={class:"log-header"},wo={class:"log-time"},Co={class:"log-msg"},xo={key:0,class:"log-empty"},$o=G({__name:"match-manager",props:{cid:{},contestInfo:{}},emits:["refresh"],setup(e,{emit:n}){const t=e,a=n,l=S({type:"ssb",round:"",lobby:"",playerIndex:"",ver:"",maxRow:"",fillBots:false,allowNegativeScore:false,schedules:[]}),u=S([]),d=S([]),m=S(),$=S(false),I=S(false),g=Yt({}),b=S("");let h=null;function x(v){if(v===""||v===void 0||v===null)return;const s=Number(v);return isNaN(s)?void 0:s}ce(()=>{var v;return(v=t.contestInfo)==null?void 0:v.extra},v=>{v&&(l.value.type=v.type??"ssb",l.value.round=v.round??"",l.value.lobby=v.lobby??"",l.value.playerIndex=v.playerIndex??"",l.value.ver=v.ver||"",l.value.maxRow=v.maxRow??"",l.value.fillBots=v.fillBots??false,l.value.allowNegativeScore=v.allowNegativeScore??false,l.value.schedules=(v.schedules??[]).map(s=>({...s,_time:s.startAt?new Date(2e3,0,1,...s.startAt.split(":").map(Number)):void 0})))},{immediate:true});function E(){l.value.schedules.push({maxRow:10,_time:void 0})}function y(){l.value.schedules=[{maxRow:6,startAt:"14:00",_time:new Date(2e3,0,1,14,0)},{maxRow:10,startAt:"19:00",_time:new Date(2e3,0,1,19,0)}]}async function w(){const v=l.value.schedules.map(s=>({maxRow:s.maxRow,startAt:s._time?`${s._time.getHours().toString().padStart(2,"0")}:${s._time.getMinutes().toString().padStart(2,"0")}`:void 0}));await R("mahjongpub/init",t.cid,{type:l.value.type,round:x(l.value.round),lobby:l.value.lobby||void 0,playerIndex:x(l.value.playerIndex),ver:x(l.value.ver),maxRow:x(l.value.maxRow),schedules:v.length?v:void 0,fillBots:l.value.fillBots,allowNegativeScore:l.value.allowNegativeScore}),a("refresh"),await f()}async function p(){await R("mahjongpub/deinit",t.cid),u.value=[],a("refresh")}async function f(){var v;if(!(!((v=t.contestInfo)!=null&&v.extra)&&!u.value.length))try{u.value=await R("mahjongpub/cls-status",t.cid)}catch(s){console.error("Failed to refresh status:",s)}}async function F(v){await R("mahjongpub/start",t.cid,[v]),setTimeout(f,1e3)}async function L(v){await R("mahjongpub/stop",t.cid,[v]),setTimeout(f,500)}async function A(v,s){try{const B=await R("mahjongpub/check-players",t.cid,v);g[v]=B,s(B)}catch(B){U.error(`检查失败: ${B}`),s([])}}async function J(){I.value=true;const v=[];try{const s=u.value.filter(([,B])=>B.status==="pending"||B.status==="suspended").map(([B,ne])=>[B,ne]);for(const[B,ne]of s)try{const le=await R("mahjongpub/check-players",t.cid,B);g[B]=le}catch(le){v.push(`${B}组: ${le}`);const ae=ne.next??ne.last??[];g[B]=ae.map(W=>({player:W.player,online:false}))}v.length&&U.warning(`部分检查失败:
6
- ${v.join(`
7
- `)}`)}finally{I.value=false}}async function M(v,s,B,ne){try{if(ne){const le=u.value.find(([W])=>W===v);if(!le)return;const ae=(le[1].next??le[1].last??[]).map(W=>W.player);ae[s]=B,await R("mahjongpub/swap-cls-players",t.cid,v,ae),U.success("名单已修改")}else await R("mahjongpub/override-player",t.cid,v,s,B),U.success("临时替换成功");await f()}catch(le){U.error(`换人失败: ${le}`)}}async function K(v,s,B){try{await R("mahjongpub/edit-point",t.cid,v,s,B),U.success("分数已修改"),await f()}catch(ne){U.error(`修改失败: ${ne}`)}}async function z(){const v=b.value.trim();if(v)try{await R("mahjongpub/add-subscriber",t.cid,v),b.value="",a("refresh")}catch(s){U.error(`添加失败: ${s}`)}}async function H(v){try{await R("mahjongpub/remove-subscriber",t.cid,v),a("refresh")}catch(s){U.error(`移除失败: ${s}`)}}async function xe(v){try{await R("mahjongpub/apply-schedule",t.cid,v),a("refresh"),setTimeout(f,1e3)}catch(s){U.error(`应用失败: ${s}`)}}async function te(v){try{await R("mahjongpub/toggle-schedule-pause",t.cid,v),a("refresh")}catch(s){U.error(`操作失败: ${s}`)}}async function re(){$.value=true;try{await R("mahjongpub/start",t.cid,[])}finally{$.value=false,setTimeout(f,1e3)}}async function Oe(){await R("mahjongpub/stop",t.cid,[]),setTimeout(f,500)}function Ye(v){const s=new Date,B=`${s.getHours().toString().padStart(2,"0")}:${s.getMinutes().toString().padStart(2,"0")}:${s.getSeconds().toString().padStart(2,"0")}`;d.value.push({time:B,message:v}),d.value.length>200&&d.value.splice(0,d.value.length-200),Wt(()=>{m.value&&(m.value.scrollTop=m.value.scrollHeight)})}return Ut("mahjongpub/log",v=>{const[s,B]=v;s===t.cid&&Ye(B)}),je(()=>{var v;(v=t.contestInfo)!=null&&v.extra&&f(),h=setInterval(f,3e3)}),qt(()=>{h&&clearInterval(h)}),(v,s)=>{var We,Xe,Qe,et,tt;const B=k("el-tag"),ne=k("el-option"),le=k("el-select"),ae=k("el-form-item"),W=k("el-input"),Mt=k("el-form"),qe=k("el-checkbox"),Dt=k("el-input-number"),Rt=k("el-time-picker"),X=k("el-button"),$e=k("el-card"),At=k("el-switch");return i(),_("div",no,[T(" Config Bar "),r($e,{class:"config-card",shadow:"never"},{header:o(()=>{var D,j;return[c("div",lo,[c("span",null,O((D=e.contestInfo)==null?void 0:D.name)+" — 比赛配置",1),(j=e.contestInfo)!=null&&j.extra?(i(),N(B,{key:0,type:"success",size:"small"},{default:o(()=>[...s[11]||(s[11]=[C("已初始化",-1)])]),_:1})):(i(),N(B,{key:1,type:"info",size:"small"},{default:o(()=>[...s[12]||(s[12]=[C("未初始化",-1)])]),_:1}))])]}),default:o(()=>{var D;return[r(Mt,{inline:true,size:"small","label-width":"70px"},{default:o(()=>[r(ae,{label:"类型"},{default:o(()=>[r(le,{modelValue:l.value.type,"onUpdate:modelValue":s[0]||(s[0]=j=>l.value.type=j),style:{width:"100px"}},{default:o(()=>[r(ne,{label:"掌心 (ti)",value:"ti"}),r(ne,{label:"雀魂 (ssb)",value:"ssb"})]),_:1},8,["modelValue"])]),_:1}),r(ae,{label:"轮次"},{default:o(()=>[r(W,{modelValue:l.value.round,"onUpdate:modelValue":s[1]||(s[1]=j=>l.value.round=j),style:{width:"80px"},placeholder:"默认"},null,8,["modelValue"])]),_:1}),r(ae,{label:"比赛场"},{default:o(()=>[r(W,{modelValue:l.value.lobby,"onUpdate:modelValue":s[2]||(s[2]=j=>l.value.lobby=j),style:{width:"120px"},placeholder:"lobby ID"},null,8,["modelValue"])]),_:1}),r(ae,{label:"选手序号"},{default:o(()=>[r(W,{modelValue:l.value.playerIndex,"onUpdate:modelValue":s[3]||(s[3]=j=>l.value.playerIndex=j),style:{width:"60px"},placeholder:"自动"},null,8,["modelValue"])]),_:1}),r(ae,{label:"版本"},{default:o(()=>[r(W,{modelValue:l.value.ver,"onUpdate:modelValue":s[4]||(s[4]=j=>l.value.ver=j),style:{width:"60px"},placeholder:"0"},null,8,["modelValue"])]),_:1}),r(ae,{label:"最大行"},{default:o(()=>[r(W,{modelValue:l.value.maxRow,"onUpdate:modelValue":s[5]||(s[5]=j=>l.value.maxRow=j),style:{width:"60px"},placeholder:"默认"},null,8,["modelValue"])]),_:1})]),_:1}),r(qe,{modelValue:l.value.fillBots,"onUpdate:modelValue":s[6]||(s[6]=j=>l.value.fillBots=j),size:"small"},{default:o(()=>[...s[13]||(s[13]=[C("BOT 替补",-1)])]),_:1},8,["modelValue"]),r(qe,{modelValue:l.value.allowNegativeScore,"onUpdate:modelValue":s[7]||(s[7]=j=>l.value.allowNegativeScore=j),size:"small"},{default:o(()=>[...s[14]||(s[14]=[C("允许负分",-1)])]),_:1},8,["modelValue"]),c("div",ao,[s[18]||(s[18]=c("div",{class:"schedule-label"},"定时阶段",-1)),c("div",oo,[(i(true),_(q,null,ee(l.value.schedules,(j,ue)=>(i(),_("div",{key:ue,class:"schedule-row"},[r(Dt,{modelValue:j.maxRow,"onUpdate:modelValue":Q=>j.maxRow=Q,min:1,size:"small","controls-position":"right",style:{width:"80px"},placeholder:"maxRow"},null,8,["modelValue","onUpdate:modelValue"]),r(Rt,{modelValue:j._time,"onUpdate:modelValue":Q=>j._time=Q,size:"small",format:"HH:mm",style:{width:"120px"},placeholder:"开始时间",clearable:""},null,8,["modelValue","onUpdate:modelValue"]),r(X,{size:"small",type:"danger",text:"",onClick:Q=>l.value.schedules.splice(ue,1)},{default:o(()=>[...s[15]||(s[15]=[C("×",-1)])]),_:1},8,["onClick"])]))),128))]),r(X,{size:"small",onClick:E},{default:o(()=>[...s[16]||(s[16]=[C("+ 添加阶段",-1)])]),_:1}),l.value.type==="ti"?(i(),N(X,{key:0,size:"small",type:"info",onClick:y},{default:o(()=>[...s[17]||(s[17]=[C("先2副7 预设",-1)])]),_:1})):T("v-if",true)]),c("div",so,[r(X,{type:"primary",size:"small",onClick:w},{default:o(()=>[...s[19]||(s[19]=[C("初始化",-1)])]),_:1}),r(X,{type:"danger",size:"small",disabled:!((D=e.contestInfo)!=null&&D.extra),onClick:p},{default:o(()=>[...s[20]||(s[20]=[C("反初始化",-1)])]),_:1},8,["disabled"])])]}),_:1}),T(" Subscribers "),(We=e.contestInfo)!=null&&We.extra?(i(),N($e,{key:0,class:"subscriber-card",shadow:"never"},{header:o(()=>[...s[21]||(s[21]=[c("div",{class:"subscriber-header"},[c("span",null,"消息订阅")],-1)])]),default:o(()=>{var D;return[c("div",ro,[(i(true),_(q,null,ee(e.contestInfo.extra.subscribers,j=>(i(),N(B,{key:j,closable:"",size:"small",class:"subscriber-tag",onClose:ue=>H(j)},{default:o(()=>[C(O(j),1)]),_:2},1032,["onClose"]))),128)),(D=e.contestInfo.extra.subscribers)!=null&&D.length?T("v-if",true):(i(),_("span",io,"暂无订阅"))]),c("div",uo,[r(W,{modelValue:b.value,"onUpdate:modelValue":s[8]||(s[8]=j=>b.value=j),size:"small",placeholder:"platform:channelId",style:{width:"240px"},onKeyup:De(z,["enter"])},null,8,["modelValue"]),r(X,{size:"small",type:"primary",onClick:z},{default:o(()=>[...s[22]||(s[22]=[C("添加",-1)])]),_:1})])]}),_:1})):T("v-if",true),T(" Schedule Control (runtime) "),(et=(Qe=(Xe=e.contestInfo)==null?void 0:Xe.extra)==null?void 0:Qe.schedules)!=null&&et.length?(i(),N($e,{key:1,class:"schedule-control-card",shadow:"never"},{header:o(()=>[c("div",co,[c("span",null,"定时控制 (当前 maxRow="+O(e.contestInfo.extra.maxRow??"默认")+")",1),r(At,{"model-value":!e.contestInfo.extra.schedulePaused,"active-text":"自动","inactive-text":"暂停",size:"small",onChange:s[9]||(s[9]=D=>te(!D))},null,8,["model-value"])])]),default:o(()=>[c("div",po,[(i(true),_(q,null,ee(e.contestInfo.extra.schedules,(D,j)=>(i(),_("div",{key:j,class:"schedule-control-row"},[c("span",mo,[C(" 阶段 "+O(j+1)+":"+O(D.maxRow)+" 行 ",1),D.startAt?(i(),_("span",fo,"@ "+O(D.startAt),1)):T("v-if",true)]),e.contestInfo.extra.maxRow>=D.maxRow?(i(),N(B,{key:0,type:"success",size:"small"},{default:o(()=>[...s[23]||(s[23]=[C("已生效",-1)])]),_:1})):(i(),N(X,{key:1,size:"small",type:"primary",onClick:ue=>xe(D.maxRow)},{default:o(()=>[...s[24]||(s[24]=[C(" 立即生效 ",-1)])]),_:1},8,["onClick"]))]))),128))])]),_:1})):T("v-if",true),T(" Status Cards "),(tt=e.contestInfo)!=null&&tt.extra?(i(),_("div",vo,[c("div",yo,[c("span",null,"对局状态 — 第 "+O(e.contestInfo.extra.round??e.contestInfo.totalRounds)+" 轮",1),c("div",go,[r(X,{type:"success",size:"small",loading:$.value,onClick:re},{default:o(()=>[...s[25]||(s[25]=[C("全部开赛",-1)])]),_:1},8,["loading"]),r(X,{type:"warning",size:"small",onClick:Oe},{default:o(()=>[...s[26]||(s[26]=[C("全部停止",-1)])]),_:1}),r(X,{size:"small",loading:I.value,onClick:J},{default:o(()=>[...s[27]||(s[27]=[C("全部检查",-1)])]),_:1},8,["loading"]),r(X,{size:"small",onClick:f},{default:o(()=>[...s[28]||(s[28]=[C("刷新",-1)])]),_:1})])]),c("div",ho,[(i(true),_(q,null,ee(u.value,([D,j])=>{var ue;return i(),N(to,{key:D,cls:D,status:j,"external-check-result":g[D],"has-admin":(ue=e.contestInfo)==null?void 0:ue.hasAdmin,onStart:Q=>F(D),onStop:Q=>L(D),onCheck:Q=>A(D,Q),onSwap:(Q,Ee,Bt)=>M(D,Q,Ee,Bt),onEditPoint:(Q,Ee)=>K(D,Q,Ee)},null,8,["cls","status","external-check-result","has-admin","onStart","onStop","onCheck","onSwap","onEditPoint"])}),128))])])):(i(),_("div",_o,[...s[29]||(s[29]=[c("p",null,"请先初始化比赛配置",-1)])])),T(" Log Panel "),r($e,{class:"log-card",shadow:"never"},{header:o(()=>[c("div",bo,[s[31]||(s[31]=c("span",null,"日志",-1)),r(X,{size:"small",text:"",onClick:s[10]||(s[10]=D=>d.value=[])},{default:o(()=>[...s[30]||(s[30]=[C("清空",-1)])]),_:1})])]),default:o(()=>[c("div",{ref_key:"logScrollRef",ref:m,class:"log-scroll"},[(i(true),_(q,null,ee(d.value,(D,j)=>(i(),_("div",{key:j,class:"log-line"},[c("span",wo,O(D.time),1),c("span",Co,O(D.message),1)]))),128)),d.value.length?T("v-if",true):(i(),_("div",xo,"暂无日志"))],512)]),_:1})])}}}),ko=ie($o,[["__scopeId","data-v-07807463"]]),So={class:"team-manager"},Io={class:"team-header"},zo={class:"team-header-actions"},Vo={key:0,class:"inline-edit"},To={class:"player-index"},jo={class:"inline-edit-actions"},No={key:1,class:"player-display"},Po={key:0,class:"no-players"},Oo=G({__name:"team-manager",props:{cid:{}},setup(e){const n=e,t=S([]),a=S(""),l=S(null),u=S([]),d=S(false),m=P(()=>{if(!a.value)return t.value;const h=a.value.toLowerCase();return t.value.filter(x=>x.name.toLowerCase().includes(h)||x.tid.toString().includes(h)||x.players.some(E=>E.toLowerCase().includes(h)))});async function $(){try{t.value=await R("mahjongpub/list-teams",n.cid)}catch(h){U.error(`加载队伍失败: ${h}`)}}function I(h){l.value=h.tid,u.value=[...h.players]}function g(){l.value=null,u.value=[]}async function b(h){d.value=true;try{const x=u.value.filter(y=>y.trim()),E=await R("mahjongpub/update-team-players",n.cid,h.tid,x);U.success(E||"保存成功"),l.value=null,u.value=[],await $()}catch(x){U.error(`保存失败: ${x}`)}finally{d.value=false}}return je($),(h,x)=>{const E=k("el-input"),y=k("el-button"),w=k("el-table-column"),p=k("el-tag"),f=k("el-table");return i(),_("div",So,[c("div",Io,[x[3]||(x[3]=c("span",null,"队伍管理",-1)),c("div",zo,[r(E,{modelValue:a.value,"onUpdate:modelValue":x[0]||(x[0]=F=>a.value=F),size:"small",placeholder:"搜索队名/选手",clearable:"",style:{width:"200px"}},null,8,["modelValue"]),r(y,{size:"small",onClick:$},{default:o(()=>[...x[2]||(x[2]=[C("刷新",-1)])]),_:1})])]),r(f,{data:m.value,size:"small",border:"",class:"team-table","row-key":"tid"},{default:o(()=>[r(w,{prop:"tid",label:"ID",width:"60",sortable:""}),r(w,{prop:"name",label:"队名",width:"120",sortable:""}),r(w,{label:"选手名单","min-width":"400"},{default:o(({row:F})=>[l.value===F.tid?(i(),_("div",Vo,[(i(true),_(q,null,ee(u.value,(L,A)=>(i(),_("div",{key:A,class:"inline-edit-row"},[c("span",To,O(A+1)+".",1),r(E,{modelValue:u.value[A],"onUpdate:modelValue":J=>u.value[A]=J,size:"small"},null,8,["modelValue","onUpdate:modelValue"]),r(y,{size:"small",type:"danger",text:"",onClick:J=>u.value.splice(A,1)},{default:o(()=>[...x[4]||(x[4]=[C("×",-1)])]),_:1},8,["onClick"])]))),128)),c("div",jo,[r(y,{size:"small",onClick:x[1]||(x[1]=L=>u.value.push(""))},{default:o(()=>[...x[5]||(x[5]=[C("+ 添加",-1)])]),_:1}),r(y,{size:"small",type:"primary",loading:d.value,onClick:L=>b(F)},{default:o(()=>[...x[6]||(x[6]=[C("保存",-1)])]),_:1},8,["loading","onClick"]),r(y,{size:"small",onClick:g},{default:o(()=>[...x[7]||(x[7]=[C("取消",-1)])]),_:1})])])):(i(),_("div",No,[(i(true),_(q,null,ee(F.players,(L,A)=>(i(),N(p,{key:A,size:"small",class:"player-tag"},{default:o(()=>[C(O(L),1)]),_:2},1024))),128)),F.players.length?T("v-if",true):(i(),_("span",Po,"无选手"))]))]),_:1}),r(w,{label:"操作",width:"80",align:"center"},{default:o(({row:F})=>[l.value!==F.tid?(i(),N(y,{key:0,size:"small",text:"",onClick:L=>I(F)},{default:o(()=>[...x[8]||(x[8]=[C(" 编辑 ",-1)])]),_:1},8,["onClick"])):T("v-if",true)]),_:1})]),_:1},8,["data"])])}}}),Eo=ie(Oo,[["__scopeId","data-v-064b204b"]]),Mo={class:"lobby-panel"},Do={class:"lobby-config"},Ro={class:"section-header"},Ao={key:1,class:"empty-hint"},Bo={class:"section-header"},Lo={key:0,class:"game-list"},Uo={class:"game-header"},Fo=["title"],Ko={class:"game-actions"},Ho={class:"game-players"},Go={key:1,class:"empty-hint"},Zo=G({__name:"lobby-panel",props:{cid:{},initLobby:{},initType:{}},setup(e){const n=e,t=S(n.initLobby??""),a=S(n.initType??"ssb"),l=S([]),u=S([]),d=S(false);ce(()=>n.initLobby,b=>{b&&(t.value=b)}),ce(()=>n.initType,b=>{b&&(a.value=b)});async function m(){if(t.value){d.value=true;try{const[b,h]=await Promise.all([R("mahjongpub/lobby-players",+t.value,a.value),R("mahjongpub/lobby-games",+t.value,a.value)]);l.value=b,u.value=h}catch(b){U.error(`查询失败: ${b}`)}finally{d.value=false}}}async function $(b){try{await R("mahjongpub/lobby-pause",+t.value,a.value,b),U.success("已暂停")}catch(h){U.error(`暂停失败: ${h}`)}}async function I(b){try{await R("mahjongpub/lobby-resume",+t.value,a.value,b),U.success("已恢复")}catch(h){U.error(`恢复失败: ${h}`)}}async function g(b){try{await R("mahjongpub/lobby-stop",+t.value,a.value,b),U.success("已中止"),await m()}catch(h){U.error(`中止失败: ${h}`)}}return(b,h)=>{const x=k("el-input"),E=k("el-form-item"),y=k("el-option"),w=k("el-select"),p=k("el-button"),f=k("el-form"),F=k("el-table-column"),L=k("el-table"),A=k("el-card"),J=k("el-popconfirm"),M=k("el-tag");return i(),_("div",Mo,[c("div",Do,[r(f,{inline:true,size:"small"},{default:o(()=>[r(E,{label:"比赛场 ID"},{default:o(()=>[r(x,{modelValue:t.value,"onUpdate:modelValue":h[0]||(h[0]=K=>t.value=K),placeholder:"lobby ID",style:{width:"140px"}},null,8,["modelValue"])]),_:1}),r(E,{label:"平台"},{default:o(()=>[r(w,{modelValue:a.value,"onUpdate:modelValue":h[1]||(h[1]=K=>a.value=K),style:{width:"120px"}},{default:o(()=>[r(y,{label:"掌心 (ti)",value:"ti"}),r(y,{label:"雀魂 (ssb)",value:"ssb"})]),_:1},8,["modelValue"])]),_:1}),r(E,null,{default:o(()=>[r(p,{size:"small",type:"primary",onClick:m},{default:o(()=>[...h[2]||(h[2]=[C("刷新",-1)])]),_:1})]),_:1})]),_:1})]),T(" Ready Players "),r(A,{shadow:"never",class:"section-card"},{header:o(()=>[c("div",Ro,[c("span",null,"待机选手 ("+O(l.value.length)+")",1)])]),default:o(()=>[l.value.length?(i(),N(L,{key:0,data:l.value,size:"small",border:"","max-height":"300"},{default:o(()=>[r(F,{prop:"nickname",label:"昵称","min-width":"150"}),r(F,{prop:"accountId",label:"ID",width:"120"})]),_:1},8,["data"])):(i(),_("div",Ao,O(d.value?"加载中...":t.value?"暂无待机选手":"请输入比赛场 ID 后查询"),1))]),_:1}),T(" Running Games "),r(A,{shadow:"never",class:"section-card"},{header:o(()=>[c("div",Bo,[c("span",null,"进行中对局 ("+O(u.value.length)+")",1)])]),default:o(()=>[u.value.length?(i(),_("div",Lo,[(i(true),_(q,null,ee(u.value,K=>(i(),N(A,{key:K.id,shadow:"hover",class:"game-card"},{default:o(()=>[c("div",Uo,[c("span",{class:"game-id",title:K.id},O(K.id.slice(0,12))+"...",9,Fo),c("div",Ko,[r(p,{size:"small",type:"warning",onClick:z=>$(K.id)},{default:o(()=>[...h[3]||(h[3]=[C("暂停",-1)])]),_:1},8,["onClick"]),r(p,{size:"small",type:"primary",onClick:z=>I(K.id)},{default:o(()=>[...h[4]||(h[4]=[C("恢复",-1)])]),_:1},8,["onClick"]),r(J,{title:"确定中止该对局?",onConfirm:z=>g(K.id)},{reference:o(()=>[r(p,{size:"small",type:"danger"},{default:o(()=>[...h[5]||(h[5]=[C("中止",-1)])]),_:1})]),_:1},8,["onConfirm"])])]),c("div",Ho,[(i(true),_(q,null,ee(K.players,(z,H)=>(i(),N(M,{key:H,size:"small",class:"player-tag"},{default:o(()=>[C(O(z.nickname||`#${z.accountId}`),1)]),_:2},1024))),128))])]),_:2},1024))),128))])):(i(),_("div",Go,O(d.value?"加载中...":t.value?"暂无进行中对局":"请输入比赛场 ID 后查询"),1))]),_:1})])}}}),Jo=ie(Zo,[["__scopeId","data-v-a21c65dd"]]),Yo={key:0,class:"empty-state"},qo={key:1,class:"empty-state"},Wo={key:2,class:"contest-panel"},Xo={class:"first-tab-label"},Qo={key:1},es=G({__name:"contest-panel",props:{cid:{},managed:{},sidebarCollapsed:{type:Boolean}},emits:["toggle-sidebar"],setup(e,{emit:n}){const t=e,a=S("match"),l=S(false),u=S(null);async function d(){l.value=true;try{u.value=await R("mahjongpub/contest-info",t.cid)}catch(m){console.error("Failed to load contest info:",m)}finally{l.value=false}}return ce(()=>t.cid,()=>{a.value="match",d()},{immediate:true}),(m,$)=>{const I=k("el-button"),g=k("el-tab-pane"),b=k("el-tooltip"),h=k("el-tabs");return e.cid?l.value&&!u.value?(i(),_("div",qo,[...$[3]||($[3]=[c("p",null,"加载中...",-1)])])):(i(),_("div",Wo,[r(h,{modelValue:a.value,"onUpdate:modelValue":$[1]||($[1]=x=>a.value=x)},{default:o(()=>{var x;return[r(g,{name:"match"},{label:o(()=>[c("div",Xo,[r(I,{class:"sidebar-toggle-btn",size:"small",text:"",title:e.sidebarCollapsed?"展开侧边栏":"收起侧边栏",onClick:$[0]||($[0]=Se(E=>m.$emit("toggle-sidebar"),["stop"]))},{default:o(()=>[C(O(e.sidebarCollapsed?"▶":"◀"),1)]),_:1},8,["title"]),$[4]||($[4]=c("span",null,"比赛进程",-1))])]),default:o(()=>[r(ko,{cid:e.cid,"contest-info":u.value,onRefresh:d},null,8,["cid","contest-info"])]),_:1}),r(g,{label:"队伍管理",name:"team",disabled:!((x=u.value)!=null&&x.hasAdmin)},{label:o(()=>{var E;return[(E=u.value)!=null&&E.hasAdmin?(i(),_("span",Qo,"队伍管理")):(i(),N(b,{key:0,content:"请先配置管理密码(右键侧边栏比赛项)",placement:"top"},{default:o(()=>[...$[5]||($[5]=[c("span",null,"队伍管理",-1)])]),_:1}))]}),default:o(()=>{var E;return[(E=u.value)!=null&&E.hasAdmin?(i(),N(Eo,{key:0,cid:e.cid},null,8,["cid"])):T("v-if",true)]}),_:1},8,["disabled"]),r(g,{label:"比赛场",name:"lobby"},{default:o(()=>{var E,y,w,p;return[r(Jo,{cid:e.cid,"init-lobby":(y=(E=u.value)==null?void 0:E.extra)==null?void 0:y.lobby,"init-type":(p=(w=u.value)==null?void 0:w.extra)==null?void 0:p.type},null,8,["cid","init-lobby","init-type"])]}),_:1})]}),_:1},8,["modelValue"])])):(i(),_("div",Yo,[...$[2]||($[2]=[c("p",null,"请选择比赛",-1)])]))}}}),ts=ie(es,[["__scopeId","data-v-4c836566"]]),ns={class:"main-layout"},ls={class:"content-wrapper"},as={key:1,class:"empty-state"},os=G({__name:"layout",setup(e){const n=S([]),t=S(null),a=S(false),l=P(()=>n.value.find(I=>I.cid===t.value)??null);async function u(){n.value=await R("mahjongpub/list-managed")}async function d(I){await u(),t.value=I.cid}async function m(I){var g;await u(),t.value===I&&(t.value=((g=n.value[0])==null?void 0:g.cid)??null)}async function $(I,g){await u()}return je(u),(I,g)=>{const b=k("k-layout");return i(),N(b,null,{default:o(()=>[c("div",ns,[c("div",{class:Y(["sidebar-wrapper",{collapsed:a.value}])},[Be(r(Da,{contests:n.value,"active-cid":t.value,onSelect:g[0]||(g[0]=h=>t.value=h),onAdd:d,onRemove:m,onUpdate:$},null,8,["contests","active-cid"]),[[Le,!a.value]])],2),c("div",ls,[t.value?(i(),N(ts,{key:t.value,cid:t.value,managed:l.value,"sidebar-collapsed":a.value,onToggleSidebar:g[1]||(g[1]=h=>a.value=!a.value)},null,8,["cid","managed","sidebar-collapsed"])):(i(),_("div",as,[...g[2]||(g[2]=[c("p",null,"请从左侧选择或添加比赛",-1)])]))])])]),_:1})}}}),ss=ie(os,[["__scopeId","data-v-592f974d"]]),ds=e=>{e.page({name:"比赛管理",path:"/mahjongpub",icon:"mahjongpub:icon",component:ss,authority:3})};export{ds as default};
5
+ **/const on=Object.prototype.hasOwnProperty,lt=(e,n)=>on.call(e,n),Ie=e=>typeof e=="function",ze=e=>typeof e=="string",ht=e=>e!==null&&typeof e=="object";var sn=typeof global=="object"&&global&&global.Object===Object&&global,rn=typeof self=="object"&&self&&self.Object===Object&&self,Fe=sn||rn||Function("return this")(),ve=Fe.Symbol,_t=Object.prototype,un=_t.hasOwnProperty,dn=_t.toString,he=ve?ve.toStringTag:void 0;function cn(e){var n=un.call(e,he),t=e[he];try{e[he]=void 0;var a=true}catch{}var l=dn.call(e);return a&&(n?e[he]=t:delete e[he]),l}var pn=Object.prototype,mn=pn.toString;function fn(e){return mn.call(e)}var vn="[object Null]",yn="[object Undefined]",at=ve?ve.toStringTag:void 0;function bt(e){return e==null?e===void 0?yn:vn:at&&at in Object(e)?cn(e):fn(e)}function gn(e){return e!=null&&typeof e=="object"}var hn="[object Symbol]";function Ke(e){return typeof e=="symbol"||gn(e)&&bt(e)==hn}function _n(e,n){for(var t=-1,a=e==null?0:e.length,l=Array(a);++t<a;)l[t]=n(e[t],t,e);return l}var He=Array.isArray,ot=ve?ve.prototype:void 0,st=ot?ot.toString:void 0;function wt(e){if(typeof e=="string")return e;if(He(e))return _n(e,wt)+"";if(Ke(e))return st?st.call(e):"";var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Ct(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var bn="[object AsyncFunction]",wn="[object Function]",Cn="[object GeneratorFunction]",xn="[object Proxy]";function $n(e){if(!Ct(e))return false;var n=bt(e);return n==wn||n==Cn||n==bn||n==xn}var Me=Fe["__core-js_shared__"],rt=function(){var e=/[^.]+$/.exec(Me&&Me.keys&&Me.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function kn(e){return!!rt&&rt in e}var Sn=Function.prototype,In=Sn.toString;function zn(e){if(e!=null){try{return In.call(e)}catch{}try{return e+""}catch{}}return""}var Vn=/[\\^$.*+?()[\]{}|]/g,Tn=/^\[object .+?Constructor\]$/,jn=Function.prototype,Nn=Object.prototype,Pn=jn.toString,On=Nn.hasOwnProperty,En=RegExp("^"+Pn.call(On).replace(Vn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Mn(e){if(!Ct(e)||kn(e))return false;var n=$n(e)?En:Tn;return n.test(zn(e))}function Dn(e,n){return e==null?void 0:e[n]}function xt(e,n){var t=Dn(e,n);return Mn(t)?t:void 0}function Rn(e,n){return e===n||e!==e&&n!==n}var An=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bn=/^\w*$/;function Ln(e,n){if(He(e))return false;var t=typeof e;return t=="number"||t=="symbol"||t=="boolean"||e==null||Ke(e)?true:Bn.test(e)||!An.test(e)||n!=null&&e in Object(n)}var be=xt(Object,"create");function Un(){this.__data__=be?be(null):{},this.size=0}function Fn(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}var Kn="__lodash_hash_undefined__",Hn=Object.prototype,Gn=Hn.hasOwnProperty;function Zn(e){var n=this.__data__;if(be){var t=n[e];return t===Kn?void 0:t}return Gn.call(n,e)?n[e]:void 0}var Jn=Object.prototype,Yn=Jn.hasOwnProperty;function qn(e){var n=this.__data__;return be?n[e]!==void 0:Yn.call(n,e)}var Wn="__lodash_hash_undefined__";function Xn(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=be&&n===void 0?Wn:n,this}function pe(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}pe.prototype.clear=Un;pe.prototype.delete=Fn;pe.prototype.get=Zn;pe.prototype.has=qn;pe.prototype.set=Xn;function Qn(){this.__data__=[],this.size=0}function Ne(e,n){for(var t=e.length;t--;)if(Rn(e[t][0],n))return t;return-1}var el=Array.prototype,tl=el.splice;function nl(e){var n=this.__data__,t=Ne(n,e);if(t<0)return false;var a=n.length-1;return t==a?n.pop():tl.call(n,t,1),--this.size,true}function ll(e){var n=this.__data__,t=Ne(n,e);return t<0?void 0:n[t][1]}function al(e){return Ne(this.__data__,e)>-1}function ol(e,n){var t=this.__data__,a=Ne(t,e);return a<0?(++this.size,t.push([e,n])):t[a][1]=n,this}function ge(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}ge.prototype.clear=Qn;ge.prototype.delete=nl;ge.prototype.get=ll;ge.prototype.has=al;ge.prototype.set=ol;var sl=xt(Fe,"Map");function rl(){this.size=0,this.__data__={hash:new pe,map:new(sl||ge),string:new pe}}function il(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function Pe(e,n){var t=e.__data__;return il(n)?t[typeof n=="string"?"string":"hash"]:t.map}function ul(e){var n=Pe(this,e).delete(e);return this.size-=n?1:0,n}function dl(e){return Pe(this,e).get(e)}function cl(e){return Pe(this,e).has(e)}function pl(e,n){var t=Pe(this,e),a=t.size;return t.set(e,n),this.size+=t.size==a?0:1,this}function me(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var a=e[n];this.set(a[0],a[1])}}me.prototype.clear=rl;me.prototype.delete=ul;me.prototype.get=dl;me.prototype.has=cl;me.prototype.set=pl;var ml="Expected a function";function Ge(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new TypeError(ml);var t=function(){var a=arguments,l=n?n.apply(this,a):a[0],u=t.cache;if(u.has(l))return u.get(l);var d=e.apply(this,a);return t.cache=u.set(l,d)||u,d};return t.cache=new(Ge.Cache||me),t}Ge.Cache=me;var fl=500;function vl(e){var n=Ge(e,function(a){return t.size===fl&&t.clear(),a}),t=n.cache;return n}var yl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gl=/\\(\\)?/g,hl=vl(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(yl,function(t,a,l,u){n.push(l?u.replace(gl,"$1"):a||t)}),n});function _l(e){return e==null?"":wt(e)}function bl(e,n){return He(e)?e:Ln(e,n)?[e]:hl(_l(e))}function wl(e){if(typeof e=="string"||Ke(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Cl(e,n){n=bl(n,e);for(var t=0,a=n.length;e!=null&&t<a;)e=e[wl(n[t++])];return t&&t==a?e:void 0}function xl(e,n,t){var a=e==null?void 0:Cl(e,n);return a===void 0?t:a}function $l(e){for(var n=-1,t=e==null?0:e.length,a={};++n<t;){var l=e[n];a[l[0]]=l[1]}return a}const kl=e=>e===void 0,we=e=>typeof e=="number",Sl=e=>typeof Element>"u"?false:e instanceof Element,Il=e=>ze(e)?!Number.isNaN(Number(e)):false,it=e=>Object.keys(e);function Re(e,n="px"){if(!e)return"";if(we(e)||Il(e))return`${e}${n}`;if(ze(e))return e}/*! Element Plus Icons Vue v2.3.2 */var zl=G({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),Vl=zl,Tl=G({name:"Close",__name:"close",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),jl=Tl,Nl=G({name:"InfoFilled",__name:"info-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Pl=Nl,Ol=G({name:"SuccessFilled",__name:"success-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),El=Ol,Ml=G({name:"WarningFilled",__name:"warning-filled",setup(e){return(n,t)=>(i(),_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),Dl=Ml;const $t="__epPropKey",oe=e=>e,Rl=e=>ht(e)&&!!e[$t],kt=(e,n)=>{if(!ht(e)||Rl(e))return e;const{values:t,required:a,default:l,type:u,validator:d}=e,$={type:u,required:!!a,validator:t||d?I=>{let g=false,b=[];if(t&&(b=Array.from(t),lt(e,"default")&&b.push(l),g||(g=b.includes(I))),d&&(g||(g=d(I))),!g&&b.length>0){const h=[...new Set(b)].map(x=>JSON.stringify(x)).join(", ");Ft(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${h}], got value ${JSON.stringify(I)}.`)}return g}:void 0,[$t]:true};return lt(e,"default")&&($.default=l),$},Ce=e=>$l(Object.entries(e).map(([n,t])=>[n,kt(t,n)])),Al=oe([String,Object,Function]),Bl={Close:jl},ut={success:El,warning:Dl,error:Vl,info:Pl},St=(e,n)=>(e.install=t=>{for(const a of[e,...Object.values({})])t.component(a.name,a)},e),Ll=(e,n)=>(e.install=t=>{e._context=t._context,t.config.globalProperties[n]=e},e),Ul={esc:"Escape"},Fl=["","default","small","large"],Kl=e=>e,dt=({from:e,replacement:n,scope:t,version:a,ref:l,type:u="API"},d)=>{ce(()=>V(d),m=>{},{immediate:true})};var Hl={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Gl=e=>(n,t)=>Zl(n,t,V(e)),Zl=(e,n,t)=>xl(t,e,e).replace(/\{(\w+)\}/g,(a,l)=>{var u;return`${(u=n==null?void 0:n[l])!=null?u:`{${l}}`}`}),Jl=e=>{const n=P(()=>V(e).name),t=Kt(e)?e:S(e);return{lang:n,locale:t,t:Gl(e)}},It=Symbol("localeContextKey"),Yl=e=>{const n=e||fe(It,S());return Jl(P(()=>n.value||Hl))},ke="el",ql="is-",de=(e,n,t,a,l)=>{let u=`${e}-${n}`;return t&&(u+=`-${t}`),a&&(u+=`__${a}`),l&&(u+=`--${l}`),u},zt=Symbol("namespaceContextKey"),Wl=e=>{const n=e||(_e()?fe(zt,S(ke)):S(ke));return P(()=>V(n)||ke)},Ze=(e,n)=>{const t=Wl(n);return{namespace:t,b:(v="")=>de(t.value,e,v,"",""),e:v=>v?de(t.value,e,"",v,""):"",m:v=>v?de(t.value,e,"","",v):"",be:(v,w)=>v&&w?de(t.value,e,v,w,""):"",em:(v,w)=>v&&w?de(t.value,e,"",v,w):"",bm:(v,w)=>v&&w?de(t.value,e,v,"",w):"",bem:(v,w,p)=>v&&w&&p?de(t.value,e,v,w,p):"",is:(v,...w)=>{const p=w.length>=1?w[0]:true;return v&&p?`${ql}${v}`:""},cssVar:v=>{const w={};for(const p in v)v[p]&&(w[`--${t.value}-${p}`]=v[p]);return w},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const w={};for(const p in v)v[p]&&(w[`--${t.value}-${e}-${p}`]=v[p]);return w},cssVarBlockName:v=>`--${t.value}-${e}-${v}`}},ct={current:0},pt=S(0),Vt=2e3,mt=Symbol("elZIndexContextKey"),Tt=Symbol("zIndexContextKey"),Xl=e=>{const n=_e()?fe(mt,ct):ct,t=e||(_e()?fe(Tt,void 0):void 0),a=P(()=>{const d=V(t);return we(d)?d:Vt}),l=P(()=>a.value+pt.value),u=()=>(n.current++,pt.value=n.current,l.value);return!Ue&&fe(mt),{initialZIndex:a,currentZIndex:l,nextZIndex:u}},Ql=kt({type:String,values:Fl,required:false}),ea=Symbol("size"),ta=Symbol("emptyValuesContextKey"),na=Ce({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>Ie(e)?!e():!e}}),jt=Symbol(),Ve=S();function Nt(e,n=void 0){return _e()?fe(jt,Ve):Ve}function la(e,n){const t=Nt(),a=Ze(e,P(()=>{var m;return((m=t.value)==null?void 0:m.namespace)||ke})),l=Yl(P(()=>{var m;return(m=t.value)==null?void 0:m.locale})),u=Xl(P(()=>{var m;return((m=t.value)==null?void 0:m.zIndex)||Vt})),d=P(()=>{var m;return V(n)||((m=t.value)==null?void 0:m.size)||""});return Pt(P(()=>V(t)||{})),{ns:a,locale:l,zIndex:u,size:d}}const Pt=(e,n,t=false)=>{var a;const l=!!_e(),u=l?Nt():void 0,d=(a=void 0)!=null?a:l?Ht:void 0;if(!d)return;const m=P(()=>{const $=V(e);return u!=null&&u.value?aa(u.value,$):$});return d(jt,m),d(It,P(()=>m.value.locale)),d(zt,P(()=>m.value.namespace)),d(Tt,P(()=>m.value.zIndex)),d(ea,{size:P(()=>m.value.size||"")}),d(ta,P(()=>({emptyValues:m.value.emptyValues,valueOnClear:m.value.valueOnClear}))),(t||!Ve.value)&&(Ve.value=m.value),m},aa=(e,n)=>{const t=[...new Set([...it(e),...it(n)])],a={};for(const l of t)a[l]=n[l]!==void 0?n[l]:e[l];return a},oa=Ce({a11y:{type:Boolean,default:true},locale:{type:oe(Object)},size:Ql,button:{type:oe(Object)},experimentalFeatures:{type:oe(Object)},keyboardNavigation:{type:Boolean,default:true},message:{type:oe(Object)},zIndex:Number,namespace:{type:String,default:"el"},...na}),Ae={};G({name:"ElConfigProvider",props:oa,setup(e,{slots:n}){ce(()=>e.message,a=>{Object.assign(Ae,a??{})},{immediate:true,deep:true});const t=Pt(e);return()=>Te(n,"default",{config:t==null?void 0:t.value})}});var Je=(e,n)=>{const t=e.__vccOpts||e;for(const[a,l]of n)t[a]=l;return t};const sa=Ce({size:{type:oe([Number,String])},color:{type:String}}),ra=G({name:"ElIcon",inheritAttrs:false}),ia=G({...ra,props:sa,setup(e){const n=e,t=Ze("icon"),a=P(()=>{const{size:l,color:u}=n;return!l&&!u?{}:{fontSize:kl(l)?void 0:Re(l),"--color":u}});return(l,u)=>(i(),_("i",Gt({class:V(t).b(),style:V(a)},l.$attrs),[Te(l.$slots,"default")],16))}});var ua=Je(ia,[["__file","icon.vue"]]);const ft=St(ua),da=Ce({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:true},color:String,dotStyle:{type:oe([String,Object,Array])},badgeStyle:{type:oe([String,Object,Array])},offset:{type:oe(Array),default:[0,0]},dotClass:{type:String},badgeClass:{type:String}}),ca=["textContent"],pa=G({name:"ElBadge"}),ma=G({...pa,props:da,setup(e,{expose:n}){const t=e,a=Ze("badge"),l=P(()=>t.isDot?"":we(t.value)&&we(t.max)?t.max<t.value?`${t.max}+`:t.value===0&&!t.showZero?"":`${t.value}`:`${t.value}`),u=P(()=>{var d,m,$,I,g,b;return[{backgroundColor:t.color,marginRight:Re(-((m=(d=t.offset)==null?void 0:d[0])!=null?m:0)),marginTop:Re((I=($=t.offset)==null?void 0:$[1])!=null?I:0)},(g=t.dotStyle)!=null?g:{},(b=t.badgeStyle)!=null?b:{}]});return dt({from:"dot-style",replacement:"badge-style",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},P(()=>!!t.dotStyle)),dt({from:"dot-class",replacement:"badge-class",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},P(()=>!!t.dotClass)),n({content:l}),(d,m)=>(i(),_("div",{class:Y(V(a).b())},[Te(d.$slots,"default"),r(vt,{name:`${V(a).namespace.value}-zoom-in-center`,persisted:""},{default:o(()=>[Be(c("sup",{class:Y([V(a).e("content"),V(a).em("content",d.type),V(a).is("fixed",!!d.$slots.default),V(a).is("dot",d.isDot),d.dotClass,d.badgeClass]),style:yt(V(u)),textContent:O(V(l))},null,14,ca),[[Le,!d.hidden&&(V(l)||d.isDot)]])]),_:1},8,["name"])],2))}});var fa=Je(ma,[["__file","badge.vue"]]);const va=St(fa),Ot=["success","info","warning","error"],Z=Kl({customClass:"",center:false,dangerouslyUseHTMLString:false,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:false,type:"info",plain:false,offset:16,zIndex:0,grouping:false,repeatNum:1,appendTo:Ue?document.body:void 0}),ya=Ce({customClass:{type:String,default:Z.customClass},center:{type:Boolean,default:Z.center},dangerouslyUseHTMLString:{type:Boolean,default:Z.dangerouslyUseHTMLString},duration:{type:Number,default:Z.duration},icon:{type:Al,default:Z.icon},id:{type:String,default:Z.id},message:{type:oe([String,Object,Function]),default:Z.message},onClose:{type:oe(Function),default:Z.onClose},showClose:{type:Boolean,default:Z.showClose},type:{type:String,values:Ot,default:Z.type},plain:{type:Boolean,default:Z.plain},offset:{type:Number,default:Z.offset},zIndex:{type:Number,default:Z.zIndex},grouping:{type:Boolean,default:Z.grouping},repeatNum:{type:Number,default:Z.repeatNum}}),ga={destroy:()=>true},se=Zt([]),ha=e=>{const n=se.findIndex(l=>l.id===e),t=se[n];let a;return n>0&&(a=se[n-1]),{current:t,prev:a}},_a=e=>{const{prev:n}=ha(e);return n?n.vm.exposed.bottom.value:0},ba=(e,n)=>se.findIndex(a=>a.id===e)>0?16:n,wa=["id"],Ca=["innerHTML"],xa=G({name:"ElMessage"}),$a=G({...xa,props:ya,emits:ga,setup(e,{expose:n}){const t=e,{Close:a}=Bl,{ns:l,zIndex:u}=la("message"),{currentZIndex:d,nextZIndex:m}=u,$=S(),I=S(false),g=S(0);let b;const h=P(()=>t.type?t.type==="error"?"danger":t.type:"info"),x=P(()=>{const M=t.type;return{[l.bm("icon",M)]:M&&ut[M]}}),E=P(()=>t.icon||ut[t.type]||""),v=P(()=>_a(t.id)),w=P(()=>ba(t.id,t.offset)+v.value),p=P(()=>g.value+w.value),f=P(()=>({top:`${w.value}px`,zIndex:d.value}));function F(){t.duration!==0&&({stop:b}=en(()=>{A()},t.duration))}function L(){b==null||b()}function A(){I.value=false}function J({code:M}){M===Ul.esc&&A()}return je(()=>{F(),m(),I.value=true}),ce(()=>t.repeatNum,()=>{L(),F()}),Xt(document,"keydown",J),Qt($,()=>{g.value=$.value.getBoundingClientRect().height}),n({visible:I,bottom:p,close:A}),(M,K)=>(i(),N(vt,{name:V(l).b("fade"),onBeforeLeave:M.onClose,onAfterLeave:K[0]||(K[0]=z=>M.$emit("destroy")),persisted:""},{default:o(()=>[Be(c("div",{id:M.id,ref_key:"messageRef",ref:$,class:Y([V(l).b(),{[V(l).m(M.type)]:M.type},V(l).is("center",M.center),V(l).is("closable",M.showClose),V(l).is("plain",M.plain),M.customClass]),style:yt(V(f)),role:"alert",onMouseenter:L,onMouseleave:F},[M.repeatNum>1?(i(),N(V(va),{key:0,value:M.repeatNum,type:V(h),class:Y(V(l).e("badge"))},null,8,["value","type","class"])):T("v-if",true),V(E)?(i(),N(V(ft),{key:1,class:Y([V(l).e("icon"),V(x)])},{default:o(()=>[(i(),N(Jt(V(E))))]),_:1},8,["class"])):T("v-if",true),Te(M.$slots,"default",{},()=>[M.dangerouslyUseHTMLString?(i(),_(q,{key:1},[T(" Caution here, message could've been compromised, never use user's input as message "),c("p",{class:Y(V(l).e("content")),innerHTML:M.message},null,10,Ca)],2112)):(i(),_("p",{key:0,class:Y(V(l).e("content"))},O(M.message),3))]),M.showClose?(i(),N(V(ft),{key:2,class:Y(V(l).e("closeBtn")),onClick:Se(A,["stop"])},{default:o(()=>[r(V(a))]),_:1},8,["class","onClick"])):T("v-if",true)],46,wa),[[Le,I.value]])]),_:3},8,["name","onBeforeLeave"]))}});var ka=Je($a,[["__file","message.vue"]]);let Sa=1;const Et=e=>{const n=!e||ze(e)||gt(e)||Ie(e)?{message:e}:e,t={...Z,...n};if(!t.appendTo)t.appendTo=document.body;else if(ze(t.appendTo)){let a=document.querySelector(t.appendTo);Sl(a)||(a=document.body),t.appendTo=a}return t},Ia=e=>{const n=se.indexOf(e);if(n===-1)return;se.splice(n,1);const{handler:t}=e;t.close()},za=({appendTo:e,...n},t)=>{const a=`message_${Sa++}`,l=n.onClose,u=document.createElement("div"),d={...n,id:a,onClose:()=>{l==null||l(),Ia(g)},onDestroy:()=>{nt(null,u)}},m=r(ka,d,Ie(d.message)||gt(d.message)?{default:Ie(d.message)?d.message:()=>d.message}:null);m.appContext=t||ye._context,nt(m,u),e.appendChild(u.firstElementChild);const $=m.component,g={id:a,vnode:m,vm:$,handler:{close:()=>{$.exposed.visible.value=false}},props:m.component.props};return g},ye=(e={},n)=>{if(!Ue)return{close:()=>{}};if(we(Ae.max)&&se.length>=Ae.max)return{close:()=>{}};const t=Et(e);if(t.grouping&&se.length){const l=se.find(({vnode:u})=>{var d;return((d=u.props)==null?void 0:d.message)===t.message});if(l)return l.props.repeatNum+=1,l.props.type=t.type,l.handler}const a=za(t,n);return se.push(a),a.handler};Ot.forEach(e=>{ye[e]=(n={},t)=>{const a=Et(n);return ye({...a,type:e},t)}});function Va(e){for(const n of se)(!e||e===n.props.type)&&n.handler.close()}ye.closeAll=Va;ye._context=null;const U=Ll(ye,"$message"),Ta={class:"sidebar"},ja={class:"sidebar-header"},Na={class:"contest-list"},Pa=["onClick","onContextmenu"],Oa={class:"contest-name"},Ea={class:"contest-cid"},Ma=G({__name:"sidebar",props:{contests:{},activeCid:{}},emits:["select","add","remove","update"],setup(e,{emit:n}){const t=n,a=S(false),l=S(null),u=S(""),d=S(null),m=S(false);async function $(){if(l.value){m.value=true;try{d.value=await R("mahjongpub/search-contests",l.value,u.value||void 0)}catch(w){U.error(`查询失败: ${w}`)}finally{m.value=false}}}async function I(){if(d.value){m.value=true;try{const w={cid:d.value.cid,name:d.value.name,adminPassword:u.value||void 0};await R("mahjongpub/add-managed",w),t("add",w),a.value=false,l.value=null,d.value=null,u.value=""}catch(w){U.error(`添加失败: ${w}`)}finally{m.value=false}}}const g=S(false),b=S(null),h=S("");function x(w,p){b.value=p,h.value=p.adminPassword??"",g.value=true}async function E(){if(b.value)try{await R("mahjongpub/update-managed",b.value.cid,{adminPassword:h.value||void 0}),t("update",b.value.cid,{adminPassword:h.value||void 0}),g.value=false}catch(w){U.error(`保存失败: ${w}`)}}async function v(){if(b.value)try{await R("mahjongpub/remove-managed",b.value.cid),t("remove",b.value.cid),g.value=false}catch(w){U.error(`移除失败: ${w}`)}}return(w,p)=>{const f=k("el-button"),F=k("el-icon"),L=k("el-input"),A=k("el-form-item"),J=k("el-tag"),M=k("el-form"),K=k("el-dialog");return i(),_("div",Ta,[c("div",ja,[p[9]||(p[9]=c("span",null,"比赛列表",-1)),r(f,{size:"small",type:"primary",onClick:p[0]||(p[0]=z=>a.value=true)},{default:o(()=>[...p[8]||(p[8]=[C("+ 添加",-1)])]),_:1})]),c("div",Na,[(i(true),_(q,null,ee(e.contests,z=>(i(),_("div",{key:z.cid,class:Y(["contest-item",{active:z.cid===e.activeCid}]),onClick:H=>w.$emit("select",z.cid),onContextmenu:Se(H=>x(H,z),["prevent"])},[c("div",Oa,O(z.name),1),c("div",Ea,"#"+O(z.cid),1),z.adminPassword?(i(),N(F,{key:0,class:"admin-badge",title:"已配置管理密码"},{default:o(()=>[...p[10]||(p[10]=[c("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},[c("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"})],-1)])]),_:1})):T("v-if",true)],42,Pa))),128))]),T(" Import Dialog "),r(K,{modelValue:a.value,"onUpdate:modelValue":p[4]||(p[4]=z=>a.value=z),title:"添加比赛",width:"420"},{footer:o(()=>[r(f,{onClick:p[3]||(p[3]=z=>a.value=false)},{default:o(()=>[...p[13]||(p[13]=[C("取消",-1)])]),_:1}),r(f,{loading:m.value,onClick:$},{default:o(()=>[...p[14]||(p[14]=[C("查询",-1)])]),_:1},8,["loading"]),r(f,{type:"primary",disabled:!d.value,onClick:I},{default:o(()=>[...p[15]||(p[15]=[C("添加",-1)])]),_:1},8,["disabled"])]),default:o(()=>[r(M,{"label-width":"80px",onSubmit:Se(I,["prevent"])},{default:o(()=>[r(A,{label:"比赛 ID"},{default:o(()=>[r(L,{modelValue:l.value,"onUpdate:modelValue":p[1]||(p[1]=z=>l.value=z),modelModifiers:{number:true},placeholder:"输入大凤林比赛 ID"},null,8,["modelValue"])]),_:1}),d.value?(i(),N(A,{key:0,label:"比赛名称"},{default:o(()=>[c("span",null,O(d.value.name),1)]),_:1})):T("v-if",true),d.value?(i(),N(A,{key:1,label:"当前轮次"},{default:o(()=>[c("span",null,O(d.value.round),1)]),_:1})):T("v-if",true),r(A,{label:"管理密码"},{default:o(()=>[r(L,{modelValue:u.value,"onUpdate:modelValue":p[2]||(p[2]=z=>u.value=z),placeholder:"可选,用于队伍管理","show-password":""},null,8,["modelValue"])]),_:1}),d.value&&u.value?(i(),N(A,{key:2,label:"密码验证"},{default:o(()=>[d.value.adminVerified?(i(),N(J,{key:0,type:"success",size:"small"},{default:o(()=>[...p[11]||(p[11]=[C("密码正确",-1)])]),_:1})):(i(),N(J,{key:1,type:"danger",size:"small"},{default:o(()=>[...p[12]||(p[12]=[C("密码错误",-1)])]),_:1}))]),_:1})):T("v-if",true)]),_:1})]),_:1},8,["modelValue"]),T(" Context Menu (password edit) "),r(K,{modelValue:g.value,"onUpdate:modelValue":p[7]||(p[7]=z=>g.value=z),title:"编辑比赛",width:"400"},{footer:o(()=>[r(f,{type:"danger",onClick:v},{default:o(()=>[...p[16]||(p[16]=[C("移除比赛",-1)])]),_:1}),r(f,{onClick:p[6]||(p[6]=z=>g.value=false)},{default:o(()=>[...p[17]||(p[17]=[C("取消",-1)])]),_:1}),r(f,{type:"primary",onClick:E},{default:o(()=>[...p[18]||(p[18]=[C("保存",-1)])]),_:1})]),default:o(()=>[b.value?(i(),N(M,{key:0,"label-width":"80px"},{default:o(()=>[r(A,{label:"比赛名称"},{default:o(()=>[c("span",null,O(b.value.name)+" (#"+O(b.value.cid)+")",1)]),_:1}),r(A,{label:"管理密码"},{default:o(()=>[r(L,{modelValue:h.value,"onUpdate:modelValue":p[5]||(p[5]=z=>h.value=z),placeholder:"留空则无队伍管理权限","show-password":""},null,8,["modelValue"])]),_:1})]),_:1})):T("v-if",true)]),_:1},8,["modelValue"])])}}}),Da=ie(Ma,[["__scopeId","data-v-8b51a7a2"]]),Ra={class:"cls-header"},Aa={class:"cls-title"},Ba={key:0,class:"error-msg"},La={class:"player-list"},Ua={class:"player-info"},Fa={class:"player-name"},Ka={class:"swap-popover"},Ha={key:0,class:"swap-section"},Ga=["onClick"],Za={class:"swap-manual"},Ja={class:"swap-mode-actions"},Ya={class:"player-right"},qa=["onClick"],Wa={key:1,class:"point-edit"},Xa={key:0,class:"no-players"},Qa={class:"cls-actions"},eo=G({__name:"cls-card",props:{cls:{},status:{},externalCheckResult:{},hasAdmin:{type:Boolean}},emits:["start","stop","check","swap","edit-point"],setup(e,{emit:n}){const t=e,a=n,l=P(()=>t.status.next??t.status.last??[]),u=P(()=>t.status.status==="pending"||t.status.status==="suspended"),d=S(false),m=S(null),$=P(()=>m.value??t.externalCheckResult??null),I=S(""),g=S({});function b(p,f){g.value[p]=f}function h(p){const f=g.value[p];f!==void 0&&a("edit-point",p,f),g.value[p]=void 0}function x(){d.value=true,m.value=null,a("check",p=>{m.value=p,d.value=false})}function E(p,f,F){f!=null&&f.trim()&&(a("swap",p,f.trim(),F),I.value="")}const v=P(()=>{switch(t.status.status){case"pending":return"info";case"running":return"success";case"finished":return"";case"suspended":return"warning";case"starting":return"warning";case"error":return"danger"}}),w=P(()=>{switch(t.status.status){case"pending":return"等待中";case"running":return"进行中";case"finished":return"已结束";case"suspended":return"已停止";case"starting":return"开赛中";case"error":return"错误"}});return(p,f)=>{const F=k("el-tag"),L=k("el-button"),A=k("el-divider"),J=k("el-input"),M=k("el-popover"),K=k("el-card");return i(),N(K,{class:Y(["cls-card",`status-${e.status.status}`]),shadow:"hover"},{header:o(()=>[c("div",Ra,[c("span",Aa,O(e.cls)+"组 - "+O(e.status.rowi+1),1),r(F,{type:v.value,size:"small",effect:"dark"},{default:o(()=>[C(O(w.value),1)]),_:1},8,["type"])])]),default:o(()=>[e.status.status==="error"&&e.status.msg?(i(),_("div",Ba,O(e.status.msg),1)):T("v-if",true),c("div",La,[(i(true),_(q,null,ee(l.value,(z,H)=>{var xe;return i(),_("div",{key:H,class:"player-row"},[c("div",Ua,[$.value?(i(),_("span",{key:0,class:Y(["online-dot",(xe=$.value[H])!=null&&xe.online?"online":"offline"])},null,2)):T("v-if",true),c("span",Fa,O(z.player),1),u.value?(i(),N(M,{key:1,trigger:"click",width:220,placement:"right","popper-class":"swap-popover-container"},{reference:o(()=>[r(L,{size:"small",text:"",class:"swap-btn",title:"换人"},{default:o(()=>[...f[3]||(f[3]=[C("✎",-1)])]),_:1})]),default:o(()=>{var te;return[c("div",Ka,[(te=z.teammates)!=null&&te.length?(i(),_("div",Ha,[f[4]||(f[4]=c("div",{class:"swap-title"},"从队伍名单选择",-1)),(i(true),_(q,null,ee(z.teammates,(re,Oe)=>(i(),_("div",{key:Oe,class:Y(["swap-option",{active:re===z.player}]),onClick:Ye=>E(H,re,false)},O(re),11,Ga))),128))])):T("v-if",true),r(A,{style:{margin:"8px 0"}}),f[7]||(f[7]=c("div",{class:"swap-title"},"手动输入",-1)),c("div",Za,[r(J,{modelValue:I.value,"onUpdate:modelValue":f[0]||(f[0]=re=>I.value=re),size:"small",placeholder:"选手名"},null,8,["modelValue"])]),c("div",Ja,[r(L,{size:"small",onClick:re=>E(H,I.value,false)},{default:o(()=>[...f[5]||(f[5]=[C("临时替换",-1)])]),_:1},8,["onClick"]),e.hasAdmin?(i(),N(L,{key:0,size:"small",type:"primary",onClick:re=>E(H,I.value,true)},{default:o(()=>[...f[6]||(f[6]=[C("修改名单",-1)])]),_:1},8,["onClick"])):T("v-if",true)])])]}),_:2},1024)):T("v-if",true)]),c("div",Ya,[g.value[H]?(i(),_("div",Wa,[r(J,{modelValue:g.value[H],"onUpdate:modelValue":te=>g.value[H]=te,modelModifiers:{number:true},size:"small",style:{width:"70px"},onKeyup:[De(te=>h(H),["enter"]),De(te=>g.value[H]=void 0,["escape"])]},null,8,["modelValue","onUpdate:modelValue","onKeyup"]),r(L,{size:"small",text:"",type:"primary",class:"point-edit-btn",onClick:te=>h(H)},{default:o(()=>[...f[8]||(f[8]=[C("✓",-1)])]),_:1},8,["onClick"]),r(L,{size:"small",text:"",class:"point-edit-btn",onClick:te=>g.value[H]=void 0},{default:o(()=>[...f[9]||(f[9]=[C("✕",-1)])]),_:1},8,["onClick"])])):(i(),_("span",{key:0,class:Y(["player-point",{editable:u.value}]),onClick:te=>u.value&&b(H,z.point)},O(z.point),11,qa))])])}),128)),l.value.length?T("v-if",true):(i(),_("div",Xa,"-"))]),c("div",Qa,[e.status.status==="pending"||e.status.status==="suspended"?(i(),N(L,{key:0,type:"success",size:"small",onClick:f[1]||(f[1]=z=>p.$emit("start"))},{default:o(()=>[...f[10]||(f[10]=[C(" 开赛 ",-1)])]),_:1})):T("v-if",true),e.status.status==="pending"||e.status.status==="running"||e.status.status==="starting"?(i(),N(L,{key:1,type:"warning",size:"small",onClick:f[2]||(f[2]=z=>p.$emit("stop"))},{default:o(()=>[...f[11]||(f[11]=[C(" 停止 ",-1)])]),_:1})):T("v-if",true),u.value?(i(),N(L,{key:2,size:"small",loading:d.value,onClick:x},{default:o(()=>[...f[12]||(f[12]=[C(" 检查 ",-1)])]),_:1},8,["loading"])):T("v-if",true)])]),_:1},8,["class"])}}}),to=ie(eo,[["__scopeId","data-v-d3fd7b1c"]]),no={class:"match-manager"},lo={class:"config-header"},ao={class:"schedule-section"},oo={class:"schedule-list"},so={class:"config-actions"},ro={class:"subscriber-list"},io={key:0,class:"subscriber-empty"},uo={class:"subscriber-add"},co={class:"schedule-control-header"},po={class:"schedule-control-list"},mo={class:"schedule-info"},fo={key:0,class:"schedule-time"},vo={key:2,class:"status-section"},yo={class:"status-header"},go={class:"status-actions"},ho={class:"cls-grid"},_o={key:3,class:"status-placeholder"},bo={class:"log-header"},wo={class:"log-time"},Co={class:"log-msg"},xo={key:0,class:"log-empty"},$o=G({__name:"match-manager",props:{cid:{},contestInfo:{}},emits:["refresh"],setup(e,{emit:n}){const t=e,a=n,l=S({type:"ssb",round:"",lobby:"",playerIndex:"",ver:"",maxRow:"",fillBots:false,allowNegativeScore:false,schedules:[]}),u=S([]),d=S([]),m=S(),$=S(false),I=S(false),g=Yt({}),b=S("");let h=null;function x(y){if(y===""||y===void 0||y===null)return;const s=Number(y);return isNaN(s)?void 0:s}ce(()=>{var y;return(y=t.contestInfo)==null?void 0:y.extra},y=>{y&&(l.value.type=y.type??"ssb",l.value.round=y.round??"",l.value.lobby=y.lobby??"",l.value.playerIndex=y.playerIndex??"",l.value.ver=y.ver||"",l.value.maxRow=y.maxRow??"",l.value.fillBots=y.fillBots??false,l.value.allowNegativeScore=y.allowNegativeScore??false,l.value.schedules=(y.schedules??[]).map(s=>({...s,_time:s.startAt?new Date(2e3,0,1,...s.startAt.split(":").map(Number)):void 0})))},{immediate:true});function E(){l.value.schedules.push({maxRow:10,_time:void 0})}function v(){l.value.schedules=[{maxRow:6,startAt:"14:00",_time:new Date(2e3,0,1,14,0)},{maxRow:10,startAt:"19:00",_time:new Date(2e3,0,1,19,0)}]}async function w(){const y=l.value.schedules.map(s=>({maxRow:s.maxRow,startAt:s._time?`${s._time.getHours().toString().padStart(2,"0")}:${s._time.getMinutes().toString().padStart(2,"0")}`:void 0}));await R("mahjongpub/init",t.cid,{type:l.value.type,round:x(l.value.round),lobby:l.value.lobby||void 0,playerIndex:x(l.value.playerIndex),ver:x(l.value.ver),maxRow:x(l.value.maxRow),schedules:y,fillBots:l.value.fillBots,allowNegativeScore:l.value.allowNegativeScore}),a("refresh"),await f()}async function p(){await R("mahjongpub/deinit",t.cid),u.value=[],a("refresh")}async function f(){var y;if(!(!((y=t.contestInfo)!=null&&y.extra)&&!u.value.length))try{u.value=await R("mahjongpub/cls-status",t.cid)}catch(s){console.error("Failed to refresh status:",s)}}async function F(y){await R("mahjongpub/start",t.cid,[y]),setTimeout(f,1e3)}async function L(y){await R("mahjongpub/stop",t.cid,[y]),setTimeout(f,500)}async function A(y,s){try{const B=await R("mahjongpub/check-players",t.cid,y);g[y]=B,s(B)}catch(B){U.error(`检查失败: ${B}`),s([])}}async function J(){I.value=true;const y=[];try{const s=u.value.filter(([,B])=>B.status==="pending"||B.status==="suspended").map(([B,ne])=>[B,ne]);for(const[B,ne]of s)try{const le=await R("mahjongpub/check-players",t.cid,B);g[B]=le}catch(le){y.push(`${B}组: ${le}`);const ae=ne.next??ne.last??[];g[B]=ae.map(W=>({player:W.player,online:false}))}y.length&&U.warning(`部分检查失败:
6
+ ${y.join(`
7
+ `)}`)}finally{I.value=false}}async function M(y,s,B,ne){try{if(ne){const le=u.value.find(([W])=>W===y);if(!le)return;const ae=(le[1].next??le[1].last??[]).map(W=>W.player);ae[s]=B,await R("mahjongpub/swap-cls-players",t.cid,y,ae),U.success("名单已修改")}else await R("mahjongpub/override-player",t.cid,y,s,B),U.success("临时替换成功");await f()}catch(le){U.error(`换人失败: ${le}`)}}async function K(y,s,B){try{await R("mahjongpub/edit-point",t.cid,y,s,B),U.success("分数已修改"),await f()}catch(ne){U.error(`修改失败: ${ne}`)}}async function z(){const y=b.value.trim();if(y)try{await R("mahjongpub/add-subscriber",t.cid,y),b.value="",a("refresh")}catch(s){U.error(`添加失败: ${s}`)}}async function H(y){try{await R("mahjongpub/remove-subscriber",t.cid,y),a("refresh")}catch(s){U.error(`移除失败: ${s}`)}}async function xe(y){try{await R("mahjongpub/apply-schedule",t.cid,y),a("refresh"),setTimeout(f,1e3)}catch(s){U.error(`应用失败: ${s}`)}}async function te(y){try{await R("mahjongpub/toggle-schedule-pause",t.cid,y),a("refresh")}catch(s){U.error(`操作失败: ${s}`)}}async function re(){$.value=true;try{await R("mahjongpub/start",t.cid,[])}finally{$.value=false,setTimeout(f,1e3)}}async function Oe(){await R("mahjongpub/stop",t.cid,[]),setTimeout(f,500)}function Ye(y){const s=new Date,B=`${s.getHours().toString().padStart(2,"0")}:${s.getMinutes().toString().padStart(2,"0")}:${s.getSeconds().toString().padStart(2,"0")}`;d.value.push({time:B,message:y}),d.value.length>200&&d.value.splice(0,d.value.length-200),Wt(()=>{m.value&&(m.value.scrollTop=m.value.scrollHeight)})}return Ut("mahjongpub/log",y=>{const[s,B]=y;s===t.cid&&Ye(B)}),je(()=>{var y;(y=t.contestInfo)!=null&&y.extra&&f(),h=setInterval(f,3e3)}),qt(()=>{h&&clearInterval(h)}),(y,s)=>{var We,Xe,Qe,et,tt;const B=k("el-tag"),ne=k("el-option"),le=k("el-select"),ae=k("el-form-item"),W=k("el-input"),Mt=k("el-form"),qe=k("el-checkbox"),Dt=k("el-input-number"),Rt=k("el-time-picker"),X=k("el-button"),$e=k("el-card"),At=k("el-switch");return i(),_("div",no,[T(" Config Bar "),r($e,{class:"config-card",shadow:"never"},{header:o(()=>{var D,j;return[c("div",lo,[c("span",null,O((D=e.contestInfo)==null?void 0:D.name)+" — 比赛配置",1),(j=e.contestInfo)!=null&&j.extra?(i(),N(B,{key:0,type:"success",size:"small"},{default:o(()=>[...s[11]||(s[11]=[C("已初始化",-1)])]),_:1})):(i(),N(B,{key:1,type:"info",size:"small"},{default:o(()=>[...s[12]||(s[12]=[C("未初始化",-1)])]),_:1}))])]}),default:o(()=>{var D;return[r(Mt,{inline:true,size:"small","label-width":"70px"},{default:o(()=>[r(ae,{label:"类型"},{default:o(()=>[r(le,{modelValue:l.value.type,"onUpdate:modelValue":s[0]||(s[0]=j=>l.value.type=j),style:{width:"100px"}},{default:o(()=>[r(ne,{label:"掌心 (ti)",value:"ti"}),r(ne,{label:"雀魂 (ssb)",value:"ssb"})]),_:1},8,["modelValue"])]),_:1}),r(ae,{label:"轮次"},{default:o(()=>[r(W,{modelValue:l.value.round,"onUpdate:modelValue":s[1]||(s[1]=j=>l.value.round=j),style:{width:"80px"},placeholder:"默认"},null,8,["modelValue"])]),_:1}),r(ae,{label:"比赛场"},{default:o(()=>[r(W,{modelValue:l.value.lobby,"onUpdate:modelValue":s[2]||(s[2]=j=>l.value.lobby=j),style:{width:"120px"},placeholder:"lobby ID"},null,8,["modelValue"])]),_:1}),r(ae,{label:"选手序号"},{default:o(()=>[r(W,{modelValue:l.value.playerIndex,"onUpdate:modelValue":s[3]||(s[3]=j=>l.value.playerIndex=j),style:{width:"60px"},placeholder:"自动"},null,8,["modelValue"])]),_:1}),r(ae,{label:"版本"},{default:o(()=>[r(W,{modelValue:l.value.ver,"onUpdate:modelValue":s[4]||(s[4]=j=>l.value.ver=j),style:{width:"60px"},placeholder:"0"},null,8,["modelValue"])]),_:1}),r(ae,{label:"最大行"},{default:o(()=>[r(W,{modelValue:l.value.maxRow,"onUpdate:modelValue":s[5]||(s[5]=j=>l.value.maxRow=j),style:{width:"60px"},placeholder:"默认"},null,8,["modelValue"])]),_:1})]),_:1}),r(qe,{modelValue:l.value.fillBots,"onUpdate:modelValue":s[6]||(s[6]=j=>l.value.fillBots=j),size:"small"},{default:o(()=>[...s[13]||(s[13]=[C("BOT 替补",-1)])]),_:1},8,["modelValue"]),r(qe,{modelValue:l.value.allowNegativeScore,"onUpdate:modelValue":s[7]||(s[7]=j=>l.value.allowNegativeScore=j),size:"small"},{default:o(()=>[...s[14]||(s[14]=[C("允许负分",-1)])]),_:1},8,["modelValue"]),c("div",ao,[s[18]||(s[18]=c("div",{class:"schedule-label"},"定时阶段",-1)),c("div",oo,[(i(true),_(q,null,ee(l.value.schedules,(j,ue)=>(i(),_("div",{key:ue,class:"schedule-row"},[r(Dt,{modelValue:j.maxRow,"onUpdate:modelValue":Q=>j.maxRow=Q,min:1,size:"small","controls-position":"right",style:{width:"80px"},placeholder:"maxRow"},null,8,["modelValue","onUpdate:modelValue"]),r(Rt,{modelValue:j._time,"onUpdate:modelValue":Q=>j._time=Q,size:"small",format:"HH:mm",style:{width:"120px"},placeholder:"开始时间",clearable:""},null,8,["modelValue","onUpdate:modelValue"]),r(X,{size:"small",type:"danger",text:"",onClick:Q=>l.value.schedules.splice(ue,1)},{default:o(()=>[...s[15]||(s[15]=[C("×",-1)])]),_:1},8,["onClick"])]))),128))]),r(X,{size:"small",onClick:E},{default:o(()=>[...s[16]||(s[16]=[C("+ 添加阶段",-1)])]),_:1}),l.value.type==="ti"?(i(),N(X,{key:0,size:"small",type:"info",onClick:v},{default:o(()=>[...s[17]||(s[17]=[C("先2副7 预设",-1)])]),_:1})):T("v-if",true)]),c("div",so,[r(X,{type:"primary",size:"small",onClick:w},{default:o(()=>[...s[19]||(s[19]=[C("初始化",-1)])]),_:1}),r(X,{type:"danger",size:"small",disabled:!((D=e.contestInfo)!=null&&D.extra),onClick:p},{default:o(()=>[...s[20]||(s[20]=[C("反初始化",-1)])]),_:1},8,["disabled"])])]}),_:1}),T(" Subscribers "),(We=e.contestInfo)!=null&&We.extra?(i(),N($e,{key:0,class:"subscriber-card",shadow:"never"},{header:o(()=>[...s[21]||(s[21]=[c("div",{class:"subscriber-header"},[c("span",null,"消息订阅")],-1)])]),default:o(()=>{var D;return[c("div",ro,[(i(true),_(q,null,ee(e.contestInfo.extra.subscribers,j=>(i(),N(B,{key:j,closable:"",size:"small",class:"subscriber-tag",onClose:ue=>H(j)},{default:o(()=>[C(O(j),1)]),_:2},1032,["onClose"]))),128)),(D=e.contestInfo.extra.subscribers)!=null&&D.length?T("v-if",true):(i(),_("span",io,"暂无订阅"))]),c("div",uo,[r(W,{modelValue:b.value,"onUpdate:modelValue":s[8]||(s[8]=j=>b.value=j),size:"small",placeholder:"platform:channelId",style:{width:"240px"},onKeyup:De(z,["enter"])},null,8,["modelValue"]),r(X,{size:"small",type:"primary",onClick:z},{default:o(()=>[...s[22]||(s[22]=[C("添加",-1)])]),_:1})])]}),_:1})):T("v-if",true),T(" Schedule Control (runtime) "),(et=(Qe=(Xe=e.contestInfo)==null?void 0:Xe.extra)==null?void 0:Qe.schedules)!=null&&et.length?(i(),N($e,{key:1,class:"schedule-control-card",shadow:"never"},{header:o(()=>[c("div",co,[c("span",null,"定时控制 (当前 maxRow="+O(e.contestInfo.extra.maxRow??"默认")+")",1),r(At,{"model-value":!e.contestInfo.extra.schedulePaused,"active-text":"自动","inactive-text":"暂停",size:"small",onChange:s[9]||(s[9]=D=>te(!D))},null,8,["model-value"])])]),default:o(()=>[c("div",po,[(i(true),_(q,null,ee(e.contestInfo.extra.schedules,(D,j)=>(i(),_("div",{key:j,class:"schedule-control-row"},[c("span",mo,[C(" 阶段 "+O(j+1)+":"+O(D.maxRow)+" 行 ",1),D.startAt?(i(),_("span",fo,"@ "+O(D.startAt),1)):T("v-if",true)]),e.contestInfo.extra.maxRow>=D.maxRow?(i(),N(B,{key:0,type:"success",size:"small"},{default:o(()=>[...s[23]||(s[23]=[C("已生效",-1)])]),_:1})):(i(),N(X,{key:1,size:"small",type:"primary",onClick:ue=>xe(D.maxRow)},{default:o(()=>[...s[24]||(s[24]=[C(" 立即生效 ",-1)])]),_:1},8,["onClick"]))]))),128))])]),_:1})):T("v-if",true),T(" Status Cards "),(tt=e.contestInfo)!=null&&tt.extra?(i(),_("div",vo,[c("div",yo,[c("span",null,"对局状态 — 第 "+O(e.contestInfo.extra.round??e.contestInfo.totalRounds)+" 轮",1),c("div",go,[r(X,{type:"success",size:"small",loading:$.value,onClick:re},{default:o(()=>[...s[25]||(s[25]=[C("全部开赛",-1)])]),_:1},8,["loading"]),r(X,{type:"warning",size:"small",onClick:Oe},{default:o(()=>[...s[26]||(s[26]=[C("全部停止",-1)])]),_:1}),r(X,{size:"small",loading:I.value,onClick:J},{default:o(()=>[...s[27]||(s[27]=[C("全部检查",-1)])]),_:1},8,["loading"]),r(X,{size:"small",onClick:f},{default:o(()=>[...s[28]||(s[28]=[C("刷新",-1)])]),_:1})])]),c("div",ho,[(i(true),_(q,null,ee(u.value,([D,j])=>{var ue;return i(),N(to,{key:D,cls:D,status:j,"external-check-result":g[D],"has-admin":(ue=e.contestInfo)==null?void 0:ue.hasAdmin,onStart:Q=>F(D),onStop:Q=>L(D),onCheck:Q=>A(D,Q),onSwap:(Q,Ee,Bt)=>M(D,Q,Ee,Bt),onEditPoint:(Q,Ee)=>K(D,Q,Ee)},null,8,["cls","status","external-check-result","has-admin","onStart","onStop","onCheck","onSwap","onEditPoint"])}),128))])])):(i(),_("div",_o,[...s[29]||(s[29]=[c("p",null,"请先初始化比赛配置",-1)])])),T(" Log Panel "),r($e,{class:"log-card",shadow:"never"},{header:o(()=>[c("div",bo,[s[31]||(s[31]=c("span",null,"日志",-1)),r(X,{size:"small",text:"",onClick:s[10]||(s[10]=D=>d.value=[])},{default:o(()=>[...s[30]||(s[30]=[C("清空",-1)])]),_:1})])]),default:o(()=>[c("div",{ref_key:"logScrollRef",ref:m,class:"log-scroll"},[(i(true),_(q,null,ee(d.value,(D,j)=>(i(),_("div",{key:j,class:"log-line"},[c("span",wo,O(D.time),1),c("span",Co,O(D.message),1)]))),128)),d.value.length?T("v-if",true):(i(),_("div",xo,"暂无日志"))],512)]),_:1})])}}}),ko=ie($o,[["__scopeId","data-v-355169f5"]]),So={class:"team-manager"},Io={class:"team-header"},zo={class:"team-header-actions"},Vo={key:0,class:"inline-edit"},To={class:"player-index"},jo={class:"inline-edit-actions"},No={key:1,class:"player-display"},Po={key:0,class:"no-players"},Oo=G({__name:"team-manager",props:{cid:{}},setup(e){const n=e,t=S([]),a=S(""),l=S(null),u=S([]),d=S(false),m=P(()=>{if(!a.value)return t.value;const h=a.value.toLowerCase();return t.value.filter(x=>x.name.toLowerCase().includes(h)||x.tid.toString().includes(h)||x.players.some(E=>E.toLowerCase().includes(h)))});async function $(){try{t.value=await R("mahjongpub/list-teams",n.cid)}catch(h){U.error(`加载队伍失败: ${h}`)}}function I(h){l.value=h.tid,u.value=[...h.players]}function g(){l.value=null,u.value=[]}async function b(h){d.value=true;try{const x=u.value.filter(v=>v.trim()),E=await R("mahjongpub/update-team-players",n.cid,h.tid,x);U.success(E||"保存成功"),l.value=null,u.value=[],await $()}catch(x){U.error(`保存失败: ${x}`)}finally{d.value=false}}return je($),(h,x)=>{const E=k("el-input"),v=k("el-button"),w=k("el-table-column"),p=k("el-tag"),f=k("el-table");return i(),_("div",So,[c("div",Io,[x[3]||(x[3]=c("span",null,"队伍管理",-1)),c("div",zo,[r(E,{modelValue:a.value,"onUpdate:modelValue":x[0]||(x[0]=F=>a.value=F),size:"small",placeholder:"搜索队名/选手",clearable:"",style:{width:"200px"}},null,8,["modelValue"]),r(v,{size:"small",onClick:$},{default:o(()=>[...x[2]||(x[2]=[C("刷新",-1)])]),_:1})])]),r(f,{data:m.value,size:"small",border:"",class:"team-table","row-key":"tid"},{default:o(()=>[r(w,{prop:"tid",label:"ID",width:"60",sortable:""}),r(w,{prop:"name",label:"队名",width:"120",sortable:""}),r(w,{label:"选手名单","min-width":"400"},{default:o(({row:F})=>[l.value===F.tid?(i(),_("div",Vo,[(i(true),_(q,null,ee(u.value,(L,A)=>(i(),_("div",{key:A,class:"inline-edit-row"},[c("span",To,O(A+1)+".",1),r(E,{modelValue:u.value[A],"onUpdate:modelValue":J=>u.value[A]=J,size:"small"},null,8,["modelValue","onUpdate:modelValue"]),r(v,{size:"small",type:"danger",text:"",onClick:J=>u.value.splice(A,1)},{default:o(()=>[...x[4]||(x[4]=[C("×",-1)])]),_:1},8,["onClick"])]))),128)),c("div",jo,[r(v,{size:"small",onClick:x[1]||(x[1]=L=>u.value.push(""))},{default:o(()=>[...x[5]||(x[5]=[C("+ 添加",-1)])]),_:1}),r(v,{size:"small",type:"primary",loading:d.value,onClick:L=>b(F)},{default:o(()=>[...x[6]||(x[6]=[C("保存",-1)])]),_:1},8,["loading","onClick"]),r(v,{size:"small",onClick:g},{default:o(()=>[...x[7]||(x[7]=[C("取消",-1)])]),_:1})])])):(i(),_("div",No,[(i(true),_(q,null,ee(F.players,(L,A)=>(i(),N(p,{key:A,size:"small",class:"player-tag"},{default:o(()=>[C(O(L),1)]),_:2},1024))),128)),F.players.length?T("v-if",true):(i(),_("span",Po,"无选手"))]))]),_:1}),r(w,{label:"操作",width:"80",align:"center"},{default:o(({row:F})=>[l.value!==F.tid?(i(),N(v,{key:0,size:"small",text:"",onClick:L=>I(F)},{default:o(()=>[...x[8]||(x[8]=[C(" 编辑 ",-1)])]),_:1},8,["onClick"])):T("v-if",true)]),_:1})]),_:1},8,["data"])])}}}),Eo=ie(Oo,[["__scopeId","data-v-064b204b"]]),Mo={class:"lobby-panel"},Do={class:"lobby-config"},Ro={class:"section-header"},Ao={key:1,class:"empty-hint"},Bo={class:"section-header"},Lo={key:0,class:"game-list"},Uo={class:"game-header"},Fo=["title"],Ko={class:"game-actions"},Ho={class:"game-players"},Go={key:1,class:"empty-hint"},Zo=G({__name:"lobby-panel",props:{cid:{},initLobby:{},initType:{}},setup(e){const n=e,t=S(n.initLobby??""),a=S(n.initType??"ssb"),l=S([]),u=S([]),d=S(false);ce(()=>n.initLobby,b=>{b&&(t.value=b)}),ce(()=>n.initType,b=>{b&&(a.value=b)});async function m(){if(t.value){d.value=true;try{const[b,h]=await Promise.all([R("mahjongpub/lobby-players",+t.value,a.value),R("mahjongpub/lobby-games",+t.value,a.value)]);l.value=b,u.value=h}catch(b){U.error(`查询失败: ${b}`)}finally{d.value=false}}}async function $(b){try{await R("mahjongpub/lobby-pause",+t.value,a.value,b),U.success("已暂停")}catch(h){U.error(`暂停失败: ${h}`)}}async function I(b){try{await R("mahjongpub/lobby-resume",+t.value,a.value,b),U.success("已恢复")}catch(h){U.error(`恢复失败: ${h}`)}}async function g(b){try{await R("mahjongpub/lobby-stop",+t.value,a.value,b),U.success("已中止"),await m()}catch(h){U.error(`中止失败: ${h}`)}}return(b,h)=>{const x=k("el-input"),E=k("el-form-item"),v=k("el-option"),w=k("el-select"),p=k("el-button"),f=k("el-form"),F=k("el-table-column"),L=k("el-table"),A=k("el-card"),J=k("el-popconfirm"),M=k("el-tag");return i(),_("div",Mo,[c("div",Do,[r(f,{inline:true,size:"small"},{default:o(()=>[r(E,{label:"比赛场 ID"},{default:o(()=>[r(x,{modelValue:t.value,"onUpdate:modelValue":h[0]||(h[0]=K=>t.value=K),placeholder:"lobby ID",style:{width:"140px"}},null,8,["modelValue"])]),_:1}),r(E,{label:"平台"},{default:o(()=>[r(w,{modelValue:a.value,"onUpdate:modelValue":h[1]||(h[1]=K=>a.value=K),style:{width:"120px"}},{default:o(()=>[r(v,{label:"掌心 (ti)",value:"ti"}),r(v,{label:"雀魂 (ssb)",value:"ssb"})]),_:1},8,["modelValue"])]),_:1}),r(E,null,{default:o(()=>[r(p,{size:"small",type:"primary",onClick:m},{default:o(()=>[...h[2]||(h[2]=[C("刷新",-1)])]),_:1})]),_:1})]),_:1})]),T(" Ready Players "),r(A,{shadow:"never",class:"section-card"},{header:o(()=>[c("div",Ro,[c("span",null,"待机选手 ("+O(l.value.length)+")",1)])]),default:o(()=>[l.value.length?(i(),N(L,{key:0,data:l.value,size:"small",border:"","max-height":"300"},{default:o(()=>[r(F,{prop:"nickname",label:"昵称","min-width":"150"}),r(F,{prop:"accountId",label:"ID",width:"120"})]),_:1},8,["data"])):(i(),_("div",Ao,O(d.value?"加载中...":t.value?"暂无待机选手":"请输入比赛场 ID 后查询"),1))]),_:1}),T(" Running Games "),r(A,{shadow:"never",class:"section-card"},{header:o(()=>[c("div",Bo,[c("span",null,"进行中对局 ("+O(u.value.length)+")",1)])]),default:o(()=>[u.value.length?(i(),_("div",Lo,[(i(true),_(q,null,ee(u.value,K=>(i(),N(A,{key:K.id,shadow:"hover",class:"game-card"},{default:o(()=>[c("div",Uo,[c("span",{class:"game-id",title:K.id},O(K.id.slice(0,12))+"...",9,Fo),c("div",Ko,[r(p,{size:"small",type:"warning",onClick:z=>$(K.id)},{default:o(()=>[...h[3]||(h[3]=[C("暂停",-1)])]),_:1},8,["onClick"]),r(p,{size:"small",type:"primary",onClick:z=>I(K.id)},{default:o(()=>[...h[4]||(h[4]=[C("恢复",-1)])]),_:1},8,["onClick"]),r(J,{title:"确定中止该对局?",onConfirm:z=>g(K.id)},{reference:o(()=>[r(p,{size:"small",type:"danger"},{default:o(()=>[...h[5]||(h[5]=[C("中止",-1)])]),_:1})]),_:1},8,["onConfirm"])])]),c("div",Ho,[(i(true),_(q,null,ee(K.players,(z,H)=>(i(),N(M,{key:H,size:"small",class:"player-tag"},{default:o(()=>[C(O(z.nickname||`#${z.accountId}`),1)]),_:2},1024))),128))])]),_:2},1024))),128))])):(i(),_("div",Go,O(d.value?"加载中...":t.value?"暂无进行中对局":"请输入比赛场 ID 后查询"),1))]),_:1})])}}}),Jo=ie(Zo,[["__scopeId","data-v-a21c65dd"]]),Yo={key:0,class:"empty-state"},qo={key:1,class:"empty-state"},Wo={key:2,class:"contest-panel"},Xo={class:"first-tab-label"},Qo={key:1},es=G({__name:"contest-panel",props:{cid:{},managed:{},sidebarCollapsed:{type:Boolean}},emits:["toggle-sidebar"],setup(e,{emit:n}){const t=e,a=S("match"),l=S(false),u=S(null);async function d(){l.value=true;try{u.value=await R("mahjongpub/contest-info",t.cid)}catch(m){console.error("Failed to load contest info:",m)}finally{l.value=false}}return ce(()=>t.cid,()=>{a.value="match",d()},{immediate:true}),(m,$)=>{const I=k("el-button"),g=k("el-tab-pane"),b=k("el-tooltip"),h=k("el-tabs");return e.cid?l.value&&!u.value?(i(),_("div",qo,[...$[3]||($[3]=[c("p",null,"加载中...",-1)])])):(i(),_("div",Wo,[r(h,{modelValue:a.value,"onUpdate:modelValue":$[1]||($[1]=x=>a.value=x)},{default:o(()=>{var x;return[r(g,{name:"match"},{label:o(()=>[c("div",Xo,[r(I,{class:"sidebar-toggle-btn",size:"small",text:"",title:e.sidebarCollapsed?"展开侧边栏":"收起侧边栏",onClick:$[0]||($[0]=Se(E=>m.$emit("toggle-sidebar"),["stop"]))},{default:o(()=>[C(O(e.sidebarCollapsed?"▶":"◀"),1)]),_:1},8,["title"]),$[4]||($[4]=c("span",null,"比赛进程",-1))])]),default:o(()=>[r(ko,{cid:e.cid,"contest-info":u.value,onRefresh:d},null,8,["cid","contest-info"])]),_:1}),r(g,{label:"队伍管理",name:"team",disabled:!((x=u.value)!=null&&x.hasAdmin)},{label:o(()=>{var E;return[(E=u.value)!=null&&E.hasAdmin?(i(),_("span",Qo,"队伍管理")):(i(),N(b,{key:0,content:"请先配置管理密码(右键侧边栏比赛项)",placement:"top"},{default:o(()=>[...$[5]||($[5]=[c("span",null,"队伍管理",-1)])]),_:1}))]}),default:o(()=>{var E;return[(E=u.value)!=null&&E.hasAdmin?(i(),N(Eo,{key:0,cid:e.cid},null,8,["cid"])):T("v-if",true)]}),_:1},8,["disabled"]),r(g,{label:"比赛场",name:"lobby"},{default:o(()=>{var E,v,w,p;return[r(Jo,{cid:e.cid,"init-lobby":(v=(E=u.value)==null?void 0:E.extra)==null?void 0:v.lobby,"init-type":(p=(w=u.value)==null?void 0:w.extra)==null?void 0:p.type},null,8,["cid","init-lobby","init-type"])]}),_:1})]}),_:1},8,["modelValue"])])):(i(),_("div",Yo,[...$[2]||($[2]=[c("p",null,"请选择比赛",-1)])]))}}}),ts=ie(es,[["__scopeId","data-v-4c836566"]]),ns={class:"main-layout"},ls={class:"content-wrapper"},as={key:1,class:"empty-state"},os=G({__name:"layout",setup(e){const n=S([]),t=S(null),a=S(false),l=P(()=>n.value.find(I=>I.cid===t.value)??null);async function u(){n.value=await R("mahjongpub/list-managed")}async function d(I){await u(),t.value=I.cid}async function m(I){var g;await u(),t.value===I&&(t.value=((g=n.value[0])==null?void 0:g.cid)??null)}async function $(I,g){await u()}return je(u),(I,g)=>{const b=k("k-layout");return i(),N(b,null,{default:o(()=>[c("div",ns,[c("div",{class:Y(["sidebar-wrapper",{collapsed:a.value}])},[Be(r(Da,{contests:n.value,"active-cid":t.value,onSelect:g[0]||(g[0]=h=>t.value=h),onAdd:d,onRemove:m,onUpdate:$},null,8,["contests","active-cid"]),[[Le,!a.value]])],2),c("div",ls,[t.value?(i(),N(ts,{key:t.value,cid:t.value,managed:l.value,"sidebar-collapsed":a.value,onToggleSidebar:g[1]||(g[1]=h=>a.value=!a.value)},null,8,["cid","managed","sidebar-collapsed"])):(i(),_("div",as,[...g[2]||(g[2]=[c("p",null,"请从左侧选择或添加比赛",-1)])]))])])]),_:1})}}}),ss=ie(os,[["__scopeId","data-v-592f974d"]]),ds=e=>{e.page({name:"比赛管理",path:"/mahjongpub",icon:"mahjongpub:icon",component:ss,authority:3})};export{ds as default};
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .sidebar[data-v-8b51a7a2]{height:100%;display:flex;flex-direction:column}.sidebar-header[data-v-8b51a7a2]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--k-color-divider);font-weight:700}.contest-list[data-v-8b51a7a2]{flex:1;overflow-y:auto}.contest-item[data-v-8b51a7a2]{padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--k-color-divider);position:relative;transition:background-color .2s}.contest-item[data-v-8b51a7a2]:hover{background:var(--k-hover-bg, var(--el-fill-color-light))}.contest-item.active[data-v-8b51a7a2]{background:var(--k-hover-bg, var(--el-color-primary-light-9));border-left:3px solid var(--el-color-primary)}.contest-name[data-v-8b51a7a2]{font-size:14px;font-weight:500}.contest-cid[data-v-8b51a7a2]{font-size:12px;color:var(--k-text-light)}.admin-badge[data-v-8b51a7a2]{position:absolute;top:10px;right:12px;color:var(--el-color-success)}.cls-card[data-v-d3fd7b1c]{border-left:3px solid transparent}.cls-card.status-pending[data-v-d3fd7b1c]{border-left-color:var(--el-color-info)}.cls-card.status-running[data-v-d3fd7b1c]{border-left-color:var(--el-color-success)}.cls-card.status-finished[data-v-d3fd7b1c]{border-left-color:var(--el-color-primary)}.cls-card.status-suspended[data-v-d3fd7b1c],.cls-card.status-starting[data-v-d3fd7b1c]{border-left-color:var(--el-color-warning)}.cls-card.status-error[data-v-d3fd7b1c]{border-left-color:var(--el-color-danger)}.cls-header[data-v-d3fd7b1c]{display:flex;justify-content:space-between;align-items:center}.cls-title[data-v-d3fd7b1c]{font-weight:700}.error-msg[data-v-d3fd7b1c]{color:var(--el-color-danger);font-size:12px;margin-bottom:8px}.player-list[data-v-d3fd7b1c]{display:flex;flex-direction:column;gap:4px}.player-row[data-v-d3fd7b1c]{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:2px 4px;border-radius:2px}.player-row[data-v-d3fd7b1c]:nth-child(odd){background:var(--k-hover-bg, var(--el-fill-color))}.player-info[data-v-d3fd7b1c]{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden}.online-dot[data-v-d3fd7b1c]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.online-dot.online[data-v-d3fd7b1c]{background:var(--el-color-success)}.online-dot.offline[data-v-d3fd7b1c]{background:var(--el-color-danger)}.player-name[data-v-d3fd7b1c]{font-weight:500;color:var(--k-text-normal, var(--el-text-color-primary))}.player-right[data-v-d3fd7b1c]{display:flex;align-items:center;gap:4px;flex-shrink:0}.player-point[data-v-d3fd7b1c]{color:var(--k-text-light, var(--el-text-color-secondary));font-family:monospace}.player-point.editable[data-v-d3fd7b1c]{cursor:pointer;border-bottom:1px dashed var(--el-border-color)}.player-point.editable[data-v-d3fd7b1c]:hover{color:var(--el-color-primary)}.point-edit[data-v-d3fd7b1c]{display:flex;align-items:center;gap:2px;margin-left:auto}.point-edit-btn[data-v-d3fd7b1c]{padding:0 4px;min-width:auto;font-size:13px;margin-left:0!important}.swap-btn[data-v-d3fd7b1c]{padding:2px;font-size:13px}.no-players[data-v-d3fd7b1c]{text-align:center;color:var(--k-text-light, var(--el-text-color-secondary))}.cls-actions[data-v-d3fd7b1c]{margin-top:8px;display:flex;gap:4px;flex-wrap:wrap}.swap-popover-container{padding:8px 4px 8px 12px!important}.swap-popover-container .swap-popover{max-height:240px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:var(--el-border-color) transparent}.swap-popover-container .swap-popover::-webkit-scrollbar{width:4px}.swap-popover-container .swap-popover::-webkit-scrollbar-track{background:transparent}.swap-popover-container .swap-popover::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:2px}.swap-popover-container .swap-popover::-webkit-scrollbar-thumb:hover{background:var(--el-text-color-placeholder)}.swap-popover-container .swap-title{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:4px}.swap-popover-container .swap-option{padding:4px 8px;cursor:pointer;border-radius:4px;font-size:13px}.swap-popover-container .swap-option:hover{background:var(--el-fill-color-light)}.swap-popover-container .swap-option.active{color:var(--el-color-primary);font-weight:500}.swap-popover-container .swap-manual{display:flex;gap:4px;margin-bottom:8px}.swap-popover-container .swap-mode-actions{display:flex;gap:4px;justify-content:flex-end}.swap-popover-container .swap-section{margin-bottom:4px}.match-manager[data-v-07807463]{display:flex;flex-direction:column;gap:16px;min-height:100%}.config-header[data-v-07807463]{display:flex;align-items:center;gap:8px}.config-card[data-v-07807463] .el-card__body{padding-top:12px;padding-bottom:12px}.config-actions[data-v-07807463]{margin-top:8px}.status-section[data-v-07807463]{display:flex;flex-direction:column;gap:12px}.status-header[data-v-07807463]{display:flex;justify-content:space-between;align-items:center;font-weight:700}.status-actions[data-v-07807463]{display:flex;gap:8px}.cls-grid[data-v-07807463]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.status-placeholder[data-v-07807463]{text-align:center;padding:40px;color:var(--k-text-light)}.log-card[data-v-07807463]{flex:1;display:flex;flex-direction:column;min-height:200px;max-height:400px}.log-card[data-v-07807463] .el-card__body{padding:0;flex:1;display:flex;flex-direction:column;overflow:hidden}.log-header[data-v-07807463]{display:flex;justify-content:space-between;align-items:center}.log-scroll[data-v-07807463]{flex:1;overflow-y:auto;padding:8px 16px;font-family:monospace;font-size:12px;scrollbar-width:thin}.log-scroll[data-v-07807463]::-webkit-scrollbar{width:6px}.log-scroll[data-v-07807463]::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:3px}.log-scroll[data-v-07807463]::-webkit-scrollbar-thumb:hover{background:var(--el-border-color-darker, var(--el-text-color-placeholder))}.log-line[data-v-07807463]{padding:2px 0;line-height:1.5}.log-time[data-v-07807463]{color:var(--k-text-light);margin-right:8px}.log-empty[data-v-07807463]{text-align:center;color:var(--k-text-light);padding:20px}.subscriber-card[data-v-07807463] .el-card__body{padding-top:12px;padding-bottom:12px}.subscriber-header[data-v-07807463]{font-weight:700}.subscriber-list[data-v-07807463]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.subscriber-tag[data-v-07807463]{font-family:monospace}.subscriber-empty[data-v-07807463]{color:var(--k-text-light, var(--el-text-color-secondary));font-size:13px}.subscriber-add[data-v-07807463]{display:flex;gap:8px;align-items:center}.schedule-section[data-v-07807463]{margin-top:12px;border-top:1px solid var(--k-color-divider, var(--el-border-color-lighter));padding-top:12px}.schedule-label[data-v-07807463]{font-size:13px;font-weight:500;margin-bottom:8px}.schedule-list[data-v-07807463]{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.schedule-row[data-v-07807463]{display:flex;gap:8px;align-items:center}.schedule-control-card[data-v-07807463] .el-card__body{padding-top:12px;padding-bottom:12px}.schedule-control-header[data-v-07807463]{display:flex;justify-content:space-between;align-items:center;font-weight:700}.schedule-control-list[data-v-07807463]{display:flex;flex-direction:column;gap:8px}.schedule-control-row[data-v-07807463]{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-radius:4px;background:var(--k-hover-bg, var(--el-fill-color))}.schedule-info[data-v-07807463]{font-size:13px}.schedule-time[data-v-07807463]{color:var(--k-text-light, var(--el-text-color-secondary));margin-left:4px}.team-manager[data-v-064b204b]{display:flex;flex-direction:column;gap:12px}.team-header[data-v-064b204b]{display:flex;justify-content:space-between;align-items:center;font-weight:700}.team-header-actions[data-v-064b204b]{display:flex;gap:8px}.player-display[data-v-064b204b]{display:flex;flex-wrap:wrap;gap:4px}.player-tag[data-v-064b204b]{font-size:12px}.no-players[data-v-064b204b]{color:var(--k-text-light, var(--el-text-color-secondary));font-size:12px}.inline-edit[data-v-064b204b]{display:flex;flex-direction:column;gap:4px;padding:4px 0}.inline-edit-row[data-v-064b204b]{display:flex;align-items:center;gap:6px}.player-index[data-v-064b204b]{width:20px;text-align:right;color:var(--k-text-light, var(--el-text-color-secondary));font-size:12px;flex-shrink:0}.inline-edit-actions[data-v-064b204b]{display:flex;gap:6px;margin-top:4px}.lobby-panel[data-v-a21c65dd]{display:flex;flex-direction:column;gap:16px}.lobby-config[data-v-a21c65dd]{margin-bottom:4px}.section-card[data-v-a21c65dd] .el-card__header{padding:12px 16px}.section-header[data-v-a21c65dd]{font-weight:700}.empty-hint[data-v-a21c65dd]{text-align:center;padding:20px;color:var(--k-text-light);font-size:13px}.game-list[data-v-a21c65dd]{display:flex;flex-direction:column;gap:8px}.game-card[data-v-a21c65dd]{border-left:3px solid var(--el-color-success)}.game-card[data-v-a21c65dd] .el-card__body{padding:12px}.game-header[data-v-a21c65dd]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.game-id[data-v-a21c65dd]{font-family:monospace;font-size:12px;color:var(--k-text-light)}.game-actions[data-v-a21c65dd]{display:flex;gap:4px}.game-players[data-v-a21c65dd]{display:flex;gap:6px;flex-wrap:wrap}.player-tag[data-v-a21c65dd]{font-size:13px}.contest-panel[data-v-4c836566]{height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.first-tab-label[data-v-4c836566]{display:inline-flex;align-items:center;gap:4px}.sidebar-toggle-btn[data-v-4c836566]{font-size:inherit;padding:0;min-width:auto;height:auto;line-height:inherit;color:var(--el-text-color-primary);font-weight:400}.sidebar-toggle-btn[data-v-4c836566]:hover{color:var(--el-color-primary)}.contest-panel[data-v-4c836566] .el-tabs{display:flex;flex-direction:column;flex:1;overflow:hidden}.contest-panel[data-v-4c836566] .el-tabs__header{padding-left:8px}.contest-panel[data-v-4c836566] .el-tabs__content{flex:1;overflow:hidden;display:flex;flex-direction:column}.contest-panel[data-v-4c836566] .el-tab-pane{flex:1;overflow-y:auto;padding:12px 16px 16px}.empty-state[data-v-4c836566]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--k-text-light)}.main-layout[data-v-592f974d]{display:flex;height:100%;overflow:hidden}.sidebar-wrapper[data-v-592f974d]{position:relative;width:240px;min-width:240px;border-right:1px solid var(--k-color-divider, var(--el-border-color-lighter));transition:width .2s,min-width .2s;display:flex;flex-direction:column}.sidebar-wrapper.collapsed[data-v-592f974d]{width:0;min-width:0;overflow:hidden}.content-wrapper[data-v-592f974d]{flex:1;overflow:hidden;min-width:0}.empty-state[data-v-592f974d]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--k-text-light);font-size:16px}
1
+ .sidebar[data-v-8b51a7a2]{height:100%;display:flex;flex-direction:column}.sidebar-header[data-v-8b51a7a2]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--k-color-divider);font-weight:700}.contest-list[data-v-8b51a7a2]{flex:1;overflow-y:auto}.contest-item[data-v-8b51a7a2]{padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--k-color-divider);position:relative;transition:background-color .2s}.contest-item[data-v-8b51a7a2]:hover{background:var(--k-hover-bg, var(--el-fill-color-light))}.contest-item.active[data-v-8b51a7a2]{background:var(--k-hover-bg, var(--el-color-primary-light-9));border-left:3px solid var(--el-color-primary)}.contest-name[data-v-8b51a7a2]{font-size:14px;font-weight:500}.contest-cid[data-v-8b51a7a2]{font-size:12px;color:var(--k-text-light)}.admin-badge[data-v-8b51a7a2]{position:absolute;top:10px;right:12px;color:var(--el-color-success)}.cls-card[data-v-d3fd7b1c]{border-left:3px solid transparent}.cls-card.status-pending[data-v-d3fd7b1c]{border-left-color:var(--el-color-info)}.cls-card.status-running[data-v-d3fd7b1c]{border-left-color:var(--el-color-success)}.cls-card.status-finished[data-v-d3fd7b1c]{border-left-color:var(--el-color-primary)}.cls-card.status-suspended[data-v-d3fd7b1c],.cls-card.status-starting[data-v-d3fd7b1c]{border-left-color:var(--el-color-warning)}.cls-card.status-error[data-v-d3fd7b1c]{border-left-color:var(--el-color-danger)}.cls-header[data-v-d3fd7b1c]{display:flex;justify-content:space-between;align-items:center}.cls-title[data-v-d3fd7b1c]{font-weight:700}.error-msg[data-v-d3fd7b1c]{color:var(--el-color-danger);font-size:12px;margin-bottom:8px}.player-list[data-v-d3fd7b1c]{display:flex;flex-direction:column;gap:4px}.player-row[data-v-d3fd7b1c]{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:2px 4px;border-radius:2px}.player-row[data-v-d3fd7b1c]:nth-child(odd){background:var(--k-hover-bg, var(--el-fill-color))}.player-info[data-v-d3fd7b1c]{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden}.online-dot[data-v-d3fd7b1c]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.online-dot.online[data-v-d3fd7b1c]{background:var(--el-color-success)}.online-dot.offline[data-v-d3fd7b1c]{background:var(--el-color-danger)}.player-name[data-v-d3fd7b1c]{font-weight:500;color:var(--k-text-normal, var(--el-text-color-primary))}.player-right[data-v-d3fd7b1c]{display:flex;align-items:center;gap:4px;flex-shrink:0}.player-point[data-v-d3fd7b1c]{color:var(--k-text-light, var(--el-text-color-secondary));font-family:monospace}.player-point.editable[data-v-d3fd7b1c]{cursor:pointer;border-bottom:1px dashed var(--el-border-color)}.player-point.editable[data-v-d3fd7b1c]:hover{color:var(--el-color-primary)}.point-edit[data-v-d3fd7b1c]{display:flex;align-items:center;gap:2px;margin-left:auto}.point-edit-btn[data-v-d3fd7b1c]{padding:0 4px;min-width:auto;font-size:13px;margin-left:0!important}.swap-btn[data-v-d3fd7b1c]{padding:2px;font-size:13px}.no-players[data-v-d3fd7b1c]{text-align:center;color:var(--k-text-light, var(--el-text-color-secondary))}.cls-actions[data-v-d3fd7b1c]{margin-top:8px;display:flex;gap:4px;flex-wrap:wrap}.swap-popover-container{padding:8px 4px 8px 12px!important}.swap-popover-container .swap-popover{max-height:240px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:var(--el-border-color) transparent}.swap-popover-container .swap-popover::-webkit-scrollbar{width:4px}.swap-popover-container .swap-popover::-webkit-scrollbar-track{background:transparent}.swap-popover-container .swap-popover::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:2px}.swap-popover-container .swap-popover::-webkit-scrollbar-thumb:hover{background:var(--el-text-color-placeholder)}.swap-popover-container .swap-title{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:4px}.swap-popover-container .swap-option{padding:4px 8px;cursor:pointer;border-radius:4px;font-size:13px}.swap-popover-container .swap-option:hover{background:var(--el-fill-color-light)}.swap-popover-container .swap-option.active{color:var(--el-color-primary);font-weight:500}.swap-popover-container .swap-manual{display:flex;gap:4px;margin-bottom:8px}.swap-popover-container .swap-mode-actions{display:flex;gap:4px;justify-content:flex-end}.swap-popover-container .swap-section{margin-bottom:4px}.match-manager[data-v-355169f5]{display:flex;flex-direction:column;gap:16px;min-height:100%}.config-header[data-v-355169f5]{display:flex;align-items:center;gap:8px}.config-card[data-v-355169f5] .el-card__body{padding-top:12px;padding-bottom:12px}.config-actions[data-v-355169f5]{margin-top:8px}.status-section[data-v-355169f5]{display:flex;flex-direction:column;gap:12px}.status-header[data-v-355169f5]{display:flex;justify-content:space-between;align-items:center;font-weight:700}.status-actions[data-v-355169f5]{display:flex;gap:8px}.cls-grid[data-v-355169f5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.status-placeholder[data-v-355169f5]{text-align:center;padding:40px;color:var(--k-text-light)}.log-card[data-v-355169f5]{flex:1;display:flex;flex-direction:column;min-height:200px;max-height:400px}.log-card[data-v-355169f5] .el-card__body{padding:0;flex:1;display:flex;flex-direction:column;overflow:hidden}.log-header[data-v-355169f5]{display:flex;justify-content:space-between;align-items:center}.log-scroll[data-v-355169f5]{flex:1;overflow-y:auto;padding:8px 16px;font-family:monospace;font-size:12px;scrollbar-width:thin}.log-scroll[data-v-355169f5]::-webkit-scrollbar{width:6px}.log-scroll[data-v-355169f5]::-webkit-scrollbar-thumb{background:var(--el-border-color);border-radius:3px}.log-scroll[data-v-355169f5]::-webkit-scrollbar-thumb:hover{background:var(--el-border-color-darker, var(--el-text-color-placeholder))}.log-line[data-v-355169f5]{padding:2px 0;line-height:1.5}.log-time[data-v-355169f5]{color:var(--k-text-light);margin-right:8px}.log-empty[data-v-355169f5]{text-align:center;color:var(--k-text-light);padding:20px}.subscriber-card[data-v-355169f5] .el-card__body{padding-top:12px;padding-bottom:12px}.subscriber-header[data-v-355169f5]{font-weight:700}.subscriber-list[data-v-355169f5]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.subscriber-tag[data-v-355169f5]{font-family:monospace}.subscriber-empty[data-v-355169f5]{color:var(--k-text-light, var(--el-text-color-secondary));font-size:13px}.subscriber-add[data-v-355169f5]{display:flex;gap:8px;align-items:center}.schedule-section[data-v-355169f5]{margin-top:12px;border-top:1px solid var(--k-color-divider, var(--el-border-color-lighter));padding-top:12px}.schedule-label[data-v-355169f5]{font-size:13px;font-weight:500;margin-bottom:8px}.schedule-list[data-v-355169f5]{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.schedule-row[data-v-355169f5]{display:flex;gap:8px;align-items:center}.schedule-control-card[data-v-355169f5] .el-card__body{padding-top:12px;padding-bottom:12px}.schedule-control-header[data-v-355169f5]{display:flex;justify-content:space-between;align-items:center;font-weight:700}.schedule-control-list[data-v-355169f5]{display:flex;flex-direction:column;gap:8px}.schedule-control-row[data-v-355169f5]{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-radius:4px;background:var(--k-hover-bg, var(--el-fill-color))}.schedule-info[data-v-355169f5]{font-size:13px}.schedule-time[data-v-355169f5]{color:var(--k-text-light, var(--el-text-color-secondary));margin-left:4px}.team-manager[data-v-064b204b]{display:flex;flex-direction:column;gap:12px}.team-header[data-v-064b204b]{display:flex;justify-content:space-between;align-items:center;font-weight:700}.team-header-actions[data-v-064b204b]{display:flex;gap:8px}.player-display[data-v-064b204b]{display:flex;flex-wrap:wrap;gap:4px}.player-tag[data-v-064b204b]{font-size:12px}.no-players[data-v-064b204b]{color:var(--k-text-light, var(--el-text-color-secondary));font-size:12px}.inline-edit[data-v-064b204b]{display:flex;flex-direction:column;gap:4px;padding:4px 0}.inline-edit-row[data-v-064b204b]{display:flex;align-items:center;gap:6px}.player-index[data-v-064b204b]{width:20px;text-align:right;color:var(--k-text-light, var(--el-text-color-secondary));font-size:12px;flex-shrink:0}.inline-edit-actions[data-v-064b204b]{display:flex;gap:6px;margin-top:4px}.lobby-panel[data-v-a21c65dd]{display:flex;flex-direction:column;gap:16px}.lobby-config[data-v-a21c65dd]{margin-bottom:4px}.section-card[data-v-a21c65dd] .el-card__header{padding:12px 16px}.section-header[data-v-a21c65dd]{font-weight:700}.empty-hint[data-v-a21c65dd]{text-align:center;padding:20px;color:var(--k-text-light);font-size:13px}.game-list[data-v-a21c65dd]{display:flex;flex-direction:column;gap:8px}.game-card[data-v-a21c65dd]{border-left:3px solid var(--el-color-success)}.game-card[data-v-a21c65dd] .el-card__body{padding:12px}.game-header[data-v-a21c65dd]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.game-id[data-v-a21c65dd]{font-family:monospace;font-size:12px;color:var(--k-text-light)}.game-actions[data-v-a21c65dd]{display:flex;gap:4px}.game-players[data-v-a21c65dd]{display:flex;gap:6px;flex-wrap:wrap}.player-tag[data-v-a21c65dd]{font-size:13px}.contest-panel[data-v-4c836566]{height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.first-tab-label[data-v-4c836566]{display:inline-flex;align-items:center;gap:4px}.sidebar-toggle-btn[data-v-4c836566]{font-size:inherit;padding:0;min-width:auto;height:auto;line-height:inherit;color:var(--el-text-color-primary);font-weight:400}.sidebar-toggle-btn[data-v-4c836566]:hover{color:var(--el-color-primary)}.contest-panel[data-v-4c836566] .el-tabs{display:flex;flex-direction:column;flex:1;overflow:hidden}.contest-panel[data-v-4c836566] .el-tabs__header{padding-left:8px}.contest-panel[data-v-4c836566] .el-tabs__content{flex:1;overflow:hidden;display:flex;flex-direction:column}.contest-panel[data-v-4c836566] .el-tab-pane{flex:1;overflow-y:auto;padding:12px 16px 16px}.empty-state[data-v-4c836566]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--k-text-light)}.main-layout[data-v-592f974d]{display:flex;height:100%;overflow:hidden}.sidebar-wrapper[data-v-592f974d]{position:relative;width:240px;min-width:240px;border-right:1px solid var(--k-color-divider, var(--el-border-color-lighter));transition:width .2s,min-width .2s;display:flex;flex-direction:column}.sidebar-wrapper.collapsed[data-v-592f974d]{width:0;min-width:0;overflow:hidden}.content-wrapper[data-v-592f974d]{flex:1;overflow:hidden;min-width:0}.empty-state[data-v-592f974d]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--k-text-light);font-size:16px}
package/lib/index.js CHANGED
@@ -70,7 +70,7 @@ var TeamAdmin = class {
70
70
  this.cid = data.cid;
71
71
  this.name = data.t_name;
72
72
  this.description = data.t_ps;
73
- this.players = [...data.t_player?.split(/\s+/) ?? [], ...data.t_sub?.split(/\s+/) ?? []].filter((x) => x);
73
+ this.players = [...data.t_player?.split(/\r?\n/) ?? [], ...data.t_sub?.split(/\r?\n/) ?? []].filter((x) => x);
74
74
  this.img = data.img;
75
75
  this.ready = !!+(data.t_type ?? 0);
76
76
  }
@@ -127,7 +127,7 @@ var ContestAdmin = class {
127
127
  cid: this.cid,
128
128
  name: team.t_name,
129
129
  qq: team.qq?.split(/\s+/).filter((x) => x) ?? [],
130
- players: [...team.t_player?.split(/\s+/) ?? [], ...team.t_sub?.split(/\s+/) ?? []].filter((x) => x),
130
+ players: [...team.t_player?.split(/\r?\n/) ?? [], ...team.t_sub?.split(/\r?\n/) ?? []].filter((x) => x),
131
131
  pw: team.t_pw
132
132
  }]));
133
133
  }
@@ -276,7 +276,7 @@ var MahjongPub = class _MahjongPub {
276
276
  responseType: "json"
277
277
  }).then((teams) => (0, import_koishi.mapValues)(teams, (team) => ({
278
278
  ...team,
279
- players: [...team.t_player?.split(/\s+/) ?? [], ...team.t_sub?.split(/\s+/) ?? []].filter((x) => x)
279
+ players: [...team.t_player?.split(/\r?\n/) ?? [], ...team.t_sub?.split(/\r?\n/) ?? []].filter((x) => x)
280
280
  })));
281
281
  }
282
282
  async getRounds(cid) {
@@ -1064,7 +1064,7 @@ var ConsoleExtension = class {
1064
1064
  cextra.playerIndex = options.playerIndex;
1065
1065
  cextra.ver = options.ver ?? 0;
1066
1066
  cextra.maxRow = options.maxRow;
1067
- if (options.schedules) cextra.schedules = options.schedules;
1067
+ cextra.schedules = options.schedules;
1068
1068
  if (!(0, import_koishi3.isNullable)(options.fillBots)) cextra.fillBots = options.fillBots;
1069
1069
  if (!(0, import_koishi3.isNullable)(options.allowNegativeScore)) cextra.allowNegativeScore = options.allowNegativeScore;
1070
1070
  cextra.stopCls.clear();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hieuzest/koishi-plugin-mahjongpub",
3
3
  "description": "Mahjong.pub API",
4
- "version": "0.3.12",
4
+ "version": "0.3.13",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [