@agile-team/mach-report 2.8.2 → 2.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/designer.cjs +1 -1
- package/dist/designer.js +427 -426
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
<img src="https://img.shields.io/badge/source-2.8.
|
|
11
|
+
<img src="https://img.shields.io/badge/source-2.8.3-2563eb" alt="Source version 2.8.3" />
|
|
12
12
|
<a href="https://www.npmjs.com/package/@agile-team/mach-report"><img src="https://img.shields.io/npm/v/@agile-team/mach-report?label=npm&color=3178c6" alt="npm version" /></a>
|
|
13
13
|
<a href="https://github.com/ChenyCHENYU/MachReport/actions/workflows/ci.yml"><img src="https://github.com/ChenyCHENYU/MachReport/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
14
14
|
<a href="https://github.com/ChenyCHENYU/MachReport/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-authorization%20required-dc2626" alt="Authorization required" /></a>
|
|
@@ -605,7 +605,7 @@ CI 使用同一套校验命令,并在构建后检查实际发布产物。协
|
|
|
605
605
|
|
|
606
606
|
## 版本与授权
|
|
607
607
|
|
|
608
|
-
当前源码版本为 `2.8.
|
|
608
|
+
当前源码版本为 `2.8.3`,以 [`packages/mach-report/package.json`](https://github.com/ChenyCHENYU/MachReport/blob/main/packages/mach-report/package.json) 为准;npm 已发布版本由顶部 npm 标识展示。
|
|
609
609
|
|
|
610
610
|
Copyright © 2026 ChenyCHENYU (Agile Team). All rights reserved.
|
|
611
611
|
|
package/dist/designer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),W=require("@agile-team/mach-report/vue"),I=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),b=require("@agile-team/mach-report");function Y(u,k,s,g){const m=e.ref(0),o=e.ref(""),h=e.ref([]),T=e.computed(()=>u.value.template.pages.flatMap((i,a)=>i.components.flatMap((r,d)=>r.kind==="list"?[{component:r,pageIndex:a,componentIndex:d}]:[]))),E=e.computed(()=>T.value[m.value]?.component),v=e.computed(()=>{const i=E.value;if(!i)return[];const a=i.columns.map(r=>r.headerStyle?.align??r.headerAlign??i.headerStyle?.align??i.headerAlign??r.style?.align??"center");if(i.headerGrid&&k())for(const r of b.resolveGridLayout(i.headerGrid,i.widthMm,100).cells)for(let d=r.ci;d<r.ci+(r.cell.colSpan??1);d++)a[d]=r.cell.style?.align??"left";return a}),f=e.computed(()=>{const i=o.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(E.value?.columns??[]).flatMap((a,r)=>{const d=`${a.header} ${a.field}`.toLocaleLowerCase();return i.every(V=>d.includes(V))?[{column:a,index:r}]:[]})});function y(i,a){h.value=a?[...new Set([...h.value,i])]:h.value.filter(r=>r!==i)}function _(i){for(const a of f.value)y(a.index,i)}function p(){h.value=[]}function w(i,a,r){if(!s())return;const d=E.value?.columns[i];d&&(Object.assign(d,{[a]:a==="widthMm"?Number(r):r}),a==="header"&&R(i,String(r)),a==="headerAlign"&&C(i,r),a==="widthMm"&&J(),g())}function J(){const i=T.value[m.value];if(!i)return;const a=i.component,r=u.value.template.pages[i.pageIndex],d=a.columns.map(V=>V.widthMm);a.headerGrid&&(a.headerGrid.colWidthsMm=d),r.layout==="wide"&&d.every(V=>Number.isFinite(V)&&V>0)&&(a.widthMm=d.reduce((V,t)=>V+t,0),r.widthMm=Math.max(...r.components.map(V=>V.leftMm+V.widthMm))+(r.marginRightMm??0))}function R(i,a){const r=E.value;if(!r?.headerGrid)return;const V=b.resolveGridLayout(r.headerGrid,r.widthMm,100).cells.filter(({ci:t,cell:B})=>t<=i&&t+(B.colSpan??1)>i).slice(-1)[0];V&&(Object.assign(V.cell,{text:a,rawText:a,value:a}),r.columns.slice(V.ci,V.ci+(V.cell.colSpan??1)).forEach(t=>{t.header=a}))}function C(i,a){const r=E.value,d=r?.columns[i];if(d?.headerStyle?.align!==void 0&&(d.headerStyle={...d.headerStyle,align:a}),!r?.headerGrid)return;const t=b.resolveGridLayout(r.headerGrid,r.widthMm,100).cells.filter(({ci:B,cell:x})=>B<=i&&B+(x.colSpan??1)>i).slice(-1)[0];t&&(t.cell.style={...t.cell.style,align:a},r.columns.slice(t.ci,t.ci+(t.cell.colSpan??1)).forEach(B=>{B.headerAlign=a,B.headerStyle?.align!==void 0&&(B.headerStyle={...B.headerStyle,align:a})}))}function A(i,a){if(!(!s()||i==="headerAlign"&&a==="auto")){for(const r of h.value){const d=E.value?.columns[r];d&&(Object.assign(d,{[i]:a}),i==="headerAlign"&&C(r,a))}g()}}return{selected:m,query:o,selectedColumns:h,lists:T,activeList:E,headerAlignments:v,visibleColumns:f,toggleColumn:y,selectVisible:_,clearSelection:p,setColumn:w,alignColumns:A}}function Z(u,k={entries:100,bytes:16*1024*1024}){const s=e.ref([u]),g=e.ref(0),m=e.computed(()=>g.value>0),o=e.computed(()=>g.value+1<s.value.length),h=e.computed(()=>s.value[g.value]);function T(f){s.value=[f],g.value=0}function E(f){if(s.value[g.value]===f)return;const y=s.value.slice(0,g.value+1);y.push(f);let _=y.reduce((p,w)=>p+w.length*2,0);for(;y.length>1&&(y.length>k.entries||_>k.bytes);)_-=y.shift().length*2;s.value=y,g.value=s.value.length-1}function v(f){if(!(f<0?!m.value:!o.value))return g.value+=f,s.value[g.value]}return{canUndo:m,canRedo:o,current:h,reset:T,record:E,move:v}}function ee(u){const k=e.shallowRef(null),s=e.ref(!1);let g,m=0;function o(E){g?.(E),g=void 0,k.value=null}function h(){m++,o(!1),s.value=!1}async function T(E){h();const v=m,f=u();s.value=!0;try{const y=await new Promise((_,p)=>{if(g=_,!f){k.value=E;return}Promise.resolve().then(()=>m===v?f(E):!1).then(w=>{m===v&&o(w===!0)},w=>{m===v&&(g=void 0,k.value=null,p(w))})});return m===v&&y===!0}finally{m===v&&(s.value=!1)}}return e.onBeforeUnmount(h),{confirmation:k,pending:s,decide:o,request:T,cancel:h}}const te={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:"请先修正模板错误,再预览或保存。"},ne={undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览"},X={...te,...ne};function le(u,k){const s=e.ref(b.parseReportTemplate(u.modelValue)),g=e.ref(b.serializeReportTemplate(s.value)),m=e.ref(b.serializeReportTemplate(s.value)),o=e.ref(""),h=e.ref(!1),T=e.computed(()=>({...X,...u.messages})),E=e.computed(()=>({showExport:!1,showPrint:!1,showPdfWindow:!1,...u.preview,theme:{shellBg:"#f1f5f9",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e2e8f0",toolbarFg:"#334155",btnFg:"#475569",btnBorder:"#cbd5e1",btnHoverBg:"#eff6ff",btnHoverFg:"#1d4ed8",btnActiveBg:"#2563eb",...u.preview?.theme}}));W.provideMachReportConfig({get defaults(){return E.value}});let v,f=0;const y=e.computed(()=>b.validateReportTemplateDocument(s.value)),_=e.computed(()=>{try{return b.serializeReportTemplate(s.value)!==g.value}catch{return!0}}),p=e.ref(m.value),w=e.computed(()=>m.value!==p.value),J=e.computed(()=>_.value||m.value!==p.value),R=()=>JSON.stringify({document:s.value,json:m.value,appliedJson:p.value}),C=Z(R()),A=ee(()=>u.beforeDiscard),i=e.computed(()=>h.value||A.pending.value),a=()=>!u.readonly&&!i.value&&!w.value,r=Y(s,()=>y.value.ok,a,O),{selected:d,lists:V,activeList:t,headerAlignments:B,setColumn:x}=r;e.watch(d,()=>r.clearSelection());const $=e.computed(()=>y.value.ok?W.createLocalFetcher({draft:{template:s.value.template,datasets:u.datasets??{},params:[]}}):void 0);function N(){f++,v?.abort(),v=void 0,h.value=!1}let j=0;async function M(n="replace",l){if(!J.value)return!0;const c=R();try{return await A.request({reason:n,document:JSON.parse(JSON.stringify(s.value)),replacement:l?b.parseReportTemplate(l):void 0,pendingLocalChanges:!0})&&c===R()}catch(D){return o.value=D instanceof Error?D.message:String(D),!1}}function G(n){N(),s.value=n,g.value=b.serializeReportTemplate(n),m.value=g.value,p.value=m.value,o.value="",d.value=0,r.clearSelection(),C.reset(R())}e.watch(()=>u.modelValue,async n=>{let l;try{l=b.parseReportTemplate(n)}catch(D){o.value=D instanceof Error?D.message:String(D);return}try{if(b.serializeReportTemplate(l)===b.serializeReportTemplate(s.value))return}catch{}const c=++j;if(N(),!await M("replace",l)){c===j&&y.value.ok&&k("update:modelValue",b.parseReportTemplate(s.value));return}c===j&&G(l)}),e.onBeforeUnmount(()=>{j++,N()});function O(){A.cancel(),o.value="",y.value.ok&&(m.value=b.serializeReportTemplate(s.value),p.value=m.value,k("update:modelValue",b.parseReportTemplate(s.value))),C.record(R())}function H(n){a()&&(s.value.name=n,O())}function P(n){a()&&(s.value.description=n,O())}function L(){if(!(u.readonly||i.value))try{const n=b.parseReportTemplate(m.value);if(n.id!==s.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(n.revision!==s.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");s.value=n,d.value=0,r.clearSelection(),O()}catch(n){o.value=n instanceof Error?n.message:String(n)}}async function q(){i.value||u.readonly||!await M("reset")||(G(b.parseReportTemplate(g.value)),k("update:modelValue",b.parseReportTemplate(s.value)))}function z(n){if(i.value||u.readonly)return;C.record(R());const l=C.move(n);if(!l)return;A.cancel();const c=JSON.parse(l);s.value=c.document,m.value=c.json,p.value=c.appliedJson,o.value="",d.value=0,r.clearSelection(),y.value.ok&&k("update:modelValue",b.parseReportTemplate(s.value))}async function U(){if(!u.save||!a()||!y.value.ok)return;const n=++f;v=new AbortController,h.value=!0,o.value="";const l=b.parseReportTemplate(s.value);try{const c=b.parseReportTemplate(await u.save(l,{expectedRevision:l.revision,signal:v.signal}));if(n!==f)return;if(c.id!==l.id)throw new Error("保存服务返回了其他模板的文档");s.value=c,g.value=b.serializeReportTemplate(c),m.value=g.value,p.value=m.value,C.reset(R()),k("saved",b.parseReportTemplate(c)),k("update:modelValue",b.parseReportTemplate(c))}catch(c){n===f&&(o.value=c instanceof Error?c.message:String(c))}finally{n===f&&(h.value=!1,v=void 0)}}const K=e.computed(()=>C.canUndo.value||R()!==C.current.value),S=e.computed(()=>C.canRedo.value&&R()===C.current.value);return{...r,canUndo:K,canRedo:S,undo:()=>z(-1),redo:()=>z(1),pendingLocalChanges:J,jsonPending:w,blocked:i,confirmation:A.confirmation,decideDiscard:A.decide,guardChanges:M,draft:s,json:m,selected:d,error:o,saving:h,dirty:_,validation:y,lists:V,activeList:t,headerAlignments:B,previewOptions:E,fetcher:$,messages:T,setName:H,setDescription:P,setColumn:x,applyJson:L,reset:q,save:U}}function oe(u,k,s,g){const m=e.ref("fields"),o=e.ref(u.value[0]?.index??-1),h=e.computed(()=>{const v=s.value?.columns[o.value];return v?{column:v,index:o.value}:void 0});e.watch(g,()=>{u.value.some(v=>v.index===o.value)||(o.value=u.value[0]?.index??-1)}),e.watch(k,()=>{o.value=u.value[0]?.index??-1}),e.watch(s,v=>{v?.columns[o.value]||(o.value=u.value[0]?.index??-1)});function T(v){u.value.some(f=>f.index===v)&&(o.value=v)}function E(v){const f=u.value;if(!f.length)return;const y=Math.max(0,f.findIndex(w=>w.index===o.value)),p={ArrowDown:Math.min(y+1,f.length-1),ArrowUp:Math.max(y-1,0),Home:0,End:f.length-1}[v];if(p!==void 0)return o.value=f[p].index,o.value}return{section:m,activeIndex:o,activeColumn:h,activate:T,moveColumn:E}}const re=["aria-label","aria-busy"],ae={class:"mr-designer-bar"},ie={class:"mr-designer-heading"},se={class:"mr-designer-actions"},ue={class:"mr-designer-history"},ce=["aria-label","title","disabled"],de=["aria-label","title","disabled"],me=["disabled"],fe=["disabled"],pe=["aria-label"],ve={class:"mr-designer-body"},ge={class:"mr-designer-inspector"},ye=["aria-label"],he=["id","aria-selected","aria-controls","tabindex","onClick"],be=["id","aria-labelledby"],Ee={key:0,class:"mr-designer-area"},Se=["value"],Ve={key:1,class:"mr-designer-columns"},Ne={class:"mr-designer-directory-heading"},ke={class:"mr-designer-search"},_e=["aria-label","placeholder"],De=["aria-label","title"],Ce={class:"mr-designer-column-tools"},Te=["disabled"],we={key:1,role:"status"},Be={key:2},xe=["aria-label"],Re=["aria-label","checked","disabled","onChange"],Me=["data-column-index","aria-pressed","tabindex","onClick"],Ae={class:"mr-designer-column-number"},je={class:"mr-designer-column-name"},Le={key:0,role:"status",class:"mr-designer-empty"},$e={key:0,class:"mr-designer-batch"},Oe=["aria-label","disabled"],Ie={value:""},Je={value:"auto"},Pe={value:"left"},ze={value:"center"},Fe={value:"right"},Ge={value:"justify"},He=["aria-label","disabled"],qe={value:""},Ue={value:"left"},Ke={value:"center"},We={value:"right"},Qe={value:"justify"},Xe=["disabled"],Ye=["value"],Ze=["value"],et=["value"],tt=["value"],nt={value:"identifier"},lt={value:"dimension"},ot={value:"measure"},rt={value:"date"},at={value:"text"},it=["value"],st={value:"auto"},ut={value:"left"},ct={value:"center"},dt={value:"right"},mt={value:"justify"},ft=["value"],pt={value:"left"},vt={value:"center"},gt={value:"right"},yt={value:"justify"},ht={class:"mr-designer-toggle"},bt=["checked"],Et={key:2,role:"status",class:"mr-designer-empty"},St={class:"mr-designer-stacked"},Vt=["value","disabled"],Nt={class:"mr-designer-stacked"},kt=["value","disabled"],_t={class:"mr-designer-identity"},Dt={class:"mr-designer-note"},Ct={class:"mr-designer-note"},Tt={class:"mr-designer-stacked"},wt=["aria-label","disabled"],Bt=["disabled"],xt={key:3,role:"status",class:"mr-designer-note mr-designer-pending"},Rt=["aria-label"],Mt={key:0,role:"alert",class:"mr-designer-error"},At={key:1,role:"alert",class:"mr-designer-error"},jt={key:3,class:"mr-designer-note mr-designer-invalid"},Lt=e.defineComponent({__name:"ReportTemplateEditor",props:{modelValue:{},datasets:{},readonly:{type:Boolean},messages:{},preview:{},beforeDiscard:{type:Function},save:{type:Function}},emits:["update:modelValue","saved"],setup(u,{expose:k,emit:s}){const g=u,m=s,o=le(g,(S,n)=>{m(S==="saved"?"saved":"update:modelValue",n)}),{draft:h,json:T,selected:E,error:v,saving:f,pendingLocalChanges:y,jsonPending:_,blocked:p,confirmation:w,canUndo:J,canRedo:R,validation:C,lists:A,activeList:i,visibleColumns:a,query:r,selectedColumns:d,fetcher:V,messages:t}=o,B=oe(a,E,i,r),{section:x,activeIndex:$,activeColumn:N}=B,j=`mr-designer-${e.getCurrentInstance()?.uid??0}`,M=["fields","template","advanced"],G=e.computed(()=>f.value?t.value.saving:g.readonly?t.value.readonly:y.value?t.value.dirty:t.value.ready),O=e.ref(null),H=e.ref(null);e.watch(x,async S=>{if(S!=="fields")return;await e.nextTick();const n=H.value,l=n?.querySelector(`button[data-column-index="${$.value}"]`);if(!n||!l)return;const c=n.getBoundingClientRect(),D=l.getBoundingClientRect(),F=c.top+n.clientTop,Q=F+n.clientHeight;D.top<F?n.scrollTop+=D.top-F:D.bottom>Q&&(n.scrollTop+=D.bottom-Q)});let P=null;e.watch(w,async S=>{S?(P=document.activeElement,await e.nextTick(),O.value?.focus()):(await e.nextTick(),P?.isConnected&&P.focus(),P=null)}),k({get pendingLocalChanges(){return y.value},get saving(){return f.value},get blocked(){return p.value},guardChanges:o.guardChanges,reset:o.reset,save:o.save});function L(S){return S.target.value}function q(S){return S.target.checked}function z(S,n){const l=S.target;o.alignColumns(n,l.value),l.value=""}async function U(S){const n=B.moveColumn(S.key);if(n===void 0)return;S.preventDefault();const l=S.currentTarget.closest(".mr-designer-column-list");await e.nextTick();const c=l?.querySelector(`button[data-column-index="${n}"]`);c?.focus({preventScroll:!0}),c?.scrollIntoView({block:"nearest"})}async function K(S){const l={ArrowRight:1,ArrowLeft:-1,Home:-M.length,End:M.length}[S.key];if(l===void 0)return;S.preventDefault();const c=M.indexOf(x.value),D=S.key==="Home"?0:S.key==="End"?M.length-1:(c+l+M.length)%M.length;x.value=M[D];const F=S.currentTarget.parentElement;await e.nextTick(),F?.querySelector(`#${j}-tab-${x.value}`)?.focus()}return(S,n)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(t).title,"aria-busy":e.unref(f)},[e.createElementVNode("header",ae,[e.createElementVNode("div",ie,[e.createVNode(I._sfc_main,{name:"columns",size:18}),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(y)})},e.toDisplayString(G.value),3)])]),e.createElementVNode("div",se,[e.createElementVNode("div",ue,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).undo,title:e.unref(t).undo,disabled:u.readonly||e.unref(p)||!e.unref(J),onClick:n[0]||(n[0]=(...l)=>e.unref(o).undo&&e.unref(o).undo(...l))},[...n[25]||(n[25]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 10h10a6 6 0 0 1 0 12M4 10l5-5M4 10l5 5"})],-1)])],8,ce),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).redo,title:e.unref(t).redo,disabled:u.readonly||e.unref(p)||!e.unref(R),onClick:n[1]||(n[1]=(...l)=>e.unref(o).redo&&e.unref(o).redo(...l))},[...n[26]||(n[26]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 10H10a6 6 0 0 0 0 12m10-12-5-5m5 5-5 5"})],-1)])],8,de)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:u.readonly||e.unref(p)||!e.unref(y),onClick:n[2]||(n[2]=(...l)=>e.unref(o).reset&&e.unref(o).reset(...l))},e.toDisplayString(e.unref(t).reset),9,me),u.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",disabled:u.readonly||e.unref(p)||e.unref(_)||!e.unref(C).ok||!e.unref(y),onClick:n[3]||(n[3]=(...l)=>e.unref(o).save&&e.unref(o).save(...l))},[e.createVNode(I._sfc_main,{name:"file",size:14}),e.createTextVNode(e.toDisplayString(e.unref(f)?e.unref(t).saving:e.unref(t).save),1)],8,fe)):e.createCommentVNode("",!0)])]),e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,role:"alertdialog","aria-label":e.unref(t).discardTitle,class:"mr-designer-confirm",onKeydown:n[6]||(n[6]=e.withKeys(e.withModifiers(l=>e.unref(o).decideDiscard(!1),["prevent"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(t).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:O,type:"button",onClick:n[4]||(n[4]=l=>e.unref(o).decideDiscard(!1))},e.toDisplayString(e.unref(t).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:n[5]||(n[5]=l=>e.unref(o).decideDiscard(!0))},e.toDisplayString(e.unref(t).discard),1)])],40,pe)):e.createCommentVNode("",!0),e.createElementVNode("div",ve,[e.createElementVNode("aside",ge,[e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(t).sectionsLabel},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(M,l=>e.createElementVNode("button",{id:`${j}-tab-${l}`,key:l,type:"button",role:"tab","aria-selected":e.unref(x)===l,"aria-controls":`${j}-panel-${l}`,tabindex:e.unref(x)===l?0:-1,onClick:c=>x.value=l,onKeydown:K},e.toDisplayString(e.unref(t)[`${l}Section`]),41,he)),64))],8,ye),e.createElementVNode("div",{id:`${j}-panel-${e.unref(x)}`,class:"mr-designer-panel",role:"tabpanel","aria-labelledby":`${j}-tab-${e.unref(x)}`},[e.unref(x)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.unref(A).length>1?(e.openBlock(),e.createElementBlock("label",Ee,[e.createTextVNode(e.toDisplayString(e.unref(t).area),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[7]||(n[7]=l=>e.isRef(E)?E.value=l:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(A),(l,c)=>(e.openBlock(),e.createElementBlock("option",{key:c,value:c},e.toDisplayString(l.pageIndex+1)+" "+e.toDisplayString(e.unref(t).page)+" · "+e.toDisplayString(l.component.title||l.component.dataset),9,Se))),128))],512),[[e.vModelSelect,e.unref(E)]])])):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",Ne,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).columnDirectory),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(i).columns.length)+" "+e.toDisplayString(e.unref(t).fieldsCount),1)]),e.createElementVNode("div",ke,[e.createVNode(I._sfc_main,{name:"search",size:15}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[8]||(n[8]=l=>e.isRef(r)?r.value=l:null),type:"search","aria-label":e.unref(t).columnsSearch,placeholder:e.unref(t).columnsSearch},null,8,_e),[[e.vModelText,e.unref(r)]]),e.unref(r)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).clearSearch,title:e.unref(t).clearSearch,onClick:n[9]||(n[9]=l=>r.value="")},[e.createVNode(I._sfc_main,{name:"close",size:14})],8,De)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ce,[e.createElementVNode("button",{type:"button",disabled:u.readonly||e.unref(p)||e.unref(_)||!e.unref(a).length,onClick:n[10]||(n[10]=l=>e.unref(o).selectVisible(!0))},e.toDisplayString(e.unref(t).selectVisible),9,Te),e.unref(d).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:n[11]||(n[11]=(...l)=>e.unref(o).clearSelection&&e.unref(o).clearSelection(...l))},e.toDisplayString(e.unref(t).clearSelection),1)):e.createCommentVNode("",!0),e.unref(d).length?(e.openBlock(),e.createElementBlock("span",we,e.toDisplayString(e.unref(t).columnsSelected)+" "+e.toDisplayString(e.unref(d).length),1)):(e.openBlock(),e.createElementBlock("span",Be,e.toDisplayString(e.unref(a).length)+" / "+e.toDisplayString(e.unref(i).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:H,class:"mr-designer-column-list","aria-label":e.unref(t).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),({column:l,index:c})=>(e.openBlock(),e.createElementBlock("div",{key:c,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref($)===c}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(t).selectColumn} ${l.header}`,checked:e.unref(d).includes(c),disabled:u.readonly||e.unref(p)||e.unref(_),onChange:D=>e.unref(o).toggleColumn(c,q(D))},null,40,Re),e.createElementVNode("button",{type:"button","data-column-index":c,"aria-pressed":e.unref($)===c,tabindex:e.unref($)===c?0:-1,onClick:D=>e.unref(B).activate(c),onKeydown:U},[e.createElementVNode("span",Ae,e.toDisplayString(c+1),1),e.createElementVNode("span",je,[e.createElementVNode("strong",null,e.toDisplayString(l.header),1),e.createElementVNode("small",null,e.toDisplayString(l.field),1)]),e.unref($)===c?(e.openBlock(),e.createBlock(I._sfc_main,{key:0,name:"chevron-right",size:14})):e.createCommentVNode("",!0)],40,Me)],2))),128)),e.unref(a).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Le,[e.createVNode(I._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(t).noColumns),1)]))],8,xe),e.unref(d).length?(e.openBlock(),e.createElementBlock("div",$e,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(t).batchBody,disabled:u.readonly||e.unref(p)||e.unref(_),onChange:n[12]||(n[12]=l=>z(l,"align"))},[e.createElementVNode("option",Ie,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Je,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",Pe,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",ze,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Fe,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Ge,e.toDisplayString(e.unref(t).justify),1)],40,Oe)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(t).batchHeader,disabled:u.readonly||e.unref(p)||e.unref(_),onChange:n[13]||(n[13]=l=>z(l,"headerAlign"))},[e.createElementVNode("option",qe,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Ue,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",Ke,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",We,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Qe,e.toDisplayString(e.unref(t).justify),1)],40,He)])])):e.createCommentVNode("",!0),e.unref(N)?(e.openBlock(),e.createElementBlock("fieldset",{key:1,class:"mr-designer-properties",disabled:u.readonly||e.unref(p)||e.unref(_)},[e.createElementVNode("legend",null,[e.createTextVNode(e.toDisplayString(e.unref(t).columnProperties)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(N).index+1)+" · "+e.toDisplayString(e.unref(N).column.header),1)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).header),1),e.createElementVNode("input",{value:e.unref(N).column.header,onInput:n[14]||(n[14]=l=>e.unref(o).setColumn(e.unref(N).index,"header",L(l)))},null,40,Ye)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).field),1),e.createElementVNode("input",{value:e.unref(N).column.field,onChange:n[15]||(n[15]=l=>e.unref(o).setColumn(e.unref(N).index,"field",L(l)))},null,40,Ze)]),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:e.unref(N).column.widthMm,onChange:n[16]||(n[16]=l=>e.unref(o).setColumn(e.unref(N).index,"widthMm",L(l)))},null,40,et)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).semantic),1),e.createElementVNode("select",{value:e.unref(N).column.semanticRole||"text",onChange:n[17]||(n[17]=l=>e.unref(o).setColumn(e.unref(N).index,"semanticRole",L(l)))},[e.createElementVNode("option",nt,e.toDisplayString(e.unref(t).identifier),1),e.createElementVNode("option",lt,e.toDisplayString(e.unref(t).dimension),1),e.createElementVNode("option",ot,e.toDisplayString(e.unref(t).measure),1),e.createElementVNode("option",rt,e.toDisplayString(e.unref(t).date),1),e.createElementVNode("option",at,e.toDisplayString(e.unref(t).text),1)],40,tt)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).bodyAlign),1),e.createElementVNode("select",{value:e.unref(N).column.align??e.unref(N).column.style?.align??e.unref(i).align??"left",onChange:n[18]||(n[18]=l=>e.unref(o).setColumn(e.unref(N).index,"align",L(l)))},[e.createElementVNode("option",st,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",ut,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",ct,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",dt,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",mt,e.toDisplayString(e.unref(t).justify),1)],40,it)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).headerAlign),1),e.createElementVNode("select",{value:e.unref(o).headerAlignments.value[e.unref(N).index],onChange:n[19]||(n[19]=l=>e.unref(o).setColumn(e.unref(N).index,"headerAlign",L(l)))},[e.createElementVNode("option",pt,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",vt,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",gt,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",yt,e.toDisplayString(e.unref(t).justify),1)],40,ft)]),e.createElementVNode("label",ht,[e.createTextVNode(e.toDisplayString(e.unref(t).editable),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(N).column.editable===!0,onChange:n[20]||(n[20]=l=>e.unref(o).setColumn(e.unref(N).index,"editable",q(l)))},null,40,bt)])],8,Xe)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Et,e.toDisplayString(e.unref(t).noColumns),1))],64)):e.unref(x)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).templateDetails),1),e.createElementVNode("label",St,[e.createTextVNode(e.toDisplayString(e.unref(t).name),1),e.createElementVNode("input",{value:e.unref(h).name,disabled:u.readonly||e.unref(p)||e.unref(_),onInput:n[21]||(n[21]=l=>e.unref(o).setName(L(l)))},null,40,Vt)]),e.createElementVNode("label",Nt,[e.createTextVNode(e.toDisplayString(e.unref(t).description),1),e.createElementVNode("textarea",{rows:"4",value:e.unref(h).description,disabled:u.readonly||e.unref(p)||e.unref(_),onInput:n[22]||(n[22]=l=>e.unref(o).setDescription(L(l)))},null,40,kt)]),e.createElementVNode("dl",_t,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(t).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(h).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(t).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(h).revision||e.unref(t).unpublished),1)]),e.createElementVNode("p",Dt,e.toDisplayString(e.unref(t).note),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).advancedTitle),1),e.createElementVNode("p",Ct,e.toDisplayString(e.unref(t).advancedDescription),1),e.createElementVNode("label",Tt,[e.createTextVNode(e.toDisplayString(e.unref(t).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":n[23]||(n[23]=l=>e.isRef(T)?T.value=l:null),class:"mr-designer-json","aria-label":e.unref(t).json,disabled:u.readonly||e.unref(p),spellcheck:"false"},null,8,wt),[[e.vModelText,e.unref(T)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:u.readonly||e.unref(p),onClick:n[24]||(n[24]=(...l)=>e.unref(o).applyJson&&e.unref(o).applyJson(...l))},e.toDisplayString(e.unref(t).applyJson),9,Bt)],64)),e.unref(_)?(e.openBlock(),e.createElementBlock("p",xt,e.toDisplayString(e.unref(t).jsonPending),1)):e.createCommentVNode("",!0)],8,be)]),e.createElementVNode("div",{class:"mr-designer-preview","aria-label":e.unref(t).previewTitle},[e.unref(v)?(e.openBlock(),e.createElementBlock("div",Mt,e.toDisplayString(e.unref(v)),1)):e.createCommentVNode("",!0),e.unref(C).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",At,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C).errors,l=>(e.openBlock(),e.createElementBlock("li",{key:l.path},e.toDisplayString(l.path)+":"+e.toDisplayString(l.message),1))),128))])),e.unref(V)&&e.unref(C).ok?(e.openBlock(),e.createBlock(e.unref(W.ReportPreview),{key:2,"report-id":"draft",fetcher:e.unref(V),"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher"])):(e.openBlock(),e.createElementBlock("p",jt,e.toDisplayString(e.unref(t).invalid),1))],8,Rt)])],8,re))}}),$t=I._export_sfc(Lt,[["__scopeId","data-v-8bbff75e"]]);exports.ReportTemplateEditor=$t;exports.TEMPLATE_EDITOR_MESSAGES=X;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Q=require("@agile-team/mach-report/vue"),I=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),E=require("@agile-team/mach-report");function Z(c,k,u,y){const m=e.ref(0),o=e.ref(""),b=e.ref([]),C=e.computed(()=>c.value.template.pages.flatMap((i,a)=>i.components.flatMap((r,d)=>r.kind==="list"?[{component:r,pageIndex:a,componentIndex:d}]:[]))),S=e.computed(()=>C.value[m.value]?.component),v=e.computed(()=>{const i=S.value;if(!i)return[];const a=i.columns.map(r=>r.headerStyle?.align??r.headerAlign??i.headerStyle?.align??i.headerAlign??r.style?.align??"center");if(i.headerGrid&&k())for(const r of E.resolveGridLayout(i.headerGrid,i.widthMm,100).cells)for(let d=r.ci;d<r.ci+(r.cell.colSpan??1);d++)a[d]=r.cell.style?.align??"left";return a}),f=e.computed(()=>{const i=o.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(S.value?.columns??[]).flatMap((a,r)=>{const d=`${a.header} ${a.field}`.toLocaleLowerCase();return i.every(V=>d.includes(V))?[{column:a,index:r}]:[]})});function h(i,a){b.value=a?[...new Set([...b.value,i])]:b.value.filter(r=>r!==i)}function _(i){for(const a of f.value)h(a.index,i)}function p(){b.value=[]}function T(i,a,r){if(!u())return;const d=S.value?.columns[i];d&&(Object.assign(d,{[a]:a==="widthMm"?Number(r):r}),a==="header"&&x(i,String(r)),a==="headerAlign"&&D(i,r),a==="widthMm"&&P(),y())}function P(){const i=C.value[m.value];if(!i)return;const a=i.component,r=c.value.template.pages[i.pageIndex],d=a.columns.map(V=>V.widthMm);a.headerGrid&&(a.headerGrid.colWidthsMm=d),r.layout==="wide"&&d.every(V=>Number.isFinite(V)&&V>0)&&(a.widthMm=d.reduce((V,t)=>V+t,0),r.widthMm=Math.max(...r.components.map(V=>V.leftMm+V.widthMm))+(r.marginRightMm??0))}function x(i,a){const r=S.value;if(!r?.headerGrid)return;const V=E.resolveGridLayout(r.headerGrid,r.widthMm,100).cells.filter(({ci:t,cell:w})=>t<=i&&t+(w.colSpan??1)>i).slice(-1)[0];V&&(Object.assign(V.cell,{text:a,rawText:a,value:a}),r.columns.slice(V.ci,V.ci+(V.cell.colSpan??1)).forEach(t=>{t.header=a}))}function D(i,a){const r=S.value,d=r?.columns[i];if(d?.headerStyle?.align!==void 0&&(d.headerStyle={...d.headerStyle,align:a}),!r?.headerGrid)return;const t=E.resolveGridLayout(r.headerGrid,r.widthMm,100).cells.filter(({ci:w,cell:B})=>w<=i&&w+(B.colSpan??1)>i).slice(-1)[0];t&&(t.cell.style={...t.cell.style,align:a},r.columns.slice(t.ci,t.ci+(t.cell.colSpan??1)).forEach(w=>{w.headerAlign=a,w.headerStyle?.align!==void 0&&(w.headerStyle={...w.headerStyle,align:a})}))}function M(i,a){if(!(!u()||i==="headerAlign"&&a==="auto")){for(const r of b.value){const d=S.value?.columns[r];d&&(Object.assign(d,{[i]:a}),i==="headerAlign"&&D(r,a))}y()}}return{selected:m,query:o,selectedColumns:b,lists:C,activeList:S,headerAlignments:v,visibleColumns:f,toggleColumn:h,selectVisible:_,clearSelection:p,setColumn:T,alignColumns:M}}function ee(c,k={entries:100,bytes:16*1024*1024}){const u=e.ref([c]),y=e.ref(0),m=e.computed(()=>y.value>0),o=e.computed(()=>y.value+1<u.value.length),b=e.computed(()=>u.value[y.value]);function C(f){u.value=[f],y.value=0}function S(f){if(u.value[y.value]===f)return;const h=u.value.slice(0,y.value+1);h.push(f);let _=h.reduce((p,T)=>p+T.length*2,0);for(;h.length>1&&(h.length>k.entries||_>k.bytes);)_-=h.shift().length*2;u.value=h,y.value=u.value.length-1}function v(f){if(!(f<0?!m.value:!o.value))return y.value+=f,u.value[y.value]}return{canUndo:m,canRedo:o,current:b,reset:C,record:S,move:v}}function te(c){const k=e.shallowRef(null),u=e.ref(!1);let y,m=0;function o(S){y?.(S),y=void 0,k.value=null}function b(){m++,o(!1),u.value=!1}async function C(S){b();const v=m,f=c();u.value=!0;try{const h=await new Promise((_,p)=>{if(y=_,!f){k.value=S;return}Promise.resolve().then(()=>m===v?f(S):!1).then(T=>{m===v&&o(T===!0)},T=>{m===v&&(y=void 0,k.value=null,p(T))})});return m===v&&h===!0}finally{m===v&&(u.value=!1)}}return e.onBeforeUnmount(b),{confirmation:k,pending:u,decide:o,request:C,cancel:b}}const ne={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:"请先修正模板错误,再预览或保存。"},le={undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览"},Y={...ne,...le};function oe(c,k){const u=e.ref(E.parseReportTemplate(c.modelValue)),y=e.ref(E.serializeReportTemplate(u.value)),m=e.ref(E.serializeReportTemplate(u.value)),o=e.ref(""),b=e.ref(!1),C=e.computed(()=>({...Y,...c.messages})),S=e.computed(()=>({showExport:!1,showPrint:!1,showPdfWindow:!1,...c.preview,theme:{shellBg:"#f1f5f9",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e2e8f0",toolbarFg:"#334155",btnFg:"#475569",btnBorder:"#cbd5e1",btnHoverBg:"#eff6ff",btnHoverFg:"#1d4ed8",btnActiveBg:"#2563eb",...c.preview?.theme}}));Q.provideMachReportConfig({get defaults(){return S.value}});let v,f=0;const h=e.computed(()=>E.validateReportTemplateDocument(u.value)),_=e.computed(()=>{try{return E.serializeReportTemplate(u.value)!==y.value}catch{return!0}}),p=e.ref(m.value),T=e.computed(()=>m.value!==p.value),P=e.computed(()=>_.value||m.value!==p.value),x=()=>JSON.stringify({document:u.value,json:m.value,appliedJson:p.value}),D=ee(x()),M=te(()=>c.beforeDiscard),i=e.computed(()=>b.value||M.pending.value),a=()=>!c.readonly&&!i.value&&!T.value,r=Z(u,()=>h.value.ok,a,O),{selected:d,lists:V,activeList:t,headerAlignments:w,setColumn:B}=r;e.watch(d,()=>r.clearSelection());const $=e.computed(()=>h.value.ok?Q.createLocalFetcher({draft:{template:u.value.template,datasets:c.datasets??{},params:[]}}):void 0);function N(){f++,v?.abort(),v=void 0,b.value=!1}let A=0;async function R(s="replace",l){if(!P.value)return!0;const n=x();try{return await M.request({reason:s,document:JSON.parse(JSON.stringify(u.value)),replacement:l?E.parseReportTemplate(l):void 0,pendingLocalChanges:!0})&&n===x()}catch(g){return o.value=g instanceof Error?g.message:String(g),!1}}function H(s){N(),u.value=s,y.value=E.serializeReportTemplate(s),m.value=y.value,p.value=m.value,o.value="",d.value=0,r.clearSelection(),D.reset(x())}e.watch(()=>c.modelValue,async s=>{let l;try{l=E.parseReportTemplate(s)}catch(g){o.value=g instanceof Error?g.message:String(g);return}try{if(E.serializeReportTemplate(l)===E.serializeReportTemplate(u.value))return}catch{}const n=++A;if(N(),!await R("replace",l)){n===A&&h.value.ok&&k("update:modelValue",E.parseReportTemplate(u.value));return}n===A&&H(l)}),e.onBeforeUnmount(()=>{A++,N()});function O(){M.cancel(),o.value="",h.value.ok&&(m.value=E.serializeReportTemplate(u.value),p.value=m.value,k("update:modelValue",E.parseReportTemplate(u.value))),D.record(x())}function q(s){a()&&(u.value.name=s,O())}function z(s){a()&&(u.value.description=s,O())}function J(){if(!(c.readonly||i.value))try{const s=E.parseReportTemplate(m.value);if(s.id!==u.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(s.revision!==u.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");u.value=s,d.value=0,r.clearSelection(),O()}catch(s){o.value=s instanceof Error?s.message:String(s)}}async function j(){i.value||c.readonly||!await R("reset")||(H(E.parseReportTemplate(y.value)),k("update:modelValue",E.parseReportTemplate(u.value)))}function F(s){if(i.value||c.readonly)return;D.record(x());const l=D.move(s);if(!l)return;M.cancel();const n=JSON.parse(l);u.value=n.document,m.value=n.json,p.value=n.appliedJson,o.value="",d.value=0,r.clearSelection(),h.value.ok&&k("update:modelValue",E.parseReportTemplate(u.value))}async function U(){if(!c.save||!a()||!h.value.ok)return;const s=++f;v=new AbortController,b.value=!0,o.value="";const l=E.parseReportTemplate(u.value);try{const n=E.parseReportTemplate(await c.save(l,{expectedRevision:l.revision,signal:v.signal}));if(s!==f)return;if(n.id!==l.id)throw new Error("保存服务返回了其他模板的文档");u.value=n,y.value=E.serializeReportTemplate(n),m.value=y.value,p.value=m.value,D.reset(x()),k("saved",E.parseReportTemplate(n)),k("update:modelValue",E.parseReportTemplate(n))}catch(n){s===f&&(o.value=n instanceof Error?n.message:String(n))}finally{s===f&&(b.value=!1,v=void 0)}}const K=e.computed(()=>D.canUndo.value||x()!==D.current.value),W=e.computed(()=>D.canRedo.value&&x()===D.current.value);return{...r,canUndo:K,canRedo:W,undo:()=>F(-1),redo:()=>F(1),pendingLocalChanges:P,jsonPending:T,blocked:i,confirmation:M.confirmation,decideDiscard:M.decide,guardChanges:R,draft:u,json:m,selected:d,error:o,saving:b,dirty:_,validation:h,lists:V,activeList:t,headerAlignments:w,previewOptions:S,fetcher:$,messages:C,setName:q,setDescription:z,setColumn:B,applyJson:J,reset:j,save:U}}function re(c,k,u,y){const m=e.ref("fields"),o=e.ref(c.value[0]?.index??-1),b=e.computed(()=>{const v=u.value?.columns[o.value];return v?{column:v,index:o.value}:void 0});e.watch(y,()=>{c.value.some(v=>v.index===o.value)||(o.value=c.value[0]?.index??-1)}),e.watch(k,()=>{o.value=c.value[0]?.index??-1}),e.watch(u,v=>{v?.columns[o.value]||(o.value=c.value[0]?.index??-1)});function C(v){c.value.some(f=>f.index===v)&&(o.value=v)}function S(v){const f=c.value;if(!f.length)return;const h=Math.max(0,f.findIndex(T=>T.index===o.value)),p={ArrowDown:Math.min(h+1,f.length-1),ArrowUp:Math.max(h-1,0),Home:0,End:f.length-1}[v];if(p!==void 0)return o.value=f[p].index,o.value}return{section:m,activeIndex:o,activeColumn:b,activate:C,moveColumn:S}}const ae=["aria-label","aria-busy"],ie={class:"mr-designer-bar"},se={class:"mr-designer-heading"},ue={class:"mr-designer-actions"},ce={class:"mr-designer-history"},de=["aria-label","title","disabled"],me=["aria-label","title","disabled"],fe=["disabled"],pe=["disabled"],ve=["aria-label"],ge={class:"mr-designer-body"},ye={class:"mr-designer-inspector"},he=["aria-label"],be=["id","aria-selected","aria-controls","tabindex","onClick"],Ee=["id","aria-labelledby"],Se={key:0,class:"mr-designer-area"},Ve=["value"],Ne={key:1,class:"mr-designer-columns"},ke={class:"mr-designer-directory-heading"},_e={class:"mr-designer-search"},De=["aria-label","placeholder"],Ce=["aria-label","title"],Te={class:"mr-designer-column-tools"},we=["disabled"],Be={key:1,role:"status"},xe={key:2},Re=["aria-label"],Me=["aria-label","checked","disabled","onChange"],Ae=["data-column-index","aria-pressed","tabindex","onClick"],je={class:"mr-designer-column-number"},Le={class:"mr-designer-column-name"},$e={key:0,role:"status",class:"mr-designer-empty"},Oe={key:0,class:"mr-designer-batch"},Ie=["aria-label","disabled"],Pe={value:""},Je={value:"auto"},ze={value:"left"},Fe={value:"center"},Ge={value:"right"},He={value:"justify"},qe=["aria-label","disabled"],Ue={value:""},Ke={value:"left"},We={value:"center"},Qe={value:"right"},Xe={value:"justify"},Ye=["disabled"],Ze=["value"],et=["value"],tt=["value"],nt=["value"],lt={value:"identifier"},ot={value:"dimension"},rt={value:"measure"},at={value:"date"},it={value:"text"},st=["value"],ut={value:"auto"},ct={value:"left"},dt={value:"center"},mt={value:"right"},ft={value:"justify"},pt=["value"],vt={value:"left"},gt={value:"center"},yt={value:"right"},ht={value:"justify"},bt={class:"mr-designer-toggle"},Et=["checked"],St={key:2,role:"status",class:"mr-designer-empty"},Vt={class:"mr-designer-stacked"},Nt=["value","disabled"],kt={class:"mr-designer-stacked"},_t=["value","disabled"],Dt={class:"mr-designer-identity"},Ct={class:"mr-designer-note"},Tt={class:"mr-designer-note"},wt={class:"mr-designer-stacked"},Bt=["aria-label","disabled"],xt=["disabled"],Rt={key:3,role:"status",class:"mr-designer-note mr-designer-pending"},Mt=["aria-label"],At={key:0,role:"alert",class:"mr-designer-error"},jt={key:1,role:"alert",class:"mr-designer-error"},Lt={key:3,class:"mr-designer-note mr-designer-invalid"},$t=e.defineComponent({__name:"ReportTemplateEditor",props:{modelValue:{},datasets:{},readonly:{type:Boolean},messages:{},preview:{},beforeDiscard:{type:Function},save:{type:Function}},emits:["update:modelValue","saved"],setup(c,{expose:k,emit:u}){const y=c,m=u,o=oe(y,(s,l)=>{m(s==="saved"?"saved":"update:modelValue",l)}),{draft:b,json:C,selected:S,error:v,saving:f,pendingLocalChanges:h,jsonPending:_,blocked:p,confirmation:T,canUndo:P,canRedo:x,validation:D,lists:M,activeList:i,visibleColumns:a,query:r,selectedColumns:d,fetcher:V,messages:t}=o,w=re(a,S,i,r),{section:B,activeIndex:$,activeColumn:N}=w,A=`mr-designer-${e.getCurrentInstance()?.uid??0}`,R=["fields","template","advanced"],H=e.computed(()=>f.value?t.value.saving:y.readonly?t.value.readonly:h.value?t.value.dirty:t.value.ready),O=e.ref(null),q=e.ref(null),z=e.ref(null);e.watch(B,async s=>{if(await e.nextTick(),z.value&&(z.value.scrollTop=0),s!=="fields")return;const l=q.value,n=l?.querySelector(`button[data-column-index="${$.value}"]`);if(!l||!n)return;const g=l.getBoundingClientRect(),L=n.getBoundingClientRect(),G=g.top+l.clientTop,X=G+l.clientHeight;L.top<G?l.scrollTop+=L.top-G:L.bottom>X&&(l.scrollTop+=L.bottom-X)});let J=null;e.watch(T,async s=>{s?(J=document.activeElement,await e.nextTick(),O.value?.focus()):(await e.nextTick(),J?.isConnected&&J.focus(),J=null)}),k({get pendingLocalChanges(){return h.value},get saving(){return f.value},get blocked(){return p.value},guardChanges:o.guardChanges,reset:o.reset,save:o.save});function j(s){return s.target.value}function F(s){return s.target.checked}function U(s,l){const n=s.target;o.alignColumns(l,n.value),n.value=""}async function K(s){const l=w.moveColumn(s.key);if(l===void 0)return;s.preventDefault();const n=s.currentTarget.closest(".mr-designer-column-list");await e.nextTick();const g=n?.querySelector(`button[data-column-index="${l}"]`);g?.focus({preventScroll:!0}),g?.scrollIntoView({block:"nearest"})}async function W(s){const n={ArrowRight:1,ArrowLeft:-1,Home:-R.length,End:R.length}[s.key];if(n===void 0)return;s.preventDefault();const g=R.indexOf(B.value),L=s.key==="Home"?0:s.key==="End"?R.length-1:(g+n+R.length)%R.length;B.value=R[L];const G=s.currentTarget.parentElement;await e.nextTick(),G?.querySelector(`#${A}-tab-${B.value}`)?.focus()}return(s,l)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(t).title,"aria-busy":e.unref(f)},[e.createElementVNode("header",ie,[e.createElementVNode("div",se,[e.createVNode(I._sfc_main,{name:"columns",size:18}),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(h)})},e.toDisplayString(H.value),3)])]),e.createElementVNode("div",ue,[e.createElementVNode("div",ce,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).undo,title:e.unref(t).undo,disabled:c.readonly||e.unref(p)||!e.unref(P),onClick:l[0]||(l[0]=(...n)=>e.unref(o).undo&&e.unref(o).undo(...n))},[...l[25]||(l[25]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 10h10a6 6 0 0 1 0 12M4 10l5-5M4 10l5 5"})],-1)])],8,de),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).redo,title:e.unref(t).redo,disabled:c.readonly||e.unref(p)||!e.unref(x),onClick:l[1]||(l[1]=(...n)=>e.unref(o).redo&&e.unref(o).redo(...n))},[...l[26]||(l[26]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 10H10a6 6 0 0 0 0 12m10-12-5-5m5 5-5 5"})],-1)])],8,me)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:c.readonly||e.unref(p)||!e.unref(h),onClick:l[2]||(l[2]=(...n)=>e.unref(o).reset&&e.unref(o).reset(...n))},e.toDisplayString(e.unref(t).reset),9,fe),c.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",disabled:c.readonly||e.unref(p)||e.unref(_)||!e.unref(D).ok||!e.unref(h),onClick:l[3]||(l[3]=(...n)=>e.unref(o).save&&e.unref(o).save(...n))},[e.createVNode(I._sfc_main,{name:"file",size:14}),e.createTextVNode(e.toDisplayString(e.unref(f)?e.unref(t).saving:e.unref(t).save),1)],8,pe)):e.createCommentVNode("",!0)])]),e.unref(T)?(e.openBlock(),e.createElementBlock("div",{key:0,role:"alertdialog","aria-label":e.unref(t).discardTitle,class:"mr-designer-confirm",onKeydown:l[6]||(l[6]=e.withKeys(e.withModifiers(n=>e.unref(o).decideDiscard(!1),["prevent"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(t).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:O,type:"button",onClick:l[4]||(l[4]=n=>e.unref(o).decideDiscard(!1))},e.toDisplayString(e.unref(t).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:l[5]||(l[5]=n=>e.unref(o).decideDiscard(!0))},e.toDisplayString(e.unref(t).discard),1)])],40,ve)):e.createCommentVNode("",!0),e.createElementVNode("div",ge,[e.createElementVNode("aside",ye,[e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(t).sectionsLabel},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(R,n=>e.createElementVNode("button",{id:`${A}-tab-${n}`,key:n,type:"button",role:"tab","aria-selected":e.unref(B)===n,"aria-controls":`${A}-panel-${n}`,tabindex:e.unref(B)===n?0:-1,onClick:g=>B.value=n,onKeydown:W},e.toDisplayString(e.unref(t)[`${n}Section`]),41,be)),64))],8,he),e.createElementVNode("div",{ref_key:"inspectorPanel",ref:z,id:`${A}-panel-${e.unref(B)}`,class:"mr-designer-panel",role:"tabpanel","aria-labelledby":`${A}-tab-${e.unref(B)}`},[e.unref(B)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.unref(M).length>1?(e.openBlock(),e.createElementBlock("label",Se,[e.createTextVNode(e.toDisplayString(e.unref(t).area),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":l[7]||(l[7]=n=>e.isRef(S)?S.value=n:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(M),(n,g)=>(e.openBlock(),e.createElementBlock("option",{key:g,value:g},e.toDisplayString(n.pageIndex+1)+" "+e.toDisplayString(e.unref(t).page)+" · "+e.toDisplayString(n.component.title||n.component.dataset),9,Ve))),128))],512),[[e.vModelSelect,e.unref(S)]])])):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createElementBlock("div",Ne,[e.createElementVNode("div",ke,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).columnDirectory),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(i).columns.length)+" "+e.toDisplayString(e.unref(t).fieldsCount),1)]),e.createElementVNode("div",_e,[e.createVNode(I._sfc_main,{name:"search",size:15}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[8]||(l[8]=n=>e.isRef(r)?r.value=n:null),type:"search","aria-label":e.unref(t).columnsSearch,placeholder:e.unref(t).columnsSearch},null,8,De),[[e.vModelText,e.unref(r)]]),e.unref(r)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).clearSearch,title:e.unref(t).clearSearch,onClick:l[9]||(l[9]=n=>r.value="")},[e.createVNode(I._sfc_main,{name:"close",size:14})],8,Ce)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Te,[e.createElementVNode("button",{type:"button",disabled:c.readonly||e.unref(p)||e.unref(_)||!e.unref(a).length,onClick:l[10]||(l[10]=n=>e.unref(o).selectVisible(!0))},e.toDisplayString(e.unref(t).selectVisible),9,we),e.unref(d).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:l[11]||(l[11]=(...n)=>e.unref(o).clearSelection&&e.unref(o).clearSelection(...n))},e.toDisplayString(e.unref(t).clearSelection),1)):e.createCommentVNode("",!0),e.unref(d).length?(e.openBlock(),e.createElementBlock("span",Be,e.toDisplayString(e.unref(t).columnsSelected)+" "+e.toDisplayString(e.unref(d).length),1)):(e.openBlock(),e.createElementBlock("span",xe,e.toDisplayString(e.unref(a).length)+" / "+e.toDisplayString(e.unref(i).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:q,class:"mr-designer-column-list","aria-label":e.unref(t).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),({column:n,index:g})=>(e.openBlock(),e.createElementBlock("div",{key:g,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref($)===g}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(t).selectColumn} ${n.header}`,checked:e.unref(d).includes(g),disabled:c.readonly||e.unref(p)||e.unref(_),onChange:L=>e.unref(o).toggleColumn(g,F(L))},null,40,Me),e.createElementVNode("button",{type:"button","data-column-index":g,"aria-pressed":e.unref($)===g,tabindex:e.unref($)===g?0:-1,onClick:L=>e.unref(w).activate(g),onKeydown:K},[e.createElementVNode("span",je,e.toDisplayString(g+1),1),e.createElementVNode("span",Le,[e.createElementVNode("strong",null,e.toDisplayString(n.header),1),e.createElementVNode("small",null,e.toDisplayString(n.field),1)]),e.unref($)===g?(e.openBlock(),e.createBlock(I._sfc_main,{key:0,name:"chevron-right",size:14})):e.createCommentVNode("",!0)],40,Ae)],2))),128)),e.unref(a).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",$e,[e.createVNode(I._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(t).noColumns),1)]))],8,Re),e.unref(d).length?(e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(t).batchBody,disabled:c.readonly||e.unref(p)||e.unref(_),onChange:l[12]||(l[12]=n=>U(n,"align"))},[e.createElementVNode("option",Pe,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Je,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",ze,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",Fe,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Ge,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",He,e.toDisplayString(e.unref(t).justify),1)],40,Ie)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(t).batchHeader,disabled:c.readonly||e.unref(p)||e.unref(_),onChange:l[13]||(l[13]=n=>U(n,"headerAlign"))},[e.createElementVNode("option",Ue,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Ke,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",We,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Qe,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Xe,e.toDisplayString(e.unref(t).justify),1)],40,qe)])])):e.createCommentVNode("",!0),e.unref(N)?(e.openBlock(),e.createElementBlock("fieldset",{key:1,class:"mr-designer-properties",disabled:c.readonly||e.unref(p)||e.unref(_)},[e.createElementVNode("legend",null,[e.createTextVNode(e.toDisplayString(e.unref(t).columnProperties)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(N).index+1)+" · "+e.toDisplayString(e.unref(N).column.header),1)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).header),1),e.createElementVNode("input",{value:e.unref(N).column.header,onInput:l[14]||(l[14]=n=>e.unref(o).setColumn(e.unref(N).index,"header",j(n)))},null,40,Ze)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).field),1),e.createElementVNode("input",{value:e.unref(N).column.field,onChange:l[15]||(l[15]=n=>e.unref(o).setColumn(e.unref(N).index,"field",j(n)))},null,40,et)]),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:e.unref(N).column.widthMm,onChange:l[16]||(l[16]=n=>e.unref(o).setColumn(e.unref(N).index,"widthMm",j(n)))},null,40,tt)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).semantic),1),e.createElementVNode("select",{value:e.unref(N).column.semanticRole||"text",onChange:l[17]||(l[17]=n=>e.unref(o).setColumn(e.unref(N).index,"semanticRole",j(n)))},[e.createElementVNode("option",lt,e.toDisplayString(e.unref(t).identifier),1),e.createElementVNode("option",ot,e.toDisplayString(e.unref(t).dimension),1),e.createElementVNode("option",rt,e.toDisplayString(e.unref(t).measure),1),e.createElementVNode("option",at,e.toDisplayString(e.unref(t).date),1),e.createElementVNode("option",it,e.toDisplayString(e.unref(t).text),1)],40,nt)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).bodyAlign),1),e.createElementVNode("select",{value:e.unref(N).column.align??e.unref(N).column.style?.align??e.unref(i).align??"left",onChange:l[18]||(l[18]=n=>e.unref(o).setColumn(e.unref(N).index,"align",j(n)))},[e.createElementVNode("option",ut,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",ct,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",dt,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",mt,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",ft,e.toDisplayString(e.unref(t).justify),1)],40,st)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).headerAlign),1),e.createElementVNode("select",{value:e.unref(o).headerAlignments.value[e.unref(N).index],onChange:l[19]||(l[19]=n=>e.unref(o).setColumn(e.unref(N).index,"headerAlign",j(n)))},[e.createElementVNode("option",vt,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",gt,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",yt,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",ht,e.toDisplayString(e.unref(t).justify),1)],40,pt)]),e.createElementVNode("label",bt,[e.createTextVNode(e.toDisplayString(e.unref(t).editable),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(N).column.editable===!0,onChange:l[20]||(l[20]=n=>e.unref(o).setColumn(e.unref(N).index,"editable",F(n)))},null,40,Et)])],8,Ye)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",St,e.toDisplayString(e.unref(t).noColumns),1))],64)):e.unref(B)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).templateDetails),1),e.createElementVNode("label",Vt,[e.createTextVNode(e.toDisplayString(e.unref(t).name),1),e.createElementVNode("input",{value:e.unref(b).name,disabled:c.readonly||e.unref(p)||e.unref(_),onInput:l[21]||(l[21]=n=>e.unref(o).setName(j(n)))},null,40,Nt)]),e.createElementVNode("label",kt,[e.createTextVNode(e.toDisplayString(e.unref(t).description),1),e.createElementVNode("textarea",{rows:"4",value:e.unref(b).description,disabled:c.readonly||e.unref(p)||e.unref(_),onInput:l[22]||(l[22]=n=>e.unref(o).setDescription(j(n)))},null,40,_t)]),e.createElementVNode("dl",Dt,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(t).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(b).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(t).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(b).revision||e.unref(t).unpublished),1)]),e.createElementVNode("p",Ct,e.toDisplayString(e.unref(t).note),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).advancedTitle),1),e.createElementVNode("p",Tt,e.toDisplayString(e.unref(t).advancedDescription),1),e.createElementVNode("label",wt,[e.createTextVNode(e.toDisplayString(e.unref(t).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":l[23]||(l[23]=n=>e.isRef(C)?C.value=n:null),class:"mr-designer-json","aria-label":e.unref(t).json,disabled:c.readonly||e.unref(p),spellcheck:"false"},null,8,Bt),[[e.vModelText,e.unref(C)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:c.readonly||e.unref(p),onClick:l[24]||(l[24]=(...n)=>e.unref(o).applyJson&&e.unref(o).applyJson(...n))},e.toDisplayString(e.unref(t).applyJson),9,xt)],64)),e.unref(_)?(e.openBlock(),e.createElementBlock("p",Rt,e.toDisplayString(e.unref(t).jsonPending),1)):e.createCommentVNode("",!0)],8,Ee)]),e.createElementVNode("div",{class:"mr-designer-preview","aria-label":e.unref(t).previewTitle},[e.unref(v)?(e.openBlock(),e.createElementBlock("div",At,e.toDisplayString(e.unref(v)),1)):e.createCommentVNode("",!0),e.unref(D).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(D).errors,n=>(e.openBlock(),e.createElementBlock("li",{key:n.path},e.toDisplayString(n.path)+":"+e.toDisplayString(n.message),1))),128))])),e.unref(V)&&e.unref(D).ok?(e.openBlock(),e.createBlock(e.unref(Q.ReportPreview),{key:2,"report-id":"draft",fetcher:e.unref(V),"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher"])):(e.openBlock(),e.createElementBlock("p",Lt,e.toDisplayString(e.unref(t).invalid),1))],8,Mt)])],8,ae))}}),Ot=I._export_sfc($t,[["__scopeId","data-v-c4eab8e7"]]);exports.ReportTemplateEditor=Ot;exports.TEMPLATE_EDITOR_MESSAGES=Y;
|