@weapp-vite/dashboard 6.19.1 → 6.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ import{A as e,B as t,C as n,D as r,E as i,G as a,H as o,I as s,J as c,N as l,O a
14
14
  `)}function ys(e,t){return[...e].sort((e,n)=>t===`compressed`?n.compressedBytes-e.compressedBytes||e.label.localeCompare(n.label):t===`delta`?(n.sizeDeltaBytes??-1/0)-(e.sizeDeltaBytes??-1/0)||e.label.localeCompare(n.label):t===`duplicates`?n.duplicateModuleCount-e.duplicateModuleCount||n.totalBytes-e.totalBytes||e.label.localeCompare(n.label):t===`files`?n.fileCount-e.fileCount||n.totalBytes-e.totalBytes||e.label.localeCompare(n.label):t===`name`?e.label.localeCompare(n.label):t===`health`?e.healthScore-n.healthScore||n.totalBytes-e.totalBytes||e.label.localeCompare(n.label):n.totalBytes-e.totalBytes||e.label.localeCompare(n.label))}function bs(e){let t=o(``),n=o(`all`),r=o(`all`),i=o(`size`),{actionStatus:a,setActionStatus:s}=Jr(),c=C(()=>new Map(e.budgetWarnings.map(e=>[e.id,e]))),l=C(()=>ms({packageInsights:e.packageInsights,budgetWarnings:e.budgetWarnings})),u=C(()=>new Map(l.value.items.map(e=>[e.id,e.score]))),d=C(()=>{let t=new Set;for(let n of e.packageInsights)t.add(n.type);return[...t].sort((e,t)=>V(e).localeCompare(V(t)))}),f=C(()=>e.packageInsights.map(t=>{let n=V(t.type),r=c.value.get(t.id),i=e.selectedTreemapMeta?.packageLabel===t.label;return{...t,typeLabel:n,summaryText:`${n} · ${t.fileCount} 个产物 · ${t.moduleCount} 个模块 · 跨包 ${t.duplicateModuleCount}`,totalBytesLabel:z(t.totalBytes),compressedBytesLabel:`${t.compressedSizeSource===`real`?`Brotli`:`估算`} ${z(t.compressedBytes)}`,deltaText:hs(t.sizeDeltaBytes),budgetText:r?`${r.status===`critical`?`超预算`:`接近预算`} ${(r.ratio*100).toFixed(1)}%`:`预算正常`,selected:i,entryCountText:`${t.entryFileCount} 个 entry`,healthScore:u.value.get(t.id)??100,metrics:gs(t)}})),p=C(()=>{let e=t.value.trim().toLowerCase();return ys(f.value.filter(t=>{if(n.value!==`all`&&t.type!==n.value)return!1;let i=c.value.has(t.id);return r.value===`warning`&&!i||r.value===`normal`&&i?!1:!e||[t.id,t.label,t.type,t.typeLabel,t.summaryText].some(t=>t.toLowerCase().includes(e))}),i.value)}),m=C(()=>vs(p.value,f.value.length));async function h(){try{await U(m.value),s(`已复制`)}catch{s(`复制失败`)}}function g(){let e=new Blob([`${JSON.stringify(p.value,null,2)}\n`],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`weapp-vite-dashboard-packages.json`,n.click(),URL.revokeObjectURL(t),s(`已导出`)}return{actionStatus:a,copyPackageReport:h,exportPackageJson:g,filteredPackageInsightCards:p,packageBudgetFilter:r,packageHealth:l,packageInsightCards:f,packageQuery:t,packageSortMode:i,packageTypeFilter:n,packageTypeOptions:d}}var xs=n({__name:`AppPackageFileTable`,props:{files:{}},setup(e,{expose:t}){t();let n=e;function r(e){let t=typeof e.sizeDeltaBytes==`number`&&e.sizeDeltaBytes!==0?`${e.sizeDeltaBytes>0?`+`:`-`}${z(Math.abs(e.sizeDeltaBytes))}`:`—`;return{file:e.file,type:e.type,fromLabel:pe(e.from),sizeLabel:z(e.size),compressedLabel:z(e.compressedSize),deltaLabel:t}}let i={props:n,createPackageFileRow:r,fileRows:C(()=>n.files.map(e=>r(e)))};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Ss={class:`overflow-hidden rounded-xl border border-(--dashboard-border)`},Cs={class:`min-w-full divide-y divide-(--dashboard-border) text-left text-sm`},ws={class:`divide-y divide-(--dashboard-border) text-(--dashboard-text-muted)`},Ts={class:`px-3 py-2 font-mono text-xs text-(--dashboard-text)`},Es={class:`px-3 py-2`},Ds={class:`px-3 py-2`},Os={class:`px-3 py-2 font-medium text-(--dashboard-text)`},ks={class:`px-3 py-2 font-medium text-(--dashboard-text)`};function As(e,t,n,r,i,a){return w(),F(`div`,Ss,[S(`table`,Cs,[t[0]||=S(`thead`,{class:`bg-(--dashboard-panel-muted) text-(--dashboard-text-soft)`},[S(`tr`,null,[S(`th`,{class:`px-3 py-2 text-[11px] font-medium uppercase tracking-[0.18em]`},` 文件 `),S(`th`,{class:`px-3 py-2 text-[11px] font-medium uppercase tracking-[0.18em]`},` 类型 `),S(`th`,{class:`px-3 py-2 text-[11px] font-medium uppercase tracking-[0.18em]`},` 来源 `),S(`th`,{class:`px-3 py-2 text-[11px] font-medium uppercase tracking-[0.18em]`},` 体积 / 压缩 `),S(`th`,{class:`px-3 py-2 text-[11px] font-medium uppercase tracking-[0.18em]`},` 较上次 `)])],-1),S(`tbody`,ws,[(w(!0),F(k,null,l(r.fileRows,e=>(w(),F(`tr`,{key:e.file},[S(`td`,Ts,c(e.file),1),S(`td`,Es,c(e.type),1),S(`td`,Ds,c(e.fromLabel),1),S(`td`,Os,c(e.sizeLabel)+` / `+c(e.compressedLabel),1),S(`td`,ks,c(e.deltaLabel),1)]))),128))])])])}var js=B(xs,[[`render`,As]]),Ms=n({__name:`PackageExplorerToolbar`,props:i({filteredCount:{},totalCount:{},typeOptions:{},actionStatus:{},disabled:{type:Boolean}},{query:{required:!0},queryModifiers:{},typeFilter:{required:!0},typeFilterModifiers:{},budgetFilter:{required:!0},budgetFilterModifiers:{},sortMode:{required:!0},sortModeModifiers:{}}),emits:i([`copy`,`exportJson`],[`update:query`,`update:typeFilter`,`update:budgetFilter`,`update:sortMode`]),setup(e,{expose:t,emit:n}){t();let r={emit:n,query:s(e,`query`),typeFilter:s(e,`typeFilter`),budgetFilter:s(e,`budgetFilter`),sortMode:s(e,`sortMode`),get formatPackageType(){return V}};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Ns={class:`flex flex-wrap items-center justify-between gap-3`},Ps={class:`text-xs font-medium text-(--dashboard-text-soft)`},Fs={key:0,class:`mt-1 text-xs font-medium text-(--dashboard-accent)`},Is={class:`flex flex-wrap items-center gap-2`},Ls=[`disabled`],Rs=[`disabled`],zs=[`value`];function Bs(e,n,r,i,a,o){return w(),F(`div`,Ns,[S(`div`,null,[S(`p`,Ps,` 匹配 `+c(r.filteredCount)+` / `+c(r.totalCount)+` 个包 `,1),r.actionStatus?(w(),F(`p`,Fs,c(r.actionStatus),1)):N(``,!0)]),S(`div`,Is,[S(`button`,{type:`button`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none disabled:opacity-50`,disabled:r.disabled,onClick:n[0]||=e=>i.emit(`copy`)},` 复制包体 `,8,Ls),S(`button`,{type:`button`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none disabled:opacity-50`,disabled:r.disabled,onClick:n[1]||=e=>i.emit(`exportJson`)},` 导出 JSON `,8,Rs),t(S(`input`,{"onUpdate:modelValue":n[2]||=e=>i.query=e,class:`h-9 w-56 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text) outline-none transition placeholder:text-(--dashboard-text-soft) focus:border-(--dashboard-accent)`,placeholder:`搜索包名或类型`,type:`search`},null,512),[[M,i.query]]),t(S(`select`,{"onUpdate:modelValue":n[3]||=e=>i.typeFilter=e,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[n[6]||=S(`option`,{value:`all`},` 全部类型 `,-1),(w(!0),F(k,null,l(r.typeOptions,e=>(w(),F(`option`,{key:e,value:e},c(i.formatPackageType(e)),9,zs))),128))],512),[[E,i.typeFilter]]),t(S(`select`,{"onUpdate:modelValue":n[4]||=e=>i.budgetFilter=e,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[...n[7]||=[S(`option`,{value:`all`},` 全部预算 `,-1),S(`option`,{value:`warning`},` 仅告警 `,-1),S(`option`,{value:`normal`},` 预算正常 `,-1)]],512),[[E,i.budgetFilter]]),t(S(`select`,{"onUpdate:modelValue":n[5]||=e=>i.sortMode=e,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[...n[8]||=[y(`<option value="health"> 按健康分 </option><option value="size"> 按体积 </option><option value="compressed"> 按压缩后 </option><option value="delta"> 按增量 </option><option value="duplicates"> 按重复模块 </option><option value="files"> 按产物数 </option><option value="name"> 按名称 </option>`,7)]],512),[[E,i.sortMode]])])])}var Vs=B(Ms,[[`render`,Bs]]),Hs=n({__name:`PackageHealthPanel`,props:{health:{}},setup(e,{expose:t}){t();function n(e){return e===`risk`?`border-rose-200 bg-rose-50 text-rose-700 dark:border-rose-500/25 dark:bg-rose-500/10 dark:text-rose-300`:e===`watch`?`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/25 dark:bg-amber-500/10 dark:text-amber-300`:`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-300`}let r={getStatusClassName:n,AppMetricTile:G,AppPanelHeader:X};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Us={class:`rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-4 shadow-(--dashboard-shadow)`},Ws={class:`mt-3 grid gap-3 xl:grid-cols-[minmax(0,0.45fr)_minmax(0,1fr)]`},Gs={class:`grid grid-cols-3 gap-2`},Ks={class:`grid gap-2 md:grid-cols-2 xl:grid-cols-3`},qs={class:`flex items-start justify-between gap-3`},Js={class:`min-w-0`},Ys={class:`truncate text-sm font-semibold text-(--dashboard-text)`},Xs={class:`mt-1 text-xs leading-5 text-(--dashboard-text-soft)`},Zs={class:`mt-3 flex items-end justify-between gap-3`},Qs={class:`text-3xl font-semibold text-(--dashboard-accent)`},$s={class:`line-clamp-2 text-right text-xs leading-5 text-(--dashboard-text-muted)`};function ec(e,t,n,r,i,o){return w(),F(`section`,Us,[p(r.AppPanelHeader,{"icon-name":`metric-health`,title:`包体健康`,description:n.health.weakestPackage?`优先关注 ${n.health.weakestPackage.label}`:`当前没有包体样本`},null,8,[`description`]),S(`div`,Ws,[S(`div`,Gs,[p(r.AppMetricTile,{label:`平均分`,value:n.health.averageScore},null,8,[`value`]),p(r.AppMetricTile,{label:`高风险`,value:n.health.riskCount},null,8,[`value`]),p(r.AppMetricTile,{label:`需关注`,value:n.health.watchCount},null,8,[`value`])]),S(`div`,Ks,[(w(!0),F(k,null,l(n.health.items.slice(0,3),e=>(w(),F(`article`,{key:e.id,class:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},[S(`div`,qs,[S(`div`,Js,[S(`p`,Ys,c(e.label),1),S(`p`,Xs,c(e.detail),1)]),S(`span`,{class:a([`shrink-0 rounded-full border px-2 py-0.5 text-[11px]`,r.getStatusClassName(e.status)])},c(e.statusLabel),3)]),S(`div`,Zs,[S(`p`,Qs,c(e.score),1),S(`p`,$s,c(e.primaryRisk),1)])]))),128))])])])}var tc=B(Hs,[[`render`,ec]]),nc=n({__name:`PackagesPanel`,props:{packageInsights:{},budgetWarnings:{},selectedTreemapMeta:{}},setup(e,{expose:t}){t();let n=e,{actionStatus:r,copyPackageReport:i,exportPackageJson:a,filteredPackageInsightCards:o,packageBudgetFilter:s,packageHealth:c,packageInsightCards:l,packageQuery:u,packageSortMode:d,packageTypeFilter:f,packageTypeOptions:p}=bs(n),m={props:n,actionStatus:r,copyPackageReport:i,exportPackageJson:a,filteredPackageInsightCards:o,packageBudgetFilter:s,packageHealth:c,packageInsightCards:l,packageQuery:u,packageSortMode:d,packageTypeFilter:f,packageTypeOptions:p,get surfaceStyles(){return L},AppEmptyState:W,AppMetricTile:G,AppPackageFileTable:js,AppPanelHeader:X,PackageExplorerToolbar:Vs,PackageHealthPanel:tc};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),rc={class:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden`},ic={class:`grid gap-3`},ac={class:`grid min-h-0 auto-rows-max gap-3 overflow-y-auto pr-1 xl:grid-cols-2`},oc={class:`flex flex-wrap items-start justify-between gap-4`},sc={class:`min-w-0`},cc={class:`mt-2 text-sm text-(--dashboard-text-soft)`},lc={class:`text-right`},uc={class:`text-xl font-semibold text-(--dashboard-text)`},dc={class:`text-xs text-(--dashboard-text-soft)`},fc={class:`mt-1 text-xs text-(--dashboard-accent)`},pc={class:`mt-4 grid grid-cols-2 gap-2 text-sm md:grid-cols-4`},mc={class:`mt-4`};function hc(e,t,n,i,o,s){return w(),F(`section`,rc,[S(`div`,ic,[p(i.PackageHealthPanel,{health:i.packageHealth},null,8,[`health`]),S(`div`,{class:a([i.surfaceStyles({padding:`md`}),`grid gap-3`])},[p(i.AppPanelHeader,{"icon-name":`tab-packages`,title:`包体探索`,description:`${i.packageInsightCards.length} 个包体样本`},null,8,[`description`]),p(i.PackageExplorerToolbar,{"budget-filter":i.packageBudgetFilter,"onUpdate:budgetFilter":t[0]||=e=>i.packageBudgetFilter=e,query:i.packageQuery,"onUpdate:query":t[1]||=e=>i.packageQuery=e,"sort-mode":i.packageSortMode,"onUpdate:sortMode":t[2]||=e=>i.packageSortMode=e,"type-filter":i.packageTypeFilter,"onUpdate:typeFilter":t[3]||=e=>i.packageTypeFilter=e,"action-status":i.actionStatus,disabled:i.filteredPackageInsightCards.length===0,"filtered-count":i.filteredPackageInsightCards.length,"total-count":i.packageInsightCards.length,"type-options":i.packageTypeOptions,onCopy:i.copyPackageReport,onExportJson:i.exportPackageJson},null,8,[`budget-filter`,`query`,`sort-mode`,`type-filter`,`action-status`,`disabled`,`filtered-count`,`total-count`,`type-options`,`onCopy`,`onExportJson`])],2)]),S(`div`,ac,[i.filteredPackageInsightCards.length===0?(w(),_(i.AppEmptyState,{key:0,class:`xl:col-span-2`},{default:I(()=>[...t[4]||=[P(` 没有匹配当前筛选条件的包。 `,-1)]]),_:1})):N(``,!0),(w(!0),F(k,null,l(i.filteredPackageInsightCards,e=>(w(),F(`article`,{key:e.id,class:a([[i.surfaceStyles({padding:`md`}),e.selected?`border-(--dashboard-accent)`:``],`border transition`])},[S(`div`,oc,[S(`div`,sc,[p(i.AppPanelHeader,{"icon-name":`tab-packages`,title:e.label,description:e.typeLabel},null,8,[`title`,`description`]),S(`p`,cc,c(e.summaryText),1)]),S(`div`,lc,[S(`p`,uc,c(e.totalBytesLabel),1),S(`p`,dc,c(e.compressedBytesLabel),1),S(`p`,fc,c(e.budgetText),1)])]),S(`div`,pc,[(w(!0),F(k,null,l(e.metrics,e=>(w(),_(i.AppMetricTile,r({key:e.label},{ref_for:!0},e),null,16))),128))]),S(`div`,mc,[p(i.AppPackageFileTable,{files:e.topFiles},null,8,[`files`])])],2))),128))])])}var gc=B(nc,[[`render`,hc]]),_c=n({__name:`PrReviewChecklistPanel`,props:{checklist:{},copyStatus:{}},emits:[`copy`,`select`],setup(e,{expose:t,emit:n}){t();let r=n;function i(e){return e===`blocked`?`border-rose-200 bg-rose-100 text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/12 dark:text-rose-300`:e===`review`?`border-amber-200 bg-amber-100 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/12 dark:text-amber-300`:`border-emerald-200 bg-emerald-100 text-emerald-700 dark:border-emerald-500/30 dark:bg-emerald-500/12 dark:text-emerald-300`}function a(e){return e===`critical`?`border-rose-200 bg-rose-50 text-rose-700 dark:border-rose-500/25 dark:bg-rose-500/10 dark:text-rose-300`:e===`warning`?`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/25 dark:bg-amber-500/10 dark:text-amber-300`:e===`success`?`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-300`:`border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text-muted)`}let o={emit:r,getStatusClassName:i,getToneClassName:a,AppMetricTile:G,AppPanelHeader:X,DashboardIcon:R};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),vc={class:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-2 overflow-hidden`},yc={class:`rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-4 shadow-(--dashboard-shadow)`},bc={class:`flex items-center gap-2`},xc={key:0,class:`text-xs font-medium text-(--dashboard-accent)`},Sc={class:`h-3.5 w-3.5`},Cc={class:`mt-3 grid gap-3 lg:grid-cols-[minmax(0,0.82fr)_minmax(0,1fr)]`},wc={class:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},Tc={class:`mt-3 text-lg font-semibold text-(--dashboard-text)`},Ec={class:`mt-1 text-xs leading-5 text-(--dashboard-text-soft)`},Dc={class:`grid grid-cols-2 gap-2 md:grid-cols-4`},Oc={class:`grid min-h-0 gap-2 overflow-y-auto pr-1 xl:grid-cols-3 xl:overflow-hidden xl:pr-0`},kc={class:`text-sm font-semibold text-(--dashboard-text)`},Ac={class:`mt-1 text-xs leading-5 text-(--dashboard-text-soft)`},jc={class:`mt-3 min-h-0 overflow-y-auto pr-1`},Mc={key:0,class:`rounded-md border border-dashed border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 py-4 text-sm text-(--dashboard-text-muted)`},Nc=[`onClick`],Pc={class:`mt-0.5 flex h-4 w-4 items-center justify-center rounded border border-current text-[10px] leading-none`},Fc={class:`min-w-0`},Ic={class:`block text-sm font-medium text-(--dashboard-text)`},Lc={class:`mt-1 line-clamp-2 block text-xs leading-5 text-(--dashboard-text-muted)`};function Rc(e,t,n,i,o,s){return w(),F(`section`,vc,[S(`div`,yc,[p(i.AppPanelHeader,{"icon-name":`metric-bookmark`,title:`PR 风险清单`},{meta:I(()=>[S(`div`,bc,[n.copyStatus?(w(),F(`span`,xc,c(n.copyStatus),1)):N(``,!0),S(`button`,{type:`button`,class:`inline-flex items-center gap-1.5 rounded-full border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 py-1 text-[11px] text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-text)`,onClick:t[0]||=e=>i.emit(`copy`)},[S(`span`,Sc,[p(i.DashboardIcon,{name:`metric-copy`})]),t[1]||=P(` 复制清单 `,-1)])])]),_:1}),S(`div`,Cc,[S(`div`,wc,[S(`span`,{class:a([`inline-flex rounded-full border px-2.5 py-1 text-[11px] font-medium uppercase tracking-[0.16em]`,i.getStatusClassName(n.checklist.status)])},c(n.checklist.label),3),S(`p`,Tc,c(n.checklist.headline),1),S(`p`,Ec,c(n.checklist.description),1)]),S(`div`,Dc,[(w(!0),F(k,null,l(n.checklist.metrics,e=>(w(),_(i.AppMetricTile,r({key:e.label},{ref_for:!0},e),null,16))),128))])])]),S(`div`,Oc,[(w(!0),F(k,null,l(n.checklist.lanes,e=>(w(),F(`section`,{key:e.key,class:`grid min-h-[18rem] grid-rows-[auto_minmax(0,1fr)] rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-4 shadow-(--dashboard-shadow)`},[S(`div`,null,[S(`p`,kc,c(e.title),1),S(`p`,Ac,c(e.description),1)]),S(`div`,jc,[e.items.length===0?(w(),F(`div`,Mc,c(e.emptyText),1)):N(``,!0),(w(!0),F(k,null,l(e.items,e=>(w(),F(`button`,{key:e.id,type:`button`,class:a([`mb-2 grid w-full grid-cols-[1rem_minmax(0,1fr)] gap-2 rounded-md border px-3 py-2.5 text-left transition hover:border-(--dashboard-border-strong)`,i.getToneClassName(e.tone)]),onClick:t=>i.emit(`select`,e)},[S(`span`,Pc,c(e.checked?`✓`:``),1),S(`span`,Fc,[S(`span`,Ic,c(e.title),1),S(`span`,Lc,c(e.detail),1)])],10,Nc))),128))])]))),128))])])}var zc=B(_c,[[`render`,Rc]]),Bc={noSemanticValidation:!0,noSuggestionDiagnostics:!0,noSyntaxValidation:!0},Vc={diagnostics:!1};function Hc(e){e.typescript.javascriptDefaults.setDiagnosticsOptions(Bc),e.typescript.javascriptDefaults.setModeConfiguration(Vc),e.typescript.typescriptDefaults.setDiagnosticsOptions(Bc),e.typescript.typescriptDefaults.setModeConfiguration(Vc),e.editor.defineTheme(`weapp-dashboard-light`,{base:`vs`,inherit:!0,rules:[],colors:{"diffEditor.insertedTextBackground":`#d1fae55f`,"diffEditor.insertedLineBackground":`#ecfdf545`,"diffEditor.removedTextBackground":`#ffe4e65c`,"diffEditor.removedLineBackground":`#fff1f242`,"diffEditor.diagonalFill":`#94a3b855`,"editorGutter.modifiedBackground":`#2dd4bf`,"editorGutter.addedBackground":`#10b981`,"editorGutter.deletedBackground":`#f43f5e`}}),e.editor.defineTheme(`weapp-dashboard-dark`,{base:`vs-dark`,inherit:!0,rules:[],colors:{"diffEditor.insertedTextBackground":`#14532d2c`,"diffEditor.insertedLineBackground":`#052e161c`,"diffEditor.removedTextBackground":`#5f1f2a24`,"diffEditor.removedLineBackground":`#2a111818`,"diffEditor.diagonalFill":`#33415588`,"editorGutter.modifiedBackground":`#2dd4bf`,"editorGutter.addedBackground":`#22c55e`,"editorGutter.deletedBackground":`#fb7185`}})}function Uc(e){return e===`dark`?`weapp-dashboard-dark`:`weapp-dashboard-light`}var Wc={css:ne,html:ie,javascript:oe,json:re,less:ne,scss:ne,typescript:oe},Gc=globalThis;Gc.MonacoEnvironment={getWorker:(e,t)=>new(Wc[t]??te)};function Kc(e){return`${e.packageId}:${e.file}`}function qc(e,t){return t.endsWith(`.wxml`)||t.endsWith(`.vue`)?`html`:t.endsWith(`.wxss`)?`css`:e===`plaintext`&&t.endsWith(`.json`)?`json`:e}function Jc(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}async function Yc(e,t){let n=new URLSearchParams({kind:e,path:t}),r=await fetch(`/__weapp_vite_file_content?${n.toString()}`),i=await r.json();if(!r.ok)throw Error(i.message||`文件读取失败`);return{...i,language:qc(i.language,i.path)}}function Xc(e){let t=new Set;if(!e)return[];e.source&&t.add(Jc(e.source));for(let n of e.modules??[])(n.sourceType===`src`||n.sourceType===`workspace`||n.sourceType===`plugin`)&&t.add(Jc(n.source));return[...t].sort((e,t)=>e.localeCompare(t))}function Zc(e){return e?e.replace(/\r\n?/g,`
15
15
  `).split(`
16
16
  `):[]}function Qc(e){return new TextEncoder().encode(e).byteLength}function $c(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function el(e,t){let n=Zc(e),r=Zc(t),i=$c(r),a=0;for(let e of n){let t=i.get(e)??0;t<=0||(a+=1,t===1?i.delete(e):i.set(e,t-1))}let o=Qc(e),s=Qc(t);return{sourceLines:n.length,artifactLines:r.length,addedLines:Math.max(r.length-a,0),removedLines:Math.max(n.length-a,0),sourceBytes:o,artifactBytes:s,byteDelta:s-o,unchangedLineRatio:n.length>0?a/n.length:1}}function tl(e){return e===0?`无变化`:`${e>0?`+`:`-`}${z(Math.abs(e))}`}function nl(e){return`${Math.round(e*100)}%`}function rl(e){let t=e.unchangedLineRatio>=.7?`success`:e.unchangedLineRatio>=.35?`info`:`warning`,n=e.byteDelta>10240?`warning`:e.byteDelta<-1024?`success`:`info`,r=e.addedLines>e.removedLines*2&&e.addedLines>20?`warning`:e.removedLines>e.addedLines*2&&e.removedLines>20?`success`:`info`;return[{id:`retention`,label:`源码保留`,value:nl(e.unchangedLineRatio),detail:t===`warning`?`源码行在产物中保留较少,建议检查编译注入、运行时包装或转译膨胀。`:t===`success`?`源码结构在产物中较容易追踪,适合继续逐段定位差异。`:`产物保留了部分源码结构,可结合 diff 继续确认主要变化段。`,tone:t},{id:`size`,label:`字节影响`,value:tl(e.byteDelta),detail:n===`warning`?`产物明显大于源码,优先查看新增运行时代码、公共 helper 和重复片段。`:n===`success`?`产物比源码更紧凑,当前转换结果对体积较友好。`:`字节变化较小,体积影响暂时可控。`,tone:n},{id:`churn`,label:`行变动`,value:`${e.addedLines} / ${e.removedLines}`,detail:r===`warning`?`新增行明显多于删除行,建议优先检查模板展开、样式注入或 helper 合并策略。`:r===`success`?`删除行明显多于新增行,说明转换后结构有所收敛。`:`新增和删除相对均衡,适合直接用 diff 定位关键段。`,tone:r}]}function il(e){let t=e.insights??rl(e.stats);return[`# dashboard 源码对比摘要`,``,`源码:${e.sourcePath}`,`产物:${e.artifactPath}`,``,`- 源码行数:${e.stats.sourceLines}`,`- 产物行数:${e.stats.artifactLines}`,`- 估算新增行:${e.stats.addedLines}`,`- 估算删除行:${e.stats.removedLines}`,`- 字节变化:${tl(e.stats.byteDelta)}`,`- 未变更行占比:${Math.round(e.stats.unchangedLineRatio*100)}%`,``,`## 洞察`,...t.map(e=>`- ${e.label}(${e.value}):${e.detail}`),``].join(`
17
- `)}function al(e){let t=o(),n=o(``),r=o(``),i=m(null),a=m(null),s=o(``),c=o(!1),l=m(null),d,p,h,g=0,_=C(()=>e.files.value.map(e=>({key:Kc(e),label:`${e.packageLabel} · ${e.file}`,file:e}))),v=C(()=>_.value.find(e=>e.key===n.value)?.file??e.files.value[0]??null),y=C(()=>Xc(v.value)),b=C(()=>c.value?`加载中`:s.value?s.value:i.value&&a.value?`${i.value.path} ↔ ${a.value.path}`:`等待文件`),x=C(()=>i.value&&a.value?el(i.value.content,a.value.content):null);function S(){return e.activeFileKey.value&&_.value.some(t=>t.key===e.activeFileKey.value)?e.activeFileKey.value:_.value[0]?.key??``}function w(){d?.setModel(null),p?.dispose(),h?.dispose(),p=void 0,h=void 0}function E(){let e=l.value;!e||!d||!i.value||!a.value||(w(),p=e.editor.createModel(i.value.content,i.value.language,e.Uri.parse(`weapp-source://model/${encodeURIComponent(i.value.path)}`)),h=e.editor.createModel(a.value.content,a.value.language,e.Uri.parse(`weapp-artifact://model/${encodeURIComponent(a.value.path)}`)),d.setModel({original:p,modified:h}))}async function D(){if(l.value||!t.value)return;let n=await ae(()=>import(`./monaco.js`).then(e=>e.o),__vite__mapDeps([0]),import.meta.url);l.value=n,Hc(n),n.editor.setTheme(Uc(e.theme.value)),d=n.editor.createDiffEditor(t.value,{automaticLayout:!0,minimap:{enabled:!1},originalEditable:!1,readOnly:!0,renderSideBySide:!0,scrollBeyondLastLine:!1})}async function O(){let t=++g,n=r.value,o=v.value;if(!n||!o){i.value=null,a.value=null,s.value=y.value.length===0?`无源码候选`:``,w();return}c.value=!0,s.value=``,e.onSelectFile(o);try{let[e,r]=await Promise.all([Yc(`source`,n),Yc(`artifact`,o.file)]);if(t!==g)return;i.value=e,a.value=r,await u(),await D(),E()}catch(e){if(t!==g)return;i.value=null,a.value=null,w(),s.value=e instanceof Error?e.message:`文件读取失败`}finally{t===g&&(c.value=!1)}}return f(()=>[e.activeFileKey.value,_.value.map(e=>e.key).join(`\0`)],()=>{n.value=S()},{immediate:!0}),f(y,e=>{r.value=e[0]??``},{immediate:!0}),f([n,r],()=>{O()},{immediate:!0}),f(e.theme,e=>{l.value?.editor.setTheme(Uc(e))}),T(()=>{w(),d?.dispose()}),{artifactContent:a,artifactOptions:_,compareStats:x,editorElement:t,loadComparison:O,loadError:s,loading:c,selectedArtifactKey:n,selectedSourcePath:r,sourceContent:i,sourceOptions:y,statusText:b}}var ol=n({__name:`SourceArtifactComparePanel`,props:{activeFileKey:{},files:{},theme:{}},emits:[`selectFile`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,{activeFileKey:a,files:s,theme:c}=g(r),l=o(``),u=null,{artifactContent:d,artifactOptions:f,compareStats:p,editorElement:m,loadComparison:h,loadError:_,loading:v,selectedArtifactKey:y,selectedSourcePath:b,sourceContent:x,sourceOptions:S,statusText:w}=al({activeFileKey:a,files:s,theme:c,onSelectFile(e){i(`selectFile`,e)}}),E=C(()=>p.value?[{label:`源码行数`,value:String(p.value.sourceLines)},{label:`产物行数`,value:String(p.value.artifactLines)},{label:`新增 / 删除`,value:`${p.value.addedLines} / ${p.value.removedLines}`},{label:`字节变化`,value:tl(p.value.byteDelta)}]:[]),D=C(()=>p.value?`${z(p.value.sourceBytes)} → ${z(p.value.artifactBytes)}`:``),O=C(()=>p.value?rl(p.value):[]);function k(e){return e===`warning`?`border-amber-300/60 bg-amber-50 text-amber-800 dark:border-amber-500/25 dark:bg-amber-500/10 dark:text-amber-200`:e===`success`?`border-emerald-300/60 bg-emerald-50 text-emerald-800 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-200`:`border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text)`}function A(e){l.value=e,u&&clearTimeout(u),u=setTimeout(()=>{l.value=``,u=null},1800)}async function ee(){if(!(!p.value||!x.value||!d.value))try{await U(il({sourcePath:x.value.path,artifactPath:d.value.path,stats:p.value,insights:O.value})),A(`已复制`)}catch{A(`复制失败`)}}T(()=>{u&&clearTimeout(u)});let j={props:r,emit:i,activeFileKey:a,files:s,theme:c,copyStatus:l,get copyStatusTimer(){return u},set copyStatusTimer(e){u=e},artifactContent:d,artifactOptions:f,compareStats:p,editorElement:m,loadComparison:h,loadError:_,loading:v,selectedArtifactKey:y,selectedSourcePath:b,sourceContent:x,sourceOptions:S,statusText:w,compareMetricItems:E,compareSizeText:D,compareInsights:O,getInsightClassName:k,setCopyStatus:A,copyCompareReport:ee,AppEmptyState:W,AppMetricTile:G};return Object.defineProperty(j,"__isScriptSetup",{enumerable:!1,value:!0}),j}}),sl={class:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-3 shadow-(--dashboard-shadow)`},cl={class:`grid gap-3`},ll={class:`flex flex-wrap items-center justify-between gap-3`},ul={class:`mt-1 text-xs text-(--dashboard-text-soft)`},dl={class:`flex items-center gap-2`},fl={key:0,class:`text-xs font-medium text-(--dashboard-accent)`},pl=[`disabled`],ml=[`disabled`],hl={class:`grid gap-2 lg:grid-cols-2`},gl=[`value`],_l=[`value`],vl={key:0,class:`grid gap-2 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center`},yl={class:`grid grid-cols-2 gap-2 xl:grid-cols-4`},bl={class:`text-xs text-(--dashboard-text-soft)`},xl={key:1,class:`grid gap-2 lg:grid-cols-3`},Sl={class:`flex items-start justify-between gap-3`},Cl={class:`text-xs font-semibold uppercase tracking-[0.14em] opacity-80`},wl={class:`shrink-0 text-sm font-semibold`},Tl={class:`mt-2 line-clamp-2 text-xs leading-5 opacity-80`},El={class:`min-h-0 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted)`},Dl={ref:`editorElement`,class:`h-full min-h-96`};function Ol(e,n,i,o,s,u){return w(),F(`section`,sl,[S(`div`,cl,[S(`div`,ll,[S(`div`,null,[n[3]||=S(`h2`,{class:`text-lg font-semibold text-(--dashboard-text)`},` 源码对比 `,-1),S(`p`,ul,c(o.statusText),1)]),S(`div`,dl,[o.copyStatus?(w(),F(`span`,fl,c(o.copyStatus),1)):N(``,!0),S(`button`,{type:`button`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none disabled:opacity-50`,disabled:!o.compareStats,onClick:o.copyCompareReport},` 复制摘要 `,8,pl),S(`button`,{type:`button`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none disabled:opacity-50`,disabled:o.loading||!o.selectedArtifactKey||!o.selectedSourcePath,onClick:n[0]||=(...e)=>o.loadComparison&&o.loadComparison(...e)},` 刷新 `,8,ml)])]),S(`div`,hl,[t(S(`select`,{"onUpdate:modelValue":n[1]||=e=>o.selectedSourcePath=e,class:`h-9 min-w-0 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[n[4]||=S(`option`,{value:``},` 源码文件 `,-1),(w(!0),F(k,null,l(o.sourceOptions,e=>(w(),F(`option`,{key:e,value:e},c(e),9,gl))),128))],512),[[E,o.selectedSourcePath]]),t(S(`select`,{"onUpdate:modelValue":n[2]||=e=>o.selectedArtifactKey=e,class:`h-9 min-w-0 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[(w(!0),F(k,null,l(o.artifactOptions,e=>(w(),F(`option`,{key:e.key,value:e.key},c(e.label),9,_l))),128))],512),[[E,o.selectedArtifactKey]])]),o.compareStats?(w(),F(`div`,vl,[S(`div`,yl,[(w(!0),F(k,null,l(o.compareMetricItems,e=>(w(),_(o.AppMetricTile,r({key:e.label},{ref_for:!0},e),null,16))),128))]),S(`p`,bl,c(o.compareSizeText),1)])):N(``,!0),o.compareInsights.length?(w(),F(`div`,xl,[(w(!0),F(k,null,l(o.compareInsights,e=>(w(),F(`article`,{key:e.id,class:a([`rounded-md border px-3 py-2.5`,o.getInsightClassName(e.tone)])},[S(`div`,Sl,[S(`p`,Cl,c(e.label),1),S(`p`,wl,c(e.value),1)]),S(`p`,Tl,c(e.detail),1)],2))),128))])):N(``,!0)]),S(`div`,El,[t(S(`div`,Dl,null,512),[[b,o.sourceContent&&o.artifactContent]]),!o.sourceContent||!o.artifactContent?(w(),_(o.AppEmptyState,{key:0,class:`m-3 h-[calc(100%-1.5rem)]`},{default:I(()=>[P(c(o.loadError||`暂无可对比文件。`),1)]),_:1})):N(``,!0)])])}var kl=B(ol,[[`render`,Ol]]),Al=`Treemap`,jl=`从包体到文件再到模块,直接定位体积热点。`,Ml=n({__name:`TreemapCard`,props:{bindChartRef:{type:Function},canFocusSelected:{type:Boolean},filterMode:{},filterOptions:{},canUseSelectedPackageFilter:{type:Boolean},isEmpty:{type:Boolean},theme:{}},emits:[`focusSelected`,`resetFocus`,`updateFilterMode`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=C(()=>r.theme===`dark`?[{label:`健康`,color:`#166853`},{label:`关注`,color:`#75601f`},{label:`急需改进`,color:`#81323a`}]:[{label:`健康`,color:`#8fd3ad`},{label:`关注`,color:`#ead486`},{label:`急需改进`,color:`#eaa39b`}]);function o(){return H({kind:`badge`})}function s(e){return e.value!==`selected-package`||r.canUseSelectedPackageFilter}function c(e){r.bindChartRef(e instanceof Element?e:null)}let l={props:r,emit:i,chartTitle:Al,chartDescription:jl,healthLegend:a,getChartBadgeClassName:o,canUseFilter:s,handleChartRef:c,get pillButtonStyles(){return H},get surfaceStyles(){return L},AppEmptyState:W,AppPanelHeader:X};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),Nl={class:`flex items-center gap-2`},Pl=[`disabled`],Fl={class:`mb-2 flex flex-wrap items-center justify-between gap-2 px-2`},Il={class:`flex flex-wrap gap-1.5`},Ll=[`disabled`,`onClick`],Rl={class:`flex flex-wrap items-center gap-2 text-[11px] text-(--dashboard-text-soft)`},zl={class:`relative min-h-0 flex-1 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-2`};function Bl(e,t,n,r,i,o){return w(),F(`div`,{class:a([r.surfaceStyles({padding:`sm`}),`flex h-full min-h-0 flex-col overflow-hidden`])},[p(r.AppPanelHeader,{class:`mb-2 px-2`,"icon-name":`treemap`,title:r.chartTitle,description:r.chartDescription},{meta:I(()=>[S(`div`,Nl,[S(`button`,{class:a([r.getChartBadgeClassName(),n.canFocusSelected?void 0:`cursor-not-allowed opacity-45`]),disabled:!n.canFocusSelected,type:`button`,onClick:t[0]||=e=>r.emit(`focusSelected`)},` 聚焦选中 `,10,Pl),S(`button`,{class:a(r.getChartBadgeClassName()),type:`button`,onClick:t[1]||=e=>r.emit(`resetFocus`)},` 重置 `,2)])]),_:1}),S(`div`,Fl,[S(`div`,Il,[(w(!0),F(k,null,l(n.filterOptions,e=>(w(),F(`button`,{key:e.value,class:a([r.pillButtonStyles({kind:`badge`,active:n.filterMode===e.value}),r.canUseFilter(e)?void 0:`cursor-not-allowed opacity-45`]),disabled:!r.canUseFilter(e),type:`button`,onClick:t=>r.emit(`updateFilterMode`,e.value)},c(e.label),11,Ll))),128))]),S(`div`,Rl,[(w(!0),F(k,null,l(r.healthLegend,e=>(w(),F(`span`,{key:e.label,class:`inline-flex items-center gap-1.5`},[S(`span`,{class:`h-2.5 w-2.5 rounded-full border border-(--dashboard-border)`,style:A({backgroundColor:e.color})},null,4),P(` `+c(e.label),1)]))),128))])]),S(`div`,zl,[S(`div`,{ref:r.handleChartRef,class:`h-full min-h-0 w-full`}),n.isEmpty?(w(),_(r.AppEmptyState,{key:0,class:`absolute inset-3 z-10 grid place-items-center`,compact:``},{default:I(()=>[...t[2]||=[P(` 当前过滤条件下没有可展示节点。 `,-1)]]),_:1})):N(``,!0)])],2)}var Vl=B(Ml,[[`render`,Bl]]),Hl=n({__name:`AnalyzeResultSections`,props:{actionItems:{},activeBudgetWarningId:{},activeLargestFileKey:{},activeTab:{},activeWorkQueueItemId:{},baselineSnapshotId:{},budgetConfig:{},budgetWarnings:{},canUseSelectedPackageFilter:{type:Boolean},comparisonMode:{},copyStatus:{},diagnosticsLayoutItems:{},filteredDuplicateModules:{},filteredLargestFiles:{},historySnapshots:{},incrementAttribution:{},incrementSummary:{},isTreemapEmpty:{type:Boolean},largestFiles:{},metricPackageTypeSummary:{},moduleSourceSummary:{},modulesLayoutItems:{},overviewLayoutItems:{},packageInsights:{},packagesLayoutItems:{},prReviewChecklist:{},queuedActionKeys:{},reviewLayoutItems:{},selectedTreemapFocusNodeId:{},selectedTreemapMeta:{},selectedActionKey:{},selectedFileModules:{},sourceLayoutItems:{},theme:{},topCards:{},totalBytes:{},treemapFilterMode:{},treemapFilterOptions:{},treemapLayoutItems:{},visibleLargestFiles:{},workQueueItems:{},bindChartRef:{type:Function}},emits:[`addActionToQueue`,`clearCompletedWorkQueue`,`copyPr`,`copyReviewChecklist`,`copyWorkQueue`,`focusTreemapSelection`,`removeWorkQueueItem`,`resetTreemapFocus`,`selectAction`,`selectBudgetWarning`,`selectFile`,`selectPackage`,`selectReviewChecklistItem`,`selectWorkQueueItem`,`setBaseline`,`setComparisonMode`,`toggleWorkQueueItem`,`updateTreemapFilterMode`],setup(e,{expose:t,emit:n}){t();let r={emit:n,AnalyzeDetailsPanel:Kn,AnalyzeDiagnosticsSection:Hi,AnalyzeDraggableGrid:bt,AnalyzeOverviewPanel:$a,ModulesPanel:is,PackagesPanel:gc,PrReviewChecklistPanel:zc,SourceArtifactComparePanel:kl,TreemapCard:Vl};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Ul={key:0,class:`min-h-0 overflow-hidden`},Wl={key:1,class:`min-h-0 overflow-hidden`},Gl={key:2,class:`min-h-0 overflow-hidden`},Kl={key:3,class:`min-h-0 overflow-hidden`},ql={key:4,class:`min-h-0 overflow-hidden`},Jl={key:5,class:`min-h-0 overflow-hidden`},Yl={key:6,class:`min-h-0 overflow-hidden`},Xl={key:7,class:`min-h-0 overflow-hidden`};function Zl(e,t,n,r,i,a){return n.activeTab===`overview`?(w(),F(`section`,Ul,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.overviewLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:overview`},{metrics:I(()=>[p(r.AnalyzeOverviewPanel,{"action-items":n.actionItems,cards:n.topCards,"largest-files":n.largestFiles,"package-insights":n.packageInsights,"package-type-summary":n.metricPackageTypeSummary,onCopyReport:t[0]||=e=>r.emit(`copyPr`),onSelectAction:t[1]||=e=>r.emit(`selectAction`,e),onSelectFile:t[2]||=e=>r.emit(`selectFile`,e),onSelectPackage:t[3]||=e=>r.emit(`selectPackage`,e)},null,8,[`action-items`,`cards`,`largest-files`,`package-insights`,`package-type-summary`])]),_:1},8,[`items`])])):n.activeTab===`diagnostics`?(w(),F(`section`,Wl,[p(r.AnalyzeDiagnosticsSection,{"action-items":n.actionItems,"active-work-queue-item-id":n.activeWorkQueueItemId,"baseline-snapshot-id":n.baselineSnapshotId,"comparison-mode":n.comparisonMode,"history-snapshots":n.historySnapshots,"layout-items":n.diagnosticsLayoutItems,"queued-action-keys":n.queuedActionKeys,"selected-action-key":n.selectedActionKey,"work-queue-items":n.workQueueItems,onAddActionToQueue:t[4]||=e=>r.emit(`addActionToQueue`,e),onClearCompletedWorkQueue:t[5]||=e=>r.emit(`clearCompletedWorkQueue`),onCopyPr:t[6]||=e=>r.emit(`copyPr`),onCopyWorkQueue:t[7]||=e=>r.emit(`copyWorkQueue`),onRemoveWorkQueueItem:t[8]||=e=>r.emit(`removeWorkQueueItem`,e),onSelectAction:t[9]||=e=>r.emit(`selectAction`,e),onSelectWorkQueueItem:t[10]||=e=>r.emit(`selectWorkQueueItem`,e),onSetBaseline:t[11]||=e=>r.emit(`setBaseline`,e),onSetComparisonMode:t[12]||=e=>r.emit(`setComparisonMode`,e),onToggleWorkQueueItem:t[13]||=e=>r.emit(`toggleWorkQueueItem`,e)},null,8,[`action-items`,`active-work-queue-item-id`,`baseline-snapshot-id`,`comparison-mode`,`history-snapshots`,`layout-items`,`queued-action-keys`,`selected-action-key`,`work-queue-items`])])):n.activeTab===`review`?(w(),F(`section`,Gl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.reviewLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:review`},{review:I(()=>[p(r.PrReviewChecklistPanel,{checklist:n.prReviewChecklist,"copy-status":n.copyStatus,onCopy:t[14]||=e=>r.emit(`copyReviewChecklist`),onSelect:t[15]||=e=>r.emit(`selectReviewChecklistItem`,e)},null,8,[`checklist`,`copy-status`])]),_:1},8,[`items`])])):n.activeTab===`treemap`?(w(),F(`section`,Kl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.treemapLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:treemap`},{treemap:I(()=>[p(r.TreemapCard,{"bind-chart-ref":n.bindChartRef,"can-focus-selected":!!n.selectedTreemapFocusNodeId,"filter-mode":n.treemapFilterMode,"filter-options":n.treemapFilterOptions,"can-use-selected-package-filter":n.canUseSelectedPackageFilter,"is-empty":n.isTreemapEmpty,theme:n.theme,onFocusSelected:t[16]||=e=>r.emit(`focusTreemapSelection`),onResetFocus:t[17]||=e=>r.emit(`resetTreemapFocus`),onUpdateFilterMode:t[18]||=e=>r.emit(`updateTreemapFilterMode`,e)},null,8,[`bind-chart-ref`,`can-focus-selected`,`filter-mode`,`filter-options`,`can-use-selected-package-filter`,`is-empty`,`theme`])]),_:1},8,[`items`])])):n.activeTab===`files`?(w(),F(`section`,ql,[p(r.AnalyzeDetailsPanel,{"largest-files":n.filteredLargestFiles,"selected-file-modules":n.selectedFileModules,"budget-warnings":n.budgetWarnings,"budget-config":n.budgetConfig,"package-insights":n.packageInsights,"total-bytes":n.totalBytes,"active-budget-warning-id":n.activeBudgetWarningId,"active-largest-file-key":n.activeLargestFileKey,"selected-treemap-meta":n.selectedTreemapMeta,onSelectBudgetWarning:t[19]||=e=>r.emit(`selectBudgetWarning`,e),onSelectFile:t[20]||=e=>r.emit(`selectFile`,e)},null,8,[`largest-files`,`selected-file-modules`,`budget-warnings`,`budget-config`,`package-insights`,`total-bytes`,`active-budget-warning-id`,`active-largest-file-key`,`selected-treemap-meta`])])):n.activeTab===`source`?(w(),F(`section`,Jl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.sourceLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:source`},{source:I(()=>[p(r.SourceArtifactComparePanel,{"active-file-key":n.activeLargestFileKey,files:n.filteredLargestFiles,theme:n.theme,onSelectFile:t[21]||=e=>r.emit(`selectFile`,e)},null,8,[`active-file-key`,`files`,`theme`])]),_:1},8,[`items`])])):n.activeTab===`packages`?(w(),F(`section`,Yl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.packagesLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:packages`},{packages:I(()=>[p(r.PackagesPanel,{"package-insights":n.packageInsights,"budget-warnings":n.budgetWarnings,"selected-treemap-meta":n.selectedTreemapMeta},null,8,[`package-insights`,`budget-warnings`,`selected-treemap-meta`])]),_:1},8,[`items`])])):(w(),F(`section`,Xl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.modulesLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:modules`},{modules:I(()=>[p(r.ModulesPanel,{"duplicate-modules":n.filteredDuplicateModules,"module-source-summary":n.moduleSourceSummary,"increment-attribution":n.incrementAttribution,"increment-summary":n.incrementSummary,"visible-largest-files":n.visibleLargestFiles},null,8,[`duplicate-modules`,`module-source-summary`,`increment-attribution`,`increment-summary`,`visible-largest-files`])]),_:1},8,[`items`])]))}var Ql=B(Hl,[[`render`,Zl]]),$l=n({__name:`AnalyzeExportMenu`,props:{open:{type:Boolean}},emits:[`update:open`,`copySummary`,`copyMarkdown`,`copyPr`,`exportJson`,`exportMarkdown`,`exportCsv`],setup(e,{expose:t,emit:n}){t();let r=n,i={emit:r,exportActions:[{key:`summary`,label:`复制摘要`,description:`关键指标和首要风险,适合 IM 快速同步。`,iconName:`metric-copy`,action:()=>r(`copySummary`)},{key:`markdown-copy`,label:`复制完整报告`,description:`包含预算、包体、Top 文件和重复模块表格。`,iconName:`file-samples`,action:()=>r(`copyMarkdown`)},{key:`pr`,label:`复制 PR 摘要`,description:`面向评审评论的增量、预算和重复模块摘要。`,iconName:`metric-copy`,action:()=>r(`copyPr`)},{key:`json`,label:`导出 JSON`,description:`保留原始 analyze payload,适合离线排查。`,iconName:`metric-size-outline`,action:()=>r(`exportJson`)},{key:`markdown`,label:`导出 MD`,description:`生成完整 Markdown 报告文件。`,iconName:`file-samples`,action:()=>r(`exportMarkdown`)},{key:`csv`,label:`导出 CSV`,description:`导出包、文件、重复模块和增量归因明细。`,iconName:`file-samples`,action:()=>r(`exportCsv`)}],get pillButtonStyles(){return H},DashboardIcon:R};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),eu={class:`h-4.5 w-4.5`},tu={key:0,class:`absolute right-0 top-[calc(100%+0.45rem)] z-50 grid w-76 gap-1.5 rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-1.5 shadow-(--dashboard-shadow)`},nu=[`onClick`],ru={class:`mt-0.5 h-4.5 w-4.5 text-(--dashboard-text-soft)`},iu={class:`min-w-0`},au={class:`block font-medium`},ou={class:`mt-0.5 block text-xs leading-5 text-(--dashboard-text-soft)`};function su(e,t,n,r,i,o){return w(),F(`div`,{class:`relative shrink-0`,onClick:t[1]||=x(()=>{},[`stop`])},[S(`button`,{class:a(r.pillButtonStyles({kind:`nav`,active:n.open})),type:`button`,onClick:t[0]||=e=>r.emit(`update:open`,!n.open)},[S(`span`,eu,[p(r.DashboardIcon,{name:`nav-menu`})]),t[2]||=P(` 更多 `,-1)],2),n.open?(w(),F(`div`,tu,[(w(),F(k,null,l(r.exportActions,e=>S(`button`,{key:e.key,class:`grid grid-cols-[1.125rem_minmax(0,1fr)] gap-x-2 rounded-md px-3 py-2 text-left text-sm text-(--dashboard-text) transition hover:bg-(--dashboard-panel-muted)`,type:`button`,onClick:e.action},[S(`span`,ru,[p(r.DashboardIcon,{name:e.iconName},null,8,[`name`])]),S(`span`,iu,[S(`span`,au,c(e.label),1),S(`span`,ou,c(e.description),1)])],8,nu)),64))])):N(``,!0)])}var cu=B($l,[[`render`,su]]),lu=n({__name:`AnalyzeToolbar`,props:{canSearch:{type:Boolean},canResetView:{type:Boolean},exportStatus:{},moreMenuOpen:{type:Boolean},openWorkQueueCount:{},statusPills:{}},emits:[`copyMarkdown`,`copyPr`,`copySummary`,`copyViewLink`,`exportCsv`,`exportJson`,`exportMarkdown`,`openSearch`,`resetView`,`update:moreMenuOpen`],setup(e,{expose:t,emit:n}){t();let r={emit:n,get pillButtonStyles(){return H},AnalyzeExportMenu:cu,AppInfoPill:se,DashboardIcon:R};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),uu={class:`relative z-20 flex min-w-0 items-center gap-2 overflow-visible rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) px-3 py-2 shadow-(--dashboard-shadow)`},du={class:`flex min-w-0 flex-1 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`},fu={class:`h-4.5 w-4.5`},pu={class:`h-4.5 w-4.5`},mu=[`disabled`],hu={class:`h-4.5 w-4.5`};function gu(e,t,n,i,o,s){return w(),F(`section`,uu,[S(`div`,du,[n.canSearch?(w(),F(`button`,{key:0,class:a([`shrink-0`,i.pillButtonStyles({kind:`nav`,active:!1})]),onClick:t[0]||=e=>i.emit(`openSearch`)},[S(`span`,fu,[p(i.DashboardIcon,{name:`metric-search`})]),t[10]||=P(` 搜索 `,-1)],2)):N(``,!0),n.canSearch?(w(),F(`button`,{key:1,class:a([`shrink-0`,i.pillButtonStyles({kind:`nav`,active:!1})]),onClick:t[1]||=e=>i.emit(`copyViewLink`)},[S(`span`,pu,[p(i.DashboardIcon,{name:`metric-link`})]),t[11]||=P(` 复制视图 `,-1)],2)):N(``,!0),n.canSearch?(w(),F(`button`,{key:2,class:a([`shrink-0 disabled:cursor-not-allowed disabled:opacity-55`,i.pillButtonStyles({kind:`nav`,active:!1})]),disabled:!n.canResetView,onClick:t[2]||=e=>i.emit(`resetView`)},[S(`span`,hu,[p(i.DashboardIcon,{name:`metric-reset`})]),t[12]||=P(` 重置视图 `,-1)],10,mu)):N(``,!0),n.exportStatus?(w(),_(i.AppInfoPill,{key:3,class:`shrink-0`,label:n.exportStatus,uppercase:``},null,8,[`label`])):N(``,!0),n.openWorkQueueCount>0?(w(),_(i.AppInfoPill,{key:4,class:`shrink-0`,"icon-name":`metric-bookmark`,label:`${n.openWorkQueueCount} 个待处理`,uppercase:``},null,8,[`label`])):N(``,!0),(w(!0),F(k,null,l(n.statusPills,e=>(w(),_(i.AppInfoPill,r({key:e.label,class:`shrink-0`},{ref_for:!0},e,{uppercase:``}),null,16))),128))]),n.canSearch?(w(),_(i.AnalyzeExportMenu,{key:0,open:n.moreMenuOpen,"onUpdate:open":t[3]||=e=>i.emit(`update:moreMenuOpen`,e),onCopyMarkdown:t[4]||=e=>i.emit(`copyMarkdown`),onCopyPr:t[5]||=e=>i.emit(`copyPr`),onCopySummary:t[6]||=e=>i.emit(`copySummary`),onExportCsv:t[7]||=e=>i.emit(`exportCsv`),onExportJson:t[8]||=e=>i.emit(`exportJson`),onExportMarkdown:t[9]||=e=>i.emit(`exportMarkdown`)},null,8,[`open`])):N(``,!0)])}var _u=B(lu,[[`render`,gu]]);function vu(e){return e===`blocked`?`Blocked`:e===`review`?`Review`:`Ready`}function yu(e){return e===`blocked`?`PR 合并前仍有阻断项`:e===`review`?`建议完成复核后再合并`:`当前清单未发现发布风险`}function bu(e){return{id:`action:${e.key}`,title:e.title,detail:e.value?`${e.meta} · ${e.value}`:e.meta,checked:e.tone===`success`,tone:e.tone,tab:e.tab,actionKey:e.key}}function xu(e){return{id:`queue:${e.id}`,title:e.title,detail:e.value?`${e.meta} · ${e.value}`:e.meta,checked:!!e.completedAt,tone:e.tone,tab:e.tab,workQueueItemId:e.id}}function Su(e){return e.items.length===0?[`- [x] ${e.emptyText}`]:e.items.map(e=>`- [${e.checked?`x`:` `}] ${e.title}:${e.detail}`)}function Cu(e){return[`## PR 风险清单`,``,`状态:${e.label}`,e.headline,``,...e.metrics.map(e=>`- ${e.label}:${e.value}`),``,...e.lanes.flatMap(e=>[`### ${e.title}`,``,...Su(e),``])].join(`
17
+ `)}function al(e){let t=o(),n=o(``),r=o(``),i=m(null),a=m(null),s=o(``),c=o(!1),l=m(null),d,p,h,g=0,_=C(()=>e.files.value.map(e=>({key:Kc(e),label:`${e.packageLabel} · ${e.file}`,file:e}))),v=C(()=>_.value.find(e=>e.key===n.value)?.file??e.files.value[0]??null),y=C(()=>Xc(v.value)),b=C(()=>c.value?`加载中`:s.value?s.value:i.value&&a.value?`${i.value.path} ↔ ${a.value.path}`:`等待文件`),x=C(()=>i.value&&a.value?el(i.value.content,a.value.content):null);function S(){return e.activeFileKey.value&&_.value.some(t=>t.key===e.activeFileKey.value)?e.activeFileKey.value:_.value[0]?.key??``}function w(){d?.setModel(null),p?.dispose(),h?.dispose(),p=void 0,h=void 0}function E(){let e=l.value;!e||!d||!i.value||!a.value||(w(),p=e.editor.createModel(i.value.content,i.value.language,e.Uri.parse(`weapp-source://model/${encodeURIComponent(i.value.path)}`)),h=e.editor.createModel(a.value.content,a.value.language,e.Uri.parse(`weapp-artifact://model/${encodeURIComponent(a.value.path)}`)),d.setModel({original:p,modified:h}))}async function D(){if(l.value||!t.value)return;let n=await ae(()=>import(`./monaco.js`).then(e=>e.o),__vite__mapDeps([0]),import.meta.url);l.value=n,Hc(n),n.editor.setTheme(Uc(e.theme.value)),d=n.editor.createDiffEditor(t.value,{automaticLayout:!0,minimap:{enabled:!1},originalEditable:!1,readOnly:!0,renderSideBySide:!0,scrollBeyondLastLine:!1})}async function O(){let t=++g,n=r.value,o=v.value;if(!n||!o){i.value=null,a.value=null,s.value=y.value.length===0?`无源码候选`:``,w();return}c.value=!0,s.value=``,e.onSelectFile(o);try{let[e,r]=await Promise.all([Yc(`source`,n),Yc(`artifact`,o.file)]);if(t!==g)return;i.value=e,a.value=r,await u(),await D(),E()}catch(e){if(t!==g)return;i.value=null,a.value=null,w(),s.value=e instanceof Error?e.message:`文件读取失败`}finally{t===g&&(c.value=!1)}}return f(()=>[e.activeFileKey.value,_.value.map(e=>e.key).join(`\0`)],()=>{n.value=S()},{immediate:!0}),f(y,e=>{r.value=e[0]??``},{immediate:!0}),f([n,r],()=>{O()},{immediate:!0}),f(e.theme,e=>{l.value?.editor.setTheme(Uc(e))}),T(()=>{w(),d?.dispose()}),{artifactContent:a,artifactOptions:_,compareStats:x,editorElement:t,loadComparison:O,loadError:s,loading:c,selectedArtifactKey:n,selectedSourcePath:r,sourceContent:i,sourceOptions:y,statusText:b}}var ol=n({__name:`SourceArtifactComparePanel`,props:{activeFileKey:{},files:{},theme:{}},emits:[`selectFile`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,{activeFileKey:a,files:s,theme:c}=g(r),l=o(``),u=null,{artifactContent:d,artifactOptions:f,compareStats:p,editorElement:m,loadComparison:h,loadError:_,loading:v,selectedArtifactKey:y,selectedSourcePath:b,sourceContent:x,sourceOptions:S,statusText:w}=al({activeFileKey:a,files:s,theme:c,onSelectFile(e){i(`selectFile`,e)}}),E=C(()=>p.value?[{label:`源码行数`,value:String(p.value.sourceLines)},{label:`产物行数`,value:String(p.value.artifactLines)},{label:`新增 / 删除`,value:`${p.value.addedLines} / ${p.value.removedLines}`},{label:`字节变化`,value:tl(p.value.byteDelta)}]:[]),D=C(()=>p.value?`${z(p.value.sourceBytes)} → ${z(p.value.artifactBytes)}`:``),O=C(()=>p.value?rl(p.value):[]);function k(e){return e===`warning`?`border-amber-300/60 bg-amber-50 text-amber-800 dark:border-amber-500/25 dark:bg-amber-500/10 dark:text-amber-200`:e===`success`?`border-emerald-300/60 bg-emerald-50 text-emerald-800 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-200`:`border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text)`}function A(e){l.value=e,u&&clearTimeout(u),u=setTimeout(()=>{l.value=``,u=null},1800)}async function ee(){if(!(!p.value||!x.value||!d.value))try{await U(il({sourcePath:x.value.path,artifactPath:d.value.path,stats:p.value,insights:O.value})),A(`已复制`)}catch{A(`复制失败`)}}T(()=>{u&&clearTimeout(u)});let j={props:r,emit:i,activeFileKey:a,files:s,theme:c,copyStatus:l,get copyStatusTimer(){return u},set copyStatusTimer(e){u=e},artifactContent:d,artifactOptions:f,compareStats:p,editorElement:m,loadComparison:h,loadError:_,loading:v,selectedArtifactKey:y,selectedSourcePath:b,sourceContent:x,sourceOptions:S,statusText:w,compareMetricItems:E,compareSizeText:D,compareInsights:O,getInsightClassName:k,setCopyStatus:A,copyCompareReport:ee,AppEmptyState:W,AppMetricTile:G};return Object.defineProperty(j,"__isScriptSetup",{enumerable:!1,value:!0}),j}}),sl={class:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-3 shadow-(--dashboard-shadow)`},cl={class:`grid gap-3`},ll={class:`flex flex-wrap items-center justify-between gap-3`},ul={class:`mt-1 text-xs text-(--dashboard-text-soft)`},dl={class:`flex items-center gap-2`},fl={key:0,class:`text-xs font-medium text-(--dashboard-accent)`},pl=[`disabled`],ml=[`disabled`],hl={class:`grid gap-2 lg:grid-cols-2`},gl=[`value`],_l=[`value`],vl={key:0,class:`grid gap-2 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center`},yl={class:`grid grid-cols-2 gap-2 xl:grid-cols-4`},bl={class:`text-xs text-(--dashboard-text-soft)`},xl={key:1,class:`grid gap-2 lg:grid-cols-3`},Sl={class:`flex items-start justify-between gap-3`},Cl={class:`text-xs font-semibold uppercase tracking-[0.14em] opacity-80`},wl={class:`shrink-0 text-sm font-semibold`},Tl={class:`mt-2 line-clamp-2 text-xs leading-5 opacity-80`},El={class:`min-h-0 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted)`},Dl={ref:`editorElement`,class:`h-full min-h-96`};function Ol(e,n,i,o,s,u){return w(),F(`section`,sl,[S(`div`,cl,[S(`div`,ll,[S(`div`,null,[n[3]||=S(`h2`,{class:`text-lg font-semibold text-(--dashboard-text)`},` 源码对比 `,-1),S(`p`,ul,c(o.statusText),1)]),S(`div`,dl,[o.copyStatus?(w(),F(`span`,fl,c(o.copyStatus),1)):N(``,!0),S(`button`,{type:`button`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none disabled:opacity-50`,disabled:!o.compareStats,onClick:o.copyCompareReport},` 复制摘要 `,8,pl),S(`button`,{type:`button`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-sm text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none disabled:opacity-50`,disabled:o.loading||!o.selectedArtifactKey||!o.selectedSourcePath,onClick:n[0]||=(...e)=>o.loadComparison&&o.loadComparison(...e)},` 刷新 `,8,ml)])]),S(`div`,hl,[t(S(`select`,{"onUpdate:modelValue":n[1]||=e=>o.selectedSourcePath=e,class:`h-9 min-w-0 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[n[4]||=S(`option`,{value:``},` 源码文件 `,-1),(w(!0),F(k,null,l(o.sourceOptions,e=>(w(),F(`option`,{key:e,value:e},c(e),9,gl))),128))],512),[[E,o.selectedSourcePath]]),t(S(`select`,{"onUpdate:modelValue":n[2]||=e=>o.selectedArtifactKey=e,class:`h-9 min-w-0 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 text-sm text-(--dashboard-text) outline-none transition focus:border-(--dashboard-accent)`},[(w(!0),F(k,null,l(o.artifactOptions,e=>(w(),F(`option`,{key:e.key,value:e.key},c(e.label),9,_l))),128))],512),[[E,o.selectedArtifactKey]])]),o.compareStats?(w(),F(`div`,vl,[S(`div`,yl,[(w(!0),F(k,null,l(o.compareMetricItems,e=>(w(),_(o.AppMetricTile,r({key:e.label},{ref_for:!0},e),null,16))),128))]),S(`p`,bl,c(o.compareSizeText),1)])):N(``,!0),o.compareInsights.length?(w(),F(`div`,xl,[(w(!0),F(k,null,l(o.compareInsights,e=>(w(),F(`article`,{key:e.id,class:a([`rounded-md border px-3 py-2.5`,o.getInsightClassName(e.tone)])},[S(`div`,Sl,[S(`p`,Cl,c(e.label),1),S(`p`,wl,c(e.value),1)]),S(`p`,Tl,c(e.detail),1)],2))),128))])):N(``,!0)]),S(`div`,El,[t(S(`div`,Dl,null,512),[[b,o.sourceContent&&o.artifactContent]]),!o.sourceContent||!o.artifactContent?(w(),_(o.AppEmptyState,{key:0,class:`m-3 h-[calc(100%-1.5rem)]`},{default:I(()=>[P(c(o.loadError||`暂无可对比文件。`),1)]),_:1})):N(``,!0)])])}var kl=B(ol,[[`render`,Ol]]),Al=`Treemap`,jl=`从包体到文件再到模块,直接定位体积热点。`,Ml=n({__name:`TreemapCard`,props:{bindChartRef:{type:Function},canFocusSelected:{type:Boolean},filterMode:{},filterOptions:{},canUseSelectedPackageFilter:{type:Boolean},isEmpty:{type:Boolean},theme:{}},emits:[`focusSelected`,`resetFocus`,`updateFilterMode`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=C(()=>r.theme===`dark`?[{label:`健康`,color:`#166853`},{label:`关注`,color:`#75601f`},{label:`急需改进`,color:`#81323a`}]:[{label:`健康`,color:`#8fd3ad`},{label:`关注`,color:`#ead486`},{label:`急需改进`,color:`#eaa39b`}]);function o(){return H({kind:`badge`})}function s(e){return e.value!==`selected-package`||r.canUseSelectedPackageFilter}function c(e){r.bindChartRef(e instanceof Element?e:null)}let l={props:r,emit:i,chartTitle:Al,chartDescription:jl,healthLegend:a,getChartBadgeClassName:o,canUseFilter:s,handleChartRef:c,get pillButtonStyles(){return H},get surfaceStyles(){return L},AppEmptyState:W,AppPanelHeader:X};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),Nl={class:`flex items-center gap-2`},Pl=[`disabled`],Fl={class:`mb-2 flex flex-wrap items-center justify-between gap-2 px-2`},Il={class:`flex flex-wrap gap-1.5`},Ll=[`disabled`,`onClick`],Rl={class:`flex flex-wrap items-center gap-2 text-[11px] text-(--dashboard-text-soft)`},zl={class:`relative min-h-0 flex-1 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-2`};function Bl(e,t,n,r,i,o){return w(),F(`div`,{class:a([r.surfaceStyles({padding:`sm`}),`flex h-full min-h-0 flex-col overflow-hidden`])},[p(r.AppPanelHeader,{class:`mb-2 px-2`,"icon-name":`treemap`,title:r.chartTitle,description:r.chartDescription},{meta:I(()=>[S(`div`,Nl,[S(`button`,{class:a([r.getChartBadgeClassName(),n.canFocusSelected?void 0:`cursor-not-allowed opacity-45`]),disabled:!n.canFocusSelected,type:`button`,onClick:t[0]||=e=>r.emit(`focusSelected`)},` 聚焦选中 `,10,Pl),S(`button`,{class:a(r.getChartBadgeClassName()),type:`button`,onClick:t[1]||=e=>r.emit(`resetFocus`)},` 重置 `,2)])]),_:1}),S(`div`,Fl,[S(`div`,Il,[(w(!0),F(k,null,l(n.filterOptions,e=>(w(),F(`button`,{key:e.value,class:a([r.pillButtonStyles({kind:`badge`,active:n.filterMode===e.value}),r.canUseFilter(e)?void 0:`cursor-not-allowed opacity-45`]),disabled:!r.canUseFilter(e),type:`button`,onClick:t=>r.emit(`updateFilterMode`,e.value)},c(e.label),11,Ll))),128))]),S(`div`,Rl,[(w(!0),F(k,null,l(r.healthLegend,e=>(w(),F(`span`,{key:e.label,class:`inline-flex items-center gap-1.5`},[S(`span`,{class:`h-2.5 w-2.5 rounded-full border border-(--dashboard-border)`,style:A({backgroundColor:e.color})},null,4),P(` `+c(e.label),1)]))),128))])]),S(`div`,zl,[S(`div`,{ref:r.handleChartRef,class:`h-full min-h-0 w-full`},null,512),n.isEmpty?(w(),_(r.AppEmptyState,{key:0,class:`absolute inset-3 z-10 grid place-items-center`,compact:``},{default:I(()=>[...t[2]||=[P(` 当前过滤条件下没有可展示节点。 `,-1)]]),_:1})):N(``,!0)])],2)}var Vl=B(Ml,[[`render`,Bl]]),Hl=n({__name:`AnalyzeResultSections`,props:{actionItems:{},activeBudgetWarningId:{},activeLargestFileKey:{},activeTab:{},activeWorkQueueItemId:{},baselineSnapshotId:{},budgetConfig:{},budgetWarnings:{},canUseSelectedPackageFilter:{type:Boolean},comparisonMode:{},copyStatus:{},diagnosticsLayoutItems:{},filteredDuplicateModules:{},filteredLargestFiles:{},historySnapshots:{},incrementAttribution:{},incrementSummary:{},isTreemapEmpty:{type:Boolean},largestFiles:{},metricPackageTypeSummary:{},moduleSourceSummary:{},modulesLayoutItems:{},overviewLayoutItems:{},packageInsights:{},packagesLayoutItems:{},prReviewChecklist:{},queuedActionKeys:{},reviewLayoutItems:{},selectedTreemapFocusNodeId:{},selectedTreemapMeta:{},selectedActionKey:{},selectedFileModules:{},sourceLayoutItems:{},theme:{},topCards:{},totalBytes:{},treemapFilterMode:{},treemapFilterOptions:{},treemapLayoutItems:{},visibleLargestFiles:{},workQueueItems:{},bindChartRef:{type:Function}},emits:[`addActionToQueue`,`clearCompletedWorkQueue`,`copyPr`,`copyReviewChecklist`,`copyWorkQueue`,`focusTreemapSelection`,`removeWorkQueueItem`,`resetTreemapFocus`,`selectAction`,`selectBudgetWarning`,`selectFile`,`selectPackage`,`selectReviewChecklistItem`,`selectWorkQueueItem`,`setBaseline`,`setComparisonMode`,`toggleWorkQueueItem`,`updateTreemapFilterMode`],setup(e,{expose:t,emit:n}){t();let r={emit:n,AnalyzeDetailsPanel:Kn,AnalyzeDiagnosticsSection:Hi,AnalyzeDraggableGrid:bt,AnalyzeOverviewPanel:$a,ModulesPanel:is,PackagesPanel:gc,PrReviewChecklistPanel:zc,SourceArtifactComparePanel:kl,TreemapCard:Vl};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Ul={key:0,class:`min-h-0 overflow-hidden`},Wl={key:1,class:`min-h-0 overflow-hidden`},Gl={key:2,class:`min-h-0 overflow-hidden`},Kl={key:3,class:`min-h-0 overflow-hidden`},ql={key:4,class:`min-h-0 overflow-hidden`},Jl={key:5,class:`min-h-0 overflow-hidden`},Yl={key:6,class:`min-h-0 overflow-hidden`},Xl={key:7,class:`min-h-0 overflow-hidden`};function Zl(e,t,n,r,i,a){return n.activeTab===`overview`?(w(),F(`section`,Ul,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.overviewLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:overview`},{metrics:I(()=>[p(r.AnalyzeOverviewPanel,{"action-items":n.actionItems,cards:n.topCards,"largest-files":n.largestFiles,"package-insights":n.packageInsights,"package-type-summary":n.metricPackageTypeSummary,onCopyReport:t[0]||=e=>r.emit(`copyPr`),onSelectAction:t[1]||=e=>r.emit(`selectAction`,e),onSelectFile:t[2]||=e=>r.emit(`selectFile`,e),onSelectPackage:t[3]||=e=>r.emit(`selectPackage`,e)},null,8,[`action-items`,`cards`,`largest-files`,`package-insights`,`package-type-summary`])]),_:1},8,[`items`])])):n.activeTab===`diagnostics`?(w(),F(`section`,Wl,[p(r.AnalyzeDiagnosticsSection,{"action-items":n.actionItems,"active-work-queue-item-id":n.activeWorkQueueItemId,"baseline-snapshot-id":n.baselineSnapshotId,"comparison-mode":n.comparisonMode,"history-snapshots":n.historySnapshots,"layout-items":n.diagnosticsLayoutItems,"queued-action-keys":n.queuedActionKeys,"selected-action-key":n.selectedActionKey,"work-queue-items":n.workQueueItems,onAddActionToQueue:t[4]||=e=>r.emit(`addActionToQueue`,e),onClearCompletedWorkQueue:t[5]||=e=>r.emit(`clearCompletedWorkQueue`),onCopyPr:t[6]||=e=>r.emit(`copyPr`),onCopyWorkQueue:t[7]||=e=>r.emit(`copyWorkQueue`),onRemoveWorkQueueItem:t[8]||=e=>r.emit(`removeWorkQueueItem`,e),onSelectAction:t[9]||=e=>r.emit(`selectAction`,e),onSelectWorkQueueItem:t[10]||=e=>r.emit(`selectWorkQueueItem`,e),onSetBaseline:t[11]||=e=>r.emit(`setBaseline`,e),onSetComparisonMode:t[12]||=e=>r.emit(`setComparisonMode`,e),onToggleWorkQueueItem:t[13]||=e=>r.emit(`toggleWorkQueueItem`,e)},null,8,[`action-items`,`active-work-queue-item-id`,`baseline-snapshot-id`,`comparison-mode`,`history-snapshots`,`layout-items`,`queued-action-keys`,`selected-action-key`,`work-queue-items`])])):n.activeTab===`review`?(w(),F(`section`,Gl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.reviewLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:review`},{review:I(()=>[p(r.PrReviewChecklistPanel,{checklist:n.prReviewChecklist,"copy-status":n.copyStatus,onCopy:t[14]||=e=>r.emit(`copyReviewChecklist`),onSelect:t[15]||=e=>r.emit(`selectReviewChecklistItem`,e)},null,8,[`checklist`,`copy-status`])]),_:1},8,[`items`])])):n.activeTab===`treemap`?(w(),F(`section`,Kl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.treemapLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:treemap`},{treemap:I(()=>[p(r.TreemapCard,{"bind-chart-ref":n.bindChartRef,"can-focus-selected":!!n.selectedTreemapFocusNodeId,"filter-mode":n.treemapFilterMode,"filter-options":n.treemapFilterOptions,"can-use-selected-package-filter":n.canUseSelectedPackageFilter,"is-empty":n.isTreemapEmpty,theme:n.theme,onFocusSelected:t[16]||=e=>r.emit(`focusTreemapSelection`),onResetFocus:t[17]||=e=>r.emit(`resetTreemapFocus`),onUpdateFilterMode:t[18]||=e=>r.emit(`updateTreemapFilterMode`,e)},null,8,[`bind-chart-ref`,`can-focus-selected`,`filter-mode`,`filter-options`,`can-use-selected-package-filter`,`is-empty`,`theme`])]),_:1},8,[`items`])])):n.activeTab===`files`?(w(),F(`section`,ql,[p(r.AnalyzeDetailsPanel,{"largest-files":n.filteredLargestFiles,"selected-file-modules":n.selectedFileModules,"budget-warnings":n.budgetWarnings,"budget-config":n.budgetConfig,"package-insights":n.packageInsights,"total-bytes":n.totalBytes,"active-budget-warning-id":n.activeBudgetWarningId,"active-largest-file-key":n.activeLargestFileKey,"selected-treemap-meta":n.selectedTreemapMeta,onSelectBudgetWarning:t[19]||=e=>r.emit(`selectBudgetWarning`,e),onSelectFile:t[20]||=e=>r.emit(`selectFile`,e)},null,8,[`largest-files`,`selected-file-modules`,`budget-warnings`,`budget-config`,`package-insights`,`total-bytes`,`active-budget-warning-id`,`active-largest-file-key`,`selected-treemap-meta`])])):n.activeTab===`source`?(w(),F(`section`,Jl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.sourceLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:source`},{source:I(()=>[p(r.SourceArtifactComparePanel,{"active-file-key":n.activeLargestFileKey,files:n.filteredLargestFiles,theme:n.theme,onSelectFile:t[21]||=e=>r.emit(`selectFile`,e)},null,8,[`active-file-key`,`files`,`theme`])]),_:1},8,[`items`])])):n.activeTab===`packages`?(w(),F(`section`,Yl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.packagesLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:packages`},{packages:I(()=>[p(r.PackagesPanel,{"package-insights":n.packageInsights,"budget-warnings":n.budgetWarnings,"selected-treemap-meta":n.selectedTreemapMeta},null,8,[`package-insights`,`budget-warnings`,`selected-treemap-meta`])]),_:1},8,[`items`])])):(w(),F(`section`,Xl,[p(r.AnalyzeDraggableGrid,{"grid-class":`grid h-full min-h-0 gap-2 overflow-hidden`,items:n.modulesLayoutItems,"storage-key":`weapp-vite:dashboard:analyze-layout:modules`},{modules:I(()=>[p(r.ModulesPanel,{"duplicate-modules":n.filteredDuplicateModules,"module-source-summary":n.moduleSourceSummary,"increment-attribution":n.incrementAttribution,"increment-summary":n.incrementSummary,"visible-largest-files":n.visibleLargestFiles},null,8,[`duplicate-modules`,`module-source-summary`,`increment-attribution`,`increment-summary`,`visible-largest-files`])]),_:1},8,[`items`])]))}var Ql=B(Hl,[[`render`,Zl]]),$l=n({__name:`AnalyzeExportMenu`,props:{open:{type:Boolean}},emits:[`update:open`,`copySummary`,`copyMarkdown`,`copyPr`,`exportJson`,`exportMarkdown`,`exportCsv`],setup(e,{expose:t,emit:n}){t();let r=n,i={emit:r,exportActions:[{key:`summary`,label:`复制摘要`,description:`关键指标和首要风险,适合 IM 快速同步。`,iconName:`metric-copy`,action:()=>r(`copySummary`)},{key:`markdown-copy`,label:`复制完整报告`,description:`包含预算、包体、Top 文件和重复模块表格。`,iconName:`file-samples`,action:()=>r(`copyMarkdown`)},{key:`pr`,label:`复制 PR 摘要`,description:`面向评审评论的增量、预算和重复模块摘要。`,iconName:`metric-copy`,action:()=>r(`copyPr`)},{key:`json`,label:`导出 JSON`,description:`保留原始 analyze payload,适合离线排查。`,iconName:`metric-size-outline`,action:()=>r(`exportJson`)},{key:`markdown`,label:`导出 MD`,description:`生成完整 Markdown 报告文件。`,iconName:`file-samples`,action:()=>r(`exportMarkdown`)},{key:`csv`,label:`导出 CSV`,description:`导出包、文件、重复模块和增量归因明细。`,iconName:`file-samples`,action:()=>r(`exportCsv`)}],get pillButtonStyles(){return H},DashboardIcon:R};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),eu={class:`h-4.5 w-4.5`},tu={key:0,class:`absolute right-0 top-[calc(100%+0.45rem)] z-50 grid w-76 gap-1.5 rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) p-1.5 shadow-(--dashboard-shadow)`},nu=[`onClick`],ru={class:`mt-0.5 h-4.5 w-4.5 text-(--dashboard-text-soft)`},iu={class:`min-w-0`},au={class:`block font-medium`},ou={class:`mt-0.5 block text-xs leading-5 text-(--dashboard-text-soft)`};function su(e,t,n,r,i,o){return w(),F(`div`,{class:`relative shrink-0`,onClick:t[1]||=x(()=>{},[`stop`])},[S(`button`,{class:a(r.pillButtonStyles({kind:`nav`,active:n.open})),type:`button`,onClick:t[0]||=e=>r.emit(`update:open`,!n.open)},[S(`span`,eu,[p(r.DashboardIcon,{name:`nav-menu`})]),t[2]||=P(` 更多 `,-1)],2),n.open?(w(),F(`div`,tu,[(w(),F(k,null,l(r.exportActions,e=>S(`button`,{key:e.key,class:`grid grid-cols-[1.125rem_minmax(0,1fr)] gap-x-2 rounded-md px-3 py-2 text-left text-sm text-(--dashboard-text) transition hover:bg-(--dashboard-panel-muted)`,type:`button`,onClick:e.action},[S(`span`,ru,[p(r.DashboardIcon,{name:e.iconName},null,8,[`name`])]),S(`span`,iu,[S(`span`,au,c(e.label),1),S(`span`,ou,c(e.description),1)])],8,nu)),64))])):N(``,!0)])}var cu=B($l,[[`render`,su]]),lu=n({__name:`AnalyzeToolbar`,props:{canSearch:{type:Boolean},canResetView:{type:Boolean},exportStatus:{},moreMenuOpen:{type:Boolean},openWorkQueueCount:{},statusPills:{}},emits:[`copyMarkdown`,`copyPr`,`copySummary`,`copyViewLink`,`exportCsv`,`exportJson`,`exportMarkdown`,`openSearch`,`resetView`,`update:moreMenuOpen`],setup(e,{expose:t,emit:n}){t();let r={emit:n,get pillButtonStyles(){return H},AnalyzeExportMenu:cu,AppInfoPill:se,DashboardIcon:R};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),uu={class:`relative z-20 flex min-w-0 items-center gap-2 overflow-visible rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) px-3 py-2 shadow-(--dashboard-shadow)`},du={class:`flex min-w-0 flex-1 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`},fu={class:`h-4.5 w-4.5`},pu={class:`h-4.5 w-4.5`},mu=[`disabled`],hu={class:`h-4.5 w-4.5`};function gu(e,t,n,i,o,s){return w(),F(`section`,uu,[S(`div`,du,[n.canSearch?(w(),F(`button`,{key:0,class:a([`shrink-0`,i.pillButtonStyles({kind:`nav`,active:!1})]),onClick:t[0]||=e=>i.emit(`openSearch`)},[S(`span`,fu,[p(i.DashboardIcon,{name:`metric-search`})]),t[10]||=P(` 搜索 `,-1)],2)):N(``,!0),n.canSearch?(w(),F(`button`,{key:1,class:a([`shrink-0`,i.pillButtonStyles({kind:`nav`,active:!1})]),onClick:t[1]||=e=>i.emit(`copyViewLink`)},[S(`span`,pu,[p(i.DashboardIcon,{name:`metric-link`})]),t[11]||=P(` 复制视图 `,-1)],2)):N(``,!0),n.canSearch?(w(),F(`button`,{key:2,class:a([`shrink-0 disabled:cursor-not-allowed disabled:opacity-55`,i.pillButtonStyles({kind:`nav`,active:!1})]),disabled:!n.canResetView,onClick:t[2]||=e=>i.emit(`resetView`)},[S(`span`,hu,[p(i.DashboardIcon,{name:`metric-reset`})]),t[12]||=P(` 重置视图 `,-1)],10,mu)):N(``,!0),n.exportStatus?(w(),_(i.AppInfoPill,{key:3,class:`shrink-0`,label:n.exportStatus,uppercase:``},null,8,[`label`])):N(``,!0),n.openWorkQueueCount>0?(w(),_(i.AppInfoPill,{key:4,class:`shrink-0`,"icon-name":`metric-bookmark`,label:`${n.openWorkQueueCount} 个待处理`,uppercase:``},null,8,[`label`])):N(``,!0),(w(!0),F(k,null,l(n.statusPills,e=>(w(),_(i.AppInfoPill,r({key:e.label,class:`shrink-0`},{ref_for:!0},e,{uppercase:``}),null,16))),128))]),n.canSearch?(w(),_(i.AnalyzeExportMenu,{key:0,open:n.moreMenuOpen,"onUpdate:open":t[3]||=e=>i.emit(`update:moreMenuOpen`,e),onCopyMarkdown:t[4]||=e=>i.emit(`copyMarkdown`),onCopyPr:t[5]||=e=>i.emit(`copyPr`),onCopySummary:t[6]||=e=>i.emit(`copySummary`),onExportCsv:t[7]||=e=>i.emit(`exportCsv`),onExportJson:t[8]||=e=>i.emit(`exportJson`),onExportMarkdown:t[9]||=e=>i.emit(`exportMarkdown`)},null,8,[`open`])):N(``,!0)])}var _u=B(lu,[[`render`,gu]]);function vu(e){return e===`blocked`?`Blocked`:e===`review`?`Review`:`Ready`}function yu(e){return e===`blocked`?`PR 合并前仍有阻断项`:e===`review`?`建议完成复核后再合并`:`当前清单未发现发布风险`}function bu(e){return{id:`action:${e.key}`,title:e.title,detail:e.value?`${e.meta} · ${e.value}`:e.meta,checked:e.tone===`success`,tone:e.tone,tab:e.tab,actionKey:e.key}}function xu(e){return{id:`queue:${e.id}`,title:e.title,detail:e.value?`${e.meta} · ${e.value}`:e.meta,checked:!!e.completedAt,tone:e.tone,tab:e.tab,workQueueItemId:e.id}}function Su(e){return e.items.length===0?[`- [x] ${e.emptyText}`]:e.items.map(e=>`- [${e.checked?`x`:` `}] ${e.title}:${e.detail}`)}function Cu(e){return[`## PR 风险清单`,``,`状态:${e.label}`,e.headline,``,...e.metrics.map(e=>`- ${e.label}:${e.value}`),``,...e.lanes.flatMap(e=>[`### ${e.title}`,``,...Su(e),``])].join(`
18
18
  `)}function wu(e){let t=e.actionItems.filter(e=>e.tone===`critical`),n=e.actionItems.filter(e=>e.tone===`warning`),r=e.workQueueItems.filter(e=>!e.completedAt),i=e.workQueueItems.filter(e=>e.completedAt),a=new Set(e.workQueueItems.map(e=>e.targetKey)),o=e.actionItems.filter(e=>e.tone!==`critical`&&e.tone!==`success`&&!a.has(e.key)).slice(0,4),s=t.length>0?`blocked`:n.length>0||r.length>0?`review`:`ready`,c=[{key:`blockers`,title:`合并前阻断`,description:`必须先处理的预算、增长或产物异常。`,items:t.slice(0,5).map(bu),emptyText:`没有阻断项。`},{key:`verification`,title:`评审复核`,description:`需要 reviewer 主动确认的高风险变化。`,items:n.slice(0,6).map(bu),emptyText:`没有需要额外复核的风险。`},{key:`followups`,title:`后续跟进`,description:`来自处理清单和剩余建议动作的后续事项。`,items:[...r.slice(0,4).map(xu),...o.map(bu)].slice(0,6),emptyText:i.length>0?`处理清单已完成。`:`没有待跟进事项。`}],l={status:s,label:vu(s),headline:yu(s),description:`${e.actionItems.length} 个分析动作 · ${r.length} 个待处理清单`,metrics:[{label:`阻断项`,value:t.length},{label:`复核项`,value:n.length},{label:`待处理`,value:r.length},{label:`已完成`,value:i.length}],lanes:c};return{...l,report:Cu(l)}}var Z=`\0`,Tu=[{itemStyle:{borderWidth:3,gapWidth:4},upperLabel:{show:!0,height:32,color:`#17231d`,fontWeight:`700`,lineHeight:16,overflow:`truncate`,textBorderWidth:0,textShadowBlur:1,textShadowColor:`rgba(255, 255, 255, 0.32)`}},{itemStyle:{borderWidth:2,gapWidth:2}},{itemStyle:{borderWidth:1,gapWidth:1}}];function Eu(e){return`package${Z}${e}`}function Du(e,t){return`file${Z}${e}${Z}${t}`}function Ou(e,t,n){return`module${Z}${e}${Z}${t}${Z}${n}`}function ku(e,t){return`asset${Z}${e}${Z}${t}`}function Au(e){if(!e)return``;let t=[];return e.kind===`package`?(t.push(`<strong>${e.packageLabel}</strong>`),t.push(`类型:${e.packageType}`),t.push(`产物数量:${e.fileCount}`),e.totalBytes&&t.push(`累计体积:${z(e.totalBytes)}`)):e.kind===`file`?(t.push(`<strong>${e.fileName}</strong>`),t.push(`所属:${e.packageLabel}`),t.push(`类型:${e.type===`chunk`?`代码 chunk`:`资源`} · 来源:${e.from}`),t.push(`体积:${z(e.bytes)}`),e.childCount>0&&t.push(`模块数量:${e.childCount}`)):e.kind===`module`?(t.push(`<strong>${e.source}</strong>`),t.push(`所属:${e.packageLabel} → ${e.fileName}`),t.push(`源码类型:${de(e.sourceType)}`),t.push(`模块体积:${z(e.bytes??e.originalBytes)}`),e.packageCount>1&&t.push(`跨包复用:${e.packageCount} 次`)):e.kind===`asset`&&(t.push(`<strong>${e.source}</strong>`),t.push(`所属:${e.packageLabel} → ${e.fileName}`),t.push(`资源体积:${z(e.bytes)}`)),t.join(`<br/>`)}function ju(e){return`${(e.ratio*100).toFixed(1)}%`}function Mu(e,t,n){if(!(!t||!n))return e.find(e=>e.packageId===t&&e.file===n)}function Nu(e,t){let n=e.packages[0],r=n?.files[0]??``,i=t.find(e=>e.id===n?.packageId),a=i?.label??n?.packageLabel??``;return{key:`duplicate:${e.id}`,kind:`duplicate`,title:`减少重复模块 ${e.source}`,meta:`${e.packageCount} 个包复用 · ${e.advice}`,value:`可省 ${z(e.estimatedSavingBytes)}`,tone:e.estimatedSavingBytes>1024?`warning`:`info`,tab:`modules`,priority:72+Math.min(e.estimatedSavingBytes/1024,18),moduleMeta:n&&i?{kind:`module`,nodeId:Ou(n.packageId,r,e.id),packageId:n.packageId,packageLabel:a,fileName:r,source:e.source,sourceType:e.sourceType,bytes:e.bytes,packageCount:e.packageCount}:void 0}}function Pu(e,t,n){let r=Mu(t,e.packageId,e.file),i=n.find(t=>t.id===e.packageId),a=!r&&e.moduleId&&e.packageId&&e.file&&i?{kind:`module`,nodeId:Ou(e.packageId,e.file,e.moduleId),packageId:e.packageId,packageLabel:e.packageLabel,fileName:e.file,source:e.label,sourceType:e.sourceType??`src`,bytes:e.currentBytes,packageCount:1}:void 0;return{key:`increment:${e.key}`,kind:`increment`,title:`定位增长 ${e.label}`,meta:`${e.category} · ${e.advice}`,value:`+${z(e.deltaBytes)}`,tone:e.deltaBytes>1024?`warning`:`info`,tab:r?`files`:`modules`,priority:80+Math.min(e.deltaBytes/1024,15),file:r,moduleMeta:a}}function Fu(e){return{actionItems:C(()=>{let t=[];for(let n of e.budgetWarnings.value)t.push({key:`budget:${n.id}`,kind:`budget`,title:`处理 ${n.label} 预算`,meta:`${n.status===`critical`?`已超预算`:`接近预算`} · 当前 ${z(n.currentBytes)} / ${z(n.limitBytes)}`,value:ju(n),tone:n.status===`critical`?`critical`:`warning`,tab:`files`,priority:n.status===`critical`?100+n.ratio:90+n.ratio,warning:n});for(let n of e.incrementAttribution.value.slice(0,12))t.push(Pu(n,e.largestFiles.value,e.packageInsights.value));for(let n of e.duplicateModules.value.filter(e=>e.estimatedSavingBytes>0).slice(0,12))t.push(Nu(n,e.packageInsights.value));let n=e.largestFiles.value[0];return n&&t.push({key:`file:${n.packageId}:${n.file}`,kind:`file`,title:`查看最大文件 ${n.file}`,meta:`${n.packageLabel} · ${n.type} · 压缩后 ${z(n.compressedSize)}`,value:z(n.size),tone:`success`,tab:`files`,priority:45,file:n}),t.sort((e,t)=>t.priority-e.priority||e.title.localeCompare(t.title))})}}function Iu(e){return e.filter(e=>e!==void 0&&e!==``).join(` `).toLowerCase()}function Lu(e,t,n){return e.find(e=>e.id===t||e.label===n)}function Ru(e,t,n){if(!(!t||!n))return e.find(e=>e.packageId===t&&e.file===n)}function zu(e){return{key:`package:${e.id}`,kind:`package`,title:e.label,meta:`${V(e.type)} · ${e.fileCount} 个产物 · ${e.moduleCount} 个模块`,value:z(e.totalBytes),keywords:Iu([e.id,e.label,e.type,e.totalBytes]),tab:`packages`,packageMeta:{kind:`package`,nodeId:Eu(e.id),packageId:e.id,packageLabel:e.label,packageType:e.type,fileCount:e.fileCount,totalBytes:e.totalBytes}}}function Bu(e){return{key:`file:${e.packageId}:${e.file}`,kind:`file`,title:e.file,meta:`${e.packageLabel} · ${e.type} · 压缩后 ${z(e.compressedSize)}`,value:z(e.size),keywords:Iu([e.packageId,e.packageLabel,e.file,e.type,e.source,e.size]),tab:`files`,file:e}}function Vu(e){return{key:`budget:${e.id}`,kind:`budget`,title:`${e.label} 预算`,meta:`${e.status===`critical`?`已超预算`:`接近预算`} · ${z(e.currentBytes)} / ${z(e.limitBytes)}`,value:`${(e.ratio*100).toFixed(1)}%`,keywords:Iu([e.id,e.label,e.scope,e.status,e.currentBytes]),tab:`files`,warning:e}}function Hu(e,t){let n=e.packages[0],r=n?.files[0]??``,i=Lu(t,n?.packageId,n?.packageLabel),a=i?.label??n?.packageLabel??``;return{key:`module:${e.id}`,kind:`module`,title:e.source,meta:`${e.sourceType} · ${e.packageCount} 个包复用 · ${e.advice}`,value:`可省 ${z(e.estimatedSavingBytes)}`,keywords:Iu([e.id,e.source,e.sourceType,e.packageCount,e.packages.map(e=>e.packageLabel).join(` `)]),tab:`modules`,moduleMeta:n&&i?{kind:`module`,nodeId:Ou(n.packageId,r,e.id),packageId:n.packageId,packageLabel:a,fileName:r,source:e.source,sourceType:e.sourceType,bytes:e.bytes,packageCount:e.packageCount}:void 0}}function Uu(e,t,n){let r=Ru(t,e.packageId,e.file),i=Lu(n,e.packageId,e.packageLabel);return{key:`increment:${e.key}`,kind:`increment`,title:e.label,meta:`${e.category} · ${e.advice}`,value:`+${z(e.deltaBytes)}`,keywords:Iu([e.key,e.label,e.category,e.packageLabel,e.file,e.deltaBytes]),tab:r?`files`:`modules`,file:r,moduleMeta:!r&&e.moduleId&&e.packageId&&e.file&&i?{kind:`module`,nodeId:Ou(e.packageId,e.file,e.moduleId),packageId:e.packageId,packageLabel:e.packageLabel,fileName:e.file,source:e.label,sourceType:e.sourceType??`src`,bytes:e.currentBytes,packageCount:1}:void 0}}function Wu(e){return{key:`action:${e.key}`,kind:`action`,title:e.title,meta:e.meta,value:e.value,keywords:Iu([e.title,e.meta,e.value,e.kind,e.tone]),tab:e.tab,action:e,warning:e.warning,file:e.file,moduleMeta:e.moduleMeta}}function Gu(e){return{commandItems:C(()=>[...e.actionItems.value.map(Wu),...e.budgetWarnings.value.map(Vu),...e.packageInsights.value.map(zu),...e.largestFiles.value.map(Bu),...e.duplicateModules.value.map(t=>Hu(t,e.packageInsights.value)),...e.incrementAttribution.value.map(t=>Uu(t,e.largestFiles.value,e.packageInsights.value))])}}var Ku=2097152;function Q(e){return e.size??0}function qu(e){return e.brotliSize??e.gzipSize??fe(Q(e),e.file,e.type)}function Ju(e){return typeof e.brotliSize==`number`||typeof e.gzipSize==`number`?`real`:`estimated`}function Yu(e,t){return`${e}\u0000${t}`}function Xu(e){let t=new Map,n=new Map,r=new Map,i=0,a=0;for(let o of e?.packages??[]){let e=0;for(let t of o.files){let s=Q(t);e+=s,i+=s,a+=qu(t),n.set(Yu(o.id,t.file),s);for(let e of t.modules??[]){let n=e.bytes??e.originalBytes??0,i=r.get(e.id);(!i||i.bytes<n)&&r.set(e.id,{source:e.source,sourceType:e.sourceType,bytes:n,packageId:o.id,packageLabel:o.label,file:t.file})}}t.set(o.id,e)}return{packageBytes:t,fileBytes:n,moduleBytes:r,totalBytes:i,compressedBytes:a}}function Zu(e){let t=new Map;for(let n of e.packages)for(let e of n.files)for(let r of e.modules??[])t.has(r.id)||t.set(r.id,{source:r.source,sourceType:r.sourceType,packageId:n.id,packageLabel:n.label,file:e.file});return t}function Qu(e){let t=new Map;for(let n of e?.packages??[])for(let e of n.files)for(let n of e.modules??[]){let e=t.get(n.id),r=n.bytes??0,i=n.originalBytes??r;if(!e){t.set(n.id,{bytes:r,originalBytes:i,sourceType:n.sourceType});continue}t.set(n.id,{bytes:Math.max(e.bytes,r),originalBytes:Math.max(e.originalBytes,i),sourceType:e.sourceType})}return t}function $u(e){if(e!==`virtual`)return Ku}function ed(e,t){let n=t.metadata?.budgets;if(!n)return $u(e);if(e===`main`)return n.mainBytes;if(e===`subPackage`)return n.subPackageBytes;if(e===`independent`)return n.independentBytes}function td(e){let t=e.limitBytes>0?e.currentBytes/e.limitBytes:0;if(!(t<(e.warningRatio??.85)))return{id:e.id,label:e.label,scope:e.scope,currentBytes:e.currentBytes,limitBytes:e.limitBytes,ratio:t,status:t>=1?`critical`:`warning`}}function nd(e){return e>=1048576?`${(e/1024/1024).toFixed(e%1048576==0?0:2)} MB`:e>=1024?`${(e/1024).toFixed(e%1024==0?0:2)} KB`:`${e} B`}function rd(e){if(!e)return[];let t=[],n=e.packages.flatMap(e=>e.files).reduce((e,t)=>e+Q(t),0),r=e.metadata?.budgets,i=td({id:`__total__`,label:`总包`,scope:`total`,currentBytes:n,limitBytes:r?.totalBytes??20971520,warningRatio:r?.warningRatio});i&&t.push(i);for(let n of e.packages){let i=ed(n.type,e);if(!i)continue;let a=td({id:n.id,label:n.label,scope:n.type,currentBytes:n.files.reduce((e,t)=>e+Q(t),0),limitBytes:i,warningRatio:r?.warningRatio});a&&t.push(a)}return t.sort((e,t)=>t.ratio-e.ratio||e.label.localeCompare(t.label))}function id(e){let t=e?.metadata?.budgets,n=t?.source??`default`;return[{key:`total`,label:`总包预算`,value:`${nd(t?.totalBytes??20971520)}`,source:n},{key:`main`,label:`主包预算`,value:`${nd(t?.mainBytes??2097152)}`,source:n},{key:`subPackage`,label:`分包预算`,value:`${nd(t?.subPackageBytes??2097152)}`,source:n},{key:`independent`,label:`独立分包预算`,value:`${nd(t?.independentBytes??2097152)}`,source:n}]}function ad(e,t){return e.includes(`wevu`)||e.includes(`@weapp-vite/dashboard`)?`WeVu / runtime`:t===`node_modules`||e.includes(`node_modules`)?`第三方依赖`:t===`workspace`?`工作区包`:t===`plugin`?`插件生成`:e.endsWith(`.wxss`)||e.endsWith(`.css`)||e.endsWith(`.scss`)?`样式资源`:e.endsWith(`.wxml`)||e.endsWith(`.json`)?`页面结构`:`业务源码`}function od(e,t){return e===`第三方依赖`?`检查依赖边界或公共入口。`:e===`WeVu / runtime`?`排查组件和 API 引用边界。`:e===`样式资源`?`检查样式复用和生成范围。`:t?`确认分包归属和懒加载边界。`:`对比新增引用和共享模块。`}function sd(e){if(!e.result||!e.previousResult)return[];let t=[],n=Zu(e.result);for(let n of e.result.packages)for(let r of n.files){let i=Q(r),a=e.previousMaps.fileBytes.get(Yu(n.id,r.file))??0,o=i-a;if(o<=0)continue;let s=ad(r.source??r.file);t.push({key:`file:${n.id}:${r.file}`,label:r.file,category:s,packageId:n.id,packageLabel:n.label,file:r.file,currentBytes:i,previousBytes:a,deltaBytes:o,advice:od(s,a===0)})}for(let[r,i]of e.moduleInfoMap){let a=e.previousMaps.moduleBytes.get(r)?.bytes??0,o=i.bytes-a;if(o<=0)continue;let s=e.previousMaps.moduleBytes.get(r),c=n.get(r),l=c?.source??s?.source??r,u=ad(l,c?.sourceType??i.sourceType);t.push({key:`module:${r}`,label:l,category:u,packageId:c?.packageId??s?.packageId,packageLabel:c?.packageLabel??s?.packageLabel??``,file:c?.file??s?.file,moduleId:r,sourceType:c?.sourceType??i.sourceType,currentBytes:i.bytes,previousBytes:a,deltaBytes:o,advice:od(u,a===0)})}return t.sort((e,t)=>t.deltaBytes-e.deltaBytes||e.category.localeCompare(t.category)||e.label.localeCompare(t.label))}function cd(e){let t=new Map;for(let n of e){let e=t.get(n.category)??{category:n.category,count:0,deltaBytes:0};e.count+=1,e.deltaBytes+=n.deltaBytes,t.set(n.category,e)}return[...t.values()].sort((e,t)=>t.deltaBytes-e.deltaBytes||t.count-e.count||e.category.localeCompare(t.category))}function ld(e,t){return{packageId:t.packageId,packageLabel:e.get(t.packageId)??t.packageId,files:t.files}}function ud(e,t){return e.includes(`wevu`)||e.includes(`@weapp-vite/dashboard`)?`wevu / dashboard runtime`:t===`node_modules`?`第三方依赖`:t===`plugin`?`插件生成`:t===`workspace`?`工作区包`:e.startsWith(`pages/`)||e.includes(`/pages/`)?`业务页面`:e.startsWith(`components/`)||e.includes(`/components/`)?`业务组件`:e.startsWith(`shared/`)||e.includes(`/shared/`)||e.includes(`/utils/`)?`业务共享`:`业务源码`}function dd(e,t){return{sourceType:e,sourceCategory:t,count:0,bytes:0}}function fd(e,t,n,r){return t.some(e=>n.get(e.packageId)===`independent`)?r>0?`含独立分包,先确认隔离要求,再评估公共入口。`:`含独立分包,重复可能来自隔离边界。`:e===`node_modules`?`依赖被多个包带入,检查引用边界或考虑主包公共入口。`:e===`src`||e===`workspace`?`共享源码跨包重复,优先抽公共模块或调整分包归属。`:e===`plugin`?`插件生成内容跨包重复,检查插件产物输出策略。`:`检查该模块是否需要在多个包内重复存在。`}function pd(e){return e.result?e.result.modules.filter(e=>e.packages.length>1).map(t=>{let n=e.moduleInfoMap.get(t.id),r=t.packages.map(t=>ld(e.packageLabelMap,t)),i=n?.bytes??n?.originalBytes??0,a=i*Math.max(t.packages.length-1,0);return{id:t.id,source:t.source,sourceType:t.sourceType,packageCount:t.packages.length,bytes:i,estimatedSavingBytes:a,advice:fd(t.sourceType,r,e.packageTypeMap,a),packages:r}}).sort((e,t)=>t.estimatedSavingBytes-e.estimatedSavingBytes||t.packageCount-e.packageCount||t.bytes-e.bytes||e.source.localeCompare(t.source)):[]}function md(e,t){let n=new Map;for(let r of e?.modules??[]){let e=t.get(r.id),i=ud(r.source,r.sourceType),a=`${r.sourceType}:${i}`,o=n.get(a)??dd(r.sourceType,i);o.count+=1,o.bytes+=e?.bytes??e?.originalBytes??0,n.set(a,o)}return[...n.values()].sort((e,t)=>t.bytes-e.bytes||t.count-e.count||e.sourceCategory.localeCompare(t.sourceCategory))}function hd(e,t){return{label:e,value:t}}function gd(e,t,n){let r=Q(t),i=n.get(Yu(e.id,t.file));return{packageId:e.id,packageLabel:e.label,packageType:e.type,file:t.file,size:r,gzipSize:t.gzipSize,brotliSize:t.brotliSize,compressedSize:qu(t),compressedSizeSource:Ju(t),sizeDeltaBytes:typeof i==`number`?r-i:void 0,type:t.type,from:t.from,isEntry:!!t.isEntry,moduleCount:t.modules?.length??0,modules:t.modules,source:t.source}}function _d(e,t,n){let r=Q(t),i=n.get(Yu(e,t.file));return{file:t.file,size:r,gzipSize:t.gzipSize,brotliSize:t.brotliSize,compressedSize:qu(t),compressedSizeSource:Ju(t),sizeDeltaBytes:typeof i==`number`?r-i:void 0,type:t.type,from:t.from,isEntry:!!t.isEntry,moduleCount:t.modules?.length??0}}function vd(e){if(!e.result)return{packageCount:0,moduleCount:0,duplicateCount:0,totalBytes:0,gzipBytes:0,brotliBytes:0,estimatedCompressedBytes:0,compressedBytes:0,compressedSizeSource:`estimated`,subpackageCount:0,entryCount:0,budgetWarningCount:0};let t=e.result.packages.flatMap(e=>e.files),n=t.reduce((e,t)=>e+Q(t),0),r=t.reduce((e,t)=>e+(t.gzipSize??0),0),i=t.reduce((e,t)=>e+(t.brotliSize??0),0),a=t.reduce((e,t)=>e+fe(Q(t),t.file,t.type),0),o=t.some(e=>typeof e.gzipSize==`number`||typeof e.brotliSize==`number`),s=o?t.reduce((e,t)=>e+qu(t),0):a;return{packageCount:e.result.packages.length,moduleCount:e.result.modules.length,duplicateCount:e.result.modules.filter(e=>e.packages.length>1).length,totalBytes:n,gzipBytes:r,brotliBytes:i,estimatedCompressedBytes:a,compressedBytes:s,compressedSizeSource:o?`real`:`estimated`,sizeDeltaBytes:e.previousMaps.totalBytes>0?n-e.previousMaps.totalBytes:void 0,compressedDeltaBytes:e.previousMaps.compressedBytes>0?s-e.previousMaps.compressedBytes:void 0,subpackageCount:e.result.subPackages.length,entryCount:t.filter(e=>e.isEntry).length,budgetWarningCount:e.budgetWarnings.length}}function yd(e){let t=new Map;for(let n of e?.packages??[])t.set(n.type,(t.get(n.type)??0)+1);return Array.from(t.entries(),([e,t])=>hd(e,t)).sort((e,t)=>t.value-e.value||e.label.localeCompare(t.label))}function bd(e,t){return e?e.packages.map(n=>{let r=new Set,i=0;for(let t of e.modules)t.packages.some(e=>e.packageId===n.id)&&(r.add(t.id),t.packages.length>1&&i++);let a=n.files.map(e=>_d(n.id,e,t.fileBytes)).sort((e,t)=>t.size-e.size||e.file.localeCompare(t.file)).slice(0,5),o=n.files.reduce((e,t)=>e+Q(t),0),s=n.files.reduce((e,t)=>e+(t.gzipSize??0),0),c=n.files.reduce((e,t)=>e+(t.brotliSize??0),0),l=n.files.reduce((e,t)=>e+qu(t),0),u=n.files.some(e=>typeof e.gzipSize==`number`||typeof e.brotliSize==`number`)?`real`:`estimated`,d=t.packageBytes.get(n.id);return{id:n.id,label:n.label,type:n.type,totalBytes:o,gzipBytes:s,brotliBytes:c,compressedBytes:l,compressedSizeSource:u,sizeDeltaBytes:typeof d==`number`?o-d:void 0,fileCount:n.files.length,chunkCount:n.files.filter(e=>e.type===`chunk`).length,assetCount:n.files.filter(e=>e.type===`asset`).length,moduleCount:r.size,duplicateModuleCount:i,entryFileCount:n.files.filter(e=>e.isEntry).length,topFiles:a}}).sort((e,t)=>t.totalBytes-e.totalBytes||e.label.localeCompare(t.label)):[]}function xd(e,t){let n=[];for(let r of e?.packages??[])for(let e of r.files)n.push(gd(r,e,t));return n.sort((e,t)=>t.size-e.size||e.file.localeCompare(t.file)).slice(0,18)}function Sd(e,t){let n=C(()=>Xu(t?.value??null)),r=C(()=>new Map((e.value?.packages??[]).map(e=>[e.id,e.label]))),i=C(()=>new Map((e.value?.packages??[]).map(e=>[e.id,e.type]))),a=C(()=>Qu(e.value)),o=C(()=>rd(e.value)),s=C(()=>id(e.value)),c=C(()=>sd({result:e.value,previousResult:t?.value,previousMaps:n.value,moduleInfoMap:a.value})),l=C(()=>cd(c.value));return{summary:C(()=>vd({result:e.value,previousMaps:n.value,budgetWarnings:o.value})),packageTypeSummary:C(()=>yd(e.value)),packageInsights:C(()=>bd(e.value,n.value)),largestFiles:C(()=>xd(e.value,n.value.fileBytes)),duplicateModules:C(()=>pd({result:e.value,moduleInfoMap:a.value,packageLabelMap:r.value,packageTypeMap:i.value})),moduleSourceSummary:C(()=>md(e.value,a.value)),budgetWarnings:o,budgetLimitItems:s,incrementAttribution:c,incrementSummary:l,subPackages:C(()=>e.value?.subPackages??[])}}var Cd=[`action`,`file`,`budget`],wd=[`critical`,`warning`,`info`,`success`],Td=[`overview`,`diagnostics`,`treemap`,`files`,`source`,`packages`,`modules`];function Ed(){return new Date().toISOString()}function Dd(e,t){return typeof e==`string`&&t.includes(e)}function Od(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&Dd(t.targetKind,Cd)&&typeof t.targetKey==`string`&&typeof t.title==`string`&&typeof t.meta==`string`&&Dd(t.tone,wd)&&Dd(t.tab,Td)&&typeof t.createdAt==`string`}function kd(e){if(!Array.isArray(e))return[];let t=new Map;for(let n of e)Od(n)&&t.set(n.id,{id:n.id,targetKind:n.targetKind,targetKey:n.targetKey,title:n.title,meta:n.meta,value:typeof n.value==`string`?n.value:void 0,tone:n.tone,tab:n.tab,createdAt:n.createdAt,completedAt:typeof n.completedAt==`string`?n.completedAt:void 0});return[...t.values()].sort((e,t)=>!!e.completedAt==!!t.completedAt?Date.parse(t.createdAt)-Date.parse(e.createdAt):e.completedAt?1:-1)}function Ad(e,t=Ed()){return{id:`action:${e.key}`,targetKind:`action`,targetKey:e.key,title:e.title,meta:e.meta,value:e.value,tone:e.tone,tab:e.tab,createdAt:t}}function jd(e){let t=kd(e).map(e=>`| ${e.completedAt?`完成`:`待处理`} | ${e.title.replaceAll(`|`,`\\|`)} | ${e.meta.replaceAll(`|`,`\\|`)} | ${e.value??`-`} | ${e.tab} |`);return[`# dashboard 处理清单`,``,`待处理:${e.filter(e=>!e.completedAt).length}`,`已完成:${e.filter(e=>e.completedAt).length}`,``,`| 状态 | 事项 | 说明 | 数值 | 视图 |`,`| --- | --- | --- | ---: | --- |`,t.join(`
19
19
  `)||`| - | 暂无事项 | - | - | - |`,``].join(`
20
20
  `)}function Md(e){let t=m(null),n=m(!1),r=m(null);function i(){t.value=null,r.value=null}function a(){e.selectedLargestFile.value=null,e.selectedBudgetWarning.value=null}function o(n){if(t.value=n.key,n.kind===`increment`?e.treemapFilterMode.value=`growth`:n.kind===`duplicate`&&(e.treemapFilterMode.value=`duplicates`),n.warning){e.activeTab.value=`files`,e.handleSelectBudgetWarning(n.warning),e.treemapFilterMode.value=`selected-package`;return}if(n.file){e.activeTab.value=`files`,e.handleSelectLargestFile(n.file),e.treemapFilterMode.value=`selected-package`;return}if(n.moduleMeta){e.activeTab.value=n.tab,e.selectedTreemapMeta.value=n.moduleMeta,a();return}e.activeTab.value=n.tab}function s(t){if(t.action){o(t.action);return}if(t.warning){e.activeTab.value=`files`,e.handleSelectBudgetWarning(t.warning),e.treemapFilterMode.value=`selected-package`;return}if(t.file){e.activeTab.value=`files`,e.handleSelectLargestFile(t.file),e.treemapFilterMode.value=`selected-package`;return}if(t.moduleMeta){e.activeTab.value=t.tab,e.selectedTreemapMeta.value=t.moduleMeta,a(),e.treemapFilterMode.value=t.kind===`increment`?`growth`:`duplicates`;return}if(t.packageMeta){e.activeTab.value=t.tab,e.selectedTreemapMeta.value=t.packageMeta,a(),e.treemapFilterMode.value=`selected-package`;return}e.activeTab.value=t.tab}function c(t){e.addWorkQueueItem(Ad(t)),e.exportStatus.value=`已加入清单`}function l(t){if(r.value=t.id,t.targetKind===`action`){let n=e.actionItems.value.find(e=>e.key===t.targetKey);if(n){o(n);return}}e.activeTab.value=t.tab}function u(t){if(t.actionKey){let n=e.actionItems.value.find(e=>e.key===t.actionKey);if(n){o(n);return}}if(t.workQueueItemId){let n=e.workQueueItems.value.find(e=>e.id===t.workQueueItemId);if(n){l(n);return}}e.activeTab.value=t.tab}return{activeWorkQueueItemId:r,commandPaletteOpen:n,selectedActionKey:t,handleAddActionToWorkQueue:c,handleSelectAction:o,handleSelectCommand:s,handleSelectReviewChecklistItem:u,handleSelectWorkQueueItem:l,resetPageSelection:i}}function Nd(e){let t=e.packageInsights[0],n=e.duplicateModules[0];return[`总产物体积:${z(e.summary.totalBytes)}`,`Gzip:${z(e.summary.gzipBytes)}`,`Brotli/压缩后:${z(e.summary.compressedBytes)}`,`包体:${e.summary.packageCount} 个,分包配置:${e.summary.subpackageCount} 个`,`模块:${e.summary.moduleCount} 个,跨包复用:${e.summary.duplicateCount} 个`,`预算告警:${e.summary.budgetWarningCount} 个`,t?`最大包:${t.label} ${z(t.totalBytes)}`:``,n?`首要重复模块:${n.source},估算可节省 ${z(n.estimatedSavingBytes)}(${n.advice})`:``].filter(Boolean).join(`