diff --git a/app/amazon/patrol_delete.py b/app/amazon/patrol_delete.py index 8713496..4ea8ad3 100644 --- a/app/amazon/patrol_delete.py +++ b/app/amazon/patrol_delete.py @@ -1792,6 +1792,10 @@ class PatrolDeleteTask: f"国家 {country_name} 处理结束,success={country_result['success']}," f"deleted={country_result['deletedCount']},reopenRequired={requires_browser_reset}" ) + self._post_progress_result_safely( + task_id=task_id, + shop_name=shop_name, + ) if driver is not None: self.log(f"店铺 {shop_name} 国家处理完成,正在关闭店铺") @@ -1822,6 +1826,22 @@ class PatrolDeleteTask: del runing_shop[shop_name] self.log(f"店铺 {shop_name} 已从执行列表中移除") + def _post_progress_result_safely( + self, + task_id: int, + shop_name: str, + ) -> None: + """Submit a heartbeat-only payload so Java does not append duplicate result rows.""" + try: + self.post_result( + task_id=task_id, + shop_name=shop_name, + shop_done=False, + heartbeat_only=True, + ) + except Exception as exc: + self.log(f"店铺 {shop_name} 中间结果回传失败,继续执行: {str(exc)}", "WARNING") + def open_shop(self, max_retries: int, company_name: str, shop_name: str, iskill: bool = False) -> Optional[InventoryManage]: error_info = "" driver: Optional[InventoryManage] = None @@ -1996,6 +2016,8 @@ class PatrolDeleteTask: "type": "completeDraft", "status": PatrolDeleteTask._string_result_field(item.get("tag")), "quantity": quantity, + "deleteQuantity": "", + "processStatus": "", } ) self.log(f"trace_id={trace_id} 国家 {country_name} 补全草稿读取完成: rows={rows}") @@ -2032,6 +2054,7 @@ class PatrolDeleteTask: "status": status, "quantity": InventoryManage._normalize_quantity_text(item.get("quantity")), "deleteQuantity": str(deleted_count), + "processStatus": "已完成" if deleted_count > 0 else "", } ) section = {"country": country_name, "rows": rows} if rows else None @@ -2116,6 +2139,7 @@ class PatrolDeleteTask: cart_ratios: Optional[List[Dict[str, Any]]] = None, error: str = "", shop_done: bool = False, + heartbeat_only: bool = False, ): """回传巡店删除结果到 Java API。""" from config import DELETE_BRAND_API_BASE @@ -2130,6 +2154,8 @@ class PatrolDeleteTask: } if error: shop_payload["error"] = error + elif heartbeat_only: + shop_payload["heartbeatOnly"] = True else: shop_payload["countrySections"] = self._normalize_country_sections_for_result(country_sections) shop_payload["cartRatios"] = self._normalize_cart_ratios_for_result(cart_ratios) @@ -2217,9 +2243,12 @@ class PatrolDeleteTask: rows = [] for row in section.get("rows") or []: if cls._is_complete_draft_result_row(row): + delete_quantity = cls._string_result_field(row.get("deleteQuantity")) normalized_row = { + "status": cls._complete_draft_result_status(row), "quantity": cls._string_result_field(row.get("quantity")), - "deleteQuantity": cls._string_result_field(row.get("deleteQuantity")), + "deleteQuantity": delete_quantity, + "processStatus": cls._complete_draft_process_status(row, delete_quantity), } else: normalized_row = { @@ -2255,6 +2284,19 @@ class PatrolDeleteTask: row_type = str(row.get("type") or row.get("kind") or row.get("_kind") or "").strip() return status in {"补全草稿", "商品信息草稿"} or tag == "补全草稿" or row_type == "completeDraft" + @staticmethod + def _complete_draft_result_status(row: Dict[str, Any]) -> str: + status = PatrolDeleteTask._string_result_field(row.get("status") or row.get("tag")).strip() + return status or "商品信息草稿" + + @staticmethod + def _complete_draft_process_status(row: Dict[str, Any], delete_quantity: str) -> str: + process_status = PatrolDeleteTask._string_result_field(row.get("processStatus")).strip() + if process_status: + return process_status + match = re.search(r"\d+", str(delete_quantity or "")) + return "已完成" if match and int(match.group(0)) > 0 else "" + @classmethod def _replace_complete_draft_rows( cls, diff --git a/app/blueprints/main.py b/app/blueprints/main.py index 00fde1f..657a6d8 100644 --- a/app/blueprints/main.py +++ b/app/blueprints/main.py @@ -27,9 +27,9 @@ def _resolve_asset_filename(filename): """Resolve hashed Vite assets without maintaining hardcoded alias tables.""" safe_name = os.path.basename(filename) asset_dirs = [ - ASSETS_DIR, os.path.abspath(os.path.join(BASE_DIR, 'new_web_source', 'assets')), os.path.abspath(os.path.join(BASE_DIR, '..', 'new_web_source', 'assets')), + ASSETS_DIR, ] for asset_dir in asset_dirs: exact_path = os.path.join(asset_dir, safe_name) @@ -153,9 +153,9 @@ def serve_assets(filename): """提供 static 目录及子目录下的静态文件访问。""" filename = _resolve_asset_filename(filename) candidate_dirs = [ - os.path.abspath(ASSETS_DIR), os.path.abspath(os.path.join(BASE_DIR, 'new_web_source', 'assets')), os.path.abspath(os.path.join(BASE_DIR, '..', 'new_web_source', 'assets')), + os.path.abspath(ASSETS_DIR), ] for static_abs in candidate_dirs: filepath = os.path.normpath(os.path.join(static_abs, filename)) diff --git a/app/main.py b/app/main.py index 148cb5f..365b576 100644 --- a/app/main.py +++ b/app/main.py @@ -7,13 +7,13 @@ import json import sys import shutil import os -from amazon.main import TaskMonitor os.makedirs(cache_path,exist_ok=True) if not debug: today = datetime.datetime.now().strftime("%Y_%m_%d") sys.stdout = open(os.path.join(cache_path,f'{today}.log'), 'a',buffering=1,encoding='utf-8') sys.stderr = sys.stdout +from amazon.main import TaskMonitor import webview import threading import time diff --git a/app/new_web_source/convert.html b/app/new_web_source/convert.html index 426aa71..bd4790e 100644 --- a/app/new_web_source/convert.html +++ b/app/new_web_source/convert.html @@ -1,16 +1,16 @@ - - -
- - -t.dragging,j=>{p(j)}),Ft(S,"touchstart",R,{passive:!1}),{disabled:a,button:S,tooltip:h,tooltipVisible:m,showTooltip:l,persistent:u,wrapperStyle:E,formatValue:b,handleMouseEnter:$,handleMouseLeave:O,onButtonDown:R,onKeyDown:P,setPosition:q}},k7=Ce({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:Lo,default:"top"}}),E7={[tt]:e=>He(e)},x7=["tabindex"];var T7=re({name:"ElSliderButton",__name:"button",props:k7,emits:E7,setup(e,{expose:t,emit:n}){const a=e,o=n,r=fe("slider"),s=At({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:a.modelValue}),l=w(()=>f.value?v.value:!1),{disabled:u,button:c,tooltip:d,showTooltip:f,persistent:v,tooltipVisible:g,wrapperStyle:p,formatValue:h,handleMouseEnter:m,handleMouseLeave:b,onButtonDown:k,onKeyDown:y,setPosition:S}=C7(a,s,o),{hovering:C,dragging:E}=Mn(s);return t({onButtonDown:k,onKeyDown:y,setPosition:S,hovering:C,dragging:E}),($,O)=>(x(),B("div",{ref_key:"button",ref:c,class:T([i(r).e("button-wrapper"),{hover:i(C),dragging:i(E)}]),style:Ke(i(p)),tabindex:i(u)?void 0:0,onMouseenter:O[0]||(O[0]=(...R)=>i(m)&&i(m)(...R)),onMouseleave:O[1]||(O[1]=(...R)=>i(b)&&i(b)(...R)),onMousedown:O[2]||(O[2]=(...R)=>i(k)&&i(k)(...R)),onFocus:O[3]||(O[3]=(...R)=>i(m)&&i(m)(...R)),onBlur:O[4]||(O[4]=(...R)=>i(b)&&i(b)(...R)),onKeydown:O[5]||(O[5]=(...R)=>i(y)&&i(y)(...R))},[Y(i(Ln),{ref_key:"tooltip",ref:d,visible:i(g),placement:$.placement,"fallback-placements":["top","bottom","right","left"],"stop-popper-mouse-event":!1,"popper-class":$.tooltipClass,disabled:!i(f),persistent:l.value},{content:J(()=>[H("span",null,Se(i(h)),1)]),default:J(()=>[H("div",{class:T([i(r).e("button"),{hover:i(C),dragging:i(E)}])},null,2)]),_:1},8,["visible","placement","popper-class","disabled","persistent"])],46,x7))}}),E0=T7;const $7=Ce({mark:{type:G([String,Object]),default:void 0}});var O7=re({name:"ElSliderMarker",props:$7,setup(e){const t=fe("slider"),n=w(()=>Le(e.mark)?e.mark:e.mark.label),a=w(()=>Le(e.mark)?void 0:e.mark.style);return()=>qe("div",{class:t.e("marks-text"),style:a.value},n.value)}});const N7=["id","role","aria-label","aria-labelledby"],R7={key:1};var I7=re({name:"ElSlider",__name:"slider",props:h7,emits:v7,setup(e,{expose:t,emit:n}){const a=e,o=n,r=fe("slider"),{t:s}=Ct(),l=At({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:u,slider:c,firstButton:d,secondButton:f,sliderDisabled:v,minValue:g,maxValue:p,runwayStyle:h,barStyle:m,resetSize:b,emitChange:k,onSliderWrapperPrevent:y,onSliderClick:S,onSliderDown:C,onSliderMarkerDown:E,setFirstValue:$,setSecondValue:O}=b7(a,l,o),{stops:R,getStopStyle:N}=y7(a,l,g,p),{inputId:A,isLabeledByFormItem:_}=Ia(a,{formItemContext:u}),V=Cn(),z=w(()=>a.inputSize||V.value),U=w(()=>a.ariaLabel||s("el.slider.defaultLabel",{min:a.min,max:a.max})),W=w(()=>a.range?a.rangeStartLabel||s("el.slider.defaultRangeStartLabel"):U.value),P=w(()=>a.formatValueText?a.formatValueText(X.value):`${X.value}`),I=w(()=>a.rangeEndLabel||s("el.slider.defaultRangeEndLabel")),L=w(()=>a.formatValueText?a.formatValueText(Q.value):`${Q.value}`),D=w(()=>[r.b(),r.m(V.value),r.is("vertical",a.vertical),{[r.m("with-input")]:a.showInput}]),F=g7(a);w7(a,l,g,p,o,u);const q=w(()=>{const ge=[a.min,a.max,a.step].map(ie=>{const ae=`${ie}`.split(".")[1];return ae?ae.length:0});return Math.max.apply(null,ge)}),{sliderWrapper:j}=m7(a,l,b),{firstValue:X,secondValue:Q,sliderSize:he}=Mn(l),ue=ge=>{l.dragging=ge};return Ft(j,"touchstart",y,{passive:!1}),Ft(j,"touchmove",y,{passive:!1}),St(rE,{...Mn(a),sliderSize:he,disabled:v,precision:q,emitChange:k,resetSize:b,updateDragging:ue}),t({onSliderClick:S}),(ge,ie)=>(x(),B("div",{id:ge.range?i(A):void 0,ref_key:"sliderWrapper",ref:j,class:T(D.value),role:ge.range?"group":void 0,"aria-label":ge.range&&!i(_)?U.value:void 0,"aria-labelledby":ge.range&&i(_)?i(u)?.labelId:void 0},[H("div",{ref_key:"slider",ref:c,class:T([i(r).e("runway"),{"show-input":ge.showInput&&!ge.range},i(r).is("disabled",i(v))]),style:Ke(i(h)),onMousedown:ie[0]||(ie[0]=(...ae)=>i(C)&&i(C)(...ae)),onTouchstartPassive:ie[1]||(ie[1]=(...ae)=>i(C)&&i(C)(...ae))},[H("div",{class:T(i(r).e("bar")),style:Ke(i(m))},null,6),Y(E0,{id:ge.range?void 0:i(A),ref_key:"firstButton",ref:d,"model-value":i(X),vertical:ge.vertical,"tooltip-class":ge.tooltipClass,placement:ge.placement,role:"slider","aria-label":ge.range||!i(_)?W.value:void 0,"aria-labelledby":!ge.range&&i(_)?i(u)?.labelId:void 0,"aria-valuemin":ge.min,"aria-valuemax":ge.range?i(Q):ge.max,"aria-valuenow":i(X),"aria-valuetext":P.value,"aria-orientation":ge.vertical?"vertical":"horizontal","aria-disabled":i(v),"onUpdate:modelValue":i($)},null,8,["id","model-value","vertical","tooltip-class","placement","aria-label","aria-labelledby","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"]),ge.range?(x(),oe(E0,{key:0,ref_key:"secondButton",ref:f,"model-value":i(Q),vertical:ge.vertical,"tooltip-class":ge.tooltipClass,placement:ge.placement,role:"slider","aria-label":I.value,"aria-valuemin":i(X),"aria-valuemax":ge.max,"aria-valuenow":i(Q),"aria-valuetext":L.value,"aria-orientation":ge.vertical?"vertical":"horizontal","aria-disabled":i(v),"onUpdate:modelValue":i(O)},null,8,["model-value","vertical","tooltip-class","placement","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"])):te("v-if",!0),ge.showStops?(x(),B("div",R7,[(x(!0),B(Fe,null,yt(i(R),(ae,ne)=>(x(),B("div",{key:ne,class:T(i(r).e("stop")),style:Ke(i(N)(ae))},null,6))),128))])):te("v-if",!0),i(F).length>0?(x(),B(Fe,{key:2},[H("div",null,[(x(!0),B(Fe,null,yt(i(F),(ae,ne)=>(x(),B("div",{key:ne,style:Ke(i(N)(ae.position)),class:T([i(r).e("stop"),i(r).e("marks-stop")])},null,6))),128))]),H("div",{class:T(i(r).e("marks"))},[(x(!0),B(Fe,null,yt(i(F),(ae,ne)=>(x(),oe(i(O7),{key:ne,mark:ae.mark,style:Ke(i(N)(ae.position)),onMousedown:Ge(K=>i(E)(ae.position),["stop"])},null,8,["mark","style","onMousedown"]))),128))],2)],64)):te("v-if",!0)],38),ge.showInput&&!ge.range?(x(),oe(i(_2),{key:0,ref:"input","model-value":i(X),class:T(i(r).e("input")),step:ge.step,disabled:i(v),controls:ge.showInputControls,min:ge.min,max:ge.max,precision:q.value,size:z.value,"onUpdate:modelValue":i($),onChange:i(k)},null,8,["model-value","class","step","disabled","controls","min","max","precision","size","onUpdate:modelValue","onChange"])):te("v-if",!0)],10,N7))}}),P7=I7;const M7=rt(P7),_7=Ce({prefixCls:{type:String}}),x0=re({name:"ElSpaceItem",props:_7,setup(e,{slots:t}){const n=fe("space"),a=w(()=>`${e.prefixCls||n.b()}__item`);return()=>qe("div",{class:a.value},ee(t,"default"))}}),T0={small:8,default:12,large:16};function A7(e){const t=fe("space"),n=w(()=>[t.b(),t.m(e.direction),e.class]),a=M(0),o=M(0),r=w(()=>[e.wrap||e.fill?{flexWrap:"wrap"}:{},{alignItems:e.alignment},{rowGap:`${o.value}px`,columnGap:`${a.value}px`},e.style]),s=w(()=>e.fill?{flexGrow:1,minWidth:`${e.fillRatio}%`}:{});return wa(()=>{const{size:l="small",wrap:u,direction:c,fill:d}=e;if(ye(l)){const[f=0,v=0]=l;a.value=f,o.value=v}else{let f;He(l)?f=l:f=T0[l||"small"]||T0.small,(u||d)&&c==="horizontal"?a.value=o.value=f:c==="horizontal"?(a.value=f,o.value=0):(o.value=f,a.value=0)}}),{classes:n,containerStyle:r,itemStyle:s}}const L7=Ce({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},class:{type:G([String,Object,Array]),default:""},style:{type:G([String,Array,Object]),default:""},alignment:{type:G(String),default:"center"},prefixCls:{type:String},spacer:{type:G([Object,String,Number,Array]),default:null,validator:e=>Ut(e)||He(e)||Le(e)},wrap:Boolean,fill:Boolean,fillRatio:{type:Number,default:100},size:{type:[String,Array,Number],values:so,validator:e=>He(e)||ye(e)&&e.length===2&&e.every(He)}}),D7=re({name:"ElSpace",props:L7,setup(e,{slots:t}){const{classes:n,containerStyle:a,itemStyle:o}=A7(e);function r(s,l="",u=[]){const{prefixCls:c}=e;return s.forEach((d,f)=>{Wp(d)?ye(d.children)&&d.children.forEach((v,g)=>{Wp(v)&&ye(v.children)?r(v.children,`${l+g}-`,u):Ut(v)&&v?.type===mn?u.push(v):u.push(Y(x0,{style:o.value,prefixCls:c,key:`nested-${l+g}`},{default:()=>[v]},Wa.PROPS|Wa.STYLE,["style","prefixCls"]))}):m4(d)&&u.push(Y(x0,{style:o.value,prefixCls:c,key:`LoopKey${l+f}`},{default:()=>[d]},Wa.PROPS|Wa.STYLE,["style","prefixCls"]))}),u}return()=>{const{spacer:s,direction:l}=e,u=ee(t,"default",{key:0},()=>[]);if((u.children??[]).length===0)return null;if(ye(u.children)){let c=r(u.children);if(s){const d=c.length-1;c=c.reduce((f,v,g)=>{const p=[...f,v];return g!==d&&p.push(Y("span",{style:[o.value,l==="vertical"?"width: 100%":null],key:g},[Ut(s)?s:wt(s,Wa.TEXT)],Wa.STYLE)),p},[])}return Y("div",{class:n.value,style:a.value},c,Wa.STYLE|Wa.CLASS)}return u.children}}}),B7=rt(D7),F7=Ce({space:{type:[Number,String],default:""},active:{type:Number,default:0},direction:{type:String,default:"horizontal",values:["horizontal","vertical"]},alignCenter:{type:Boolean},simple:{type:Boolean},finishStatus:{type:String,values:["wait","process","finish","error","success"],default:"finish"},processStatus:{type:String,values:["wait","process","finish","error","success"],default:"process"}}),V7={[bt]:(e,t)=>[e,t].every(He)},sE="ElSteps",z7=Ce({title:{type:String,default:""},icon:{type:Kt},description:{type:String,default:""},status:{type:String,values:["","wait","process","finish","error","success"],default:""}});var H7=re({name:"ElSteps",__name:"steps",props:F7,emits:V7,setup(e,{emit:t}){const n=e,a=t,o=fe("steps"),{children:r,addChild:s,removeChild:l,ChildrenSorter:u}=Qd(ft(),"ElStep");return le(r,()=>{r.value.forEach((c,d)=>{c.setIndex(d)})}),St(sE,{props:n,steps:r,addStep:s,removeStep:l}),le(()=>n.active,(c,d)=>{a(bt,c,d)}),(c,d)=>(x(),B("div",{class:T([i(o).b(),i(o).m(e.simple?"simple":e.direction)])},[ee(c.$slots,"default"),Y(i(u))],2))}}),K7=H7,W7=re({name:"ElStep",__name:"item",props:z7,setup(e){const t=e,n=fe("step"),a=M(-1),o=M({}),r=M(""),s=_e(sE),l=ft();let u=0,c=0;ht(()=>{le([()=>s.props.active,()=>s.props.processStatus,()=>s.props.finishStatus],([O],[R])=>{c=R||0,u=O-c,E(O)},{immediate:!0})});const d=w(()=>t.status||r.value),f=w(()=>{const O=s.steps.value[a.value-1];return O?O.internalStatus.value:"wait"}),v=w(()=>s.props.alignCenter),g=w(()=>s.props.direction==="vertical"),p=w(()=>s.props.simple),h=w(()=>s.steps.value.length),m=w(()=>s.steps.value[h.value-1]?.uid===l.uid),b=w(()=>p.value?"":s.props.space),k=w(()=>[n.b(),n.is(p.value?"simple":s.props.direction),n.is("flex",m.value&&!b.value&&!v.value),n.is("center",v.value&&!g.value&&!p.value)]),y=w(()=>{const O={flexBasis:He(b.value)?`${b.value}px`:b.value?b.value:`${100/(h.value-(v.value?0:1))}%`};return g.value||m.value&&(O.maxWidth=`${100/h.value}%`),O}),S=O=>{a.value=O},C=O=>{const R=O==="wait",N={transitionDelay:`${Math.abs(u)===1?0:u>0?(a.value+1-c)*150:-(a.value+1-s.props.active)*150}ms`},A=O===s.props.processStatus||R?0:100;N.borderWidth=A&&!p.value?"1px":0,N[s.props.direction==="vertical"?"height":"width"]=`${A}%`,o.value=N},E=O=>{O>a.value?r.value=s.props.finishStatus:O===a.value&&f.value!=="error"?r.value=s.props.processStatus:r.value="wait";const R=s.steps.value[a.value-1];R&&R.calcProgress(r.value)},$={uid:l.uid,getVnode:()=>l.vnode,currentStatus:d,internalStatus:r,setIndex:S,calcProgress:C};return s.addStep($),Bt(()=>{s.removeStep($)}),(O,R)=>(x(),B("div",{style:Ke(y.value),class:T(k.value)},[te(" icon & line "),H("div",{class:T([i(n).e("head"),i(n).is(d.value)])},[p.value?te("v-if",!0):(x(),B("div",{key:0,class:T(i(n).e("line"))},[H("i",{class:T(i(n).e("line-inner")),style:Ke(o.value)},null,6)],2)),H("div",{class:T([i(n).e("icon"),i(n).is(e.icon||O.$slots.icon?"icon":"text")])},[ee(O.$slots,"icon",{},()=>[e.icon?(x(),oe(i(De),{key:0,class:T(i(n).e("icon-inner"))},{default:J(()=>[(x(),oe(it(e.icon)))]),_:1},8,["class"])):d.value==="success"?(x(),oe(i(De),{key:1,class:T([i(n).e("icon-inner"),i(n).is("status")])},{default:J(()=>[Y(i(vu))]),_:1},8,["class"])):d.value==="error"?(x(),oe(i(De),{key:2,class:T([i(n).e("icon-inner"),i(n).is("status")])},{default:J(()=>[Y(i(Ha))]),_:1},8,["class"])):p.value?te("v-if",!0):(x(),B("div",{key:3,class:T(i(n).e("icon-inner"))},Se(a.value+1),3))])],2)],2),te(" title & description "),H("div",{class:T(i(n).e("main"))},[H("div",{class:T([i(n).e("title"),i(n).is(d.value)])},[ee(O.$slots,"title",{},()=>[wt(Se(e.title),1)])],2),p.value?(x(),B("div",{key:0,class:T(i(n).e("arrow"))},null,2)):(x(),B("div",{key:1,class:T([i(n).e("description"),i(n).is(d.value)])},[ee(O.$slots,"description",{},()=>[wt(Se(e.description),1)])],2))],2)],6))}}),lE=W7;const j7=rt(K7,{Step:lE}),U7=nn(lE),iE=e=>["",...so].includes(e),q7=Ce({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:iE},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:Kt},activeActionIcon:{type:Kt},activeIcon:{type:Kt},inactiveIcon:{type:Kt},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:G(Function)},id:String,tabindex:{type:[String,Number]},...aa(["ariaLabel"])}),Y7={[tt]:e=>Ht(e)||Le(e)||He(e),[bt]:e=>Ht(e)||Le(e)||He(e),[wn]:e=>Ht(e)||Le(e)||He(e)},G7=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],X7=["aria-hidden"],J7={key:1},Z7={key:1},Q7=["aria-hidden"],sp="ElSwitch";var eU=re({name:sp,__name:"switch",props:q7,emits:Y7,setup(e,{expose:t,emit:n}){const a=e,o=n,{formItem:r}=Dn(),s=Cn(),l=fe("switch"),{inputId:u}=Ia(a,{formItemContext:r}),c=ln(w(()=>{if(a.loading)return!0})),d=M(a.modelValue!==!1),f=Xt(),v=w(()=>[l.b(),l.m(s.value),l.is("disabled",c.value),l.is("checked",b.value)]),g=w(()=>[l.e("label"),l.em("label","left"),l.is("active",!b.value)]),p=w(()=>[l.e("label"),l.em("label","right"),l.is("active",b.value)]),h=w(()=>({width:sn(a.width)}));le(()=>a.modelValue,()=>{d.value=!0});const m=w(()=>d.value?a.modelValue:!1),b=w(()=>m.value===a.activeValue);[a.activeValue,a.inactiveValue].includes(m.value)||(o(tt,a.inactiveValue),o(bt,a.inactiveValue),o(wn,a.inactiveValue)),le(b,C=>{f.value.checked=C,a.validateEvent&&r?.validate?.("change").catch(E=>pt(E))});const k=()=>{const C=b.value?a.inactiveValue:a.activeValue;o(tt,C),o(bt,C),o(wn,C),Ne(()=>{f.value.checked=b.value})},y=()=>{if(c.value)return;const{beforeChange:C}=a;if(!C){k();return}const E=C();[vs(E),Ht(E)].includes(!0)||tn(sp,"beforeChange must return type `Promise` or `boolean`"),vs(E)?E.then($=>{$&&k()}).catch($=>{pt(sp,`some error occurred: ${$}`)}):E&&k()},S=()=>{f.value?.focus?.()};return ht(()=>{f.value.checked=b.value}),t({focus:S,checked:b}),(C,E)=>(x(),B("div",{class:T(v.value),onClick:Ge(y,["prevent"])},[H("input",{id:i(u),ref_key:"input",ref:f,class:T(i(l).e("input")),type:"checkbox",role:"switch","aria-checked":b.value,"aria-disabled":i(c),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:i(c),tabindex:e.tabindex,onChange:k,onKeydown:an(y,["enter"])},null,42,G7),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||C.$slots.inactive)?(x(),B("span",{key:0,class:T(g.value)},[ee(C.$slots,"inactive",{},()=>[e.inactiveIcon?(x(),oe(i(De),{key:0},{default:J(()=>[(x(),oe(it(e.inactiveIcon)))]),_:1})):te("v-if",!0),!e.inactiveIcon&&e.inactiveText?(x(),B("span",{key:1,"aria-hidden":b.value},Se(e.inactiveText),9,X7)):te("v-if",!0)])],2)):te("v-if",!0),H("span",{class:T(i(l).e("core")),style:Ke(h.value)},[e.inlinePrompt?(x(),B("div",{key:0,class:T(i(l).e("inner"))},[b.value?(x(),B("div",{key:1,class:T(i(l).e("inner-wrapper"))},[ee(C.$slots,"active",{},()=>[e.activeIcon?(x(),oe(i(De),{key:0},{default:J(()=>[(x(),oe(it(e.activeIcon)))]),_:1})):te("v-if",!0),!e.activeIcon&&e.activeText?(x(),B("span",Z7,Se(e.activeText),1)):te("v-if",!0)])],2)):(x(),B("div",{key:0,class:T(i(l).e("inner-wrapper"))},[ee(C.$slots,"inactive",{},()=>[e.inactiveIcon?(x(),oe(i(De),{key:0},{default:J(()=>[(x(),oe(it(e.inactiveIcon)))]),_:1})):te("v-if",!0),!e.inactiveIcon&&e.inactiveText?(x(),B("span",J7,Se(e.inactiveText),1)):te("v-if",!0)])],2))],2)):te("v-if",!0),H("div",{class:T(i(l).e("action"))},[e.loading?(x(),oe(i(De),{key:0,class:T(i(l).is("loading"))},{default:J(()=>[Y(i(_o))]),_:1},8,["class"])):b.value?ee(C.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(x(),oe(i(De),{key:0},{default:J(()=>[(x(),oe(it(e.activeActionIcon)))]),_:1})):te("v-if",!0)]):b.value?te("v-if",!0):ee(C.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(x(),oe(i(De),{key:0},{default:J(()=>[(x(),oe(it(e.inactiveActionIcon)))]),_:1})):te("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||C.$slots.active)?(x(),B("span",{key:1,class:T(p.value)},[ee(C.$slots,"active",{},()=>[e.activeIcon?(x(),oe(i(De),{key:0},{default:J(()=>[(x(),oe(it(e.activeIcon)))]),_:1})):te("v-if",!0),!e.activeIcon&&e.activeText?(x(),B("span",{key:1,"aria-hidden":!b.value},Se(e.activeText),9,Q7)):te("v-if",!0)])],2)):te("v-if",!0)],2))}}),tU=eU;const nU=rt(tU),lp=function(e){return e.target?.closest("td")},aU=function(e,t,n,a,o){if(!t&&!a&&(!o||ye(o)&&!o.length))return e;Le(n)?n=n==="descending"?-1:1:n=n&&n<0?-1:1;const r=a?null:function(l,u){return o?RS(Rn(o),c=>Le(c)?yn(l,c):c(l,u,e)):(t!=="$key"&&at(l)&&"$value"in l&&(l=l.$value),[at(l)?t?yn(l,t):null:l])},s=function(l,u){if(a)return a(l.value,u.value);for(let c=0,d=l.key?.length??0;c u.key?.[c])return 1}return 0};return e.map((l,u)=>({value:l,index:u,key:r?r(l,u):null})).sort((l,u)=>{let c=s(l,u);return c||(c=l.index-u.index),c*+n}).map(l=>l.value)},uE=function(e,t){let n=null;return e.columns.forEach(a=>{a.id===t&&(n=a)}),n},oU=function(e,t){let n=null;for(let a=0;a {if(!e)throw new Error("Row is required when get row identity");if(Le(t)){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let a=e;for(const o of n)a=a[o];return`${a}`}else if(Ve(t))return t.call(null,e);return""},ol=function(e,t,n=!1,a="children"){const o=e||[],r={};return o.forEach((s,l)=>{if(r[Hn(s,t)]={row:s,index:l},n){const u=s[a];ye(u)&&Object.assign(r,ol(u,t,!0,a))}}),r};function rU(e,t){const n={};let a;for(a in e)n[a]=e[a];for(a in t)if(Rt(t,a)){const o=t[a];Tt(o)||(n[a]=o)}return n}function Im(e){return e===""||Tt(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function cE(e){return e===""||Tt(e)||(e=Im(e),Number.isNaN(e)&&(e=80)),e}function sU(e){return He(e)?e:Le(e)?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function lU(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...a)=>t(n(...a)))}function bd(e,t,n,a,o,r,s){let l=r??0,u=!1;const d=(()=>{if(!s)return e.indexOf(t);const h=Hn(t,s);return e.findIndex(m=>Hn(m,s)===h)})(),f=d!==-1,v=o?.call(null,t,l),g=h=>{h==="add"?e.push(t):e.splice(d,1),u=!0},p=h=>{let m=0;const b=a?.children&&h[a.children];return b&&ye(b)&&(m+=b.length,b.forEach(k=>{m+=p(k)})),m};return(!o||v)&&(Ht(n)?n&&!f?g("add"):!n&&f&&g("remove"):g(f?"remove":"add")),!a?.checkStrictly&&a?.children&&ye(t[a.children])&&t[a.children].forEach(h=>{const m=bd(e,h,n??!f,a,o,l+1,s);l+=p(h)+1,m&&(u=m)}),u}function iU(e,t,n="children",a="hasChildren",o=!1){const r=l=>!(ye(l)&&l.length);function s(l,u,c){t(l,u,c),u.forEach(d=>{if(d[a]&&o){t(d,null,c+1);return}const f=d[n];r(f)||s(d,f,c+1)})}e.forEach(l=>{if(l[a]&&o){t(l,null,0);return}const u=l[n];r(u)||s(l,u,0)})}const uU=(e,t,n,a)=>{const o={strategy:"fixed",...e.popperOptions},r=Ve(a?.tooltipFormatter)?a.tooltipFormatter({row:n,column:a,cellValue:Mr(n,a.property).value}):void 0;return Ut(r)?{slotContent:r,content:null,...e,popperOptions:o}:{slotContent:null,content:r??t,...e,popperOptions:o}};let pa=null;function cU(e,t,n,a,o,r){const s=uU(e,t,n,a),l={...s,slotContent:void 0};if(pa?.trigger===o){const g=pa.vm?.component;IS(g?.props,l),g&&s.slotContent&&(g.slots.content=()=>[s.slotContent]);return}pa?.();const u=r?.refs.tableWrapper,c=u?.dataset.prefix,d=Y(Ln,{virtualTriggering:!0,virtualRef:o,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...l},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...r.appContext,...r};const f=document.createElement("div");Lr(d,f),d.component.exposed.onOpen();const v=u?.querySelector(`.${c}-scrollbar__wrap`);pa=()=>{d.component?.exposed?.onClose&&d.component.exposed.onClose(),Lr(null,f);const g=pa;v?.removeEventListener("scroll",g),g.trigger=void 0,g.vm=void 0,pa=null},pa.trigger=o??void 0,pa.vm=d,v?.addEventListener("scroll",pa)}function dE(e){return e.children?RS(e.children,dE):[e]}function O0(e,t){return e+t.colSpan}const fE=(e,t,n,a)=>{let o=0,r=e;const s=n.states.columns.value;if(a){const u=dE(a[e]);o=s.slice(0,s.indexOf(u[0])).reduce(O0,0),r=o+u.reduce(O0,0)-1}else o=e;let l;switch(t){case"left":r =s.length-n.states.rightFixedLeafColumnsLength.value&&(l="right");break;default:r =s.length-n.states.rightFixedLeafColumnsLength.value&&(l="right")}return l?{direction:l,start:o,after:r}:{}},Pm=(e,t,n,a,o,r=0)=>{const s=[],{direction:l,start:u,after:c}=fE(t,n,a,o);if(l){const d=l==="left";s.push(`${e}-fixed-column--${l}`),d&&c+r===a.states.fixedLeafColumnsLength.value-1?s.push("is-last-column"):!d&&u-r===a.states.columns.value.length-a.states.rightFixedLeafColumnsLength.value&&s.push("is-first-column")}return s};function N0(e,t){return e+(Kd(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Mm=(e,t,n,a)=>{const{direction:o,start:r=0,after:s=0}=fE(e,t,n,a);if(!o)return;const l={},u=o==="left",c=n.states.columns.value;return u?l.left=c.slice(0,r).reduce(N0,0):l.right=c.slice(s+1).reverse().reduce(N0,0),l},El=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function pE(e){return e.some(t=>Ut(t)?!(t.type===mn||t.type===Fe&&!pE(t.children)):!0)?e:null}function dU(e){const t=ft(),n=M(!1),a=M([]),o=(c,d)=>{const f=t.store.states.rowExpandable.value;return f?.(c,d)??!0};return{updateExpandRows:()=>{const c=e.data.value||[],d=e.rowKey.value;if(n.value)a.value=t.store.states.rowExpandable.value?c.filter(o):c.slice();else if(d){const f=ol(a.value,d);a.value=c.filter((v,g)=>!!f[Hn(v,d)]&&o(v,g))}else a.value=[]},toggleRowExpansion:(c,d)=>{const f=(e.data.value||[]).indexOf(c);f>-1&&!o(c,f)||bd(a.value,c,d,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",c,a.value.slice())},setExpandRowKeys:c=>{t.store.assertRowKey();const d=e.data.value||[],f=e.rowKey.value,v=ol(d,f);a.value=c.reduce((g,p)=>{const h=v[p];return h&&o(h.row,h.index)&&g.push(h.row),g},[])},isRowExpanded:c=>{const d=e.rowKey.value;return d?!!ol(a.value,d)[Hn(c,d)]:a.value.includes(c)},states:{expandRows:a,defaultExpandAll:n}}}function fU(e){const t=ft(),n=M(null),a=M(null),o=c=>{t.store.assertRowKey(),n.value=c,s(c)},r=()=>{n.value=null},s=c=>{const{data:d,rowKey:f}=e,v=a.value;let g=null;f.value&&(g=(i(d)||[]).find(p=>Hn(p,f.value)===c)??null),a.value=g??null,t.emit("current-change",a.value,v)};return{setCurrentRowKey:o,restoreCurrentRowKey:r,setCurrentRowByKey:s,updateCurrentRow:c=>{const d=a.value;if(c&&c!==d){a.value=c,t.emit("current-change",a.value,d);return}!c&&d&&(a.value=null,t.emit("current-change",null,d))},updateCurrentRowData:()=>{const c=e.rowKey.value,d=e.data.value||[],f=a.value;f&&!d.includes(f)?c?s(Hn(f,c)):(a.value=null,t.emit("current-change",null,f)):n.value&&(s(n.value),r())},states:{_currentRowKey:n,currentRow:a}}}function pU(e){const t=M([]),n=M({}),a=M(16),o=M(!1),r=M({}),s=M("hasChildren"),l=M("children"),u=M(!1),c=ft(),d=w(()=>e.rowKey.value?v(e.data.value||[]):{}),f=w(()=>{const S=e.rowKey.value,C=Object.keys(r.value),E={};return C.length&&C.forEach($=>{if(r.value[$].length){const O={children:[]};r.value[$].forEach(R=>{const N=Hn(R,S);O.children.push(N),R[s.value]&&!E[N]&&(E[N]={children:[]})}),E[$]=O}}),E}),v=S=>{const C=e.rowKey.value,E={};return iU(S,($,O,R)=>{const N=Hn($,C);ye(O)?E[N]={children:O.map(A=>Hn(A,C)),level:R}:o.value&&(E[N]={children:[],lazy:!0,level:R})},l.value,s.value,o.value),E},g=(S=!1,C)=>{C||=c.store?.states.defaultExpandAll.value;const E=d.value,$=f.value,O=Object.keys(E),R={};if(O.length){const N=i(n),A=[],_=(z,U)=>{if(S)return t.value?C||t.value.includes(U):!!(C||z?.expanded);{const W=C||t.value&&t.value.includes(U);return!!(z?.expanded||W)}};O.forEach(z=>{const U=N[z],W={...E[z]};if(W.expanded=_(U,z),W.lazy){const{loaded:P=!1,loading:I=!1}=U||{};W.loaded=!!P,W.loading=!!I,A.push(z)}R[z]=W});const V=Object.keys($);o.value&&V.length&&A.length&&V.forEach(z=>{const U=N[z],W=$[z].children;if(A.includes(z)){if(R[z].children?.length!==0)throw new Error("[ElTable]children must be an empty array.");R[z].children=W}else{const{loaded:P=!1,loading:I=!1}=U||{};R[z]={lazy:!0,loaded:!!P,loading:!!I,expanded:_(U,z),children:W,level:void 0}}})}n.value=R,c.store?.updateTableScrollY()};le(()=>t.value,()=>{g(!0)}),le(()=>d.value,()=>{g()}),le(()=>f.value,()=>{g()});const p=S=>{t.value=S,g()},h=S=>o.value&&S&&"loaded"in S&&!S.loaded,m=(S,C)=>{c.store.assertRowKey();const E=e.rowKey.value,$=Hn(S,E),O=$&&n.value[$];if($&&O&&"expanded"in O){const R=O.expanded;C=Tt(C)?!O.expanded:C,n.value[$].expanded=C,R!==C&&c.emit("expand-change",S,C),C&&h(O)&&k(S,$,O),c.store.updateTableScrollY()}},b=S=>{c.store.assertRowKey();const C=e.rowKey.value,E=Hn(S,C),$=n.value[E];h($)?k(S,E,$):m(S,void 0)},k=(S,C,E)=>{const{load:$}=c.props;$&&!n.value[C].loaded&&(n.value[C].loading=!0,$(S,E,O=>{if(!ye(O))throw new TypeError("[ElTable] data must be an array");n.value[C].loading=!1,n.value[C].loaded=!0,n.value[C].expanded=!0,O.length&&(r.value[C]=O),c.emit("expand-change",S,!0)}))};return{loadData:k,loadOrToggle:b,toggleTreeExpansion:m,updateTreeExpandKeys:p,updateTreeData:g,updateKeyChildren:(S,C)=>{const{lazy:E,rowKey:$}=c.props;if(E){if(!$)throw new Error("[Table] rowKey is required in updateKeyChild");r.value[S]&&(r.value[S]=C)}},normalize:v,states:{expandRowKeys:t,treeData:n,indent:a,lazy:o,lazyTreeNodeMap:r,lazyColumnIdentifier:s,childrenColumnName:l,checkStrictly:u}}}const hU=(e,t)=>{const n=t.sortingColumn;return!n||Le(n.sortable)?e:aU(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Oc=e=>{const t=[];return e.forEach(n=>{n.children&&n.children.length>0?t.push.apply(t,Oc(n.children)):t.push(n)}),t};function vU(){const e=ft(),{size:t}=Mn(e.proxy?.$props),n=M(null),a=M([]),o=M([]),r=M(!1),s=M([]),l=M([]),u=M([]),c=M([]),d=M([]),f=M([]),v=M([]),g=M([]),p=[],h=M(0),m=M(0),b=M(0),k=M(!1),y=M([]),S=M(!1),C=M(!1),E=M(null),$=M(null),O=M({}),R=M(null),N=M(null),A=M(null),_=M(null),V=M(null),z=w(()=>n.value?ol(y.value,n.value):void 0);le(a,()=>{e.state&&(I(!1),e.props.tableLayout==="auto"&&e.refs.tableHeaderRef?.updateFixedColumnStyle())},{deep:!0});const U=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},W=Ue=>{Ue.children?.forEach(lt=>{lt.fixed=Ue.fixed,W(lt)})},P=()=>{s.value.forEach(de=>{W(de)}),c.value=s.value.filter(de=>[!0,"left"].includes(de.fixed));const Ue=s.value.find(de=>de.type==="selection");let lt;Ue&&Ue.fixed!=="right"&&!c.value.includes(Ue)&&s.value.indexOf(Ue)===0&&c.value.length&&(c.value.unshift(Ue),lt=!0),d.value=s.value.filter(de=>de.fixed==="right");const mt=s.value.filter(de=>(lt?de.type!=="selection":!0)&&!de.fixed);l.value=Array.from(c.value).concat(mt).concat(d.value);const kt=Oc(mt),be=Oc(c.value),ze=Oc(d.value);h.value=kt.length,m.value=be.length,b.value=ze.length,u.value=Array.from(be).concat(kt).concat(ze),r.value=c.value.length>0||d.value.length>0},I=(Ue,lt=!1)=>{Ue&&P(),lt?e.state.doLayout():e.state.debouncedUpdateLayout()},L=Ue=>z.value?!!z.value[Hn(Ue,n.value)]:y.value.includes(Ue),D=()=>{k.value=!1;const Ue=y.value;y.value=[],Ue.length&&e.emit("selection-change",[])},F=()=>{let Ue;if(n.value){Ue=[];const lt=e?.store?.states?.childrenColumnName.value,mt=ol(a.value,n.value,!0,lt);for(const kt in z.value)Rt(z.value,kt)&&!mt[kt]&&Ue.push(z.value[kt].row)}else Ue=y.value.filter(lt=>!a.value.includes(lt));if(Ue.length){const lt=y.value.filter(mt=>!Ue.includes(mt));y.value=lt,e.emit("selection-change",lt.slice())}},q=()=>(y.value||[]).slice(),j=(Ue,lt,mt=!0,kt=!1)=>{const be={children:e?.store?.states?.childrenColumnName.value,checkStrictly:e?.store?.states?.checkStrictly.value};if(bd(y.value,Ue,lt,be,kt?void 0:E.value,a.value.indexOf(Ue),n.value)){const ze=(y.value||[]).slice();mt&&e.emit("select",ze,Ue),e.emit("selection-change",ze)}},X=()=>{const Ue=C.value?!k.value:!(k.value||y.value.length);k.value=Ue;let lt=!1,mt=0;const kt=e?.store?.states?.rowKey.value,{childrenColumnName:be}=e.store.states,ze={children:be.value,checkStrictly:!1};a.value.forEach((de,Ye)=>{const $t=Ye+mt;bd(y.value,de,Ue,ze,E.value,$t,kt)&&(lt=!0),mt+=he(Hn(de,kt))}),lt&&e.emit("selection-change",y.value?y.value.slice():[]),e.emit("select-all",(y.value||[]).slice())},Q=()=>{if(a.value?.length===0){k.value=!1;return}const{childrenColumnName:Ue}=e.store.states;let lt=0,mt=0;const kt=ze=>{for(const de of ze){const Ye=E.value&&E.value.call(null,de,lt);if(L(de))mt++;else if(!E.value||Ye)return!1;if(lt++,de[Ue.value]?.length&&!kt(de[Ue.value]))return!1}return!0},be=kt(a.value||[]);k.value=mt===0?!1:be},he=Ue=>{if(!e||!e.store)return 0;const{treeData:lt}=e.store.states;let mt=0;const kt=lt.value[Ue]?.children;return kt&&(mt+=kt.length,kt.forEach(be=>{mt+=he(be)})),mt},ue=(Ue,lt)=>{const mt={};return Rn(Ue).forEach(kt=>{O.value[kt.id]=lt,mt[kt.columnKey||kt.id]=lt}),mt},ge=(Ue,lt,mt)=>{N.value&&N.value!==Ue&&(N.value.order=null),N.value=Ue,A.value=lt,_.value=mt},ie=()=>{let Ue=i(o);Object.keys(O.value).forEach(lt=>{const mt=O.value[lt];if(!mt||mt.length===0)return;const kt=uE({columns:u.value},lt);kt&&kt.filterMethod&&(Ue=Ue.filter(be=>mt.some(ze=>kt.filterMethod.call(null,ze,be,kt))))}),R.value=Ue},ae=()=>{a.value=hU(R.value??[],{sortingColumn:N.value,sortProp:A.value,sortOrder:_.value})},ne=(Ue=void 0)=>{Ue?.filter||ie(),ae()},K=Ue=>{const{tableHeaderRef:lt}=e.refs;if(!lt)return;const mt=Object.assign({},lt.filterPanels),kt=Object.keys(mt);if(kt.length)if(Le(Ue)&&(Ue=[Ue]),ye(Ue)){const be=Ue.map(ze=>oU({columns:u.value},ze));kt.forEach(ze=>{const de=be.find(Ye=>Ye.id===ze);de&&(de.filteredValue=[])}),e.store.commit("filterChange",{column:be,values:[],silent:!0,multi:!0})}else kt.forEach(be=>{const ze=u.value.find(de=>de.id===be);ze&&(ze.filteredValue=[])}),O.value={},e.store.commit("filterChange",{column:{},values:[],silent:!0})},Z=()=>{N.value&&(ge(null,null,null),e.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:se,toggleRowExpansion:ce,updateExpandRows:ve,states:ke,isRowExpanded:Re}=dU({data:a,rowKey:n}),{updateTreeExpandKeys:Ie,toggleTreeExpansion:$e,updateTreeData:pe,updateKeyChildren:Ee,loadOrToggle:me,states:Me}=pU({data:a,rowKey:n}),{updateCurrentRowData:We,updateCurrentRow:Xe,setCurrentRowKey:Pe,states:Ae}=fU({data:a,rowKey:n});return{assertRowKey:U,updateColumns:P,scheduleLayout:I,isSelected:L,clearSelection:D,cleanSelection:F,getSelectionRows:q,toggleRowSelection:j,_toggleAllSelection:X,toggleAllSelection:null,updateAllSelected:Q,updateFilters:ue,updateCurrentRow:Xe,updateSort:ge,execFilter:ie,execSort:ae,execQuery:ne,clearFilter:K,clearSort:Z,toggleRowExpansion:ce,setExpandRowKeysAdapter:Ue=>{se(Ue),Ie(Ue)},setCurrentRowKey:Pe,toggleRowExpansionAdapter:(Ue,lt)=>{u.value.some(({type:mt})=>mt==="expand")?ce(Ue,lt):$e(Ue,lt)},isRowExpanded:Re,updateExpandRows:ve,updateCurrentRowData:We,loadOrToggle:me,updateTreeData:pe,updateKeyChildren:Ee,states:{tableSize:t,rowKey:n,data:a,_data:o,isComplex:r,_columns:s,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:f,fixedLeafColumns:v,rightFixedLeafColumns:g,updateOrderFns:p,leafColumnsLength:h,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:b,isAllSelected:k,selection:y,reserveSelection:S,selectOnIndeterminate:C,selectable:E,rowExpandable:$,filters:O,filteredData:R,sortingColumn:N,sortProp:A,sortOrder:_,hoverRow:V,...ke,...Me,...Ae}}}function xh(e,t){return e.map(n=>n.id===t.id?t:(n.children?.length&&(n.children=xh(n.children,t)),n))}function Th(e){e.forEach(t=>{t.no=t.getColumnIndex?.(),t.children?.length&&Th(t.children)}),e.sort((t,n)=>t.no-n.no)}function mU(){const e=ft(),t=vU(),n=fe("table"),{t:a}=Ct();return{ns:n,t:a,...t,mutations:{setData(l,u){const c=i(l._data)!==u;l.data.value=u,l._data.value=u,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),i(l.reserveSelection)?e.store.assertRowKey():c?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(l,u,c,d){const f=i(l._columns);let v=[];c?(c&&!c.children&&(c.children=[]),c.children?.push(u),v=xh(f,c)):(f.push(u),v=f),Th(v),l._columns.value=v,l.updateOrderFns.push(d),u.type==="selection"&&(l.selectable.value=u.selectable,l.reserveSelection.value=u.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(l,u){u.getColumnIndex?.()!==u.no&&(Th(l._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(l,u,c,d){const f=i(l._columns)||[];if(c)c.children?.splice(c.children.findIndex(g=>g.id===u.id),1),Ne(()=>{c.children?.length===0&&delete c.children}),l._columns.value=xh(f,c);else{const g=f.indexOf(u);g>-1&&(f.splice(g,1),l._columns.value=f)}const v=l.updateOrderFns.indexOf(d);v>-1&&l.updateOrderFns.splice(v,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(l,u){const{prop:c,order:d,init:f}=u;if(c){const v=i(l.columns).find(g=>g.property===c);v&&(v.order=d,e.store.updateSort(v,c,d),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(l,u){const{sortingColumn:c,sortProp:d,sortOrder:f}=l,v=i(c),g=i(d),p=i(f);Kd(p)&&(l.sortingColumn.value=null,l.sortProp.value=null),e.store.execQuery({filter:!0}),(!u||!(u.silent||u.init))&&e.emit("sort-change",{column:v,prop:g,order:p}),e.store.updateTableScrollY()},filterChange(l,u){const{column:c,values:d,silent:f}=u,v=e.store.updateFilters(c,d);e.store.execQuery(),f||e.emit("filter-change",v),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection?.()},rowSelectedChanged(l,u){e.store.toggleRowSelection(u),e.store.updateAllSelected()},setHoverRow(l,u){l.hoverRow.value=u},setCurrentRow(l,u){e.store.updateCurrentRow(u)}},commit:function(l,...u){const c=e.store.mutations;if(c[l])c[l].apply(e,[e.store.states,...u]);else throw new Error(`Action not found: ${l}`)},updateTableScrollY:function(){Ne(()=>e.layout.updateScrollY.apply(e.layout))}}}const _m={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",rowExpandable:"rowExpandable",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"},"treeProps.checkStrictly":{key:"checkStrictly",default:!1}};function gU(e,t){if(!e)throw new Error("Table is required.");const n=mU();return n.toggleAllSelection=Po(n._toggleAllSelection,10),Object.keys(_m).forEach(a=>{hE(vE(t,a),a,n)}),bU(n,t),n}function bU(e,t){Object.keys(_m).forEach(n=>{le(()=>vE(t,n),a=>{hE(a,n,e)})})}function hE(e,t,n){let a=e,o=_m[t];at(o)&&(a=a||o.default,o=o.key),n.states[o].value=a}function vE(e,t){if(t.includes(".")){const n=t.split(".");let a=e;return n.forEach(o=>{a=a[o]}),a}else return e[t]}var yU=class{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=M(null),this.scrollX=M(!1),this.scrollY=M(!1),this.bodyWidth=M(null),this.fixedWidth=M(null),this.rightFixedWidth=M(null),this.gutterWidth=0;for(const t in e)Rt(e,t)&&(Jt(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){const e=this.height.value;if(Kd(e))return!1;const t=this.table.refs.scrollBarRef;if(this.table.vnode.el&&t?.wrapRef){let n=!0;const a=this.scrollY.value;return n=t.wrapRef.scrollHeight>t.wrapRef.clientHeight,this.scrollY.value=n,a!==n}return!1}setHeight(e,t="height"){if(!Mt)return;const n=this.table.vnode.el;if(e=sU(e),this.height.value=Number(e),!n&&(e||e===0)){Ne(()=>this.setHeight(e,t));return}n&&He(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&Le(e)&&(n.style[t]=e,this.updateElsHeight())}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;t.tagName!=="DIV";){if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}updateColumnsWidth(){if(!Mt)return;const e=this.fit,t=this.table.vnode.el?.clientWidth;let n=0;const a=this.getFlattenColumns(),o=a.filter(l=>!He(l.width));if(a.forEach(l=>{He(l.width)&&l.realWidth&&(l.realWidth=null)}),o.length>0&&e){if(a.forEach(l=>{n+=Number(l.width||l.minWidth||80)}),n<=t){this.scrollX.value=!1;const l=t-n;if(o.length===1)o[0].realWidth=Number(o[0].minWidth||80)+l;else{const u=l/o.reduce((d,f)=>d+Number(f.minWidth||80),0);let c=0;o.forEach((d,f)=>{if(f===0)return;const v=Math.floor(Number(d.minWidth||80)*u);c+=v,d.realWidth=Number(d.minWidth||80)+v}),o[0].realWidth=Number(o[0].minWidth||80)+l-c}}else this.scrollX.value=!0,o.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(n,t),this.table.state.resizeState.value.width=this.bodyWidth.value}else a.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),n+=l.realWidth}),this.scrollX.value=n>t,this.bodyWidth.value=n;const r=this.store.states.fixedColumns.value;if(r.length>0){let l=0;r.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let l=0;s.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);t!==-1&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{switch(e){case"columns":t.state?.onColumnsChange(this);break;case"scrollable":t.state?.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}};const co=Symbol("ElTable"),mE=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,mE(n.children))):t.push(n)}),t},gE=e=>{let t=1;const n=(o,r)=>{if(r&&(o.level=r.level+1,t {n(l,o),s+=l.colSpan}),o.colSpan=s}else o.colSpan=1};e.forEach(o=>{o.level=1,n(o,void 0)});const a=[];for(let o=0;o {o.children?(o.rowSpan=1,o.children.forEach(r=>r.isSubColumn=!0)):o.rowSpan=t-o.level+1,a[o.level-1].push(o)}),a};function wU(e){const t=_e(co),n=w(()=>gE(e.store.states.originColumns.value));return{isGroup:w(()=>{const r=n.value.length>1;return r&&t&&(t.state.isGroup.value=!0),r}),toggleAllSelection:r=>{r.stopPropagation(),t?.store.commit("toggleAllSelection")},columnRows:n}}var SU=re({name:"ElTableFilterPanel",components:{ElCheckbox:oo,ElCheckboxGroup:pm,ElScrollbar:no,ElTooltip:Ln,ElIcon:De,ArrowDown:Bo,ArrowUp:ef},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:zt.appendTo},setup(e){const t=ft(),{t:n}=Ct(),a=fe("table-filter"),o=t?.parent;e.column&&!o.filterPanels.value[e.column.id]&&(o.filterPanels.value[e.column.id]=t);const r=M(null),s=M(null),l=M(0),u=w(()=>e.column&&e.column.filters),c=w(()=>e.column&&e.column.filterClassName?`${a.b()} ${e.column.filterClassName}`:a.b()),d=w({get:()=>(e.column?.filteredValue||[])[0],set:$=>{f.value&&(va($)?f.value.splice(0,1):f.value.splice(0,1,$))}}),f=w({get(){return e.column?e.column.filteredValue||[]:[]},set($){e.column&&e.upDataColumn?.("filteredValue",$)}}),v=w(()=>e.column?e.column.filterMultiple:!0),g=$=>$.value===d.value,p=()=>{r.value?.onClose()},h=()=>{k(f.value),p()},m=()=>{f.value=[],k(f.value),p()},b=($,O)=>{d.value=$,l.value=O,va($)?k([]):k(f.value),p()},k=$=>{e.store?.commit("filterChange",{column:e.column,values:$}),e.store?.updateAllSelected()},y=()=>{s.value?.focus(),!v.value&&C(),e.column&&e.upDataColumn?.("filterOpened",!0)},S=()=>{e.column&&e.upDataColumn?.("filterOpened",!1)},C=()=>{if(va(d)){l.value=0;return}const $=(u.value||[]).findIndex(O=>O.value===d.value);l.value=$>=0?$+1:0};return{multiple:v,filterClassName:c,filteredValue:f,filterValue:d,filters:u,handleConfirm:h,handleReset:m,handleSelect:b,isPropAbsent:va,isActive:g,t:n,ns:a,tooltipRef:r,rootRef:s,checkedIndex:l,handleShowTooltip:y,handleHideTooltip:S,handleKeydown:$=>{const O=jt($),R=(u.value?u.value.length:0)+1;let N=l.value,A=!0;switch(O){case we.down:case we.right:N=(N+1)%R;break;case we.up:case we.left:N=(N-1+R)%R;break;case we.tab:p(),A=!1;break;case we.enter:case we.space:if(N===0)b(null,0);else{const _=(u.value||[])[N-1];_.value&&b(_.value,N)}break;default:A=!1;break}A&&$.preventDefault(),l.value=N,s.value?.querySelector(`.${a.e("list-item")}:nth-child(${N+1})`)?.focus()}}}});const CU=["disabled"],kU=["tabindex","aria-checked"],EU=["tabindex","aria-checked","onClick"],xU=["aria-label"];function TU(e,t,n,a,o,r){const s=It("el-checkbox"),l=It("el-checkbox-group"),u=It("el-scrollbar"),c=It("arrow-up"),d=It("arrow-down"),f=It("el-icon"),v=It("el-tooltip");return x(),oe(v,{ref:"tooltipRef",offset:0,placement:e.placement,"show-arrow":!1,trigger:"click",role:"dialog",teleported:"",effect:"light",pure:"",loop:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:J(()=>[e.multiple?(x(),B("div",{key:0,ref:"rootRef",tabindex:"-1",class:T(e.ns.e("multiple"))},[H("div",{class:T(e.ns.e("content"))},[Y(u,{"wrap-class":e.ns.e("wrap")},{default:J(()=>[Y(l,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=g=>e.filteredValue=g),class:T(e.ns.e("checkbox-group"))},{default:J(()=>[(x(!0),B(Fe,null,yt(e.filters,g=>(x(),oe(s,{key:g.value,value:g.value},{default:J(()=>[wt(Se(g.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),H("div",{class:T(e.ns.e("bottom"))},[H("button",{class:T(e.ns.is("disabled",e.filteredValue.length===0)),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...g)=>e.handleConfirm&&e.handleConfirm(...g))},Se(e.t("el.table.confirmFilter")),11,CU),H("button",{type:"button",onClick:t[2]||(t[2]=(...g)=>e.handleReset&&e.handleReset(...g))},Se(e.t("el.table.resetFilter")),1)],2)],2)):(x(),B("ul",{key:1,ref:"rootRef",tabindex:"-1",role:"radiogroup",class:T(e.ns.e("list")),onKeydown:t[4]||(t[4]=(...g)=>e.handleKeydown&&e.handleKeydown(...g))},[H("li",{role:"radio",class:T([e.ns.e("list-item"),e.ns.is("active",e.isPropAbsent(e.filterValue))]),tabindex:e.checkedIndex===0?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||(t[3]=g=>e.handleSelect(null,0))},Se(e.t("el.table.clearFilter")),11,kU),(x(!0),B(Fe,null,yt(e.filters,(g,p)=>(x(),B("li",{key:g.value,role:"radio",class:T([e.ns.e("list-item"),e.ns.is("active",e.isActive(g))]),tabindex:e.checkedIndex===p+1?0:-1,"aria-checked":e.isActive(g),onClick:h=>e.handleSelect(g.value,p+1)},Se(g.text),11,EU))),128))],34))]),default:J(()=>[H("button",{type:"button",class:T(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t("el.table.filterLabel",{column:e.column?.label||""})},[Y(f,null,{default:J(()=>[ee(e.$slots,"filter-icon",{},()=>[e.column?.filterOpened?(x(),oe(c,{key:0})):(x(),oe(d,{key:1}))])]),_:3})],10,xU)]),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}var $U=$n(SU,[["render",TU]]);function Am(e){const t=ft();Pd(()=>{n.value.addObserver(t)}),ht(()=>{a(n.value),o(n.value)}),ro(()=>{a(n.value),o(n.value)}),$l(()=>{n.value.removeObserver(t)});const n=w(()=>{const r=e.layout;if(!r)throw new Error("Can not find table layout.");return r}),a=r=>{const s=e.vnode.el?.querySelectorAll("colgroup > col")||[];if(!s.length)return;const l=r.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,d=s.length;c {const s=e.vnode.el?.querySelectorAll("colgroup > col[name=gutter]")||[];for(let u=0,c=s.length;u {h.stopPropagation()},r=(h,m)=>{!m.filters&&m.sortable?p(h,m,!1):m.filterable&&!m.sortable&&o(h),a?.emit("header-click",m,h)},s=(h,m)=>{a?.emit("header-contextmenu",m,h)},l=M(null),u=M(!1),c=M(),d=(h,m)=>{if(Mt&&!(m.children&&m.children.length>0)&&l.value&&e.border&&l.value.id===m.id){u.value=!0;const b=a;t("set-drag-visible",!0);const k=b?.vnode.el?.getBoundingClientRect().left,y=n?.vnode?.el?.querySelector(`th.${m.id}`),S=y.getBoundingClientRect(),C=S.left-k+30;La(y,"noclick"),c.value={startMouseLeft:h.clientX,startLeft:S.right-k,startColumnLeft:S.left-k,tableLeft:k};const E=b?.refs.resizeProxy;E.style.left=`${c.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const $=R=>{const N=R.clientX-c.value.startMouseLeft,A=c.value.startLeft+N;E.style.left=`${Math.max(C,A)}px`},O=()=>{if(u.value){const{startColumnLeft:R,startLeft:N}=c.value;m.width=m.realWidth=Number.parseInt(E.style.left,10)-R,b?.emit("header-dragend",m.width,N-R,m,h),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",u.value=!1,l.value=null,c.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",O),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{ta(y,"noclick")},0)};document.addEventListener("mousemove",$),document.addEventListener("mouseup",O)}},f=(h,m)=>{if(!e.border||m.children&&m.children.length>0)return;const b=h.target,k=ha(b)?b.closest("th"):null;if(!k)return;const y=To(k,"is-sortable");if(y){const R=u.value?"col-resize":"";k.style.cursor=R;const N=k.querySelector(".caret-wrapper");N&&(N.style.cursor=R)}if(!m.resizable||u.value){l.value=null;return}const S=k.getBoundingClientRect(),C=k.parentNode?.lastElementChild===k,E=e.allowDragLastColumn||!C,$=S.width>12&&S.right-h.clientX<8&&E,O=$?"col-resize":"";document.body.style.cursor=O,l.value=$?m:null,y&&(k.style.cursor=O)},v=()=>{!Mt||u.value||(document.body.style.cursor="")},g=({order:h,sortOrders:m})=>{if(h==="")return m[0];const b=m.indexOf(h||null);return m[b>m.length-2?0:b+1]},p=(h,m,b)=>{h.stopPropagation();const k=m.order===b?null:b||g(m),y=h.target?.closest("th");if(y&&To(y,"noclick")){ta(y,"noclick");return}if(!m.sortable)return;const S=h.currentTarget;if(["ascending","descending"].some(R=>To(S,R)&&!m.sortOrders.includes(R)))return;const C=e.store.states;let E=C.sortProp.value,$;const O=C.sortingColumn.value;(O!==m||O===m&&Kd(O.order))&&(O&&(O.order=null),C.sortingColumn.value=m,E=m.property),k?$=m.order=k:$=m.order=null,C.sortProp.value=E,C.sortOrder.value=$,a?.store.commit("changeSortCondition")};return{handleHeaderClick:r,handleHeaderContextMenu:s,handleMouseDown:d,handleMouseMove:f,handleMouseOut:v,handleSortClick:p,handleFilterClick:o}}function NU(e){const t=_e(co),n=fe("table");return{getHeaderRowStyle:l=>{const u=t?.props.headerRowStyle;return Ve(u)?u.call(null,{rowIndex:l}):u},getHeaderRowClass:l=>{const u=[],c=t?.props.headerRowClassName;return Le(c)?u.push(c):Ve(c)&&u.push(c.call(null,{rowIndex:l})),u.join(" ")},getHeaderCellStyle:(l,u,c,d)=>{let f=t?.props.headerCellStyle??{};Ve(f)&&(f=f.call(null,{rowIndex:l,columnIndex:u,row:c,column:d}));const v=Mm(u,d.fixed,e.store,c);return El(v,"left"),El(v,"right"),Object.assign({},f,v)},getHeaderCellClass:(l,u,c,d)=>{const f=Pm(n.b(),u,d.fixed,e.store,c),v=[d.id,d.order,d.headerAlign,d.className,d.labelClassName,...f];d.children||v.push("is-leaf"),d.sortable&&v.push("is-sortable");const g=t?.props.headerCellClassName;return Le(g)?v.push(g):Ve(g)&&v.push(g.call(null,{rowIndex:l,columnIndex:u,row:c,column:d})),v.push(n.e("cell")),v.filter(p=>!!p).join(" ")}}}var RU=re({name:"ElTableHeader",components:{ElCheckbox:oo},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const n=ft(),a=_e(co),o=fe("table"),r=M({}),{onColumnsChange:s,onScrollableChange:l}=Am(a),u=a?.props.tableLayout==="auto",c=At(new Map),d=M();let f;const v=()=>{f=setTimeout(()=>{c.size>0&&(c.forEach((_,V)=>{const z=d.value.querySelector(`.${V.replace(/\s/g,".")}`);z&&(_.width=z.getBoundingClientRect().width||_.width)}),c.clear())})};le(c,v),Bt(()=>{f&&(clearTimeout(f),f=void 0)}),ht(async()=>{await Ne(),await Ne();const{prop:_,order:V}=e.defaultSort;a?.store.commit("sort",{prop:_,order:V,init:!0}),v()});const{handleHeaderClick:g,handleHeaderContextMenu:p,handleMouseDown:h,handleMouseMove:m,handleMouseOut:b,handleSortClick:k,handleFilterClick:y}=OU(e,t),{getHeaderRowStyle:S,getHeaderRowClass:C,getHeaderCellStyle:E,getHeaderCellClass:$}=NU(e),{isGroup:O,toggleAllSelection:R,columnRows:N}=wU(e),{t:A}=Ct();return n.state={onColumnsChange:s,onScrollableChange:l},n.filterPanels=r,{ns:o,t:A,filterPanels:r,onColumnsChange:s,onScrollableChange:l,columnRows:N,getHeaderRowClass:C,getHeaderRowStyle:S,getHeaderCellClass:$,getHeaderCellStyle:E,handleHeaderClick:g,handleHeaderContextMenu:p,handleMouseDown:h,handleMouseMove:m,handleMouseOut:b,handleSortClick:k,handleFilterClick:y,isGroup:O,toggleAllSelection:R,saveIndexSelection:c,isTableLayoutAuto:u,theadRef:d,updateFixedColumnStyle:v}},render(){const{ns:e,t,isGroup:n,columnRows:a,getHeaderCellStyle:o,getHeaderCellClass:r,getHeaderRowClass:s,getHeaderRowStyle:l,handleHeaderClick:u,handleHeaderContextMenu:c,handleMouseDown:d,handleMouseMove:f,handleSortClick:v,handleMouseOut:g,store:p,$parent:h,saveIndexSelection:m,isTableLayoutAuto:b}=this;let k=1;return qe("thead",{ref:"theadRef",class:e.is("group",n)},a.map((y,S)=>qe("tr",{class:s(S),key:S,style:l(S)},y.map((C,E)=>{C.rowSpan>k&&(k=C.rowSpan);const $=r(S,E,y,C);return b&&C.fixed&&m.set($,C),qe("th",{class:$,colspan:C.colSpan,key:`${C.id}-thead`,rowspan:C.rowSpan,scope:C.colSpan>1?"colgroup":"col",ariaSort:C.sortable?C.order:void 0,style:o(S,E,y,C),onClick:O=>{O.currentTarget?.classList.contains("noclick")||u(O,C)},onContextmenu:O=>c(O,C),onMousedown:O=>d(O,C),onMousemove:O=>f(O,C),onMouseout:g},[qe("div",{class:["cell",C.filteredValue&&C.filteredValue.length>0?"highlight":""]},[C.renderHeader?C.renderHeader({column:C,$index:E,store:p,_self:h}):C.label,C.sortable&&qe("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:C.label||""}),onClick:O=>v(O,C)},[qe("i",{onClick:O=>v(O,C,"ascending"),class:"sort-caret ascending"}),qe("i",{onClick:O=>v(O,C,"descending"),class:"sort-caret descending"})]),C.filterable&&qe($U,{store:p,placement:C.filterPlacement||"bottom-start",appendTo:h?.appendFilterPanelTo,column:C,upDataColumn:(O,R)=>{C[O]=R}},{"filter-icon":()=>C.renderFilterIcon?C.renderFilterIcon({filterOpened:C.filterOpened}):null})])])}))))}});function ip(e,t,n=.03){return e-t>n}function IU(e){const t=_e(co),n=M(""),a=M(qe("div")),o=(p,h,m)=>{const b=t,k=lp(p);let y=null;const S=b?.vnode.el?.dataset.prefix;k&&(y=$0({columns:e.store?.states.columns.value??[]},k,S),y&&b?.emit(`cell-${m}`,h,y,k,p)),b?.emit(`row-${m}`,h,y,p)},r=(p,h)=>{o(p,h,"dblclick")},s=(p,h)=>{e.store?.commit("setCurrentRow",h),o(p,h,"click")},l=(p,h)=>{o(p,h,"contextmenu")},u=Po(p=>{e.store?.commit("setHoverRow",p)},30),c=Po(()=>{e.store?.commit("setHoverRow",null)},30),d=p=>{const h=window.getComputedStyle(p,null);return{left:Number.parseInt(h.paddingLeft,10)||0,right:Number.parseInt(h.paddingRight,10)||0,top:Number.parseInt(h.paddingTop,10)||0,bottom:Number.parseInt(h.paddingBottom,10)||0}},f=(p,h,m)=>{let b=h?.target?.parentNode;for(;p>1&&(b=b?.nextSibling,!(!b||b.nodeName!=="TR"));)m(b,"hover-row hover-fixed-row"),p--};return{handleDoubleClick:r,handleClick:s,handleContextMenu:l,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(p,h,m)=>{if(!t)return;const b=t,k=lp(p),y=b?.vnode.el?.dataset.prefix;let S=null;if(k){if(S=$0({columns:e.store?.states.columns.value??[]},k,y),!S)return;k.rowSpan>1&&f(k.rowSpan,p,La);const P=b.hoverState={cell:k,column:S,row:h};b?.emit("cell-mouse-enter",P.row,P.column,P.cell,p)}if(!m){pa?.trigger===k&&pa?.();return}const C=p.target.querySelector(".cell");if(!(To(C,`${y}-tooltip`)&&C.childNodes.length&&C.textContent?.trim()))return;const E=document.createRange();E.setStart(C,0),E.setEnd(C,C.childNodes.length);const{width:$,height:O}=E.getBoundingClientRect(),{width:R,height:N}=C.getBoundingClientRect(),{top:A,left:_,right:V,bottom:z}=d(C),U=_+V,W=A+z;ip($+U,R)||ip(O+W,N)||ip(C.scrollWidth,R)?cU(m,(k?.innerText||k?.textContent)??"",h,S,k,b):pa?.trigger===k&&pa?.()},handleCellMouseLeave:p=>{const h=lp(p);if(!h)return;h.rowSpan>1&&f(h.rowSpan,p,ta);const m=t?.hoverState;t?.emit("cell-mouse-leave",m?.row,m?.column,m?.cell,p)},tooltipContent:n,tooltipTrigger:a}}function PU(e){const t=_e(co),n=fe("table");return{getRowStyle:(c,d)=>{const f=t?.props.rowStyle;return Ve(f)?f.call(null,{row:c,rowIndex:d}):f||null},getRowClass:(c,d,f)=>{const v=[n.e("row")];t?.props.highlightCurrentRow&&c===e.store?.states.currentRow.value&&v.push("current-row"),e.stripe&&f%2===1&&v.push(n.em("row","striped"));const g=t?.props.rowClassName;return Le(g)?v.push(g):Ve(g)&&v.push(g.call(null,{row:c,rowIndex:d})),v},getCellStyle:(c,d,f,v)=>{const g=t?.props.cellStyle;let p=g??{};Ve(g)&&(p=g.call(null,{rowIndex:c,columnIndex:d,row:f,column:v}));const h=Mm(d,e?.fixed,e.store);return El(h,"left"),El(h,"right"),Object.assign({},p,h)},getCellClass:(c,d,f,v,g)=>{const p=Pm(n.b(),d,e?.fixed,e.store,void 0,g),h=[v.id,v.align,v.className,...p],m=t?.props.cellClassName;return Le(m)?h.push(m):Ve(m)&&h.push(m.call(null,{rowIndex:c,columnIndex:d,row:f,column:v})),h.push(n.e("cell")),h.filter(b=>!!b).join(" ")},getSpan:(c,d,f,v)=>{let g=1,p=1;const h=t?.props.spanMethod;if(Ve(h)){const m=h({row:c,column:d,rowIndex:f,columnIndex:v});ye(m)?(g=m[0],p=m[1]):at(m)&&(g=m.rowspan,p=m.colspan)}return{rowspan:g,colspan:p}},getColspanRealWidth:(c,d,f)=>{if(d<1)return c[f].realWidth;const v=c.map(({realWidth:g,width:p})=>g||p).slice(f,f+d);return Number(v.reduce((g,p)=>Number(g)+Number(p),-1))}}}const MU=["colspan","rowspan"];var _U=re({name:"TableTdWrapper",__name:"td-wrapper",props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup(e){return(t,n)=>(x(),B("td",{colspan:e.colspan,rowspan:e.rowspan},[ee(t.$slots,"default")],8,MU))}}),AU=_U;function LU(e){const t=_e(co),n=fe("table"),{handleDoubleClick:a,handleClick:o,handleContextMenu:r,handleMouseEnter:s,handleMouseLeave:l,handleCellMouseEnter:u,handleCellMouseLeave:c,tooltipContent:d,tooltipTrigger:f}=IU(e),{getRowStyle:v,getRowClass:g,getCellStyle:p,getCellClass:h,getSpan:m,getColspanRealWidth:b}=PU(e);let k=-1;const y=w(()=>e.store?.states.columns.value.findIndex(({type:O})=>O==="default")),S=(O,R)=>{const N=t?.props?.rowKey;return N?Hn(O,N):R},C=(O,R,N,A=!1)=>{const{tooltipEffect:_,tooltipOptions:V,store:z}=e,{indent:U,columns:W}=z.states,P=[];let I=!0;return N&&(P.push(n.em("row",`level-${N.level}`)),I=!!N.display),R===0&&(k=-1),e.stripe&&I&&k++,P.push(...g(O,R,k)),qe("tr",{style:[I?null:{display:"none"},v(O,R)],class:P,key:S(O,R),onDblclick:L=>a(L,O),onClick:L=>o(L,O),onContextmenu:L=>r(L,O),onMouseenter:()=>s(R),onMouseleave:l},W.value.map((L,D)=>{const{rowspan:F,colspan:q}=m(O,L,R,D);if(!F||!q)return null;const j=Object.assign({},L);j.realWidth=b(W.value,q,D);const X={store:z,_self:e.context||t,column:j,row:O,$index:R,cellIndex:D,expanded:A};D===y.value&&N&&(X.treeNode={indent:N.level&&N.level*U.value,level:N.level},Ht(N.expanded)&&(X.treeNode.expanded=N.expanded,"loading"in N&&(X.treeNode.loading=N.loading),"noLazyChildren"in N&&(X.treeNode.noLazyChildren=N.noLazyChildren)));const Q=`${S(O,R)},${D}`,he=j.columnKey||j.rawColumnKey||"",ue=L.showOverflowTooltip&&IS({effect:_},V,L.showOverflowTooltip);return qe(AU,{style:p(R,D,O,L),class:h(R,D,O,L,q-1),key:`${he}${Q}`,rowspan:F,colspan:q,onMouseenter:ge=>u(ge,O,ue),onMouseleave:c},{default:()=>E(D,L,X)})}))},E=(O,R,N)=>R.renderCell(N);return{wrappedRowRender:(O,R)=>{const N=e.store,{isRowExpanded:A,assertRowKey:_}=N,{treeData:V,lazyTreeNodeMap:z,childrenColumnName:U,rowKey:W}=N.states,P=N.states.columns.value;if(P.some(({type:I})=>I==="expand")){const I=A(O),L=C(O,R,void 0,I),D=t?.renderExpanded;if(!D)return console.error("[Element Error]renderExpanded is required."),L;const F=[[L]];return(t.props.preserveExpandedContent||I)&&F[0].push(qe("tr",{key:`expanded-row__${L.key}`,style:{display:I?"":"none"}},[qe("td",{colspan:P.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[D({row:O,$index:R,store:N,expanded:I})])])),F}else if(Object.keys(V.value).length){_();const I=Hn(O,W.value);let L=V.value[I],D=null;L&&(D={expanded:L.expanded,level:L.level,display:!0,noLazyChildren:void 0,loading:void 0},Ht(L.lazy)&&(D&&Ht(L.loaded)&&L.loaded&&(D.noLazyChildren=!(L.children&&L.children.length)),D.loading=L.loading));const F=[C(O,R,D??void 0)];if(L){let q=0;const j=(X,Q)=>{X&&X.length&&Q&&X.forEach(he=>{const ue={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},ge=Hn(he,W.value);if(va(ge))throw new Error("For nested data item, row-key is required.");L={...V.value[ge]},L&&(ue.expanded=L.expanded,L.level=L.level||ue.level,L.display=!!(L.expanded&&ue.display),Ht(L.lazy)&&(Ht(L.loaded)&&L.loaded&&(ue.noLazyChildren=!(L.children&&L.children.length)),ue.loading=L.loading)),q++,F.push(C(he,R+q,ue)),L&&j(z.value[ge]||he[U.value],L)})};L.display=!0,j(z.value[I]||O[U.value],L)}return F}else return C(O,R,void 0)},tooltipContent:d,tooltipTrigger:f}}const DU={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var BU=re({name:"ElTableBody",props:DU,setup(e){const t=ft(),n=_e(co),a=fe("table"),{wrappedRowRender:o,tooltipContent:r,tooltipTrigger:s}=LU(e),{onColumnsChange:l,onScrollableChange:u}=Am(n),c=[];return le(e.store?.states.hoverRow,(d,f)=>{const v=t?.vnode.el,g=Array.from(v?.children||[]).filter(m=>m?.classList.contains(`${a.e("row")}`));let p=d;const h=g[p]?.childNodes;if(h?.length){let m=0;Array.from(h).reduce((b,k,y)=>(h[y]?.colSpan>1&&(m=h[y]?.colSpan),k.nodeName!=="TD"&&m===0&&b.push(y),m>0&&m--,b),[]).forEach(b=>{for(p=d;p>0;){const k=g[p-1]?.childNodes;if(k[b]&&k[b].nodeName==="TD"&&k[b].rowSpan>1){La(k[b],"hover-cell"),c.push(k[b]);break}p--}})}else c.forEach(m=>ta(m,"hover-cell")),c.length=0;!e.store?.states.isComplex.value||!Mt||Qa(()=>{const m=g[f],b=g[d];m&&!m.classList.contains("hover-fixed-row")&&ta(m,"hover-row"),b&&La(b,"hover-row")})}),$l(()=>{pa?.()}),{ns:a,onColumnsChange:l,onScrollableChange:u,wrappedRowRender:o,tooltipContent:r,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return qe("tbody",{tabIndex:-1},[(t?.states.data.value||[]).reduce((n,a)=>n.concat(e(a,n.length)),[])])}});function FU(){const e=_e(co)?.store;return{leftFixedLeafCount:w(()=>e?.states.fixedLeafColumnsLength.value??0),rightFixedLeafCount:w(()=>e?.states.rightFixedColumns.value.length??0),columnsCount:w(()=>e?.states.columns.value.length??0),leftFixedCount:w(()=>e?.states.fixedColumns.value.length??0),rightFixedCount:w(()=>e?.states.rightFixedColumns.value.length??0),columns:w(()=>e?.states.columns.value??[])}}function VU(e){const{columns:t}=FU(),n=fe("table");return{getCellClasses:(r,s)=>{const l=r[s],u=[n.e("cell"),l.id,l.align,l.labelClassName,...Pm(n.b(),s,l.fixed,e.store)];return l.className&&u.push(l.className),l.children||u.push(n.is("leaf")),u},getCellStyles:(r,s)=>{const l=Mm(s,r.fixed,e.store);return El(l,"left"),El(l,"right"),l},columns:t}}var zU=re({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=_e(co),n=fe("table"),{getCellClasses:a,getCellStyles:o,columns:r}=VU(e),{onScrollableChange:s,onColumnsChange:l}=Am(t);return{ns:n,onScrollableChange:s,onColumnsChange:l,getCellClasses:a,getCellStyles:o,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:a,sumText:o}=this,r=this.store.states.data.value;let s=[];return a?s=a({columns:e,data:r}):e.forEach((l,u)=>{if(u===0){s[u]=o;return}const c=r.map(g=>Number(g[l.property])),d=[];let f=!0;c.forEach(g=>{if(!Number.isNaN(+g)){f=!1;const p=`${g}`.split(".")[1];d.push(p?p.length:0)}});const v=Math.max.apply(null,d);f?s[u]="":s[u]=c.reduce((g,p)=>{const h=Number(p);return Number.isNaN(+h)?g:Number.parseFloat((g+p).toFixed(Math.min(v,20)))},0)}),qe(qe("tfoot",[qe("tr",{},[...e.map((l,u)=>qe("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:n(e,u),style:t(l,u)},[qe("div",{class:["cell",l.labelClassName]},[s[u]])]))])]))}});function HU(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,v,g=!0)=>{e.toggleRowSelection(f,v,!1,g),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,v)=>{e.toggleRowExpansionAdapter(f,v)},clearSort:()=>{e.clearSort()},sort:(f,v)=>{e.commit("sort",{prop:f,order:v})},updateKeyChildren:(f,v)=>{e.updateKeyChildren(f,v)}}}function KU(e,t,n,a){const o=M(!1),r=M(null),s=M(!1),l=U=>{s.value=U},u=M({width:null,height:null,headerHeight:null}),c=M(!1),d={display:"inline-block",verticalAlign:"middle"},f=M(),v=M(0),g=M(0),p=M(0),h=M(0),m=M(0);le(()=>e.height,U=>{t.setHeight(U??null)},{immediate:!0}),le(()=>e.maxHeight,U=>{t.setMaxHeight(U??null)},{immediate:!0}),le(()=>[e.currentRowKey,n.states.rowKey],([U,W])=>{!i(W)||!i(U)||n.setCurrentRowKey(`${U}`)},{immediate:!0}),le(()=>e.data,U=>{a.store.commit("setData",U)},{immediate:!0,deep:!0}),wa(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const b=()=>{a.store.commit("setHoverRow",null),a.hoverState&&(a.hoverState=null)},k=(U,W)=>{const{pixelX:P,pixelY:I}=W;Math.abs(P)>=Math.abs(I)&&(a.refs.bodyWrapper.scrollLeft+=W.pixelX/5)},y=w(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),S=w(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),C=()=>{y.value&&t.updateElsHeight(),t.updateColumnsWidth(),!(typeof window>"u")&&requestAnimationFrame(R)};ht(async()=>{await Ne(),n.updateColumns(),N(),requestAnimationFrame(C);const U=a.vnode.el,W=a.refs.headerWrapper;e.flexible&&U&&U.parentElement&&(U.parentElement.style.minWidth="0"),u.value={width:f.value=U.offsetWidth,height:U.offsetHeight,headerHeight:e.showHeader&&W?W.offsetHeight:null},n.states.columns.value.forEach(P=>{P.filteredValue&&P.filteredValue.length&&a.store.commit("filterChange",{column:P,values:P.filteredValue,silent:!0})}),a.$ready=!0});const E=(U,W)=>{if(!U)return;const P=Array.from(U.classList).filter(I=>!I.startsWith("is-scrolling-"));P.push(t.scrollX.value?W:"is-scrolling-none"),U.className=P.join(" ")},$=U=>{const{tableWrapper:W}=a.refs;E(W,U)},O=U=>{const{tableWrapper:W}=a.refs;return!!(W&&W.classList.contains(U))},R=function(){if(!a.refs.scrollBarRef)return;if(!t.scrollX.value){const F="is-scrolling-none";O(F)||$(F);return}const U=a.refs.scrollBarRef.wrapRef;if(!U)return;const{scrollLeft:W,offsetWidth:P,scrollWidth:I}=U,{headerWrapper:L,footerWrapper:D}=a.refs;L&&(L.scrollLeft=W),D&&(D.scrollLeft=W),W>=I-P-1?$("is-scrolling-right"):$(W===0?"is-scrolling-left":"is-scrolling-middle")},N=()=>{a.refs.scrollBarRef&&(a.refs.scrollBarRef.wrapRef&&Ft(a.refs.scrollBarRef.wrapRef,"scroll",R,{passive:!0}),e.fit?Zt(a.vnode.el,A):Ft(window,"resize",A),Zt(a.refs.tableInnerWrapper,()=>{A(),a.refs?.scrollBarRef?.update()}))},A=()=>{const U=a.vnode.el;if(!a.$ready||!U)return;let W=!1;const{width:P,height:I,headerHeight:L}=u.value,D=f.value=U.offsetWidth;P!==D&&(W=!0);const F=U.offsetHeight;(e.height||y.value)&&I!==F&&(W=!0);const q=e.tableLayout==="fixed"?a.refs.headerWrapper:a.refs.tableHeaderRef?.$el;e.showHeader&&q?.offsetHeight!==L&&(W=!0),v.value=a.refs.tableWrapper?.scrollHeight||0,p.value=q?.scrollHeight||0,h.value=a.refs.footerWrapper?.offsetHeight||0,m.value=a.refs.appendWrapper?.offsetHeight||0,g.value=v.value-p.value-h.value-m.value,W&&(u.value={width:D,height:F,headerHeight:e.showHeader&&q?.offsetHeight||0},C())},_=Cn(),V=w(()=>{const{bodyWidth:U,scrollY:W,gutterWidth:P}=t;return U.value?`${U.value-(W.value?P:0)}px`:""}),z=w(()=>e.maxHeight?"fixed":e.tableLayout);return{isHidden:o,renderExpanded:r,setDragVisible:l,isGroup:c,handleMouseLeave:b,handleHeaderFooterMousewheel:k,tableSize:_,emptyBlockStyle:w(()=>{if(e.data&&e.data.length)return;let U="100%";e.height&&g.value&&(U=`${g.value}px`);const W=f.value;return{width:W?`${W}px`:"",height:U}}),resizeProxyVisible:s,bodyWidth:V,resizeState:u,doLayout:C,tableBodyStyles:S,tableLayout:z,scrollbarViewStyle:d,scrollbarStyle:w(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${p.value+h.value}px)`}:{maxHeight:`${+e.maxHeight-p.value-h.value}px`}:{})}}function WU(e){let t;const n=()=>{const a=e.vnode.el.querySelector(".hidden-columns"),o={childList:!0,subtree:!0},r=e.store.states.updateOrderFns;t=new MutationObserver(()=>{r.forEach(s=>s())}),t.observe(a,o)};ht(()=>{n()}),$l(()=>{t?.disconnect()})}var jU={data:{type:Array,default:()=>[]},size:Tn,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,rowExpandable:{type:Function},defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array],default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function bE(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(({width:o})=>Tt(o))&&(n=[]);const a=o=>{const r={key:`${e.tableLayout}_${o.id}`,style:{},name:void 0};return t?r.style={width:`${o.width}px`}:r.name=o.id,r};return qe("colgroup",{},n.map(o=>qe("col",a(o))))}bE.props=["columns","tableLayout"];const UU=()=>{const e=M(),t=(r,s)=>{const l=e.value;l&&l.scrollTo(r,s)},n=(r,s)=>{const l=e.value;l&&He(s)&&["Top","Left"].includes(r)&&l[`setScroll${r}`](s)};return{scrollBarRef:e,scrollTo:t,setScrollTop:r=>n("Top",r),setScrollLeft:r=>n("Left",r)}};let qU=1;var YU=re({name:"ElTable",directives:{Mousewheel:w8},components:{TableHeader:RU,TableBody:BU,TableFooter:zU,ElScrollbar:no,hColgroup:bE},props:jU,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t}=Ct(),n=fe("table"),a=gr("table"),o=ft();St(co,o);const r=gU(o,e);o.store=r;const s=new yU({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=s;const l=w(()=>(r.states.data.value||[]).length===0),{setCurrentRow:u,getSelectionRows:c,toggleRowSelection:d,clearSelection:f,clearFilter:v,toggleAllSelection:g,toggleRowExpansion:p,clearSort:h,sort:m,updateKeyChildren:b}=HU(r),{isHidden:k,renderExpanded:y,setDragVisible:S,isGroup:C,handleMouseLeave:E,handleHeaderFooterMousewheel:$,tableSize:O,emptyBlockStyle:R,resizeProxyVisible:N,bodyWidth:A,resizeState:_,doLayout:V,tableBodyStyles:z,tableLayout:U,scrollbarViewStyle:W,scrollbarStyle:P}=KU(e,s,r,o),{scrollBarRef:I,scrollTo:L,setScrollLeft:D,setScrollTop:F}=UU(),q=Po(V,50),j=`${n.namespace.value}-table_${qU++}`;o.tableId=j,o.state={isGroup:C,resizeState:_,doLayout:V,debouncedUpdateLayout:q};const X=w(()=>e.sumText??t("el.table.sumText")),Q=w(()=>e.emptyText??t("el.table.emptyText")),he=w(()=>e.tooltipEffect??a.value?.tooltipEffect),ue=w(()=>e.tooltipOptions??a.value?.tooltipOptions),ge=w(()=>gE(r.states.originColumns.value)[0]);return WU(o),Bt(()=>{q.cancel()}),{ns:n,layout:s,store:r,columns:ge,handleHeaderFooterMousewheel:$,handleMouseLeave:E,tableId:j,tableSize:O,isHidden:k,isEmpty:l,renderExpanded:y,resizeProxyVisible:N,resizeState:_,isGroup:C,bodyWidth:A,tableBodyStyles:z,emptyBlockStyle:R,debouncedUpdateLayout:q,setCurrentRow:u,getSelectionRows:c,toggleRowSelection:d,clearSelection:f,clearFilter:v,toggleAllSelection:g,toggleRowExpansion:p,clearSort:h,doLayout:V,sort:m,updateKeyChildren:b,t,setDragVisible:S,context:o,computedSumText:X,computedEmptyText:Q,computedTooltipEffect:he,computedTooltipOptions:ue,tableLayout:U,scrollbarViewStyle:W,scrollbarStyle:P,scrollBarRef:I,scrollTo:L,setScrollLeft:D,setScrollTop:F,allowDragLastColumn:e.allowDragLastColumn}}});const GU=["data-prefix"],XU={ref:"hiddenColumns",class:"hidden-columns"};function JU(e,t,n,a,o,r){const s=It("hColgroup"),l=It("table-header"),u=It("table-body"),c=It("table-footer"),d=It("el-scrollbar"),f=sv("mousewheel");return x(),B("div",{ref:"tableWrapper",class:T([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:Ke(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[1]||(t[1]=(...v)=>e.handleMouseLeave&&e.handleMouseLeave(...v))},[H("div",{ref:"tableInnerWrapper",class:T(e.ns.e("inner-wrapper"))},[H("div",XU,[ee(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?ct((x(),B("div",{key:0,ref:"headerWrapper",class:T(e.ns.e("header-wrapper"))},[H("table",{ref:"tableHeader",class:T(e.ns.e("header")),style:Ke(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[Y(s,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Y(l,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[f,e.handleHeaderFooterMousewheel]]):te("v-if",!0),H("div",{ref:"bodyWrapper",class:T(e.ns.e("body-wrapper"))},[Y(d,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t[0]||(t[0]=v=>e.$emit("scroll",v))},{default:J(()=>[H("table",{ref:"tableBody",class:T(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:Ke({width:e.bodyWidth,tableLayout:e.tableLayout})},[Y(s,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(x(),oe(l,{key:0,ref:"tableHeaderRef",class:T(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):te("v-if",!0),Y(u,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.computedTooltipEffect,"tooltip-options":e.computedTooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&e.tableLayout==="auto"?(x(),oe(c,{key:1,class:T(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):te("v-if",!0)],6),e.isEmpty?(x(),B("div",{key:0,ref:"emptyBlock",style:Ke(e.emptyBlockStyle),class:T(e.ns.e("empty-block"))},[H("span",{class:T(e.ns.e("empty-text"))},[ee(e.$slots,"empty",{},()=>[wt(Se(e.computedEmptyText),1)])],2)],6)):te("v-if",!0),e.$slots.append?(x(),B("div",{key:1,ref:"appendWrapper",class:T(e.ns.e("append-wrapper"))},[ee(e.$slots,"append")],2)):te("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native"])],2),e.showSummary&&e.tableLayout==="fixed"?ct((x(),B("div",{key:1,ref:"footerWrapper",class:T(e.ns.e("footer-wrapper"))},[H("table",{class:T(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:Ke(e.tableBodyStyles)},[Y(s,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),Y(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[Pt,!e.isEmpty],[f,e.handleHeaderFooterMousewheel]]):te("v-if",!0),e.border||e.isGroup?(x(),B("div",{key:2,class:T(e.ns.e("border-left-patch"))},null,2)):te("v-if",!0)],2),ct(H("div",{ref:"resizeProxy",class:T(e.ns.e("column-resize-proxy"))},null,2),[[Pt,e.resizeProxyVisible]])],46,GU)}var ZU=$n(YU,[["render",JU]]);const QU={selection:"table-column--selection",expand:"table__expand-column"},eq={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},tq=e=>QU[e]||"",nq={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return qe(oo,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection??void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t("el.table.selectAllLabel")})},renderCell({row:e,column:t,store:n,$index:a}){return qe(oo,{disabled:t.selectable?!t.selectable.call(null,e,a):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:o=>o.stopPropagation(),modelValue:n.isSelected(e),ariaLabel:n.t("el.table.selectRowLabel")})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let n=t+1;const a=e.index;return He(a)?n=t+a:Ve(a)&&(n=a(t)),qe("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({column:e,row:t,store:n,expanded:a,$index:o}){const{ns:r}=n,s=[r.e("expand-icon")];!e.renderExpand&&a&&s.push(r.em("expand-icon","expanded"));const l=function(c){c.stopPropagation(),n.toggleRowExpansion(t)},u=n.states.rowExpandable.value?.(t,o)??!0;return u||s.push(r.is("disabled")),qe("button",{type:"button",disabled:!u,"aria-label":n.t(a?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":a,class:s,onClick:l},{default:()=>e.renderExpand?[e.renderExpand({expanded:a,expandable:u})]:[qe(De,null,{default:()=>[qe(na)]})]})},sortable:!1,resizable:!1}};function aq({row:e,column:t,$index:n}){const a=t.property,o=a&&Mr(e,a).value;return t&&t.formatter?t.formatter(e,t,o,n):o?.toString?.()||""}function oq({row:e,treeNode:t,store:n},a=!1){const{ns:o}=n;if(!t)return a?[qe("span",{class:o.e("placeholder")})]:null;const r=[],s=function(l){l.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&r.push(qe("span",{class:o.e("indent"),style:{"padding-left":`${t.indent}px`}})),Ht(t.expanded)&&!t.noLazyChildren){const l=[o.e("expand-icon"),t.expanded?o.em("expand-icon","expanded"):""];let u=na;t.loading&&(u=_o),r.push(qe("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:l,onClick:s},{default:()=>[qe(De,{class:o.is("loading",t.loading)},{default:()=>[qe(u)]})]}))}else r.push(qe("span",{class:o.e("placeholder")}));return r}function R0(e,t){return e.reduce((n,a)=>(n[a]=a,n),t)}function rq(e,t){const n=ft();return{registerComplexWatchers:()=>{const r=["fixed"],s={realWidth:"width",realMinWidth:"minWidth"},l=R0(r,s);Object.keys(l).forEach(u=>{const c=s[u];Rt(t,c)&&le(()=>t[c],d=>{let f=d;c==="width"&&u==="realWidth"&&(f=Im(d)),c==="minWidth"&&u==="realMinWidth"&&(f=cE(d)),n.columnConfig.value[c]=f,n.columnConfig.value[u]=f;const v=c==="fixed";e.value.store.scheduleLayout(v)})})},registerNormalWatchers:()=>{const r=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],s=["showOverflowTooltip"],l={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},u=R0(r,l);Object.keys(u).forEach(d=>{const f=l[d];Rt(t,f)&&le(()=>t[f],v=>{n.columnConfig.value[d]=v,(d==="filters"||d==="filterMethod")&&(n.columnConfig.value.filterable=!!(n.columnConfig.value.filters||n.columnConfig.value.filterMethod))})}),s.forEach(d=>{Rt(e.value.props,d)&&le(()=>e.value.props[d],f=>{n.columnConfig.value.type!=="selection"&&Tt(t[d])&&(n.columnConfig.value[d]=f)})});const c=gr("table");c.value&&Rt(c.value,"showOverflowTooltip")&&le(()=>c.value?.showOverflowTooltip,d=>{n.columnConfig.value.type!=="selection"&&(!Tt(t.showOverflowTooltip)||!Tt(e.value.props.showOverflowTooltip)||(n.columnConfig.value.showOverflowTooltip=d))})}}}function sq(e,t,n){const a=ft(),o=M(""),r=M(!1),s=M(),l=M(),u=fe("table");wa(()=>{s.value=e.align?`is-${e.align}`:null,s.value}),wa(()=>{l.value=e.headerAlign?`is-${e.headerAlign}`:s.value,l.value});const c=w(()=>{let S=a.vnode.vParent||a.parent;for(;S&&!S.tableId&&!S.columnId;)S=S.vnode.vParent||S.parent;return S}),d=w(()=>{const{store:S}=a.parent;if(!S)return!1;const{treeData:C}=S.states,E=C.value;return E&&Object.keys(E).length>0}),f=M(Im(e.width)),v=M(cE(e.minWidth)),g=S=>(f.value&&(S.width=f.value),v.value&&(S.minWidth=v.value),!f.value&&v.value&&(S.width=void 0),S.minWidth||(S.minWidth=80),S.realWidth=Number(Tt(S.width)?S.minWidth:S.width),S),p=S=>{const C=S.type,E=nq[C]||{};Object.keys(E).forEach(O=>{const R=E[O];O!=="className"&&!Tt(R)&&(S[O]=R)});const $=tq(C);if($){const O=`${i(u.namespace)}-${$}`;S.className=S.className?`${S.className} ${O}`:O}return S},h=S=>{ye(S)?S.forEach(E=>C(E)):C(S);function C(E){E?.type?.name==="ElTableColumn"&&(E.vParent=a)}};return{columnId:o,realAlign:s,isSubColumn:r,realHeaderAlign:l,columnOrTableParent:c,setColumnWidth:g,setColumnForcedProps:p,setColumnRenders:S=>{e.renderHeader?pt("TableColumn","Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header."):S.type!=="selection"&&(S.renderHeader=E=>{if(a.columnConfig.value.label,t.header){const $=t.header(E);if(pE($))return qe(Fe,$)}return wt(S.label)}),t["filter-icon"]&&(S.renderFilterIcon=E=>ee(t,"filter-icon",E)),t.expand&&(S.renderExpand=E=>ee(t,"expand",E));let C=S.renderCell;return S.type==="expand"?(S.renderCell=E=>qe("div",{class:"cell"},[C(E)]),n.value.renderExpanded=E=>t.default?t.default(E):t.default):(C=C||aq,S.renderCell=E=>{let $=null;if(t.default){const _=t.default(E);$=_.some(V=>V.type!==mn)?_:C(E)}else $=C(E);const{columns:O}=n.value.store.states,R=O.value.findIndex(_=>_.type==="default"),N=oq(E,d.value&&E.cellIndex===R),A={class:"cell",style:{}};return S.showOverflowTooltip&&(A.class=`${A.class} ${i(u.namespace)}-tooltip`,A.style={width:`${(E.column.realWidth||Number(E.column.width))-1}px`}),h($),qe("div",A,[N,$])}),S},getPropsData:(...S)=>S.reduce((C,E)=>(ye(E)&&E.forEach($=>{C[$]=e[$]}),C),{}),getColumnElIndex:(S,C)=>Array.prototype.indexOf.call(S,C),updateColumnOrder:()=>{n.value.store.commit("updateColumnOrder",a.columnConfig.value)}}}var lq={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let iq=1;var uq=re({name:"ElTableColumn",components:{ElCheckbox:oo},props:lq,setup(e,{slots:t}){const n=ft(),a=gr("table"),o=M({}),r=w(()=>{let S=n.parent;for(;S&&!S.tableId;)S=S.parent;return S}),{registerNormalWatchers:s,registerComplexWatchers:l}=rq(r,e),{columnId:u,isSubColumn:c,realHeaderAlign:d,columnOrTableParent:f,setColumnWidth:v,setColumnForcedProps:g,setColumnRenders:p,getPropsData:h,getColumnElIndex:m,realAlign:b,updateColumnOrder:k}=sq(e,t,r),y=f.value;u.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${iq++}`,Pd(()=>{c.value=r.value!==y;const S=e.type||"default",C=e.sortable===""?!0:e.sortable,E=S==="selection"?!1:Tt(e.showOverflowTooltip)?y.props.showOverflowTooltip??a.value?.showOverflowTooltip:e.showOverflowTooltip,$=Tt(e.tooltipFormatter)?y.props.tooltipFormatter??a.value?.tooltipFormatter:e.tooltipFormatter,O={...eq[S],id:u.value,type:S,property:e.prop||e.property,align:b,headerAlign:d,showOverflowTooltip:E,tooltipFormatter:$,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:C,index:e.index,rawColumnKey:n.vnode.key};let R=h(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);R=rU(O,R),R=lU(p,v,g)(R),o.value=R,s(),l()}),ht(()=>{const S=f.value,C=c.value?S.vnode.el?.children:S.refs.hiddenColumns?.children,E=()=>m(C||[],n.vnode.el);o.value.getColumnIndex=E,E()>-1&&r.value.store.commit("insertColumn",o.value,c.value?"columnConfig"in S&&S.columnConfig.value:null,k)}),Bt(()=>{const S=o.value.getColumnIndex;(S?S():-1)>-1&&r.value.store.commit("removeColumn",o.value,c.value?"columnConfig"in y&&y.columnConfig.value:null,k)}),n.columnId=u.value,n.columnConfig=o},render(){try{const e=this.$slots.default?.({row:{},column:{},$index:-1}),t=[];if(ye(e))for(const n of e)n.type?.name==="ElTableColumn"||n.shapeFlag&2?t.push(n):n.type===Fe&&ye(n.children)&&n.children.forEach(a=>{a?.patchFlag!==1024&&!Le(a?.children)&&t.push(a)});return qe("div",t)}catch{return qe("div",[])}}}),yE=uq;const cq=rt(ZU,{TableColumn:yE}),dq=nn(yE);let ko=(function(e){return e.ASC="asc",e.DESC="desc",e})({}),yd=(function(e){return e.LEFT="left",e.CENTER="center",e.RIGHT="right",e})({}),fq=(function(e){return e.LEFT="left",e.RIGHT="right",e})({});const $h={[ko.ASC]:ko.DESC,[ko.DESC]:ko.ASC},Wi=Symbol("placeholder"),wE=String,Su={type:G(Array),required:!0},Lm={type:G(Array)},SE={...Lm,required:!0},pq=String,I0={type:G(Array),default:()=>rn([])},ts={type:Number,required:!0},CE={type:G([String,Number,Symbol]),default:"id"},P0={type:G(Object)},ls=Ce({class:String,columns:Su,columnsStyles:{type:G(Object),required:!0},depth:Number,expandColumnKey:pq,estimatedRowHeight:{...ps.estimatedRowHeight,default:void 0},isScrolling:Boolean,onRowExpand:{type:G(Function)},onRowHover:{type:G(Function)},onRowHeightChange:{type:G(Function)},rowData:{type:G(Object),required:!0},rowEventHandlers:{type:G(Object)},rowIndex:{type:Number,required:!0},rowKey:CE,style:{type:G(Object)}}),up={type:Number,required:!0},Dm=Ce({class:String,columns:Su,fixedHeaderData:{type:G(Array)},headerData:{type:G(Array),required:!0},headerHeight:{type:G([Number,Array]),default:50},rowWidth:up,rowHeight:{type:Number,default:50},height:up,width:up}),Nc=Ce({columns:Su,data:SE,fixedData:Lm,estimatedRowHeight:ls.estimatedRowHeight,width:ts,height:ts,headerWidth:ts,headerHeight:Dm.headerHeight,bodyWidth:ts,rowHeight:ts,cache:W2.cache,useIsScrolling:Boolean,scrollbarAlwaysOn:ps.scrollbarAlwaysOn,scrollbarStartGap:ps.scrollbarStartGap,scrollbarEndGap:ps.scrollbarEndGap,class:wE,style:P0,containerStyle:P0,getRowHeight:{type:G(Function),required:!0},rowKey:ls.rowKey,onRowsRendered:{type:G(Function)},onScroll:{type:G(Function)}}),hq=Ce({cache:Nc.cache,estimatedRowHeight:ls.estimatedRowHeight,rowKey:CE,headerClass:{type:G([String,Function])},headerProps:{type:G([Object,Function])},headerCellProps:{type:G([Object,Function])},headerHeight:Dm.headerHeight,footerHeight:{type:Number,default:0},rowClass:{type:G([String,Function])},rowProps:{type:G([Object,Function])},rowHeight:{type:Number,default:50},cellProps:{type:G([Object,Function])},columns:Su,data:SE,dataGetter:{type:G(Function)},fixedData:Lm,expandColumnKey:ls.expandColumnKey,expandedRowKeys:I0,defaultExpandedRowKeys:I0,class:wE,fixed:Boolean,style:{type:G(Object)},width:ts,height:ts,maxHeight:Number,useIsScrolling:Boolean,indentSize:{type:Number,default:12},iconSize:{type:Number,default:12},hScrollbarSize:ps.hScrollbarSize,vScrollbarSize:ps.vScrollbarSize,scrollbarAlwaysOn:q2.alwaysOn,sortBy:{type:G(Object),default:()=>({})},sortState:{type:G(Object),default:void 0},onColumnSort:{type:G(Function)},onExpandedRowsChange:{type:G(Function)},onEndReached:{type:G(Function)},onRowExpand:ls.onRowExpand,onScroll:Nc.onScroll,onRowsRendered:Nc.onRowsRendered,rowEventHandlers:ls.rowEventHandlers}),vq=(e,t,n)=>{const a={flexGrow:0,flexShrink:0,...n?{}:{flexGrow:e.flexGrow??0,flexShrink:e.flexShrink??1}},o={...e.style??{},...a,flexBasis:"auto",width:e.width};return t||(e.maxWidth&&(o.maxWidth=e.maxWidth),e.minWidth&&(o.minWidth=e.minWidth)),o};function mq(e,t,n){const a=w(()=>i(t).map((m,b)=>({...m,key:m.key??m.dataKey??b}))),o=w(()=>i(a).filter(m=>!m.hidden)),r=w(()=>i(o).filter(m=>m.fixed==="left"||m.fixed===!0)),s=w(()=>i(o).filter(m=>m.fixed==="right")),l=w(()=>i(o).filter(m=>!m.fixed)),u=w(()=>{const m=[];return i(r).forEach(b=>{m.push({...b,placeholderSign:Wi})}),i(l).forEach(b=>{m.push(b)}),i(s).forEach(b=>{m.push({...b,placeholderSign:Wi})}),m}),c=w(()=>i(r).length||i(s).length),d=w(()=>i(a).reduce((m,b)=>(m[b.key]=vq(b,i(n),e.fixed),m),{})),f=w(()=>i(o).reduce((m,b)=>m+b.width,0)),v=m=>i(a).find(b=>b.key===m),g=m=>i(d)[m],p=(m,b)=>{m.width=b};function h(m){const{key:b}=m.currentTarget.dataset;if(!b)return;const{sortState:k,sortBy:y}=e;let S=ko.ASC;at(k)?S=$h[k[b]]:S=$h[y.order],e.onColumnSort?.({column:v(b),key:b,order:S})}return{columns:a,columnsStyles:d,columnsTotalWidth:f,fixedColumnsOnLeft:r,fixedColumnsOnRight:s,hasFixedColumns:c,mainColumns:u,normalColumns:l,visibleColumns:o,getColumn:v,getColumnStyle:g,updateColumnWidth:p,onColumnSorted:h}}const gq=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:a,onMaybeEndReached:o})=>{const r=M({scrollLeft:0,scrollTop:0});function s(g){const{scrollTop:p}=g;t.value?.scrollTo(g),n.value?.scrollToTop(p),a.value?.scrollToTop(p)}function l(g){r.value=g,s(g)}function u(g){r.value.scrollTop=g,s(i(r))}function c(g){r.value.scrollLeft=g,t.value?.scrollTo?.(i(r))}function d(g){l(g),e.onScroll?.(g)}function f({scrollTop:g}){const{scrollTop:p}=i(r);g!==p&&u(g)}function v(g,p="auto"){t.value?.scrollToRow(g,p)}return le(()=>i(r).scrollTop,(g,p)=>{g>p&&o()}),{scrollPos:r,scrollTo:l,scrollToLeft:c,scrollToTop:u,scrollToRow:v,onScroll:d,onVerticalScroll:f}},bq=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:a,tableInstance:o,ns:r,isScrolling:s})=>{const l=ft(),{emit:u}=l,c=Xt(!1),d=M(e.defaultExpandedRowKeys||[]),f=M(-1),v=Xt(null),g=M({}),p=M({}),h=Xt({}),m=Xt({}),b=Xt({}),k=w(()=>He(e.estimatedRowHeight));function y(N){e.onRowsRendered?.(N),N.rowCacheEnd>i(f)&&(f.value=N.rowCacheEnd)}function S({hovered:N,rowKey:A}){s.value||o.vnode.el.querySelectorAll(`[rowkey="${String(A)}"]`).forEach(_=>{N?_.classList.add(r.is("hovered")):_.classList.remove(r.is("hovered"))})}function C({expanded:N,rowData:A,rowIndex:_,rowKey:V}){const z=[...i(d)],U=z.indexOf(V);N?U===-1&&z.push(V):U>-1&&z.splice(U,1),d.value=z,u("update:expandedRowKeys",z),e.onRowExpand?.({expanded:N,rowData:A,rowIndex:_,rowKey:V}),e.onExpandedRowsChange?.(z),o.vnode.el.querySelector(`.${r.is("hovered")}[rowkey="${String(V)}"]`)&&Ne(()=>S({hovered:!0,rowKey:V}))}const E=Po(()=>{c.value=!0,g.value={...i(g),...i(p)},$(i(v),!1),p.value={},v.value=null,t.value?.forceUpdate(),n.value?.forceUpdate(),a.value?.forceUpdate(),l.proxy?.$forceUpdate(),c.value=!1},0);function $(N,A=!1){i(k)&&[t,n,a].forEach(_=>{const V=i(_);V&&V.resetAfterRowIndex(N,A)})}function O(N,A,_){const V=i(v);(V===null||V>_)&&(v.value=_),p.value[N]=A}function R({rowKey:N,height:A,rowIndex:_},V){V?V===fq.RIGHT?b.value[N]=A:h.value[N]=A:m.value[N]=A;const z=Math.max(...[h,b,m].map(U=>U.value[N]||0));i(g)[N]!==z&&(O(N,z,_),E())}return{expandedRowKeys:d,lastRenderedRowIndex:f,isDynamic:k,isResetting:c,rowHeights:g,resetAfterIndex:$,onRowExpanded:C,onRowHovered:S,onRowsRendered:y,onRowHeightChange:R}},yq=(e,{expandedRowKeys:t,lastRenderedRowIndex:n,resetAfterIndex:a})=>{const o=M({}),r=w(()=>{const l={},{data:u,rowKey:c}=e,d=i(t);if(!d||!d.length)return u;const f=[],v=new Set;d.forEach(p=>v.add(p));let g=u.slice();for(g.forEach(p=>l[p[c]]=0);g.length>0;){const p=g.shift();f.push(p),v.has(p[c])&&ye(p.children)&&p.children.length>0&&(g=[...p.children,...g],p.children.forEach(h=>l[h[c]]=l[p[c]]+1))}return o.value=l,f}),s=w(()=>{const{data:l,expandColumnKey:u}=e;return u?i(r):l});return le(s,(l,u)=>{l!==u&&(n.value=-1,a(0,!0))}),{data:s,depthMap:o}},wq=(e,t)=>e+t,Rc=e=>ye(e)?e.reduce(wq,0):e,ks=(e,t,n={})=>Ve(e)?e(t):e??n,Pr=e=>(["width","maxWidth","minWidth","height"].forEach(t=>{e[t]=sn(e[t])}),e),kE=e=>Ut(e)?t=>qe(e,t):e,Sq=(e,{columnsTotalWidth:t,rowsHeight:n,fixedColumnsOnLeft:a,fixedColumnsOnRight:o})=>{const r=w(()=>{const{fixed:h,width:m,vScrollbarSize:b}=e,k=m-b;return h?Math.max(Math.round(i(t)),k):k}),s=w(()=>{const{height:h=0,maxHeight:m=0,footerHeight:b,hScrollbarSize:k}=e;if(m>0){const y=i(v),S=i(n),C=i(f)+y+S+k;return Math.min(C,m-b)}return h-b}),l=w(()=>{const{maxHeight:h}=e,m=i(s);if(He(h)&&h>0)return m;const b=i(n)+i(f)+i(v);return Math.min(m,b)}),u=h=>h.width,c=w(()=>Rc(i(a).map(u))),d=w(()=>Rc(i(o).map(u))),f=w(()=>Rc(e.headerHeight)),v=w(()=>(e.fixedData?.length||0)*e.rowHeight),g=w(()=>i(s)-i(f)-i(v)),p=w(()=>{const{style:h={},height:m,width:b}=e;return Pr({...h,height:m,width:b})});return{bodyWidth:r,fixedTableHeight:l,mainTableHeight:s,leftTableWidth:c,rightTableWidth:d,windowHeight:g,footerHeight:w(()=>Pr({height:e.footerHeight})),emptyStyle:w(()=>({top:sn(i(f)),bottom:sn(e.footerHeight),width:sn(e.width)})),rootStyle:p,headerHeight:f}};function Cq(e){const t=M(),n=M(),a=M(),{columns:o,columnsStyles:r,columnsTotalWidth:s,fixedColumnsOnLeft:l,fixedColumnsOnRight:u,hasFixedColumns:c,mainColumns:d,onColumnSorted:f}=mq(e,Vt(e,"columns"),Vt(e,"fixed")),{scrollTo:v,scrollToLeft:g,scrollToTop:p,scrollToRow:h,onScroll:m,onVerticalScroll:b,scrollPos:k}=gq(e,{mainTableRef:t,leftTableRef:n,rightTableRef:a,onMaybeEndReached:Z}),y=fe("table-v2"),S=ft(),C=Xt(!1),{expandedRowKeys:E,lastRenderedRowIndex:$,isDynamic:O,isResetting:R,rowHeights:N,resetAfterIndex:A,onRowExpanded:_,onRowHeightChange:V,onRowHovered:z,onRowsRendered:U}=bq(e,{mainTableRef:t,leftTableRef:n,rightTableRef:a,tableInstance:S,ns:y,isScrolling:C}),{data:W,depthMap:P}=yq(e,{expandedRowKeys:E,lastRenderedRowIndex:$,resetAfterIndex:A}),I=w(()=>{const{estimatedRowHeight:se,rowHeight:ce}=e,ve=i(W);return He(se)?Object.values(i(N)).reduce((ke,Re)=>ke+Re,0):ve.length*ce}),{bodyWidth:L,fixedTableHeight:D,mainTableHeight:F,leftTableWidth:q,rightTableWidth:j,windowHeight:X,footerHeight:Q,emptyStyle:he,rootStyle:ue,headerHeight:ge}=Sq(e,{columnsTotalWidth:s,fixedColumnsOnLeft:l,fixedColumnsOnRight:u,rowsHeight:I}),ie=M(),ae=w(()=>{const se=i(W).length===0;return ye(e.fixedData)?e.fixedData.length===0&&se:se});function ne(se){const{estimatedRowHeight:ce,rowHeight:ve,rowKey:ke}=e;return ce?i(N)[i(W)[se][ke]]||ce:ve}const K=M(!1);function Z(){const{onEndReached:se}=e;if(!se)return;const{scrollTop:ce}=i(k),ve=i(I),ke=ve-(ce+i(X))+e.hScrollbarSize;!K.value&&i($)>=0&&ve<=ce+i(F)-i(ge)?(K.value=!0,se(ke)):K.value=!1}return le(()=>i(I),()=>K.value=!1),le(()=>e.expandedRowKeys,se=>E.value=se,{deep:!0}),{columns:o,containerRef:ie,mainTableRef:t,leftTableRef:n,rightTableRef:a,isDynamic:O,isResetting:R,isScrolling:C,hasFixedColumns:c,columnsStyles:r,columnsTotalWidth:s,data:W,expandedRowKeys:E,depthMap:P,fixedColumnsOnLeft:l,fixedColumnsOnRight:u,mainColumns:d,bodyWidth:L,emptyStyle:he,rootStyle:ue,footerHeight:Q,mainTableHeight:F,fixedTableHeight:D,leftTableWidth:q,rightTableWidth:j,showEmpty:ae,getRowHeight:ne,onColumnSorted:f,onRowHovered:z,onRowExpanded:_,onRowsRendered:U,onRowHeightChange:V,scrollTo:v,scrollToLeft:g,scrollToTop:p,scrollToRow:h,onScroll:m,onVerticalScroll:b}}const Bm=Symbol("tableV2"),EE="tableV2GridScrollLeft",kq=re({name:"ElTableV2Header",props:Dm,setup(e,{slots:t,expose:n}){const a=fe("table-v2"),o=_e(EE),r=M(),s=w(()=>Pr({width:e.width,height:e.height})),l=w(()=>Pr({width:e.rowWidth,height:e.height})),u=w(()=>Rn(i(e.headerHeight))),c=v=>{const g=i(r);Ne(()=>{g?.scroll&&g.scroll({left:v})})},d=()=>{const v=a.e("fixed-header-row"),{columns:g,fixedHeaderData:p,rowHeight:h}=e;return p?.map((m,b)=>{const k=Pr({height:h,width:"100%"});return t.fixed?.({class:v,columns:g,rowData:m,rowIndex:-(b+1),style:k})})},f=()=>{const v=a.e("dynamic-header-row"),{columns:g}=e;return i(u).map((p,h)=>{const m=Pr({width:"100%",height:p});return t.dynamic?.({class:v,columns:g,headerIndex:h,style:m})})};return ro(()=>{o?.value&&c(o.value)}),n({scrollToLeft:c}),()=>{if(!(e.height<=0))return Y("div",{ref:r,class:e.class,style:i(s),role:"rowgroup"},[Y("div",{style:i(l),class:a.e("header")},[f(),d()])])}}}),Eq="ElTableV2Grid",xq=e=>{const t=M(),n=M(),a=M(0),o=w(()=>{const{data:m,rowHeight:b,estimatedRowHeight:k}=e;if(!k)return m.length*b}),r=w(()=>{const{fixedData:m,rowHeight:b}=e;return(m?.length||0)*b}),s=w(()=>Rc(e.headerHeight)),l=w(()=>{const{height:m}=e;return Math.max(0,m-i(s)-i(r))}),u=w(()=>i(s)+i(r)>0),c=({data:m,rowIndex:b})=>m[b][e.rowKey];function d({rowCacheStart:m,rowCacheEnd:b,rowVisibleStart:k,rowVisibleEnd:y}){e.onRowsRendered?.({rowCacheStart:m,rowCacheEnd:b,rowVisibleStart:k,rowVisibleEnd:y})}function f(m,b){n.value?.resetAfterRowIndex(m,b)}function v(m,b){const k=i(t),y=i(n);at(m)?(k?.scrollToLeft(m.scrollLeft),a.value=m.scrollLeft,y?.scrollTo(m)):(k?.scrollToLeft(m),a.value=m,y?.scrollTo({scrollLeft:m,scrollTop:b}))}function g(m){i(n)?.scrollTo({scrollTop:m})}function p(m,b){const k=i(n);if(!k)return;const y=a.value;k.scrollToItem(m,0,b),y&&v({scrollLeft:y})}function h(){i(n)?.$forceUpdate(),i(t)?.$forceUpdate()}return le(()=>e.bodyWidth,()=>{He(e.estimatedRowHeight)&&n.value?.resetAfter({columnIndex:0},!1)}),{bodyRef:n,forceUpdate:h,fixedRowHeight:r,gridHeight:l,hasHeader:u,headerHeight:s,headerRef:t,totalHeight:o,itemKey:c,onItemRendered:d,resetAfterRowIndex:f,scrollTo:v,scrollToTop:g,scrollToRow:p,scrollLeft:a}},Fm=re({name:Eq,props:Nc,setup(e,{slots:t,expose:n}){const{ns:a}=_e(Bm),{bodyRef:o,fixedRowHeight:r,gridHeight:s,hasHeader:l,headerRef:u,headerHeight:c,totalHeight:d,forceUpdate:f,itemKey:v,onItemRendered:g,resetAfterRowIndex:p,scrollTo:h,scrollToTop:m,scrollToRow:b,scrollLeft:k}=xq(e);St(EE,k),Gi(async()=>{await Ne();const S=o.value?.states.scrollTop;S&&m(Math.round(S)+1)}),n({forceUpdate:f,totalHeight:d,scrollTo:h,scrollToTop:m,scrollToRow:b,resetAfterRowIndex:p});const y=()=>e.bodyWidth;return()=>{const{cache:S,columns:C,data:E,fixedData:$,useIsScrolling:O,scrollbarAlwaysOn:R,scrollbarEndGap:N,scrollbarStartGap:A,style:_,rowHeight:V,bodyWidth:z,estimatedRowHeight:U,headerWidth:W,height:P,width:I,getRowHeight:L,onScroll:D}=e,F=He(U),q=F?D9:M9,j=i(c);return Y("div",{role:"table",class:[a.e("table"),e.class],style:_},[Y(q,{ref:o,data:E,useIsScrolling:O,itemKey:v,columnCache:0,columnWidth:F?y:z,totalColumn:1,totalRow:E.length,rowCache:S,rowHeight:F?L:V,width:I,height:i(s),class:a.e("body"),role:"rowgroup",scrollbarStartGap:A,scrollbarEndGap:N,scrollbarAlwaysOn:R,onScroll:D,onItemRendered:g,perfMode:!1},{default:X=>{const Q=E[X.rowIndex];return t.row?.({...X,columns:C,rowData:Q})}}),i(l)&&Y(kq,{ref:u,class:a.e("header-wrapper"),columns:C,headerData:E,headerHeight:e.headerHeight,fixedHeaderData:$,rowWidth:W,rowHeight:V,width:I,height:Math.min(j+i(r),P)},{dynamic:t.header,fixed:t.row})])}}});function Tq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ut(e)}const $q=(e,{slots:t})=>{const{mainTableRef:n,...a}=e;return Y(Fm,dt({ref:n},a),Tq(t)?t:{default:()=>[t]})};function Oq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ut(e)}const Nq=(e,{slots:t})=>{if(!e.columns.length)return;const{leftTableRef:n,...a}=e;return Y(Fm,dt({ref:n},a),Oq(t)?t:{default:()=>[t]})};function Rq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ut(e)}const Iq=(e,{slots:t})=>{if(!e.columns.length)return;const{rightTableRef:n,...a}=e;return Y(Fm,dt({ref:n},a),Rq(t)?t:{default:()=>[t]})},Pq=e=>{const{isScrolling:t}=_e(Bm),n=M(!1),a=M(),o=w(()=>He(e.estimatedRowHeight)&&e.rowIndex>=0),r=(u=!1)=>{const c=i(a);if(!c)return;const{columns:d,onRowHeightChange:f,rowKey:v,rowIndex:g,style:p}=e,{height:h}=c.getBoundingClientRect();n.value=!0,Ne(()=>{if(u||h!==Number.parseInt(p.height)){const m=d[0],b=m?.placeholderSign===Wi;f?.({rowKey:v,height:h,rowIndex:g},m&&!b&&m.fixed)}})},s=w(()=>{const{rowData:u,rowIndex:c,rowKey:d,onRowHover:f}=e,v=e.rowEventHandlers||{},g={};return Object.entries(v).forEach(([p,h])=>{Ve(h)&&(g[p]=m=>{h({event:m,rowData:u,rowIndex:c,rowKey:d})})}),f&&[{name:"onMouseleave",hovered:!1},{name:"onMouseenter",hovered:!0}].forEach(({name:p,hovered:h})=>{const m=g[p];g[p]=b=>{f({event:b,hovered:h,rowData:u,rowIndex:c,rowKey:d}),m?.(b)}}),g}),l=u=>{const{onRowExpand:c,rowData:d,rowIndex:f,rowKey:v}=e;c?.({expanded:u,rowData:d,rowIndex:f,rowKey:v})};return ht(()=>{i(o)&&r(!0)}),{isScrolling:t,measurable:o,measured:n,rowRef:a,eventHandlers:s,onExpand:l}},Mq=re({name:"ElTableV2TableRow",props:ls,setup(e,{expose:t,slots:n,attrs:a}){const{eventHandlers:o,isScrolling:r,measurable:s,measured:l,rowRef:u,onExpand:c}=Pq(e);return t({onExpand:c}),()=>{const{columns:d,columnsStyles:f,expandColumnKey:v,depth:g,rowData:p,rowIndex:h,style:m}=e;let b=d.map((k,y)=>{const S=ye(p.children)&&p.children.length>0&&k.key===v;return n.cell({column:k,columns:d,columnIndex:y,depth:g,style:f[k.key],rowData:p,rowIndex:h,isScrolling:i(r),expandIconProps:S?{rowData:p,rowIndex:h,onExpand:c}:void 0})});if(n.row&&(b=n.row({cells:b.map(k=>ye(k)&&k.length===1?k[0]:k),style:m,columns:d,depth:g,rowData:p,rowIndex:h,isScrolling:i(r)})),i(s)){const{height:k,...y}=m||{},S=i(l);return Y("div",dt({ref:u,class:e.class,style:S?m:y,role:"row"},a,i(o)),[b])}return Y("div",dt(a,{ref:u,class:e.class,style:m,role:"row"},i(o)),[b])}}});function _q(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ut(e)}const Aq=(e,{slots:t})=>{const{columns:n,columnsStyles:a,depthMap:o,expandColumnKey:r,expandedRowKeys:s,estimatedRowHeight:l,hasFixedColumns:u,rowData:c,rowIndex:d,style:f,isScrolling:v,rowProps:g,rowClass:p,rowKey:h,rowEventHandlers:m,ns:b,onRowHovered:k,onRowExpanded:y}=e,S=ks(p,{columns:n,rowData:c,rowIndex:d},""),C=ks(g,{columns:n,rowData:c,rowIndex:d}),E=c[h],$=o[E]||0,O=!!r,R=d<0,N=[b.e("row"),S,b.is("expanded",O&&s.includes(E)),b.is("fixed",!$&&R),b.is("customized",!!t.row),{[b.e(`row-depth-${$}`)]:O&&d>=0}],A=u?k:void 0,_={...C,columns:n,columnsStyles:a,class:N,depth:$,expandColumnKey:r,estimatedRowHeight:R?void 0:l,isScrolling:v,rowIndex:d,rowData:c,rowKey:E,rowEventHandlers:m,style:f};return Y(Mq,dt(_,{onRowExpand:y,onMouseenter:U=>{A?.({hovered:!0,rowKey:E,event:U,rowData:c,rowIndex:d})},onMouseleave:U=>{A?.({hovered:!1,rowKey:E,event:U,rowData:c,rowIndex:d})},rowkey:E}),_q(t)?t:{default:()=>[t]})},Vm=(e,{slots:t})=>{const{cellData:n,style:a}=e,o=n?.toString?.()||"",r=ee(t,"default",e,()=>[o]);return Y("div",{class:e.class,title:o,style:a},[r])};Vm.displayName="ElTableV2Cell";Vm.inheritAttrs=!1;const xE=e=>{const{expanded:t,expandable:n,onExpand:a,style:o,size:r,ariaLabel:s}=e;return Y("button",dt({onClick:n?()=>a(!t):void 0,ariaLabel:s,ariaExpanded:t,class:e.class},{type:"button"}),[Y(De,{size:r,style:o},{default:()=>[Y(na,null,null)]})])};xE.inheritAttrs=!1;const Oh=({columns:e,column:t,columnIndex:n,depth:a,expandIconProps:o,isScrolling:r,rowData:s,rowIndex:l,style:u,expandedRowKeys:c,ns:d,t:f,cellProps:v,expandColumnKey:g,indentSize:p,iconSize:h,rowKey:m},{slots:b})=>{const k=Pr(u);if(t.placeholderSign===Wi)return Y("div",{class:d.em("row-cell","placeholder"),style:k},null);const{cellRenderer:y,dataKey:S,dataGetter:C}=t,E=Ve(C)?C({columns:e,column:t,columnIndex:n,rowData:s,rowIndex:l}):yn(s,S??""),$=ks(v,{cellData:E,columns:e,column:t,columnIndex:n,rowIndex:l,rowData:s}),O={class:d.e("cell-text"),columns:e,column:t,columnIndex:n,cellData:E,isScrolling:r,rowData:s,rowIndex:l},R=kE(y),N=R?R(O):ee(b,"default",O,()=>[Y(Vm,O,null)]),A=[d.e("row-cell"),t.class,t.align===yd.CENTER&&d.is("align-center"),t.align===yd.RIGHT&&d.is("align-right")],_=l>=0&&g&&t.key===g,V=l>=0&&c.includes(s[m]);let z;const U=`margin-inline-start: ${a*p}px;`;return _&&(at(o)?z=Y(xE,dt(o,{class:[d.e("expand-icon"),d.is("expanded",V)],size:h,expanded:V,ariaLabel:f(V?"el.table.collapseRowLabel":"el.table.expandRowLabel"),style:U,expandable:!0}),null):z=Y("div",{style:[U,`width: ${h}px; height: ${h}px;`].join(" ")},null)),Y("div",dt({class:A,style:k},$,{role:"cell"}),[z,N])};Oh.inheritAttrs=!1;const Lq=Ce({class:String,columns:Su,columnsStyles:{type:G(Object),required:!0},headerIndex:Number,style:{type:G(Object)}}),Dq=re({name:"ElTableV2HeaderRow",props:Lq,setup(e,{slots:t}){return()=>{const{columns:n,columnsStyles:a,headerIndex:o,style:r}=e;let s=n.map((l,u)=>t.cell({columns:n,column:l,columnIndex:u,headerIndex:o,style:a[l.key]}));return t.header&&(s=t.header({cells:s.map(l=>ye(l)&&l.length===1?l[0]:l),columns:n,headerIndex:o})),Y("div",{class:e.class,style:r,role:"row"},[s])}}});function Bq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ut(e)}const Fq=({columns:e,columnsStyles:t,headerIndex:n,style:a,headerClass:o,headerProps:r,ns:s},{slots:l})=>{const u={columns:e,headerIndex:n},c=[s.e("header-row"),ks(o,u,""),s.is("customized",!!l.header)];return Y(Dq,{...ks(r,u),columnsStyles:t,class:c,columns:e,headerIndex:n,style:a},Bq(l)?l:{default:()=>[l]})},zm=(e,{slots:t})=>ee(t,"default",e,()=>[Y("div",{class:e.class,title:e.column?.title},[e.column?.title])]);zm.displayName="ElTableV2HeaderCell";zm.inheritAttrs=!1;const Vq=e=>{const{sortOrder:t}=e;return Y("button",{type:"button","aria-label":e.ariaLabel,class:e.class},[Y(De,{size:14},{default:()=>[t===ko.ASC?Y(O3,null,null):Y(T3,null,null)]})])},M0=(e,{slots:t})=>{const{column:n,ns:a,t:o,style:r,onColumnSorted:s}=e,l=Pr(r);if(n.placeholderSign===Wi)return Y("div",{class:a.em("header-row-cell","placeholder"),style:l},null);const{headerCellRenderer:u,headerClass:c,sortable:d}=n,f={...e,class:a.e("header-cell-text")},v=kE(u),g=v?v(f):ee(t,"default",f,()=>[Y(zm,f,null)]),{sortBy:p,sortState:h,headerCellProps:m}=e;let b,k,y;if(h){const C=h[n.key];b=!!$h[C],k=b?C:ko.ASC}else b=n.key===p.key,k=b?p.order:ko.ASC;k===ko.ASC?y="ascending":k===ko.DESC?y="descending":y=void 0;const S=[a.e("header-cell"),ks(c,e,""),n.align===yd.CENTER&&a.is("align-center"),n.align===yd.RIGHT&&a.is("align-right"),d&&a.is("sortable")];return Y("div",dt({...ks(m,e),onClick:n.sortable?s:void 0,ariaSort:d?y:void 0,class:S,style:l,"data-key":n.key},{role:"columnheader"}),[g,d&&Y(Vq,{class:[a.e("sort-icon"),b&&a.is("sorting")],sortOrder:k,ariaLabel:o("el.table.sortLabel",{column:n.title||""})},null)])},TE=(e,{slots:t})=>Y("div",{class:e.class,style:e.style},[t.default?.()]);TE.displayName="ElTableV2Footer";const $E=(e,{slots:t})=>{const n=ee(t,"default",{},()=>[Y(P2,null,null)]);return Y("div",{class:e.class,style:e.style},[n])};$E.displayName="ElTableV2Empty";const OE=(e,{slots:t})=>Y("div",{class:e.class,style:e.style},[t.default?.()]);OE.displayName="ElTableV2Overlay";function Yl(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Ut(e)}const zq=re({name:"ElTableV2",props:hq,setup(e,{slots:t,expose:n}){const a=fe("table-v2"),{t:o}=Ct(),{columnsStyles:r,fixedColumnsOnLeft:s,fixedColumnsOnRight:l,mainColumns:u,mainTableHeight:c,fixedTableHeight:d,leftTableWidth:f,rightTableWidth:v,data:g,depthMap:p,expandedRowKeys:h,hasFixedColumns:m,mainTableRef:b,leftTableRef:k,rightTableRef:y,isDynamic:S,isResetting:C,isScrolling:E,bodyWidth:$,emptyStyle:O,rootStyle:R,footerHeight:N,showEmpty:A,scrollTo:_,scrollToLeft:V,scrollToTop:z,scrollToRow:U,getRowHeight:W,onColumnSorted:P,onRowHeightChange:I,onRowHovered:L,onRowExpanded:D,onRowsRendered:F,onScroll:q,onVerticalScroll:j}=Cq(e);return n({scrollTo:_,scrollToLeft:V,scrollToTop:z,scrollToRow:U}),St(Bm,{ns:a,isResetting:C,isScrolling:E}),()=>{const{cache:X,cellProps:Q,estimatedRowHeight:he,expandColumnKey:ue,fixedData:ge,headerHeight:ie,headerClass:ae,headerProps:ne,headerCellProps:K,sortBy:Z,sortState:se,rowHeight:ce,rowClass:ve,rowEventHandlers:ke,rowKey:Re,rowProps:Ie,scrollbarAlwaysOn:$e,indentSize:pe,iconSize:Ee,useIsScrolling:me,vScrollbarSize:Me,width:We}=e,Xe=i(g),Pe={cache:X,class:a.e("main"),columns:i(u),data:Xe,fixedData:ge,estimatedRowHeight:he,bodyWidth:i($),headerHeight:ie,headerWidth:i($),height:i(c),mainTableRef:b,rowKey:Re,rowHeight:ce,scrollbarAlwaysOn:$e,scrollbarStartGap:2,scrollbarEndGap:Me,useIsScrolling:me,width:We,getRowHeight:W,onRowsRendered:F,onScroll:q},Ae=i(f),je=i(d),Nt={cache:X,class:a.e("left"),columns:i(s),data:Xe,fixedData:ge,estimatedRowHeight:he,leftTableRef:k,rowHeight:ce,bodyWidth:Ae,headerWidth:Ae,headerHeight:ie,height:je,rowKey:Re,scrollbarAlwaysOn:$e,scrollbarStartGap:2,scrollbarEndGap:Me,useIsScrolling:me,width:Ae,getRowHeight:W,onScroll:j},Ue=i(v),lt={cache:X,class:a.e("right"),columns:i(l),data:Xe,fixedData:ge,estimatedRowHeight:he,rightTableRef:y,rowHeight:ce,bodyWidth:Ue,headerWidth:Ue,headerHeight:ie,height:je,rowKey:Re,scrollbarAlwaysOn:$e,scrollbarStartGap:2,scrollbarEndGap:Me,width:Ue,style:`${a.cssVarName("table-scrollbar-size")}: ${Me}px`,useIsScrolling:me,getRowHeight:W,onScroll:j},mt=i(r),kt={ns:a,depthMap:i(p),columnsStyles:mt,expandColumnKey:ue,expandedRowKeys:i(h),estimatedRowHeight:he,hasFixedColumns:i(m),rowProps:Ie,rowClass:ve,rowKey:Re,rowEventHandlers:ke,onRowHovered:L,onRowExpanded:D,onRowHeightChange:I},be={cellProps:Q,expandColumnKey:ue,indentSize:pe,iconSize:Ee,rowKey:Re,expandedRowKeys:i(h),ns:a,t:o},ze={ns:a,headerClass:ae,headerProps:ne,columnsStyles:mt},de={ns:a,t:o,sortBy:Z,sortState:se,headerCellProps:K,onColumnSorted:P},Ye={row:_n=>Y(Aq,dt(_n,kt),{row:t.row,cell:Be=>{let et;return t.cell?Y(Oh,dt(Be,be,{style:mt[Be.column.key]}),Yl(et=t.cell(Be))?et:{default:()=>[et]}):Y(Oh,dt(Be,be,{style:mt[Be.column.key]}),null)}}),header:_n=>Y(Fq,dt(_n,ze),{header:t.header,cell:Be=>{let et;return t["header-cell"]?Y(M0,dt(Be,de,{style:mt[Be.column.key]}),Yl(et=t["header-cell"](Be))?et:{default:()=>[et]}):Y(M0,dt(Be,de,{style:mt[Be.column.key]}),null)}})},$t=[e.class,a.b(),a.e("root"),a.is("dynamic",i(S))],en={class:a.e("footer"),style:i(N)};return Y("div",{class:$t,style:i(R)},[Y($q,Pe,Yl(Ye)?Ye:{default:()=>[Ye]}),Y(Nq,Nt,Yl(Ye)?Ye:{default:()=>[Ye]}),Y(Iq,lt,Yl(Ye)?Ye:{default:()=>[Ye]}),t.footer&&Y(TE,en,{default:t.footer}),i(A)&&Y($E,{class:a.e("empty"),style:i(O)},{default:t.empty}),t.overlay&&Y(OE,{class:a.e("overlay")},{default:t.overlay})])}}}),Hq=Ce({disableWidth:Boolean,disableHeight:Boolean,onResize:{type:G(Function)}}),Kq=e=>{const t=M(),n=M(0),a=M(0);let o;return ht(()=>{o=Zt(t,([r])=>{const{width:s,height:l}=r.contentRect,{paddingLeft:u,paddingRight:c,paddingTop:d,paddingBottom:f}=getComputedStyle(r.target),v=Number.parseInt(u)||0,g=Number.parseInt(c)||0,p=Number.parseInt(d)||0,h=Number.parseInt(f)||0;n.value=s-v-g,a.value=l-p-h}).stop}),Bt(()=>{o?.()}),le([n,a],([r,s])=>{e.onResize?.({width:r,height:s})}),{sizer:t,width:n,height:a}},Wq=re({name:"ElAutoResizer",props:Hq,setup(e,{slots:t}){const n=fe("auto-resizer"),{height:a,width:o,sizer:r}=Kq(e),s={width:"100%",height:"100%"};return()=>Y("div",{ref:r,class:n.b(),style:s},[t.default?.({height:a.value,width:o.value})])}}),jq=rt(zq),Uq=rt(Wq),df=Symbol("tabsRootContextKey"),qq=Ce({tabs:{type:G(Array),default:()=>rn([])},tabRefs:{type:G(Object),default:()=>rn({})}}),_0="ElTabBar";var Yq=re({name:_0,__name:"tab-bar",props:qq,setup(e,{expose:t}){const n=e,a=_e(df);a||tn(_0," ");const o=fe("tabs"),r=M(),s=M(),l=w(()=>Tt(a.props.defaultValue)||!!s.value?.transform),u=()=>{let g=0,p=0;const h=["top","bottom"].includes(a.props.tabPosition)?"width":"height",m=h==="width"?"x":"y",b=m==="x"?"left":"top";return n.tabs.every(k=>{if(Tt(k.paneName))return!1;const y=n.tabRefs[k.paneName];if(!y)return!1;if(!k.active)return!0;g=y[`offset${$r(b)}`],p=y[`client${$r(h)}`];const S=window.getComputedStyle(y);return h==="width"&&(p-=Number.parseFloat(S.paddingLeft)+Number.parseFloat(S.paddingRight),g+=Number.parseFloat(S.paddingLeft)),!1}),{[h]:`${p}px`,transform:`translate${$r(m)}(${g}px)`}},c=()=>s.value=u(),d=[],f=()=>{d.forEach(g=>g.stop()),d.length=0,Object.values(n.tabRefs).forEach(g=>{d.push(Zt(g,c))})};le(()=>n.tabs,async()=>{await Ne(),c(),f()},{immediate:!0});const v=Zt(r,()=>c());return Bt(()=>{d.forEach(g=>g.stop()),d.length=0,v.stop()}),t({ref:r,update:c}),(g,p)=>l.value?(x(),B("div",{key:0,ref_key:"barRef",ref:r,class:T([i(o).e("active-bar"),i(o).is(i(a).props.tabPosition)]),style:Ke(s.value)},null,6)):te("v-if",!0)}}),Gq=Yq;const Xq=Ce({panes:{type:G(Array),default:()=>rn([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean,tabindex:{type:[String,Number],default:void 0}}),Jq={tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},A0="ElTabNav",Zq=re({name:A0,props:Xq,emits:Jq,setup(e,{expose:t,emit:n}){const a=_e(df);a||tn(A0," ");const o=fe("tabs"),r=XM(),s=ZM(),l=M(),u=M(),c=M(),d=M({}),f=M(),v=M(!1),g=M(0),p=M(!1),h=M(!0),m=Xt(),b=w(()=>["top","bottom"].includes(a.props.tabPosition)),k=w(()=>b.value?"width":"height"),y=w(()=>({transform:`translate${k.value==="width"?"X":"Y"}(-${g.value}px)`})),{width:S,height:C}=Dp(l),{width:E,height:$}=Dp(u,{width:0,height:0},{box:"border-box"}),O=w(()=>b.value?S.value:C.value),R=w(()=>b.value?E.value:$.value),{onWheel:N}=G2({atStartEdge:w(()=>g.value<=0),atEndEdge:w(()=>R.value-g.value<=O.value),layout:w(()=>b.value?"horizontal":"vertical")},D=>{g.value=ns(g.value+D,0,R.value-O.value)}),A=()=>{if(!l.value)return;const D=l.value[`offset${$r(k.value)}`],F=g.value;F&&(g.value=F>D?F-D:0)},_=()=>{if(!l.value||!u.value)return;const D=u.value[`offset${$r(k.value)}`],F=l.value[`offset${$r(k.value)}`],q=g.value;D-q<=F||(g.value=D-q>F*2?q+F:D-F)},V=async()=>{const D=u.value;if(!v.value||!c.value||!l.value||!D)return;await Ne();const F=d.value[e.currentName];if(!F)return;const q=l.value,j=F.getBoundingClientRect(),X=q.getBoundingClientRect(),Q=b.value?D.offsetWidth-X.width:D.offsetHeight-X.height,he=g.value;let ue=he;b.value?(j.left X.right&&(ue=he+j.right-X.right)):(j.top X.bottom&&(ue=he+(j.bottom-X.bottom))),ue=Math.max(ue,0),g.value=Math.min(ue,Q)},z=()=>{if(!u.value||!l.value)return;e.stretch&&f.value?.update();const D=u.value[`offset${$r(k.value)}`],F=l.value[`offset${$r(k.value)}`],q=g.value;F 0&&(g.value=0))},U=D=>{const F=jt(D);let q=0;switch(F){case we.left:case we.up:q=-1;break;case we.right:case we.down:q=1;break;default:return}const j=Array.from(D.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));let X=j.indexOf(D.target)+q;X<0?X=j.length-1:X>=j.length&&(X=0),j[X].focus({preventScroll:!0}),j[X].click(),W()},W=()=>{h.value&&(p.value=!0)},P=()=>p.value=!1,I=(D,F)=>{d.value[F]=D},L=async()=>{await Ne(),d.value[e.currentName]?.focus({preventScroll:!0})};return le(r,D=>{D==="hidden"?h.value=!1:D==="visible"&&setTimeout(()=>h.value=!0,50)}),le(s,D=>{D?setTimeout(()=>h.value=!0,50):h.value=!1}),Zt(c,()=>{Qa(z)}),ht(()=>setTimeout(()=>V(),0)),ro(()=>z()),t({scrollToActiveTab:V,removeFocus:P,focusActiveTab:L,tabListRef:u,tabBarRef:f,scheduleRender:()=>oc(m)}),()=>{const D=v.value?[Y("span",{class:[o.e("nav-prev"),o.is("disabled",!v.value.prev)],onClick:A},[Y(De,null,{default:()=>[Y(ir,null,null)]})]),Y("span",{class:[o.e("nav-next"),o.is("disabled",!v.value.next)],onClick:_},[Y(De,null,{default:()=>[Y(na,null,null)]})])]:null,F=e.panes.map((q,j)=>{const X=q.uid,Q=q.props.disabled,he=q.props.name??q.index??`${j}`,ue=!Q&&(q.isClosable||q.props.closable!==!1&&e.editable);q.index=`${j}`;const ge=ue?Y(De,{class:"is-icon-close",onClick:ne=>n("tabRemove",q,ne)},{default:()=>[Y(Ha,null,null)]}):null,ie=q.slots.label?.()||q.props.label,ae=!Q&&q.active?e.tabindex??a.props.tabindex:-1;return Y("div",{ref:ne=>I(ne,he),class:[o.e("item"),o.is(a.props.tabPosition),o.is("active",q.active),o.is("disabled",Q),o.is("closable",ue),o.is("focus",p.value)],id:`tab-${he}`,key:`tab-${X}`,"aria-controls":`pane-${he}`,role:"tab","aria-selected":q.active,tabindex:ae,onFocus:()=>W(),onBlur:()=>P(),onClick:ne=>{P(),n("tabClick",q,he,ne)},onKeydown:ne=>{const K=jt(ne);ue&&(K===we.delete||K===we.backspace)&&n("tabRemove",q,ne)}},[ie,ge])});return m.value,Y("div",{ref:c,class:[o.e("nav-wrap"),o.is("scrollable",!!v.value),o.is(a.props.tabPosition)]},[D,Y("div",{class:o.e("nav-scroll"),ref:l},[e.panes.length>0?Y("div",{class:[o.e("nav"),o.is(a.props.tabPosition),o.is("stretch",e.stretch&&["top","bottom"].includes(a.props.tabPosition))],ref:u,style:y.value,role:"tablist",onKeydown:U,onWheel:N},[e.type?null:Y(Gq,{ref:f,tabs:[...e.panes],tabRefs:d.value},null),F]):null])])}}}),Qq=Ce({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},defaultValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:G(Function),default:()=>!0},stretch:Boolean,tabindex:{type:[String,Number],default:0}}),cp=e=>Le(e)||He(e),eY={[tt]:e=>cp(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>cp(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>cp(e),tabAdd:()=>!0},tY=re({name:"ElTabs",props:Qq,emits:eY,setup(e,{emit:t,slots:n,expose:a}){const o=fe("tabs"),r=w(()=>["left","right"].includes(e.tabPosition)),{children:s,addChild:l,removeChild:u,ChildrenSorter:c}=Qd(ft(),"ElTabPane"),d=M(),f=M((Tt(e.modelValue)?e.defaultValue:e.modelValue)??"0"),v=async(k,y=!1)=>{if(!(f.value===k||Tt(k)))try{let S;if(e.beforeLeave){const C=e.beforeLeave(k,f.value);S=C instanceof Promise?await C:C}else S=!0;if(S!==!1){const C=s.value.find(E=>E.paneName===f.value)?.isFocusInsidePane();f.value=k,y&&(t(tt,k),t("tabChange",k)),d.value?.removeFocus?.(),C&&d.value?.focusActiveTab()}}catch{}},g=(k,y,S)=>{k.props.disabled||(t("tabClick",k,S),v(y,!0))},p=(k,y)=>{k.props.disabled||Tt(k.props.name)||(y.stopPropagation(),t("edit",k.props.name,"remove"),t("tabRemove",k.props.name))},h=()=>{t("edit",void 0,"add"),t("tabAdd")},m=k=>{const y=jt(k);[we.enter,we.numpadEnter].includes(y)&&h()},b=k=>{const y=k.el.firstChild,S=["bottom","right"].includes(e.tabPosition)?k.children[0].el:k.children[1].el;y!==S&&y.before(S)};return le(()=>e.modelValue,k=>v(k)),le(f,async()=>{await Ne(),d.value?.scrollToActiveTab()}),St(df,{props:e,currentName:f,registerPane:l,unregisterPane:u,nav$:d}),a({currentName:f,get tabNavRef(){return tu(d.value,["scheduleRender"])}}),()=>{const k=n["add-icon"],y=e.editable||e.addable?Y("div",{class:[o.e("new-tab"),r.value&&o.e("new-tab-vertical")],tabindex:e.tabindex,onClick:h,onKeydown:m},[k?ee(n,"add-icon"):Y(De,{class:o.is("icon-plus")},{default:()=>[Y(AC,null,null)]})]):null,S=()=>Y(Zq,{ref:d,currentName:f.value,editable:e.editable,type:e.type,panes:s.value,stretch:e.stretch,onTabClick:g,onTabRemove:p},null),C=Y("div",{class:[o.e("header"),r.value&&o.e("header-vertical"),o.is(e.tabPosition)]},[Y(c,null,{default:S,$stable:!0}),y]),E=Y("div",{class:o.e("content")},[ee(n,"default")]);return Y("div",{class:[o.b(),o.m(e.tabPosition),{[o.m("card")]:e.type==="card",[o.m("border-card")]:e.type==="border-card"}],onVnodeMounted:b,onVnodeUpdated:b},[E,C])}}}),nY=Ce({label:{type:String,default:""},name:{type:[String,Number]},closable:{type:Boolean,default:void 0},disabled:Boolean,lazy:Boolean}),aY=["id","aria-hidden","aria-labelledby"],L0="ElTabPane";var oY=re({name:L0,__name:"tab-pane",props:nY,setup(e){const t=e,n=ft(),a=hn(),o=_e(df);o||tn(L0,"usage: ");const r=fe("tab-pane"),s=M(),l=M(),u=w(()=>t.closable??o.props.closable),c=w(()=>o.currentName.value===(t.name??l.value)),d=M(c.value),f=w(()=>t.name??l.value),v=w(()=>!t.lazy||d.value||c.value),g=()=>s.value?.contains(document.activeElement);le(c,h=>{h&&(d.value=!0)});const p=At({uid:n.uid,getVnode:()=>n.vnode,slots:a,props:t,paneName:f,active:c,index:l,isClosable:u,isFocusInsidePane:g});return o.registerPane(p),Bt(()=>{o.unregisterPane(p)}),ov(()=>{a.label&&o.nav$.value?.scheduleRender()}),(h,m)=>v.value?ct((x(),B("div",{key:0,id:`pane-${f.value}`,ref_key:"paneRef",ref:s,class:T(i(r).b()),role:"tabpanel","aria-hidden":!c.value,"aria-labelledby":`tab-${f.value}`},[ee(h.$slots,"default")],10,aY)),[[Pt,c.value]]):te("v-if",!0)}}),NE=oY;const rY=rt(tY,{TabPane:NE}),sY=nn(NE),lY=Ce({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:so,default:""},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}});var iY=re({name:"ElText",__name:"text",props:lY,setup(e){const t=e,n=M(),a=Cn(),o=fe("text"),r=w(()=>[o.b(),o.m(t.type),o.m(a.value),o.is("truncated",t.truncated),o.is("line-clamp",!Tt(t.lineClamp))]),s=()=>{if(fr().title)return;let l=!1;const u=n.value?.textContent||"";if(t.truncated){const c=n.value?.offsetWidth,d=n.value?.scrollWidth;c&&d&&d>c&&(l=!0)}else if(!Tt(t.lineClamp)){const c=n.value?.offsetHeight,d=n.value?.scrollHeight;c&&d&&d>c&&(l=!0)}l?n.value?.setAttribute("title",u):n.value?.removeAttribute("title")};return ht(s),ro(s),(l,u)=>(x(),oe(it(e.tag),{ref_key:"textRef",ref:n,class:T(r.value),style:Ke({"-webkit-line-clamp":e.lineClamp})},{default:J(()=>[ee(l.$slots,"default")]),_:3},8,["class","style"]))}}),uY=iY;const Hm=rt(uY),Nh="00:30",cY=Ce({format:{type:String,default:"HH:mm"},modelValue:{type:G(String)},disabled:{type:Boolean,default:void 0},editable:{type:Boolean,default:!0},effect:{type:G(String),default:"light"},clearable:{type:Boolean,default:!0},size:Tn,placeholder:String,start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:Nh},minTime:{type:G(String)},maxTime:{type:G(String)},includeEndTime:Boolean,name:String,prefixIcon:{type:G([String,Object]),default:()=>_C},clearIcon:{type:G([String,Object]),default:()=>Fo},popperClass:{type:String,default:""},popperStyle:{type:G([String,Object])},...Is}),Go=e=>{const t=(e||"").split(":");if(t.length>=2){let n=Number.parseInt(t[0],10);const a=Number.parseInt(t[1],10),o=e.toUpperCase();return o.includes("AM")&&n===12?n=0:o.includes("PM")&&n!==12&&(n+=12),{hours:n,minutes:a}}return null},dp=(e,t)=>{const n=Go(e);if(!n)return-1;const a=Go(t);if(!a)return-1;const o=n.minutes+n.hours*60,r=a.minutes+a.hours*60;return o===r?0:o>r?1:-1},D0=e=>`${e}`.padStart(2,"0"),Us=e=>`${D0(e.hours)}:${D0(e.minutes)}`,dY=(e,t)=>{const n=Go(e);if(!n)return"";const a=Go(t);if(!a)return"";const o={hours:n.hours,minutes:n.minutes};return o.minutes+=a.minutes,o.hours+=a.hours,o.hours+=Math.floor(o.minutes/60),o.minutes=o.minutes%60,Us(o)};var fY=re({name:"ElTimeSelect",__name:"time-select",props:cY,emits:[bt,"blur","focus","clear",tt],setup(e,{expose:t}){ot.extend(um);const{Option:n}=Hr,a=e,o=fe("input"),r=M(),s=ln(),{lang:l}=Ct(),u=w(()=>a.modelValue),c=w(()=>{const b=Go(a.start);return b?Us(b):null}),d=w(()=>{const b=Go(a.end);return b?Us(b):null}),f=w(()=>{const b=Go(a.minTime||"");return b?Us(b):null}),v=w(()=>{const b=Go(a.maxTime||"");return b?Us(b):null}),g=w(()=>{const b=Go(a.step),k=!b||b.hours<0||b.minutes<0||Number.isNaN(b.hours)||Number.isNaN(b.minutes)||b.hours===0&&b.minutes===0;return k&&pt("ElTimeSelect",`invalid step, fallback to default step (${Nh}).`),k?Nh:Us(b)}),p=w(()=>{const b=[],k=(y,S)=>{b.push({value:y,rawValue:S,disabled:dp(S,f.value||"-1:-1")<=0||dp(S,v.value||"100:100")>=0})};if(a.start&&a.end&&a.step){let y=c.value,S;for(;y&&d.value&&dp(y,d.value)<=0;)S=ot(y,"HH:mm").locale(l.value).format(a.format),k(S,y),y=dY(y,g.value);a.includeEndTime&&d.value&&b[b.length-1]?.rawValue!==d.value&&k(ot(d.value,"HH:mm").locale(l.value).format(a.format),d.value)}return b});return t({blur:()=>{r.value?.blur?.()},focus:()=>{r.value?.focus?.()}}),(b,k)=>(x(),oe(i(Hr),{ref_key:"select",ref:r,name:e.name,"model-value":u.value,disabled:i(s),clearable:e.clearable,"clear-icon":e.clearIcon,size:e.size,effect:e.effect,placeholder:e.placeholder,"default-first-option":"",filterable:e.editable,"empty-values":e.emptyValues,"value-on-clear":e.valueOnClear,"popper-class":e.popperClass,"popper-style":e.popperStyle,"onUpdate:modelValue":k[0]||(k[0]=y=>b.$emit(i(tt),y)),onChange:k[1]||(k[1]=y=>b.$emit(i(bt),y)),onBlur:k[2]||(k[2]=y=>b.$emit("blur",y)),onFocus:k[3]||(k[3]=y=>b.$emit("focus",y)),onClear:k[4]||(k[4]=()=>b.$emit("clear"))},{prefix:J(()=>[e.prefixIcon?(x(),oe(i(De),{key:0,class:T(i(o).e("prefix-icon"))},{default:J(()=>[(x(),oe(it(e.prefixIcon)))]),_:1},8,["class"])):te("v-if",!0)]),default:J(()=>[(x(!0),B(Fe,null,yt(p.value,y=>(x(),oe(i(n),{key:y.value,label:y.value,value:y.value,disabled:y.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["name","model-value","disabled","clearable","clear-icon","size","effect","placeholder","filterable","empty-values","value-on-clear","popper-class","popper-style"]))}}),pY=fY;const hY=rt(pY),RE="timeline",vY=Ce({mode:{type:String,values:["start","alternate","alternate-reverse","end"],default:"start"},reverse:Boolean}),mY=re({name:"ElTimeline",props:vY,setup(e,{slots:t}){const n=fe("timeline");St(RE,{props:e,slots:t});const a=w(()=>[n.b(),n.is(e.mode)]);return()=>{const o=Ta(t.default?.()??[]);return qe("ul",{class:a.value},e.reverse?o.reverse():o)}}}),gY=Ce({timestamp:{type:String,default:""},hideTimestamp:Boolean,center:Boolean,placement:{type:String,values:["top","bottom"],default:"bottom"},type:{type:String,values:["primary","success","warning","danger","info"],default:""},color:{type:String,default:""},size:{type:String,values:["normal","large"],default:"normal"},icon:{type:Kt},hollow:Boolean});var bY=re({name:"ElTimelineItem",__name:"timeline-item",props:gY,setup(e){const t=e,{props:n}=_e(RE),a=fe("timeline-item"),o=w(()=>[a.e("node"),a.em("node",t.size||""),a.em("node",t.type||""),a.is("hollow",t.hollow)]),r=w(()=>[a.b(),{[a.e("center")]:t.center},a.is(n.mode)]);return(s,l)=>(x(),B("li",{class:T(r.value)},[H("div",{class:T(i(a).e("tail"))},null,2),s.$slots.dot?te("v-if",!0):(x(),B("div",{key:0,class:T(o.value),style:Ke({backgroundColor:e.color})},[e.icon?(x(),oe(i(De),{key:0,class:T(i(a).e("icon"))},{default:J(()=>[(x(),oe(it(e.icon)))]),_:1},8,["class"])):te("v-if",!0)],6)),s.$slots.dot?(x(),B("div",{key:1,class:T(i(a).e("dot"))},[ee(s.$slots,"dot")],2)):te("v-if",!0),H("div",{class:T(i(a).e("wrapper"))},[!e.hideTimestamp&&e.placement==="top"?(x(),B("div",{key:0,class:T([i(a).e("timestamp"),i(a).is("top")])},Se(e.timestamp),3)):te("v-if",!0),H("div",{class:T(i(a).e("content"))},[ee(s.$slots,"default")],2),!e.hideTimestamp&&e.placement==="bottom"?(x(),B("div",{key:1,class:T([i(a).e("timestamp"),i(a).is("bottom")])},Se(e.timestamp),3)):te("v-if",!0)],2)],2))}}),IE=bY;const yY=rt(mY,{TimelineItem:IE}),wY=nn(IE),PE="left-check-change",ME="right-check-change",qs=Ce({data:{type:G(Array),default:()=>[]},titles:{type:G(Array),default:()=>[]},buttonTexts:{type:G(Array),default:()=>[]},filterPlaceholder:String,filterMethod:{type:G(Function)},leftDefaultChecked:{type:G(Array),default:()=>[]},rightDefaultChecked:{type:G(Array),default:()=>[]},renderContent:{type:G(Function)},modelValue:{type:G(Array),default:()=>[]},format:{type:G(Object),default:()=>({})},filterable:Boolean,props:{type:G(Object),default:()=>rn({label:"label",key:"key",disabled:"disabled"})},targetOrder:{type:String,values:["original","push","unshift"],default:"original"},validateEvent:{type:Boolean,default:!0}}),Rh=(e,t)=>[e,t].every(ye)||ye(e)&&gn(t),SY={[bt]:(e,t,n)=>[e,n].every(ye)&&["left","right"].includes(t),[tt]:e=>ye(e),[PE]:Rh,[ME]:Rh},Cu=e=>{const t={label:"label",key:"key",disabled:"disabled"};return w(()=>({...t,...e.props}))},CY=(e,t)=>({onSourceCheckedChange:(o,r)=>{e.leftChecked=o,r&&t(PE,o,r)},onTargetCheckedChange:(o,r)=>{e.rightChecked=o,r&&t(ME,o,r)}}),kY=e=>{const t=Cu(e),n=w(()=>e.data.reduce((a,o)=>(a[o[t.value.key]]=o)&&a,{}));return{sourceData:w(()=>e.data.filter(a=>!e.modelValue.includes(a[t.value.key]))),targetData:w(()=>e.targetOrder==="original"?e.data.filter(a=>e.modelValue.includes(a[t.value.key])):e.modelValue.reduce((a,o)=>{const r=n.value[o];return r&&a.push(r),a},[]))}},EY=(e,t,n)=>{const a=Cu(e),o=(l,u,c)=>{n(tt,l),n(bt,l,u,c)};return{addToLeft:()=>{const l=e.modelValue.slice();t.rightChecked.forEach(u=>{const c=l.indexOf(u);c>-1&&l.splice(c,1)}),o(l,"left",t.rightChecked)},addToRight:()=>{let l=e.modelValue.slice();const u=e.data.filter(c=>{const d=c[a.value.key];return t.leftChecked.includes(d)&&!e.modelValue.includes(d)}).map(c=>c[a.value.key]);l=e.targetOrder==="unshift"?u.concat(l):l.concat(u),e.targetOrder==="original"&&(l=e.data.filter(c=>l.includes(c[a.value.key])).map(c=>c[a.value.key])),o(l,"right",t.leftChecked)}}},Ih="checked-change",xY=Ce({data:qs.data,optionRender:{type:G(Function)},placeholder:String,title:String,filterable:Boolean,format:qs.format,filterMethod:qs.filterMethod,defaultChecked:qs.leftDefaultChecked,props:qs.props}),TY={[Ih]:Rh},$Y=(e,t,n)=>{const a=Cu(e),o=w(()=>e.data.filter(d=>Ve(e.filterMethod)?e.filterMethod(t.query,d):String(d[a.value.label]||d[a.value.key]).toLowerCase().includes(t.query.toLowerCase()))),r=w(()=>o.value.filter(d=>!d[a.value.disabled])),s=w(()=>{const d=t.checked.length,f=e.data.length,{noChecked:v,hasChecked:g}=e.format;return v&&g?d>0?g.replace(/\${checked}/g,d.toString()).replace(/\${total}/g,f.toString()):v.replace(/\${total}/g,f.toString()):`${d}/${f}`}),l=w(()=>{const d=t.checked.length;return d>0&&d {const d=r.value.map(f=>f[a.value.key]);t.allChecked=d.length>0&&d.every(f=>t.checked.includes(f))},c=d=>{t.checked=d?r.value.map(f=>f[a.value.key]):[]};return le(()=>t.checked,(d,f)=>{u(),t.checkChangeByUser?n(Ih,d,d.concat(f).filter(v=>!d.includes(v)||!f.includes(v))):(n(Ih,d),t.checkChangeByUser=!0)}),le(r,()=>{u()}),le(()=>e.data,()=>{const d=[],f=o.value.map(v=>v[a.value.key]);t.checked.forEach(v=>{f.includes(v)&&d.push(v)}),t.checkChangeByUser=!1,t.checked=d}),le(()=>e.defaultChecked,(d,f)=>{if(f&&d.length===f.length&&d.every(p=>f.includes(p)))return;const v=[],g=r.value.map(p=>p[a.value.key]);d.forEach(p=>{g.includes(p)&&v.push(p)}),t.checkChangeByUser=!1,t.checked=v},{immediate:!0}),{filteredData:o,checkableData:r,checkedSummary:s,isIndeterminate:l,updateAllChecked:u,handleAllCheckedChange:c}};var OY=re({name:"ElTransferPanel",__name:"transfer-panel",props:xY,emits:TY,setup(e,{expose:t,emit:n}){const a=e,o=n,r=hn(),s=({option:S})=>S,{t:l}=Ct(),u=fe("transfer"),c=At({checked:[],allChecked:!1,query:"",checkChangeByUser:!0}),d=Cu(a),{filteredData:f,checkedSummary:v,isIndeterminate:g,handleAllCheckedChange:p}=$Y(a,c,o),h=w(()=>!ia(c.query)&&ia(f.value)),m=w(()=>!ia(r.default()[0].children)),{checked:b,allChecked:k,query:y}=Mn(c);return t({query:y}),(S,C)=>(x(),B("div",{class:T(i(u).b("panel"))},[H("p",{class:T(i(u).be("panel","header"))},[Y(i(oo),{modelValue:i(k),"onUpdate:modelValue":C[0]||(C[0]=E=>Jt(k)?k.value=E:null),indeterminate:i(g),"validate-event":!1,onChange:i(p)},{default:J(()=>[H("span",{class:T(i(u).be("panel","header-title"))},Se(e.title),3),H("span",{class:T(i(u).be("panel","header-count"))},Se(i(v)),3)]),_:1},8,["modelValue","indeterminate","onChange"])],2),H("div",{class:T([i(u).be("panel","body"),i(u).is("with-footer",m.value)])},[e.filterable?(x(),oe(i(ea),{key:0,modelValue:i(y),"onUpdate:modelValue":C[1]||(C[1]=E=>Jt(y)?y.value=E:null),class:T(i(u).be("panel","filter")),size:"default",placeholder:e.placeholder,"prefix-icon":i(E3),clearable:"","validate-event":!1},null,8,["modelValue","class","placeholder","prefix-icon"])):te("v-if",!0),ct(Y(i(pm),{modelValue:i(b),"onUpdate:modelValue":C[2]||(C[2]=E=>Jt(b)?b.value=E:null),"validate-event":!1,class:T([i(u).is("filterable",e.filterable),i(u).be("panel","list")])},{default:J(()=>[(x(!0),B(Fe,null,yt(i(f),E=>(x(),oe(i(oo),{key:E[i(d).key],class:T(i(u).be("panel","item")),value:E[i(d).key],disabled:E[i(d).disabled],"validate-event":!1},{default:J(()=>[Y(s,{option:e.optionRender?.(E)},null,8,["option"])]),_:2},1032,["class","value","disabled"]))),128))]),_:1},8,["modelValue","class"]),[[Pt,!h.value&&!i(ia)(e.data)]]),ct(H("div",{class:T(i(u).be("panel","empty"))},[ee(S.$slots,"empty",{},()=>[wt(Se(h.value?i(l)("el.transfer.noMatch"):i(l)("el.transfer.noData")),1)])],2),[[Pt,h.value||i(ia)(e.data)]])],2),m.value?(x(),B("p",{key:0,class:T(i(u).be("panel","footer"))},[ee(S.$slots,"default")],2)):te("v-if",!0)],2))}}),B0=OY;const NY={key:0},RY={key:0};var IY=re({name:"ElTransfer",__name:"transfer",props:qs,emits:SY,setup(e,{expose:t,emit:n}){const a=e,o=n,r=hn(),{t:s}=Ct(),l=fe("transfer"),{formItem:u}=Dn(),c=At({leftChecked:[],rightChecked:[]}),d=Cu(a),{sourceData:f,targetData:v}=kY(a),{onSourceCheckedChange:g,onTargetCheckedChange:p}=CY(c,o),{addToLeft:h,addToRight:m}=EY(a,c,o),b=M(),k=M(),y=R=>{switch(R){case"left":b.value.query="";break;case"right":k.value.query="";break}},S=w(()=>a.buttonTexts.length===2),C=w(()=>a.titles[0]||s("el.transfer.titles.0")),E=w(()=>a.titles[1]||s("el.transfer.titles.1")),$=w(()=>a.filterPlaceholder||s("el.transfer.filterPlaceholder"));le(()=>a.modelValue,()=>{a.validateEvent&&u?.validate?.("change").catch(R=>pt(R))});const O=w(()=>R=>{if(a.renderContent)return a.renderContent(qe,R);const N=(r.default?.({option:R})||[]).filter(A=>A.type!==mn);return N.length?N:qe("span",R[d.value.label]||R[d.value.key])});return t({clearQuery:y,leftPanel:b,rightPanel:k}),(R,N)=>(x(),B("div",{class:T(i(l).b())},[Y(B0,{ref_key:"leftPanel",ref:b,data:i(f),"option-render":O.value,placeholder:$.value,title:C.value,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,"default-checked":e.leftDefaultChecked,props:a.props,onCheckedChange:i(g)},{empty:J(()=>[ee(R.$slots,"left-empty")]),default:J(()=>[ee(R.$slots,"left-footer")]),_:3},8,["data","option-render","placeholder","title","filterable","format","filter-method","default-checked","props","onCheckedChange"]),H("div",{class:T(i(l).e("buttons"))},[Y(i(In),{type:"primary",class:T([i(l).e("button"),i(l).is("with-texts",S.value)]),disabled:i(ia)(c.rightChecked),onClick:i(h)},{default:J(()=>[Y(i(De),null,{default:J(()=>[Y(i(ir))]),_:1}),i(Tt)(e.buttonTexts[0])?te("v-if",!0):(x(),B("span",NY,Se(e.buttonTexts[0]),1))]),_:1},8,["class","disabled","onClick"]),Y(i(In),{type:"primary",class:T([i(l).e("button"),i(l).is("with-texts",S.value)]),disabled:i(ia)(c.leftChecked),onClick:i(m)},{default:J(()=>[i(Tt)(e.buttonTexts[1])?te("v-if",!0):(x(),B("span",RY,Se(e.buttonTexts[1]),1)),Y(i(De),null,{default:J(()=>[Y(i(na))]),_:1})]),_:1},8,["class","disabled","onClick"])],2),Y(B0,{ref_key:"rightPanel",ref:k,data:i(v),"option-render":O.value,placeholder:$.value,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,title:E.value,"default-checked":e.rightDefaultChecked,props:a.props,onCheckedChange:i(p)},{empty:J(()=>[ee(R.$slots,"right-empty")]),default:J(()=>[ee(R.$slots,"right-footer")]),_:3},8,["data","option-render","placeholder","filterable","format","filter-method","title","default-checked","props","onCheckedChange"])],2))}}),PY=IY;const MY=rt(PY),Km="RootTree",_E="NodeInstance",F0="TreeNodeMap",AE=Ce({data:{type:G(Array),default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkOnClickLeaf:{type:Boolean,default:!0},checkDescendants:Boolean,autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:{type:Array},defaultExpandedKeys:{type:Array},currentNodeKey:{type:[String,Number]},renderContent:{type:G(Function)},showCheckbox:Boolean,draggable:Boolean,allowDrag:{type:G(Function)},allowDrop:{type:G(Function)},props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:Boolean,highlightCurrent:Boolean,load:{type:Function},filterNodeMethod:{type:Function},accordion:Boolean,indent:{type:Number,default:18},icon:{type:Kt}}),_Y={"check-change":(e,t,n)=>e&&Ht(t)&&Ht(n),"current-change":(e,t)=>!0,"node-click":(e,t,n,a)=>e&&t&&a instanceof Event,"node-contextmenu":(e,t,n,a)=>e instanceof Event&&t&&n,"node-collapse":(e,t,n)=>e&&t,"node-expand":(e,t,n)=>e&&t,check:(e,t)=>e&&t,"node-drag-start":(e,t)=>e&&t,"node-drag-end":(e,t,n,a)=>e&&a,"node-drop":(e,t,n,a)=>e&&t&&a,"node-drag-leave":(e,t,n)=>e&&t&&n,"node-drag-enter":(e,t,n)=>e&&t&&n,"node-drag-over":(e,t,n)=>e&&t&&n},rl="$treeNodeId",V0=function(e,t){!t||t[rl]||Object.defineProperty(t,rl,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},Wm=(e,t)=>t?.[e||rl],Ph=(e,t,n)=>{const a=e.value.currentNode;n();const o=e.value.currentNode;a!==o&&t("current-change",o?o.data:null,o)},LE=e=>{let t=!0,n=!0,a=!0,o=!0;for(let r=0,s=e.length;r {n.canFocus=t,Mh(n.childNodes,t)})};let AY=0;var _h=class Ic{constructor(t){this.isLeafByUser=void 0,this.isLeaf=void 0,this.isEffectivelyChecked=!1,this.id=AY++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(const n in t)Rt(t,n)&&(this[n]=t[n]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){const t=this.store;if(!t)throw new Error("[Node]store is required!");t.registerNode(this);const n=t.props;if(n&&typeof n.isLeaf<"u"){const r=Qu(this,"isLeaf");Ht(r)&&(this.isLeafByUser=r)}if(t.lazy!==!0&&this.data?(this.setData(this.data),t.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&t.lazy&&t.defaultExpandAll&&!this.isLeafByUser&&this.expand(),ye(this.data)||V0(this,this.data),!this.data)return;const a=t.defaultExpandedKeys,o=t.key;o&&!gn(this.key)&&a&&a.includes(this.key)&&this.expand(null,t.autoExpandParent),o&&t.currentNodeKey!==void 0&&this.key===t.currentNodeKey&&(t.currentNode&&(t.currentNode.isCurrent=!1),t.currentNode=this,t.currentNode.isCurrent=!0),t.lazy&&t._initDefaultCheckedNode(this),this.updateLeafState(),(this.level===1||this.parent?.expanded===!0)&&(this.canFocus=!0)}setData(t){ye(t)||V0(this,t),this.data=t,this.childNodes=[];let n;this.level===0&&ye(this.data)?n=this.data:n=Qu(this,"children")||[];for(let a=0,o=n.length;a-1)return t.childNodes[n+1]}return null}get previousSibling(){const t=this.parent;if(t){const n=t.childNodes.indexOf(this);if(n>-1)return n>0?t.childNodes[n-1]:null}return null}contains(t,n=!0){return(this.childNodes||[]).some(a=>a===t||n&&a.contains(t))}remove(){const t=this.parent;t&&t.removeChild(this)}insertChild(t,n,a){if(!t)throw new Error("InsertChild error: child is required.");if(!(t instanceof Ic)){if(!a){const o=this.getChildren(!0);o?.includes(t.data)||(Tt(n)||n<0?o?.push(t.data):o?.splice(n,0,t.data))}Object.assign(t,{parent:this,store:this.store}),t=At(new Ic(t)),t instanceof Ic&&t.initialize()}t.level=this.level+1,Tt(n)||n<0?this.childNodes.push(t):this.childNodes.splice(n,0,t),this.updateLeafState()}insertBefore(t,n){let a;n&&(a=this.childNodes.indexOf(n)),this.insertChild(t,a)}insertAfter(t,n){let a;n&&(a=this.childNodes.indexOf(n),a!==-1&&(a+=1)),this.insertChild(t,a)}removeChild(t){const n=this.getChildren()||[],a=n.indexOf(t.data);a>-1&&n.splice(a,1);const o=this.childNodes.indexOf(t);o>-1&&(this.store&&this.store.deregisterNode(t),t.parent=null,this.childNodes.splice(o,1)),this.updateLeafState()}removeChildByData(t){const n=this.childNodes.find(a=>a.data===t);n&&this.removeChild(n)}expand(t,n){const a=()=>{if(n){let o=this.parent;for(;o&&o.level>0;)o.expanded=!0,o=o.parent}this.expanded=!0,t&&t(),Mh(this.childNodes,!0)};this.shouldLoadData()?this.loadData(o=>{ye(o)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||Zl(this),a())}):a()}doCreateChildren(t,n={}){t.forEach(a=>{this.insertChild(Object.assign({data:a},n),void 0,!0)})}collapse(){this.expanded=!1,Mh(this.childNodes,!1)}shouldLoadData(){return!!(this.store.lazy===!0&&this.store.load&&!this.loaded)}updateLeafState(){if(this.store.lazy===!0&&this.loaded!==!0&&typeof this.isLeafByUser<"u"){this.isLeaf=this.isLeafByUser,this.isEffectivelyChecked=this.isLeaf&&this.disabled;return}const t=this.childNodes;if(!this.store.lazy||this.store.lazy===!0&&this.loaded===!0){this.isLeaf=!t||t.length===0,this.isEffectivelyChecked=this.isLeaf&&this.disabled;return}this.isLeaf=!1}setChecked(t,n,a,o){if(this.indeterminate=t==="half",this.checked=t===!0,this.isEffectivelyChecked=!this.childNodes.length&&(this.disabled||this.checked),this.store.checkStrictly)return;if(!(this.shouldLoadData()&&!this.store.checkDescendants)){const s=()=>{if(n){const l=this.childNodes;for(let f=0,v=l.length;f {s(),Zl(this)},{checked:t!==!1});return}else s()}const r=this.parent;!r||r.level===0||a||Zl(r)}getChildren(t=!1){if(this.level===0)return this.data;const n=this.data;if(!n)return null;const a=this.store.props;let o="children";return a&&(o=a.children||"children"),Tt(n[o])&&(n[o]=null),t&&!n[o]&&(n[o]=[]),n[o]}updateChildren(){const t=this.getChildren()||[],n=this.childNodes.map(r=>r.data),a={},o=[];t.forEach((r,s)=>{const l=r[rl];l&&n.some(u=>u?.[rl]===l)?a[l]={index:s,data:r}:o.push({index:s,data:r})}),this.store.lazy||n.forEach(r=>{a[r?.[rl]]||this.removeChildByData(r)}),o.forEach(({index:r,data:s})=>{this.insertChild({data:s},r)}),this.updateLeafState()}loadData(t,n={}){if(this.store.lazy===!0&&this.store.load&&!this.loaded&&(!this.loading||Object.keys(n).length)){this.loading=!0;const a=r=>{this.childNodes=[],this.doCreateChildren(r,n),this.loaded=!0,this.loading=!1,this.updateLeafState(),t&&t.call(this,r)},o=()=>{this.loading=!1};this.store.load(this,a,o)}else t&&t.call(this)}eachNode(t){const n=[this];for(;n.length;){const a=n.shift();n.unshift(...a.childNodes),t(a)}}reInitChecked(){this.store.checkStrictly||Zl(this)}},LY=class{constructor(e){this.lazy=!1,this.checkStrictly=!1,this.autoExpandParent=!1,this.defaultExpandAll=!1,this.checkDescendants=!1,this.currentNode=null,this.currentNodeKey=null;for(const t in e)Rt(e,t)&&(this[t]=e[t]);this.nodesMap={}}initialize(){if(this.root=new _h({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){const e=this.load;e(this.root,t=>{this.root.doCreateChildren(t),this._initDefaultCheckedNodes()},Dt)}else this._initDefaultCheckedNodes()}filter(e){const t=this.filterNodeMethod,n=this.lazy,a=async function(o){const r=o.root?o.root.childNodes:o.childNodes;for(const[s,l]of r.entries())l.visible=!!t?.call(l,e,l.data,l),s%80===0&&s>0&&await Ne(),await a(l);if(!o.visible&&r.length){let s=!0;s=!r.some(l=>l.visible),o.root?o.root.visible=s===!1:o.visible=s===!1}e&&o.visible&&!o.isLeaf&&(!n||o.loaded)&&o.expand()};a(this)}setData(e){e!==this.root.data?(this.nodesMap={},this.root.setData(e),this._initDefaultCheckedNodes(),this.setCurrentNodeKey(this.currentNodeKey)):this.root.updateChildren()}getNode(e){if(e instanceof _h)return e;const t=at(e)?Wm(this.key,e):e;return this.nodesMap[t]||null}insertBefore(e,t){const n=this.getNode(t);n.parent?.insertBefore({data:e},n)}insertAfter(e,t){const n=this.getNode(t);n.parent?.insertAfter({data:e},n)}remove(e){const t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))}append(e,t){const n=va(t)?this.root:this.getNode(t);n&&n.insertChild({data:e})}_initDefaultCheckedNodes(){const e=this.defaultCheckedKeys||[],t=this.nodesMap;e.forEach(n=>{const a=t[n];a&&a.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(e){const t=this.defaultCheckedKeys||[];!gn(e.key)&&t.includes(e.key)&&e.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())}registerNode(e){const t=this.key;if(!(!e||!e.data))if(!t)this.nodesMap[e.id]=e;else{const n=e.key;gn(n)||(this.nodesMap[n]=e)}}deregisterNode(e){!this.key||!e||!e.data||(e.childNodes.forEach(t=>{this.deregisterNode(t)}),delete this.nodesMap[e.key])}getCheckedNodes(e=!1,t=!1){const n=[],a=function(o){(o.root?o.root.childNodes:o.childNodes).forEach(r=>{(r.checked||t&&r.indeterminate)&&(!e||e&&r.isLeaf)&&n.push(r.data),a(r)})};return a(this),n}getCheckedKeys(e=!1){return this.getCheckedNodes(e).map(t=>(t||{})[this.key])}getHalfCheckedNodes(){const e=[],t=function(n){(n.root?n.root.childNodes:n.childNodes).forEach(a=>{a.indeterminate&&e.push(a.data),t(a)})};return t(this),e}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(e=>(e||{})[this.key])}_getAllNodes(){const e=[],t=this.nodesMap;for(const n in t)Rt(t,n)&&e.push(t[n]);return e}updateChildren(e,t){const n=this.nodesMap[e];if(!n)return;const a=n.childNodes;for(let o=a.length-1;o>=0;o--){const r=a[o];this.remove(r.data)}for(let o=0,r=t.length;o l.level-u.level),o=Object.create(null),r=Object.keys(n);a.forEach(l=>l.setChecked(!1,!1));const s=l=>{l.childNodes.forEach(u=>{o[u.data[e]]=!0,u.childNodes?.length&&s(u)})};for(let l=0,u=a.length;l{g.isLeaf||g.setChecked(!1,!1,!0),f(g)}),v.reInitChecked()};f(c)}}}setCheckedNodes(e,t=!1){const n=this.key,a={};e.forEach(o=>{a[(o||{})[n]]=!0}),this._setCheckedKeys(n,t,a)}setCheckedKeys(e,t=!1){this.defaultCheckedKeys=e;const n=this.key,a={};e.forEach(o=>{a[o]=!0}),this._setCheckedKeys(n,t,a)}setDefaultExpandedKeys(e){e=e||[],this.defaultExpandedKeys=e,e.forEach(t=>{const n=this.getNode(t);n&&n.expand(null,this.autoExpandParent)})}setChecked(e,t,n){const a=this.getNode(e);a&&a.setChecked(!!t,n)}getCurrentNode(){return this.currentNode}setCurrentNode(e){const t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0}setUserCurrentNode(e,t=!0){const n=e[this.key],a=this.nodesMap[n];this.setCurrentNode(a),t&&this.currentNode&&this.currentNode.level>1&&this.currentNode.parent?.expand(null,!0)}setCurrentNodeKey(e,t=!0){if(this.currentNodeKey=e,va(e)){this.currentNode&&(this.currentNode.isCurrent=!1),this.currentNode=null;return}const n=this.getNode(e);n&&(this.setCurrentNode(n),t&&this.currentNode&&this.currentNode.level>1&&this.currentNode.parent?.expand(null,!0))}};function DE(e){const t=_e(F0,null);let n={treeNodeExpand:a=>{e.node!==a&&e.node?.collapse()},children:new Set};return t&&t.children.add(n),Bt(()=>{t&&t.children.delete(n),n=null}),St(F0,n),{broadcastExpanded:a=>{if(e.accordion)for(const o of n.children)o.treeNodeExpand(a)}}}const BE=Symbol("dragEvents");function DY({props:e,ctx:t,el$:n,dropIndicator$:a,store:o}){const r=fe("tree"),s=M({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null});return St(BE,{treeNodeDragStart:({event:d,treeNode:f})=>{if(d.dataTransfer){if(Ve(e.allowDrag)&&!e.allowDrag(f.node))return d.preventDefault(),!1;d.dataTransfer.effectAllowed="move";try{d.dataTransfer.setData("text/plain","")}catch{}s.value.draggingNode=f,t.emit("node-drag-start",f.node,d)}},treeNodeDragOver:({event:d,treeNode:f})=>{if(!d.dataTransfer)return;const v=f,g=s.value.dropNode;g&&g.node.id!==v.node.id&&ta(g.$el,r.is("drop-inner"));const p=s.value.draggingNode;if(!p||!v)return;let h=!0,m=!0,b=!0,k=!0;Ve(e.allowDrop)&&(h=e.allowDrop(p.node,v.node,"prev"),k=m=e.allowDrop(p.node,v.node,"inner"),b=e.allowDrop(p.node,v.node,"next")),d.dataTransfer.dropEffect=m||h||b?"move":"none",(h||m||b)&&g?.node.id!==v.node.id&&(g&&t.emit("node-drag-leave",p.node,g.node,d),t.emit("node-drag-enter",p.node,v.node,d)),h||m||b?s.value.dropNode=v:s.value.dropNode=null,v.node.nextSibling===p.node&&(b=!1),v.node.previousSibling===p.node&&(h=!1),v.node.contains(p.node,!1)&&(m=!1),(p.node===v.node||p.node.contains(v.node))&&(h=!1,m=!1,b=!1);const y=v.$el,S=y.querySelector(`.${r.be("node","content")}`).getBoundingClientRect(),C=n.value.getBoundingClientRect(),E=n.value.scrollTop;let $;const O=h?m?.25:b?.45:1:Number.NEGATIVE_INFINITY,R=b?m?.75:h?.55:0:Number.POSITIVE_INFINITY;let N=-9999;const A=d.clientY-S.top;A S.height*R?$="after":m?$="inner":$="none";const _=y.querySelector(`.${r.be("node","expand-icon")}`).getBoundingClientRect(),V=a.value;$==="before"?N=_.top-C.top+E:$==="after"&&(N=_.bottom-C.top+E),V.style.top=`${N}px`,V.style.left=`${_.right-C.left}px`,$==="inner"?La(y,r.is("drop-inner")):ta(y,r.is("drop-inner")),s.value.showDropIndicator=$==="before"||$==="after",s.value.allowDrop=s.value.showDropIndicator||k,s.value.dropType=$,t.emit("node-drag-over",p.node,v.node,d)},treeNodeDragEnd:d=>{const{draggingNode:f,dropType:v,dropNode:g}=s.value;if(d.preventDefault(),d.dataTransfer&&(d.dataTransfer.dropEffect="move"),f?.node.data&&g){const p={data:f.node.data};v!=="none"&&f.node.remove(),v==="before"?g.node.parent?.insertBefore(p,g.node):v==="after"?g.node.parent?.insertAfter(p,g.node):v==="inner"&&g.node.insertChild(p),v!=="none"&&(o.value.registerNode(p),o.value.key&&f.node.eachNode(h=>{o.value.nodesMap[h.data[o.value.key]]?.setChecked(h.checked,!o.value.checkStrictly)})),ta(g.$el,r.is("drop-inner")),t.emit("node-drag-end",f.node,g.node,v,d),v!=="none"&&t.emit("node-drop",f.node,g.node,v,d)}f&&!g&&t.emit("node-drag-end",f.node,null,v,d),s.value.showDropIndicator=!1,s.value.draggingNode=null,s.value.dropNode=null,s.value.allowDrop=!0}}),{dragState:s}}var BY=re({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(e){const t=fe("tree"),n=_e(_E),a=_e(Km);return()=>{const o=e.node,{data:r,store:s}=o;return e.renderContent?e.renderContent(qe,{_self:n,node:o,data:r,store:s}):ee(a.ctx.slots,"default",{node:o,data:r},()=>[qe(Hm,{tag:"span",truncated:!0,class:t.be("node","label")},()=>[o.label])])}}}),FY=BY,VY=re({name:"ElTreeNode",components:{ElCollapseTransition:sf,ElCheckbox:oo,NodeContent:FY,ElIcon:De,Loading:_o},props:{node:{type:_h,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:Boolean},emits:["node-expand"],setup(e,t){const n=fe("tree"),{broadcastExpanded:a}=DE(e),o=_e(Km),r=M(!1),s=M(!1),l=M(),u=M(),c=M(),d=_e(BE),f=ft();St(_E,f),o||pt("Tree","Can not find node's tree."),e.node.expanded&&(r.value=!0,s.value=!0);const v=o.props.props.children||"children";le(()=>{const R=e.node.data?.[v];return R&&[...R]},()=>{e.node.updateChildren()}),le(()=>e.node.indeterminate,R=>{h(e.node.checked,R)}),le(()=>e.node.checked,R=>{h(R,e.node.indeterminate)}),le(()=>e.node.childNodes.length,()=>e.node.reInitChecked()),le(()=>e.node.expanded,R=>{Ne(()=>r.value=R),R&&(s.value=!0)});const g=R=>o.props.nodeKey?Wm(o.props.nodeKey,R.data):R.id,p=R=>{const N=e.props.class;if(!N)return{};let A;if(Ve(N)){const{data:_}=R;A=N(_,R)}else A=N;return Le(A)?{[A]:!0}:A},h=(R,N)=>{(l.value!==R||u.value!==N)&&o.ctx.emit("check-change",e.node.data,R,N),l.value=R,u.value=N},m=R=>{Ph(o.store,o.ctx.emit,()=>{if(o?.props?.nodeKey){const N=g(e.node);o.store.value.setCurrentNodeKey(N)}else o.store.value.setCurrentNode(e.node)}),o.currentNode.value=e.node,o.props.expandOnClickNode&&k(),(o.props.checkOnClickNode||e.node.isLeaf&&o.props.checkOnClickLeaf&&e.showCheckbox)&&!e.node.disabled&&y(!e.node.checked),o.ctx.emit("node-click",e.node.data,e.node,f,R)},b=R=>{o.instance.vnode.props?.onNodeContextmenu&&(R.stopPropagation(),R.preventDefault()),o.ctx.emit("node-contextmenu",R,e.node.data,e.node,f)},k=()=>{e.node.isLeaf||(r.value?(o.ctx.emit("node-collapse",e.node.data,e.node,f),e.node.collapse()):e.node.expand(()=>{t.emit("node-expand",e.node.data,e.node,f)}))},y=R=>{const N=o?.props.checkStrictly,A=e.node.childNodes;!N&&A.length&&(R=A.some(_=>!_.isEffectivelyChecked)),e.node.setChecked(R,!N),Ne(()=>{const _=o.store.value;o.ctx.emit("check",e.node.data,{checkedNodes:_.getCheckedNodes(),checkedKeys:_.getCheckedKeys(),halfCheckedNodes:_.getHalfCheckedNodes(),halfCheckedKeys:_.getHalfCheckedKeys()})})};return{ns:n,node$:c,tree:o,expanded:r,childNodeRendered:s,oldChecked:l,oldIndeterminate:u,getNodeKey:g,getNodeClass:p,handleSelectChange:h,handleClick:m,handleContextMenu:b,handleExpandIconClick:k,handleCheckChange:y,handleChildNodeExpand:(R,N,A)=>{a(N),o.ctx.emit("node-expand",R,N,A)},handleDragStart:R=>{o.props.draggable&&d.treeNodeDragStart({event:R,treeNode:e})},handleDragOver:R=>{R.preventDefault(),o.props.draggable&&d.treeNodeDragOver({event:R,treeNode:{$el:c.value,node:e.node}})},handleDrop:R=>{R.preventDefault()},handleDragEnd:R=>{o.props.draggable&&d.treeNodeDragEnd(R)},CaretRight:MC}}});const zY=["aria-expanded","aria-disabled","aria-checked","draggable","data-key"],HY=["aria-expanded"];function KY(e,t,n,a,o,r){const s=It("el-icon"),l=It("el-checkbox"),u=It("loading"),c=It("node-content"),d=It("el-tree-node"),f=It("el-collapse-transition");return ct((x(),B("div",{ref:"node$",class:T([e.ns.b("node"),e.ns.is("expanded",e.expanded),e.ns.is("current",e.node.isCurrent),e.ns.is("hidden",!e.node.visible),e.ns.is("focusable",!e.node.disabled),e.ns.is("checked",!e.node.disabled&&e.node.checked),e.getNodeClass(e.node)]),role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:t[2]||(t[2]=Ge((...v)=>e.handleClick&&e.handleClick(...v),["stop"])),onContextmenu:t[3]||(t[3]=(...v)=>e.handleContextMenu&&e.handleContextMenu(...v)),onDragstart:t[4]||(t[4]=Ge((...v)=>e.handleDragStart&&e.handleDragStart(...v),["stop"])),onDragover:t[5]||(t[5]=Ge((...v)=>e.handleDragOver&&e.handleDragOver(...v),["stop"])),onDragend:t[6]||(t[6]=Ge((...v)=>e.handleDragEnd&&e.handleDragEnd(...v),["stop"])),onDrop:t[7]||(t[7]=Ge((...v)=>e.handleDrop&&e.handleDrop(...v),["stop"]))},[H("div",{class:T(e.ns.be("node","content")),style:Ke({paddingLeft:(e.node.level-1)*e.tree.props.indent+"px"})},[e.tree.props.icon||e.CaretRight?(x(),oe(s,{key:0,class:T([e.ns.be("node","expand-icon"),e.ns.is("leaf",e.node.isLeaf),{expanded:!e.node.isLeaf&&e.expanded}]),onClick:Ge(e.handleExpandIconClick,["stop"])},{default:J(()=>[(x(),oe(it(e.tree.props.icon||e.CaretRight)))]),_:1},8,["class","onClick"])):te("v-if",!0),e.showCheckbox?(x(),oe(l,{key:1,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:t[0]||(t[0]=Ge(()=>{},["stop"])),onChange:e.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):te("v-if",!0),e.node.loading?(x(),oe(s,{key:2,class:T([e.ns.be("node","loading-icon"),e.ns.is("loading")])},{default:J(()=>[Y(u)]),_:1},8,["class"])):te("v-if",!0),Y(c,{node:e.node,"render-content":e.renderContent},null,8,["node","render-content"])],6),Y(f,null,{default:J(()=>[!e.renderAfterExpand||e.childNodeRendered?ct((x(),B("div",{key:0,class:T(e.ns.be("node","children")),role:"group","aria-expanded":e.expanded,onClick:t[1]||(t[1]=Ge(()=>{},["stop"]))},[(x(!0),B(Fe,null,yt(e.node.childNodes,v=>(x(),oe(d,{key:e.getNodeKey(v),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:v,accordion:e.accordion,props:e.props,onNodeExpand:e.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","accordion","props","onNodeExpand"]))),128))],10,HY)),[[Pt,e.expanded]]):te("v-if",!0)]),_:1})],42,zY)),[[Pt,e.node.visible]])}var WY=$n(VY,[["render",KY]]);function jY({el$:e},t){const n=fe("tree");ht(()=>{r()}),ro(()=>{e.value?.querySelectorAll("input[type=checkbox]").forEach(s=>{s.setAttribute("tabindex","-1")})});function a(s,l){const u=t.value.getNode(s[l].dataset.key);return u.canFocus&&u.visible&&(u.parent?.expanded||u.parent?.level===0)}Ft(e,"keydown",s=>{const l=s.target;if(!l.className.includes(n.b("node")))return;const u=jt(s),c=Array.from(e.value.querySelectorAll(`.${n.is("focusable")}[role=treeitem]`)),d=c.indexOf(l);let f;if([we.up,we.down].includes(u)){if(s.preventDefault(),u===we.up){f=d===-1?0:d!==0?d-1:c.length-1;const g=f;for(;!a(c,f);){if(f--,f===g){f=-1;break}f<0&&(f=c.length-1)}}else{f=d===-1?0:d =c.length&&(f=0)}}f!==-1&&c[f].focus()}[we.left,we.right].includes(u)&&(s.preventDefault(),l.click());const v=l.querySelector('[type="checkbox"]');[we.enter,we.numpadEnter,we.space].includes(u)&&v&&(s.preventDefault(),v.click())});const r=()=>{if(!e.value)return;const s=Array.from(e.value.querySelectorAll(`.${n.is("focusable")}[role=treeitem]`));Array.from(e.value.querySelectorAll("input[type=checkbox]")).forEach(u=>{u.setAttribute("tabindex","-1")});const l=e.value.querySelectorAll(`.${n.is("checked")}[role=treeitem]`);if(l.length){l[0].setAttribute("tabindex","0");return}s[0]?.setAttribute("tabindex","0")}}var UY=re({name:"ElTree",components:{ElTreeNode:WY},props:AE,emits:_Y,setup(e,t){const{t:n}=Ct(),a=fe("tree"),o=M(new LY({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));o.value.initialize();const r=M(o.value.root),s=M(null),l=M(null),u=M(null),{broadcastExpanded:c}=DE(e),{dragState:d}=DY({props:e,ctx:t,el$:l,dropIndicator$:u,store:o});jY({el$:l},o);const f=ft(),v=w(()=>{let D=f?.parent;for(;D;){if(D.type.name==="ElTreeSelect")return!0;D=D.parent}return!1}),g=w(()=>{const{childNodes:D}=r.value;return(!D||D.length===0||D.every(({visible:F})=>!F))&&!v.value});le(()=>e.currentNodeKey,D=>{o.value.setCurrentNodeKey(D??null)}),le(()=>e.defaultCheckedKeys,(D,F)=>{on(D,F)||o.value.setDefaultCheckedKey(D??[])}),le(()=>e.defaultExpandedKeys,D=>{o.value.setDefaultExpandedKeys(D??[])}),le(()=>e.data,D=>{o.value.setData(D)},{deep:!0}),le(()=>e.checkStrictly,D=>{o.value.checkStrictly=D});const p=D=>{if(!e.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");o.value.filter(D)},h=D=>e.nodeKey?Wm(e.nodeKey,D.data):D.id,m=D=>{if(!e.nodeKey)throw new Error(`[Tree] nodeKey is required in ${D}`)},b=D=>{m("getNodePath");const F=o.value.getNode(D);if(!F)return[];const q=[F.data];let j=F.parent;for(;j&&j!==r.value;)q.push(j.data),j=j.parent;return q.reverse()},k=(D,F)=>o.value.getCheckedNodes(D,F),y=D=>o.value.getCheckedKeys(D),S=()=>{const D=o.value.getCurrentNode();return D?D.data:null},C=()=>{m("getCurrentKey");const D=S();return D?D[e.nodeKey]:null},E=(D,F)=>{m("setCheckedNodes"),o.value.setCheckedNodes(D,F)},$=(D,F)=>{m("setCheckedKeys"),o.value.setCheckedKeys(D,F)},O=(D,F,q)=>{o.value.setChecked(D,F,q)},R=()=>o.value.getHalfCheckedNodes(),N=()=>o.value.getHalfCheckedKeys(),A=(D,F=!0)=>{m("setCurrentNode"),Ph(o,t.emit,()=>{c(D),o.value.setUserCurrentNode(D,F)})},_=(D=null,F=!0)=>{m("setCurrentKey"),Ph(o,t.emit,()=>{c(),o.value.setCurrentNodeKey(D,F)})},V=D=>o.value.getNode(D),z=D=>{o.value.remove(D)},U=(D,F)=>{o.value.append(D,F)},W=(D,F)=>{o.value.insertBefore(D,F)},P=(D,F)=>{o.value.insertAfter(D,F)},I=(D,F,q)=>{c(F),t.emit("node-expand",D,F,q)},L=(D,F)=>{m("updateKeyChildren"),o.value.updateChildren(D,F)};return St(Km,{ctx:t,props:e,store:o,root:r,currentNode:s,instance:f}),St(Ao,void 0),{ns:a,store:o,root:r,currentNode:s,dragState:d,el$:l,dropIndicator$:u,isEmpty:g,filter:p,getNodeKey:h,getNodePath:b,getCheckedNodes:k,getCheckedKeys:y,getCurrentNode:S,getCurrentKey:C,setCheckedNodes:E,setCheckedKeys:$,setChecked:O,getHalfCheckedNodes:R,getHalfCheckedKeys:N,setCurrentNode:A,setCurrentKey:_,t:n,getNode:V,remove:z,append:U,insertBefore:W,insertAfter:P,handleNodeExpand:I,updateKeyChildren:L}}});function qY(e,t,n,a,o,r){const s=It("el-tree-node");return x(),B("div",{ref:"el$",class:T([e.ns.b(),e.ns.is("dragging",!!e.dragState.draggingNode),e.ns.is("drop-not-allow",!e.dragState.allowDrop),e.ns.is("drop-inner",e.dragState.dropType==="inner"),{[e.ns.m("highlight-current")]:e.highlightCurrent}]),role:"tree"},[(x(!0),B(Fe,null,yt(e.root.childNodes,l=>(x(),oe(s,{key:e.getNodeKey(l),node:l,props:e.props,accordion:e.accordion,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,["node","props","accordion","render-after-expand","show-checkbox","render-content","onNodeExpand"]))),128)),e.isEmpty?(x(),B("div",{key:0,class:T(e.ns.e("empty-block"))},[ee(e.$slots,"empty",{},()=>[H("span",{class:T(e.ns.e("empty-text"))},Se(e.emptyText??e.t("el.tree.emptyText")),3)])],2)):te("v-if",!0),ct(H("div",{ref:"dropIndicator$",class:T(e.ns.e("drop-indicator"))},null,2),[[Pt,e.dragState.showDropIndicator]])],2)}var YY=$n(UY,[["render",qY]]);const jm=rt(YY),GY=(e,{attrs:t,emit:n},{select:a,tree:o,key:r})=>{const s=fe("tree-select");le(()=>e.data,()=>{e.filterable&&Ne(()=>{o.value?.filter(a.value?.states.inputValue)})},{flush:"post"});const l=u=>{const c=u.at(-1);if(c.expanded&&c.childNodes.at(-1))l([c.childNodes.at(-1)]);else{o.value.el$?.querySelector(`[data-key="${u.at(-1).key}"]`)?.focus({preventScroll:!0});return}};return ht(()=>{Ft(()=>a.value?.$el,"keydown",async u=>{const c=jt(u),{dropdownMenuVisible:d}=a.value;[we.down,we.up].includes(c)&&d&&(await Ne(),setTimeout(()=>{if(we.up===c){const f=o.value.store.root.childNodes;l(f);return}a.value.optionsArray[a.value.states.hoveringIndex].$el?.parentNode?.parentNode?.focus({preventScroll:!0})}))},{capture:!0})}),{...rr(Mn(e),Object.keys(Hr.props)),...t,class:w(()=>t.class),style:w(()=>t.style),"onUpdate:modelValue":u=>n(tt,u),valueKey:r,popperClass:w(()=>{const u=[s.e("popper")];return e.popperClass&&u.push(e.popperClass),u.join(" ")}),filterMethod:(u="")=>{e.filterMethod?e.filterMethod(u):e.remoteMethod?e.remoteMethod(u):o.value?.filter(u)}}},XY=re({extends:rd,setup(e,t){const n=rd.setup(e,t);delete n.selectOptionClick;const a=ft().proxy;return Ne(()=>{n.select.states.cachedOptions.get(a.value)||n.select.onOptionCreate(a)}),le(()=>t.attrs.visible,o=>{Ne(()=>{n.states.visible=o})},{immediate:!0}),n},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function Ah(e){return e||e===0}function Um(e){return ye(e)&&e.length}function Ks(e){return ye(e)?e:Ah(e)?[e]:[]}function Pc(e,t,n,a,o){for(let r=0;r {le([()=>e.modelValue,r],()=>{e.showCheckbox&&Ne(()=>{const p=r.value;p&&!on(p.getCheckedKeys(),Ks(e.modelValue))&&p.setCheckedKeys(Ks(e.modelValue))})},{immediate:!0,deep:!0});const l=w(()=>({value:s.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...e.props})),u=(p,h)=>{const m=l.value[p];return Ve(m)?m(h,r.value?.getNode(u("value",h))):h[m]},c=Ks(e.modelValue).map(p=>Pc(e.data||[],h=>u("value",h)===p,h=>u("children",h),(h,m,b,k)=>k&&u("value",k))).filter(p=>Ah(p)),d=w(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const p=[];return Mc(e.data.concat(e.cacheData),h=>{const m=u("value",h);p.push({value:m,currentLabel:u("label",h),isDisabled:u("disabled",h)})},h=>u("children",h)),p}),f=()=>r.value?.getCheckedKeys().filter(p=>{const h=r.value?.getNode(p);return!gn(h)&&ia(h.childNodes)}),v=p=>{on(e.modelValue,p)||a(bt,p)};function g(p){a(tt,p),v(p)}return{...rr(Mn(e),Object.keys(jm.props)),...t,nodeKey:s,expandOnClickNode:w(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:w(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(c):c),renderContent:(p,{node:h,data:m,store:b})=>p(XY,{value:u("value",m),label:u("label",m),disabled:u("disabled",m),visible:h.visible},e.renderContent?()=>e.renderContent(p,{node:h,data:m,store:b}):n.default?()=>n.default({node:h,data:m,store:b}):void 0),filterNodeMethod:(p,h,m)=>e.filterNodeMethod?e.filterNodeMethod(p,h,m):p?new RegExp(Pv(p),"i").test(u("label",h)||""):!0,onNodeClick:(p,h,m)=>{if(t.onNodeClick?.(p,h,m),!(e.showCheckbox&&e.checkOnClickNode))if(!e.showCheckbox&&(e.checkStrictly||h.isLeaf)){if(!u("disabled",p)){const b=o.value?.states.options.get(u("value",p));o.value?.handleOptionSelect(b)}}else e.expandOnClickNode&&m.proxy.handleExpandIconClick()},onCheck:(p,h)=>{if(!e.showCheckbox)return;const m=u("value",p),b={};Mc([r.value.store.root],C=>b[C.key]=C,C=>C.childNodes);const k=h.checkedKeys,y=e.multiple?Ks(e.modelValue).filter(C=>!(C in b)&&!k.includes(C)):[],S=y.concat(k);if(e.checkStrictly)g(e.multiple?S:S.includes(m)?m:void 0);else if(e.multiple){const C=f();g(y.concat(C))}else{const C=Pc([p],O=>!Um(u("children",O))&&!u("disabled",O),O=>u("children",O)),E=C?u("value",C):void 0,$=Ah(e.modelValue)&&!!Pc([p],O=>u("value",O)===e.modelValue,O=>u("children",O));g(E===e.modelValue||$?void 0:E)}Ne(()=>{const C=Ks(e.modelValue);r.value.setCheckedKeys(C),t.onCheck?.(p,{checkedKeys:r.value.getCheckedKeys(),checkedNodes:r.value.getCheckedNodes(),halfCheckedKeys:r.value.getHalfCheckedKeys(),halfCheckedNodes:r.value.getHalfCheckedNodes()})}),o.value?.focus()},onNodeExpand:(p,h,m)=>{t.onNodeExpand?.(p,h,m),Ne(()=>{if(!e.checkStrictly&&e.lazy&&e.multiple&&h.checked){const b={},k=r.value.getCheckedKeys();Mc([r.value.store.root],C=>b[C.key]=C,C=>C.childNodes);const y=Ks(e.modelValue).filter(C=>!(C in b)&&!k.includes(C)),S=f();g(y.concat(S))}})},cacheOptions:d}};var ZY=re({props:{data:{type:Array,default:()=>[]}},setup(e){const t=_e(bu);return le(()=>e.data,()=>{e.data.forEach(a=>{t.states.cachedOptions.has(a.value)||t.states.cachedOptions.set(a.value,a)});const n=t.selectRef?.querySelectorAll("input")||[];Mt&&!Array.from(n).includes(document.activeElement)&&t.setSelected()},{flush:"post",immediate:!0}),()=>{}}}),QY=re({name:"ElTreeSelect",inheritAttrs:!1,props:{...Ik,...AE,cacheData:{type:Array,default:()=>[]}},setup(e,t){const{slots:n,expose:a,emit:o,attrs:r}=t,s={...r,onChange:void 0},l=M(),u=M(),c=w(()=>e.nodeKey||e.valueKey||"value"),d=GY(e,{attrs:r,emit:o},{select:l,tree:u,key:c}),{cacheOptions:f,...v}=JY(e,{attrs:s,slots:n,emit:o},{select:l,tree:u,key:c}),g=At({});return a(g),ht(()=>{Object.assign(g,{...rr(u.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...rr(l.value,["focus","blur","selectedLabel"]),treeRef:u.value,selectRef:l.value})}),()=>qe(Hr,At({...d,ref:p=>l.value=p}),{...n,default:()=>[qe(ZY,{data:f.value}),qe(jm,At({...v,ref:p=>u.value=p}))]})}}),eG=QY;const tG=rt(eG),qm=Symbol(),nG={key:-1,level:-1,data:{}};let Xo=(function(e){return e.KEY="id",e.LABEL="label",e.CHILDREN="children",e.DISABLED="disabled",e.CLASS="",e})({}),z0=(function(e){return e.ADD="add",e.DELETE="delete",e})({});const FE={type:Number,default:26},aG=Ce({data:{type:G(Array),default:()=>rn([])},emptyText:{type:String},height:{type:Number,default:200},props:{type:G(Object),default:()=>rn({children:Xo.CHILDREN,label:Xo.LABEL,disabled:Xo.DISABLED,value:Xo.KEY,class:Xo.CLASS})},highlightCurrent:Boolean,showCheckbox:Boolean,defaultCheckedKeys:{type:G(Array),default:()=>rn([])},checkStrictly:Boolean,defaultExpandedKeys:{type:G(Array),default:()=>rn([])},indent:{type:Number,default:16},itemSize:FE,icon:{type:Kt},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkOnClickLeaf:{type:Boolean,default:!0},currentNodeKey:{type:G([String,Number])},accordion:Boolean,filterMethod:{type:G(Function)},perfMode:{type:Boolean,default:!0},scrollbarAlwaysOn:Boolean}),oG=Ce({node:{type:G(Object),default:()=>rn(nG)},expanded:Boolean,checked:Boolean,indeterminate:Boolean,showCheckbox:Boolean,disabled:Boolean,current:Boolean,hiddenExpandIcon:Boolean,itemSize:FE}),rG=Ce({node:{type:G(Object),required:!0}}),VE="node-click",zE="node-drop",HE="node-expand",KE="node-collapse",WE="current-change",jE="check",UE="check-change",qE="node-contextmenu",sG={[VE]:(e,t,n)=>e&&t&&n,[zE]:(e,t,n)=>e&&t&&n,[HE]:(e,t)=>e&&t,[KE]:(e,t)=>e&&t,[WE]:(e,t)=>e&&t,[jE]:(e,t)=>e&&t,[UE]:(e,t)=>e&&Ht(t),[qE]:(e,t,n)=>e&&t&&n},lG={click:(e,t)=>!!(e&&t),drop:(e,t)=>!!(e&&t),toggle:e=>!!e,check:(e,t)=>e&&Ht(t)};function iG(e,t){const n=M(new Set),a=M(new Set),{emit:o}=ft();le([()=>t.value,()=>e.defaultCheckedKeys],()=>Ne(()=>{k(e.defaultCheckedKeys)}),{immediate:!0});const r=()=>{if(!t.value||!e.showCheckbox||e.checkStrictly)return;const{levelTreeNodeMap:y,maxLevel:S}=t.value,C=n.value,E=new Set;for(let $=S;$>=1;--$){const O=y.get($);O&&O.forEach(R=>{const N=R.children;let A=!R.isLeaf||R.disabled||C.has(R.key);if(N){let _=!0,V=!1;for(const z of N){const U=z.key;if(z.isEffectivelyChecked||(A=!1),C.has(U))V=!0;else if(E.has(U)){_=!1,V=!0;break}else _=!1}_?C.add(R.key):V?(E.add(R.key),C.delete(R.key)):(C.delete(R.key),E.delete(R.key))}R.isEffectivelyChecked=A})}a.value=E},s=y=>n.value.has(y.key),l=y=>a.value.has(y.key),u=(y,S,C=!0,E=!0)=>{const $=n.value,O=y.children;!e.checkStrictly&&C&&O?.length&&(S=O.some(N=>!N.isEffectivelyChecked));const R=(N,A)=>{$[A?z0.ADD:z0.DELETE](N.key);const _=N.children;!e.checkStrictly&&_&&_.forEach(V=>{(!V.disabled||V.children)&&R(V,A)})};R(y,S),E&&r(),C&&c(y,S)},c=(y,S)=>{const{checkedNodes:C,checkedKeys:E}=p(),{halfCheckedNodes:$,halfCheckedKeys:O}=h();o(jE,y.data,{checkedKeys:E,checkedNodes:C,halfCheckedKeys:O,halfCheckedNodes:$}),o(UE,y.data,S)};function d(y=!1){return p(y).checkedKeys}function f(y=!1){return p(y).checkedNodes}function v(){return h().halfCheckedKeys}function g(){return h().halfCheckedNodes}function p(y=!1){const S=[],C=[];if(t?.value&&e.showCheckbox){const{treeNodeMap:E}=t.value;n.value.forEach($=>{const O=E.get($);O&&(!y||y&&O.isLeaf)&&(C.push($),S.push(O.data))})}return{checkedKeys:C,checkedNodes:S}}function h(){const y=[],S=[];if(t?.value&&e.showCheckbox){const{treeNodeMap:C}=t.value;a.value.forEach(E=>{const $=C.get(E);$&&(S.push(E),y.push($.data))})}return{halfCheckedNodes:y,halfCheckedKeys:S}}function m(y){n.value.clear(),a.value.clear(),Ne(()=>{k(y)})}function b(y,S){if(t?.value&&e.showCheckbox){const C=t.value.treeNodeMap.get(y);C&&u(C,S,!1)}}function k(y){if(t?.value){const{treeNodeMap:S}=t.value;if(e.showCheckbox&&S&&y?.length>0){for(const C of y){const E=S.get(C);E&&!s(E)&&u(E,!0,!1,!1)}r()}}}return{updateCheckedKeys:r,toggleCheckbox:u,isChecked:s,isIndeterminate:l,getCheckedKeys:d,getCheckedNodes:f,getHalfCheckedKeys:v,getHalfCheckedNodes:g,setChecked:b,setCheckedKeys:m}}function uG(e,t){const n=M(new Set([])),a=M(new Set([])),o=w(()=>Ve(e.filterMethod));function r(l){if(!o.value)return;const u=new Set,c=a.value,d=n.value,f=[],v=t.value?.treeNodes||[],g=e.filterMethod;d.clear();function p(h){h.forEach(m=>{f.push(m),g?.(l,m.data,m)?f.forEach(k=>{u.add(k.key),k.expanded=!0}):(m.expanded=!1,m.isLeaf&&d.add(m.key));const b=m.children;if(b&&p(b),!m.isLeaf){if(!u.has(m.key))d.add(m.key);else if(b){let k=!0;for(const y of b)if(!d.has(y.key)){k=!1;break}k?c.add(m.key):c.delete(m.key)}}f.pop()})}return p(v),u}function s(l){return a.value.has(l.key)}return{hiddenExpandIconKeySet:a,hiddenNodeKeySet:n,doFilter:r,isForceHiddenExpandIcon:s}}function cG(e,t){const n=M(new Set),a=M(),o=Xt(),r=M(),{isIndeterminate:s,isChecked:l,toggleCheckbox:u,getCheckedKeys:c,getCheckedNodes:d,getHalfCheckedKeys:f,getHalfCheckedNodes:v,setChecked:g,setCheckedKeys:p}=iG(e,o),{doFilter:h,hiddenNodeKeySet:m,isForceHiddenExpandIcon:b}=uG(e,o),k=w(()=>e.props?.value||Xo.KEY),y=w(()=>e.props?.children||Xo.CHILDREN),S=w(()=>e.props?.disabled||Xo.DISABLED),C=w(()=>e.props?.label||Xo.LABEL),E=w(()=>{const ne=n.value,K=m.value,Z=[],se=o.value?.treeNodes||[],ce=[];for(let ve=se.length-1;ve>=0;--ve)ce.push(se[ve]);for(;ce.length;){const ve=ce.pop();if(!K.has(ve.key)&&(Z.push(ve),ve.children&&ne.has(ve.key)))for(let ke=ve.children.length-1;ke>=0;--ke)ce.push(ve.children[ke])}return Z}),$=w(()=>E.value.length>0);function O(ne){const K=new Map,Z=new Map;let se=1;function ce(ke,Re=1,Ie=void 0){const $e=[];for(const pe of ke){const Ee=A(pe),me={level:Re,key:Ee,data:pe};me.label=V(pe),me.parent=Ie;const Me=N(pe);me.disabled=_(pe),me.isLeaf=!Me||Me.length===0,me.expanded=n.value.has(Ee),Me&&Me.length&&(me.children=ce(Me,Re+1,me)),$e.push(me),K.set(Ee,me),Z.has(Re)||Z.set(Re,[]),Z.get(Re)?.push(me)}return Re>se&&(se=Re),$e}const ve=ce(ne);return{treeNodeMap:K,levelTreeNodeMap:Z,maxLevel:se,treeNodes:ve}}function R(ne){const K=h(ne);K&&(n.value=K)}function N(ne){return ne[y.value]}function A(ne){return ne?ne[k.value]:""}function _(ne){return ne[S.value]}function V(ne){return ne[C.value]}function z(ne){n.value.has(ne.key)?F(ne):D(ne)}function U(ne){const K=new Set,Z=o.value.treeNodeMap;n.value.forEach(se=>{const ce=Z.get(se);n.value.delete(ce.key),ce.expanded=!1}),ne.forEach(se=>{let ce=Z.get(se);for(;ce&&!K.has(ce.key);)K.add(ce.key),ce.expanded=!0,ce=ce.parent}),n.value=K}function W(ne,K){t(VE,ne.data,ne,K),I(ne),e.expandOnClickNode&&z(ne),e.showCheckbox&&(e.checkOnClickNode||ne.isLeaf&&e.checkOnClickLeaf)&&!ne.disabled&&u(ne,!l(ne),!0)}function P(ne,K){t(zE,ne.data,ne,K)}function I(ne){j(ne)||(a.value=ne.key,t(WE,ne.data,ne))}function L(ne,K){u(ne,K)}function D(ne){const K=n.value;if(o.value&&e.accordion){const{treeNodeMap:se}=o.value;K.forEach(ce=>{const ve=se.get(ce);ne&&ne.level===ve?.level&&(K.delete(ce),ve.expanded=!1)})}K.add(ne.key);const Z=ge(ne.key);Z&&(Z.expanded=!0,t(HE,Z.data,Z))}function F(ne){n.value.delete(ne.key);const K=ge(ne.key);K&&(K.expanded=!1,t(KE,K.data,K))}function q(ne){return!!ne.disabled}function j(ne){const K=a.value;return K!==void 0&&K===ne.key}function X(){if(a.value)return o.value?.treeNodeMap.get(a.value)?.data}function Q(){return a.value}function he(ne){a.value=ne}function ue(ne){o.value=O(ne)}function ge(ne){const K=at(ne)?A(ne):ne;return o.value?.treeNodeMap.get(K)}function ie(ne,K="auto"){const Z=ge(ne);Z&&r.value&&r.value.scrollToItem(E.value.indexOf(Z),K)}function ae(ne){r.value?.scrollTo(ne)}return le(()=>e.currentNodeKey,ne=>{a.value=ne},{immediate:!0}),le(()=>e.defaultExpandedKeys,ne=>{n.value=new Set(ne)},{immediate:!0}),le(()=>e.data,ne=>{ue(ne)},{immediate:!0}),{tree:o,flattenTree:E,isNotEmpty:$,listRef:r,getKey:A,getChildren:N,toggleExpand:z,toggleCheckbox:u,isChecked:l,isIndeterminate:s,isDisabled:q,isCurrent:j,isForceHiddenExpandIcon:b,handleNodeClick:W,handleNodeDrop:P,handleNodeCheck:L,getCurrentNode:X,getCurrentKey:Q,setCurrentKey:he,getCheckedKeys:c,getCheckedNodes:d,getHalfCheckedKeys:f,getHalfCheckedNodes:v,setChecked:g,setCheckedKeys:p,filter:R,setData:ue,getNode:ge,expandNode:D,collapseNode:F,setExpandedKeys:U,scrollToNode:ie,scrollTo:ae}}var dG=re({name:"ElTreeNodeContent",props:rG,setup(e){const t=_e(qm),n=fe("tree");return()=>{const a=e.node,{data:o}=a;return t?.ctx.slots.default?t.ctx.slots.default({node:a,data:o}):qe(Hm,{tag:"span",truncated:!0,class:n.be("node","label")},()=>[a?.label])}}});const fG=["aria-expanded","aria-disabled","aria-checked","data-key"];var pG=re({name:"ElTreeNode",__name:"tree-node",props:oG,emits:lG,setup(e,{emit:t}){const n=e,a=t,o=_e(qm),r=fe("tree"),s=w(()=>o?.props.indent??16),l=w(()=>o?.props.icon??MC),u=p=>{const h=o?.props.props?.class;if(!h)return{};let m;if(Ve(h)){const{data:b}=p;m=h(b,p)}else m=h;return Le(m)?{[m]:!0}:m},c=p=>{a("click",n.node,p)},d=p=>{a("drop",n.node,p)},f=()=>{a("toggle",n.node)},v=p=>{a("check",n.node,p)},g=p=>{o?.instance?.vnode?.props?.onNodeContextmenu&&(p.stopPropagation(),p.preventDefault()),o?.ctx.emit(qE,p,n.node?.data,n.node)};return(p,h)=>(x(),B("div",{ref:"node$",class:T([i(r).b("node"),i(r).is("expanded",e.expanded),i(r).is("current",e.current),i(r).is("focusable",!e.disabled),i(r).is("checked",!e.disabled&&e.checked),u(e.node)]),role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.disabled,"aria-checked":e.checked,"data-key":e.node?.key,onClick:Ge(c,["stop"]),onContextmenu:g,onDragover:h[1]||(h[1]=Ge(()=>{},["prevent"])),onDragenter:h[2]||(h[2]=Ge(()=>{},["prevent"])),onDrop:Ge(d,["stop"])},[H("div",{class:T(i(r).be("node","content")),style:Ke({paddingLeft:`${(e.node.level-1)*s.value}px`,height:e.itemSize+"px"})},[l.value?(x(),oe(i(De),{key:0,class:T([i(r).is("leaf",!!e.node?.isLeaf),i(r).is("hidden",e.hiddenExpandIcon),{expanded:!e.node?.isLeaf&&e.expanded},i(r).be("node","expand-icon")]),onClick:Ge(f,["stop"])},{default:J(()=>[(x(),oe(it(l.value)))]),_:1},8,["class"])):te("v-if",!0),e.showCheckbox?(x(),oe(i(oo),{key:1,"model-value":e.checked,indeterminate:e.indeterminate,disabled:e.disabled,onChange:v,onClick:h[0]||(h[0]=Ge(()=>{},["stop"]))},null,8,["model-value","indeterminate","disabled"])):te("v-if",!0),Y(i(dG),{node:{...e.node,expanded:e.expanded}},null,8,["node"])],6)],42,fG))}}),hG=pG,vG=re({name:"ElTreeV2",__name:"tree",props:aG,emits:sG,setup(e,{expose:t,emit:n}){const a=e,o=n,r=hn(),s=w(()=>a.itemSize);St(qm,{ctx:{emit:o,slots:r},props:a,instance:ft()}),St(Ao,void 0);const{t:l}=Ct(),u=fe("tree"),{flattenTree:c,isNotEmpty:d,listRef:f,toggleExpand:v,isIndeterminate:g,isChecked:p,isDisabled:h,isCurrent:m,isForceHiddenExpandIcon:b,handleNodeClick:k,handleNodeDrop:y,handleNodeCheck:S,toggleCheckbox:C,getCurrentNode:E,getCurrentKey:$,setCurrentKey:O,getCheckedKeys:R,getCheckedNodes:N,getHalfCheckedKeys:A,getHalfCheckedNodes:_,setChecked:V,setCheckedKeys:z,filter:U,setData:W,getNode:P,expandNode:I,collapseNode:L,setExpandedKeys:D,scrollToNode:F,scrollTo:q}=cG(a,o);return t({toggleCheckbox:C,getCurrentNode:E,getCurrentKey:$,setCurrentKey:O,getCheckedKeys:R,getCheckedNodes:N,getHalfCheckedKeys:A,getHalfCheckedNodes:_,setChecked:V,setCheckedKeys:z,filter:U,setData:W,getNode:P,expandNode:I,collapseNode:L,setExpandedKeys:D,scrollToNode:F,scrollTo:q}),(j,X)=>(x(),B("div",{class:T([i(u).b(),{[i(u).m("highlight-current")]:e.highlightCurrent}]),role:"tree"},[i(d)?(x(),oe(i(J2),{key:0,ref_key:"listRef",ref:f,"class-name":i(u).b("virtual-list"),data:i(c),total:i(c).length,height:e.height,"item-size":s.value,"perf-mode":e.perfMode,"scrollbar-always-on":e.scrollbarAlwaysOn},{default:J(({data:Q,index:he,style:ue})=>[(x(),oe(hG,{key:Q[he].key,style:Ke(ue),node:Q[he],expanded:Q[he].expanded,"show-checkbox":e.showCheckbox,checked:i(p)(Q[he]),indeterminate:i(g)(Q[he]),"item-size":s.value,disabled:i(h)(Q[he]),current:i(m)(Q[he]),"hidden-expand-icon":i(b)(Q[he]),onClick:i(k),onToggle:i(v),onCheck:i(S),onDrop:i(y)},null,8,["style","node","expanded","show-checkbox","checked","indeterminate","item-size","disabled","current","hidden-expand-icon","onClick","onToggle","onCheck","onDrop"]))]),_:1},8,["class-name","data","total","height","item-size","perf-mode","scrollbar-always-on"])):(x(),B("div",{key:1,class:T(i(u).e("empty-block"))},[ee(j.$slots,"empty",{},()=>[H("span",{class:T(i(u).e("empty-text"))},Se(e.emptyText??i(l)("el.tree.emptyText")),3)])],2))],2))}}),mG=vG;const gG=rt(mG),bG="ElUpload";var yG=class extends Error{constructor(e,t,n,a){super(e),this.name="UploadAjaxError",this.status=t,this.method=n,this.url=a}};function H0(e,t,n){let a;return n.response?a=`${n.response.error||n.response}`:n.responseText?a=`${n.responseText}`:a=`fail to ${t.method} ${e} ${n.status}`,new yG(a,n.status,t.method,e)}function wG(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}const SG=e=>{typeof XMLHttpRequest>"u"&&tn(bG,"XMLHttpRequest is undefined");const t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener("progress",r=>{const s=r;s.percent=r.total>0?r.loaded/r.total*100:0,e.onProgress(s)});const a=new FormData;if(e.data)for(const[r,s]of Object.entries(e.data))ye(s)?s.length===2&&s[0]instanceof Blob&&Le(s[1])?a.append(r,s[0],s[1]):s.forEach(l=>{a.append(r,l)}):a.append(r,s);a.append(e.filename,e.file,e.file.name),t.addEventListener("error",()=>{e.onError(H0(n,e,t))}),t.addEventListener("load",()=>{if(t.status<200||t.status>=300)return e.onError(H0(n,e,t));e.onSuccess(wG(t))}),t.open(e.method,n,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const o=e.headers||{};if(o instanceof Headers)o.forEach((r,s)=>t.setRequestHeader(s,r));else for(const[r,s]of Object.entries(o))gn(s)||t.setRequestHeader(r,String(s));return t.send(a),t},YE=["text","picture","picture-card"];let CG=1;const Lh=()=>Date.now()+CG++,GE=Ce({action:{type:String,default:"#"},headers:{type:G(Object)},method:{type:String,default:"post"},data:{type:G([Object,Function,Promise]),default:()=>rn({})},multiple:Boolean,name:{type:String,default:"file"},drag:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},fileList:{type:G(Array),default:()=>rn([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:YE,default:"text"},httpRequest:{type:G(Function),default:SG},disabled:{type:Boolean,default:void 0},limit:Number,directory:Boolean}),kG=Ce({...GE,beforeUpload:{type:G(Function),default:Dt},beforeRemove:{type:G(Function)},onRemove:{type:G(Function),default:Dt},onChange:{type:G(Function),default:Dt},onPreview:{type:G(Function),default:Dt},onSuccess:{type:G(Function),default:Dt},onProgress:{type:G(Function),default:Dt},onError:{type:G(Function),default:Dt},onExceed:{type:G(Function),default:Dt},crossorigin:{type:G(String)}}),XE=Symbol("uploadContextKey"),EG=Ce({files:{type:G(Array),default:()=>rn([])},disabled:{type:Boolean,default:void 0},handlePreview:{type:G(Function),default:Dt},listType:{type:String,values:YE,default:"text"},crossorigin:{type:G(String)}}),xG={remove:e=>!!e},TG=Ce({...GE,beforeUpload:{type:G(Function),default:Dt},onRemove:{type:G(Function),default:Dt},onStart:{type:G(Function),default:Dt},onSuccess:{type:G(Function),default:Dt},onProgress:{type:G(Function),default:Dt},onError:{type:G(Function),default:Dt},onExceed:{type:G(Function),default:Dt}}),$G=Ce({disabled:{type:Boolean,default:void 0},directory:Boolean}),OG={file:e=>ye(e)},NG=["tabindex","aria-disabled","onKeydown"],RG=["src","crossorigin"],IG=["onClick"],PG=["title"],MG=["onClick"],_G=["onClick"];var AG=re({name:"ElUploadList",__name:"upload-list",props:EG,emits:xG,setup(e,{emit:t}){const n=e,a=t,{t:o}=Ct(),r=fe("upload"),s=fe("icon"),l=fe("list"),u=ln(),c=M(!1),d=w(()=>[r.b("list"),r.bm("list",n.listType),r.is("disabled",u.value)]),f=v=>{a("remove",v)};return(v,g)=>(x(),oe(F1,{tag:"ul",class:T(d.value),name:i(l).b()},{default:J(()=>[(x(!0),B(Fe,null,yt(e.files,(p,h)=>(x(),B("li",{key:p.uid||p.name,class:T([i(r).be("list","item"),i(r).is(p.status),{focusing:c.value}]),tabindex:i(u)?void 0:0,"aria-disabled":i(u),role:"button",onKeydown:an(m=>!i(u)&&f(p),["delete"]),onFocus:g[0]||(g[0]=m=>c.value=!0),onBlur:g[1]||(g[1]=m=>c.value=!1),onClick:g[2]||(g[2]=m=>c.value=!1)},[ee(v.$slots,"default",{file:p,index:h},()=>[e.listType==="picture"||p.status!=="uploading"&&e.listType==="picture-card"?(x(),B("img",{key:0,class:T(i(r).be("list","item-thumbnail")),src:p.url,crossorigin:e.crossorigin,alt:""},null,10,RG)):te("v-if",!0),p.status==="uploading"||e.listType!=="picture-card"?(x(),B("div",{key:1,class:T(i(r).be("list","item-info"))},[H("a",{class:T(i(r).be("list","item-name")),onClick:Ge(m=>e.handlePreview(p),["prevent"])},[Y(i(De),{class:T(i(s).m("document"))},{default:J(()=>[Y(i(e3))]),_:1},8,["class"]),H("span",{class:T(i(r).be("list","item-file-name")),title:p.name},Se(p.name),11,PG)],10,IG),p.status==="uploading"?(x(),oe(i(V2),{key:0,type:e.listType==="picture-card"?"circle":"line","stroke-width":e.listType==="picture-card"?6:2,percentage:Number(p.percentage),style:Ke(e.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):te("v-if",!0)],2)):te("v-if",!0),H("label",{class:T(i(r).be("list","item-status-label"))},[e.listType==="text"?(x(),oe(i(De),{key:0,class:T([i(s).m("upload-success"),i(s).m("circle-check")])},{default:J(()=>[Y(i(Jv))]),_:1},8,["class"])):["picture-card","picture"].includes(e.listType)?(x(),oe(i(De),{key:1,class:T([i(s).m("upload-success"),i(s).m("check")])},{default:J(()=>[Y(i(vu))]),_:1},8,["class"])):te("v-if",!0)],2),i(u)?te("v-if",!0):(x(),oe(i(De),{key:2,class:T(i(s).m("close")),"aria-label":i(o)("el.upload.delete"),role:"button",tabindex:"0",onClick:m=>f(p),onKeydown:an(Ge(m=>f(p),["prevent"]),["enter","space"])},{default:J(()=>[Y(i(Ha))]),_:1},8,["class","aria-label","onClick","onKeydown"])),i(u)?te("v-if",!0):(x(),B("i",{key:3,class:T(i(s).m("close-tip"))},Se(i(o)("el.upload.deleteTip")),3)),e.listType==="picture-card"?(x(),B("span",{key:4,class:T(i(r).be("list","item-actions"))},[H("span",{class:T(i(r).be("list","item-preview")),onClick:m=>e.handlePreview(p)},[Y(i(De),{class:T(i(s).m("zoom-in"))},{default:J(()=>[Y(i(DC))]),_:1},8,["class"])],10,MG),i(u)?te("v-if",!0):(x(),B("span",{key:0,class:T(i(r).be("list","item-delete")),onClick:m=>f(p)},[Y(i(De),{class:T(i(s).m("delete"))},{default:J(()=>[Y(i(Z4))]),_:1},8,["class"])],10,_G))],2)):te("v-if",!0)])],42,NG))),128)),ee(v.$slots,"append")]),_:3},8,["class","name"]))}}),K0=AG;const W0="ElUploadDrag";var LG=re({name:W0,__name:"upload-dragger",props:$G,emits:OG,setup(e,{emit:t}){const n=e,a=t;_e(XE)||tn(W0,"usage: ");const o=fe("upload"),r=M(!1),s=ln(),l=v=>new Promise((g,p)=>v.file(g,p)),u=async v=>{try{if(v.isFile){const g=await l(v);return g.isDirectory=!1,[g]}if(v.isDirectory){const g=v.createReader(),p=()=>new Promise((k,y)=>g.readEntries(k,y)),h=[];let m=await p();for(;m.length>0;)h.push(...m),m=await p();const b=h.map(k=>u(k).catch(()=>[]));return Yc(await Promise.all(b))}}catch{return[]}return[]},c=async v=>{if(s.value)return;r.value=!1,v.stopPropagation();const g=Array.from(v.dataTransfer.files),p=v.dataTransfer.items||[];if(n.directory){const h=Array.from(p).map(m=>m?.webkitGetAsEntry?.()).filter(m=>m);a("file",Yc(await Promise.all(h.map(u))));return}g.forEach((h,m)=>{const b=p[m]?.webkitGetAsEntry?.();b&&(h.isDirectory=b.isDirectory)}),a("file",g)},d=()=>{s.value||(r.value=!0)},f=v=>{v.currentTarget.contains(v.relatedTarget)||(r.value=!1)};return(v,g)=>(x(),B("div",{class:T([i(o).b("dragger"),i(o).is("dragover",r.value)]),onDrop:Ge(c,["prevent"]),onDragover:Ge(d,["prevent"]),onDragleave:Ge(f,["prevent"])},[ee(v.$slots,"default")],34))}}),DG=LG;const BG=["tabindex","aria-disabled","onKeydown"],FG=["name","disabled","multiple","accept","webkitdirectory"];var VG=re({name:"ElUploadContent",inheritAttrs:!1,__name:"upload-content",props:TG,setup(e,{expose:t}){const n=e,a=fe("upload"),o=ln(),r=Xt({}),s=Xt(),l=h=>{if(h.length===0)return;const{autoUpload:m,limit:b,fileList:k,multiple:y,onStart:S,onExceed:C}=n;if(b&&k.length+h.length>b){C(h,k);return}y||(h=h.slice(0,1));for(const E of h){const $=E;$.uid=Lh(),S($),m&&u($)}},u=async h=>{if(s.value.value="",!n.beforeUpload)return d(h);let m,b={};try{const y=n.data,S=n.beforeUpload(h);b=mi(n.data)?er(n.data):n.data,m=await S,mi(n.data)&&on(y,b)&&(b=er(n.data))}catch{m=!1}if(m===!1){n.onRemove(h);return}let k=h;m instanceof Blob&&(m instanceof File?k=m:k=new File([m],h.name,{type:h.type})),d(Object.assign(k,{uid:h.uid}),b)},c=async(h,m)=>Ve(h)?h(m):h,d=async(h,m)=>{const{headers:b,data:k,method:y,withCredentials:S,name:C,action:E,onProgress:$,onSuccess:O,onError:R,httpRequest:N}=n;try{m=await c(m??k,h)}catch{n.onRemove(h);return}const{uid:A}=h,_={headers:b||{},withCredentials:S,file:h,data:m,method:y,filename:C,action:E,onProgress:z=>{$(z,h)},onSuccess:z=>{O(z,h),delete r.value[A]},onError:z=>{R(z,h),delete r.value[A]}},V=N(_);r.value[A]=V,V instanceof Promise&&V.then(_.onSuccess,_.onError)},f=h=>{const m=h.target.files;m&&l(Array.from(m))},v=()=>{o.value||(s.value.value="",s.value.click())},g=()=>{v()};return t({abort:h=>{MS(r.value).filter(h?([m])=>String(h.uid)===m:()=>!0).forEach(([m,b])=>{b instanceof XMLHttpRequest&&b.abort(),delete r.value[m]})},upload:u}),(h,m)=>(x(),B("div",{class:T([i(a).b(),i(a).m(e.listType),i(a).is("drag",e.drag),i(a).is("disabled",i(o))]),tabindex:i(o)?void 0:0,"aria-disabled":i(o),role:"button",onClick:v,onKeydown:an(Ge(g,["self"]),["enter","space"])},[e.drag?(x(),oe(DG,{key:0,disabled:i(o),directory:e.directory,onFile:l},{default:J(()=>[ee(h.$slots,"default")]),_:3},8,["disabled","directory"])):ee(h.$slots,"default",{key:1}),H("input",{ref_key:"inputRef",ref:s,class:T(i(a).e("input")),name:e.name,disabled:i(o),multiple:e.multiple,accept:e.accept,webkitdirectory:e.directory||void 0,type:"file",onChange:f,onClick:m[0]||(m[0]=Ge(()=>{},["stop"]))},null,42,FG)],42,BG))}}),j0=VG;const U0="ElUpload",q0=e=>{e.url?.startsWith("blob:")&&URL.revokeObjectURL(e.url)},zG=(e,t)=>{const n=zS(e,"fileList",void 0,{passive:!0}),a=p=>n.value.find(h=>h.uid===p.uid);function o(p){t.value?.abort(p)}function r(p=["ready","uploading","success","fail"]){n.value=n.value.filter(h=>!p.includes(h.status))}function s(p){n.value=n.value.filter(h=>h.uid!==p.uid)}const l=p=>{Ne(()=>e.onChange(p,n.value))},u=(p,h)=>{const m=a(h);m&&(console.error(p),m.status="fail",s(m),e.onError(p,m,n.value),l(m))},c=(p,h)=>{const m=a(h);m&&(e.onProgress(p,m,n.value),m.status="uploading",m.percentage=Math.round(p.percent))},d=(p,h)=>{const m=a(h);m&&(m.status="success",m.response=p,e.onSuccess(p,m,n.value),l(m))},f=p=>{gn(p.uid)&&(p.uid=Lh());const h={name:p.name,percentage:0,status:"ready",size:p.size,raw:p,uid:p.uid};if(e.listType==="picture-card"||e.listType==="picture")try{h.url=URL.createObjectURL(p)}catch(m){pt(U0,m.message),e.onError(m,h,n.value)}n.value=[...n.value,h],l(h)},v=async p=>{const h=p instanceof File?a(p):p;h||tn(U0,"file to be removed not found");const m=b=>{o(b),s(b),e.onRemove(b,n.value),q0(b)};e.beforeRemove?await e.beforeRemove(h,n.value)!==!1&&m(h):m(h)};function g(){n.value.filter(({status:p})=>p==="ready").forEach(({raw:p})=>p&&t.value?.upload(p))}return le(()=>e.listType,p=>{p!=="picture-card"&&p!=="picture"||(n.value=n.value.map(h=>{const{raw:m,url:b}=h;if(!b&&m)try{h.url=URL.createObjectURL(m)}catch(k){e.onError(k,h,n.value)}return h}))}),le(n,p=>{for(const h of p)h.uid||=Lh(),h.status||="success"},{immediate:!0,deep:!0}),{uploadFiles:n,abort:o,clearFiles:r,handleError:u,handleProgress:c,handleStart:f,handleSuccess:d,handleRemove:v,submit:g,revokeFileObjectURL:q0}};var HG=re({name:"ElUpload",__name:"upload",props:kG,setup(e,{expose:t}){const n=e,a=ln(),o=Xt(),{abort:r,submit:s,clearFiles:l,uploadFiles:u,handleStart:c,handleError:d,handleRemove:f,handleSuccess:v,handleProgress:g,revokeFileObjectURL:p}=zG(n,o),h=w(()=>n.listType==="picture-card"),m=w(()=>({...n,fileList:u.value,onStart:c,onProgress:g,onSuccess:v,onError:d,onRemove:f}));return Bt(()=>{u.value.forEach(p)}),St(XE,{accept:Vt(n,"accept")}),t({abort:r,submit:s,clearFiles:l,handleStart:c,handleRemove:f}),(b,k)=>(x(),B("div",null,[h.value&&e.showFileList?(x(),oe(K0,{key:0,disabled:i(a),"list-type":e.listType,files:i(u),crossorigin:e.crossorigin,"handle-preview":e.onPreview,onRemove:i(f)},ua({append:J(()=>[Y(j0,dt({ref_key:"uploadRef",ref:o},m.value),{default:J(()=>[b.$slots.trigger?ee(b.$slots,"trigger",{key:0}):te("v-if",!0),!b.$slots.trigger&&b.$slots.default?ee(b.$slots,"default",{key:1}):te("v-if",!0)]),_:3},16)]),_:2},[b.$slots.file?{name:"default",fn:J(({file:y,index:S})=>[ee(b.$slots,"file",{file:y,index:S})]),key:"0"}:void 0]),1032,["disabled","list-type","files","crossorigin","handle-preview","onRemove"])):te("v-if",!0),!h.value||h.value&&!e.showFileList?(x(),oe(j0,dt({key:1,ref_key:"uploadRef",ref:o},m.value),{default:J(()=>[b.$slots.trigger?ee(b.$slots,"trigger",{key:0}):te("v-if",!0),!b.$slots.trigger&&b.$slots.default?ee(b.$slots,"default",{key:1}):te("v-if",!0)]),_:3},16)):te("v-if",!0),b.$slots.trigger?ee(b.$slots,"default",{key:2}):te("v-if",!0),ee(b.$slots,"tip"),!h.value&&e.showFileList?(x(),oe(K0,{key:3,disabled:i(a),"list-type":e.listType,files:i(u),crossorigin:e.crossorigin,"handle-preview":e.onPreview,onRemove:i(f)},ua({_:2},[b.$slots.file?{name:"default",fn:J(({file:y,index:S})=>[ee(b.$slots,"file",{file:y,index:S})]),key:"0"}:void 0]),1032,["disabled","list-type","files","crossorigin","handle-preview","onRemove"])):te("v-if",!0)]))}}),KG=HG;const WG=rt(KG),jG=Ce({zIndex:{type:Number,default:9},rotate:{type:Number,default:-22},width:Number,height:Number,image:String,content:{type:G([String,Array]),default:"Element Plus"},font:{type:G(Object)},gap:{type:G(Array),default:()=>[100,100]},offset:{type:G(Array)}});function UG(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function qG(e){return Object.keys(e).map(t=>`${UG(t)}: ${e[t]};`).join(" ")}function YG(){return window.devicePixelRatio||1}const GG=(e,t)=>{let n=!1;return e.removedNodes.length&&t&&(n=Array.from(e.removedNodes).includes(t)),e.type==="attributes"&&e.target===t&&(n=!0),n},XG={left:[0,.5],start:[0,.5],center:[.5,0],right:[1,-.5],end:[1,-.5]};function fp(e,t,n=1){const a=document.createElement("canvas"),o=a.getContext("2d"),r=e*n,s=t*n;return a.setAttribute("width",`${r}px`),a.setAttribute("height",`${s}px`),o.save(),[o,a,r,s]}function JG(){function e(t,n,a,o,r,s,l,u,c){const[d,f,v,g]=fp(o,r,a);let p=0;if(t instanceof HTMLImageElement)d.drawImage(t,0,0,v,g);else{const{color:q,fontSize:j,fontStyle:X,fontWeight:Q,fontFamily:he,textAlign:ue,textBaseline:ge}=s,ie=Number(j)*a;d.font=`${X} normal ${Q} ${ie}px/${r}px ${he}`,d.fillStyle=q,d.textAlign=ue,d.textBaseline=ge;const ae=ye(t)?t:[t];if(ge!=="top"&&ae[0]){const ne=d.measureText(ae[0]);d.textBaseline="top";const K=d.measureText(ae[0]);p=ne.actualBoundingBoxAscent-K.actualBoundingBoxAscent}ae?.forEach((ne,K)=>{const[Z,se]=XG[ue];d.fillText(ne??"",v*Z+c*se,K*(ie+s.fontGap*a))})}const h=Math.PI/180*Number(n),m=Math.max(o,r),[b,k,y]=fp(m,m,a);b.translate(y/2,y/2),b.rotate(h),v>0&&g>0&&b.drawImage(f,-v/2,-g/2);function S(q,j){return[q*Math.cos(h)-j*Math.sin(h),q*Math.sin(h)+j*Math.cos(h)]}let C=0,E=0,$=0,O=0;const R=v/2,N=g/2;[[0-R,0-N],[0+R,0-N],[0+R,0+N],[0-R,0+N]].forEach(([q,j])=>{const[X,Q]=S(q,j);C=Math.min(C,X),E=Math.max(E,X),$=Math.min($,Q),O=Math.max(O,Q)});const A=C+y/2,_=$+y/2,V=E-C,z=O-$,U=l*a,W=u*a,P=(V+U)*2,I=z+W,[L,D]=fp(P,I);function F(q=0,j=0){L.drawImage(k,A,_,V,z,q,j+p,V,z)}return F(),F(V+U,-z/2-W/2),F(V+U,+z/2+W/2),[D.toDataURL(),P/a,I/a]}return e}var ZG=re({name:"ElWatermark",__name:"watermark",props:jG,setup(e){const t={position:"relative"},n=e,a=w(()=>n.font?.fontGap??3),o=w(()=>n.font?.color??"rgba(0,0,0,.15)"),r=w(()=>n.font?.fontSize??16),s=w(()=>n.font?.fontWeight??"normal"),l=w(()=>n.font?.fontStyle??"normal"),u=w(()=>n.font?.fontFamily??"sans-serif"),c=w(()=>n.font?.textAlign??"center"),d=w(()=>n.font?.textBaseline??"hanging"),f=w(()=>n.gap[0]),v=w(()=>n.gap[1]),g=w(()=>f.value/2),p=w(()=>v.value/2),h=w(()=>n.offset?.[0]??g.value),m=w(()=>n.offset?.[1]??p.value),b=()=>{const A={zIndex:n.zIndex,position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",backgroundRepeat:"repeat"};let _=h.value-g.value,V=m.value-p.value;return _>0&&(A.left=`${_}px`,A.width=`calc(100% - ${_}px)`,_=0),V>0&&(A.top=`${V}px`,A.height=`calc(100% - ${V}px)`,V=0),A.backgroundPosition=`${_}px ${V}px`,A},k=Xt(null),y=Xt(),S=M(!1),C=()=>{y.value&&(y.value.remove(),y.value=void 0)},E=(A,_)=>{k.value&&y.value&&(S.value=!0,y.value.setAttribute("style",qG({...b(),backgroundImage:`url('${A}')`,backgroundSize:`${Math.floor(_)}px`})),k.value?.append(y.value),setTimeout(()=>{S.value=!1}))},$=A=>{let _=120,V=64,z=0;const{image:U,content:W,width:P,height:I,rotate:L}=n;if(!U&&A.measureText){A.font=`${Number(r.value)}px ${u.value}`;const D=ye(W)?W:[W];let F=0,q=0;D.forEach(X=>{const{width:Q,fontBoundingBoxAscent:he,fontBoundingBoxDescent:ue,actualBoundingBoxAscent:ge,actualBoundingBoxDescent:ie}=A.measureText(X),ae=Tt(he)?ge+ie:he+ue;Q>F&&(F=Math.ceil(Q)),ae>q&&(q=Math.ceil(ae))}),_=F,V=q*D.length+(D.length-1)*a.value;const j=Math.PI/180*Number(L);z=Math.ceil(Math.abs(Math.sin(j)*V)/2),_+=z}return[P??_,I??V,z]},O=JG(),R=()=>{const A=document.createElement("canvas").getContext("2d"),_=n.image,V=n.content,z=n.rotate;if(A){y.value||(y.value=document.createElement("div"));const U=YG(),[W,P,I]=$(A),L=D=>{const[F,q]=O(D||"",z,U,W,P,{color:o.value,fontSize:r.value,fontStyle:l.value,fontWeight:s.value,fontFamily:u.value,fontGap:a.value,textAlign:c.value,textBaseline:d.value},f.value,v.value,I);E(F,q)};if(_){const D=new Image;D.onload=()=>{L(D)},D.onerror=()=>{L(V)},D.crossOrigin="anonymous",D.referrerPolicy="no-referrer",D.src=_}else L(V)}};return ht(()=>{R()}),le(()=>n,()=>{R()},{deep:!0,flush:"post"}),Bt(()=>{C()}),ru(k,A=>{S.value||A.forEach(_=>{GG(_,y.value)&&(C(),R())})},{attributes:!0,subtree:!0,childList:!0}),(A,_)=>(x(),B("div",{ref_key:"containerRef",ref:k,style:Ke([t])},[ee(A.$slots,"default")],4))}}),QG=ZG;const eX=rt(QG),tX=["absolute","fixed"],nX=["top-start","top-end","top","bottom-start","bottom-end","bottom","left-start","left-end","left","right-start","right-end","right"],Ym=Ce({placement:{type:G(String),values:nX,default:"bottom"},reference:{type:G(Object),default:null},strategy:{type:G(String),values:tX,default:"absolute"},offset:{type:Number,default:10},showArrow:Boolean,zIndex:{type:Number,default:2001}}),aX={close:()=>!0},oX=Ce({modelValue:Boolean,current:{type:Number,default:0},showArrow:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeIcon:{type:Kt},placement:Ym.placement,contentStyle:{type:G([Object])},mask:{type:G([Boolean,Object]),default:!0},gap:{type:G(Object),default:()=>({offset:6,radius:2})},zIndex:{type:Number},scrollIntoViewOptions:{type:G([Boolean,Object]),default:()=>({block:"center"})},type:{type:G(String)},appendTo:{type:au.to.type,default:"body"},closeOnPressEscape:{type:Boolean,default:!0},targetAreaClickable:{type:Boolean,default:!0}}),rX={[tt]:e=>Ht(e),"update:current":e=>He(e),close:e=>He(e),finish:()=>!0,change:e=>He(e)},sX=Ce({target:{type:G([String,Object,Function])},title:String,description:String,showClose:{type:Boolean,default:void 0},closeIcon:{type:Kt},showArrow:{type:Boolean,default:void 0},placement:Ym.placement,mask:{type:G([Boolean,Object]),default:void 0},contentStyle:{type:G([Object])},prevButtonProps:{type:G(Object)},nextButtonProps:{type:G(Object)},scrollIntoViewOptions:{type:G([Boolean,Object]),default:void 0},type:{type:G(String)}}),lX={close:()=>!0},iX=(e,t,n,a,o)=>{const r=M(null),s=()=>{let d;return Le(e.value)?d=document.querySelector(e.value):Ve(e.value)?d=e.value():d=e.value,d},l=()=>{const d=s();if(!d||!t.value){r.value=null;return}uX(d)||d.scrollIntoView(o.value);const{left:f,top:v,width:g,height:p}=d.getBoundingClientRect();r.value={left:f,top:v,width:g,height:p,radius:0}};ht(()=>{le([t,e],()=>{l()},{immediate:!0}),window.addEventListener("resize",l)}),Bt(()=>{window.removeEventListener("resize",l)});const u=d=>(ye(n.value.offset)?n.value.offset[d]:n.value.offset)??6,c=w(()=>{if(!r.value)return r.value;const d=u(0),f=u(1),v=n.value?.radius||2;return{left:r.value.left-d,top:r.value.top-f,width:r.value.width+d*2,height:r.value.height+f*2,radius:v}});return{mergedPosInfo:c,triggerTarget:w(()=>{const d=s();return!a.value||!d||!window.DOMRect?d||void 0:{getBoundingClientRect(){return window.DOMRect.fromRect({width:c.value?.width||0,height:c.value?.height||0,x:c.value?.left||0,y:c.value?.top||0})}}})}},ff=Symbol("ElTour");function uX(e){const t=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,{top:a,right:o,bottom:r,left:s}=e.getBoundingClientRect();return a>=0&&s>=0&&o<=t&&r<=n}const cX=(e,t,n,a,o,r,s,l)=>{const u=M(),c=M(),d=M({}),f={x:u,y:c,placement:a,strategy:o,middlewareData:d},v=w(()=>{const b=[u4(i(r)),d4(),c4(),dX()];return i(l)&&i(n)&&b.push(f4({element:i(n)})),b}),g=async()=>{if(!Mt)return;const b=i(e),k=i(t);if(!b||!k)return;const y=await p4(b,k,{placement:i(a),strategy:i(o),middleware:i(v)});Oi(f).forEach(S=>{f[S].value=y[S]})},p=w(()=>{if(!i(e))return{position:"fixed",top:"50%",left:"50%",transform:"translate3d(-50%, -50%, 0)",maxWidth:"100vw",zIndex:i(s)};const{overflow:b}=i(d);return{position:i(o),zIndex:i(s),top:i(c)!=null?`${i(c)}px`:"",left:i(u)!=null?`${i(u)}px`:"",maxWidth:b?.maxWidth?`${b?.maxWidth}px`:""}}),h=w(()=>{if(!i(l))return{};const{arrow:b}=i(d);return{left:b?.x!=null?`${b?.x}px`:"",top:b?.y!=null?`${b?.y}px`:""}});let m;return ht(()=>{const b=i(e),k=i(t);b&&k&&(m=l4(b,k,g)),wa(()=>{g()})}),Bt(()=>{m&&m()}),{update:g,contentStyle:p,arrowStyle:h}},dX=()=>({name:"overflow",async fn(e){const t=await i4(e);let n=0;return t.left>0&&(n=t.left),t.right>0&&(n=t.right),{data:{maxWidth:e.rects.floating.width-n}}}}),fX=Ce({zIndex:{type:Number,default:1001},visible:Boolean,fill:{type:String,default:"rgba(0,0,0,0.5)"},pos:{type:G(Object)},targetAreaClickable:{type:Boolean,default:!0}}),pX={style:{width:"100%",height:"100%"}},hX=["d"];var vX=re({name:"ElTourMask",inheritAttrs:!1,__name:"mask",props:fX,setup(e){const t=e,{ns:n}=_e(ff),a=w(()=>t.pos?.radius??2),o=w(()=>{const d=a.value,f=`a${d},${d} 0 0 1`;return{topRight:`${f} ${d},${d}`,bottomRight:`${f} ${-d},${d}`,bottomLeft:`${f} ${-d},${-d}`,topLeft:`${f} ${d},${-d}`}}),{width:r,height:s}=Rv(),l=w(()=>{const d=r.value,f=s.value,v=o.value,g=`M${d},0 L0,0 L0,${f} L${d},${f} L${d},0 Z`,p=a.value;return t.pos?`${g} M${t.pos.left+p},${t.pos.top} h${t.pos.width-p*2} ${v.topRight} v${t.pos.height-p*2} ${v.bottomRight} h${-t.pos.width+p*2} ${v.bottomLeft} v${-t.pos.height+p*2} ${v.topLeft} z`:g}),u=w(()=>({position:"fixed",left:0,right:0,top:0,bottom:0,zIndex:t.zIndex,pointerEvents:t.pos&&t.targetAreaClickable?"none":"auto"})),c=w(()=>({fill:t.fill,pointerEvents:"auto",cursor:"auto"}));return qd(Vt(t,"visible"),{ns:n}),(d,f)=>e.visible?(x(),B("div",dt({key:0,class:i(n).e("mask"),style:u.value},d.$attrs),[(x(),B("svg",pX,[H("path",{class:T(i(n).e("hollow")),style:Ke(c.value),d:l.value},null,14,hX)]))],16)):te("v-if",!0)}}),mX=vX;const gX=["data-side"];var bX=re({name:"ElTourContent",__name:"content",props:Ym,emits:aX,setup(e,{emit:t}){const n=e,a=t,o=M(n.placement),r=M(n.strategy),s=M(null),l=M(null);le(()=>n.placement,()=>{o.value=n.placement});const{contentStyle:u,arrowStyle:c}=cX(Vt(n,"reference"),s,l,o,r,Vt(n,"offset"),Vt(n,"zIndex"),Vt(n,"showArrow")),d=w(()=>o.value.split("-")[0]),{ns:f}=_e(ff),v=()=>{a("close")},g=p=>{p.detail.focusReason==="pointer"&&p.preventDefault()};return(p,h)=>(x(),B("div",{ref_key:"contentRef",ref:s,style:Ke(i(u)),class:T(i(f).e("content")),"data-side":d.value,tabindex:"-1"},[Y(i(Al),{loop:"",trapped:"","focus-start-el":"container","focus-trap-el":s.value||void 0,onReleaseRequested:v,onFocusoutPrevented:g},{default:J(()=>[ee(p.$slots,"default")]),_:3},8,["focus-trap-el"]),e.showArrow?(x(),B("span",{key:0,ref_key:"arrowRef",ref:l,style:Ke(i(c)),class:T(i(f).e("arrow"))},null,6)):te("v-if",!0)],14,gX))}}),yX=bX,wX=re({name:"ElTourSteps",props:{current:{type:Number,default:0}},emits:["update-total"],setup(e,{slots:t,emit:n}){let a=0;return()=>{const o=t.default?.(),r=[];let s=0;function l(u){ye(u)&&u.forEach(c=>{(c?.type||{})?.name==="ElTourStep"&&(r.push(c),s+=1)})}return o.length&&l(Ta(o[0]?.children)),a!==s&&(a=s,n("update-total",s)),r.length?r[e.current]:null}}}),SX=re({name:"ElTour",inheritAttrs:!1,__name:"tour",props:oX,emits:rX,setup(e,{emit:t}){const n=e,a=t,o=fe("tour"),r=M(0),s=M(),l=zS(n,"current",a,{passive:!0}),u=w(()=>s.value?.target),c=w(()=>[o.b(),b.value==="primary"?o.m("primary"):""]),d=w(()=>s.value?.placement||n.placement),f=w(()=>s.value?.contentStyle??n.contentStyle),v=w(()=>s.value?.mask??n.mask),g=w(()=>!!v.value&&n.modelValue),p=w(()=>Ht(v.value)?void 0:v.value),h=w(()=>!!u.value&&(s.value?.showArrow??n.showArrow)),m=w(()=>s.value?.scrollIntoViewOptions??n.scrollIntoViewOptions),b=w(()=>s.value?.type??n.type),{nextZIndex:k}=uu(),y=k(),S=w(()=>n.zIndex??y),{mergedPosInfo:C,triggerTarget:E}=iX(u,Vt(n,"modelValue"),Vt(n,"gap"),v,m);le(()=>n.modelValue,N=>{N||(l.value=0)});const $=()=>{n.closeOnPressEscape&&(a(tt,!1),a("close",l.value))},O=N=>{r.value=N},R=hn();return St(ff,{currentStep:s,current:l,total:r,showClose:Vt(n,"showClose"),closeIcon:Vt(n,"closeIcon"),mergedType:b,ns:o,slots:R,updateModelValue(N){a(tt,N)},onClose(){a("close",l.value)},onFinish(){a("finish")},onChange(){a(bt,l.value)}}),(N,A)=>(x(),B(Fe,null,[Y(i(_l),{to:e.appendTo},{default:J(()=>[H("div",dt({class:c.value},N.$attrs),[Y(mX,{visible:g.value,fill:p.value?.color,style:Ke(p.value?.style),pos:i(C),"z-index":S.value,"target-area-clickable":e.targetAreaClickable},null,8,["visible","fill","style","pos","z-index","target-area-clickable"]),e.modelValue?(x(),oe(yX,{key:i(l),reference:i(E),placement:d.value,"show-arrow":h.value,"z-index":S.value,style:Ke(f.value),onClose:$},{default:J(()=>[Y(i(wX),{current:i(l),onUpdateTotal:O},{default:J(()=>[ee(N.$slots,"default")]),_:3},8,["current"])]),_:3},8,["reference","placement","show-arrow","z-index","style"])):te("v-if",!0)],16)]),_:3},8,["to"]),te(" just for IDE "),te("v-if",!0)],64))}}),CX=SX;const kX=["aria-label"];var EX=re({name:"ElTourStep",__name:"step",props:sX,emits:lX,setup(e,{emit:t}){const n=e,a=t,{Close:o}=BC,{t:r}=Ct(),{currentStep:s,current:l,total:u,showClose:c,closeIcon:d,mergedType:f,ns:v,slots:g,updateModelValue:p,onClose:h,onFinish:m,onChange:b}=_e(ff);le(n,N=>{s.value=N},{immediate:!0});const k=w(()=>n.showClose??c.value),y=w(()=>n.closeIcon??d.value??o),S=N=>{if(N)return tu(N,["children","onClick"])},C=()=>{l.value-=1,n.prevButtonProps?.onClick&&n.prevButtonProps?.onClick(),b()},E=()=>{l.value>=u.value-1?$():l.value+=1,n.nextButtonProps?.onClick&&n.nextButtonProps.onClick(),b()},$=()=>{O(),m()},O=()=>{p(!1),h(),a("close")},R=N=>{if(!N.target?.isContentEditable)switch(jt(N)){case we.left:N.preventDefault(),l.value>0&&C();break;case we.right:N.preventDefault(),E();break}};return ht(()=>{window.addEventListener("keydown",R)}),Bt(()=>{window.removeEventListener("keydown",R)}),(N,A)=>(x(),B(Fe,null,[k.value?(x(),B("button",{key:0,"aria-label":i(r)("el.tour.close"),class:T(i(v).e("closebtn")),type:"button",onClick:O},[Y(i(De),{class:T(i(v).e("close"))},{default:J(()=>[(x(),oe(it(y.value)))]),_:1},8,["class"])],10,kX)):te("v-if",!0),H("header",{class:T([i(v).e("header"),{"show-close":i(c)}])},[ee(N.$slots,"header",{},()=>[H("span",{role:"heading",class:T(i(v).e("title"))},Se(e.title),3)])],2),H("div",{class:T(i(v).e("body"))},[ee(N.$slots,"default",{},()=>[H("span",null,Se(e.description),1)])],2),H("footer",{class:T(i(v).e("footer"))},[H("div",{class:T(i(v).b("indicators"))},[i(g).indicators?(x(),oe(it(i(g).indicators),{key:0,current:i(l),total:i(u)},null,8,["current","total"])):(x(!0),B(Fe,{key:1},yt(i(u),(_,V)=>(x(),B("span",{key:_,class:T([i(v).b("indicator"),i(v).is("active",V===i(l))])},null,2))),128))],2),H("div",{class:T(i(v).b("buttons"))},[i(l)>0?(x(),oe(i(In),dt({key:0,size:"small",type:i(f)},S(e.prevButtonProps),{onClick:C}),{default:J(()=>[wt(Se(e.prevButtonProps?.children??i(r)("el.tour.previous")),1)]),_:1},16,["type"])):te("v-if",!0),i(l)<=i(u)-1?(x(),oe(i(In),dt({key:1,size:"small",type:i(f)==="primary"?"default":"primary"},S(e.nextButtonProps),{onClick:E}),{default:J(()=>[wt(Se(e.nextButtonProps?.children??(i(l)===i(u)-1?i(r)("el.tour.finish"):i(r)("el.tour.next"))),1)]),_:1},16,["type"])):te("v-if",!0)],2)],2)],64))}}),JE=EX;const xX=rt(CX,{TourStep:JE}),TX=nn(JE),$X=Ce({container:{type:G([String,Object])},offset:{type:Number,default:0},bound:{type:Number,default:15},duration:{type:Number,default:300},marker:{type:Boolean,default:!0},type:{type:G(String),default:"default"},direction:{type:G(String),default:"vertical"},selectScrollTop:Boolean}),OX={change:e=>Le(e),click:(e,t)=>e instanceof MouseEvent&&(Le(t)||Tt(t))},ec=(e=>{if(!Mt||e==="")return null;if(Le(e))try{return document.querySelector(e)}catch{return null}return e});function NX(e){let t=0;const n=(...a)=>{t&&sr(t),t=Qa(()=>{e(...a),t=0})};return n.cancel=()=>{sr(t),t=0},n}const ZE=Symbol("anchor");var RX=re({name:"ElAnchor",__name:"anchor",props:$X,emits:OX,setup(e,{expose:t,emit:n}){const a=e,o=n,r=hn(),s=M(""),l=M({}),u=M(null),c=M(null),d=M(),f={};let v=!1,g=0;const p=fe("anchor"),h=w(()=>[p.b(),a.type==="underline"?p.m("underline"):"",p.m(a.direction)]),m=_=>{f[_.href]=_.el},b=_=>{delete f[_]},k=_=>{s.value!==_&&(s.value=_,o(bt,_))};let y=null,S="";const C=_=>{if(!d.value)return;const V=ec(_);if(!V)return;if(y){if(S===_)return;y()}S=_,v=!0;const z=Ib(V,d.value),U=hh(V,z),W=z.scrollHeight-z.clientHeight,P=Math.min(U-a.offset,W);y=u_(d.value,g,P,a.duration,()=>{setTimeout(()=>{v=!1,S=""},20)})},E=_=>{_&&(k(_),C(_))},$=(_,V)=>{o("click",_,V),E(V)},O=NX(()=>{d.value&&(g=Pb(d.value));const _=R();v||Tt(_)||k(_)}),R=()=>{if(!d.value)return;const _=Pb(d.value),V=[];for(const z of Object.keys(f)){const U=ec(z);if(!U)continue;const W=hh(U,Ib(U,d.value));V.push({top:W-a.offset-a.bound,href:z})}V.sort((z,U)=>z.top-U.top);for(let z=0;z _))return U.href}},N=()=>{const _=ec(a.container);!_||nu(_)?d.value=window:d.value=_};Ft(d,"scroll",O);const A=()=>{Ne(()=>{if(!u.value||!c.value||!s.value){l.value={};return}const _=f[s.value];if(!_){l.value={};return}const V=u.value.getBoundingClientRect(),z=c.value.getBoundingClientRect(),U=_.getBoundingClientRect();a.direction==="horizontal"?l.value={left:`${U.left-V.left}px`,width:`${U.width}px`,opacity:1}:l.value={top:`${U.top-V.top+(U.height-z.height)/2}px`,opacity:1}})};return le(s,A),le(()=>r.default?.(),A),ht(()=>{N();const _=decodeURIComponent(window.location.hash);ec(_)?E(_):O()}),le(()=>a.container,()=>{N()}),St(ZE,{ns:p,direction:a.direction,currentAnchor:s,addLink:m,removeLink:b,handleClick:$}),t({scrollTo:E}),(_,V)=>(x(),B("div",{ref_key:"anchorRef",ref:u,class:T(h.value)},[e.marker?(x(),B("div",{key:0,ref_key:"markerRef",ref:c,class:T(i(p).e("marker")),style:Ke(l.value)},null,6)):te("v-if",!0),H("div",{class:T(i(p).e("list"))},[ee(_.$slots,"default")],2)],2))}}),IX=RX;const PX=Ce({title:String,href:String}),MX=["href"];var _X=re({name:"ElAnchorLink",__name:"anchor-link",props:PX,setup(e){const t=e,n=M(null),{ns:a,direction:o,currentAnchor:r,addLink:s,removeLink:l,handleClick:u}=_e(ZE),c=w(()=>[a.e("link"),a.is("active",r.value===t.href)]),d=f=>{u(f,t.href)};return le(()=>t.href,(f,v)=>{Ne(()=>{v&&l(v),f&&s({href:f,el:n.value})})}),ht(()=>{const{href:f}=t;f&&s({href:f,el:n.value})}),Bt(()=>{const{href:f}=t;f&&l(f)}),(f,v)=>(x(),B("div",{class:T(i(a).e("item"))},[H("a",{ref_key:"linkRef",ref:n,class:T(c.value),href:e.href,onClick:d},[ee(f.$slots,"default",{},()=>[wt(Se(e.title),1)])],10,MX),f.$slots["sub-link"]&&i(o)==="vertical"?(x(),B("div",{key:0,class:T(i(a).e("list"))},[ee(f.$slots,"sub-link")],2)):te("v-if",!0)],2))}}),QE=_X;const AX=rt(IX,{AnchorLink:QE}),LX=nn(QE),ex={label:"label",value:"value",disabled:"disabled"},DX=Ce({direction:{type:G(String),default:"horizontal"},options:{type:G(Array),default:()=>[]},modelValue:{type:[String,Number,Boolean],default:void 0},props:{type:G(Object),default:()=>ex},block:Boolean,size:Tn,disabled:{type:Boolean,default:void 0},validateEvent:{type:Boolean,default:!0},id:String,name:String,...aa(["ariaLabel"])}),BX={[tt]:e=>Le(e)||He(e)||Ht(e),[bt]:e=>Le(e)||He(e)||Ht(e)},FX=["id","aria-label","aria-labelledby"],VX=["name","disabled","checked","onChange"];var zX=re({name:"ElSegmented",__name:"segmented",props:DX,emits:BX,setup(e,{emit:t}){const n=e,a=t,o=fe("segmented"),r=zn(),s=Cn(),l=ln(),{formItem:u}=Dn(),{inputId:c,isLabeledByFormItem:d}=Ia(n,{formItemContext:u}),f=M(null),v=UM(),g=At({isInit:!1,width:0,height:0,translateX:0,translateY:0,focusVisible:!1}),p=(_,V)=>{const z=b(V);a(tt,z),a(bt,z),_.target.checked=z===n.modelValue},h=w(()=>({...ex,...n.props})),m=_=>_,b=_=>at(_)?_[h.value.value]:_,k=_=>at(_)?_[h.value.label]:_,y=_=>!!(l.value||at(_)&&_[h.value.disabled]),S=_=>n.modelValue===b(_),C=_=>n.options.find(V=>b(V)===_),E=_=>[o.e("item"),o.is("selected",S(_)),o.is("disabled",y(_))],$=()=>{if(!f.value)return;const _=f.value.querySelector(".is-selected"),V=f.value.querySelector(".is-selected input");if(!_||!V){g.width=0,g.height=0,g.translateX=0,g.translateY=0,g.focusVisible=!1;return}g.isInit=!0,n.direction==="vertical"?(g.height=_.offsetHeight,g.translateY=_.offsetTop):(g.width=_.offsetWidth,g.translateX=_.offsetLeft);try{g.focusVisible=V.matches(":focus-visible")}catch{}},O=w(()=>[o.b(),o.m(s.value),o.is("block",n.block)]),R=w(()=>({width:n.direction==="vertical"?"100%":`${g.width}px`,height:n.direction==="vertical"?`${g.height}px`:"100%",transform:n.direction==="vertical"?`translateY(${g.translateY}px)`:`translateX(${g.translateX}px)`,display:g.isInit?"block":"none"})),N=w(()=>[o.e("item-selected"),o.is("disabled",y(C(n.modelValue))),o.is("focus-visible",g.focusVisible)]),A=w(()=>n.name||r.value);return Zt(f,$),le(v,$),le(()=>n.modelValue,()=>{$(),n.validateEvent&&u?.validate?.("change").catch(_=>pt(_))},{flush:"post"}),(_,V)=>e.options.length?(x(),B("div",{key:0,id:i(c),ref_key:"segmentedRef",ref:f,class:T(O.value),role:"radiogroup","aria-label":i(d)?void 0:e.ariaLabel||"segmented","aria-labelledby":i(d)?i(u).labelId:void 0},[H("div",{class:T([i(o).e("group"),i(o).m(e.direction)])},[H("div",{style:Ke(R.value),class:T(N.value)},null,6),(x(!0),B(Fe,null,yt(e.options,(z,U)=>(x(),B("label",{key:U,class:T(E(z))},[H("input",{class:T(i(o).e("item-input")),type:"radio",name:A.value,disabled:y(z),checked:S(z),onChange:W=>p(W,z)},null,42,VX),H("div",{class:T(i(o).e("item-label"))},[ee(_.$slots,"default",{item:m(z)},()=>[wt(Se(k(z)),1)])],2)],2))),128))],2)],10,FX)):te("v-if",!0)}}),HX=zX;const KX=rt(HX),WX=(e,t)=>{const n=e.toLowerCase();return(t.label||t.value||"").toLowerCase().includes(n)},jX=(e,t,n)=>{const{selectionEnd:a}=e;if(a===null)return;const o=e.value,r=Rn(t);let s=-1,l;for(let u=a-1;u>=0;--u){const c=o[u];if(c===n||c===` +`||c==="\r"){s=u;continue}if(r.includes(c)){const d=s===-1?a:s;l={pattern:o.slice(u+1,d),start:u+1,end:d,prefix:c,prefixIndex:u,splitIndex:s,selectionEnd:a};break}}return l},UX=(e,t={debug:!1,useSelectionEnd:!1})=>{const n=e.selectionStart!==null?e.selectionStart:0,a=e.selectionEnd!==null?e.selectionEnd:0,o=t.useSelectionEnd?a:n,r=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];if(t.debug){const v=document.querySelector("#input-textarea-caret-position-mirror-div");v?.parentNode&&v.parentNode.removeChild(v)}const s=document.createElement("div");s.id="input-textarea-caret-position-mirror-div",document.body.appendChild(s);const l=s.style,u=window.getComputedStyle(e),c=e.nodeName==="INPUT";l.whiteSpace=c?"nowrap":"pre-wrap",c||(l.wordWrap="break-word"),l.position="absolute",t.debug||(l.visibility="hidden"),r.forEach(v=>{if(c&&v==="lineHeight")if(u.boxSizing==="border-box"){const g=Number.parseInt(u.height),p=Number.parseInt(u.paddingTop)+Number.parseInt(u.paddingBottom)+Number.parseInt(u.borderTopWidth)+Number.parseInt(u.borderBottomWidth),h=p+Number.parseInt(u.lineHeight);g>h?l.lineHeight=`${g-p}px`:g===h?l.lineHeight=u.lineHeight:l.lineHeight="0"}else l.lineHeight=u.height;else l[v]=u[v]}),Ud()?e.scrollHeight>Number.parseInt(u.height)&&(l.overflowY="scroll"):l.overflow="hidden",s.textContent=e.value.slice(0,Math.max(0,o)),c&&s.textContent&&(s.textContent=s.textContent.replace(/\s/g," "));const d=document.createElement("span");d.textContent=e.value.slice(Math.max(0,o))||".",d.style.position="relative",d.style.left=`${-e.scrollLeft}px`,d.style.top=`${-e.scrollTop}px`,s.appendChild(d);const f={top:d.offsetTop+Number.parseInt(u.borderTopWidth),left:d.offsetLeft+Number.parseInt(u.borderLeftWidth),height:Number.parseInt(u.fontSize)*1.5};return t.debug?d.style.backgroundColor="#aaa":document.body.removeChild(s),f.left>=e.clientWidth&&(f.left=e.clientWidth),f},qX=Ce({...gu,options:{type:G(Array),default:()=>[]},prefix:{type:G([String,Array]),default:"@",validator:e=>Le(e)?e.length===1:e.every(t=>Le(t)&&t.length===1)},split:{type:String,default:" ",validator:e=>e.length===1},filterOption:{type:G([Boolean,Function]),default:()=>WX,validator:e=>e===!1?!0:Ve(e)},placement:{type:G(String),default:"bottom"},showArrow:Boolean,offset:{type:Number,default:0},whole:Boolean,checkIsWhole:{type:G(Function)},modelValue:String,loading:Boolean,popperClass:zt.popperClass,popperStyle:zt.popperStyle,popperOptions:{type:G(Object),default:()=>({})},props:{type:G(Object),default:()=>tx}}),YX={[tt]:e=>Le(e),"whole-remove":(e,t)=>Le(e)&&Le(t),input:e=>Le(e),search:(e,t)=>Le(e)&&Le(t),select:(e,t)=>at(e)&&Le(t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent},tx={value:"value",label:"label",disabled:"disabled"},GX=Ce({options:{type:G(Array),default:()=>[]},loading:Boolean,disabled:Boolean,contentId:String,ariaLabel:String}),XX={select:e=>Le(e.value)},JX=["id","aria-disabled","aria-selected","onMousemove","onClick"];var ZX=re({name:"ElMentionDropdown",__name:"mention-dropdown",props:GX,emits:XX,setup(e,{expose:t,emit:n}){const a=e,o=n,r=fe("mention"),{t:s}=Ct(),l=M(-1),u=M(),c=M(),d=M(),f=(S,C)=>[r.be("dropdown","item"),r.is("hovering",l.value===C),r.is("disabled",S.disabled||a.disabled)],v=S=>{S.disabled||a.disabled||o("select",S)},g=S=>{l.value=S},p=w(()=>a.disabled||a.options.every(S=>S.disabled)),h=w(()=>a.options[l.value]),m=()=>{!h.value||h.value.disabled||a.disabled||o("select",h.value)},b=S=>{const{options:C}=a;if(C.length===0||p.value)return;S==="next"?(l.value++,l.value===C.length&&(l.value=0)):S==="prev"&&(l.value--,l.value<0&&(l.value=C.length-1));const E=C[l.value];if(E.disabled){b(S);return}Ne(()=>k(E))},k=S=>{const{options:C}=a,E=C.findIndex(O=>O.value===S.value),$=c.value?.[E];if($){const O=d.value?.querySelector?.(`.${r.be("dropdown","wrap")}`);O&&Av(O,$)}u.value?.handleScroll()};return le(()=>a.options,()=>{p.value||a.options.length===0?l.value=-1:l.value=a.options.findIndex(S=>!S.disabled)},{immediate:!0}),t({hoveringIndex:l,navigateOptions:b,selectHoverOption:m,hoverOption:h}),(S,C)=>(x(),B("div",{ref_key:"dropdownRef",ref:d,class:T(i(r).b("dropdown"))},[S.$slots.header?(x(),B("div",{key:0,class:T(i(r).be("dropdown","header"))},[ee(S.$slots,"header")],2)):te("v-if",!0),ct(Y(i(no),{id:e.contentId,ref_key:"scrollbarRef",ref:u,tag:"ul","wrap-class":i(r).be("dropdown","wrap"),"view-class":i(r).be("dropdown","list"),role:"listbox","aria-label":e.ariaLabel,"aria-orientation":"vertical"},{default:J(()=>[(x(!0),B(Fe,null,yt(e.options,(E,$)=>(x(),B("li",{id:`${e.contentId}-${$}`,ref_for:!0,ref_key:"optionRefs",ref:c,key:$,class:T(f(E,$)),role:"option","aria-disabled":E.disabled||e.disabled||void 0,"aria-selected":l.value===$,onMousemove:O=>g($),onClick:Ge(O=>v(E),["stop"])},[ee(S.$slots,"label",{item:E,index:$},()=>[H("span",null,Se(E.label??E.value),1)])],42,JX))),128))]),_:3},8,["id","wrap-class","view-class","aria-label"]),[[Pt,e.options.length>0&&!e.loading]]),e.loading?(x(),B("div",{key:1,class:T(i(r).be("dropdown","loading"))},[ee(S.$slots,"loading",{},()=>[wt(Se(i(s)("el.mention.loading")),1)])],2)):te("v-if",!0),S.$slots.footer?(x(),B("div",{key:2,class:T(i(r).be("dropdown","footer"))},[ee(S.$slots,"footer")],2)):te("v-if",!0)],2))}}),QX=ZX,eJ=re({name:"ElMention",inheritAttrs:!1,__name:"mention",props:qX,emits:YX,setup(e,{expose:t,emit:n}){const a=e,o=n,r=w(()=>rr(a,Object.keys(gu))),s=fe("mention"),l=ln(),u=zn(),c=M(),d=M(),f=M(),v=M(!1),g=M(),p=M(),h=w(()=>a.showArrow?a.placement:`${a.placement}-start`),m=w(()=>a.showArrow?["bottom","top"]:["bottom-start","top-start"]),b=w(()=>({...tx,...a.props})),k=P=>{const I={label:P[b.value.label],value:P[b.value.value],disabled:P[b.value.disabled]};return{...P,...I}},y=w(()=>a.options.map(k)),S=w(()=>{const{filterOption:P}=a;return!p.value||!P?y.value:y.value.filter(I=>P(p.value.pattern,I))}),C=w(()=>v.value&&(!!S.value.length||a.loading)),E=w(()=>`${u.value}-${f.value?.hoveringIndex}`),$=P=>{o(tt,P),o(wn,P),z()},O=P=>{if(c.value?.isComposing)return;const I=jt(P);switch(I){case we.left:case we.right:z();break;case we.up:case we.down:if(!v.value)return;P.preventDefault(),f.value?.navigateOptions(I===we.up?"prev":"next");break;case we.enter:case we.numpadEnter:if(!v.value){a.type!=="textarea"&&z();return}P.preventDefault(),f.value?.hoverOption?f.value?.selectHoverOption():v.value=!1;break;case we.esc:if(!v.value)return;P.preventDefault(),v.value=!1;break;case we.backspace:if(a.whole&&p.value){const{splitIndex:L,selectionEnd:D,pattern:F,prefixIndex:q,prefix:j}=p.value,X=V();if(!X)return;const Q=X.value,he=y.value.find(ue=>ue.value===F);if((Ve(a.checkIsWhole)?a.checkIsWhole(F,j):he)&&L!==-1&&L+1===D){P.preventDefault();const ue=Q.slice(0,q)+Q.slice(L+1);o(tt,ue),o(wn,ue),o("whole-remove",F,j);const ge=q;Ne(()=>{X.selectionStart=ge,X.selectionEnd=ge,W()})}}}},{wrapperRef:R}=mr(c,{disabled:l,afterFocus(){z()},beforeBlur(P){return d.value?.isFocusInsideContent(P)},afterBlur(){v.value=!1}}),N=()=>{z()},A=P=>a.options.find(I=>P.value===I[b.value.value]),_=P=>{if(!p.value)return;const I=V();if(!I)return;const L=I.value,{split:D}=a,F=L.slice(p.value.end),q=F.startsWith(D),j=`${P.value}${q?"":D}`,X=L.slice(0,p.value.start)+j+F;o(tt,X),o(wn,X),o("select",A(P),p.value.prefix);const Q=p.value.start+j.length+(q?1:0);Ne(()=>{I.selectionStart=Q,I.selectionEnd=Q,I.focus(),W()})},V=()=>a.type==="textarea"?c.value?.textarea:c.value?.input,z=()=>{setTimeout(()=>{U(),W(),Ne(()=>d.value?.updatePopper())},0)},U=()=>{const P=V();if(!P)return;const I=UX(P),L=P.getBoundingClientRect(),D=R.value.getBoundingClientRect();g.value={position:"absolute",width:0,height:`${I.height}px`,left:`${I.left+L.left-D.left}px`,top:`${I.top+L.top-D.top}px`}},W=()=>{const P=V();if(document.activeElement!==P){v.value=!1;return}const{prefix:I,split:L}=a;if(p.value=jX(P,I,L),p.value&&p.value.splitIndex===-1){v.value=!0,o("search",p.value.pattern,p.value.prefix);return}v.value=!1};return t({input:c,tooltip:d,dropdownVisible:C}),(P,I)=>(x(),B("div",{ref_key:"wrapperRef",ref:R,class:T(i(s).b())},[Y(i(ea),dt(dt(r.value,P.$attrs),{ref_key:"elInputRef",ref:c,"model-value":e.modelValue,disabled:i(l),role:C.value?"combobox":void 0,"aria-activedescendant":C.value?E.value||"":void 0,"aria-controls":C.value?i(u):void 0,"aria-expanded":C.value||void 0,"aria-label":e.ariaLabel,"aria-autocomplete":C.value?"none":void 0,"aria-haspopup":C.value?"listbox":void 0,onInput:$,onKeydown:O,onMousedown:N}),ua({_:2},[yt(P.$slots,(L,D)=>({name:D,fn:J(F=>[ee(P.$slots,D,Jo(Zo(F)))])}))]),1040,["model-value","disabled","role","aria-activedescendant","aria-controls","aria-expanded","aria-label","aria-autocomplete","aria-haspopup"]),Y(i(Ln),{ref_key:"tooltipRef",ref:d,visible:C.value,"popper-class":[i(s).e("popper"),e.popperClass],"popper-style":e.popperStyle,"popper-options":e.popperOptions,placement:h.value,"fallback-placements":m.value,effect:"light",pure:"",offset:e.offset,"show-arrow":e.showArrow},{default:J(()=>[H("div",{style:Ke(g.value)},null,4)]),content:J(()=>[Y(QX,{ref_key:"dropdownRef",ref:f,options:S.value,disabled:i(l),loading:e.loading,"content-id":i(u),"aria-label":e.ariaLabel,onSelect:_,onClick:I[0]||(I[0]=Ge(L=>c.value?.focus(),["stop"]))},ua({_:2},[yt(P.$slots,(L,D)=>({name:D,fn:J(F=>[ee(P.$slots,D,Jo(Zo(F)))])}))]),1032,["options","disabled","loading","content-id","aria-label"])]),_:3},8,["visible","popper-class","popper-style","popper-options","placement","fallback-placements","offset","show-arrow"])],2))}}),tJ=eJ;const nJ=rt(tJ),aJ=Ce({layout:{type:String,default:"horizontal",values:["horizontal","vertical"]},lazy:Boolean}),oJ={resizeStart:(e,t)=>!0,resize:(e,t)=>!0,resizeEnd:(e,t)=>!0,collapse:(e,t,n)=>!0},rJ=Ce({min:{type:[String,Number]},max:{type:[String,Number]},size:{type:[String,Number]},resizable:{type:Boolean,default:!0},collapsible:Boolean}),sJ={"update:size":e=>typeof e=="number"||typeof e=="string"};function lJ(e){const t=M(),{width:n,height:a}=Dp(t);return{containerEl:t,containerSize:w(()=>e.value==="horizontal"?n.value:a.value)}}function Gm(e){return Number(e.slice(0,-1))/100}function Xm(e){return Number(e.slice(0,-2))}function Jm(e){return Le(e)&&e.endsWith("%")}function Zm(e){return Le(e)&&e.endsWith("px")}function iJ(e,t){const n=w(()=>e.value.map(s=>s.size)),a=w(()=>e.value.length),o=M([]);le([n,a,t],()=>{let s=[],l=0;for(let c=0;c c+(d||0),0);if(u>1||!l){const c=1/u;s=s.map(d=>d===void 0?0:d*c)}else{const c=(1-u)/l;s=s.map(d=>d===void 0?c:d)}o.value=s});const r=s=>s*t.value;return{percentSizes:o,pxSizes:w(()=>o.value.map(r))}}function uJ(e,t,n,a){const o=m=>m*t.value||0;function r(m,b){return Jm(m)?o(Gm(m)):Zm(m)?Xm(m):m??b}const s=M(0),l=M(null);let u=[],c=Dt;const d=w(()=>e.value.map(m=>[m.min,m.max]));le(a,()=>{if(s.value){const m=new MouseEvent("mouseup",{bubbles:!0});window.dispatchEvent(m)}});const f=m=>{s.value=0,l.value={index:m,confirmed:!1},u=n.value},v=(m,b)=>{let k=null;if((!l.value||!l.value.confirmed)&&b!==0){if(b>0)k=m,l.value={index:m,confirmed:!0};else for(let A=m;A>=0;A-=1)if(u[A]>0){k=A,l.value={index:A,confirmed:!0};break}}const y=k??l.value?.index??m,S=[...u],C=y+1,E=r(d.value[y][0],0),$=r(d.value[C][0],0),O=r(d.value[y][1],t.value||0),R=r(d.value[C][1],t.value||0);let N=b;S[y]+N O&&(N=O-S[y]),S[C]-N>R&&(N=S[C]-R),S[y]+=N,S[C]-=N,s.value=N,c=()=>{e.value.forEach((A,_)=>{A.size=S[_]}),c=Dt},a.value||c()},g=()=>{a.value&&c(),s.value=0,l.value=null,u=[]},p=[];return{lazyOffset:s,onMoveStart:f,onMoving:v,onMoveEnd:g,movingIndex:l,onCollapse:(m,b)=>{p.length||p.push(...n.value);const k=n.value,y=b==="start"?m:m+1,S=b==="start"?m+1:m,C=k[y],E=k[S];if(C!==0&&E!==0)k[y]=0,k[S]+=C,p[m]=C;else{const $=C+E,O=p[m],R=$-O;k[S]=O,k[y]=R}e.value.forEach(($,O)=>{$.size=k[O]})}}}const nx=Symbol("splitterRootContextKey");var cJ=re({name:"ElSplitter",__name:"splitter",props:aJ,emits:oJ,setup(e,{emit:t}){const n=fe("splitter"),a=t,o=e,r=Vt(o,"layout"),s=Vt(o,"lazy"),{containerEl:l,containerSize:u}=lJ(r),{removeChild:c,children:d,addChild:f,ChildrenSorter:v}=Qd(ft(),"ElSplitterPanel");le(d,()=>{m.value=null,d.value.forEach((N,A)=>{N.setIndex(A)})});const{percentSizes:g,pxSizes:p}=iJ(d,u),{lazyOffset:h,movingIndex:m,onMoveStart:b,onMoving:k,onMoveEnd:y,onCollapse:S}=uJ(d,u,p,s),C=w(()=>({[n.cssVarBlockName("bar-offset")]:s.value?`${h.value}px`:void 0}));return St(nx,At({panels:d,percentSizes:g,pxSizes:p,layout:r,lazy:s,movingIndex:m,containerSize:u,onMoveStart:N=>{b(N),a("resizeStart",N,p.value)},onMoving:(N,A)=>{k(N,A),s.value||a("resize",N,p.value)},onMoveEnd:async N=>{y(),await Ne(),a("resizeEnd",N,p.value)},onCollapse:(N,A)=>{S(N,A),a("collapse",N,A,p.value)},registerPanel:f,unregisterPanel:c})),(N,A)=>(x(),B("div",{ref_key:"containerEl",ref:l,class:T([i(n).b(),i(n).e(r.value)]),style:Ke(C.value)},[ee(N.$slots,"default"),Y(i(v)),te(" Prevent iframe touch events from breaking "),i(m)?(x(),B("div",{key:0,class:T([i(n).e("mask"),i(n).e(`mask-${r.value}`)])},null,2)):te("v-if",!0)],6))}}),dJ=cJ;function fJ(e){return e&&at(e)?e:{start:!!e,end:!!e}}function Y0(e,t,n,a){return!!(e?.collapsible.end&&t>0||n?.collapsible.start&&a===0&&t>0)}var pJ=re({name:"ElSplitterBar",__name:"split-bar",props:{index:{type:Number,required:!0},layout:{type:String,values:["horizontal","vertical"],default:"horizontal"},resizable:{type:Boolean,default:!0},lazy:Boolean,startCollapsible:Boolean,endCollapsible:Boolean},emits:["moveStart","moving","moveEnd","collapse"],setup(e,{emit:t}){const n=fe("splitter-bar"),a=e,o=t,r=w(()=>a.layout==="horizontal"),s=w(()=>r.value?{width:0}:{height:0}),l=w(()=>({width:r.value?"16px":"100%",height:r.value?"100%":"16px",cursor:a.resizable?r.value?"ew-resize":"ns-resize":"auto",touchAction:"none"})),u=w(()=>{const k=n.e("dragger");return{[`${k}-horizontal`]:r.value,[`${k}-vertical`]:!r.value,[`${k}-active`]:!!c.value}}),c=M(null),d=k=>{a.resizable&&(c.value=[k.pageX,k.pageY],o("moveStart",a.index),window.addEventListener("mouseup",p),window.addEventListener("mousemove",v))},f=k=>{if(a.resizable&&k.touches.length===1){k.preventDefault();const y=k.touches[0];c.value=[y.pageX,y.pageY],o("moveStart",a.index),window.addEventListener("touchend",h),window.addEventListener("touchmove",g)}},v=k=>{const{pageX:y,pageY:S}=k,C=y-c.value[0],E=S-c.value[1],$=r.value?C:E;o("moving",a.index,$)},g=k=>{if(k.touches.length===1){k.preventDefault();const y=k.touches[0],S=y.pageX-c.value[0],C=y.pageY-c.value[1],E=r.value?S:C;o("moving",a.index,E)}},p=()=>{c.value=null,window.removeEventListener("mouseup",p),window.removeEventListener("mousemove",v),o("moveEnd",a.index)},h=()=>{c.value=null,window.removeEventListener("touchend",h),window.removeEventListener("touchmove",g),o("moveEnd",a.index)},m=w(()=>r.value?ir:ef),b=w(()=>r.value?na:Bo);return(k,y)=>(x(),B("div",{class:T([i(n).b()]),style:Ke(s.value)},[e.startCollapsible?(x(),B("div",{key:0,class:T([i(n).e("collapse-icon"),i(n).e(`${e.layout}-collapse-icon-start`)]),onClick:y[0]||(y[0]=S=>o("collapse",e.index,"start"))},[ee(k.$slots,"start-collapsible",{},()=>[(x(),oe(it(m.value),{style:{width:"12px",height:"12px"}}))])],2)):te("v-if",!0),H("div",{class:T([i(n).e("dragger"),u.value,i(n).is("disabled",!e.resizable),i(n).is("lazy",e.resizable&&e.lazy)]),style:Ke(l.value),onMousedown:d,onTouchstart:f},null,38),e.endCollapsible?(x(),B("div",{key:1,class:T([i(n).e("collapse-icon"),i(n).e(`${e.layout}-collapse-icon-end`)]),onClick:y[1]||(y[1]=S=>o("collapse",e.index,"end"))},[ee(k.$slots,"end-collapsible",{},()=>[(x(),oe(it(b.value),{style:{width:"12px",height:"12px"}}))])],2)):te("v-if",!0)],6))}}),hJ=pJ;const G0="ElSplitterPanel";var vJ=re({name:G0,__name:"split-panel",props:rJ,emits:sJ,setup(e,{expose:t,emit:n}){const a=fe("splitter-panel"),o=e,r=n,s=_e(nx);s||tn(G0,"usage: ");const{panels:l,layout:u,lazy:c,containerSize:d,pxSizes:f}=Mn(s),{registerPanel:v,unregisterPanel:g,onCollapse:p,onMoveEnd:h,onMoveStart:m,onMoving:b}=s,k=M(),y=ft(),S=y.uid,C=M(0),E=w(()=>l.value[C.value]),$=I=>{C.value=I},O=w(()=>E.value?f.value[C.value]??0:0),R=w(()=>E.value?f.value[C.value+1]??0:0),N=w(()=>E.value?l.value[C.value+1]:null),A=w(()=>N.value?o.resizable&&N.value?.resizable&&(O.value!==0||!o.min)&&(R.value!==0||!N.value.min):!1),_=w(()=>E.value?C.value!==l.value.length-1:!1),V=w(()=>Y0(E.value,O.value,N.value,R.value)),z=w(()=>Y0(N.value,R.value,E.value,O.value));function U(I){return Jm(I)?Gm(I)*d.value||0:Zm(I)?Xm(I):I??0}let W=!1;le(()=>o.size,()=>{if(!W&&E.value){if(!d.value){E.value.size=o.size;return}const I=U(o.size),L=U(o.max),D=U(o.min),F=Math.min(Math.max(I,D||0),L||I);F!==I&&r("update:size",F),E.value.size=F}}),le(()=>E.value?.size,I=>{I!==o.size&&(W=!0,r("update:size",I),Ne(()=>W=!1))}),le(()=>o.resizable,I=>{E.value&&(E.value.resizable=I)});const P=At({uid:S,getVnode:()=>y.vnode,setIndex:$,...o,collapsible:w(()=>fJ(o.collapsible))});return v(P),Bt(()=>g(P)),t({splitterPanelRef:k}),(I,L)=>(x(),B(Fe,null,[H("div",dt({ref_key:"panelEl",ref:k,class:[i(a).b()],style:{flexBasis:`${O.value}px`}},I.$attrs),[ee(I.$slots,"default")],16),_.value?(x(),oe(hJ,{key:0,index:C.value,layout:i(u),lazy:i(c),resizable:A.value,"start-collapsible":V.value,"end-collapsible":z.value,onMoveStart:i(m),onMoving:i(b),onMoveEnd:i(h),onCollapse:i(p)},{"start-collapsible":J(()=>[ee(I.$slots,"start-collapsible")]),"end-collapsible":J(()=>[ee(I.$slots,"end-collapsible")]),_:3},8,["index","layout","lazy","resizable","start-collapsible","end-collapsible","onMoveStart","onMoving","onMoveEnd","onCollapse"])):te("v-if",!0)],64))}}),ax=vJ;const mJ=rt(dJ,{SplitPanel:ax}),gJ=nn(ax),Ea="ElInfiniteScroll",bJ=50,yJ=200,wJ=0,SJ={delay:{type:Number,default:yJ},distance:{type:Number,default:wJ},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},Qm=(e,t)=>Object.entries(SJ).reduce((n,[a,o])=>{const{type:r,default:s}=o,l=e.getAttribute(`infinite-scroll-${a}`);let u=t[l]??l??s;return u=u==="false"?!1:u,u=r(u),n[a]=Number.isNaN(u)?s:u,n},{}),ox=e=>{const{observer:t}=e[Ea];t&&(t.disconnect(),delete e[Ea].observer)},CJ=(e,t)=>{const{container:n,containerEl:a,instance:o,observer:r,lastScrollTop:s}=e[Ea],{disabled:l,distance:u}=Qm(e,o),{clientHeight:c,scrollHeight:d,scrollTop:f}=a,v=f-s;if(e[Ea].lastScrollTop=f,r||l||v<0)return;let g=!1;if(n===e)g=d-(c+f)<=u;else{const{clientTop:p,scrollHeight:h}=e,m=hh(e,a);g=f+c>=m+p+h-u}g&&t.call(o)};function pp(e,t){const{containerEl:n,instance:a}=e[Ea],{disabled:o}=Qm(e,a);o||n.clientHeight===0||(n.scrollHeight<=n.clientHeight?t.call(a):ox(e))}const kJ={async mounted(e,t){const{instance:n,value:a}=t;xo({scope:Ea,from:"the directive v-infinite-scroll",replacement:"the el-scrollbar infinite scroll",version:"3.0.0",ref:"https://element-plus.org/en-US/component/scrollbar#infinite-scroll"},!0),Ve(a)||tn(Ea,"'v-infinite-scroll' binding value must be a function"),await Ne();const{delay:o,immediate:r}=Qm(e,n),s=_v(e,!0),l=s===window?document.documentElement:s,u=Nr(CJ.bind(null,e,a),o);if(s){if(e[Ea]={instance:n,container:s,containerEl:l,delay:o,cb:a,onScroll:u,lastScrollTop:l.scrollTop},r){const c=new MutationObserver(Nr(pp.bind(null,e,a),bJ));e[Ea].observer=c,c.observe(e,{childList:!0,subtree:!0}),pp(e,a)}s.addEventListener("scroll",u)}},unmounted(e){if(!e[Ea])return;const{container:t,onScroll:n}=e[Ea];t?.removeEventListener("scroll",n),ox(e)},async updated(e){if(!e[Ea])await Ne();else{const{containerEl:t,cb:n,observer:a}=e[Ea];t.clientHeight&&a&&pp(e,n)}}},Dh=kJ;Dh.install=e=>{e.directive("InfiniteScroll",Dh)};const EJ=Dh;function xJ(e,t){let n;const a=M(!1),o=At({...e,originalPosition:"",originalOverflow:"",visible:!1});function r(v){o.text=v}function s(){const v=o.parent,g=f.ns;if(!v.vLoadingAddClassList){let p=v.getAttribute("loading-number");p=Number.parseInt(p)-1,p?v.setAttribute("loading-number",p.toString()):(ta(v,g.bm("parent","relative")),v.removeAttribute("loading-number")),ta(v,g.bm("parent","hidden"))}l(),d.unmount()}function l(){f.$el?.parentNode?.removeChild(f.$el)}function u(){e.beforeClose&&!e.beforeClose()||(a.value=!0,clearTimeout(n),n=setTimeout(c,400),o.visible=!1,e.closed?.())}function c(){if(!a.value)return;const v=o.parent;a.value=!1,v.vLoadingAddClassList=void 0,s()}const d=eO(re({name:"ElLoading",setup(v,{expose:g}){const{ns:p,zIndex:h}=of("loading");return g({ns:p,zIndex:h}),()=>{const m=o.spinner||o.svg,b=qe("svg",{class:"circular",viewBox:o.svgViewBox?o.svgViewBox:"0 0 50 50",...m?{innerHTML:m}:{}},[qe("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),k=o.text?qe("p",{class:p.b("text")},[o.text]):void 0;return qe(Vn,{name:p.b("fade"),onAfterLeave:c},{default:J(()=>[ct(Y("div",{style:{backgroundColor:o.background||""},class:[p.b("mask"),o.customClass,p.is("fullscreen",o.fullscreen)]},[qe("div",{class:p.b("spinner")},[b,k])]),[[Pt,o.visible]])])})}}}));Object.assign(d._context,t??{});const f=d.mount(document.createElement("div"));return{...Mn(o),setText:r,removeElLoadingChild:l,close:u,handleAfterLeave:c,vm:f,get $el(){return f.$el}}}let tc;const sl=function(e={},t){if(!Mt)return;const n=TJ(e);if(n.fullscreen&&tc)return tc;const a=xJ({...n,closed:()=>{n.closed?.(),n.fullscreen&&(tc=void 0)}},t??sl._context);$J(n,n.parent,a),X0(n,n.parent,a),n.parent.vLoadingAddClassList=()=>X0(n,n.parent,a);let o=n.parent.getAttribute("loading-number");return o?o=`${Number.parseInt(o)+1}`:o="1",n.parent.setAttribute("loading-number",o),n.parent.appendChild(a.$el),Ne(()=>a.visible.value=n.visible),n.fullscreen&&(tc=a),a},TJ=e=>{let t;return Le(e.target)?t=document.querySelector(e.target)??document.body:t=e.target||document.body,{parent:t===document.body||e.body?document.body:t,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:t===document.body&&(e.fullscreen??!0),lock:e.lock??!1,customClass:e.customClass||"",visible:e.visible??!0,beforeClose:e.beforeClose,closed:e.closed,target:t}},$J=async(e,t,n)=>{const{nextZIndex:a}=n.vm.zIndex||n.vm._.exposed.zIndex,o={};if(e.fullscreen)n.originalPosition.value=Yo(document.body,"position"),n.originalOverflow.value=Yo(document.body,"overflow"),o.zIndex=a();else if(e.parent===document.body){n.originalPosition.value=Yo(document.body,"position"),await Ne();for(const r of["top","left"]){const s=r==="top"?"scrollTop":"scrollLeft";o[r]=`${e.target.getBoundingClientRect()[r]+document.body[s]+document.documentElement[s]-Number.parseInt(Yo(document.body,`margin-${r}`),10)}px`}for(const r of["height","width"])o[r]=`${e.target.getBoundingClientRect()[r]}px`}else n.originalPosition.value=Yo(t,"position");for(const[r,s]of Object.entries(o))n.$el.style[r]=s},X0=(e,t,n)=>{const a=n.vm.ns||n.vm._.exposed.ns;["absolute","fixed","sticky"].includes(n.originalPosition.value)?ta(t,a.bm("parent","relative")):La(t,a.bm("parent","relative")),e.fullscreen&&e.lock?La(t,a.bm("parent","hidden")):ta(t,a.bm("parent","hidden"))};sl._context=null;const Ql=Symbol("ElLoading"),Jr=e=>`element-loading-${cr(e)}`,J0=(e,t)=>{const n=t.instance,a=c=>at(t.value)?t.value[c]:void 0,o=c=>M(Le(c)&&n?.[c]||c),r=c=>o(a(c)||e.getAttribute(Jr(c))),s=a("fullscreen")??t.modifiers.fullscreen,l={text:r("text"),svg:r("svg"),svgViewBox:r("svgViewBox"),spinner:r("spinner"),background:r("background"),customClass:r("customClass"),fullscreen:s,target:a("target")??(s?void 0:e),body:a("body")??t.modifiers.body,lock:a("lock")??t.modifiers.lock},u=sl(l);u._context=vi._context,e[Ql]={options:l,instance:u}},OJ=(e,t)=>{for(const n of Object.keys(e))Jt(e[n])&&(e[n].value=t[n])},vi={mounted(e,t){t.value&&J0(e,t)},updated(e,t){const n=e[Ql];if(!t.value){n?.instance.close(),e[Ql]=null;return}n?OJ(n.options,at(t.value)?t.value:{text:e.getAttribute(Jr("text")),svg:e.getAttribute(Jr("svg")),svgViewBox:e.getAttribute(Jr("svgViewBox")),spinner:e.getAttribute(Jr("spinner")),background:e.getAttribute(Jr("background")),customClass:e.getAttribute(Jr("customClass"))}):J0(e,t)},unmounted(e){e[Ql]?.instance.close(),e[Ql]=null}};vi._context=null;const NJ={install(e){sl._context=e._context,vi._context=e._context,e.directive("loading",vi),e.config.globalProperties.$loading=sl},directive:vi,service:sl},rx=["primary","success","info","warning","error"],sx=["top","top-left","top-right","bottom","bottom-left","bottom-right"],ll="top",Un=rn({customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:Mt?document.body:void 0}),RJ=Ce({customClass:{type:String,default:Un.customClass},dangerouslyUseHTMLString:{type:Boolean,default:Un.dangerouslyUseHTMLString},duration:{type:Number,default:Un.duration},icon:{type:Kt,default:Un.icon},id:{type:String,default:Un.id},message:{type:G([String,Object,Function]),default:Un.message},onClose:{type:G(Function),default:Un.onClose},showClose:{type:Boolean,default:Un.showClose},type:{type:String,values:rx,default:Un.type},plain:{type:Boolean,default:Un.plain},offset:{type:Number,default:Un.offset},placement:{type:String,values:sx,default:Un.placement},zIndex:{type:Number,default:Un.zIndex},grouping:{type:Boolean,default:Un.grouping},repeatNum:{type:Number,default:Un.repeatNum}}),IJ={destroy:()=>!0},Ga=Zh({}),PJ=e=>(Ga[e]||(Ga[e]=Zh([])),Ga[e]),MJ=(e,t)=>{const n=Ga[t]||[],a=n.findIndex(s=>s.id===e),o=n[a];let r;return a>0&&(r=n[a-1]),{current:o,prev:r}},_J=(e,t)=>{const{prev:n}=MJ(e,t);return n?n.vm.exposed.bottom.value:0},AJ=(e,t,n)=>(Ga[n]||[]).findIndex(a=>a.id===e)>0?16:t,LJ=["id"],DJ=["innerHTML"];var BJ=re({name:"ElMessage",__name:"message",props:RJ,emits:IJ,setup(e,{expose:t,emit:n}){const{Close:a}=Qv,o=e,r=n,s=M(!1),{ns:l,zIndex:u}=of("message"),{currentZIndex:c,nextZIndex:d}=u,f=M(),v=M(!1),g=M(0);let p;const h=w(()=>o.type?o.type==="error"?"danger":o.type:"info"),m=w(()=>{const V=o.type;return{[l.bm("icon",V)]:V&&Vr[V]}}),b=w(()=>o.icon||Vr[o.type]||""),k=w(()=>o.placement||ll),y=w(()=>_J(o.id,k.value)),S=w(()=>AJ(o.id,o.offset,k.value)+y.value),C=w(()=>g.value+S.value),E=w(()=>k.value.includes("left")?l.is("left"):k.value.includes("right")?l.is("right"):l.is("center")),$=w(()=>k.value.startsWith("top")?"top":"bottom"),O=w(()=>({[$.value]:`${S.value}px`,zIndex:c.value}));function R(){o.duration!==0&&({stop:p}=pl(()=>{A()},o.duration))}function N(){p?.()}function A(){v.value=!1,Ne(()=>{s.value||(o.onClose?.(),r("destroy"))})}function _(V){jt(V)===we.esc&&A()}return ht(()=>{R(),d(),v.value=!0}),le(()=>o.repeatNum,()=>{N(),R()}),Ft(document,"keydown",_),Zt(f,()=>{g.value=f.value.getBoundingClientRect().height}),t({visible:v,bottom:C,close:A}),(V,z)=>(x(),oe(Vn,{name:i(l).b("fade"),onBeforeEnter:z[0]||(z[0]=U=>s.value=!0),onBeforeLeave:e.onClose,onAfterLeave:z[1]||(z[1]=U=>V.$emit("destroy")),persisted:""},{default:J(()=>[ct(H("div",{id:e.id,ref_key:"messageRef",ref:f,class:T([i(l).b(),{[i(l).m(e.type)]:e.type},i(l).is("closable",e.showClose),i(l).is("plain",e.plain),i(l).is("bottom",$.value==="bottom"),E.value,e.customClass]),style:Ke(O.value),role:"alert",onMouseenter:N,onMouseleave:R},[e.repeatNum>1?(x(),oe(i(ak),{key:0,value:e.repeatNum,type:h.value,class:T(i(l).e("badge"))},null,8,["value","type","class"])):te("v-if",!0),b.value?(x(),oe(i(De),{key:1,class:T([i(l).e("icon"),m.value])},{default:J(()=>[(x(),oe(it(b.value)))]),_:1},8,["class"])):te("v-if",!0),ee(V.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(x(),B(Fe,{key:1},[te(" Caution here, message could've been compromised, never use user's input as message "),H("p",{class:T(i(l).e("content")),innerHTML:e.message},null,10,DJ)],2112)):(x(),B("p",{key:0,class:T(i(l).e("content"))},Se(e.message),3))]),e.showClose?(x(),oe(i(De),{key:2,class:T(i(l).e("closeBtn")),onClick:Ge(A,["stop"])},{default:J(()=>[Y(i(a))]),_:1},8,["class"])):te("v-if",!0)],46,LJ),[[Pt,v.value]])]),_:3},8,["name","onBeforeLeave"]))}}),FJ=BJ;let VJ=1;const zJ=e=>{if(!e.appendTo)e.appendTo=document.body;else if(Le(e.appendTo)){let t=document.querySelector(e.appendTo);ha(t)||(pt("ElMessage","the appendTo option is not an HTMLElement. Falling back to document.body."),t=document.body),e.appendTo=t}},HJ=e=>{!e.placement&&Le(Gn.placement)&&Gn.placement&&(e.placement=Gn.placement),e.placement||(e.placement=ll),sx.includes(e.placement)||(pt("ElMessage",`Invalid placement: ${e.placement}. Falling back to '${ll}'.`),e.placement=ll)},lx=e=>{const t=!e||Le(e)||Ut(e)||Ve(e)?{message:e}:e,n={...Un,...t};return zJ(n),HJ(n),Ht(Gn.grouping)&&!n.grouping&&(n.grouping=Gn.grouping),He(Gn.duration)&&n.duration===3e3&&(n.duration=Gn.duration),He(Gn.offset)&&n.offset===16&&(n.offset=Gn.offset),Ht(Gn.showClose)&&!n.showClose&&(n.showClose=Gn.showClose),Ht(Gn.plain)&&!n.plain&&(n.plain=Gn.plain),n},KJ=e=>{const t=Ga[e.props.placement||ll],n=t.indexOf(e);if(n===-1)return;t.splice(n,1);const{handler:a}=e;a.close()},WJ=({appendTo:e,...t},n)=>{const a=`message_${VJ++}`,o=t.onClose,r=document.createElement("div"),s={...t,id:a,onClose:()=>{o?.(),KJ(c)},onDestroy:()=>{Lr(null,r)}},l=Y(FJ,s,Ve(s.message)||Ut(s.message)?{default:Ve(s.message)?s.message:()=>s.message}:null);l.appContext=n||Es._context,Lr(l,r),e.appendChild(r.firstElementChild);const u=l.component,c={id:a,vnode:l,vm:u,handler:{close:()=>{u.exposed.close()}},props:l.component.props};return c},Es=(e={},t)=>{if(!Mt)return{close:()=>{}};const n=lx(e),a=PJ(n.placement||ll);if(n.grouping&&a.length){const r=a.find(({vnode:s})=>s.props?.message===n.message);if(r)return r.props.repeatNum+=1,r.props.type=n.type,r.handler}if(He(Gn.max)&&a.length>=Gn.max)return{close:()=>{}};const o=WJ(n,t);return a.push(o),o.handler};rx.forEach(e=>{Es[e]=(t={},n)=>Es({...lx(t),type:e},n)});function jJ(e){for(const t in Ga)if(Rt(Ga,t)){const n=[...Ga[t]];for(const a of n)(!e||e===a.props.type)&&a.handler.close()}}function UJ(e){Ga[e]&&[...Ga[e]].forEach(t=>t.handler.close())}Es.closeAll=jJ;Es.closeAllByPlacement=UJ;Es._context=null;const qJ=PC(Es,"$message");var YJ=re({name:"ElMessageBox",directives:{TrapFocus:p8},components:{ElButton:In,ElFocusTrap:Al,ElInput:ea,ElOverlay:Cm,ElIcon:De,...Qv},inheritAttrs:!1,props:{buttonSize:{type:String,validator:iE},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:Boolean,container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:n,zIndex:a,ns:o,size:r}=of("message-box",w(()=>e.buttonSize)),{t:s}=n,{nextZIndex:l}=a,u=M(!1),c=At({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",cancelButtonType:"",confirmButtonType:"primary",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",closeIcon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:"",inputValidator:void 0,inputErrorMessage:"",message:"",modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonLoadingIcon:Eo(_o),cancelButtonLoadingIcon:Eo(_o),confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:l()}),d=w(()=>{const U=c.type;return{[o.bm("icon",U)]:U&&Vr[U]}}),f=zn(),v=zn(),g=w(()=>{const U=c.type;return c.icon||U&&Vr[U]||""}),p=w(()=>!!c.message),h=M(),m=M(),b=M(),k=M(),y=M(),S=w(()=>c.confirmButtonClass);le(()=>c.inputValue,async U=>{await Ne(),e.boxType==="prompt"&&U&&A()},{immediate:!0}),le(()=>u.value,U=>{U&&(e.boxType!=="prompt"&&(c.autofocus?b.value=y.value?.$el??h.value:b.value=h.value),c.zIndex=l()),e.boxType==="prompt"&&(U?Ne().then(()=>{k.value&&k.value.$el&&(c.autofocus?b.value=_()??h.value:b.value=h.value)}):(c.editorErrorMessage="",c.validateError=!1))});const{isDragging:C}=YS(h,m,w(()=>e.draggable),w(()=>e.overflow));ht(async()=>{await Ne(),e.closeOnHashChange&&window.addEventListener("hashchange",E)}),Bt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",E)});function E(){u.value&&(u.value=!1,Ne(()=>{c.action&&t("action",c.action)}))}const $=()=>{e.closeOnClickModal&&N(c.distinguishCancelAndClose?"close":"cancel")},O=Wv($),R=U=>{if(c.inputType!=="textarea"&&!k.value?.isComposing)return U.preventDefault(),N("confirm")},N=U=>{e.boxType==="prompt"&&U==="confirm"&&!A()||(c.action=U,c.beforeClose?c.beforeClose?.(U,c,E):E())},A=()=>{if(e.boxType==="prompt"){const U=c.inputPattern;if(U&&!U.test(c.inputValue||""))return c.editorErrorMessage=c.inputErrorMessage||s("el.messagebox.error"),c.validateError=!0,!1;const W=c.inputValidator;if(Ve(W)){const P=W(c.inputValue);if(P===!1)return c.editorErrorMessage=c.inputErrorMessage||s("el.messagebox.error"),c.validateError=!0,!1;if(Le(P))return c.editorErrorMessage=P,c.validateError=!0,!1}}return c.editorErrorMessage="",c.validateError=!1,!0},_=()=>{const U=k.value?.$refs;return U?.input??U?.textarea},V=()=>{N("close")},z=()=>{e.closeOnPressEscape&&V()};return e.lockScroll&&qd(u,{ns:o}),{...Mn(c),ns:o,overlayEvent:O,visible:u,hasMessage:p,typeClass:d,contentId:f,inputId:v,btnSize:r,iconComponent:g,confirmButtonClasses:S,rootRef:h,focusStartRef:b,headerRef:m,inputRef:k,isDragging:C,confirmRef:y,doClose:E,handleClose:V,onCloseRequested:z,handleWrapperClick:$,handleInputEnter:R,handleAction:N,t:s}}});const GJ=["aria-label","aria-describedby"],XJ=["aria-label"],JJ=["id"];function ZJ(e,t,n,a,o,r){const s=It("el-icon"),l=It("el-input"),u=It("el-button"),c=It("el-focus-trap"),d=It("el-overlay");return x(),oe(Vn,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=f=>e.$emit("vanish")),persisted:""},{default:J(()=>[ct(Y(d,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:J(()=>[H("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:T(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...f)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...f)),onMousedown:t[9]||(t[9]=(...f)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...f)),onMouseup:t[10]||(t[10]=(...f)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...f))},[Y(c,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:J(()=>[H("div",{ref:"rootRef",class:T([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),e.ns.is("dragging",e.isDragging),{[e.ns.m("center")]:e.center}]),style:Ke(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=Ge(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(x(),B("div",{key:0,ref:"headerRef",class:T([e.ns.e("header"),{"show-close":e.showClose}])},[H("div",{class:T(e.ns.e("title"))},[e.iconComponent&&e.center?(x(),oe(s,{key:0,class:T([e.ns.e("status"),e.typeClass])},{default:J(()=>[(x(),oe(it(e.iconComponent)))]),_:1},8,["class"])):te("v-if",!0),H("span",null,Se(e.title),1)],2),e.showClose?(x(),B("button",{key:0,type:"button",class:T(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=f=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=an(Ge(f=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[Y(s,{class:T(e.ns.e("close"))},{default:J(()=>[(x(),oe(it(e.closeIcon||"close")))]),_:1},8,["class"])],42,XJ)):te("v-if",!0)],2)):te("v-if",!0),H("div",{id:e.contentId,class:T(e.ns.e("content"))},[H("div",{class:T(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(x(),oe(s,{key:0,class:T([e.ns.e("status"),e.typeClass])},{default:J(()=>[(x(),oe(it(e.iconComponent)))]),_:1},8,["class"])):te("v-if",!0),e.hasMessage?(x(),B("div",{key:1,class:T(e.ns.e("message"))},[ee(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(x(),oe(it(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(x(),oe(it(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0,textContent:Se(e.message)},null,8,["for","textContent"]))])],2)):te("v-if",!0)],2),ct(H("div",{class:T(e.ns.e("input"))},[Y(l,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=f=>e.inputValue=f),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:T({invalid:e.validateError}),onKeydown:an(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),H("div",{class:T(e.ns.e("errormsg")),style:Ke({visibility:e.editorErrorMessage?"visible":"hidden"})},Se(e.editorErrorMessage),7)],2),[[Pt,e.showInput]])],10,JJ),H("div",{class:T(e.ns.e("btns"))},[e.showCancelButton?(x(),oe(u,{key:0,type:e.cancelButtonType==="text"?"":e.cancelButtonType,text:e.cancelButtonType==="text",loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:T([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=f=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=an(Ge(f=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:J(()=>[wt(Se(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["type","text","loading","loading-icon","class","round","size"])):te("v-if",!0),ct(Y(u,{ref:"confirmRef",type:e.confirmButtonType==="text"?"":e.confirmButtonType,text:e.confirmButtonType==="text",loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:T([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=f=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=an(Ge(f=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:J(()=>[wt(Se(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["type","text","loading","loading-icon","class","round","disabled","size"]),[[Pt,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,GJ)]),_:3},8,["z-index","overlay-class","mask"]),[[Pt,e.visible]])]),_:3})}var QJ=$n(YJ,[["render",ZJ]]);const ji=new Map,eZ=e=>{let t=document.body;return e.appendTo&&(Le(e.appendTo)&&(t=document.querySelector(e.appendTo)),ha(e.appendTo)&&(t=e.appendTo),ha(t)||(pt("ElMessageBox","the appendTo option is not an HTMLElement. Falling back to document.body."),t=document.body)),t},tZ=(e,t,n=null)=>{const a=Y(QJ,e,Ve(e.message)||Ut(e.message)?{default:Ve(e.message)?e.message:()=>e.message}:null);return a.appContext=n,Lr(a,t),eZ(e).appendChild(t.firstElementChild),a.component},nZ=()=>document.createElement("div"),aZ=(e,t)=>{const n=nZ();e.onVanish=()=>{Lr(null,n),ji.delete(o)},e.onAction=r=>{const s=ji.get(o);let l;e.showInput?l={value:o.inputValue,action:r}:l=r,e.callback?e.callback(l,a.proxy):r==="cancel"||r==="close"?e.distinguishCancelAndClose&&r!=="cancel"?s.reject("close"):s.reject("cancel"):s.resolve(l)};const a=tZ(e,n,t),o=a.proxy;for(const r in e)Rt(e,r)&&!Rt(o.$props,r)&&(r==="closeIcon"&&at(e[r])?o[r]=Eo(e[r]):o[r]=e[r]);return o.visible=!0,o};function Dl(e,t=null){if(!Mt)return Promise.reject();let n;return Le(e)||Ut(e)?e={message:e}:n=e.callback,new Promise((a,o)=>{const r=aZ(e,t??Dl._context);ji.set(r,{options:e,callback:n,resolve:a,reject:o})})}const oZ=["alert","confirm","prompt"],rZ={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};oZ.forEach(e=>{Dl[e]=sZ(e)});function sZ(e){return(t,n,a,o)=>{let r="";return at(n)?(a=n,r=""):Tt(n)?r="":r=n,Dl(Object.assign({title:r,message:t,type:"",...rZ[e]},a,{boxType:e}),o)}}Dl.close=()=>{ji.forEach((e,t)=>{t.doClose()}),ji.clear()};Dl._context=null;const Er=Dl;Er.install=e=>{Er._context=e._context,e.config.globalProperties.$msgbox=Er,e.config.globalProperties.$messageBox=Er,e.config.globalProperties.$alert=Er.alert,e.config.globalProperties.$confirm=Er.confirm,e.config.globalProperties.$prompt=Er.prompt};const lZ=Er,ix=["primary","success","info","warning","error"],iZ=Ce({customClass:{type:String,default:""},dangerouslyUseHTMLString:Boolean,duration:{type:Number,default:4500},icon:{type:Kt},id:{type:String,default:""},message:{type:G([String,Object,Function]),default:""},offset:{type:Number,default:0},onClick:{type:G(Function),default:()=>{}},onClose:{type:G(Function),required:!0},position:{type:String,values:["top-right","top-left","bottom-right","bottom-left"],default:"top-right"},showClose:{type:Boolean,default:!0},title:{type:String,default:""},type:{type:String,values:[...ix,""],default:""},zIndex:Number,closeIcon:{type:Kt,default:Ha}}),uZ={destroy:()=>!0},cZ=["id"],dZ=["textContent"],fZ={key:0},pZ=["innerHTML"];var hZ=re({name:"ElNotification",__name:"notification",props:iZ,emits:uZ,setup(e,{expose:t}){const n=e,{ns:a,zIndex:o}=of("notification"),{nextZIndex:r,currentZIndex:s}=o,l=M(!1);let u;const c=w(()=>{const k=n.type;return k&&Vr[n.type]?a.m(k):""}),d=w(()=>n.type&&Vr[n.type]||n.icon),f=w(()=>n.position.endsWith("right")?"right":"left"),v=w(()=>n.position.startsWith("top")?"top":"bottom"),g=w(()=>({[v.value]:`${n.offset}px`,zIndex:n.zIndex??s.value}));function p(){n.duration>0&&({stop:u}=pl(()=>{l.value&&m()},n.duration))}function h(){u?.()}function m(){l.value=!1}function b(k){switch(jt(k)){case we.delete:case we.backspace:h();break;case we.esc:l.value&&m();break;default:p();break}}return ht(()=>{p(),r(),l.value=!0}),Ft(document,"keydown",b),t({visible:l,close:m}),(k,y)=>(x(),oe(Vn,{name:i(a).b("fade"),onBeforeLeave:e.onClose,onAfterLeave:y[1]||(y[1]=S=>k.$emit("destroy")),persisted:""},{default:J(()=>[ct(H("div",{id:e.id,class:T([i(a).b(),e.customClass,f.value]),style:Ke(g.value),role:"alert",onMouseenter:h,onMouseleave:p,onClick:y[0]||(y[0]=(...S)=>e.onClick&&e.onClick(...S))},[d.value?(x(),oe(i(De),{key:0,class:T([i(a).e("icon"),c.value])},{default:J(()=>[(x(),oe(it(d.value)))]),_:1},8,["class"])):te("v-if",!0),H("div",{class:T(i(a).e("group"))},[H("h2",{class:T(i(a).e("title")),textContent:Se(e.title)},null,10,dZ),ct(H("div",{class:T(i(a).e("content")),style:Ke(e.title?void 0:{margin:0})},[ee(k.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(x(),B(Fe,{key:1},[te(" Caution here, message could've been compromised, never use user's input as message "),H("p",{innerHTML:e.message},null,8,pZ)],2112)):(x(),B("p",fZ,Se(e.message),1))])],6),[[Pt,e.message]]),e.showClose?(x(),oe(i(De),{key:0,class:T(i(a).e("closeBtn")),onClick:Ge(m,["stop"])},{default:J(()=>[(x(),oe(it(e.closeIcon)))]),_:1},8,["class"])):te("v-if",!0)],2)],46,cZ),[[Pt,l.value]])]),_:3},8,["name","onBeforeLeave"]))}}),vZ=hZ;const xl={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]},wd=16;let mZ=1;const xs=function(e={},t){if(!Mt)return{close:()=>{}};(Le(e)||Ut(e))&&(e={message:e});const n=e.position||"top-right";let a=e.offset||0;xl[n].forEach(({vm:d})=>{a+=(d.el?.offsetHeight||0)+wd}),a+=wd;const o=`notification_${mZ++}`,r=e.onClose,s={...e,offset:a,id:o,onClose:()=>{gZ(o,n,r)}};let l=document.body;ha(e.appendTo)?l=e.appendTo:Le(e.appendTo)&&(l=document.querySelector(e.appendTo)),ha(l)||(pt("ElNotification","the appendTo option is not an HTMLElement. Falling back to document.body."),l=document.body);const u=document.createElement("div"),c=Y(vZ,s,Ve(s.message)?s.message:Ut(s.message)?()=>s.message:null);return c.appContext=Tt(t)?xs._context:t,c.props.onDestroy=()=>{Lr(null,u)},Lr(c,u),xl[n].push({vm:c}),l.appendChild(u.firstElementChild),{close:()=>{c.component.exposed.visible.value=!1}}};ix.forEach(e=>{xs[e]=(t={},n)=>((Le(t)||Ut(t))&&(t={message:t}),xs({...t,type:e},n))});function gZ(e,t,n){const a=xl[t],o=a.findIndex(({vm:c})=>c.component?.props.id===e);if(o===-1)return;const{vm:r}=a[o];if(!r)return;n?.(r);const s=r.el.offsetHeight,l=t.split("-")[0];a.splice(o,1);const u=a.length;if(!(u<1))for(let c=o;c{t.component.exposed.visible.value=!1})}function yZ(e="top-right"){let t=xl[e][0]?.vm.component?.props?.offset||0;for(const{vm:n}of xl[e])n.component.props.offset=t,t+=(n.el?.offsetHeight||0)+wd}xs.closeAll=bZ;xs.updateOffsets=yZ;xs._context=null;const wZ=PC(xs,"$notify"),SZ=Ce({trigger:No.trigger,triggerKeys:No.triggerKeys,placement:$c.placement,disabled:No.disabled,visible:zt.visible,transition:zt.transition,popperOptions:$c.popperOptions,tabindex:$c.tabindex,content:zt.content,popperStyle:zt.popperStyle,popperClass:zt.popperClass,enterable:{...zt.enterable,default:!0},effect:{...zt.effect,default:"light"},teleported:zt.teleported,appendTo:zt.appendTo,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),CZ={"update:visible":e=>Ht(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},kZ="onUpdate:visible";var EZ=re({name:"ElPopover",__name:"popover",props:SZ,emits:CZ,setup(e,{expose:t,emit:n}){const a=e,o=n,r=w(()=>a[kZ]),s=fe("popover"),l=M(),u=w(()=>i(l)?.popperRef),c=w(()=>[{width:sn(a.width)},a.popperStyle]),d=w(()=>[s.b(),a.popperClass,{[s.m("plain")]:!!a.content}]),f=w(()=>a.transition===`${s.namespace.value}-fade-in-linear`),v=()=>{l.value?.hide()},g=()=>{o("before-enter")},p=()=>{o("before-leave")},h=()=>{o("after-enter")},m=()=>{o("update:visible",!1),o("after-leave")};return t({popperRef:u,hide:v}),(b,k)=>(x(),oe(i(Ln),dt({ref_key:"tooltipRef",ref:l},b.$attrs,{trigger:e.trigger,"trigger-keys":e.triggerKeys,placement:e.placement,disabled:e.disabled,visible:e.visible,transition:e.transition,"popper-options":e.popperOptions,tabindex:e.tabindex,content:e.content,offset:e.offset,"show-after":e.showAfter,"hide-after":e.hideAfter,"auto-close":e.autoClose,"show-arrow":e.showArrow,"aria-label":e.title,effect:e.effect,enterable:e.enterable,"popper-class":d.value,"popper-style":c.value,teleported:e.teleported,"append-to":e.appendTo,persistent:e.persistent,"gpu-acceleration":f.value,"onUpdate:visible":r.value,onBeforeShow:g,onBeforeHide:p,onShow:h,onHide:m}),{content:J(()=>[e.title?(x(),B("div",{key:0,class:T(i(s).e("title")),role:"title"},Se(e.title),3)):te("v-if",!0),ee(b.$slots,"default",{hide:v},()=>[wt(Se(e.content),1)])]),default:J(()=>[b.$slots.reference?ee(b.$slots,"reference",{key:0}):te("v-if",!0)]),_:3},16,["trigger","trigger-keys","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","append-to","persistent","gpu-acceleration","onUpdate:visible"]))}}),xZ=EZ;const Z0=(e,t)=>{const n=(t.arg||t.value)?.popperRef;n&&(n.triggerRef=e)};var TZ={mounted(e,t){Z0(e,t)},updated(e,t){Z0(e,t)}};const $Z="popover",ux=E4(TZ,$Z),OZ=rt(xZ,{directive:ux}),NZ="2.13.5",RZ=(e=[])=>({version:NZ,install:(n,a)=>{n[Xg]||(n[Xg]=!0,e.forEach(o=>n.use(o)),a&&rm(a,n,!0))}});var IZ=[N4,q3,nB,Uq,iB,uB,vB,ak,xB,TB,In,ck,NF,MF,YF,GF,KV,Xk,YV,oo,dV,pm,o6,y6,w6,sf,i2,Y6,PB,tz,nz,az,oz,rz,r5,v2,h5,v5,R5,k2,K5,RK,IK,PK,P2,jL,UL,De,wW,M2,ea,_2,DW,KW,rj,sj,lj,ij,hj,Yj,Qj,OZ,JC,V2,Gk,kV,CV,h9,b9,t6,no,Hr,rd,lF,s7,f7,p7,M7,B7,p2,hz,j7,U7,nU,cq,dq,jq,rY,sY,tr,Hm,A8,hY,yY,wY,Ln,MY,jm,tG,gG,WG,eX,xX,TX,AX,LX,KX,nJ,mJ,gJ],PZ=[EJ,NJ,qJ,lZ,wZ,ux],eg=RZ([...IZ,...PZ]);eg.install;eg.version;var Aee=eg;function cx(e,t){return function(){return e.apply(t,arguments)}}const{toString:MZ}=Object.prototype,{getPrototypeOf:tg}=Object,{iterator:pf,toStringTag:dx}=Symbol,hf=(e=>t=>{const n=MZ.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),fo=e=>(e=e.toLowerCase(),t=>hf(t)===e),vf=e=>t=>typeof t===e,{isArray:Bl}=Array,Tl=vf("undefined");function ku(e){return e!==null&&!Tl(e)&&e.constructor!==null&&!Tl(e.constructor)&&ba(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const fx=fo("ArrayBuffer");function _Z(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&fx(e.buffer),t}const AZ=vf("string"),ba=vf("function"),px=vf("number"),Eu=e=>e!==null&&typeof e=="object",LZ=e=>e===!0||e===!1,_c=e=>{if(hf(e)!=="object")return!1;const t=tg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(dx in e)&&!(pf in e)},DZ=e=>{if(!Eu(e)||ku(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},BZ=fo("Date"),FZ=fo("File"),VZ=e=>!!(e&&typeof e.uri<"u"),zZ=e=>e&&typeof e.getParts<"u",HZ=fo("Blob"),KZ=fo("FileList"),WZ=e=>Eu(e)&&ba(e.pipe);function jZ(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Q0=jZ(),ew=typeof Q0.FormData<"u"?Q0.FormData:void 0,UZ=e=>{let t;return e&&(ew&&e instanceof ew||ba(e.append)&&((t=hf(e))==="formdata"||t==="object"&&ba(e.toString)&&e.toString()==="[object FormData]"))},qZ=fo("URLSearchParams"),[YZ,GZ,XZ,JZ]=["ReadableStream","Request","Response","Headers"].map(fo),ZZ=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function xu(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let a,o;if(typeof e!="object"&&(e=[e]),Bl(e))for(a=0,o=e.length;a 0;)if(o=n[a],t===o.toLowerCase())return o;return null}const is=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,vx=e=>!Tl(e)&&e!==is;function Bh(){const{caseless:e,skipUndefined:t}=vx(this)&&this||{},n={},a=(o,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const s=e&&hx(n,r)||r;_c(n[s])&&_c(o)?n[s]=Bh(n[s],o):_c(o)?n[s]=Bh({},o):Bl(o)?n[s]=o.slice():(!t||!Tl(o))&&(n[s]=o)};for(let o=0,r=arguments.length;o (xu(t,(o,r)=>{n&&ba(o)?Object.defineProperty(e,r,{value:cx(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:a}),e),eQ=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),tQ=(e,t,n,a)=>{e.prototype=Object.create(t.prototype,a),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nQ=(e,t,n,a)=>{let o,r,s;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),r=o.length;r-- >0;)s=o[r],(!a||a(s,e,t))&&!l[s]&&(t[s]=e[s],l[s]=!0);e=n!==!1&&tg(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},aQ=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const a=e.indexOf(t,n);return a!==-1&&a===n},oQ=e=>{if(!e)return null;if(Bl(e))return e;let t=e.length;if(!px(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},rQ=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&tg(Uint8Array)),sQ=(e,t)=>{const a=(e&&e[pf]).call(e);let o;for(;(o=a.next())&&!o.done;){const r=o.value;t.call(e,r[0],r[1])}},lQ=(e,t)=>{let n;const a=[];for(;(n=e.exec(t))!==null;)a.push(n);return a},iQ=fo("HTMLFormElement"),uQ=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,a,o){return a.toUpperCase()+o}),tw=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),cQ=fo("RegExp"),mx=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),a={};xu(n,(o,r)=>{let s;(s=t(o,r,e))!==!1&&(a[r]=s||o)}),Object.defineProperties(e,a)},dQ=e=>{mx(e,(t,n)=>{if(ba(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const a=e[n];if(ba(a)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},fQ=(e,t)=>{const n={},a=o=>{o.forEach(r=>{n[r]=!0})};return Bl(e)?a(e):a(String(e).split(t)),n},pQ=()=>{},hQ=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vQ(e){return!!(e&&ba(e.append)&&e[dx]==="FormData"&&e[pf])}const mQ=e=>{const t=new Array(10),n=(a,o)=>{if(Eu(a)){if(t.indexOf(a)>=0)return;if(ku(a))return a;if(!("toJSON"in a)){t[o]=a;const r=Bl(a)?[]:{};return xu(a,(s,l)=>{const u=n(s,o+1);!Tl(u)&&(r[l]=u)}),t[o]=void 0,r}}return a};return n(e,0)},gQ=fo("AsyncFunction"),bQ=e=>e&&(Eu(e)||ba(e))&&ba(e.then)&&ba(e.catch),gx=((e,t)=>e?setImmediate:t?((n,a)=>(is.addEventListener("message",({source:o,data:r})=>{o===is&&r===n&&a.length&&a.shift()()},!1),o=>{a.push(o),is.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ba(is.postMessage)),yQ=typeof queueMicrotask<"u"?queueMicrotask.bind(is):typeof process<"u"&&process.nextTick||gx,wQ=e=>e!=null&&ba(e[pf]),xe={isArray:Bl,isArrayBuffer:fx,isBuffer:ku,isFormData:UZ,isArrayBufferView:_Z,isString:AZ,isNumber:px,isBoolean:LZ,isObject:Eu,isPlainObject:_c,isEmptyObject:DZ,isReadableStream:YZ,isRequest:GZ,isResponse:XZ,isHeaders:JZ,isUndefined:Tl,isDate:BZ,isFile:FZ,isReactNativeBlob:VZ,isReactNative:zZ,isBlob:HZ,isRegExp:cQ,isFunction:ba,isStream:WZ,isURLSearchParams:qZ,isTypedArray:rQ,isFileList:KZ,forEach:xu,merge:Bh,extend:QZ,trim:ZZ,stripBOM:eQ,inherits:tQ,toFlatObject:nQ,kindOf:hf,kindOfTest:fo,endsWith:aQ,toArray:oQ,forEachEntry:sQ,matchAll:lQ,isHTMLForm:iQ,hasOwnProperty:tw,hasOwnProp:tw,reduceDescriptors:mx,freezeMethods:dQ,toObjectSet:fQ,toCamelCase:uQ,noop:pQ,toFiniteNumber:hQ,findKey:hx,global:is,isContextDefined:vx,isSpecCompliantForm:vQ,toJSONObject:mQ,isAsyncFn:gQ,isThenable:bQ,setImmediate:gx,asap:yQ,isIterable:wQ};let _t=class bx extends Error{static from(t,n,a,o,r,s){const l=new bx(t.message,n||t.code,a,o,r);return l.cause=t,l.name=t.name,t.status!=null&&l.status==null&&(l.status=t.status),s&&Object.assign(l,s),l}constructor(t,n,a,o,r){super(t),Object.defineProperty(this,"message",{value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),a&&(this.config=a),o&&(this.request=o),r&&(this.response=r,this.status=r.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:xe.toJSONObject(this.config),code:this.code,status:this.status}}};_t.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";_t.ERR_BAD_OPTION="ERR_BAD_OPTION";_t.ECONNABORTED="ECONNABORTED";_t.ETIMEDOUT="ETIMEDOUT";_t.ERR_NETWORK="ERR_NETWORK";_t.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";_t.ERR_DEPRECATED="ERR_DEPRECATED";_t.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";_t.ERR_BAD_REQUEST="ERR_BAD_REQUEST";_t.ERR_CANCELED="ERR_CANCELED";_t.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";_t.ERR_INVALID_URL="ERR_INVALID_URL";const SQ=null;function Fh(e){return xe.isPlainObject(e)||xe.isArray(e)}function yx(e){return xe.endsWith(e,"[]")?e.slice(0,-2):e}function hp(e,t,n){return e?e.concat(t).map(function(o,r){return o=yx(o),!n&&r?"["+o+"]":o}).join(n?".":""):t}function CQ(e){return xe.isArray(e)&&!e.some(Fh)}const kQ=xe.toFlatObject(xe,{},null,function(t){return/^is[A-Z]/.test(t)});function mf(e,t,n){if(!xe.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=xe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(h,m){return!xe.isUndefined(m[h])});const a=n.metaTokens,o=n.visitor||d,r=n.dots,s=n.indexes,u=(n.Blob||typeof Blob<"u"&&Blob)&&xe.isSpecCompliantForm(t);if(!xe.isFunction(o))throw new TypeError("visitor must be a function");function c(p){if(p===null)return"";if(xe.isDate(p))return p.toISOString();if(xe.isBoolean(p))return p.toString();if(!u&&xe.isBlob(p))throw new _t("Blob is not supported. Use a Buffer instead.");return xe.isArrayBuffer(p)||xe.isTypedArray(p)?u&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function d(p,h,m){let b=p;if(xe.isReactNative(t)&&xe.isReactNativeBlob(p))return t.append(hp(m,h,r),c(p)),!1;if(p&&!m&&typeof p=="object"){if(xe.endsWith(h,"{}"))h=a?h:h.slice(0,-2),p=JSON.stringify(p);else if(xe.isArray(p)&&CQ(p)||(xe.isFileList(p)||xe.endsWith(h,"[]"))&&(b=xe.toArray(p)))return h=yx(h),b.forEach(function(y,S){!(xe.isUndefined(y)||y===null)&&t.append(s===!0?hp([h],S,r):s===null?h:h+"[]",c(y))}),!1}return Fh(p)?!0:(t.append(hp(m,h,r),c(p)),!1)}const f=[],v=Object.assign(kQ,{defaultVisitor:d,convertValue:c,isVisitable:Fh});function g(p,h){if(!xe.isUndefined(p)){if(f.indexOf(p)!==-1)throw Error("Circular reference detected in "+h.join("."));f.push(p),xe.forEach(p,function(b,k){(!(xe.isUndefined(b)||b===null)&&o.call(t,b,xe.isString(k)?k.trim():k,h,v))===!0&&g(b,h?h.concat(k):[k])}),f.pop()}}if(!xe.isObject(e))throw new TypeError("data must be an object");return g(e),t}function nw(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(a){return t[a]})}function ng(e,t){this._pairs=[],e&&mf(e,this,t)}const wx=ng.prototype;wx.append=function(t,n){this._pairs.push([t,n])};wx.toString=function(t){const n=t?function(a){return t.call(this,a,nw)}:nw;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function EQ(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Sx(e,t,n){if(!t)return e;const a=n&&n.encode||EQ,o=xe.isFunction(n)?{serialize:n}:n,r=o&&o.serialize;let s;if(r?s=r(t,o):s=xe.isURLSearchParams(t)?t.toString():new ng(t,o).toString(a),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class aw{constructor(){this.handlers=[]}use(t,n,a){return this.handlers.push({fulfilled:t,rejected:n,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){xe.forEach(this.handlers,function(a){a!==null&&t(a)})}}const ag={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},xQ=typeof URLSearchParams<"u"?URLSearchParams:ng,TQ=typeof FormData<"u"?FormData:null,$Q=typeof Blob<"u"?Blob:null,OQ={isBrowser:!0,classes:{URLSearchParams:xQ,FormData:TQ,Blob:$Q},protocols:["http","https","file","blob","url","data"]},og=typeof window<"u"&&typeof document<"u",Vh=typeof navigator=="object"&&navigator||void 0,NQ=og&&(!Vh||["ReactNative","NativeScript","NS"].indexOf(Vh.product)<0),RQ=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",IQ=og&&window.location.href||"http://localhost",PQ=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:og,hasStandardBrowserEnv:NQ,hasStandardBrowserWebWorkerEnv:RQ,navigator:Vh,origin:IQ},Symbol.toStringTag,{value:"Module"})),Qn={...PQ,...OQ};function MQ(e,t){return mf(e,new Qn.classes.URLSearchParams,{visitor:function(n,a,o,r){return Qn.isNode&&xe.isBuffer(n)?(this.append(a,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}function _Q(e){return xe.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function AQ(e){const t={},n=Object.keys(e);let a;const o=n.length;let r;for(a=0;a =n.length;return s=!s&&xe.isArray(o)?o.length:s,u?(xe.hasOwnProp(o,s)?o[s]=[o[s],a]:o[s]=a,!l):((!o[s]||!xe.isObject(o[s]))&&(o[s]=[]),t(n,a,o[s],r)&&xe.isArray(o[s])&&(o[s]=AQ(o[s])),!l)}if(xe.isFormData(e)&&xe.isFunction(e.entries)){const n={};return xe.forEachEntry(e,(a,o)=>{t(_Q(a),o,n,0)}),n}return null}function LQ(e,t,n){if(xe.isString(e))try{return(t||JSON.parse)(e),xe.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(n||JSON.stringify)(e)}const Tu={transitional:ag,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const a=n.getContentType()||"",o=a.indexOf("application/json")>-1,r=xe.isObject(t);if(r&&xe.isHTMLForm(t)&&(t=new FormData(t)),xe.isFormData(t))return o?JSON.stringify(Cx(t)):t;if(xe.isArrayBuffer(t)||xe.isBuffer(t)||xe.isStream(t)||xe.isFile(t)||xe.isBlob(t)||xe.isReadableStream(t))return t;if(xe.isArrayBufferView(t))return t.buffer;if(xe.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(r){if(a.indexOf("application/x-www-form-urlencoded")>-1)return MQ(t,this.formSerializer).toString();if((l=xe.isFileList(t))||a.indexOf("multipart/form-data")>-1){const u=this.env&&this.env.FormData;return mf(l?{"files[]":t}:t,u&&new u,this.formSerializer)}}return r||o?(n.setContentType("application/json",!1),LQ(t)):t}],transformResponse:[function(t){const n=this.transitional||Tu.transitional,a=n&&n.forcedJSONParsing,o=this.responseType==="json";if(xe.isResponse(t)||xe.isReadableStream(t))return t;if(t&&xe.isString(t)&&(a&&!this.responseType||o)){const s=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,this.parseReviver)}catch(l){if(s)throw l.name==="SyntaxError"?_t.from(l,_t.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Qn.classes.FormData,Blob:Qn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};xe.forEach(["delete","get","head","post","put","patch"],e=>{Tu.headers[e]={}});const DQ=xe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),BQ=e=>{const t={};let n,a,o;return e&&e.split(` +`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),a=s.substring(o+1).trim(),!(!n||t[n]&&DQ[n])&&(n==="set-cookie"?t[n]?t[n].push(a):t[n]=[a]:t[n]=t[n]?t[n]+", "+a:a)}),t},ow=Symbol("internals");function Gl(e){return e&&String(e).trim().toLowerCase()}function Ac(e){return e===!1||e==null?e:xe.isArray(e)?e.map(Ac):String(e)}function FQ(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=n.exec(e);)t[a[1]]=a[2];return t}const VQ=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function vp(e,t,n,a,o){if(xe.isFunction(a))return a.call(this,t,n);if(o&&(t=n),!!xe.isString(t)){if(xe.isString(a))return t.indexOf(a)!==-1;if(xe.isRegExp(a))return a.test(t)}}function zQ(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,a)=>n.toUpperCase()+a)}function HQ(e,t){const n=xe.toCamelCase(" "+t);["get","set","has"].forEach(a=>{Object.defineProperty(e,a+n,{value:function(o,r,s){return this[a].call(this,t,o,r,s)},configurable:!0})})}let ya=class{constructor(t){t&&this.set(t)}set(t,n,a){const o=this;function r(l,u,c){const d=Gl(u);if(!d)throw new Error("header name must be a non-empty string");const f=xe.findKey(o,d);(!f||o[f]===void 0||c===!0||c===void 0&&o[f]!==!1)&&(o[f||u]=Ac(l))}const s=(l,u)=>xe.forEach(l,(c,d)=>r(c,d,u));if(xe.isPlainObject(t)||t instanceof this.constructor)s(t,n);else if(xe.isString(t)&&(t=t.trim())&&!VQ(t))s(BQ(t),n);else if(xe.isObject(t)&&xe.isIterable(t)){let l={},u,c;for(const d of t){if(!xe.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[c=d[0]]=(u=l[c])?xe.isArray(u)?[...u,d[1]]:[u,d[1]]:d[1]}s(l,n)}else t!=null&&r(n,t,a);return this}get(t,n){if(t=Gl(t),t){const a=xe.findKey(this,t);if(a){const o=this[a];if(!n)return o;if(n===!0)return FQ(o);if(xe.isFunction(n))return n.call(this,o,a);if(xe.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Gl(t),t){const a=xe.findKey(this,t);return!!(a&&this[a]!==void 0&&(!n||vp(this,this[a],a,n)))}return!1}delete(t,n){const a=this;let o=!1;function r(s){if(s=Gl(s),s){const l=xe.findKey(a,s);l&&(!n||vp(a,a[l],l,n))&&(delete a[l],o=!0)}}return xe.isArray(t)?t.forEach(r):r(t),o}clear(t){const n=Object.keys(this);let a=n.length,o=!1;for(;a--;){const r=n[a];(!t||vp(this,this[r],r,t,!0))&&(delete this[r],o=!0)}return o}normalize(t){const n=this,a={};return xe.forEach(this,(o,r)=>{const s=xe.findKey(a,r);if(s){n[s]=Ac(o),delete n[r];return}const l=t?zQ(r):String(r).trim();l!==r&&delete n[r],n[l]=Ac(o),a[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return xe.forEach(this,(a,o)=>{a!=null&&a!==!1&&(n[o]=t&&xe.isArray(a)?a.join(", "):a)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const a=new this(t);return n.forEach(o=>a.set(o)),a}static accessor(t){const a=(this[ow]=this[ow]={accessors:{}}).accessors,o=this.prototype;function r(s){const l=Gl(s);a[l]||(HQ(o,s),a[l]=!0)}return xe.isArray(t)?t.forEach(r):r(t),this}};ya.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);xe.reduceDescriptors(ya.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(a){this[n]=a}}});xe.freezeMethods(ya);function mp(e,t){const n=this||Tu,a=t||n,o=ya.from(a.headers);let r=a.data;return xe.forEach(e,function(l){r=l.call(n,r,o.normalize(),t?t.status:void 0)}),o.normalize(),r}function kx(e){return!!(e&&e.__CANCEL__)}let $u=class extends _t{constructor(t,n,a){super(t??"canceled",_t.ERR_CANCELED,n,a),this.name="CanceledError",this.__CANCEL__=!0}};function Ex(e,t,n){const a=n.config.validateStatus;!n.status||!a||a(n.status)?e(n):t(new _t("Request failed with status code "+n.status,[_t.ERR_BAD_REQUEST,_t.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function KQ(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function WQ(e,t){e=e||10;const n=new Array(e),a=new Array(e);let o=0,r=0,s;return t=t!==void 0?t:1e3,function(u){const c=Date.now(),d=a[r];s||(s=c),n[o]=u,a[o]=c;let f=r,v=0;for(;f!==o;)v+=n[f++],f=f%e;if(o=(o+1)%e,o===r&&(r=(r+1)%e),c-s {n=d,o=null,r&&(clearTimeout(r),r=null),e(...c)};return[(...c)=>{const d=Date.now(),f=d-n;f>=a?s(c,d):(o=c,r||(r=setTimeout(()=>{r=null,s(o)},a-f)))},()=>o&&s(o)]}const Sd=(e,t,n=3)=>{let a=0;const o=WQ(50,250);return jQ(r=>{const s=r.loaded,l=r.lengthComputable?r.total:void 0,u=s-a,c=o(u),d=s<=l;a=s;const f={loaded:s,total:l,progress:l?s/l:void 0,bytes:u,rate:c||void 0,estimated:c&&l&&d?(l-s)/c:void 0,event:r,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},rw=(e,t)=>{const n=e!=null;return[a=>t[0]({lengthComputable:n,total:e,loaded:a}),t[1]]},sw=e=>(...t)=>xe.asap(()=>e(...t)),UQ=Qn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Qn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Qn.origin),Qn.navigator&&/(msie|trident)/i.test(Qn.navigator.userAgent)):()=>!0,qQ=Qn.hasStandardBrowserEnv?{write(e,t,n,a,o,r,s){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];xe.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),xe.isString(a)&&l.push(`path=${a}`),xe.isString(o)&&l.push(`domain=${o}`),r===!0&&l.push("secure"),xe.isString(s)&&l.push(`SameSite=${s}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function YQ(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function GQ(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function xx(e,t,n){let a=!YQ(t);return e&&(a||n==!1)?GQ(e,t):t}const lw=e=>e instanceof ya?{...e}:e;function Ts(e,t){t=t||{};const n={};function a(c,d,f,v){return xe.isPlainObject(c)&&xe.isPlainObject(d)?xe.merge.call({caseless:v},c,d):xe.isPlainObject(d)?xe.merge({},d):xe.isArray(d)?d.slice():d}function o(c,d,f,v){if(xe.isUndefined(d)){if(!xe.isUndefined(c))return a(void 0,c,f,v)}else return a(c,d,f,v)}function r(c,d){if(!xe.isUndefined(d))return a(void 0,d)}function s(c,d){if(xe.isUndefined(d)){if(!xe.isUndefined(c))return a(void 0,c)}else return a(void 0,d)}function l(c,d,f){if(f in t)return a(c,d);if(f in e)return a(void 0,c)}const u={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l,headers:(c,d,f)=>o(lw(c),lw(d),f,!0)};return xe.forEach(Object.keys({...e,...t}),function(d){if(d==="__proto__"||d==="constructor"||d==="prototype")return;const f=xe.hasOwnProp(u,d)?u[d]:o,v=f(e[d],t[d],d);xe.isUndefined(v)&&f!==l||(n[d]=v)}),n}const Tx=e=>{const t=Ts({},e);let{data:n,withXSRFToken:a,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:l}=t;if(t.headers=s=ya.from(s),t.url=Sx(xx(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),xe.isFormData(n)){if(Qn.hasStandardBrowserEnv||Qn.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(xe.isFunction(n.getHeaders)){const u=n.getHeaders(),c=["content-type","content-length"];Object.entries(u).forEach(([d,f])=>{c.includes(d.toLowerCase())&&s.set(d,f)})}}if(Qn.hasStandardBrowserEnv&&(a&&xe.isFunction(a)&&(a=a(t)),a||a!==!1&&UQ(t.url))){const u=o&&r&&qQ.read(r);u&&s.set(o,u)}return t},XQ=typeof XMLHttpRequest<"u",JQ=XQ&&function(e){return new Promise(function(n,a){const o=Tx(e);let r=o.data;const s=ya.from(o.headers).normalize();let{responseType:l,onUploadProgress:u,onDownloadProgress:c}=o,d,f,v,g,p;function h(){g&&g(),p&&p(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let m=new XMLHttpRequest;m.open(o.method.toUpperCase(),o.url,!0),m.timeout=o.timeout;function b(){if(!m)return;const y=ya.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),C={data:!l||l==="text"||l==="json"?m.responseText:m.response,status:m.status,statusText:m.statusText,headers:y,config:e,request:m};Ex(function($){n($),h()},function($){a($),h()},C),m=null}"onloadend"in m?m.onloadend=b:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)||setTimeout(b)},m.onabort=function(){m&&(a(new _t("Request aborted",_t.ECONNABORTED,e,m)),m=null)},m.onerror=function(S){const C=S&&S.message?S.message:"Network Error",E=new _t(C,_t.ERR_NETWORK,e,m);E.event=S||null,a(E),m=null},m.ontimeout=function(){let S=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const C=o.transitional||ag;o.timeoutErrorMessage&&(S=o.timeoutErrorMessage),a(new _t(S,C.clarifyTimeoutError?_t.ETIMEDOUT:_t.ECONNABORTED,e,m)),m=null},r===void 0&&s.setContentType(null),"setRequestHeader"in m&&xe.forEach(s.toJSON(),function(S,C){m.setRequestHeader(C,S)}),xe.isUndefined(o.withCredentials)||(m.withCredentials=!!o.withCredentials),l&&l!=="json"&&(m.responseType=o.responseType),c&&([v,p]=Sd(c,!0),m.addEventListener("progress",v)),u&&m.upload&&([f,g]=Sd(u),m.upload.addEventListener("progress",f),m.upload.addEventListener("loadend",g)),(o.cancelToken||o.signal)&&(d=y=>{m&&(a(!y||y.type?new $u(null,e,m):y),m.abort(),m=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));const k=KQ(o.url);if(k&&Qn.protocols.indexOf(k)===-1){a(new _t("Unsupported protocol "+k+":",_t.ERR_BAD_REQUEST,e));return}m.send(r||null)})},ZQ=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let a=new AbortController,o;const r=function(c){if(!o){o=!0,l();const d=c instanceof Error?c:this.reason;a.abort(d instanceof _t?d:new $u(d instanceof Error?d.message:d))}};let s=t&&setTimeout(()=>{s=null,r(new _t(`timeout of ${t}ms exceeded`,_t.ETIMEDOUT))},t);const l=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(r):c.removeEventListener("abort",r)}),e=null)};e.forEach(c=>c.addEventListener("abort",r));const{signal:u}=a;return u.unsubscribe=()=>xe.asap(l),u}},QQ=function*(e,t){let n=e.byteLength;if(n {const o=eee(e,t);let r=0,s,l=u=>{s||(s=!0,a&&a(u))};return new ReadableStream({async pull(u){try{const{done:c,value:d}=await o.next();if(c){l(),u.close();return}let f=d.byteLength;if(n){let v=r+=f;n(v)}u.enqueue(new Uint8Array(d))}catch(c){throw l(c),c}},cancel(u){return l(u),o.return()}},{highWaterMark:2})},uw=64*1024,{isFunction:nc}=xe,nee=(({Request:e,Response:t})=>({Request:e,Response:t}))(xe.global),{ReadableStream:cw,TextEncoder:dw}=xe.global,fw=(e,...t)=>{try{return!!e(...t)}catch{return!1}},aee=e=>{e=xe.merge.call({skipUndefined:!0},nee,e);const{fetch:t,Request:n,Response:a}=e,o=t?nc(t):typeof fetch=="function",r=nc(n),s=nc(a);if(!o)return!1;const l=o&&nc(cw),u=o&&(typeof dw=="function"?(p=>h=>p.encode(h))(new dw):async p=>new Uint8Array(await new n(p).arrayBuffer())),c=r&&l&&fw(()=>{let p=!1;const h=new n(Qn.origin,{body:new cw,method:"POST",get duplex(){return p=!0,"half"}}).headers.has("Content-Type");return p&&!h}),d=s&&l&&fw(()=>xe.isReadableStream(new a("").body)),f={stream:d&&(p=>p.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!f[p]&&(f[p]=(h,m)=>{let b=h&&h[p];if(b)return b.call(h);throw new _t(`Response type '${p}' is not supported`,_t.ERR_NOT_SUPPORT,m)})});const v=async p=>{if(p==null)return 0;if(xe.isBlob(p))return p.size;if(xe.isSpecCompliantForm(p))return(await new n(Qn.origin,{method:"POST",body:p}).arrayBuffer()).byteLength;if(xe.isArrayBufferView(p)||xe.isArrayBuffer(p))return p.byteLength;if(xe.isURLSearchParams(p)&&(p=p+""),xe.isString(p))return(await u(p)).byteLength},g=async(p,h)=>{const m=xe.toFiniteNumber(p.getContentLength());return m??v(h)};return async p=>{let{url:h,method:m,data:b,signal:k,cancelToken:y,timeout:S,onDownloadProgress:C,onUploadProgress:E,responseType:$,headers:O,withCredentials:R="same-origin",fetchOptions:N}=Tx(p),A=t||fetch;$=$?($+"").toLowerCase():"text";let _=ZQ([k,y&&y.toAbortSignal()],S),V=null;const z=_&&_.unsubscribe&&(()=>{_.unsubscribe()});let U;try{if(E&&c&&m!=="get"&&m!=="head"&&(U=await g(O,b))!==0){let F=new n(h,{method:"POST",body:b,duplex:"half"}),q;if(xe.isFormData(b)&&(q=F.headers.get("content-type"))&&O.setContentType(q),F.body){const[j,X]=rw(U,Sd(sw(E)));b=iw(F.body,uw,j,X)}}xe.isString(R)||(R=R?"include":"omit");const W=r&&"credentials"in n.prototype,P={...N,signal:_,method:m.toUpperCase(),headers:O.normalize().toJSON(),body:b,duplex:"half",credentials:W?R:void 0};V=r&&new n(h,P);let I=await(r?A(V,N):A(h,P));const L=d&&($==="stream"||$==="response");if(d&&(C||L&&z)){const F={};["status","statusText","headers"].forEach(Q=>{F[Q]=I[Q]});const q=xe.toFiniteNumber(I.headers.get("content-length")),[j,X]=C&&rw(q,Sd(sw(C),!0))||[];I=new a(iw(I.body,uw,j,()=>{X&&X(),z&&z()}),F)}$=$||"text";let D=await f[xe.findKey(f,$)||"text"](I,p);return!L&&z&&z(),await new Promise((F,q)=>{Ex(F,q,{data:D,headers:ya.from(I.headers),status:I.status,statusText:I.statusText,config:p,request:V})})}catch(W){throw z&&z(),W&&W.name==="TypeError"&&/Load failed|fetch/i.test(W.message)?Object.assign(new _t("Network Error",_t.ERR_NETWORK,p,V,W&&W.response),{cause:W.cause||W}):_t.from(W,W&&W.code,p,V,W&&W.response)}}},oee=new Map,$x=e=>{let t=e&&e.env||{};const{fetch:n,Request:a,Response:o}=t,r=[a,o,n];let s=r.length,l=s,u,c,d=oee;for(;l--;)u=r[l],c=d.get(u),c===void 0&&d.set(u,c=l?new Map:aee(t)),d=c;return c};$x();const rg={http:SQ,xhr:JQ,fetch:{get:$x}};xe.forEach(rg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const pw=e=>`- ${e}`,ree=e=>xe.isFunction(e)||e===null||e===!1;function see(e,t){e=xe.isArray(e)?e:[e];const{length:n}=e;let a,o;const r={};for(let s=0;s `adapter ${u} `+(c===!1?"is not supported by the environment":"is not available in the build"));let l=n?s.length>1?`since : +`+s.map(pw).join(` +`):" "+pw(s[0]):"as no adapter specified";throw new _t("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return o}const Ox={getAdapter:see,adapters:rg};function gp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $u(null,e)}function hw(e){return gp(e),e.headers=ya.from(e.headers),e.data=mp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ox.getAdapter(e.adapter||Tu.adapter,e)(e).then(function(a){return gp(e),a.data=mp.call(e,e.transformResponse,a),a.headers=ya.from(a.headers),a},function(a){return kx(a)||(gp(e),a&&a.response&&(a.response.data=mp.call(e,e.transformResponse,a.response),a.response.headers=ya.from(a.response.headers))),Promise.reject(a)})}const Nx="1.13.6",gf={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{gf[e]=function(a){return typeof a===e||"a"+(t<1?"n ":" ")+e}});const vw={};gf.transitional=function(t,n,a){function o(r,s){return"[Axios v"+Nx+"] Transitional option '"+r+"'"+s+(a?". "+a:"")}return(r,s,l)=>{if(t===!1)throw new _t(o(s," has been removed"+(n?" in "+n:"")),_t.ERR_DEPRECATED);return n&&!vw[s]&&(vw[s]=!0,console.warn(o(s," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(r,s,l):!0}};gf.spelling=function(t){return(n,a)=>(console.warn(`${a} is likely a misspelling of ${t}`),!0)};function lee(e,t,n){if(typeof e!="object")throw new _t("options must be an object",_t.ERR_BAD_OPTION_VALUE);const a=Object.keys(e);let o=a.length;for(;o-- >0;){const r=a[o],s=t[r];if(s){const l=e[r],u=l===void 0||s(l,r,e);if(u!==!0)throw new _t("option "+r+" must be "+u,_t.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new _t("Unknown option "+r,_t.ERR_BAD_OPTION)}}const Lc={assertOptions:lee,validators:gf},_a=Lc.validators;let hs=class{constructor(t){this.defaults=t||{},this.interceptors={request:new aw,response:new aw}}async request(t,n){try{return await this._request(t,n)}catch(a){if(a instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const r=o.stack?o.stack.replace(/^.+\n/,""):"";try{a.stack?r&&!String(a.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(a.stack+=` +`+r):a.stack=r}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ts(this.defaults,n);const{transitional:a,paramsSerializer:o,headers:r}=n;a!==void 0&&Lc.assertOptions(a,{silentJSONParsing:_a.transitional(_a.boolean),forcedJSONParsing:_a.transitional(_a.boolean),clarifyTimeoutError:_a.transitional(_a.boolean),legacyInterceptorReqResOrdering:_a.transitional(_a.boolean)},!1),o!=null&&(xe.isFunction(o)?n.paramsSerializer={serialize:o}:Lc.assertOptions(o,{encode:_a.function,serialize:_a.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Lc.assertOptions(n,{baseUrl:_a.spelling("baseURL"),withXsrfToken:_a.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=r&&xe.merge(r.common,r[n.method]);r&&xe.forEach(["delete","get","head","post","put","patch","common"],p=>{delete r[p]}),n.headers=ya.concat(s,r);const l=[];let u=!0;this.interceptors.request.forEach(function(h){if(typeof h.runWhen=="function"&&h.runWhen(n)===!1)return;u=u&&h.synchronous;const m=n.transitional||ag;m&&m.legacyInterceptorReqResOrdering?l.unshift(h.fulfilled,h.rejected):l.push(h.fulfilled,h.rejected)});const c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let d,f=0,v;if(!u){const p=[hw.bind(this),void 0];for(p.unshift(...l),p.push(...c),v=p.length,d=Promise.resolve(n);f {if(!a._listeners)return;let r=a._listeners.length;for(;r-- >0;)a._listeners[r](o);a._listeners=null}),this.promise.then=o=>{let r;const s=new Promise(l=>{a.subscribe(l),r=l}).then(o);return s.cancel=function(){a.unsubscribe(r)},s},t(function(r,s,l){a.reason||(a.reason=new $u(r,s,l),n(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=a=>{t.abort(a)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Rx(function(o){t=o}),cancel:t}}};function uee(e){return function(n){return e.apply(null,n)}}function cee(e){return xe.isObject(e)&&e.isAxiosError===!0}const zh={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(zh).forEach(([e,t])=>{zh[t]=e});function Ix(e){const t=new hs(e),n=cx(hs.prototype.request,t);return xe.extend(n,hs.prototype,t,{allOwnKeys:!0}),xe.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return Ix(Ts(e,o))},n}const On=Ix(Tu);On.Axios=hs;On.CanceledError=$u;On.CancelToken=iee;On.isCancel=kx;On.VERSION=Nx;On.toFormData=mf;On.AxiosError=_t;On.Cancel=On.CanceledError;On.all=function(t){return Promise.all(t)};On.spread=uee;On.isAxiosError=cee;On.mergeConfig=Ts;On.AxiosHeaders=ya;On.formToJSON=e=>Cx(xe.isHTMLForm(e)?new FormData(e):e);On.getAdapter=Ox.getAdapter;On.HttpStatusCode=zh;On.default=On;const{Axios:Fee,AxiosError:dee,CanceledError:Vee,isCancel:zee,CancelToken:Hee,VERSION:Kee,all:Wee,Cancel:jee,isAxiosError:Uee,spread:qee,toFormData:Yee,AxiosHeaders:Gee,HttpStatusCode:Xee,formToJSON:Jee,getAdapter:Zee,mergeConfig:Qee}=On;function fee(e){if(e instanceof dee){const t=e.response?.data;if(t&&typeof t=="object"){if("error"in t&&t.error)return String(t.error);if("message"in t&&t.message)return String(t.message)}return typeof t=="string"&&t.trim()?t:e.message||"请求失败"}return e instanceof Error?e.message:"请求失败"}function pee(){const e=On.create({withCredentials:!0,timeout:3e4,headers:{"X-Requested-With":"XMLHttpRequest"}});return e.interceptors.request.use(t=>t),e.interceptors.response.use(t=>t,t=>Promise.reject(new Error(fee(t)))),e}const hee=pee();async function bf(e){return(await hee.request(e)).data}function un(e,t){return bf({url:e,method:"GET",...t})}function Qt(e,t,n){return bf({url:e,method:"POST",data:t,...n})}function sg(e,t,n){return bf({url:e,method:"PUT",data:t,...n})}function Sn(e,t){return bf({url:e,method:"DELETE",...t})}const vee=un,ete=Qt;async function nt(e){const t=await e;if(!t.success)throw new Error(t.message||"请求失败");return t.data}function mee(){const e=typeof window>"u"?"":window.localStorage.getItem("uid")||"",t=Number(e);if(!Number.isFinite(t)||t<=0)throw new Error("未获取到用户ID");return t}function gee(e){return`app_column_permissions:${String(e)}`}async function bee(){const e=mee(),t=gee(e);try{const a=JSON.parse(window.localStorage.getItem(t)||"null");if(Array.isArray(a))return a.map(o=>String(o.column_key||"").trim().toLowerCase()).filter(Boolean)}catch{}const n=await vee(`/api/admin/user/${encodeURIComponent(String(e))}/column-permissions`,{params:{menu_type:"app"}});if(!n.success)throw new Error(n.error||"获取菜单权限失败");try{window.localStorage.setItem(t,JSON.stringify(n.items||[]))}catch{}return(n.items||[]).map(a=>String(a.column_key||"").trim().toLowerCase()).filter(Boolean)}const yee={class:"top-bar"},wee={class:"nav-sections","aria-label":"顶部功能导航"},See={class:"nav-section-title"},Cee={class:"nav-section-items"},kee=["href"],Eee=re({__name:"BrandTopBar",props:{active:{}},setup(e){const n=e.active,a=M(null),o=[{columnKey:"brand_front_tools",label:"前端工具",items:[{key:"collect",label:"采集数据"},{key:"variant",label:"变体分析"},{key:"brand",label:"品牌检测",href:"/brand"},{key:"appearance-patent",label:"外观专利检测",href:"/new_web_source/appearance-patent.html"},{key:"dedupe",label:"数据去重",href:"/new_web_source/dedupe.html"},{key:"split",label:"数据拆分",href:"/new_web_source/split.html"},{key:"convert",label:"格式转换",href:"/new_web_source/convert.html"}]},{columnKey:"brand_operation_tools",label:"运营工具",items:[{key:"delete-brand",label:"删除ASIN",href:"/new_web_source/delete-brand.html"},{key:"product-risk",label:"商品风险解决",href:"/new_web_source/product-risk.html"},{key:"shop-match",label:"定时匹配",href:"/new_web_source/shop-match.html"},{key:"pricing",label:"跟价",href:"/new_web_source/price-track.html"},{key:"patrol-delete",label:"巡店删除",href:"/new_web_source/patrol-delete.html"},{key:"query-asin",label:"查询ASIN",href:"/new_web_source/query-asin.html"},{key:"withdraw",label:"取款"},{key:"shop-status",label:"店铺状态查询"}]},{columnKey:"brand_logistics_tools",label:"后勤工具",items:[{key:"purchase",label:"采购"},{key:"erp",label:"ERP"}]}],r=w(()=>{if(a.value===null)return o;const s=new Set(a.value);return o.filter(l=>s.has(l.columnKey))});return ht(async()=>{try{a.value=await bee()}catch{a.value=null}}),(s,l)=>(x(),B("header",yee,[l[0]||(l[0]=H("div",{class:"logo-area"},[H("span",{class:"app-name"},"数富AI-亚马逊"),H("a",{href:"/home",class:"btn-home"},"返回首页")],-1)),H("nav",wee,[(x(!0),B(Fe,null,yt(r.value,u=>(x(),B("section",{key:u.columnKey,class:"nav-section"},[H("div",See,Se(u.label),1),H("div",Cee,[(x(!0),B(Fe,null,yt(u.items,c=>(x(),B(Fe,{key:c.key},[c.href?(x(),B("a",{key:0,href:c.href,class:T(["nav-item",{active:i(n)===c.key}])},Se(c.label),11,kee)):(x(),B("span",{key:1,class:T(["nav-item disabled",{active:i(n)===c.key}])},Se(c.label),3))],64))),128))])]))),128))]),l[1]||(l[1]=H("div",{class:"top-right"},null,-1))]))}}),xee=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n},tte=xee(Eee,[["__scopeId","data-v-5ac21284"]]),Tee=1e4,$ee=6e4,Oee=5e3,Nee=3e4;function nte(){return typeof document<"u"&&document.visibilityState!=="visible"?$ee:Tee}function Ree(){return typeof document<"u"&&document.hidden?Nee:Oee}const Ze="/newApi/api",mw=new Map,bp=new Map;function st(){const e=typeof window>"u"?"":window.localStorage.getItem("uid")||"",t=Number(e);if(!Number.isFinite(t)||t<=0)throw new Error("未获取到用户ID");return t}function Iee(e){return Array.from(new Set((e||[]).map(t=>Number(t)).filter(t=>Number.isFinite(t)&&t>0))).sort((t,n)=>t-n)}function Pee(e,t){return`${e}::${t.join(",")}`}async function Ms(e,t,n={}){const a=Iee(t);if(!a.length)return{items:[],missingTaskIds:[]};const o=Pee(e,a),r=Date.now(),s=mw.get(o);if(!n.force&&s&&s.expiresAt>r)return s.data;const l=bp.get(o);if(!n.force&&l)return await l;const u=nt(Qt(e,{taskIds:a})).then(c=>(mw.set(o,{data:c,expiresAt:Date.now()+Ree()}),c)).finally(()=>{bp.delete(o)});return bp.set(o,u),u}function ate(e){return nt(un(`${Ze}/files/excel-info`,{params:{fileKey:e}}))}function ote(e){return nt(Qt(`${Ze}/dedupe/run`,{...e,user_id:st()}))}function rte(){return nt(un(`${Ze}/dedupe/history`,{params:{user_id:st()}}))}function ste(e){return nt(Sn(`${Ze}/dedupe/history/${e}`,{params:{user_id:st()}}))}function lte(e){return Vo(`/dedupe/results/${e}/download`)}function ite(e){return nt(Qt(`${Ze}/split/run`,{...e,user_id:st()}))}function ute(){return nt(un(`${Ze}/split/history`,{params:{user_id:st()}}))}function cte(e){return nt(Sn(`${Ze}/split/history/${e}`,{params:{user_id:st()}}))}function dte(e){return Vo(`/split/results/${e}/download`)}function fte(){return nt(un(`${Ze}/convert/templates`))}function pte(e){return nt(Qt(`${Ze}/convert/run`,{...e,user_id:st()}))}function hte(){return nt(un(`${Ze}/convert/history`,{params:{user_id:st()}}))}function vte(e){return nt(Sn(`${Ze}/convert/history/${e}`,{params:{user_id:st()}}))}function mte(e){return Vo(`/convert/results/${e}/download`)}function gte(e){return nt(Qt(`${Ze}/delete-brand/run`,{...e,user_id:st()},{timeout:18e4}))}function bte(){return nt(un(`${Ze}/delete-brand/history`,{params:{user_id:st()}}))}function yte(e){return nt(Sn(`${Ze}/delete-brand/history/${e}`,{params:{user_id:st()}}))}function wte(e){return Vo(`/delete-brand/tasks/${e}/download`)}function Ste(){return nt(un(`${Ze}/product-risk-resolve/candidates`,{params:{user_id:st()}}))}function Cte(e){return nt(Qt(`${Ze}/product-risk-resolve/candidates`,{user_id:st(),shop_name:e}))}function kte(e){return nt(Sn(`${Ze}/product-risk-resolve/candidates/${e}`,{params:{user_id:st()}}))}function Ete(){return nt(un(`${Ze}/product-risk-resolve/country-preference`,{params:{user_id:st()}}))}function xte(e){return nt(sg(`${Ze}/product-risk-resolve/country-preference`,{user_id:st(),country_codes:e}))}function Tte(e){return nt(Qt(`${Ze}/product-risk-resolve/match-shops`,{user_id:st(),shop_names:e}))}function $te(){return nt(un(`${Ze}/product-risk-resolve/dashboard`,{params:{user_id:st()}}))}function Ote(){return nt(un(`${Ze}/product-risk-resolve/history`,{params:{user_id:st()}}))}function Nte(e){return nt(Sn(`${Ze}/product-risk-resolve/history/${e}`,{params:{user_id:st()}}))}function Rte(e){return nt(Qt(`${Ze}/product-risk-resolve/tasks`,{user_id:st(),items:e}))}function Ite(e){return nt(Sn(`${Ze}/product-risk-resolve/tasks/${e}`,{params:{user_id:st()}}))}function Pte(e){return nt(Sn(`${Ze}/product-risk-resolve/pending-shop-result`,{params:{user_id:st(),shop_name:e}}))}function Mte(e){return Vo(`/product-risk-resolve/results/${e}/download`)}function _te(){return nt(un(`${Ze}/shop-match/candidates`,{params:{user_id:st()}}))}function Ate(e){return nt(Qt(`${Ze}/shop-match/candidates`,{user_id:st(),shop_name:e}))}function Lte(e){return nt(Sn(`${Ze}/shop-match/candidates/${e}`,{params:{user_id:st()}}))}function Dte(){return nt(un(`${Ze}/shop-match/country-preference`,{params:{user_id:st()}}))}function Bte(e){return nt(sg(`${Ze}/shop-match/country-preference`,{user_id:st(),country_codes:e}))}function Fte(e){return nt(Qt(`${Ze}/shop-match/match-shops`,{user_id:st(),shop_names:e}))}function Vte(){return nt(un(`${Ze}/shop-match/dashboard`,{params:{user_id:st()}}))}function zte(){return nt(un(`${Ze}/shop-match/history`,{params:{user_id:st()}}))}function Hte(e){return nt(Sn(`${Ze}/shop-match/history/${e}`,{params:{user_id:st()}}))}function Kte(e,t,n){return nt(Qt(`${Ze}/shop-match/tasks`,{user_id:st(),items:e,country_codes:t,schedule_times:n}))}function Wte(e){return nt(Sn(`${Ze}/shop-match/tasks/${e}`,{params:{user_id:st()}}))}function jte(e,t){return nt(Qt(`${Ze}/shop-match/tasks/${e}/activate?user_id=${encodeURIComponent(String(st()))}&stage_index=${encodeURIComponent(String(t))}`,void 0))}function Ute(e){return Vo(`/shop-match/results/${e}/download`)}function qte(){return nt(un(`${Ze}/patrol-delete/candidates`,{params:{user_id:st()}}))}function Yte(e){return nt(Qt(`${Ze}/patrol-delete/candidates`,{user_id:st(),shop_name:e}))}function Gte(e){return nt(Sn(`${Ze}/patrol-delete/candidates/${e}`,{params:{user_id:st()}}))}function Xte(){return nt(un(`${Ze}/patrol-delete/conditions`,{params:{user_id:st()}}))}function Jte(e){return nt(Qt(`${Ze}/patrol-delete/conditions`,{user_id:st(),condition_text:e}))}function Zte(e){return nt(Sn(`${Ze}/patrol-delete/conditions/${e}`,{params:{user_id:st()}}))}function Qte(e){return nt(Qt(`${Ze}/patrol-delete/match-shops`,{user_id:st(),shop_names:e}))}function ene(){return nt(un(`${Ze}/patrol-delete/dashboard`,{params:{user_id:st()}}))}function tne(){return nt(un(`${Ze}/patrol-delete/history`,{params:{user_id:st()}}))}function nne(e){return Ms(`${Ze}/patrol-delete/tasks/progress/batch`,e)}function ane(e){return nt(Qt(`${Ze}/patrol-delete/tasks`,{user_id:st(),items:e}))}function one(e,t){return nt(Qt(`${Ze}/patrol-delete/tasks/${e}/result`,t))}function rne(e){return Vo(`/patrol-delete/results/${e}/download`)}function sne(e){return nt(Sn(`${Ze}/patrol-delete/tasks/${e}`,{params:{user_id:st()}}))}function lne(e){return nt(Sn(`${Ze}/patrol-delete/history/${e}`,{params:{user_id:st()}}))}function ine(){return nt(un(`${Ze}/query-asin/candidates`,{params:{user_id:st()}}))}function une(e){return nt(Qt(`${Ze}/query-asin/candidates`,{user_id:st(),shop_name:e}))}function cne(e){return nt(Sn(`${Ze}/query-asin/candidates/${e}`,{params:{user_id:st()}}))}function dne(e){return nt(Qt(`${Ze}/query-asin/match-shops`,{user_id:st(),shop_names:e}))}function fne(){return nt(un(`${Ze}/query-asin/dashboard`,{params:{user_id:st()}}))}function pne(){return nt(un(`${Ze}/query-asin/history`,{params:{user_id:st()}}))}function hne(e){return Ms(`${Ze}/query-asin/tasks/progress/batch`,e)}function vne(e){return nt(Qt(`${Ze}/query-asin/tasks`,{user_id:st(),items:e}))}function mne(e,t){return nt(Qt(`${Ze}/query-asin/tasks/${e}/result`,t))}function gne(e){return Vo(`/query-asin/results/${e}/download`)}function bne(e){return nt(Sn(`${Ze}/query-asin/tasks/${e}`,{params:{user_id:st()}}))}function yne(e){return nt(Sn(`${Ze}/query-asin/history/${e}`,{params:{user_id:st()}}))}function wne(e,t){return nt(Qt(`${Ze}/appearance-patent/parse`,{user_id:st(),files:e,ai_prompt:t}))}function Sne(){return nt(un(`${Ze}/appearance-patent/dashboard`,{params:{user_id:st()}}))}function Cne(){return nt(un(`${Ze}/appearance-patent/history`,{params:{user_id:st(),limit:50}}))}function kne(e,t={}){return Ms(`${Ze}/appearance-patent/tasks/progress/batch`,e,t)}function Ene(e){return nt(Qt(`${Ze}/appearance-patent/tasks/${e}/activate?user_id=${encodeURIComponent(String(st()))}`,void 0))}function xne(e){return nt(Sn(`${Ze}/appearance-patent/tasks/${e}`,{params:{user_id:st()}}))}function Tne(e){return nt(Sn(`${Ze}/appearance-patent/history/${e}`,{params:{user_id:st()}}))}function $ne(e){return Vo(`/appearance-patent/results/${e}/download`)}function One(){return nt(un(`${Ze}/price-track/candidates?user_id=${encodeURIComponent(String(st()))}`))}function Nne(e){return nt(Qt(`${Ze}/price-track/candidates`,{userId:st(),shopName:e}))}function Rne(e){return nt(Sn(`${Ze}/price-track/candidates/${e}?user_id=${encodeURIComponent(String(st()))}`))}function Ine(){return nt(un(`${Ze}/price-track/country-preference?user_id=${encodeURIComponent(String(st()))}`))}function Pne(e){return nt(sg(`${Ze}/price-track/country-preference`,{userId:st(),countryCodes:e}))}function Mne(e,t){return nt(Qt(`${Ze}/price-track/match-shops`,{userId:st(),shopNames:e,asinFiles:t?.asinFiles||[],countryCodes:t?.countryCodes||[]}))}function _ne(e){return Ms(`${Ze}/shop-match/tasks/progress/batch`,e)}function Ane(e){return Ms(`${Ze}/product-risk-resolve/tasks/progress/batch`,e)}function Lne(e){return Ms(`${Ze}/delete-brand/tasks/progress/batch`,e)}function Dne(){return nt(un(`${Ze}/price-track/dashboard?user_id=${encodeURIComponent(String(st()))}`))}function Bne(){return nt(un(`${Ze}/price-track/history?user_id=${encodeURIComponent(String(st()))}`))}function Fne(e){return nt(Sn(`${Ze}/price-track/history/${e}?user_id=${encodeURIComponent(String(st()))}`))}function Vne(e){return nt(Qt(`${Ze}/price-track/tasks`,{...e,userId:st()}))}function zne(e){return nt(Sn(`${Ze}/price-track/tasks/${e}?user_id=${encodeURIComponent(String(st()))}`))}function Hne(e){return nt(Qt(`${Ze}/price-track/loop-runs`,{...e,userId:st()}))}function Kne(e){return nt(un(`${Ze}/price-track/loop-runs/${e}?user_id=${encodeURIComponent(String(st()))}`))}function Wne(e){return nt(Qt(`${Ze}/price-track/loop-runs/${e}/dispatch-next?user_id=${encodeURIComponent(String(st()))}`,void 0))}function jne(e,t){return nt(Qt(`${Ze}/price-track/loop-runs/${e}/child-finished?user_id=${encodeURIComponent(String(st()))}`,{childTaskId:t}))}function Une(e){return nt(Qt(`${Ze}/price-track/loop-runs/${e}/stop?user_id=${encodeURIComponent(String(st()))}`,void 0))}function qne(e){return Ms(`${Ze}/price-track/tasks/progress/batch`,e)}function Yne(e){return Vo(`/price-track/results/${e}/download`)}function Gne(e){return nt(Sn(`${Ze}/price-track/pending-shop-result?user_id=${encodeURIComponent(String(st()))}&shop_name=${encodeURIComponent(e)}`))}function Vo(e){let t=e.startsWith("http://")||e.startsWith("https://")?e:`${Ze}${e}`;!t.startsWith("http://")&&!t.startsWith("https://")&&typeof window<"u"&&(t=`${window.location.origin}${t}`);const n=t.includes("?")?"&":"?";return`${t}${n}user_id=${encodeURIComponent(String(st()))}`}let Hh,gw=!1;function Px(){return Hh=window.pywebview?.api,Hh}function Mee(){gw||typeof window>"u"||!window.addEventListener||(gw=!0,window.addEventListener("pywebviewready",()=>{Px()}))}Mee();function Xne(){return Px()||Hh}export{Sne as $,hte as A,tte as B,vte as C,mte as D,qJ as E,Fe as F,z1 as G,ite as H,ute as I,cte as J,dte as K,$l as L,_ee as M,Ke as N,Lne as O,gte as P,wte as Q,bte as R,yte as S,nte as T,oe as U,J as V,dq as W,cq as X,wne as Y,Ene as Z,xee as _,x as a,Xte as a$,Cne as a0,$ne as a1,xne as a2,Tne as a3,kne as a4,an as a5,ea as a6,Ge as a7,i as a8,rd as a9,Kte as aA,Bte as aB,_ne as aC,jte as aD,ot as aE,_2 as aF,Pne as aG,Ine as aH,One as aI,Dne as aJ,Bne as aK,Nne as aL,Rne as aM,Mne as aN,Gne as aO,Vne as aP,Kne as aQ,Une as aR,jne as aS,Wne as aT,Hne as aU,Yne as aV,Fne as aW,zne as aX,qne as aY,ete as aZ,qte as a_,Hr as aa,xte as ab,Ete as ac,Pte as ad,Nte as ae,Ite as af,$te as ag,Ste as ah,Ote as ai,Ane as aj,Cte as ak,kte as al,Tte as am,Mte as an,Rte as ao,r5 as ap,_te as aq,Vte as ar,zte as as,Dte as at,Ate as au,Lte as av,Fte as aw,Ute as ax,Wte as ay,Hte as az,Y as b,ene as b0,tne as b1,Yte as b2,Jte as b3,Zte as b4,Gte as b5,Qte as b6,ane as b7,one as b8,rne as b9,sne as ba,lne as bb,nne as bc,ine as bd,fne as be,pne as bf,une as bg,cne as bh,dne as bi,vne as bj,mne as bk,gne as bl,bne as bm,yne as bn,hne as bo,a8 as bp,B as c,re as d,H as e,te as f,M as g,w as h,Xne as i,ote as j,rte as k,ste as l,lte as m,T as n,ht as o,ate as p,eO as q,yt as r,Aee as s,Se as t,K1 as u,H1 as v,ct as w,wt as x,fte as y,pte as z}; diff --git a/new_web_source/assets/query-asin-Bw6BQsRN.css b/new_web_source/assets/query-asin-Bw6BQsRN.css new file mode 100644 index 0000000..0876958 --- /dev/null +++ b/new_web_source/assets/query-asin-Bw6BQsRN.css @@ -0,0 +1 @@ +.module-page[data-v-eddc7749]{min-height:100vh;background:#1a1a1a}.main-content[data-v-eddc7749]{display:flex;min-height:calc(100vh - 56px);height:calc(100vh - 56px)}.left-panel[data-v-eddc7749]{width:400px;background:#1e1e1e;padding:20px;overflow-y:auto;border-right:1px solid #2a2a2a}.right-panel[data-v-eddc7749]{flex:1;display:flex;flex-direction:column;min-width:0;background:#1a1a1a}.section-title[data-v-eddc7749]{font-size:13px;color:#bbb;margin-bottom:10px}.input-zone[data-v-eddc7749]{border:1px dashed #3a3a3a;border-radius:10px;padding:16px;background:#252525;margin-bottom:20px}.hint[data-v-eddc7749]{color:#888;font-size:12px;margin-bottom:12px;line-height:1.5;text-align:left}.input-row[data-v-eddc7749]{display:flex;gap:10px;align-items:center}.input-row[data-v-eddc7749] .el-input{flex:1}.opt-btn[data-v-eddc7749]{padding:8px 12px;font-size:12px;color:#ccc;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:6px;cursor:pointer;white-space:nowrap}.opt-btn[data-v-eddc7749]:hover:not(:disabled){color:#3498db;border-color:#3498db}.opt-btn[data-v-eddc7749]:disabled{opacity:.6;cursor:not-allowed}.empty-candidates[data-v-eddc7749]{color:#666;font-size:13px;padding:16px;border:1px dashed #333;border-radius:8px;margin-bottom:16px}.candidate-table-scroll[data-v-eddc7749]{max-height:320px;overflow:auto;margin-bottom:18px;border-radius:8px;border:1px solid #2a2a2a}.candidate-table[data-v-eddc7749]{--el-table-bg-color: #252525;--el-table-tr-bg-color: #252525;--el-table-header-bg-color: #2a2a2a;--el-table-text-color: #ccc;--el-table-border-color: #333}.link-danger[data-v-eddc7749]{background:none;border:none;color:#e74c3c;cursor:pointer;font-size:12px;padding:0}.link-danger[data-v-eddc7749]:hover{text-decoration:underline}.run-row[data-v-eddc7749]{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.btn-run[data-v-eddc7749]{padding:10px 18px;font-size:14px;font-weight:600;color:#fff;background:#3498db;border:none;border-radius:8px;cursor:pointer}.btn-run[data-v-eddc7749]:hover:not(:disabled){background:#2980b9}.btn-run[data-v-eddc7749]:disabled{opacity:.55;cursor:not-allowed}.btn-queue[data-v-eddc7749]{background:#27ae60}.btn-queue[data-v-eddc7749]:hover:not(:disabled){background:#219a52}.loading-msg[data-v-eddc7749]{margin-top:12px;font-size:12px;color:#777;line-height:1.5}.queue-debug-card[data-v-eddc7749]{margin-top:18px;padding:14px;border:1px solid #2a2a2a;border-radius:10px;background:#202020}.queue-debug-title[data-v-eddc7749]{margin-bottom:8px}.queue-debug-line[data-v-eddc7749]{color:#b8c1cc;font-size:12px;line-height:1.6;margin-bottom:8px}.queue-debug-payload[data-v-eddc7749]{margin:0;max-height:220px;overflow:auto;padding:10px;border-radius:8px;background:#141414;color:#8fd3ff;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.panel-header[data-v-eddc7749]{padding:16px 20px;font-size:15px;font-weight:600;color:#e0e0e0;border-bottom:1px solid #2a2a2a}.task-list-wrap[data-v-eddc7749]{flex:1;padding:16px 20px;overflow:auto}.clean-result-summary[data-v-eddc7749]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.summary-card[data-v-eddc7749]{padding:14px 16px;border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e}.summary-card strong[data-v-eddc7749]{display:block;margin-top:8px;font-size:22px;color:#eaf4ff}.summary-label[data-v-eddc7749]{font-size:12px;color:#8d8d8d}.subsection-title[data-v-eddc7749]{font-size:13px;color:#999;margin:8px 0 10px}.empty-tasks[data-v-eddc7749]{color:#666;font-size:13px;padding:16px;text-align:center}.empty-tasks.narrow[data-v-eddc7749]{padding:12px 8px}.match-table[data-v-eddc7749]{margin-bottom:18px}.match-table[data-v-eddc7749] .el-table__body tr:hover>td.el-table__cell,.match-table[data-v-eddc7749] .el-table__body tr.hover-row>td.el-table__cell,.match-table[data-v-eddc7749] .el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-tr-bg-color, #222)!important}.result-table[data-v-eddc7749]{--el-table-bg-color: #222;--el-table-tr-bg-color: #222;--el-table-header-bg-color: #2a2a2a;--el-table-text-color: #ccc;--el-table-border-color: #333}.ok[data-v-eddc7749]{color:#27ae60}.fail[data-v-eddc7749]{color:#e67e22}.result-list-wrap[data-v-eddc7749]{border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e;min-height:220px;margin-top:8px}.result-list-header[data-v-eddc7749]{padding:12px 16px;border-bottom:1px solid #2a2a2a;font-size:14px;color:#ddd}.result-subsection[data-v-eddc7749]{padding:12px 12px 4px}.result-subsection-title[data-v-eddc7749]{font-size:12px;color:#888;margin-bottom:8px}.task-list[data-v-eddc7749]{list-style:none;margin:0;padding:0}.task-item[data-v-eddc7749]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #2a2a2a;border-radius:8px;margin-bottom:8px;background:#222}.left[data-v-eddc7749]{flex:1;min-width:0}.split-result-main[data-v-eddc7749]{display:flex;flex-direction:column;gap:4px}.id[data-v-eddc7749]{font-weight:600;color:#e0e0e0;font-size:13px}.files[data-v-eddc7749]{font-size:12px;color:#888}.task-right[data-v-eddc7749]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.status[data-v-eddc7749]{padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap}.status.success[data-v-eddc7749]{background:#2ecc712e;color:#2ecc71}.status.failed[data-v-eddc7749]{background:#e74c3c2e;color:#ff6b6b}.status.running[data-v-eddc7749]{background:#3498db2e;color:#3498db}.archive[data-v-eddc7749]{padding:6px 10px;border-radius:6px;font-size:12px;background:#3498db2e;color:#69b6ff;border:none;cursor:pointer}.archive[data-v-eddc7749]:hover{background:#3498db47}.btn-delete[data-v-eddc7749]{padding:6px 10px;border-radius:6px;font-size:12px;background:#e74c3c1f;color:#ff8f8f;border:none;cursor:pointer}.btn-delete[data-v-eddc7749]:hover{background:#e74c3c38}@media(max-width:1100px){.main-content[data-v-eddc7749]{flex-direction:column;height:auto}.left-panel[data-v-eddc7749]{width:100%;border-right:none;border-bottom:1px solid #2a2a2a}.clean-result-summary[data-v-eddc7749]{grid-template-columns:repeat(2,minmax(0,1fr))}} diff --git a/new_web_source/assets/query-asin.js b/new_web_source/assets/query-asin.js index 7bdcfb1..48666ca 100644 --- a/new_web_source/assets/query-asin.js +++ b/new_web_source/assets/query-asin.js @@ -1 +1 @@ -import{d as Je,o as Xe,L as Ge,a as u,c as i,b as v,B as Ye,e as n,a5 as Ze,a6 as es,t as r,V as I,W as ss,X as ts,f as p,U as as,n as te,x as Ie,F as ae,r as be,g as h,h as N,ba as ns,bb as os,bc as ls,E as d,bd as rs,be as us,bf as is,i as Se,bg as cs,bh as ds,bi as fs,bj as hs,bk as vs,T as j,bl as ps,_ as ys,aE as ms,q as gs,s as _s}from"./pywebview-C66x_2Dh.js";import{z as ws}from"./zh-cn-CuE9Zzgz.js";/* empty css *//* empty css */const ks={class:"page-shell module-page"},Is={class:"main-content"},bs={class:"left-panel"},Ss={class:"input-zone"},As={class:"input-row"},Cs=["disabled"],Ts={key:0,class:"empty-candidates"},Ns={key:1,class:"candidate-table-scroll"},$s=["onClick"],Es={class:"run-row"},Qs=["disabled"],qs=["disabled"],Ds={key:2,class:"queue-debug-card"},Ms={class:"queue-debug-line"},Ps={key:0,class:"queue-debug-payload"},Rs={class:"right-panel"},Bs={class:"task-list-wrap"},Fs={class:"clean-result-summary"},Ls={class:"summary-card"},xs={class:"summary-card"},Us={class:"summary-card"},Hs={class:"summary-card"},Os={key:0,class:"empty-tasks narrow"},Vs=["onClick"],js={class:"result-list-wrap"},zs={key:0,class:"empty-tasks"},Ks={key:0,class:"result-subsection"},Ws={class:"task-list"},Js={class:"left split-result-main"},Xs=["title"],Gs={class:"files"},Ys={key:0,class:"files"},Zs={key:1,class:"files"},et={key:2,class:"files"},st={class:"files"},tt={class:"files"},at={key:3,class:"files"},nt={class:"task-right"},ot=["onClick"],lt={key:1,class:"result-subsection"},rt={class:"task-list"},ut={class:"left split-result-main"},it=["title"],ct={class:"files"},dt={key:0,class:"files"},ft={key:1,class:"files"},ht={key:2,class:"files"},vt={class:"files"},pt={key:3,class:"files"},yt={class:"files"},mt={key:4,class:"files"},gt={class:"task-right"},_t=["onClick"],wt=["onClick"],Ae=30,kt=Je({__name:"BrandQueryAsinTab",setup(bt){const M=h(""),z=h([]),P=h([]),m=h([]),_=h([]),$=h({candidateCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),R=h(!1),B=h(!1),K=h(!1),y=h(""),W=h(""),f=h([]),c=h(null),b=h(null),S=h(!1),J=h(!1);let A=null;const ne=N(()=>m.value.filter(e=>e.matched&&(e.queryAsins||[]).some(s=>s.asins?.length))),F=N(()=>_.value.filter(e=>!he(e.taskStatus))),X=N(()=>_.value.filter(e=>he(e.taskStatus))),G=N(()=>!!c.value||f.value.length>0),L=N(()=>S.value||G.value),oe=N(()=>S.value&&G.value);function Y(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function le(){return`query-asin:matched:${Y()}`}function re(){return`query-asin:queue-state:${Y()}`}function k(e){return`${(e.shopName||"").trim()}::${e.shopId||""}`}function x(e){return`${e.taskId??0}:${e.resultId??0}`}function ue(e){return new Promise(s=>window.setTimeout(s,e))}function ie(e){const s=e instanceof Error?e.message.toLowerCase():String(e||"").toLowerCase();return s.includes("network error")||s.includes("failed to fetch")||s.includes("timeout")||s.includes("503")||s.includes("502")||s.includes("504")||s.includes("500")||s.includes("load failed")}async function Ce(e,s,o=20){let a=0;for(;;)try{return await e()}catch(l){if(!ie(l)||a>=o-1)throw l;a+=1,s?.(a,o),await ue(j())}}function ce(e,s){return`query-asin:${e}:${s||"shop"}:${Date.now()}`}function Z(e){if(!e)return"-";const s=new Date(e);if(Number.isNaN(s.getTime()))return e;const o=s.getFullYear(),a=String(s.getMonth()+1).padStart(2,"0"),l=String(s.getDate()).padStart(2,"0"),t=String(s.getHours()).padStart(2,"0"),g=String(s.getMinutes()).padStart(2,"0"),se=String(s.getSeconds()).padStart(2,"0");return`${o}-${a}-${l} ${t}:${g}:${se}`}function Te(e){const s=(e||"").trim();return{MATCHED:"已匹配",PENDING:"待匹配",CONFLICT:"需人工确认",INDEX_STALE:"索引过期"}[s]||s||"-"}function Ne(e){const s=(e.matchMessage||"").trim();return s||(e.matched&&e.matchStatus==="MATCHED"?"索引已命中,可推送到 Python 队列":e.matched?"已命中索引,请结合状态列确认":"未命中或未就绪,请检查店铺名")}function $e(e){const s=w(e),o=Math.max(...s.map(a=>a.asins?.length||0),1);return Array.from({length:o},(a,l)=>({shopName:l===0?e.shopName:"",countries:s.map(t=>({country:t.country,asin:t.asins?.[l]||""}))}))}function de(e){const s=w(e),o=s.reduce((l,t)=>l+(t.asins?.length||0),0);return`${s.filter(l=>l.asins?.length).map(l=>l.country).join("、")||"无国家"},共 ${o} 个 ASIN`}function U(e){return(e||[]).map(s=>({country:(s.country||"").trim().toUpperCase(),asins:Array.from(new Set((s.asins||[]).map(o=>(o||"").trim().toUpperCase()).filter(Boolean)))})).filter(s=>s.country&&s.asins.length)}function w(e){return U(e?.queryAsins?.length?e.queryAsins:e?.query_asins)}function H(e){return w(e).some(s=>s.asins.length)}function fe(e){const s=(e||"").trim(),o=[b.value,...f.value,...m.value],a=o.find(t=>(t?.shopName||"").trim()===s&&H(t)),l=o.find(t=>H(t));return w(a||l)}function C(e,s){const o=H(e)?w(e):w(s||void 0);return{...e,queryAsins:o.length?o:fe(e.shopName)}}function he(e){return e==="SUCCESS"||e==="FAILED"||e==="COMPLETED"}function ve(e){return e==="SUCCESS"||e==="COMPLETED"?"已完成":e==="FAILED"?"失败":"执行中"}function pe(e){return e==="SUCCESS"||e==="COMPLETED"?"success":e==="FAILED"?"failed":"running"}function Ee(e){return!!(e.resultId&&(e.fileReady||e.downloadUrl))}function ye(){typeof window>"u"||window.localStorage.setItem(le(),JSON.stringify(m.value))}function Qe(){try{const e=typeof window<"u"?window.localStorage.getItem(le()):null;m.value=e?JSON.parse(e):[]}catch{m.value=[]}}function T(){if(typeof window>"u")return;const e={pendingQueue:f.value,activeTaskId:c.value,activeQueueItem:b.value};window.localStorage.setItem(re(),JSON.stringify(e))}function qe(){try{const e=typeof window<"u"?window.localStorage.getItem(re()):null;if(!e)return;const s=JSON.parse(e);f.value=s.pendingQueue||[],c.value=s.activeTaskId??null,b.value=s.activeQueueItem??null}catch{f.value=[],c.value=null,b.value=null}}function E(){c.value=null,b.value=null,T()}function Q(){G.value||(S.value=!1,K.value=!1,J.value=!1,V(),T())}function De(e){const s=e instanceof Error?e.message:String(e||"");return/记录不存在|任务不存在|不存在|已删除|not\s*found|404/i.test(s)}function Me(e){_.value=_.value.filter(s=>!(e.resultId!=null&&s.resultId===e.resultId||e.taskId!=null&&s.taskId===e.taskId))}function Pe(e,s){const o=new Map;for(const a of e)o.set(k(a),a);for(const a of s)o.set(k(a),a);return Array.from(o.values())}async function q(){z.value=await ns()}async function O(){$.value=await os()}async function ee(){const e=await ls();_.value=(e.items||[]).map(s=>C(s))}async function D(){await Promise.all([O(),ee()])}function me(){if(!c.value){Q();return}if(_.value.some(o=>o.taskId===c.value))return;const s=c.value;E(),y.value=f.value.length?`任务 ${s} 已不存在,已跳过并继续剩余队列`:"当前任务已不存在,已释放本地队列状态",Q()}function Re(e){if(!e.length)return;const s=new Map(e.map(a=>[x(a),C(a)])),o=_.value.map(a=>{const l=s.get(x(a));if(!l)return C(a);const t=H(l)?w(l):w(a).length?w(a):fe(l.shopName||a.shopName);return{...a,...l,queryAsins:t}});for(const a of e){const l=x(a);o.some(t=>x(t)===l)||o.push(C(a))}_.value=o}async function ge(e){const s=Array.from(new Set((e&&e.length?e:F.value.map(a=>a.taskId??0)).filter(a=>Number.isFinite(a)&&a>0)));if(!s.length)return;const o=await ps(s);Re(o.items||[]),(o.missingTaskIds||[]).length&&(await ee(),me())}function Be(){if(V(),!L.value)return;const e=async()=>{A=null,L.value&&(await ge(),L.value&&(A=window.setTimeout(e,j()*2)))};A=window.setTimeout(e,j()*2)}function V(){A&&(window.clearTimeout(A),A=null)}function Fe(e){P.value=e}async function _e(){const e=M.value.trim();if(!e){d.warning("请输入店铺名");return}R.value=!0;try{await rs(e),M.value="",await Promise.all([q(),O()]),d.success("已加入备选区")}catch(s){d.error(s instanceof Error?s.message:"添加失败")}finally{R.value=!1}}async function Le(e){try{await us(e),P.value=P.value.filter(s=>s.id!==e),await Promise.all([q(),O()]),d.success("已删除")}catch(s){d.error(s instanceof Error?s.message:"删除失败")}}function xe(e,s){const o=new Map;for(const a of e)o.set(k(a),a);for(const a of s)o.set(k(a),a);return Array.from(o.values())}async function Ue(){const e=P.value.map(s=>s.shop_name).filter(Boolean);if(!e.length){d.warning("请先勾选备选区店铺");return}B.value=!0;try{const s=await is(e);m.value=xe(m.value,s.items||[]),ye(),d.success(`本次返回 ${s.items?.length||0} 条匹配结果`)}catch(s){d.error(s instanceof Error?s.message:"匹配失败")}finally{B.value=!1}}function He(e){if(L.value){d.warning("队列执行中,请等待当前串行任务结束后再调整");return}m.value=m.value.filter(s=>k(s)!==k(e)),ye()}function Oe(e){return{shopName:e.shopName,matched:e.matched,shopId:e.shopId,platform:e.platform,companyName:e.companyName,matchStatus:e.matchStatus,matchMessage:e.matchMessage,queryAsins:U(e.queryAsins)}}function Ve(e,s){const o=ce(e,s.shopName);return{type:"query-asin-run",ts:Date.now(),data:{taskId:e,user_id:Number(Y())||0,source:"frontend-vue-query-asin",submissionId:o,items:[{shopName:s.shopName,submissionId:o,shopId:s.shopId,platform:s.platform,companyName:s.companyName,matched:s.matched,matchStatus:s.matchStatus,matchMessage:s.matchMessage,queryAsins:U(s.queryAsins)}],query_asins:U(s.queryAsins),query_asin_rows:$e(s)}}}function je(e){return _.value.find(s=>s.taskId===e)}async function ze(e){let s=0;for(;;){try{if(await ge([e]),c.value!==e)return"FAILED";s>0&&(y.value=`任务 ${e} 后端已恢复,继续等待执行结果...`),s=0;const a=je(e)?.taskStatus||"";if(a==="SUCCESS"||a==="FAILED"||a==="COMPLETED")return a}catch(o){if(!ie(o))throw o;if(s+=1,s>=Ae)throw new Error(`任务 ${e} 等待后端恢复超时,请稍后刷新查看状态`);y.value=`任务 ${e} 执行中,正在等待后端服务恢复(${s}/${Ae})...`}await ue(j())}}async function we(){if(!S.value){S.value=!0,K.value=!0,Be();try{const e=Se();if(!e?.enqueue_json)throw new Error("当前客户端未提供 enqueue_json");for(;c.value||f.value.length;){if(c.value){const g=await ze(c.value);y.value=f.value.length>0?`任务 ${c.value} ${g==="SUCCESS"?"已完成":"执行失败"},自动继续下一个(剩余 ${f.value.length} 条)`:`任务 ${c.value} ${g==="SUCCESS"?"已完成":"执行失败"}`,E();continue}const s=f.value.shift();if(T(),!s)break;const o=await Ce(()=>cs([Oe(s)]),(g,se)=>{y.value=`后端服务暂时不可用,正在重试创建任务(${g}/${se})...`}),a=o.items?.[0]?C(o.items[0],s):void 0;if(!a?.taskId||!a.resultId)throw new Error("后端未返回有效任务标识");c.value=o.taskId,b.value=C(s,a),T(),await D();const l=Ve(o.taskId,a);W.value=JSON.stringify(l,null,2);const t=await e.enqueue_json(l);if(!t?.success){await ds(o.taskId,{shops:[{shopName:a.shopName||s.shopName||"",error:t?.error||`任务 ${o.taskId} 推送失败`,shopDone:!0,submissionId:ce(o.taskId,a.shopName||s.shopName)}]}),await D(),y.value=`任务 ${o.taskId} 推送失败,已自动继续下一个任务`,E();continue}y.value=f.value.length>0?`任务 ${o.taskId} 已入队,等待完成后自动继续下一个(剩余 ${f.value.length} 条)`:`任务 ${o.taskId} 已入队,等待执行完成`}y.value="串行队列已执行完成",await D(),d.success("查询ASIN队列已按顺序执行完成")}catch(e){const s=e instanceof Error?e.message:"队列执行失败";y.value=s,d.error(s),await D()}finally{S.value=!1,K.value=!1,V(),T()}}}async function Ke(){J.value=!0,Q();const e=ne.value;if(!e.length){d.warning("请先匹配可用店铺");return}f.value=Pe(f.value,e),T(),y.value=`已加入 ${e.length} 条店铺,开始串行执行`,await we()}async function We(e){if(!e.resultId)return;const s=Se();if(!s?.save_file_from_url_new){d.error("当前客户端未提供下载能力");return}const o=fs(e.resultId),a=e.outputFilename||`${e.shopName||"result"}.xlsx`,l=await s.save_file_from_url_new(o,a);l.success?d.success(`已保存: ${l.path||a}`):l.error&&l.error!=="用户取消"&&d.error(l.error)}async function ke(e){try{if(e.taskId)await hs(e.taskId),c.value===e.taskId&&E();else if(e.resultId)await vs(e.resultId);else throw new Error("缺少可删除的任务标识");await Promise.all([q(),D()]),Q(),d.success("已删除")}catch(s){if(De(s)){e.taskId&&c.value===e.taskId&&E(),Me(e),await q(),Q(),d.success("后端记录已不存在,已同步移除本地记录");return}d.error(s instanceof Error?s.message:"删除失败")}}return Xe(async()=>{Qe(),qe(),await Promise.all([q(),O(),ee()]),me(),(c.value||f.value.length)&&(J.value=!0,y.value=c.value!=null?`检测到未完成队列,继续等待任务 ${c.value} 完成并自动接续后续店铺`:`检测到未完成队列,继续执行剩余 ${f.value.length} 条店铺`,we())}),Ge(()=>{V()}),(e,s)=>{const o=es,a=ss,l=ts;return u(),i("div",ks,[v(Ye,{active:"query-asin"}),n("div",Is,[n("aside",bs,[s[3]||(s[3]=n("div",{class:"section-title"},"店铺输入",-1)),n("div",Ss,[s[1]||(s[1]=n("div",{class:"hint"}," 左侧负责录入店铺并加入备选区,确认命中后推送到 Python 队列。查询ASIN按店铺串行执行:上一个任务完成后会自动开始下一个,失败也会继续下一个。 ",-1)),n("div",As,[v(o,{modelValue:M.value,"onUpdate:modelValue":s[0]||(s[0]=t=>M.value=t),clearable:"",placeholder:"请输入店铺名后回车或点击添加",onKeyup:Ze(_e,["enter"])},null,8,["modelValue"]),n("button",{type:"button",class:"opt-btn",disabled:R.value,onClick:_e},r(R.value?"添加中...":"添加"),9,Cs)])]),s[4]||(s[4]=n("div",{class:"section-title"},"备选区",-1)),z.value.length?(u(),i("div",Ns,[v(l,{data:z.value,"row-key":"id",height:"260",class:"candidate-table",onSelectionChange:Fe},{default:I(()=>[v(a,{type:"selection",width:"42"}),v(a,{prop:"shop_name",label:"店铺名","min-width":"140","show-overflow-tooltip":""}),v(a,{label:"操作",width:"72",align:"center"},{default:I(({row:t})=>[n("button",{type:"button",class:"link-danger",onClick:g=>Le(t.id)}," 删除 ",8,$s)]),_:1})]),_:1},8,["data"])])):(u(),i("div",Ts," 暂无备选店铺,请先输入并添加 ")),n("div",Es,[n("button",{type:"button",class:"btn-run",disabled:B.value,onClick:Ue},r(B.value?"匹配中...":"匹配店铺"),9,Qs),n("button",{type:"button",class:"btn-run btn-queue",disabled:oe.value||!ne.value.length,onClick:Ke},r(oe.value?"串行执行中...":"推送到 Python 队列"),9,qs)]),s[5]||(s[5]=n("p",{class:"loading-msg"}," 当前页面会按店铺串行推送任务,并在任务成功或失败后自动接续下一个任务。服务端临时重启时会自动重试查询状态,恢复后继续后续店铺。 ",-1)),y.value?(u(),i("div",Ds,[s[2]||(s[2]=n("div",{class:"section-title queue-debug-title"},"队列状态",-1)),n("div",Ms,r(y.value),1),W.value?(u(),i("pre",Ps,r(W.value),1)):p("",!0)])):p("",!0)]),n("section",Rs,[s[14]||(s[14]=n("div",{class:"panel-header"},"匹配与任务",-1)),n("div",Bs,[n("div",Fs,[n("div",Ls,[s[6]||(s[6]=n("span",{class:"summary-label"},"备选店铺",-1)),n("strong",null,r($.value.candidateCount),1)]),n("div",xs,[s[7]||(s[7]=n("span",{class:"summary-label"},"已处理任务",-1)),n("strong",null,r($.value.processedTaskCount),1)]),n("div",Us,[s[8]||(s[8]=n("span",{class:"summary-label"},"成功任务",-1)),n("strong",null,r($.value.successTaskCount),1)]),n("div",Hs,[s[9]||(s[9]=n("span",{class:"summary-label"},"失败任务",-1)),n("strong",null,r($.value.failedTaskCount),1)])]),s[13]||(s[13]=n("div",{class:"subsection-title"},"匹配结果",-1)),m.value.length?(u(),as(l,{key:1,data:m.value,"row-key":k,"highlight-current-row":!1,class:"result-table match-table"},{default:I(()=>[v(a,{prop:"shopName",label:"店铺名","min-width":"120"}),v(a,{label:"匹配",width:"72",align:"center"},{default:I(({row:t})=>[n("span",{class:te(t.matched?"ok":"fail")},r(t.matched?"是":"否"),3)]),_:1}),v(a,{prop:"shopId",label:"店铺 ID","min-width":"120","show-overflow-tooltip":""}),v(a,{prop:"platform",label:"平台",width:"88","show-overflow-tooltip":""}),v(a,{prop:"companyName",label:"公司","min-width":"120","show-overflow-tooltip":""}),v(a,{label:"状态",width:"110","show-overflow-tooltip":""},{default:I(({row:t})=>[Ie(r(Te(t.matchStatus)),1)]),_:1}),v(a,{label:"说明","min-width":"180","show-overflow-tooltip":""},{default:I(({row:t})=>[Ie(r(Ne(t)),1)]),_:1}),v(a,{label:"操作",width:"72",align:"center"},{default:I(({row:t})=>[n("button",{type:"button",class:"link-danger",onClick:g=>He(t)}," 删除 ",8,Vs)]),_:1})]),_:1},8,["data"])):(u(),i("div",Os," 完成“匹配店铺”后,这里会展示匹配结果。 ")),n("div",js,[s[12]||(s[12]=n("div",{class:"result-list-header"},[n("span",null,"任务记录")],-1)),!F.value.length&&!X.value.length?(u(),i("div",zs," 暂无任务记录。推送到 Python 队列后,这里会展示当前任务和历史任务。 ")):(u(),i(ae,{key:1},[F.value.length?(u(),i("div",Ks,[s[10]||(s[10]=n("div",{class:"result-subsection-title"},"当前任务",-1)),n("ul",Ws,[(u(!0),i(ae,null,be(F.value,t=>(u(),i("li",{key:`${t.resultId}-${t.taskId}`,class:"task-item"},[n("div",Js,[n("span",{class:"id",title:t.shopName||""},r(t.shopName||"-"),9,Xs),n("div",Gs,"任务 ID: "+r(t.taskId??"-"),1),t.resultId?(u(),i("div",Ys," 结果 ID: "+r(t.resultId),1)):p("",!0),t.shopId?(u(),i("div",Zs," 店铺 ID: "+r(t.shopId),1)):p("",!0),t.platform?(u(),i("div",et," 平台: "+r(t.platform),1)):p("",!0),n("div",st," 创建时间: "+r(Z(t.createdAt)),1),n("div",tt," ASIN结构: "+r(de(t)),1),t.error?(u(),i("div",at," 错误: "+r(t.error),1)):p("",!0)]),n("div",nt,[n("span",{class:te(["status",pe(t.taskStatus)])},r(ve(t.taskStatus)),3),n("button",{type:"button",class:"btn-delete",onClick:g=>ke(t)}," 删除 ",8,ot)])]))),128))])])):p("",!0),X.value.length?(u(),i("div",lt,[s[11]||(s[11]=n("div",{class:"result-subsection-title"},"历史任务",-1)),n("ul",rt,[(u(!0),i(ae,null,be(X.value,t=>(u(),i("li",{key:`${t.resultId}-${t.taskId}`,class:"task-item"},[n("div",ut,[n("span",{class:"id",title:t.shopName||""},r(t.shopName||"-"),9,it),n("div",ct,"任务 ID: "+r(t.taskId??"-"),1),t.resultId?(u(),i("div",dt," 结果 ID: "+r(t.resultId),1)):p("",!0),t.shopId?(u(),i("div",ft," 店铺 ID: "+r(t.shopId),1)):p("",!0),t.platform?(u(),i("div",ht," 平台: "+r(t.platform),1)):p("",!0),n("div",vt," 创建时间: "+r(Z(t.createdAt)),1),t.finishedAt?(u(),i("div",pt," 完成时间: "+r(Z(t.finishedAt)),1)):p("",!0),n("div",yt," ASIN结构: "+r(de(t)),1),t.error?(u(),i("div",mt," 错误: "+r(t.error),1)):p("",!0)]),n("div",gt,[n("span",{class:te(["status",pe(t.taskStatus)])},r(ve(t.taskStatus)),3),Ee(t)?(u(),i("button",{key:0,type:"button",class:"archive",onClick:g=>We(t)}," 下载结果 ",8,_t)):p("",!0),n("button",{type:"button",class:"btn-delete",onClick:g=>ke(t)}," 删除 ",8,wt)])]))),128))])])):p("",!0)],64))])])])])])}}}),It=ys(kt,[["__scopeId","data-v-fc213f9d"]]);ms.locale("zh-cn");gs(It).use(_s,{locale:ws}).mount("#app"); +import{d as Ye,o as Ze,L as es,a as u,c as i,b as v,B as ss,e as n,a5 as ts,a6 as as,t as r,V as b,W as ns,X as os,f as p,U as ls,n as ne,x as Se,F as oe,r as Ce,g as h,h as $,bd as rs,be as us,bf as is,E as d,bg as cs,bh as ds,bi as fs,i as Ae,bj as hs,bk as vs,bl as ps,bm as ys,bn as ms,T as K,bo as gs,_ as _s,aE as ws,q as ks,s as Is}from"./pywebview-BWNiqXug.js";import{z as bs}from"./zh-cn-BbuLS91u.js";/* empty css *//* empty css */import{c as Ss}from"./categorized-timers-JPA-olTr.js";const Cs={class:"page-shell module-page"},As={class:"main-content"},Ts={class:"left-panel"},Ns={class:"input-zone"},Es={class:"input-row"},$s=["disabled"],Qs={key:0,class:"empty-candidates"},qs={key:1,class:"candidate-table-scroll"},Ds=["onClick"],Ms={class:"run-row"},Ps=["disabled"],Rs=["disabled"],Bs={key:2,class:"queue-debug-card"},Fs={class:"queue-debug-line"},Ls={key:0,class:"queue-debug-payload"},xs={class:"right-panel"},Us={class:"task-list-wrap"},Hs={class:"clean-result-summary"},Os={class:"summary-card"},Vs={class:"summary-card"},zs={class:"summary-card"},js={class:"summary-card"},Ks={key:0,class:"empty-tasks narrow"},Ws=["onClick"],Js={class:"result-list-wrap"},Xs={key:0,class:"empty-tasks"},Gs={key:0,class:"result-subsection"},Ys={class:"task-list"},Zs={class:"left split-result-main"},et=["title"],st={class:"files"},tt={key:0,class:"files"},at={key:1,class:"files"},nt={key:2,class:"files"},ot={class:"files"},lt={class:"files"},rt={key:3,class:"files"},ut={class:"task-right"},it=["onClick"],ct={key:1,class:"result-subsection"},dt={class:"task-list"},ft={class:"left split-result-main"},ht=["title"],vt={class:"files"},pt={key:0,class:"files"},yt={key:1,class:"files"},mt={key:2,class:"files"},gt={class:"files"},_t={key:3,class:"files"},wt={class:"files"},kt={key:4,class:"files"},It={class:"task-right"},bt=["onClick"],St=["onClick"],Te=30,Ct=Ye({__name:"BrandQueryAsinTab",setup(Tt){const R=h(""),W=h([]),B=h([]),m=h([]),w=h([]),Q=h({candidateCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),F=h(!1),L=h(!1),J=h(!1),y=h(""),X=h(""),f=h([]),c=h(null),S=h(null),C=h(!1),G=h(!1);let A=null;const T=Ss("query-asin"),le=$(()=>m.value.filter(e=>e.matched&&(e.queryAsins||[]).some(s=>s.asins?.length))),x=$(()=>w.value.filter(e=>!pe(e.taskStatus))),Y=$(()=>w.value.filter(e=>pe(e.taskStatus))),Z=$(()=>!!c.value||f.value.length>0),U=$(()=>C.value||Z.value),re=$(()=>C.value&&Z.value);function ee(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function ue(){return`query-asin:matched:${ee()}`}function ie(){return`query-asin:queue-state:${ee()}`}function I(e){return`${(e.shopName||"").trim()}::${e.shopId||""}`}function H(e){return`${e.taskId??0}:${e.resultId??0}`}let _=!1;function ce(e){return _?Promise.resolve():T.sleep("queue-wait",e)}function Ne(){T.clearCategory("queue-wait")}function de(e){const s=e instanceof Error?e.message.toLowerCase():String(e||"").toLowerCase();return s.includes("network error")||s.includes("failed to fetch")||s.includes("timeout")||s.includes("503")||s.includes("502")||s.includes("504")||s.includes("500")||s.includes("load failed")}async function Ee(e,s,o=20){let a=0;for(;;){if(_)throw new Error("component disposed");try{return await e()}catch(l){if(!de(l)||a>=o-1)throw l;a+=1,s?.(a,o),await ce(K())}}}function fe(e,s){return`query-asin:${e}:${s||"shop"}:${Date.now()}`}function se(e){if(!e)return"-";const s=new Date(e);if(Number.isNaN(s.getTime()))return e;const o=s.getFullYear(),a=String(s.getMonth()+1).padStart(2,"0"),l=String(s.getDate()).padStart(2,"0"),t=String(s.getHours()).padStart(2,"0"),g=String(s.getMinutes()).padStart(2,"0"),ae=String(s.getSeconds()).padStart(2,"0");return`${o}-${a}-${l} ${t}:${g}:${ae}`}function $e(e){const s=(e||"").trim();return{MATCHED:"已匹配",PENDING:"待匹配",CONFLICT:"需人工确认",INDEX_STALE:"索引过期"}[s]||s||"-"}function Qe(e){const s=(e.matchMessage||"").trim();return s||(e.matched&&e.matchStatus==="MATCHED"?"索引已命中,可推送到 Python 队列":e.matched?"已命中索引,请结合状态列确认":"未命中或未就绪,请检查店铺名")}function qe(e){const s=k(e),o=Math.max(...s.map(a=>a.asins?.length||0),1);return Array.from({length:o},(a,l)=>({shopName:l===0?e.shopName:"",countries:s.map(t=>({country:t.country,asin:t.asins?.[l]||""}))}))}function he(e){const s=k(e),o=s.reduce((l,t)=>l+(t.asins?.length||0),0);return`${s.filter(l=>l.asins?.length).map(l=>l.country).join("、")||"无国家"},共 ${o} 个 ASIN`}function O(e){return(e||[]).map(s=>({country:(s.country||"").trim().toUpperCase(),asins:Array.from(new Set((s.asins||[]).map(o=>(o||"").trim().toUpperCase()).filter(Boolean)))})).filter(s=>s.country&&s.asins.length)}function k(e){return O(e?.queryAsins?.length?e.queryAsins:e?.query_asins)}function V(e){return k(e).some(s=>s.asins.length)}function ve(e){const s=(e||"").trim(),o=[S.value,...f.value,...m.value],a=o.find(t=>(t?.shopName||"").trim()===s&&V(t)),l=o.find(t=>V(t));return k(a||l)}function N(e,s){const o=V(e)?k(e):k(s||void 0);return{...e,queryAsins:o.length?o:ve(e.shopName)}}function pe(e){return e==="SUCCESS"||e==="FAILED"||e==="COMPLETED"}function ye(e){return e==="SUCCESS"||e==="COMPLETED"?"已完成":e==="FAILED"?"失败":"执行中"}function me(e){return e==="SUCCESS"||e==="COMPLETED"?"success":e==="FAILED"?"failed":"running"}function De(e){return!!(e.resultId&&(e.fileReady||e.downloadUrl))}function ge(){typeof window>"u"||window.localStorage.setItem(ue(),JSON.stringify(m.value))}function Me(){try{const e=typeof window<"u"?window.localStorage.getItem(ue()):null;m.value=e?JSON.parse(e):[]}catch{m.value=[]}}function E(){if(typeof window>"u")return;const e={pendingQueue:f.value,activeTaskId:c.value,activeQueueItem:S.value};window.localStorage.setItem(ie(),JSON.stringify(e))}function Pe(){try{const e=typeof window<"u"?window.localStorage.getItem(ie()):null;if(!e)return;const s=JSON.parse(e);f.value=s.pendingQueue||[],c.value=s.activeTaskId??null,S.value=s.activeQueueItem??null}catch{f.value=[],c.value=null,S.value=null}}function q(){c.value=null,S.value=null,E()}function D(){Z.value||(C.value=!1,J.value=!1,G.value=!1,j(),E())}function Re(e){const s=e instanceof Error?e.message:String(e||"");return/记录不存在|任务不存在|不存在|已删除|not\s*found|404/i.test(s)}function Be(e){w.value=w.value.filter(s=>!(e.resultId!=null&&s.resultId===e.resultId||e.taskId!=null&&s.taskId===e.taskId))}function Fe(e,s){const o=new Map;for(const a of e)o.set(I(a),a);for(const a of s)o.set(I(a),a);return Array.from(o.values())}async function M(){W.value=await rs()}async function z(){Q.value=await us()}async function te(){const e=await is();w.value=(e.items||[]).map(s=>N(s))}async function P(){await Promise.all([z(),te()])}function _e(){if(!c.value){D();return}if(w.value.some(o=>o.taskId===c.value))return;const s=c.value;q(),y.value=f.value.length?`任务 ${s} 已不存在,已跳过并继续剩余队列`:"当前任务已不存在,已释放本地队列状态",D()}function Le(e){if(!e.length)return;const s=new Map(e.map(a=>[H(a),N(a)])),o=w.value.map(a=>{const l=s.get(H(a));if(!l)return N(a);const t=V(l)?k(l):k(a).length?k(a):ve(l.shopName||a.shopName);return{...a,...l,queryAsins:t}});for(const a of e){const l=H(a);o.some(t=>H(t)===l)||o.push(N(a))}w.value=o}async function we(e){const s=Array.from(new Set((e&&e.length?e:x.value.map(a=>a.taskId??0)).filter(a=>Number.isFinite(a)&&a>0)));if(!s.length)return;const o=await gs(s);Le(o.items||[]),(o.missingTaskIds||[]).length&&(await te(),_e())}function xe(){if(j(),_||!U.value)return;const e=async()=>{A=null,!(_||!U.value)&&(await we(),!_&&U.value&&(A=T.setTimeout("history-poll",e,K()*2)))};A=T.setTimeout("history-poll",e,K()*2)}function j(){A&&(T.clearTimer("history-poll",A),A=null)}function Ue(e){B.value=e}async function ke(){const e=R.value.trim();if(!e){d.warning("请输入店铺名");return}F.value=!0;try{await cs(e),R.value="",await Promise.all([M(),z()]),d.success("已加入备选区")}catch(s){d.error(s instanceof Error?s.message:"添加失败")}finally{F.value=!1}}async function He(e){try{await ds(e),B.value=B.value.filter(s=>s.id!==e),await Promise.all([M(),z()]),d.success("已删除")}catch(s){d.error(s instanceof Error?s.message:"删除失败")}}function Oe(e,s){const o=new Map;for(const a of e)o.set(I(a),a);for(const a of s)o.set(I(a),a);return Array.from(o.values())}async function Ve(){const e=B.value.map(s=>s.shop_name).filter(Boolean);if(!e.length){d.warning("请先勾选备选区店铺");return}L.value=!0;try{const s=await fs(e);m.value=Oe(m.value,s.items||[]),ge(),d.success(`本次返回 ${s.items?.length||0} 条匹配结果`)}catch(s){d.error(s instanceof Error?s.message:"匹配失败")}finally{L.value=!1}}function ze(e){if(U.value){d.warning("队列执行中,请等待当前串行任务结束后再调整");return}m.value=m.value.filter(s=>I(s)!==I(e)),ge()}function je(e){return{shopName:e.shopName,matched:e.matched,shopId:e.shopId,platform:e.platform,companyName:e.companyName,matchStatus:e.matchStatus,matchMessage:e.matchMessage,queryAsins:O(e.queryAsins)}}function Ke(e,s){const o=fe(e,s.shopName);return{type:"query-asin-run",ts:Date.now(),data:{taskId:e,user_id:Number(ee())||0,source:"frontend-vue-query-asin",submissionId:o,items:[{shopName:s.shopName,submissionId:o,shopId:s.shopId,platform:s.platform,companyName:s.companyName,matched:s.matched,matchStatus:s.matchStatus,matchMessage:s.matchMessage,queryAsins:O(s.queryAsins)}],query_asins:O(s.queryAsins),query_asin_rows:qe(s)}}}function We(e){return w.value.find(s=>s.taskId===e)}async function Je(e){let s=0;for(;;){if(_)return"STOPPED";try{if(await we([e]),c.value!==e)return"FAILED";s>0&&(y.value=`任务 ${e} 后端已恢复,继续等待执行结果...`),s=0;const a=We(e)?.taskStatus||"";if(a==="SUCCESS"||a==="FAILED"||a==="COMPLETED")return a}catch(o){if(!de(o))throw o;if(s+=1,s>=Te)throw new Error(`任务 ${e} 等待后端恢复超时,请稍后刷新查看状态`);y.value=`任务 ${e} 执行中,正在等待后端服务恢复(${s}/${Te})...`}await ce(K())}}async function Ie(){if(!(_||C.value)){C.value=!0,J.value=!0,xe();try{const e=Ae();if(!e?.enqueue_json)throw new Error("当前客户端未提供 enqueue_json");for(;!_&&(c.value||f.value.length);){if(c.value){const g=await Je(c.value);y.value=f.value.length>0?`任务 ${c.value} ${g==="SUCCESS"?"已完成":"执行失败"},自动继续下一个(剩余 ${f.value.length} 条)`:`任务 ${c.value} ${g==="SUCCESS"?"已完成":"执行失败"}`,q();continue}const s=f.value.shift();if(E(),!s)break;const o=await Ee(()=>hs([je(s)]),(g,ae)=>{y.value=`后端服务暂时不可用,正在重试创建任务(${g}/${ae})...`}),a=o.items?.[0]?N(o.items[0],s):void 0;if(!a?.taskId||!a.resultId)throw new Error("后端未返回有效任务标识");c.value=o.taskId,S.value=N(s,a),E(),await P();const l=Ke(o.taskId,a);X.value=JSON.stringify(l,null,2);const t=await e.enqueue_json(l);if(!t?.success){await vs(o.taskId,{shops:[{shopName:a.shopName||s.shopName||"",error:t?.error||`任务 ${o.taskId} 推送失败`,shopDone:!0,submissionId:fe(o.taskId,a.shopName||s.shopName)}]}),await P(),y.value=`任务 ${o.taskId} 推送失败,已自动继续下一个任务`,q();continue}y.value=f.value.length>0?`任务 ${o.taskId} 已入队,等待完成后自动继续下一个(剩余 ${f.value.length} 条)`:`任务 ${o.taskId} 已入队,等待执行完成`}y.value="串行队列已执行完成",await P(),d.success("查询ASIN队列已按顺序执行完成")}catch(e){if(_)return;const s=e instanceof Error?e.message:"队列执行失败";y.value=s,d.error(s),await P()}finally{C.value=!1,J.value=!1,j(),E()}}}async function Xe(){G.value=!0,D();const e=le.value;if(!e.length){d.warning("请先匹配可用店铺");return}f.value=Fe(f.value,e),E(),y.value=`已加入 ${e.length} 条店铺,开始串行执行`,await Ie()}async function Ge(e){if(!e.resultId)return;const s=Ae();if(!s?.save_file_from_url_new){d.error("当前客户端未提供下载能力");return}const o=ps(e.resultId),a=e.outputFilename||`${e.shopName||"result"}.xlsx`,l=await s.save_file_from_url_new(o,a);l.success?d.success(`已保存: ${l.path||a}`):l.error&&l.error!=="用户取消"&&d.error(l.error)}async function be(e){try{if(e.taskId)await ys(e.taskId),c.value===e.taskId&&q();else if(e.resultId)await ms(e.resultId);else throw new Error("缺少可删除的任务标识");await Promise.all([M(),P()]),D(),d.success("已删除")}catch(s){if(Re(s)){e.taskId&&c.value===e.taskId&&q(),Be(e),await M(),D(),d.success("后端记录已不存在,已同步移除本地记录");return}d.error(s instanceof Error?s.message:"删除失败")}}return Ze(async()=>{Me(),Pe(),await Promise.all([M(),z(),te()]),_e(),(c.value||f.value.length)&&(G.value=!0,y.value=c.value!=null?`检测到未完成队列,继续等待任务 ${c.value} 完成并自动接续后续店铺`:`检测到未完成队列,继续执行剩余 ${f.value.length} 条店铺`,Ie())}),es(()=>{_=!0,j(),Ne(),T.clearScope()}),(e,s)=>{const o=as,a=ns,l=os;return u(),i("div",Cs,[v(ss,{active:"query-asin"}),n("div",As,[n("aside",Ts,[s[3]||(s[3]=n("div",{class:"section-title"},"店铺输入",-1)),n("div",Ns,[s[1]||(s[1]=n("div",{class:"hint"}," 左侧负责录入店铺并加入备选区,确认命中后推送到 Python 队列。查询ASIN按店铺串行执行:上一个任务完成后会自动开始下一个,失败也会继续下一个。 ",-1)),n("div",Es,[v(o,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=t=>R.value=t),clearable:"",placeholder:"请输入店铺名后回车或点击添加",onKeyup:ts(ke,["enter"])},null,8,["modelValue"]),n("button",{type:"button",class:"opt-btn",disabled:F.value,onClick:ke},r(F.value?"添加中...":"添加"),9,$s)])]),s[4]||(s[4]=n("div",{class:"section-title"},"备选区",-1)),W.value.length?(u(),i("div",qs,[v(l,{data:W.value,"row-key":"id",height:"260",class:"candidate-table",onSelectionChange:Ue},{default:b(()=>[v(a,{type:"selection",width:"42"}),v(a,{prop:"shop_name",label:"店铺名","min-width":"140","show-overflow-tooltip":""}),v(a,{label:"操作",width:"72",align:"center"},{default:b(({row:t})=>[n("button",{type:"button",class:"link-danger",onClick:g=>He(t.id)}," 删除 ",8,Ds)]),_:1})]),_:1},8,["data"])])):(u(),i("div",Qs," 暂无备选店铺,请先输入并添加 ")),n("div",Ms,[n("button",{type:"button",class:"btn-run",disabled:L.value,onClick:Ve},r(L.value?"匹配中...":"匹配店铺"),9,Ps),n("button",{type:"button",class:"btn-run btn-queue",disabled:re.value||!le.value.length,onClick:Xe},r(re.value?"串行执行中...":"推送到 Python 队列"),9,Rs)]),s[5]||(s[5]=n("p",{class:"loading-msg"}," 当前页面会按店铺串行推送任务,并在任务成功或失败后自动接续下一个任务。服务端临时重启时会自动重试查询状态,恢复后继续后续店铺。 ",-1)),y.value?(u(),i("div",Bs,[s[2]||(s[2]=n("div",{class:"section-title queue-debug-title"},"队列状态",-1)),n("div",Fs,r(y.value),1),X.value?(u(),i("pre",Ls,r(X.value),1)):p("",!0)])):p("",!0)]),n("section",xs,[s[14]||(s[14]=n("div",{class:"panel-header"},"匹配与任务",-1)),n("div",Us,[n("div",Hs,[n("div",Os,[s[6]||(s[6]=n("span",{class:"summary-label"},"备选店铺",-1)),n("strong",null,r(Q.value.candidateCount),1)]),n("div",Vs,[s[7]||(s[7]=n("span",{class:"summary-label"},"已处理任务",-1)),n("strong",null,r(Q.value.processedTaskCount),1)]),n("div",zs,[s[8]||(s[8]=n("span",{class:"summary-label"},"成功任务",-1)),n("strong",null,r(Q.value.successTaskCount),1)]),n("div",js,[s[9]||(s[9]=n("span",{class:"summary-label"},"失败任务",-1)),n("strong",null,r(Q.value.failedTaskCount),1)])]),s[13]||(s[13]=n("div",{class:"subsection-title"},"匹配结果",-1)),m.value.length?(u(),ls(l,{key:1,data:m.value,"row-key":I,"highlight-current-row":!1,class:"result-table match-table"},{default:b(()=>[v(a,{prop:"shopName",label:"店铺名","min-width":"120"}),v(a,{label:"匹配",width:"72",align:"center"},{default:b(({row:t})=>[n("span",{class:ne(t.matched?"ok":"fail")},r(t.matched?"是":"否"),3)]),_:1}),v(a,{prop:"shopId",label:"店铺 ID","min-width":"120","show-overflow-tooltip":""}),v(a,{prop:"platform",label:"平台",width:"88","show-overflow-tooltip":""}),v(a,{prop:"companyName",label:"公司","min-width":"120","show-overflow-tooltip":""}),v(a,{label:"状态",width:"110","show-overflow-tooltip":""},{default:b(({row:t})=>[Se(r($e(t.matchStatus)),1)]),_:1}),v(a,{label:"说明","min-width":"180","show-overflow-tooltip":""},{default:b(({row:t})=>[Se(r(Qe(t)),1)]),_:1}),v(a,{label:"操作",width:"72",align:"center"},{default:b(({row:t})=>[n("button",{type:"button",class:"link-danger",onClick:g=>ze(t)}," 删除 ",8,Ws)]),_:1})]),_:1},8,["data"])):(u(),i("div",Ks," 完成“匹配店铺”后,这里会展示匹配结果。 ")),n("div",Js,[s[12]||(s[12]=n("div",{class:"result-list-header"},[n("span",null,"任务记录")],-1)),!x.value.length&&!Y.value.length?(u(),i("div",Xs," 暂无任务记录。推送到 Python 队列后,这里会展示当前任务和历史任务。 ")):(u(),i(oe,{key:1},[x.value.length?(u(),i("div",Gs,[s[10]||(s[10]=n("div",{class:"result-subsection-title"},"当前任务",-1)),n("ul",Ys,[(u(!0),i(oe,null,Ce(x.value,t=>(u(),i("li",{key:`${t.resultId}-${t.taskId}`,class:"task-item"},[n("div",Zs,[n("span",{class:"id",title:t.shopName||""},r(t.shopName||"-"),9,et),n("div",st,"任务 ID: "+r(t.taskId??"-"),1),t.resultId?(u(),i("div",tt," 结果 ID: "+r(t.resultId),1)):p("",!0),t.shopId?(u(),i("div",at," 店铺 ID: "+r(t.shopId),1)):p("",!0),t.platform?(u(),i("div",nt," 平台: "+r(t.platform),1)):p("",!0),n("div",ot," 创建时间: "+r(se(t.createdAt)),1),n("div",lt," ASIN结构: "+r(he(t)),1),t.error?(u(),i("div",rt," 错误: "+r(t.error),1)):p("",!0)]),n("div",ut,[n("span",{class:ne(["status",me(t.taskStatus)])},r(ye(t.taskStatus)),3),n("button",{type:"button",class:"btn-delete",onClick:g=>be(t)}," 删除 ",8,it)])]))),128))])])):p("",!0),Y.value.length?(u(),i("div",ct,[s[11]||(s[11]=n("div",{class:"result-subsection-title"},"历史任务",-1)),n("ul",dt,[(u(!0),i(oe,null,Ce(Y.value,t=>(u(),i("li",{key:`${t.resultId}-${t.taskId}`,class:"task-item"},[n("div",ft,[n("span",{class:"id",title:t.shopName||""},r(t.shopName||"-"),9,ht),n("div",vt,"任务 ID: "+r(t.taskId??"-"),1),t.resultId?(u(),i("div",pt," 结果 ID: "+r(t.resultId),1)):p("",!0),t.shopId?(u(),i("div",yt," 店铺 ID: "+r(t.shopId),1)):p("",!0),t.platform?(u(),i("div",mt," 平台: "+r(t.platform),1)):p("",!0),n("div",gt," 创建时间: "+r(se(t.createdAt)),1),t.finishedAt?(u(),i("div",_t," 完成时间: "+r(se(t.finishedAt)),1)):p("",!0),n("div",wt," ASIN结构: "+r(he(t)),1),t.error?(u(),i("div",kt," 错误: "+r(t.error),1)):p("",!0)]),n("div",It,[n("span",{class:ne(["status",me(t.taskStatus)])},r(ye(t.taskStatus)),3),De(t)?(u(),i("button",{key:0,type:"button",class:"archive",onClick:g=>Ge(t)}," 下载结果 ",8,bt)):p("",!0),n("button",{type:"button",class:"btn-delete",onClick:g=>be(t)}," 删除 ",8,St)])]))),128))])])):p("",!0)],64))])])])])])}}}),At=_s(Ct,[["__scopeId","data-v-eddc7749"]]);ws.locale("zh-cn");ks(At).use(Is,{locale:bs}).mount("#app"); diff --git a/new_web_source/assets/shop-match-CxCKUsqS.css b/new_web_source/assets/shop-match-CxCKUsqS.css new file mode 100644 index 0000000..5a8718b --- /dev/null +++ b/new_web_source/assets/shop-match-CxCKUsqS.css @@ -0,0 +1 @@ +.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);white-space:nowrap;cursor:pointer;height:32px;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;line-height:1;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);outline:none;justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:8px 15px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";border-radius:inherit;background-color:var(--el-mask-color-extra-light);position:absolute;inset:-1px}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-dashed{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary);border-style:dashed}.el-button.is-circle{border-radius:50%;width:32px;padding:8px}.el-button.is-text{color:var(--el-button-text-color);background-color:#0000;border:0 solid #0000}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{color:var(--el-button-text-color);background:0 0;border-color:#0000;height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button.is-link:not(.is-disabled):hover{background-color:#0000;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);background-color:#0000;border-color:#0000}.el-button--text{color:var(--el-color-primary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);background-color:#0000;border-color:#0000}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);background-color:#0000;border-color:#0000}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--primary.is-dashed{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-text-color:var(--el-color-primary-dark-2);--el-button-active-bg-color:var(--el-color-primary-light-9);--el-button-active-border-color:var(--el-color-primary-dark-2)}.el-button--primary.is-dashed.is-disabled,.el-button--primary.is-dashed.is-disabled:hover,.el-button--primary.is-dashed.is-disabled:focus,.el-button--primary.is-dashed.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--success.is-dashed{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-success);--el-button-hover-bg-color:var(--el-color-success-light-9);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-text-color:var(--el-color-success-dark-2);--el-button-active-bg-color:var(--el-color-success-light-9);--el-button-active-border-color:var(--el-color-success-dark-2)}.el-button--success.is-dashed.is-disabled,.el-button--success.is-dashed.is-disabled:hover,.el-button--success.is-dashed.is-disabled:focus,.el-button--success.is-dashed.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--warning.is-dashed{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-warning);--el-button-hover-bg-color:var(--el-color-warning-light-9);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-text-color:var(--el-color-warning-dark-2);--el-button-active-bg-color:var(--el-color-warning-light-9);--el-button-active-border-color:var(--el-color-warning-dark-2)}.el-button--warning.is-dashed.is-disabled,.el-button--warning.is-dashed.is-disabled:hover,.el-button--warning.is-dashed.is-disabled:focus,.el-button--warning.is-dashed.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--danger.is-dashed{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-danger);--el-button-hover-bg-color:var(--el-color-danger-light-9);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-text-color:var(--el-color-danger-dark-2);--el-button-active-bg-color:var(--el-color-danger-light-9);--el-button-active-border-color:var(--el-color-danger-dark-2)}.el-button--danger.is-dashed.is-disabled,.el-button--danger.is-dashed.is-disabled:hover,.el-button--danger.is-dashed.is-disabled:focus,.el-button--danger.is-dashed.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--info.is-dashed{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-info);--el-button-hover-bg-color:var(--el-color-info-light-9);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-text-color:var(--el-color-info-dark-2);--el-button-active-bg-color:var(--el-color-info-light-9);--el-button-active-border-color:var(--el-color-info-dark-2)}.el-button--info.is-dashed.is-disabled,.el-button--info.is-dashed.is-disabled:hover,.el-button--info.is-dashed.is-disabled:focus,.el-button--info.is-dashed.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:5px 11px;font-size:12px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-date-table{-webkit-user-select:none;user-select:none;font-size:12px}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;text-align:center;cursor:pointer;width:32px;height:30px;padding:4px 0;position:relative}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;width:24px;height:24px;margin:0 auto;line-height:24px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.start-date .el-date-table-cell__text,.el-date-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.start-date .el-date-table-cell,.el-date-table td.end-date .el-date-table-cell{color:#fff}.el-date-table td.start-date .el-date-table-cell__text,.el-date-table td.end-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{color:var(--el-datepicker-header-text-color);border-bottom:solid 1px var(--el-border-color-lighter);padding:5px;font-weight:400}.el-date-table th.el-date-table__week-header{width:24px;padding:0}.el-month-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-month-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.start-date .el-date-table-cell__text,.el-month-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{width:54px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.start-date .el-date-table-cell,.el-month-table td.end-date .el-date-table-cell{color:#fff}.el-month-table td.start-date .el-date-table-cell__text,.el-month-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.start-date .el-date-table-cell__text,.el-year-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{width:60px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.start-date .el-date-table-cell,.el-year-table td.end-date .el-date-table-cell{color:#fff}.el-year-table td.start-date .el-date-table-cell__text,.el-year-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{vertical-align:top;width:50%;max-height:192px;display:inline-block;position:relative;overflow:auto}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);width:100%;z-index:var(--el-index-normal);text-align:center;cursor:pointer;height:30px;font-size:12px;line-height:30px;position:absolute;left:0}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{text-align:center;padding:0}.el-time-spinner__list{text-align:center;margin:0;padding:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";width:100%;height:80px;display:block}.el-time-spinner__item{height:32px;color:var(--el-text-color-regular);font-size:12px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;text-align:left;vertical-align:middle;position:relative}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{height:inherit;color:var(--el-text-color-placeholder);float:left;font-size:14px}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;width:39%;height:30px;line-height:30px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:#0000;border:none;outline:none;margin:0;padding:0;display:inline-block}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{overflow-wrap:break-word;height:100%;color:var(--el-text-color-primary);flex:1;justify-content:center;align-items:center;margin:0;padding:0 5px;font-size:14px;display:inline-flex}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer;font-size:14px}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{vertical-align:middle;align-items:center;padding:0 10px;display:inline-flex}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{height:38px;font-size:14px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{height:22px;font-size:12px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:hover,.el-range-editor.is-disabled:focus{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-datepicker-bg-color);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));line-height:30px}.el-picker-panel .el-time-panel{border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-datepicker-bg-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body:after,.el-picker-panel__body-wrapper:after{content:"";clear:both;display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);text-align:right;background-color:var(--el-datepicker-bg-color);padding:4px 12px;font-size:0;position:relative}.el-picker-panel__shortcut{width:100%;color:var(--el-datepicker-text-color);text-align:left;cursor:pointer;background-color:#0000;border:0;outline:none;padding-left:12px;font-size:14px;line-height:28px;display:block}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{color:var(--el-datepicker-active-color);background-color:#e6f1fe}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);cursor:pointer;background-color:#0000;border-radius:2px;outline:none;padding:0 20px;font-size:12px;line-height:24px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{color:var(--el-datepicker-icon-color);cursor:pointer;background:0 0;border:0;outline:none;margin-top:8px;padding:1px 6px;font-size:12px;line-height:1}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn.is-disabled .el-icon{cursor:inherit}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel.is-disabled .el-picker-panel__prev-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__prev-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__prev-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__next-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__next-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__next-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__icon-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__icon-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__icon-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__shortcut{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__shortcut:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__shortcut .el-icon{cursor:inherit}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;padding-top:6px;position:absolute;top:0;bottom:0;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-datepicker-bg-color);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-picker__header{text-align:center;padding:12px 12px 0}.el-date-picker__header--bordered{border-bottom:solid 1px var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{text-align:center;padding:10px}.el-date-picker__time-label{float:left;cursor:pointer;margin-left:10px;line-height:30px}.el-date-picker .el-time-panel{position:absolute}.el-date-picker.is-disabled .el-date-picker__header-label{color:var(--el-text-color-disabled)}.el-date-picker.is-disabled .el-date-picker__header-label:hover{cursor:not-allowed}.el-date-picker.is-disabled .el-date-picker__header-label .el-icon{cursor:inherit}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{text-align:center;height:28px;position:relative}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{margin-right:50px;font-size:16px;font-weight:500}.el-date-range-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;width:50%;margin:0;padding:16px;display:table-cell}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-range-picker__time-header>.el-icon-arrow-right{vertical-align:middle;color:var(--el-datepicker-icon-color);font-size:20px;display:table-cell}.el-date-range-picker__time-picker-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{z-index:1;background:#fff;position:absolute;top:13px;right:0}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-range-picker.is-disabled .el-date-range-picker__header-label{color:var(--el-text-color-disabled)}.el-date-range-picker.is-disabled .el-date-range-picker__header-label:hover{cursor:not-allowed}.el-date-range-picker.is-disabled .el-date-range-picker__header-label .el-icon{cursor:inherit}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{text-align:center;z-index:1;padding:10px;position:relative}.el-time-range-picker__cell{box-sizing:border-box;width:50%;margin:0;padding:4px 7px 7px;display:inline-block}.el-time-range-picker__header{text-align:center;margin-bottom:5px;font-size:14px}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{width:180px;z-index:var(--el-index-top);-webkit-user-select:none;user-select:none;box-sizing:content-box;border-radius:2px;position:relative;left:0}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";z-index:-1;box-sizing:border-box;text-align:left;height:32px;margin-top:-16px;padding-top:6px;position:absolute;top:50%;left:0;right:0}.el-time-panel__content:after{margin-left:12%;margin-right:12%;left:50%}.el-time-panel__content:before{border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));text-align:right;box-sizing:border-box;height:36px;padding:4px;line-height:25px}.el-time-panel__btn{cursor:pointer;color:var(--el-text-color-primary);background-color:#0000;border:none;outline:none;margin:0 5px;padding:0 5px;font-size:12px;line-height:28px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter)}.el-picker-panel.is-border .el-picker-panel__body-wrapper{position:relative}.el-picker-panel.is-border.el-picker-panel [slot=sidebar],.el-picker-panel.is-border.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;height:100%;padding-top:6px;position:absolute;top:0;overflow:auto}.module-page[data-v-13134d73]{min-height:100vh;background:#1a1a1a}.main-content[data-v-13134d73]{display:flex;min-height:calc(100vh - 56px);height:calc(100vh - 56px)}.left-panel[data-v-13134d73]{width:400px;background:#1e1e1e;padding:20px;overflow-y:auto;border-right:1px solid #2a2a2a}.right-panel[data-v-13134d73]{flex:1;display:flex;flex-direction:column;min-width:0;background:#1a1a1a}.section-title[data-v-13134d73]{font-size:13px;color:#bbb;margin-bottom:10px}.input-zone[data-v-13134d73]{border:1px dashed #3a3a3a;border-radius:10px;padding:16px;background:#252525;margin-bottom:20px}.hint[data-v-13134d73]{color:#888;font-size:12px;margin-bottom:12px;line-height:1.5;text-align:left}.country-pref-hint[data-v-13134d73]{margin-top:-4px}.country-pref-checks[data-v-13134d73]{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:12px}.country-check-row[data-v-13134d73]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;color:#ccc}.country-check-input[data-v-13134d73]{width:16px;height:16px;accent-color:#409eff;cursor:pointer;flex-shrink:0}.country-check-text[data-v-13134d73]{line-height:1.3}.country-order-panel[data-v-13134d73]{border:1px solid #333;border-radius:8px;padding:10px 12px;background:#252525;margin-bottom:14px}.country-order-caption[data-v-13134d73]{font-size:11px;color:#777;margin-bottom:8px}.country-order-list[data-v-13134d73]{display:flex;flex-direction:column;gap:6px}.country-drag-row[data-v-13134d73]{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#2c2c2c;border-radius:6px;border:1px solid #3a3a3a;cursor:grab;-webkit-user-select:none;user-select:none}.country-drag-row.dragging[data-v-13134d73]{opacity:.55;border-color:#3498db}.drag-handle[data-v-13134d73]{color:#666;font-size:12px;letter-spacing:-2px}.country-drag-label[data-v-13134d73]{font-size:12px;color:#ccc}.country-pref-status[data-v-13134d73]{font-size:11px;color:#888;margin-bottom:10px}.input-row[data-v-13134d73]{display:flex;gap:10px;align-items:center}.input-row[data-v-13134d73] .el-input{flex:1}.opt-btn[data-v-13134d73],.schedule-remove[data-v-13134d73],.schedule-add[data-v-13134d73]{padding:8px 12px;font-size:12px;color:#ccc;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:6px;cursor:pointer;white-space:nowrap}.opt-btn[data-v-13134d73]:hover:not(:disabled),.schedule-remove[data-v-13134d73]:hover:not(:disabled),.schedule-add[data-v-13134d73]:hover:not(:disabled){color:#3498db;border-color:#3498db}.opt-btn[data-v-13134d73]:disabled,.schedule-remove[data-v-13134d73]:disabled,.schedule-add[data-v-13134d73]:disabled{opacity:.6;cursor:not-allowed}.empty-candidates[data-v-13134d73]{color:#666;font-size:13px;padding:16px;border:1px dashed #333;border-radius:8px;margin-bottom:16px}.candidate-table-scroll[data-v-13134d73]{max-height:280px;overflow:auto;margin-bottom:16px;border-radius:8px;border:1px solid #2a2a2a}.candidate-table[data-v-13134d73]{--el-table-bg-color: #252525;--el-table-tr-bg-color: #252525;--el-table-header-bg-color: #2a2a2a;--el-table-text-color: #ccc;--el-table-border-color: #333}.schedule-switch[data-v-13134d73]{display:flex;align-items:center;gap:8px;color:#ccc;font-size:12px;margin-bottom:12px}.schedule-config[data-v-13134d73]{border:1px solid #333;border-radius:8px;padding:12px;background:#252525;margin-bottom:16px}.schedule-row[data-v-13134d73]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.schedule-picker[data-v-13134d73]{flex:1}.schedule-picker[data-v-13134d73] .el-input__wrapper{background-color:#2a2a2a;box-shadow:0 0 0 1px #3a3a3a inset}.schedule-picker[data-v-13134d73] .el-input__inner{color:#ccc}.schedule-add[data-v-13134d73]{margin-top:2px}.schedule-hint[data-v-13134d73]{margin-top:10px;margin-bottom:0}.link-danger[data-v-13134d73]{background:none;border:none;color:#e74c3c;cursor:pointer;font-size:12px;padding:0}.link-danger[data-v-13134d73]:hover{text-decoration:underline}.run-row[data-v-13134d73]{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.btn-run[data-v-13134d73]{padding:10px 18px;font-size:14px;font-weight:600;color:#fff;background:#3498db;border:none;border-radius:8px;cursor:pointer}.btn-run[data-v-13134d73]:hover:not(:disabled){background:#2980b9}.btn-run[data-v-13134d73]:disabled{opacity:.55;cursor:not-allowed}.btn-queue[data-v-13134d73]{background:#27ae60}.btn-queue[data-v-13134d73]:hover:not(:disabled){background:#219a52}.loading-msg[data-v-13134d73]{margin-top:12px;font-size:12px;color:#777;line-height:1.5}.loading-msg code[data-v-13134d73]{font-size:11px;color:#8fd3ff}.queue-debug-card[data-v-13134d73]{margin-top:18px;padding:14px;border:1px solid #2a2a2a;border-radius:10px;background:#202020}.queue-debug-title[data-v-13134d73]{margin-bottom:8px}.queue-debug-line[data-v-13134d73]{color:#b8c1cc;font-size:12px;line-height:1.6;margin-bottom:8px}.queue-debug-payload[data-v-13134d73]{margin:0;max-height:220px;overflow:auto;padding:10px;border-radius:8px;background:#141414;color:#8fd3ff;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.panel-header[data-v-13134d73]{padding:16px 20px;font-size:15px;font-weight:600;color:#e0e0e0;border-bottom:1px solid #2a2a2a}.task-list-wrap[data-v-13134d73]{flex:1;padding:16px 20px;overflow:auto}.clean-result-summary[data-v-13134d73]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.summary-card[data-v-13134d73]{padding:14px 16px;border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e}.summary-card strong[data-v-13134d73]{display:block;margin-top:8px;font-size:22px;color:#eaf4ff}.summary-label[data-v-13134d73]{font-size:12px;color:#8d8d8d}.subsection-title[data-v-13134d73]{font-size:13px;color:#999;margin:8px 0 10px}.empty-tasks[data-v-13134d73]{color:#666;font-size:13px;padding:16px;text-align:center}.empty-tasks.narrow[data-v-13134d73]{padding:12px 8px}.match-table[data-v-13134d73]{margin-bottom:18px}.match-table[data-v-13134d73] .el-table__body tr:hover>td.el-table__cell,.match-table[data-v-13134d73] .el-table__body tr.hover-row>td.el-table__cell,.match-table[data-v-13134d73] .el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-tr-bg-color, #222)!important}.result-table[data-v-13134d73]{--el-table-bg-color: #222;--el-table-tr-bg-color: #222;--el-table-header-bg-color: #2a2a2a;--el-table-text-color: #ccc;--el-table-border-color: #333}.ok[data-v-13134d73]{color:#27ae60}.fail[data-v-13134d73]{color:#e67e22}.result-list-wrap[data-v-13134d73]{border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e;min-height:200px;margin-top:8px}.result-list-header[data-v-13134d73]{padding:12px 16px;border-bottom:1px solid #2a2a2a;font-size:14px;color:#ddd}.result-subsection[data-v-13134d73]{padding:12px 12px 4px}.result-subsection-title[data-v-13134d73]{font-size:12px;color:#888;margin-bottom:8px}.task-list[data-v-13134d73]{list-style:none;margin:0;padding:0}.task-item[data-v-13134d73]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #2a2a2a;border-radius:8px;margin-bottom:8px;background:#222}.left[data-v-13134d73]{flex:1;min-width:0}.split-result-main[data-v-13134d73]{display:flex;flex-direction:column;gap:4px}.id[data-v-13134d73]{font-weight:600;color:#e0e0e0;font-size:13px}.files[data-v-13134d73]{font-size:12px;color:#888}.task-right[data-v-13134d73]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.status[data-v-13134d73]{padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap}.status.success[data-v-13134d73]{background:#2ecc712e;color:#2ecc71}.status.failed[data-v-13134d73]{background:#e74c3c2e;color:#ff6b6b}.status.running[data-v-13134d73]{background:#3498db2e;color:#3498db}.download[data-v-13134d73]{padding:6px 10px;border-radius:6px;font-size:12px;background:#3498db2e;color:#69b6ff;border:none;cursor:pointer}.download[data-v-13134d73]:hover{background:#3498db47}.btn-delete[data-v-13134d73]{padding:6px 10px;border-radius:6px;font-size:12px;background:#e74c3c1f;color:#ff8f8f;border:none;cursor:pointer}.btn-delete[data-v-13134d73]:hover{background:#e74c3c38}@media(max-width:1100px){.main-content[data-v-13134d73]{flex-direction:column;height:auto}.left-panel[data-v-13134d73]{width:100%;border-right:none;border-bottom:1px solid #2a2a2a}.clean-result-summary[data-v-13134d73]{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-row[data-v-13134d73]{flex-direction:column;align-items:stretch}} diff --git a/new_web_source/assets/shop-match.js b/new_web_source/assets/shop-match.js index 42afc5c..20898a8 100644 --- a/new_web_source/assets/shop-match.js +++ b/new_web_source/assets/shop-match.js @@ -1 +1 @@ -import{d as ls,g as p,o as rs,L as us,a as i,c,b,B as is,e as l,a5 as cs,a6 as ds,t as v,V as M,W as fs,X as hs,F as U,r as q,a7 as pt,n as fe,f as T,a8 as vs,U as gt,a9 as ms,aa as ps,w as gs,v as ys,ap as ws,x as he,h as ve,aq as Ss,ar as ks,as as bs,at as _s,E as m,au as Ts,av as Cs,aw as Es,i as Ae,ax as Is,ay as $s,az as Ds,aA as Ns,aB as Ms,aC as Le,aD as Ps,T as xs,_ as As,aE as Ls,q as Fs,s as Us}from"./pywebview-C66x_2Dh.js";import{z as Rs}from"./zh-cn-CuE9Zzgz.js";/* empty css *//* empty css */import{L as Os}from"./listingFilters-BpGOU_pJ.js";const Vs={class:"page-shell module-page"},Hs={class:"main-content"},Bs={class:"left-panel"},qs={class:"input-zone"},js={class:"input-row"},Ks=["disabled"],zs={key:0,class:"empty-candidates"},Gs={key:1,class:"candidate-table-scroll"},Js=["onClick"],Ys={class:"country-pref-checks"},Qs=["checked","disabled","onChange"],Ws={class:"country-check-text"},Xs={key:2,class:"country-order-panel"},Zs={class:"country-order-list"},ea=["onDragstart","onDrop"],ta={class:"country-drag-label"},sa={key:3,class:"country-pref-status"},aa={class:"listing-filter-row"},na={class:"schedule-switch"},oa=["disabled"],la={key:4,class:"schedule-config"},ra=["disabled","onClick"],ua=["disabled"],ia={class:"run-row"},ca=["disabled"],da=["disabled"],fa={key:5,class:"queue-debug-card"},ha={class:"queue-debug-line"},va={key:0,class:"queue-debug-payload"},ma={class:"right-panel"},pa={class:"task-list-wrap"},ga={class:"clean-result-summary"},ya={class:"summary-card"},wa={class:"summary-card"},Sa={class:"summary-card"},ka={class:"summary-card"},ba={key:0,class:"empty-tasks narrow"},_a=["onClick"],Ta={class:"result-list-wrap"},Ca={key:0,class:"empty-tasks"},Ea={key:0,class:"result-subsection"},Ia={class:"task-list"},$a={class:"left split-result-main"},Da=["title"],Na={class:"files"},Ma={key:0,class:"files"},Pa={key:1,class:"files"},xa={key:2,class:"files"},Aa={key:3,class:"files"},La={class:"task-right"},Fa=["onClick"],Ua=["onClick"],Ra={key:1,class:"result-subsection"},Oa={class:"task-list"},Va={class:"left split-result-main"},Ha=["title"],Ba={class:"files"},qa={key:0,class:"files"},ja={key:1,class:"files"},Ka={class:"task-right"},za=["onClick"],Ga=["onClick"],Ja=ls({__name:"BrandShopMatchTab",setup(Qa){const me=[{code:"DE",label:"德国"},{code:"UK",label:"英国"},{code:"FR",label:"法国"},{code:"IT",label:"意大利"},{code:"ES",label:"西班牙"}],te=p(""),pe=p([]),Fe=p([]),_=p([]),ge=p("Active"),se=p(!1),ae=p(!1),D=p(!1),ye=p(!1),we=p(!1),w=p(""),j=p(""),g=p(["DE","UK","FR","IT","ES"]),K=p(null),Se=p(!1),ke=p(!1);let R=null;const N=p(!0),S=p([Ee()]),z=p({candidateCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),E=p([]),y=p([]),k=p({}),d=p({}),$=p(null),be=p(!1),O=new Map,_e=p(!1);let G=null,Ue=0,Re="";const Te=ve(()=>ze(E.value.filter(e=>!!C(e.taskId)&&!Qe(e)),d.value,"current")),Ce=ve(()=>ze(E.value.filter(e=>!C(e.taskId)||Qe(e)),d.value,"history")),yt=ve(()=>Te.value.length>0||Ce.value.length>0),wt=ve(()=>{const e=new Set(g.value);return[...g.value.map(t=>({code:t,label:je(t)})),...me.filter(t=>!e.has(t.code)).map(t=>({code:t.code,label:t.label}))]});function J(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function St(){const e=Number(J());return Number.isFinite(e)&&e>0?e:0}function C(e){const t=Number(e);return Number.isFinite(t)&&t>0?t:0}function Oe(){return`shop-match:tasks:${J()}`}function Ve(){return`shop-match:task-status:${J()}`}function He(){return`shop-match:task-snapshots:${J()}`}function Be(){return`shop-match:matched-items:${J()}`}function ne(e,t,s){s?window.localStorage.removeItem(e):window.localStorage.setItem(e,JSON.stringify(t))}function P(e){return`${(e.shopName||"").trim()}::${e.shopId||""}`}function qe(e){return`${C(e.taskId)}-${e.resultId||0}-${e.shopName||""}`}function je(e){return me.find(t=>t.code===e)?.label||e}function kt(e){const t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),u=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0");return`${t}-${s}-${a}T${n}:${u}:${r}`}function oe(e){const t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),u=String(e.getMinutes()).padStart(2,"0");return`${t}-${s}-${a} ${n}:${u}:00`}function Ee(){const e=new Date;return e.setSeconds(0,0),e.setMinutes(e.getMinutes()+5),oe(e)}function Y(e){if(!e)return null;const s=e.trim().replace("T"," ").match(/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})(?::(\d{2}))?$/);if(!s)return null;const a=Number(s[1]),n=Number(s[2]),u=Number(s[3]),r=Number(s[4]),f=Number(s[5]),o=Number(s[6]||"0"),h=new Date(a,n-1,u,r,f,o,0);return Number.isNaN(h.getTime())||h.getFullYear()!==a||h.getMonth()!==n-1||h.getDate()!==u?null:h}function bt(e,t){const s=Y(e)||new Date;return s.setSeconds(0,0),s.setMinutes(s.getMinutes()+t),oe(s)}function Ke(e){const t=Y(e);if(!t)return"-";const s=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),n=String(t.getHours()).padStart(2,"0"),u=String(t.getMinutes()).padStart(2,"0");return`${s}-${a} ${n}:${u}`}function ze(e,t,s){const a=new Map;for(const n of e)a.set(qe(n),n);for(const[n,u]of Object.entries(t)){const r=C(n),f=u.items?.[0];if(!f||!r)continue;const o=Ye(r);if(s==="current"&&o||s==="history"&&!o)continue;const h=qe({...f,taskId:r});a.has(h)||a.set(h,{...f,taskId:r})}return Array.from(a.values())}function _t(){try{const e=window.localStorage.getItem(Oe()),t=e?JSON.parse(e):[];y.value=Array.isArray(t)?t.filter(s=>typeof s=="number"&&s>0):[]}catch{y.value=[]}}function le(){ne(Oe(),y.value,y.value.length===0)}function Tt(){try{const e=window.localStorage.getItem(Ve());k.value=e?JSON.parse(e):{}}catch{k.value={}}}function x(){ne(Ve(),k.value,Object.keys(k.value).length===0)}function Ct(){try{const e=window.localStorage.getItem(He());d.value=e?JSON.parse(e):{}}catch{d.value={}}}function V(){ne(He(),d.value,Object.keys(d.value).length===0)}function Et(){try{const e=window.localStorage.getItem(Be());_.value=e?JSON.parse(e):[]}catch{_.value=[]}}function Ie(){ne(Be(),_.value,_.value.length===0)}function It(e){const t=e instanceof Error?e.message:String(e||"");return/记录不存在|任务不存在|不存在|已删除|not\s*found|404/i.test(t)}function $t(){const e=y.value.filter(t=>(k.value[t]||d.value[t]?.task?.status)==="RUNNING");e.length!==y.value.length&&(y.value=e,le())}function Ge(e){y.value.includes(e)||(y.value=[...y.value,e],le())}function re(e){const t=O.get(e);t&&(window.clearTimeout(t),O.delete(e))}function ue(e){if(re(e),y.value=y.value.filter(t=>t!==e),delete k.value[e],d.value[e]){const t={...d.value};delete t[e],d.value=t,V()}le(),x()}function Q(e){ue(e),E.value=E.value.filter(t=>C(t.taskId)!==e)}function Je(e,t=!0){y.value=y.value.filter(s=>s!==e),t||delete k.value[e],le(),x()}function W(e){return e==="SUCCESS"||e==="FAILED"||e==="COMPLETED"}function Ye(e){if(!e)return!1;const t=k.value[e]||d.value[e]?.task?.status;return W(t)}function Qe(e){const t=C(e.taskId);return t&&Ye(t)||W(e.taskStatus)?!0:!!e.success}async function X(){pe.value=await Ss()}async function A(){z.value=await ks()}async function H(){const e=await bs();E.value=e.items||[]}async function Dt(){try{const e=await _s();if(ke.value)return;const t=(e.country_codes||[]).filter(s=>me.some(a=>a.code===s));t.length&&(g.value=t)}catch{}}async function ie(){await Promise.allSettled([H(),A()])}function We(){R&&clearTimeout(R),R=setTimeout(()=>{R=null,Nt()},450)}async function Nt(){if(g.value.length){Se.value=!0;try{await Ms(g.value)}catch(e){m.error(e instanceof Error?e.message:"保存国家配置失败")}finally{Se.value=!1}}}function Mt(e){Fe.value=e}async function Xe(){const e=te.value.trim();if(!e){m.warning("请输入店铺名");return}se.value=!0;try{await Ts(e),te.value="",await X(),await A()}catch(t){m.error(t instanceof Error?t.message:"添加失败")}finally{se.value=!1}}async function Pt(e){try{await Cs(e.id),await X(),await A()}catch(t){m.error(t instanceof Error?t.message:"删除失败")}}function xt(e){return g.value.includes(e)}function Ze(e){return g.value.length===1&&g.value[0]===e}function At(e,t){const s=t.target;if(s){if(!s.checked&&Ze(e)){s.checked=!0,m.warning("至少保留 1 个国家");return}Lt(e,s.checked)}}function Lt(e,t){if(ke.value=!0,t)g.value.includes(e)||(g.value=[...g.value,e]);else{if(g.value.length<=1){m.warning("至少保留 1 个国家");return}g.value=g.value.filter(s=>s!==e)}We()}function Ft(e){K.value=e}function Ut(){K.value=null}function Rt(e){const t=K.value;if(K.value=null,t==null||t===e)return;ke.value=!0;const s=[...g.value],[a]=s.splice(t,1);s.splice(e,0,a),g.value=s,We()}function Ot(){N.value&&(S.value=$e(S.value,!0)),N.value||(S.value=[])}function Vt(){const e=S.value[S.value.length-1],t=e?bt(e,60):Ee();S.value=[...S.value,t]}function Ht(e){S.value.length<=1||(S.value=S.value.filter((t,s)=>s!==e))}function Bt(e,t){const s=[...S.value];s[e]=t||"",S.value=$e(s,!1)}function qt(e,t){const s=new Map;for(const a of e)s.set(P(a),a);for(const a of t)s.set(P(a),a);return Array.from(s.values())}async function jt(){const e=Fe.value.map(t=>t.shop_name).filter(Boolean);if(!e.length){m.warning("请先选择候选店铺");return}ae.value=!0;try{const t=await Es(e);_.value=qt(_.value,t.items||[]),Ie(),we.value&&ht(),m.success(`本次返回 ${t.items?.length||0} 条匹配结果`)}catch(t){m.error(t instanceof Error?t.message:"匹配失败")}finally{ae.value=!1}}function Kt(e){_.value=_.value.filter(t=>P(t)!==P(e)),Ie()}function L(e){const t=new Set(e.map(s=>P(s)));_.value=_.value.filter(s=>!t.has(P(s))),Ie()}function zt(){if(!N.value)return;const e=Date.now(),t=S.value.map(n=>n.trim()).filter(Boolean);if(!t.length)throw new Error("请至少选择一个执行时间");const s=t.map(n=>{const u=Y(n);if(!u)throw new Error(`时间格式无效: ${n}`);return{raw:kt(u),picker:oe(u),time:u.getTime()}}).sort((n,u)=>n.time-u.time);for(let n=1;n n.time>e);if(!a.length)throw new Error("执行时间必须晚于当前时间,请重新选择");return a.length!==s.length&&(S.value=a.map(n=>n.picker),m.warning("已自动移除早于当前时间的执行时间")),a.map(n=>n.raw)}function $e(e,t){const s=Date.now(),a=e.map(r=>r.trim()).filter(Boolean).map(r=>{const f=Y(r);return f?{value:oe(f),time:f.getTime()}:null}).filter(r=>!!r).filter(r=>r.time>s).sort((r,f)=>r.time-f.time),n=[],u=new Set;for(const r of a)u.has(r.value)||(u.add(r.value),n.push(r.value));return!n.length&&t?[Ee()]:n}function et(e,t,s,a,n=!0){return{type:"shop-match-run",ts:Date.now(),data:{taskId:e,user_id:St(),items:[{shopName:t.shopName,shopId:t.shopId,platform:t.platform,companyName:t.companyName,matched:!0,matchStatus:t.matchStatus,matchMessage:t.matchMessage}],country_codes:[...s],risk_listing_filter:ge.value,stage_index:a,final_stage:n}}}function De(e){const t=d.value[e]?.task,s=t?.scheduleStages||[],a=t?.currentStageIndex;if(typeof a!="number")return null;const n=s.find(u=>u.stageIndex===a);return n?.scheduledAt?{stageIndex:a,scheduledAt:n.scheduledAt,finalStage:a===s.length-1}:null}async function Gt(e,t){const s=Ae();if(!s?.enqueue_json)throw new Error("当前客户端未提供 enqueue_json");const a=De(e),n=d.value[e],u=n?.task?.countryCodes||g.value;if(!a)throw new Error(`任务 ${e} 缺少待执行阶段`);re(e),await st(()=>Ps(e,a.stageIndex),(o,h)=>{w.value=`任务 ${e} 等待后端恢复后再激活执行(${o}/${h})...`}),k.value={...k.value,[e]:"RUNNING"},n?.task&&(d.value={...d.value,[e]:{...n,task:{...n.task,status:"RUNNING",activeStageIndex:a.stageIndex}}}),V(),x();const r=et(e,t,u,a.stageIndex,a.finalStage);j.value=JSON.stringify(r,null,2);const f=await s.enqueue_json(r);if(!f?.success)throw new Error(f?.error||`任务 ${e} 推送失败`);Ge(e),w.value=`任务 ${e} 已推送第 ${a.stageIndex+1} 轮`,ee(!0)}function tt(e){const t=Y(e);return t?t.getTime():Number.NaN}function Jt(){const e=new Set(y.value);for(const s of Object.keys(d.value)){const a=C(s);a>0&&e.add(a)}for(const s of E.value){const a=C(s.taskId);a>0&&e.add(a)}const t=Array.from(e).map(s=>{const a=d.value[s],n=k.value[s]||a?.task?.status,u=a?.items?.[0]||E.value.find(o=>C(o.taskId)===s),r=De(s);if(n!=="SCHEDULED"||!u||!r?.scheduledAt)return null;const f=tt(r.scheduledAt);return!Number.isFinite(f)||f>Date.now()?null:{taskId:s,item:u,scheduledTime:f}}).filter(s=>!!s);return t.sort((s,a)=>s.scheduledTime-a.scheduledTime||s.taskId-a.taskId),t}async function Ne(){if(_e.value)return;const e=Jt();if(e.length){_e.value=!0;try{const t=e[0];try{await Gt(t.taskId,t.item),await ts(t.taskId)}catch(s){const a=s instanceof Error?s.message:`任务 ${t.taskId} 调度失败`,n=`${t.taskId}:${a}`,u=Date.now();w.value=a,(Re!==n||u-Ue>1e4)&&(Re=n,Ue=u,m.error(a)),await Promise.allSettled([H(),at()])}}finally{_e.value=!1,I()}}}function Yt(e,t){if(!t)return;re(e);const s=tt(t);if(!Number.isFinite(s))return;const a=Math.max(0,s-Date.now()),n=window.setTimeout(()=>{O.delete(e),Ne()},a);O.set(e,n)}function I(){const e=new Set(y.value);for(const t of Object.keys(d.value)){const s=C(t);s>0&&e.add(s)}for(const t of E.value){const s=C(t.taskId);s>0&&e.add(s)}for(const t of e){const a=d.value[t]?.task?.status||k.value[t],n=De(t);a==="SCHEDULED"&&n?.scheduledAt?Yt(t,n.scheduledAt):re(t)}Ne()}function Qt(){G||(G=window.setInterval(()=>{Ne()},1e3))}function Wt(){G&&(window.clearInterval(G),G=null)}function ce(){I(),y.value.length&&ee(!0)}const Xt=["无法连接到后端服务","bad gateway","gateway timeout","network error","timeout","502","503","504"];function Z(e){return new Promise(t=>{window.setTimeout(()=>t(),e)})}function Me(e){const t=(e instanceof Error?e.message:String(e||"")).toLowerCase();return Xt.some(s=>t.includes(s.toLowerCase()))}async function st(e,t,s=10){let a=0;for(;;)try{return await e()}catch(n){if(a+=1,!Me(n)||a>=s)throw n;t(a,s),await Z(F())}}async function at(){if(!y.value.length)return{settledTaskIds:[]};try{const e=await Le(y.value),t={...d.value},s=new Set;for(const a of e.missingTaskIds||[])Q(a),delete t[a],s.add(a);for(const a of e.items||[]){const n=a.task?.id;if(!n)continue;const u=t[n];t[n]=u?{...u,task:{...u.task||{},...a.task||{}}}:a;const r=a.task?.status||"";if(r){if(k.value[n]=r,W(r)){ue(n),s.add(n);continue}r==="SCHEDULED"&&(Je(n),s.add(n))}}return d.value=t,V(),x(),I(),{settledTaskIds:Array.from(s)}}catch{return{settledTaskIds:[]}}}function F(){return xs()}function nt(e=!1){if($.value){if(!e)return;window.clearTimeout($.value),$.value=null}const t=async()=>{if($.value=null,be.value||!y.value.length){y.value.length&&nt();return}be.value=!0;try{const{settledTaskIds:s}=await at();s.length&&await Promise.allSettled([H(),A()])}finally{be.value=!1}y.value.length&&($.value=window.setTimeout(t,F()))};e?t():$.value=window.setTimeout(t,F())}function ee(e=!1){nt(e)}function Zt(){$.value&&(window.clearTimeout($.value),$.value=null)}async function es(e){let t=0;const s=30;for(;;){try{const a=await Le([e]);if(t>0&&(w.value=`任务 ${e} 后端已恢复,继续等待执行结果...`),t=0,(a.missingTaskIds||[]).includes(e))return Q(e),await ie(),I(),"FAILED";const n=(a.items||[]).find(r=>r.task?.id===e),u=n?.task?.status||"";if(n){const r=d.value[e];d.value={...d.value,[e]:r?{...r,task:{...r.task||{},...n.task||{}}}:n},V()}if(u&&(k.value[e]=u,x()),W(u))return ue(e),await ie(),I(),u}catch(a){if(!Me(a))throw a;if(t+=1,t>=s)throw new Error(`任务 ${e} 等待后端恢复超时,请稍后手动刷新查看状态`);w.value=`任务 ${e} 运行中,正在等待后端服务恢复(${t}/${s})...`,(t===1||t%5===0)&&m.warning(`任务 ${e} 运行中,后端服务暂时不可用,正在自动重试`),await Z(F());continue}await Z(F())}}async function ts(e){let t=0;const s=30;for(;;)try{const a=await Le([e]);if(t>0&&(w.value=`任务 ${e} 后端已恢复,继续等待当前轮次结束...`),t=0,(a.missingTaskIds||[]).includes(e))return Q(e),await ie(),I(),"FAILED";const n=(a.items||[]).find(r=>r.task?.id===e),u=n?.task?.status||"";if(n){const r=d.value[e];d.value={...d.value,[e]:r?{...r,task:{...r.task||{},...n.task||{}}}:n},V()}if(u&&(k.value[e]=u,x()),!u||u==="RUNNING"){await Z(F());continue}return W(u)?(ue(e),await ie(),I(),u):(u==="SCHEDULED"&&(Je(e),I()),u)}catch(a){if(!Me(a))throw a;if(t+=1,t>=s)throw new Error(`任务 ${e} 等待当前轮次结束超时,请稍后手动刷新查看状态`);w.value=`任务 ${e} 运行中,正在等待当前轮次结束(${t}/${s})...`,(t===1||t%5===0)&&m.warning(`任务 ${e} 运行中,后端服务暂时不可用,正在自动重试`),await Z(F())}}function Pe(e){const t=C(e.taskId);return t?k.value[t]||d.value[t]?.task?.status||e.taskStatus||"":e.taskStatus||""}function ot(e){const t=C(e.taskId);return t?d.value[t]:void 0}function lt(e){const s=ot(e)?.task,a=s?.scheduleStages||[];if(!a.length)return"";const n=a.length,u=typeof s?.activeStageIndex=="number"?s.activeStageIndex:void 0,r=typeof s?.currentStageIndex=="number"?s.currentStageIndex:void 0;return typeof u=="number"?`执行进度: 第 ${u+1}/${n} 次执行中`:typeof r=="number"?`执行进度: 等待第 ${r+1}/${n} 次`:`执行进度: 共 ${n} 次`}function rt(e){const s=ot(e)?.task,a=s?.scheduleStages||[];if(typeof s?.currentStageIndex=="number"){const n=a.find(u=>u.stageIndex===s.currentStageIndex);if(n?.scheduledAt)return Ke(n.scheduledAt)}return e.scheduledAt?Ke(e.scheduledAt):""}function ut(e){const t=Pe(e);return t==="SCHEDULED"?"待执行":t==="RUNNING"?"执行中":t==="SUCCESS"||t==="COMPLETED"?"已完成":t==="FAILED"?"失败":e.success?"已完成":"未知"}function it(e){const t=Pe(e);return t==="SUCCESS"||t==="COMPLETED"?"success":t==="FAILED"?"failed":"running"}function ct(e){const t=Pe(e);return!!e.resultId&&(!!e.fileReady||!!e.downloadUrl)&&(t==="SUCCESS"||t==="COMPLETED")}async function dt(e){if(!e.resultId)return;const t=Ae();if(!t?.save_file_from_url_new){m.error("当前客户端未提供下载能力");return}const s=Is(e.resultId),a=e.outputFilename||`${e.shopName||"result"}.xlsx`,n=await t.save_file_from_url_new(s,a);n.success?m.success(`已保存: ${n.path||a}`):n.error&&n.error!=="用户取消"&&m.error(n.error)}async function ft(e){const t=C(e.taskId),s=Number(e.resultId||0);try{if(t>0)await $s(t),Q(t);else if(s>0)await Ds(s),E.value=E.value.filter(a=>Number(a.resultId||0)!==s),L([e]);else throw new Error("缺少可删除的任务标识");await Promise.allSettled([H(),X(),A()]),m.success("删除成功")}catch(a){if(It(a)){t>0?Q(t):s>0&&(E.value=E.value.filter(n=>Number(n.resultId||0)!==s)),L([e]),await Promise.allSettled([H(),X(),A()]),m.success("后端记录已不存在,本地记录已同步清理");return}m.error(a instanceof Error?a.message:"删除失败")}}function ss(e){const t=(e||"").trim();return{MATCHED:"已匹配",PENDING:"待匹配",CONFLICT:"需人工确认",INDEX_STALE:"索引过期"}[t]||t||"—"}function as(e){const t=(e.matchMessage||"").trim();return t||(e.matched&&e.matchStatus==="MATCHED"?"紫鸟索引已命中,可推送队列":e.matched?"已关联索引,请结合状态列查看是否可推送":"未命中或未就绪,请检查店铺名与索引刷新")}async function ns(){we.value=!0,await ht()}function os(){return _.value.find(e=>e.matched)}async function ht(){if(ye.value)return;const e=Ae();if(!e?.enqueue_json){m.error("当前客户端未提供 enqueue_json");return}if(!_.value.filter(r=>r.matched).length){m.warning("请先匹配可用店铺");return}if(!g.value.length){m.warning("请至少勾选一个国家");return}let s;try{s=zt()}catch(r){m.error(r instanceof Error?r.message:"定时配置无效");return}ye.value=!0,D.value=!0,j.value="";let a=0,n=0,u=0;try{for(;we.value;){const r=os();if(!r)break;u+=1;try{const f=await st(()=>Ns([r],g.value,s),(xe,de)=>{w.value=`后端服务暂时不可用,正在重试创建任务(${xe}/${de})...`}),o=f.taskId,h=s?.length?"SCHEDULED":"RUNNING",B={task:{id:o,status:h,scheduledAt:s?.[0],countryCodes:[...g.value],currentStageIndex:s?.length?0:void 0,activeStageIndex:void 0,scheduleStages:(s||[]).map((xe,de)=>({stageIndex:de,scheduledAt:xe,status:de===0?"SCHEDULED":"PENDING"}))},items:f.items};if(d.value={...d.value,[o]:B},k.value={...k.value,[o]:h},V(),x(),!f.items?.[0]){L([r]);continue}if(s?.length){a+=1,I(),w.value=`任务 ${o} 已创建,共 ${s.length} 个执行时间点`,L([r]);continue}const vt=et(o,r,g.value);j.value=JSON.stringify(vt,null,2);const mt=await e.enqueue_json(vt);if(!mt?.success){n+=1,w.value=`任务 ${o} 推送失败,已自动继续下一条:${mt?.error||"未知错误"}`,m.error(w.value),L([r]);continue}if(Ge(o),ee(!0),L([r]),w.value=`任务 ${o} 已入队,等待执行完成`,await es(o)!=="SUCCESS"){n+=1,w.value=`任务 ${o} 执行失败,已自动继续下一条`,m.error(w.value);continue}a+=1,w.value=`任务 ${o} 已完成`}catch(f){n+=1,w.value=`第 ${u} 条任务处理失败,已自动继续下一条:${f instanceof Error?f.message:"未知错误"}`,m.error(w.value),L([r]);continue}}I(),s?.length||ee(!0),(a>0||n>0)&&m.success(s?.length?`定时任务已创建:成功 ${a} 条,失败 ${n} 条`:`店铺推送已完成:成功 ${a} 条,失败 ${n} 条`)}catch(r){const f=r instanceof Error?r.message:"推送失败";w.value=f,m.error(f)}finally{ye.value=!1,D.value=!1}}return rs(async()=>{_t(),Tt(),Ct(),Et(),S.value=$e(S.value,N.value),$t(),await Promise.allSettled([X(),Dt(),H(),A()]),Qt(),window.addEventListener("focus",ce),document.addEventListener("visibilitychange",ce),I(),y.value.length&&ee(!0)}),us(()=>{Zt(),Wt(),window.removeEventListener("focus",ce),document.removeEventListener("visibilitychange",ce),R&&clearTimeout(R);for(const e of O.values())window.clearTimeout(e);O.clear()}),(e,t)=>{const s=ds,a=fs,n=hs,u=ms,r=ps,f=ws;return i(),c("div",Vs,[b(is,{active:"shop-match"}),l("div",Hs,[l("aside",Bs,[t[10]||(t[10]=l("div",{class:"section-title"},"店铺候选",-1)),l("div",qs,[t[4]||(t[4]=l("div",{class:"hint"},"输入店铺名后点“添加”加入下方备选区。勾选备选店铺后先做“匹配店铺”,确认命中紫鸟索引后再推送到 Python 队列。",-1)),l("div",js,[b(s,{modelValue:te.value,"onUpdate:modelValue":t[0]||(t[0]=o=>te.value=o),clearable:"",placeholder:"请输入店铺名后回车或点击添加",onKeyup:cs(Xe,["enter"])},null,8,["modelValue"]),l("button",{type:"button",class:"opt-btn",disabled:se.value,onClick:Xe},v(se.value?"添加中...":"添加"),9,Ks)])]),t[11]||(t[11]=l("div",{class:"section-title"},"备选店铺",-1)),pe.value.length?(i(),c("div",Gs,[b(n,{data:pe.value,"row-key":"id",height:"240",class:"candidate-table",onSelectionChange:Mt},{default:M(()=>[b(a,{type:"selection",width:"42"}),b(a,{prop:"shop_name",label:"店铺名","min-width":"120","show-overflow-tooltip":""}),b(a,{label:"操作",width:"72",align:"center"},{default:M(({row:o})=>[l("button",{type:"button",class:"link-danger",onClick:h=>Pt(o)},"删除",8,Js)]),_:1})]),_:1},8,["data"])])):(i(),c("div",zs,"暂无备选店铺,请先输入并添加")),t[12]||(t[12]=l("div",{class:"section-title"},"国家配置",-1)),t[13]||(t[13]=l("p",{class:"hint country-pref-hint"},"勾选的国家会在每一个执行时间点都执行一遍。勾选区会按照已选顺序排在前面,下方支持拖拽排序,和商品风险页保持一致。",-1)),l("div",Ys,[(i(!0),c(U,null,q(wt.value,o=>(i(),c("label",{key:o.code,class:"country-check-row"},[l("input",{type:"checkbox",class:"country-check-input",checked:xt(o.code),disabled:Ze(o.code),onChange:h=>At(o.code,h)},null,40,Qs),l("span",Ws,v(o.label)+" ("+v(o.code)+")",1)]))),128))]),g.value.length?(i(),c("div",Xs,[t[6]||(t[6]=l("div",{class:"country-order-caption"},"已选顺序(拖拽 ⋮⋮ 调整)",-1)),l("div",Zs,[(i(!0),c(U,null,q(g.value,(o,h)=>(i(),c("div",{key:o,class:fe(["country-drag-row",{dragging:K.value===h}]),draggable:"true",onDragstart:B=>Ft(h),onDragend:Ut,onDragover:t[1]||(t[1]=pt(()=>{},["prevent"])),onDrop:pt(B=>Rt(h),["prevent"])},[t[5]||(t[5]=l("span",{class:"drag-handle",title:"拖动排序"},"⋮⋮",-1)),l("span",ta,v(je(o))+" ("+v(o)+")",1)],42,ea))),128))])])):T("",!0),Se.value?(i(),c("div",sa,"保存中...")):T("",!0),t[14]||(t[14]=l("div",{class:"section-title"},"商品列表筛选",-1)),t[15]||(t[15]=l("p",{class:"hint listing-filter-hint"},"与“推送到 Python 队列”一并下发,供 Python 区分处理场景。",-1)),l("div",aa,[b(r,{modelValue:ge.value,"onUpdate:modelValue":t[2]||(t[2]=o=>ge.value=o),class:"listing-filter-select",teleported:"",placeholder:"选择筛选类型"},{default:M(()=>[(i(!0),c(U,null,q(vs(Os),o=>(i(),gt(u,{key:o.value,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t[16]||(t[16]=l("div",{class:"section-title"},"定时执行",-1)),l("label",na,[gs(l("input",{"onUpdate:modelValue":t[3]||(t[3]=o=>N.value=o),type:"checkbox",disabled:D.value,onChange:Ot},null,40,oa),[[ys,N.value]]),t[7]||(t[7]=l("span",null,"启用多时间点调度",-1))]),N.value?(i(),c("div",la,[(i(!0),c(U,null,q(S.value,(o,h)=>(i(),c("div",{key:`schedule-${h}`,class:"schedule-row"},[b(f,{"model-value":o,type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",format:"MM-DD HH:mm",placeholder:"选择执行时间",disabled:D.value,class:"schedule-picker","onUpdate:modelValue":B=>Bt(h,B)},null,8,["model-value","disabled","onUpdate:modelValue"]),l("button",{type:"button",class:"schedule-remove",disabled:D.value||S.value.length<=1,onClick:B=>Ht(h)},"删除",8,ra)]))),128)),l("button",{type:"button",class:"schedule-add",disabled:D.value,onClick:Vt},"添加时间点",8,ua),t[8]||(t[8]=l("p",{class:"hint schedule-hint"},"默认开启定时;支持按 `MM-DD HH:mm` 配置多个时间点,前端不再限制选择更早时间,实际是否可执行以后端校验为准。",-1))])):T("",!0),l("div",ia,[l("button",{type:"button",class:"btn-run",disabled:ae.value,onClick:jt},v(ae.value?"匹配中...":"匹配店铺"),9,ca),l("button",{type:"button",class:"btn-run btn-queue",disabled:D.value||!_.value.length,onClick:ns},v(D.value?"推送中...":N.value?"创建定时任务":"推送到 Python 队列"),9,da)]),t[17]||(t[17]=l("p",{class:"loading-msg"},[he("已支持多阶段定时执行;Python 每处理完一店可回传 "),l("code",null,"/api/shop-match/tasks/{taskId}/result"),he(",后端会按阶段汇总并在超时场景自动收尾。")],-1)),w.value?(i(),c("div",fa,[t[9]||(t[9]=l("div",{class:"section-title queue-debug-title"},"推送结果",-1)),l("div",ha,v(w.value),1),j.value?(i(),c("pre",va,v(j.value),1)):T("",!0)])):T("",!0)]),l("section",ma,[t[26]||(t[26]=l("div",{class:"panel-header"},"匹配与任务",-1)),l("div",pa,[l("div",ga,[l("div",ya,[t[18]||(t[18]=l("span",{class:"summary-label"},"候选店铺",-1)),l("strong",null,v(z.value.candidateCount),1)]),l("div",wa,[t[19]||(t[19]=l("span",{class:"summary-label"},"已结束任务",-1)),l("strong",null,v(z.value.processedTaskCount),1)]),l("div",Sa,[t[20]||(t[20]=l("span",{class:"summary-label"},"成功",-1)),l("strong",null,v(z.value.successTaskCount),1)]),l("div",ka,[t[21]||(t[21]=l("span",{class:"summary-label"},"失败",-1)),l("strong",null,v(z.value.failedTaskCount),1)])]),t[25]||(t[25]=l("div",{class:"subsection-title"},"匹配结果",-1)),_.value.length?(i(),gt(n,{key:1,data:_.value,"row-key":P,"highlight-current-row":!1,class:"result-table match-table"},{default:M(()=>[b(a,{prop:"shopName",label:"店铺名","min-width":"100"}),b(a,{label:"匹配",width:"72",align:"center"},{default:M(({row:o})=>[l("span",{class:fe(o.matched?"ok":"fail")},v(o.matched?"是":"否"),3)]),_:1}),b(a,{prop:"shopId",label:"店铺ID","min-width":"120","show-overflow-tooltip":""}),b(a,{prop:"platform",label:"平台",width:"88","show-overflow-tooltip":""}),b(a,{prop:"companyName",label:"公司","min-width":"100","show-overflow-tooltip":""}),b(a,{label:"状态",width:"100","show-overflow-tooltip":""},{default:M(({row:o})=>[he(v(ss(o.matchStatus)),1)]),_:1}),b(a,{label:"说明","min-width":"140","show-overflow-tooltip":""},{default:M(({row:o})=>[he(v(as(o)),1)]),_:1}),b(a,{label:"操作",width:"72",align:"center"},{default:M(({row:o})=>[l("button",{type:"button",class:"link-danger",onClick:h=>Kt(o)},"删除",8,_a)]),_:1})]),_:1},8,["data"])):(i(),c("div",ba,"完成“匹配店铺”后,在此展示紫鸟索引匹配结果,供核对后再推送队列。")),l("div",Ta,[t[24]||(t[24]=l("div",{class:"result-list-header"},[l("span",null,"处理记录")],-1)),yt.value?(i(),c(U,{key:1},[Te.value.length?(i(),c("div",Ea,[t[22]||(t[22]=l("div",{class:"result-subsection-title"},"当前任务",-1)),l("ul",Ia,[(i(!0),c(U,null,q(Te.value,o=>(i(),c("li",{key:`cur-${o.resultId}-${o.taskId}`,class:"task-item"},[l("div",$a,[l("span",{class:"id",title:o.shopName||""},v(o.shopName||"-"),9,Da),l("div",Na,"任务 ID: "+v(o.taskId??"-"),1),o.platform?(i(),c("div",Ma,"平台: "+v(o.platform),1)):T("",!0),lt(o)?(i(),c("div",Pa,v(lt(o)),1)):T("",!0),rt(o)?(i(),c("div",xa,"下一次: "+v(rt(o)),1)):T("",!0),o.error?(i(),c("div",Aa,"错误: "+v(o.error),1)):T("",!0)]),l("div",La,[l("span",{class:fe(["status",it(o)])},v(ut(o)),3),ct(o)?(i(),c("button",{key:0,type:"button",class:"download",onClick:h=>dt(o)},"下载",8,Fa)):T("",!0),l("button",{type:"button",class:"btn-delete",onClick:h=>ft(o)},"删除",8,Ua)])]))),128))])])):T("",!0),Ce.value.length?(i(),c("div",Ra,[t[23]||(t[23]=l("div",{class:"result-subsection-title"},"历史任务",-1)),l("ul",Oa,[(i(!0),c(U,null,q(Ce.value,o=>(i(),c("li",{key:`his-${o.resultId}-${o.taskId}`,class:"task-item"},[l("div",Va,[l("span",{class:"id",title:o.shopName||""},v(o.shopName||"-"),9,Ha),l("div",Ba,"任务 ID: "+v(o.taskId??"-"),1),o.outputFilename?(i(),c("div",qa,"文件: "+v(o.outputFilename),1)):T("",!0),o.error?(i(),c("div",ja,"错误: "+v(o.error),1)):T("",!0)]),l("div",Ka,[l("span",{class:fe(["status",it(o)])},v(ut(o)),3),ct(o)?(i(),c("button",{key:0,type:"button",class:"download",onClick:h=>dt(o)},"下载",8,za)):T("",!0),l("button",{type:"button",class:"btn-delete",onClick:h=>ft(o)},"删除",8,Ga)])]))),128))])])):T("",!0)],64)):(i(),c("div",Ca,"暂无处理记录。推送队列并等待 Python 回传后,将在此显示下载链接。"))])])])])])}}}),Ya=As(Ja,[["__scopeId","data-v-064c8132"]]);Ls.locale("zh-cn");Fs(Ya).use(Us,{locale:Rs}).mount("#app"); +import{d as is,g as p,o as cs,L as ds,a as i,c,b as _,B as fs,e as l,a5 as hs,a6 as vs,t as v,V as A,W as ms,X as ps,F as V,r as j,a7 as wt,n as me,f as E,a8 as gs,U as kt,a9 as ys,aa as Ss,w as ws,v as ks,ap as bs,x as pe,h as ge,aq as _s,ar as Ts,as as Cs,at as Es,E as m,au as Is,av as Ds,aw as $s,i as Ue,ax as Ns,ay as Ms,az as Ps,aA as xs,aB as As,aC as Re,aD as Ls,T as Fs,_ as Us,aE as Rs,q as Os,s as Vs}from"./pywebview-BWNiqXug.js";import{z as Hs}from"./zh-cn-BbuLS91u.js";/* empty css *//* empty css */import{L as qs}from"./listingFilters-BpGOU_pJ.js";import{c as Bs}from"./categorized-timers-JPA-olTr.js";const zs={class:"page-shell module-page"},js={class:"main-content"},Ks={class:"left-panel"},Gs={class:"input-zone"},Js={class:"input-row"},Ys=["disabled"],Qs={key:0,class:"empty-candidates"},Ws={key:1,class:"candidate-table-scroll"},Xs=["onClick"],Zs={class:"country-pref-checks"},ea=["checked","disabled","onChange"],ta={class:"country-check-text"},sa={key:2,class:"country-order-panel"},aa={class:"country-order-list"},na=["onDragstart","onDrop"],oa={class:"country-drag-label"},la={key:3,class:"country-pref-status"},ra={class:"listing-filter-row"},ua={class:"schedule-switch"},ia=["disabled"],ca={key:4,class:"schedule-config"},da=["disabled","onClick"],fa=["disabled"],ha={class:"run-row"},va=["disabled"],ma=["disabled"],pa={key:5,class:"queue-debug-card"},ga={class:"queue-debug-line"},ya={key:0,class:"queue-debug-payload"},Sa={class:"right-panel"},wa={class:"task-list-wrap"},ka={class:"clean-result-summary"},ba={class:"summary-card"},_a={class:"summary-card"},Ta={class:"summary-card"},Ca={class:"summary-card"},Ea={key:0,class:"empty-tasks narrow"},Ia=["onClick"],Da={class:"result-list-wrap"},$a={key:0,class:"empty-tasks"},Na={key:0,class:"result-subsection"},Ma={class:"task-list"},Pa={class:"left split-result-main"},xa=["title"],Aa={class:"files"},La={key:0,class:"files"},Fa={key:1,class:"files"},Ua={key:2,class:"files"},Ra={key:3,class:"files"},Oa={class:"task-right"},Va=["onClick"],Ha=["onClick"],qa={key:1,class:"result-subsection"},Ba={class:"task-list"},za={class:"left split-result-main"},ja=["title"],Ka={class:"files"},Ga={key:0,class:"files"},Ja={key:1,class:"files"},Ya={class:"task-right"},Qa=["onClick"],Wa=["onClick"],Xa=is({__name:"BrandShopMatchTab",setup(en){const ye=[{code:"DE",label:"德国"},{code:"UK",label:"英国"},{code:"FR",label:"法国"},{code:"IT",label:"意大利"},{code:"ES",label:"西班牙"}],ae=p(""),Se=p([]),Oe=p([]),T=p([]),we=p("Active"),ne=p(!1),oe=p(!1),P=p(!1),ke=p(!1),be=p(!1),S=p(""),K=p(""),g=p(["DE","UK","FR","IT","ES"]),G=p(null),_e=p(!1),Te=p(!1);let H=null;const x=p(!0),w=p([$e()]),J=p({candidateCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),D=p([]),y=p([]),k=p({}),d=p({}),M=p(null),Ce=p(!1),N=new Map,Ee=p(!1);let Y=null,Ve=0,He="",b=!1;const C=Bs("shop-match"),Ie=ge(()=>Ye(D.value.filter(e=>!!I(e.taskId)&&!Ze(e)),d.value,"current")),De=ge(()=>Ye(D.value.filter(e=>!I(e.taskId)||Ze(e)),d.value,"history")),bt=ge(()=>Ie.value.length>0||De.value.length>0),_t=ge(()=>{const e=new Set(g.value);return[...g.value.map(t=>({code:t,label:Ge(t)})),...ye.filter(t=>!e.has(t.code)).map(t=>({code:t.code,label:t.label}))]});function Q(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function Tt(){const e=Number(Q());return Number.isFinite(e)&&e>0?e:0}function I(e){const t=Number(e);return Number.isFinite(t)&&t>0?t:0}function qe(){return`shop-match:tasks:${Q()}`}function Be(){return`shop-match:task-status:${Q()}`}function ze(){return`shop-match:task-snapshots:${Q()}`}function je(){return`shop-match:matched-items:${Q()}`}function le(e,t,s){s?window.localStorage.removeItem(e):window.localStorage.setItem(e,JSON.stringify(t))}function L(e){return`${(e.shopName||"").trim()}::${e.shopId||""}`}function Ke(e){return`${I(e.taskId)}-${e.resultId||0}-${e.shopName||""}`}function Ge(e){return ye.find(t=>t.code===e)?.label||e}function Ct(e){const t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),u=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0");return`${t}-${s}-${a}T${n}:${u}:${r}`}function re(e){const t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),u=String(e.getMinutes()).padStart(2,"0");return`${t}-${s}-${a} ${n}:${u}:00`}function $e(){const e=new Date;return e.setSeconds(0,0),e.setMinutes(e.getMinutes()+5),re(e)}function W(e){if(!e)return null;const s=e.trim().replace("T"," ").match(/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})(?::(\d{2}))?$/);if(!s)return null;const a=Number(s[1]),n=Number(s[2]),u=Number(s[3]),r=Number(s[4]),f=Number(s[5]),o=Number(s[6]||"0"),h=new Date(a,n-1,u,r,f,o,0);return Number.isNaN(h.getTime())||h.getFullYear()!==a||h.getMonth()!==n-1||h.getDate()!==u?null:h}function Et(e,t){const s=W(e)||new Date;return s.setSeconds(0,0),s.setMinutes(s.getMinutes()+t),re(s)}function Je(e){const t=W(e);if(!t)return"-";const s=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),n=String(t.getHours()).padStart(2,"0"),u=String(t.getMinutes()).padStart(2,"0");return`${s}-${a} ${n}:${u}`}function Ye(e,t,s){const a=new Map;for(const n of e)a.set(Ke(n),n);for(const[n,u]of Object.entries(t)){const r=I(n),f=u.items?.[0];if(!f||!r)continue;const o=Xe(r);if(s==="current"&&o||s==="history"&&!o)continue;const h=Ke({...f,taskId:r});a.has(h)||a.set(h,{...f,taskId:r})}return Array.from(a.values())}function It(){try{const e=window.localStorage.getItem(qe()),t=e?JSON.parse(e):[];y.value=Array.isArray(t)?t.filter(s=>typeof s=="number"&&s>0):[]}catch{y.value=[]}}function ue(){le(qe(),y.value,y.value.length===0)}function Dt(){try{const e=window.localStorage.getItem(Be());k.value=e?JSON.parse(e):{}}catch{k.value={}}}function F(){le(Be(),k.value,Object.keys(k.value).length===0)}function $t(){try{const e=window.localStorage.getItem(ze());d.value=e?JSON.parse(e):{}}catch{d.value={}}}function q(){le(ze(),d.value,Object.keys(d.value).length===0)}function Nt(){try{const e=window.localStorage.getItem(je());T.value=e?JSON.parse(e):[]}catch{T.value=[]}}function Ne(){le(je(),T.value,T.value.length===0)}function Mt(e){const t=e instanceof Error?e.message:String(e||"");return/记录不存在|任务不存在|不存在|已删除|not\s*found|404/i.test(t)}function Pt(){const e=y.value.filter(t=>(k.value[t]||d.value[t]?.task?.status)==="RUNNING");e.length!==y.value.length&&(y.value=e,ue())}function Qe(e){y.value.includes(e)||(y.value=[...y.value,e],ue())}function ie(e){const t=N.get(e);t&&(C.clearTimer("scheduled-dispatch",t),N.delete(e),N.size||fe())}function ce(e){if(ie(e),y.value=y.value.filter(t=>t!==e),delete k.value[e],d.value[e]){const t={...d.value};delete t[e],d.value=t,q()}ue(),F()}function X(e){ce(e),D.value=D.value.filter(t=>I(t.taskId)!==e)}function We(e,t=!0){y.value=y.value.filter(s=>s!==e),t||delete k.value[e],ue(),F()}function Z(e){return e==="SUCCESS"||e==="FAILED"||e==="COMPLETED"}function Xe(e){if(!e)return!1;const t=k.value[e]||d.value[e]?.task?.status;return Z(t)}function Ze(e){const t=I(e.taskId);return t&&Xe(t)||Z(e.taskStatus)?!0:!!e.success}async function ee(){Se.value=await _s()}async function U(){J.value=await Ts()}async function B(){const e=await Cs();D.value=e.items||[]}async function xt(){try{const e=await Es();if(Te.value)return;const t=(e.country_codes||[]).filter(s=>ye.some(a=>a.code===s));t.length&&(g.value=t)}catch{}}async function de(){await Promise.allSettled([B(),U()])}function et(){H&&C.clearTimer("preference-save",H),H=C.setTimeout("preference-save",()=>{H=null,At()},450)}async function At(){if(g.value.length){_e.value=!0;try{await As(g.value)}catch(e){m.error(e instanceof Error?e.message:"保存国家配置失败")}finally{_e.value=!1}}}function Lt(e){Oe.value=e}async function tt(){const e=ae.value.trim();if(!e){m.warning("请输入店铺名");return}ne.value=!0;try{await Is(e),ae.value="",await ee(),await U()}catch(t){m.error(t instanceof Error?t.message:"添加失败")}finally{ne.value=!1}}async function Ft(e){try{await Ds(e.id),await ee(),await U()}catch(t){m.error(t instanceof Error?t.message:"删除失败")}}function Ut(e){return g.value.includes(e)}function st(e){return g.value.length===1&&g.value[0]===e}function Rt(e,t){const s=t.target;if(s){if(!s.checked&&st(e)){s.checked=!0,m.warning("至少保留 1 个国家");return}Ot(e,s.checked)}}function Ot(e,t){if(Te.value=!0,t)g.value.includes(e)||(g.value=[...g.value,e]);else{if(g.value.length<=1){m.warning("至少保留 1 个国家");return}g.value=g.value.filter(s=>s!==e)}et()}function Vt(e){G.value=e}function Ht(){G.value=null}function qt(e){const t=G.value;if(G.value=null,t==null||t===e)return;Te.value=!0;const s=[...g.value],[a]=s.splice(t,1);s.splice(e,0,a),g.value=s,et()}function Bt(){x.value&&(w.value=Me(w.value,!0)),x.value||(w.value=[])}function zt(){const e=w.value[w.value.length-1],t=e?Et(e,60):$e();w.value=[...w.value,t]}function jt(e){w.value.length<=1||(w.value=w.value.filter((t,s)=>s!==e))}function Kt(e,t){const s=[...w.value];s[e]=t||"",w.value=Me(s,!1)}function Gt(e,t){const s=new Map;for(const a of e)s.set(L(a),a);for(const a of t)s.set(L(a),a);return Array.from(s.values())}async function Jt(){const e=Oe.value.map(t=>t.shop_name).filter(Boolean);if(!e.length){m.warning("请先选择候选店铺");return}oe.value=!0;try{const t=await $s(e);T.value=Gt(T.value,t.items||[]),Ne(),be.value&>(),m.success(`本次返回 ${t.items?.length||0} 条匹配结果`)}catch(t){m.error(t instanceof Error?t.message:"匹配失败")}finally{oe.value=!1}}function Yt(e){T.value=T.value.filter(t=>L(t)!==L(e)),Ne()}function R(e){const t=new Set(e.map(s=>L(s)));T.value=T.value.filter(s=>!t.has(L(s))),Ne()}function Qt(){if(!x.value)return;const e=Date.now(),t=w.value.map(n=>n.trim()).filter(Boolean);if(!t.length)throw new Error("请至少选择一个执行时间");const s=t.map(n=>{const u=W(n);if(!u)throw new Error(`时间格式无效: ${n}`);return{raw:Ct(u),picker:re(u),time:u.getTime()}}).sort((n,u)=>n.time-u.time);for(let n=1;n n.time>e);if(!a.length)throw new Error("执行时间必须晚于当前时间,请重新选择");return a.length!==s.length&&(w.value=a.map(n=>n.picker),m.warning("已自动移除早于当前时间的执行时间")),a.map(n=>n.raw)}function Me(e,t){const s=Date.now(),a=e.map(r=>r.trim()).filter(Boolean).map(r=>{const f=W(r);return f?{value:re(f),time:f.getTime()}:null}).filter(r=>!!r).filter(r=>r.time>s).sort((r,f)=>r.time-f.time),n=[],u=new Set;for(const r of a)u.has(r.value)||(u.add(r.value),n.push(r.value));return!n.length&&t?[$e()]:n}function at(e,t,s,a,n=!0){return{type:"shop-match-run",ts:Date.now(),data:{taskId:e,user_id:Tt(),items:[{shopName:t.shopName,shopId:t.shopId,platform:t.platform,companyName:t.companyName,matched:!0,matchStatus:t.matchStatus,matchMessage:t.matchMessage}],country_codes:[...s],risk_listing_filter:we.value,stage_index:a,final_stage:n}}}function Pe(e){const t=d.value[e]?.task,s=t?.scheduleStages||[],a=t?.currentStageIndex;if(typeof a!="number")return null;const n=s.find(u=>u.stageIndex===a);return n?.scheduledAt?{stageIndex:a,scheduledAt:n.scheduledAt,finalStage:a===s.length-1}:null}async function Wt(e,t){const s=Ue();if(!s?.enqueue_json)throw new Error("当前客户端未提供 enqueue_json");const a=Pe(e),n=d.value[e],u=n?.task?.countryCodes||g.value;if(!a)throw new Error(`任务 ${e} 缺少待执行阶段`);ie(e),await lt(()=>Ls(e,a.stageIndex),(o,h)=>{S.value=`任务 ${e} 等待后端恢复后再激活执行(${o}/${h})...`}),k.value={...k.value,[e]:"RUNNING"},n?.task&&(d.value={...d.value,[e]:{...n,task:{...n.task,status:"RUNNING",activeStageIndex:a.stageIndex}}}),q(),F();const r=at(e,t,u,a.stageIndex,a.finalStage);K.value=JSON.stringify(r,null,2);const f=await s.enqueue_json(r);if(!f?.success)throw new Error(f?.error||`任务 ${e} 推送失败`);Qe(e),S.value=`任务 ${e} 已推送第 ${a.stageIndex+1} 轮`,se(!0)}function nt(e){const t=W(e);return t?t.getTime():Number.NaN}function Xt(){const e=new Set(y.value);for(const s of Object.keys(d.value)){const a=I(s);a>0&&e.add(a)}for(const s of D.value){const a=I(s.taskId);a>0&&e.add(a)}const t=Array.from(e).map(s=>{const a=d.value[s],n=k.value[s]||a?.task?.status,u=a?.items?.[0]||D.value.find(o=>I(o.taskId)===s),r=Pe(s);if(n!=="SCHEDULED"||!u||!r?.scheduledAt)return null;const f=nt(r.scheduledAt);return!Number.isFinite(f)||f>Date.now()?null:{taskId:s,item:u,scheduledTime:f}}).filter(s=>!!s);return t.sort((s,a)=>s.scheduledTime-a.scheduledTime||s.taskId-a.taskId),t}async function xe(){if(Ee.value)return;const e=Xt();if(e.length){Ee.value=!0;try{const t=e[0];try{await Wt(t.taskId,t.item),await ns(t.taskId)}catch(s){const a=s instanceof Error?s.message:`任务 ${t.taskId} 调度失败`,n=`${t.taskId}:${a}`,u=Date.now();S.value=a,(He!==n||u-Ve>1e4)&&(He=n,Ve=u,m.error(a)),await Promise.allSettled([B(),rt()])}}finally{Ee.value=!1,$()}}}function Zt(e,t){if(b||!t)return;ie(e);const s=nt(t);if(!Number.isFinite(s))return;const a=Math.max(0,s-Date.now()),n=C.setTimeout("scheduled-dispatch",()=>{N.delete(e),N.size||fe(),b||xe()},a);N.set(e,n),ot()}function $(){if(b)return;const e=new Set(y.value);for(const t of Object.keys(d.value)){const s=I(t);s>0&&e.add(s)}for(const t of D.value){const s=I(t.taskId);s>0&&e.add(s)}for(const t of e){const a=d.value[t]?.task?.status||k.value[t],n=Pe(t);a==="SCHEDULED"&&n?.scheduledAt?Zt(t,n.scheduledAt):ie(t)}N.size?ot():fe(),xe()}function ot(){b||Y||!N.size||(Y=C.setInterval("schedule-heartbeat",()=>{b||xe()},3e4))}function fe(){Y&&(C.clearTimer("schedule-heartbeat",Y),Y=null)}function he(){$(),y.value.length&&se(!0)}const es=["无法连接到后端服务","bad gateway","gateway timeout","network error","timeout","502","503","504"];function te(e){return b?Promise.resolve():C.sleep("queue-wait",e)}function ts(){C.clearCategory("queue-wait")}function Ae(e){const t=(e instanceof Error?e.message:String(e||"")).toLowerCase();return es.some(s=>t.includes(s.toLowerCase()))}async function lt(e,t,s=10){let a=0;for(;;){if(b)throw new Error("component disposed");try{return await e()}catch(n){if(a+=1,!Ae(n)||a>=s)throw n;t(a,s),await te(O())}}}async function rt(){if(!y.value.length)return{settledTaskIds:[]};try{const e=await Re(y.value),t={...d.value},s=new Set;for(const a of e.missingTaskIds||[])X(a),delete t[a],s.add(a);for(const a of e.items||[]){const n=a.task?.id;if(!n)continue;const u=t[n];t[n]=u?{...u,task:{...u.task||{},...a.task||{}}}:a;const r=a.task?.status||"";if(r){if(k.value[n]=r,Z(r)){ce(n),s.add(n);continue}r==="SCHEDULED"&&(We(n),s.add(n))}}return d.value=t,q(),F(),$(),{settledTaskIds:Array.from(s)}}catch{return{settledTaskIds:[]}}}function O(){return Fs()}function ut(e=!1){if(b)return;if(M.value){if(!e)return;C.clearTimer("task-poll",M.value),M.value=null}const t=async()=>{if(M.value=null,!b){if(Ce.value||!y.value.length){y.value.length&&ut();return}Ce.value=!0;try{const{settledTaskIds:s}=await rt();s.length&&await Promise.allSettled([B(),U()])}finally{Ce.value=!1}!b&&y.value.length&&(M.value=C.setTimeout("task-poll",t,O()))}};e?t():M.value=C.setTimeout("task-poll",t,O())}function se(e=!1){ut(e)}function ss(){M.value&&(C.clearTimer("task-poll",M.value),M.value=null)}async function as(e){let t=0;const s=30;for(;;){if(b)return"STOPPED";try{const a=await Re([e]);if(t>0&&(S.value=`任务 ${e} 后端已恢复,继续等待执行结果...`),t=0,(a.missingTaskIds||[]).includes(e))return X(e),await de(),$(),"FAILED";const n=(a.items||[]).find(r=>r.task?.id===e),u=n?.task?.status||"";if(n){const r=d.value[e];d.value={...d.value,[e]:r?{...r,task:{...r.task||{},...n.task||{}}}:n},q()}if(u&&(k.value[e]=u,F()),Z(u))return ce(e),await de(),$(),u}catch(a){if(!Ae(a))throw a;if(t+=1,t>=s)throw new Error(`任务 ${e} 等待后端恢复超时,请稍后手动刷新查看状态`);S.value=`任务 ${e} 运行中,正在等待后端服务恢复(${t}/${s})...`,(t===1||t%5===0)&&m.warning(`任务 ${e} 运行中,后端服务暂时不可用,正在自动重试`),await te(O());continue}await te(O())}}async function ns(e){let t=0;const s=30;for(;;){if(b)return"STOPPED";try{const a=await Re([e]);if(t>0&&(S.value=`任务 ${e} 后端已恢复,继续等待当前轮次结束...`),t=0,(a.missingTaskIds||[]).includes(e))return X(e),await de(),$(),"FAILED";const n=(a.items||[]).find(r=>r.task?.id===e),u=n?.task?.status||"";if(n){const r=d.value[e];d.value={...d.value,[e]:r?{...r,task:{...r.task||{},...n.task||{}}}:n},q()}if(u&&(k.value[e]=u,F()),!u||u==="RUNNING"){await te(O());continue}return Z(u)?(ce(e),await de(),$(),u):(u==="SCHEDULED"&&(We(e),$()),u)}catch(a){if(!Ae(a))throw a;if(t+=1,t>=s)throw new Error(`任务 ${e} 等待当前轮次结束超时,请稍后手动刷新查看状态`);S.value=`任务 ${e} 运行中,正在等待当前轮次结束(${t}/${s})...`,(t===1||t%5===0)&&m.warning(`任务 ${e} 运行中,后端服务暂时不可用,正在自动重试`),await te(O())}}}function Le(e){const t=I(e.taskId);return t?k.value[t]||d.value[t]?.task?.status||e.taskStatus||"":e.taskStatus||""}function it(e){const t=I(e.taskId);return t?d.value[t]:void 0}function ct(e){const s=it(e)?.task,a=s?.scheduleStages||[];if(!a.length)return"";const n=a.length,u=typeof s?.activeStageIndex=="number"?s.activeStageIndex:void 0,r=typeof s?.currentStageIndex=="number"?s.currentStageIndex:void 0;return typeof u=="number"?`执行进度: 第 ${u+1}/${n} 次执行中`:typeof r=="number"?`执行进度: 等待第 ${r+1}/${n} 次`:`执行进度: 共 ${n} 次`}function dt(e){const s=it(e)?.task,a=s?.scheduleStages||[];if(typeof s?.currentStageIndex=="number"){const n=a.find(u=>u.stageIndex===s.currentStageIndex);if(n?.scheduledAt)return Je(n.scheduledAt)}return e.scheduledAt?Je(e.scheduledAt):""}function ft(e){const t=Le(e);return t==="SCHEDULED"?"待执行":t==="RUNNING"?"执行中":t==="SUCCESS"||t==="COMPLETED"?"已完成":t==="FAILED"?"失败":e.success?"已完成":"未知"}function ht(e){const t=Le(e);return t==="SUCCESS"||t==="COMPLETED"?"success":t==="FAILED"?"failed":"running"}function vt(e){const t=Le(e);return!!e.resultId&&(!!e.fileReady||!!e.downloadUrl)&&(t==="SUCCESS"||t==="COMPLETED")}async function mt(e){if(!e.resultId)return;const t=Ue();if(!t?.save_file_from_url_new){m.error("当前客户端未提供下载能力");return}const s=Ns(e.resultId),a=e.outputFilename||`${e.shopName||"result"}.xlsx`,n=await t.save_file_from_url_new(s,a);n.success?m.success(`已保存: ${n.path||a}`):n.error&&n.error!=="用户取消"&&m.error(n.error)}async function pt(e){const t=I(e.taskId),s=Number(e.resultId||0);try{if(t>0)await Ms(t),X(t);else if(s>0)await Ps(s),D.value=D.value.filter(a=>Number(a.resultId||0)!==s),R([e]);else throw new Error("缺少可删除的任务标识");await Promise.allSettled([B(),ee(),U()]),m.success("删除成功")}catch(a){if(Mt(a)){t>0?X(t):s>0&&(D.value=D.value.filter(n=>Number(n.resultId||0)!==s)),R([e]),await Promise.allSettled([B(),ee(),U()]),m.success("后端记录已不存在,本地记录已同步清理");return}m.error(a instanceof Error?a.message:"删除失败")}}function os(e){const t=(e||"").trim();return{MATCHED:"已匹配",PENDING:"待匹配",CONFLICT:"需人工确认",INDEX_STALE:"索引过期"}[t]||t||"—"}function ls(e){const t=(e.matchMessage||"").trim();return t||(e.matched&&e.matchStatus==="MATCHED"?"紫鸟索引已命中,可推送队列":e.matched?"已关联索引,请结合状态列查看是否可推送":"未命中或未就绪,请检查店铺名与索引刷新")}async function rs(){be.value=!0,await gt()}function us(){return T.value.find(e=>e.matched)}async function gt(){if(b||ke.value)return;const e=Ue();if(!e?.enqueue_json){m.error("当前客户端未提供 enqueue_json");return}if(!T.value.filter(r=>r.matched).length){m.warning("请先匹配可用店铺");return}if(!g.value.length){m.warning("请至少勾选一个国家");return}let s;try{s=Qt()}catch(r){m.error(r instanceof Error?r.message:"定时配置无效");return}ke.value=!0,P.value=!0,K.value="";let a=0,n=0,u=0;try{for(;!b&&be.value;){const r=us();if(!r)break;u+=1;try{const f=await lt(()=>xs([r],g.value,s),(Fe,ve)=>{S.value=`后端服务暂时不可用,正在重试创建任务(${Fe}/${ve})...`}),o=f.taskId,h=s?.length?"SCHEDULED":"RUNNING",z={task:{id:o,status:h,scheduledAt:s?.[0],countryCodes:[...g.value],currentStageIndex:s?.length?0:void 0,activeStageIndex:void 0,scheduleStages:(s||[]).map((Fe,ve)=>({stageIndex:ve,scheduledAt:Fe,status:ve===0?"SCHEDULED":"PENDING"}))},items:f.items};if(d.value={...d.value,[o]:z},k.value={...k.value,[o]:h},q(),F(),!f.items?.[0]){R([r]);continue}if(s?.length){a+=1,$(),S.value=`任务 ${o} 已创建,共 ${s.length} 个执行时间点`,R([r]);continue}const yt=at(o,r,g.value);K.value=JSON.stringify(yt,null,2);const St=await e.enqueue_json(yt);if(!St?.success){n+=1,S.value=`任务 ${o} 推送失败,已自动继续下一条:${St?.error||"未知错误"}`,m.error(S.value),R([r]);continue}if(Qe(o),se(!0),R([r]),S.value=`任务 ${o} 已入队,等待执行完成`,await as(o)!=="SUCCESS"){n+=1,S.value=`任务 ${o} 执行失败,已自动继续下一条`,m.error(S.value);continue}a+=1,S.value=`任务 ${o} 已完成`}catch(f){if(b)break;n+=1,S.value=`第 ${u} 条任务处理失败,已自动继续下一条:${f instanceof Error?f.message:"未知错误"}`,m.error(S.value),R([r]);continue}}$(),s?.length||se(!0),!b&&(a>0||n>0)&&m.success(s?.length?`定时任务已创建:成功 ${a} 条,失败 ${n} 条`:`店铺推送已完成:成功 ${a} 条,失败 ${n} 条`)}catch(r){if(b)return;const f=r instanceof Error?r.message:"推送失败";S.value=f,m.error(f)}finally{ke.value=!1,P.value=!1}}return cs(async()=>{It(),Dt(),$t(),Nt(),w.value=Me(w.value,x.value),Pt(),await Promise.allSettled([ee(),xt(),B(),U()]),window.addEventListener("focus",he),document.addEventListener("visibilitychange",he),$(),y.value.length&&se(!0)}),ds(()=>{b=!0,ss(),fe(),ts(),window.removeEventListener("focus",he),document.removeEventListener("visibilitychange",he),H&&C.clearTimer("preference-save",H);for(const e of N.values())C.clearTimer("scheduled-dispatch",e);N.clear(),C.clearScope()}),(e,t)=>{const s=vs,a=ms,n=ps,u=ys,r=Ss,f=bs;return i(),c("div",zs,[_(fs,{active:"shop-match"}),l("div",js,[l("aside",Ks,[t[10]||(t[10]=l("div",{class:"section-title"},"店铺候选",-1)),l("div",Gs,[t[4]||(t[4]=l("div",{class:"hint"},"输入店铺名后点“添加”加入下方备选区。勾选备选店铺后先做“匹配店铺”,确认命中紫鸟索引后再推送到 Python 队列。",-1)),l("div",Js,[_(s,{modelValue:ae.value,"onUpdate:modelValue":t[0]||(t[0]=o=>ae.value=o),clearable:"",placeholder:"请输入店铺名后回车或点击添加",onKeyup:hs(tt,["enter"])},null,8,["modelValue"]),l("button",{type:"button",class:"opt-btn",disabled:ne.value,onClick:tt},v(ne.value?"添加中...":"添加"),9,Ys)])]),t[11]||(t[11]=l("div",{class:"section-title"},"备选店铺",-1)),Se.value.length?(i(),c("div",Ws,[_(n,{data:Se.value,"row-key":"id",height:"240",class:"candidate-table",onSelectionChange:Lt},{default:A(()=>[_(a,{type:"selection",width:"42"}),_(a,{prop:"shop_name",label:"店铺名","min-width":"120","show-overflow-tooltip":""}),_(a,{label:"操作",width:"72",align:"center"},{default:A(({row:o})=>[l("button",{type:"button",class:"link-danger",onClick:h=>Ft(o)},"删除",8,Xs)]),_:1})]),_:1},8,["data"])])):(i(),c("div",Qs,"暂无备选店铺,请先输入并添加")),t[12]||(t[12]=l("div",{class:"section-title"},"国家配置",-1)),t[13]||(t[13]=l("p",{class:"hint country-pref-hint"},"勾选的国家会在每一个执行时间点都执行一遍。勾选区会按照已选顺序排在前面,下方支持拖拽排序,和商品风险页保持一致。",-1)),l("div",Zs,[(i(!0),c(V,null,j(_t.value,o=>(i(),c("label",{key:o.code,class:"country-check-row"},[l("input",{type:"checkbox",class:"country-check-input",checked:Ut(o.code),disabled:st(o.code),onChange:h=>Rt(o.code,h)},null,40,ea),l("span",ta,v(o.label)+" ("+v(o.code)+")",1)]))),128))]),g.value.length?(i(),c("div",sa,[t[6]||(t[6]=l("div",{class:"country-order-caption"},"已选顺序(拖拽 ⋮⋮ 调整)",-1)),l("div",aa,[(i(!0),c(V,null,j(g.value,(o,h)=>(i(),c("div",{key:o,class:me(["country-drag-row",{dragging:G.value===h}]),draggable:"true",onDragstart:z=>Vt(h),onDragend:Ht,onDragover:t[1]||(t[1]=wt(()=>{},["prevent"])),onDrop:wt(z=>qt(h),["prevent"])},[t[5]||(t[5]=l("span",{class:"drag-handle",title:"拖动排序"},"⋮⋮",-1)),l("span",oa,v(Ge(o))+" ("+v(o)+")",1)],42,na))),128))])])):E("",!0),_e.value?(i(),c("div",la,"保存中...")):E("",!0),t[14]||(t[14]=l("div",{class:"section-title"},"商品列表筛选",-1)),t[15]||(t[15]=l("p",{class:"hint listing-filter-hint"},"与“推送到 Python 队列”一并下发,供 Python 区分处理场景。",-1)),l("div",ra,[_(r,{modelValue:we.value,"onUpdate:modelValue":t[2]||(t[2]=o=>we.value=o),class:"listing-filter-select",teleported:"",placeholder:"选择筛选类型"},{default:A(()=>[(i(!0),c(V,null,j(gs(qs),o=>(i(),kt(u,{key:o.value,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t[16]||(t[16]=l("div",{class:"section-title"},"定时执行",-1)),l("label",ua,[ws(l("input",{"onUpdate:modelValue":t[3]||(t[3]=o=>x.value=o),type:"checkbox",disabled:P.value,onChange:Bt},null,40,ia),[[ks,x.value]]),t[7]||(t[7]=l("span",null,"启用多时间点调度",-1))]),x.value?(i(),c("div",ca,[(i(!0),c(V,null,j(w.value,(o,h)=>(i(),c("div",{key:`schedule-${h}`,class:"schedule-row"},[_(f,{"model-value":o,type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",format:"MM-DD HH:mm",placeholder:"选择执行时间",disabled:P.value,class:"schedule-picker","onUpdate:modelValue":z=>Kt(h,z)},null,8,["model-value","disabled","onUpdate:modelValue"]),l("button",{type:"button",class:"schedule-remove",disabled:P.value||w.value.length<=1,onClick:z=>jt(h)},"删除",8,da)]))),128)),l("button",{type:"button",class:"schedule-add",disabled:P.value,onClick:zt},"添加时间点",8,fa),t[8]||(t[8]=l("p",{class:"hint schedule-hint"},"默认开启定时;支持按 `MM-DD HH:mm` 配置多个时间点,前端不再限制选择更早时间,实际是否可执行以后端校验为准。",-1))])):E("",!0),l("div",ha,[l("button",{type:"button",class:"btn-run",disabled:oe.value,onClick:Jt},v(oe.value?"匹配中...":"匹配店铺"),9,va),l("button",{type:"button",class:"btn-run btn-queue",disabled:P.value||!T.value.length,onClick:rs},v(P.value?"推送中...":x.value?"创建定时任务":"推送到 Python 队列"),9,ma)]),t[17]||(t[17]=l("p",{class:"loading-msg"},[pe("已支持多阶段定时执行;Python 每处理完一店可回传 "),l("code",null,"/api/shop-match/tasks/{taskId}/result"),pe(",后端会按阶段汇总并在超时场景自动收尾。")],-1)),S.value?(i(),c("div",pa,[t[9]||(t[9]=l("div",{class:"section-title queue-debug-title"},"推送结果",-1)),l("div",ga,v(S.value),1),K.value?(i(),c("pre",ya,v(K.value),1)):E("",!0)])):E("",!0)]),l("section",Sa,[t[26]||(t[26]=l("div",{class:"panel-header"},"匹配与任务",-1)),l("div",wa,[l("div",ka,[l("div",ba,[t[18]||(t[18]=l("span",{class:"summary-label"},"候选店铺",-1)),l("strong",null,v(J.value.candidateCount),1)]),l("div",_a,[t[19]||(t[19]=l("span",{class:"summary-label"},"已结束任务",-1)),l("strong",null,v(J.value.processedTaskCount),1)]),l("div",Ta,[t[20]||(t[20]=l("span",{class:"summary-label"},"成功",-1)),l("strong",null,v(J.value.successTaskCount),1)]),l("div",Ca,[t[21]||(t[21]=l("span",{class:"summary-label"},"失败",-1)),l("strong",null,v(J.value.failedTaskCount),1)])]),t[25]||(t[25]=l("div",{class:"subsection-title"},"匹配结果",-1)),T.value.length?(i(),kt(n,{key:1,data:T.value,"row-key":L,"highlight-current-row":!1,class:"result-table match-table"},{default:A(()=>[_(a,{prop:"shopName",label:"店铺名","min-width":"100"}),_(a,{label:"匹配",width:"72",align:"center"},{default:A(({row:o})=>[l("span",{class:me(o.matched?"ok":"fail")},v(o.matched?"是":"否"),3)]),_:1}),_(a,{prop:"shopId",label:"店铺ID","min-width":"120","show-overflow-tooltip":""}),_(a,{prop:"platform",label:"平台",width:"88","show-overflow-tooltip":""}),_(a,{prop:"companyName",label:"公司","min-width":"100","show-overflow-tooltip":""}),_(a,{label:"状态",width:"100","show-overflow-tooltip":""},{default:A(({row:o})=>[pe(v(os(o.matchStatus)),1)]),_:1}),_(a,{label:"说明","min-width":"140","show-overflow-tooltip":""},{default:A(({row:o})=>[pe(v(ls(o)),1)]),_:1}),_(a,{label:"操作",width:"72",align:"center"},{default:A(({row:o})=>[l("button",{type:"button",class:"link-danger",onClick:h=>Yt(o)},"删除",8,Ia)]),_:1})]),_:1},8,["data"])):(i(),c("div",Ea,"完成“匹配店铺”后,在此展示紫鸟索引匹配结果,供核对后再推送队列。")),l("div",Da,[t[24]||(t[24]=l("div",{class:"result-list-header"},[l("span",null,"处理记录")],-1)),bt.value?(i(),c(V,{key:1},[Ie.value.length?(i(),c("div",Na,[t[22]||(t[22]=l("div",{class:"result-subsection-title"},"当前任务",-1)),l("ul",Ma,[(i(!0),c(V,null,j(Ie.value,o=>(i(),c("li",{key:`cur-${o.resultId}-${o.taskId}`,class:"task-item"},[l("div",Pa,[l("span",{class:"id",title:o.shopName||""},v(o.shopName||"-"),9,xa),l("div",Aa,"任务 ID: "+v(o.taskId??"-"),1),o.platform?(i(),c("div",La,"平台: "+v(o.platform),1)):E("",!0),ct(o)?(i(),c("div",Fa,v(ct(o)),1)):E("",!0),dt(o)?(i(),c("div",Ua,"下一次: "+v(dt(o)),1)):E("",!0),o.error?(i(),c("div",Ra,"错误: "+v(o.error),1)):E("",!0)]),l("div",Oa,[l("span",{class:me(["status",ht(o)])},v(ft(o)),3),vt(o)?(i(),c("button",{key:0,type:"button",class:"download",onClick:h=>mt(o)},"下载",8,Va)):E("",!0),l("button",{type:"button",class:"btn-delete",onClick:h=>pt(o)},"删除",8,Ha)])]))),128))])])):E("",!0),De.value.length?(i(),c("div",qa,[t[23]||(t[23]=l("div",{class:"result-subsection-title"},"历史任务",-1)),l("ul",Ba,[(i(!0),c(V,null,j(De.value,o=>(i(),c("li",{key:`his-${o.resultId}-${o.taskId}`,class:"task-item"},[l("div",za,[l("span",{class:"id",title:o.shopName||""},v(o.shopName||"-"),9,ja),l("div",Ka,"任务 ID: "+v(o.taskId??"-"),1),o.outputFilename?(i(),c("div",Ga,"文件: "+v(o.outputFilename),1)):E("",!0),o.error?(i(),c("div",Ja,"错误: "+v(o.error),1)):E("",!0)]),l("div",Ya,[l("span",{class:me(["status",ht(o)])},v(ft(o)),3),vt(o)?(i(),c("button",{key:0,type:"button",class:"download",onClick:h=>mt(o)},"下载",8,Qa)):E("",!0),l("button",{type:"button",class:"btn-delete",onClick:h=>pt(o)},"删除",8,Wa)])]))),128))])])):E("",!0)],64)):(i(),c("div",$a,"暂无处理记录。推送队列并等待 Python 回传后,将在此显示下载链接。"))])])])])])}}}),Za=Us(Xa,[["__scopeId","data-v-13134d73"]]);Rs.locale("zh-cn");Os(Za).use(Vs,{locale:Hs}).mount("#app"); diff --git a/new_web_source/assets/split-Cw6sXhAg.css b/new_web_source/assets/split-Cw6sXhAg.css new file mode 100644 index 0000000..233bb74 --- /dev/null +++ b/new_web_source/assets/split-Cw6sXhAg.css @@ -0,0 +1 @@ +.module-page[data-v-b24550f5]{min-height:100vh;background:#1a1a1a}.main-content[data-v-b24550f5]{display:flex;min-height:calc(100vh - 56px);height:calc(100vh - 56px)}.left-panel[data-v-b24550f5]{width:380px;background:#1e1e1e;padding:20px;overflow-y:auto;border-right:1px solid #2a2a2a}.right-panel[data-v-b24550f5]{flex:1;display:flex;flex-direction:column;min-width:0;background:#1a1a1a}.section-title[data-v-b24550f5]{font-size:13px;color:#bbb;margin-bottom:10px}.upload-zone[data-v-b24550f5]{border:1px dashed #3a3a3a;border-radius:10px;padding:24px;text-align:center;background:#252525;margin-bottom:20px;transition:all .2s ease}.upload-zone[data-v-b24550f5]:hover{border-color:#3498db;background:#2a2a2a}.hint[data-v-b24550f5]{color:#888;font-size:13px;margin-bottom:12px;line-height:1.5}.btns[data-v-b24550f5]{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.opt-btn[data-v-b24550f5],.btn-run[data-v-b24550f5],.download[data-v-b24550f5],.btn-delete[data-v-b24550f5]{border:none;cursor:pointer;transition:all .2s ease}.opt-btn[data-v-b24550f5]{padding:8px 16px;font-size:13px;color:#ccc;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:6px}.opt-btn.small[data-v-b24550f5]{padding:6px 10px;font-size:12px}.opt-btn[data-v-b24550f5]:hover{color:#3498db;background:#333;border-color:#3498db}.selected-files[data-v-b24550f5]{margin-top:14px;font-size:12px;color:#888;max-height:112px;overflow-y:auto;text-align:left}.selected-files span[data-v-b24550f5]{display:block;margin:4px 0;word-break:break-all}.more-line[data-v-b24550f5]{color:#b8c1cc}.split-selected-files[data-v-b24550f5]{max-height:120px;min-height:72px;padding-right:4px}.option-group[data-v-b24550f5]{margin-bottom:20px}.column-option-group[data-v-b24550f5]{padding:14px;border-radius:10px;background:#252525;border:1px solid #2a2a2a}.column-toolbar[data-v-b24550f5]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.column-count[data-v-b24550f5]{font-size:12px;color:#a9b4bf}.column-actions[data-v-b24550f5]{display:flex;gap:8px}.column-grid[data-v-b24550f5]{display:grid;grid-template-columns:1fr;gap:8px;max-height:280px;overflow-y:auto}.empty-column-state[data-v-b24550f5]{padding:16px 12px;border-radius:8px;border:1px dashed #3a3a3a;background:#202020;color:#7f8790;font-size:12px;line-height:1.6}.column-item[data-v-b24550f5]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid #2f2f2f;background:#202020;cursor:pointer;transition:all .2s ease;font-size:13px;color:#d7d7d7}.column-item[data-v-b24550f5]:hover,.column-item.active[data-v-b24550f5]{border-color:#3b6f98;background:#26313a}.column-item input[data-v-b24550f5]{margin:0}.column-item span[data-v-b24550f5]{word-break:break-all}.radio-item[data-v-b24550f5]{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:10px 12px;border-radius:8px;background:#252525;border:1px solid #2a2a2a;margin-bottom:8px;transition:all .2s ease}.radio-item[data-v-b24550f5]:hover,.radio-item.active[data-v-b24550f5]{background:#2a2a2a;border-color:#3a3a3a}.radio-item input[data-v-b24550f5]{margin-top:3px}.label[data-v-b24550f5]{font-weight:500;color:#e0e0e0;font-size:13px}.desc[data-v-b24550f5]{font-size:12px;color:#888;margin-top:2px;line-height:1.5;font-weight:400}.split-input-card[data-v-b24550f5]{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:10px;border:1px solid #2f2f2f;background:#252525}.split-number-input[data-v-b24550f5]{width:100%;padding:12px 14px;border-radius:8px;border:1px solid #3a3a3a;background:#1b1b1b;color:#eaf4ff;font-size:22px;font-weight:700;line-height:1.2;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.split-number-input[data-v-b24550f5]:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db2e;background:#20252b}.split-number-input[data-v-b24550f5]::placeholder{color:#708090;font-size:14px;font-weight:400}.run-row[data-v-b24550f5]{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin-top:16px}.btn-run[data-v-b24550f5]{padding:10px 22px;background:#3498db;color:#fff;border-radius:8px;font-size:14px}.btn-run[data-v-b24550f5]:hover{background:#2980b9}.btn-run[data-v-b24550f5]:disabled{background:#555;color:#999;cursor:not-allowed}.loading-msg[data-v-b24550f5]{color:#3498db;font-size:13px}.panel-header[data-v-b24550f5]{padding:16px 20px;border-bottom:1px solid #2a2a2a;font-size:15px;font-weight:600;color:#ddd}.task-list-wrap[data-v-b24550f5]{flex:1;overflow-y:auto;padding:16px}.task-list[data-v-b24550f5]{list-style:none;margin:0;padding:0}.task-item[data-v-b24550f5]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #2a2a2a;border-radius:8px;margin-bottom:10px;background:#1e1e1e}.split-result-item[data-v-b24550f5]{align-items:flex-start}.left[data-v-b24550f5]{flex:1;min-width:0}.split-result-main[data-v-b24550f5]{display:flex;flex-direction:column;gap:4px}.id[data-v-b24550f5]{display:inline-block;font-weight:600;color:#e0e0e0;font-size:13px}.files[data-v-b24550f5]{font-size:12px;color:#888;margin-top:4px}.time[data-v-b24550f5]{font-size:12px;color:#666;margin-top:2px}.split-entry-list[data-v-b24550f5]{line-height:1.6;word-break:break-all;max-width:100%}.task-right[data-v-b24550f5]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.split-result-actions[data-v-b24550f5]{flex-shrink:0;min-width:180px;justify-content:flex-end;align-self:center}.status[data-v-b24550f5]{padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap}.status.success[data-v-b24550f5]{background:#2ecc712e;color:#2ecc71}.status.failed[data-v-b24550f5]{background:#e74c3c2e;color:#ff6b6b}.download[data-v-b24550f5]{padding:6px 10px;border-radius:6px;font-size:12px;background:#3498db2e;color:#69b6ff}.download[data-v-b24550f5]:hover{background:#3498db47}.btn-delete[data-v-b24550f5]{padding:6px 10px;border-radius:6px;font-size:12px;background:#e74c3c1f;color:#ff8f8f}.btn-delete[data-v-b24550f5]:hover{background:#e74c3c38}.empty-tasks[data-v-b24550f5]{color:#666;font-size:13px;padding:24px 8px}.clean-placeholder[data-v-b24550f5]{max-height:112px}.clean-result-summary[data-v-b24550f5]{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:16px;margin-bottom:18px}.summary-card[data-v-b24550f5]{padding:16px 18px;border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e}.summary-card strong[data-v-b24550f5]{display:block;margin-top:8px;font-size:24px;color:#eaf4ff}.summary-label[data-v-b24550f5]{font-size:12px;color:#8d8d8d}.result-list-wrap[data-v-b24550f5]{border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e;min-height:260px}.result-list-header[data-v-b24550f5]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #2a2a2a;font-size:14px;color:#ddd}@media(max-width:1100px){.main-content[data-v-b24550f5]{flex-direction:column;height:auto}.left-panel[data-v-b24550f5]{width:100%;border-right:none;border-bottom:1px solid #2a2a2a}.right-panel[data-v-b24550f5]{min-height:420px}.task-item[data-v-b24550f5]{flex-direction:column;align-items:flex-start}.task-right[data-v-b24550f5]{width:100%;justify-content:flex-start}.split-result-actions[data-v-b24550f5]{min-width:0;align-self:flex-start}.clean-result-summary[data-v-b24550f5]{grid-template-columns:1fr}} diff --git a/new_web_source/assets/split.js b/new_web_source/assets/split.js index f86d567..837193a 100644 --- a/new_web_source/assets/split.js +++ b/new_web_source/assets/split.js @@ -1 +1 @@ -import{d as q,o as G,a,c as n,b as L,B as O,e,F as x,r as I,t as i,f,n as F,w as C,u as V,G as M,g as d,h as Q,i as E,E as r,H as W,I as X,p as Y,v as Z,J as ss,K as es,_ as ts,q as ls,s as as}from"./pywebview-C66x_2Dh.js";import{e as ns}from"./brand-BZije8D7.js";const os={class:"page-shell module-page"},is={class:"main-content"},rs={class:"left-panel"},us={class:"upload-zone"},ds={class:"selected-files clean-placeholder split-selected-files"},cs={key:0,class:"more-line"},ps={key:1},vs={class:"option-group column-option-group"},fs={class:"column-toolbar"},_s={class:"column-count"},ms={class:"column-actions"},ys={key:0,class:"column-grid"},gs=["value"],hs={key:1,class:"empty-column-state"},bs={class:"option-group"},ws={class:"radio-item active"},ks={class:"desc"},Cs={class:"option-group"},Ss={class:"option-group"},xs={key:0,class:"split-input-card"},Fs={key:1,class:"split-input-card"},Es={class:"run-row"},Ps=["disabled"],$s={class:"loading-msg"},Is={class:"right-panel"},Rs={class:"task-list-wrap"},Bs={class:"clean-result-summary"},Us={class:"summary-card"},Vs={class:"summary-card"},Ms={class:"summary-card"},Ts={class:"result-list-wrap"},Ds={key:0,class:"empty-tasks"},Hs={key:1,class:"task-list clean-result-list"},Ks={class:"left split-result-main"},Ns=["title"],js={key:0,class:"files"},As={key:1,class:"time"},zs={key:2,class:"files"},Js={key:3,class:"files split-entry-list"},qs={key:4,class:"files"},Gs={class:"task-right split-result-actions"},Ls=["onClick"],Os=["onClick"],Qs=q({__name:"BrandSplitTab",setup(Xs){const _=d([]),S=d(""),c=d([]),m=d([]),p=d([]),R=d(0),u=d("rows_per_file"),y=d(2e3),g=d(5),h=d(!1),b=d([]),w=d({total:0,successCount:0,failedCount:0,items:[]}),P=Q(()=>_.value.slice(0,8));function T(l){w.value={total:l.length,successCount:l.filter(s=>s.success).length,failedCount:l.filter(s=>!s.success).length,items:l}}async function B(l){const s=E();if(!s?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const o of l){const v=typeof o=="string"?o:o.absolutePath,J=typeof o=="string"?void 0:o.relativePath,k=await s.upload_file_to_java(v,J);if(!k?.success||!k.data)throw new Error(k?.error||k?.message||`上传失败:${v}`);t.push(k.data)}return t}async function U(l){const s=await Y(l);m.value=s.headers||[],p.value=[...s.headers||[]],R.value=s.totalRows||0}async function D(l,s){_.value=l,S.value="",c.value=await B(l),c.value.length>0&&await U(c.value[0].fileKey),r.success(s)}async function H(){const l=E();if(!l?.select_brand_xlsx_files){r.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const s=await l.select_brand_xlsx_files();if(!s?.length)return;await D(s,`已选择 ${s.length} 个待拆分文件`)}catch(s){r.error(s instanceof Error?s.message:"选择失败")}}async function K(){const l=E();if(!l?.select_brand_folder){r.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const s=await l.select_brand_folder();if(!s)return;S.value=s.split(/[/\\]/).filter(Boolean).pop()||"";const t=await ns(s);if(t.success&&t.items?.length){_.value=t.items.map(o=>o.relativePath),c.value=await B(t.items),c.value.length>0&&await U(c.value[0].fileKey),r.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}r.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(s){r.error(s instanceof Error?s.message:"选择失败")}}async function N(){if(!c.value.length){r.warning("请先选择待拆分 Excel 文件或文件夹");return}if(!p.value.length){r.warning("请至少选择一列保留列");return}if(u.value==="rows_per_file"&&(!y.value||y.value<=0)){r.warning("请输入有效的每份条数");return}if(u.value==="parts"&&(!g.value||g.value<=0)){r.warning("请输入有效的拆分份数");return}try{h.value=!0;const l=await W({files:c.value.map(s=>({fileKey:s.fileKey,originalFilename:s.originalFilename,relativePath:s.relativePath})),selectedColumns:p.value,splitMode:u.value,rowsPerFile:u.value==="rows_per_file"&&y.value||void 0,parts:u.value==="parts"&&g.value||void 0,archiveName:c.value.some(s=>!!s.relativePath)&&S.value?S.value:void 0});w.value=l,b.value=l.items||[],await $(),r.success("数据拆分完成")}catch(l){r.error(l instanceof Error?l.message:"数据拆分失败")}finally{h.value=!1}}async function $(){try{const l=await X();b.value=l.items||[],T(b.value)}catch{}}async function j(l){try{await ss(l),await $(),r.success("已删除")}catch(s){r.error(s instanceof Error?s.message:"删除失败")}}function A(l){const s=l.slice(0,4).map(o=>o.rowCount!==void 0?`${o.filename}(${o.rowCount}条)`:o.filename);return l.length-s.length>0?`${s.join("、")} 等 ${l.length} 个文件`:s.join("、")}async function z(l){const s=E(),t=l.downloadUrl||(l.resultId?es(l.resultId):"");if(!t){r.warning("当前结果没有下载地址");return}const o=l.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}.zip`;if(s?.save_file_from_url_new){const v=await s.save_file_from_url_new(t,o);v.success?r.success(`已保存:${v.path||o}`):v.error&&v.error!=="用户取消"&&r.error(v.error);return}}return G(()=>{$().catch(()=>{})}),(l,s)=>(a(),n("div",os,[L(O,{active:"split"}),e("div",is,[e("aside",rs,[s[14]||(s[14]=e("div",{class:"section-title"},"选择文件",-1)),e("div",us,[s[7]||(s[7]=e("div",{class:"hint"},"选择需要拆分的 Excel 文件或文件夹,按规则拆成多个 Excel 文件。",-1)),e("div",{class:"btns"},[e("button",{type:"button",class:"opt-btn",onClick:H},"选择 Excel 文件"),e("button",{type:"button",class:"opt-btn",onClick:K},"选择文件夹")]),e("div",ds,[_.value.length?(a(),n(x,{key:0},[(a(!0),n(x,null,I(P.value,t=>(a(),n("span",{key:t},i(t),1))),128)),_.value.length>P.value.length?(a(),n("span",cs," 还有 "+i(_.value.length-P.value.length)+" 个文件未展开显示 ",1)):f("",!0)],64)):(a(),n("span",ps,"暂未选择待拆分文件"))])]),s[15]||(s[15]=e("div",{class:"section-title"},"保留列设置",-1)),e("div",vs,[e("div",fs,[e("span",_s,"已选择 "+i(p.value.length)+" / "+i(m.value.length)+" 列",1),e("div",ms,[e("button",{type:"button",class:"opt-btn small",onClick:s[0]||(s[0]=t=>p.value=[...m.value])},"全选"),e("button",{type:"button",class:"opt-btn small",onClick:s[1]||(s[1]=t=>p.value=[])},"清空")])]),m.value.length?(a(),n("div",ys,[(a(!0),n(x,null,I(m.value,t=>(a(),n("label",{key:t,class:F(["column-item",{active:p.value.includes(t)}])},[C(e("input",{"onUpdate:modelValue":s[2]||(s[2]=o=>p.value=o),type:"checkbox",value:t},null,8,gs),[[Z,p.value]]),e("span",null,i(t),1)],2))),128))])):(a(),n("div",hs,"请选择 Excel 文件后读取表头并填充可保留列"))]),s[16]||(s[16]=e("div",{class:"section-title"},"总条数",-1)),e("div",bs,[e("label",ws,[s[9]||(s[9]=e("input",{type:"checkbox",checked:"",disabled:""},null,-1)),e("div",null,[s[8]||(s[8]=e("span",{class:"label"},"当前数据总条数",-1)),e("div",ks,i(R.value)+" 条(不含表头)",1)])])]),s[17]||(s[17]=e("div",{class:"section-title"},"拆分模式",-1)),e("div",Cs,[e("label",{class:F(["radio-item",{active:u.value==="rows_per_file"}])},[C(e("input",{"onUpdate:modelValue":s[3]||(s[3]=t=>u.value=t),type:"radio",value:"rows_per_file",name:"split-mode"},null,512),[[V,u.value]]),s[10]||(s[10]=e("div",null,[e("span",{class:"label"},"按每份条数"),e("div",{class:"desc"},"例如每份 2000 条,最后一份放剩余数据")],-1))],2),e("label",{class:F(["radio-item",{active:u.value==="parts"}])},[C(e("input",{"onUpdate:modelValue":s[4]||(s[4]=t=>u.value=t),type:"radio",value:"parts",name:"split-mode"},null,512),[[V,u.value]]),s[11]||(s[11]=e("div",null,[e("span",{class:"label"},"按份数平均拆分"),e("div",{class:"desc"},"例如拆 5 份,按总条数尽量平均分配")],-1))],2)]),s[18]||(s[18]=e("div",{class:"section-title"},"拆分参数",-1)),e("div",Ss,[u.value==="rows_per_file"?(a(),n("label",xs,[s[12]||(s[12]=e("span",{class:"label"},"每份条数",-1)),C(e("input",{"onUpdate:modelValue":s[5]||(s[5]=t=>y.value=t),class:"split-number-input",type:"number",min:"1",placeholder:"例如 2000"},null,512),[[M,y.value,void 0,{number:!0}]])])):(a(),n("label",Fs,[s[13]||(s[13]=e("span",{class:"label"},"拆分份数",-1)),C(e("input",{"onUpdate:modelValue":s[6]||(s[6]=t=>g.value=t),class:"split-number-input",type:"number",min:"1",placeholder:"例如 5"},null,512),[[M,g.value,void 0,{number:!0}]])]))]),e("div",Es,[e("button",{type:"button",class:"btn-run",disabled:h.value,onClick:N},i(h.value?"拆分中...":"开始拆分"),9,Ps),e("span",$s,i(h.value?"正在拆分并上传结果,请稍候…":"选择文件、保留列和拆分规则后即可执行拆分,结果会显示在右侧供下载"),1)])]),e("section",Is,[s[23]||(s[23]=e("div",{class:"panel-header"},"拆分结果",-1)),e("div",Rs,[e("div",Bs,[e("div",Us,[s[19]||(s[19]=e("span",{class:"summary-label"},"已处理文件",-1)),e("strong",null,i(w.value.total),1)]),e("div",Vs,[s[20]||(s[20]=e("span",{class:"summary-label"},"成功结果",-1)),e("strong",null,i(w.value.successCount),1)]),e("div",Ms,[s[21]||(s[21]=e("span",{class:"summary-label"},"失败文件",-1)),e("strong",null,i(w.value.failedCount),1)])]),e("div",Ts,[s[22]||(s[22]=e("div",{class:"result-list-header"},[e("span",null,"拆分结果压缩包列表")],-1)),b.value.length===0?(a(),n("div",Ds," 暂无拆分结果,完成数据拆分后会在这里展示压缩包文件 ")):(a(),n("ul",Hs,[(a(!0),n(x,null,I(b.value,t=>(a(),n("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}-${t.rowCount||0}`,class:"task-item split-result-item"},[e("div",Ks,[e("span",{class:"id",title:t.sourceFilename},i(t.sourceFilename||"-"),9,Ns),t.outputFilename?(a(),n("div",js,"压缩包文件:"+i(t.outputFilename),1)):f("",!0),t.rowCount!==void 0?(a(),n("div",As,"压缩包共包含 "+i(t.rowCount)+" 条数据",1)):f("",!0),t.entryCount&&t.entryCount>0?(a(),n("div",zs,"压缩包内共 "+i(t.entryCount)+" 个拆分文件 ",1)):f("",!0),t.entries&&t.entries.length?(a(),n("div",Js," 压缩包内容:"+i(A(t.entries)),1)):f("",!0),t.error?(a(),n("div",qs,"错误信息:"+i(t.error),1)):f("",!0)]),e("div",Gs,[e("span",{class:F(["status",t.success?"success":"failed"])},i(t.success?"已完成":"失败"),3),t.success&&(t.downloadUrl||t.resultId)?(a(),n("button",{key:0,type:"button",class:"download",onClick:o=>z(t)}," 下载压缩包 ",8,Ls)):f("",!0),t.resultId?(a(),n("button",{key:1,type:"button",class:"btn-delete",onClick:o=>j(t.resultId)}," 删除 ",8,Os)):f("",!0)])]))),128))]))])])])])]))}}),Ws=ts(Qs,[["__scopeId","data-v-f3b42aa3"]]);ls(Ws).use(as).mount("#app"); +import{d as q,o as G,a,c as n,b as L,B as O,e,F as x,r as I,t as i,f,n as F,w as C,u as V,G as M,g as d,h as Q,i as E,E as r,H as W,I as X,p as Y,v as Z,J as ss,K as es,_ as ts,q as ls,s as as}from"./pywebview-BWNiqXug.js";import{e as ns}from"./brand-CABpTGPu.js";const os={class:"page-shell module-page"},is={class:"main-content"},rs={class:"left-panel"},us={class:"upload-zone"},ds={class:"selected-files clean-placeholder split-selected-files"},cs={key:0,class:"more-line"},ps={key:1},vs={class:"option-group column-option-group"},fs={class:"column-toolbar"},_s={class:"column-count"},ms={class:"column-actions"},ys={key:0,class:"column-grid"},gs=["value"],hs={key:1,class:"empty-column-state"},bs={class:"option-group"},ws={class:"radio-item active"},ks={class:"desc"},Cs={class:"option-group"},Ss={class:"option-group"},xs={key:0,class:"split-input-card"},Fs={key:1,class:"split-input-card"},Es={class:"run-row"},Ps=["disabled"],$s={class:"loading-msg"},Is={class:"right-panel"},Rs={class:"task-list-wrap"},Bs={class:"clean-result-summary"},Us={class:"summary-card"},Vs={class:"summary-card"},Ms={class:"summary-card"},Ts={class:"result-list-wrap"},Ds={key:0,class:"empty-tasks"},Hs={key:1,class:"task-list clean-result-list"},Ks={class:"left split-result-main"},Ns=["title"],js={key:0,class:"files"},As={key:1,class:"time"},zs={key:2,class:"files"},Js={key:3,class:"files split-entry-list"},qs={key:4,class:"files"},Gs={class:"task-right split-result-actions"},Ls=["onClick"],Os=["onClick"],Qs=q({__name:"BrandSplitTab",setup(Xs){const _=d([]),S=d(""),c=d([]),m=d([]),p=d([]),R=d(0),u=d("rows_per_file"),y=d(2e3),g=d(5),h=d(!1),b=d([]),w=d({total:0,successCount:0,failedCount:0,items:[]}),P=Q(()=>_.value.slice(0,8));function T(l){w.value={total:l.length,successCount:l.filter(s=>s.success).length,failedCount:l.filter(s=>!s.success).length,items:l}}async function B(l){const s=E();if(!s?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const o of l){const v=typeof o=="string"?o:o.absolutePath,J=typeof o=="string"?void 0:o.relativePath,k=await s.upload_file_to_java(v,J);if(!k?.success||!k.data)throw new Error(k?.error||k?.message||`上传失败:${v}`);t.push(k.data)}return t}async function U(l){const s=await Y(l);m.value=s.headers||[],p.value=[...s.headers||[]],R.value=s.totalRows||0}async function D(l,s){_.value=l,S.value="",c.value=await B(l),c.value.length>0&&await U(c.value[0].fileKey),r.success(s)}async function H(){const l=E();if(!l?.select_brand_xlsx_files){r.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const s=await l.select_brand_xlsx_files();if(!s?.length)return;await D(s,`已选择 ${s.length} 个待拆分文件`)}catch(s){r.error(s instanceof Error?s.message:"选择失败")}}async function K(){const l=E();if(!l?.select_brand_folder){r.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const s=await l.select_brand_folder();if(!s)return;S.value=s.split(/[/\\]/).filter(Boolean).pop()||"";const t=await ns(s);if(t.success&&t.items?.length){_.value=t.items.map(o=>o.relativePath),c.value=await B(t.items),c.value.length>0&&await U(c.value[0].fileKey),r.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}r.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(s){r.error(s instanceof Error?s.message:"选择失败")}}async function N(){if(!c.value.length){r.warning("请先选择待拆分 Excel 文件或文件夹");return}if(!p.value.length){r.warning("请至少选择一列保留列");return}if(u.value==="rows_per_file"&&(!y.value||y.value<=0)){r.warning("请输入有效的每份条数");return}if(u.value==="parts"&&(!g.value||g.value<=0)){r.warning("请输入有效的拆分份数");return}try{h.value=!0;const l=await W({files:c.value.map(s=>({fileKey:s.fileKey,originalFilename:s.originalFilename,relativePath:s.relativePath})),selectedColumns:p.value,splitMode:u.value,rowsPerFile:u.value==="rows_per_file"&&y.value||void 0,parts:u.value==="parts"&&g.value||void 0,archiveName:c.value.some(s=>!!s.relativePath)&&S.value?S.value:void 0});w.value=l,b.value=l.items||[],await $(),r.success("数据拆分完成")}catch(l){r.error(l instanceof Error?l.message:"数据拆分失败")}finally{h.value=!1}}async function $(){try{const l=await X();b.value=l.items||[],T(b.value)}catch{}}async function j(l){try{await ss(l),await $(),r.success("已删除")}catch(s){r.error(s instanceof Error?s.message:"删除失败")}}function A(l){const s=l.slice(0,4).map(o=>o.rowCount!==void 0?`${o.filename}(${o.rowCount}条)`:o.filename);return l.length-s.length>0?`${s.join("、")} 等 ${l.length} 个文件`:s.join("、")}async function z(l){const s=E(),t=l.downloadUrl||(l.resultId?es(l.resultId):"");if(!t){r.warning("当前结果没有下载地址");return}const o=l.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}.zip`;if(s?.save_file_from_url_new){const v=await s.save_file_from_url_new(t,o);v.success?r.success(`已保存:${v.path||o}`):v.error&&v.error!=="用户取消"&&r.error(v.error);return}}return G(()=>{$().catch(()=>{})}),(l,s)=>(a(),n("div",os,[L(O,{active:"split"}),e("div",is,[e("aside",rs,[s[14]||(s[14]=e("div",{class:"section-title"},"选择文件",-1)),e("div",us,[s[7]||(s[7]=e("div",{class:"hint"},"选择需要拆分的 Excel 文件或文件夹,按规则拆成多个 Excel 文件。",-1)),e("div",{class:"btns"},[e("button",{type:"button",class:"opt-btn",onClick:H},"选择 Excel 文件"),e("button",{type:"button",class:"opt-btn",onClick:K},"选择文件夹")]),e("div",ds,[_.value.length?(a(),n(x,{key:0},[(a(!0),n(x,null,I(P.value,t=>(a(),n("span",{key:t},i(t),1))),128)),_.value.length>P.value.length?(a(),n("span",cs," 还有 "+i(_.value.length-P.value.length)+" 个文件未展开显示 ",1)):f("",!0)],64)):(a(),n("span",ps,"暂未选择待拆分文件"))])]),s[15]||(s[15]=e("div",{class:"section-title"},"保留列设置",-1)),e("div",vs,[e("div",fs,[e("span",_s,"已选择 "+i(p.value.length)+" / "+i(m.value.length)+" 列",1),e("div",ms,[e("button",{type:"button",class:"opt-btn small",onClick:s[0]||(s[0]=t=>p.value=[...m.value])},"全选"),e("button",{type:"button",class:"opt-btn small",onClick:s[1]||(s[1]=t=>p.value=[])},"清空")])]),m.value.length?(a(),n("div",ys,[(a(!0),n(x,null,I(m.value,t=>(a(),n("label",{key:t,class:F(["column-item",{active:p.value.includes(t)}])},[C(e("input",{"onUpdate:modelValue":s[2]||(s[2]=o=>p.value=o),type:"checkbox",value:t},null,8,gs),[[Z,p.value]]),e("span",null,i(t),1)],2))),128))])):(a(),n("div",hs,"请选择 Excel 文件后读取表头并填充可保留列"))]),s[16]||(s[16]=e("div",{class:"section-title"},"总条数",-1)),e("div",bs,[e("label",ws,[s[9]||(s[9]=e("input",{type:"checkbox",checked:"",disabled:""},null,-1)),e("div",null,[s[8]||(s[8]=e("span",{class:"label"},"当前数据总条数",-1)),e("div",ks,i(R.value)+" 条(不含表头)",1)])])]),s[17]||(s[17]=e("div",{class:"section-title"},"拆分模式",-1)),e("div",Cs,[e("label",{class:F(["radio-item",{active:u.value==="rows_per_file"}])},[C(e("input",{"onUpdate:modelValue":s[3]||(s[3]=t=>u.value=t),type:"radio",value:"rows_per_file",name:"split-mode"},null,512),[[V,u.value]]),s[10]||(s[10]=e("div",null,[e("span",{class:"label"},"按每份条数"),e("div",{class:"desc"},"例如每份 2000 条,最后一份放剩余数据")],-1))],2),e("label",{class:F(["radio-item",{active:u.value==="parts"}])},[C(e("input",{"onUpdate:modelValue":s[4]||(s[4]=t=>u.value=t),type:"radio",value:"parts",name:"split-mode"},null,512),[[V,u.value]]),s[11]||(s[11]=e("div",null,[e("span",{class:"label"},"按份数平均拆分"),e("div",{class:"desc"},"例如拆 5 份,按总条数尽量平均分配")],-1))],2)]),s[18]||(s[18]=e("div",{class:"section-title"},"拆分参数",-1)),e("div",Ss,[u.value==="rows_per_file"?(a(),n("label",xs,[s[12]||(s[12]=e("span",{class:"label"},"每份条数",-1)),C(e("input",{"onUpdate:modelValue":s[5]||(s[5]=t=>y.value=t),class:"split-number-input",type:"number",min:"1",placeholder:"例如 2000"},null,512),[[M,y.value,void 0,{number:!0}]])])):(a(),n("label",Fs,[s[13]||(s[13]=e("span",{class:"label"},"拆分份数",-1)),C(e("input",{"onUpdate:modelValue":s[6]||(s[6]=t=>g.value=t),class:"split-number-input",type:"number",min:"1",placeholder:"例如 5"},null,512),[[M,g.value,void 0,{number:!0}]])]))]),e("div",Es,[e("button",{type:"button",class:"btn-run",disabled:h.value,onClick:N},i(h.value?"拆分中...":"开始拆分"),9,Ps),e("span",$s,i(h.value?"正在拆分并上传结果,请稍候…":"选择文件、保留列和拆分规则后即可执行拆分,结果会显示在右侧供下载"),1)])]),e("section",Is,[s[23]||(s[23]=e("div",{class:"panel-header"},"拆分结果",-1)),e("div",Rs,[e("div",Bs,[e("div",Us,[s[19]||(s[19]=e("span",{class:"summary-label"},"已处理文件",-1)),e("strong",null,i(w.value.total),1)]),e("div",Vs,[s[20]||(s[20]=e("span",{class:"summary-label"},"成功结果",-1)),e("strong",null,i(w.value.successCount),1)]),e("div",Ms,[s[21]||(s[21]=e("span",{class:"summary-label"},"失败文件",-1)),e("strong",null,i(w.value.failedCount),1)])]),e("div",Ts,[s[22]||(s[22]=e("div",{class:"result-list-header"},[e("span",null,"拆分结果压缩包列表")],-1)),b.value.length===0?(a(),n("div",Ds," 暂无拆分结果,完成数据拆分后会在这里展示压缩包文件 ")):(a(),n("ul",Hs,[(a(!0),n(x,null,I(b.value,t=>(a(),n("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}-${t.rowCount||0}`,class:"task-item split-result-item"},[e("div",Ks,[e("span",{class:"id",title:t.sourceFilename},i(t.sourceFilename||"-"),9,Ns),t.outputFilename?(a(),n("div",js,"压缩包文件:"+i(t.outputFilename),1)):f("",!0),t.rowCount!==void 0?(a(),n("div",As,"压缩包共包含 "+i(t.rowCount)+" 条数据",1)):f("",!0),t.entryCount&&t.entryCount>0?(a(),n("div",zs,"压缩包内共 "+i(t.entryCount)+" 个拆分文件 ",1)):f("",!0),t.entries&&t.entries.length?(a(),n("div",Js," 压缩包内容:"+i(A(t.entries)),1)):f("",!0),t.error?(a(),n("div",qs,"错误信息:"+i(t.error),1)):f("",!0)]),e("div",Gs,[e("span",{class:F(["status",t.success?"success":"failed"])},i(t.success?"已完成":"失败"),3),t.success&&(t.downloadUrl||t.resultId)?(a(),n("button",{key:0,type:"button",class:"download",onClick:o=>z(t)}," 下载压缩包 ",8,Ls)):f("",!0),t.resultId?(a(),n("button",{key:1,type:"button",class:"btn-delete",onClick:o=>j(t.resultId)}," 删除 ",8,Os)):f("",!0)])]))),128))]))])])])])]))}}),Ws=ts(Qs,[["__scopeId","data-v-b24550f5"]]);ls(Ws).use(as).mount("#app"); diff --git a/new_web_source/assets/zh-cn-BbuLS91u.js b/new_web_source/assets/zh-cn-BbuLS91u.js new file mode 100644 index 0000000..b1411af --- /dev/null +++ b/new_web_source/assets/zh-cn-BbuLS91u.js @@ -0,0 +1 @@ +import{bp as m}from"./pywebview-BWNiqXug.js";var _={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值",alphaDescription:"透明度 {alpha}, 当前颜色 {color}",hueLabel:"选择色相值",hueDescription:"色相 {hue}, 当前颜色 {color}",svLabel:"选择饱和度与明度的值",svDescription:"饱和度 {saturation}, 明度 {brightness}, 当前颜色 {color}",predefineDescription:"选择 {value} 作为颜色"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},mention:{loading:"加载中"},dropdown:{toggleDropdown:"切换下拉选项"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计",selectAllLabel:"选择所有行",selectRowLabel:"选择当前行",expandRowLabel:"展开当前行",collapseRowLabel:"收起当前行",sortLabel:"按 {column} 排序",filterLabel:"按 {column} 过滤"},tag:{close:"关闭此标签"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}},a={exports:{}},d=a.exports,i;function p(){return i||(i=1,(function(s,u){(function(n,r){s.exports=r(m())})(d,(function(n){function r(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var c=r(n),l={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,o){return o==="W"?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,o){var t=100*e+o;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return c.default.locale(l,null,!0),l}))})(a)),a.exports}p();export{_ as z}; diff --git a/new_web_source/convert.html b/new_web_source/convert.html index ed6e58f..bd4790e 100644 --- a/new_web_source/convert.html +++ b/new_web_source/convert.html @@ -1,16 +1,16 @@ - - - - - - 格式转换 - 数富AI + + + + + +格式转换 - 数富AI - - - - - - - - - + + + + + + + + + diff --git a/new_web_source/dedupe.html b/new_web_source/dedupe.html index 2f621af..7cce7d1 100644 --- a/new_web_source/dedupe.html +++ b/new_web_source/dedupe.html @@ -1,16 +1,16 @@ - - - - - -数据去重 - 数富AI + + + + + +数据去重 - 数富AI - - - - - - - - - + + + + + + + + + diff --git a/new_web_source/delete-brand.html b/new_web_source/delete-brand.html index ff84f95..48b7162 100644 --- a/new_web_source/delete-brand.html +++ b/new_web_source/delete-brand.html @@ -1,16 +1,17 @@ - - - - - -删除品牌 - 数富AI + + + + + +删除品牌 - 数富AI - - - - - - - - - + + + + + + + + + + diff --git a/new_web_source/patrol-delete.html b/new_web_source/patrol-delete.html index 6a76ede..db033f6 100644 --- a/new_web_source/patrol-delete.html +++ b/new_web_source/patrol-delete.html @@ -1,18 +1,19 @@ - - - - - -巡店删除 - 数富AI + + + + + +巡店删除 - 数富AI - - - - + + + + + - - - - - + + + + + diff --git a/new_web_source/price-track.html b/new_web_source/price-track.html index c576c59..a2eb857 100644 --- a/new_web_source/price-track.html +++ b/new_web_source/price-track.html @@ -5,10 +5,11 @@跟价 - 数富AI - - - - + + + + + diff --git a/new_web_source/product-risk.html b/new_web_source/product-risk.html index 60c4350..92ef50d 100644 --- a/new_web_source/product-risk.html +++ b/new_web_source/product-risk.html @@ -5,11 +5,12 @@商品风险解决 - 数富AI - + - + + - + diff --git a/new_web_source/query-asin.html b/new_web_source/query-asin.html index c3044b2..76474a4 100644 --- a/new_web_source/query-asin.html +++ b/new_web_source/query-asin.html @@ -1,19 +1,20 @@ - - - - - -巡店删除 - 数富AI + + + + + +巡店删除 - 数富AI - - - - + + + + + - - - - - - + + + + + + diff --git a/new_web_source/shop-match.html b/new_web_source/shop-match.html index 4d6df59..fad9329 100644 --- a/new_web_source/shop-match.html +++ b/new_web_source/shop-match.html @@ -1,20 +1,21 @@ - - - - - -匹配店铺 - 数富AI + + + + + +匹配店铺 - 数富AI - - + + - + + - + - - - - - + + + + + diff --git a/new_web_source/split.html b/new_web_source/split.html index 3ef460a..437a40f 100644 --- a/new_web_source/split.html +++ b/new_web_source/split.html @@ -1,16 +1,16 @@ - - - - - -数据拆分 - 数富AI + + + + + +数据拆分 - 数富AI - - - - - - - - - + + + + + + + + + diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..a0374f4 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +{"version": "1.0.56"} \ No newline at end of file