@agile-team/mach-report 2.5.0 → 2.6.1

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.
Files changed (84) hide show
  1. package/README.md +91 -14
  2. package/dist/ReportPreview-Dk-28QAi.js +2946 -0
  3. package/dist/ReportPreview-FSvcBLjH.cjs +6 -0
  4. package/dist/_plugin-vue_export-helper-BHFhmbuH.cjs +1 -0
  5. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  6. package/dist/analytics.cjs +1 -0
  7. package/dist/analytics.d.cts +276 -0
  8. package/dist/analytics.d.ts +276 -0
  9. package/dist/analytics.js +223 -0
  10. package/dist/assets-66UBlhES.cjs +1 -0
  11. package/dist/assets-NVA_sftu.js +163 -0
  12. package/dist/capabilities-CNjIirfo.js +36 -0
  13. package/dist/capabilities-D4xeVYSR.cjs +1 -0
  14. package/dist/designer.cjs +1 -0
  15. package/dist/designer.d.cts +753 -0
  16. package/dist/designer.d.ts +753 -0
  17. package/dist/designer.js +372 -0
  18. package/dist/grid-geometry-BNptEcMm.js +65 -0
  19. package/dist/grid-geometry-CZ_cYB6O.cjs +1 -0
  20. package/dist/index.cjs +8 -5
  21. package/dist/index.d.cts +413 -8
  22. package/dist/index.d.ts +413 -8
  23. package/dist/index.js +1016 -1501
  24. package/dist/param-validation-BWNjLcN0.js +116 -0
  25. package/dist/param-validation-CiTxFeZ8.cjs +1 -0
  26. package/dist/pdf.cjs +48 -48
  27. package/dist/pdf.d.cts +111 -1
  28. package/dist/pdf.d.ts +111 -1
  29. package/dist/pdf.js +3931 -3868
  30. package/dist/{plugin-DMPLDpBY.cjs → plugin-BqBkn_kI.cjs} +1 -1
  31. package/dist/{plugin-DDLcFWlk.js → plugin-Ds10VnQO.js} +2 -2
  32. package/dist/render-plan-CckPEQyf.cjs +1 -0
  33. package/dist/{render-plan-CXBWRog4.js → render-plan-uzZYYSy1.js} +11 -10
  34. package/dist/report-params-B_VCihAh.js +12 -0
  35. package/dist/report-params-CjWrjPl6.cjs +1 -0
  36. package/dist/report-source-B9bENO0F.js +750 -0
  37. package/dist/report-source-BbNkkBDy.cjs +1 -0
  38. package/dist/server/node.d.cts +297 -0
  39. package/dist/server/node.d.ts +297 -0
  40. package/dist/server-node.cjs +1 -0
  41. package/dist/server-node.js +270 -0
  42. package/dist/server.cjs +1 -0
  43. package/dist/server.d.cts +643 -0
  44. package/dist/server.d.ts +643 -0
  45. package/dist/server.js +237 -0
  46. package/dist/style-CpwiOPyB.cjs +1 -0
  47. package/dist/style-Dv5o_x6b.js +67 -0
  48. package/dist/style.css +1 -1
  49. package/dist/template-registry-DWExx0gU.cjs +1 -0
  50. package/dist/template-registry-NpOakidD.js +354 -0
  51. package/dist/textwrap-CnGsEum6.cjs +4 -0
  52. package/dist/textwrap-DOl04hCQ.js +110 -0
  53. package/dist/validate-DfHPD8wX.cjs +1 -0
  54. package/dist/validate-S6CgIm5d.js +148 -0
  55. package/dist/vue/async.d.cts +602 -57
  56. package/dist/vue/async.d.ts +602 -57
  57. package/dist/vue/index.d.cts +1074 -111
  58. package/dist/vue/index.d.ts +1074 -111
  59. package/dist/vue-async.cjs +1 -1
  60. package/dist/vue-async.js +3 -3
  61. package/dist/vue.cjs +1 -1
  62. package/dist/vue.js +167 -82
  63. package/dist/worker.cjs +1 -0
  64. package/dist/worker.d.cts +302 -0
  65. package/dist/worker.d.ts +302 -0
  66. package/dist/worker.js +133 -0
  67. package/dist/xlsx/node.d.cts +47 -0
  68. package/dist/xlsx/node.d.ts +47 -0
  69. package/dist/xlsx-node.cjs +221 -0
  70. package/dist/xlsx-node.js +36409 -0
  71. package/dist/xlsx.cjs +20 -20
  72. package/dist/xlsx.d.cts +78 -1
  73. package/dist/xlsx.d.ts +78 -1
  74. package/dist/xlsx.js +5974 -5831
  75. package/package.json +62 -2
  76. package/dist/ReportPreview-CBKLI--k.js +0 -2188
  77. package/dist/ReportPreview-ClM8h0pM.cjs +0 -6
  78. package/dist/grid-geometry-BNIvw52m.cjs +0 -1
  79. package/dist/grid-geometry-C8hGoe9o.js +0 -130
  80. package/dist/render-plan-CCTL4F9v.cjs +0 -1
  81. package/dist/report-params-B3Fia6JO.js +0 -10
  82. package/dist/report-params-D1gZ1DME.cjs +0 -1
  83. package/dist/textwrap-nH0UYU6D.js +0 -108
  84. package/dist/textwrap-oD-t4b4B.cjs +0 -4
@@ -0,0 +1,36 @@
1
+ import { b as k, i as m } from "./render-plan-uzZYYSy1.js";
2
+ const v = /* @__PURE__ */ new Set(["text", "rect", "line", "ellipse"]), D = /* @__PURE__ */ new Set(["image", "chart", "barcode", "qrcode"]);
3
+ function S(e, t) {
4
+ if (!e.grid) {
5
+ if (m(e))
6
+ return t === "xlsx" ? { code: "unsupported-component", message: "XLSX data export omits image-backed components; use PDF or PNG for visual output." } : t === "pdf" && !/^data:image\/(png|jpe?g);base64,/i.test(e.imageData) ? { code: "unsupported-image-format", message: "PDF accepts PNG or JPEG data URLs; convert this image before exporting." } : void 0;
7
+ if (D.has(e.kind)) return { code: "missing-image", message: `${e.kind} requires imageData or a renderer adapter before output.` };
8
+ if (!v.has(e.kind)) return { code: "unsupported-component", message: `Unsupported component kind: ${e.kind}.` };
9
+ if (t === "xlsx" && e.kind !== "text") return { code: "unsupported-component", message: `XLSX data export omits ${e.kind} geometry.` };
10
+ }
11
+ }
12
+ function d(e, t, i, n, s) {
13
+ return { ...s, severity: "warning", format: t, pageIndex: i, componentIndex: n, kind: e.kind, nid: e.nid };
14
+ }
15
+ function l(e, t, i, n, s, r, o) {
16
+ if (o.has(e)) return;
17
+ const f = new Set(o).add(e), a = S(e, t);
18
+ a && r.push({ ...d(e, t, i, n, a), componentPath: s }), k(e) && t !== "dom" && r.push(d(e, t, i, n, { code: "rich-text-flattened", message: "Rich text is exported as plain text; inline styles are not preserved." }));
19
+ for (const [u, p] of (e.grid?.cells ?? []).entries()) for (const [c, g] of p.entries())
20
+ if (g?.children?.length && t !== "dom")
21
+ r.push({ ...d(e, t, i, n, { code: "nested-components-omitted", message: "Nested grid components are omitted; cell text is preserved." }), componentPath: [...s, u, c] });
22
+ else if (t === "dom")
23
+ for (const [h, x] of (g?.children ?? []).entries()) l(x, t, i, n, [...s, u, c, h], r, f);
24
+ }
25
+ function b(e, t) {
26
+ const i = [];
27
+ return e.pages.forEach((n, s) => n.components.forEach((r, o) => l(r, t, s, o, [], i, /* @__PURE__ */ new Set()))), i;
28
+ }
29
+ function E(e, t, i) {
30
+ const n = b(e, t);
31
+ return n.forEach((s) => i.onDiagnostic?.(s)), n;
32
+ }
33
+ export {
34
+ b as i,
35
+ E as r
36
+ };
@@ -0,0 +1 @@
1
+ "use strict";const l=require("./render-plan-CckPEQyf.cjs"),m=new Set(["text","rect","line","ellipse"]),v=new Set(["image","chart","barcode","qrcode"]);function S(e,t){if(!e.grid){if(l.isImageBackedComponent(e))return t==="xlsx"?{code:"unsupported-component",message:"XLSX data export omits image-backed components; use PDF or PNG for visual output."}:t==="pdf"&&!/^data:image\/(png|jpe?g);base64,/i.test(e.imageData)?{code:"unsupported-image-format",message:"PDF accepts PNG or JPEG data URLs; convert this image before exporting."}:void 0;if(v.has(e.kind))return{code:"missing-image",message:`${e.kind} requires imageData or a renderer adapter before output.`};if(!m.has(e.kind))return{code:"unsupported-component",message:`Unsupported component kind: ${e.kind}.`};if(t==="xlsx"&&e.kind!=="text")return{code:"unsupported-component",message:`XLSX data export omits ${e.kind} geometry.`}}}function d(e,t,i,n,s){return{...s,severity:"warning",format:t,pageIndex:i,componentIndex:n,kind:e.kind,nid:e.nid}}function p(e,t,i,n,s,r,o){if(o.has(e))return;const h=new Set(o).add(e),u=S(e,t);u&&r.push({...d(e,t,i,n,u),componentPath:s}),l.isRichText(e)&&t!=="dom"&&r.push(d(e,t,i,n,{code:"rich-text-flattened",message:"Rich text is exported as plain text; inline styles are not preserved."}));for(const[a,x]of(e.grid?.cells??[]).entries())for(const[c,g]of x.entries())if(g?.children?.length&&t!=="dom")r.push({...d(e,t,i,n,{code:"nested-components-omitted",message:"Nested grid components are omitted; cell text is preserved."}),componentPath:[...s,a,c]});else if(t==="dom")for(const[k,D]of(g?.children??[]).entries())p(D,t,i,n,[...s,a,c,k],r,h)}function f(e,t){const i=[];return e.pages.forEach((n,s)=>n.components.forEach((r,o)=>p(r,t,s,o,[],i,new Set))),i}function b(e,t,i){const n=f(e,t);return n.forEach(s=>i.onDiagnostic?.(s)),n}exports.inspectOutputCapabilities=f;exports.reportOutputDiagnostics=b;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),M=require("@agile-team/mach-report/vue"),d=require("@agile-team/mach-report"),z=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),x={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:"请先修正模板错误,再预览或保存。"};function J(o,T){const i=e.ref(d.parseReportTemplate(o.modelValue)),V=e.ref(d.serializeReportTemplate(i.value)),s=e.ref(0),h=e.ref(d.serializeReportTemplate(i.value)),y=e.ref(""),v=e.ref(!1),R=e.computed(()=>({...x,...o.messages})),E=e.computed(()=>({showExport:!1,showPrint:!1,showPdfWindow:!1,...o.preview,theme:{shellBg:"#f1f5f9",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e2e8f0",toolbarFg:"#334155",btnFg:"#475569",btnBorder:"#cbd5e1",btnHoverBg:"#eff6ff",btnHoverFg:"#1d4ed8",btnActiveBg:"#2563eb",...o.preview?.theme}}));M.provideMachReportConfig({get defaults(){return E.value}});let S,b=0;const D=e.computed(()=>d.validateReportTemplateDocument(i.value)),w=e.computed(()=>{try{return d.serializeReportTemplate(i.value)!==V.value}catch{return!0}}),B=e.computed(()=>i.value.template.pages.flatMap((n,r)=>n.components.flatMap((l,c)=>l.kind==="list"?[{component:l,pageIndex:r,componentIndex:c}]:[]))),t=e.computed(()=>B.value[s.value]?.component),N=e.computed(()=>{const n=t.value;if(!n)return[];const r=n.columns.map(l=>l.headerStyle?.align??l.headerAlign??n.headerStyle?.align??n.headerAlign??l.style?.align??"center");if(n.headerGrid&&D.value.ok)for(const l of d.resolveGridLayout(n.headerGrid,n.widthMm,100).cells)for(let c=l.ci;c<l.ci+(l.cell.colSpan??1);c++)r[c]=l.cell.style?.align??"left";return r}),C=e.computed(()=>D.value.ok?M.createLocalFetcher({draft:{template:i.value.template,datasets:o.datasets??{},params:[]}}):void 0);function _(){b++,S?.abort(),S=void 0,v.value=!1}e.watch(()=>o.modelValue,n=>{const r=d.parseReportTemplate(n);try{if(d.serializeReportTemplate(r)===d.serializeReportTemplate(i.value))return}catch{}_(),i.value=r,V.value=d.serializeReportTemplate(r),h.value=V.value,y.value="",s.value=0}),e.onBeforeUnmount(_);function u(){y.value="",D.value.ok&&(h.value=d.serializeReportTemplate(i.value),T("update:modelValue",d.parseReportTemplate(i.value)))}function a(n){o.readonly||v.value||(i.value.name=n,u())}function f(n){o.readonly||v.value||(i.value.description=n,u())}function p(n,r,l){if(o.readonly||v.value)return;const c=t.value?.columns[n];c&&(Object.assign(c,{[r]:r==="widthMm"?Number(l):l}),r==="header"&&j(n,String(l)),r==="headerAlign"&&G(n,l),r==="widthMm"&&A(),u())}function A(){const n=B.value[s.value];if(!n)return;const r=n.component,l=i.value.template.pages[n.pageIndex],c=r.columns.map(m=>m.widthMm);r.headerGrid&&(r.headerGrid.colWidthsMm=c),l.layout==="wide"&&c.every(m=>Number.isFinite(m)&&m>0)&&(r.widthMm=c.reduce((m,g)=>m+g,0),l.widthMm=Math.max(...l.components.map(m=>m.leftMm+m.widthMm))+(l.marginRightMm??0))}function j(n,r){const l=t.value;if(!l?.headerGrid)return;const m=d.resolveGridLayout(l.headerGrid,l.widthMm,100).cells.filter(({ci:g,cell:k})=>g<=n&&g+(k.colSpan??1)>n).slice(-1)[0];m&&(Object.assign(m.cell,{text:r,rawText:r,value:r}),l.columns.slice(m.ci,m.ci+(m.cell.colSpan??1)).forEach(g=>{g.header=r}))}function G(n,r){const l=t.value,c=l?.columns[n];if(c?.headerStyle?.align!==void 0&&(c.headerStyle={...c.headerStyle,align:r}),!l?.headerGrid)return;const g=d.resolveGridLayout(l.headerGrid,l.widthMm,100).cells.filter(({ci:k,cell:O})=>k<=n&&k+(O.colSpan??1)>n).slice(-1)[0];g&&(g.cell.style={...g.cell.style,align:r},l.columns.slice(g.ci,g.ci+(g.cell.colSpan??1)).forEach(k=>{k.headerAlign=r,k.headerStyle?.align!==void 0&&(k.headerStyle={...k.headerStyle,align:r})}))}function L(){if(!(o.readonly||v.value))try{const n=d.parseReportTemplate(h.value);if(n.id!==i.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(n.revision!==i.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");i.value=n,s.value=0,u()}catch(n){y.value=n instanceof Error?n.message:String(n)}}function F(){v.value||o.readonly||(i.value=d.parseReportTemplate(V.value),h.value=V.value,y.value="",T("update:modelValue",d.parseReportTemplate(i.value)))}async function I(){if(!o.save||o.readonly||v.value||!D.value.ok)return;const n=++b;S=new AbortController,v.value=!0,y.value="";const r=d.parseReportTemplate(i.value);try{const l=d.parseReportTemplate(await o.save(r,{expectedRevision:r.revision,signal:S.signal}));if(n!==b)return;if(l.id!==r.id)throw new Error("保存服务返回了其他模板的文档");i.value=l,V.value=d.serializeReportTemplate(l),h.value=V.value,T("saved",d.parseReportTemplate(l)),T("update:modelValue",d.parseReportTemplate(l))}catch(l){n===b&&(y.value=l instanceof Error?l.message:String(l))}finally{n===b&&(v.value=!1,S=void 0)}}return{draft:i,json:h,selected:s,error:y,saving:v,dirty:w,validation:D,lists:B,activeList:t,headerAlignments:N,previewOptions:E,fetcher:C,messages:R,setName:a,setDescription:f,setColumn:p,applyJson:L,reset:F,save:I}}const P=["aria-label"],H={class:"mr-designer-bar"},q={key:0},U=["disabled"],W=["disabled"],$={class:"mr-designer-body"},K={class:"mr-designer-panel"},Q=["value","disabled"],X=["value","disabled"],Y={key:0},Z=["value"],ee={key:1,class:"mr-designer-columns"},te=["disabled"],ne=["value","onInput"],le=["value","onChange"],re=["value","onChange"],ae=["value","onChange"],oe={value:"identifier"},ie={value:"dimension"},se={value:"measure"},ue={value:"date"},de={value:"text"},ce=["value","onChange"],me={value:"auto"},fe={value:"left"},pe={value:"center"},ve={value:"right"},ge={value:"justify"},he=["value","onChange"],ye={value:"left"},Ee={value:"center"},Ve={value:"right"},be={value:"justify"},Ne={class:"mr-designer-toggle"},Se=["checked","onChange"],_e=["aria-label","disabled"],ke=["disabled"],De={class:"mr-designer-note"},Te={class:"mr-designer-preview"},Be={key:0,role:"alert",class:"mr-designer-error"},we={key:1,role:"alert",class:"mr-designer-error"},Re={key:3,class:"mr-designer-note"},Ce=e.defineComponent({__name:"ReportTemplateEditor",props:{modelValue:{},datasets:{},readonly:{type:Boolean},messages:{},preview:{},save:{type:Function}},emits:["update:modelValue","saved"],setup(o,{emit:T}){const i=o,V=T,s=J(i,(_,u)=>{V(_==="saved"?"saved":"update:modelValue",u)}),{draft:h,json:y,selected:v,error:R,saving:E,dirty:S,validation:b,lists:D,activeList:w,fetcher:B,messages:t}=s;function N(_){return _.target.value}function C(_){return _.target.checked}return(_,u)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(t).title},[e.createElementVNode("header",H,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).heading),1),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(h).id)+" · "+e.toDisplayString(e.unref(h).revision||e.unref(t).unpublished),1),e.unref(S)?(e.openBlock(),e.createElementBlock("b",q," · "+e.toDisplayString(e.unref(t).dirty),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",disabled:o.readonly||e.unref(E)||!e.unref(S),onClick:u[0]||(u[0]=(...a)=>e.unref(s).reset&&e.unref(s).reset(...a))},e.toDisplayString(e.unref(t).reset),9,U),o.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:o.readonly||e.unref(E)||!e.unref(b).ok||!e.unref(S),onClick:u[1]||(u[1]=(...a)=>e.unref(s).save&&e.unref(s).save(...a))},e.toDisplayString(e.unref(E)?e.unref(t).saving:e.unref(t).save),9,W)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",$,[e.createElementVNode("aside",K,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).name),1),e.createElementVNode("input",{value:e.unref(h).name,disabled:o.readonly||e.unref(E),onInput:u[2]||(u[2]=a=>e.unref(s).setName(N(a)))},null,40,Q)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).description),1),e.createElementVNode("textarea",{value:e.unref(h).description,disabled:o.readonly||e.unref(E),onInput:u[3]||(u[3]=a=>e.unref(s).setDescription(N(a)))},null,40,X)]),e.unref(D).length?(e.openBlock(),e.createElementBlock("label",Y,[e.createTextVNode(e.toDisplayString(e.unref(t).area),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":u[4]||(u[4]=a=>e.isRef(v)?v.value=a:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(D),(a,f)=>(e.openBlock(),e.createElementBlock("option",{key:f,value:f},e.toDisplayString(a.pageIndex+1)+" "+e.toDisplayString(e.unref(t).page)+" · "+e.toDisplayString(a.component.title||a.component.dataset),9,Z))),128))],512),[[e.vModelSelect,e.unref(v)]])])):e.createCommentVNode("",!0),e.unref(w)?(e.openBlock(),e.createElementBlock("div",ee,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w).columns,(a,f)=>(e.openBlock(),e.createElementBlock("fieldset",{key:f,disabled:o.readonly||e.unref(E)},[e.createElementVNode("legend",null,e.toDisplayString(f+1)+" · "+e.toDisplayString(a.header),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).header),1),e.createElementVNode("input",{value:a.header,onInput:p=>e.unref(s).setColumn(f,"header",N(p))},null,40,ne)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).field),1),e.createElementVNode("input",{value:a.field,onChange:p=>e.unref(s).setColumn(f,"field",N(p))},null,40,le)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:a.widthMm,onChange:p=>e.unref(s).setColumn(f,"widthMm",N(p))},null,40,re)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).semantic),1),e.createElementVNode("select",{value:a.semanticRole||"text",onChange:p=>e.unref(s).setColumn(f,"semanticRole",N(p))},[e.createElementVNode("option",oe,e.toDisplayString(e.unref(t).identifier),1),e.createElementVNode("option",ie,e.toDisplayString(e.unref(t).dimension),1),e.createElementVNode("option",se,e.toDisplayString(e.unref(t).measure),1),e.createElementVNode("option",ue,e.toDisplayString(e.unref(t).date),1),e.createElementVNode("option",de,e.toDisplayString(e.unref(t).text),1)],40,ae)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).bodyAlign),1),e.createElementVNode("select",{value:a.align??a.style?.align??e.unref(w).align??"left",onChange:p=>e.unref(s).setColumn(f,"align",N(p))},[e.createElementVNode("option",me,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",fe,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",pe,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",ve,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",ge,e.toDisplayString(e.unref(t).justify),1)],40,ce)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).headerAlign),1),e.createElementVNode("select",{value:e.unref(s).headerAlignments.value[f],onChange:p=>e.unref(s).setColumn(f,"headerAlign",N(p))},[e.createElementVNode("option",ye,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",Ee,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Ve,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",be,e.toDisplayString(e.unref(t).justify),1)],40,he)]),e.createElementVNode("label",Ne,[e.createTextVNode(e.toDisplayString(e.unref(t).editable),1),e.createElementVNode("input",{type:"checkbox",checked:a.editable===!0,onChange:p=>e.unref(s).setColumn(f,"editable",C(p))},null,40,Se)])],8,te))),128))])):e.createCommentVNode("",!0),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(t).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":u[5]||(u[5]=a=>e.isRef(y)?y.value=a:null),class:"mr-designer-json","aria-label":e.unref(t).json,disabled:o.readonly||e.unref(E),spellcheck:"false"},null,8,_e),[[e.vModelText,e.unref(y)]]),e.createElementVNode("button",{type:"button",disabled:o.readonly||e.unref(E),onClick:u[6]||(u[6]=(...a)=>e.unref(s).applyJson&&e.unref(s).applyJson(...a))},e.toDisplayString(e.unref(t).applyJson),9,ke)]),e.createElementVNode("p",De,e.toDisplayString(e.unref(t).note),1)]),e.createElementVNode("div",Te,[e.unref(R)?(e.openBlock(),e.createElementBlock("div",Be,e.toDisplayString(e.unref(R)),1)):e.createCommentVNode("",!0),e.unref(b).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",we,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b).errors,a=>(e.openBlock(),e.createElementBlock("li",{key:a.path},e.toDisplayString(a.path)+":"+e.toDisplayString(a.message),1))),128))])),e.unref(B)&&e.unref(b).ok?(e.openBlock(),e.createBlock(e.unref(M.ReportPreview),{key:2,"report-id":"draft",fetcher:e.unref(B),"show-params":!1,editable:!1,"excel-import":!1},null,8,["fetcher"])):(e.openBlock(),e.createElementBlock("p",Re,e.toDisplayString(e.unref(t).invalid),1))])])],8,P))}}),Me=z._export_sfc(Ce,[["__scopeId","data-v-5c39594b"]]);exports.ReportTemplateEditor=Me;exports.TEMPLATE_EDITOR_MESSAGES=x;