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