@agile-team/mach-report 2.22.0 → 2.23.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 +7 -6
- package/dist/{ExcelBindingWizard-CZyppD7I.js → ExcelBindingWizard-D4FLind-.js} +3 -3
- package/dist/{ExcelBindingWizard-CW79I6Gl.cjs → ExcelBindingWizard-D4RS5Bpg.cjs} +1 -1
- package/dist/{ParamEditor-CiYCJI0b.cjs → ParamEditor-C-6C9rd2.cjs} +1 -1
- package/dist/{ParamEditor-DQit-Gdf.js → ParamEditor-CASZt-Ma.js} +2 -2
- package/dist/{ReportBatchPanel-DKTpV7MU.js → ReportBatchPanel-Bq7t8a5r.js} +2 -2
- package/dist/{ReportBatchPanel-Db6TAfG5.cjs → ReportBatchPanel-YVj5IO5y.cjs} +1 -1
- package/dist/ReportLabelStudio-Cqhita1b.cjs +1 -0
- package/dist/{ReportLabelStudio-BYnRqmje.js → ReportLabelStudio-Dj7GXhuv.js} +295 -292
- package/dist/ReportParamPanel-DZbFVmDL.cjs +1 -0
- package/dist/{ReportParamPanel-BHSKVL8k.js → ReportParamPanel-Dgmqro1Y.js} +93 -79
- package/dist/ReportPreview-DeWzG8jQ.js +6257 -0
- package/dist/ReportPreview-FFIryrIr.cjs +6 -0
- package/dist/{ReportTemplateLibrary-DEXH07ND.cjs → ReportTemplateLibrary-BaWodmpm.cjs} +1 -1
- package/dist/{ReportTemplateLibrary-BZuKn0YK.js → ReportTemplateLibrary-DdAAAD2I.js} +1 -1
- package/dist/{RuleEditor-CIQn547x.js → RuleEditor-D2UwQGF6.js} +59 -59
- package/dist/{RuleEditor-zSUmPjKa.cjs → RuleEditor-DcT9xI1v.cjs} +1 -1
- package/dist/TemplateOutlinePanel-CUHFFiNM.cjs +1 -0
- package/dist/{TemplateOutlinePanel-D0PgOSQE.js → TemplateOutlinePanel-DrT7XN0m.js} +2 -2
- package/dist/{TemplateReusePanel-BKlAEF8-.js → TemplateReusePanel-4eejkNqi.js} +2 -2
- package/dist/{TemplateReusePanel-DAy_Hwqz.cjs → TemplateReusePanel-DZMyiX5I.cjs} +1 -1
- package/dist/{TemplateReviewPanel-div-EH_m.js → TemplateReviewPanel-BIhNLeNw.js} +2 -2
- package/dist/{TemplateReviewPanel-CowmHaQQ.cjs → TemplateReviewPanel-DnYImiXu.cjs} +1 -1
- package/dist/analytics.cjs +1 -1
- package/dist/analytics.js +26 -26
- package/dist/artifact-integrity.json +106 -104
- package/dist/assets-D2gHc4Mz.cjs +1 -0
- package/dist/assets-T_gDeFaz.js +132 -0
- package/dist/auto-4pK9HePf.cjs +1 -0
- package/dist/auto-CTIJ6PnR.js +257 -0
- package/dist/capabilities-DiBj4Qgl.cjs +1 -0
- package/dist/capabilities-pg7j7VLT.js +106 -0
- package/dist/charts-Cjw5AYkg.cjs +1 -0
- package/dist/{charts-Dlv8j2AG.js → charts-CxJZ0XaY.js} +1 -1
- package/dist/computed-DK6BruFz.cjs +1 -0
- package/dist/{computed-C8NRZQss.js → computed-f3pOqWLX.js} +381 -301
- package/dist/data-bar-CeZuFmYl.cjs +1 -0
- package/dist/{data-bar-8baGYEZ9.js → data-bar-IkI6VvMQ.js} +1 -1
- package/dist/designer-DhrE7jzw.js +7169 -0
- package/dist/designer-IAZu6kBX.cjs +2 -0
- package/dist/designer.cjs +1 -1
- package/dist/designer.d.cts +98 -45
- package/dist/designer.d.ts +98 -45
- package/dist/designer.js +3 -3
- package/dist/dom-ChE5D-L-.cjs +1 -0
- package/dist/dom-JWrchIre.js +452 -0
- package/dist/dom-cell-address-DLD1mkTB.cjs +1 -0
- package/dist/dom-cell-address-Fn-8nk7D.js +11 -0
- package/dist/{encoding-ncQAvyOv.cjs → encoding-BefcaHdp.cjs} +1 -1
- package/dist/{encoding-DbnhbwI8.js → encoding-CL6rXEkR.js} +2 -2
- package/dist/{font-loader-Di0lQKFf.js → font-loader-BT5baV-o.js} +1 -1
- package/dist/{font-loader-BB372_XN.cjs → font-loader-Ga51c2VC.cjs} +1 -1
- package/dist/grid-strokes-Be24LGuV.cjs +1 -0
- package/dist/grid-strokes-EoY66L2f.js +53 -0
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +944 -1259
- package/dist/json-snapshot-1tvQNzQE.cjs +2 -0
- package/dist/{json-snapshot-DvQbZlD7.js → json-snapshot-OqkPyUk5.js} +763 -776
- package/dist/matrix-B8QWbsGM.cjs +1 -0
- package/dist/matrix-C6e_r_vp.js +302 -0
- package/dist/{pdf-CARdBcuw.cjs → pdf-HiEeXe9H.cjs} +42 -42
- package/dist/{pdf-DmlnL5eB.js → pdf-aobetCsy.js} +20 -20
- package/dist/pdf.cjs +1 -1
- package/dist/pdf.js +2 -2
- package/dist/{plugin-AcAQ2m9X.cjs → plugin-BFANt-i8.cjs} +1 -1
- package/dist/{plugin-w5Nyt08U.js → plugin-DeYYAL6F.js} +1 -1
- package/dist/{prefill-BXBxx5We.js → prefill-Dk4C6S5R.js} +21 -21
- package/dist/prefill-DsUD5OoK.cjs +1 -0
- package/dist/prepared-DCIxhKFo.js +94 -0
- package/dist/prepared-Dv-XM3i1.cjs +1 -0
- package/dist/progress-ByiOxUD3.js +250 -0
- package/dist/progress-WomPRP3B.cjs +1 -0
- package/dist/{protocol-C9ZaylID.cjs → protocol-B9YgfQ_d.cjs} +1 -1
- package/dist/{protocol-fjaeKkjf.js → protocol-DxeUKGYG.js} +3 -3
- package/dist/record-bindings-DatJZv_e.js +200 -0
- package/dist/record-bindings-MBxbeBsi.cjs +1 -0
- package/dist/{region-binding-workflow-aA8nxmkZ.js → region-binding-workflow-DjrXuR1q.js} +2 -2
- package/dist/{region-binding-workflow-BiJQ7NU6.cjs → region-binding-workflow-l7NGfagJ.cjs} +2 -2
- package/dist/report-encoding-worker.cjs +1 -1
- package/dist/report-encoding-worker.js +1 -1
- package/dist/rich-text-layout-Ciwa6D2o.js +52 -0
- package/dist/rich-text-layout-DK7A_a5r.cjs +3 -0
- package/dist/{runtime-BTtpjF3D.js → runtime-75Y5Oq5B.js} +52 -51
- package/dist/runtime-DKlGd_D4.cjs +1 -0
- package/dist/sbom.cdx.json +1 -1
- package/dist/server-node.cjs +5 -5
- package/dist/server-node.js +1642 -1586
- package/dist/server.cjs +1 -1
- package/dist/server.js +24 -24
- package/dist/style.css +1 -1
- package/dist/{template-catalog-JSxSqk5y.js → template-catalog--cjxzgH7.js} +17 -17
- package/dist/template-catalog-CoT7jm_6.cjs +1 -0
- package/dist/{template-fragments-D2JFj7Du.js → template-fragments-CPpGpQoz.js} +12 -12
- package/dist/template-fragments-GVjpew_q.cjs +1 -0
- package/dist/template-registry-DI59PXVK.cjs +1 -0
- package/dist/{template-registry-Do1Uav2Z.js → template-registry-O0hNIOfB.js} +17 -17
- package/dist/{template-serialization-CU4n_Miu.js → template-serialization-CWmHq7lX.js} +1 -1
- package/dist/{template-serialization-CgqBo6s-.cjs → template-serialization-CqQY4zDg.cjs} +1 -1
- package/dist/{textwrap-CkGjRFT3.js → textwrap-BIjtEWmq.js} +1 -1
- package/dist/textwrap-Cy7o1hIR.cjs +4 -0
- package/dist/vue/async.d.cts +24 -0
- package/dist/vue/async.d.ts +24 -0
- package/dist/vue/index.d.cts +25 -1
- package/dist/vue/index.d.ts +25 -1
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +52 -47
- package/dist/{workbook-session-BvEBRRMz.cjs → workbook-session-C6-SrnCT.cjs} +4 -4
- package/dist/{workbook-session-f0wVlzst.js → workbook-session-C9ZmCBwY.js} +15 -16
- package/dist/worker.cjs +1 -1
- package/dist/worker.js +4 -4
- package/dist/xlsx.cjs +4 -4
- package/dist/xlsx.js +184 -179
- package/package.json +1 -1
- package/dist/ReportLabelStudio-B0i9ohQj.cjs +0 -1
- package/dist/ReportParamPanel-lngONOEz.cjs +0 -1
- package/dist/ReportPreview-BDgKssYR.js +0 -5887
- package/dist/ReportPreview-Dw-4icG6.cjs +0 -6
- package/dist/TemplateOutlinePanel-B5SfGYVN.cjs +0 -1
- package/dist/assets-CxHunY_9.js +0 -232
- package/dist/assets-vbjAGgk8.cjs +0 -1
- package/dist/auto-DcUHlKob.cjs +0 -1
- package/dist/auto-moShblh1.js +0 -240
- package/dist/charts-aCtoswXq.cjs +0 -1
- package/dist/component-tree-1_QCiQJX.js +0 -67
- package/dist/component-tree-BjZIp6w9.cjs +0 -1
- package/dist/computed-4TnxzgIh.cjs +0 -1
- package/dist/data-bar-YltqGTaC.cjs +0 -1
- package/dist/designer-B7jJeAeG.js +0 -6914
- package/dist/designer-BWQVpJeN.cjs +0 -2
- package/dist/grid-geometry-D3SJgWFv.js +0 -136
- package/dist/grid-geometry-D8ReblRV.cjs +0 -1
- package/dist/json-snapshot-nyV63AbB.cjs +0 -2
- package/dist/matrix-0hywp0-F.cjs +0 -1
- package/dist/matrix-Dy-tyY7E.js +0 -381
- package/dist/prefill-DUvejVt1.cjs +0 -1
- package/dist/prepared-YXy-fVLw.cjs +0 -1
- package/dist/prepared-rXCKqdHY.js +0 -88
- package/dist/progress-B0ctFpKf.cjs +0 -1
- package/dist/progress-Hc2vxoCs.js +0 -52
- package/dist/record-bindings-Ct1HkPrc.cjs +0 -1
- package/dist/record-bindings-VZGS-Qd8.js +0 -155
- package/dist/rich-text-layout-K48VHUoW.cjs +0 -3
- package/dist/rich-text-layout-wxBhnAS7.js +0 -102
- package/dist/runtime-Dq0LUsyS.cjs +0 -1
- package/dist/template-catalog-CLAM4w7H.cjs +0 -1
- package/dist/template-fragments-Ca25Jt7e.cjs +0 -1
- package/dist/template-outline-CDWXptuj.js +0 -88
- package/dist/template-outline-K4jGhATu.cjs +0 -1
- package/dist/template-registry-CWnuGqyP.cjs +0 -1
- package/dist/textwrap-OTOUMr4f.cjs +0 -4
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var Ye=Object.create;var De=Object.defineProperty;var Ze=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var tt=(t,a,o,i)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of We(a))!et.call(t,s)&&s!==o&&De(t,s,{get:()=>a[s],enumerable:!(i=Ze(a,s))||i.enumerable});return t};var nt=(t,a,o)=>(o=t!=null?Ye(Xe(t)):{},tt(a||!t||!t.__esModule?De(o,"default",{value:t,enumerable:!0}):o,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),ve=require("@agile-team/mach-report/vue"),ne=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),h=require("@agile-team/mach-report"),Ce=require("./progress-B0ctFpKf.cjs"),Me=require("./designer-BWQVpJeN.cjs");function at(){let t;const a=()=>t??=import("@agile-team/mach-report/codes").then(i=>i.createCodeAssetRenderers()).catch(i=>{throw t=void 0,i}),o=i=>async s=>{Ce.assertOutputActive(s.signal);const l=await a();return Ce.assertOutputActive(s.signal),l[i](s)};return{assetRenderers:{barcode:o("barcode"),qrcode:o("qrcode")}}}function lt(t){const a=t.pages[0];if(!a||t.pages.some(s=>s.layout==="wide"||s.widthMm!==a.widthMm||s.heightMm!==a.heightMm))return;const o=Math.floor(190/(a.widthMm+4)),i=Math.floor(277/(a.heightMm+4));if(!(o<1||i<1||o*i>1e3))return{paper:"a4",columns:o,rows:i,marginMm:12,gapMm:4,capacity:o*i}}const ue=[{id:"material",widthMm:80,heightMm:55,faces:1},{id:"paired",widthMm:80,heightMm:55,faces:2},{id:"warehouse",widthMm:100,heightMm:60,faces:1}];function _e(t,a){return a??t.fields.find(o=>o.semanticRole==="identifier"&&o.field!==t.rowKey)?.field??t.rowKey??t.fields[0]?.field}function ce(t,a,o){const i=t.fields.filter(n=>n.field!==a&&n.field!==t.rowKey);if(o===void 0)return i.map((n,c)=>({field:n,index:c,priority:rt(n)})).sort((n,c)=>n.priority-c.priority||n.index-c.index).slice(0,5).map(n=>n.field);const s=new Map(i.map(n=>[n.field,n])),l=[...new Set(o)];if(l.length>5)throw new Error("成品标签最多显示 5 个字段,请先精简显示字段");return l.map(n=>{const c=s.get(n);if(!c)throw new Error(`标签显示字段未在业务契约中声明:${n}`);return c})}function rt(t){return/^(?:name|title|label|category)$/i.test(t.field)||/名称|品名|品类|类别/.test(t.label??"")?0:t.semanticRole==="dimension"?1:t.semanticRole==="measure"&&t.unit?2:t.semanticRole==="identifier"?3:t.semanticRole==="date"?4:5}function ot(t="paired"){return ue.find(a=>a.id===t)??ue[1]}const be="#173450",fe="#586c82";function x(t,a,o,i,s=4,l=7){return{kind:"text",text:t,leftMm:a,topMm:o,widthMm:i,heightMm:s,style:{fontSize:l,lineHeight:1.1,color:be,verticalAlign:"middle"}}}function he(t,a){return{kind:"line",leftMm:4,topMm:t,widthMm:a-8,heightMm:.2,style:{lineColor:"#c9d7e5",lineWidthPt:.55}}}function Be(t,a,o){const i=[];let s=4;if(o?.logoData){if(!/^data:image\/(?:png|jpeg);base64,/i.test(o.logoData))throw new Error("标签Logo须使用PNG或JPEG图片数据");i.push({kind:"image",leftMm:4,topMm:3,widthMm:12,heightMm:7,imageData:o.logoData,meta:{labelBrandLogo:!0}}),s=19}return i.push({...x(o?.name?.trim()||t,s,3,a-s-4,5,9),style:{fontSize:9,color:"#205582"},meta:{labelStudioRole:"brand-name"}}),o?.tagline?.trim()&&i.push({...x(o.tagline.trim(),s,8,a-s-4,3,5.5),style:{fontSize:5.5,color:fe},meta:{labelStudioRole:"brand-tagline"}}),i.push(he(12,a)),i}function Le(t,a,o,i,s=4.7){return t.flatMap((l,n)=>{const c=a+n*s;return[{...x(l.label??l.field,4,c,o,4,6),style:{fontSize:6,color:fe},meta:{labelStudioRole:"field-label",labelStudioField:l.field}},{...x("",4+o,c,i,4,7),binding:{field:l.field,...l.format?{format:l.format}:{}},meta:{labelStudioRole:"field-value",labelStudioField:l.field}}]})}function it(t,a){return t?[{...x("",4,14,a,7,14),binding:{field:t},style:{fontSize:14,color:be}}]:[]}function st(t,a,o,i){const s=ce(t,o,i.fields),l=[...Be(a,80,i.brand),...it(o,71),...Le(s,23,21,27)];o&&l.push({kind:"qrcode",leftMm:55,topMm:23,widthMm:20,heightMm:20,binding:{field:o},code:{quietZoneModules:4,errorCorrection:"M"}}),l.push(he(48,80));const n=t.fields.find(c=>c.field===o)?.label??a;return l.push({...x(n,4,49,71,3,5.8),style:{fontSize:5.8,color:fe}}),l}function Re(t,a,o,i,s=80){const l=Be(a,s,i.brand);o&&(l.push({...x("",4,14,s-8,8,16),binding:{field:o},style:{fontSize:16,align:"center",color:be}}),l.push({kind:"qrcode",leftMm:(s-20)/2,topMm:23,widthMm:20,heightMm:20,binding:{field:o},code:{quietZoneModules:4,errorCorrection:"M"}})),l.push(he(44,s));const n=ce(t,o,i.fields);return s===100?n.forEach((c,v)=>{const g=v%2===0?4:52,f=46+Math.floor(v/2)*4.3;l.push({...x(c.label??c.field,g,f,19,3.7,5.8),style:{fontSize:5.8,color:fe},meta:{labelStudioRole:"field-label",labelStudioField:c.field}}),l.push({...x("",g+19,f,25,3.7,6.5),binding:{field:c.field,...c.format?{format:c.format}:{}},meta:{labelStudioRole:"field-value",labelStudioField:c.field}})}):l.push(...Le(n.slice(0,1),46,24,s-32,5)),l}function ae(t,a,o,i={},s){const l=_e(t,o),n=ot(i.preset),c=Object.fromEntries(["name","tagline"].flatMap(p=>{const y=i.brand?.[p];return typeof y=="string"?[[p,y]]:[]})),v={preset:n.id,brand:c,fields:ce(t,l,i.fields).map(p=>p.field)},g=n.id==="warehouse"?Re(t,a,l,i,n.widthMm):st(t,a,l,i),f=[{widthMm:n.widthMm,heightMm:n.heightMm,meta:{title:`${a} · 1`,labelStudio:v},components:g}];return n.faces===2&&f.push({widthMm:n.widthMm,heightMm:n.heightMm,meta:{title:`${a} · 2`,labelStudio:v},components:Re(t,a,l,i)}),h.defineReportTemplate({id:"record-label",name:a,template:{...h.createLabelTemplate({dataset:"records",rowKey:t.rowKey,pages:f}),...s?{dataContract:s}:{}}})}const T=t=>t.meta?.labelStudioRole,ge=t=>typeof T(t)=="string";function de(t){const a={...t,...t.meta?{meta:{...t.meta}}:{}};return a.meta&&(delete a.meta.labelStudioRole,delete a.meta.labelStudioField,Object.keys(a.meta).length||delete a.meta),a}function ut(t,a){for(const o of a.components.filter(ge)){if(t.components.some(s=>T(s)===T(o)&&s.meta?.labelStudioField===o.meta?.labelStudioField))continue;const i=t.components.find(s=>!ge(s)&&JSON.stringify(de(s))===JSON.stringify(de(o)));i&&(i.meta={...i.meta,...o.meta})}}function dt(t,a){const o=t.kind==="list"?Number.POSITIVE_INFINITY:t.heightMm,i=a.kind==="list"?Number.POSITIVE_INFINITY:a.heightMm;return t.leftMm<a.leftMm+a.widthMm&&t.leftMm+t.widthMm>a.leftMm&&t.topMm<a.topMm+i&&t.topMm+o>a.topMm}function ct(t,a){const o={...t,meta:{...t.meta,...a.meta}};return o.kind==="text"&&a.kind==="text"&&(o.text=a.text,a.binding?o.binding=a.binding:delete o.binding),o}function ft(t,a,o,i){const s=i.has("field-value");ut(t,a);const l=new Set(t.components.filter(f=>T(f)==="field-label"||T(f)==="field-value")),n=[...l],c=new Map,v=[];for(const f of o.components.filter(ge)){const p=T(f);if(!i.has(String(p)))continue;const y=p==="field-label"||p==="field-value"?n.find(V=>T(V)===p&&!c.has(V)):t.components.find(V=>T(V)===p);y?c.set(y,ct(y,f)):v.push(f)}const g=t.components.filter(f=>(!s||!l.has(f)||c.has(f))&&(!i.has("brand-tagline")||T(f)!=="brand-tagline"||o.components.some(p=>T(p)==="brand-tagline"))).map(f=>c.get(f)??f);for(const f of v){if(g.some(p=>dt(p,f)))return!1;g.push(f)}return t.components=g,t.meta={...t.meta,labelStudio:o.meta?.labelStudio},!0}function mt(t,a,o,i,s,l){const n=ae(a,o,i,s),c=ae(a,o,i,l),v=h.parseReportTemplate(t),g=new Set;JSON.stringify(s.fields)!==JSON.stringify(l.fields)&&(g.add("field-label"),g.add("field-value")),(s.brand?.name??"").trim()!==(l.brand?.name??"").trim()&&g.add("brand-name"),(s.brand?.tagline??"").trim()!==(l.brand?.tagline??"").trim()&&g.add("brand-tagline");for(const[f,p]of v.template.pages.entries()){const y=n.template.pages[f],V=c.template.pages[f];if(y&&V&&!ft(p,y,V,g))return}return v}function pt(t,a){const o=t.template.pages,i=a.template.pages;return o.length!==i.length||o.some((s,l)=>s.components.length!==i[l].components.length)?!0:o.some((s,l)=>{const n=i[l],c={...s,meta:void 0,components:void 0},v={...n,meta:void 0,components:void 0};return JSON.stringify(c)!==JSON.stringify(v)||s.components.some((g,f)=>JSON.stringify(de(g))!==JSON.stringify(de(n.components[f])))})}function vt(t,a,o,i,s){const l={...t,template:ae(a,o,i,s,t.template.dataContract).template},n=t.template.repeat;return n?.copies!==void 0&&l.template.repeat&&(l.template.repeat.copies=n.copies),l}function R(t){const a=t.template.pages[0]?.meta?.labelStudio;if(!a||typeof a!="object")return;const o=a,i=ue.find(c=>c.id===o.preset);if(!i)return;const s=Array.isArray(o.fields)?o.fields.filter(c=>typeof c=="string"):void 0;if(s&&s.length>5)return;const l=o.brand&&typeof o.brand=="object"?o.brand:{},n={};for(const c of["name","tagline","logoData"])typeof l[c]=="string"&&(n[c]=l[c]);return{preset:i.id,fields:s,brand:n}}function Te(t,a,o){const i=new Set(t.fields.filter(l=>l.field!==a&&l.field!==t.rowKey).map(l=>l.field)),s=o?.filter(l=>i.has(l));return ce(t,a,s).map(l=>l.field)}function gt(t,a){const o=ve.useMachReport(),i=e.computed(()=>({...Me.LABEL_STUDIO_MESSAGES,...t.messages})),s=e.computed(()=>t.title??i.value.title),l={preset:t.preset,brand:t.brand,fields:t.fields},n=e.shallowRef(t.modelValue?h.parseReportTemplate(t.modelValue):ae(t.schema,s.value,t.identityField,l,t.dataContract)),c=e.shallowRef(h.parseReportTemplate(n.value)),v=e.ref(!1),g=e.shallowRef();let f,p;e.onMounted(()=>{t.modelValue||a(h.parseReportTemplate(n.value))});const y=e.ref("preview"),V=e.ref("all"),D=e.ref(1),Y=e.ref(!1),Z=e.ref(!1),b=e.ref(),O=Me.useTemplateDiscard(()=>t.beforeDiscard),F=e.computed(()=>Z.value||O.pending.value||v.value&&!b.value||b.value?.saving===!0||b.value?.blocked===!0||o.state.printing||o.state.exporting!==null),S=e.ref(""),K=e.computed(()=>_e(t.schema,t.identityField)),_=e.ref(R(n.value)?.preset??(t.modelValue?void 0:t.preset??"paired")),C=e.ref(R(n.value)?.brand?.name??t.brand?.name??""),$=e.ref(R(n.value)?.brand?.tagline??t.brand?.tagline??""),N=e.ref(Te(t.schema,K.value,R(n.value)?.fields??t.fields)),U=e.ref(""),P=e.computed(()=>t.schema.fields.filter(r=>r.field!==K.value&&r.field!==t.schema.rowKey)),W=e.computed(()=>N.value.map(r=>({field:r,label:t.schema.fields.find(m=>m.field===r)?.label??r}))),le=e.computed(()=>{const r=U.value.trim().toLocaleLowerCase();return P.value.filter(m=>`${m.label??""} ${m.field}`.toLocaleLowerCase().includes(r)).slice(0,30)}),I=e.computed(()=>{const r=n.value.template.pages[0]?.components.find(m=>m.kind==="image"&&m.meta?.labelBrandLogo);return r?.kind==="image"?r.imageData:t.brand?.logoData}),re=e.computed(()=>({preset:_.value,fields:N.value,brand:{...t.brand,...I.value?{logoData:I.value}:{},name:C.value,tagline:$.value}}));let q=JSON.stringify(R(n.value));const me=e.computed(()=>{const r=R(n.value);if(!r)return!0;try{const m=ae(t.schema,s.value,t.identityField,{...r,brand:{...r.brand,...I.value?{logoData:I.value}:{}}});return pt(n.value,m)}catch{return!0}}),M=e.ref(!1),z=e.computed(()=>_.value!==R(n.value)?.preset),j=()=>JSON.stringify({preset:_.value,fields:N.value,name:C.value,tagline:$.value}),X=e.ref(j()),B=e.computed(()=>j()!==X.value),ee=e.computed(()=>h.serializeReportTemplate(n.value)),oe=e.computed(()=>h.serializeReportTemplate(c.value)),G=e.computed(()=>ee.value!==oe.value),A=e.computed(()=>B.value||G.value||b.value?.pendingLocalChanges===!0);function J(){M.value=!1;const r=R(n.value);_.value=r?.preset,N.value=Te(t.schema,K.value,r?.fields??t.fields),C.value=r?.brand?.name??t.brand?.name??"",$.value=r?.brand?.tagline??t.brand?.tagline??"",q=JSON.stringify(r),X.value=j()}function te(r){const m=R(r),w=JSON.stringify(m);w!==q&&(q=w,J())}let E=!1;e.onScopeDispose(()=>{E=!0,p?.abort()});const L=at();ve.provideMachReportConfig({get defaults(){return{...t.preview,assets:{...L,...t.preview?.assets,assetRenderers:{...L.assetRenderers,...t.preview?.assets?.assetRenderers}}}}}),e.watch(b,r=>{const m=g.value;if(!r||!m)return;const w=n.value;h.serializeReportTemplate(m)!==ee.value&&r.applyTemplate?.(w.template),g.value=void 0,f=void 0},{flush:"post"}),e.watch([_,N,C,$],()=>{M.value=!1}),e.watch(()=>t.modelValue,r=>{r&&h.serializeReportTemplate(r)!==ee.value&&(n.value=h.parseReportTemplate(r),c.value=h.parseReportTemplate(r),f=void 0,te(r))}),e.watch(()=>t.rows,()=>{V.value="all",D.value=1});function u(r){S.value="",n.value=r,te(r),a(r)}function d(r,m){m&&N.value.length<5&&!N.value.includes(r)?N.value=[...N.value,r]:m||(N.value=N.value.filter(w=>w!==r))}function H(r=!1){if(F.value||E)return!1;if(!_.value)return S.value=i.value.choosePreset,!1;if(b.value?.canApply===!1)return S.value=b.value.saveReason||i.value.applyFirst,!1;if(z.value&&!r)return M.value=!0,!1;try{const m=R(n.value);let w;if(r?w=vt(n.value,t.schema,s.value,t.identityField,re.value):m&&(w=mt(n.value,t.schema,s.value,t.identityField,m,re.value)),!w)return S.value=i.value.contentNeedsDesign,!1;if(b.value?.applyTemplate){if(!b.value.applyTemplate(w.template))return S.value=i.value.saveFailed,!1}else f=h.parseReportTemplate(n.value),u(w);return M.value=!1,X.value=j(),!0}catch(m){return S.value=m instanceof Error?m.message:i.value.saveFailed,!1}}const Q=e.computed(()=>V.value==="all"?t.rows:Number.isSafeInteger(D.value)&&t.rows[D.value-1]?[t.rows[D.value-1]]:[]),ie=e.computed(()=>n.value.template.repeat?.dataset??"records"),xe=e.computed(()=>({[ie.value]:Q.value})),Fe=e.computed(()=>({[ie.value]:Q.value.slice(0,3)})),Oe=e.computed(()=>({[ie.value]:t.schema})),$e=e.computed(()=>[{id:ie.value,label:s.value,rowKey:t.schema.rowKey,fields:t.schema.fields}]),Pe=e.computed(()=>n.value.template.pages[0]),ye=e.computed(()=>n.value.template.pages.length),Ie=e.computed(()=>{const r=n.value.template.repeat?.copies??1;return typeof r=="number"?r:void 0}),qe=e.computed(()=>{const r=n.value.template.repeat?.copies;return typeof r=="object"?r.field:void 0}),we=e.computed(()=>{const r=qe.value;if(!r)return;let m=0;for(const w of Q.value){const k=Object.getOwnPropertyDescriptor(w,r)?.value;if(typeof k!="number"||!Number.isSafeInteger(k)||k<1||k>1e3)return;m+=k}return m}),ze=e.computed(()=>{const r=Ie.value;return r!==void 0?Number.isSafeInteger(r)&&r>=1&&r<=1e3?Q.value.length*r*ye.value:void 0:we.value===void 0?void 0:we.value*ye.value}),se=e.computed(()=>lt(n.value.template)),Ae=e.computed(()=>{const r=se.value;return r?i.value.sheetHint.replace("{columns}",String(r.columns)).replace("{rows}",String(r.rows)).replace("{capacity}",String(r.capacity)):i.value.sheetUnavailable});e.watch(se,r=>{r||(Y.value=!1)});const Je=e.computed(()=>{const r=h.createReportSource({labels:h.defineLabelReport({template:n.value.template,rows:Q.value,dataSchema:t.schema})}),m=Y.value?se.value:void 0,w=t.dataContract?h.inspectReportTemplateCompatibility(n.value.template,t.dataContract):void 0;return async k=>{if(w&&!w.ok)throw new Error(w.issues.map(Qe=>Qe.message).join(";"));const ke=await r(k);return m?h.imposeLabelSheets(ke,{...m,signal:k.signal}):ke}}),Se=async(r,m)=>{if(E||m.signal.aborted)throw new DOMException("标签模板保存已取消","AbortError");const w=h.parseReportTemplate(r),k=h.parseReportTemplate(t.save?await t.save(w,m):w);if(k.id!==r.id)throw new Error(i.value.invalidSavedTemplate);if(E||m.signal.aborted)throw new DOMException("标签模板保存已取消","AbortError");return c.value=h.parseReportTemplate(k),u(k),k};async function Ne(){if(!(F.value||E)){if(B.value&&z.value){S.value=i.value.applyLayoutFirst;return}if(!(B.value&&!H())){Z.value=!0;try{if(b.value){if(b.value.canApply===!1){S.value=b.value.saveReason||i.value.applyFirst;return}if(b.value.pendingLocalChanges&&await b.value.save(),b.value.pendingLocalChanges){S.value=i.value.saveFailed;return}}else G.value&&(p=new AbortController,await Se(n.value,{expectedRevision:n.value.revision,signal:p.signal}),f=void 0);if(!E)return S.value="",h.parseReportTemplate(n.value)}catch(r){E||(S.value=r instanceof Error?r.message:i.value.saveFailed)}finally{Z.value=!1,p=void 0}}}}async function Ve(r){if(!(F.value||r===y.value))if(r==="design"&&!v.value){if(B.value&&z.value){S.value=i.value.applyLayoutFirst;return}if(B.value&&!H())return;g.value=f,v.value=!0,y.value=r}else await Ne()&&(y.value=r)}function He(r){v.value=!1,y.value="preview",S.value=`${i.value.designLoadFailed} ${r instanceof Error?r.message:String(r)}`}let pe=!1;const Ke=r=>pe||O.request(r);async function Ue(){if(F.value)return!1;const r=b.value?.pendingLocalChanges===!0;if(!r&&!G.value&&!B.value)return!0;if(!(r&&b.value?await b.value.guardChanges():await O.request({reason:"replace",document:h.parseReportTemplate(n.value),pendingLocalChanges:!0}))||E)return!1;if(r&&b.value){pe=!0;try{await b.value.reset()}finally{pe=!1}}return u(h.parseReportTemplate(c.value)),f=void 0,J(),!0}const Ee=e.computed(()=>y.value==="preview"&&!F.value&&o.state.canPrint);async function je(){return await Ve("preview"),!E&&y.value==="preview"}async function Ge(){Ee.value&&await o.print()}return{m:i,notice:S,title:s,document:n,mode:y,preview:o,showPreview:je,print:Ge,canPrint:Ee,editorVisited:v,editorInitialDocument:g,failDesignLoad:He,sheetLayout:se,sheetHint:Ae,rebuilding:M,layoutChanged:z,record:V,recordIndex:D,sheet:Y,busy:F,editor:b,rows:Q,datasets:xe,designDatasets:Fe,schemas:Oe,bindings:$e,paper:Pe,labelCount:ze,fetcher:Je,update:u,save:Se,navigate:Ve,prepare:Ne,guardChanges:Ue,preset:_,presets:ue,brandName:C,brandTagline:$,fields:N,fieldQuery:U,selectedFields:W,availableFields:le,fieldCount:e.computed(()=>P.value.length),configurationDirty:B,pendingLocalChanges:A,custom:me,toggleField:d,applyConfiguration:H,requestRebuild:()=>{M.value=!0},cancelRebuild:()=>{M.value=!1},restoreConfiguration:J,beforeDiscard:Ke,confirmation:O.confirmation,decideDiscard:O.decide}}const bt=["aria-label"],ht={class:"mr-label-context"},yt={class:"mr-label-identity"},wt={class:"mr-label-spec"},St=["disabled"],Nt=["aria-label"],Vt=["aria-pressed","onClick"],Et={class:"mr-label-fields"},kt={key:0,class:"mr-label-selected-fields"},Dt=["aria-label","onClick"],Ct={class:"mr-label-field-search"},Mt=["aria-label","placeholder"],Rt={class:"mr-label-field-options"},Tt=["checked","disabled","onChange"],_t={key:0},Bt={key:1},Lt={class:"mr-label-brand"},xt=["placeholder"],Ft=["disabled"],Ot={key:1,class:"mr-label-rebuild",role:"alert"},$t={key:3,class:"mr-label-reflow-hint"},Pt={class:"mr-label-reflow-hint"},It={class:"mr-label-record"},qt=["disabled"],zt={value:"all"},At={value:"single"},Jt={key:0,class:"mr-label-record-index"},Ht=["max","aria-label","disabled"],Kt={class:"mr-label-count"},Ut={class:"mr-label-help"},jt={class:"mr-label-main"},Gt={class:"mr-label-bar"},Qt=["aria-label"],Yt=["aria-pressed","disabled"],Zt=["aria-pressed","disabled"],Wt={key:0,class:"mr-label-notice",role:"status"},Xt=["aria-label"],en={class:"mr-label-imposition"},tn=["disabled"],nn={key:3,class:"mr-label-editor"},an={key:0,class:"mr-label-editor-loading",role:"status"},ln=e.defineComponent({__name:"ReportLabelStudio",props:{showSave:{type:Boolean,default:!0},rows:{},schema:{},title:{},identityField:{},dataContract:{},modelValue:{},preview:{},save:{},beforeDiscard:{},messages:{},preset:{},brand:{},fields:{}},emits:["update:modelValue"],setup(t,{expose:a,emit:o}){const i=t,s=o,l=gt(i,L=>s("update:modelValue",L)),{m:n,notice:c,title:v,document:g,mode:f,record:p,recordIndex:y,sheet:V,busy:D,editor:Y,rows:Z,designDatasets:b,schemas:O,bindings:F,paper:S,labelCount:K,fetcher:_,preset:C,presets:$,brandName:N,brandTagline:U,fields:P,fieldQuery:W,selectedFields:le,availableFields:I,fieldCount:re,configurationDirty:q,pendingLocalChanges:me,custom:M,confirmation:z,editorVisited:j,editorInitialDocument:X,sheetLayout:B,sheetHint:ee,rebuilding:oe,layoutChanged:G}=l,A=e.shallowRef();let J=!1;e.onScopeDispose(()=>{J=!0}),e.watch(l.editorVisited,async L=>{if(!(!L||A.value))try{const u=await Promise.resolve().then(()=>require("./designer-BWQVpJeN.cjs")).then(d=>d.ReportTemplateEditor$1);J||(A.value=e.markRaw(u.default))}catch(u){J||l.failDesignLoad(u)}});const te=e.ref();let E=null;return e.watch(z,async L=>{L?(E=window.document.activeElement,await e.nextTick(),te.value?.focus()):E?.isConnected&&(E.focus(),E=null)}),a({guardChanges:l.guardChanges,prepare:l.prepare,preview:l.showPreview,print:l.print,get mode(){return f.value},get canPrint(){return l.canPrint.value},get busy(){return D.value},get pendingLocalChanges(){return me.value}}),(L,u)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(["mr-label-studio",{"is-design":e.unref(f)==="design"}]),"aria-label":e.unref(v)},[e.createElementVNode("aside",ht,[e.createElementVNode("div",yt,[e.createVNode(ne._sfc_main,{name:"file",size:18}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(v)),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(M)?e.unref(n).customTemplate:e.unref(n).readyTemplate),1)]),e.createElementVNode("div",wt,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(S)?.widthMm)+" ",1),u[16]||(u[16]=e.createElementVNode("i",null,"×",-1)),e.createTextVNode(" "+e.toDisplayString(e.unref(S)?.heightMm),1)]),e.createElementVNode("span",null,"mm · "+e.toDisplayString(e.unref(g).template.pages.length)+" "+e.toDisplayString(e.unref(n).faces),1)]),e.createElementVNode("fieldset",{class:"mr-label-quick",disabled:e.unref(D)},[e.createElementVNode("legend",null,e.toDisplayString(e.unref(n).layout),1),e.createElementVNode("div",{class:"mr-label-presets","aria-label":e.unref(n).layout},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref($),d=>(e.openBlock(),e.createElementBlock("button",{key:d.id,type:"button","aria-pressed":e.unref(C)===d.id,onClick:H=>C.value=d.id},[e.createElementVNode("span",{class:e.normalizeClass(["mr-label-preset-art",`is-${d.id}`]),"aria-hidden":"true"},[...u[17]||(u[17]=[e.createElementVNode("i",null,null,-1),e.createElementVNode("i",null,null,-1),e.createElementVNode("i",null,null,-1)])],2),e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n)[`${d.id}Preset`]),1),e.createElementVNode("small",null,e.toDisplayString(d.widthMm)+" × "+e.toDisplayString(d.heightMm)+" · "+e.toDisplayString(d.faces)+" "+e.toDisplayString(e.unref(n).faces),1)])],8,Vt))),128))],8,Nt),e.createElementVNode("details",Et,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(e.unref(n).fields)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(P).length)+" / 5",1)]),e.unref(le).length?(e.openBlock(),e.createElementBlock("div",kt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(le),d=>(e.openBlock(),e.createElementBlock("button",{key:d.field,type:"button","aria-label":`${e.unref(n).removeField} ${d.label}`,onClick:H=>e.unref(l).toggleField(d.field,!1)},[e.createTextVNode(e.toDisplayString(d.label)+" ",1),u[18]||(u[18]=e.createElementVNode("span",{"aria-hidden":"true"},"×",-1))],8,Dt))),128))])):e.createCommentVNode("",!0),e.createElementVNode("label",Ct,[e.createVNode(ne._sfc_main,{name:"search",size:13}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=d=>e.isRef(W)?W.value=d:null),type:"search","aria-label":e.unref(n).findField,placeholder:e.unref(n).findField},null,8,Mt),[[e.vModelText,e.unref(W)]])]),e.createElementVNode("div",Rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(I),d=>(e.openBlock(),e.createElementBlock("label",{key:d.field},[e.createElementVNode("input",{type:"checkbox",checked:e.unref(P).includes(d.field),disabled:!e.unref(P).includes(d.field)&&e.unref(P).length>=5,onChange:H=>e.unref(l).toggleField(d.field,H.target.checked)},null,40,Tt),e.createElementVNode("span",null,e.toDisplayString(d.label??d.field),1)]))),128)),e.unref(I).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",_t,e.toDisplayString(e.unref(n).noFields),1))]),e.createElementVNode("small",null,e.toDisplayString(e.unref(n).fieldLimit),1),e.unref(re)>30?(e.openBlock(),e.createElementBlock("small",Bt,e.toDisplayString(e.unref(n).fieldSearchHint),1)):e.createCommentVNode("",!0)]),e.createElementVNode("details",Lt,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(n).brand),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).brandName),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[1]||(u[1]=d=>e.isRef(N)?N.value=d:null),maxlength:"80",placeholder:e.unref(v)},null,8,xt),[[e.vModelText,e.unref(N)]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).brandTagline),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[2]||(u[2]=d=>e.isRef(U)?U.value=d:null),maxlength:"120"},null,512),[[e.vModelText,e.unref(U)]])])]),e.createElementVNode("button",{class:"mr-label-apply",type:"button",disabled:!e.unref(q)||!e.unref(C),onClick:u[3]||(u[3]=d=>e.unref(l).applyConfiguration())},[e.createVNode(ne._sfc_main,{name:"arrow-right",size:13}),e.createTextVNode(e.toDisplayString(e.unref(G)?e.unref(n).applyLayout:e.unref(n).applyContent),1)],8,Ft),e.unref(M)&&e.unref(C)&&!e.unref(oe)?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mr-label-reset-configuration mr-label-rebuild-current",type:"button",onClick:u[4]||(u[4]=(...d)=>e.unref(l).requestRebuild&&e.unref(l).requestRebuild(...d))},e.toDisplayString(e.unref(n).rebuildCurrent),1)):e.createCommentVNode("",!0),e.unref(oe)?(e.openBlock(),e.createElementBlock("div",Ot,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).rebuildTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).rebuildDescription),1),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:u[5]||(u[5]=(...d)=>e.unref(l).cancelRebuild&&e.unref(l).cancelRebuild(...d))},e.toDisplayString(e.unref(n).cancelRebuild),1),e.createElementVNode("button",{type:"button",onClick:u[6]||(u[6]=d=>e.unref(l).applyConfiguration(!0))},e.toDisplayString(e.unref(n).confirmRebuild),1)])])):e.createCommentVNode("",!0),e.unref(q)?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mr-label-reset-configuration",type:"button",onClick:u[7]||(u[7]=(...d)=>e.unref(l).restoreConfiguration&&e.unref(l).restoreConfiguration(...d))},e.toDisplayString(e.unref(n).restoreConfiguration),1)):e.createCommentVNode("",!0),e.unref(q)&&!e.unref(C)?(e.openBlock(),e.createElementBlock("p",$t,e.toDisplayString(e.unref(n).choosePreset),1)):e.createCommentVNode("",!0),e.createElementVNode("p",Pt,e.toDisplayString(e.unref(G)?e.unref(n).reflowHint:e.unref(n).contentHint),1)],8,St),e.createElementVNode("label",It,[e.createTextVNode(e.toDisplayString(e.unref(n).records),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":u[8]||(u[8]=d=>e.isRef(p)?p.value=d:null),disabled:e.unref(D)||!i.rows.length},[e.createElementVNode("option",zt,e.toDisplayString(e.unref(n).all)+" · "+e.toDisplayString(i.rows.length),1),e.createElementVNode("option",At,e.toDisplayString(e.unref(n).single),1)],8,qt),[[e.vModelSelect,e.unref(p)]])]),e.unref(p)==="single"?(e.openBlock(),e.createElementBlock("label",Jt,[e.createTextVNode(e.toDisplayString(e.unref(n).record),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[9]||(u[9]=d=>e.isRef(y)?y.value=d:null),type:"number",min:"1",max:i.rows.length,"aria-label":e.unref(n).record,disabled:e.unref(D)},null,8,Ht),[[e.vModelText,e.unref(y),void 0,{number:!0}]]),e.createTextVNode(" / "+e.toDisplayString(i.rows.length),1)])):e.createCommentVNode("",!0),e.createElementVNode("p",Kt,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(Z).length),1),e.createTextVNode(" "+e.toDisplayString(e.unref(n).count)+" ",1),u[19]||(u[19]=e.createElementVNode("span",null,"→",-1)),u[20]||(u[20]=e.createTextVNode()),e.unref(K)!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("strong",null,e.toDisplayString(e.unref(K)),1),e.createTextVNode(" "+e.toDisplayString(e.unref(n).labels),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(n).invalidCopies),1)],64))]),e.createElementVNode("details",Ut,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(n).guide),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).help),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).printHint),1)])]),e.createElementVNode("div",jt,[e.createElementVNode("header",Gt,[e.createElementVNode("nav",{"aria-label":e.unref(v)},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(f)==="preview",disabled:e.unref(D),onClick:u[10]||(u[10]=d=>e.unref(l).navigate("preview"))},[e.createVNode(ne._sfc_main,{name:"file",size:14}),e.createTextVNode(e.toDisplayString(e.unref(n).preview),1)],8,Yt),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(f)==="design",disabled:e.unref(D),onClick:u[11]||(u[11]=d=>e.unref(l).navigate("design"))},[e.createVNode(ne._sfc_main,{name:"settings",size:14}),e.createTextVNode(e.toDisplayString(e.unref(n).design),1)],8,Zt)],8,Qt),e.createElementVNode("span",null,e.toDisplayString(e.unref(f)==="design"?e.unref(n).designHint:e.unref(n).flow),1)]),e.unref(c)?(e.openBlock(),e.createElementBlock("p",Wt,e.toDisplayString(e.unref(c)),1)):e.createCommentVNode("",!0),e.unref(z)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mr-label-confirm",role:"alertdialog","aria-label":e.unref(n).discardTitle,onKeydown:u[14]||(u[14]=e.withKeys(e.withModifiers(d=>e.unref(l).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(n).discardDescription),1)]),e.createElementVNode("button",{ref_key:"keepEditingButton",ref:te,type:"button",onClick:u[12]||(u[12]=d=>e.unref(l).decideDiscard(!1))},e.toDisplayString(e.unref(n).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:u[13]||(u[13]=d=>e.unref(l).decideDiscard(!0))},e.toDisplayString(e.unref(n).discard),1)],40,Xt)):e.createCommentVNode("",!0),e.unref(f)==="preview"?(e.openBlock(),e.createBlock(e.unref(ve.ReportPreview),{key:2,ref:e.unref(l).preview.ref,"report-id":"labels",fetcher:e.unref(_),"show-params":!1,height:"100%",toolbar:{exportFormats:["pdf","png","html"],editing:!1,excelImport:!1},messages:{title:e.unref(v),empty:e.unref(n).empty}},{settings:e.withCtx(()=>[e.createElementVNode("label",en,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[15]||(u[15]=d=>e.isRef(V)?V.value=d:null),type:"checkbox",disabled:!e.unref(B)},null,8,tn),[[e.vModelCheckbox,e.unref(V)]]),e.createTextVNode(e.toDisplayString(e.unref(n).sheet),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(ee)),1)])]),_:1},8,["fetcher","messages"])):e.createCommentVNode("",!0),e.unref(j)?e.withDirectives((e.openBlock(),e.createElementBlock("div",nn,[A.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",an,e.toDisplayString(e.unref(n).designLoading),1)),A.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(A.value),{key:1,ref_key:"editor",ref:Y,"model-value":e.unref(X)??e.unref(g),mode:"design","show-mode-switch":!1,"show-save":t.showSave,capabilities:{params:!1},datasets:e.unref(b),"data-schemas":e.unref(O),"binding-datasets":e.unref(F),"binding-data-contract":t.dataContract,save:e.unref(l).save,"before-discard":e.unref(l).beforeDiscard,preview:t.preview,"onUpdate:modelValue":e.unref(l).update},null,8,["model-value","show-save","datasets","data-schemas","binding-datasets","binding-data-contract","save","before-discard","preview","onUpdate:modelValue"])):e.createCommentVNode("",!0)],512)),[[e.vShow,e.unref(f)==="design"]]):e.createCommentVNode("",!0)])],10,bt))}});exports.default=ln;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),$=require("./injection-keys-Db_DyLkm.cjs"),M=require("@agile-team/mach-report"),ae=require("./progress-B0ctFpKf.cjs"),N=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),z={printPrepareTimeout:"打印资源准备超时,请检查字体与图片后重试。",printImageFailed:"第 {index} 张图片未能加载,已停止打印,避免输出缺失内容。",printFontFailed:"打印字体 {family} 未能加载,请检查字体资源后重试。",printPrepareFailed:"打印准备失败,请检查打印配置或改用 PDF。",printCalibration:"打印校准",printOffsetX:"水平偏移(mm)",printOffsetY:"垂直偏移(mm)",printCalibrationTest:"打印校准页",printCalibrationHint:"正值向右/向下移动,负值向左/向上。使用同规格纸张及 100% 比例,先试打一张。系统对话框关闭不代表设备已完成。"};function te(a){const n=a?.calibration?.offsetXmm??0,l=a?.calibration?.offsetYmm??0;if(![n,l].every(r=>Number.isFinite(r)&&Math.abs(r)<=20))throw new RangeError("Print calibration must be within ±20 mm");return{x:n,y:l}}function ne(a={}){if(a.fonts&&(!Array.isArray(a.fonts)||a.fonts.length>8))throw new RangeError("At most eight print font faces are allowed");return{...a,...a.fonts?{fonts:a.fonts.map(n=>({...n}))}:{},...a.calibration?{calibration:{...a.calibration}}:{}}}function K(a={}){const n=e.ref(!1),l=e.ref(null),r=e.ref(null),i=e.ref(null);function f(d=!1){n.value=!1,d&&e.nextTick(()=>r.value?.focus())}function v(d){d.target instanceof Node&&!l.value?.contains(d.target)&&f()}function s(d){d.key!=="Escape"||!n.value||d.isComposing||(d.preventDefault(),d.stopPropagation(),f(!0))}return e.watch(n,d=>{!d||a.focusOnOpen===!1||e.nextTick(()=>(i.value?.querySelector("input")??i.value?.querySelector("button:not(:disabled)"))?.focus())}),e.onMounted(()=>{document.addEventListener("pointerdown",v),document.addEventListener("focusin",v)}),e.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",v),document.removeEventListener("focusin",v)}),{opened:n,root:l,trigger:r,panel:i,close:f,onKeydown:s}}const F={paramOptionsLoading:"正在搜索选项…",paramOptionsEmpty:"没有匹配选项",paramOptionsFailed:"选项加载失败,请重试",paramOptionsMissingLoader:"尚未配置选项加载服务",paramOptionsDependencies:"请先选择上级条件",paramOptionsClear:"清除选择",paramNumberRangeStart:"最小值",paramNumberRangeEnd:"最大值"},V={prefillTitle:"安全预填",prefillHint:"按业务主键匹配白名单字段,先核对差异再整批应用;默认只补空白。",prefillCurrent:"当前值",prefillReference:"参考 / 待填值",prefillLoad:"读取参考数据",prefillApply:"应用预填",prefillMatched:"一致",prefillChanged:"可补入",prefillSkipped:"已跳过",prefillConflict:"需处理",prefillUnchanged:"值一致",prefillReadonly:"只读",prefillOccupied:"保留已有值",prefillMissingSource:"来源为空",prefillMissingTarget:"无匹配目标",prefillAmbiguous:"同源值不一致",prefillInvalid:"值格式无效",comparisonTitle:"业务数据对比",comparisonHint:"按稳定业务主键比较参考数据与本次查询,不按显示行号匹配。",comparisonLoad:"读取并对比",comparisonAdded:"新增",comparisonRemoved:"删除",comparisonChanged:"变化",comparisonUnchanged:"一致",reviewCancel:"取消读取",reviewClose:"关闭数据核对",reviewBefore:"参考值",reviewAfter:"当前 / 待填值",reviewField:"字段",reviewKey:"业务主键",reviewDelta:"差额",reviewRatio:"变化比率",reviewLocate:"定位",reviewEmpty:"暂无差异记录",reviewPrevious:"上一页",reviewNext:"下一页",reviewPage:"差异分页"};function le(a){return{...V,...Object.fromEntries(Object.entries(a).filter(([,n])=>n!==void 0))}}const U={calculationTitle:"选区计算",calculationLocal:"仅本地分析,不写回实绩、不重算原公式。请选取同一单位与量纲的数值。",calculationHint:"点击起点,Shift + 点击终点或方向键扩选。",calculationFormula:"计算方式",calculationExpression:"组合公式",calculationExpressionHint:"支持 SUM、AVERAGE/AVG、MIN、MAX、COUNT、MEDIAN 及 + - * / 和括号,不执行 Excel 公式;采用浮点数,精度仅用于展示。",calculationPrecision:"展示小数位",calculationRun:"计算选区",calculationCancel:"取消计算",calculationResult:"计算结果",calculationIncluded:"参与数值",calculationExcluded:"排除单元格",calculationEmpty:"选区没有可计算数值,计数为 0,其余结果为空。",calculationNoSelection:"在旁边报表中点击起点,再 Shift + 点击终点选择数据。",calculationSummary:"选区摘要",calculationAdvanced:"高级计算",calculationClose:"收起选区计算",calculationPending:"正在计算选区…",calculationSummarySum:"求和",calculationSummaryAverage:"均值",calculationSummaryCount:"数值",calculationMixedColumns:"选区跨多列,请确认单位与口径后使用高级计算。",calculationSum:"求和 SUM",calculationAverage:"平均值 AVERAGE",calculationMin:"最小值 MIN",calculationMax:"最大值 MAX",calculationCount:"数值计数 COUNT",calculationMedian:"中位数 MEDIAN",calculationCustom:"组合公式",calculationErrorSelection:"请选择同一明细区域中的数据。",calculationErrorLimit:"选区超过计算预算,请缩小范围后重试。",calculationErrorExpression:"公式无效,请使用支持的摘要名称、运算符与括号。",calculationErrorDivision:"除数不能为 0。",calculationErrorOverflow:"结果超出有效数值范围。",calculationErrorPrecision:"数值超出安全精度,或展示小数位不是 0 至 12 的整数。"};function re(a){const n={...U};for(const l of Object.keys(n)){const r=a[l];typeof r=="string"&&(n[l]=r)}return n}const W={previousSnapshot:"当前保留上次成功结果,刷新成功后恢复编辑和输出。",...F,...V,reviewTools:"数据工具",validationTitle:"数据校验",validationError:"错误",validationWarning:"提示",validationDataset:"全表",validationRow:"行",validationMore:"请缩小范围查看更多问题",drillActions:"查看关联",drillOpening:"正在打开…",drillMissingValue:"当前单元格缺少关联参数",drillFailed:"关联内容打开失败,请重试",...z,...U,exportMenu:"导出",exportMenuDescription:"选择文件格式",clearSearch:"清除搜索",searchHint:"Enter 下一个 · Shift+Enter 上一个",searchNoMatches:"没有匹配内容",pageJump:"跳至页",pageJumpInvalid:"请输入有效页码",pageJumpHint:"Enter 跳转",pagination:"报表分页",recordNavigation:"标签记录",recordInfo:"记录 {cur} / {total}",prevRecord:"上一条记录",nextRecord:"下一条记录",dataExplanation:"来源数据说明",dataExplanationHint:"按字段查看来源与计算说明",dataExplanationSearch:"搜索说明、字段或记录",dataExplanationEmpty:"没有匹配的数据说明",dataMissingSource:"暂无来源",dataNotApplicable:"业务不适用",dataNotCalculable:"无法计算",columnSearchHint:"输入列名或字段标识",columnSearchShortcut:"↑ ↓ 选择 · Enter 定位",closeColumnDirectory:"关闭字段目录",columnResultsMore:"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围",columnCount:"{count} 个字段",settingsGeneral:"常规",settingsTools:"工具",settingsAdvanced:"高级",settingsAdvancedDescription:"按需开启分析能力,保持日常阅读简洁。",settingsCalculations:"启用选区计算",settingsCalculationsDescription:"开启后直接在报表旁选择数据,底部查看单列摘要,侧栏配置高级计算。",title:"报表预览",prevPage:"‹ 上一页",nextPage:"下一页 ›",pageInfo:"{cur} / {total}",fitWidth:"适宽",exportHtml:"导出 HTML",exportPdf:"导出 PDF",exportExcel:"导出 Excel",exportImage:"导出图片",exportWord:"导出 Word",exporting:"正在生成 {format}…",print:"打印",pdfWindow:"PDF 窗口",loading:"报表渲染中…",empty:"暂无预览数据",errorPrefix:"",retry:"重试",pdfFontUnavailable:"PDF 字体尚未就绪,请联系管理员检查字体配置;预览及其它导出仍可使用。",searchPlaceholder:"搜索报表内容",matchInfo:"{cur}/{total}",prevMatch:"‹",nextMatch:"›",thumbnails:"缩略图",paramsTitle:"查询条件",query:"查 询",reset:"重 置",paramRequired:"请填写{label}",paramInvalid:"{label}:{message}",paramPrompt:"请先完善查询条件",paramPromptDescription:"填写必填条件后点击查询,即可生成报表。",paramSelectPlaceholder:"请选择{label}",paramTextPlaceholder:"请输入{label}",paramRangeStart:"开始日期",paramRangeEnd:"结束日期",searching:"搜索中…",importExcel:"导入 Excel 模板",importing:"正在导入 Excel…",editCell:"编辑单元格",editingHint:"双击单元格编辑 · Enter 确认 · Esc 取消",saving:"正在保存修改…",editInvalidNumber:"请输入有效数字;清空表示无值",editInvalidBoolean:"请输入 true / false、是 / 否或 1 / 0",editConflict:"该单元格已变化,请重新打开编辑",settings:"设置",settingsDisplay:"阅读工具",settingsExport:"导出与打印",settingsData:"数据操作",settingsUnavailable:"需由接入方配置启用",settingsReset:"恢复默认",settingsClose:"关闭设置",search:"内容搜索",closeSearch:"关闭搜索",prevSearchMatch:"上一个匹配",nextSearchMatch:"下一个匹配",zoom:"缩放工具",settingsLocal:"按需启用工具,仅作用于当前预览。",editingLocal:"修改为本地草稿;不会自动写入业务数据库。",editingSaved:"修改将通过接入方配置的保存回调提交。",importLocal:"导入仅生成本地预览,不自动替换业务数据。",emptyDescription:"当前查询没有明细,请调整查询条件后重试。",undo:"撤销",redo:"重做",restoreChanges:"恢复来源值",changes:"修改明细",changesCount:"{count} 处修改",changesEmpty:"尚无修改",changesBefore:"来源值",changesAfter:"当前值",editAtomicRequired:"批量保存需要接入方提供原子 saveBatch 回调;本次未写入任何单元格。",clipboardLimit:"单次最多粘贴 10000 个单元格,请分批处理。",preferencesError:"偏好存储不可用,设置仍在当前预览中生效。",freezeHeaders:"冻结表头",frozenColumns:"冻结前列",sections:"工作表与章节",locateField:"定位字段",locateFieldPlaceholder:"输入字段标识,Enter 定位",locateFieldMissing:"未找到该字段,请核对字段标识。",importSummary:"Excel 导入摘要",importPreserved:"已导入 {sheets} 个工作表,保留内容、合并和样式。",importWarnings:"兼容性提示",importReadOnly:"公式、日期及受保护单元格保持只读;公式不重算。",conflicts:"保存冲突",editReadOnly:"选区包含只读或无权限单元格,本次修改未应用。",editMissing:"选区超出报表范围或缺少业务来源,请重新选择。",editRecalculationUnavailable:"此报表缺少重算会话或稳定数据来源,暂不支持编辑;请使用 reports/本地数据源重新加载。",editDuplicate:"选区包含同一业务字段的重复单元格,请缩小选区。",clipboardInvalid:"剪贴板内容无法识别,请使用矩形表格文本重新粘贴。",editSaved:"修改已通过保存回调确认",settingsPanes:"冻结窗格",columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",columnGroup:"明细区域",discardTitle:"保留当前修改?",discardDescription:"当前报表有尚未保存的输入或本地草稿,继续操作将替换这些内容。",discardKeep:"继续编辑",discardProceed:"放弃修改并继续",taskQuery:"正在获取数据…",taskValidate:"正在校验数据…",taskLayout:"正在生成版式…",taskAssets:"正在准备图片和字体…",taskEncode:"正在生成文件…",taskDownload:"正在准备下载…",taskPrint:"正在准备打印…",taskCancel:"取消任务",taskCancelled:"任务已取消,可重新操作。",diagnosticsSearch:"搜索提示、错误码或位置",diagnosticsMore:"共 {count} 条匹配,当前展示前 100 条;请搜索缩小范围。",diagnosticsTitle:"输出兼容性提示",diagnosticsLocate:"定位",diagnosticsLocation:"第 {page} 页 · 组件 {component}",diagnosticsStrict:"当前格式存在已知内容降级,请查看兼容性提示或选择其他输出格式。",diagnosticsDetails:"查看技术详情",diagnosticMissingImage:"图片或图表资源尚未准备完成,请重试或联系管理员。",diagnosticUnsupported:"当前输出格式会省略此内容,建议选择 PDF 或图片格式。",diagnosticUnsupportedStyle:"当前格式无法保留部分样式,请查看位置并选择适合的输出格式。",diagnosticImageFormat:"当前图片格式无法直接导出,请转换资源后重试。",diagnosticRichText:"文字内容会保留,部分字体与段落样式将简化。",diagnosticNested:"单元格中的嵌套内容会省略,单元格文字会保留。",diagnosticImageAsync:"图片需要完成加载后才能输出。",diagnosticImageDecode:"图片加载失败,请检查资源后重试。",diagnosticAssetFailed:"图表或图片生成失败,请重试或联系管理员。",diagnosticAssetBudget:"图片资源超出处理范围,请减少资源或缩小报表范围。"},J={emptyAccent:"#79a7e8",shellBg:"#f4f7fc",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e4eaf3",toolbarFg:"#334155",btnFg:"#526078",btnBorder:"#dbe3ef",btnHoverBg:"#edf3ff",btnHoverFg:"#315fba",btnActiveBg:"#3569d4"};function Y(a={}){return{...a,defaults:a.defaults??{},presets:a.presets??{}}}function oe(a){return a}const O={showExport:!0,showPrint:!0,showPdfWindow:!0,showSettings:!0,showParams:!0,gapPx:18,pdfFontUrl:"/simhei.ttf",logger:console},ie={warn:()=>{},info:()=>{}};function se(a,n){if(!(!a&&!n))return{...a,...n,calibration:{...a?.calibration,...n?.calibration}}}function ce(a={},n={}){const l={...a,...n};return(a.unavailableReasons||n.unavailableReasons)&&(l.unavailableReasons={...a.unavailableReasons,...n.unavailableReasons}),l}function T(a,n){return{...a,...n,theme:{...a?.theme,...n?.theme},messages:{...a?.messages,...n?.messages},preview:{...a?.preview,...n?.preview},xlsx:{...a?.xlsx,...n?.xlsx},toolbar:ce(a?.toolbar,n?.toolbar),interaction:{...a?.interaction,...n?.interaction},refresh:{...a?.refresh,...n?.refresh},output:{...a?.output,...n?.output},printOptions:se(a?.printOptions,n?.printOptions)}}function de(a){return{showExport:a.showExport??O.showExport,showPrint:a.showPrint??O.showPrint,showPdfWindow:a.showPdfWindow??O.showPdfWindow,showSettings:a.showSettings??O.showSettings,showParams:a.showParams??O.showParams,gapPx:a.gapPx??O.gapPx}}function ue(a,n){const l=n?a?.presets?.[n]:a?.defaultPreset?a?.presets?.[a.defaultPreset]:void 0,r=T(a?.defaults,l);return{drill:r.drill,prefill:r.prefill,dataComparison:r.dataComparison,exportExecution:r.exportExecution,loadParamOptions:r.loadParamOptions,...de(r),pdfFontUrl:r.pdfFontUrl??O.pdfFontUrl,theme:{...J,...r.theme},messages:{...W,...r.messages},logger:r.logger??O.logger,preview:{overscanPages:j(r.preview?.overscanPages,1,10,!0),searchDebounceMs:j(r.preview?.searchDebounceMs,200,2e3)},xlsx:{...r.xlsx},editable:r.editable??!1,excelImport:r.excelImport??!1,toolbar:{...r.toolbar},interaction:{...r.interaction},preferences:r.preferences,refresh:r.refresh,assets:r.assets,guardChanges:r.guardChanges??!0,beforeDiscard:r.beforeDiscard,output:{...r.output},printOptions:r.printOptions}}function j(a,n,l,r=!1){if(a==null||!Number.isFinite(a))return n;const i=Math.max(0,Math.min(l,a));return r?Math.floor(i):i}function fe(a){const n={};return a.emptyAccent!=null&&(n["--mrp-empty-accent"]=a.emptyAccent),a.shellBg!=null&&(n["--mrp-shell-bg"]=a.shellBg),a.shellFg!=null&&(n["--mrp-shell-fg"]=a.shellFg),a.toolbarBg!=null&&(n["--mrp-toolbar-bg"]=a.toolbarBg),a.toolbarBorder!=null&&(n["--mrp-toolbar-border"]=a.toolbarBorder),a.toolbarFg!=null&&(n["--mrp-toolbar-fg"]=a.toolbarFg),a.btnFg!=null&&(n["--mrp-btn-fg"]=a.btnFg),a.btnBorder!=null&&(n["--mrp-btn-border"]=a.btnBorder),a.btnHoverBg!=null&&(n["--mrp-btn-hover-bg"]=a.btnHoverBg),a.btnHoverFg!=null&&(n["--mrp-btn-hover-fg"]=a.btnHoverFg),a.btnActiveBg!=null&&(n["--mrp-btn-active-bg"]=a.btnActiveBg),n}function pe(a){const n=e.inject($.MACH_REPORT_CONFIG_KEY,null),l=e.computed(()=>{const r=n?.value??null,i="defaults"in a||"presets"in a||"defaultPreset"in a?Y(a):{defaults:a,presets:{}};if(!r)return i;const f={...r.presets,...i.presets};for(const v of Object.keys(f))f[v]=T(T(r.presets[v],i.defaults),i.presets[v]);return{defaults:T(r.defaults,i.defaults),presets:f,defaultPreset:i.defaultPreset??r.defaultPreset}});e.provide($.MACH_REPORT_CONFIG_KEY,l)}function me(){return e.inject($.MACH_REPORT_CONFIG_KEY,e.computed(()=>null))}class x extends Error{constructor(n,l,r){super(l),this.name="MachReportError",this.code=n,this.cause=r}}function ve(a){return a instanceof x?{code:a.code,cause:a.cause}:{code:"render",cause:a}}function ge(a){if(a instanceof x)return a;if(a instanceof M.ReportParamValidationError)return new x("param",a.message,a);if(a instanceof M.ReportSourceError)return new x(a.code,a.message,a.cause);if(a instanceof Error){const n={params:"param",config:"config",validate:"validate",fetch:"fetch"},l=a.code;if(typeof l=="string"&&Object.prototype.hasOwnProperty.call(n,l))return new x(n[l],a.message,a)}return new x("fetch",a instanceof Error?a.message:"预览加载失败",a)}let be=0;function ye(){return`mrp-params-${++be}`}function X(a,n,l){const r=(Array.isArray(n)?n.find(i=>i?.field===a.field)?.label:void 0)??a.field;return a.code==="required"?l.paramRequired.replace("{label}",r):(l.paramInvalid??"{label}:{message}").replace("{label}",r).replace("{message}",a.message)}function he(a){const n=e.ref({}),l=e.ref(!1);function r(){const s={};for(const d of Array.isArray(a.defs.value)?a.defs.value:[])typeof d?.field=="string"&&Object.defineProperty(s,d.field,{value:a.params()[d.field]??d.defaultValue??"",writable:!0,enumerable:!0,configurable:!0});n.value=s,l.value=!1}r(),e.watch(a.defs,r),e.watch(a.reportIds,r),e.watch(()=>JSON.stringify(a.params()),r);const i=e.computed(()=>M.validateReportParams(a.defs.value,{...a.params(),...n.value})),f=e.computed(()=>!l.value&&i.value.issues.length>0&&i.value.issues.every(s=>s.code==="required"));function v(){const s=i.value;if(!s.ok){const b=s.issues[0];return{quiet:f.value,error:new x(b.code==="definition"?"config":"param",X(b,a.defs.value,a.messages()),{issues:s.issues})}}const d={...s.values},C=new Set(a.defs.value.filter(b=>b.defaultValue!==void 0).map(b=>b.field));for(const[b,u]of Object.entries(d))u===""&&!C.has(b)&&delete d[b];return{params:d,quiet:!1}}return{values:n,attempted:l,validation:i,pendingRequired:f,reset:r,query:v}}const q=100,Ee=32,ke=6e4,Se=15e3;function we(a){let n=0;const l=new Set;function r(i,f){if(!Array.isArray(i)||f>16||i.length>q)throw new Error("Invalid option response");const v=new Set;return Object.freeze(i.map(s=>{if(++n>q||!s||l.has(s)||typeof s.value!="string"||!s.value||s.value.length>1024||typeof s.label!="string"||s.label.length>1024||v.has(s.value))throw new Error("Invalid option response");return l.add(s),v.add(s.value),Object.freeze({label:s.label,value:s.value,...s.children===void 0?{}:{children:r(s.children,f+1)}})}))}return r(a,1)}function Q(a){const n=e.ref(""),l=e.shallowRef([]),r=e.ref(!1),i=e.ref(!1),f=e.computed(()=>Object.fromEntries((Array.isArray(a.def().dependsOn)?a.def().dependsOn:[]).map(w=>[w,a.values()[w]??""]))),v=e.computed(()=>Object.values(f.value).some(w=>!w.trim())),s=e.computed(()=>!a.loader()),d=new Map;let C,b,u=0;function y(){u++,C?.abort(),C=void 0,clearTimeout(b),r.value=!1}async function g(){y(),i.value=!1;const w=a.loader(),P=a.def();if(!w||!P.optionsSource||v.value||a.disabled()||!a.opened())return;const R={source:P.optionsSource,field:P.field,query:n.value.trim().slice(0,256),params:Object.freeze({...f.value}),limit:q},o=JSON.stringify(R),p=d.get(o);if(p&&Date.now()-p.at<ke){d.delete(o),d.set(o,p),l.value=p.options;return}const t=u,c=new AbortController;C=c,r.value=!0;const h=setTimeout(()=>c.abort(),Se);try{const S=we(await ae.waitForOutput(w(Object.freeze({...R,signal:c.signal})),c.signal));if(t!==u)return;for(l.value=S,d.delete(o),d.set(o,{at:Date.now(),options:S});d.size>Ee;)d.delete(d.keys().next().value)}catch{t===u&&(i.value=!0)}finally{clearTimeout(h),t===u&&(r.value=!1,C=void 0)}}function k(){y(),l.value=[],i.value=!1,b=setTimeout(()=>{g()},180)}return e.watch(n,k,{flush:"sync"}),e.watch([()=>a.def().field,()=>a.def().type,()=>a.def().optionsSource,()=>JSON.stringify(f.value),a.loader],()=>{d.clear(),n.value="",y(),l.value=[],i.value=!1,a.opened()&&g()},{flush:"sync"}),e.watch([a.opened,a.disabled],()=>{!a.opened()||a.disabled()?y():g()},{immediate:!0}),e.onBeforeUnmount(()=>{y(),d.clear()}),{query:n,options:l,loading:r,failed:i,waiting:v,missingLoader:s,request:g,cancel:y}}const Ce=["aria-labelledby"],Pe=["value","disabled","aria-label","aria-invalid","aria-describedby","aria-required","onChange"],Be={value:""},Re=["value"],Ae=["id"],Oe=e.defineComponent({__name:"ReportCascaderParam",props:{def:{},value:{},values:{},loadOptions:{type:Function},messages:{},disabled:{type:Boolean},id:{},invalid:{type:Boolean}},emits:["change"],setup(a,{emit:n}){const l=a,r=n,i=Q({def:()=>l.def,values:()=>l.values,loader:()=>l.loadOptions,opened:()=>!0,disabled:()=>l.disabled===!0}),f=e.computed(()=>{const b=M.parseReportCascaderPath(l.value);if(b)return b;try{const u=JSON.parse(l.value);return Array.isArray(u)&&u.length<=16&&u[u.length-1]===null&&u.slice(0,-1).every(y=>typeof y=="string")?u.slice(0,-1):[]}catch{return[]}}),v=e.computed(()=>({...F,...l.messages})),s=e.computed(()=>{const b=[];let u=l.def.optionsSource?i.options.value:l.def.options??[];for(let y=0;y<16&&u.length;y++)b.push(u),u=u.find(g=>g.value===f.value[y])?.children??[];return b}),d=e.computed(()=>l.def.optionsSource?i.waiting.value?v.value.paramOptionsDependencies:i.missingLoader.value?v.value.paramOptionsMissingLoader:i.failed.value?v.value.paramOptionsFailed:i.loading.value?v.value.paramOptionsLoading:s.value.length?"":v.value.paramOptionsEmpty:"");function C(b,u){if(l.disabled)return;const y=f.value.slice(0,b);u&&y.push(u);const g=u?s.value[b]?.find(k=>k.value===u)?.children:s.value[b];r("change",y.length?g?.length?JSON.stringify([...y,null]):M.formatReportCascaderPath(y):"")}return(b,u)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-cascader",role:"group","aria-labelledby":`${a.id}-label`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(y,g)=>(e.openBlock(),e.createElementBlock("select",{key:g,class:"mrp-param-input",value:f.value[g]??"",disabled:a.disabled||e.unref(i).loading.value,"aria-label":`${a.def.label??a.def.field} · ${g+1}`,"aria-invalid":a.invalid||void 0,"aria-describedby":a.invalid?`${a.id}-error`:d.value?`${a.id}-status`:void 0,"aria-required":a.def.required||void 0,onChange:k=>C(g,k.target.value)},[e.createElementVNode("option",Be,e.toDisplayString(a.def.placeholder??(a.messages.paramSelectPlaceholder??"请选择{label}").replace("{label}",a.def.label??a.def.field)),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y,k=>(e.openBlock(),e.createElementBlock("option",{key:k.value,value:k.value},e.toDisplayString(k.label),9,Re))),128))],40,Pe))),128)),d.value?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${a.id}-status`,role:"status"},[e.createTextVNode(e.toDisplayString(d.value),1),e.unref(i).failed.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:u[0]||(u[0]=(...y)=>e.unref(i).request&&e.unref(i).request(...y))},e.toDisplayString(a.messages.retry),1)):e.createCommentVNode("",!0)],8,Ae)):e.createCommentVNode("",!0)],8,Ce))}}),xe=N._export_sfc(Oe,[["__scopeId","data-v-734dde49"]]),Me=["id","value","aria-labelledby","aria-invalid","aria-required","aria-describedby","aria-expanded","aria-controls","aria-activedescendant","disabled","placeholder"],De=["aria-label","disabled"],Ne=["aria-label","disabled"],Te=["id"],Fe=["id","aria-label","aria-busy","aria-multiselectable"],Le=["id","aria-selected","disabled","onPointermove","onClick"],Ie={key:0,"aria-hidden":"true",class:"mrp-option-check"},$e={key:0},qe={key:0,role:"status"},Ve=e.defineComponent({__name:"ReportRemoteParamSelect",props:{def:{},value:{},values:{},loadOptions:{type:Function},messages:{},disabled:{type:Boolean},id:{},invalid:{type:Boolean}},emits:["change"],setup(a,{emit:n}){const l=a,r=n,i=K({focusOnOpen:!1}),{root:f,panel:v,opened:s}=i,d=Q({def:()=>l.def,values:()=>l.values,loader:()=>l.loadOptions,opened:()=>s.value,disabled:()=>l.disabled===!0}),{query:C,options:b,loading:u,failed:y,waiting:g,missingLoader:k}=d,w=e.computed(()=>({...F,...l.messages})),P=e.computed(()=>l.def.type==="multiSelect"),R=e.computed(()=>P.value?M.parseReportParamSelection(l.value)??[]:[l.value]),o=e.computed(()=>l.def.optionsSource?b.value:(l.def.options??[]).filter(m=>`${m.label} ${m.value}`.toLocaleLowerCase().includes(C.value.toLocaleLowerCase())).slice(0,100)),p=new Map,t=e.computed(()=>P.value?R.value.map(m=>p.get(m)??l.def.options?.find(E=>E.value===m)?.label??m).join("、"):h.value||l.value),c=e.ref(0),h=e.ref(""),S=e.ref(),D=e.computed(()=>`${l.id}-options`),A=e.computed(()=>g.value?w.value.paramOptionsDependencies:l.def.optionsSource&&k.value?w.value.paramOptionsMissingLoader:y.value?w.value.paramOptionsFailed:u.value?w.value.paramOptionsLoading:o.value.length?"":w.value.paramOptionsEmpty);e.watch(()=>l.value,()=>{h.value=""}),e.watch(o,()=>{c.value=0}),e.watch(()=>[l.def.field,l.def.optionsSource,JSON.stringify(l.def.options)],()=>{p.clear(),h.value=""}),e.watch(s,m=>{m&&e.nextTick(()=>S.value?.focus())});function H(m){if(!(l.disabled||g.value||u.value||y.value)){p.set(m.value,m.label);for(const E of p.keys())E!==m.value&&!R.value.includes(E)&&p.delete(E);if(P.value){const E=R.value.includes(m.value)?R.value.filter(B=>B!==m.value):[...R.value,m.value];if(E.length>Math.min(l.def.maxItems??100,100))return;r("change",E.length?M.formatReportParamSelection(E):"")}else r("change",m.value),i.close();e.nextTick(()=>{h.value=m.label,S.value?.focus()})}}function G(m){m.isComposing||(s.value=!0,C.value=m.target.value)}function L(){!l.disabled&&!g.value&&(!l.def.optionsSource||!k.value)&&(C.value="",s.value=!0)}function Z(m){if(!(m.isComposing||m.keyCode===229)){if(m.key==="Escape"){s.value&&(m.preventDefault(),m.stopPropagation(),i.close());return}if(["ArrowUp","ArrowDown","Enter"].includes(m.key)){if(m.preventDefault(),m.stopPropagation(),!s.value){L();return}if(m.key==="Enter"){const E=o.value[c.value];E&&H(E);return}o.value.length&&(c.value=(c.value+(m.key==="ArrowDown"?1:-1)+o.value.length)%o.value.length,e.nextTick(()=>v.value?.querySelector(`[id="${D.value}-${c.value}"]`)?.scrollIntoView?.({block:"nearest"})))}}}function _(){l.disabled||(r("change",""),h.value="",i.close())}return(m,E)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:f,class:"mrp-remote-param"},[e.createElementVNode("div",{class:e.normalizeClass(["mrp-remote-control",{"is-invalid":a.invalid}])},[e.createVNode(N._sfc_main,{name:"search",size:14}),e.createElementVNode("input",{id:a.id,ref_key:"input",ref:S,type:"text",role:"combobox",autocomplete:"off",value:e.unref(s)?e.unref(C):t.value,maxlength:256,"aria-labelledby":`${a.id}-label`,"aria-invalid":a.invalid||void 0,"aria-required":a.def.required||void 0,"aria-describedby":a.invalid?`${a.id}-error`:e.unref(g)||a.def.optionsSource&&e.unref(k)?`${a.id}-remote-status`:void 0,"aria-autocomplete":"list","aria-expanded":e.unref(s),"aria-controls":e.unref(s)?D.value:void 0,"aria-activedescendant":e.unref(s)&&o.value.length?`${D.value}-${c.value}`:void 0,disabled:a.disabled||e.unref(g)||!!a.def.optionsSource&&e.unref(k),placeholder:a.def.placeholder??(a.messages.paramSelectPlaceholder??"请选择{label}").replace("{label}",a.def.label??a.def.field),onClick:L,onInput:G,onCompositionend:G,onKeydown:Z},null,40,Me),a.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":w.value.paramOptionsClear,disabled:a.disabled,onClick:_},[e.createVNode(N._sfc_main,{name:"close",size:12})],8,De)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","aria-label":a.def.label??a.def.field,disabled:a.disabled||e.unref(g)||!!a.def.optionsSource&&e.unref(k),onClick:E[0]||(E[0]=B=>e.unref(s)?e.unref(i).close():L())},[e.createVNode(N._sfc_main,{name:"chevron-down",size:12})],8,Ne))],2),e.unref(g)||a.def.optionsSource&&e.unref(k)?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${a.id}-remote-status`,role:"status"},e.toDisplayString(A.value),9,Te)):e.createCommentVNode("",!0),e.unref(s)?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"panel",ref:v,class:"mrp-remote-options"},[e.createElementVNode("div",{id:D.value,role:"listbox","aria-label":a.def.label??a.def.field,"aria-busy":e.unref(u),"aria-multiselectable":P.value||void 0},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(B,I)=>(e.openBlock(),e.createElementBlock("button",{id:`${D.value}-${I}`,key:B.value,type:"button",role:"option",tabindex:"-1","aria-selected":R.value.includes(B.value),class:e.normalizeClass({active:I===c.value}),disabled:e.unref(u),onPointermove:ee=>c.value=I,onMousedown:E[1]||(E[1]=e.withModifiers(()=>{},["prevent"])),onClick:ee=>H(B)},[e.createElementVNode("span",null,[P.value?(e.openBlock(),e.createElementBlock("span",Ie,e.toDisplayString(R.value.includes(B.value)?"✓":""),1)):e.createCommentVNode("",!0),e.createTextVNode(e.toDisplayString(B.label),1)]),B.label!==B.value?(e.openBlock(),e.createElementBlock("small",$e,e.toDisplayString(B.value),1)):e.createCommentVNode("",!0)],42,Le))),128))],8,Fe),A.value?(e.openBlock(),e.createElementBlock("p",qe,[e.createTextVNode(e.toDisplayString(A.value),1),e.unref(y)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:E[2]||(E[2]=(...B)=>e.unref(d).request&&e.unref(d).request(...B))},e.toDisplayString(a.messages.retry),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0)],512))}}),Ue=N._export_sfc(Ve,[["__scopeId","data-v-6ad41cf4"]]),He={key:0,class:"mrp-params-title"},Ge={class:"mrp-params-grid"},je=["id"],ze={key:0,class:"mrp-param-star","aria-hidden":"true"},Ke=["value","disabled","aria-labelledby","aria-invalid","aria-describedby","aria-required","onChange"],We=["disabled","hidden"],Je=["value"],Ye=["aria-labelledby"],Xe=["type","step","value","disabled","min","max","aria-label","aria-invalid","aria-describedby","aria-required","onInput"],Qe=["type","inputmode","maxlength","placeholder","value","disabled","min","max","step","aria-labelledby","aria-invalid","aria-describedby","aria-required","onInput"],Ze=["id"],_e={key:1,class:"mrp-params-actions"},ea=["disabled"],aa=["disabled"],ta=e.defineComponent({__name:"ReportParamPanel",props:{defs:{},modelValue:{},messages:{},attempted:{type:Boolean},issues:{default:void 0},showActions:{type:Boolean,default:!0},showTitle:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},loadOptions:{type:Function,default:void 0}},emits:["update:modelValue","query","reset"],setup(a,{expose:n,emit:l}){const r=a,i=l,f=e.ref({...r.modelValue}),v=e.ref(null),s=ye();e.watch(()=>r.modelValue,o=>{f.value={...o}});const d=e.computed(()=>r.issues??M.validateReportParams(r.defs,f.value).issues),C=e.computed(()=>(Array.isArray(r.defs)?r.defs:[]).filter(o=>o&&typeof o.field=="string").map((o,p)=>({def:o,id:`${s}-${p}`,label:o.label??o.field,value:f.value[o.field]??"",error:r.attempted?d.value.find(t=>t.field===o.field):void 0}))),b=e.computed(()=>{const o=new Map;for(const p of r.defs)for(const t of Array.isArray(p.dependsOn)?p.dependsOn:[]){const c=o.get(t)??[];c.push(p.field),o.set(t,c)}return o});function u(o,p){if(r.disabled||f.value[o]===p)return;f.value={...f.value,[o]:p};const t=new Set([o]),c=[o];for(let h=0;h<c.length;h++)for(const S of b.value.get(c[h])??[])t.has(S)||(f.value[S]="",t.add(S),c.push(S));i("update:modelValue",{...f.value})}function y(o){return o.type==="number"?"number":o.type==="date"||o.type==="month"?o.type:"text"}function g(o,p,t=!1){if(!t)return o.split("/")[p]??"";try{const c=JSON.parse(o);return Array.isArray(c)&&(typeof c[p]=="number"||typeof c[p]=="string")?String(c[p]):""}catch{return""}}function k(o,p,t){return t?!!g(o,0)!=!!g(o,1)?!g(o,p)||void 0:!0:void 0}function w(o,p,t){const c=o.type==="numberRange",h=f.value[o.field]??"",S=[g(h,0,c),g(h,1,c)];S[p]=t;const D=c?JSON.stringify(S.map(A=>A===""?null:Number(A))):S.join("/");u(o.field,S.every(A=>!A)?"":D)}function P(o){o.isComposing||i("query")}function R(){v.value?.querySelector('[aria-invalid="true"]')?.focus()}return n({focusInvalid:R}),(o,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:v,class:"mrp-params"},[a.showTitle!==!1?(e.openBlock(),e.createElementBlock("span",He,e.toDisplayString(a.messages.paramsTitle),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,t=>(e.openBlock(),e.createElementBlock("label",{key:t.id,class:e.normalizeClass(["mrp-param",{"mrp-param-missing":!!t.error}])},[e.createElementVNode("span",{id:`${t.id}-label`,class:"mrp-param-label"},[e.createTextVNode(e.toDisplayString(t.label),1),t.def.required?(e.openBlock(),e.createElementBlock("i",ze,"*")):e.createCommentVNode("",!0)],8,je),t.def.type==="cascader"?(e.openBlock(),e.createBlock(xe,{key:0,id:t.id,def:t.def,value:t.value,values:f.value,"load-options":a.loadOptions,messages:a.messages,disabled:a.disabled,invalid:!!t.error,onChange:c=>u(t.def.field,c)},null,8,["id","def","value","values","load-options","messages","disabled","invalid","onChange"])):t.def.optionsSource||t.def.type==="multiSelect"?(e.openBlock(),e.createBlock(Ue,{key:1,id:t.id,def:t.def,value:t.value,values:f.value,"load-options":a.loadOptions,messages:a.messages,disabled:a.disabled,invalid:!!t.error,onChange:c=>u(t.def.field,c)},null,8,["id","def","value","values","load-options","messages","disabled","invalid","onChange"])):(t.def.type??"text")==="select"?(e.openBlock(),e.createElementBlock("select",{key:2,class:"mrp-param-input",value:t.value,disabled:a.disabled,"aria-labelledby":`${t.id}-label`,"aria-invalid":t.error?!0:void 0,"aria-describedby":t.error?`${t.id}-error`:void 0,"aria-required":t.def.required||void 0,onChange:c=>u(t.def.field,c.target.value),onKeydown:e.withKeys(P,["enter"])},[e.createElementVNode("option",{value:"",disabled:t.def.required,hidden:t.def.required},e.toDisplayString(t.def.placeholder??(a.messages.paramSelectPlaceholder??"请选择{label}").replace("{label}",t.label)),9,We),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.def.options??[],c=>(e.openBlock(),e.createElementBlock("option",{key:c.value,value:c.value},e.toDisplayString(c.label),9,Je))),128))],40,Ke)):t.def.type==="dateRange"||t.def.type==="numberRange"?(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-param-range",role:"group","aria-labelledby":`${t.id}-label`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.def.type==="numberRange"?[a.messages.paramNumberRangeStart??"最小值",a.messages.paramNumberRangeEnd??"最大值"]:[a.messages.paramRangeStart??"开始日期",a.messages.paramRangeEnd??"结束日期"],(c,h)=>(e.openBlock(),e.createElementBlock("input",{key:h,class:"mrp-param-input",type:t.def.type==="numberRange"?"number":"date",step:t.def.type==="numberRange"?"any":void 0,value:g(t.value,h,t.def.type==="numberRange"),disabled:a.disabled,min:t.def.min,max:t.def.max,"aria-label":`${t.label} · ${c}`,"aria-invalid":t.def.type==="numberRange"?!!t.error||void 0:k(t.value,h,t.error),"aria-describedby":t.error?`${t.id}-error`:void 0,"aria-required":t.def.required||void 0,onInput:S=>w(t.def,h,S.target.value),onKeydown:e.withKeys(P,["enter"])},null,40,Xe))),128))],8,Ye)):(e.openBlock(),e.createElementBlock("input",{key:4,class:"mrp-param-input",type:y(t.def),inputmode:t.def.type==="year"?"numeric":void 0,maxlength:t.def.type==="year"?4:void 0,placeholder:t.def.placeholder??(a.messages.paramTextPlaceholder??"请输入{label}").replace("{label}",t.label),value:t.value,disabled:a.disabled,min:t.def.min,max:t.def.max,step:t.def.type==="number"?"any":void 0,"aria-labelledby":`${t.id}-label`,"aria-invalid":t.error?!0:void 0,"aria-describedby":t.error?`${t.id}-error`:void 0,"aria-required":t.def.required||void 0,onInput:c=>u(t.def.field,c.target.value),onKeydown:e.withKeys(P,["enter"])},null,40,Qe)),t.error?(e.openBlock(),e.createElementBlock("small",{key:5,id:`${t.id}-error`,class:"mrp-param-error",role:"status"},e.toDisplayString(e.unref(X)(t.error,a.defs,a.messages)),9,Ze)):e.createCommentVNode("",!0)],2))),128))]),a.showActions!==!1?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("button",{class:"mrp-nav mrp-param-query",type:"button",disabled:a.disabled,onClick:p[0]||(p[0]=t=>o.$emit("query"))},e.toDisplayString(a.messages.query),9,ea),e.createElementVNode("button",{class:"mrp-nav",type:"button",disabled:a.disabled,onClick:p[1]||(p[1]=t=>o.$emit("reset"))},e.toDisplayString(a.messages.reset),9,aa)])):e.createCommentVNode("",!0)],512))}}),na=N._export_sfc(ta,[["__scopeId","data-v-e74206d7"]]);exports.DEFAULT_CALCULATION_MESSAGES=U;exports.DEFAULT_DATA_REVIEW_MESSAGES=V;exports.DEFAULT_MESSAGES=W;exports.DEFAULT_PRINT_MESSAGES=z;exports.DEFAULT_THEME=J;exports.MachReportError=x;exports.PARAM_OPTIONS_MESSAGES=F;exports.ReportParamPanel=na;exports.SILENT_LOGGER=ie;exports.defineMachReportConfig=Y;exports.defineMachReportPreset=oe;exports.normalizeReportLoadError=ge;exports.printCalibration=te;exports.provideMachReportConfig=pe;exports.resolveCalculationMessages=re;exports.resolveConfig=ue;exports.resolveDataReviewMessages=le;exports.snapshotPrintOptions=ne;exports.themeToCssVars=fe;exports.toErrorDetail=ve;exports.useMachReportConfig=me;exports.usePopover=K;exports.useReportParams=he;
|