@agile-team/mach-report 2.8.3 → 2.8.4
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-DRBAUkxj.js → ReportPreview-DTWiCH5a.js} +2 -2
- package/dist/{_plugin-vue_export-helper-DPbiz14D.js → _plugin-vue_export-helper-8SL1F89S.js} +2 -2
- package/dist/designer.cjs +1 -1
- package/dist/designer.d.cts +18 -0
- package/dist/designer.d.ts +18 -0
- package/dist/designer.js +865 -630
- package/dist/{plugin-BurDDMcd.js → plugin-CQmJXNcA.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.js +4 -4
- 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.4-2563eb" alt="Source version 2.8.4" />
|
|
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>
|
|
@@ -464,7 +464,7 @@ Ctrl/Cmd+F 打开或聚焦内容搜索,输入时显示检索状态与命中数
|
|
|
464
464
|
|
|
465
465
|
查询、校验、排版、资源准备、文件生成提供阶段反馈和取消;PDF / Excel / 图片及 HTML / Word 输出报告真实完成单位,无法估算的编码过程不显示虚假百分比。`report.cancelTask()` 与 `state.task` 复用同一状态;忽略取消的自定义接口或导出器也不能用迟到结果覆盖当前报表。
|
|
466
466
|
|
|
467
|
-
|
|
467
|
+
宽表字段目录直接读取模板中的中文列名、多层表头与数据集,支持搜索和跨表精确定位。可选设计器把当前字段的内容、格式与编辑开关集中在首屏,字段目录按需展开并支持搜索、批量对齐与键盘导航;模板信息与高级 JSON 各有独立分区,保留撤销重做和草稿保护,无需使用方再维护一份列目录。
|
|
468
468
|
|
|
469
469
|
大宽表适宽时优先挂载当前页和定位目标,其余页面按帧补齐并显示加载占位;切换或卸载取消旧调度。选区只更新变化的属性,减少大量单元格的属性读写。导出仍使用完整计划,使用方无需维护渲染调度。
|
|
470
470
|
|
|
@@ -605,7 +605,7 @@ CI 使用同一套校验命令,并在构建后检查实际发布产物。协
|
|
|
605
605
|
|
|
606
606
|
## 版本与授权
|
|
607
607
|
|
|
608
|
-
当前源码版本为 `2.8.
|
|
608
|
+
当前源码版本为 `2.8.4`,以 [`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
|
|
|
@@ -3,8 +3,8 @@ import { renderPage as zn, renderPlanToImages as Fa, calculateReportSelection as
|
|
|
3
3
|
import { c as Bn } from "./page-window-index-CIuT4BAv.js";
|
|
4
4
|
import { a as Ae, n as In, w as Ge, r as Nn, f as Xa } from "./progress-DD964VAB.js";
|
|
5
5
|
import { i as Qa, b as _a } from "./render-plan-uzZYYSy1.js";
|
|
6
|
-
import {
|
|
7
|
-
import { b as Wt, c as es, d as ts, a as ns } from "./plugin-
|
|
6
|
+
import { a as ee, _ as ye } from "./_plugin-vue_export-helper-8SL1F89S.js";
|
|
7
|
+
import { b as Wt, c as es, d as ts, a as ns } from "./plugin-CQmJXNcA.js";
|
|
8
8
|
function jn(e) {
|
|
9
9
|
return e == null ? [] : Array.isArray(e) ? e.map(String).filter((t) => t !== "") : String(e).split(",").map((t) => t.trim()).filter((t) => t !== "");
|
|
10
10
|
}
|
package/dist/designer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Z=require("@agile-team/mach-report/vue"),O=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),S=require("@agile-team/mach-report"),oe=["aria-label"],ae=["data-align","aria-label","title","aria-checked","tabindex","onClick","onKeydown"],ie={key:0},se={key:1,viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},ue={key:0,d:"M3 4h14M3 8h9M3 12h14M3 16h9"},ce={key:1,d:"M3 4h14M6 8h8M3 12h14M6 16h8"},de={key:2,d:"M3 4h14M8 8h9M3 12h14M8 16h9"},me={key:3,d:"M3 4h14M3 8h14M3 12h14M3 16h14"},fe=e.defineComponent({__name:"AlignmentControl",props:{modelValue:{},label:{},labels:{},autoLabel:{},allowAuto:{type:Boolean}},emits:["update:modelValue"],setup(a,{emit:h}){const u=a,m=h,i=()=>u.allowAuto?["auto","left","center","right","justify"]:["left","center","right","justify"];async function o(v,w){if(!["ArrowLeft","ArrowRight","Home","End"].includes(v.key))return;v.preventDefault();const g=i(),y=g.indexOf(w),b=v.key==="Home"?0:v.key==="End"?g.length-1:(y+(v.key==="ArrowRight"?1:-1)+g.length)%g.length;m("update:modelValue",g[b]);const _=v.currentTarget.parentElement;await e.nextTick(),_?.querySelector(`[data-align="${g[b]}"]`)?.focus()}return(v,w)=>(e.openBlock(),e.createElementBlock("div",{class:"mr-designer-alignment",role:"radiogroup","aria-label":a.label},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i(),d=>(e.openBlock(),e.createElementBlock("button",{key:d,type:"button",role:"radio","data-align":d,"aria-label":a.labels[d],title:a.labels[d],"aria-checked":a.modelValue===d,tabindex:a.modelValue===d?0:-1,onClick:g=>m("update:modelValue",d),onKeydown:g=>o(g,d)},[d==="auto"?(e.openBlock(),e.createElementBlock("span",ie,e.toDisplayString(a.autoLabel),1)):(e.openBlock(),e.createElementBlock("svg",se,[d==="left"?(e.openBlock(),e.createElementBlock("path",ue)):d==="center"?(e.openBlock(),e.createElementBlock("path",ce)):d==="right"?(e.openBlock(),e.createElementBlock("path",de)):(e.openBlock(),e.createElementBlock("path",me))]))],40,ae))),128))],8,oe))}}),te=O._export_sfc(fe,[["__scopeId","data-v-c85770c4"]]);function pe(a,h,u){if(!a.length)return;const m=Math.max(0,a.indexOf(h)),o={ArrowDown:Math.min(m+1,a.length-1),ArrowUp:Math.max(m-1,0),Home:0,End:a.length-1}[u];return o===void 0?void 0:a[o]}function ve(a,h,u){const m=e.ref(!1),i=e.ref(a.activeIndex.value),o=e.ref(null),v=e.ref(null),w=e.ref(null),d=e.ref(null);function g(f=!1){const r=d.value,s=r?.querySelector(`button[data-column-index="${i.value}"]`);if(!r||!s)return;f&&s.focus({preventScroll:!0});const c=r.getBoundingClientRect(),p=s.getBoundingClientRect(),k=c.top+r.clientTop,t=k+r.clientHeight;p.top<k?r.scrollTop+=p.top-k:p.bottom>t&&(r.scrollTop+=p.bottom-t)}async function y(f=!1){m.value&&(m.value=!1,f&&(await e.nextTick(),o.value?.focus({preventScroll:!0})))}async function b(){if(m.value)return y(!0);const f=u.value.map(r=>r.index);i.value=f.includes(a.activeIndex.value)?a.activeIndex.value:f[0]??-1,m.value=!0,await e.nextTick(),w.value?.focus({preventScroll:!0}),g()}function _(f){a.activate(f),y(!0)}function E(f){m.value&&(f.preventDefault(),f.stopPropagation(),y(!0))}async function L(f){const r=pe(u.value.map(s=>s.index),i.value,f.key);r!==void 0&&(i.value=r,f.preventDefault(),await e.nextTick(),g(!0))}async function F(f){if(!["ArrowDown","ArrowUp","Enter"].includes(f.key))return;f.preventDefault(),f.stopPropagation();const r=u.value.map(s=>s.index);if(r.length){if(f.key==="Enter"){r.includes(i.value)&&_(i.value);return}f.key==="ArrowUp"&&(i.value=r.at(-1)),await e.nextTick(),g(!0)}}function M(f){const r=f.target;!m.value||v.value?.contains(r)||o.value?.contains(r)||y()}function C(f){const r=f.relatedTarget;!r||v.value?.contains(r)||o.value?.contains(r)||y()}return e.watch(u,f=>{f.some(r=>r.index===i.value)||(i.value=f[0]?.index??-1)}),e.watch(h,()=>{y()}),e.onMounted(()=>document.addEventListener("pointerdown",M)),e.onBeforeUnmount(()=>document.removeEventListener("pointerdown",M)),{open:m,cursor:i,trigger:o,panel:v,search:w,list:d,toggle:b,close:y,choose:_,escape:E,navigate:L,searchKeydown:F,leave:C}}function ge(a,h,u,m){const i=e.ref(0),o=e.ref(""),v=e.ref([]),w=e.computed(()=>a.value.template.pages.flatMap((r,s)=>r.components.flatMap((c,p)=>c.kind==="list"?[{component:c,pageIndex:s,componentIndex:p}]:[]))),d=e.computed(()=>w.value[i.value]?.component),g=e.computed(()=>{const r=d.value;if(!r)return[];const s=r.columns.map(c=>c.headerStyle?.align??c.headerAlign??r.headerStyle?.align??r.headerAlign??c.style?.align??"center");if(r.headerGrid&&h())for(const c of S.resolveGridLayout(r.headerGrid,r.widthMm,100).cells)for(let p=c.ci;p<c.ci+(c.cell.colSpan??1);p++)s[p]=c.cell.style?.align??"left";return s}),y=e.computed(()=>{const r=o.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(d.value?.columns??[]).flatMap((s,c)=>{const p=`${s.header} ${s.field}`.toLocaleLowerCase();return r.every(k=>p.includes(k))?[{column:s,index:c}]:[]})});function b(r,s){v.value=s?[...new Set([...v.value,r])]:v.value.filter(c=>c!==r)}function _(r){for(const s of y.value)b(s.index,r)}function E(){v.value=[]}function L(r,s,c){if(!u())return;const p=d.value?.columns[r];p&&(Object.assign(p,{[s]:s==="widthMm"?Number(c):c}),s==="header"&&M(r,String(c)),s==="headerAlign"&&C(r,c),s==="widthMm"&&F(),m())}function F(){const r=w.value[i.value];if(!r)return;const s=r.component,c=a.value.template.pages[r.pageIndex],p=s.columns.map(k=>k.widthMm);s.headerGrid&&(s.headerGrid.colWidthsMm=p),c.layout==="wide"&&p.every(k=>Number.isFinite(k)&&k>0)&&(s.widthMm=p.reduce((k,t)=>k+t,0),c.widthMm=Math.max(...c.components.map(k=>k.leftMm+k.widthMm))+(c.marginRightMm??0))}function M(r,s){const c=d.value;if(!c?.headerGrid)return;const k=S.resolveGridLayout(c.headerGrid,c.widthMm,100).cells.filter(({ci:t,cell:R})=>t<=r&&t+(R.colSpan??1)>r).slice(-1)[0];k&&(Object.assign(k.cell,{text:s,rawText:s,value:s}),c.columns.slice(k.ci,k.ci+(k.cell.colSpan??1)).forEach(t=>{t.header=s}))}function C(r,s){const c=d.value,p=c?.columns[r];if(p?.headerStyle?.align!==void 0&&(p.headerStyle={...p.headerStyle,align:s}),!c?.headerGrid)return;const t=S.resolveGridLayout(c.headerGrid,c.widthMm,100).cells.filter(({ci:R,cell:T})=>R<=r&&R+(T.colSpan??1)>r).slice(-1)[0];t&&(t.cell.style={...t.cell.style,align:s},c.columns.slice(t.ci,t.ci+(t.cell.colSpan??1)).forEach(R=>{R.headerAlign=s,R.headerStyle?.align!==void 0&&(R.headerStyle={...R.headerStyle,align:s})}))}function f(r,s){if(!(!u()||r==="headerAlign"&&s==="auto")){for(const c of v.value){const p=d.value?.columns[c];p&&(Object.assign(p,{[r]:s}),r==="headerAlign"&&C(c,s))}m()}}return{selected:i,query:o,selectedColumns:v,lists:w,activeList:d,headerAlignments:g,visibleColumns:y,toggleColumn:b,selectVisible:_,clearSelection:E,setColumn:L,alignColumns:f}}function ye(a,h={entries:100,bytes:16*1024*1024}){const u=e.ref([a]),m=e.ref(0),i=e.computed(()=>m.value>0),o=e.computed(()=>m.value+1<u.value.length),v=e.computed(()=>u.value[m.value]);function w(y){u.value=[y],m.value=0}function d(y){if(u.value[m.value]===y)return;const b=u.value.slice(0,m.value+1);b.push(y);let _=b.reduce((E,L)=>E+L.length*2,0);for(;b.length>1&&(b.length>h.entries||_>h.bytes);)_-=b.shift().length*2;u.value=b,m.value=u.value.length-1}function g(y){if(!(y<0?!i.value:!o.value))return m.value+=y,u.value[m.value]}return{canUndo:i,canRedo:o,current:v,reset:w,record:d,move:g}}function he(a){const h=e.shallowRef(null),u=e.ref(!1);let m,i=0;function o(d){m?.(d),m=void 0,h.value=null}function v(){i++,o(!1),u.value=!1}async function w(d){v();const g=i,y=a();u.value=!0;try{const b=await new Promise((_,E)=>{if(m=_,!y){h.value=d;return}Promise.resolve().then(()=>i===g?y(d):!1).then(L=>{i===g&&o(L===!0)},L=>{i===g&&(m=void 0,h.value=null,E(L))})});return i===g&&b===!0}finally{i===g&&(u.value=!1)}}return e.onBeforeUnmount(v),{confirmation:h,pending:u,decide:o,request:w,cancel:v}}const be={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 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览",contentGroup:"内容",formatGroup:"格式",autoShort:"自动",previousColumn:"上一字段",nextColumn:"下一字段",closeDirectory:"关闭字段目录",technicalDetails:"标识与修订",fieldPosition:"当前字段",previewFieldDirectory:"定位字段"},ne={...be,...Ee};function ke(a,h){const u=e.ref(S.parseReportTemplate(a.modelValue)),m=e.ref(S.serializeReportTemplate(u.value)),i=e.ref(S.serializeReportTemplate(u.value)),o=e.ref(""),v=e.ref(!1),w=e.computed(()=>({...ne,...a.messages})),d=e.computed(()=>({showExport:!1,showPrint:!1,showPdfWindow:!1,...a.preview,theme:{shellBg:"#f1f5f9",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e2e8f0",toolbarFg:"#334155",btnFg:"#475569",btnBorder:"#cbd5e1",btnHoverBg:"#eff6ff",btnHoverFg:"#1d4ed8",btnActiveBg:"#2563eb",...a.preview?.theme}}));Z.provideMachReportConfig({get defaults(){return d.value}});let g,y=0;const b=e.computed(()=>S.validateReportTemplateDocument(u.value)),_=e.computed(()=>{try{return S.serializeReportTemplate(u.value)!==m.value}catch{return!0}}),E=e.ref(i.value),L=e.computed(()=>i.value!==E.value),F=e.computed(()=>_.value||i.value!==E.value),M=()=>JSON.stringify({document:u.value,json:i.value,appliedJson:E.value}),C=ye(M()),f=he(()=>a.beforeDiscard),r=e.computed(()=>v.value||f.pending.value),s=()=>!a.readonly&&!r.value&&!L.value,c=ge(u,()=>b.value.ok,s,G),{selected:p,lists:k,activeList:t,headerAlignments:R,setColumn:T}=c;e.watch(p,()=>c.clearSelection());const z=e.computed(()=>b.value.ok?Z.createLocalFetcher({draft:{template:u.value.template,datasets:a.datasets??{},params:[]}}):void 0);function D(){y++,g?.abort(),g=void 0,v.value=!1}let j=0;async function P(V="replace",B){if(!F.value)return!0;const N=M();try{return await f.request({reason:V,document:JSON.parse(JSON.stringify(u.value)),replacement:B?S.parseReportTemplate(B):void 0,pendingLocalChanges:!0})&&N===M()}catch(I){return o.value=I instanceof Error?I.message:String(I),!1}}function U(V){D(),u.value=V,m.value=S.serializeReportTemplate(V),i.value=m.value,E.value=i.value,o.value="",p.value=0,c.clearSelection(),C.reset(M())}e.watch(()=>a.modelValue,async V=>{let B;try{B=S.parseReportTemplate(V)}catch(I){o.value=I instanceof Error?I.message:String(I);return}try{if(S.serializeReportTemplate(B)===S.serializeReportTemplate(u.value))return}catch{}const N=++j;if(D(),!await P("replace",B)){N===j&&b.value.ok&&h("update:modelValue",S.parseReportTemplate(u.value));return}N===j&&U(B)}),e.onBeforeUnmount(()=>{j++,D()});function G(){f.cancel(),o.value="",b.value.ok&&(i.value=S.serializeReportTemplate(u.value),E.value=i.value,h("update:modelValue",S.parseReportTemplate(u.value))),C.record(M())}function H(V){s()&&(u.value.name=V,G())}function x(V){s()&&(u.value.description=V,G())}function K(){if(!(a.readonly||r.value))try{const V=S.parseReportTemplate(i.value);if(V.id!==u.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(V.revision!==u.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");u.value=V,p.value=0,c.clearSelection(),G()}catch(V){o.value=V instanceof Error?V.message:String(V)}}async function W(){r.value||a.readonly||!await P("reset")||(U(S.parseReportTemplate(m.value)),h("update:modelValue",S.parseReportTemplate(u.value)))}function q(V){if(r.value||a.readonly)return;C.record(M());const B=C.move(V);if(!B)return;f.cancel();const N=JSON.parse(B);u.value=N.document,i.value=N.json,E.value=N.appliedJson,o.value="",p.value=0,c.clearSelection(),b.value.ok&&h("update:modelValue",S.parseReportTemplate(u.value))}async function Q(){if(!a.save||!s()||!b.value.ok)return;const V=++y;g=new AbortController,v.value=!0,o.value="";const B=S.parseReportTemplate(u.value);try{const N=S.parseReportTemplate(await a.save(B,{expectedRevision:B.revision,signal:g.signal}));if(V!==y)return;if(N.id!==B.id)throw new Error("保存服务返回了其他模板的文档");u.value=N,m.value=S.serializeReportTemplate(N),i.value=m.value,E.value=i.value,C.reset(M()),h("saved",S.parseReportTemplate(N)),h("update:modelValue",S.parseReportTemplate(N))}catch(N){V===y&&(o.value=N instanceof Error?N.message:String(N))}finally{V===y&&(v.value=!1,g=void 0)}}const X=e.computed(()=>C.canUndo.value||M()!==C.current.value),Y=e.computed(()=>C.canRedo.value&&M()===C.current.value);return{...c,canUndo:X,canRedo:Y,undo:()=>q(-1),redo:()=>q(1),pendingLocalChanges:F,jsonPending:L,blocked:r,confirmation:f.confirmation,decideDiscard:f.decide,guardChanges:P,draft:u,json:i,selected:p,error:o,saving:v,dirty:_,validation:b,lists:k,activeList:t,headerAlignments:R,previewOptions:d,fetcher:z,messages:w,setName:H,setDescription:x,setColumn:T,applyJson:K,reset:W,save:Q}}function Ve(a,h){const u=e.ref("fields"),m=()=>h.value?.columns.length?0:-1,i=e.ref(m()),o=e.computed(()=>{const d=h.value?.columns[i.value];return d?{column:d,index:i.value}:void 0});e.watch(a,()=>{i.value=m()}),e.watch(h,d=>{d?.columns[i.value]||(i.value=m())});function v(d){h.value?.columns[d]&&(i.value=d)}function w(d){const g=h.value?.columns.length??0;g&&(i.value=Math.max(0,Math.min(g-1,i.value+d)))}return{section:u,activeIndex:i,activeColumn:o,activate:v,stepColumn:w}}const Ne=["aria-label","aria-busy"],Se={class:"mr-designer-bar"},_e={class:"mr-designer-heading"},De=["aria-label"],we=["id","aria-selected","aria-controls","tabindex","onClick"],Ce={class:"mr-designer-actions"},Be={class:"mr-designer-history"},Te=["aria-label","title","disabled"],xe=["aria-label","title","disabled"],Me=["disabled"],Re=["disabled"],Ae=["aria-label"],$e={class:"mr-designer-body"},Le={class:"mr-designer-inspector"},je=["id","aria-labelledby"],Pe={key:0,class:"mr-designer-area"},Oe=["value"],Ie={class:"mr-designer-current"},ze=["aria-expanded","aria-controls"],Fe={class:"mr-designer-current-name"},Ge={class:"mr-designer-directory-entry"},Je={class:"mr-designer-field-position"},He=["aria-label"],Ue=["aria-label","title","disabled"],Ke=["aria-label","title","disabled"],qe=["disabled","aria-label"],We={class:"mr-designer-property-group"},Qe=["value"],Xe=["value"],Ye={class:"mr-designer-property-group"},Ze={class:"mr-designer-format-pair"},et={class:"mr-designer-stacked"},tt=["value"],nt={class:"mr-designer-stacked"},lt=["value"],rt={value:"identifier"},ot={value:"dimension"},at={value:"measure"},it={value:"date"},st={value:"text"},ut={class:"mr-designer-control-row"},ct={class:"mr-designer-control-row"},dt={class:"mr-designer-toggle"},mt=["checked"],ft=["id","aria-label"],pt={class:"mr-designer-directory-heading"},vt=["aria-label"],gt={class:"mr-designer-search"},yt=["aria-label","placeholder"],ht=["aria-label","title"],bt={class:"mr-designer-column-tools"},Et=["disabled"],kt={key:1,role:"status"},Vt={key:2},Nt=["aria-label"],St=["aria-label","checked","disabled","onChange"],_t=["data-column-index","aria-pressed","tabindex","onClick"],Dt={class:"mr-designer-column-number"},wt={class:"mr-designer-column-name"},Ct={key:0,role:"status",class:"mr-designer-empty"},Bt={key:0,class:"mr-designer-batch"},Tt=["aria-label","disabled"],xt={value:""},Mt={value:"auto"},Rt={value:"left"},At={value:"center"},$t={value:"right"},Lt={value:"justify"},jt=["aria-label","disabled"],Pt={value:""},Ot={value:"left"},It={value:"center"},zt={value:"right"},Ft={value:"justify"},Gt={key:2,role:"status",class:"mr-designer-empty"},Jt={class:"mr-designer-stacked"},Ht=["value","disabled"],Ut={class:"mr-designer-stacked"},Kt=["value","disabled"],qt={class:"mr-designer-technical"},Wt={class:"mr-designer-identity"},Qt={class:"mr-designer-stacked mr-designer-json-label"},Xt=["aria-label","disabled"],Yt=["disabled"],Zt={key:3,role:"status",class:"mr-designer-note mr-designer-pending"},en=["aria-label"],tn={key:0,role:"alert",class:"mr-designer-error"},nn={key:1,role:"alert",class:"mr-designer-error"},ln={key:3,class:"mr-designer-note mr-designer-invalid"},rn=e.defineComponent({__name:"ReportTemplateEditor",props:{modelValue:{},datasets:{},readonly:{type:Boolean},messages:{},preview:{},beforeDiscard:{type:Function},save:{type:Function}},emits:["update:modelValue","saved"],setup(a,{expose:h,emit:u}){const m=a,i=u,o=ke(m,(A,l)=>{i(A==="saved"?"saved":"update:modelValue",l)}),{draft:v,json:w,selected:d,error:g,saving:y,pendingLocalChanges:b,jsonPending:_,blocked:E,confirmation:L,canUndo:F,canRedo:M,validation:C,lists:f,activeList:r,visibleColumns:s,query:c,selectedColumns:p,fetcher:k,messages:t}=o,R=Ve(d,r),{section:T,activeIndex:z,activeColumn:D}=R,j=`mr-designer-${e.getCurrentInstance()?.uid??0}`,P=["fields","template","advanced"],U=e.computed(()=>y.value?t.value.saving:m.readonly?t.value.readonly:b.value?t.value.dirty:t.value.ready),G=e.ref(null),H=e.ref(null),x=ve(R,T,s),{open:K,cursor:W,trigger:q,panel:Q,search:X,list:Y}=x;e.watch(T,async()=>{await e.nextTick(),H.value&&(H.value.scrollTop=0)});const V=e.computed(()=>({auto:t.value.auto,left:t.value.left,center:t.value.center,right:t.value.right,justify:t.value.justify}));let B=null;e.watch(L,async A=>{A?(B=document.activeElement,await e.nextTick(),G.value?.focus()):(await e.nextTick(),B?.isConnected&&B.focus(),B=null)}),h({get pendingLocalChanges(){return b.value},get saving(){return y.value},get blocked(){return E.value},guardChanges:o.guardChanges,reset:o.reset,save:o.save});function N(A){return A.target.value}function I(A){return A.target.checked}function ee(A,l){const n=A.target;o.alignColumns(l,n.value),n.value=""}async function le(A){const n={ArrowRight:1,ArrowLeft:-1,Home:-P.length,End:P.length}[A.key];if(n===void 0)return;A.preventDefault();const $=P.indexOf(T.value),J=A.key==="Home"?0:A.key==="End"?P.length-1:($+n+P.length)%P.length;T.value=P[J];const re=A.currentTarget.parentElement;await e.nextTick(),re?.querySelector(`#${j}-tab-${T.value}`)?.focus()}return(A,l)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(t).title,"aria-busy":e.unref(y)},[e.createElementVNode("header",Se,[e.createElementVNode("div",_e,[e.createVNode(O._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(t).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(b)})},e.toDisplayString(U.value),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(t).sectionsLabel},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(P,n=>e.createElementVNode("button",{id:`${j}-tab-${n}`,key:n,type:"button",role:"tab","aria-selected":e.unref(T)===n,"aria-controls":`${j}-panel-${n}`,tabindex:e.unref(T)===n?0:-1,onClick:$=>T.value=n,onKeydown:le},e.toDisplayString(e.unref(t)[`${n}Section`]),41,we)),64))],8,De),e.createElementVNode("div",Ce,[e.createElementVNode("div",Be,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).undo,title:e.unref(t).undo,disabled:a.readonly||e.unref(E)||!e.unref(F),onClick:l[0]||(l[0]=(...n)=>e.unref(o).undo&&e.unref(o).undo(...n))},[...l[34]||(l[34]=[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,Te),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).redo,title:e.unref(t).redo,disabled:a.readonly||e.unref(E)||!e.unref(M),onClick:l[1]||(l[1]=(...n)=>e.unref(o).redo&&e.unref(o).redo(...n))},[...l[35]||(l[35]=[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,xe)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:a.readonly||e.unref(E)||!e.unref(b),onClick:l[2]||(l[2]=(...n)=>e.unref(o).reset&&e.unref(o).reset(...n))},e.toDisplayString(e.unref(t).reset),9,Me),a.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",disabled:a.readonly||e.unref(E)||e.unref(_)||!e.unref(C).ok||!e.unref(b),onClick:l[3]||(l[3]=(...n)=>e.unref(o).save&&e.unref(o).save(...n))},[e.createVNode(O._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(y)?e.unref(t).saving:e.unref(t).save),1)],8,Re)):e.createCommentVNode("",!0)])]),e.unref(L)?(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","stop"]),["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:G,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,Ae)):e.createCommentVNode("",!0),e.createElementVNode("div",$e,[e.createElementVNode("aside",Le,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:H,id:`${j}-panel-${e.unref(T)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref(T)==="advanced"}]),role:"tabpanel","aria-labelledby":`${j}-tab-${e.unref(T)}`},[e.unref(T)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.unref(f).length>1?(e.openBlock(),e.createElementBlock("label",Pe,[e.createTextVNode(e.toDisplayString(e.unref(t).area),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":l[7]||(l[7]=n=>e.isRef(d)?d.value=n:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(n,$)=>(e.openBlock(),e.createElementBlock("option",{key:$,value:$},e.toDisplayString(n.pageIndex+1)+" "+e.toDisplayString(e.unref(t).page)+" · "+e.toDisplayString(n.component.title||n.component.dataset),9,Oe))),128))],512),[[e.vModelSelect,e.unref(d)]])])):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Ie,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:q,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(K),"aria-controls":`${j}-directory`,"aria-haspopup":"dialog",onClick:l[8]||(l[8]=(...n)=>e.unref(x).toggle&&e.unref(x).toggle(...n)),onKeydown:l[9]||(l[9]=e.withKeys((...n)=>e.unref(x).escape&&e.unref(x).escape(...n),["esc"]))},[e.createElementVNode("span",Fe,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(D)?.column.header||e.unref(t).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(D)?.column.field||"—"),1)]),e.createElementVNode("span",Ge,[e.createTextVNode(e.toDisplayString(e.unref(t).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref(r).columns.length),1),e.createVNode(O._sfc_main,{name:"chevron-down",size:13})])],40,ze),e.createElementVNode("div",Je,[e.createElementVNode("span",{"aria-label":e.unref(t).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref(z)>=0?e.unref(z)+1:0),1),l[36]||(l[36]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref(r).columns.length),1)],8,He),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).previousColumn,title:e.unref(t).previousColumn,disabled:e.unref(z)<=0,onClick:l[10]||(l[10]=n=>e.unref(R).stepColumn(-1))},[e.createVNode(O._sfc_main,{name:"chevron-left",size:14})],8,Ue),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).nextColumn,title:e.unref(t).nextColumn,disabled:e.unref(z)>=e.unref(r).columns.length-1,onClick:l[11]||(l[11]=n=>e.unref(R).stepColumn(1))},[e.createVNode(O._sfc_main,{name:"chevron-right",size:14})],8,Ke)])]),e.unref(D)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:a.readonly||e.unref(E)||e.unref(_),"aria-label":e.unref(t).columnProperties},[e.createElementVNode("div",We,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).header),1),e.createElementVNode("input",{value:e.unref(D).column.header,onInput:l[12]||(l[12]=n=>e.unref(o).setColumn(e.unref(D).index,"header",N(n)))},null,40,Qe)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).field),1),e.createElementVNode("input",{value:e.unref(D).column.field,onChange:l[13]||(l[13]=n=>e.unref(o).setColumn(e.unref(D).index,"field",N(n)))},null,40,Xe)])]),e.createElementVNode("div",Ye,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).formatGroup),1),e.createElementVNode("div",Ze,[e.createElementVNode("label",et,[e.createTextVNode(e.toDisplayString(e.unref(t).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(D).column.widthMm,onChange:l[14]||(l[14]=n=>e.unref(o).setColumn(e.unref(D).index,"widthMm",N(n)))},null,40,tt)]),e.createElementVNode("label",nt,[e.createTextVNode(e.toDisplayString(e.unref(t).semantic),1),e.createElementVNode("select",{value:e.unref(D).column.semanticRole||"text",onChange:l[15]||(l[15]=n=>e.unref(o).setColumn(e.unref(D).index,"semanticRole",N(n)))},[e.createElementVNode("option",rt,e.toDisplayString(e.unref(t).identifier),1),e.createElementVNode("option",ot,e.toDisplayString(e.unref(t).dimension),1),e.createElementVNode("option",at,e.toDisplayString(e.unref(t).measure),1),e.createElementVNode("option",it,e.toDisplayString(e.unref(t).date),1),e.createElementVNode("option",st,e.toDisplayString(e.unref(t).text),1)],40,lt)])]),e.createElementVNode("div",ut,[e.createElementVNode("span",null,e.toDisplayString(e.unref(t).bodyAlign),1),e.createVNode(te,{"model-value":e.unref(D).column.align??e.unref(D).column.style?.align??e.unref(r).align??"left",label:e.unref(t).bodyAlign,labels:V.value,"auto-label":e.unref(t).autoShort,"allow-auto":"","onUpdate:modelValue":l[16]||(l[16]=n=>e.unref(o).setColumn(e.unref(D).index,"align",n))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",ct,[e.createElementVNode("span",null,e.toDisplayString(e.unref(t).headerAlign),1),e.createVNode(te,{"model-value":e.unref(o).headerAlignments.value[e.unref(D).index]||"left",label:e.unref(t).headerAlign,labels:V.value,"auto-label":e.unref(t).autoShort,"onUpdate:modelValue":l[17]||(l[17]=n=>e.unref(o).setColumn(e.unref(D).index,"headerAlign",n))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",dt,[e.createTextVNode(e.toDisplayString(e.unref(t).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(D).column.editable===!0,onChange:l[18]||(l[18]=n=>e.unref(o).setColumn(e.unref(D).index,"editable",I(n)))},null,40,mt)])],8,qe)):e.createCommentVNode("",!0),e.unref(K)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${j}-directory`,ref_key:"directoryPanel",ref:Q,role:"dialog","aria-label":e.unref(t).columnDirectory,class:"mr-designer-directory",onKeydown:l[28]||(l[28]=e.withKeys((...n)=>e.unref(x).escape&&e.unref(x).escape(...n),["esc"])),onFocusout:l[29]||(l[29]=(...n)=>e.unref(x).leave&&e.unref(x).leave(...n))},[e.createElementVNode("div",pt,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(t).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(t).closeDirectory,onClick:l[19]||(l[19]=n=>e.unref(x).close(!0))},[e.createVNode(O._sfc_main,{name:"close",size:15})],8,vt)]),e.createElementVNode("div",gt,[e.createVNode(O._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:X,"onUpdate:modelValue":l[20]||(l[20]=n=>e.isRef(c)?c.value=n:null),type:"search","aria-label":e.unref(t).columnsSearch,placeholder:e.unref(t).columnsSearch,onKeydown:l[21]||(l[21]=(...n)=>e.unref(x).searchKeydown&&e.unref(x).searchKeydown(...n))},null,40,yt),[[e.vModelText,e.unref(c)]]),e.unref(c)?(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[22]||(l[22]=n=>c.value="")},[e.createVNode(O._sfc_main,{name:"close",size:13})],8,ht)):e.createCommentVNode("",!0)]),e.createElementVNode("div",bt,[e.createElementVNode("button",{type:"button",disabled:a.readonly||e.unref(E)||e.unref(_)||!e.unref(s).length,onClick:l[23]||(l[23]=n=>e.unref(o).selectVisible(!0))},e.toDisplayString(e.unref(t).selectVisible),9,Et),e.unref(p).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:l[24]||(l[24]=(...n)=>e.unref(o).clearSelection&&e.unref(o).clearSelection(...n))},e.toDisplayString(e.unref(t).clearSelection),1)):e.createCommentVNode("",!0),e.unref(p).length?(e.openBlock(),e.createElementBlock("span",kt,e.toDisplayString(e.unref(t).columnsSelected)+" "+e.toDisplayString(e.unref(p).length),1)):(e.openBlock(),e.createElementBlock("span",Vt,e.toDisplayString(e.unref(s).length)+" / "+e.toDisplayString(e.unref(r).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:Y,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(s),({column:n,index:$})=>(e.openBlock(),e.createElementBlock("div",{key:$,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref(z)===$}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(t).selectColumn} ${n.header}`,checked:e.unref(p).includes($),disabled:a.readonly||e.unref(E)||e.unref(_),onChange:J=>e.unref(o).toggleColumn($,I(J))},null,40,St),e.createElementVNode("button",{type:"button","data-column-index":$,"aria-pressed":e.unref(z)===$,tabindex:e.unref(W)===$?0:-1,onClick:J=>e.unref(x).choose($),onKeydown:l[25]||(l[25]=(...J)=>e.unref(x).navigate&&e.unref(x).navigate(...J))},[e.createElementVNode("span",Dt,e.toDisplayString($+1),1),e.createElementVNode("span",wt,[e.createElementVNode("strong",null,e.toDisplayString(n.header),1),e.createElementVNode("small",null,e.toDisplayString(n.field),1)]),e.unref(z)===$?(e.openBlock(),e.createBlock(O._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,_t)],2))),128)),e.unref(s).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Ct,[e.createVNode(O._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(t).noColumns),1)]))],8,Nt),e.unref(p).length?(e.openBlock(),e.createElementBlock("div",Bt,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(t).batchBody,disabled:a.readonly||e.unref(E)||e.unref(_),onChange:l[26]||(l[26]=n=>ee(n,"align"))},[e.createElementVNode("option",xt,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Mt,e.toDisplayString(e.unref(t).auto),1),e.createElementVNode("option",Rt,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",At,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",$t,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Lt,e.toDisplayString(e.unref(t).justify),1)],40,Tt)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(t).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(t).batchHeader,disabled:a.readonly||e.unref(E)||e.unref(_),onChange:l[27]||(l[27]=n=>ee(n,"headerAlign"))},[e.createElementVNode("option",Pt,e.toDisplayString(e.unref(t).chooseAlignment),1),e.createElementVNode("option",Ot,e.toDisplayString(e.unref(t).left),1),e.createElementVNode("option",It,e.toDisplayString(e.unref(t).center),1),e.createElementVNode("option",zt,e.toDisplayString(e.unref(t).right),1),e.createElementVNode("option",Ft,e.toDisplayString(e.unref(t).justify),1)],40,jt)])])):e.createCommentVNode("",!0)],40,ft)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",Gt,e.toDisplayString(e.unref(t).noColumns),1))],64)):e.unref(T)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).templateDetails),1),e.createElementVNode("label",Jt,[e.createTextVNode(e.toDisplayString(e.unref(t).name),1),e.createElementVNode("input",{value:e.unref(v).name,disabled:a.readonly||e.unref(E)||e.unref(_),onInput:l[30]||(l[30]=n=>e.unref(o).setName(N(n)))},null,40,Ht)]),e.createElementVNode("label",Ut,[e.createTextVNode(e.toDisplayString(e.unref(t).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(v).description,disabled:a.readonly||e.unref(E)||e.unref(_),onInput:l[31]||(l[31]=n=>e.unref(o).setDescription(N(n)))},null,40,Kt)]),e.createElementVNode("details",qt,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(t).technicalDetails),1),e.createElementVNode("dl",Wt,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(t).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(v).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(t).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(v).revision||e.unref(t).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(t).advancedTitle),1),e.createElementVNode("label",Qt,[e.createTextVNode(e.toDisplayString(e.unref(t).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":l[32]||(l[32]=n=>e.isRef(w)?w.value=n:null),class:"mr-designer-json","aria-label":e.unref(t).json,disabled:a.readonly||e.unref(E),spellcheck:"false"},null,8,Xt),[[e.vModelText,e.unref(w)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:a.readonly||e.unref(E),onClick:l[33]||(l[33]=(...n)=>e.unref(o).applyJson&&e.unref(o).applyJson(...n))},e.toDisplayString(e.unref(t).applyJson),9,Yt)],64)),e.unref(_)?(e.openBlock(),e.createElementBlock("p",Zt,e.toDisplayString(e.unref(t).jsonPending),1)):e.createCommentVNode("",!0)],10,je)]),e.createElementVNode("div",{class:"mr-designer-preview","aria-label":e.unref(t).previewTitle},[e.unref(g)?(e.openBlock(),e.createElementBlock("div",tn,e.toDisplayString(e.unref(g)),1)):e.createCommentVNode("",!0),e.unref(C).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",nn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C).errors,n=>(e.openBlock(),e.createElementBlock("li",{key:n.path},e.toDisplayString(n.path)+":"+e.toDisplayString(n.message),1))),128))])),e.unref(k)&&e.unref(C).ok?(e.openBlock(),e.createBlock(e.unref(Z.ReportPreview),{key:2,"report-id":"draft",fetcher:e.unref(k),messages:{title:e.unref(t).previewTitle,columnDirectory:e.unref(t).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",ln,e.toDisplayString(e.unref(t).invalid),1))],8,en)])],8,Ne))}}),on=O._export_sfc(rn,[["__scopeId","data-v-10c10f4e"]]);exports.ReportTemplateEditor=on;exports.TEMPLATE_EDITOR_MESSAGES=ne;
|
package/dist/designer.d.cts
CHANGED
|
@@ -569,6 +569,15 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
|
|
|
569
569
|
readonly: string;
|
|
570
570
|
ready: string;
|
|
571
571
|
previewTitle: string;
|
|
572
|
+
contentGroup: string;
|
|
573
|
+
formatGroup: string;
|
|
574
|
+
autoShort: string;
|
|
575
|
+
previousColumn: string;
|
|
576
|
+
nextColumn: string;
|
|
577
|
+
closeDirectory: string;
|
|
578
|
+
technicalDetails: string;
|
|
579
|
+
fieldPosition: string;
|
|
580
|
+
previewFieldDirectory: string;
|
|
572
581
|
};
|
|
573
582
|
/** Return false to keep the current report. Without a hook the preview asks inline. */
|
|
574
583
|
declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
|
|
@@ -860,6 +869,15 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
|
|
|
860
869
|
readonly: string;
|
|
861
870
|
ready: string;
|
|
862
871
|
previewTitle: string;
|
|
872
|
+
contentGroup: string;
|
|
873
|
+
formatGroup: string;
|
|
874
|
+
autoShort: string;
|
|
875
|
+
previousColumn: string;
|
|
876
|
+
nextColumn: string;
|
|
877
|
+
closeDirectory: string;
|
|
878
|
+
technicalDetails: string;
|
|
879
|
+
fieldPosition: string;
|
|
880
|
+
previewFieldDirectory: string;
|
|
863
881
|
title: string;
|
|
864
882
|
heading: string;
|
|
865
883
|
unpublished: string;
|
package/dist/designer.d.ts
CHANGED
|
@@ -569,6 +569,15 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
|
|
|
569
569
|
readonly: string;
|
|
570
570
|
ready: string;
|
|
571
571
|
previewTitle: string;
|
|
572
|
+
contentGroup: string;
|
|
573
|
+
formatGroup: string;
|
|
574
|
+
autoShort: string;
|
|
575
|
+
previousColumn: string;
|
|
576
|
+
nextColumn: string;
|
|
577
|
+
closeDirectory: string;
|
|
578
|
+
technicalDetails: string;
|
|
579
|
+
fieldPosition: string;
|
|
580
|
+
previewFieldDirectory: string;
|
|
572
581
|
};
|
|
573
582
|
/** Return false to keep the current report. Without a hook the preview asks inline. */
|
|
574
583
|
declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
|
|
@@ -860,6 +869,15 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
|
|
|
860
869
|
readonly: string;
|
|
861
870
|
ready: string;
|
|
862
871
|
previewTitle: string;
|
|
872
|
+
contentGroup: string;
|
|
873
|
+
formatGroup: string;
|
|
874
|
+
autoShort: string;
|
|
875
|
+
previousColumn: string;
|
|
876
|
+
nextColumn: string;
|
|
877
|
+
closeDirectory: string;
|
|
878
|
+
technicalDetails: string;
|
|
879
|
+
fieldPosition: string;
|
|
880
|
+
previewFieldDirectory: string;
|
|
863
881
|
title: string;
|
|
864
882
|
heading: string;
|
|
865
883
|
unpublished: string;
|