@agile-team/mach-report 2.8.1 → 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 +3 -3
- package/dist/{ReportPreview-vdZ5XYYb.js → ReportPreview-DRBAUkxj.js} +610 -653
- package/dist/ReportPreview-DjGeWHY-.cjs +6 -0
- package/dist/_plugin-vue_export-helper-BLmdZLlg.cjs +1 -0
- package/dist/_plugin-vue_export-helper-DPbiz14D.js +53 -0
- package/dist/designer.cjs +1 -1
- package/dist/designer.d.cts +38 -0
- package/dist/designer.d.ts +38 -0
- package/dist/designer.js +758 -444
- package/dist/{plugin-zROi2Bgp.js → plugin-BurDDMcd.js} +1 -1
- package/dist/{plugin-BAD7Ry8V.cjs → plugin-DSFu51Ua.cjs} +1 -1
- package/dist/style.css +1 -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 +4 -4
- package/package.json +1 -1
- package/dist/ReportPreview-fKUPcCTN.cjs +0 -6
- package/dist/_plugin-vue_export-helper-BHFhmbuH.cjs +0 -1
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
package/dist/designer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),F=require("@agile-team/mach-report/vue"),p=require("@agile-team/mach-report"),K=require("./_plugin-vue_export-helper-BHFhmbuH.cjs");function Q(u,S,i,f){const d=e.ref(0),l=e.ref(""),h=e.ref([]),R=e.computed(()=>u.value.template.pages.flatMap((a,r)=>a.components.flatMap((o,c)=>o.kind==="list"?[{component:o,pageIndex:r,componentIndex:c}]:[]))),b=e.computed(()=>R.value[d.value]?.component),V=e.computed(()=>{const a=b.value;if(!a)return[];const r=a.columns.map(o=>o.headerStyle?.align??o.headerAlign??a.headerStyle?.align??a.headerAlign??o.style?.align??"center");if(a.headerGrid&&S())for(const o of p.resolveGridLayout(a.headerGrid,a.widthMm,100).cells)for(let c=o.ci;c<o.ci+(o.cell.colSpan??1);c++)r[c]=o.cell.style?.align??"left";return r}),E=e.computed(()=>{const a=l.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(b.value?.columns??[]).flatMap((r,o)=>{const c=`${r.header} ${r.field}`.toLocaleLowerCase();return a.every(y=>c.includes(y))?[{column:r,index:o}]:[]})});function v(a,r){h.value=r?[...new Set([...h.value,a])]:h.value.filter(o=>o!==a)}function N(a){for(const r of E.value)v(r.index,a)}function m(){h.value=[]}function M(a,r,o){if(!i())return;const c=b.value?.columns[a];c&&(Object.assign(c,{[r]:r==="widthMm"?Number(o):o}),r==="header"&&A(a,String(o)),r==="headerAlign"&&D(a,o),r==="widthMm"&&G(),f())}function G(){const a=R.value[d.value];if(!a)return;const r=a.component,o=u.value.template.pages[a.pageIndex],c=r.columns.map(y=>y.widthMm);r.headerGrid&&(r.headerGrid.colWidthsMm=c),o.layout==="wide"&&c.every(y=>Number.isFinite(y)&&y>0)&&(r.widthMm=c.reduce((y,t)=>y+t,0),o.widthMm=Math.max(...o.components.map(y=>y.leftMm+y.widthMm))+(o.marginRightMm??0))}function A(a,r){const o=b.value;if(!o?.headerGrid)return;const y=p.resolveGridLayout(o.headerGrid,o.widthMm,100).cells.filter(({ci:t,cell:T})=>t<=a&&t+(T.colSpan??1)>a).slice(-1)[0];y&&(Object.assign(y.cell,{text:r,rawText:r,value:r}),o.columns.slice(y.ci,y.ci+(y.cell.colSpan??1)).forEach(t=>{t.header=r}))}function D(a,r){const o=b.value,c=o?.columns[a];if(c?.headerStyle?.align!==void 0&&(c.headerStyle={...c.headerStyle,align:r}),!o?.headerGrid)return;const t=p.resolveGridLayout(o.headerGrid,o.widthMm,100).cells.filter(({ci:T,cell:L})=>T<=a&&T+(L.colSpan??1)>a).slice(-1)[0];t&&(t.cell.style={...t.cell.style,align:r},o.columns.slice(t.ci,t.ci+(t.cell.colSpan??1)).forEach(T=>{T.headerAlign=r,T.headerStyle?.align!==void 0&&(T.headerStyle={...T.headerStyle,align:r})}))}function j(a,r){if(!(!i()||a==="headerAlign"&&r==="auto")){for(const o of h.value){const c=b.value?.columns[o];c&&(Object.assign(c,{[a]:r}),a==="headerAlign"&&D(o,r))}f()}}return{selected:d,query:l,selectedColumns:h,lists:R,activeList:b,headerAlignments:V,visibleColumns:E,toggleColumn:v,selectVisible:N,clearSelection:m,setColumn:M,alignColumns:j}}function X(u,S={entries:100,bytes:16*1024*1024}){const i=e.ref([u]),f=e.ref(0),d=e.computed(()=>f.value>0),l=e.computed(()=>f.value+1<i.value.length),h=e.computed(()=>i.value[f.value]);function R(E){i.value=[E],f.value=0}function b(E){if(i.value[f.value]===E)return;const v=i.value.slice(0,f.value+1);v.push(E);let N=v.reduce((m,M)=>m+M.length*2,0);for(;v.length>1&&(v.length>S.entries||N>S.bytes);)N-=v.shift().length*2;i.value=v,f.value=i.value.length-1}function V(E){if(!(E<0?!d.value:!l.value))return f.value+=E,i.value[f.value]}return{canUndo:d,canRedo:l,current:h,reset:R,record:b,move:V}}function Y(u){const S=e.shallowRef(null),i=e.ref(!1);let f,d=0;function l(b){f?.(b),f=void 0,S.value=null}function h(){d++,l(!1),i.value=!1}async function R(b){h();const V=d,E=u();i.value=!0;try{const v=await new Promise((N,m)=>{if(f=N,!E){S.value=b;return}Promise.resolve().then(()=>d===V?E(b):!1).then(M=>{d===V&&l(M===!0)},M=>{d===V&&(f=void 0,S.value=null,m(M))})});return d===V&&v===!0}finally{d===V&&(i.value=!1)}}return e.onBeforeUnmount(h),{confirmation:S,pending:i,decide:l,request:R,cancel:h}}const Z={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:"请先修正模板错误,再预览或保存。"},ee={undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。"},H={...Z,...ee};function te(u,S){const i=e.ref(p.parseReportTemplate(u.modelValue)),f=e.ref(p.serializeReportTemplate(i.value)),d=e.ref(p.serializeReportTemplate(i.value)),l=e.ref(""),h=e.ref(!1),R=e.computed(()=>({...H,...u.messages})),b=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}}));F.provideMachReportConfig({get defaults(){return b.value}});let V,E=0;const v=e.computed(()=>p.validateReportTemplateDocument(i.value)),N=e.computed(()=>{try{return p.serializeReportTemplate(i.value)!==f.value}catch{return!0}}),m=e.ref(d.value),M=e.computed(()=>d.value!==m.value),G=e.computed(()=>N.value||d.value!==m.value),A=()=>JSON.stringify({document:i.value,json:d.value,appliedJson:m.value}),D=X(A()),j=Y(()=>u.beforeDiscard),a=e.computed(()=>h.value||j.pending.value),r=()=>!u.readonly&&!a.value&&!M.value,o=Q(i,()=>v.value.ok,r,n),{selected:c,lists:y,activeList:t,headerAlignments:T,setColumn:L}=o;e.watch(c,()=>o.clearSelection());const x=e.computed(()=>v.value.ok?F.createLocalFetcher({draft:{template:i.value.template,datasets:u.datasets??{},params:[]}}):void 0);function P(){E++,V?.abort(),V=void 0,h.value=!1}let J=0;async function w(g="replace",B){if(!G.value)return!0;const _=A();try{return await j.request({reason:g,document:JSON.parse(JSON.stringify(i.value)),replacement:B?p.parseReportTemplate(B):void 0,pendingLocalChanges:!0})&&_===A()}catch(O){return l.value=O instanceof Error?O.message:String(O),!1}}function s(g){P(),i.value=g,f.value=p.serializeReportTemplate(g),d.value=f.value,m.value=d.value,l.value="",c.value=0,o.clearSelection(),D.reset(A())}e.watch(()=>u.modelValue,async g=>{let B;try{B=p.parseReportTemplate(g)}catch(O){l.value=O instanceof Error?O.message:String(O);return}try{if(p.serializeReportTemplate(B)===p.serializeReportTemplate(i.value))return}catch{}const _=++J;if(P(),!await w("replace",B)){_===J&&v.value.ok&&S("update:modelValue",p.parseReportTemplate(i.value));return}_===J&&s(B)}),e.onBeforeUnmount(()=>{J++,P()});function n(){j.cancel(),l.value="",v.value.ok&&(d.value=p.serializeReportTemplate(i.value),m.value=d.value,S("update:modelValue",p.parseReportTemplate(i.value))),D.record(A())}function k(g){r()&&(i.value.name=g,n())}function C(g){r()&&(i.value.description=g,n())}function U(){if(!(u.readonly||a.value))try{const g=p.parseReportTemplate(d.value);if(g.id!==i.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(g.revision!==i.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");i.value=g,c.value=0,o.clearSelection(),n()}catch(g){l.value=g instanceof Error?g.message:String(g)}}async function q(){a.value||u.readonly||!await w("reset")||(s(p.parseReportTemplate(f.value)),S("update:modelValue",p.parseReportTemplate(i.value)))}function I(g){if(a.value||u.readonly)return;D.record(A());const B=D.move(g);if(!B)return;j.cancel();const _=JSON.parse(B);i.value=_.document,d.value=_.json,m.value=_.appliedJson,l.value="",c.value=0,o.clearSelection(),v.value.ok&&S("update:modelValue",p.parseReportTemplate(i.value))}async function z(){if(!u.save||!r()||!v.value.ok)return;const g=++E;V=new AbortController,h.value=!0,l.value="";const B=p.parseReportTemplate(i.value);try{const _=p.parseReportTemplate(await u.save(B,{expectedRevision:B.revision,signal:V.signal}));if(g!==E)return;if(_.id!==B.id)throw new Error("保存服务返回了其他模板的文档");i.value=_,f.value=p.serializeReportTemplate(_),d.value=f.value,m.value=d.value,D.reset(A()),S("saved",p.parseReportTemplate(_)),S("update:modelValue",p.parseReportTemplate(_))}catch(_){g===E&&(l.value=_ instanceof Error?_.message:String(_))}finally{g===E&&(h.value=!1,V=void 0)}}const $=e.computed(()=>D.canUndo.value||A()!==D.current.value),W=e.computed(()=>D.canRedo.value&&A()===D.current.value);return{...o,canUndo:$,canRedo:W,undo:()=>I(-1),redo:()=>I(1),pendingLocalChanges:G,jsonPending:M,blocked:a,confirmation:j.confirmation,decideDiscard:j.decide,guardChanges:w,draft:i,json:d,selected:c,error:l,saving:h,dirty:N,validation:v,lists:y,activeList:t,headerAlignments:T,previewOptions:b,fetcher:x,messages:R,setName:k,setDescription:C,setColumn:L,applyJson:U,reset:q,save:z}}const ne=["aria-label"],le={class:"mr-designer-bar"},oe={key:0},re=["disabled"],ae=["disabled"],ie=["disabled"],se=["disabled"],ue=["aria-label"],ce={class:"mr-designer-body"},de={class:"mr-designer-panel"},fe=["value","disabled"],me=["value","disabled"],pe={key:0},ve=["value"],ge={key:1,class:"mr-designer-columns"},he={class:"mr-designer-column-tools"},ye=["disabled"],be=["disabled"],Ee={role:"status"},Se={key:0,class:"mr-designer-batch"},Ve=["aria-label","disabled"],Ne={value:""},_e={value:"auto"},De={value:"left"},ke={value:"center"},Ce={value:"right"},Te={value:"justify"},we=["aria-label","disabled"],Be={value:""},Re={value:"left"},Me={value:"center"},Ae={value:"right"},je={value:"justify"},xe={key:1,role:"status"},Le=["disabled"],Oe={class:"mr-designer-select-column"},Je=["checked","onChange"],Ge=["value","onInput"],Pe=["value","onChange"],Fe=["value","onChange"],Ie=["value","onChange"],He={value:"identifier"},Ue={value:"dimension"},qe={value:"measure"},ze={value:"date"},$e={value:"text"},We=["value","onChange"],Ke={value:"auto"},Qe={value:"left"},Xe={value:"center"},Ye={value:"right"},Ze={value:"justify"},et=["value","onChange"],tt={value:"left"},nt={value:"center"},lt={value:"right"},ot={value:"justify"},rt={class:"mr-designer-toggle"},at=["checked","onChange"],it=["aria-label","disabled"],st=["disabled"],ut={key:2,role:"status",class:"mr-designer-note"},ct={class:"mr-designer-note"},dt={class:"mr-designer-preview"},ft={key:0,role:"alert",class:"mr-designer-error"},mt={key:1,role:"alert",class:"mr-designer-error"},pt={key:3,class:"mr-designer-note"},vt=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:S,emit:i}){const f=u,d=i,l=te(f,(w,s)=>{d(w==="saved"?"saved":"update:modelValue",s)}),{draft:h,json:R,selected:b,error:V,saving:E,pendingLocalChanges:v,jsonPending:N,blocked:m,confirmation:M,canUndo:G,canRedo:A,validation:D,lists:j,activeList:a,visibleColumns:r,query:o,selectedColumns:c,fetcher:y,messages:t}=l,T=e.ref(null);let L=null;e.watch(M,async w=>{w?(L=document.activeElement,await e.nextTick(),T.value?.focus()):(await e.nextTick(),L?.isConnected&&L.focus(),L=null)}),S({get pendingLocalChanges(){return v.value},guardChanges:l.guardChanges,reset:l.reset,save:l.save});function x(w){return w.target.value}function P(w){return w.target.checked}function J(w,s){const n=w.target;l.alignColumns(s,n.value),n.value=""}return(w,s)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(t).title},[e.createElementVNode("header",le,[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(v)?(e.openBlock(),e.createElementBlock("b",oe," · "+e.toDisplayString(e.unref(t).dirty),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",disabled:u.readonly||e.unref(m)||!e.unref(G),onClick:s[0]||(s[0]=(...n)=>e.unref(l).undo&&e.unref(l).undo(...n))},e.toDisplayString(e.unref(t).undo),9,re),e.createElementVNode("button",{type:"button",disabled:u.readonly||e.unref(m)||!e.unref(A),onClick:s[1]||(s[1]=(...n)=>e.unref(l).redo&&e.unref(l).redo(...n))},e.toDisplayString(e.unref(t).redo),9,ae),e.createElementVNode("button",{type:"button",disabled:u.readonly||e.unref(m)||!e.unref(v),onClick:s[2]||(s[2]=(...n)=>e.unref(l).reset&&e.unref(l).reset(...n))},e.toDisplayString(e.unref(t).reset),9,ie),u.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:u.readonly||e.unref(m)||e.unref(N)||!e.unref(D).ok||!e.unref(v),onClick:s[3]||(s[3]=(...n)=>e.unref(l).save&&e.unref(l).save(...n))},e.toDisplayString(e.unref(E)?e.unref(t).saving:e.unref(t).save),9,se)):e.createCommentVNode("",!0)])]),e.unref(M)?(e.openBlock(),e.createElementBlock("div",{key:0,role:"alertdialog","aria-label":e.unref(t).discardTitle,class:"mr-designer-confirm",onKeydown:s[6]||(s[6]=e.withKeys(e.withModifiers(n=>e.unref(l).decideDiscard(!1),["prevent"]),["esc"]))},[e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(t).discardDescription),1),e.createElementVNode("button",{ref_key:"keepButton",ref:T,type:"button",onClick:s[4]||(s[4]=n=>e.unref(l).decideDiscard(!1))},e.toDisplayString(e.unref(t).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:s[5]||(s[5]=n=>e.unref(l).decideDiscard(!0))},e.toDisplayString(e.unref(t).discard),1)],40,ue)):e.createCommentVNode("",!0),e.createElementVNode("div",ce,[e.createElementVNode("aside",de,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).name),1),e.createElementVNode("input",{value:e.unref(h).name,disabled:u.readonly||e.unref(m)||e.unref(N),onInput:s[7]||(s[7]=n=>e.unref(l).setName(x(n)))},null,40,fe)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).description),1),e.createElementVNode("textarea",{value:e.unref(h).description,disabled:u.readonly||e.unref(m)||e.unref(N),onInput:s[8]||(s[8]=n=>e.unref(l).setDescription(x(n)))},null,40,me)]),e.unref(j).length?(e.openBlock(),e.createElementBlock("label",pe,[e.createTextVNode(e.toDisplayString(e.unref(t).area),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":s[9]||(s[9]=n=>e.isRef(b)?b.value=n:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(j),(n,k)=>(e.openBlock(),e.createElementBlock("option",{key:k,value:k},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(b)]])])):e.createCommentVNode("",!0),e.unref(a)?(e.openBlock(),e.createElementBlock("div",ge,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).columnsSearch),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":s[10]||(s[10]=n=>e.isRef(o)?o.value=n:null),type:"search"},null,512),[[e.vModelText,e.unref(o)]])]),e.createElementVNode("div",he,[e.createElementVNode("button",{type:"button",disabled:u.readonly||e.unref(m)||e.unref(N)||!e.unref(r).length,onClick:s[11]||(s[11]=n=>e.unref(l).selectVisible(!0))},e.toDisplayString(e.unref(t).selectVisible),9,ye),e.createElementVNode("button",{type:"button",disabled:!e.unref(c).length,onClick:s[12]||(s[12]=(...n)=>e.unref(l).clearSelection&&e.unref(l).clearSelection(...n))},e.toDisplayString(e.unref(t).clearSelection),9,be),e.createElementVNode("span",Ee,e.toDisplayString(e.unref(t).columnsSelected)+" "+e.toDisplayString(e.unref(c).length)+" / "+e.toDisplayString(e.unref(a).columns.length),1)]),e.unref(c).length?(e.openBlock(),e.createElementBlock("div",Se,[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(m)||e.unref(N),onChange:s[13]||(s[13]=n=>J(n,"align"))},[e.createElementVNode("option",Ne,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",_e,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",De,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",ke,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Ce,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Te,e.toDisplayString(e.unref(t).justify),1)],40,Ve)]),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(m)||e.unref(N),onChange:s[14]||(s[14]=n=>J(n,"headerAlign"))},[e.createElementVNode("option",Be,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Re,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",Me,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Ae,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",je,e.toDisplayString(e.unref(t).justify),1)],40,we)])])):e.createCommentVNode("",!0),e.unref(r).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",xe,e.toDisplayString(e.unref(t).noColumns),1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r),({column:n,index:k})=>(e.openBlock(),e.createElementBlock("fieldset",{key:k,disabled:u.readonly||e.unref(m)||e.unref(N)},[e.createElementVNode("legend",null,[e.createElementVNode("label",Oe,[e.createElementVNode("input",{type:"checkbox",checked:e.unref(c).includes(k),onChange:C=>e.unref(l).toggleColumn(k,P(C))},null,40,Je),e.createTextVNode(e.toDisplayString(k+1)+" · "+e.toDisplayString(n.header),1)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).header),1),e.createElementVNode("input",{value:n.header,onInput:C=>e.unref(l).setColumn(k,"header",x(C))},null,40,Ge)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).field),1),e.createElementVNode("input",{value:n.field,onChange:C=>e.unref(l).setColumn(k,"field",x(C))},null,40,Pe)]),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:n.widthMm,onChange:C=>e.unref(l).setColumn(k,"widthMm",x(C))},null,40,Fe)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).semantic),1),e.createElementVNode("select",{value:n.semanticRole||"text",onChange:C=>e.unref(l).setColumn(k,"semanticRole",x(C))},[e.createElementVNode("option",He,e.toDisplayString(e.unref(t).identifier),1),e.createElementVNode("option",Ue,e.toDisplayString(e.unref(t).dimension),1),e.createElementVNode("option",qe,e.toDisplayString(e.unref(t).measure),1),e.createElementVNode("option",ze,e.toDisplayString(e.unref(t).date),1),e.createElementVNode("option",$e,e.toDisplayString(e.unref(t).text),1)],40,Ie)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).bodyAlign),1),e.createElementVNode("select",{value:n.align??n.style?.align??e.unref(a).align??"left",onChange:C=>e.unref(l).setColumn(k,"align",x(C))},[e.createElementVNode("option",Ke,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",Qe,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",Xe,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",Ye,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Ze,e.toDisplayString(e.unref(t).justify),1)],40,We)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).headerAlign),1),e.createElementVNode("select",{value:e.unref(l).headerAlignments.value[k],onChange:C=>e.unref(l).setColumn(k,"headerAlign",x(C))},[e.createElementVNode("option",tt,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",nt,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",lt,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",ot,e.toDisplayString(e.unref(t).justify),1)],40,et)]),e.createElementVNode("label",rt,[e.createTextVNode(e.toDisplayString(e.unref(t).editable),1),e.createElementVNode("input",{type:"checkbox",checked:n.editable===!0,onChange:C=>e.unref(l).setColumn(k,"editable",P(C))},null,40,at)])],8,Le))),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":s[15]||(s[15]=n=>e.isRef(R)?R.value=n:null),class:"mr-designer-json","aria-label":e.unref(t).json,disabled:u.readonly||e.unref(m),spellcheck:"false"},null,8,it),[[e.vModelText,e.unref(R)]]),e.createElementVNode("button",{type:"button",disabled:u.readonly||e.unref(m),onClick:s[16]||(s[16]=(...n)=>e.unref(l).applyJson&&e.unref(l).applyJson(...n))},e.toDisplayString(e.unref(t).applyJson),9,st)]),e.unref(N)?(e.openBlock(),e.createElementBlock("p",ut,e.toDisplayString(e.unref(t).jsonPending),1)):e.createCommentVNode("",!0),e.createElementVNode("p",ct,e.toDisplayString(e.unref(t).note),1)]),e.createElementVNode("div",dt,[e.unref(V)?(e.openBlock(),e.createElementBlock("div",ft,e.toDisplayString(e.unref(V)),1)):e.createCommentVNode("",!0),e.unref(D).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",mt,[(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(y)&&e.unref(D).ok?(e.openBlock(),e.createBlock(e.unref(F.ReportPreview),{key:2,"report-id":"draft",fetcher:e.unref(y),"show-params":!1,editable:!1,"excel-import":!1},null,8,["fetcher"])):(e.openBlock(),e.createElementBlock("p",pt,e.toDisplayString(e.unref(t).invalid),1))])])],8,ne))}}),gt=K._export_sfc(vt,[["__scopeId","data-v-e2d0e1d5"]]);exports.ReportTemplateEditor=gt;exports.TEMPLATE_EDITOR_MESSAGES=H;
|
|
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;
|
package/dist/designer.d.cts
CHANGED
|
@@ -552,6 +552,23 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
|
|
|
552
552
|
keepEditing: string;
|
|
553
553
|
discard: string;
|
|
554
554
|
jsonPending: string;
|
|
555
|
+
fieldsSection: string;
|
|
556
|
+
templateSection: string;
|
|
557
|
+
advancedSection: string;
|
|
558
|
+
sectionsLabel: string;
|
|
559
|
+
columnDirectory: string;
|
|
560
|
+
columnProperties: string;
|
|
561
|
+
selectColumn: string;
|
|
562
|
+
clearSearch: string;
|
|
563
|
+
fieldsCount: string;
|
|
564
|
+
templateDetails: string;
|
|
565
|
+
advancedTitle: string;
|
|
566
|
+
advancedDescription: string;
|
|
567
|
+
templateIdentity: string;
|
|
568
|
+
templateRevision: string;
|
|
569
|
+
readonly: string;
|
|
570
|
+
ready: string;
|
|
571
|
+
previewTitle: string;
|
|
555
572
|
};
|
|
556
573
|
/** Return false to keep the current report. Without a hook the preview asks inline. */
|
|
557
574
|
declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
|
|
@@ -774,6 +791,8 @@ declare interface ReportTemplateDocument {
|
|
|
774
791
|
}
|
|
775
792
|
export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions, {
|
|
776
793
|
pendingLocalChanges: boolean;
|
|
794
|
+
saving: boolean;
|
|
795
|
+
blocked: boolean;
|
|
777
796
|
guardChanges: (reason?: TemplateEditorBeforeDiscardContext["reason"], replacement?: ReportTemplateDocument) => Promise<boolean>;
|
|
778
797
|
reset: () => Promise<void>;
|
|
779
798
|
save: () => Promise<void>;
|
|
@@ -824,6 +843,23 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
|
|
|
824
843
|
keepEditing: string;
|
|
825
844
|
discard: string;
|
|
826
845
|
jsonPending: string;
|
|
846
|
+
fieldsSection: string;
|
|
847
|
+
templateSection: string;
|
|
848
|
+
advancedSection: string;
|
|
849
|
+
sectionsLabel: string;
|
|
850
|
+
columnDirectory: string;
|
|
851
|
+
columnProperties: string;
|
|
852
|
+
selectColumn: string;
|
|
853
|
+
clearSearch: string;
|
|
854
|
+
fieldsCount: string;
|
|
855
|
+
templateDetails: string;
|
|
856
|
+
advancedTitle: string;
|
|
857
|
+
advancedDescription: string;
|
|
858
|
+
templateIdentity: string;
|
|
859
|
+
templateRevision: string;
|
|
860
|
+
readonly: string;
|
|
861
|
+
ready: string;
|
|
862
|
+
previewTitle: string;
|
|
827
863
|
title: string;
|
|
828
864
|
heading: string;
|
|
829
865
|
unpublished: string;
|
|
@@ -868,6 +904,8 @@ export declare interface TemplateEditorBeforeDiscardContext {
|
|
|
868
904
|
}
|
|
869
905
|
export declare interface TemplateEditorController {
|
|
870
906
|
readonly pendingLocalChanges: boolean;
|
|
907
|
+
readonly saving?: boolean;
|
|
908
|
+
readonly blocked?: boolean;
|
|
871
909
|
guardChanges(reason?: TemplateEditorBeforeDiscardContext["reason"], replacement?: ReportTemplateDocument): Promise<boolean>;
|
|
872
910
|
reset(): Promise<void>;
|
|
873
911
|
save(): Promise<void>;
|
package/dist/designer.d.ts
CHANGED
|
@@ -552,6 +552,23 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
|
|
|
552
552
|
keepEditing: string;
|
|
553
553
|
discard: string;
|
|
554
554
|
jsonPending: string;
|
|
555
|
+
fieldsSection: string;
|
|
556
|
+
templateSection: string;
|
|
557
|
+
advancedSection: string;
|
|
558
|
+
sectionsLabel: string;
|
|
559
|
+
columnDirectory: string;
|
|
560
|
+
columnProperties: string;
|
|
561
|
+
selectColumn: string;
|
|
562
|
+
clearSearch: string;
|
|
563
|
+
fieldsCount: string;
|
|
564
|
+
templateDetails: string;
|
|
565
|
+
advancedTitle: string;
|
|
566
|
+
advancedDescription: string;
|
|
567
|
+
templateIdentity: string;
|
|
568
|
+
templateRevision: string;
|
|
569
|
+
readonly: string;
|
|
570
|
+
ready: string;
|
|
571
|
+
previewTitle: string;
|
|
555
572
|
};
|
|
556
573
|
/** Return false to keep the current report. Without a hook the preview asks inline. */
|
|
557
574
|
declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
|
|
@@ -774,6 +791,8 @@ declare interface ReportTemplateDocument {
|
|
|
774
791
|
}
|
|
775
792
|
export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions, {
|
|
776
793
|
pendingLocalChanges: boolean;
|
|
794
|
+
saving: boolean;
|
|
795
|
+
blocked: boolean;
|
|
777
796
|
guardChanges: (reason?: TemplateEditorBeforeDiscardContext["reason"], replacement?: ReportTemplateDocument) => Promise<boolean>;
|
|
778
797
|
reset: () => Promise<void>;
|
|
779
798
|
save: () => Promise<void>;
|
|
@@ -824,6 +843,23 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
|
|
|
824
843
|
keepEditing: string;
|
|
825
844
|
discard: string;
|
|
826
845
|
jsonPending: string;
|
|
846
|
+
fieldsSection: string;
|
|
847
|
+
templateSection: string;
|
|
848
|
+
advancedSection: string;
|
|
849
|
+
sectionsLabel: string;
|
|
850
|
+
columnDirectory: string;
|
|
851
|
+
columnProperties: string;
|
|
852
|
+
selectColumn: string;
|
|
853
|
+
clearSearch: string;
|
|
854
|
+
fieldsCount: string;
|
|
855
|
+
templateDetails: string;
|
|
856
|
+
advancedTitle: string;
|
|
857
|
+
advancedDescription: string;
|
|
858
|
+
templateIdentity: string;
|
|
859
|
+
templateRevision: string;
|
|
860
|
+
readonly: string;
|
|
861
|
+
ready: string;
|
|
862
|
+
previewTitle: string;
|
|
827
863
|
title: string;
|
|
828
864
|
heading: string;
|
|
829
865
|
unpublished: string;
|
|
@@ -868,6 +904,8 @@ export declare interface TemplateEditorBeforeDiscardContext {
|
|
|
868
904
|
}
|
|
869
905
|
export declare interface TemplateEditorController {
|
|
870
906
|
readonly pendingLocalChanges: boolean;
|
|
907
|
+
readonly saving?: boolean;
|
|
908
|
+
readonly blocked?: boolean;
|
|
871
909
|
guardChanges(reason?: TemplateEditorBeforeDiscardContext["reason"], replacement?: ReportTemplateDocument): Promise<boolean>;
|
|
872
910
|
reset(): Promise<void>;
|
|
873
911
|
save(): Promise<void>;
|