@agile-team/mach-report 2.14.0 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -11
- package/THIRD_PARTY_NOTICES.md +3 -1
- package/dist/{ExcelBindingWizard-CvsWR8Ga.js → ExcelBindingWizard-BKH1nGNS.js} +3 -3
- package/dist/{ExcelBindingWizard-CLT2p7P3.cjs → ExcelBindingWizard-Bs43BGNp.cjs} +1 -1
- package/dist/ParamEditor-Da4akw6V.cjs +1 -0
- package/dist/ParamEditor-DoAhzJsm.js +594 -0
- package/dist/{ReportBatchPanel-LqVgiqp7.js → ReportBatchPanel-BMf6boMA.js} +39 -39
- package/dist/{ReportBatchPanel-DkxTzBkD.cjs → ReportBatchPanel-wP9m9Pj1.cjs} +1 -1
- package/dist/ReportPreview-ChV19HBp.js +4619 -0
- package/dist/ReportPreview-DbLvvOUT.cjs +6 -0
- package/dist/{ReportTemplateLibrary-MjWEtc7X.js → ReportTemplateLibrary-C9wutIiT.js} +1 -1
- package/dist/{ReportTemplateLibrary-cQ1sqNYo.cjs → ReportTemplateLibrary-Sxr3eD0J.cjs} +1 -1
- package/dist/{RuleEditor-ChuXMlei.js → RuleEditor-C_Clasvd.js} +5 -5
- package/dist/{RuleEditor-BaR6xUiI.cjs → RuleEditor-XhGHK8DE.cjs} +1 -1
- package/dist/{TemplateOutlinePanel-Dci6aRn1.js → TemplateOutlinePanel-D6Bkny59.js} +2 -2
- package/dist/{TemplateOutlinePanel-BHKP89Xz.cjs → TemplateOutlinePanel-JTSR53vJ.cjs} +1 -1
- package/dist/{TemplateReusePanel-CY5eO2Sh.cjs → TemplateReusePanel-Kx35S0Ql.cjs} +1 -1
- package/dist/{TemplateReusePanel-B7Gmyc1z.js → TemplateReusePanel-rVuK1kTz.js} +2 -2
- package/dist/{TemplateReviewPanel-DjlX3xpt.js → TemplateReviewPanel-B0ar9_zf.js} +2 -2
- package/dist/{TemplateReviewPanel-JvZe9_4G.cjs → TemplateReviewPanel-Dn6X9UmY.cjs} +1 -1
- package/dist/analytics.cjs +1 -1
- package/dist/analytics.d.cts +3 -1
- package/dist/analytics.d.ts +3 -1
- package/dist/analytics.js +154 -60
- package/dist/artifact-integrity.json +135 -0
- package/dist/assets-B9ImAi6_.cjs +1 -0
- package/dist/assets-DEaz4qsp.js +124 -0
- package/dist/batch-BaP6pWDE.cjs +1 -0
- package/dist/batch-BfZHN1do.js +220 -0
- package/dist/batch-CGyt-b2W.js +273 -0
- package/dist/batch-CLpELXBl.cjs +1 -0
- package/dist/capabilities-CAh2Nrue.cjs +1 -0
- package/dist/capabilities-DskCHs3V.js +69 -0
- package/dist/codes.d.cts +2 -0
- package/dist/codes.d.ts +2 -0
- package/dist/{computed-Bvk0W15F.js → computed-C-4C2S5h.js} +3 -3
- package/dist/config-BVsJXSqS.js +842 -0
- package/dist/config-D10us76d.cjs +1 -0
- package/dist/data-explanation-B8MZRYVS.js +16 -0
- package/dist/data-explanation-DE55G30w.cjs +1 -0
- package/dist/designer-2bDlcNXQ.js +5136 -0
- package/dist/designer-BT7XCdbW.cjs +2 -0
- package/dist/designer.cjs +1 -1
- package/dist/designer.d.cts +144 -16
- package/dist/designer.d.ts +144 -16
- package/dist/designer.js +1 -1
- package/dist/drill-ByJviLXS.js +145 -0
- package/dist/drill-DYTxuL3A.cjs +1 -0
- package/dist/{font-loader-vhCT8znW.cjs → font-loader-B_UkxpzC.cjs} +1 -1
- package/dist/{font-loader-DHto6Lra.js → font-loader-Q3bQjmrI.js} +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +82 -4
- package/dist/index.d.ts +82 -4
- package/dist/index.js +785 -820
- package/dist/json-snapshot-DFb2eWkf.js +1416 -0
- package/dist/json-snapshot-WWSGlaHG.cjs +2 -0
- package/dist/licenses/_bwip-js_generic-4.11.4.txt +24 -0
- package/dist/licenses/_fast-csv_format-4.3.5.txt +22 -0
- package/dist/licenses/_fast-csv_parse-4.3.6.txt +22 -0
- package/dist/licenses/_pdf-lib_fontkit-1.1.1.txt +326 -0
- package/dist/licenses/_pdf-lib_standard-fonts-1.0.0.txt +22 -0
- package/dist/licenses/_pdf-lib_upng-1.0.1.txt +22 -0
- package/dist/licenses/_types_node-14.18.63.txt +22 -0
- package/dist/licenses/_types_pako-2.0.3.txt +22 -0
- package/dist/licenses/_types_pegjs-0.10.6.txt +22 -0
- package/dist/licenses/archiver-5.3.2.txt +23 -0
- package/dist/licenses/archiver-utils-2.1.0.txt +23 -0
- package/dist/licenses/archiver-utils-3.0.4.txt +23 -0
- package/dist/licenses/async-3.2.6.txt +20 -0
- package/dist/licenses/balanced-match-1.0.2.txt +22 -0
- package/dist/licenses/base64-js-1.5.1.txt +22 -0
- package/dist/licenses/big-integer-1.6.52.txt +25 -0
- package/dist/licenses/binary-0.3.0.txt +178 -0
- package/dist/licenses/bl-4.1.0.txt +14 -0
- package/dist/licenses/bluebird-3.4.7.txt +22 -0
- package/dist/licenses/brace-expansion-1.1.21.txt +22 -0
- package/dist/licenses/brace-expansion-2.1.7.txt +22 -0
- package/dist/licenses/buffer-5.7.1.txt +22 -0
- package/dist/licenses/buffer-crc32-0.2.13.txt +20 -0
- package/dist/licenses/buffer-indexof-polyfill-1.0.2.txt +23 -0
- package/dist/licenses/buffers-0.1.1.txt +140 -0
- package/dist/licenses/chainsaw-0.1.0.txt +184 -0
- package/dist/licenses/compress-commons-4.1.2.txt +23 -0
- package/dist/licenses/concat-map-0.0.1.txt +19 -0
- package/dist/licenses/core-util-is-1.0.3.txt +20 -0
- package/dist/licenses/crc-32-1.2.2.txt +202 -0
- package/dist/licenses/crc32-stream-4.0.3.txt +23 -0
- package/dist/licenses/dayjs-1.11.23.txt +22 -0
- package/dist/licenses/duplexer2-0.1.4.txt +27 -0
- package/dist/licenses/end-of-stream-1.4.5.txt +22 -0
- package/dist/licenses/exceljs-4.4.0.txt +23 -0
- package/dist/licenses/fast-csv-4.3.6.txt +22 -0
- package/dist/licenses/fast-png-6.4.0.txt +22 -0
- package/dist/licenses/fs-constants-1.0.0.txt +22 -0
- package/dist/licenses/fs.realpath-1.0.0.txt +44 -0
- package/dist/licenses/fstream-1.0.12.txt +16 -0
- package/dist/licenses/glob-7.2.3.txt +22 -0
- package/dist/licenses/graceful-fs-4.2.11.txt +16 -0
- package/dist/licenses/ieee754-1.2.1.txt +12 -0
- package/dist/licenses/immediate-3.0.6.txt +21 -0
- package/dist/licenses/inflight-1.0.6.txt +16 -0
- package/dist/licenses/inherits-2.0.4.txt +17 -0
- package/dist/licenses/iobuffer-5.4.0.txt +23 -0
- package/dist/licenses/isarray-1.0.0.txt +61 -0
- package/dist/licenses/jszip-3.10.2.txt +652 -0
- package/dist/licenses/lazystream-1.0.1.txt +24 -0
- package/dist/licenses/lie-3.3.0.txt +8 -0
- package/dist/licenses/listenercount-1.0.1.txt +6 -0
- package/dist/licenses/lodash.defaults-4.2.0.txt +48 -0
- package/dist/licenses/lodash.difference-4.5.0.txt +48 -0
- package/dist/licenses/lodash.escaperegexp-4.1.2.txt +48 -0
- package/dist/licenses/lodash.flatten-4.4.0.txt +48 -0
- package/dist/licenses/lodash.groupby-4.6.0.txt +48 -0
- package/dist/licenses/lodash.isboolean-3.0.3.txt +23 -0
- package/dist/licenses/lodash.isequal-4.5.0.txt +48 -0
- package/dist/licenses/lodash.isfunction-3.0.9.txt +48 -0
- package/dist/licenses/lodash.isnil-4.0.0.txt +23 -0
- package/dist/licenses/lodash.isplainobject-4.0.6.txt +48 -0
- package/dist/licenses/lodash.isundefined-3.0.1.txt +23 -0
- package/dist/licenses/lodash.union-4.6.0.txt +48 -0
- package/dist/licenses/lodash.uniq-4.5.0.txt +48 -0
- package/dist/licenses/minimatch-3.1.5.txt +16 -0
- package/dist/licenses/minimatch-5.1.9.txt +16 -0
- package/dist/licenses/minimist-1.2.8.txt +19 -0
- package/dist/licenses/mkdirp-0.5.6.txt +22 -0
- package/dist/licenses/node-sql-parser-5.4.0.txt +202 -0
- package/dist/licenses/normalize-path-3.0.0.txt +22 -0
- package/dist/licenses/once-1.4.0.txt +16 -0
- package/dist/licenses/pako-1.0.11.txt +22 -0
- package/dist/licenses/pako-2.2.0.txt +22 -0
- package/dist/licenses/path-is-absolute-1.0.1.txt +22 -0
- package/dist/licenses/pdf-lib-1.17.1.txt +22 -0
- package/dist/licenses/process-nextick-args-2.0.1.txt +20 -0
- package/dist/licenses/readable-stream-2.3.8.txt +48 -0
- package/dist/licenses/readable-stream-3.6.2.txt +48 -0
- package/dist/licenses/readdir-glob-1.1.3.txt +202 -0
- package/dist/licenses/rimraf-2.7.1.txt +16 -0
- package/dist/licenses/safe-buffer-5.1.2.txt +22 -0
- package/dist/licenses/safe-buffer-5.2.1.txt +22 -0
- package/dist/licenses/saxes-5.0.1.txt +397 -0
- package/dist/licenses/setimmediate-1.0.5.txt +21 -0
- package/dist/licenses/string_decoder-1.1.1.txt +49 -0
- package/dist/licenses/string_decoder-1.3.0.txt +49 -0
- package/dist/licenses/tar-stream-2.2.0.txt +22 -0
- package/dist/licenses/tmp-0.2.7.txt +22 -0
- package/dist/licenses/traverse-0.3.9.txt +25 -0
- package/dist/licenses/tslib-1.14.1.txt +13 -0
- package/dist/licenses/unzipper-0.10.14.txt +26 -0
- package/dist/licenses/util-deprecate-1.0.2.txt +25 -0
- package/dist/licenses/uuid-11.1.1.txt +10 -0
- package/dist/licenses/wrappy-1.0.2.txt +16 -0
- package/dist/licenses/xmlchars-2.2.0.txt +19 -0
- package/dist/licenses/zip-stream-4.1.1.txt +23 -0
- package/dist/matrix-CGRGkn5s.js +112 -0
- package/dist/matrix-gEO7ZM_u.cjs +1 -0
- package/dist/media-B7vnpD8k.cjs +1 -0
- package/dist/media-Y90dHK9z.js +70 -0
- package/dist/param-validation-C3HlcLLO.cjs +1 -0
- package/dist/param-validation-Do7Eg8Zv.js +181 -0
- package/dist/{pdf-8UPQebOE.js → pdf-BwNyeGpt.js} +4385 -4321
- package/dist/{pdf-AyJGb22z.cjs → pdf-CvvrjPQg.cjs} +51 -49
- package/dist/pdf.cjs +1 -1
- package/dist/pdf.d.cts +18 -3
- package/dist/pdf.d.ts +18 -3
- package/dist/pdf.js +2 -2
- package/dist/{plugin-BGKf-Tqg.js → plugin-Ca_XZG3l.js} +2 -2
- package/dist/{plugin-CktLH_Iy.cjs → plugin-DHO7X8z2.cjs} +1 -1
- package/dist/prepared-CFy9B75C.cjs +1 -0
- package/dist/prepared-ajM-H-9B.js +69 -0
- package/dist/progress-B0ctFpKf.cjs +1 -0
- package/dist/progress-D-OTpEav.js +52 -0
- package/dist/record-bindings-By_UKZ2g.cjs +1 -0
- package/dist/record-bindings-Do_b3h4V.js +196 -0
- package/dist/{region-binding-workflow-DEJbhpCv.js → region-binding-workflow-BMhK_TjP.js} +1 -1
- package/dist/{region-binding-workflow-BzfbxRiR.cjs → region-binding-workflow-DIYJdCUr.cjs} +1 -1
- package/dist/{report-params-B44imUd4.js → report-params-B1RzkhJj.js} +1 -1
- package/dist/{report-params-SJfhKgaX.cjs → report-params-WDGrA4oP.cjs} +1 -1
- package/dist/sbom.cdx.json +3982 -0
- package/dist/server/node.d.cts +20 -1
- package/dist/server/node.d.ts +20 -1
- package/dist/server-node.cjs +1 -1
- package/dist/server-node.js +247 -237
- package/dist/server.cjs +1 -1
- package/dist/server.d.cts +772 -4
- package/dist/server.d.ts +772 -4
- package/dist/server.js +885 -645
- package/dist/sha256-ArEYjaTI.cjs +1 -0
- package/dist/sha256-DPEuJ3nh.js +155 -0
- package/dist/style.css +1 -1
- package/dist/template-bindings-C2SpvsMU.js +58 -0
- package/dist/template-bindings-CEtWyiLX.cjs +1 -0
- package/dist/template-catalog-FJE_c9Qe.cjs +1 -0
- package/dist/template-catalog-j2B1MJlL.js +414 -0
- package/dist/{template-fragments-CLkGo6To.js → template-fragments-BGbQLGlV.js} +21 -21
- package/dist/{template-fragments-DFUpq5QM.cjs → template-fragments-DcKeiylI.cjs} +1 -1
- package/dist/{template-outline-B3xVkzSv.cjs → template-outline-BwRV_eRo.cjs} +1 -1
- package/dist/{template-outline-CFenM1PV.js → template-outline-cnWfT_LK.js} +3 -3
- package/dist/{template-registry-COXDEJEM.js → template-registry-BtaKPELV.js} +364 -201
- package/dist/template-registry-Co1zPq5e.cjs +1 -0
- package/dist/textwrap-CWHyzkBH.cjs +4 -0
- package/dist/textwrap-DE1kgcJB.js +110 -0
- package/dist/{tree-CqcQ99NM.js → tree-CjVZLRw7.js} +1 -1
- package/dist/vue/async.d.cts +123 -14
- package/dist/vue/async.d.ts +123 -14
- package/dist/vue/index.d.cts +158 -22
- package/dist/vue/index.d.ts +158 -22
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +80 -78
- package/dist/{workbook-session-DNa2RHNG.cjs → workbook-session-Bjv1YCRK.cjs} +18 -18
- package/dist/{workbook-session-BfK1yHOO.js → workbook-session-BvToI-Fd.js} +5440 -5288
- package/dist/worker.cjs +1 -1
- package/dist/worker.d.cts +20 -1
- package/dist/worker.d.ts +20 -1
- package/dist/worker.js +33 -32
- package/dist/xlsx-node.cjs +34 -34
- package/dist/xlsx-node.js +878 -870
- package/dist/xlsx.cjs +3 -4
- package/dist/xlsx.d.cts +22 -10
- package/dist/xlsx.d.ts +22 -10
- package/dist/xlsx.js +261 -253
- package/package.json +2 -2
- package/dist/ParamEditor-CflQV3eQ.js +0 -526
- package/dist/ParamEditor-vIDzvpPV.cjs +0 -1
- package/dist/ReportPreview-CvbqLUzM.cjs +0 -6
- package/dist/ReportPreview-D_ywJ_-H.js +0 -4533
- package/dist/assets-C2U-e-Sz.cjs +0 -4
- package/dist/assets-Q0wUwNrV.js +0 -217
- package/dist/batch-DzaTNLWI.js +0 -371
- package/dist/batch-xMkqYiTr.cjs +0 -1
- package/dist/capabilities-CK_7hizc.js +0 -63
- package/dist/capabilities-CsZ-pNHR.cjs +0 -1
- package/dist/config-0UIohTS7.cjs +0 -1
- package/dist/config-Dt9NtCPl.js +0 -566
- package/dist/data-explanation-BktvER5B.cjs +0 -1
- package/dist/data-explanation-C_J6jYNi.js +0 -16
- package/dist/designer-Ci1LizA9.js +0 -5020
- package/dist/designer-rtmVIIdN.cjs +0 -2
- package/dist/json-snapshot-BeFT3Tso.js +0 -1952
- package/dist/json-snapshot-D1NTP2oI.cjs +0 -2
- package/dist/matrix-DVyWiYsd.cjs +0 -1
- package/dist/matrix-yZsGnldA.js +0 -227
- package/dist/page-window-index-CIuT4BAv.js +0 -43
- package/dist/page-window-index-DEjnM6IB.cjs +0 -1
- package/dist/param-validation-BlHHXs6u.js +0 -153
- package/dist/param-validation-DCK039V1.cjs +0 -1
- package/dist/progress-7OSZbFok.js +0 -39
- package/dist/progress-BnLiS5eH.cjs +0 -1
- package/dist/task-events-DQ276fn2.cjs +0 -1
- package/dist/task-events-Dpsvf_t2.js +0 -47
- package/dist/template-bindings-BJR4k7qZ.cjs +0 -1
- package/dist/template-bindings-Daui7hLF.js +0 -252
- package/dist/template-registry-D3SjENi6.cjs +0 -1
- package/dist/validate-BJ5HIWY8.cjs +0 -1
- package/dist/validate-CkQBWCeg.js +0 -163
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),We=require("@agile-team/mach-report/vue"),P=require("@agile-team/mach-report"),W=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),ke=require("./template-bindings-BJR4k7qZ.cjs"),Vt=require("./tree-BX380Rr7.cjs"),$e=require("./style-UgIJSA1F.cjs"),xt=require("./template-outline-B3xVkzSv.cjs");function Ct(t,l,o=3){if(!t.tree)return l.slice(0,o).map(a=>t.columns.map(n=>ke.resolveListSampleCell(t,n,a)));if(l.length>200)return[];try{return Vt.createTreeTable(l,{...t.tree,maxRows:Math.min(200,t.tree.maxRows??200),maxAggregationVisits:Math.min(2e3,t.tree.maxAggregationVisits??2e3)},{computed:t.computed?.length?{fields:t.computed,maxRows:200,maxCells:4096}:void 0}).entries.slice(0,o).map(n=>t.columns.map(r=>ke.resolveTreeListSampleCell(t,r,n)))}catch{return[]}}const Ue=96/25.4;function Le(t){return t.kind==="list"?Math.max(16,(t.headerGrid?.rowHeightsMm?.reduce((l,o)=>l+o,0)??8)+(t.rowHeightMm??8)*3):t.heightMm}function ce(t){return{leftMm:t.leftMm,topMm:t.topMm,widthMm:t.widthMm,heightMm:Le(t)}}function he(t,l){return l?t.template.pages[l.pageIndex]?.components[l.componentIndex]:void 0}function Bt(t,l="detail"){const o={leftMm:10,topMm:10,widthMm:60,heightMm:10};return t==="qrcode"?{...o,kind:t,widthMm:22,heightMm:22,code:{value:"MACHREPORT",errorCorrection:"M",quietZoneModules:4}}:t==="barcode"?{...o,kind:t,widthMm:50,heightMm:16,code:{value:"MR20261022",symbology:"code128",quietZoneModules:10,showText:!0}}:t==="list"?{kind:t,leftMm:10,topMm:30,widthMm:90,dataset:l,columns:[{header:"字段",field:"field",widthMm:45},{header:"数值",field:"value",widthMm:45}],border:!0,headerBackgroundColor:"#eaf2fc",headerAlign:"center"}:t==="text"?{...o,kind:t,text:"文本",style:{fontSize:12,color:"#233c5c"}}:t==="rect"?{...o,kind:t,style:{borderColor:"#cbd5e1",lineWidthPt:.75,backgroundColor:"#eff6ff"}}:{...o,kind:t,widthMm:48,heightMm:24,imageData:`data:image/svg+xml;charset=utf-8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="180" height="90" viewBox="0 0 180 90"><rect width="180" height="90" rx="5" fill="#eff6ff"/><path d="m25 68 32-32 25 23 27-35 45 44" fill="none" stroke="#94b8e5" stroke-width="3"/><circle cx="45" cy="24" r="7" fill="#bfd5ef"/></svg>')}`}}function Ie(t,l,o=!1){const a=Math.max(2,Math.min(l.widthMm,t.widthMm)),n=Math.max(2,Math.min(l.heightMm,t.heightMm));return{leftMm:Math.max(0,Math.min(l.widthMm-a,t.leftMm)),topMm:Math.max(0,Math.min(l.heightMm-(o?2:n),t.topMm)),widthMm:a,heightMm:n}}function Ne(t,l){const o=t.widthMm;if(Object.assign(t,{leftMm:l.leftMm,topMm:l.topMm,widthMm:l.widthMm}),t.kind!=="list")t.heightMm=l.heightMm;else if(o>0&&l.widthMm!==o){const a=l.widthMm/o;t.columns.forEach(n=>{n.widthMm=Math.round(n.widthMm*a*100)/100}),t.widthMm=t.columns.reduce((n,r)=>n+r.widthMm,0),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(n=>n.widthMm))}}function Mt(t,l,o){if(l===o||!t.columns[l]||!t.columns[o])return!1;if(t.headerGrid){if(P.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.some(({cell:r})=>(r.colSpan??1)>1))throw new Error("请先拆分跨列合并表头,再调整列顺序,避免改变业务分组。");const n=Pe(t);n.forEach(r=>{r.splice(o,0,r.splice(l,1)[0])}),t.headerGrid=Ae(n,t.columns.map(r=>r.widthMm),t.headerGrid.rowHeightsMm??n.map(()=>8))}return t.columns.splice(o,0,t.columns.splice(l,1)[0]),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(a=>a.widthMm)),!0}function Pe(t){if(!t.headerGrid)return[t.columns.map(o=>({text:o.header}))];const l=Array.from({length:t.headerGrid.cells.length},()=>Array.from({length:t.columns.length},()=>null));for(const{cell:o,ri:a,ci:n}of P.resolveGridLayout(t.headerGrid,t.widthMm,100).cells)l[a][n]=o;return l}function Ae(t,l,o){const a=new Set;return{cells:t.map((r,s)=>r.flatMap((u,p)=>{if(a.has(`${s}:${p}`))return[];if(!u)return[null];for(let S=s;S<s+(u.rowSpan??1);S++)for(let k=p;k<p+(u.colSpan??1);k++)(S!==s||k!==p)&&a.add(`${S}:${k}`);return[u]})),colWidthsMm:l,rowHeightsMm:o}}function Dt(t){const l=Pe(t),o=t.headerGrid?.rowHeightsMm??l.map(()=>8);l.unshift(t.columns.map(()=>({text:"分组",style:{align:"center",backgroundColor:"#eaf2fc",bold:!0}}))),t.headerGrid=Ae(l,t.columns.map(a=>a.widthMm),[8,...o])}function Tt(t,l,o,a){if(o>=a||o<0||a>=t.columns.length)throw new Error("请选择同一行的至少两个连续表头。");const n=Pe(t),r=n[l];if(!r)throw new Error("表头行不存在。");const s=r.slice(o,a+1);if(s.some(p=>!p||(p.colSpan??1)!==1||(p.rowSpan??1)!==1))throw new Error("选择包含合并区域,请先拆分,再重新合并。");const u=s[0];r[o]={...u,colSpan:a-o+1};for(let p=o+1;p<=a;p++)r[p]=null;t.headerGrid=Ae(n,t.columns.map(p=>p.widthMm),t.headerGrid?.rowHeightsMm??[8])}function $t(t,l,o){if(!t.headerGrid)return;const n=P.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.find(({ri:S,ci:k,cell:f})=>l>=S&&l<S+(f.rowSpan??1)&&o>=k&&o<k+(f.colSpan??1));if(!n)return;const r=Pe(t),{ri:s,ci:u,cell:p}=n;for(let S=s;S<s+(p.rowSpan??1);S++)for(let k=u;k<u+(p.colSpan??1);k++){const f={...p,text:S===r.length-1?t.columns[k].header:p.text};delete f.colSpan,delete f.rowSpan,r[S][k]=f}t.headerGrid=Ae(r,t.columns.map(S=>S.widthMm),t.headerGrid.rowHeightsMm??r.map(()=>8))}function It(t){const l=e.ref(),o=e.ref(.8),a=e.ref(0),n=e.ref(0),r=e.computed(()=>o.value*Ue),s=e.computed(()=>t.document.template.pages[t.pageIndex]),u=e.computed(()=>s.value.widthMm*r.value>n.value-40);let p,S=!!t.document.template.repeat;function k(c){const d=l.value;if(!d||d.clientWidth<=40||d.clientHeight<=40)return;let h={leftMm:0,topMm:0,widthMm:s.value.widthMm,heightMm:s.value.heightMm};const D=t.selection?.pageIndex===t.pageIndex?s.value.components[t.selection.componentIndex]:void 0;c==="selection"&&D&&(h=ce(D));const V=(d.clientWidth-40)/(h.widthMm*Ue),w=(d.clientHeight-40)/(h.heightMm*Ue);o.value=Math.max(.05,Math.min(2,c==="width"?V:Math.min(V,w))),e.nextTick(()=>{d.scrollLeft=h.leftMm*r.value,d.scrollTop=h.topMm*r.value})}function f(c){S=!1,k(c)}function b(c){Number.isFinite(c)&&(S=!1,o.value=Math.max(.05,Math.min(2,c)))}function N(){const c=l.value;c&&(n.value=c.clientWidth,a.value=c.scrollWidth>c.clientWidth?Math.round(c.scrollLeft/(c.scrollWidth-c.clientWidth)*100):0)}function y(c){const d=l.value;d&&(d.scrollLeft=(d.scrollWidth-d.clientWidth)*c/100),a.value=c}function g(){N(),S&&t.document.template.repeat&&k("page")}async function E(){await e.nextTick();const c=l.value,d=t.selection;if(!c||d?.pageIndex!==t.pageIndex)return;const h=s.value.components[d.componentIndex];if(!h)return;const D=ce(h);if(h.kind==="list"&&t.columnIndex!==void 0&&t.columnIndex>=0){const $=h;D.leftMm+=$.columns.slice(0,t.columnIndex).reduce((F,q)=>F+q.widthMm,0),D.widthMm=$.columns[t.columnIndex]?.widthMm??D.widthMm}const V=D.leftMm*r.value,w=D.topMm*r.value,C=V+D.widthMm*r.value,M=w+D.heightMm*r.value;V<c.scrollLeft?c.scrollLeft=V:C>c.scrollLeft+c.clientWidth-40&&(c.scrollLeft=Math.max(0,Math.min(V,C-c.clientWidth+40))),w<c.scrollTop?c.scrollTop=w:M>c.scrollTop+c.clientHeight-40&&(c.scrollTop=Math.max(0,Math.min(w,M-c.clientHeight+40))),N()}return e.watch(()=>[t.selection,t.columnIndex,t.pageIndex],()=>{E()}),e.watch(()=>t.document.id,()=>{S=!!t.document.template.repeat,e.nextTick(g)}),e.watch(()=>[!!t.document.template.repeat,t.pageIndex,s.value.widthMm,s.value.heightMm],()=>{e.nextTick(g)}),e.onMounted(()=>{g(),typeof ResizeObserver<"u"&&l.value&&(p=new ResizeObserver(g),p.observe(l.value))}),e.onBeforeUnmount(()=>p?.disconnect()),{viewport:l,zoom:o,scale:r,page:s,wide:u,fraction:a,fit:f,setZoom:b,sync:N,navigate:y}}function Rt(t,l,o){if(t.kind==="list")return{text:t.dataset};const a=t.kind==="barcode"||t.kind==="qrcode"?t.code?.value??t.fallbackText??t.text??"":t.text??t.fallbackText??"";return t.binding?_t(t,l,o):{text:a,...t.imageData?{image:t.imageData}:{}}}function _t(t,l,o){const a=t.binding,n=l.template.repeat,r=n?o?.[n.dataset]?.[0]:void 0;if(!r)return{text:a.field,bound:!0};try{const s=ke.resolveComponentBinding(a,r,{dataset:n?.dataset,rowIndex:0});return t.kind==="image"&&s&&!ke.isLabelImageData(s)?{text:a.field,bound:!0,error:"image-binding"}:{text:s,bound:!0,...t.kind==="image"&&ke.isLabelImageData(s)?{image:s}:{}}}catch(s){return{text:a.field,bound:!0,error:s instanceof Error?s.message:String(s)}}}function ot(t,l){const a=[1,2,5,10,20,50,100,200,500,1e3].find(r=>r*l>=36)??Math.max(1e3,Math.ceil(t/200));return Array.from({length:Math.min(201,Math.floor(t/a)+1)},(r,s)=>({mm:s*a,position:s*a*l}))}const Je=[{id:"label-80-55",widthMm:80,heightMm:55},{id:"label-80-50",widthMm:80,heightMm:50},{id:"label-100-60",widthMm:100,heightMm:60},{id:"a4",widthMm:210,heightMm:297},{id:"a3",widthMm:297,heightMm:420}];function Re(t,l,o){return typeof t.meta?.title=="string"&&t.meta.title.trim()?t.meta.title:`${o} ${l+1}`}function ut(t){return t.components.flatMap((l,o)=>{const a=l.kind==="list"?l.rowHeightMm??Le(l):l.heightMm;return l.leftMm<0||l.topMm<0||l.leftMm+l.widthMm>t.widthMm+.001||l.topMm+a>t.heightMm+.001?[o]:[]})}function Lt(t,l){const o=JSON.parse(JSON.stringify(t)),a=new Set(l.flatMap(s=>s.components.map(u=>u.kind==="list"?u.id:u.nid)).filter(Boolean)),n=new Map;let r=0;for(const s of o.components){const u=s.kind==="list"?s.id:s.nid;if(!u)continue;let p;do p=`page-copy-${++r}`;while(a.has(p));a.add(p),n.set(u,p),s.kind==="list"?s.id=p:(s.nid=p,delete s.rkey)}return o.flow?.bands.forEach(s=>{s.componentIds=s.componentIds.map(u=>n.get(u)??u)}),o}function Pt(t,l,o){const a=t.template.pages,n=a[l];if(!n)return 0;if(o.type==="patch")return Object.assign(n,o.patch),l;if(o.type==="remove")return a.length<=1?l:(a.splice(l,1),Math.min(l,a.length-1));const r=o.type==="duplicate"?Lt(n,a):JSON.parse(JSON.stringify(n));return o.type==="add"&&(r.components=[],delete r.flow,delete r.meta),a.splice(l+1,0,r),l+1}function at(t,l,o){const a=t.filter(n=>n!==l).flatMap(n=>{const r=n[o],s=o==="leftMm"?n.widthMm:Le(n);return[r,r+s/2,r+s]});return[...new Set(a)].sort((n,r)=>n-r)}function At(t,l){if(!t.length)return;let o=0,a=t.length;for(;o<a;){const s=o+a>>>1;t[s]<l?o=s+1:a=s}const n=t[Math.max(0,o-1)],r=t[Math.min(t.length-1,o)];return Math.abs(n-l)<Math.abs(r-l)?n:r}function lt(t,l,o,a){let n=1/0,r={value:Math.round(t*2)/2};for(const s of[0,l/2,l]){const u=At(o,t+s);if(u===void 0)continue;const p=Math.abs(u-t-s);p<=a&&p<n&&(n=p,r={value:u-s,guide:u})}return r}function Ft(t,l,o,a){if(a){const n=Math.abs(l)>=Math.abs(o)?l:o,r=Math.round((t.widthMm+n)*2)/2;return{...t,widthMm:r,heightMm:r}}return{...t,widthMm:Math.round((t.widthMm+l)*2)/2,heightMm:Math.round((t.heightMm+o)*2)/2}}function Ht(t){let l;function o(a,n,r=!1){if(t.disabled()||a.button!==0)return;a.preventDefault(),a.stopPropagation(),l?.();const s=a.currentTarget.closest("[data-canvas-component]"),u=ce(n),p=a.clientX,S=a.clientY;let k=u,f=0;const b=t.scale.value,N=s.parentElement;let y,g;const E=()=>{for(const[M,$]of[["x",y],["y",g]])N.style.setProperty(`--mr-canvas-guide-${M}-display`,$===void 0?"none":"block"),$!==void 0&&N.style.setProperty(`--mr-canvas-guide-${M}`,`${$*b}px`)},c=()=>{f=0,E(),s.style.left=`${k.leftMm*b}px`,s.style.top=`${k.topMm*b}px`,s.style.width=`${k.widthMm*b}px`,s.style.height=`${k.heightMm*b}px`},d={leftMm:at(t.page().components,n,"leftMm"),topMm:at(t.page().components,n,"topMm")},h=M=>{const $=(M.clientX-p)/b,F=(M.clientY-S)/b,q=lt(u.leftMm+$,u.widthMm,d.leftMm,5/b),Z=lt(u.topMm+F,u.heightMm,d.topMm,5/b);y=r?void 0:q.guide,g=r?void 0:Z.guide,k=Ie(r?Ft(u,$,F,n.kind==="qrcode"):{...u,leftMm:q.value,topMm:Z.value},t.page(),n.kind==="list"),r&&n.kind==="qrcode"&&(k.widthMm=k.heightMm=Math.min(k.widthMm,k.heightMm)),f||(f=requestAnimationFrame(c))},D=M=>{window.removeEventListener("pointermove",h),window.removeEventListener("pointerup",V),window.removeEventListener("pointercancel",w),window.removeEventListener("keydown",C),f&&cancelAnimationFrame(f),k=M?k:u,y=void 0,g=void 0,c(),l=void 0,M&&JSON.stringify(k)!==JSON.stringify(u)&&t.commit(k)},V=()=>D(!0),w=()=>D(!1),C=M=>{M.key==="Escape"&&(M.preventDefault(),w())};window.addEventListener("pointermove",h),window.addEventListener("pointerup",V),window.addEventListener("pointercancel",w),window.addEventListener("keydown",C),l=w}return e.watch(t.disabled,a=>{a&&l?.()}),e.watch(t.page,()=>l?.()),e.onBeforeUnmount(()=>l?.()),{start:o}}const Ot={title:"报表模板设计器",heading:"模板设计",unpublished:"未发布",dirty:"有未保存修改",reset:"恢复草稿",saving:"正在保存…",save:"保存草稿",name:"模板名称",description:"说明",area:"明细区域",page:"页",header:"表头",field:"业务字段",width:"列宽(mm)",semantic:"字段语义",identifier:"编号",dimension:"分类",measure:"数值",date:"日期",text:"文本",bodyAlign:"正文对齐",headerAlign:"表头对齐",auto:"按字段语义",left:"居左",center:"居中",right:"居右",justify:"两端对齐",editable:"允许编辑",json:"完整模板 JSON",applyJson:"校验并应用 JSON",note:"字段映射应与数据源契约一致。此编辑器维护模板属性;保存由接入方提供的版本服务处理。",invalid:"请先修正模板错误,再预览或保存。"},Gt={paperAndPages:"纸张与版面",pageDirectory:"版面目录",pageName:"版面名称",addPage:"新增版面",duplicatePage:"复制版面",removePage:"删除版面",removePageConfirm:"此版面包含组件,删除后可通过撤销恢复。",confirmRemovePage:"确认删除",paperPreset:"纸张规格",labelPaper:"标签",customPaper:"自定义尺寸",paperWidth:"纸宽(mm)",paperHeight:"纸高(mm)",pageLayout:"展示方式",fixedPaper:"固定纸张",completeWide:"完整宽表",pageMargins:"页边距 · mm",marginTop:"上边距",marginRight:"右边距",marginBottom:"下边距",marginLeft:"左边距",pageOverflow:"{count} 个组件超出纸张",pageOverflowHint:"内容位置和尺寸已保留,请调整组件或纸张后核对打印预览。",locateOverflow:"定位超界组件",repeatRecords:"按记录生成标签",repeatRecordsHint:"每条记录按版面顺序生成,支持多版与多份。",recordDataset:"记录数据集",recordRowKey:"记录主键字段(可选)",labelCopies:"份数来源",fixedCopies:"固定份数",fieldCopies:"记录字段",copiesPerRecord:"每条记录份数",copiesField:"份数字段",repeatBoundHint:"已有组件绑定此记录;移除全部字段绑定后可关闭。",repeatOrderHint:"生成顺序:记录 → 份数 → 版面;预览会使用提供的真实样例。",repeatNeedsFixed:"先使用固定纸张、将组件置于纸内,并移除明细表或流式区域。",dataBinding:"记录绑定",contentSource:"内容来源",staticContent:"固定内容",recordField:"记录字段",bindingField:"绑定字段",bindingNeedsRepeat:"先在“模板”开启按记录生成,再选择字段。",bindingRecordHint:"字段随当前记录变化,空值与真实的 0 分开处理。",bindingImageHint:"图片字段使用 PNG/JPEG base64 data URL;空值不显示,业务 URL 由接入方安全加载。",valueFormat:"值格式",naturalFormat:"原始显示",numberFormat:"数值",percentFormat:"百分比",dateFormat:"日期",decimalPlaces:"小数位",datePattern:"日期格式",bindingDecoration:"前后缀与空值",valuePrefix:"前缀",valueSuffix:"后缀",emptyValueText:"空值显示",insertQrcode:"二维码",insertBarcode:"条形码",codeSettings:"编码设置",codeAdvancedSettings:"纠错、留白与使用说明",codeValue:"固定编码内容",codeSymbology:"条码制式",codeCorrection:"二维码纠错",codeQuietZone:"留白(模块)",codeShowText:"显示条码文字",eanContentHint:"使用完整的 8 / 13 位数字,包含有效校验位;切换制式不会改写内容。",code39ContentHint:"支持大写字母、数字、空格与 - . $ / + %;内容不会自动转换。",code128ContentHint:"支持可打印 ASCII 内容;中文请使用二维码。",codePlaceholder:"编码区域",codePreviewHint:"设计中显示内容标识;切换预览核对实际编码。",boundImagePlaceholder:"记录图片",rulerLabel:"毫米标尺",rulerToggle:"标尺",designSample:"样例",repeatPage:"每页重复",repeatNone:"不重复",repeatHeader:"页眉",repeatFooter:"页脚",textFormat:"文字样式",fontSize:"字号(pt)",fontBold:"加粗",textColor:"文字颜色",backgroundColor:"背景颜色",canvasGridLimited:"设计窗口仅显示前 2000 个单元格;最终预览与导出保留完整内容。",design:"设计",preview:"预览",componentSection:"组件",toolsSection:"工具",component:"组件",components:"组件目录",canvasHint:"点击选择 · 拖动移动 · 方向键微调 · Shift 加速 · Esc 取消",zoom:"缩放",sampleRows:"数据预览区域",treeSampleHint:"树形样例需完整且有界,请在报表预览中验证",resizeComponent:"调整组件尺寸",resizeColumn:"调整列宽",insertComponent:"添加组件",insertText:"文本",insertList:"明细表",insertImage:"图片",insertRect:"矩形",chartComponent:"图表",lineComponent:"线条",ellipseComponent:"椭圆",removeComponent:"删除组件",duplicateComponent:"复制组件",forward:"向上移动层级",backward:"向下移动层级",positionGroup:"位置与尺寸 · mm",componentContent:"组件内容",componentText:"文本内容",imageSource:"图片地址或 data URI",imageUpload:"上传图片",imageBudget:"图片不超过 4 MB,支持 PNG/JPEG/WebP/SVG",leftPosition:"左侧",topPosition:"顶部",componentWidth:"宽度",componentHeight:"高度",noComponent:"在画布或目录选择组件",listDataset:"数据集",columnOrder:"列结构",moveColumnLeft:"向前移动列",moveColumnRight:"向后移动列",columnVisible:"显示此列",headerStructure:"多层表头",addHeaderRow:"添加分组行",mergeHeader:"合并所选表头",splitHeader:"拆分表头",headerRow:"表头行",headerFirst:"开始列",headerLast:"结束列",flowLayout:"区域版式由 Excel 绑定向导管理;可编辑字段、格式与业务规则。",paramsTool:"查询参数",excelTool:"Excel 绑定",rulesTool:"计算与规则",reviewTool:"发布检查",toolsDescription:"按需绑定数据、定义规则并验证模板。",unapplied:"待应用",pendingToolsLabel:"待处理配置",pendingToolsHint:"应用或恢复后可保存",saveReadonly:"当前为只读,无法保存",saveConfirmation:"请先处理修改确认",saveUnchanged:"没有需要保存的修改",saveInvalid:"模板有错误,请先修正",saveJsonPending:"完整 JSON 待应用",returnToConfiguration:"返回配置",rulesNeedList:"请先在字段区域选择明细表。",undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览",contentGroup:"内容",formatGroup:"格式",autoShort:"自动",previousColumn:"上一字段",nextColumn:"下一字段",closeDirectory:"关闭字段目录",technicalDetails:"标识与修订",fieldPosition:"当前字段",previewFieldDirectory:"定位字段"},me={outlineTool:"结构大纲",reuseTool:"片段与样式",fitWidth:"适宽",fitPage:"适页",fitSelection:"选区",wideNavigation:"宽表导航",alignSelection:"对齐选区",leftEdges:"左对齐",centers:"水平居中",rightEdges:"右对齐",topEdges:"顶对齐",middles:"垂直居中",bottomEdges:"底对齐",horizontalSpacing:"水平等距",verticalSpacing:"垂直等距",lockSelection:"锁定位置",unlockSelection:"解锁位置",sessionLock:"位置锁定仅当前设计会话有效。",toolsPending:"工具中还有未应用的配置,请先应用或恢复后再保存模板。",...Ot,...Gt},zt={class:"mr-canvas"},jt={class:"mr-canvas-heading"},qt={class:"mr-canvas-sheet-info"},Ut=["title"],Jt=["title"],Wt={class:"mr-canvas-gesture-hint"},Kt={class:"mr-canvas-toolbar"},Yt={class:"mr-canvas-view-tools"},Xt=["aria-pressed"],Zt=["disabled"],Qt=["value","aria-label"],en=["value"],tn=["width","aria-label"],nn=["transform"],on={x:"3",y:"9"},an=["height"],ln=["transform"],rn={x:"3",y:"10"},sn=["data-canvas-component","aria-label","aria-pressed","tabindex","onFocus","onPointerdown","onClick","onKeydown"],cn={class:"mr-canvas-table"},dn={key:1,class:"mr-canvas-table-row is-header"},un=["onPointerdown"],mn={key:2,class:"mr-canvas-placeholder"},pn=["aria-label","onPointerdown"],fn={key:1,class:"mr-canvas-static-grid"},vn={key:0,class:"mr-canvas-grid-limit"},gn=["title"],hn={key:0},yn=["src"],bn=["title"],kn=["aria-label","onPointerdown"],En={key:0,class:"mr-canvas-navigator"},Sn=["value","aria-label"],Nn=e.defineComponent({__name:"TemplateDesignCanvas",props:{document:{},selection:{},selections:{},locked:{type:Function},activeColumnIndex:{},pageIndex:{},datasets:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},messages:{}},emits:["select","geometry","column","width"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),{viewport:r,zoom:s,scale:u,page:p,wide:S,fraction:k,fit:f,setZoom:b,sync:N,navigate:y}=It({get document(){return o.document},get pageIndex(){return o.pageIndex},get selection(){return o.selection},get columnIndex(){return o.activeColumnIndex}}),g=e.computed(()=>o.disabled===!0||o.geometryDisabled===!0||!!p.value.flow),E=e.computed(()=>p.value.components.map(x=>x.kind==="list"?Ct(x,o.datasets?.[x.dataset]??[],p.value.flow||x.cardinality==="record"?1:3):[])),c=e.computed(()=>p.value.components.map(x=>Rt(x,o.document,o.datasets))),d=e.ref(!0),h=e.computed(()=>ot(p.value.widthMm,u.value)),D=e.computed(()=>ot(p.value.heightMm,u.value));function V(x,T,B){return{width:`${T*u.value}px`,opacity:B?.35:1,textAlign:x.style?.align,paddingLeft:x.indentMm?`${x.indentMm*u.value}px`:void 0,color:x.style?.color,backgroundColor:x.style?.backgroundColor,fontWeight:x.style?.bold?"700":"400",fontSize:`${$e.resolveFontSize(x.style).fontSizePx*s.value}px`}}function w(x){return o.locked?.({pageIndex:o.pageIndex,componentIndex:x})===!0}function C(x,T){a("select",{pageIndex:o.pageIndex,componentIndex:T,additive:x.ctrlKey||x.metaKey||x.shiftKey}),!x.ctrlKey&&!x.metaKey&&!x.shiftKey&&!w(T)&&M.start(x,p.value.components[T])}const M=Ht({scale:u,page:()=>p.value,disabled:()=>g.value,commit:x=>a("geometry",x)});function $(x){return(o.selections??(o.selection?[o.selection]:[])).some(T=>T.pageIndex===o.pageIndex&&T.componentIndex===x)}function F(x){const T=p.value.components[x],B=T.kind==="list"?T.id:T.nid,L=p.value.flow?.bands.find(U=>U.componentIds.includes(B??"")),_=L&&T.kind==="list"?L.topMm+L.heightMm-T.topMm:Le(T);return{left:`${T.leftMm*u.value}px`,top:`${T.topMm*u.value}px`,width:`${T.widthMm*u.value}px`,height:`${_*u.value}px`}}function q(x,T){const B=p.value.components[T];if(g.value||w(T)||!$(T))return;const L={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},_=L[x.key];if(!_)return;x.preventDefault(),x.stopPropagation();const U=ce(B),Q=x.shiftKey?5:.5;U.leftMm+=_[0]*Q,U.topMm+=_[1]*Q,a("geometry",U)}function Z(x){let T=0;return x.columns.map(B=>(T+=B.widthMm,T))}function I(x){return x.grid?P.resolveGridLayout(x.grid,x.widthMm,x.heightMm).cells.slice(0,2e3):[]}function i(x){return x.headerGrid?P.resolveGridLayout(x.headerGrid,x.widthMm,x.headerGrid.rowHeightsMm?.reduce((T,B)=>T+B,0)??x.headerGrid.cells.length*8).cells:[]}let G;e.watch(()=>g.value,x=>{x&&G?.()}),e.watch(()=>o.document,()=>G?.()),e.onBeforeUnmount(()=>G?.());function O(x,T,B){if(g.value||x.button!==0)return;x.preventDefault(),x.stopPropagation(),G?.();const L=x.clientX,_=T.columns[B].widthMm;let U=_;const Q=x.currentTarget,oe=re=>{U=Math.max(2,Math.round((_+(re.clientX-L)/u.value)*2)/2),Q.style.transform=`translateX(${(U-_)*u.value}px)`},ee=()=>{window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",K),window.removeEventListener("pointercancel",te),window.removeEventListener("keydown",ae),Q.style.transform="",G=void 0},K=()=>{ee(),U!==_&&a("width",B,U)},te=()=>ee(),ae=re=>{re.key==="Escape"&&(re.preventDefault(),te())};window.addEventListener("pointermove",oe),window.addEventListener("pointerup",K),window.addEventListener("pointercancel",te),window.addEventListener("keydown",ae),G=te}return(x,T)=>(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",jt,[e.createElementVNode("div",qt,[e.createElementVNode("strong",{title:e.unref(Re)(e.unref(p),t.pageIndex,n.value.page)},e.toDisplayString(e.unref(Re)(e.unref(p),t.pageIndex,n.value.page)),9,Ut),e.createElementVNode("span",null,e.toDisplayString(e.unref(p).widthMm)+" × "+e.toDisplayString(e.unref(p).heightMm)+" mm",1),t.document.template.repeat?(e.openBlock(),e.createElementBlock("small",{key:0,title:t.document.template.repeat.dataset},e.toDisplayString(n.value.designSample)+" · "+e.toDisplayString(t.document.template.repeat.dataset),9,Jt)):e.createCommentVNode("",!0)]),e.createElementVNode("span",Wt,e.toDisplayString(n.value.canvasHint),1),e.createElementVNode("div",Kt,[e.createElementVNode("nav",Yt,[e.createElementVNode("button",{type:"button","aria-pressed":d.value,onClick:T[0]||(T[0]=B=>d.value=!d.value)},e.toDisplayString(n.value.rulerToggle),9,Xt),e.createElementVNode("button",{type:"button",onClick:T[1]||(T[1]=B=>e.unref(f)("width"))},e.toDisplayString(n.value.fitWidth),1),e.createElementVNode("button",{type:"button",onClick:T[2]||(T[2]=B=>e.unref(f)("page"))},e.toDisplayString(n.value.fitPage),1),e.createElementVNode("button",{type:"button",disabled:!t.selection,onClick:T[3]||(T[3]=B=>e.unref(f)("selection"))},e.toDisplayString(n.value.fitSelection),9,Zt)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.zoom),1),e.createElementVNode("select",{value:e.unref(s),"aria-label":n.value.zoom,onChange:T[4]||(T[4]=B=>e.unref(b)(Number(B.target.value)))},[[.5,.8,1,1.25].includes(e.unref(s))?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",{key:0,value:e.unref(s)},e.toDisplayString(Math.round(e.unref(s)*100))+"%",9,en)),T[7]||(T[7]=e.createElementVNode("option",{value:.5},"50%",-1)),T[8]||(T[8]=e.createElementVNode("option",{value:.8},"80%",-1)),T[9]||(T[9]=e.createElementVNode("option",{value:1},"100%",-1)),T[10]||(T[10]=e.createElementVNode("option",{value:1.25},"125%",-1))],40,Qt)])])]),e.createElementVNode("div",{ref_key:"viewport",ref:r,class:"mr-canvas-scroll",onScrollPassive:T[5]||(T[5]=(...B)=>e.unref(N)&&e.unref(N)(...B))},[e.createElementVNode("div",{class:"mr-canvas-paper",style:e.normalizeStyle({width:`${e.unref(p).widthMm*e.unref(u)}px`,height:`${e.unref(p).heightMm*e.unref(u)}px`})},[d.value?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"mr-canvas-ruler is-horizontal",width:e.unref(p).widthMm*e.unref(u),height:"17","aria-label":n.value.rulerLabel,role:"img"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,B=>(e.openBlock(),e.createElementBlock("g",{key:B.mm,transform:`translate(${B.position}, 0)`},[T[11]||(T[11]=e.createElementVNode("line",{y1:"12",y2:"17"},null,-1)),e.createElementVNode("text",on,e.toDisplayString(B.mm),1)],8,nn))),128))],8,tn)):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("svg",{key:1,class:"mr-canvas-ruler is-vertical",width:"17",height:e.unref(p).heightMm*e.unref(u),"aria-hidden":"true"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,B=>(e.openBlock(),e.createElementBlock("g",{key:B.mm,transform:`translate(0, ${B.position})`},[T[12]||(T[12]=e.createElementVNode("line",{x1:"12",x2:"17"},null,-1)),e.createElementVNode("text",rn,e.toDisplayString(B.mm),1)],8,ln))),128))],8,an)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p).components,(B,L)=>(e.openBlock(),e.createElementBlock("div",{key:L,class:e.normalizeClass(["mr-canvas-component",{"is-selected":$(L),"is-locked":w(L)}]),"data-canvas-component":L,style:e.normalizeStyle(F(L)),role:"button","aria-label":`${n.value.component} ${L+1} ${B.kind}`,"aria-pressed":$(L),tabindex:$(L)?0:-1,onFocus:_=>!$(L)&&a("select",{pageIndex:t.pageIndex,componentIndex:L}),onPointerdown:_=>C(_,L),onClick:_=>_.detail===0&&!$(L)&&a("select",{pageIndex:t.pageIndex,componentIndex:L}),onKeydown:_=>q(_,L)},[B.kind==="list"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",cn,[B.header!==!1&&B.headerGrid?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-canvas-merged",style:e.normalizeStyle({height:`${(B.headerGrid.rowHeightsMm?.reduce((_,U)=>_+U,0)??B.headerGrid.cells.length*8)*e.unref(u)}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i(B),(_,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,style:e.normalizeStyle({left:`${_.xMm*e.unref(u)}px`,top:`${_.yMm*e.unref(u)}px`,width:`${_.widthMm*e.unref(u)}px`,height:`${_.heightMm*e.unref(u)}px`,textAlign:_.cell.style?.align??"center"})},e.toDisplayString(_.cell.text),5))),128))],4)):B.header!==!1?(e.openBlock(),e.createElementBlock("div",dn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.columns,(_,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,style:e.normalizeStyle(V({text:_.header,style:e.unref(ke.resolveListHeaderStyle)(B,_)},_.widthMm,_.hidden)),onPointerdown:e.withModifiers(Q=>{a("select",{pageIndex:t.pageIndex,componentIndex:L}),a("column",U)},["stop"])},e.toDisplayString(_.header),45,un))),128))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value[L],(_,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,class:"mr-canvas-table-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.columns,(Q,oe)=>(e.openBlock(),e.createElementBlock("div",{key:oe,style:e.normalizeStyle(V(_[oe],Q.widthMm,Q.hidden))},e.toDisplayString(_[oe].text),5))),128))]))),128)),E.value[L]?.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",mn,e.toDisplayString(B.dataset)+" · "+e.toDisplayString(B.tree&&t.datasets?.[B.dataset]?.length?n.value.treeSampleHint:n.value.sampleRows),1))]),$(L)&&!g.value&&!w(L)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Z(B),(_,U)=>(e.openBlock(),e.createElementBlock("span",{key:U,class:"mr-canvas-column-handle","aria-label":`${n.value.resizeColumn} ${B.columns[U]?.header}`,role:"separator","aria-orientation":"vertical",style:e.normalizeStyle({left:`${_*e.unref(u)}px`}),onPointerdown:Q=>O(Q,B,U)},null,44,pn))),128)):e.createCommentVNode("",!0)],64)):B.grid?(e.openBlock(),e.createElementBlock("div",fn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I(B),(_,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,style:e.normalizeStyle({left:`${_.xMm*e.unref(u)}px`,top:`${_.yMm*e.unref(u)}px`,width:`${_.widthMm*e.unref(u)}px`,height:`${_.heightMm*e.unref(u)}px`,backgroundColor:_.cell.style?.backgroundColor,color:_.cell.style?.color,fontWeight:_.cell.style?.bold?"700":"400",fontSize:`${e.unref($e.resolveFontSize)(_.cell.style).fontSizePx*e.unref(s)}px`,textAlign:_.cell.style?.align??"left"})},e.toDisplayString(_.cell.text),5))),128)),B.grid.cells.reduce((_,U)=>_+U.length,0)>2e3?(e.openBlock(),e.createElementBlock("span",vn,e.toDisplayString(n.value.canvasGridLimited),1)):e.createCommentVNode("",!0)])):(B.kind==="barcode"||B.kind==="qrcode")&&!c.value[L]?.image?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["mr-canvas-code",{"is-error":c.value[L]?.error}]),title:c.value[L]?.error??n.value.codePreviewHint},[T[13]||(T[13]=e.createElementVNode("svg",{viewBox:"0 0 32 24","aria-hidden":"true"},[e.createElementVNode("rect",{x:"3",y:"3",width:"26",height:"18",rx:"2"}),e.createElementVNode("path",{d:"M10 8 6 12l4 4m12-8 4 4-4 4m-8 2 4-12"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(B.kind==="qrcode"?n.value.insertQrcode:(B.code?.symbology??"code128").toUpperCase()),1),e.createElementVNode("span",null,e.toDisplayString(c.value[L]?.text||n.value.codePlaceholder),1),c.value[L]?.bound?(e.openBlock(),e.createElementBlock("small",hn,e.toDisplayString(B.binding?.field),1)):e.createCommentVNode("",!0)],10,gn)):c.value[L]?.image?(e.openBlock(),e.createElementBlock("img",{key:3,src:c.value[L]?.image,alt:"",draggable:"false"},null,8,yn)):(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(["mr-canvas-content",{"is-binding-error":c.value[L]?.error,"is-bound-image":B.kind==="image"&&B.binding}]),title:c.value[L]?.error==="image-binding"?n.value.bindingImageHint:c.value[L]?.error,style:e.normalizeStyle({color:B.style?.color,backgroundColor:B.style?.backgroundColor,fontWeight:B.style?.bold?"700":"400",fontSize:`${e.unref($e.resolveFontSize)(B.style).fontSizePx*e.unref(s)}px`,textAlign:B.style?.align,justifyContent:B.style?.verticalAlign==="bottom"?"flex-end":B.style?.verticalAlign==="middle"?"center":"flex-start"})},e.toDisplayString(c.value[L]?.text||(B.kind==="rect"?"":B.kind==="image"&&B.binding?n.value.boundImagePlaceholder:"")),15,bn)),$(L)&&!g.value&&!w(L)?(e.openBlock(),e.createElementBlock("span",{key:5,class:"mr-canvas-resize","aria-label":n.value.resizeComponent,role:"separator",onPointerdown:_=>e.unref(M).start(_,B,!0)},null,40,kn)):e.createCommentVNode("",!0)],46,sn))),128))],4)],544),e.unref(S)?(e.openBlock(),e.createElementBlock("footer",En,[e.createElementVNode("span",null,e.toDisplayString(n.value.wideNavigation),1),e.createElementVNode("input",{type:"range",min:"0",max:"100",value:e.unref(k),"aria-label":n.value.wideNavigation,onInput:T[6]||(T[6]=B=>e.unref(y)(Number(B.target.value)))},null,40,Sn),e.createElementVNode("span",null,e.toDisplayString(e.unref(k))+"%",1)])):e.createCommentVNode("",!0)]))}}),wn=W._export_sfc(Nn,[["__scopeId","data-v-c512529e"]]),Vn={class:"mr-component-binding"},xn=["value","disabled"],Cn={value:"static"},Bn=["disabled"],Mn={key:0,class:"mr-binding-hint"},Dn=["value","disabled"],Tn=["value"],$n={key:0,class:"mr-binding-grid"},In=["value","disabled"],Rn={value:"natural"},_n={value:"number"},Ln={value:"percent"},Pn={value:"date"},An={key:0},Fn=["value","disabled"],Hn={key:1},On=["value","disabled"],Gn={key:1},zn={class:"mr-binding-grid"},jn=["value","disabled"],qn=["value","disabled"],Un=["value","disabled"],Jn={class:"mr-binding-hint"},Wn=e.defineComponent({__name:"ComponentDataBinding",props:{component:{},repeat:{},schema:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),r=e.computed(()=>o.component.binding),s=`mr-component-fields-${e.getCurrentInstance()?.uid??0}`;function u(b){return b.target.value}function p(b){!o.disabled&&r.value&&a("change",{...r.value,...b})}function S(b){o.disabled||(u(b)==="static"?a("change",void 0):o.repeat&&a("change",{field:o.schema?.fields[0]?.field??"value"}))}function k(b){if(!r.value||o.disabled)return;const N={...r.value},y=u(b);y==="natural"?delete N.format:N.format=y==="date"?{kind:"date",pattern:"YYYY-MM-DD"}:{kind:y,digits:2},a("change",N)}function f(b){const N=u(b),y=r.value?.format;N.trim()&&y&&y.kind!=="date"&&p({format:{...y,digits:Number(N)}})}return(b,N)=>(e.openBlock(),e.createElementBlock("div",Vn,[e.createElementVNode("h3",null,e.toDisplayString(n.value.componentContent),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.contentSource),1),e.createElementVNode("select",{value:r.value?"field":"static",disabled:t.disabled,onChange:S},[e.createElementVNode("option",Cn,e.toDisplayString(n.value.staticContent),1),e.createElementVNode("option",{value:"field",disabled:!t.repeat},e.toDisplayString(n.value.recordField),9,Bn)],40,xn)]),t.repeat?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Mn,e.toDisplayString(n.value.bindingNeedsRepeat),1)),r.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.bindingField),1),e.createElementVNode("input",{value:r.value.field,list:s,disabled:t.disabled,onChange:N[0]||(N[0]=y=>u(y).trim()&&p({field:u(y).trim()}))},null,40,Dn)]),e.createElementVNode("datalist",{id:s},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema?.fields??[],y=>(e.openBlock(),e.createElementBlock("option",{key:y.field,value:y.field},e.toDisplayString(y.label),9,Tn))),128))]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",$n,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueFormat),1),e.createElementVNode("select",{value:r.value.format?.kind??"natural",disabled:t.disabled,onChange:k},[e.createElementVNode("option",Rn,e.toDisplayString(n.value.naturalFormat),1),e.createElementVNode("option",_n,e.toDisplayString(n.value.numberFormat),1),e.createElementVNode("option",Ln,e.toDisplayString(n.value.percentFormat),1),e.createElementVNode("option",Pn,e.toDisplayString(n.value.dateFormat),1)],40,In)]),r.value.format&&r.value.format.kind!=="date"?(e.openBlock(),e.createElementBlock("label",An,[e.createTextVNode(e.toDisplayString(n.value.decimalPlaces),1),e.createElementVNode("input",{type:"number",min:"0",max:"100",step:"1",value:r.value.format.digits??2,disabled:t.disabled,onChange:f},null,40,Fn)])):r.value.format?.kind==="date"?(e.openBlock(),e.createElementBlock("label",Hn,[e.createTextVNode(e.toDisplayString(n.value.datePattern),1),e.createElementVNode("input",{value:r.value.format.pattern??"YYYY-MM-DD",disabled:t.disabled,onChange:N[1]||(N[1]=y=>p({format:{kind:"date",pattern:u(y)}}))},null,40,On)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),t.component.kind!=="image"?(e.openBlock(),e.createElementBlock("details",Gn,[e.createElementVNode("summary",null,e.toDisplayString(n.value.bindingDecoration),1),e.createElementVNode("div",zn,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valuePrefix),1),e.createElementVNode("input",{value:r.value.prefix??"",disabled:t.disabled,onChange:N[2]||(N[2]=y=>p({prefix:u(y)}))},null,40,jn)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueSuffix),1),e.createElementVNode("input",{value:r.value.suffix??"",disabled:t.disabled,onChange:N[3]||(N[3]=y=>p({suffix:u(y)}))},null,40,qn)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.emptyValueText),1),e.createElementVNode("input",{value:r.value.emptyText??"",disabled:t.disabled,onChange:N[4]||(N[4]=y=>p({emptyText:u(y)}))},null,40,Un)])])):e.createCommentVNode("",!0),e.createElementVNode("p",Jn,e.toDisplayString(t.repeat?.dataset)+" · "+e.toDisplayString(t.component.kind==="image"?n.value.bindingImageHint:n.value.bindingRecordHint),1)],64)):e.createCommentVNode("",!0)]))}}),Kn=W._export_sfc(Wn,[["__scopeId","data-v-4558f265"]]),Yn={class:"mr-code-properties"},Xn={key:0},Zn=["value","disabled"],Qn={key:1},eo=["value","disabled"],to={key:2,class:"mr-code-checkbox"},no=["checked","disabled"],oo={class:"mr-code-advanced"},ao={class:"mr-code-grid"},lo={key:0},ro=["value","disabled"],io=["min","value","disabled"],so={key:0},co=e.defineComponent({__name:"CodeComponentInspector",props:{component:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),r=e.computed(()=>o.component.kind==="qrcode"?4:o.component.code?.symbology?.startsWith("ean")?11:10);function s(S){return S.target.value}function u(S){o.disabled||a("change",{...o.component.code,...S})}function p(S){const k=s(S);u({symbology:k,quietZoneModules:k.startsWith("ean")?11:10})}return(S,k)=>(e.openBlock(),e.createElementBlock("div",Yn,[e.createElementVNode("h3",null,e.toDisplayString(n.value.codeSettings),1),t.component.binding?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",Xn,[e.createTextVNode(e.toDisplayString(n.value.codeValue),1),e.createElementVNode("textarea",{rows:"2",value:t.component.code?.value??t.component.fallbackText??t.component.text??"",disabled:t.disabled,onChange:k[0]||(k[0]=f=>u({value:s(f)}))},null,40,Zn)])),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",Qn,[e.createTextVNode(e.toDisplayString(n.value.codeSymbology),1),e.createElementVNode("select",{value:t.component.code?.symbology??"code128",disabled:t.disabled,onChange:p},[...k[4]||(k[4]=[e.createElementVNode("option",{value:"code128"},"Code 128",-1),e.createElementVNode("option",{value:"code39"},"Code 39",-1),e.createElementVNode("option",{value:"ean13"},"EAN-13",-1),e.createElementVNode("option",{value:"ean8"},"EAN-8",-1)])],40,eo)])):e.createCommentVNode("",!0),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",to,[e.createElementVNode("input",{type:"checkbox",checked:t.component.code?.showText===!0,disabled:t.disabled,onChange:k[1]||(k[1]=f=>u({showText:f.target.checked}))},null,40,no),e.createTextVNode(e.toDisplayString(n.value.codeShowText),1)])):e.createCommentVNode("",!0),e.createElementVNode("details",oo,[e.createElementVNode("summary",null,e.toDisplayString(n.value.codeAdvancedSettings),1),e.createElementVNode("div",ao,[t.component.kind==="qrcode"?(e.openBlock(),e.createElementBlock("label",lo,[e.createTextVNode(e.toDisplayString(n.value.codeCorrection),1),e.createElementVNode("select",{value:t.component.code?.errorCorrection??"M",disabled:t.disabled,onChange:k[2]||(k[2]=f=>u({errorCorrection:s(f)}))},[...k[5]||(k[5]=[e.createElementVNode("option",{value:"L"},"L · 7%",-1),e.createElementVNode("option",{value:"M"},"M · 15%",-1),e.createElementVNode("option",{value:"Q"},"Q · 25%",-1),e.createElementVNode("option",{value:"H"},"H · 30%",-1)])],40,ro)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.codeQuietZone),1),e.createElementVNode("input",{type:"number",min:r.value,max:"64",step:"1",value:t.component.code?.quietZoneModules??r.value,disabled:t.disabled,onChange:k[3]||(k[3]=f=>s(f).trim()&&u({quietZoneModules:Number(s(f))}))},null,40,io)])]),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("p",so,e.toDisplayString(t.component.code?.symbology?.startsWith("ean")?n.value.eanContentHint:t.component.code?.symbology==="code39"?n.value.code39ContentHint:n.value.code128ContentHint),1)):e.createCommentVNode("",!0),e.createElementVNode("p",null,e.toDisplayString(n.value.codePreviewHint),1)])]))}}),uo=W._export_sfc(co,[["__scopeId","data-v-907fe45a"]]),mo=["aria-label"],po=["data-align","aria-label","title","aria-checked","tabindex","onClick","onKeydown"],fo={key:0},vo={key:1,viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},go={key:0,d:"M3 4h14M3 8h9M3 12h14M3 16h9"},ho={key:1,d:"M3 4h14M6 8h8M3 12h14M6 16h8"},yo={key:2,d:"M3 4h14M8 8h9M3 12h14M8 16h9"},bo={key:3,d:"M3 4h14M3 8h14M3 12h14M3 16h14"},ko=e.defineComponent({__name:"AlignmentControl",props:{modelValue:{},label:{},labels:{},autoLabel:{},allowAuto:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,a=l,n=()=>o.allowAuto?["auto","left","center","right","justify"]:["left","center","right","justify"];async function r(s,u){if(!["ArrowLeft","ArrowRight","Home","End"].includes(s.key))return;s.preventDefault();const S=n(),k=S.indexOf(u),f=s.key==="Home"?0:s.key==="End"?S.length-1:(k+(s.key==="ArrowRight"?1:-1)+S.length)%S.length;a("update:modelValue",S[f]);const b=s.currentTarget.parentElement;await e.nextTick(),b?.querySelector(`[data-align="${S[f]}"]`)?.focus()}return(s,u)=>(e.openBlock(),e.createElementBlock("div",{class:"mr-designer-alignment",role:"radiogroup","aria-label":t.label},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n(),p=>(e.openBlock(),e.createElementBlock("button",{key:p,type:"button",role:"radio","data-align":p,"aria-label":t.labels[p],title:t.labels[p],"aria-checked":t.modelValue===p,tabindex:t.modelValue===p?0:-1,onClick:S=>a("update:modelValue",p),onKeydown:S=>r(S,p)},[p==="auto"?(e.openBlock(),e.createElementBlock("span",fo,e.toDisplayString(t.autoLabel),1)):(e.openBlock(),e.createElementBlock("svg",vo,[p==="left"?(e.openBlock(),e.createElementBlock("path",go)):p==="center"?(e.openBlock(),e.createElementBlock("path",ho)):p==="right"?(e.openBlock(),e.createElementBlock("path",yo)):(e.openBlock(),e.createElementBlock("path",bo))]))],40,po))),128))],8,mo))}}),Ke=W._export_sfc(ko,[["__scopeId","data-v-c85770c4"]]),Eo=["disabled"],So={class:"mr-component-content"},No={key:1},wo=["value"],Vo=["value"],xo={class:"mr-component-upload"},Co=["aria-label"],Bo={key:0,role:"alert"},Mo={key:4},Do=["value"],To={key:0,class:"mr-component-type"},$o={class:"mr-component-dimensions"},Io=["value"],Ro=["checked"],_o={class:"mr-component-dimensions"},Lo=["value"],Po=["value"],Ao=["open"],Fo={class:"mr-component-dimensions"},Ho=["min","value","disabled","onChange"],Oo={key:0},Go=["value","disabled"],zo={value:""},jo={value:"header"},qo={value:"footer"},Uo=e.defineComponent({__name:"CanvasComponentInspector",props:{component:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},repeat:{},schema:{},messages:{}},emits:["geometry","patch"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),r=e.ref(""),s=["leftMm","topMm","widthMm","heightMm"],u=e.computed(()=>[n.value.leftPosition,n.value.topPosition,n.value.componentWidth,n.value.componentHeight]);function p(N,y){if(o.disabled||o.geometryDisabled)return;const g=Number(y.target.value);if(!Number.isFinite(g))return;const E={...ce(o.component),[N]:g};o.component.kind==="qrcode"&&(N==="widthMm"||N==="heightMm")&&(E.widthMm=E.heightMm=g),a("geometry",E)}function S(N,y){if(o.component.kind==="list")return;const g={...o.component.style,[N]:y};N==="fontSize"&&delete g.fontSizePx,a("patch",{style:g})}const k=e.computed(()=>({auto:n.value.auto,left:n.value.left,center:n.value.center,right:n.value.right,justify:n.value.justify}));function f(N){return N.target.value}async function b(N){const y=N.target,g=y.files?.[0];if(!g)return;r.value="";const E=o.component;try{if(g.size>4*1024*1024||!["image/png","image/jpeg","image/webp","image/svg+xml"].includes(g.type))throw new Error(n.value.imageBudget);const c=new FileReader,d=await new Promise((h,D)=>{c.onload=()=>h(String(c.result)),c.onerror=()=>D(c.error),c.readAsDataURL(g)});!o.disabled&&o.component===E&&a("patch",{imageData:d})}catch(c){r.value=c instanceof Error?c.message:String(c)}finally{y.value=""}}return(N,y)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-component-properties",disabled:t.disabled},[e.createElementVNode("div",So,[["text","image","barcode","qrcode"].includes(t.component.kind)&&t.component.kind!=="list"&&!t.component.grid?(e.openBlock(),e.createBlock(Kn,{key:0,component:t.component,repeat:t.repeat,schema:t.schema,disabled:t.disabled,messages:n.value,onChange:y[0]||(y[0]=g=>a("patch",{binding:g,...["barcode","qrcode"].includes(t.component.kind)?{imageData:void 0}:{}}))},null,8,["component","repeat","schema","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="text"&&!t.component.binding?(e.openBlock(),e.createElementBlock("label",No,[e.createTextVNode(e.toDisplayString(n.value.componentText),1),e.createElementVNode("textarea",{rows:"3",value:t.component.text,onChange:y[1]||(y[1]=g=>a("patch",{text:f(g)}))},null,40,wo)])):e.createCommentVNode("",!0),t.component.kind==="image"&&!t.component.binding?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.imageSource),1),e.createElementVNode("textarea",{rows:"2",value:t.component.imageData,onChange:y[2]||(y[2]=g=>a("patch",{imageData:f(g)}))},null,40,Vo)]),e.createElementVNode("label",xo,[e.createTextVNode(e.toDisplayString(n.value.imageUpload),1),e.createElementVNode("input",{type:"file",accept:"image/png,image/jpeg,image/webp,image/svg+xml","aria-label":n.value.imageUpload,onChange:b},null,40,Co)]),r.value?(e.openBlock(),e.createElementBlock("p",Bo,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.component.kind==="barcode"||t.component.kind==="qrcode"?(e.openBlock(),e.createBlock(uo,{key:3,component:t.component,disabled:t.disabled,messages:n.value,onChange:y[3]||(y[3]=g=>a("patch",{code:g,imageData:void 0}))},null,8,["component","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="list"?(e.openBlock(),e.createElementBlock("label",Mo,[e.createTextVNode(e.toDisplayString(n.value.listDataset),1),e.createElementVNode("input",{value:t.component.dataset,onChange:y[4]||(y[4]=g=>a("patch",{dataset:f(g)}))},null,40,Do)])):e.createCommentVNode("",!0)]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",To,[e.createElementVNode("h3",null,e.toDisplayString(n.value.textFormat),1),e.createElementVNode("div",$o,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontSize),1),e.createElementVNode("input",{type:"number",min:"1",max:"200",value:e.unref($e.resolveFontSize)(t.component.style).fontSizePt,onChange:y[5]||(y[5]=g=>S("fontSize",Number(f(g))))},null,40,Io)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontBold),1),e.createElementVNode("input",{type:"checkbox",checked:t.component.style?.bold===!0,onChange:y[6]||(y[6]=g=>S("bold",g.target.checked))},null,40,Ro)])]),e.createVNode(Ke,{"model-value":t.component.style?.align??"left",label:n.value.bodyAlign,labels:k.value,"auto-label":n.value.autoShort,"onUpdate:modelValue":y[7]||(y[7]=g=>S("align",g))},null,8,["model-value","label","labels","auto-label"]),e.createElementVNode("div",_o,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.textColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.color??"#233c5c",onChange:y[8]||(y[8]=g=>S("color",f(g)))},null,40,Lo)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.backgroundColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.backgroundColor??"#ffffff",onChange:y[9]||(y[9]=g=>S("backgroundColor",f(g)))},null,40,Po)])])])):e.createCommentVNode("",!0),e.createElementVNode("details",{class:"mr-component-position",open:!t.repeat},[e.createElementVNode("summary",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.positionGroup),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(ce)(t.component).widthMm)+" × "+e.toDisplayString(e.unref(ce)(t.component).heightMm),1)]),e.createElementVNode("div",Fo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.filter(g=>t.component.kind!=="list"||g!=="heightMm"),(g,E)=>(e.openBlock(),e.createElementBlock("label",{key:g},[e.createTextVNode(e.toDisplayString(u.value[E]),1),e.createElementVNode("input",{type:"number",step:"0.5",min:g==="widthMm"||g==="heightMm"?2:0,value:e.unref(ce)(t.component)[g],disabled:t.geometryDisabled,onChange:c=>p(g,c)},null,40,Ho)]))),128))]),t.component.kind!=="list"&&!t.repeat?(e.openBlock(),e.createElementBlock("label",Oo,[e.createTextVNode(e.toDisplayString(n.value.repeatPage),1),e.createElementVNode("select",{value:t.component.pageAnchor??"",disabled:t.geometryDisabled,onChange:y[10]||(y[10]=g=>a("patch",{pageAnchor:f(g)||void 0}))},[e.createElementVNode("option",zo,e.toDisplayString(n.value.repeatNone),1),e.createElementVNode("option",jo,e.toDisplayString(n.value.repeatHeader),1),e.createElementVNode("option",qo,e.toDisplayString(n.value.repeatFooter),1)],40,Go)])):e.createCommentVNode("",!0)],8,Ao)],8,Eo))}}),Jo=W._export_sfc(Uo,[["__scopeId","data-v-435b5126"]]),Wo=["disabled"],Ko={class:"mr-page-section-heading"},Yo=["aria-label"],Xo=["aria-pressed","onClick"],Zo={class:"mr-page-actions"},Qo=["disabled"],ea={key:0,class:"mr-page-confirm",role:"alert"},ta=["value","placeholder"],na=["value"],oa=["value"],aa={value:"custom"},la={class:"mr-page-grid"},ra=["value"],ia=["value"],sa=["value"],ca={value:"page"},da=["disabled"],ua={class:"mr-page-grid"},ma=["value","onChange"],pa={key:1,class:"mr-page-overflow",role:"status"},fa=e.defineComponent({__name:"TemplatePageInspector",props:{document:{},pageIndex:{},disabled:{type:Boolean},messages:{}},emits:["select","command","locate"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),r=e.computed(()=>o.document.template.pages[o.pageIndex]),s=e.computed(()=>Je.find(E=>E.widthMm===r.value.widthMm&&E.heightMm===r.value.heightMm)?.id??"custom"),u=e.computed(()=>ut(r.value)),p=e.ref(!1);e.watch(()=>[o.pageIndex,o.document],()=>{p.value=!1});const S=["marginTopMm","marginRightMm","marginBottomMm","marginLeftMm"],k=e.computed(()=>[n.value.marginTop,n.value.marginRight,n.value.marginBottom,n.value.marginLeft]);function f(E){return E.target.value}function b(E){o.disabled||a("command",{type:"patch",patch:E})}function N(E){const c=Je.find(d=>d.id===f(E));c&&b({widthMm:c.widthMm,heightMm:c.heightMm,layout:"page"})}function y(E,c){const d=f(c);d.trim()&&Number.isFinite(Number(d))&&b({[E]:Number(d)})}function g(){if(!(o.disabled||o.document.template.pages.length<=1)){if(r.value.components.length&&!p.value){p.value=!0;return}a("command",{type:"remove"}),p.value=!1}}return(E,c)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-page-properties",disabled:t.disabled},[e.createElementVNode("div",Ko,[e.createElementVNode("h3",null,e.toDisplayString(n.value.paperAndPages),1),e.createElementVNode("span",null,e.toDisplayString(r.value.widthMm)+" × "+e.toDisplayString(r.value.heightMm)+" mm",1)]),e.createElementVNode("div",{class:"mr-page-list","aria-label":n.value.pageDirectory},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.document.template.pages,(d,h)=>(e.openBlock(),e.createElementBlock("button",{key:h,type:"button","aria-pressed":t.pageIndex===h,onClick:D=>a("select",h)},[e.createElementVNode("span",null,e.toDisplayString(h+1),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(Re)(d,h,n.value.page)),1),e.createElementVNode("small",null,e.toDisplayString(d.widthMm)+" × "+e.toDisplayString(d.heightMm),1)],8,Xo))),128))],8,Yo),e.createElementVNode("div",Zo,[e.createElementVNode("button",{type:"button",onClick:c[0]||(c[0]=d=>a("command",{type:"add"}))},"+ "+e.toDisplayString(n.value.addPage),1),e.createElementVNode("button",{type:"button",onClick:c[1]||(c[1]=d=>a("command",{type:"duplicate"}))},e.toDisplayString(n.value.duplicatePage),1),e.createElementVNode("button",{type:"button",disabled:t.disabled||t.document.template.pages.length<=1,onClick:g},e.toDisplayString(n.value.removePage),9,Qo)]),p.value?(e.openBlock(),e.createElementBlock("div",ea,[e.createElementVNode("span",null,e.toDisplayString(n.value.removePageConfirm),1),e.createElementVNode("button",{type:"button",onClick:c[2]||(c[2]=d=>p.value=!1)},e.toDisplayString(n.value.keepEditing),1),e.createElementVNode("button",{type:"button",onClick:g},e.toDisplayString(n.value.confirmRemovePage),1)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageName),1),e.createElementVNode("input",{value:r.value.meta?.title??"",placeholder:`${n.value.page} ${t.pageIndex+1}`,maxlength:"120",onChange:c[3]||(c[3]=d=>b({meta:{...r.value.meta,title:f(d)}}))},null,40,ta)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperPreset),1),e.createElementVNode("select",{value:s.value,onChange:N},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Je),d=>(e.openBlock(),e.createElementBlock("option",{key:d.id,value:d.id},e.toDisplayString(d.id.startsWith("label")?n.value.labelPaper:d.id.toUpperCase())+" · "+e.toDisplayString(d.widthMm)+" × "+e.toDisplayString(d.heightMm)+" mm",9,oa))),128)),e.createElementVNode("option",aa,e.toDisplayString(n.value.customPaper),1)],40,na)]),e.createElementVNode("div",la,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperWidth),1),e.createElementVNode("input",{type:"number",min:"1",step:"0.5",value:r.value.widthMm,onChange:c[4]||(c[4]=d=>y("widthMm",d))},null,40,ra)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperHeight),1),e.createElementVNode("input",{type:"number",min:"1",max:"4999",step:"0.5",value:r.value.heightMm,onChange:c[5]||(c[5]=d=>y("heightMm",d))},null,40,ia)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageLayout),1),e.createElementVNode("select",{value:r.value.layout??"page",onChange:c[6]||(c[6]=d=>b({layout:f(d)}))},[e.createElementVNode("option",ca,e.toDisplayString(n.value.fixedPaper),1),e.createElementVNode("option",{value:"wide",disabled:!!t.document.template.repeat},e.toDisplayString(n.value.completeWide),9,da)],40,sa)]),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.pageMargins),1),e.createElementVNode("div",ua,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(S,(d,h)=>e.createElementVNode("label",{key:d},[e.createTextVNode(e.toDisplayString(k.value[h]),1),e.createElementVNode("input",{type:"number",min:"0",step:"0.5",value:r.value[d]??0,onChange:D=>y(d,D)},null,40,ma)])),64))])]),u.value.length?(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("strong",null,e.toDisplayString(n.value.pageOverflow.replace("{count}",String(u.value.length))),1),e.createElementVNode("p",null,e.toDisplayString(n.value.pageOverflowHint),1),e.createElementVNode("button",{type:"button",onClick:c[7]||(c[7]=d=>a("locate",u.value[0]))},e.toDisplayString(n.value.locateOverflow),1)])):e.createCommentVNode("",!0)],8,Wo))}}),va=W._export_sfc(fa,[["__scopeId","data-v-da0b7ab6"]]),ga=["disabled"],ha={class:"mr-repeat-toggle"},ya=["checked","disabled"],ba=["value","list"],ka=["id"],Ea=["value"],Sa=["value"],Na=["value"],wa={class:"mr-repeat-grid"},Va=["value"],xa={value:"fixed"},Ca={value:"field"},Ba={key:0},Ma=["value"],Da={key:1},Ta=["value"],$a={class:"mr-repeat-note"},Ia=e.defineComponent({__name:"TemplateRepeatInspector",props:{document:{},datasets:{},schemas:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),r=e.computed(()=>o.document.template.repeat),s=e.computed(()=>o.schemas?.[r.value?.dataset??""]?.fields??[]),u=e.computed(()=>[...new Set([...o.datasets??[],...Object.keys(o.schemas??{}),...r.value?[r.value.dataset]:[]])]),p=e.computed(()=>o.document.template.pages.some(c=>c.components.some(d=>d.kind!=="list"&&d.binding))),S=e.computed(()=>o.document.template.pages.some(c=>c.layout==="wide"||!!c.flow||c.components.some(d=>d.kind==="list")||ut(c).length>0)),k=e.computed(()=>typeof r.value?.copies=="object"?"field":"fixed"),f=`mr-repeat-fields-${e.getCurrentInstance()?.uid??0}`;function b(c){return c.target.value}function N(c){!o.disabled&&r.value&&a("change",{...r.value,...c})}function y(c){o.disabled||(c.target.checked?S.value||a("change",{dataset:u.value[0]??"detail",copies:1}):p.value||a("change",void 0))}function g(c){if(!r.value||o.disabled)return;const d={...r.value},h=b(c).trim();h?d.rowKey=h:delete d.rowKey,a("change",d)}function E(c){N({copies:b(c)==="field"?{field:s.value.find(d=>d.type==="number")?.field??"copies"}:1})}return(c,d)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-repeat-properties",disabled:t.disabled},[e.createElementVNode("label",ha,[e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.repeatRecords),1),e.createElementVNode("small",null,e.toDisplayString(S.value?n.value.repeatNeedsFixed:n.value.repeatRecordsHint),1)]),e.createElementVNode("input",{type:"checkbox",checked:!!r.value,disabled:t.disabled||!!r.value&&p.value||!r.value&&S.value,onChange:y},null,40,ya)]),r.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordDataset),1),e.createElementVNode("input",{value:r.value.dataset,list:`${f}-datasets`,onChange:d[0]||(d[0]=h=>b(h).trim()&&N({dataset:b(h).trim()}))},null,40,ba)]),e.createElementVNode("datalist",{id:`${f}-datasets`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h,value:h},null,8,Ea))),128))],8,ka),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordRowKey),1),e.createElementVNode("input",{value:r.value.rowKey??"",list:f,onChange:g},null,40,Sa)]),e.createElementVNode("datalist",{id:f},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.field,value:h.field},e.toDisplayString(h.label),9,Na))),128))]),e.createElementVNode("div",wa,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.labelCopies),1),e.createElementVNode("select",{value:k.value,onChange:E},[e.createElementVNode("option",xa,e.toDisplayString(n.value.fixedCopies),1),e.createElementVNode("option",Ca,e.toDisplayString(n.value.fieldCopies),1)],40,Va)]),k.value==="fixed"?(e.openBlock(),e.createElementBlock("label",Ba,[e.createTextVNode(e.toDisplayString(n.value.copiesPerRecord),1),e.createElementVNode("input",{type:"number",min:"1",max:"1000",step:"1",value:r.value.copies??1,onChange:d[1]||(d[1]=h=>b(h).trim()&&N({copies:Number(b(h))}))},null,40,Ma)])):(e.openBlock(),e.createElementBlock("label",Da,[e.createTextVNode(e.toDisplayString(n.value.copiesField),1),e.createElementVNode("input",{value:typeof r.value.copies=="object"?r.value.copies.field:"",list:f,onChange:d[2]||(d[2]=h=>b(h).trim()&&N({copies:{field:b(h).trim()}}))},null,40,Ta)]))]),e.createElementVNode("p",$a,e.toDisplayString(p.value?n.value.repeatBoundHint:n.value.repeatOrderHint),1)],64)):e.createCommentVNode("",!0)],8,ga))}}),Ra=W._export_sfc(Ia,[["__scopeId","data-v-de1ee031"]]),mt={outline:"结构大纲",search:"搜索版面、组件、字段或引用",noMatches:"没有匹配的结构项",more:"显示更多",usages:"引用位置",all:"全部结构",count:"项",page:"版面",component:"组件",field:"字段",calculation:"计算",binding:"绑定",reuse:"片段与样式",fragments:"可复用片段",styles:"内容样式",insert:"插入独立副本",update:"显式更新此片段",noFragments:"尚未配置片段库。可从当前组件保存会话片段,或通过 fragments 接入共享片段。",capture:"保存当前组件为片段",fragmentName:"片段名称",role:"样式角色",apply:"应用到当前组件",copy:"复制当前样式",paste:"粘贴样式",bindings:"重新绑定字段",dataset:"数据集",target:"目标字段",preserve:"副本独立保存;共享片段更新后不会改变已有模板。",select:"先在画布选择一个组件",revision:"修订",instance:"已插入修订",newRevision:"存在可显式应用的新修订",noStyles:"使用内置内容样式,或通过 documentStyles 配置品牌样式。",nameRequired:"请填写片段名称",styleText:"标题",styleHeading:"表头",styleBody:"正文",styleNumber:"数值",styleNote:"说明",rename:"确认字段映射变化",renameHint:"以下位置仍引用原字段。继续仅修改当前列的映射,不会改写计算或业务字段。",continue:"确认更换映射",cancel:"取消",locate:"定位"},_a=["aria-label"],La=["onClick"],Pa=["disabled"],Aa=["disabled"],Fa=e.defineComponent({__name:"TemplateFieldImpactPanel",props:{change:{},messages:{},disabled:{type:Boolean}},emits:["confirm","cancel","locate"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...mt,...o.messages}));return(r,s)=>t.change?(e.openBlock(),e.createElementBlock("section",{key:0,class:"mr-impact",role:"alertdialog","aria-label":n.value.rename},[e.createElementVNode("strong",null,e.toDisplayString(n.value.rename),1),e.createElementVNode("code",null,e.toDisplayString(t.change.before)+" → "+e.toDisplayString(t.change.after),1),e.createElementVNode("p",null,e.toDisplayString(n.value.renameHint),1),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.change.references.slice(0,100),u=>(e.openBlock(),e.createElementBlock("li",{key:u.path},[e.createElementVNode("button",{type:"button",onClick:p=>a("locate",u)},e.toDisplayString(n.value.locate)+" · "+e.toDisplayString(u.path),9,La)]))),128))]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:s[0]||(s[0]=u=>a("cancel"))},e.toDisplayString(n.value.cancel),9,Pa),e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:s[1]||(s[1]=u=>a("confirm"))},e.toDisplayString(n.value.continue),9,Aa)])],8,_a)):e.createCommentVNode("",!0)}}),Ha=W._export_sfc(Fa,[["__scopeId","data-v-0813913f"]]),pt={available:"发现未保存草稿",restore:"恢复草稿",discard:"放弃草稿",stale:"草稿基线已变化,恢复后须核对最新版本再保存。",localOnly:"仅保存模板、JSON 与工具配置,不保存业务数据或 Excel 文件。",autosaved:"草稿已暂存",saving:"暂存中",storageError:"草稿暂存失败",conflict:"模板版本已变化",conflictHint:"本地修改已保留。核对差异后选择处理方式,不会自动合并或覆盖。",baseline:"共同基线",local:"本地修改",remote:"远端修改",changes:"处差异",path:"位置",before:"原值",after:"新值",empty:"没有差异",loadLatest:"读取最新版本",adopt:"采用最新版本",rebase:"保留本地内容,以最新版本为基线",confirm:"确认更新基线",confirmHint:"此操作保留完整本地内容,不合并远端改动;下次保存将以最新修订号校验。",keepCopy:"保留独立副本",copied:"副本已保留",revision:"修订",unknown:"未发布",close:"收起差异",review:"核对版本冲突",toolsNeedSource:"Excel 映射配置已恢复,请重新选择原文件后核对。"},Oa={key:0,class:"mr-recovery-banner",role:"status"},Ga={key:0},za={class:"mr-recovery-actions"},ja=["disabled"],qa={key:1,class:"mr-recovery-banner is-error",role:"alert"},Ua={class:"mr-recovery-actions"},Ja={key:2,class:"mr-recovery-status",role:"status"},Wa={key:3,class:"mr-recovery-conflict",open:""},Ka={class:"mr-recovery-columns"},Ya={key:0},Xa={key:1},Za={key:0,role:"alert"},Qa={key:1,role:"status"},el={class:"mr-recovery-actions"},tl=["disabled"],nl=["disabled"],ol=["disabled"],al=["disabled"],ll={key:2,class:"mr-recovery-confirm"},rl=["disabled"],il=e.defineComponent({__name:"TemplateRecoveryPanel",props:{recovery:{},conflict:{},readonly:{type:Boolean},messages:{},canLoad:{type:Boolean},canCopy:{type:Boolean}},setup(t){const l=t,o=e.computed(()=>({...pt,...l.messages}));return(a,n)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.recovery.available.value?(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(o.value.available),1),e.createElementVNode("small",null,e.toDisplayString(t.recovery.available.value.savedAt)+" · "+e.toDisplayString(o.value.revision)+" "+e.toDisplayString(t.recovery.available.value.baseline.revision||o.value.unknown),1),t.recovery.stale.value?(e.openBlock(),e.createElementBlock("p",Ga,e.toDisplayString(o.value.stale),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",za,[e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:n[0]||(n[0]=(...r)=>t.recovery.restore&&t.recovery.restore(...r))},e.toDisplayString(o.value.restore),9,ja),e.createElementVNode("button",{type:"button",onClick:n[1]||(n[1]=(...r)=>t.recovery.discard&&t.recovery.discard(...r))},e.toDisplayString(o.value.discard),1)])])):e.createCommentVNode("",!0),t.recovery.error.value?(e.openBlock(),e.createElementBlock("div",qa,[e.createElementVNode("span",null,e.toDisplayString(o.value.storageError)+":"+e.toDisplayString(t.recovery.error.value),1),e.createElementVNode("div",Ua,[e.createElementVNode("button",{type:"button",onClick:n[2]||(n[2]=(...r)=>t.recovery.discard&&t.recovery.discard(...r))},e.toDisplayString(o.value.discard),1)])])):t.recovery.status.value!=="idle"?(e.openBlock(),e.createElementBlock("small",Ja,e.toDisplayString(t.recovery.status.value==="saving"?o.value.saving:o.value.autosaved),1)):e.createCommentVNode("",!0),t.conflict.active.value?(e.openBlock(),e.createElementBlock("details",Wa,[e.createElementVNode("summary",null,e.toDisplayString(o.value.conflict),1),e.createElementVNode("p",null,e.toDisplayString(o.value.conflictHint),1),e.createElementVNode("div",Ka,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([t.conflict.localChanges.value,t.conflict.remoteChanges.value],(r,s)=>(e.openBlock(),e.createElementBlock("section",{key:s},[e.createElementVNode("h4",null,[e.createTextVNode(e.toDisplayString(s?o.value.remote:o.value.local)+" ",1),e.createElementVNode("small",null,e.toDisplayString(r?.totalChanges??"—")+" "+e.toDisplayString(o.value.changes),1)]),r?.changes.length?(e.openBlock(),e.createElementBlock("table",Ya,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,e.toDisplayString(o.value.path),1),e.createElementVNode("th",null,e.toDisplayString(o.value.before),1),e.createElementVNode("th",null,e.toDisplayString(o.value.after),1)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.changes,u=>(e.openBlock(),e.createElementBlock("tr",{key:`${u.kind}:${u.path}`},[e.createElementVNode("th",null,e.toDisplayString(u.path),1),e.createElementVNode("td",null,e.toDisplayString(u.before??"—"),1),e.createElementVNode("td",null,e.toDisplayString(u.after??"—"),1)]))),128))])])):(e.openBlock(),e.createElementBlock("p",Xa,e.toDisplayString(o.value.empty),1))]))),128))]),t.conflict.error.value?(e.openBlock(),e.createElementBlock("p",Za,e.toDisplayString(t.conflict.error.value),1)):e.createCommentVNode("",!0),t.conflict.copied.value?(e.openBlock(),e.createElementBlock("p",Qa,e.toDisplayString(o.value.copied),1)):e.createCommentVNode("",!0),e.createElementVNode("div",el,[t.canLoad?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.conflict.busy.value,onClick:n[3]||(n[3]=(...r)=>t.conflict.load&&t.conflict.load(...r))},e.toDisplayString(o.value.loadLatest),9,tl)):e.createCommentVNode("",!0),t.canCopy?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[4]||(n[4]=(...r)=>t.conflict.keepCopy&&t.conflict.keepCopy(...r))},e.toDisplayString(o.value.keepCopy),9,nl)):e.createCommentVNode("",!0),t.conflict.latest.value?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[5]||(n[5]=(...r)=>t.conflict.adoptLatest&&t.conflict.adoptLatest(...r))},e.toDisplayString(o.value.adopt),9,ol)):e.createCommentVNode("",!0),t.conflict.latest.value?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[6]||(n[6]=(...r)=>t.conflict.toggleRebase&&t.conflict.toggleRebase(...r))},e.toDisplayString(o.value.rebase),9,al)):e.createCommentVNode("",!0)]),t.conflict.confirmRebase.value?(e.openBlock(),e.createElementBlock("div",ll,[e.createElementVNode("p",null,e.toDisplayString(o.value.confirmHint),1),e.createElementVNode("button",{type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[7]||(n[7]=(...r)=>t.conflict.rebase&&t.conflict.rebase(...r))},e.toDisplayString(o.value.confirm),9,rl)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))}}),sl=W._export_sfc(il,[["__scopeId","data-v-f02f2a53"]]),cl={class:"mr-header-editor"},dl=["disabled"],ul=["value"],ml=["value"],pl=["value"],fl=["disabled"],vl=e.defineComponent({__name:"HeaderStructureEditor",props:{list:{},disabled:{type:Boolean},messages:{}},emits:["command"],setup(t,{emit:l}){const o=t,a=l,n=e.computed(()=>({...me,...o.messages})),r=e.ref(0),s=e.ref(0),u=e.ref(Math.min(1,o.list.columns.length-1));return e.watch(()=>o.list.columns.length,p=>{s.value=Math.min(s.value,p-1),u.value=Math.min(u.value,p-1)}),(p,S)=>(e.openBlock(),e.createElementBlock("details",cl,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(n.value.headerStructure),1),e.createElementVNode("span",null,e.toDisplayString(t.list.headerGrid?.cells.length??1)+" "+e.toDisplayString(n.value.headerRow),1)]),e.createElementVNode("fieldset",{disabled:t.disabled},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerRow),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":S[0]||(S[0]=k=>r.value=k)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.headerGrid?.cells.length??1,k=>(e.openBlock(),e.createElementBlock("option",{key:k,value:k-1},e.toDisplayString(k),9,ul))),128))],512),[[e.vModelSelect,r.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerFirst),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":S[1]||(S[1]=k=>s.value=k)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(k,f)=>(e.openBlock(),e.createElementBlock("option",{key:f,value:f},e.toDisplayString(f+1)+" · "+e.toDisplayString(k.header),9,ml))),128))],512),[[e.vModelSelect,s.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerLast),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":S[2]||(S[2]=k=>u.value=k)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(k,f)=>(e.openBlock(),e.createElementBlock("option",{key:f,value:f},e.toDisplayString(f+1)+" · "+e.toDisplayString(k.header),9,pl))),128))],512),[[e.vModelSelect,u.value,void 0,{number:!0}]])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:S[3]||(S[3]=k=>a("command",{action:"add",row:r.value,first:s.value,last:u.value}))},e.toDisplayString(n.value.addHeaderRow),1),e.createElementVNode("button",{type:"button",disabled:s.value>=u.value,onClick:S[4]||(S[4]=k=>a("command",{action:"merge",row:r.value,first:s.value,last:u.value}))},e.toDisplayString(n.value.mergeHeader),9,fl),e.createElementVNode("button",{type:"button",onClick:S[5]||(S[5]=k=>a("command",{action:"split",row:r.value,first:s.value,last:u.value}))},e.toDisplayString(n.value.splitHeader),1)])],8,dl)]))}}),gl=W._export_sfc(vl,[["__scopeId","data-v-acd607ef"]]),ve=t=>`${t.pageIndex}:${t.componentIndex}`;function hl(t,l,o){const a=e.ref([]),n=e.ref(new Set);e.watch(()=>t.value.id,()=>{a.value=[],n.value=new Set});const r=b=>!!b&&n.value.has(ve(b));function s(b){const N={pageIndex:b.pageIndex,componentIndex:b.componentIndex};if(b.additive&&a.value.every(y=>y.pageIndex===b.pageIndex)){const y=a.value.some(g=>ve(g)===ve(b));a.value=y?a.value.filter(g=>ve(g)!==ve(b)):[...a.value,N],l.value=y?a.value.at(-1):N}else a.value=[N],l.value=N}const u=e.computed(()=>a.value.filter(b=>!r(b)));function p(){const b=new Set(n.value),N=a.value.every(r);for(const y of a.value)N?b.delete(ve(y)):b.add(ve(y));n.value=b}function S(b){u.value.length<2||o(N=>{const y=u.value.map(D=>he(N,D)).filter(Boolean),g=y.map(ce),E=Math.min(...g.map(D=>D.leftMm)),c=Math.min(...g.map(D=>D.topMm)),d=Math.max(...g.map(D=>D.leftMm+D.widthMm)),h=Math.max(...g.map(D=>D.topMm+D.heightMm));y.forEach((D,V)=>{const w=g[V],C={left:E,center:(E+d-w.widthMm)/2,right:d-w.widthMm},M={top:c,middle:(c+h-w.heightMm)/2,bottom:h-w.heightMm};b in C?w.leftMm=C[b]:w.topMm=M[b],Ne(D,w)})})}function k(b){u.value.length<3||o(N=>{const y=b==="horizontal"?"leftMm":"topMm",g=b==="horizontal"?"widthMm":"heightMm",E=u.value.map(V=>({component:he(N,V),box:ce(he(N,V))})).sort((V,w)=>V.box[y]-w.box[y]),c=E[0].box[y],h=(Math.max(...E.map(V=>V.box[y]+V.box[g]))-c-E.reduce((V,w)=>V+w.box[g],0))/(E.length-1);let D=c;for(const V of E)V.box[y]=D,Ne(V.component,V.box),D+=V.box[g]+h})}function f(b,N,y){function g(E){if(E.pageIndex!==b)return E;const c=E.componentIndex;return y===void 0?c===N?void 0:{...E,componentIndex:c>N?c-1:c}:{...E,componentIndex:c===N?y:c===y?N:c}}n.value=new Set([...n.value].flatMap(E=>{const[c,d]=E.split(":").map(Number),h=g({pageIndex:c,componentIndex:d});return h?[ve(h)]:[]})),a.value=a.value.flatMap(E=>{const c=g(E);return c?[c]:[]})}return{clearLocks:()=>{n.value=new Set},selections:a,locked:r,allLocked:e.computed(()=>!!a.value.length&&a.value.every(r)),toggleLock:p,align:S,distribute:k,select:s,remap:f}}function yl(t,l){const o=e.ref("preview"),a=e.ref(),n=e.ref(0),r=e.computed(()=>!!t.value.template.pages[a.value?.pageIndex??n.value]?.flow),s=hl(t,a,g=>r.value?!1:l(g)),u=e.computed(()=>he(t.value,a.value));e.watch(n,g=>{a.value?.pageIndex!==g&&(a.value=void 0,s.selections.value=[])}),e.watch(t,()=>{u.value||(a.value=void 0),s.selections.value=s.selections.value.filter(g=>!!he(t.value,g)),t.value.template.pages[n.value]||(n.value=0)});function p(g){s.select(g),n.value=g.pageIndex}function S(g){const E=a.value;return!E||s.locked(E)?!1:l(c=>{const d=he(c,E);d&&g(d,c)})}function k(g){r.value||S((E,c)=>{const d=c.template.pages[a.value.pageIndex];Ne(E,Ie(g,d,E.kind==="list"))})}function f(g){if(t.value.template.pages[n.value]?.flow||g==="list"&&t.value.template.repeat)return;let E=-1;const c=n.value;l(d=>{const h=d.template.pages[c].components,D=Bt(g);Ne(D,Ie(ce(D),d.template.pages[c],D.kind==="list")),D.kind==="qrcode"&&(D.widthMm=D.heightMm=Math.min(D.widthMm,D.heightMm)),h.push(D),E=h.length-1})&&p({pageIndex:c,componentIndex:E})}function b(){if(r.value)return;const g=a.value;g&&!s.locked(g)&&l(E=>{E.template.pages[g.pageIndex].components.splice(g.componentIndex,1)})&&(s.remap(g.pageIndex,g.componentIndex),a.value=void 0)}function N(){if(r.value)return;const g=a.value;if(!g)return;let E=-1;l(c=>{const d=c.template.pages[g.pageIndex],h=JSON.parse(JSON.stringify(he(c,g))),D=ce(h);D.leftMm+=4,D.topMm+=4,Ne(h,Ie(D,d,h.kind==="list")),h.kind==="list"?delete h.id:(delete h.nid,delete h.rkey),d.components.push(h),E=d.components.length-1})&&p({pageIndex:g.pageIndex,componentIndex:E})}function y(g){if(r.value)return;const E=a.value;if(!E||s.locked(E))return;const c=E.componentIndex+g;t.value.template.pages[E.pageIndex]?.components[c]&&l(d=>{const h=d.template.pages[E.pageIndex].components;h.splice(c,0,h.splice(E.componentIndex,1)[0])})&&(s.remap(E.pageIndex,E.componentIndex,c),p({pageIndex:E.pageIndex,componentIndex:c}))}return{...s,mode:o,selection:a,pageIndex:n,active:u,geometryDisabled:r,select:p,mutate:S,geometry:k,insert:f,remove:b,duplicate:N,reorder:y}}function bl(t,l,o){const{draft:a,lists:n,selected:r,activeList:s,blocked:u,jsonPending:p,error:S}=t,{section:k,activeIndex:f}=l,b=yl(a,t.transaction),{mode:N,selection:y,pageIndex:g,active:E}=b;t.connectHistoryView({read:()=>({pageIndex:g.value,componentIndex:y.value?.pageIndex===g.value?y.value.componentIndex:void 0}),restore:I=>{g.value=Math.max(0,Math.min(a.value.template.pages.length-1,I.pageIndex)),b.selection.value=void 0,b.selections.value=[],I.componentIndex!==void 0&&a.value.template.pages[g.value]?.components[I.componentIndex]&&b.select({pageIndex:g.value,componentIndex:I.componentIndex})}}),e.watch(t.historyViewRevision,()=>t.captureHistoryView(),{flush:"post"});const c=e.ref("excel"),d=e.ref(new Set);e.watch([k,c],()=>{k.value==="tools"&&(d.value=new Set([...d.value,c.value]))}),e.watch(y,I=>{if(!I)return;const i=n.value.findIndex(G=>G.pageIndex===I.pageIndex&&G.componentIndex===I.componentIndex);i>=0&&(r.value=i)}),e.watch([f,r,N,k],()=>{if(N.value!=="design"||k.value!=="fields")return;const I=n.value[r.value];I&&(y.value?.pageIndex!==I.pageIndex||y.value.componentIndex!==I.componentIndex)&&b.select({pageIndex:I.pageIndex,componentIndex:I.componentIndex})});const h=e.computed(()=>t.editingReadonly.value||u.value||p.value),D=e.computed(()=>o()?.[s.value?.dataset??""]);function V(I){N.value=I,k.value==="tools"&&(k.value=I==="design"||!n.value.length?"component":"fields")}function w(I){if(!a.value.template.pages[I.pageIndex]?.components[I.componentIndex])return;if(b.select(I),a.value.template.pages[I.pageIndex]?.components[I.componentIndex]?.kind==="list"){const G=n.value.findIndex(O=>O.pageIndex===I.pageIndex&&O.componentIndex===I.componentIndex);G>=0&&(r.value=G),k.value="fields"}else k.value="component"}function C(I){const i=I.target;i.value&&(b.insert(i.value),N.value="design",k.value="component",i.value="")}function M(I){a.value.template.pages[g.value]?.flow&&["leftMm","topMm","widthMm","heightMm","pageAnchor","grid"].some(i=>i in I)||b.mutate((i,G)=>{if(i.kind!=="list"&&I.pageAnchor!==i.pageAnchor){const x=G.template.pages[y.value.pageIndex];I.pageAnchor==="header"&&(i.topMm=x.marginTopMm??0),I.pageAnchor==="footer"&&(i.topMm=Math.max(0,x.heightMm-(x.marginBottomMm??0)-i.heightMm))}const O=i;for(const[x,T]of Object.entries(I))T===void 0?delete O[x]:O[x]=T})}function $(I){const i=n.value[r.value];i&&t.transaction(G=>{G.template.pages[i.pageIndex].components[i.componentIndex]=I})}function F(I){const i=s.value;if(!i||a.value.template.pages[n.value[r.value]?.pageIndex??-1]?.flow)return;const G=JSON.parse(JSON.stringify(i));try{Mt(G,f.value,f.value+I)&&($(G),l.activate(f.value+I))}catch(O){S.value=O instanceof Error?O.message:String(O)}}function q(I){const i=n.value[r.value];!i||a.value.template.pages[i.pageIndex]?.flow||t.transaction(G=>{const O=G.template.pages[i.pageIndex].components[i.componentIndex];O?.kind==="list"&&(I.action==="add"?Dt(O):I.action==="merge"?Tt(O,I.row,I.first,I.last):$t(O,I.row,I.first))})}function Z(I){const i=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(I.path??""),G=I.pageIndex??(i?Number(i[1]):void 0),O=I.componentIndex??(i?Number(i[2]):void 0);if(G!==void 0){if(O===void 0){g.value=G,k.value="template",N.value="design";return}if(N.value="design",w({pageIndex:G,componentIndex:O}),I.field){const x=s.value?.columns.findIndex(T=>T.field===I.field);x!==void 0&&x>=0&&l.activate(x)}}}return{mode:N,setMode:V,canvasSelection:y,canvasPage:g,canvasActive:E,tool:c,visitedTools:d,editDisabled:h,dataSchema:D,chooseCanvas:w,insertComponent:C,patchCanvas:M,changeList:$,moveColumn:F,headerCommand:q,locateReview:Z,canvas:b}}function kl(t,l,o){if(!t.length)return;const a=Math.max(0,t.indexOf(l)),r={ArrowDown:Math.min(a+1,t.length-1),ArrowUp:Math.max(a-1,0),Home:0,End:t.length-1}[o];return r===void 0?void 0:t[r]}function El(t,l,o){const a=e.ref(!1),n=e.ref(t.activeIndex.value),r=e.ref(null),s=e.ref(null),u=e.ref(null),p=e.ref(null);function S(d=!1){const h=p.value,D=h?.querySelector(`button[data-column-index="${n.value}"]`);if(!h||!D)return;d&&D.focus({preventScroll:!0});const V=h.getBoundingClientRect(),w=D.getBoundingClientRect(),C=V.top+h.clientTop,M=C+h.clientHeight;w.top<C?h.scrollTop+=w.top-C:w.bottom>M&&(h.scrollTop+=w.bottom-M)}async function k(d=!1){a.value&&(a.value=!1,d&&(await e.nextTick(),r.value?.focus({preventScroll:!0})))}async function f(){if(a.value)return k(!0);const d=o.value.map(h=>h.index);n.value=d.includes(t.activeIndex.value)?t.activeIndex.value:d[0]??-1,a.value=!0,await e.nextTick(),u.value?.focus({preventScroll:!0}),S()}function b(d){t.activate(d),k(!0)}function N(d){a.value&&(d.preventDefault(),d.stopPropagation(),k(!0))}async function y(d){const h=kl(o.value.map(D=>D.index),n.value,d.key);h!==void 0&&(n.value=h,d.preventDefault(),await e.nextTick(),S(!0))}async function g(d){if(!["ArrowDown","ArrowUp","Enter"].includes(d.key))return;d.preventDefault(),d.stopPropagation();const h=o.value.map(D=>D.index);if(h.length){if(d.key==="Enter"){h.includes(n.value)&&b(n.value);return}d.key==="ArrowUp"&&(n.value=h.at(-1)),await e.nextTick(),S(!0)}}function E(d){const h=d.target;!a.value||s.value?.contains(h)||r.value?.contains(h)||k()}function c(d){const h=d.relatedTarget;!h||s.value?.contains(h)||r.value?.contains(h)||k()}return e.watch(o,d=>{d.some(h=>h.index===n.value)||(n.value=d[0]?.index??-1)}),e.watch(l,()=>{k()}),e.onMounted(()=>document.addEventListener("pointerdown",E)),e.onBeforeUnmount(()=>document.removeEventListener("pointerdown",E)),{open:a,cursor:n,trigger:r,panel:s,search:u,list:p,toggle:f,close:k,choose:b,escape:N,navigate:y,searchKeydown:g,leave:c}}const ft=Symbol("mach-report:tool-drafts");function Sl(t){const l=e.ref({}),o=e.ref(0),a={epoch:o,read:r=>l.value[r],write(r,s){const u={...l.value};s?u[r]=s:delete u[r],l.value=u;const p=r.split(":")[0];t(p,Object.keys(u).some(S=>S.split(":")[0]===p))}};e.provide(ft,a);function n(r){l.value=JSON.parse(JSON.stringify(r));for(const s of["params","rules","excel"])t(s,Object.keys(r).some(u=>u.split(":")[0]===s));o.value++}return{records:l,restore:n,clear:()=>n({})}}function Nl(t){const l=e.inject(ft,void 0);if(!l)return;let o=!1;const a=()=>{const r=l.read(t.key());if(r){o=!0;try{t.restore(r.value,r.baseline)}finally{o=!1}}};e.watch([t.key,()=>l.epoch.value],a,{immediate:!0,flush:"sync"});const n=e.watch([t.pending,t.snapshot],()=>{o||l.write(t.key(),t.pending()?{baseline:t.baseline(),value:t.snapshot()}:void 0)},{flush:"post"});e.onBeforeUnmount(n)}const Ye=new WeakMap;function wl(t,l,o){let a=Ye.get(t);a||(a=new Map,Ye.set(t,a));const n=a.get(l);let r,s;const u=new Promise((N,y)=>{r=N,s=y}),p={run:o,resolve:r,reject:s};if(n)return n.latest?.resolve(),n.latest=p,u;let S;const k={done:new Promise(N=>{S=N}),finish:()=>S()};a.set(l,k);const f=()=>{const N=k.latest;k.latest=void 0,N?b(N):(a.delete(l),k.finish())},b=N=>{let y;try{y=N.run()}catch(g){N.reject(g),f();return}Promise.resolve(y).then(N.resolve,N.reject).then(f)};return b(p),u}async function Vl(t,l){await Ye.get(t)?.get(l)?.done}function Y(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function ge(t,l){return l.every(o=>typeof t[o]=="string")}function de(t){return Array.isArray(t)&&t.length<=1e4}function vt(t,l=0){return!Y(t)||l>16?!1:"op"in t?typeof t.op=="string"&&de(t.args)&&t.args.every(o=>vt(o,l+1)):"field"in t?typeof t.field=="string":"aggregate"in t?typeof t.aggregate=="string":"value"in t&&(t.value===null||["string","number","boolean"].includes(typeof t.value))}function rt(t){return Y(t)&&typeof t.field=="string"&&vt(t.expression)}function _e(t){return de(t)&&t.every(l=>typeof l=="string")}function xl(t){return Y(t)&&_e(t.rowFields)&&_e(t.columnFields)&&de(t.measures)&&t.measures.every(l=>Y(l)&&typeof l.op=="string")}function it(t){return Y(t)&&ge(t,["sheet","dataset","rowKey"])&&_e(t.fields)&&Y(t.regions)}function st(t){return Y(t)&&typeof t.sheet=="string"&&de(t.regions)&&t.regions.every(l=>Y(l)&&ge(l,["id","range","dataset","mode","rowKey"])&&_e(l.fields))}function ct(t,l){return de(t)&&t.every(o=>Array.isArray(o)&&o.length===2&&typeof o[0]=="string"&&l(o[1]))}function Cl(t){return typeof t.initial=="string"&&Number.isSafeInteger(t.selected)&&de(t.rows)&&t.rows.every(l=>Y(l)&&ge(l,["field","label","type","placeholder","defaultValue","min","max","minLength","maxLength"])&&typeof l.required=="boolean"&&typeof l.defaultEnabled=="boolean"&&de(l.options)&&l.options.every(o=>Y(o)&&ge(o,["label","value"])))}function Bl(t){return rt(t.formula)&&de(t.groups)&&t.groups.every(l=>Y(l)&&typeof l.field=="string")&&Y(t.when)&&Y(t.style)&&ge(t,["selectedComputed","column","conditionKey","effect","tab","formulaBaseline","groupBaseline","conditionBaseline"])&&Number.isSafeInteger(t.conditionIndex)&&ct(t.computedDrafts,rt)&&ct(t.conditionDrafts,l=>Y(l)&&Y(l.when)&&Y(l.style))}function Ml(t){return typeof t.enabled=="boolean"&&typeof t.baseline=="string"&&Y(t.detail)&&ge(t.detail,["dataset","parentKey","foreignKey"])&&de(t.detail.columns)&&t.detail.columns.every(l=>Y(l)&&ge(l,["field","header"]))&&xl(t.matrix)&&Y(t.tree)&&typeof t.tree.input=="string"}function Dl(t){return it(t.recipe)&&st(t.regions)&&Y(t.identity)&&ge(t.identity,["id","name"])&&Y(t.cached)&&de(t.cached.table)&&t.cached.table.every(it)&&de(t.cached.regions)&&t.cached.regions.every(st)&&(t.mode==="table"||t.mode==="regions")}function Tl(t,l,o){const a=JSON.parse(l);if(!Y(a))throw new Error("Invalid stored tool draft");const n=t==="params"?Cl(a):t==="excel"?Dl(a):t.split(":").length>3?Ml(a):Bl(a);if(t==="params"){const r=JSON.parse(o);if(!de(r)||!r.every(s=>Y(s)&&typeof s.field=="string"))throw new Error("Invalid stored parameter baseline")}if(!n)throw new Error(`Invalid stored ${t.split(":")[0]} draft`)}function $l(t){return{read:l=>t.getItem(l),write:(l,o)=>t.setItem(l,o),remove:l=>t.removeItem(l)}}function Il(t,l){if(!t.trim()||t.length>1024||l.length>1024)throw new Error("Draft scope and template identity must be bounded and non-empty");return`mach-report:draft:1:${JSON.stringify([t,l])}`}function Rl(t){const l=t.maxBytes??2097152,o=t.debounceMs??400;if(!Number.isSafeInteger(l)||l<1024||l>16*1024*1024)throw new RangeError("Draft maxBytes must be between 1024 and 16777216");if(!Number.isSafeInteger(o)||o<0||o>1e4)throw new RangeError("Draft debounceMs must be between 0 and 10000");return{maxBytes:l,debounceMs:o}}function dt(t,l,o){if(t.length*2>o)throw new Error("Draft exceeds storage budget");const a=JSON.parse(t);if(a.version!==1||a.templateId!==l||typeof a.savedAt!="string"||!Number.isFinite(Date.parse(a.savedAt)))throw new Error("Invalid draft identity or version");for(const n of["json","appliedJson"])if(typeof a[n]!="string")throw new Error("Invalid draft JSON input");if(a.baseline=P.parseReportTemplate(a.baseline),a.document=P.parseReportTemplate(a.document),a.baseline.id!==l||a.document.id!==l||a.baseline.revision!==a.document.revision)throw new Error("Invalid draft baseline");if(!a.tools||typeof a.tools!="object"||Array.isArray(a.tools)||Object.keys(a.tools).length>100)throw new Error("Invalid tool drafts");for(const[n,r]of Object.entries(a.tools)){if(!/^(params|excel|rules:[0-9]+:[0-9]+(?::(?:detail|matrix|tree))?)$/.test(n)||!r||typeof r.baseline!="string"||typeof r.value!="string")throw new Error("Invalid tool draft");Tl(n,r.value,r.baseline)}return a}function _l(t){const l=e.ref(!1),o=e.shallowRef(),a=e.ref(""),n=e.ref("idle"),r=e.computed(()=>!!o.value&&P.serializeReportTemplate(o.value.baseline)!==t.baseline());let s,u=0,p=!1,S=!1,k=new AbortController,f=new AbortController,b=Promise.resolve(),N;function y(){clearTimeout(s),s=void 0,u++,k.abort(),f.abort(),k=new AbortController,f=new AbortController}function g(w,C){!p&&C===u&&(a.value=w instanceof Error?w.message:String(w))}async function E(){y();const w=u;l.value=!0,S=!1,o.value=void 0,a.value="",n.value="idle",N=void 0;try{const C=t.storage();if(!C)return;const M=t.id();if(N={storage:C,key:Il(C.scope,M),...Rl(C)},await Vl(C.adapter,N.key),w!==u||p)return;const $=await C.adapter.read(N.key,{signal:f.signal});if(w!==u||p||$===null)return;o.value=dt($,M,N.maxBytes)}catch(C){w===u&&(S=!0),g(C,w)}finally{w===u&&!p&&(l.value=!1)}}function c(w){const C=N;if(!C)return;const M=u,$=k.signal;n.value="saving";const F=async()=>{$.aborted||(w===null?await C.storage.adapter.remove(C.key,{signal:$}):await C.storage.adapter.write(C.key,w,{signal:$}),!p&&M===u&&(n.value=w===null?"idle":"saved",a.value=""))};b=wl(C.storage.adapter,C.key,F).catch(q=>g(q,M))}function d(){if(clearTimeout(s),s=void 0,!(!N||o.value))try{if(!t.pending()){S||c(null);return}const w=JSON.stringify(t.snapshot());dt(w,t.id(),N.maxBytes),c(w)}catch(w){g(w,u)}}function h(){clearTimeout(s),!(!N||o.value)&&(s=setTimeout(d,N.debounceMs))}async function D(){o.value=void 0,S=!1,c(null),await b,h()}function V(){if(o.value)try{t.restore(o.value),o.value=void 0,h()}catch(w){g(w,u)}}return e.watch([t.id,()=>t.storage()?.scope,()=>t.storage()?.adapter,()=>t.storage()?.maxBytes,()=>t.storage()?.debounceMs],()=>{E()},{immediate:!0}),e.watch([t.pending,t.changedSource],h,{deep:!0}),e.onMounted(()=>{globalThis.addEventListener?.("pagehide",d)}),e.onBeforeUnmount(()=>{globalThis.removeEventListener?.("pagehide",d),d(),p=!0,f.abort(),clearTimeout(s)}),{available:o,stale:r,error:a,status:n,checking:l,restore:V,discard:D,flush:d}}function Ll(t){const l=e.ref(!1),o=e.shallowRef(),a=e.ref(!1),n=e.ref(""),r=e.ref(!1),s=e.ref(!1);let u=0,p;const S=e.computed(()=>P.diffReportTemplates(t.baseline(),t.local(),{maxChanges:100})),k=e.computed(()=>o.value?P.diffReportTemplates(t.baseline(),o.value,{maxChanges:100}):void 0);function f(){u++,p?.abort(),p=void 0,a.value=!1}function b(){f(),l.value=!1,o.value=void 0,n.value="",r.value=!1,s.value=!1}async function N(){const d=t.configuration().loadLatest;if(!d||a.value)return;f();const h=u,D=t.local().id;p=new AbortController,a.value=!0,n.value="";try{const V=P.parseReportTemplate(await d({id:D,signal:p.signal}));if(h!==u)return;if(V.id!==D)throw new Error("Latest template identity does not match");o.value=V}catch(V){h===u&&(n.value=V instanceof Error?V.message:String(V))}finally{h===u&&(a.value=!1)}}function y(d){b(),l.value=!0,d?o.value=P.parseReportTemplate(d):N()}async function g(){!o.value||a.value||await t.applyLatest(P.parseReportTemplate(o.value))&&b()}function E(){if(!(!o.value||a.value||!r.value))try{t.rebase(P.parseReportTemplate(o.value)),b()}catch(d){n.value=d instanceof Error?d.message:String(d)}}async function c(){const d=t.configuration().keepCopy;if(!d||a.value)return;f();const h=u,D=P.parseReportTemplate(t.local());p=new AbortController,a.value=!0,n.value="";try{await d(D,{id:D.id,sourceRevision:D.revision,signal:p.signal}),h===u&&(s.value=!0)}catch(V){h===u&&(n.value=V instanceof Error?V.message:String(V))}finally{h===u&&(a.value=!1)}}return e.onBeforeUnmount(f),{active:l,latest:o,busy:a,error:n,confirmRebase:r,copied:s,localChanges:S,remoteChanges:k,begin:y,clear:b,load:N,adoptLatest:g,rebase:E,keepCopy:c,toggleRebase:()=>{r.value=!r.value}}}function Pl(t,l,o,a){const n=e.ref(0),r=e.ref(""),s=e.ref([]),u=e.ref();e.watch(t,()=>{u.value=void 0},{flush:"sync"});const p=e.computed(()=>t.value.template.pages.flatMap((V,w)=>V.components.flatMap((C,M)=>C.kind==="list"?[{component:C,pageIndex:w,componentIndex:M}]:[]))),S=e.computed(()=>p.value[n.value]?.component),k=e.computed(()=>{const V=S.value;if(!V)return[];const w=V.columns.map(C=>C.headerStyle?.align??C.headerAlign??V.headerStyle?.align??V.headerAlign??C.style?.align??"center");if(V.headerGrid&&l())for(const C of P.resolveGridLayout(V.headerGrid,V.widthMm,100).cells)for(let M=C.ci;M<C.ci+(C.cell.colSpan??1);M++)w[M]=C.cell.style?.align??"left";return w}),f=e.computed(()=>{const V=r.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(S.value?.columns??[]).flatMap((w,C)=>{const M=`${w.header} ${w.field}`.toLocaleLowerCase();return V.every($=>M.includes($))?[{column:w,index:C}]:[]})});function b(V,w){s.value=w?[...new Set([...s.value,V])]:s.value.filter(C=>C!==V)}function N(V){for(const w of f.value)b(w.index,V)}function y(){s.value=[]}function g(V,w,C){if(!o())return;const M=p.value[n.value];if((w==="widthMm"||w==="hidden")&&M&&t.value.template.pages[M.pageIndex]?.flow)return;const $=S.value?.columns[V];if($){if(w==="field"&&C!==$.field){const F=S.value.dataset,q=`$.template.pages[${M.pageIndex}].components[${M.componentIndex}].columns[${V}].field`,Z=xt.inspectTemplateFieldUsage(t.value.template,F,$.field).filter(I=>I.path!==q);if(Z.length){u.value={index:V,listIndex:n.value,before:$.field,after:String(C),references:Z};return}}w==="hidden"&&C===!0&&!S.value?.columns.some((F,q)=>q!==V&&!F.hidden)||(Object.assign($,{[w]:w==="widthMm"?Number(C):C}),w==="header"&&d(V,String(C)),w==="headerAlign"&&h(V,C),w==="widthMm"&&c(),a())}}function E(){const V=u.value;if(!V||!o())return;const w=p.value[V.listIndex]?.component.columns[V.index];u.value=void 0,!(!w||w.field!==V.before)&&(w.field=V.after,a())}function c(){const V=p.value[n.value];if(!V)return;const w=V.component,C=t.value.template.pages[V.pageIndex],M=w.columns.map($=>$.widthMm);w.headerGrid&&(w.headerGrid.colWidthsMm=M),C.layout==="wide"&&M.every($=>Number.isFinite($)&&$>0)&&(w.widthMm=M.reduce(($,F)=>$+F,0),C.widthMm=Math.max(...C.components.map($=>$.leftMm+$.widthMm))+(C.marginRightMm??0))}function d(V,w){const C=S.value;if(!C?.headerGrid)return;const $=P.resolveGridLayout(C.headerGrid,C.widthMm,100).cells.filter(({ci:F,cell:q})=>F<=V&&F+(q.colSpan??1)>V).slice(-1)[0];$&&(Object.assign($.cell,{text:w,rawText:w,value:w}),C.columns.slice($.ci,$.ci+($.cell.colSpan??1)).forEach(F=>{F.header=w}))}function h(V,w){const C=S.value,M=C?.columns[V];if(M?.headerStyle?.align!==void 0&&(M.headerStyle={...M.headerStyle,align:w}),!C?.headerGrid)return;const F=P.resolveGridLayout(C.headerGrid,C.widthMm,100).cells.filter(({ci:q,cell:Z})=>q<=V&&q+(Z.colSpan??1)>V).slice(-1)[0];F&&(F.cell.style={...F.cell.style,align:w},C.columns.slice(F.ci,F.ci+(F.cell.colSpan??1)).forEach(q=>{q.headerAlign=w,q.headerStyle?.align!==void 0&&(q.headerStyle={...q.headerStyle,align:w})}))}function D(V,w){if(!(!o()||V==="headerAlign"&&w==="auto")){for(const C of s.value){const M=S.value?.columns[C];M&&(Object.assign(M,{[V]:w}),V==="headerAlign"&&h(C,w))}a()}}return{selected:n,query:r,selectedColumns:s,lists:p,activeList:S,headerAlignments:k,visibleColumns:f,toggleColumn:b,selectVisible:N,clearSelection:y,fieldChange:u,confirmFieldChange:E,cancelFieldChange:()=>{u.value=void 0},setColumn:g,alignColumns:D}}function Xe(t){return t.kind==="snapshot"?t.value.length*2:(t.removed.length+t.inserted.length)*2+16}function Al(t,l,o=!1){const a={kind:"snapshot",value:l};if(o)return a;let n=0;const r=Math.min(t.length,l.length);for(;n<r&&t.charCodeAt(n)===l.charCodeAt(n);)n++;let s=t.length,u=l.length;for(;s>n&&u>n&&t.charCodeAt(s-1)===l.charCodeAt(u-1);)s--,u--;const p={kind:"patch",start:n,removed:t.slice(n,s),inserted:l.slice(n,u)};return Xe(p)<Xe(a)?p:a}function De(t,l,o=!1){if(l.kind==="snapshot")return l.value;const a=o?l.inserted:l.removed,n=o?l.removed:l.inserted;return t.slice(0,l.start)+n+t.slice(l.start+a.length)}const Se=t=>Xe(t)+(t.view?64:0),Te=(t,l)=>l?{...t,view:{before:{...l},after:{...l}}}:t;function Fl(t,l={entries:100,bytes:16*1024*1024}){if(![l.entries,l.bytes].every(E=>Number.isSafeInteger(E)&&E>0))throw new RangeError("History budgets must be positive safe integers");const o=e.shallowRef([{kind:"snapshot",value:t}]),a=e.ref(0),n=e.ref(t),r=e.computed(()=>a.value>0),s=e.computed(()=>a.value+1<o.value.length),u=e.computed(()=>n.value),p=e.computed(()=>o.value.reduce((E,c)=>E+Se(c),0)),S=e.shallowRef();function k(E,c){o.value=[Te({kind:"snapshot",value:E},c)],a.value=0,n.value=E,S.value=c}function f(E){let c=E;for(;c>0&&o.value[c].kind!=="snapshot";)c--;let d="";for(;c<=E;c++)d=De(d,o.value[c]);return d}function b(E){let c=E.reduce((d,h)=>d+Se(h),0);for(;E.length>1&&(E.length>l.entries||c>l.bytes);){const d=E[0],h=E[1],D=Te({kind:"snapshot",value:De(d.value,h)},h.view?.after);c+=Se(D)-Se(d)-Se(h),E.splice(0,2,D)}return E}function N(E){if(!E)return;const c=o.value.slice(),d=c[a.value];c[a.value]=d.view?{...d,view:{before:d.view.before,after:{...E}}}:Te(d,E),o.value=c}function y(E,c){if(n.value===E)return!1;const d=o.value.slice(0,a.value+1);return d.push(Te(Al(n.value,E,d.length%20===0),c)),o.value=b(d),a.value=o.value.length-1,n.value=E,!0}function g(E){if(E<0?!r.value:!s.value)return;const c=o.value[a.value];return S.value=E<0?c.view?.before:o.value[a.value+1]?.view?.after,E<0&&c.kind==="patch"?n.value=De(n.value,c,!0):E>0?n.value=De(n.value,o.value[a.value+1]):n.value=f(a.value-1),a.value+=E,n.value}return{canUndo:r,canRedo:s,current:u,context:S,retainedBytes:p,reset:k,record:y,move:g,annotate:N}}function Hl(t){const l=e.shallowRef(null),o=e.ref(!1);let a,n=0;function r(p){a?.(p),a=void 0,l.value=null}function s(){n++,r(!1),o.value=!1}async function u(p){s();const S=n,k=t();o.value=!0;try{const f=await new Promise((b,N)=>{if(a=b,!k){l.value=p;return}Promise.resolve().then(()=>n===S?k(p):!1).then(y=>{n===S&&r(y===!0)},y=>{n===S&&(a=void 0,l.value=null,N(y))})});return n===S&&f===!0}finally{n===S&&(o.value=!1)}}return e.onBeforeUnmount(s),{confirmation:l,pending:o,decide:r,request:u,cancel:s}}function Ol(t,l){const o=e.ref(P.parseReportTemplate(t.modelValue)),a=e.ref(P.serializeReportTemplate(o.value)),n=e.ref(P.serializeReportTemplate(o.value)),r=e.ref(""),s=e.ref(!1),u=e.computed(()=>({...me,...t.messages})),p=e.computed(()=>({showExport:!1,showPrint:!1,showPdfWindow:!1,...t.preview,theme:{shellBg:"#f1f5f9",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e2e8f0",toolbarFg:"#334155",btnFg:"#475569",btnBorder:"#cbd5e1",btnHoverBg:"#eff6ff",btnHoverFg:"#1d4ed8",btnActiveBg:"#2563eb",...t.preview?.theme}}));We.provideMachReportConfig({get defaults(){return p.value}});let S,k=0;const f=e.computed(()=>P.validateReportTemplateDocument(o.value)),b=e.computed(()=>{try{return P.serializeReportTemplate(o.value)!==a.value}catch{return!0}}),N=e.ref(n.value),y=e.computed(()=>n.value!==N.value),g=e.ref({}),E=e.ref(0),c=e.ref(0),d=e.computed(()=>Object.values(g.value).some(Boolean)),h=e.computed(()=>Object.keys(g.value).filter(R=>g.value[R]));function D(R,H){g.value={...g.value,[R]:H},E.value++}const V=Sl(D),w=e.computed(()=>b.value||n.value!==N.value||d.value||!!O.fieldChange.value),C=()=>JSON.stringify({document:o.value,json:n.value,appliedJson:N.value}),M=Fl(C()),$=e.ref(0);let F;function q(R){F=R,M.annotate(R.read())}function Z(){M.annotate(F?.read())}const I=Hl(()=>t.beforeDiscard),i=e.computed(()=>s.value||I.pending.value||pe.active.value||be.checking.value||!!be.available.value),G=()=>!t.readonly&&!i.value&&!y.value,O=Pl(o,()=>f.value.ok,G,te),{selected:x,lists:T,activeList:B,headerAlignments:L,setColumn:_}=O;e.watch(x,()=>O.clearSelection());const U=e.computed(()=>f.value.ok?We.createLocalFetcher({draft:{template:o.value.template,datasets:t.datasets??{},params:[]}}):void 0);function Q(){k++,S?.abort(),S=void 0,s.value=!1}let oe=0;async function ee(R="replace",H){if(!w.value)return!0;const j=C(),ne=E.value;try{return await I.request({reason:R,document:JSON.parse(JSON.stringify(o.value)),replacement:H?P.parseReportTemplate(H):void 0,pendingLocalChanges:!0})&&j===C()&&ne===E.value}catch(ie){return r.value=ie instanceof Error?ie.message:String(ie),!1}}function K(R){Q(),pe.clear(),V.clear(),o.value=R,a.value=P.serializeReportTemplate(R),n.value=a.value,N.value=n.value,r.value="",x.value=0,O.clearSelection(),O.cancelFieldChange(),g.value={},E.value++,c.value++,M.reset(C(),F?.read())}e.watch(()=>t.modelValue,async R=>{let H;try{H=P.parseReportTemplate(R)}catch(ne){r.value=ne instanceof Error?ne.message:String(ne);return}try{if(P.serializeReportTemplate(H)===P.serializeReportTemplate(o.value))return}catch{}const j=++oe;if(Q(),!await ee("replace",H)){j===oe&&f.value.ok&&l("update:modelValue",P.parseReportTemplate(o.value));return}j===oe&&K(H)}),e.onBeforeUnmount(()=>{oe++,Q()});function te(){I.cancel(),r.value="",f.value.ok&&(n.value=P.serializeReportTemplate(o.value),N.value=n.value,l("update:modelValue",P.parseReportTemplate(o.value))),M.record(C(),F?.read())&&$.value++}function ae(R){if(!G())return!1;try{const H=P.parseReportTemplate(o.value);R(H);const j=P.validateReportTemplateDocument(H);if(!j.ok)throw new Error(j.errors.map(ne=>`${ne.path}: ${ne.message}`).join(`
|
|
2
|
-
`));return o.value=H,te(),!0}catch(H){return r.value=H instanceof Error?H.message:String(H),!1}}async function re(R){if(!G())return!1;try{const H=P.parseReportTemplate(R);return!await ee("replace",H)||!G()?!1:(o.value=H,x.value=0,O.clearSelection(),te(),!0)}catch(H){return r.value=H instanceof Error?H.message:String(H),!1}}function X(R){G()&&(o.value.name=R,te())}function ye(R){G()&&(o.value.description=R,te())}function Fe(){if(!(t.readonly||i.value))try{const R=P.parseReportTemplate(n.value);if(R.id!==o.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(R.revision!==o.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");o.value=R,x.value=0,O.clearSelection(),te()}catch(R){r.value=R instanceof Error?R.message:String(R)}}async function we(){i.value||t.readonly||!await ee("reset")||(K(P.parseReportTemplate(a.value)),l("update:modelValue",P.parseReportTemplate(o.value)))}function Ve(R){if(i.value||t.readonly)return;M.record(C(),F?.read());const H=M.move(R);if(!H)return;I.cancel();const j=JSON.parse(H);o.value=j.document,n.value=j.json,N.value=j.appliedJson,r.value="",x.value=0,O.clearSelection(),M.context.value&&F?.restore(M.context.value),f.value.ok&&l("update:modelValue",P.parseReportTemplate(o.value))}async function He(){if(!t.save||!G()||!f.value.ok)return;if(d.value||O.fieldChange.value){r.value=u.value.toolsPending;return}const R=++k;S=new AbortController,s.value=!0,r.value="";const H=P.parseReportTemplate(o.value);try{const j=P.parseReportTemplate(await t.save(H,{expectedRevision:H.revision,signal:S.signal}));if(R!==k)return;if(j.id!==H.id)throw new Error("保存服务返回了其他模板的文档");o.value=j,a.value=P.serializeReportTemplate(j),n.value=a.value,N.value=n.value,M.reset(C(),F?.read()),V.clear(),be.flush(),l("saved",P.parseReportTemplate(j)),l("update:modelValue",P.parseReportTemplate(j))}catch(j){R===k&&(r.value=j instanceof Error?j.message:String(j),j&&typeof j=="object"&&"code"in j&&j.code==="conflict"&&pe.begin())}finally{R===k&&(s.value=!1,S=void 0)}}const pe=Ll({configuration:()=>t,baseline:()=>P.parseReportTemplate(a.value),local:()=>P.parseReportTemplate(o.value),async applyLatest(R){return await ee("replace",R)?(K(R),l("update:modelValue",P.parseReportTemplate(R)),!0):!1},rebase(R){const H=P.parseReportTemplate(o.value);R.revision===void 0?delete H.revision:H.revision=R.revision;const j=P.serializeReportTemplate(H),ne=P.serializeReportTemplate(R),ie=y.value;H.revision===void 0?delete o.value.revision:o.value.revision=H.revision,a.value=ne,ie||(n.value=j),N.value=j,M.reset(C(),F?.read()),l("update:modelValue",P.parseReportTemplate(o.value))}}),be=_l({storage:()=>t.draftStorage,id:()=>o.value.id,baseline:()=>a.value,pending:()=>w.value,changedSource:()=>[o.value,a.value,n.value,N.value,V.records.value],snapshot:()=>({version:1,templateId:o.value.id,savedAt:new Date().toISOString(),baseline:P.parseReportTemplate(a.value),document:JSON.parse(JSON.stringify(o.value)),json:n.value,appliedJson:N.value,tools:V.records.value}),restore(R){if(t.readonly||s.value)return;const H=P.parseReportTemplate(t.modelValue);o.value=P.parseReportTemplate(R.document),a.value=P.serializeReportTemplate(R.baseline),n.value=R.json,N.value=R.appliedJson,c.value++,V.restore(R.tools);const j=Object.keys(R.tools).find(ne=>ne.startsWith("rules:"));if(j){const[,ne,ie]=j.split(":"),xe=T.value.findIndex(ue=>ue.pageIndex===Number(ne)&&ue.componentIndex===Number(ie));xe>=0&&(x.value=xe)}M.reset(C(),F?.read()),P.serializeReportTemplate(H)!==a.value&&pe.begin(H),l("update:modelValue",P.parseReportTemplate(o.value))}}),Oe=e.computed(()=>M.canUndo.value||C()!==M.current.value),J=e.computed(()=>M.canRedo.value&&C()===M.current.value);return{...O,recovery:be,conflict:pe,editingReadonly:e.computed(()=>t.readonly===!0),connectHistoryView:q,captureHistoryView:Z,historyViewRevision:$,transaction:ae,replaceDocument:re,originalDocument:e.computed(()=>P.parseReportTemplate(a.value)),canUndo:Oe,canRedo:J,undo:()=>Ve(-1),redo:()=>Ve(1),pendingLocalChanges:w,setToolPending:D,isToolPending:R=>g.value[R]===!0,toolEpoch:c,toolPending:d,pendingTools:h,jsonPending:y,blocked:i,confirmation:I.confirmation,decideDiscard:I.decide,guardChanges:ee,draft:o,json:n,selected:x,error:r,saving:s,dirty:b,validation:f,lists:T,activeList:B,headerAlignments:L,previewOptions:p,fetcher:U,messages:u,setName:X,setDescription:ye,setColumn:_,applyJson:Fe,reset:we,save:He}}function Gl(t,l){const o=e.ref(l.value?"fields":"component"),a=()=>l.value?.columns.length?0:-1,n=e.ref(a()),r=e.computed(()=>{const p=l.value?.columns[n.value];return p?{column:p,index:n.value}:void 0});e.watch(t,()=>{n.value=a()}),e.watch(l,p=>{p?.columns[n.value]||(n.value=a()),!p&&o.value==="fields"&&(o.value="component")});function s(p){l.value?.columns[p]&&(n.value=p)}function u(p){const S=l.value?.columns.length??0;S&&(n.value=Math.max(0,Math.min(S-1,n.value+p)))}return{section:o,activeIndex:n,activeColumn:r,activate:s,stepColumn:u}}const zl=["aria-label","aria-busy"],jl={class:"mr-designer-bar"},ql={class:"mr-designer-heading"},Ul=["aria-label"],Jl=["id","aria-selected","aria-controls","tabindex","onClick"],Wl={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},Kl=["aria-label"],Yl=["aria-pressed"],Xl=["aria-pressed"],Zl={class:"mr-designer-actions"},Ql={class:"mr-designer-history"},er=["aria-label","title","disabled"],tr=["aria-label","title","disabled"],nr=["disabled"],or=["title","aria-describedby","disabled"],ar=["id"],lr=["id"],rr=["aria-label","onClick"],ir=["aria-label"],sr=["aria-label"],cr=["id","aria-pressed","aria-describedby","onClick"],dr={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},ur={class:"mr-designer-tool-content"},mr={key:5,class:"mr-designer-rule-workspace"},pr={key:0},fr=["value"],vr=["value"],gr={key:2,class:"mr-designer-note"},hr={key:1,class:"mr-designer-inspector"},yr=["id","aria-labelledby"],br={key:0,class:"mr-designer-flow-note"},kr={key:0,class:"mr-designer-area"},Er=["value"],Sr=["value"],Nr={class:"mr-designer-current"},wr=["aria-expanded","aria-controls"],Vr={class:"mr-designer-current-name"},xr={class:"mr-designer-directory-entry"},Cr={class:"mr-designer-field-position"},Br=["aria-label"],Mr=["aria-label","title","disabled"],Dr=["aria-label","title","disabled"],Tr=["disabled","aria-label"],$r={class:"mr-designer-property-group"},Ir=["value"],Rr=["value","list"],_r=["id"],Lr=["value"],Pr={class:"mr-designer-property-group"},Ar={class:"mr-designer-format-pair"},Fr={class:"mr-designer-stacked"},Hr=["value","disabled"],Or={class:"mr-designer-stacked"},Gr=["value"],zr={value:"identifier"},jr={value:"dimension"},qr={value:"measure"},Ur={value:"date"},Jr={value:"text"},Wr={class:"mr-designer-control-row"},Kr={class:"mr-designer-control-row"},Yr={class:"mr-designer-toggle"},Xr=["checked"],Zr={class:"mr-designer-column-structure"},Qr=["aria-label","title","disabled"],ei=["aria-label","title","disabled"],ti=["checked","disabled"],ni=["id","aria-label"],oi={class:"mr-designer-directory-heading"},ai=["aria-label"],li={class:"mr-designer-search"},ri=["aria-label","placeholder"],ii=["aria-label","title"],si={class:"mr-designer-column-tools"},ci=["disabled"],di={key:1,role:"status"},ui={key:2},mi=["aria-label"],pi=["aria-label","checked","disabled","onChange"],fi=["data-column-index","aria-pressed","tabindex","onClick"],vi={class:"mr-designer-column-number"},gi={class:"mr-designer-column-name"},hi={key:0,role:"status",class:"mr-designer-empty"},yi={key:0,class:"mr-designer-batch"},bi=["aria-label","disabled"],ki={value:""},Ei={value:"auto"},Si={value:"left"},Ni={value:"center"},wi={value:"right"},Vi={value:"justify"},xi=["aria-label","disabled"],Ci={value:""},Bi={value:"left"},Mi={value:"center"},Di={value:"right"},Ti={value:"justify"},$i={key:2,role:"status",class:"mr-designer-empty"},Ii={class:"mr-designer-object-tools"},Ri=["aria-label","disabled"],_i={value:""},Li={value:"text"},Pi=["disabled"],Ai={value:"image"},Fi={value:"rect"},Hi={value:"qrcode"},Oi={value:"barcode"},Gi=["title","aria-label","disabled"],zi=["title","aria-label","disabled"],ji={key:0},qi=["value"],Ui={class:"mr-designer-stacked"},Ji=["value"],Wi={value:-1,disabled:""},Ki=["value"],Yi={key:1,class:"mr-designer-arrange"},Xi=["disabled"],Zi=["aria-label","disabled"],Qi={value:""},es={value:"left"},ts={value:"center"},ns={value:"right"},os={value:"top"},as={value:"middle"},ls={value:"bottom"},rs=["disabled"],is=["disabled"],ss={key:0},cs={class:"mr-designer-layer-tools"},ds=["disabled"],us=["disabled"],ms={key:3,class:"mr-designer-empty"},ps={class:"mr-designer-stacked"},fs=["value","disabled"],vs={class:"mr-designer-stacked"},gs=["value","disabled"],hs={class:"mr-designer-technical"},ys={class:"mr-designer-identity"},bs={class:"mr-designer-stacked mr-designer-json-label"},ks=["aria-label","disabled"],Es=["disabled"],Ss={key:5,role:"status",class:"mr-designer-note mr-designer-pending"},Ns=["aria-label"],ws={key:0,role:"alert",class:"mr-designer-error"},Vs={key:1,role:"alert",class:"mr-designer-error"},xs={key:4,class:"mr-designer-note mr-designer-invalid"},Cs=e.defineComponent({__name:"ReportTemplateEditor",props:{draftStorage:{},recoveryMessages:{},productMessages:{},reviewMessages:{},fragments:{},documentStyles:{},reviewFixtures:{},modelValue:{},datasets:{},dataSchemas:{},bindingDatasets:{},bindingSession:{},readonly:{type:Boolean},messages:{},preview:{},beforeDiscard:{type:Function},save:{type:Function},loadLatest:{type:Function},keepCopy:{type:Function}},emits:["update:modelValue","saved","excel-bound"],setup(t,{expose:l,emit:o}){const a=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-CLT2p7P3.cjs"))),n=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-vIDzvpPV.cjs"))),r=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-BaR6xUiI.cjs"))),s=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-BHKP89Xz.cjs"))),u=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-CY5eO2Sh.cjs"))),p=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-JvZe9_4G.cjs"))),S=t,k=o,f=Ol(S,(A,v)=>{k(A==="saved"?"saved":"update:modelValue",v)}),{draft:b,json:N,selected:y,error:g,saving:E,pendingLocalChanges:c,jsonPending:d,blocked:h,confirmation:D,canUndo:V,canRedo:w,validation:C,lists:M,activeList:$,visibleColumns:F,query:q,selectedColumns:Z,fetcher:I,messages:i}=f;function G(A){return f.transaction(v=>{v.template.params=A})}const O=Gl(y,$),{section:x,activeIndex:T,activeColumn:B}=O,L=`mr-designer-${e.getCurrentInstance()?.uid??0}`,_=e.computed(()=>[...M.value.length?["fields"]:[],"component","template","tools","advanced"]),U=bl(f,O,()=>S.dataSchemas),{mode:Q,setMode:oe,canvasSelection:ee,canvasPage:K,canvasActive:te,tool:ae,visitedTools:re,editDisabled:X,dataSchema:ye,chooseCanvas:Fe,insertComponent:we,patchCanvas:Ve,changeList:He,moveColumn:pe,headerCommand:be,locateReview:Oe,canvas:J}=U,R=e.computed(()=>!!b.value.template.pages[K.value]?.flow),H=e.computed(()=>S.dataSchemas?.[b.value.template.repeat?.dataset??""]),j=e.computed(()=>{const A={text:i.value.insertText,list:i.value.insertList,image:i.value.insertImage,rect:i.value.insertRect,qrcode:i.value.insertQrcode,barcode:i.value.insertBarcode,chart:i.value.chartComponent,line:i.value.lineComponent,ellipse:i.value.ellipseComponent},v=new Map(H.value?.fields.map(m=>[m.field,m.label||m.field]));return b.value.template.pages[K.value]?.components.map((m,z)=>{const se=A[m.kind],qe=(m.kind==="list"?m.title||m.dataset:m.binding?v.get(m.binding.field)||m.binding.field:m.text)?.replace(/\s+/g," ").trim().slice(0,60);return{index:z,name:qe&&qe!==se?`${se} · ${qe}`:se}})??[]});function ne(A){let v=K.value;f.transaction(m=>{v=Pt(m,K.value,A)})&&(A.type!=="patch"&&(J.clearLocks(),J.selection.value=void 0,J.selections.value=[]),K.value=v)}const ie=e.computed(()=>!!b.value.template.pages[M.value[y.value]?.pageIndex??-1]?.flow);function xe(){x.value="tools",ae.value="excel"}const ue=e.computed(()=>{const A=["excel","rules","params"].filter(v=>f.pendingTools.value.includes(v)).map(v=>({target:v,label:i.value[`${v}Tool`]}));return d.value&&A.push({target:"json",label:i.value.json}),A}),Ce=e.computed(()=>E.value?i.value.saving:S.readonly?i.value.saveReadonly:h.value?i.value.saveConfirmation:ue.value.length?ue.value.map(A=>`${A.label} · ${i.value.unapplied}`).join(";"):C.value.ok?c.value?"":i.value.saveUnchanged:i.value.saveInvalid);async function gt(A){A==="json"?x.value="advanced":(x.value="tools",ae.value=A),await e.nextTick();const v=A==="json"?`#${L}-panel-advanced textarea`:`#${L}-tool-${A}`;document.querySelector(v)?.focus({preventScroll:!0})}const ht=e.computed(()=>E.value?i.value.saving:S.readonly?i.value.readonly:c.value?i.value.dirty:i.value.ready),Ze=e.ref(null),Ge=e.ref(null),le=El(O,x,F),{open:Qe,cursor:yt,trigger:bt,panel:kt,search:Et,list:St}=le;e.watch(x,async()=>{await e.nextTick(),Ge.value&&(Ge.value.scrollTop=0)});const et=e.computed(()=>({auto:i.value.auto,left:i.value.left,center:i.value.center,right:i.value.right,justify:i.value.justify}));let Be=null;e.watch(D,async A=>{A?(Be=document.activeElement,await e.nextTick(),Ze.value?.focus()):(await e.nextTick(),Be?.isConnected&&Be.focus(),Be=null)}),l({get pendingLocalChanges(){return c.value},get saving(){return E.value},get blocked(){return h.value},guardChanges:f.guardChanges,reset:f.reset,save:f.save});async function Nt(A){const v={...A.document,id:b.value.id};if(b.value.revision===void 0?delete v.revision:v.revision=b.value.revision,!await f.replaceDocument(v))return!1;const m=P.parseReportTemplate(f.draft.value);return k("excel-bound",{...A,document:m,session:{...A.session,identity:{id:m.id,name:m.name}}}),!0}async function Me(A){const v=M.value.findIndex(m=>m.pageIndex===A.pageIndex&&m.componentIndex===A.componentIndex);v>=0&&v!==y.value&&f.isToolPending("rules")&&!await f.guardChanges()||Fe(A)}async function ze(A){const v=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(A.path??""),m=A.pageIndex??(v?Number(v[1]):void 0),z=A.componentIndex??(v?Number(v[2]):void 0),se=M.value.findIndex(Ee=>Ee.pageIndex===m&&Ee.componentIndex===z);se>=0&&se!==y.value&&f.isToolPending("rules")&&!await f.guardChanges()||Oe(A)}async function tt(A){const v=A.target,m=Number(v.value);if(f.isToolPending("rules")&&!await f.guardChanges()){v.value=String(y.value);return}y.value=m}function fe(A){return A.target.value}function je(A){return A.target.checked}function nt(A,v){const m=A.target;f.alignColumns(v,m.value),m.value=""}async function wt(A){const m={ArrowRight:1,ArrowLeft:-1,Home:-_.value.length,End:_.value.length}[A.key];if(m===void 0)return;A.preventDefault();const z=_.value.indexOf(x.value),se=A.key==="Home"?0:A.key==="End"?_.value.length-1:(z+m+_.value.length)%_.value.length;x.value=_.value[se];const Ee=A.currentTarget.parentElement;await e.nextTick(),Ee?.querySelector(`#${L}-tab-${x.value}`)?.focus()}return(A,v)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(i).title,"aria-busy":e.unref(E)},[e.createElementVNode("header",jl,[e.createElementVNode("div",ql,[e.createVNode(W._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(c)})},e.toDisplayString(ht.value),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(i).sectionsLabel},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,m=>(e.openBlock(),e.createElementBlock("button",{id:`${L}-tab-${m}`,key:m,type:"button",role:"tab","aria-selected":e.unref(x)===m,"aria-controls":`${L}-panel-${m}`,tabindex:e.unref(x)===m?0:-1,onClick:z=>x.value=m,onKeydown:wt},[e.createTextVNode(e.toDisplayString(e.unref(i)[`${m}Section`])+" ",1),m==="tools"&&e.unref(f).toolPending.value||m==="advanced"&&e.unref(d)?(e.openBlock(),e.createElementBlock("span",Wl)):e.createCommentVNode("",!0)],40,Jl))),128))],8,Ul),e.createElementVNode("div",{class:"mr-designer-mode",role:"group","aria-label":e.unref(i).design},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(Q)==="design",onClick:v[0]||(v[0]=m=>e.unref(oe)("design"))},e.toDisplayString(e.unref(i).design),9,Yl),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(Q)==="preview",onClick:v[1]||(v[1]=m=>e.unref(oe)("preview"))},e.toDisplayString(e.unref(i).preview),9,Xl)],8,Kl),e.createElementVNode("div",Zl,[e.createElementVNode("div",Ql,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(i).undo,title:e.unref(i).undo,disabled:t.readonly||e.unref(h)||!e.unref(V),onClick:v[2]||(v[2]=m=>{e.unref(J).clearLocks(),e.unref(f).undo()})},[...v[56]||(v[56]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 10h10a6 6 0 0 1 0 12M4 10l5-5M4 10l5 5"})],-1)])],8,er),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(i).redo,title:e.unref(i).redo,disabled:t.readonly||e.unref(h)||!e.unref(w),onClick:v[3]||(v[3]=m=>{e.unref(J).clearLocks(),e.unref(f).redo()})},[...v[57]||(v[57]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 10H10a6 6 0 0 0 0 12m10-12-5-5m5 5-5 5"})],-1)])],8,tr)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:t.readonly||e.unref(h)||!e.unref(c),onClick:v[4]||(v[4]=(...m)=>e.unref(f).reset&&e.unref(f).reset(...m))},e.toDisplayString(e.unref(i).reset),9,nr),t.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",title:Ce.value||e.unref(i).save,"aria-describedby":ue.value.length?`${L}-pending`:Ce.value?`${L}-save-reason`:void 0,disabled:t.readonly||e.unref(h)||e.unref(d)||e.unref(f).toolPending.value||!!e.unref(f).fieldChange.value||!e.unref(C).ok||!e.unref(c),onClick:v[5]||(v[5]=(...m)=>e.unref(f).save&&e.unref(f).save(...m))},[e.createVNode(W._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(E)?e.unref(i).saving:e.unref(i).save),1)],8,or)):e.createCommentVNode("",!0),t.save&&Ce.value&&!ue.value.length?(e.openBlock(),e.createElementBlock("span",{key:1,id:`${L}-save-reason`,class:"mr-designer-save-reason"},e.toDisplayString(Ce.value),9,ar)):e.createCommentVNode("",!0)])]),e.createVNode(sl,{recovery:e.unref(f).recovery,conflict:e.unref(f).conflict,readonly:t.readonly,"can-load":!!t.loadLatest,"can-copy":!!t.keepCopy,messages:t.recoveryMessages},null,8,["recovery","conflict","readonly","can-load","can-copy","messages"]),e.createVNode(Ha,{messages:t.productMessages,change:e.unref(f).fieldChange.value,disabled:e.unref(X),onConfirm:e.unref(f).confirmFieldChange,onCancel:e.unref(f).cancelFieldChange,onLocate:ze},null,8,["messages","change","disabled","onConfirm","onCancel"]),ue.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,id:`${L}-pending`,class:"mr-designer-pending",role:"status"},[e.createElementVNode("span",null,e.toDisplayString(e.unref(i).pendingToolsLabel),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ue.value,m=>(e.openBlock(),e.createElementBlock("button",{key:m.target,type:"button","aria-label":`${m.label} · ${e.unref(i).unapplied} · ${e.unref(i).returnToConfiguration}`,onClick:z=>gt(m.target)},[e.createTextVNode(e.toDisplayString(m.label),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(i).unapplied)+" ↗",1)],8,rr))),128)),e.createElementVNode("small",null,e.toDisplayString(e.unref(i).pendingToolsHint),1)],8,lr)):e.createCommentVNode("",!0),e.unref(D)?(e.openBlock(),e.createElementBlock("div",{key:1,role:"alertdialog","aria-label":e.unref(i).discardTitle,class:"mr-designer-confirm",onKeydown:v[8]||(v[8]=e.withKeys(e.withModifiers(m=>e.unref(f).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(i).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:Ze,type:"button",onClick:v[6]||(v[6]=m=>e.unref(f).decideDiscard(!1))},e.toDisplayString(e.unref(i).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:v[7]||(v[7]=m=>e.unref(f).decideDiscard(!0))},e.toDisplayString(e.unref(i).discard),1)])],40,ir)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mr-designer-body",{"is-tools":e.unref(x)==="tools"}])},[e.unref(re).size?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:e.unref(f).toolEpoch.value,class:"mr-designer-tools"},[e.createElementVNode("nav",{class:"mr-designer-tool-tabs","aria-label":e.unref(i).toolsSection},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["outline","reuse","excel","rules","params","review"],m=>e.createElementVNode("button",{key:m,id:`${L}-tool-${m}`,type:"button","aria-pressed":e.unref(ae)===m,"aria-describedby":e.unref(f).isToolPending(m)?`${L}-pending`:void 0,onClick:z=>ae.value=m},[e.createTextVNode(e.toDisplayString(e.unref(i)[`${m}Tool`])+" ",1),e.unref(f).isToolPending(m)?(e.openBlock(),e.createElementBlock("span",dr)):e.createCommentVNode("",!0)],8,cr)),64)),e.createElementVNode("span",null,e.toDisplayString(e.unref(i).toolsDescription),1)],8,sr),e.createElementVNode("div",ur,[e.unref(re).has("outline")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(s),{key:0,messages:t.productMessages,document:e.unref(b),selection:e.unref(ee),onLocate:ze},null,8,["messages","document","selection"])),[[e.vShow,e.unref(ae)==="outline"]]):e.createCommentVNode("",!0),e.unref(re).has("reuse")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(u),{key:1,messages:t.productMessages,document:e.unref(b),"page-index":e.unref(K),selection:e.unref(ee),fragments:t.fragments,styles:t.documentStyles,disabled:e.unref(X),accept:e.unref(f).transaction,onSelect:Me},null,8,["messages","document","page-index","selection","fragments","styles","disabled","accept"])),[[e.vShow,e.unref(ae)==="reuse"]]):e.createCommentVNode("",!0),e.unref(re).has("params")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(n),{key:2,document:e.unref(b),readonly:e.unref(X),accept:G,onDirty:v[9]||(v[9]=m=>e.unref(f).setToolPending("params",m))},null,8,["document","readonly"])),[[e.vShow,e.unref(ae)==="params"]]):e.createCommentVNode("",!0),e.unref(re).has("excel")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(a),{key:3,datasets:t.bindingDatasets??[],session:t.bindingSession,identity:{id:e.unref(b).id,name:e.unref(b).name},"lock-id":"",readonly:e.unref(X),accept:Nt,onDirty:v[10]||(v[10]=m=>e.unref(f).setToolPending("excel",m))},null,8,["datasets","session","identity","readonly"])),[[e.vShow,e.unref(ae)==="excel"]]):e.createCommentVNode("",!0),e.unref(re).has("review")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(p),{key:4,document:e.unref(b),previous:e.unref(f).originalDocument.value,fixtures:t.reviewFixtures,messages:t.reviewMessages,datasets:t.datasets,"data-schemas":t.dataSchemas,onLocate:ze},null,8,["document","previous","fixtures","messages","datasets","data-schemas"])),[[e.vShow,e.unref(ae)==="review"]]):e.createCommentVNode("",!0),e.unref(re).has("rules")?e.withDirectives((e.openBlock(),e.createElementBlock("div",mr,[e.unref(M).length>1?(e.openBlock(),e.createElementBlock("label",pr,[e.createTextVNode(e.toDisplayString(e.unref(i).area),1),e.createElementVNode("select",{value:e.unref(y),onChange:tt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(M),(m,z)=>(e.openBlock(),e.createElementBlock("option",{key:z,value:z},e.toDisplayString(m.component.title||m.component.dataset),9,vr))),128))],40,fr)])):e.createCommentVNode("",!0),e.unref($)?(e.openBlock(),e.createBlock(e.unref(r),{key:1,list:e.unref($),"recovery-key":`rules:${e.unref(M)[e.unref(y)]?.pageIndex??0}:${e.unref(M)[e.unref(y)]?.componentIndex??0}`,datasets:t.datasets,"dataset-schema":e.unref(ye),"dataset-schemas":t.dataSchemas,readonly:e.unref(X),onChange:e.unref(He),onDirty:v[11]||(v[11]=m=>e.unref(f).setToolPending("rules",m))},null,8,["list","recovery-key","datasets","dataset-schema","dataset-schemas","readonly","onChange"])):(e.openBlock(),e.createElementBlock("p",gr,e.toDisplayString(e.unref(i).rulesNeedList),1))],512)),[[e.vShow,e.unref(ae)==="rules"]]):e.createCommentVNode("",!0)])])),[[e.vShow,e.unref(x)==="tools"]]):e.createCommentVNode("",!0),e.unref(x)!=="tools"?(e.openBlock(),e.createElementBlock("aside",hr,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:Ge,id:`${L}-panel-${e.unref(x)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref(x)==="advanced"}]),role:"tabpanel","aria-labelledby":`${L}-tab-${e.unref(x)}`},[R.value||ie.value?(e.openBlock(),e.createElementBlock("div",br,[e.createElementVNode("small",null,e.toDisplayString(e.unref(i).flowLayout),1),e.createElementVNode("button",{type:"button",onClick:xe},e.toDisplayString(e.unref(i).excelTool)+" ↗",1)])):e.createCommentVNode("",!0),e.unref(x)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.unref(M).length>1?(e.openBlock(),e.createElementBlock("label",kr,[e.createTextVNode(e.toDisplayString(e.unref(i).area),1),e.createElementVNode("select",{value:e.unref(y),onChange:tt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(M),(m,z)=>(e.openBlock(),e.createElementBlock("option",{key:z,value:z},e.toDisplayString(m.pageIndex+1)+" "+e.toDisplayString(e.unref(i).page)+" · "+e.toDisplayString(m.component.title||m.component.dataset),9,Sr))),128))],40,Er)])):e.createCommentVNode("",!0),e.unref($)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Nr,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:bt,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(Qe),"aria-controls":`${L}-directory`,"aria-haspopup":"dialog",onClick:v[12]||(v[12]=(...m)=>e.unref(le).toggle&&e.unref(le).toggle(...m)),onKeydown:v[13]||(v[13]=e.withKeys((...m)=>e.unref(le).escape&&e.unref(le).escape(...m),["esc"]))},[e.createElementVNode("span",Vr,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(B)?.column.header||e.unref(i).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(B)?.column.field||"—"),1)]),e.createElementVNode("span",xr,[e.createTextVNode(e.toDisplayString(e.unref(i).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref($).columns.length),1),e.createVNode(W._sfc_main,{name:"chevron-down",size:13})])],40,wr),e.createElementVNode("div",Cr,[e.createElementVNode("span",{"aria-label":e.unref(i).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref(T)>=0?e.unref(T)+1:0),1),v[58]||(v[58]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref($).columns.length),1)],8,Br),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(i).previousColumn,title:e.unref(i).previousColumn,disabled:e.unref(T)<=0,onClick:v[14]||(v[14]=m=>e.unref(O).stepColumn(-1))},[e.createVNode(W._sfc_main,{name:"chevron-left",size:14})],8,Mr),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(i).nextColumn,title:e.unref(i).nextColumn,disabled:e.unref(T)>=e.unref($).columns.length-1,onClick:v[15]||(v[15]=m=>e.unref(O).stepColumn(1))},[e.createVNode(W._sfc_main,{name:"chevron-right",size:14})],8,Dr)])]),e.unref(B)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:t.readonly||e.unref(h)||e.unref(d),"aria-label":e.unref(i).columnProperties},[e.createElementVNode("div",$r,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(i).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).header),1),e.createElementVNode("input",{value:e.unref(B).column.header,onInput:v[16]||(v[16]=m=>e.unref(f).setColumn(e.unref(B).index,"header",fe(m)))},null,40,Ir)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).field),1),e.createElementVNode("input",{value:e.unref(B).column.field,list:e.unref(ye)?`${L}-fields`:void 0,onChange:v[17]||(v[17]=m=>e.unref(f).setColumn(e.unref(B).index,"field",fe(m)))},null,40,Rr)]),e.unref(ye)?(e.openBlock(),e.createElementBlock("datalist",{key:0,id:`${L}-fields`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ye).fields,m=>(e.openBlock(),e.createElementBlock("option",{key:m.field,value:m.field},e.toDisplayString(m.label)+" · "+e.toDisplayString(m.type)+" "+e.toDisplayString(m.unit),9,Lr))),128))],8,_r)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Pr,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(i).formatGroup),1),e.createElementVNode("div",Ar,[e.createElementVNode("label",Fr,[e.createTextVNode(e.toDisplayString(e.unref(i).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(B).column.widthMm,disabled:ie.value,onChange:v[18]||(v[18]=m=>e.unref(f).setColumn(e.unref(B).index,"widthMm",fe(m)))},null,40,Hr)]),e.createElementVNode("label",Or,[e.createTextVNode(e.toDisplayString(e.unref(i).semantic),1),e.createElementVNode("select",{value:e.unref(B).column.semanticRole||"text",onChange:v[19]||(v[19]=m=>e.unref(f).setColumn(e.unref(B).index,"semanticRole",fe(m)))},[e.createElementVNode("option",zr,e.toDisplayString(e.unref(i).identifier),1),e.createElementVNode("option",jr,e.toDisplayString(e.unref(i).dimension),1),e.createElementVNode("option",qr,e.toDisplayString(e.unref(i).measure),1),e.createElementVNode("option",Ur,e.toDisplayString(e.unref(i).date),1),e.createElementVNode("option",Jr,e.toDisplayString(e.unref(i).text),1)],40,Gr)])]),e.createElementVNode("div",Wr,[e.createElementVNode("span",null,e.toDisplayString(e.unref(i).bodyAlign),1),e.createVNode(Ke,{"model-value":e.unref(B).column.align??e.unref(B).column.style?.align??e.unref($).align??"left",label:e.unref(i).bodyAlign,labels:et.value,"auto-label":e.unref(i).autoShort,"allow-auto":"","onUpdate:modelValue":v[20]||(v[20]=m=>e.unref(f).setColumn(e.unref(B).index,"align",m))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",Kr,[e.createElementVNode("span",null,e.toDisplayString(e.unref(i).headerAlign),1),e.createVNode(Ke,{"model-value":e.unref(f).headerAlignments.value[e.unref(B).index]||"left",label:e.unref(i).headerAlign,labels:et.value,"auto-label":e.unref(i).autoShort,"onUpdate:modelValue":v[21]||(v[21]=m=>e.unref(f).setColumn(e.unref(B).index,"headerAlign",m))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",Yr,[e.createTextVNode(e.toDisplayString(e.unref(i).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(B).column.editable===!0,onChange:v[22]||(v[22]=m=>e.unref(f).setColumn(e.unref(B).index,"editable",je(m)))},null,40,Xr)]),e.createElementVNode("div",Zr,[e.createElementVNode("span",null,e.toDisplayString(e.unref(i).columnOrder),1),e.createElementVNode("button",{type:"button","aria-label":e.unref(i).moveColumnLeft,title:e.unref(i).moveColumnLeft,disabled:ie.value||e.unref(T)<=0,onClick:v[23]||(v[23]=m=>e.unref(pe)(-1))},[e.createVNode(W._sfc_main,{name:"chevron-left",size:13})],8,Qr),e.createElementVNode("button",{type:"button","aria-label":e.unref(i).moveColumnRight,title:e.unref(i).moveColumnRight,disabled:ie.value||e.unref(T)>=e.unref($).columns.length-1,onClick:v[24]||(v[24]=m=>e.unref(pe)(1))},[e.createVNode(W._sfc_main,{name:"chevron-right",size:13})],8,ei),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).columnVisible),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(B).column.hidden!==!0,disabled:ie.value||e.unref(B).column.hidden!==!0&&e.unref($).columns.filter(m=>!m.hidden).length===1,onChange:v[25]||(v[25]=m=>e.unref(f).setColumn(e.unref(B).index,"hidden",!je(m)))},null,40,ti)])])],8,Tr)):e.createCommentVNode("",!0),e.unref(Qe)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${L}-directory`,ref_key:"directoryPanel",ref:kt,role:"dialog","aria-label":e.unref(i).columnDirectory,class:"mr-designer-directory",onKeydown:v[35]||(v[35]=e.withKeys((...m)=>e.unref(le).escape&&e.unref(le).escape(...m),["esc"])),onFocusout:v[36]||(v[36]=(...m)=>e.unref(le).leave&&e.unref(le).leave(...m))},[e.createElementVNode("div",oi,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(i).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref($).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(i).closeDirectory,onClick:v[26]||(v[26]=m=>e.unref(le).close(!0))},[e.createVNode(W._sfc_main,{name:"close",size:15})],8,ai)]),e.createElementVNode("div",li,[e.createVNode(W._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:Et,"onUpdate:modelValue":v[27]||(v[27]=m=>e.isRef(q)?q.value=m:null),type:"search","aria-label":e.unref(i).columnsSearch,placeholder:e.unref(i).columnsSearch,onKeydown:v[28]||(v[28]=(...m)=>e.unref(le).searchKeydown&&e.unref(le).searchKeydown(...m))},null,40,ri),[[e.vModelText,e.unref(q)]]),e.unref(q)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(i).clearSearch,title:e.unref(i).clearSearch,onClick:v[29]||(v[29]=m=>q.value="")},[e.createVNode(W._sfc_main,{name:"close",size:13})],8,ii)):e.createCommentVNode("",!0)]),e.createElementVNode("div",si,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(h)||e.unref(d)||!e.unref(F).length,onClick:v[30]||(v[30]=m=>e.unref(f).selectVisible(!0))},e.toDisplayString(e.unref(i).selectVisible),9,ci),e.unref(Z).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:v[31]||(v[31]=(...m)=>e.unref(f).clearSelection&&e.unref(f).clearSelection(...m))},e.toDisplayString(e.unref(i).clearSelection),1)):e.createCommentVNode("",!0),e.unref(Z).length?(e.openBlock(),e.createElementBlock("span",di,e.toDisplayString(e.unref(i).columnsSelected)+" "+e.toDisplayString(e.unref(Z).length),1)):(e.openBlock(),e.createElementBlock("span",ui,e.toDisplayString(e.unref(F).length)+" / "+e.toDisplayString(e.unref($).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:St,class:"mr-designer-column-list","aria-label":e.unref(i).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(F),({column:m,index:z})=>(e.openBlock(),e.createElementBlock("div",{key:z,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref(T)===z}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(i).selectColumn} ${m.header}`,checked:e.unref(Z).includes(z),disabled:t.readonly||e.unref(h)||e.unref(d),onChange:se=>e.unref(f).toggleColumn(z,je(se))},null,40,pi),e.createElementVNode("button",{type:"button","data-column-index":z,"aria-pressed":e.unref(T)===z,tabindex:e.unref(yt)===z?0:-1,onClick:se=>e.unref(le).choose(z),onKeydown:v[32]||(v[32]=(...se)=>e.unref(le).navigate&&e.unref(le).navigate(...se))},[e.createElementVNode("span",vi,e.toDisplayString(z+1),1),e.createElementVNode("span",gi,[e.createElementVNode("strong",null,e.toDisplayString(m.header),1),e.createElementVNode("small",null,e.toDisplayString(m.field),1)]),e.unref(T)===z?(e.openBlock(),e.createBlock(W._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,fi)],2))),128)),e.unref(F).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",hi,[e.createVNode(W._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(i).noColumns),1)]))],8,mi),e.unref(Z).length?(e.openBlock(),e.createElementBlock("div",yi,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(i).batchBody,disabled:t.readonly||e.unref(h)||e.unref(d),onChange:v[33]||(v[33]=m=>nt(m,"align"))},[e.createElementVNode("option",ki,e.toDisplayString(e.unref(i).chooseAlignment),1),e.createElementVNode("option",Ei,e.toDisplayString(e.unref(i).auto),1),e.createElementVNode("option",Si,e.toDisplayString(e.unref(i).left),1),e.createElementVNode("option",Ni,e.toDisplayString(e.unref(i).center),1),e.createElementVNode("option",wi,e.toDisplayString(e.unref(i).right),1),e.createElementVNode("option",Vi,e.toDisplayString(e.unref(i).justify),1)],40,bi)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(i).batchHeader,disabled:t.readonly||e.unref(h)||e.unref(d),onChange:v[34]||(v[34]=m=>nt(m,"headerAlign"))},[e.createElementVNode("option",Ci,e.toDisplayString(e.unref(i).chooseAlignment),1),e.createElementVNode("option",Bi,e.toDisplayString(e.unref(i).left),1),e.createElementVNode("option",Mi,e.toDisplayString(e.unref(i).center),1),e.createElementVNode("option",Di,e.toDisplayString(e.unref(i).right),1),e.createElementVNode("option",Ti,e.toDisplayString(e.unref(i).justify),1)],40,xi)])])):e.createCommentVNode("",!0)],40,ni)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",$i,e.toDisplayString(e.unref(i).noColumns),1))],64)):e.unref(x)==="component"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",Ii,[e.createElementVNode("select",{"aria-label":e.unref(i).insertComponent,disabled:e.unref(X)||R.value,onChange:v[37]||(v[37]=(...m)=>e.unref(we)&&e.unref(we)(...m))},[e.createElementVNode("option",_i,e.toDisplayString(e.unref(i).insertComponent),1),e.createElementVNode("option",Li,e.toDisplayString(e.unref(i).insertText),1),e.createElementVNode("option",{value:"list",disabled:!!e.unref(b).template.repeat},e.toDisplayString(e.unref(i).insertList),9,Pi),e.createElementVNode("option",Ai,e.toDisplayString(e.unref(i).insertImage),1),e.createElementVNode("option",Fi,e.toDisplayString(e.unref(i).insertRect),1),e.createElementVNode("option",Hi,e.toDisplayString(e.unref(i).insertQrcode),1),e.createElementVNode("option",Oi,e.toDisplayString(e.unref(i).insertBarcode),1)],40,Ri),e.createElementVNode("button",{type:"button",title:e.unref(i).duplicateComponent,"aria-label":e.unref(i).duplicateComponent,disabled:e.unref(X)||R.value||!e.unref(te),onClick:v[38]||(v[38]=(...m)=>e.unref(J).duplicate&&e.unref(J).duplicate(...m))}," + ",8,Gi),e.createElementVNode("button",{type:"button",title:e.unref(i).removeComponent,"aria-label":e.unref(i).removeComponent,disabled:e.unref(X)||R.value||!e.unref(te),onClick:v[39]||(v[39]=(...m)=>e.unref(J).remove&&e.unref(J).remove(...m))},[e.createVNode(W._sfc_main,{name:"close",size:14})],8,zi)]),e.unref(b).template.pages.length>1?(e.openBlock(),e.createElementBlock("label",ji,[e.createTextVNode(e.toDisplayString(e.unref(i).page),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":v[40]||(v[40]=m=>e.isRef(K)?K.value=m:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b).template.pages,(m,z)=>(e.openBlock(),e.createElementBlock("option",{key:z,value:z},e.toDisplayString(e.unref(Re)(m,z,e.unref(i).page)),9,qi))),128))],512),[[e.vModelSelect,e.unref(K),void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("label",Ui,[e.createTextVNode(e.toDisplayString(e.unref(i).components),1),e.createElementVNode("select",{value:e.unref(ee)&&e.unref(ee).pageIndex===e.unref(K)?e.unref(ee).componentIndex:-1,onChange:v[41]||(v[41]=m=>Me({pageIndex:e.unref(K),componentIndex:Number(fe(m))}))},[e.createElementVNode("option",Wi,e.toDisplayString(e.unref(i).noComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(j.value,m=>(e.openBlock(),e.createElementBlock("option",{key:m.index,value:m.index},e.toDisplayString(m.index+1)+" · "+e.toDisplayString(m.name),9,Ki))),128))],40,Ji)]),e.unref(J).selections.value.length?(e.openBlock(),e.createElementBlock("div",Yi,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(J).selections.value.length)+" "+e.toDisplayString(e.unref(i).component),1),e.createElementVNode("button",{type:"button",disabled:e.unref(X),onClick:v[42]||(v[42]=(...m)=>e.unref(J).toggleLock&&e.unref(J).toggleLock(...m))},e.toDisplayString(e.unref(J).allLocked.value?e.unref(i).unlockSelection:e.unref(i).lockSelection),9,Xi),e.createElementVNode("select",{"aria-label":e.unref(i).alignSelection,disabled:e.unref(X)||R.value||e.unref(J).selections.value.length<2,onChange:v[43]||(v[43]=m=>{e.unref(J).align(fe(m)),m.target.value=""})},[e.createElementVNode("option",Qi,e.toDisplayString(e.unref(i).alignSelection),1),e.createElementVNode("option",es,e.toDisplayString(e.unref(i).leftEdges),1),e.createElementVNode("option",ts,e.toDisplayString(e.unref(i).centers),1),e.createElementVNode("option",ns,e.toDisplayString(e.unref(i).rightEdges),1),e.createElementVNode("option",os,e.toDisplayString(e.unref(i).topEdges),1),e.createElementVNode("option",as,e.toDisplayString(e.unref(i).middles),1),e.createElementVNode("option",ls,e.toDisplayString(e.unref(i).bottomEdges),1)],40,Zi),e.createElementVNode("button",{type:"button",disabled:e.unref(X)||R.value||e.unref(J).selections.value.length<3,onClick:v[44]||(v[44]=m=>e.unref(J).distribute("horizontal"))},e.toDisplayString(e.unref(i).horizontalSpacing),9,rs),e.createElementVNode("button",{type:"button",disabled:e.unref(X)||R.value||e.unref(J).selections.value.length<3,onClick:v[45]||(v[45]=m=>e.unref(J).distribute("vertical"))},e.toDisplayString(e.unref(i).verticalSpacing),9,is),e.unref(J).allLocked.value?(e.openBlock(),e.createElementBlock("small",ss,e.toDisplayString(e.unref(i).sessionLock),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(te)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",cs,[e.createElementVNode("button",{type:"button",disabled:e.unref(X)||R.value||e.unref(ee)?.componentIndex===0,onClick:v[46]||(v[46]=m=>e.unref(J).reorder(-1))},e.toDisplayString(e.unref(i).backward),9,ds),e.createElementVNode("button",{type:"button",disabled:e.unref(X)||R.value||e.unref(ee)?.componentIndex===(e.unref(b).template.pages[e.unref(K)]?.components.length??0)-1,onClick:v[47]||(v[47]=m=>e.unref(J).reorder(1))},e.toDisplayString(e.unref(i).forward),9,us)]),e.createVNode(Jo,{component:e.unref(te),"geometry-disabled":R.value,disabled:e.unref(X)||e.unref(J).locked(e.unref(ee)),messages:e.unref(i),repeat:e.unref(b).template.repeat,schema:H.value,onGeometry:e.unref(J).geometry,onPatch:e.unref(Ve)},null,8,["component","geometry-disabled","disabled","messages","repeat","schema","onGeometry","onPatch"]),e.unref(te).kind==="list"?(e.openBlock(),e.createBlock(gl,{key:0,list:e.unref(te),disabled:e.unref(X)||R.value,messages:e.unref(i),onCommand:e.unref(be)},null,8,["list","disabled","messages","onCommand"])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",ms,e.toDisplayString(e.unref(i).noComponent),1))],64)):e.unref(x)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(i).templateDetails),1),e.createElementVNode("label",ps,[e.createTextVNode(e.toDisplayString(e.unref(i).name),1),e.createElementVNode("input",{value:e.unref(b).name,disabled:t.readonly||e.unref(h)||e.unref(d),onInput:v[48]||(v[48]=m=>e.unref(f).setName(fe(m)))},null,40,fs)]),e.createElementVNode("label",vs,[e.createTextVNode(e.toDisplayString(e.unref(i).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(b).description,disabled:t.readonly||e.unref(h)||e.unref(d),onInput:v[49]||(v[49]=m=>e.unref(f).setDescription(fe(m)))},null,40,gs)]),e.createVNode(va,{document:e.unref(b),"page-index":e.unref(K),disabled:e.unref(X),messages:e.unref(i),onSelect:v[50]||(v[50]=m=>K.value=m),onCommand:ne,onLocate:v[51]||(v[51]=m=>{Me({pageIndex:e.unref(K),componentIndex:m}),e.unref(oe)("design")})},null,8,["document","page-index","disabled","messages"]),e.createVNode(Ra,{document:e.unref(b),datasets:Object.keys(t.datasets??{}),schemas:t.dataSchemas,disabled:e.unref(X),messages:e.unref(i),onChange:v[52]||(v[52]=m=>{e.unref(f).transaction(z=>{m?z.template.repeat=m:delete z.template.repeat})})},null,8,["document","datasets","schemas","disabled","messages"]),e.createElementVNode("details",hs,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(i).technicalDetails),1),e.createElementVNode("dl",ys,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(i).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(b).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(i).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(b).revision||e.unref(i).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(i).advancedTitle),1),e.createElementVNode("label",bs,[e.createTextVNode(e.toDisplayString(e.unref(i).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":v[53]||(v[53]=m=>e.isRef(N)?N.value=m:null),class:"mr-designer-json","aria-label":e.unref(i).json,disabled:t.readonly||e.unref(h),spellcheck:"false"},null,8,ks),[[e.vModelText,e.unref(N)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:t.readonly||e.unref(h),onClick:v[54]||(v[54]=(...m)=>e.unref(f).applyJson&&e.unref(f).applyJson(...m))},e.toDisplayString(e.unref(i).applyJson),9,Es)],64)),e.unref(d)?(e.openBlock(),e.createElementBlock("p",Ss,e.toDisplayString(e.unref(i).jsonPending),1)):e.createCommentVNode("",!0)],10,yr)])):e.createCommentVNode("",!0),e.unref(x)!=="tools"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"mr-designer-preview","aria-label":e.unref(i).previewTitle},[e.unref(g)?(e.openBlock(),e.createElementBlock("div",ws,e.toDisplayString(e.unref(g)),1)):e.createCommentVNode("",!0),e.unref(C).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",Vs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C).errors,m=>(e.openBlock(),e.createElementBlock("li",{key:m.path},e.toDisplayString(m.path)+":"+e.toDisplayString(m.message),1))),128))])),e.unref(Q)==="design"&&e.unref(C).ok?(e.openBlock(),e.createBlock(wn,{key:2,document:e.unref(b),selection:e.unref(ee),selections:e.unref(J).selections.value,locked:e.unref(J).locked,"active-column-index":e.unref(T),"page-index":e.unref(K),datasets:t.datasets,disabled:e.unref(X)||R.value||e.unref(f).isToolPending("rules"),messages:e.unref(i),onSelect:Me,onGeometry:e.unref(J).geometry,onColumn:e.unref(O).activate,onWidth:v[55]||(v[55]=(m,z)=>e.unref(f).setColumn(m,"widthMm",String(z)))},null,8,["document","selection","selections","locked","active-column-index","page-index","datasets","disabled","messages","onGeometry","onColumn"])):e.unref(I)&&e.unref(C).ok?(e.openBlock(),e.createBlock(e.unref(We.ReportPreview),{key:3,"report-id":"draft",fetcher:e.unref(I),messages:{title:e.unref(i).previewTitle,columnDirectory:e.unref(i).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",xs,e.toDisplayString(e.unref(i).invalid),1))],8,Ns)):e.createCommentVNode("",!0)],2)],8,zl))}}),Bs=W._export_sfc(Cs,[["__scopeId","data-v-dfb1703c"]]),Ms={cancel:"取消检查",cancelled:"本次检查已取消,没有替换上次结果。",progress:"组样例已检查",sampleConsentMissing:"请先确认当前数据已经脱敏",sampleNameMissing:"请为样例命名",sampleLimit:"最多配置 20 组验收样例",sampleNameDuplicate:"样例名称不能重复",sampleRowsLimit:"会话样例总行数不能超过 1000,请传入显式的小样例",namedFixtures:"命名验收样例",fixtureName:"样例名称",fixturePlaceholder:"例如:正常明细、空数据、跨页、超长文本",deidentified:"我确认当前样例数据已脱敏,仅用于本次会话验收",capture:"保存当前数据为样例",remove:"移除",fixtureHint:"显式样例逐组验收,不使用上方截断范围;每组总计最多 1000 行,最多 20 组。样例数据不会写入模板或草稿存储。",parameters:"样例参数(可选)",compare:"对比基线与草稿",dimensions:"页面尺寸",fieldsAdded:"新增字段引用",fieldsRemoved:"移除字段引用",baselinePreview:"基线 · 同一份样例",draftPreview:"草稿 · 同一份样例",closeCompare:"收起对比",stale:"输入或验收范围已变化,旧结果已失效,请重新运行检查。",scope:"上次实测范围",datasets:"个数据集",treeHint:"树形数据保留完整父子关系;20/100 作为本次总节点预算,超出请选全部或提供完整小样例。",title:"变更与验收",run:"运行检查",running:"检查中…",samples:"验收样例",none:"仅检查结构",first20:"每个数据集前 20 行",first100:"每个数据集前 100 行",all:"全部当前数据(总计 ≤1000 行)",changes:"模板变更",issues:"待处理项",results:"样例结果",noChanges:"与基线一致",noIssues:"本次检查未发现问题",empty:"选择验收样例后运行,检查字段映射、排版与输出能力。",baseline:"未提供上一版本,仅检查当前模板。",errors:"错误",warnings:"提示",locate:"定位",before:"修改前",after:"修改后",breaking:"影响兼容性",acknowledge:"已确认字段与结构变更",truncated:"变更较多,仅展示前 500 项;兼容检查仍包含全部变更。",pages:"页",rows:"行",checked:"检查结果对应本次样例,不代替服务端发布权限与全量数据校验。",categories:{metadata:"信息",structure:"结构",binding:"字段",calculation:"计算",format:"样式"},kinds:{added:"新增",removed:"删除",modified:"修改",moved:"调序"}},Ds={recoveredMapping:"映射配置已恢复,请重新选择原 Excel 文件后核对;源文件及业务数据未暂存。",recoveredSheetMissing:"所选文件没有草稿所需的工作表,请重新选择原文件或放弃映射草稿。",tableMode:"传统整表",multiRegions:"多区域绑定",multiHint:"点击单元格选择起点,Shift 点击选择终点;每个动态区域选择一行原型。",addRegion:"创建区域",removeRegion:"删除区域",regionProperties:"当前区域",regionReady:"就绪",regionPending:"待补齐",regionError:"需修正",locateIssue:"定位并修正",nextDataset:"下一步:选择业务数据集",nextRowKey:"下一步:选择稳定业务主键",nextField:"下一步:补齐或修正逐列字段映射",nextRange:"下一步:检查原型范围及区域重叠",nextRegion:"下一步:在原始模板中选择一行并创建区域",nextHeader:"下一步:选择整行并标记表头和明细",nextFooter:"下一步:检查重复页尾范围",nextContract:"下一步:检查数据集契约和样例",dataContract:"数据集契约",inspectIssues:"查看待修正项",previousIssues:"上一组问题",nextIssues:"下一组问题",noCellSelection:"请先点击单元格,Shift 点击选择一行范围",limitRegions:"最多创建 128 个区域",applying:"正在确认模板…",regionCoordinates:"原型范围",regionMode:"填充方式",recordMode:"单记录",repeatMode:"纵向重复",recordHint:"接收零或一行数据,保留旁列静态内容;多行输入会明确报错。",repeatHint:"按数据行纵向扩展,下方内容自动顺延;旁列不能放置非空静态内容。",bindRegionHeader:"选区作为表头",noRegionHeader:"无区域表头",clearHeader:"清除区域表头",flowFooter:"重复页尾",flowFooterHint:"选择来源最后几行的完整列宽;为每页预留空间,避免明细覆盖。",bindFooter:"选区作为页尾",clearFooter:"清除重复页尾",concurrency:"业务并发字段",revisionField:"修订字段",sourceTokenField:"来源令牌字段",selectionCellLabel:"选择源单元格",searchFields:"搜索字段名称、编码或单位",fieldLimit:"候选最多显示 64 项;输入字段名筛选,已选映射始终保留。",restoreDraft:"恢复工具草稿",title:"Excel 业务绑定",intro:"保留模板版式,明确数据来源",upload:"选择 Excel 模板",replace:"更换文件",loading:"正在解析模板…",cancel:"取消解析",source:"原始模板",sourceHint:"点击行号选择,Shift 点击扩展;选择整行区域后标记用途。",sourceOnly:"来源样例仅供设计,应用时将全部替换为接口数据。",sheet:"工作表",dataset:"业务数据集",chooseDataset:"选择数据集契约",rowKey:"稳定业务主键",chooseRowKey:"选择业务主键",titleRegion:"标题",headerRegion:"多层表头",detailRegion:"样例明细",footerRegion:"静态尾页",optional:"可选",selectRegion:"标记选中行",clear:"清除",mapping:"逐列映射",coverage:"映射覆盖",physical:"Excel 列",business:"业务字段",chooseField:"选择已声明字段",selected:"已选行",previousRows:"上一组行",nextRows:"下一组行",previousColumns:"上一组列",nextColumns:"下一组列",rowStart:"预览起始行",columnStart:"预览起始列",apply:"校验并使用模板",check:"校验绑定",identity:"新模板",templateId:"模板标识",templateName:"模板名称",issues:"请先修正绑定",ready:"绑定校验通过",noSource:"导入 .xlsx,开始绑定业务数据",noContract:"请由接入方提供数据集字段契约,再配置业务绑定。",fieldType:"类型",precision:"位小数",sample:"契约样例",unnamed:"未标记",applied:"模板已生成,等待接入方确认",readonly:"当前只读",invalidFile:"请选择未加密的 .xlsx 文件",emptySelection:"请先在原始模板中选择行",footerHint:"静态尾页保留为独立页面,不随明细重复;不是每页页脚。",inspectWarning:"来源兼容性提示",session:"绑定会话可随草稿保存,再次传入即可恢复",decimals:"精确小数按原文本保留",selectionLabel:"选择源行",regionLegend:"区域用途",summary:"绑定摘要",stepSource:"选模板",stepRegions:"标区域",stepFields:"绑字段",stepValidate:"校验应用",errors:"项问题",sourceError:"模板解析失败",dimensions:"原始范围",mappedTo:"绑定到",sampleOnly:"仅契约样例",schemaOnly:"契约字段,不执行接口查询"},Ts={restoreDraft:"恢复工具草稿",catalog:"规则与字段",searchFields:"搜索字段、类型或单位",useField:"使用此字段",shown:"显示",explanation:"计算解释",sourceValues:"源值",expression:"表达式",result:"结果",notChecked:"修改后请重新验算",nullReason:"空值依规则保留;空值传播与除零策略见计算边界。",sourceHint:"最多展示 5 条明细;分组和全量聚合以当前验算范围为准。",pending:"未应用配置",detail:"主从",matrix:"矩阵",tree:"树形",treeInput:"输入结构",treeFlat:"扁平父子表",treeNested:"嵌套子节点",treeId:"节点业务键",treeParent:"父节点键",treeChildren:"子节点数组字段",treeLabel:"层级标签列",treeIndent:"每级缩进 · mm",treeOrphan:"孤儿节点",treeAsRoot:"作为根节点",treeValues:"父级数值来源",treeSource:"保留来源值",treeLeaves:"按后代叶子聚合",treeRows:"最多节点",treeDepth:"最多层级",treeHint:"全量树展示与导出。总计只统计叶子,避免父子重复。应用将替换普通分组、主从、矩阵和行可见条件;可撤销恢复。",treeReadonly:"嵌套输入首版只读;扁平输入的结构键和派生父级聚合只读。",treeBudget:"树形样例最多 1000 个节点,请提供完整关系样例。",measureLabel:"显示名称",childDataset:"明细数据集",parentKey:"主表关联键",foreignKey:"明细外键",rowKey:"明细业务主键",noRowKey:"只读明细,不绑定编辑身份",childColumns:"明细展示字段",title:"明细标题",unmatched:"未关联明细",ignore:"显式忽略",childHeader:"展示明细表头",rowFields:"行维度",columnFields:"列维度",totals:"原始样本总计",widthSettings:"动态列宽 · mm",dimensionWidth:"维度列宽",measureWidth:"度量列宽",detailHint:"以业务键关联宿主提供的数据集。应用主从布局将替换矩阵配置。",matrixHint:"查询时按维度生成动态列。应用矩阵将替换普通分组、主从和总计;可撤销恢复。",computations:"计算",groups:"分组",conditions:"条件",target:"结果字段",newField:"新增计算字段",select:"选择字段",row:"当前行",group:"当前组",dataset:"整个数据集",scope:"计算范围",numeric:"数值模式",number:"普通数值",decimal:"精确小数",digits:"小数位",groupFields:"分组依据",field:"字段",constant:"常量",operation:"运算",aggregate:"聚合",text:"文本",boolean:"布尔",null:"空值",true:"是",false:"否",add:"相加",subtract:"相减",multiply:"相乘",divide:"相除",coalesce:"首个非空值",sum:"求和",count:"计数",avg:"平均值",min:"最小值",max:"最大值",weightedAvg:"加权平均",subtotalLabel:"小计",weight:"权重字段",argument:"参数",addArgument:"添加参数",remove:"移除",apply:"应用规则",check:"样例验算",addGroup:"添加分组",noGroups:"尚未配置分组",header:"组头模板",footer:"组尾标签",repeat:"跨页重复组头",orphan:"组头与首行保持同页",outer:"外层",inner:"内层",addAggregate:"添加聚合",measure:"度量字段",output:"输出字段",condition:"条件字段",comparison:"比较方式",threshold:"比较值",effect:"效果",style:"条件样式",cell:"单元格可见",rowVisibility:"明细行可见",color:"文字颜色",background:"背景颜色",bold:"加粗",column:"目标列",newCondition:"新增条件样式",removeCondition:"移除此规则",advanced:"计算边界",nulls:"空值处理",propagate:"保留为空",error:"报告错误",division:"除零处理",dependencies:"计算顺序",noData:"尚无样例数据",sample:"样例前 1000 行 · 仅验算,不修改来源",preview:"计算结果",existing:"已有规则",ready:"规则已通过结构校验",allRows:"全部行",noFields:"当前数据集尚无字段",resultType:"常量类型",settings:"规则设置",moveUp:"向外移动",moveDown:"向内移动",missingTarget:"请选择或填写结果字段",noSelection:"请先选择列",countHint:"留空度量字段可统计行数",decimalHint:"精确小数以文本保存,避免大数精度丢失。",readonly:"只读",formatMode:"条件规则",rule:"规则",sampleError:"验算未通过",new:"新增",enabled:"启用"},$s={paramsTool:"查询参数",paramsDescription:"配置一次,预览与服务端使用同一份校验规则。",paramsDirectory:"参数目录",paramAdd:"添加参数",paramEmpty:"尚未配置查询参数",paramEmptyHint:"添加日期、厂别等条件,报表预览会自动生成查询面板。",paramField:"参数标识",paramLabel:"显示名称",paramType:"控件类型",paramRequired:"必填",paramPlaceholder:"输入提示",paramDefaultEnabled:"设置默认值",paramDefault:"默认值",paramMinimum:"最小值(含边界)",paramMaximum:"最大值(含边界)",paramMinLength:"最少字符数",paramMaxLength:"最多字符数",paramOptions:"静态下拉选项",paramOptionValue:"接口值",paramOptionLabel:"显示文字",paramOptionAdd:"添加选项",paramRemove:"删除参数",paramOptionRemove:"删除选项",paramMoveUp:"上移参数",paramMoveDown:"下移参数",paramApply:"校验并应用参数",paramRestore:"恢复参数草稿",paramPending:"尚未应用",paramReady:"规则有效",paramInvalid:"规则待修正",paramIssueCount:"待修正问题",paramLocateFirst:"定位首个问题",paramUnnamed:"未命名参数",paramRangeStart:"默认开始日期",paramRangeEnd:"默认结束日期",paramConflict:"模板参数已在其他操作中变更。请先恢复参数草稿,再继续编辑。",paramApplyFailed:"参数未应用,请检查模板校验信息。",paramRenameHint:"参数标识决定接口取数键。新增、删除或改名后,请同步检查接入方的数据查询;插件不会修改外部接口。",paramChanges:"接口参数键变更",paramAdded:"新增",paramRemoved:"移除",paramWire:"接口值格式",paramNoDefault:"未设置默认值",paramRangeHint:"两端均须填写,开始日期不能晚于结束日期;边界约束作用于整个范围。",paramText:"文本",paramNumber:"数字",paramDate:"日期",paramMonth:"月份",paramYear:"年份",paramDateRange:"日期范围",paramSelect:"下拉选择"},Is={batchTitle:"批量生成",batchDescription:"每组参数独立生成;成功结果由接入方保存,当前页面仅保留回执。",batchAdd:"添加一组",batchDuplicate:"复制参数",batchDuplicateCompleted:"复制为新任务",batchRemove:"删除参数组",batchRun:"生成待处理",batchContinue:"继续未完成",batchRunning:"正在生成",batchRetry:"仅重试失败项",batchCancel:"取消剩余任务",batchCancelling:"正在取消…",batchPending:"待生成",batchCompleted:"已完成",batchCompletedHint:"此组已生成并保留回执;需修改参数或再次生成,请复制为新任务。",batchFailed:"失败",batchCancelled:"已取消",batchCase:"参数组",batchProgress:"本轮已结束 {completed}/{total} · 失败 {failed} · 取消 {cancelled}",batchInvalid:"请修正参数错误后再生成;本次未启动任何任务。",batchEmpty:"添加一组参数开始批量生成",batchNoMatches:"当前状态没有参数组",batchFilter:"按生成状态筛选",batchAll:"全部",batchNextFailure:"下一失败项",batchNoInstance:"已完成,接入方未返回可打开的实例标识。",batchOpen:"打开报表实例",batchLimit:"当前最多支持 {count} 组参数。",batchChanged:"参数定义或执行配置已变更,已请求取消当前批次,请核对后重新生成。",batchPages:"参数组分页",batchPrevious:"上一页",batchNext:"下一页",batchPage:"第 {page}/{pages} 页 · 共 {total} 组"},Rs={publicationChanged:"发布修订与目录不一致,请刷新目录后重新查看",continueDraft:"继续编辑草稿",viewPublished:"查看发布版",draft:"草稿",published:"已发布",draftPending:"草稿待发布",retrySearch:"重试目录查询",retryOpen:"重试打开模板",retryCopy:"重试创建副本",openingTarget:"正在打开 {name}…",creatingTarget:"正在创建 {name} 的副本…",title:"模板库",subtitle:"按业务分类查找、打开或复制模板",search:"搜索名称、编号或标签",all:"全部模板",refresh:"刷新",open:"打开设计器",copy:"复制模板",empty:"没有匹配的模板",emptyHint:"调整关键词或分类后重试",loadMore:"下一页",previous:"上一页",page:"页",loading:"正在加载…",retry:"重试",revision:"修订",copyTitle:"复制为新模板",newId:"新模板编号",newName:"新模板名称",create:"创建副本",cancel:"取消",count:"项",missing:"模板不存在或已不可访问",stale:"目录返回了重复项或无效分页游标",invalid:"模板目录响应格式无效"},_s=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-JvZe9_4G.cjs"))),Ls=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-CLT2p7P3.cjs"))),Ps=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-BaR6xUiI.cjs"))),As=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-vIDzvpPV.cjs"))),Fs=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportBatchPanel-DkxTzBkD.cjs"))),Hs=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportTemplateLibrary-cQ1sqNYo.cjs"))),Os=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-BHKP89Xz.cjs"))),Gs=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-CY5eO2Sh.cjs")));exports.DEFAULT_RULE_EDITOR_MESSAGES=Ts;exports.EXCEL_BINDING_MESSAGES=Ds;exports.ExcelBindingWizard=Ls;exports.PARAM_EDITOR_MESSAGES=$s;exports.ParamEditor=As;exports.REPORT_BATCH_MESSAGES=Is;exports.ReportBatchPanel=Fs;exports.ReportTemplateEditor=Bs;exports.ReportTemplateLibrary=Hs;exports.RuleEditor=Ps;exports.TEMPLATE_EDITOR_MESSAGES=me;exports.TEMPLATE_LIBRARY_MESSAGES=Rs;exports.TEMPLATE_PRODUCT_MESSAGES=mt;exports.TEMPLATE_RECOVERY_MESSAGES=pt;exports.TEMPLATE_REVIEW_MESSAGES=Ms;exports.TemplateOutlinePanel=Os;exports.TemplateReusePanel=Gs;exports.TemplateReviewPanel=_s;exports.createTemplateDraftStorage=$l;exports.useTemplateToolDraft=Nl;
|