From 32a9494dd6337e11d1794f8fa28553d8fb609086 Mon Sep 17 00:00:00 2001 From: super <2903208875@qq.com> Date: Thu, 26 Mar 2026 16:42:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=8E=E7=AB=AF=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + app/assets/convert.js | 2 +- app/assets/dedupe.js | 2 +- app/assets/delete-brand-D1WtGorm.css | 1 + app/assets/delete-brand.js | 1 + ...ew-IqgMfeBe.css => pywebview-8G_9KMXd.css} | 2 +- ...view-BRrok0pS.js => pywebview-Bl6M97uH.js} | 40 +- app/assets/split.js | 2 +- app/brand_output/357/1_鲍丽明.xlsx | Bin 0 -> 22718 bytes app/brand_output/357/1_鲍丽明_result.xlsx | Bin 0 -> 15838 bytes app/new_web_source/convert.html | 4 +- app/new_web_source/dedupe.html | 4 +- app/new_web_source/delete-brand.html | 15 + app/new_web_source/split.html | 4 +- app/web_source/brand.html | 202 +++++----- app/web_source/home.html | 5 +- backend-java/sdk-java-5.0.6.jar | Bin 0 -> 75581 bytes .../config/ModuleCleanupProperties.java | 15 + .../aiimage/config/PropertiesConfig.java | 2 +- .../aiimage/config/ZiniaoProperties.java | 8 +- .../brand/controller/BrandTaskController.java | 23 +- .../brand/service/BrandTaskService.java | 51 ++- .../controller/ConvertRunController.java | 28 +- .../convert/model/dto/ConvertRunRequest.java | 7 + .../convert/service/ConvertRunService.java | 17 +- .../controller/DedupeRunController.java | 28 +- .../dedupe/model/dto/DedupeRunRequest.java | 7 + .../dedupe/service/DedupeRunService.java | 17 +- .../controller/DeleteBrandRunController.java | 60 +++ .../model/dto/DeleteBrandRunRequest.java | 24 ++ .../model/dto/DeleteBrandSourceFileDto.java | 17 + .../model/vo/DeleteBrandHistoryVo.java | 14 + .../model/vo/DeleteBrandPreviewRowVo.java | 20 + .../model/vo/DeleteBrandResultItemVo.java | 47 +++ .../model/vo/DeleteBrandRunVo.java | 23 ++ .../service/DeleteBrandRunService.java | 291 +++++++++++++++ .../split/controller/SplitRunController.java | 28 +- .../split/model/dto/SplitRunRequest.java | 7 + .../split/service/SplitRunService.java | 16 +- .../task/model/entity/FileResultEntity.java | 1 + .../task/model/entity/FileTaskEntity.java | 1 + .../service/ModuleHistoryCleanupService.java | 52 +++ .../modules/ziniao/client/ZiniaoClient.java | 11 +- .../ziniao/client/ZiniaoClientImpl.java | 278 ++++++++++++-- .../controller/ZiniaoAuthController.java | 78 ++-- .../model/cache/ZiniaoSessionCacheDto.java | 2 + .../model/dto/ZiniaoOpenShopRequest.java | 17 + .../model/dto/ZiniaoSwitchShopRequest.java | 4 + .../ziniao/model/vo/ZiniaoOpenShopVo.java | 23 ++ .../ziniao/model/vo/ZiniaoSessionVo.java | 17 +- .../ziniao/model/vo/ZiniaoStaffItemVo.java | 17 + .../ziniao/model/vo/ZiniaoStaffListVo.java | 14 + .../ziniao/service/ZiniaoAuthService.java | 255 +++++++------ .../service/ZiniaoSessionCacheService.java | 17 + .../resources/application-local.example.yml | 12 +- .../src/main/resources/application.yml | 14 +- frontend-vue/delete-brand.html | 12 + frontend-vue/src/delete-brand-main.ts | 7 + .../brand/components/BrandDeleteBrandTab.vue | 346 ++++++++++++++++++ .../pages/brand/components/BrandTopBar.vue | 3 +- frontend-vue/src/shared/api/brand.ts | 23 +- frontend-vue/src/shared/api/java-modules.ts | 118 +++++- frontend-vue/vite.config.ts | 1 + 63 files changed, 1943 insertions(+), 415 deletions(-) create mode 100644 app/assets/delete-brand-D1WtGorm.css create mode 100644 app/assets/delete-brand.js rename app/assets/{pywebview-IqgMfeBe.css => pywebview-8G_9KMXd.css} (99%) rename app/assets/{pywebview-BRrok0pS.js => pywebview-Bl6M97uH.js} (66%) create mode 100644 app/brand_output/357/1_鲍丽明.xlsx create mode 100644 app/brand_output/357/1_鲍丽明_result.xlsx create mode 100644 app/new_web_source/delete-brand.html create mode 100644 backend-java/sdk-java-5.0.6.jar create mode 100644 backend-java/src/main/java/com/nanri/aiimage/config/ModuleCleanupProperties.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/controller/DeleteBrandRunController.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/model/dto/DeleteBrandRunRequest.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/model/dto/DeleteBrandSourceFileDto.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/model/vo/DeleteBrandHistoryVo.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/model/vo/DeleteBrandPreviewRowVo.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/model/vo/DeleteBrandResultItemVo.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/model/vo/DeleteBrandRunVo.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/task/service/ModuleHistoryCleanupService.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/ziniao/model/dto/ZiniaoOpenShopRequest.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/ziniao/model/vo/ZiniaoOpenShopVo.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/ziniao/model/vo/ZiniaoStaffItemVo.java create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/ziniao/model/vo/ZiniaoStaffListVo.java create mode 100644 frontend-vue/delete-brand.html create mode 100644 frontend-vue/src/delete-brand-main.ts create mode 100644 frontend-vue/src/pages/brand/components/BrandDeleteBrandTab.vue diff --git a/.gitignore b/.gitignore index d865f33..0c8527a 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ backend-java/*.iml # desktop app desktop/ +ERP-Demo/ diff --git a/app/assets/convert.js b/app/assets/convert.js index a584c49..f7bfa34 100644 --- a/app/assets/convert.js +++ b/app/assets/convert.js @@ -1 +1 @@ -import{d as A,o as H,a as n,c as o,b as j,B as z,e as s,F as w,r as F,t as r,f as _,n as E,w as K,u as M,x as q,g as u,h as T,y as J,i as k,E as i,j as L,z as O,A as G,C as Q,_ as W,q as X,s as Y}from"./pywebview-BRrok0pS.js";const Z={class:"page-shell module-page"},ee={class:"main-content"},se={class:"left-panel"},te={class:"upload-zone"},ae={class:"selected-files clean-placeholder"},le={key:0,class:"more-line"},ne={key:1},oe={class:"option-group"},ie=["value"],re={class:"template-item-content"},ce={class:"label"},ue={key:0,class:"template-tag"},de={key:1,class:"template-tag muted"},ve={key:2,class:"template-tag custom"},pe={class:"desc"},_e={key:0,class:"empty-option"},fe={class:"option-group"},me={class:"radio-item active"},he={class:"desc"},ye={class:"run-row"},ge=["disabled"],be={class:"loading-msg"},we={class:"right-panel"},ke={class:"task-list-wrap"},Ce={class:"clean-result-summary"},xe={class:"summary-card"},Fe={class:"summary-card"},Pe={class:"summary-card"},Ee={class:"result-list-wrap"},Te={key:0,class:"empty-tasks"},Ie={key:1,class:"task-list clean-result-list"},Be={class:"left"},Ne=["title"],$e={key:0,class:"files"},De={key:1,class:"files"},Re={class:"task-right"},Se=["onClick"],Ue=["onClick"],Ve=A({__name:"BrandConvertTab",setup(He){const v=u([]),g=u(""),f=u([]),m=u(!1),b=u([]),h=u({total:0,successCount:0,failedCount:0,items:[]}),d=u([]),c=u(""),C=T(()=>v.value.slice(0,8)),I=T(()=>d.value.find(a=>a.id===c.value)||null);async function P(a){const e=k();if(!e?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const l of a){const p=typeof l=="string"?l:l.absolutePath,V=typeof l=="string"?void 0:l.relativePath,y=await e.upload_file_to_java(p,V);if(!y?.success||!y.data)throw new Error(y?.error||y?.message||`上传失败:${p}`);t.push(y.data)}return t}async function B(a){const e=await J();d.value=e||[];const t=d.value.find(p=>p.id===c.value);if(t){c.value=t.id;return}const l=d.value.find(p=>p.isDefault);if(l){c.value=l.id;return}c.value=d.value[0]?.id||""}async function N(a,e){v.value=a,g.value="",f.value=await P(a),i.success(e)}async function $(){const a=k();if(!a?.select_brand_xlsx_files){i.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const e=await a.select_brand_xlsx_files();if(!e?.length)return;await N(e,`已选择 ${e.length} 个待转换文件`)}catch(e){i.error(e instanceof Error?e.message:"选择失败")}}async function D(){const a=k();if(!a?.select_brand_folder){i.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const e=await a.select_brand_folder();if(!e)return;g.value=e.split(/[/\\]/).filter(Boolean).pop()||"";const t=await L(e);if(t.success&&t.items?.length){v.value=t.items.map(l=>l.relativePath),f.value=await P(t.items),i.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}i.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(e){i.error(e instanceof Error?e.message:"选择失败")}}async function R(){if(!f.value.length){i.warning("请先选择待转换 Excel 文件或文件夹");return}if(!c.value){i.warning("请先选择模板");return}try{m.value=!0;const a=await O({files:f.value.map(e=>({fileKey:e.fileKey,originalFilename:e.originalFilename,relativePath:e.relativePath})),templateId:c.value,archiveName:f.value.some(e=>!!e.relativePath)&&g.value?g.value:void 0});h.value=a,b.value=a.items||[],await x(),i.success("格式转换完成")}catch(a){i.error(a instanceof Error?a.message:"格式转换失败")}finally{m.value=!1}}async function x(){try{const a=await G();b.value=a.items||[],h.value={total:a.items?.length||0,successCount:a.items?.filter(e=>e.success).length||0,failedCount:a.items?.filter(e=>!e.success).length||0,items:a.items||[]}}catch{}}async function S(a){try{await Q(a),await x(),i.success("已删除")}catch(e){i.error(e instanceof Error?e.message:"删除失败")}}async function U(a){const e=k();if(!a.downloadUrl){i.warning("当前结果没有下载地址");return}const t=a.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}.txt`;if(e?.save_file_from_url){const l=await e.save_file_from_url(a.downloadUrl,t);l.success?i.success(`已保存:${l.path||t}`):l.error&&l.error!=="用户取消"&&i.error(l.error);return}window.open(a.downloadUrl,"_blank")}return H(()=>{B().catch(()=>{}),x().catch(()=>{})}),(a,e)=>(n(),o("div",Z,[j(z,{active:"convert"}),s("div",ee,[s("aside",se,[e[5]||(e[5]=s("div",{class:"section-title"},"选择文件",-1)),s("div",te,[e[1]||(e[1]=s("div",{class:"hint"},"选择需要转换的 Excel 文件或文件夹,将按所选模板生成 txt 文件。",-1)),s("div",{class:"btns"},[s("button",{type:"button",class:"opt-btn",onClick:$},"选择 Excel 文件"),s("button",{type:"button",class:"opt-btn",onClick:D},"选择文件夹")]),s("div",ae,[v.value.length?(n(),o(w,{key:0},[(n(!0),o(w,null,F(C.value,t=>(n(),o("span",{key:t},r(t),1))),128)),v.value.length>C.value.length?(n(),o("span",le," 还有 "+r(v.value.length-C.value.length)+" 个文件未展开显示 ",1)):_("",!0)],64)):(n(),o("span",ne,"暂未选择待转换文件"))])]),e[6]||(e[6]=s("div",{class:"section-title"},"模板选择",-1)),s("div",oe,[(n(!0),o(w,null,F(d.value,t=>(n(),o("label",{key:t.id,class:E(["radio-item",{active:c.value===t.id}])},[K(s("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>c.value=l),type:"radio",value:t.id,name:"convert-template"},null,8,ie),[[M,c.value]]),s("div",re,[s("div",null,[s("span",ce,[q(r(t.templateName)+" ",1),t.isDefault?(n(),o("span",ue,"默认")):t.builtIn?(n(),o("span",de,"内置")):(n(),o("span",ve,"自定义"))]),s("div",pe,"输出文件:"+r(t.outputFilename),1)])])],2))),128)),d.value.length?_("",!0):(n(),o("div",_e,"暂无可用模板"))]),e[7]||(e[7]=s("div",{class:"section-title"},"转换说明",-1)),s("div",fe,[s("label",me,[e[3]||(e[3]=s("input",{type:"checkbox",checked:"",disabled:""},null,-1)),s("div",null,[e[2]||(e[2]=s("span",{class:"label"},"按当前模板输出",-1)),s("div",he,"当前模板:"+r(I.value?.templateName||"未加载模板"),1)])]),e[4]||(e[4]=s("label",{class:"radio-item active"},[s("input",{type:"checkbox",checked:"",disabled:""}),s("div",null,[s("span",{class:"label"},"SKU 使用雪花ID-序号"),s("div",{class:"desc"},"例如 1773816146796-1")])],-1))]),s("div",ye,[s("button",{type:"button",class:"btn-run",disabled:m.value,onClick:R},r(m.value?"转换中...":"开始转换"),9,ge),s("span",be,r(m.value?"正在生成并上传结果,请稍候…":"选择文件后即可执行格式转换,结果会显示在右侧供下载"),1)])]),s("section",we,[e[12]||(e[12]=s("div",{class:"panel-header"},"转换结果",-1)),s("div",ke,[s("div",Ce,[s("div",xe,[e[8]||(e[8]=s("span",{class:"summary-label"},"已处理文件",-1)),s("strong",null,r(h.value.total),1)]),s("div",Fe,[e[9]||(e[9]=s("span",{class:"summary-label"},"成功结果",-1)),s("strong",null,r(h.value.successCount),1)]),s("div",Pe,[e[10]||(e[10]=s("span",{class:"summary-label"},"失败文件",-1)),s("strong",null,r(h.value.failedCount),1)])]),s("div",Ee,[e[11]||(e[11]=s("div",{class:"result-list-header"},[s("span",null,"生成的结果压缩包列表")],-1)),b.value.length===0?(n(),o("div",Te," 暂无转换结果,完成格式转换后会在这里展示结果压缩包 ")):(n(),o("ul",Ie,[(n(!0),o(w,null,F(b.value,t=>(n(),o("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}`,class:"task-item"},[s("div",Be,[s("span",{class:"id",title:t.sourceFilename},r(t.sourceFilename||"-"),9,Ne),t.outputFilename?(n(),o("div",$e,"压缩包文件:"+r(t.outputFilename),1)):_("",!0),t.error?(n(),o("div",De,"错误信息:"+r(t.error),1)):_("",!0)]),s("div",Re,[s("span",{class:E(["status",t.success?"success":"failed"])},r(t.success?"已完成":"失败"),3),t.success&&t.downloadUrl?(n(),o("button",{key:0,type:"button",class:"download",onClick:l=>U(t)}," 下载压缩包 ",8,Se)):_("",!0),t.resultId?(n(),o("button",{key:1,type:"button",class:"btn-delete",onClick:l=>S(t.resultId)}," 删除 ",8,Ue)):_("",!0)])]))),128))]))])])])])]))}}),Ae=W(Ve,[["__scopeId","data-v-89690cc3"]]);X(Ae).use(Y).mount("#app"); +import{d as A,o as H,a as n,c as o,b as j,B as z,e as s,F as w,r as F,t as r,f as _,n as E,w as K,u as M,x as q,g as u,h as T,y as J,i as k,E as i,j as L,z as O,A as G,C as Q,_ as W,q as X,s as Y}from"./pywebview-Bl6M97uH.js";const Z={class:"page-shell module-page"},ee={class:"main-content"},se={class:"left-panel"},te={class:"upload-zone"},ae={class:"selected-files clean-placeholder"},le={key:0,class:"more-line"},ne={key:1},oe={class:"option-group"},ie=["value"],re={class:"template-item-content"},ce={class:"label"},ue={key:0,class:"template-tag"},de={key:1,class:"template-tag muted"},ve={key:2,class:"template-tag custom"},pe={class:"desc"},_e={key:0,class:"empty-option"},fe={class:"option-group"},me={class:"radio-item active"},he={class:"desc"},ye={class:"run-row"},ge=["disabled"],be={class:"loading-msg"},we={class:"right-panel"},ke={class:"task-list-wrap"},Ce={class:"clean-result-summary"},xe={class:"summary-card"},Fe={class:"summary-card"},Pe={class:"summary-card"},Ee={class:"result-list-wrap"},Te={key:0,class:"empty-tasks"},Ie={key:1,class:"task-list clean-result-list"},Be={class:"left"},Ne=["title"],$e={key:0,class:"files"},De={key:1,class:"files"},Re={class:"task-right"},Se=["onClick"],Ue=["onClick"],Ve=A({__name:"BrandConvertTab",setup(He){const v=u([]),g=u(""),f=u([]),m=u(!1),b=u([]),h=u({total:0,successCount:0,failedCount:0,items:[]}),d=u([]),c=u(""),C=T(()=>v.value.slice(0,8)),I=T(()=>d.value.find(a=>a.id===c.value)||null);async function P(a){const e=k();if(!e?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const l of a){const p=typeof l=="string"?l:l.absolutePath,V=typeof l=="string"?void 0:l.relativePath,y=await e.upload_file_to_java(p,V);if(!y?.success||!y.data)throw new Error(y?.error||y?.message||`上传失败:${p}`);t.push(y.data)}return t}async function B(a){const e=await J();d.value=e||[];const t=d.value.find(p=>p.id===c.value);if(t){c.value=t.id;return}const l=d.value.find(p=>p.isDefault);if(l){c.value=l.id;return}c.value=d.value[0]?.id||""}async function N(a,e){v.value=a,g.value="",f.value=await P(a),i.success(e)}async function $(){const a=k();if(!a?.select_brand_xlsx_files){i.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const e=await a.select_brand_xlsx_files();if(!e?.length)return;await N(e,`已选择 ${e.length} 个待转换文件`)}catch(e){i.error(e instanceof Error?e.message:"选择失败")}}async function D(){const a=k();if(!a?.select_brand_folder){i.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const e=await a.select_brand_folder();if(!e)return;g.value=e.split(/[/\\]/).filter(Boolean).pop()||"";const t=await L(e);if(t.success&&t.items?.length){v.value=t.items.map(l=>l.relativePath),f.value=await P(t.items),i.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}i.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(e){i.error(e instanceof Error?e.message:"选择失败")}}async function R(){if(!f.value.length){i.warning("请先选择待转换 Excel 文件或文件夹");return}if(!c.value){i.warning("请先选择模板");return}try{m.value=!0;const a=await O({files:f.value.map(e=>({fileKey:e.fileKey,originalFilename:e.originalFilename,relativePath:e.relativePath})),templateId:c.value,archiveName:f.value.some(e=>!!e.relativePath)&&g.value?g.value:void 0});h.value=a,b.value=a.items||[],await x(),i.success("格式转换完成")}catch(a){i.error(a instanceof Error?a.message:"格式转换失败")}finally{m.value=!1}}async function x(){try{const a=await G();b.value=a.items||[],h.value={total:a.items?.length||0,successCount:a.items?.filter(e=>e.success).length||0,failedCount:a.items?.filter(e=>!e.success).length||0,items:a.items||[]}}catch{}}async function S(a){try{await Q(a),await x(),i.success("已删除")}catch(e){i.error(e instanceof Error?e.message:"删除失败")}}async function U(a){const e=k();if(!a.downloadUrl){i.warning("当前结果没有下载地址");return}const t=a.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}.txt`;if(e?.save_file_from_url){const l=await e.save_file_from_url(a.downloadUrl,t);l.success?i.success(`已保存:${l.path||t}`):l.error&&l.error!=="用户取消"&&i.error(l.error);return}window.open(a.downloadUrl,"_blank")}return H(()=>{B().catch(()=>{}),x().catch(()=>{})}),(a,e)=>(n(),o("div",Z,[j(z,{active:"convert"}),s("div",ee,[s("aside",se,[e[5]||(e[5]=s("div",{class:"section-title"},"选择文件",-1)),s("div",te,[e[1]||(e[1]=s("div",{class:"hint"},"选择需要转换的 Excel 文件或文件夹,将按所选模板生成 txt 文件。",-1)),s("div",{class:"btns"},[s("button",{type:"button",class:"opt-btn",onClick:$},"选择 Excel 文件"),s("button",{type:"button",class:"opt-btn",onClick:D},"选择文件夹")]),s("div",ae,[v.value.length?(n(),o(w,{key:0},[(n(!0),o(w,null,F(C.value,t=>(n(),o("span",{key:t},r(t),1))),128)),v.value.length>C.value.length?(n(),o("span",le," 还有 "+r(v.value.length-C.value.length)+" 个文件未展开显示 ",1)):_("",!0)],64)):(n(),o("span",ne,"暂未选择待转换文件"))])]),e[6]||(e[6]=s("div",{class:"section-title"},"模板选择",-1)),s("div",oe,[(n(!0),o(w,null,F(d.value,t=>(n(),o("label",{key:t.id,class:E(["radio-item",{active:c.value===t.id}])},[K(s("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>c.value=l),type:"radio",value:t.id,name:"convert-template"},null,8,ie),[[M,c.value]]),s("div",re,[s("div",null,[s("span",ce,[q(r(t.templateName)+" ",1),t.isDefault?(n(),o("span",ue,"默认")):t.builtIn?(n(),o("span",de,"内置")):(n(),o("span",ve,"自定义"))]),s("div",pe,"输出文件:"+r(t.outputFilename),1)])])],2))),128)),d.value.length?_("",!0):(n(),o("div",_e,"暂无可用模板"))]),e[7]||(e[7]=s("div",{class:"section-title"},"转换说明",-1)),s("div",fe,[s("label",me,[e[3]||(e[3]=s("input",{type:"checkbox",checked:"",disabled:""},null,-1)),s("div",null,[e[2]||(e[2]=s("span",{class:"label"},"按当前模板输出",-1)),s("div",he,"当前模板:"+r(I.value?.templateName||"未加载模板"),1)])]),e[4]||(e[4]=s("label",{class:"radio-item active"},[s("input",{type:"checkbox",checked:"",disabled:""}),s("div",null,[s("span",{class:"label"},"SKU 使用雪花ID-序号"),s("div",{class:"desc"},"例如 1773816146796-1")])],-1))]),s("div",ye,[s("button",{type:"button",class:"btn-run",disabled:m.value,onClick:R},r(m.value?"转换中...":"开始转换"),9,ge),s("span",be,r(m.value?"正在生成并上传结果,请稍候…":"选择文件后即可执行格式转换,结果会显示在右侧供下载"),1)])]),s("section",we,[e[12]||(e[12]=s("div",{class:"panel-header"},"转换结果",-1)),s("div",ke,[s("div",Ce,[s("div",xe,[e[8]||(e[8]=s("span",{class:"summary-label"},"已处理文件",-1)),s("strong",null,r(h.value.total),1)]),s("div",Fe,[e[9]||(e[9]=s("span",{class:"summary-label"},"成功结果",-1)),s("strong",null,r(h.value.successCount),1)]),s("div",Pe,[e[10]||(e[10]=s("span",{class:"summary-label"},"失败文件",-1)),s("strong",null,r(h.value.failedCount),1)])]),s("div",Ee,[e[11]||(e[11]=s("div",{class:"result-list-header"},[s("span",null,"生成的结果压缩包列表")],-1)),b.value.length===0?(n(),o("div",Te," 暂无转换结果,完成格式转换后会在这里展示结果压缩包 ")):(n(),o("ul",Ie,[(n(!0),o(w,null,F(b.value,t=>(n(),o("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}`,class:"task-item"},[s("div",Be,[s("span",{class:"id",title:t.sourceFilename},r(t.sourceFilename||"-"),9,Ne),t.outputFilename?(n(),o("div",$e,"压缩包文件:"+r(t.outputFilename),1)):_("",!0),t.error?(n(),o("div",De,"错误信息:"+r(t.error),1)):_("",!0)]),s("div",Re,[s("span",{class:E(["status",t.success?"success":"failed"])},r(t.success?"已完成":"失败"),3),t.success&&t.downloadUrl?(n(),o("button",{key:0,type:"button",class:"download",onClick:l=>U(t)}," 下载压缩包 ",8,Se)):_("",!0),t.resultId?(n(),o("button",{key:1,type:"button",class:"btn-delete",onClick:l=>S(t.resultId)}," 删除 ",8,Ue)):_("",!0)])]))),128))]))])])])])]))}}),Ae=W(Ve,[["__scopeId","data-v-89690cc3"]]);X(Ae).use(Y).mount("#app"); diff --git a/app/assets/dedupe.js b/app/assets/dedupe.js index 00254d4..997c3e1 100644 --- a/app/assets/dedupe.js +++ b/app/assets/dedupe.js @@ -1 +1 @@ -import{d as z,o as W,a as n,c as o,b as q,B as J,e as s,F as C,r as F,t as i,f as b,n as I,w as P,v as B,g as u,h as L,i as x,E as r,j as O,k as G,l as Q,m as X,p as Y,_ as Z,q as ee,s as se}from"./pywebview-BRrok0pS.js";const te={class:"page-shell module-page"},le={class:"main-content"},ae={class:"left-panel"},ne={class:"upload-zone"},oe={class:"selected-files clean-placeholder"},re={key:0,class:"more-line"},ie={key:1},ue={class:"option-group column-option-group"},ce={class:"column-toolbar"},de={class:"column-count"},ve={key:0,class:"column-grid"},pe=["value"],fe={key:1,class:"empty-column-state"},_e={class:"option-group"},me={class:"run-row"},he=["disabled"],ge={class:"loading-msg"},ye={class:"right-panel"},be={class:"task-list-wrap"},we={class:"clean-result-summary"},ke={class:"summary-card"},Ce={class:"summary-card"},Ie={class:"summary-card"},xe={class:"result-list-wrap"},Ee={key:0,class:"empty-tasks"},De={key:1,class:"task-list clean-result-list"},Fe={class:"left"},Pe=["title"],Be={key:0,class:"files"},Se={key:1,class:"files"},Ue={class:"task-right"},Ne=["onClick"],$e=["onClick"],Ae=z({__name:"BrandDedupeTab",setup(Ke){const p=u([]),c=u([]),f=u([]),w=u(""),d=u([]),S=u(!1),_=u(!0),m=u(!0),h=u(!1),k=u([]),g=u({total:0,successCount:0,failedCount:0,items:[]}),E=L(()=>f.value.slice(0,8));function $(){c.value=[...p.value]}function A(){c.value=[]}async function U(l){const e=x();if(!e?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const a of l){const v=typeof a=="string"?a:a.absolutePath,j=typeof a=="string"?void 0:a.relativePath,y=await e.upload_file_to_java(v,j);if(!y?.success||!y.data)throw new Error(y?.error||y?.message||`上传失败:${v}`);t.push(y.data)}return t}async function N(l){const e=await Y(l);if(!e.headers?.length){r.error("读取 Excel 表头失败"),p.value=[],c.value=[];return}const t=["id","ASIN","国家","价格","卖家名称"],a=[...t.filter(v=>e.headers?.includes(v)),...(e.headers||[]).filter(v=>!t.includes(v))];p.value=a,c.value=t.filter(v=>a.includes(v))}async function H(l,e){f.value=l,w.value="",d.value=await U(l),d.value.length>0&&await N(d.value[0].fileKey),r.success(e)}async function K(){const l=x();if(!l?.select_brand_xlsx_files){r.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const e=await l.select_brand_xlsx_files();if(!e?.length)return;await H(e,`已选择 ${e.length} 个待清洗文件`)}catch(e){r.error(e instanceof Error?e.message:"选择失败")}}async function R(){const l=x();if(!l?.select_brand_folder){r.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const e=await l.select_brand_folder();if(!e)return;w.value=e.split(/[/\\]/).filter(Boolean).pop()||"";const t=await O(e);if(t.success&&t.items?.length){f.value=t.items.map(a=>a.relativePath),d.value=await U(t.items),d.value.length>0&&await N(d.value[0].fileKey),r.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}r.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(e){r.error(e instanceof Error?e.message:"选择失败")}}async function V(){if(!d.value.length){r.warning("请先选择待清洗 Excel 文件或文件夹");return}if(!c.value.length){r.warning("请至少选择一列保留列");return}if(!S.value&&!_.value&&!m.value){r.warning("请至少选择一种 ID 保留规则");return}try{h.value=!0;const l=await G({files:d.value.map(e=>({fileKey:e.fileKey,originalFilename:e.originalFilename,relativePath:e.relativePath})),selectedColumns:c.value,keepIntegerIds:S.value,keepUnderscoreIds:_.value,keepIntegerMainIdsWhenNoSubIds:m.value,archiveName:d.value.some(e=>!!e.relativePath)&&w.value?w.value:void 0});g.value=l,k.value=l.items||[],await D(),r.success("数据去重完成")}catch(l){r.error(l instanceof Error?l.message:"去重失败")}finally{h.value=!1}}async function D(){try{const l=await Q();k.value=l.items||[],g.value={total:l.items?.length||0,successCount:l.items?.filter(e=>e.success).length||0,failedCount:l.items?.filter(e=>!e.success).length||0,items:l.items||[]}}catch{}}async function M(l){try{await X(l),await D(),r.success("已删除")}catch(e){r.error(e instanceof Error?e.message:"删除失败")}}async function T(l){const e=x();if(!l.downloadUrl){r.warning("当前结果没有下载地址");return}const t=l.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}_cleaned.xlsx`;if(e?.save_file_from_url){const a=await e.save_file_from_url(l.downloadUrl,t);a.success?r.success(`已保存:${a.path||t}`):a.error&&a.error!=="用户取消"&&r.error(a.error);return}window.open(l.downloadUrl,"_blank")}return W(()=>{D().catch(()=>{})}),(l,e)=>(n(),o("div",te,[q(J,{active:"dedupe"}),s("div",le,[s("aside",ae,[e[7]||(e[7]=s("div",{class:"section-title"},"选择文件",-1)),s("div",ne,[e[3]||(e[3]=s("div",{class:"hint"},"选择需要清洗的 Excel 文件或文件夹,后续将按所选规则输出处理结果。",-1)),s("div",{class:"btns"},[s("button",{type:"button",class:"opt-btn",onClick:K},"选择 Excel 文件"),s("button",{type:"button",class:"opt-btn",onClick:R},"选择文件夹")]),s("div",oe,[f.value.length?(n(),o(C,{key:0},[(n(!0),o(C,null,F(E.value,t=>(n(),o("span",{key:t},i(t),1))),128)),f.value.length>E.value.length?(n(),o("span",re," 还有 "+i(f.value.length-E.value.length)+" 个文件未展开显示 ",1)):b("",!0)],64)):(n(),o("span",ie,"暂未选择待清洗文件"))])]),e[8]||(e[8]=s("div",{class:"section-title"},"保留列设置",-1)),s("div",ue,[s("div",ce,[s("span",de,"已选择 "+i(c.value.length)+" / "+i(p.value.length)+" 列",1),s("div",{class:"column-actions"},[s("button",{type:"button",class:"opt-btn small",onClick:$},"全选"),s("button",{type:"button",class:"opt-btn small",onClick:A},"清空")])]),p.value.length?(n(),o("div",ve,[(n(!0),o(C,null,F(p.value,t=>(n(),o("label",{key:t,class:I(["column-item",{active:c.value.includes(t)}])},[P(s("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>c.value=a),type:"checkbox",value:t},null,8,pe),[[B,c.value]]),s("span",null,i(t),1)],2))),128))])):(n(),o("div",fe,"请选择 Excel 文件后读取表头并填充可保留列")),e[4]||(e[4]=s("div",{class:"desc"},"读取首个 Excel 文件的第一行作为表头,用于动态选择需要保留的列。",-1))]),e[9]||(e[9]=s("div",{class:"section-title"},"ID 保留规则",-1)),s("div",_e,[s("label",{class:I(["radio-item",{active:_.value}])},[P(s("input",{"onUpdate:modelValue":e[1]||(e[1]=t=>_.value=t),type:"checkbox"},null,512),[[B,_.value]]),e[5]||(e[5]=s("div",null,[s("span",{class:"label"},"保留子链接"),s("div",{class:"desc"},"例如 1_1、2_3 这种带下划线的子项 ID")],-1))],2),s("label",{class:I(["radio-item",{active:m.value}])},[P(s("input",{"onUpdate:modelValue":e[2]||(e[2]=t=>m.value=t),type:"checkbox"},null,512),[[B,m.value]]),e[6]||(e[6]=s("div",null,[s("span",{class:"label"},"仅剩主链接无子链接"),s("div",{class:"desc"},"当某个主链接只有 13 这类主 ID、没有 13_1 这类对应子 ID 时,自动保留该主 ID")],-1))],2)]),s("div",me,[s("button",{type:"button",class:"btn-run",disabled:h.value,onClick:V},i(h.value?"清洗中...":"开始清洗"),9,he),s("span",ge,i(h.value?"正在处理文件并上传结果,请稍候…":"选择文件、列和 ID 规则后即可执行清洗,结果会显示在右侧供下载"),1)])]),s("section",ye,[e[14]||(e[14]=s("div",{class:"panel-header"},"去重结果",-1)),s("div",be,[s("div",we,[s("div",ke,[e[10]||(e[10]=s("span",{class:"summary-label"},"已处理文件",-1)),s("strong",null,i(g.value.total),1)]),s("div",Ce,[e[11]||(e[11]=s("span",{class:"summary-label"},"成功结果",-1)),s("strong",null,i(g.value.successCount),1)]),s("div",Ie,[e[12]||(e[12]=s("span",{class:"summary-label"},"失败文件",-1)),s("strong",null,i(g.value.failedCount),1)])]),s("div",xe,[e[13]||(e[13]=s("div",{class:"result-list-header"},[s("span",null,"处理后的 Excel 列表")],-1)),k.value.length===0?(n(),o("div",Ee," 暂无去重结果,完成数据去重后会在这里展示输出文件 ")):(n(),o("ul",De,[(n(!0),o(C,null,F(k.value,t=>(n(),o("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}`,class:"task-item"},[s("div",Fe,[s("span",{class:"id",title:t.sourceFilename},i(t.sourceFilename||"-"),9,Pe),t.outputFilename?(n(),o("div",Be,"输出文件:"+i(t.outputFilename),1)):b("",!0),t.error?(n(),o("div",Se,"错误信息:"+i(t.error),1)):b("",!0)]),s("div",Ue,[s("span",{class:I(["status",t.success?"success":"failed"])},i(t.success?"已完成":"失败"),3),t.success&&t.downloadUrl?(n(),o("button",{key:0,type:"button",class:"download",onClick:a=>T(t)}," 下载文件 ",8,Ne)):b("",!0),t.resultId?(n(),o("button",{key:1,type:"button",class:"btn-delete",onClick:a=>M(t.resultId)}," 删除 ",8,$e)):b("",!0)])]))),128))]))])])])])]))}}),He=Z(Ae,[["__scopeId","data-v-6b14da88"]]);ee(He).use(se).mount("#app"); +import{d as z,o as W,a as n,c as o,b as q,B as J,e as s,F as C,r as F,t as i,f as b,n as I,w as P,v as B,g as u,h as L,i as x,E as r,j as O,k as G,l as Q,m as X,p as Y,_ as Z,q as ee,s as se}from"./pywebview-Bl6M97uH.js";const te={class:"page-shell module-page"},le={class:"main-content"},ae={class:"left-panel"},ne={class:"upload-zone"},oe={class:"selected-files clean-placeholder"},re={key:0,class:"more-line"},ie={key:1},ue={class:"option-group column-option-group"},ce={class:"column-toolbar"},de={class:"column-count"},ve={key:0,class:"column-grid"},pe=["value"],fe={key:1,class:"empty-column-state"},_e={class:"option-group"},me={class:"run-row"},he=["disabled"],ge={class:"loading-msg"},ye={class:"right-panel"},be={class:"task-list-wrap"},we={class:"clean-result-summary"},ke={class:"summary-card"},Ce={class:"summary-card"},Ie={class:"summary-card"},xe={class:"result-list-wrap"},Ee={key:0,class:"empty-tasks"},De={key:1,class:"task-list clean-result-list"},Fe={class:"left"},Pe=["title"],Be={key:0,class:"files"},Se={key:1,class:"files"},Ue={class:"task-right"},Ne=["onClick"],$e=["onClick"],Ae=z({__name:"BrandDedupeTab",setup(Ke){const p=u([]),c=u([]),f=u([]),w=u(""),d=u([]),S=u(!1),_=u(!0),m=u(!0),h=u(!1),k=u([]),g=u({total:0,successCount:0,failedCount:0,items:[]}),E=L(()=>f.value.slice(0,8));function $(){c.value=[...p.value]}function A(){c.value=[]}async function U(l){const e=x();if(!e?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const a of l){const v=typeof a=="string"?a:a.absolutePath,j=typeof a=="string"?void 0:a.relativePath,y=await e.upload_file_to_java(v,j);if(!y?.success||!y.data)throw new Error(y?.error||y?.message||`上传失败:${v}`);t.push(y.data)}return t}async function N(l){const e=await Y(l);if(!e.headers?.length){r.error("读取 Excel 表头失败"),p.value=[],c.value=[];return}const t=["id","ASIN","国家","价格","卖家名称"],a=[...t.filter(v=>e.headers?.includes(v)),...(e.headers||[]).filter(v=>!t.includes(v))];p.value=a,c.value=t.filter(v=>a.includes(v))}async function H(l,e){f.value=l,w.value="",d.value=await U(l),d.value.length>0&&await N(d.value[0].fileKey),r.success(e)}async function K(){const l=x();if(!l?.select_brand_xlsx_files){r.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const e=await l.select_brand_xlsx_files();if(!e?.length)return;await H(e,`已选择 ${e.length} 个待清洗文件`)}catch(e){r.error(e instanceof Error?e.message:"选择失败")}}async function R(){const l=x();if(!l?.select_brand_folder){r.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const e=await l.select_brand_folder();if(!e)return;w.value=e.split(/[/\\]/).filter(Boolean).pop()||"";const t=await O(e);if(t.success&&t.items?.length){f.value=t.items.map(a=>a.relativePath),d.value=await U(t.items),d.value.length>0&&await N(d.value[0].fileKey),r.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}r.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(e){r.error(e instanceof Error?e.message:"选择失败")}}async function V(){if(!d.value.length){r.warning("请先选择待清洗 Excel 文件或文件夹");return}if(!c.value.length){r.warning("请至少选择一列保留列");return}if(!S.value&&!_.value&&!m.value){r.warning("请至少选择一种 ID 保留规则");return}try{h.value=!0;const l=await G({files:d.value.map(e=>({fileKey:e.fileKey,originalFilename:e.originalFilename,relativePath:e.relativePath})),selectedColumns:c.value,keepIntegerIds:S.value,keepUnderscoreIds:_.value,keepIntegerMainIdsWhenNoSubIds:m.value,archiveName:d.value.some(e=>!!e.relativePath)&&w.value?w.value:void 0});g.value=l,k.value=l.items||[],await D(),r.success("数据去重完成")}catch(l){r.error(l instanceof Error?l.message:"去重失败")}finally{h.value=!1}}async function D(){try{const l=await Q();k.value=l.items||[],g.value={total:l.items?.length||0,successCount:l.items?.filter(e=>e.success).length||0,failedCount:l.items?.filter(e=>!e.success).length||0,items:l.items||[]}}catch{}}async function M(l){try{await X(l),await D(),r.success("已删除")}catch(e){r.error(e instanceof Error?e.message:"删除失败")}}async function T(l){const e=x();if(!l.downloadUrl){r.warning("当前结果没有下载地址");return}const t=l.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}_cleaned.xlsx`;if(e?.save_file_from_url){const a=await e.save_file_from_url(l.downloadUrl,t);a.success?r.success(`已保存:${a.path||t}`):a.error&&a.error!=="用户取消"&&r.error(a.error);return}window.open(l.downloadUrl,"_blank")}return W(()=>{D().catch(()=>{})}),(l,e)=>(n(),o("div",te,[q(J,{active:"dedupe"}),s("div",le,[s("aside",ae,[e[7]||(e[7]=s("div",{class:"section-title"},"选择文件",-1)),s("div",ne,[e[3]||(e[3]=s("div",{class:"hint"},"选择需要清洗的 Excel 文件或文件夹,后续将按所选规则输出处理结果。",-1)),s("div",{class:"btns"},[s("button",{type:"button",class:"opt-btn",onClick:K},"选择 Excel 文件"),s("button",{type:"button",class:"opt-btn",onClick:R},"选择文件夹")]),s("div",oe,[f.value.length?(n(),o(C,{key:0},[(n(!0),o(C,null,F(E.value,t=>(n(),o("span",{key:t},i(t),1))),128)),f.value.length>E.value.length?(n(),o("span",re," 还有 "+i(f.value.length-E.value.length)+" 个文件未展开显示 ",1)):b("",!0)],64)):(n(),o("span",ie,"暂未选择待清洗文件"))])]),e[8]||(e[8]=s("div",{class:"section-title"},"保留列设置",-1)),s("div",ue,[s("div",ce,[s("span",de,"已选择 "+i(c.value.length)+" / "+i(p.value.length)+" 列",1),s("div",{class:"column-actions"},[s("button",{type:"button",class:"opt-btn small",onClick:$},"全选"),s("button",{type:"button",class:"opt-btn small",onClick:A},"清空")])]),p.value.length?(n(),o("div",ve,[(n(!0),o(C,null,F(p.value,t=>(n(),o("label",{key:t,class:I(["column-item",{active:c.value.includes(t)}])},[P(s("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>c.value=a),type:"checkbox",value:t},null,8,pe),[[B,c.value]]),s("span",null,i(t),1)],2))),128))])):(n(),o("div",fe,"请选择 Excel 文件后读取表头并填充可保留列")),e[4]||(e[4]=s("div",{class:"desc"},"读取首个 Excel 文件的第一行作为表头,用于动态选择需要保留的列。",-1))]),e[9]||(e[9]=s("div",{class:"section-title"},"ID 保留规则",-1)),s("div",_e,[s("label",{class:I(["radio-item",{active:_.value}])},[P(s("input",{"onUpdate:modelValue":e[1]||(e[1]=t=>_.value=t),type:"checkbox"},null,512),[[B,_.value]]),e[5]||(e[5]=s("div",null,[s("span",{class:"label"},"保留子链接"),s("div",{class:"desc"},"例如 1_1、2_3 这种带下划线的子项 ID")],-1))],2),s("label",{class:I(["radio-item",{active:m.value}])},[P(s("input",{"onUpdate:modelValue":e[2]||(e[2]=t=>m.value=t),type:"checkbox"},null,512),[[B,m.value]]),e[6]||(e[6]=s("div",null,[s("span",{class:"label"},"仅剩主链接无子链接"),s("div",{class:"desc"},"当某个主链接只有 13 这类主 ID、没有 13_1 这类对应子 ID 时,自动保留该主 ID")],-1))],2)]),s("div",me,[s("button",{type:"button",class:"btn-run",disabled:h.value,onClick:V},i(h.value?"清洗中...":"开始清洗"),9,he),s("span",ge,i(h.value?"正在处理文件并上传结果,请稍候…":"选择文件、列和 ID 规则后即可执行清洗,结果会显示在右侧供下载"),1)])]),s("section",ye,[e[14]||(e[14]=s("div",{class:"panel-header"},"去重结果",-1)),s("div",be,[s("div",we,[s("div",ke,[e[10]||(e[10]=s("span",{class:"summary-label"},"已处理文件",-1)),s("strong",null,i(g.value.total),1)]),s("div",Ce,[e[11]||(e[11]=s("span",{class:"summary-label"},"成功结果",-1)),s("strong",null,i(g.value.successCount),1)]),s("div",Ie,[e[12]||(e[12]=s("span",{class:"summary-label"},"失败文件",-1)),s("strong",null,i(g.value.failedCount),1)])]),s("div",xe,[e[13]||(e[13]=s("div",{class:"result-list-header"},[s("span",null,"处理后的 Excel 列表")],-1)),k.value.length===0?(n(),o("div",Ee," 暂无去重结果,完成数据去重后会在这里展示输出文件 ")):(n(),o("ul",De,[(n(!0),o(C,null,F(k.value,t=>(n(),o("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}`,class:"task-item"},[s("div",Fe,[s("span",{class:"id",title:t.sourceFilename},i(t.sourceFilename||"-"),9,Pe),t.outputFilename?(n(),o("div",Be,"输出文件:"+i(t.outputFilename),1)):b("",!0),t.error?(n(),o("div",Se,"错误信息:"+i(t.error),1)):b("",!0)]),s("div",Ue,[s("span",{class:I(["status",t.success?"success":"failed"])},i(t.success?"已完成":"失败"),3),t.success&&t.downloadUrl?(n(),o("button",{key:0,type:"button",class:"download",onClick:a=>T(t)}," 下载文件 ",8,Ne)):b("",!0),t.resultId?(n(),o("button",{key:1,type:"button",class:"btn-delete",onClick:a=>M(t.resultId)}," 删除 ",8,$e)):b("",!0)])]))),128))]))])])])])]))}}),He=Z(Ae,[["__scopeId","data-v-6b14da88"]]);ee(He).use(se).mount("#app"); diff --git a/app/assets/delete-brand-D1WtGorm.css b/app/assets/delete-brand-D1WtGorm.css new file mode 100644 index 0000000..2e23e5d --- /dev/null +++ b/app/assets/delete-brand-D1WtGorm.css @@ -0,0 +1 @@ +.module-page[data-v-216de439]{min-height:100vh;background:#1a1a1a}.main-content[data-v-216de439]{display:flex;min-height:calc(100vh - 56px);height:calc(100vh - 56px)}.left-panel[data-v-216de439]{width:380px;background:#1e1e1e;padding:20px;overflow-y:auto;border-right:1px solid #2a2a2a}.right-panel[data-v-216de439]{flex:1;display:flex;flex-direction:column;min-width:0;background:#1a1a1a}.section-title[data-v-216de439]{font-size:13px;color:#bbb;margin-bottom:10px}.upload-zone[data-v-216de439]{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-216de439]:hover{border-color:#3498db;background:#2a2a2a}.hint[data-v-216de439]{color:#888;font-size:13px;margin-bottom:12px;line-height:1.5}.btns[data-v-216de439]{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.opt-btn[data-v-216de439],.btn-run[data-v-216de439],.download[data-v-216de439],.btn-delete[data-v-216de439]{border:none;cursor:pointer;transition:all .2s ease}.opt-btn[data-v-216de439]{padding:8px 16px;font-size:13px;color:#ccc;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:6px}.opt-btn[data-v-216de439]:hover{color:#3498db;background:#333;border-color:#3498db}.selected-files[data-v-216de439]{margin-top:14px;font-size:12px;color:#888;max-height:112px;overflow-y:auto;text-align:left}.selected-files span[data-v-216de439]{display:block;margin:4px 0;word-break:break-all}.more-line[data-v-216de439]{color:#b8c1cc}.split-selected-files[data-v-216de439]{max-height:120px;min-height:72px;padding-right:4px}.option-group[data-v-216de439]{margin-bottom:20px}.radio-item[data-v-216de439]{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-216de439]:hover,.radio-item.active[data-v-216de439]{background:#2a2a2a;border-color:#3a3a3a}.radio-item input[data-v-216de439]{margin-top:3px}.label[data-v-216de439]{font-weight:500;color:#e0e0e0;font-size:13px}.desc[data-v-216de439]{font-size:12px;color:#888;margin-top:2px;line-height:1.5;font-weight:400}.run-row[data-v-216de439]{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin-top:16px}.btn-run[data-v-216de439]{padding:10px 22px;background:#3498db;color:#fff;border-radius:8px;font-size:14px}.btn-run[data-v-216de439]:hover{background:#2980b9}.btn-run[data-v-216de439]:disabled{background:#555;color:#999;cursor:not-allowed}.loading-msg[data-v-216de439]{color:#3498db;font-size:13px}.panel-header[data-v-216de439]{padding:16px 20px;border-bottom:1px solid #2a2a2a;font-size:15px;font-weight:600;color:#ddd}.task-list-wrap[data-v-216de439]{flex:1;overflow-y:auto;padding:16px}.task-list[data-v-216de439]{list-style:none;margin:0;padding:0}.task-item[data-v-216de439]{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-216de439]{align-items:flex-start}.left[data-v-216de439]{flex:1;min-width:0}.split-result-main[data-v-216de439]{display:flex;flex-direction:column;gap:4px}.id[data-v-216de439]{display:inline-block;font-weight:600;color:#e0e0e0;font-size:13px}.files[data-v-216de439]{font-size:12px;color:#888;margin-top:4px}.time[data-v-216de439]{font-size:12px;color:#666;margin-top:2px}.split-entry-list[data-v-216de439]{line-height:1.6;word-break:break-all;max-width:100%}.delete-brand-preview[data-v-216de439]{white-space:normal}.task-right[data-v-216de439]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.split-result-actions[data-v-216de439]{flex-shrink:0;min-width:180px;justify-content:flex-end;align-self:center}.status[data-v-216de439]{padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap}.status.success[data-v-216de439]{background:#2ecc712e;color:#2ecc71}.status.failed[data-v-216de439]{background:#e74c3c2e;color:#ff6b6b}.download[data-v-216de439]{padding:6px 10px;border-radius:6px;font-size:12px;background:#3498db2e;color:#69b6ff}.download[data-v-216de439]:hover{background:#3498db47}.btn-delete[data-v-216de439]{padding:6px 10px;border-radius:6px;font-size:12px;background:#e74c3c1f;color:#ff8f8f}.btn-delete[data-v-216de439]:hover{background:#e74c3c38}.empty-tasks[data-v-216de439]{color:#666;font-size:13px;padding:24px 8px}.clean-placeholder[data-v-216de439]{max-height:112px}.clean-result-summary[data-v-216de439]{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:16px;margin-bottom:18px}.summary-card[data-v-216de439]{padding:16px 18px;border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e}.summary-card strong[data-v-216de439]{display:block;margin-top:8px;font-size:24px;color:#eaf4ff}.summary-label[data-v-216de439]{font-size:12px;color:#8d8d8d}.result-list-wrap[data-v-216de439]{border:1px solid #2a2a2a;border-radius:10px;background:#1e1e1e;min-height:260px}.result-list-header[data-v-216de439]{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-216de439]{flex-direction:column;height:auto}.left-panel[data-v-216de439]{width:100%;border-right:none;border-bottom:1px solid #2a2a2a}.right-panel[data-v-216de439]{min-height:420px}.task-item[data-v-216de439]{flex-direction:column;align-items:flex-start}.task-right[data-v-216de439]{width:100%;justify-content:flex-start}.split-result-actions[data-v-216de439]{min-width:0;align-self:flex-start}.clean-result-summary[data-v-216de439]{grid-template-columns:1fr}} diff --git a/app/assets/delete-brand.js b/app/assets/delete-brand.js new file mode 100644 index 0000000..4305503 --- /dev/null +++ b/app/assets/delete-brand.js @@ -0,0 +1 @@ +import{d as D,o as S,a as l,c as n,b as j,B as N,e as t,F as b,r as C,t as o,f as c,J as H,n as T,g as h,h as V,i as m,E as i,j as K,K as M,L as z,M as A,_ as J,q as L,s as U}from"./pywebview-Bl6M97uH.js";const q={class:"page-shell module-page"},G={class:"main-content"},O={class:"left-panel"},Q={class:"upload-zone"},W={class:"selected-files clean-placeholder split-selected-files"},X={key:0,class:"more-line"},Y={key:1},Z={class:"run-row"},ss=["disabled"],es={class:"loading-msg"},ts={class:"right-panel"},as={class:"task-list-wrap"},ls={class:"clean-result-summary"},ns={class:"summary-card"},os={class:"summary-card"},rs={class:"summary-card"},is={class:"result-list-wrap"},cs={key:0,class:"empty-tasks"},ds={key:1,class:"task-list clean-result-list"},us={class:"left split-result-main"},vs=["title"],ps={class:"files"},_s={class:"files"},hs={key:0,class:"files"},fs={key:1,class:"time"},ys={key:2,class:"files"},gs={key:3,class:"files split-entry-list delete-brand-preview"},bs={key:4,class:"files"},ms={class:"task-right split-result-actions"},ws=["onClick"],ks=["onClick"],Cs=D({__name:"BrandDeleteBrandTab",setup(Bs){const d=h([]),f=h([]),u=h(!1),v=h([]),p=h({total:0,successCount:0,failedCount:0,items:[]}),y=V(()=>d.value.slice(0,8));function x(a){p.value={total:a.length,successCount:a.filter(s=>s.success).length,failedCount:a.filter(s=>!s.success).length,items:a}}async function w(a){const s=m();if(!s?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const e=[];for(const r of a){const k=typeof r=="string"?r:r.absolutePath,I=typeof r=="string"?void 0:r.relativePath,_=await s.upload_file_to_java(k,I);if(!_?.success||!_.data)throw new Error(_?.error||_?.message||`上传失败:${k}`);e.push(_.data)}return e}async function B(){const a=m();if(!a?.select_brand_xlsx_files){i.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const s=await a.select_brand_xlsx_files();if(!s?.length)return;d.value=s,f.value=await w(s),i.success(`已选择 ${s.length} 个删除品牌文件`)}catch(s){i.error(s instanceof Error?s.message:"选择失败")}}async function $(){const a=m();if(!a?.select_brand_folder){i.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const s=await a.select_brand_folder();if(!s)return;const e=await K(s);if(!e.success||!e.items?.length){i.warning(e.error||"该文件夹下没有 xlsx 文件");return}d.value=e.items.map(r=>r.relativePath||r.absolutePath),f.value=await w(e.items),i.success(`已选择文件夹内 ${e.items.length} 个 xlsx 文件`)}catch(s){i.error(s instanceof Error?s.message:"选择失败")}}async function P(){if(!f.value.length){i.warning("请先选择待处理文件");return}try{u.value=!0;const a=await M({files:f.value.map(s=>({fileKey:s.fileKey,originalFilename:s.originalFilename,relativePath:s.relativePath}))});p.value=a,v.value=a.items||[],await g(),i.success("删除品牌解析完成")}catch(a){i.error(a instanceof Error?a.message:"执行失败")}finally{u.value=!1}}async function g(){try{const a=await z();v.value=a.items||[],x(v.value)}catch{}}async function E(a){try{await A(a),await g(),i.success("已删除")}catch(s){i.error(s instanceof Error?s.message:"删除失败")}}function F(a){const s=a.slice(0,5).map(r=>`${r.country}:${r.asin}${r.status?`(${r.status})`:""}`);return a.length-s.length>0?`${s.join("、")} 等 ${a.length} 条`:s.join("、")}function R(a){window.open(a,"_blank")}return S(()=>{g().catch(()=>{})}),(a,s)=>(l(),n("div",q,[j(N,{active:"delete-brand"}),t("div",G,[t("aside",O,[s[1]||(s[1]=t("div",{class:"section-title"},"选择文件",-1)),t("div",Q,[s[0]||(s[0]=t("div",{class:"hint"},"上传删除品牌 Excel,文件名会作为店铺名去匹配紫鸟店铺。",-1)),t("div",{class:"btns"},[t("button",{type:"button",class:"opt-btn",onClick:B},"选择 Excel 文件"),t("button",{type:"button",class:"opt-btn",onClick:$},"选择文件夹")]),t("div",W,[d.value.length?(l(),n(b,{key:0},[(l(!0),n(b,null,C(y.value,e=>(l(),n("span",{key:e},o(e),1))),128)),d.value.length>y.value.length?(l(),n("span",X," 还有 "+o(d.value.length-y.value.length)+" 个文件未展开显示 ",1)):c("",!0)],64)):(l(),n("span",Y,"暂未选择删除品牌文件"))])]),s[2]||(s[2]=H('
t.dragging,j=>{p(j)}),Lt(S,"touchstart",R,{passive:!1}),{disabled:o,button:S,tooltip:v,tooltipVisible:m,showTooltip:r,persistent:u,wrapperStyle:E,formatValue:b,handleMouseEnter:$,handleMouseLeave:O,onButtonDown:R,onKeyDown:M,setPosition:q}},g7=Se({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:Ma,default:"top"}}),b7={[et]:e=>He(e)},y7=["tabindex"];var w7=le({name:"ElSliderButton",__name:"button",props:g7,emits:b7,setup(e,{expose:t,emit:n}){const o=e,a=n,l=fe("slider"),s=Mt({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:o.modelValue}),r=w(()=>f.value?h.value:!1),{disabled:u,button:c,tooltip:d,showTooltip:f,persistent:h,tooltipVisible:g,wrapperStyle:p,formatValue:v,handleMouseEnter:m,handleMouseLeave:b,onButtonDown:k,onKeyDown:y,setPosition:S}=m7(o,s,a),{hovering:C,dragging:E}=$n(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(l).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(Rn),{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:r.value},{content:J(()=>[H("span",null,ke(i(v)),1)]),default:J(()=>[H("div",{class:T([i(l).e("button"),{hover:i(C),dragging:i(E)}])},null,2)]),_:1},8,["visible","placement","popper-class","disabled","persistent"])],46,y7))}}),y0=w7;const S7=Se({mark:{type:G([String,Object]),default:void 0}});var C7=le({name:"ElSliderMarker",props:S7,setup(e){const t=fe("slider"),n=w(()=>Le(e.mark)?e.mark:e.mark.label),o=w(()=>Le(e.mark)?void 0:e.mark.style);return()=>qe("div",{class:t.e("marks-text"),style:o.value},n.value)}});const k7=["id","role","aria-label","aria-labelledby"],E7={key:1};var x7=le({name:"ElSlider",__name:"slider",props:i7,emits:u7,setup(e,{expose:t,emit:n}){const o=e,a=n,l=fe("slider"),{t:s}=yt(),r=Mt({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:u,slider:c,firstButton:d,secondButton:f,sliderDisabled:h,minValue:g,maxValue:p,runwayStyle:v,barStyle:m,resetSize:b,emitChange:k,onSliderWrapperPrevent:y,onSliderClick:S,onSliderDown:C,onSliderMarkerDown:E,setFirstValue:$,setSecondValue:O}=f7(o,r,a),{stops:R,getStopStyle:N}=p7(o,r,g,p),{inputId:_,isLabeledByFormItem:A}=To(o,{formItemContext:u}),V=mn(),z=w(()=>o.inputSize||V.value),U=w(()=>o.ariaLabel||s("el.slider.defaultLabel",{min:o.min,max:o.max})),W=w(()=>o.range?o.rangeStartLabel||s("el.slider.defaultRangeStartLabel"):U.value),M=w(()=>o.formatValueText?o.formatValueText(X.value):`${X.value}`),I=w(()=>o.rangeEndLabel||s("el.slider.defaultRangeEndLabel")),L=w(()=>o.formatValueText?o.formatValueText(Q.value):`${Q.value}`),D=w(()=>[l.b(),l.m(V.value),l.is("vertical",o.vertical),{[l.m("with-input")]:o.showInput}]),F=d7(o);v7(o,r,g,p,a,u);const q=w(()=>{const ge=[o.min,o.max,o.step].map(ie=>{const oe=`${ie}`.split(".")[1];return oe?oe.length:0});return Math.max.apply(null,ge)}),{sliderWrapper:j}=c7(o,r,b),{firstValue:X,secondValue:Q,sliderSize:ve}=$n(r),ue=ge=>{r.dragging=ge};return Lt(j,"touchstart",y,{passive:!1}),Lt(j,"touchmove",y,{passive:!1}),bt(Q2,{...$n(o),sliderSize:ve,disabled:h,precision:q,emitChange:k,resetSize:b,updateDragging:ue}),t({onSliderClick:S}),(ge,ie)=>(x(),B("div",{id:ge.range?i(_):void 0,ref_key:"sliderWrapper",ref:j,class:T(D.value),role:ge.range?"group":void 0,"aria-label":ge.range&&!i(A)?U.value:void 0,"aria-labelledby":ge.range&&i(A)?i(u)?.labelId:void 0},[H("div",{ref_key:"slider",ref:c,class:T([i(l).e("runway"),{"show-input":ge.showInput&&!ge.range},i(l).is("disabled",i(h))]),style:Ke(i(v)),onMousedown:ie[0]||(ie[0]=(...oe)=>i(C)&&i(C)(...oe)),onTouchstartPassive:ie[1]||(ie[1]=(...oe)=>i(C)&&i(C)(...oe))},[H("div",{class:T(i(l).e("bar")),style:Ke(i(m))},null,6),Y(y0,{id:ge.range?void 0:i(_),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(A)?W.value:void 0,"aria-labelledby":!ge.range&&i(A)?i(u)?.labelId:void 0,"aria-valuemin":ge.min,"aria-valuemax":ge.range?i(Q):ge.max,"aria-valuenow":i(X),"aria-valuetext":M.value,"aria-orientation":ge.vertical?"vertical":"horizontal","aria-disabled":i(h),"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(),ae(y0,{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(h),"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",E7,[(x(!0),B(Ve,null,mt(i(R),(oe,ne)=>(x(),B("div",{key:ne,class:T(i(l).e("stop")),style:Ke(i(N)(oe))},null,6))),128))])):te("v-if",!0),i(F).length>0?(x(),B(Ve,{key:2},[H("div",null,[(x(!0),B(Ve,null,mt(i(F),(oe,ne)=>(x(),B("div",{key:ne,style:Ke(i(N)(oe.position)),class:T([i(l).e("stop"),i(l).e("marks-stop")])},null,6))),128))]),H("div",{class:T(i(l).e("marks"))},[(x(!0),B(Ve,null,mt(i(F),(oe,ne)=>(x(),ae(i(C7),{key:ne,mark:oe.mark,style:Ke(i(N)(oe.position)),onMousedown:Ge(K=>i(E)(oe.position),["stop"])},null,8,["mark","style","onMousedown"]))),128))],2)],64)):te("v-if",!0)],38),ge.showInput&&!ge.range?(x(),ae(i(O2),{key:0,ref:"input","model-value":i(X),class:T(i(l).e("input")),step:ge.step,disabled:i(h),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,k7))}}),T7=x7;const $7=ot(T7),O7=Se({prefixCls:{type:String}}),w0=le({name:"ElSpaceItem",props:O7,setup(e,{slots:t}){const n=fe("space"),o=w(()=>`${e.prefixCls||n.b()}__item`);return()=>qe("div",{class:o.value},ee(t,"default"))}}),S0={small:8,default:12,large:16};function N7(e){const t=fe("space"),n=w(()=>[t.b(),t.m(e.direction),e.class]),o=P(0),a=P(0),l=w(()=>[e.wrap||e.fill?{flexWrap:"wrap"}:{},{alignItems:e.alignment},{rowGap:`${a.value}px`,columnGap:`${o.value}px`},e.style]),s=w(()=>e.fill?{flexGrow:1,minWidth:`${e.fillRatio}%`}:{});return ho(()=>{const{size:r="small",wrap:u,direction:c,fill:d}=e;if(ye(r)){const[f=0,h=0]=r;o.value=f,a.value=h}else{let f;He(r)?f=r:f=S0[r||"small"]||S0.small,(u||d)&&c==="horizontal"?o.value=a.value=f:c==="horizontal"?(o.value=f,a.value=0):(a.value=f,o.value=0)}}),{classes:n,containerStyle:l,itemStyle:s}}const R7=Se({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=>Kt(e)||He(e)||Le(e)},wrap:Boolean,fill:Boolean,fillRatio:{type:Number,default:100},size:{type:[String,Array,Number],values:ta,validator:e=>He(e)||ye(e)&&e.length===2&&e.every(He)}}),I7=le({name:"ElSpace",props:R7,setup(e,{slots:t}){const{classes:n,containerStyle:o,itemStyle:a}=N7(e);function l(s,r="",u=[]){const{prefixCls:c}=e;return s.forEach((d,f)=>{Bp(d)?ye(d.children)&&d.children.forEach((h,g)=>{Bp(h)&&ye(h.children)?l(h.children,`${r+g}-`,u):Kt(h)&&h?.type===dn?u.push(h):u.push(Y(w0,{style:a.value,prefixCls:c,key:`nested-${r+g}`},{default:()=>[h]},Fo.PROPS|Fo.STYLE,["style","prefixCls"]))}):c4(d)&&u.push(Y(w0,{style:a.value,prefixCls:c,key:`LoopKey${r+f}`},{default:()=>[d]},Fo.PROPS|Fo.STYLE,["style","prefixCls"]))}),u}return()=>{const{spacer:s,direction:r}=e,u=ee(t,"default",{key:0},()=>[]);if((u.children??[]).length===0)return null;if(ye(u.children)){let c=l(u.children);if(s){const d=c.length-1;c=c.reduce((f,h,g)=>{const p=[...f,h];return g!==d&&p.push(Y("span",{style:[a.value,r==="vertical"?"width: 100%":null],key:g},[Kt(s)?s:gt(s,Fo.TEXT)],Fo.STYLE)),p},[])}return Y("div",{class:n.value,style:o.value},c,Fo.STYLE|Fo.CLASS)}return u.children}}}),M7=ot(I7),P7=Se({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"}}),A7={[ht]:(e,t)=>[e,t].every(He)},eE="ElSteps",_7=Se({title:{type:String,default:""},icon:{type:Vt},description:{type:String,default:""},status:{type:String,values:["","wait","process","finish","error","success"],default:""}});var L7=le({name:"ElSteps",__name:"steps",props:P7,emits:A7,setup(e,{emit:t}){const n=e,o=t,a=fe("steps"),{children:l,addChild:s,removeChild:r,ChildrenSorter:u}=qd(ut(),"ElStep");return re(l,()=>{l.value.forEach((c,d)=>{c.setIndex(d)})}),bt(eE,{props:n,steps:l,addStep:s,removeStep:r}),re(()=>n.active,(c,d)=>{o(ht,c,d)}),(c,d)=>(x(),B("div",{class:T([i(a).b(),i(a).m(e.simple?"simple":e.direction)])},[ee(c.$slots,"default"),Y(i(u))],2))}}),D7=L7,B7=le({name:"ElStep",__name:"item",props:_7,setup(e){const t=e,n=fe("step"),o=P(-1),a=P({}),l=P(""),s=Ae(eE),r=ut();let u=0,c=0;dt(()=>{re([()=>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||l.value),f=w(()=>{const O=s.steps.value[o.value-1];return O?O.internalStatus.value:"wait"}),h=w(()=>s.props.alignCenter),g=w(()=>s.props.direction==="vertical"),p=w(()=>s.props.simple),v=w(()=>s.steps.value.length),m=w(()=>s.steps.value[v.value-1]?.uid===r.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&&!h.value),n.is("center",h.value&&!g.value&&!p.value)]),y=w(()=>{const O={flexBasis:He(b.value)?`${b.value}px`:b.value?b.value:`${100/(v.value-(h.value?0:1))}%`};return g.value||m.value&&(O.maxWidth=`${100/v.value}%`),O}),S=O=>{o.value=O},C=O=>{const R=O==="wait",N={transitionDelay:`${Math.abs(u)===1?0:u>0?(o.value+1-c)*150:-(o.value+1-s.props.active)*150}ms`},_=O===s.props.processStatus||R?0:100;N.borderWidth=_&&!p.value?"1px":0,N[s.props.direction==="vertical"?"height":"width"]=`${_}%`,a.value=N},E=O=>{O>o.value?l.value=s.props.finishStatus:O===o.value&&f.value!=="error"?l.value=s.props.processStatus:l.value="wait";const R=s.steps.value[o.value-1];R&&R.calcProgress(l.value)},$={uid:r.uid,getVnode:()=>r.vnode,currentStatus:d,internalStatus:l,setIndex:S,calcProgress:C};return s.addStep($),_t(()=>{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(a.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(),ae(i(De),{key:0,class:T(i(n).e("icon-inner"))},{default:J(()=>[(x(),ae(lt(e.icon)))]),_:1},8,["class"])):d.value==="success"?(x(),ae(i(De),{key:1,class:T([i(n).e("icon-inner"),i(n).is("status")])},{default:J(()=>[Y(i(uu))]),_:1},8,["class"])):d.value==="error"?(x(),ae(i(De),{key:2,class:T([i(n).e("icon-inner"),i(n).is("status")])},{default:J(()=>[Y(i(Do))]),_:1},8,["class"])):p.value?te("v-if",!0):(x(),B("div",{key:3,class:T(i(n).e("icon-inner"))},ke(o.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",{},()=>[gt(ke(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",{},()=>[gt(ke(e.description),1)])],2))],2)],6))}}),tE=B7;const F7=ot(D7,{Step:tE}),V7=Zt(tE),nE=e=>["",...ta].includes(e),z7=Se({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:nE},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:Vt},activeActionIcon:{type:Vt},activeIcon:{type:Vt},inactiveIcon:{type:Vt},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]},...Jn(["ariaLabel"])}),H7={[et]:e=>Ft(e)||Le(e)||He(e),[ht]:e=>Ft(e)||Le(e)||He(e),[hn]:e=>Ft(e)||Le(e)||He(e)},K7=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],W7=["aria-hidden"],j7={key:1},U7={key:1},q7=["aria-hidden"],tp="ElSwitch";var Y7=le({name:tp,__name:"switch",props:z7,emits:H7,setup(e,{expose:t,emit:n}){const o=e,a=n,{formItem:l}=In(),s=mn(),r=fe("switch"),{inputId:u}=To(o,{formItemContext:l}),c=on(w(()=>{if(o.loading)return!0})),d=P(o.modelValue!==!1),f=qt(),h=w(()=>[r.b(),r.m(s.value),r.is("disabled",c.value),r.is("checked",b.value)]),g=w(()=>[r.e("label"),r.em("label","left"),r.is("active",!b.value)]),p=w(()=>[r.e("label"),r.em("label","right"),r.is("active",b.value)]),v=w(()=>({width:nn(o.width)}));re(()=>o.modelValue,()=>{d.value=!0});const m=w(()=>d.value?o.modelValue:!1),b=w(()=>m.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(m.value)||(a(et,o.inactiveValue),a(ht,o.inactiveValue),a(hn,o.inactiveValue)),re(b,C=>{f.value.checked=C,o.validateEvent&&l?.validate?.("change").catch(E=>ct(E))});const k=()=>{const C=b.value?o.inactiveValue:o.activeValue;a(et,C),a(ht,C),a(hn,C),Ne(()=>{f.value.checked=b.value})},y=()=>{if(c.value)return;const{beforeChange:C}=o;if(!C){k();return}const E=C();[cs(E),Ft(E)].includes(!0)||Jt(tp,"beforeChange must return type `Promise` or `boolean`"),cs(E)?E.then($=>{$&&k()}).catch($=>{ct(tp,`some error occurred: ${$}`)}):E&&k()},S=()=>{f.value?.focus?.()};return dt(()=>{f.value.checked=b.value}),t({focus:S,checked:b}),(C,E)=>(x(),B("div",{class:T(h.value),onClick:Ge(y,["prevent"])},[H("input",{id:i(u),ref_key:"input",ref:f,class:T(i(r).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:Qt(y,["enter"])},null,42,K7),!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(),ae(i(De),{key:0},{default:J(()=>[(x(),ae(lt(e.inactiveIcon)))]),_:1})):te("v-if",!0),!e.inactiveIcon&&e.inactiveText?(x(),B("span",{key:1,"aria-hidden":b.value},ke(e.inactiveText),9,W7)):te("v-if",!0)])],2)):te("v-if",!0),H("span",{class:T(i(r).e("core")),style:Ke(v.value)},[e.inlinePrompt?(x(),B("div",{key:0,class:T(i(r).e("inner"))},[b.value?(x(),B("div",{key:1,class:T(i(r).e("inner-wrapper"))},[ee(C.$slots,"active",{},()=>[e.activeIcon?(x(),ae(i(De),{key:0},{default:J(()=>[(x(),ae(lt(e.activeIcon)))]),_:1})):te("v-if",!0),!e.activeIcon&&e.activeText?(x(),B("span",U7,ke(e.activeText),1)):te("v-if",!0)])],2)):(x(),B("div",{key:0,class:T(i(r).e("inner-wrapper"))},[ee(C.$slots,"inactive",{},()=>[e.inactiveIcon?(x(),ae(i(De),{key:0},{default:J(()=>[(x(),ae(lt(e.inactiveIcon)))]),_:1})):te("v-if",!0),!e.inactiveIcon&&e.inactiveText?(x(),B("span",j7,ke(e.inactiveText),1)):te("v-if",!0)])],2))],2)):te("v-if",!0),H("div",{class:T(i(r).e("action"))},[e.loading?(x(),ae(i(De),{key:0,class:T(i(r).is("loading"))},{default:J(()=>[Y(i(Ra))]),_:1},8,["class"])):b.value?ee(C.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(x(),ae(i(De),{key:0},{default:J(()=>[(x(),ae(lt(e.activeActionIcon)))]),_:1})):te("v-if",!0)]):b.value?te("v-if",!0):ee(C.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(x(),ae(i(De),{key:0},{default:J(()=>[(x(),ae(lt(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(),ae(i(De),{key:0},{default:J(()=>[(x(),ae(lt(e.activeIcon)))]),_:1})):te("v-if",!0),!e.activeIcon&&e.activeText?(x(),B("span",{key:1,"aria-hidden":!b.value},ke(e.activeText),9,q7)):te("v-if",!0)])],2)):te("v-if",!0)],2))}}),G7=Y7;const X7=ot(G7),np=function(e){return e.target?.closest("td")},J7=function(e,t,n,o,a){if(!t&&!o&&(!a||ye(a)&&!a.length))return e;Le(n)?n=n==="descending"?-1:1:n=n&&n<0?-1:1;const l=o?null:function(r,u){return a?ES(En(a),c=>Le(c)?vn(r,c):c(r,u,e)):(t!=="$key"&&tt(r)&&"$value"in r&&(r=r.$value),[tt(r)?t?vn(r,t):null:r])},s=function(r,u){if(o)return o(r.value,u.value);for(let c=0,d=r.key?.length??0;c u.key?.[c])return 1}return 0};return e.map((r,u)=>({value:r,index:u,key:l?l(r,u):null})).sort((r,u)=>{let c=s(r,u);return c||(c=r.index-u.index),c*+n}).map(r=>r.value)},oE=function(e,t){let n=null;return e.columns.forEach(o=>{o.id===t&&(n=o)}),n},Z7=function(e,t){let n=null;for(let o=0;o {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 o=e;for(const a of n)o=o[a];return`${o}`}else if(Fe(t))return t.call(null,e);return""},Zs=function(e,t,n=!1,o="children"){const a=e||[],l={};return a.forEach((s,r)=>{if(l[Ln(s,t)]={row:s,index:r},n){const u=s[o];ye(u)&&Object.assign(l,Zs(u,t,!0,o))}}),l};function Q7(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if($t(t,o)){const a=t[o];kt(a)||(n[o]=a)}return n}function xm(e){return e===""||kt(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function aE(e){return e===""||kt(e)||(e=xm(e),Number.isNaN(e)&&(e=80)),e}function eU(e){return He(e)?e:Le(e)?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function tU(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...o)=>t(n(...o)))}function fd(e,t,n,o,a,l,s){let r=l??0,u=!1;const d=(()=>{if(!s)return e.indexOf(t);const v=Ln(t,s);return e.findIndex(m=>Ln(m,s)===v)})(),f=d!==-1,h=a?.call(null,t,r),g=v=>{v==="add"?e.push(t):e.splice(d,1),u=!0},p=v=>{let m=0;const b=o?.children&&v[o.children];return b&&ye(b)&&(m+=b.length,b.forEach(k=>{m+=p(k)})),m};return(!a||h)&&(Ft(n)?n&&!f?g("add"):!n&&f&&g("remove"):g(f?"remove":"add")),!o?.checkStrictly&&o?.children&&ye(t[o.children])&&t[o.children].forEach(v=>{const m=fd(e,v,n??!f,o,a,r+1,s);r+=p(v)+1,m&&(u=m)}),u}function nU(e,t,n="children",o="hasChildren",a=!1){const l=r=>!(ye(r)&&r.length);function s(r,u,c){t(r,u,c),u.forEach(d=>{if(d[o]&&a){t(d,null,c+1);return}const f=d[n];l(f)||s(d,f,c+1)})}e.forEach(r=>{if(r[o]&&a){t(r,null,0);return}const u=r[n];l(u)||s(r,u,0)})}const oU=(e,t,n,o)=>{const a={strategy:"fixed",...e.popperOptions},l=Fe(o?.tooltipFormatter)?o.tooltipFormatter({row:n,column:o,cellValue:Ol(n,o.property).value}):void 0;return Kt(l)?{slotContent:l,content:null,...e,popperOptions:a}:{slotContent:null,content:l??t,...e,popperOptions:a}};let ro=null;function aU(e,t,n,o,a,l){const s=oU(e,t,n,o),r={...s,slotContent:void 0};if(ro?.trigger===a){const g=ro.vm?.component;xS(g?.props,r),g&&s.slotContent&&(g.slots.content=()=>[s.slotContent]);return}ro?.();const u=l?.refs.tableWrapper,c=u?.dataset.prefix,d=Y(Rn,{virtualTriggering:!0,virtualRef:a,appendTo:u,placement:"top",transition:"none",offset:0,hideAfter:0,...r},s.slotContent?{content:()=>s.slotContent}:void 0);d.appContext={...l.appContext,...l};const f=document.createElement("div");Il(d,f),d.component.exposed.onOpen();const h=u?.querySelector(`.${c}-scrollbar__wrap`);ro=()=>{d.component?.exposed?.onClose&&d.component.exposed.onClose(),Il(null,f);const g=ro;h?.removeEventListener("scroll",g),g.trigger=void 0,g.vm=void 0,ro=null},ro.trigger=a??void 0,ro.vm=d,h?.addEventListener("scroll",ro)}function lE(e){return e.children?ES(e.children,lE):[e]}function k0(e,t){return e+t.colSpan}const sE=(e,t,n,o)=>{let a=0,l=e;const s=n.states.columns.value;if(o){const u=lE(o[e]);a=s.slice(0,s.indexOf(u[0])).reduce(k0,0),l=a+u.reduce(k0,0)-1}else a=e;let r;switch(t){case"left":l =s.length-n.states.rightFixedLeafColumnsLength.value&&(r="right");break;default:l =s.length-n.states.rightFixedLeafColumnsLength.value&&(r="right")}return r?{direction:r,start:a,after:l}:{}},Tm=(e,t,n,o,a,l=0)=>{const s=[],{direction:r,start:u,after:c}=sE(t,n,o,a);if(r){const d=r==="left";s.push(`${e}-fixed-column--${r}`),d&&c+l===o.states.fixedLeafColumnsLength.value-1?s.push("is-last-column"):!d&&u-l===o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value&&s.push("is-first-column")}return s};function E0(e,t){return e+(Dd(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const $m=(e,t,n,o)=>{const{direction:a,start:l=0,after:s=0}=sE(e,t,n,o);if(!a)return;const r={},u=a==="left",c=n.states.columns.value;return u?r.left=c.slice(0,l).reduce(E0,0):r.right=c.slice(s+1).reverse().reduce(E0,0),r},br=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function rE(e){return e.some(t=>Kt(t)?!(t.type===dn||t.type===Ve&&!rE(t.children)):!0)?e:null}function lU(e){const t=ut(),n=P(!1),o=P([]),a=(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)o.value=t.store.states.rowExpandable.value?c.filter(a):c.slice();else if(d){const f=Zs(o.value,d);o.value=c.filter((h,g)=>!!f[Ln(h,d)]&&a(h,g))}else o.value=[]},toggleRowExpansion:(c,d)=>{const f=(e.data.value||[]).indexOf(c);f>-1&&!a(c,f)||fd(o.value,c,d,void 0,void 0,void 0,e.rowKey.value)&&t.emit("expand-change",c,o.value.slice())},setExpandRowKeys:c=>{t.store.assertRowKey();const d=e.data.value||[],f=e.rowKey.value,h=Zs(d,f);o.value=c.reduce((g,p)=>{const v=h[p];return v&&a(v.row,v.index)&&g.push(v.row),g},[])},isRowExpanded:c=>{const d=e.rowKey.value;return d?!!Zs(o.value,d)[Ln(c,d)]:o.value.includes(c)},states:{expandRows:o,defaultExpandAll:n}}}function sU(e){const t=ut(),n=P(null),o=P(null),a=c=>{t.store.assertRowKey(),n.value=c,s(c)},l=()=>{n.value=null},s=c=>{const{data:d,rowKey:f}=e,h=o.value;let g=null;f.value&&(g=(i(d)||[]).find(p=>Ln(p,f.value)===c)??null),o.value=g??null,t.emit("current-change",o.value,h)};return{setCurrentRowKey:a,restoreCurrentRowKey:l,setCurrentRowByKey:s,updateCurrentRow:c=>{const d=o.value;if(c&&c!==d){o.value=c,t.emit("current-change",o.value,d);return}!c&&d&&(o.value=null,t.emit("current-change",null,d))},updateCurrentRowData:()=>{const c=e.rowKey.value,d=e.data.value||[],f=o.value;f&&!d.includes(f)?c?s(Ln(f,c)):(o.value=null,t.emit("current-change",null,f)):n.value&&(s(n.value),l())},states:{_currentRowKey:n,currentRow:o}}}function rU(e){const t=P([]),n=P({}),o=P(16),a=P(!1),l=P({}),s=P("hasChildren"),r=P("children"),u=P(!1),c=ut(),d=w(()=>e.rowKey.value?h(e.data.value||[]):{}),f=w(()=>{const S=e.rowKey.value,C=Object.keys(l.value),E={};return C.length&&C.forEach($=>{if(l.value[$].length){const O={children:[]};l.value[$].forEach(R=>{const N=Ln(R,S);O.children.push(N),R[s.value]&&!E[N]&&(E[N]={children:[]})}),E[$]=O}}),E}),h=S=>{const C=e.rowKey.value,E={};return nU(S,($,O,R)=>{const N=Ln($,C);ye(O)?E[N]={children:O.map(_=>Ln(_,C)),level:R}:a.value&&(E[N]={children:[],lazy:!0,level:R})},r.value,s.value,a.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=A(U,z),W.lazy){const{loaded:M=!1,loading:I=!1}=U||{};W.loaded=!!M,W.loading=!!I,_.push(z)}R[z]=W});const V=Object.keys($);a.value&&V.length&&_.length&&V.forEach(z=>{const U=N[z],W=$[z].children;if(_.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:M=!1,loading:I=!1}=U||{};R[z]={lazy:!0,loaded:!!M,loading:!!I,expanded:A(U,z),children:W,level:void 0}}})}n.value=R,c.store?.updateTableScrollY()};re(()=>t.value,()=>{g(!0)}),re(()=>d.value,()=>{g()}),re(()=>f.value,()=>{g()});const p=S=>{t.value=S,g()},v=S=>a.value&&S&&"loaded"in S&&!S.loaded,m=(S,C)=>{c.store.assertRowKey();const E=e.rowKey.value,$=Ln(S,E),O=$&&n.value[$];if($&&O&&"expanded"in O){const R=O.expanded;C=kt(C)?!O.expanded:C,n.value[$].expanded=C,R!==C&&c.emit("expand-change",S,C),C&&v(O)&&k(S,$,O),c.store.updateTableScrollY()}},b=S=>{c.store.assertRowKey();const C=e.rowKey.value,E=Ln(S,C),$=n.value[E];v($)?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&&(l.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");l.value[S]&&(l.value[S]=C)}},normalize:h,states:{expandRowKeys:t,treeData:n,indent:o,lazy:a,lazyTreeNodeMap:l,lazyColumnIdentifier:s,childrenColumnName:r,checkStrictly:u}}}const iU=(e,t)=>{const n=t.sortingColumn;return!n||Le(n.sortable)?e:J7(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Cc=e=>{const t=[];return e.forEach(n=>{n.children&&n.children.length>0?t.push.apply(t,Cc(n.children)):t.push(n)}),t};function uU(){const e=ut(),{size:t}=$n(e.proxy?.$props),n=P(null),o=P([]),a=P([]),l=P(!1),s=P([]),r=P([]),u=P([]),c=P([]),d=P([]),f=P([]),h=P([]),g=P([]),p=[],v=P(0),m=P(0),b=P(0),k=P(!1),y=P([]),S=P(!1),C=P(!1),E=P(null),$=P(null),O=P({}),R=P(null),N=P(null),_=P(null),A=P(null),V=P(null),z=w(()=>n.value?Zs(y.value,n.value):void 0);re(o,()=>{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(at=>{at.fixed=Ue.fixed,W(at)})},M=()=>{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 at;Ue&&Ue.fixed!=="right"&&!c.value.includes(Ue)&&s.value.indexOf(Ue)===0&&c.value.length&&(c.value.unshift(Ue),at=!0),d.value=s.value.filter(de=>de.fixed==="right");const pt=s.value.filter(de=>(at?de.type!=="selection":!0)&&!de.fixed);r.value=Array.from(c.value).concat(pt).concat(d.value);const wt=Cc(pt),be=Cc(c.value),ze=Cc(d.value);v.value=wt.length,m.value=be.length,b.value=ze.length,u.value=Array.from(be).concat(wt).concat(ze),l.value=c.value.length>0||d.value.length>0},I=(Ue,at=!1)=>{Ue&&M(),at?e.state.doLayout():e.state.debouncedUpdateLayout()},L=Ue=>z.value?!!z.value[Ln(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 at=e?.store?.states?.childrenColumnName.value,pt=Zs(o.value,n.value,!0,at);for(const wt in z.value)$t(z.value,wt)&&!pt[wt]&&Ue.push(z.value[wt].row)}else Ue=y.value.filter(at=>!o.value.includes(at));if(Ue.length){const at=y.value.filter(pt=>!Ue.includes(pt));y.value=at,e.emit("selection-change",at.slice())}},q=()=>(y.value||[]).slice(),j=(Ue,at,pt=!0,wt=!1)=>{const be={children:e?.store?.states?.childrenColumnName.value,checkStrictly:e?.store?.states?.checkStrictly.value};if(fd(y.value,Ue,at,be,wt?void 0:E.value,o.value.indexOf(Ue),n.value)){const ze=(y.value||[]).slice();pt&&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 at=!1,pt=0;const wt=e?.store?.states?.rowKey.value,{childrenColumnName:be}=e.store.states,ze={children:be.value,checkStrictly:!1};o.value.forEach((de,Ye)=>{const Et=Ye+pt;fd(y.value,de,Ue,ze,E.value,Et,wt)&&(at=!0),pt+=ve(Ln(de,wt))}),at&&e.emit("selection-change",y.value?y.value.slice():[]),e.emit("select-all",(y.value||[]).slice())},Q=()=>{if(o.value?.length===0){k.value=!1;return}const{childrenColumnName:Ue}=e.store.states;let at=0,pt=0;const wt=ze=>{for(const de of ze){const Ye=E.value&&E.value.call(null,de,at);if(L(de))pt++;else if(!E.value||Ye)return!1;if(at++,de[Ue.value]?.length&&!wt(de[Ue.value]))return!1}return!0},be=wt(o.value||[]);k.value=pt===0?!1:be},ve=Ue=>{if(!e||!e.store)return 0;const{treeData:at}=e.store.states;let pt=0;const wt=at.value[Ue]?.children;return wt&&(pt+=wt.length,wt.forEach(be=>{pt+=ve(be)})),pt},ue=(Ue,at)=>{const pt={};return En(Ue).forEach(wt=>{O.value[wt.id]=at,pt[wt.columnKey||wt.id]=at}),pt},ge=(Ue,at,pt)=>{N.value&&N.value!==Ue&&(N.value.order=null),N.value=Ue,_.value=at,A.value=pt},ie=()=>{let Ue=i(a);Object.keys(O.value).forEach(at=>{const pt=O.value[at];if(!pt||pt.length===0)return;const wt=oE({columns:u.value},at);wt&&wt.filterMethod&&(Ue=Ue.filter(be=>pt.some(ze=>wt.filterMethod.call(null,ze,be,wt))))}),R.value=Ue},oe=()=>{o.value=iU(R.value??[],{sortingColumn:N.value,sortProp:_.value,sortOrder:A.value})},ne=(Ue=void 0)=>{Ue?.filter||ie(),oe()},K=Ue=>{const{tableHeaderRef:at}=e.refs;if(!at)return;const pt=Object.assign({},at.filterPanels),wt=Object.keys(pt);if(wt.length)if(Le(Ue)&&(Ue=[Ue]),ye(Ue)){const be=Ue.map(ze=>Z7({columns:u.value},ze));wt.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 wt.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:he,states:Ce,isRowExpanded:Re}=lU({data:o,rowKey:n}),{updateTreeExpandKeys:Ie,toggleTreeExpansion:$e,updateTreeData:pe,updateKeyChildren:Ee,loadOrToggle:me,states:Pe}=rU({data:o,rowKey:n}),{updateCurrentRowData:We,updateCurrentRow:Xe,setCurrentRowKey:Me,states:_e}=sU({data:o,rowKey:n});return{assertRowKey:U,updateColumns:M,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:oe,execQuery:ne,clearFilter:K,clearSort:Z,toggleRowExpansion:ce,setExpandRowKeysAdapter:Ue=>{se(Ue),Ie(Ue)},setCurrentRowKey:Me,toggleRowExpansionAdapter:(Ue,at)=>{u.value.some(({type:pt})=>pt==="expand")?ce(Ue,at):$e(Ue,at)},isRowExpanded:Re,updateExpandRows:he,updateCurrentRowData:We,loadOrToggle:me,updateTreeData:pe,updateKeyChildren:Ee,states:{tableSize:t,rowKey:n,data:o,_data:a,isComplex:l,_columns:s,originColumns:r,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:f,fixedLeafColumns:h,rightFixedLeafColumns:g,updateOrderFns:p,leafColumnsLength:v,fixedLeafColumnsLength:m,rightFixedLeafColumnsLength:b,isAllSelected:k,selection:y,reserveSelection:S,selectOnIndeterminate:C,selectable:E,rowExpandable:$,filters:O,filteredData:R,sortingColumn:N,sortProp:_,sortOrder:A,hoverRow:V,...Ce,...Pe,..._e}}}function yv(e,t){return e.map(n=>n.id===t.id?t:(n.children?.length&&(n.children=yv(n.children,t)),n))}function wv(e){e.forEach(t=>{t.no=t.getColumnIndex?.(),t.children?.length&&wv(t.children)}),e.sort((t,n)=>t.no-n.no)}function cU(){const e=ut(),t=uU(),n=fe("table"),{t:o}=yt();return{ns:n,t:o,...t,mutations:{setData(r,u){const c=i(r._data)!==u;r.data.value=u,r._data.value=u,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),i(r.reserveSelection)?e.store.assertRowKey():c?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(r,u,c,d){const f=i(r._columns);let h=[];c?(c&&!c.children&&(c.children=[]),c.children?.push(u),h=yv(f,c)):(f.push(u),h=f),wv(h),r._columns.value=h,r.updateOrderFns.push(d),u.type==="selection"&&(r.selectable.value=u.selectable,r.reserveSelection.value=u.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(r,u){u.getColumnIndex?.()!==u.no&&(wv(r._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(r,u,c,d){const f=i(r._columns)||[];if(c)c.children?.splice(c.children.findIndex(g=>g.id===u.id),1),Ne(()=>{c.children?.length===0&&delete c.children}),r._columns.value=yv(f,c);else{const g=f.indexOf(u);g>-1&&(f.splice(g,1),r._columns.value=f)}const h=r.updateOrderFns.indexOf(d);h>-1&&r.updateOrderFns.splice(h,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(r,u){const{prop:c,order:d,init:f}=u;if(c){const h=i(r.columns).find(g=>g.property===c);h&&(h.order=d,e.store.updateSort(h,c,d),e.store.commit("changeSortCondition",{init:f}))}},changeSortCondition(r,u){const{sortingColumn:c,sortProp:d,sortOrder:f}=r,h=i(c),g=i(d),p=i(f);Dd(p)&&(r.sortingColumn.value=null,r.sortProp.value=null),e.store.execQuery({filter:!0}),(!u||!(u.silent||u.init))&&e.emit("sort-change",{column:h,prop:g,order:p}),e.store.updateTableScrollY()},filterChange(r,u){const{column:c,values:d,silent:f}=u,h=e.store.updateFilters(c,d);e.store.execQuery(),f||e.emit("filter-change",h),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection?.()},rowSelectedChanged(r,u){e.store.toggleRowSelection(u),e.store.updateAllSelected()},setHoverRow(r,u){r.hoverRow.value=u},setCurrentRow(r,u){e.store.updateCurrentRow(u)}},commit:function(r,...u){const c=e.store.mutations;if(c[r])c[r].apply(e,[e.store.states,...u]);else throw new Error(`Action not found: ${r}`)},updateTableScrollY:function(){Ne(()=>e.layout.updateScrollY.apply(e.layout))}}}const Om={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 dU(e,t){if(!e)throw new Error("Table is required.");const n=cU();return n.toggleAllSelection=Oa(n._toggleAllSelection,10),Object.keys(Om).forEach(o=>{iE(uE(t,o),o,n)}),fU(n,t),n}function fU(e,t){Object.keys(Om).forEach(n=>{re(()=>uE(t,n),o=>{iE(o,n,e)})})}function iE(e,t,n){let o=e,a=Om[t];tt(a)&&(o=o||a.default,a=a.key),n.states[a].value=o}function uE(e,t){if(t.includes(".")){const n=t.split(".");let o=e;return n.forEach(a=>{o=o[a]}),o}else return e[t]}var pU=class{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=P(null),this.scrollX=P(!1),this.scrollY=P(!1),this.bodyWidth=P(null),this.fixedWidth=P(null),this.rightFixedWidth=P(null),this.gutterWidth=0;for(const t in e)$t(e,t)&&(Yt(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(Dd(e))return!1;const t=this.table.refs.scrollBarRef;if(this.table.vnode.el&&t?.wrapRef){let n=!0;const o=this.scrollY.value;return n=t.wrapRef.scrollHeight>t.wrapRef.clientHeight,this.scrollY.value=n,o!==n}return!1}setHeight(e,t="height"){if(!Rt)return;const n=this.table.vnode.el;if(e=eU(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(!Rt)return;const e=this.fit,t=this.table.vnode.el?.clientWidth;let n=0;const o=this.getFlattenColumns(),a=o.filter(r=>!He(r.width));if(o.forEach(r=>{He(r.width)&&r.realWidth&&(r.realWidth=null)}),a.length>0&&e){if(o.forEach(r=>{n+=Number(r.width||r.minWidth||80)}),n<=t){this.scrollX.value=!1;const r=t-n;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+r;else{const u=r/a.reduce((d,f)=>d+Number(f.minWidth||80),0);let c=0;a.forEach((d,f)=>{if(f===0)return;const h=Math.floor(Number(d.minWidth||80)*u);c+=h,d.realWidth=Number(d.minWidth||80)+h}),a[0].realWidth=Number(a[0].minWidth||80)+r-c}}else this.scrollX.value=!0,a.forEach(r=>{r.realWidth=Number(r.minWidth)});this.bodyWidth.value=Math.max(n,t),this.table.state.resizeState.value.width=this.bodyWidth.value}else o.forEach(r=>{!r.width&&!r.minWidth?r.realWidth=80:r.realWidth=Number(r.width||r.minWidth),n+=r.realWidth}),this.scrollX.value=n>t,this.bodyWidth.value=n;const l=this.store.states.fixedColumns.value;if(l.length>0){let r=0;l.forEach(u=>{r+=Number(u.realWidth||u.width)}),this.fixedWidth.value=r}const s=this.store.states.rightFixedColumns.value;if(s.length>0){let r=0;s.forEach(u=>{r+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=r}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 la=Symbol("ElTable"),cE=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,cE(n.children))):t.push(n)}),t},dE=e=>{let t=1;const n=(a,l)=>{if(l&&(a.level=l.level+1,t {n(r,a),s+=r.colSpan}),a.colSpan=s}else a.colSpan=1};e.forEach(a=>{a.level=1,n(a,void 0)});const o=[];for(let a=0;a {a.children?(a.rowSpan=1,a.children.forEach(l=>l.isSubColumn=!0)):a.rowSpan=t-a.level+1,o[a.level-1].push(a)}),o};function vU(e){const t=Ae(la),n=w(()=>dE(e.store.states.originColumns.value));return{isGroup:w(()=>{const l=n.value.length>1;return l&&t&&(t.state.isGroup.value=!0),l}),toggleAllSelection:l=>{l.stopPropagation(),t?.store.commit("toggleAllSelection")},columnRows:n}}var hU=le({name:"ElTableFilterPanel",components:{ElCheckbox:Qo,ElCheckboxGroup:rm,ElScrollbar:Jo,ElTooltip:Rn,ElIcon:De,ArrowDown:Aa,ArrowUp:Yd},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:Bt.appendTo},setup(e){const t=ut(),{t:n}=yt(),o=fe("table-filter"),a=t?.parent;e.column&&!a.filterPanels.value[e.column.id]&&(a.filterPanels.value[e.column.id]=t);const l=P(null),s=P(null),r=P(0),u=w(()=>e.column&&e.column.filters),c=w(()=>e.column&&e.column.filterClassName?`${o.b()} ${e.column.filterClassName}`:o.b()),d=w({get:()=>(e.column?.filteredValue||[])[0],set:$=>{f.value&&(uo($)?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",$)}}),h=w(()=>e.column?e.column.filterMultiple:!0),g=$=>$.value===d.value,p=()=>{l.value?.onClose()},v=()=>{k(f.value),p()},m=()=>{f.value=[],k(f.value),p()},b=($,O)=>{d.value=$,r.value=O,uo($)?k([]):k(f.value),p()},k=$=>{e.store?.commit("filterChange",{column:e.column,values:$}),e.store?.updateAllSelected()},y=()=>{s.value?.focus(),!h.value&&C(),e.column&&e.upDataColumn?.("filterOpened",!0)},S=()=>{e.column&&e.upDataColumn?.("filterOpened",!1)},C=()=>{if(uo(d)){r.value=0;return}const $=(u.value||[]).findIndex(O=>O.value===d.value);r.value=$>=0?$+1:0};return{multiple:h,filterClassName:c,filteredValue:f,filterValue:d,filters:u,handleConfirm:v,handleReset:m,handleSelect:b,isPropAbsent:uo,isActive:g,t:n,ns:o,tooltipRef:l,rootRef:s,checkedIndex:r,handleShowTooltip:y,handleHideTooltip:S,handleKeydown:$=>{const O=Ht($),R=(u.value?u.value.length:0)+1;let N=r.value,_=!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(),_=!1;break;case we.enter:case we.space:if(N===0)b(null,0);else{const A=(u.value||[])[N-1];A.value&&b(A.value,N)}break;default:_=!1;break}_&&$.preventDefault(),r.value=N,s.value?.querySelector(`.${o.e("list-item")}:nth-child(${N+1})`)?.focus()}}}});const mU=["disabled"],gU=["tabindex","aria-checked"],bU=["tabindex","aria-checked","onClick"],yU=["aria-label"];function wU(e,t,n,o,a,l){const s=Ot("el-checkbox"),r=Ot("el-checkbox-group"),u=Ot("el-scrollbar"),c=Ot("arrow-up"),d=Ot("arrow-down"),f=Ot("el-icon"),h=Ot("el-tooltip");return x(),ae(h,{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(r,{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(Ve,null,mt(e.filters,g=>(x(),ae(s,{key:g.value,value:g.value},{default:J(()=>[gt(ke(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))},ke(e.t("el.table.confirmFilter")),11,mU),H("button",{type:"button",onClick:t[2]||(t[2]=(...g)=>e.handleReset&&e.handleReset(...g))},ke(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))},ke(e.t("el.table.clearFilter")),11,gU),(x(!0),B(Ve,null,mt(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:v=>e.handleSelect(g.value,p+1)},ke(g.text),11,bU))),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(),ae(c,{key:0})):(x(),ae(d,{key:1}))])]),_:3})],10,yU)]),_:3},8,["placement","popper-class","append-to","onShow","onHide"])}var SU=Sn(hU,[["render",wU]]);function Nm(e){const t=ut();Td(()=>{n.value.addObserver(t)}),dt(()=>{o(n.value),a(n.value)}),ea(()=>{o(n.value),a(n.value)}),Sr(()=>{n.value.removeObserver(t)});const n=w(()=>{const l=e.layout;if(!l)throw new Error("Can not find table layout.");return l}),o=l=>{const s=e.vnode.el?.querySelectorAll("colgroup > col")||[];if(!s.length)return;const r=l.getFlattenColumns(),u={};r.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 {v.stopPropagation()},l=(v,m)=>{!m.filters&&m.sortable?p(v,m,!1):m.filterable&&!m.sortable&&a(v),o?.emit("header-click",m,v)},s=(v,m)=>{o?.emit("header-contextmenu",m,v)},r=P(null),u=P(!1),c=P(),d=(v,m)=>{if(Rt&&!(m.children&&m.children.length>0)&&r.value&&e.border&&r.value.id===m.id){u.value=!0;const b=o;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;Io(y,"noclick"),c.value={startMouseLeft:v.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,_=c.value.startLeft+N;E.style.left=`${Math.max(C,_)}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,v),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",u.value=!1,r.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(()=>{Gn(y,"noclick")},0)};document.addEventListener("mousemove",$),document.addEventListener("mouseup",O)}},f=(v,m)=>{if(!e.border||m.children&&m.children.length>0)return;const b=v.target,k=io(b)?b.closest("th"):null;if(!k)return;const y=Ca(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){r.value=null;return}const S=k.getBoundingClientRect(),C=k.parentNode?.lastElementChild===k,E=e.allowDragLastColumn||!C,$=S.width>12&&S.right-v.clientX<8&&E,O=$?"col-resize":"";document.body.style.cursor=O,r.value=$?m:null,y&&(k.style.cursor=O)},h=()=>{!Rt||u.value||(document.body.style.cursor="")},g=({order:v,sortOrders:m})=>{if(v==="")return m[0];const b=m.indexOf(v||null);return m[b>m.length-2?0:b+1]},p=(v,m,b)=>{v.stopPropagation();const k=m.order===b?null:b||g(m),y=v.target?.closest("th");if(y&&Ca(y,"noclick")){Gn(y,"noclick");return}if(!m.sortable)return;const S=v.currentTarget;if(["ascending","descending"].some(R=>Ca(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&&Dd(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=$,o?.store.commit("changeSortCondition")};return{handleHeaderClick:l,handleHeaderContextMenu:s,handleMouseDown:d,handleMouseMove:f,handleMouseOut:h,handleSortClick:p,handleFilterClick:a}}function kU(e){const t=Ae(la),n=fe("table");return{getHeaderRowStyle:r=>{const u=t?.props.headerRowStyle;return Fe(u)?u.call(null,{rowIndex:r}):u},getHeaderRowClass:r=>{const u=[],c=t?.props.headerRowClassName;return Le(c)?u.push(c):Fe(c)&&u.push(c.call(null,{rowIndex:r})),u.join(" ")},getHeaderCellStyle:(r,u,c,d)=>{let f=t?.props.headerCellStyle??{};Fe(f)&&(f=f.call(null,{rowIndex:r,columnIndex:u,row:c,column:d}));const h=$m(u,d.fixed,e.store,c);return br(h,"left"),br(h,"right"),Object.assign({},f,h)},getHeaderCellClass:(r,u,c,d)=>{const f=Tm(n.b(),u,d.fixed,e.store,c),h=[d.id,d.order,d.headerAlign,d.className,d.labelClassName,...f];d.children||h.push("is-leaf"),d.sortable&&h.push("is-sortable");const g=t?.props.headerCellClassName;return Le(g)?h.push(g):Fe(g)&&h.push(g.call(null,{rowIndex:r,columnIndex:u,row:c,column:d})),h.push(n.e("cell")),h.filter(p=>!!p).join(" ")}}}var EU=le({name:"ElTableHeader",components:{ElCheckbox:Qo},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=ut(),o=Ae(la),a=fe("table"),l=P({}),{onColumnsChange:s,onScrollableChange:r}=Nm(o),u=o?.props.tableLayout==="auto",c=Mt(new Map),d=P();let f;const h=()=>{f=setTimeout(()=>{c.size>0&&(c.forEach((A,V)=>{const z=d.value.querySelector(`.${V.replace(/\s/g,".")}`);z&&(A.width=z.getBoundingClientRect().width||A.width)}),c.clear())})};re(c,h),_t(()=>{f&&(clearTimeout(f),f=void 0)}),dt(async()=>{await Ne(),await Ne();const{prop:A,order:V}=e.defaultSort;o?.store.commit("sort",{prop:A,order:V,init:!0}),h()});const{handleHeaderClick:g,handleHeaderContextMenu:p,handleMouseDown:v,handleMouseMove:m,handleMouseOut:b,handleSortClick:k,handleFilterClick:y}=CU(e,t),{getHeaderRowStyle:S,getHeaderRowClass:C,getHeaderCellStyle:E,getHeaderCellClass:$}=kU(e),{isGroup:O,toggleAllSelection:R,columnRows:N}=vU(e),{t:_}=yt();return n.state={onColumnsChange:s,onScrollableChange:r},n.filterPanels=l,{ns:a,t:_,filterPanels:l,onColumnsChange:s,onScrollableChange:r,columnRows:N,getHeaderRowClass:C,getHeaderRowStyle:S,getHeaderCellClass:$,getHeaderCellStyle:E,handleHeaderClick:g,handleHeaderContextMenu:p,handleMouseDown:v,handleMouseMove:m,handleMouseOut:b,handleSortClick:k,handleFilterClick:y,isGroup:O,toggleAllSelection:R,saveIndexSelection:c,isTableLayoutAuto:u,theadRef:d,updateFixedColumnStyle:h}},render(){const{ns:e,t,isGroup:n,columnRows:o,getHeaderCellStyle:a,getHeaderCellClass:l,getHeaderRowClass:s,getHeaderRowStyle:r,handleHeaderClick:u,handleHeaderContextMenu:c,handleMouseDown:d,handleMouseMove:f,handleSortClick:h,handleMouseOut:g,store:p,$parent:v,saveIndexSelection:m,isTableLayoutAuto:b}=this;let k=1;return qe("thead",{ref:"theadRef",class:e.is("group",n)},o.map((y,S)=>qe("tr",{class:s(S),key:S,style:r(S)},y.map((C,E)=>{C.rowSpan>k&&(k=C.rowSpan);const $=l(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:a(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:v}):C.label,C.sortable&&qe("button",{type:"button",class:"caret-wrapper","aria-label":t("el.table.sortLabel",{column:C.label||""}),onClick:O=>h(O,C)},[qe("i",{onClick:O=>h(O,C,"ascending"),class:"sort-caret ascending"}),qe("i",{onClick:O=>h(O,C,"descending"),class:"sort-caret descending"})]),C.filterable&&qe(SU,{store:p,placement:C.filterPlacement||"bottom-start",appendTo:v?.appendFilterPanelTo,column:C,upDataColumn:(O,R)=>{C[O]=R}},{"filter-icon":()=>C.renderFilterIcon?C.renderFilterIcon({filterOpened:C.filterOpened}):null})])])}))))}});function op(e,t,n=.03){return e-t>n}function xU(e){const t=Ae(la),n=P(""),o=P(qe("div")),a=(p,v,m)=>{const b=t,k=np(p);let y=null;const S=b?.vnode.el?.dataset.prefix;k&&(y=C0({columns:e.store?.states.columns.value??[]},k,S),y&&b?.emit(`cell-${m}`,v,y,k,p)),b?.emit(`row-${m}`,v,y,p)},l=(p,v)=>{a(p,v,"dblclick")},s=(p,v)=>{e.store?.commit("setCurrentRow",v),a(p,v,"click")},r=(p,v)=>{a(p,v,"contextmenu")},u=Oa(p=>{e.store?.commit("setHoverRow",p)},30),c=Oa(()=>{e.store?.commit("setHoverRow",null)},30),d=p=>{const v=window.getComputedStyle(p,null);return{left:Number.parseInt(v.paddingLeft,10)||0,right:Number.parseInt(v.paddingRight,10)||0,top:Number.parseInt(v.paddingTop,10)||0,bottom:Number.parseInt(v.paddingBottom,10)||0}},f=(p,v,m)=>{let b=v?.target?.parentNode;for(;p>1&&(b=b?.nextSibling,!(!b||b.nodeName!=="TR"));)m(b,"hover-row hover-fixed-row"),p--};return{handleDoubleClick:l,handleClick:s,handleContextMenu:r,handleMouseEnter:u,handleMouseLeave:c,handleCellMouseEnter:(p,v,m)=>{if(!t)return;const b=t,k=np(p),y=b?.vnode.el?.dataset.prefix;let S=null;if(k){if(S=C0({columns:e.store?.states.columns.value??[]},k,y),!S)return;k.rowSpan>1&&f(k.rowSpan,p,Io);const M=b.hoverState={cell:k,column:S,row:v};b?.emit("cell-mouse-enter",M.row,M.column,M.cell,p)}if(!m){ro?.trigger===k&&ro?.();return}const C=p.target.querySelector(".cell");if(!(Ca(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:_,left:A,right:V,bottom:z}=d(C),U=A+V,W=_+z;op($+U,R)||op(O+W,N)||op(C.scrollWidth,R)?aU(m,(k?.innerText||k?.textContent)??"",v,S,k,b):ro?.trigger===k&&ro?.()},handleCellMouseLeave:p=>{const v=np(p);if(!v)return;v.rowSpan>1&&f(v.rowSpan,p,Gn);const m=t?.hoverState;t?.emit("cell-mouse-leave",m?.row,m?.column,m?.cell,p)},tooltipContent:n,tooltipTrigger:o}}function TU(e){const t=Ae(la),n=fe("table");return{getRowStyle:(c,d)=>{const f=t?.props.rowStyle;return Fe(f)?f.call(null,{row:c,rowIndex:d}):f||null},getRowClass:(c,d,f)=>{const h=[n.e("row")];t?.props.highlightCurrentRow&&c===e.store?.states.currentRow.value&&h.push("current-row"),e.stripe&&f%2===1&&h.push(n.em("row","striped"));const g=t?.props.rowClassName;return Le(g)?h.push(g):Fe(g)&&h.push(g.call(null,{row:c,rowIndex:d})),h},getCellStyle:(c,d,f,h)=>{const g=t?.props.cellStyle;let p=g??{};Fe(g)&&(p=g.call(null,{rowIndex:c,columnIndex:d,row:f,column:h}));const v=$m(d,e?.fixed,e.store);return br(v,"left"),br(v,"right"),Object.assign({},p,v)},getCellClass:(c,d,f,h,g)=>{const p=Tm(n.b(),d,e?.fixed,e.store,void 0,g),v=[h.id,h.align,h.className,...p],m=t?.props.cellClassName;return Le(m)?v.push(m):Fe(m)&&v.push(m.call(null,{rowIndex:c,columnIndex:d,row:f,column:h})),v.push(n.e("cell")),v.filter(b=>!!b).join(" ")},getSpan:(c,d,f,h)=>{let g=1,p=1;const v=t?.props.spanMethod;if(Fe(v)){const m=v({row:c,column:d,rowIndex:f,columnIndex:h});ye(m)?(g=m[0],p=m[1]):tt(m)&&(g=m.rowspan,p=m.colspan)}return{rowspan:g,colspan:p}},getColspanRealWidth:(c,d,f)=>{if(d<1)return c[f].realWidth;const h=c.map(({realWidth:g,width:p})=>g||p).slice(f,f+d);return Number(h.reduce((g,p)=>Number(g)+Number(p),-1))}}}const $U=["colspan","rowspan"];var OU=le({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,$U))}}),NU=OU;function RU(e){const t=Ae(la),n=fe("table"),{handleDoubleClick:o,handleClick:a,handleContextMenu:l,handleMouseEnter:s,handleMouseLeave:r,handleCellMouseEnter:u,handleCellMouseLeave:c,tooltipContent:d,tooltipTrigger:f}=xU(e),{getRowStyle:h,getRowClass:g,getCellStyle:p,getCellClass:v,getSpan:m,getColspanRealWidth:b}=TU(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?Ln(O,N):R},C=(O,R,N,_=!1)=>{const{tooltipEffect:A,tooltipOptions:V,store:z}=e,{indent:U,columns:W}=z.states,M=[];let I=!0;return N&&(M.push(n.em("row",`level-${N.level}`)),I=!!N.display),R===0&&(k=-1),e.stripe&&I&&k++,M.push(...g(O,R,k)),qe("tr",{style:[I?null:{display:"none"},h(O,R)],class:M,key:S(O,R),onDblclick:L=>o(L,O),onClick:L=>a(L,O),onContextmenu:L=>l(L,O),onMouseenter:()=>s(R),onMouseleave:r},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:_};D===y.value&&N&&(X.treeNode={indent:N.level&&N.level*U.value,level:N.level},Ft(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}`,ve=j.columnKey||j.rawColumnKey||"",ue=L.showOverflowTooltip&&xS({effect:A},V,L.showOverflowTooltip);return qe(NU,{style:p(R,D,O,L),class:v(R,D,O,L,q-1),key:`${ve}${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:_,assertRowKey:A}=N,{treeData:V,lazyTreeNodeMap:z,childrenColumnName:U,rowKey:W}=N.states,M=N.states.columns.value;if(M.some(({type:I})=>I==="expand")){const I=_(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:M.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){A();const I=Ln(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},Ft(L.lazy)&&(D&&Ft(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(ve=>{const ue={display:Q.display&&Q.expanded,level:Q.level+1,expanded:!1,noLazyChildren:!1,loading:!1},ge=Ln(ve,W.value);if(uo(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),Ft(L.lazy)&&(Ft(L.loaded)&&L.loaded&&(ue.noLazyChildren=!(L.children&&L.children.length)),ue.loading=L.loading)),q++,F.push(C(ve,R+q,ue)),L&&j(z.value[ge]||ve[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 IU={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 MU=le({name:"ElTableBody",props:IU,setup(e){const t=ut(),n=Ae(la),o=fe("table"),{wrappedRowRender:a,tooltipContent:l,tooltipTrigger:s}=RU(e),{onColumnsChange:r,onScrollableChange:u}=Nm(n),c=[];return re(e.store?.states.hoverRow,(d,f)=>{const h=t?.vnode.el,g=Array.from(h?.children||[]).filter(m=>m?.classList.contains(`${o.e("row")}`));let p=d;const v=g[p]?.childNodes;if(v?.length){let m=0;Array.from(v).reduce((b,k,y)=>(v[y]?.colSpan>1&&(m=v[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){Io(k[b],"hover-cell"),c.push(k[b]);break}p--}})}else c.forEach(m=>Gn(m,"hover-cell")),c.length=0;!e.store?.states.isComplex.value||!Rt||Yo(()=>{const m=g[f],b=g[d];m&&!m.classList.contains("hover-fixed-row")&&Gn(m,"hover-row"),b&&Io(b,"hover-row")})}),Sr(()=>{ro?.()}),{ns:o,onColumnsChange:r,onScrollableChange:u,wrappedRowRender:a,tooltipContent:l,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this;return qe("tbody",{tabIndex:-1},[(t?.states.data.value||[]).reduce((n,o)=>n.concat(e(o,n.length)),[])])}});function PU(){const e=Ae(la)?.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 AU(e){const{columns:t}=PU(),n=fe("table");return{getCellClasses:(l,s)=>{const r=l[s],u=[n.e("cell"),r.id,r.align,r.labelClassName,...Tm(n.b(),s,r.fixed,e.store)];return r.className&&u.push(r.className),r.children||u.push(n.is("leaf")),u},getCellStyles:(l,s)=>{const r=$m(s,l.fixed,e.store);return br(r,"left"),br(r,"right"),r},columns:t}}var _U=le({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=Ae(la),n=fe("table"),{getCellClasses:o,getCellStyles:a,columns:l}=AU(e),{onScrollableChange:s,onColumnsChange:r}=Nm(t);return{ns:n,onScrollableChange:s,onColumnsChange:r,getCellClasses:o,getCellStyles:a,columns:l}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:a}=this,l=this.store.states.data.value;let s=[];return o?s=o({columns:e,data:l}):e.forEach((r,u)=>{if(u===0){s[u]=a;return}const c=l.map(g=>Number(g[r.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 h=Math.max.apply(null,d);f?s[u]="":s[u]=c.reduce((g,p)=>{const v=Number(p);return Number.isNaN(+v)?g:Number.parseFloat((g+p).toFixed(Math.min(h,20)))},0)}),qe(qe("tfoot",[qe("tr",{},[...e.map((r,u)=>qe("td",{key:u,colspan:r.colSpan,rowspan:r.rowSpan,class:n(e,u),style:t(r,u)},[qe("div",{class:["cell",r.labelClassName]},[s[u]])]))])]))}});function LU(e){return{setCurrentRow:f=>{e.commit("setCurrentRow",f)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(f,h,g=!0)=>{e.toggleRowSelection(f,h,!1,g),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:f=>{e.clearFilter(f)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(f,h)=>{e.toggleRowExpansionAdapter(f,h)},clearSort:()=>{e.clearSort()},sort:(f,h)=>{e.commit("sort",{prop:f,order:h})},updateKeyChildren:(f,h)=>{e.updateKeyChildren(f,h)}}}function DU(e,t,n,o){const a=P(!1),l=P(null),s=P(!1),r=U=>{s.value=U},u=P({width:null,height:null,headerHeight:null}),c=P(!1),d={display:"inline-block",verticalAlign:"middle"},f=P(),h=P(0),g=P(0),p=P(0),v=P(0),m=P(0);re(()=>e.height,U=>{t.setHeight(U??null)},{immediate:!0}),re(()=>e.maxHeight,U=>{t.setMaxHeight(U??null)},{immediate:!0}),re(()=>[e.currentRowKey,n.states.rowKey],([U,W])=>{!i(W)||!i(U)||n.setCurrentRowKey(`${U}`)},{immediate:!0}),re(()=>e.data,U=>{o.store.commit("setData",U)},{immediate:!0,deep:!0}),ho(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const b=()=>{o.store.commit("setHoverRow",null),o.hoverState&&(o.hoverState=null)},k=(U,W)=>{const{pixelX:M,pixelY:I}=W;Math.abs(M)>=Math.abs(I)&&(o.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)};dt(async()=>{await Ne(),n.updateColumns(),N(),requestAnimationFrame(C);const U=o.vnode.el,W=o.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(M=>{M.filteredValue&&M.filteredValue.length&&o.store.commit("filterChange",{column:M,values:M.filteredValue,silent:!0})}),o.$ready=!0});const E=(U,W)=>{if(!U)return;const M=Array.from(U.classList).filter(I=>!I.startsWith("is-scrolling-"));M.push(t.scrollX.value?W:"is-scrolling-none"),U.className=M.join(" ")},$=U=>{const{tableWrapper:W}=o.refs;E(W,U)},O=U=>{const{tableWrapper:W}=o.refs;return!!(W&&W.classList.contains(U))},R=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const F="is-scrolling-none";O(F)||$(F);return}const U=o.refs.scrollBarRef.wrapRef;if(!U)return;const{scrollLeft:W,offsetWidth:M,scrollWidth:I}=U,{headerWrapper:L,footerWrapper:D}=o.refs;L&&(L.scrollLeft=W),D&&(D.scrollLeft=W),W>=I-M-1?$("is-scrolling-right"):$(W===0?"is-scrolling-left":"is-scrolling-middle")},N=()=>{o.refs.scrollBarRef&&(o.refs.scrollBarRef.wrapRef&&Lt(o.refs.scrollBarRef.wrapRef,"scroll",R,{passive:!0}),e.fit?Gt(o.vnode.el,_):Lt(window,"resize",_),Gt(o.refs.tableInnerWrapper,()=>{_(),o.refs?.scrollBarRef?.update()}))},_=()=>{const U=o.vnode.el;if(!o.$ready||!U)return;let W=!1;const{width:M,height:I,headerHeight:L}=u.value,D=f.value=U.offsetWidth;M!==D&&(W=!0);const F=U.offsetHeight;(e.height||y.value)&&I!==F&&(W=!0);const q=e.tableLayout==="fixed"?o.refs.headerWrapper:o.refs.tableHeaderRef?.$el;e.showHeader&&q?.offsetHeight!==L&&(W=!0),h.value=o.refs.tableWrapper?.scrollHeight||0,p.value=q?.scrollHeight||0,v.value=o.refs.footerWrapper?.offsetHeight||0,m.value=o.refs.appendWrapper?.offsetHeight||0,g.value=h.value-p.value-v.value-m.value,W&&(u.value={width:D,height:F,headerHeight:e.showHeader&&q?.offsetHeight||0},C())},A=mn(),V=w(()=>{const{bodyWidth:U,scrollY:W,gutterWidth:M}=t;return U.value?`${U.value-(W.value?M:0)}px`:""}),z=w(()=>e.maxHeight?"fixed":e.tableLayout);return{isHidden:a,renderExpanded:l,setDragVisible:r,isGroup:c,handleMouseLeave:b,handleHeaderFooterMousewheel:k,tableSize:A,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+v.value}px)`}:{maxHeight:`${+e.maxHeight-p.value-v.value}px`}:{})}}function BU(e){let t;const n=()=>{const o=e.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},l=e.store.states.updateOrderFns;t=new MutationObserver(()=>{l.forEach(s=>s())}),t.observe(o,a)};dt(()=>{n()}),Sr(()=>{t?.disconnect()})}var FU={data:{type:Array,default:()=>[]},size:wn,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 fE(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(({width:a})=>kt(a))&&(n=[]);const o=a=>{const l={key:`${e.tableLayout}_${a.id}`,style:{},name:void 0};return t?l.style={width:`${a.width}px`}:l.name=a.id,l};return qe("colgroup",{},n.map(a=>qe("col",o(a))))}fE.props=["columns","tableLayout"];const VU=()=>{const e=P(),t=(l,s)=>{const r=e.value;r&&r.scrollTo(l,s)},n=(l,s)=>{const r=e.value;r&&He(s)&&["Top","Left"].includes(l)&&r[`setScroll${l}`](s)};return{scrollBarRef:e,scrollTo:t,setScrollTop:l=>n("Top",l),setScrollLeft:l=>n("Left",l)}};let zU=1;var HU=le({name:"ElTable",directives:{Mousewheel:v8},components:{TableHeader:EU,TableBody:MU,TableFooter:_U,ElScrollbar:Jo,hColgroup:fE},props:FU,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}=yt(),n=fe("table"),o=fl("table"),a=ut();bt(la,a);const l=dU(a,e);a.store=l;const s=new pU({store:a.store,table:a,fit:e.fit,showHeader:e.showHeader});a.layout=s;const r=w(()=>(l.states.data.value||[]).length===0),{setCurrentRow:u,getSelectionRows:c,toggleRowSelection:d,clearSelection:f,clearFilter:h,toggleAllSelection:g,toggleRowExpansion:p,clearSort:v,sort:m,updateKeyChildren:b}=LU(l),{isHidden:k,renderExpanded:y,setDragVisible:S,isGroup:C,handleMouseLeave:E,handleHeaderFooterMousewheel:$,tableSize:O,emptyBlockStyle:R,resizeProxyVisible:N,bodyWidth:_,resizeState:A,doLayout:V,tableBodyStyles:z,tableLayout:U,scrollbarViewStyle:W,scrollbarStyle:M}=DU(e,s,l,a),{scrollBarRef:I,scrollTo:L,setScrollLeft:D,setScrollTop:F}=VU(),q=Oa(V,50),j=`${n.namespace.value}-table_${zU++}`;a.tableId=j,a.state={isGroup:C,resizeState:A,doLayout:V,debouncedUpdateLayout:q};const X=w(()=>e.sumText??t("el.table.sumText")),Q=w(()=>e.emptyText??t("el.table.emptyText")),ve=w(()=>e.tooltipEffect??o.value?.tooltipEffect),ue=w(()=>e.tooltipOptions??o.value?.tooltipOptions),ge=w(()=>dE(l.states.originColumns.value)[0]);return BU(a),_t(()=>{q.cancel()}),{ns:n,layout:s,store:l,columns:ge,handleHeaderFooterMousewheel:$,handleMouseLeave:E,tableId:j,tableSize:O,isHidden:k,isEmpty:r,renderExpanded:y,resizeProxyVisible:N,resizeState:A,isGroup:C,bodyWidth:_,tableBodyStyles:z,emptyBlockStyle:R,debouncedUpdateLayout:q,setCurrentRow:u,getSelectionRows:c,toggleRowSelection:d,clearSelection:f,clearFilter:h,toggleAllSelection:g,toggleRowExpansion:p,clearSort:v,doLayout:V,sort:m,updateKeyChildren:b,t,setDragVisible:S,context:a,computedSumText:X,computedEmptyText:Q,computedTooltipEffect:ve,computedTooltipOptions:ue,tableLayout:U,scrollbarViewStyle:W,scrollbarStyle:M,scrollBarRef:I,scrollTo:L,setScrollLeft:D,setScrollTop:F,allowDragLastColumn:e.allowDragLastColumn}}});const KU=["data-prefix"],WU={ref:"hiddenColumns",class:"hidden-columns"};function jU(e,t,n,o,a,l){const s=Ot("hColgroup"),r=Ot("table-header"),u=Ot("table-body"),c=Ot("table-footer"),d=Ot("el-scrollbar"),f=eh("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]=(...h)=>e.handleMouseLeave&&e.handleMouseLeave(...h))},[H("div",{ref:"tableInnerWrapper",class:T(e.ns.e("inner-wrapper"))},[H("div",WU,[ee(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?rt((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(r,{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]=h=>e.$emit("scroll",h))},{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(),ae(r,{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(),ae(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",{},()=>[gt(ke(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"?rt((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)),[[Nt,!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),rt(H("div",{ref:"resizeProxy",class:T(e.ns.e("column-resize-proxy"))},null,2),[[Nt,e.resizeProxyVisible]])],46,KU)}var UU=Sn(HU,[["render",jU]]);const qU={selection:"table-column--selection",expand:"table__expand-column"},YU={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:""}},GU=e=>qU[e]||"",XU={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return qe(Qo,{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:o}){return qe(Qo,{disabled:t.selectable?!t.selectable.call(null,e,o):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:a=>a.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 o=e.index;return He(o)?n=t+o:Fe(o)&&(n=o(t)),qe("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({column:e,row:t,store:n,expanded:o,$index:a}){const{ns:l}=n,s=[l.e("expand-icon")];!e.renderExpand&&o&&s.push(l.em("expand-icon","expanded"));const r=function(c){c.stopPropagation(),n.toggleRowExpansion(t)},u=n.states.rowExpandable.value?.(t,a)??!0;return u||s.push(l.is("disabled")),qe("button",{type:"button",disabled:!u,"aria-label":n.t(o?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":o,class:s,onClick:r},{default:()=>e.renderExpand?[e.renderExpand({expanded:o,expandable:u})]:[qe(De,null,{default:()=>[qe(Xn)]})]})},sortable:!1,resizable:!1}};function JU({row:e,column:t,$index:n}){const o=t.property,a=o&&Ol(e,o).value;return t&&t.formatter?t.formatter(e,t,a,n):a?.toString?.()||""}function ZU({row:e,treeNode:t,store:n},o=!1){const{ns:a}=n;if(!t)return o?[qe("span",{class:a.e("placeholder")})]:null;const l=[],s=function(r){r.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&l.push(qe("span",{class:a.e("indent"),style:{"padding-left":`${t.indent}px`}})),Ft(t.expanded)&&!t.noLazyChildren){const r=[a.e("expand-icon"),t.expanded?a.em("expand-icon","expanded"):""];let u=Xn;t.loading&&(u=Ra),l.push(qe("button",{type:"button","aria-label":n.t(t.expanded?"el.table.collapseRowLabel":"el.table.expandRowLabel"),"aria-expanded":t.expanded,class:r,onClick:s},{default:()=>[qe(De,{class:a.is("loading",t.loading)},{default:()=>[qe(u)]})]}))}else l.push(qe("span",{class:a.e("placeholder")}));return l}function x0(e,t){return e.reduce((n,o)=>(n[o]=o,n),t)}function QU(e,t){const n=ut();return{registerComplexWatchers:()=>{const l=["fixed"],s={realWidth:"width",realMinWidth:"minWidth"},r=x0(l,s);Object.keys(r).forEach(u=>{const c=s[u];$t(t,c)&&re(()=>t[c],d=>{let f=d;c==="width"&&u==="realWidth"&&(f=xm(d)),c==="minWidth"&&u==="realMinWidth"&&(f=aE(d)),n.columnConfig.value[c]=f,n.columnConfig.value[u]=f;const h=c==="fixed";e.value.store.scheduleLayout(h)})})},registerNormalWatchers:()=>{const l=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter","resizable"],s=["showOverflowTooltip"],r={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},u=x0(l,r);Object.keys(u).forEach(d=>{const f=r[d];$t(t,f)&&re(()=>t[f],h=>{n.columnConfig.value[d]=h,(d==="filters"||d==="filterMethod")&&(n.columnConfig.value.filterable=!!(n.columnConfig.value.filters||n.columnConfig.value.filterMethod))})}),s.forEach(d=>{$t(e.value.props,d)&&re(()=>e.value.props[d],f=>{n.columnConfig.value.type!=="selection"&&kt(t[d])&&(n.columnConfig.value[d]=f)})});const c=fl("table");c.value&&$t(c.value,"showOverflowTooltip")&&re(()=>c.value?.showOverflowTooltip,d=>{n.columnConfig.value.type!=="selection"&&(!kt(t.showOverflowTooltip)||!kt(e.value.props.showOverflowTooltip)||(n.columnConfig.value.showOverflowTooltip=d))})}}}function eq(e,t,n){const o=ut(),a=P(""),l=P(!1),s=P(),r=P(),u=fe("table");ho(()=>{s.value=e.align?`is-${e.align}`:null,s.value}),ho(()=>{r.value=e.headerAlign?`is-${e.headerAlign}`:s.value,r.value});const c=w(()=>{let S=o.vnode.vParent||o.parent;for(;S&&!S.tableId&&!S.columnId;)S=S.vnode.vParent||S.parent;return S}),d=w(()=>{const{store:S}=o.parent;if(!S)return!1;const{treeData:C}=S.states,E=C.value;return E&&Object.keys(E).length>0}),f=P(xm(e.width)),h=P(aE(e.minWidth)),g=S=>(f.value&&(S.width=f.value),h.value&&(S.minWidth=h.value),!f.value&&h.value&&(S.width=void 0),S.minWidth||(S.minWidth=80),S.realWidth=Number(kt(S.width)?S.minWidth:S.width),S),p=S=>{const C=S.type,E=XU[C]||{};Object.keys(E).forEach(O=>{const R=E[O];O!=="className"&&!kt(R)&&(S[O]=R)});const $=GU(C);if($){const O=`${i(u.namespace)}-${$}`;S.className=S.className?`${S.className} ${O}`:O}return S},v=S=>{ye(S)?S.forEach(E=>C(E)):C(S);function C(E){E?.type?.name==="ElTableColumn"&&(E.vParent=o)}};return{columnId:a,realAlign:s,isSubColumn:l,realHeaderAlign:r,columnOrTableParent:c,setColumnWidth:g,setColumnForcedProps:p,setColumnRenders:S=>{e.renderHeader?ct("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(o.columnConfig.value.label,t.header){const $=t.header(E);if(rE($))return qe(Ve,$)}return gt(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||JU,S.renderCell=E=>{let $=null;if(t.default){const A=t.default(E);$=A.some(V=>V.type!==dn)?A:C(E)}else $=C(E);const{columns:O}=n.value.store.states,R=O.value.findIndex(A=>A.type==="default"),N=ZU(E,d.value&&E.cellIndex===R),_={class:"cell",style:{}};return S.showOverflowTooltip&&(_.class=`${_.class} ${i(u.namespace)}-tooltip`,_.style={width:`${(E.column.realWidth||Number(E.column.width))-1}px`}),v($),qe("div",_,[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",o.columnConfig.value)}}}var tq={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 nq=1;var oq=le({name:"ElTableColumn",components:{ElCheckbox:Qo},props:tq,setup(e,{slots:t}){const n=ut(),o=fl("table"),a=P({}),l=w(()=>{let S=n.parent;for(;S&&!S.tableId;)S=S.parent;return S}),{registerNormalWatchers:s,registerComplexWatchers:r}=QU(l,e),{columnId:u,isSubColumn:c,realHeaderAlign:d,columnOrTableParent:f,setColumnWidth:h,setColumnForcedProps:g,setColumnRenders:p,getPropsData:v,getColumnElIndex:m,realAlign:b,updateColumnOrder:k}=eq(e,t,l),y=f.value;u.value=`${"tableId"in y&&y.tableId||"columnId"in y&&y.columnId}_column_${nq++}`,Td(()=>{c.value=l.value!==y;const S=e.type||"default",C=e.sortable===""?!0:e.sortable,E=S==="selection"?!1:kt(e.showOverflowTooltip)?y.props.showOverflowTooltip??o.value?.showOverflowTooltip:e.showOverflowTooltip,$=kt(e.tooltipFormatter)?y.props.tooltipFormatter??o.value?.tooltipFormatter:e.tooltipFormatter,O={...YU[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=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"]);R=Q7(O,R),R=tU(p,h,g)(R),a.value=R,s(),r()}),dt(()=>{const S=f.value,C=c.value?S.vnode.el?.children:S.refs.hiddenColumns?.children,E=()=>m(C||[],n.vnode.el);a.value.getColumnIndex=E,E()>-1&&l.value.store.commit("insertColumn",a.value,c.value?"columnConfig"in S&&S.columnConfig.value:null,k)}),_t(()=>{const S=a.value.getColumnIndex;(S?S():-1)>-1&&l.value.store.commit("removeColumn",a.value,c.value?"columnConfig"in y&&y.columnConfig.value:null,k)}),n.columnId=u.value,n.columnConfig=a},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===Ve&&ye(n.children)&&n.children.forEach(o=>{o?.patchFlag!==1024&&!Le(o?.children)&&t.push(o)});return qe("div",t)}catch{return qe("div",[])}}}),pE=oq;const aq=ot(UU,{TableColumn:pE}),lq=Zt(pE);let ya=(function(e){return e.ASC="asc",e.DESC="desc",e})({}),pd=(function(e){return e.LEFT="left",e.CENTER="center",e.RIGHT="right",e})({}),sq=(function(e){return e.LEFT="left",e.RIGHT="right",e})({});const Sv={[ya.ASC]:ya.DESC,[ya.DESC]:ya.ASC},Bi=Symbol("placeholder"),vE=String,hu={type:G(Array),required:!0},Rm={type:G(Array)},hE={...Rm,required:!0},rq=String,T0={type:G(Array),default:()=>tn([])},Xl={type:Number,required:!0},mE={type:G([String,Number,Symbol]),default:"id"},$0={type:G(Object)},ns=Se({class:String,columns:hu,columnsStyles:{type:G(Object),required:!0},depth:Number,expandColumnKey:rq,estimatedRowHeight:{...is.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:mE,style:{type:G(Object)}}),ap={type:Number,required:!0},Im=Se({class:String,columns:hu,fixedHeaderData:{type:G(Array)},headerData:{type:G(Array),required:!0},headerHeight:{type:G([Number,Array]),default:50},rowWidth:ap,rowHeight:{type:Number,default:50},height:ap,width:ap}),kc=Se({columns:hu,data:hE,fixedData:Rm,estimatedRowHeight:ns.estimatedRowHeight,width:Xl,height:Xl,headerWidth:Xl,headerHeight:Im.headerHeight,bodyWidth:Xl,rowHeight:Xl,cache:B2.cache,useIsScrolling:Boolean,scrollbarAlwaysOn:is.scrollbarAlwaysOn,scrollbarStartGap:is.scrollbarStartGap,scrollbarEndGap:is.scrollbarEndGap,class:vE,style:$0,containerStyle:$0,getRowHeight:{type:G(Function),required:!0},rowKey:ns.rowKey,onRowsRendered:{type:G(Function)},onScroll:{type:G(Function)}}),iq=Se({cache:kc.cache,estimatedRowHeight:ns.estimatedRowHeight,rowKey:mE,headerClass:{type:G([String,Function])},headerProps:{type:G([Object,Function])},headerCellProps:{type:G([Object,Function])},headerHeight:Im.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:hu,data:hE,dataGetter:{type:G(Function)},fixedData:Rm,expandColumnKey:ns.expandColumnKey,expandedRowKeys:T0,defaultExpandedRowKeys:T0,class:vE,fixed:Boolean,style:{type:G(Object)},width:Xl,height:Xl,maxHeight:Number,useIsScrolling:Boolean,indentSize:{type:Number,default:12},iconSize:{type:Number,default:12},hScrollbarSize:is.hScrollbarSize,vScrollbarSize:is.vScrollbarSize,scrollbarAlwaysOn:z2.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:ns.onRowExpand,onScroll:kc.onScroll,onRowsRendered:kc.onRowsRendered,rowEventHandlers:ns.rowEventHandlers}),uq=(e,t,n)=>{const o={flexGrow:0,flexShrink:0,...n?{}:{flexGrow:e.flexGrow??0,flexShrink:e.flexShrink??1}},a={...e.style??{},...o,flexBasis:"auto",width:e.width};return t||(e.maxWidth&&(a.maxWidth=e.maxWidth),e.minWidth&&(a.minWidth=e.minWidth)),a};function cq(e,t,n){const o=w(()=>i(t).map((m,b)=>({...m,key:m.key??m.dataKey??b}))),a=w(()=>i(o).filter(m=>!m.hidden)),l=w(()=>i(a).filter(m=>m.fixed==="left"||m.fixed===!0)),s=w(()=>i(a).filter(m=>m.fixed==="right")),r=w(()=>i(a).filter(m=>!m.fixed)),u=w(()=>{const m=[];return i(l).forEach(b=>{m.push({...b,placeholderSign:Bi})}),i(r).forEach(b=>{m.push(b)}),i(s).forEach(b=>{m.push({...b,placeholderSign:Bi})}),m}),c=w(()=>i(l).length||i(s).length),d=w(()=>i(o).reduce((m,b)=>(m[b.key]=uq(b,i(n),e.fixed),m),{})),f=w(()=>i(a).reduce((m,b)=>m+b.width,0)),h=m=>i(o).find(b=>b.key===m),g=m=>i(d)[m],p=(m,b)=>{m.width=b};function v(m){const{key:b}=m.currentTarget.dataset;if(!b)return;const{sortState:k,sortBy:y}=e;let S=ya.ASC;tt(k)?S=Sv[k[b]]:S=Sv[y.order],e.onColumnSort?.({column:h(b),key:b,order:S})}return{columns:o,columnsStyles:d,columnsTotalWidth:f,fixedColumnsOnLeft:l,fixedColumnsOnRight:s,hasFixedColumns:c,mainColumns:u,normalColumns:r,visibleColumns:a,getColumn:h,getColumnStyle:g,updateColumnWidth:p,onColumnSorted:v}}const dq=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:o,onMaybeEndReached:a})=>{const l=P({scrollLeft:0,scrollTop:0});function s(g){const{scrollTop:p}=g;t.value?.scrollTo(g),n.value?.scrollToTop(p),o.value?.scrollToTop(p)}function r(g){l.value=g,s(g)}function u(g){l.value.scrollTop=g,s(i(l))}function c(g){l.value.scrollLeft=g,t.value?.scrollTo?.(i(l))}function d(g){r(g),e.onScroll?.(g)}function f({scrollTop:g}){const{scrollTop:p}=i(l);g!==p&&u(g)}function h(g,p="auto"){t.value?.scrollToRow(g,p)}return re(()=>i(l).scrollTop,(g,p)=>{g>p&&a()}),{scrollPos:l,scrollTo:r,scrollToLeft:c,scrollToTop:u,scrollToRow:h,onScroll:d,onVerticalScroll:f}},fq=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:o,tableInstance:a,ns:l,isScrolling:s})=>{const r=ut(),{emit:u}=r,c=qt(!1),d=P(e.defaultExpandedRowKeys||[]),f=P(-1),h=qt(null),g=P({}),p=P({}),v=qt({}),m=qt({}),b=qt({}),k=w(()=>He(e.estimatedRowHeight));function y(N){e.onRowsRendered?.(N),N.rowCacheEnd>i(f)&&(f.value=N.rowCacheEnd)}function S({hovered:N,rowKey:_}){s.value||a.vnode.el.querySelectorAll(`[rowkey="${String(_)}"]`).forEach(A=>{N?A.classList.add(l.is("hovered")):A.classList.remove(l.is("hovered"))})}function C({expanded:N,rowData:_,rowIndex:A,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:_,rowIndex:A,rowKey:V}),e.onExpandedRowsChange?.(z),a.vnode.el.querySelector(`.${l.is("hovered")}[rowkey="${String(V)}"]`)&&Ne(()=>S({hovered:!0,rowKey:V}))}const E=Oa(()=>{c.value=!0,g.value={...i(g),...i(p)},$(i(h),!1),p.value={},h.value=null,t.value?.forceUpdate(),n.value?.forceUpdate(),o.value?.forceUpdate(),r.proxy?.$forceUpdate(),c.value=!1},0);function $(N,_=!1){i(k)&&[t,n,o].forEach(A=>{const V=i(A);V&&V.resetAfterRowIndex(N,_)})}function O(N,_,A){const V=i(h);(V===null||V>A)&&(h.value=A),p.value[N]=_}function R({rowKey:N,height:_,rowIndex:A},V){V?V===sq.RIGHT?b.value[N]=_:v.value[N]=_:m.value[N]=_;const z=Math.max(...[v,b,m].map(U=>U.value[N]||0));i(g)[N]!==z&&(O(N,z,A),E())}return{expandedRowKeys:d,lastRenderedRowIndex:f,isDynamic:k,isResetting:c,rowHeights:g,resetAfterIndex:$,onRowExpanded:C,onRowHovered:S,onRowsRendered:y,onRowHeightChange:R}},pq=(e,{expandedRowKeys:t,lastRenderedRowIndex:n,resetAfterIndex:o})=>{const a=P({}),l=w(()=>{const r={},{data:u,rowKey:c}=e,d=i(t);if(!d||!d.length)return u;const f=[],h=new Set;d.forEach(p=>h.add(p));let g=u.slice();for(g.forEach(p=>r[p[c]]=0);g.length>0;){const p=g.shift();f.push(p),h.has(p[c])&&ye(p.children)&&p.children.length>0&&(g=[...p.children,...g],p.children.forEach(v=>r[v[c]]=r[p[c]]+1))}return a.value=r,f}),s=w(()=>{const{data:r,expandColumnKey:u}=e;return u?i(l):r});return re(s,(r,u)=>{r!==u&&(n.value=-1,o(0,!0))}),{data:s,depthMap:a}},vq=(e,t)=>e+t,Ec=e=>ye(e)?e.reduce(vq,0):e,bs=(e,t,n={})=>Fe(e)?e(t):e??n,$l=e=>(["width","maxWidth","minWidth","height"].forEach(t=>{e[t]=nn(e[t])}),e),gE=e=>Kt(e)?t=>qe(e,t):e,hq=(e,{columnsTotalWidth:t,rowsHeight:n,fixedColumnsOnLeft:o,fixedColumnsOnRight:a})=>{const l=w(()=>{const{fixed:v,width:m,vScrollbarSize:b}=e,k=m-b;return v?Math.max(Math.round(i(t)),k):k}),s=w(()=>{const{height:v=0,maxHeight:m=0,footerHeight:b,hScrollbarSize:k}=e;if(m>0){const y=i(h),S=i(n),C=i(f)+y+S+k;return Math.min(C,m-b)}return v-b}),r=w(()=>{const{maxHeight:v}=e,m=i(s);if(He(v)&&v>0)return m;const b=i(n)+i(f)+i(h);return Math.min(m,b)}),u=v=>v.width,c=w(()=>Ec(i(o).map(u))),d=w(()=>Ec(i(a).map(u))),f=w(()=>Ec(e.headerHeight)),h=w(()=>(e.fixedData?.length||0)*e.rowHeight),g=w(()=>i(s)-i(f)-i(h)),p=w(()=>{const{style:v={},height:m,width:b}=e;return $l({...v,height:m,width:b})});return{bodyWidth:l,fixedTableHeight:r,mainTableHeight:s,leftTableWidth:c,rightTableWidth:d,windowHeight:g,footerHeight:w(()=>$l({height:e.footerHeight})),emptyStyle:w(()=>({top:nn(i(f)),bottom:nn(e.footerHeight),width:nn(e.width)})),rootStyle:p,headerHeight:f}};function mq(e){const t=P(),n=P(),o=P(),{columns:a,columnsStyles:l,columnsTotalWidth:s,fixedColumnsOnLeft:r,fixedColumnsOnRight:u,hasFixedColumns:c,mainColumns:d,onColumnSorted:f}=cq(e,Dt(e,"columns"),Dt(e,"fixed")),{scrollTo:h,scrollToLeft:g,scrollToTop:p,scrollToRow:v,onScroll:m,onVerticalScroll:b,scrollPos:k}=dq(e,{mainTableRef:t,leftTableRef:n,rightTableRef:o,onMaybeEndReached:Z}),y=fe("table-v2"),S=ut(),C=qt(!1),{expandedRowKeys:E,lastRenderedRowIndex:$,isDynamic:O,isResetting:R,rowHeights:N,resetAfterIndex:_,onRowExpanded:A,onRowHeightChange:V,onRowHovered:z,onRowsRendered:U}=fq(e,{mainTableRef:t,leftTableRef:n,rightTableRef:o,tableInstance:S,ns:y,isScrolling:C}),{data:W,depthMap:M}=pq(e,{expandedRowKeys:E,lastRenderedRowIndex:$,resetAfterIndex:_}),I=w(()=>{const{estimatedRowHeight:se,rowHeight:ce}=e,he=i(W);return He(se)?Object.values(i(N)).reduce((Ce,Re)=>Ce+Re,0):he.length*ce}),{bodyWidth:L,fixedTableHeight:D,mainTableHeight:F,leftTableWidth:q,rightTableWidth:j,windowHeight:X,footerHeight:Q,emptyStyle:ve,rootStyle:ue,headerHeight:ge}=hq(e,{columnsTotalWidth:s,fixedColumnsOnLeft:r,fixedColumnsOnRight:u,rowsHeight:I}),ie=P(),oe=w(()=>{const se=i(W).length===0;return ye(e.fixedData)?e.fixedData.length===0&&se:se});function ne(se){const{estimatedRowHeight:ce,rowHeight:he,rowKey:Ce}=e;return ce?i(N)[i(W)[se][Ce]]||ce:he}const K=P(!1);function Z(){const{onEndReached:se}=e;if(!se)return;const{scrollTop:ce}=i(k),he=i(I),Ce=he-(ce+i(X))+e.hScrollbarSize;!K.value&&i($)>=0&&he<=ce+i(F)-i(ge)?(K.value=!0,se(Ce)):K.value=!1}return re(()=>i(I),()=>K.value=!1),re(()=>e.expandedRowKeys,se=>E.value=se,{deep:!0}),{columns:a,containerRef:ie,mainTableRef:t,leftTableRef:n,rightTableRef:o,isDynamic:O,isResetting:R,isScrolling:C,hasFixedColumns:c,columnsStyles:l,columnsTotalWidth:s,data:W,expandedRowKeys:E,depthMap:M,fixedColumnsOnLeft:r,fixedColumnsOnRight:u,mainColumns:d,bodyWidth:L,emptyStyle:ve,rootStyle:ue,footerHeight:Q,mainTableHeight:F,fixedTableHeight:D,leftTableWidth:q,rightTableWidth:j,showEmpty:oe,getRowHeight:ne,onColumnSorted:f,onRowHovered:z,onRowExpanded:A,onRowsRendered:U,onRowHeightChange:V,scrollTo:h,scrollToLeft:g,scrollToTop:p,scrollToRow:v,onScroll:m,onVerticalScroll:b}}const Mm=Symbol("tableV2"),bE="tableV2GridScrollLeft",gq=le({name:"ElTableV2Header",props:Im,setup(e,{slots:t,expose:n}){const o=fe("table-v2"),a=Ae(bE),l=P(),s=w(()=>$l({width:e.width,height:e.height})),r=w(()=>$l({width:e.rowWidth,height:e.height})),u=w(()=>En(i(e.headerHeight))),c=h=>{const g=i(l);Ne(()=>{g?.scroll&&g.scroll({left:h})})},d=()=>{const h=o.e("fixed-header-row"),{columns:g,fixedHeaderData:p,rowHeight:v}=e;return p?.map((m,b)=>{const k=$l({height:v,width:"100%"});return t.fixed?.({class:h,columns:g,rowData:m,rowIndex:-(b+1),style:k})})},f=()=>{const h=o.e("dynamic-header-row"),{columns:g}=e;return i(u).map((p,v)=>{const m=$l({width:"100%",height:p});return t.dynamic?.({class:h,columns:g,headerIndex:v,style:m})})};return ea(()=>{a?.value&&c(a.value)}),n({scrollToLeft:c}),()=>{if(!(e.height<=0))return Y("div",{ref:l,class:e.class,style:i(s),role:"rowgroup"},[Y("div",{style:i(r),class:o.e("header")},[f(),d()])])}}}),bq="ElTableV2Grid",yq=e=>{const t=P(),n=P(),o=P(0),a=w(()=>{const{data:m,rowHeight:b,estimatedRowHeight:k}=e;if(!k)return m.length*b}),l=w(()=>{const{fixedData:m,rowHeight:b}=e;return(m?.length||0)*b}),s=w(()=>Ec(e.headerHeight)),r=w(()=>{const{height:m}=e;return Math.max(0,m-i(s)-i(l))}),u=w(()=>i(s)+i(l)>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 h(m,b){const k=i(t),y=i(n);tt(m)?(k?.scrollToLeft(m.scrollLeft),o.value=m.scrollLeft,y?.scrollTo(m)):(k?.scrollToLeft(m),o.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=o.value;k.scrollToItem(m,0,b),y&&h({scrollLeft:y})}function v(){i(n)?.$forceUpdate(),i(t)?.$forceUpdate()}return re(()=>e.bodyWidth,()=>{He(e.estimatedRowHeight)&&n.value?.resetAfter({columnIndex:0},!1)}),{bodyRef:n,forceUpdate:v,fixedRowHeight:l,gridHeight:r,hasHeader:u,headerHeight:s,headerRef:t,totalHeight:a,itemKey:c,onItemRendered:d,resetAfterRowIndex:f,scrollTo:h,scrollToTop:g,scrollToRow:p,scrollLeft:o}},Pm=le({name:bq,props:kc,setup(e,{slots:t,expose:n}){const{ns:o}=Ae(Mm),{bodyRef:a,fixedRowHeight:l,gridHeight:s,hasHeader:r,headerRef:u,headerHeight:c,totalHeight:d,forceUpdate:f,itemKey:h,onItemRendered:g,resetAfterRowIndex:p,scrollTo:v,scrollToTop:m,scrollToRow:b,scrollLeft:k}=yq(e);bt(bE,k),Ki(async()=>{await Ne();const S=a.value?.states.scrollTop;S&&m(Math.round(S)+1)}),n({forceUpdate:f,totalHeight:d,scrollTo:v,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:_,style:A,rowHeight:V,bodyWidth:z,estimatedRowHeight:U,headerWidth:W,height:M,width:I,getRowHeight:L,onScroll:D}=e,F=He(U),q=F?I9:$9,j=i(c);return Y("div",{role:"table",class:[o.e("table"),e.class],style:A},[Y(q,{ref:a,data:E,useIsScrolling:O,itemKey:h,columnCache:0,columnWidth:F?y:z,totalColumn:1,totalRow:E.length,rowCache:S,rowHeight:F?L:V,width:I,height:i(s),class:o.e("body"),role:"rowgroup",scrollbarStartGap:_,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(r)&&Y(gq,{ref:u,class:o.e("header-wrapper"),columns:C,headerData:E,headerHeight:e.headerHeight,fixedHeaderData:$,rowWidth:W,rowHeight:V,width:I,height:Math.min(j+i(l),M)},{dynamic:t.header,fixed:t.row})])}}});function wq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Kt(e)}const Sq=(e,{slots:t})=>{const{mainTableRef:n,...o}=e;return Y(Pm,it({ref:n},o),wq(t)?t:{default:()=>[t]})};function Cq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Kt(e)}const kq=(e,{slots:t})=>{if(!e.columns.length)return;const{leftTableRef:n,...o}=e;return Y(Pm,it({ref:n},o),Cq(t)?t:{default:()=>[t]})};function Eq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Kt(e)}const xq=(e,{slots:t})=>{if(!e.columns.length)return;const{rightTableRef:n,...o}=e;return Y(Pm,it({ref:n},o),Eq(t)?t:{default:()=>[t]})},Tq=e=>{const{isScrolling:t}=Ae(Mm),n=P(!1),o=P(),a=w(()=>He(e.estimatedRowHeight)&&e.rowIndex>=0),l=(u=!1)=>{const c=i(o);if(!c)return;const{columns:d,onRowHeightChange:f,rowKey:h,rowIndex:g,style:p}=e,{height:v}=c.getBoundingClientRect();n.value=!0,Ne(()=>{if(u||v!==Number.parseInt(p.height)){const m=d[0],b=m?.placeholderSign===Bi;f?.({rowKey:h,height:v,rowIndex:g},m&&!b&&m.fixed)}})},s=w(()=>{const{rowData:u,rowIndex:c,rowKey:d,onRowHover:f}=e,h=e.rowEventHandlers||{},g={};return Object.entries(h).forEach(([p,v])=>{Fe(v)&&(g[p]=m=>{v({event:m,rowData:u,rowIndex:c,rowKey:d})})}),f&&[{name:"onMouseleave",hovered:!1},{name:"onMouseenter",hovered:!0}].forEach(({name:p,hovered:v})=>{const m=g[p];g[p]=b=>{f({event:b,hovered:v,rowData:u,rowIndex:c,rowKey:d}),m?.(b)}}),g}),r=u=>{const{onRowExpand:c,rowData:d,rowIndex:f,rowKey:h}=e;c?.({expanded:u,rowData:d,rowIndex:f,rowKey:h})};return dt(()=>{i(a)&&l(!0)}),{isScrolling:t,measurable:a,measured:n,rowRef:o,eventHandlers:s,onExpand:r}},$q=le({name:"ElTableV2TableRow",props:ns,setup(e,{expose:t,slots:n,attrs:o}){const{eventHandlers:a,isScrolling:l,measurable:s,measured:r,rowRef:u,onExpand:c}=Tq(e);return t({onExpand:c}),()=>{const{columns:d,columnsStyles:f,expandColumnKey:h,depth:g,rowData:p,rowIndex:v,style:m}=e;let b=d.map((k,y)=>{const S=ye(p.children)&&p.children.length>0&&k.key===h;return n.cell({column:k,columns:d,columnIndex:y,depth:g,style:f[k.key],rowData:p,rowIndex:v,isScrolling:i(l),expandIconProps:S?{rowData:p,rowIndex:v,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:v,isScrolling:i(l)})),i(s)){const{height:k,...y}=m||{},S=i(r);return Y("div",it({ref:u,class:e.class,style:S?m:y,role:"row"},o,i(a)),[b])}return Y("div",it(o,{ref:u,class:e.class,style:m,role:"row"},i(a)),[b])}}});function Oq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Kt(e)}const Nq=(e,{slots:t})=>{const{columns:n,columnsStyles:o,depthMap:a,expandColumnKey:l,expandedRowKeys:s,estimatedRowHeight:r,hasFixedColumns:u,rowData:c,rowIndex:d,style:f,isScrolling:h,rowProps:g,rowClass:p,rowKey:v,rowEventHandlers:m,ns:b,onRowHovered:k,onRowExpanded:y}=e,S=bs(p,{columns:n,rowData:c,rowIndex:d},""),C=bs(g,{columns:n,rowData:c,rowIndex:d}),E=c[v],$=a[E]||0,O=!!l,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}],_=u?k:void 0,A={...C,columns:n,columnsStyles:o,class:N,depth:$,expandColumnKey:l,estimatedRowHeight:R?void 0:r,isScrolling:h,rowIndex:d,rowData:c,rowKey:E,rowEventHandlers:m,style:f};return Y($q,it(A,{onRowExpand:y,onMouseenter:U=>{_?.({hovered:!0,rowKey:E,event:U,rowData:c,rowIndex:d})},onMouseleave:U=>{_?.({hovered:!1,rowKey:E,event:U,rowData:c,rowIndex:d})},rowkey:E}),Oq(t)?t:{default:()=>[t]})},Am=(e,{slots:t})=>{const{cellData:n,style:o}=e,a=n?.toString?.()||"",l=ee(t,"default",e,()=>[a]);return Y("div",{class:e.class,title:a,style:o},[l])};Am.displayName="ElTableV2Cell";Am.inheritAttrs=!1;const yE=e=>{const{expanded:t,expandable:n,onExpand:o,style:a,size:l,ariaLabel:s}=e;return Y("button",it({onClick:n?()=>o(!t):void 0,ariaLabel:s,ariaExpanded:t,class:e.class},{type:"button"}),[Y(De,{size:l,style:a},{default:()=>[Y(Xn,null,null)]})])};yE.inheritAttrs=!1;const Cv=({columns:e,column:t,columnIndex:n,depth:o,expandIconProps:a,isScrolling:l,rowData:s,rowIndex:r,style:u,expandedRowKeys:c,ns:d,t:f,cellProps:h,expandColumnKey:g,indentSize:p,iconSize:v,rowKey:m},{slots:b})=>{const k=$l(u);if(t.placeholderSign===Bi)return Y("div",{class:d.em("row-cell","placeholder"),style:k},null);const{cellRenderer:y,dataKey:S,dataGetter:C}=t,E=Fe(C)?C({columns:e,column:t,columnIndex:n,rowData:s,rowIndex:r}):vn(s,S??""),$=bs(h,{cellData:E,columns:e,column:t,columnIndex:n,rowIndex:r,rowData:s}),O={class:d.e("cell-text"),columns:e,column:t,columnIndex:n,cellData:E,isScrolling:l,rowData:s,rowIndex:r},R=gE(y),N=R?R(O):ee(b,"default",O,()=>[Y(Am,O,null)]),_=[d.e("row-cell"),t.class,t.align===pd.CENTER&&d.is("align-center"),t.align===pd.RIGHT&&d.is("align-right")],A=r>=0&&g&&t.key===g,V=r>=0&&c.includes(s[m]);let z;const U=`margin-inline-start: ${o*p}px;`;return A&&(tt(a)?z=Y(yE,it(a,{class:[d.e("expand-icon"),d.is("expanded",V)],size:v,expanded:V,ariaLabel:f(V?"el.table.collapseRowLabel":"el.table.expandRowLabel"),style:U,expandable:!0}),null):z=Y("div",{style:[U,`width: ${v}px; height: ${v}px;`].join(" ")},null)),Y("div",it({class:_,style:k},$,{role:"cell"}),[z,N])};Cv.inheritAttrs=!1;const Rq=Se({class:String,columns:hu,columnsStyles:{type:G(Object),required:!0},headerIndex:Number,style:{type:G(Object)}}),Iq=le({name:"ElTableV2HeaderRow",props:Rq,setup(e,{slots:t}){return()=>{const{columns:n,columnsStyles:o,headerIndex:a,style:l}=e;let s=n.map((r,u)=>t.cell({columns:n,column:r,columnIndex:u,headerIndex:a,style:o[r.key]}));return t.header&&(s=t.header({cells:s.map(r=>ye(r)&&r.length===1?r[0]:r),columns:n,headerIndex:a})),Y("div",{class:e.class,style:l,role:"row"},[s])}}});function Mq(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Kt(e)}const Pq=({columns:e,columnsStyles:t,headerIndex:n,style:o,headerClass:a,headerProps:l,ns:s},{slots:r})=>{const u={columns:e,headerIndex:n},c=[s.e("header-row"),bs(a,u,""),s.is("customized",!!r.header)];return Y(Iq,{...bs(l,u),columnsStyles:t,class:c,columns:e,headerIndex:n,style:o},Mq(r)?r:{default:()=>[r]})},_m=(e,{slots:t})=>ee(t,"default",e,()=>[Y("div",{class:e.class,title:e.column?.title},[e.column?.title])]);_m.displayName="ElTableV2HeaderCell";_m.inheritAttrs=!1;const Aq=e=>{const{sortOrder:t}=e;return Y("button",{type:"button","aria-label":e.ariaLabel,class:e.class},[Y(De,{size:14},{default:()=>[t===ya.ASC?Y(C3,null,null):Y(w3,null,null)]})])},O0=(e,{slots:t})=>{const{column:n,ns:o,t:a,style:l,onColumnSorted:s}=e,r=$l(l);if(n.placeholderSign===Bi)return Y("div",{class:o.em("header-row-cell","placeholder"),style:r},null);const{headerCellRenderer:u,headerClass:c,sortable:d}=n,f={...e,class:o.e("header-cell-text")},h=gE(u),g=h?h(f):ee(t,"default",f,()=>[Y(_m,f,null)]),{sortBy:p,sortState:v,headerCellProps:m}=e;let b,k,y;if(v){const C=v[n.key];b=!!Sv[C],k=b?C:ya.ASC}else b=n.key===p.key,k=b?p.order:ya.ASC;k===ya.ASC?y="ascending":k===ya.DESC?y="descending":y=void 0;const S=[o.e("header-cell"),bs(c,e,""),n.align===pd.CENTER&&o.is("align-center"),n.align===pd.RIGHT&&o.is("align-right"),d&&o.is("sortable")];return Y("div",it({...bs(m,e),onClick:n.sortable?s:void 0,ariaSort:d?y:void 0,class:S,style:r,"data-key":n.key},{role:"columnheader"}),[g,d&&Y(Aq,{class:[o.e("sort-icon"),b&&o.is("sorting")],sortOrder:k,ariaLabel:a("el.table.sortLabel",{column:n.title||""})},null)])},wE=(e,{slots:t})=>Y("div",{class:e.class,style:e.style},[t.default?.()]);wE.displayName="ElTableV2Footer";const SE=(e,{slots:t})=>{const n=ee(t,"default",{},()=>[Y(T2,null,null)]);return Y("div",{class:e.class,style:e.style},[n])};SE.displayName="ElTableV2Empty";const CE=(e,{slots:t})=>Y("div",{class:e.class,style:e.style},[t.default?.()]);CE.displayName="ElTableV2Overlay";function Hr(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Kt(e)}const _q=le({name:"ElTableV2",props:iq,setup(e,{slots:t,expose:n}){const o=fe("table-v2"),{t:a}=yt(),{columnsStyles:l,fixedColumnsOnLeft:s,fixedColumnsOnRight:r,mainColumns:u,mainTableHeight:c,fixedTableHeight:d,leftTableWidth:f,rightTableWidth:h,data:g,depthMap:p,expandedRowKeys:v,hasFixedColumns:m,mainTableRef:b,leftTableRef:k,rightTableRef:y,isDynamic:S,isResetting:C,isScrolling:E,bodyWidth:$,emptyStyle:O,rootStyle:R,footerHeight:N,showEmpty:_,scrollTo:A,scrollToLeft:V,scrollToTop:z,scrollToRow:U,getRowHeight:W,onColumnSorted:M,onRowHeightChange:I,onRowHovered:L,onRowExpanded:D,onRowsRendered:F,onScroll:q,onVerticalScroll:j}=mq(e);return n({scrollTo:A,scrollToLeft:V,scrollToTop:z,scrollToRow:U}),bt(Mm,{ns:o,isResetting:C,isScrolling:E}),()=>{const{cache:X,cellProps:Q,estimatedRowHeight:ve,expandColumnKey:ue,fixedData:ge,headerHeight:ie,headerClass:oe,headerProps:ne,headerCellProps:K,sortBy:Z,sortState:se,rowHeight:ce,rowClass:he,rowEventHandlers:Ce,rowKey:Re,rowProps:Ie,scrollbarAlwaysOn:$e,indentSize:pe,iconSize:Ee,useIsScrolling:me,vScrollbarSize:Pe,width:We}=e,Xe=i(g),Me={cache:X,class:o.e("main"),columns:i(u),data:Xe,fixedData:ge,estimatedRowHeight:ve,bodyWidth:i($),headerHeight:ie,headerWidth:i($),height:i(c),mainTableRef:b,rowKey:Re,rowHeight:ce,scrollbarAlwaysOn:$e,scrollbarStartGap:2,scrollbarEndGap:Pe,useIsScrolling:me,width:We,getRowHeight:W,onRowsRendered:F,onScroll:q},_e=i(f),je=i(d),Tt={cache:X,class:o.e("left"),columns:i(s),data:Xe,fixedData:ge,estimatedRowHeight:ve,leftTableRef:k,rowHeight:ce,bodyWidth:_e,headerWidth:_e,headerHeight:ie,height:je,rowKey:Re,scrollbarAlwaysOn:$e,scrollbarStartGap:2,scrollbarEndGap:Pe,useIsScrolling:me,width:_e,getRowHeight:W,onScroll:j},Ue=i(h),at={cache:X,class:o.e("right"),columns:i(r),data:Xe,fixedData:ge,estimatedRowHeight:ve,rightTableRef:y,rowHeight:ce,bodyWidth:Ue,headerWidth:Ue,headerHeight:ie,height:je,rowKey:Re,scrollbarAlwaysOn:$e,scrollbarStartGap:2,scrollbarEndGap:Pe,width:Ue,style:`${o.cssVarName("table-scrollbar-size")}: ${Pe}px`,useIsScrolling:me,getRowHeight:W,onScroll:j},pt=i(l),wt={ns:o,depthMap:i(p),columnsStyles:pt,expandColumnKey:ue,expandedRowKeys:i(v),estimatedRowHeight:ve,hasFixedColumns:i(m),rowProps:Ie,rowClass:he,rowKey:Re,rowEventHandlers:Ce,onRowHovered:L,onRowExpanded:D,onRowHeightChange:I},be={cellProps:Q,expandColumnKey:ue,indentSize:pe,iconSize:Ee,rowKey:Re,expandedRowKeys:i(v),ns:o,t:a},ze={ns:o,headerClass:oe,headerProps:ne,columnsStyles:pt},de={ns:o,t:a,sortBy:Z,sortState:se,headerCellProps:K,onColumnSorted:M},Ye={row:On=>Y(Nq,it(On,wt),{row:t.row,cell:Be=>{let Qe;return t.cell?Y(Cv,it(Be,be,{style:pt[Be.column.key]}),Hr(Qe=t.cell(Be))?Qe:{default:()=>[Qe]}):Y(Cv,it(Be,be,{style:pt[Be.column.key]}),null)}}),header:On=>Y(Pq,it(On,ze),{header:t.header,cell:Be=>{let Qe;return t["header-cell"]?Y(O0,it(Be,de,{style:pt[Be.column.key]}),Hr(Qe=t["header-cell"](Be))?Qe:{default:()=>[Qe]}):Y(O0,it(Be,de,{style:pt[Be.column.key]}),null)}})},Et=[e.class,o.b(),o.e("root"),o.is("dynamic",i(S))],Xt={class:o.e("footer"),style:i(N)};return Y("div",{class:Et,style:i(R)},[Y(Sq,Me,Hr(Ye)?Ye:{default:()=>[Ye]}),Y(kq,Tt,Hr(Ye)?Ye:{default:()=>[Ye]}),Y(xq,at,Hr(Ye)?Ye:{default:()=>[Ye]}),t.footer&&Y(wE,Xt,{default:t.footer}),i(_)&&Y(SE,{class:o.e("empty"),style:i(O)},{default:t.empty}),t.overlay&&Y(CE,{class:o.e("overlay")},{default:t.overlay})])}}}),Lq=Se({disableWidth:Boolean,disableHeight:Boolean,onResize:{type:G(Function)}}),Dq=e=>{const t=P(),n=P(0),o=P(0);let a;return dt(()=>{a=Gt(t,([l])=>{const{width:s,height:r}=l.contentRect,{paddingLeft:u,paddingRight:c,paddingTop:d,paddingBottom:f}=getComputedStyle(l.target),h=Number.parseInt(u)||0,g=Number.parseInt(c)||0,p=Number.parseInt(d)||0,v=Number.parseInt(f)||0;n.value=s-h-g,o.value=r-p-v}).stop}),_t(()=>{a?.()}),re([n,o],([l,s])=>{e.onResize?.({width:l,height:s})}),{sizer:t,width:n,height:o}},Bq=le({name:"ElAutoResizer",props:Lq,setup(e,{slots:t}){const n=fe("auto-resizer"),{height:o,width:a,sizer:l}=Dq(e),s={width:"100%",height:"100%"};return()=>Y("div",{ref:l,class:n.b(),style:s},[t.default?.({height:o.value,width:a.value})])}}),Fq=ot(_q),Vq=ot(Bq),af=Symbol("tabsRootContextKey"),zq=Se({tabs:{type:G(Array),default:()=>tn([])},tabRefs:{type:G(Object),default:()=>tn({})}}),N0="ElTabBar";var Hq=le({name:N0,__name:"tab-bar",props:zq,setup(e,{expose:t}){const n=e,o=Ae(af);o||Jt(N0,"